From 3355a33451d51c9db0eb0541c6eb3cdf4d64263f Mon Sep 17 00:00:00 2001 From: chevereto Date: Wed, 30 Nov 2022 12:33:23 +0000 Subject: [PATCH] Automatic push 4.0.5 --- .ecs/.header | 6 + .ecs/ecs-chevere.php | 212 + .ecs/ecs.php | 22 + .github/banner/chevereto-ultimate.png | Bin 0 -> 167712 bytes .github/screen/user-profile.jpeg | Bin 0 -> 332153 bytes .github/test.yml | 71 + .github/workflows/docker.yml | 102 + .github/workflows/release.yml | 85 + .gitignore | 12 + .htaccess | 31 + .package/4.0.5.txt | 11 + .package/README.txt | 20 + .tinkerwell/CustomTinkerwellDriver.php | 47 + .vscode/action.code-snippets | 37 + .vscode/class.code-snippets | 46 + .vscode/controller.code-snippets | 38 + .vscode/doc-internal.code-snippets | 41 + .vscode/docblock.code-snippets | 62 + .vscode/settings.json | 12 + .vscode/templates.code-snippets | 34 + .vscode/test.code-snippets | 40 + .vscode/workflow.code-snippets | 35 + README.md | 42 +- app/.cache/languages/_locales.php | 282 + app/.cache/languages/ar.po.cache.php | 3303 +++++ app/.cache/languages/bg-BG.po.cache.php | 3723 ++++++ app/.cache/languages/cs.po.cache.php | 3782 ++++++ app/.cache/languages/da.po.cache.php | 2094 ++++ app/.cache/languages/de.po.cache.php | 3834 ++++++ app/.cache/languages/el.po.cache.php | 1780 +++ app/.cache/languages/en.po.cache.php | 27 + app/.cache/languages/es.po.cache.php | 3738 ++++++ app/.cache/languages/et-EE.po.cache.php | 489 + app/.cache/languages/fa.po.cache.php | 1743 +++ app/.cache/languages/fi.po.cache.php | 3756 ++++++ app/.cache/languages/fr.po.cache.php | 3477 ++++++ app/.cache/languages/he.po.cache.php | 2309 ++++ app/.cache/languages/hr.po.cache.php | 1259 ++ app/.cache/languages/hu.po.cache.php | 2901 +++++ app/.cache/languages/id.po.cache.php | 3344 +++++ app/.cache/languages/it.po.cache.php | 3738 ++++++ app/.cache/languages/ja.po.cache.php | 3818 ++++++ app/.cache/languages/ko.po.cache.php | 3785 ++++++ app/.cache/languages/lt-LT.po.cache.php | 1202 ++ app/.cache/languages/nb.po.cache.php | 3636 ++++++ app/.cache/languages/nl.po.cache.php | 3738 ++++++ app/.cache/languages/pl.po.cache.php | 2308 ++++ app/.cache/languages/pt-BR.po.cache.php | 3402 +++++ app/.cache/languages/pt.po.cache.php | 2099 ++++ app/.cache/languages/ru.po.cache.php | 3703 ++++++ app/.cache/languages/sk.po.cache.php | 2594 ++++ app/.cache/languages/sr-RS.po.cache.php | 1777 +++ app/.cache/languages/sv.po.cache.php | 1526 +++ app/.cache/languages/th.po.cache.php | 3416 +++++ app/.cache/languages/tr.po.cache.php | 3834 ++++++ app/.cache/languages/uk.po.cache.php | 2940 +++++ app/.cache/languages/vi.po.cache.php | 2360 ++++ app/.cache/languages/zh-CN.po.cache.php | 3722 ++++++ app/.cache/languages/zh-TW.po.cache.php | 3653 ++++++ app/.cache/vendor/b2-legacy/.gitkeep | 0 app/.htaccess | 1 + app/.psysh.php | 43 + app/.psysh/.gitkeep | 0 app/apache/86180b4e4aaf877dc5e863e6be0e2eb8 | 12 + app/apache/checksums.php | 8 + app/apache/da5c0b34219b3eacf179bc038a8c5fdc | 1 + app/bin/legacy | 13 + app/bin/repl | 26 + app/composer.json | 81 + app/composer.lock | 7599 ++++++++++++ app/configurator.php | 59 + app/env-default.php | 90 + app/languages/ar.po | 4955 ++++++++ app/languages/bg-BG.po | 5338 ++++++++ app/languages/cs.po | 5356 ++++++++ app/languages/da.po | 3259 +++++ app/languages/de.po | 5440 ++++++++ app/languages/el.po | 2882 +++++ app/languages/en.po | 6386 ++++++++++ app/languages/es.po | 5313 ++++++++ app/languages/et-EE.po | 936 ++ app/languages/fa.po | 2813 +++++ app/languages/fi.po | 5354 ++++++++ app/languages/fr.po | 5040 ++++++++ app/languages/he.po | 3562 ++++++ app/languages/hr.po | 2112 ++++ app/languages/hu.po | 4528 +++++++ app/languages/id.po | 4865 ++++++++ app/languages/it.po | 5313 ++++++++ app/languages/ja.po | 5424 ++++++++ app/languages/ko.po | 5388 ++++++++ app/languages/lt-LT.po | 2068 ++++ app/languages/nb.po | 5245 ++++++++ app/languages/nl.po | 5313 ++++++++ app/languages/pl.po | 3595 ++++++ app/languages/pt-BR.po | 4974 ++++++++ app/languages/pt.po | 3361 +++++ app/languages/ru.po | 5302 ++++++++ app/languages/sk.po | 4038 ++++++ app/languages/sr-RS.po | 2856 +++++ app/languages/sv.po | 2565 ++++ app/languages/th.po | 4997 ++++++++ app/languages/tr.po | 5440 ++++++++ app/languages/uk.po | 4498 +++++++ app/languages/vi.po | 3652 ++++++ app/languages/zh-CN.po | 5297 ++++++++ app/languages/zh-TW.po | 5224 ++++++++ app/legacy/commands/bulk-importer.php | 46 + app/legacy/commands/cipher.php | 113 + app/legacy/commands/cron.php | 160 + app/legacy/commands/decrypt-secrets.php | 31 + app/legacy/commands/encrypt-secrets.php | 40 + app/legacy/commands/htaccess-checksum.php | 53 + app/legacy/commands/htaccess-enforce.php | 33 + app/legacy/commands/install.php | 18 + app/legacy/commands/langs.php | 59 + app/legacy/commands/password-reset.php | 46 + app/legacy/commands/setting-get.php | 39 + app/legacy/commands/setting-update.php | 37 + app/legacy/commands/update.php | 18 + app/legacy/entrypoints/cli.php | 54 + app/legacy/entrypoints/index.php | 26 + app/legacy/install/installer.php | 2269 ++++ app/legacy/install/template/already.php | 13 + app/legacy/install/template/connect.php | 41 + app/legacy/install/template/env.php | 14 + app/legacy/install/template/finished.php | 15 + app/legacy/install/template/ready.php | 50 + app/legacy/install/template/update_failed.php | 11 + app/legacy/install/template/updated.php | 16 + app/legacy/load/app.php | 13 + app/legacy/load/integrity-check.php | 161 + app/legacy/load/l10n.php | 38 + app/legacy/load/loader.php | 56 + app/legacy/load/php-boot.php | 20 + app/legacy/load/register-handlers.php | 59 + app/legacy/load/web.php | 492 + app/legacy/routes/account.php | 523 + app/legacy/routes/album.php | 302 + app/legacy/routes/api.php | 234 + app/legacy/routes/captcha-verify.php | 55 + app/legacy/routes/category.php | 76 + app/legacy/routes/connect.php | 178 + app/legacy/routes/dashboard.php | 1593 +++ app/legacy/routes/explore.php | 105 + app/legacy/routes/following.php | 67 + app/legacy/routes/image.php | 395 + app/legacy/routes/importer-jobs.php | 44 + app/legacy/routes/index.php | 255 + app/legacy/routes/install.php | 22 + app/legacy/routes/json.php | 1616 +++ app/legacy/routes/login.php | 123 + app/legacy/routes/logout.php | 27 + app/legacy/routes/moderate.php | 75 + app/legacy/routes/oembed.php | 120 + app/legacy/routes/page.php | 54 + app/legacy/routes/plugin.php | 110 + app/legacy/routes/redirect.php | 45 + app/legacy/routes/search.php | 130 + app/legacy/routes/settings.php | 573 + app/legacy/routes/signup.php | 245 + app/legacy/routes/update.php | 31 + app/legacy/routes/upload.php | 53 + app/legacy/routes/user.php | 423 + app/phpstan-bootstrap.php | 38 + app/phpstan.neon | 12 + app/phpunit-report.xml | 31 + app/phpunit.xml | 33 + app/rector.php | 35 + app/routing/admin.api-v4.php | 121 + app/routing/admin.web.php | 39 + app/routing/user.api-v1.php | 21 + app/routing/user.api-v4.php | 127 + app/routing/user.web.php | 127 + app/schemas/mysql-5/albums.sql | 26 + app/schemas/mysql-5/api_keys.sql | 12 + app/schemas/mysql-5/assets.sql | 14 + app/schemas/mysql-5/categories.sql | 9 + app/schemas/mysql-5/confirmations.sql | 12 + app/schemas/mysql-5/deletions.sql | 20 + app/schemas/mysql-5/follows.sql | 12 + app/schemas/mysql-5/images.sql | 60 + app/schemas/mysql-5/images_hash.sql | 6 + app/schemas/mysql-5/importing.sql | 10 + app/schemas/mysql-5/imports.sql | 21 + app/schemas/mysql-5/ip_bans.sql | 13 + app/schemas/mysql-5/likes.sql | 18 + app/schemas/mysql-5/locks.sql | 11 + app/schemas/mysql-5/login_connections.sql | 15 + app/schemas/mysql-5/login_cookies.sql | 16 + app/schemas/mysql-5/login_passwords.sql | 9 + app/schemas/mysql-5/login_providers.sql | 43 + app/schemas/mysql-5/logins.sql | 18 + app/schemas/mysql-5/notifications.sql | 19 + app/schemas/mysql-5/pages.sql | 29 + app/schemas/mysql-5/queues.sql | 11 + app/schemas/mysql-5/requests.sql | 18 + app/schemas/mysql-5/settings.sql | 10 + app/schemas/mysql-5/stats.sql | 18 + app/schemas/mysql-5/storage_apis.sql | 18 + app/schemas/mysql-5/storages.sql | 22 + app/schemas/mysql-5/two_factors.sql | 10 + app/schemas/mysql-5/users.sql | 57 + app/schemas/mysql-8/albums.sql | 26 + app/schemas/mysql-8/api_keys.sql | 12 + app/schemas/mysql-8/assets.sql | 14 + app/schemas/mysql-8/categories.sql | 9 + app/schemas/mysql-8/confirmations.sql | 12 + app/schemas/mysql-8/deletions.sql | 20 + app/schemas/mysql-8/follows.sql | 12 + app/schemas/mysql-8/images.sql | 60 + app/schemas/mysql-8/images_hash.sql | 6 + app/schemas/mysql-8/importing.sql | 10 + app/schemas/mysql-8/imports.sql | 21 + app/schemas/mysql-8/ip_bans.sql | 13 + app/schemas/mysql-8/likes.sql | 18 + app/schemas/mysql-8/locks.sql | 11 + app/schemas/mysql-8/login_connections.sql | 16 + app/schemas/mysql-8/login_cookies.sql | 16 + app/schemas/mysql-8/login_passwords.sql | 9 + app/schemas/mysql-8/login_providers.sql | 42 + app/schemas/mysql-8/logins.sql | 18 + app/schemas/mysql-8/notifications.sql | 19 + app/schemas/mysql-8/pages.sql | 29 + app/schemas/mysql-8/queues.sql | 11 + app/schemas/mysql-8/requests.sql | 18 + app/schemas/mysql-8/settings.sql | 10 + app/schemas/mysql-8/stats.sql | 18 + app/schemas/mysql-8/storage_apis.sql | 18 + app/schemas/mysql-8/storages.sql | 22 + app/schemas/mysql-8/two_factors.sql | 10 + app/schemas/mysql-8/users.sql | 57 + .../Auth/AuthVerifyCSRFTokenAction.php | 31 + .../Auth/AuthVerifyRepositoryAccessAction.php | 47 + .../Auth/AuthVerifyResourceAccessAction.php | 56 + .../Database/DatabaseReserveRowAction.php | 64 + .../Actions/File/FileFetchSourceAction.php | 61 + app/src/Actions/File/FileNamingAction.php | 101 + app/src/Actions/File/FileUploadAction.php | 33 + app/src/Actions/File/FileValidateAction.php | 131 + .../File/FileVerifyNotDuplicateAction.php | 49 + .../Actions/Image/ImageFetchMetaAction.php | 54 + .../Image/ImageFixOrientationAction.php | 28 + app/src/Actions/Image/ImageInsertAction.php | 43 + .../Actions/Image/ImageStripMetaAction.php | 41 + .../Actions/Image/ImageVerifyMediaAction.php | 169 + .../Legacy/Api/V1/ImageInsertAction.php | 36 + .../Legacy/Api/V1/LegacyApiV1OutputAction.php | 39 + .../Api/V1/LegacyApiV1VerifyKeyAction.php | 33 + .../Storage/StorageGetForAssetAction.php | 61 + .../Storage/StorageGetForUserAction.php | 58 + app/src/Config/AssetConfig.php | 102 + app/src/Config/Config.php | 77 + app/src/Config/DatabaseConfig.php | 81 + app/src/Config/EnabledConfig.php | 43 + app/src/Config/HostConfig.php | 37 + app/src/Config/LimitConfig.php | 26 + app/src/Config/SystemConfig.php | 55 + .../Api/V1/Upload/UploadPostController.php | 52 + .../Api/V4/Album/AlbumDeleteController.php | 36 + .../Api/V4/Album/AlbumGetController.php | 36 + .../Api/V4/Album/AlbumPatchController.php | 52 + .../Api/V4/Album/AlbumPostController.php | 48 + .../Album/Like/AlbumLikeDeleteController.php | 36 + .../V4/Album/Like/AlbumLikePostController.php | 36 + .../Api/V4/Ban/Ip/BanIpDeleteController.php | 36 + .../Api/V4/Ban/Ip/BanIpPatchController.php | 52 + .../Api/V4/Ban/Ip/BanIpPostController.php | 47 + .../V4/Category/CategoryPostController.php | 48 + .../Api/V4/File/FilePostController.php | 24 + .../Image/Bulk/ImageBulkPatchController.php | 51 + .../Api/V4/Image/ImageGetController.php | 36 + .../Api/V4/Image/ImagePatchController.php | 56 + .../Api/V4/Image/ImagePostController.php | 63 + .../Image/Like/ImageLikeDeleteController.php | 33 + .../V4/Image/Like/ImageLikePostController.php | 33 + .../Rebuild/StatRebuildPostController.php | 22 + .../Migrate/StorageMigratePostController.php | 27 + .../Regen/StorageStatRegenPostController.php | 39 + .../Api/V4/Storage/StoragePostController.php | 53 + .../Id/Decode/ToolDecodeIdGetController.php | 38 + .../Id/Encode/ToolEncodeIdGetController.php | 38 + .../Email/ToolProbeEmailPostController.php | 27 + .../UserAssetAvatarDeleteController.php | 36 + .../Avatar/UserAssetAvatarPostController.php | 38 + .../UserAssetBackgroundDeleteController.php | 25 + .../UserAssetBackgroundPostController.php | 38 + .../User/Export/UserExportGetController.php | 39 + .../Follow/UserFollowDeleteController.php | 33 + .../User/Follow/UserFollowPostController.php | 33 + .../Setting/UserSettingPatchController.php | 46 + .../Api/V4/User/UserGetController.php | 33 + .../Api/V4/User/UserPostController.php | 60 + app/src/Controllers/LegacyController.php | 27 + app/src/Controllers/WorkflowController.php | 43 + app/src/Controllers/functions.php | 23 + app/src/Database/Database.php | 33 + app/src/Database/EntitiesIo.php | 72 + app/src/Database/EntitiesIoInterface.php | 39 + app/src/Database/EntityIo.php | 105 + app/src/Database/EntityIoInterface.php | 52 + .../Database/Traits/GetWhereEqualsTrait.php | 20 + app/src/Encoding/functions.php | 71 + app/src/Encryption/Decode.php | 57 + app/src/Encryption/Encode.php | 30 + app/src/Encryption/Encryption.php | 71 + app/src/Encryption/EncryptionInstance.php | 37 + .../Encryption/Interfaces/DecodeInterface.php | 26 + .../Encryption/Interfaces/EncodeInterface.php | 20 + .../Interfaces/EncryptionInterface.php | 29 + .../Encryption/Interfaces/KeyInterface.php | 22 + app/src/Encryption/Key.php | 44 + app/src/Encryption/NullEncryption.php | 42 + app/src/Encryption/functions.php | 137 + app/src/File/functions.php | 38 + app/src/HashId/HashId.php | 119 + app/src/Image/ImageHashInstance.php | 41 + app/src/Image/ImageManagerInstance.php | 40 + app/src/Image/functions.php | 64 + app/src/Job/Job.php | 48 + app/src/Legacy/Classes/Album.php | 579 + app/src/Legacy/Classes/ApiKey.php | 119 + app/src/Legacy/Classes/AssetStorage.php | 56 + app/src/Legacy/Classes/Confirmation.php | 47 + app/src/Legacy/Classes/DB.php | 231 + app/src/Legacy/Classes/Image.php | 1534 +++ app/src/Legacy/Classes/ImageConvert.php | 38 + app/src/Legacy/Classes/ImageResize.php | 186 + app/src/Legacy/Classes/IpBan.php | 49 + app/src/Legacy/Classes/L10n.php | 2335 ++++ app/src/Legacy/Classes/Listing.php | 1057 ++ app/src/Legacy/Classes/LocalStorage.php | 133 + app/src/Legacy/Classes/Lock.php | 53 + app/src/Legacy/Classes/Login.php | 1191 ++ app/src/Legacy/Classes/Mailer.php | 19 + app/src/Legacy/Classes/Page.php | 68 + app/src/Legacy/Classes/Palettes.php | 78 + app/src/Legacy/Classes/RequestLog.php | 77 + app/src/Legacy/Classes/Search.php | 232 + app/src/Legacy/Classes/Settings.php | 594 + app/src/Legacy/Classes/Stat.php | 274 + app/src/Legacy/Classes/Storage.php | 199 + app/src/Legacy/Classes/StorageApis.php | 130 + app/src/Legacy/Classes/TwoFactor.php | 156 + app/src/Legacy/Classes/Upload.php | 604 + app/src/Legacy/Classes/User.php | 616 + .../Legacy/Classes/XmpMetadataExtractor.php | 51 + app/src/Legacy/G/DB.php | 458 + app/src/Legacy/G/Gettext.php | 626 + app/src/Legacy/G/Handler.php | 516 + app/src/Legacy/G/functions-render.php | 168 + app/src/Legacy/G/functions.php | 2615 ++++ app/src/Legacy/functions-render.php | 1093 ++ app/src/Legacy/functions.php | 1257 ++ app/src/Storage/Storage.php | 27 + app/src/Storage/StorageInterface.php | 21 + .../Traits/Instance/AssertInstanceTrait.php | 28 + .../Traits/Instance/AssertNoInstanceTrait.php | 28 + .../Instance/AssertStaticInstanceTrait.php | 31 + app/src/Vars/CookieVar.php | 20 + app/src/Vars/EnvVar.php | 20 + app/src/Vars/FilesVar.php | 19 + app/src/Vars/GetVar.php | 19 + app/src/Vars/PostVar.php | 19 + app/src/Vars/RequestVar.php | 19 + app/src/Vars/ServerVar.php | 20 + app/src/Vars/SessionVar.php | 19 + app/src/Vars/Traits/ImmutableMapTrait.php | 42 + app/src/Vars/Traits/MutableMapTrait.php | 41 + app/src/Vars/functions.php | 97 + app/src/Workflow/BaseWorkflow.php | 16 + app/src/Workflow/functions.php | 45 + .../Workflows/Album/AlbumDeleteWorkflow.php | 30 + app/src/Workflows/Album/AlbumGetWorkflow.php | 30 + .../Workflows/Album/AlbumPatchWorkflow.php | 31 + app/src/Workflows/Album/AlbumPostWorkflow.php | 31 + .../Album/Like/AlbumLikeDeleteWorkflow.php | 31 + .../Album/Like/AlbumLikePostWorkflow.php | 31 + .../Workflows/Ban/Ip/BanIpDeleteWorkflow.php | 30 + .../Workflows/Ban/Ip/BanIpPatchWorkflow.php | 30 + .../Workflows/Ban/Ip/BanIpPostWorkflow.php | 43 + .../Category/CategoryPostWorkflow.php | 39 + .../Image/Bulk/ImageBulkPatchWorkflow.php | 31 + app/src/Workflows/Image/ImageGetWorkflow.php | 30 + .../Workflows/Image/ImagePatchWorkflow.php | 31 + app/src/Workflows/Image/ImagePostWorkflow.php | 107 + .../Image/Like/ImageLikeDeleteWorkflow.php | 31 + .../Image/Like/ImageLikePostWorkflow.php | 31 + .../Workflows/Legacy/LegacyRouteWorkflow.php | 31 + .../Legacy/LegacyUploadPostWorkflow.php | 115 + .../Stat/Rebuild/StatRebuildPostWorkflow.php | 29 + .../Migrate/StorageMigratePostWorkflow.php | 32 + .../Regen/StorageStatsRegenPostWorkflow.php | 30 + .../Workflows/Storage/StoragePostWorkflow.php | 46 + .../Id/Decode/ToolDecodeIdGetWorkflow.php | 30 + .../Id/Encode/ToolEncodeIdGetWorkflow.php | 30 + .../Email/ToolProbeEmailPostWorkflow.php | 30 + .../Avatar/UserAssetAvatarDeleteWorkflow.php | 40 + .../Avatar/UserAssetAvatarPostWorkflow.php | 82 + .../UserAssetBackgroundDeleteWorkflow.php | 40 + .../UserAssetBackgroundPostWorkflow.php | 81 + .../User/Export/UserExportGetWorkflow.php | 40 + .../User/Follow/UserFollowDeleteWorkflow.php | 41 + .../User/Follow/UserFollowPostWorkflow.php | 41 + app/src/Workflows/User/UserPostWorkflow.php | 62 + chevereto.svg | 102 + content/.htaccess | 12 + content/images/system/default/404.gif | Bin 0 -> 3322 bytes .../system/default/consent-screen_cover.jpg | Bin 0 -> 124710 bytes content/images/system/default/favicon.png | Bin 0 -> 6812 bytes content/images/system/default/home_cover.jpg | Bin 0 -> 109192 bytes content/images/system/default/logo.png | Bin 0 -> 1991 bytes content/images/system/default/logo.svg | 102 + .../images/system/default/logo_homepage.png | Bin 0 -> 1991 bytes .../images/system/default/logo_homepage.svg | 101 + .../system/default/maintenance_cover.jpg | Bin 0 -> 256445 bytes content/images/system/default/user.svg | 3 + content/images/system/default/watermark.png | Bin 0 -> 3222 bytes content/images/users/.htaccess | 12 + content/legacy/system/chevereto-blue.svg | 102 + content/legacy/system/chevereto.png | Bin 0 -> 2798 bytes content/legacy/system/chevereto.svg | 101 + content/legacy/system/favicon.png | Bin 0 -> 2057 bytes content/legacy/system/style.css | 634 + content/legacy/system/style.min.css | 1 + content/legacy/system/template.php | 84 + .../themes/Peafowl/custom_hooks/README.txt | 1 + .../Peafowl/custom_hooks/body_open.sample.php | 8 + .../Peafowl/custom_hooks/footer.sample.php | 8 + .../Peafowl/custom_hooks/head.sample.php | 8 + .../custom_hooks/head_after.sample.php | 8 + .../Peafowl/custom_hooks/head_open.sample.php | 8 + .../Peafowl/custom_hooks/header.sample.php | 8 + .../custom_hooks/share_links.sample.php | 46 + .../Peafowl/custom_hooks/style.sample.css | 1 + content/legacy/themes/Peafowl/footer.php | 33 + content/legacy/themes/Peafowl/functions.php | 6 + content/legacy/themes/Peafowl/head.php | 199 + content/legacy/themes/Peafowl/header.php | 377 + .../legacy/themes/Peafowl/lib/chevereto.js | 6285 ++++++++++ .../themes/Peafowl/lib/chevereto.min.js | 4 + .../Peafowl/lib/font-awesome-6/LICENSE.txt | 165 + .../Peafowl/lib/font-awesome-6/css/all.css | 7937 ++++++++++++ .../lib/font-awesome-6/css/all.min.css | 6 + .../Peafowl/lib/font-awesome-6/css/brands.css | 1516 +++ .../lib/font-awesome-6/css/brands.min.css | 6 + .../lib/font-awesome-6/css/fontawesome.css | 6360 ++++++++++ .../font-awesome-6/css/fontawesome.min.css | 6 + .../lib/font-awesome-6/css/regular.css | 19 + .../lib/font-awesome-6/css/regular.min.css | 6 + .../Peafowl/lib/font-awesome-6/css/solid.css | 19 + .../lib/font-awesome-6/css/solid.min.css | 6 + .../lib/font-awesome-6/css/svg-with-js.css | 635 + .../font-awesome-6/css/svg-with-js.min.css | 6 + .../lib/font-awesome-6/css/v4-font-face.css | 26 + .../font-awesome-6/css/v4-font-face.min.css | 6 + .../lib/font-awesome-6/css/v4-shims.css | 2194 ++++ .../lib/font-awesome-6/css/v4-shims.min.css | 6 + .../lib/font-awesome-6/css/v5-font-face.css | 22 + .../font-awesome-6/css/v5-font-face.min.css | 6 + .../font-awesome-6/webfonts/fa-brands-400.ttf | Bin 0 -> 186112 bytes .../webfonts/fa-brands-400.woff2 | Bin 0 -> 107460 bytes .../webfonts/fa-regular-400.ttf | Bin 0 -> 62048 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 25096 bytes .../font-awesome-6/webfonts/fa-solid-900.ttf | Bin 0 -> 397728 bytes .../webfonts/fa-solid-900.woff2 | Bin 0 -> 150472 bytes .../webfonts/fa-v4compatibility.ttf | Bin 0 -> 10136 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4584 bytes .../themes/Peafowl/lib/js/apexcharts.js | 14 + .../Peafowl/lib/js/css_browser_detector.js | 142 + .../Peafowl/lib/js/jquery-1.10.2.min.map | 1 + .../themes/Peafowl/lib/js/jquery-ui.min.js | 6 + .../lib/js/jquery.formatCurrency.min.js | 25 + .../themes/Peafowl/lib/js/jquery.min.js | 6 + .../themes/Peafowl/lib/js/modernizr.min.js | 4 + .../themes/Peafowl/lib/js/pannellum.css | 2 + .../legacy/themes/Peafowl/lib/js/pannellum.js | 110 + .../legacy/themes/Peafowl/lib/js/scripts.js | 84 + .../themes/Peafowl/lib/js/scripts.min.js | 8 + content/legacy/themes/Peafowl/lib/peafowl.css | 6722 ++++++++++ content/legacy/themes/Peafowl/lib/peafowl.js | 10326 ++++++++++++++++ .../legacy/themes/Peafowl/lib/peafowl.min.css | 1 + .../legacy/themes/Peafowl/lib/peafowl.min.js | 5 + .../Peafowl/mails/account-change-email.php | 23 + .../themes/Peafowl/mails/account-confirm.php | 23 + .../Peafowl/mails/account-password-reset.php | 22 + .../themes/Peafowl/mails/account-welcome.php | 20 + .../legacy/themes/Peafowl/mails/footer.php | 12 + .../legacy/themes/Peafowl/mails/header.php | 6 + .../themes/Peafowl/overrides/README.txt | 1 + .../Peafowl/snippets/anywhere_upload.php | 444 + .../Peafowl/snippets/breadcrum_owner_card.php | 26 + .../legacy/themes/Peafowl/snippets/embed.php | 127 + .../themes/Peafowl/snippets/embed_tpl.php | 59 + .../themes/Peafowl/snippets/footer.js.php | 165 + .../themes/Peafowl/snippets/form_album.php | 58 + .../themes/Peafowl/snippets/form_category.php | 29 + .../Peafowl/snippets/form_category_edit.php | 17 + .../themes/Peafowl/snippets/form_image.php | 47 + .../snippets/form_move_existing_album.php | 23 + .../Peafowl/snippets/form_sub_album.php | 55 + .../snippets/homepage_cover_slideshow.php | 22 + .../themes/Peafowl/snippets/image.js.php | 128 + .../Peafowl/snippets/image_album_slice.php | 20 + .../themes/Peafowl/snippets/index.js.php | 13 + .../themes/Peafowl/snippets/listing.php | 136 + .../Peafowl/snippets/listing_tools_editor.php | 84 + .../Peafowl/snippets/modal_create_album.php | 14 + .../snippets/modal_create_sub_album.php | 14 + .../Peafowl/snippets/modal_edit_album.php | 15 + .../themes/Peafowl/snippets/modal_share.php | 25 + .../snippets/quickty/background_cover.php | 13 + .../snippets/quickty/recaptcha_form.php | 16 + .../Peafowl/snippets/quickty/top_left.php | 45 + .../snippets/sign_services_buttons.php | 20 + .../legacy/themes/Peafowl/snippets/tabs.php | 46 + .../snippets/template_content_empty.php | 9 + .../snippets/templates_content_listing.php | 22 + .../Peafowl/snippets/theme_colors.css.php | 311 + .../themes/Peafowl/snippets/user.js.php | 15 + .../Peafowl/snippets/user_items_editor.php | 124 + .../Peafowl/snippets/viewer_template.php | 74 + content/legacy/themes/Peafowl/style.css | 2496 ++++ content/legacy/themes/Peafowl/style.min.css | 1 + .../themes/Peafowl/theme-img/favicon.png | Bin 0 -> 6812 bytes .../legacy/themes/Peafowl/theme-img/logo.png | Bin 0 -> 1708 bytes .../legacy/themes/Peafowl/theme-img/logo.svg | 101 + .../themes/Peafowl/tpl_list_item/album.php | 21 + .../Peafowl/tpl_list_item/album/image.php | 20 + .../tpl_list_item/album_cover_empty.php | 1 + .../tpl_list_item/album_cover_image.php | 1 + .../tpl_list_item/album_cover_password.php | 1 + .../Peafowl/tpl_list_item/album_password.php | 15 + .../Peafowl/tpl_list_item/album_thumbs.php | 8 + .../themes/Peafowl/tpl_list_item/image.php | 14 + .../tpl_list_item/image_cover_empty.php | 1 + .../tpl_list_item/image_cover_image.php | 1 + .../tpl_list_item/image_description_guest.php | 10 + .../tpl_list_item/image_description_owner.php | 10 + .../image_description_private.php | 10 + .../tpl_list_item/image_description_user.php | 10 + .../image_description_user_avatar.php | 1 + .../image_description_user_no_avatar.php | 1 + .../Peafowl/tpl_list_item/image_plain.php | 10 + .../tpl_list_item/item_album_admin_tools.php | 8 + .../tpl_list_item/item_album_edit_tools.php | 22 + .../tpl_list_item/item_image_admin_tools.php | 29 + .../tpl_list_item/item_image_edit_tools.php | 37 + .../tpl_list_item/item_image_play_gif.php | 1 + .../tpl_list_item/item_image_public_tools.php | 5 + .../Peafowl/tpl_list_item/item_like.php | 4 + .../Peafowl/tpl_list_item/item_privacy.php | 3 + .../Peafowl/tpl_list_item/item_share.php | 3 + .../themes/Peafowl/tpl_list_item/user.php | 14 + .../Peafowl/tpl_list_item/user/album.php | 21 + .../Peafowl/tpl_list_item/user/image.php | 13 + .../Peafowl/tpl_list_item/user/liked.php | 15 + .../Peafowl/tpl_list_item/user/user.php | 15 + .../tpl_list_item/user_background_image.php | 1 + .../tpl_list_item/user_cover_empty.php | 7 + .../tpl_list_item/user_cover_image.php | 1 + content/legacy/themes/Peafowl/views/403.php | 22 + content/legacy/themes/Peafowl/views/404.php | 27 + .../views/account/awaiting-confirmation.php | 28 + .../Peafowl/views/account/email-changed.php | 26 + .../Peafowl/views/account/email-needed.php | 48 + .../Peafowl/views/account/password-forgot.php | 73 + .../Peafowl/views/account/password-reset.php | 63 + .../views/account/resend-activation.php | 61 + .../Peafowl/views/account/two-factor.php | 43 + content/legacy/themes/Peafowl/views/album.php | 201 + .../legacy/themes/Peafowl/views/dashboard.php | 100 + .../views/dashboard/images-albums-users.php | 18 + .../Peafowl/views/dashboard/settings.php | 31 + .../views/dashboard/settings/categories.php | 56 + .../views/dashboard/settings/content.php | 65 + .../views/dashboard/settings/email.php | 88 + .../views/dashboard/settings/homepage.php | 142 + .../views/dashboard/settings/image-upload.php | 245 + .../views/dashboard/settings/languages.php | 64 + .../views/dashboard/settings/listings.php | 82 + .../Peafowl/views/dashboard/settings/logo.php | 71 + .../views/dashboard/settings/system.php | 129 + .../views/dashboard/settings/theme.php | 179 + .../views/dashboard/settings/tools.php | 61 + .../views/dashboard/settings/watermarks.php | 127 + .../views/dashboard/settings/website.php | 235 + .../themes/Peafowl/views/dashboard/stats.php | 243 + .../top-sub-bar/images-albums-users.php | 59 + .../views/dashboard/top-sub-bar/settings.php | 111 + .../legacy/themes/Peafowl/views/explore.php | 55 + content/legacy/themes/Peafowl/views/image.php | 368 + content/legacy/themes/Peafowl/views/index.php | 89 + content/legacy/themes/Peafowl/views/login.php | 59 + .../legacy/themes/Peafowl/views/logout.php | 24 + .../themes/Peafowl/views/maintenance.php | 25 + .../themes/Peafowl/views/password-gate.php | 48 + .../legacy/themes/Peafowl/views/search.php | 43 + .../legacy/themes/Peafowl/views/settings.php | 94 + .../themes/Peafowl/views/settings/account.php | 219 + .../themes/Peafowl/views/settings/api.php | 35 + .../Peafowl/views/settings/connections.php | 69 + .../Peafowl/views/settings/homepage.php | 24 + .../Peafowl/views/settings/password.php | 58 + .../themes/Peafowl/views/settings/powered.php | 58 + .../themes/Peafowl/views/settings/profile.php | 63 + .../Peafowl/views/settings/security.php | 49 + .../legacy/themes/Peafowl/views/signup.php | 84 + .../legacy/themes/Peafowl/views/upload.php | 19 + content/legacy/themes/Peafowl/views/user.php | 222 + content/pages/.htaccess | 12 + content/pages/default/contact.html | 42 + content/pages/default/contact.php | 165 + content/pages/default/privacy.html | 13 + content/pages/default/privacy.php | 23 + content/pages/default/tos.html | 13 + content/pages/default/tos.php | 23 + images/.htaccess | 12 + importing/.htaccess | 1 + index.php | 12 + sdk/pup.js | 1156 ++ sdk/pup.min.js | 1 + 622 files changed, 353382 insertions(+), 2 deletions(-) create mode 100644 .ecs/.header create mode 100644 .ecs/ecs-chevere.php create mode 100644 .ecs/ecs.php create mode 100644 .github/banner/chevereto-ultimate.png create mode 100644 .github/screen/user-profile.jpeg create mode 100644 .github/test.yml create mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 .package/4.0.5.txt create mode 100755 .package/README.txt create mode 100644 .tinkerwell/CustomTinkerwellDriver.php create mode 100644 .vscode/action.code-snippets create mode 100644 .vscode/class.code-snippets create mode 100644 .vscode/controller.code-snippets create mode 100644 .vscode/doc-internal.code-snippets create mode 100644 .vscode/docblock.code-snippets create mode 100644 .vscode/settings.json create mode 100644 .vscode/templates.code-snippets create mode 100644 .vscode/test.code-snippets create mode 100644 .vscode/workflow.code-snippets create mode 100644 app/.cache/languages/_locales.php create mode 100644 app/.cache/languages/ar.po.cache.php create mode 100644 app/.cache/languages/bg-BG.po.cache.php create mode 100644 app/.cache/languages/cs.po.cache.php create mode 100644 app/.cache/languages/da.po.cache.php create mode 100644 app/.cache/languages/de.po.cache.php create mode 100644 app/.cache/languages/el.po.cache.php create mode 100644 app/.cache/languages/en.po.cache.php create mode 100644 app/.cache/languages/es.po.cache.php create mode 100644 app/.cache/languages/et-EE.po.cache.php create mode 100644 app/.cache/languages/fa.po.cache.php create mode 100644 app/.cache/languages/fi.po.cache.php create mode 100644 app/.cache/languages/fr.po.cache.php create mode 100644 app/.cache/languages/he.po.cache.php create mode 100644 app/.cache/languages/hr.po.cache.php create mode 100644 app/.cache/languages/hu.po.cache.php create mode 100644 app/.cache/languages/id.po.cache.php create mode 100644 app/.cache/languages/it.po.cache.php create mode 100644 app/.cache/languages/ja.po.cache.php create mode 100644 app/.cache/languages/ko.po.cache.php create mode 100644 app/.cache/languages/lt-LT.po.cache.php create mode 100644 app/.cache/languages/nb.po.cache.php create mode 100644 app/.cache/languages/nl.po.cache.php create mode 100644 app/.cache/languages/pl.po.cache.php create mode 100644 app/.cache/languages/pt-BR.po.cache.php create mode 100644 app/.cache/languages/pt.po.cache.php create mode 100644 app/.cache/languages/ru.po.cache.php create mode 100644 app/.cache/languages/sk.po.cache.php create mode 100644 app/.cache/languages/sr-RS.po.cache.php create mode 100644 app/.cache/languages/sv.po.cache.php create mode 100644 app/.cache/languages/th.po.cache.php create mode 100644 app/.cache/languages/tr.po.cache.php create mode 100644 app/.cache/languages/uk.po.cache.php create mode 100644 app/.cache/languages/vi.po.cache.php create mode 100644 app/.cache/languages/zh-CN.po.cache.php create mode 100644 app/.cache/languages/zh-TW.po.cache.php create mode 100644 app/.cache/vendor/b2-legacy/.gitkeep create mode 100644 app/.htaccess create mode 100644 app/.psysh.php create mode 100644 app/.psysh/.gitkeep create mode 100644 app/apache/86180b4e4aaf877dc5e863e6be0e2eb8 create mode 100644 app/apache/checksums.php create mode 100644 app/apache/da5c0b34219b3eacf179bc038a8c5fdc create mode 100755 app/bin/legacy create mode 100755 app/bin/repl create mode 100644 app/composer.json create mode 100644 app/composer.lock create mode 100644 app/configurator.php create mode 100644 app/env-default.php create mode 100644 app/languages/ar.po create mode 100644 app/languages/bg-BG.po create mode 100644 app/languages/cs.po create mode 100644 app/languages/da.po create mode 100644 app/languages/de.po create mode 100644 app/languages/el.po create mode 100644 app/languages/en.po create mode 100644 app/languages/es.po create mode 100644 app/languages/et-EE.po create mode 100644 app/languages/fa.po create mode 100644 app/languages/fi.po create mode 100644 app/languages/fr.po create mode 100644 app/languages/he.po create mode 100644 app/languages/hr.po create mode 100644 app/languages/hu.po create mode 100644 app/languages/id.po create mode 100644 app/languages/it.po create mode 100644 app/languages/ja.po create mode 100644 app/languages/ko.po create mode 100644 app/languages/lt-LT.po create mode 100644 app/languages/nb.po create mode 100644 app/languages/nl.po create mode 100644 app/languages/pl.po create mode 100644 app/languages/pt-BR.po create mode 100644 app/languages/pt.po create mode 100644 app/languages/ru.po create mode 100644 app/languages/sk.po create mode 100644 app/languages/sr-RS.po create mode 100644 app/languages/sv.po create mode 100644 app/languages/th.po create mode 100644 app/languages/tr.po create mode 100644 app/languages/uk.po create mode 100644 app/languages/vi.po create mode 100644 app/languages/zh-CN.po create mode 100644 app/languages/zh-TW.po create mode 100644 app/legacy/commands/bulk-importer.php create mode 100644 app/legacy/commands/cipher.php create mode 100644 app/legacy/commands/cron.php create mode 100644 app/legacy/commands/decrypt-secrets.php create mode 100644 app/legacy/commands/encrypt-secrets.php create mode 100644 app/legacy/commands/htaccess-checksum.php create mode 100644 app/legacy/commands/htaccess-enforce.php create mode 100644 app/legacy/commands/install.php create mode 100644 app/legacy/commands/langs.php create mode 100644 app/legacy/commands/password-reset.php create mode 100644 app/legacy/commands/setting-get.php create mode 100644 app/legacy/commands/setting-update.php create mode 100644 app/legacy/commands/update.php create mode 100644 app/legacy/entrypoints/cli.php create mode 100644 app/legacy/entrypoints/index.php create mode 100644 app/legacy/install/installer.php create mode 100644 app/legacy/install/template/already.php create mode 100644 app/legacy/install/template/connect.php create mode 100644 app/legacy/install/template/env.php create mode 100644 app/legacy/install/template/finished.php create mode 100644 app/legacy/install/template/ready.php create mode 100644 app/legacy/install/template/update_failed.php create mode 100644 app/legacy/install/template/updated.php create mode 100644 app/legacy/load/app.php create mode 100644 app/legacy/load/integrity-check.php create mode 100644 app/legacy/load/l10n.php create mode 100644 app/legacy/load/loader.php create mode 100644 app/legacy/load/php-boot.php create mode 100644 app/legacy/load/register-handlers.php create mode 100644 app/legacy/load/web.php create mode 100644 app/legacy/routes/account.php create mode 100644 app/legacy/routes/album.php create mode 100644 app/legacy/routes/api.php create mode 100644 app/legacy/routes/captcha-verify.php create mode 100644 app/legacy/routes/category.php create mode 100644 app/legacy/routes/connect.php create mode 100644 app/legacy/routes/dashboard.php create mode 100644 app/legacy/routes/explore.php create mode 100644 app/legacy/routes/following.php create mode 100644 app/legacy/routes/image.php create mode 100644 app/legacy/routes/importer-jobs.php create mode 100644 app/legacy/routes/index.php create mode 100644 app/legacy/routes/install.php create mode 100644 app/legacy/routes/json.php create mode 100644 app/legacy/routes/login.php create mode 100644 app/legacy/routes/logout.php create mode 100644 app/legacy/routes/moderate.php create mode 100644 app/legacy/routes/oembed.php create mode 100644 app/legacy/routes/page.php create mode 100644 app/legacy/routes/plugin.php create mode 100644 app/legacy/routes/redirect.php create mode 100644 app/legacy/routes/search.php create mode 100644 app/legacy/routes/settings.php create mode 100644 app/legacy/routes/signup.php create mode 100644 app/legacy/routes/update.php create mode 100644 app/legacy/routes/upload.php create mode 100644 app/legacy/routes/user.php create mode 100644 app/phpstan-bootstrap.php create mode 100644 app/phpstan.neon create mode 100644 app/phpunit-report.xml create mode 100644 app/phpunit.xml create mode 100644 app/rector.php create mode 100644 app/routing/admin.api-v4.php create mode 100644 app/routing/admin.web.php create mode 100644 app/routing/user.api-v1.php create mode 100644 app/routing/user.api-v4.php create mode 100644 app/routing/user.web.php create mode 100644 app/schemas/mysql-5/albums.sql create mode 100644 app/schemas/mysql-5/api_keys.sql create mode 100644 app/schemas/mysql-5/assets.sql create mode 100644 app/schemas/mysql-5/categories.sql create mode 100644 app/schemas/mysql-5/confirmations.sql create mode 100644 app/schemas/mysql-5/deletions.sql create mode 100644 app/schemas/mysql-5/follows.sql create mode 100644 app/schemas/mysql-5/images.sql create mode 100644 app/schemas/mysql-5/images_hash.sql create mode 100644 app/schemas/mysql-5/importing.sql create mode 100644 app/schemas/mysql-5/imports.sql create mode 100644 app/schemas/mysql-5/ip_bans.sql create mode 100644 app/schemas/mysql-5/likes.sql create mode 100644 app/schemas/mysql-5/locks.sql create mode 100644 app/schemas/mysql-5/login_connections.sql create mode 100644 app/schemas/mysql-5/login_cookies.sql create mode 100644 app/schemas/mysql-5/login_passwords.sql create mode 100644 app/schemas/mysql-5/login_providers.sql create mode 100644 app/schemas/mysql-5/logins.sql create mode 100644 app/schemas/mysql-5/notifications.sql create mode 100644 app/schemas/mysql-5/pages.sql create mode 100644 app/schemas/mysql-5/queues.sql create mode 100644 app/schemas/mysql-5/requests.sql create mode 100644 app/schemas/mysql-5/settings.sql create mode 100644 app/schemas/mysql-5/stats.sql create mode 100644 app/schemas/mysql-5/storage_apis.sql create mode 100644 app/schemas/mysql-5/storages.sql create mode 100644 app/schemas/mysql-5/two_factors.sql create mode 100644 app/schemas/mysql-5/users.sql create mode 100644 app/schemas/mysql-8/albums.sql create mode 100644 app/schemas/mysql-8/api_keys.sql create mode 100644 app/schemas/mysql-8/assets.sql create mode 100644 app/schemas/mysql-8/categories.sql create mode 100644 app/schemas/mysql-8/confirmations.sql create mode 100644 app/schemas/mysql-8/deletions.sql create mode 100644 app/schemas/mysql-8/follows.sql create mode 100644 app/schemas/mysql-8/images.sql create mode 100644 app/schemas/mysql-8/images_hash.sql create mode 100644 app/schemas/mysql-8/importing.sql create mode 100644 app/schemas/mysql-8/imports.sql create mode 100644 app/schemas/mysql-8/ip_bans.sql create mode 100644 app/schemas/mysql-8/likes.sql create mode 100644 app/schemas/mysql-8/locks.sql create mode 100644 app/schemas/mysql-8/login_connections.sql create mode 100644 app/schemas/mysql-8/login_cookies.sql create mode 100644 app/schemas/mysql-8/login_passwords.sql create mode 100644 app/schemas/mysql-8/login_providers.sql create mode 100644 app/schemas/mysql-8/logins.sql create mode 100644 app/schemas/mysql-8/notifications.sql create mode 100644 app/schemas/mysql-8/pages.sql create mode 100644 app/schemas/mysql-8/queues.sql create mode 100644 app/schemas/mysql-8/requests.sql create mode 100644 app/schemas/mysql-8/settings.sql create mode 100644 app/schemas/mysql-8/stats.sql create mode 100644 app/schemas/mysql-8/storage_apis.sql create mode 100644 app/schemas/mysql-8/storages.sql create mode 100644 app/schemas/mysql-8/two_factors.sql create mode 100644 app/schemas/mysql-8/users.sql create mode 100644 app/src/Actions/Auth/AuthVerifyCSRFTokenAction.php create mode 100644 app/src/Actions/Auth/AuthVerifyRepositoryAccessAction.php create mode 100644 app/src/Actions/Auth/AuthVerifyResourceAccessAction.php create mode 100644 app/src/Actions/Database/DatabaseReserveRowAction.php create mode 100644 app/src/Actions/File/FileFetchSourceAction.php create mode 100644 app/src/Actions/File/FileNamingAction.php create mode 100644 app/src/Actions/File/FileUploadAction.php create mode 100644 app/src/Actions/File/FileValidateAction.php create mode 100644 app/src/Actions/File/FileVerifyNotDuplicateAction.php create mode 100644 app/src/Actions/Image/ImageFetchMetaAction.php create mode 100644 app/src/Actions/Image/ImageFixOrientationAction.php create mode 100644 app/src/Actions/Image/ImageInsertAction.php create mode 100644 app/src/Actions/Image/ImageStripMetaAction.php create mode 100644 app/src/Actions/Image/ImageVerifyMediaAction.php create mode 100644 app/src/Actions/Legacy/Api/V1/ImageInsertAction.php create mode 100644 app/src/Actions/Legacy/Api/V1/LegacyApiV1OutputAction.php create mode 100644 app/src/Actions/Legacy/Api/V1/LegacyApiV1VerifyKeyAction.php create mode 100644 app/src/Actions/Storage/StorageGetForAssetAction.php create mode 100644 app/src/Actions/Storage/StorageGetForUserAction.php create mode 100644 app/src/Config/AssetConfig.php create mode 100644 app/src/Config/Config.php create mode 100644 app/src/Config/DatabaseConfig.php create mode 100644 app/src/Config/EnabledConfig.php create mode 100644 app/src/Config/HostConfig.php create mode 100644 app/src/Config/LimitConfig.php create mode 100644 app/src/Config/SystemConfig.php create mode 100644 app/src/Controllers/Api/V1/Upload/UploadPostController.php create mode 100644 app/src/Controllers/Api/V4/Album/AlbumDeleteController.php create mode 100644 app/src/Controllers/Api/V4/Album/AlbumGetController.php create mode 100644 app/src/Controllers/Api/V4/Album/AlbumPatchController.php create mode 100644 app/src/Controllers/Api/V4/Album/AlbumPostController.php create mode 100644 app/src/Controllers/Api/V4/Album/Like/AlbumLikeDeleteController.php create mode 100644 app/src/Controllers/Api/V4/Album/Like/AlbumLikePostController.php create mode 100644 app/src/Controllers/Api/V4/Ban/Ip/BanIpDeleteController.php create mode 100644 app/src/Controllers/Api/V4/Ban/Ip/BanIpPatchController.php create mode 100644 app/src/Controllers/Api/V4/Ban/Ip/BanIpPostController.php create mode 100644 app/src/Controllers/Api/V4/Category/CategoryPostController.php create mode 100644 app/src/Controllers/Api/V4/File/FilePostController.php create mode 100644 app/src/Controllers/Api/V4/Image/Bulk/ImageBulkPatchController.php create mode 100644 app/src/Controllers/Api/V4/Image/ImageGetController.php create mode 100644 app/src/Controllers/Api/V4/Image/ImagePatchController.php create mode 100644 app/src/Controllers/Api/V4/Image/ImagePostController.php create mode 100644 app/src/Controllers/Api/V4/Image/Like/ImageLikeDeleteController.php create mode 100644 app/src/Controllers/Api/V4/Image/Like/ImageLikePostController.php create mode 100644 app/src/Controllers/Api/V4/Stat/Rebuild/StatRebuildPostController.php create mode 100644 app/src/Controllers/Api/V4/Storage/Migrate/StorageMigratePostController.php create mode 100644 app/src/Controllers/Api/V4/Storage/Stat/Regen/StorageStatRegenPostController.php create mode 100644 app/src/Controllers/Api/V4/Storage/StoragePostController.php create mode 100644 app/src/Controllers/Api/V4/Tool/Id/Decode/ToolDecodeIdGetController.php create mode 100644 app/src/Controllers/Api/V4/Tool/Id/Encode/ToolEncodeIdGetController.php create mode 100644 app/src/Controllers/Api/V4/Tool/Probe/Email/ToolProbeEmailPostController.php create mode 100644 app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarDeleteController.php create mode 100644 app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarPostController.php create mode 100644 app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundDeleteController.php create mode 100644 app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundPostController.php create mode 100644 app/src/Controllers/Api/V4/User/Export/UserExportGetController.php create mode 100644 app/src/Controllers/Api/V4/User/Follow/UserFollowDeleteController.php create mode 100644 app/src/Controllers/Api/V4/User/Follow/UserFollowPostController.php create mode 100644 app/src/Controllers/Api/V4/User/Setting/UserSettingPatchController.php create mode 100644 app/src/Controllers/Api/V4/User/UserGetController.php create mode 100644 app/src/Controllers/Api/V4/User/UserPostController.php create mode 100644 app/src/Controllers/LegacyController.php create mode 100644 app/src/Controllers/WorkflowController.php create mode 100644 app/src/Controllers/functions.php create mode 100644 app/src/Database/Database.php create mode 100644 app/src/Database/EntitiesIo.php create mode 100644 app/src/Database/EntitiesIoInterface.php create mode 100644 app/src/Database/EntityIo.php create mode 100644 app/src/Database/EntityIoInterface.php create mode 100644 app/src/Database/Traits/GetWhereEqualsTrait.php create mode 100644 app/src/Encoding/functions.php create mode 100644 app/src/Encryption/Decode.php create mode 100644 app/src/Encryption/Encode.php create mode 100644 app/src/Encryption/Encryption.php create mode 100644 app/src/Encryption/EncryptionInstance.php create mode 100644 app/src/Encryption/Interfaces/DecodeInterface.php create mode 100644 app/src/Encryption/Interfaces/EncodeInterface.php create mode 100644 app/src/Encryption/Interfaces/EncryptionInterface.php create mode 100644 app/src/Encryption/Interfaces/KeyInterface.php create mode 100644 app/src/Encryption/Key.php create mode 100644 app/src/Encryption/NullEncryption.php create mode 100644 app/src/Encryption/functions.php create mode 100644 app/src/File/functions.php create mode 100644 app/src/HashId/HashId.php create mode 100644 app/src/Image/ImageHashInstance.php create mode 100644 app/src/Image/ImageManagerInstance.php create mode 100644 app/src/Image/functions.php create mode 100644 app/src/Job/Job.php create mode 100644 app/src/Legacy/Classes/Album.php create mode 100644 app/src/Legacy/Classes/ApiKey.php create mode 100644 app/src/Legacy/Classes/AssetStorage.php create mode 100644 app/src/Legacy/Classes/Confirmation.php create mode 100644 app/src/Legacy/Classes/DB.php create mode 100644 app/src/Legacy/Classes/Image.php create mode 100644 app/src/Legacy/Classes/ImageConvert.php create mode 100644 app/src/Legacy/Classes/ImageResize.php create mode 100644 app/src/Legacy/Classes/IpBan.php create mode 100644 app/src/Legacy/Classes/L10n.php create mode 100644 app/src/Legacy/Classes/Listing.php create mode 100644 app/src/Legacy/Classes/LocalStorage.php create mode 100644 app/src/Legacy/Classes/Lock.php create mode 100644 app/src/Legacy/Classes/Login.php create mode 100644 app/src/Legacy/Classes/Mailer.php create mode 100644 app/src/Legacy/Classes/Page.php create mode 100644 app/src/Legacy/Classes/Palettes.php create mode 100644 app/src/Legacy/Classes/RequestLog.php create mode 100644 app/src/Legacy/Classes/Search.php create mode 100644 app/src/Legacy/Classes/Settings.php create mode 100644 app/src/Legacy/Classes/Stat.php create mode 100644 app/src/Legacy/Classes/Storage.php create mode 100644 app/src/Legacy/Classes/StorageApis.php create mode 100644 app/src/Legacy/Classes/TwoFactor.php create mode 100644 app/src/Legacy/Classes/Upload.php create mode 100644 app/src/Legacy/Classes/User.php create mode 100644 app/src/Legacy/Classes/XmpMetadataExtractor.php create mode 100644 app/src/Legacy/G/DB.php create mode 100644 app/src/Legacy/G/Gettext.php create mode 100644 app/src/Legacy/G/Handler.php create mode 100644 app/src/Legacy/G/functions-render.php create mode 100644 app/src/Legacy/G/functions.php create mode 100644 app/src/Legacy/functions-render.php create mode 100644 app/src/Legacy/functions.php create mode 100644 app/src/Storage/Storage.php create mode 100644 app/src/Storage/StorageInterface.php create mode 100644 app/src/Traits/Instance/AssertInstanceTrait.php create mode 100644 app/src/Traits/Instance/AssertNoInstanceTrait.php create mode 100644 app/src/Traits/Instance/AssertStaticInstanceTrait.php create mode 100644 app/src/Vars/CookieVar.php create mode 100644 app/src/Vars/EnvVar.php create mode 100644 app/src/Vars/FilesVar.php create mode 100644 app/src/Vars/GetVar.php create mode 100644 app/src/Vars/PostVar.php create mode 100644 app/src/Vars/RequestVar.php create mode 100644 app/src/Vars/ServerVar.php create mode 100644 app/src/Vars/SessionVar.php create mode 100644 app/src/Vars/Traits/ImmutableMapTrait.php create mode 100644 app/src/Vars/Traits/MutableMapTrait.php create mode 100644 app/src/Vars/functions.php create mode 100644 app/src/Workflow/BaseWorkflow.php create mode 100644 app/src/Workflow/functions.php create mode 100644 app/src/Workflows/Album/AlbumDeleteWorkflow.php create mode 100644 app/src/Workflows/Album/AlbumGetWorkflow.php create mode 100644 app/src/Workflows/Album/AlbumPatchWorkflow.php create mode 100644 app/src/Workflows/Album/AlbumPostWorkflow.php create mode 100644 app/src/Workflows/Album/Like/AlbumLikeDeleteWorkflow.php create mode 100644 app/src/Workflows/Album/Like/AlbumLikePostWorkflow.php create mode 100644 app/src/Workflows/Ban/Ip/BanIpDeleteWorkflow.php create mode 100644 app/src/Workflows/Ban/Ip/BanIpPatchWorkflow.php create mode 100644 app/src/Workflows/Ban/Ip/BanIpPostWorkflow.php create mode 100644 app/src/Workflows/Category/CategoryPostWorkflow.php create mode 100644 app/src/Workflows/Image/Bulk/ImageBulkPatchWorkflow.php create mode 100644 app/src/Workflows/Image/ImageGetWorkflow.php create mode 100644 app/src/Workflows/Image/ImagePatchWorkflow.php create mode 100644 app/src/Workflows/Image/ImagePostWorkflow.php create mode 100644 app/src/Workflows/Image/Like/ImageLikeDeleteWorkflow.php create mode 100644 app/src/Workflows/Image/Like/ImageLikePostWorkflow.php create mode 100644 app/src/Workflows/Legacy/LegacyRouteWorkflow.php create mode 100644 app/src/Workflows/Legacy/LegacyUploadPostWorkflow.php create mode 100644 app/src/Workflows/Stat/Rebuild/StatRebuildPostWorkflow.php create mode 100644 app/src/Workflows/Storage/Migrate/StorageMigratePostWorkflow.php create mode 100644 app/src/Workflows/Storage/Stat/Regen/StorageStatsRegenPostWorkflow.php create mode 100644 app/src/Workflows/Storage/StoragePostWorkflow.php create mode 100644 app/src/Workflows/Tool/Id/Decode/ToolDecodeIdGetWorkflow.php create mode 100644 app/src/Workflows/Tool/Id/Encode/ToolEncodeIdGetWorkflow.php create mode 100644 app/src/Workflows/Tool/Probe/Email/ToolProbeEmailPostWorkflow.php create mode 100644 app/src/Workflows/User/Asset/Avatar/UserAssetAvatarDeleteWorkflow.php create mode 100644 app/src/Workflows/User/Asset/Avatar/UserAssetAvatarPostWorkflow.php create mode 100644 app/src/Workflows/User/Asset/Background/UserAssetBackgroundDeleteWorkflow.php create mode 100644 app/src/Workflows/User/Asset/Background/UserAssetBackgroundPostWorkflow.php create mode 100644 app/src/Workflows/User/Export/UserExportGetWorkflow.php create mode 100644 app/src/Workflows/User/Follow/UserFollowDeleteWorkflow.php create mode 100644 app/src/Workflows/User/Follow/UserFollowPostWorkflow.php create mode 100644 app/src/Workflows/User/UserPostWorkflow.php create mode 100644 chevereto.svg create mode 100644 content/.htaccess create mode 100644 content/images/system/default/404.gif create mode 100644 content/images/system/default/consent-screen_cover.jpg create mode 100644 content/images/system/default/favicon.png create mode 100644 content/images/system/default/home_cover.jpg create mode 100644 content/images/system/default/logo.png create mode 100644 content/images/system/default/logo.svg create mode 100644 content/images/system/default/logo_homepage.png create mode 100644 content/images/system/default/logo_homepage.svg create mode 100644 content/images/system/default/maintenance_cover.jpg create mode 100644 content/images/system/default/user.svg create mode 100644 content/images/system/default/watermark.png create mode 100644 content/images/users/.htaccess create mode 100644 content/legacy/system/chevereto-blue.svg create mode 100644 content/legacy/system/chevereto.png create mode 100644 content/legacy/system/chevereto.svg create mode 100644 content/legacy/system/favicon.png create mode 100644 content/legacy/system/style.css create mode 100644 content/legacy/system/style.min.css create mode 100644 content/legacy/system/template.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/README.txt create mode 100644 content/legacy/themes/Peafowl/custom_hooks/body_open.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/footer.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/head.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/head_after.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/head_open.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/header.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/share_links.sample.php create mode 100644 content/legacy/themes/Peafowl/custom_hooks/style.sample.css create mode 100644 content/legacy/themes/Peafowl/footer.php create mode 100644 content/legacy/themes/Peafowl/functions.php create mode 100644 content/legacy/themes/Peafowl/head.php create mode 100644 content/legacy/themes/Peafowl/header.php create mode 100644 content/legacy/themes/Peafowl/lib/chevereto.js create mode 100644 content/legacy/themes/Peafowl/lib/chevereto.min.js create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/LICENSE.txt create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.min.css create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-brands-400.ttf create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-brands-400.woff2 create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-regular-400.ttf create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-regular-400.woff2 create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-solid-900.ttf create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-solid-900.woff2 create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-v4compatibility.ttf create mode 100644 content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-v4compatibility.woff2 create mode 100644 content/legacy/themes/Peafowl/lib/js/apexcharts.js create mode 100644 content/legacy/themes/Peafowl/lib/js/css_browser_detector.js create mode 100644 content/legacy/themes/Peafowl/lib/js/jquery-1.10.2.min.map create mode 100644 content/legacy/themes/Peafowl/lib/js/jquery-ui.min.js create mode 100644 content/legacy/themes/Peafowl/lib/js/jquery.formatCurrency.min.js create mode 100644 content/legacy/themes/Peafowl/lib/js/jquery.min.js create mode 100644 content/legacy/themes/Peafowl/lib/js/modernizr.min.js create mode 100644 content/legacy/themes/Peafowl/lib/js/pannellum.css create mode 100644 content/legacy/themes/Peafowl/lib/js/pannellum.js create mode 100644 content/legacy/themes/Peafowl/lib/js/scripts.js create mode 100644 content/legacy/themes/Peafowl/lib/js/scripts.min.js create mode 100644 content/legacy/themes/Peafowl/lib/peafowl.css create mode 100644 content/legacy/themes/Peafowl/lib/peafowl.js create mode 100644 content/legacy/themes/Peafowl/lib/peafowl.min.css create mode 100644 content/legacy/themes/Peafowl/lib/peafowl.min.js create mode 100644 content/legacy/themes/Peafowl/mails/account-change-email.php create mode 100644 content/legacy/themes/Peafowl/mails/account-confirm.php create mode 100644 content/legacy/themes/Peafowl/mails/account-password-reset.php create mode 100644 content/legacy/themes/Peafowl/mails/account-welcome.php create mode 100644 content/legacy/themes/Peafowl/mails/footer.php create mode 100644 content/legacy/themes/Peafowl/mails/header.php create mode 100644 content/legacy/themes/Peafowl/overrides/README.txt create mode 100644 content/legacy/themes/Peafowl/snippets/anywhere_upload.php create mode 100644 content/legacy/themes/Peafowl/snippets/breadcrum_owner_card.php create mode 100644 content/legacy/themes/Peafowl/snippets/embed.php create mode 100644 content/legacy/themes/Peafowl/snippets/embed_tpl.php create mode 100644 content/legacy/themes/Peafowl/snippets/footer.js.php create mode 100644 content/legacy/themes/Peafowl/snippets/form_album.php create mode 100644 content/legacy/themes/Peafowl/snippets/form_category.php create mode 100644 content/legacy/themes/Peafowl/snippets/form_category_edit.php create mode 100644 content/legacy/themes/Peafowl/snippets/form_image.php create mode 100644 content/legacy/themes/Peafowl/snippets/form_move_existing_album.php create mode 100644 content/legacy/themes/Peafowl/snippets/form_sub_album.php create mode 100644 content/legacy/themes/Peafowl/snippets/homepage_cover_slideshow.php create mode 100644 content/legacy/themes/Peafowl/snippets/image.js.php create mode 100644 content/legacy/themes/Peafowl/snippets/image_album_slice.php create mode 100644 content/legacy/themes/Peafowl/snippets/index.js.php create mode 100644 content/legacy/themes/Peafowl/snippets/listing.php create mode 100644 content/legacy/themes/Peafowl/snippets/listing_tools_editor.php create mode 100644 content/legacy/themes/Peafowl/snippets/modal_create_album.php create mode 100644 content/legacy/themes/Peafowl/snippets/modal_create_sub_album.php create mode 100644 content/legacy/themes/Peafowl/snippets/modal_edit_album.php create mode 100644 content/legacy/themes/Peafowl/snippets/modal_share.php create mode 100644 content/legacy/themes/Peafowl/snippets/quickty/background_cover.php create mode 100644 content/legacy/themes/Peafowl/snippets/quickty/recaptcha_form.php create mode 100644 content/legacy/themes/Peafowl/snippets/quickty/top_left.php create mode 100644 content/legacy/themes/Peafowl/snippets/sign_services_buttons.php create mode 100644 content/legacy/themes/Peafowl/snippets/tabs.php create mode 100644 content/legacy/themes/Peafowl/snippets/template_content_empty.php create mode 100644 content/legacy/themes/Peafowl/snippets/templates_content_listing.php create mode 100644 content/legacy/themes/Peafowl/snippets/theme_colors.css.php create mode 100644 content/legacy/themes/Peafowl/snippets/user.js.php create mode 100644 content/legacy/themes/Peafowl/snippets/user_items_editor.php create mode 100644 content/legacy/themes/Peafowl/snippets/viewer_template.php create mode 100644 content/legacy/themes/Peafowl/style.css create mode 100644 content/legacy/themes/Peafowl/style.min.css create mode 100644 content/legacy/themes/Peafowl/theme-img/favicon.png create mode 100644 content/legacy/themes/Peafowl/theme-img/logo.png create mode 100644 content/legacy/themes/Peafowl/theme-img/logo.svg create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album/image.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album_cover_empty.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album_cover_image.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album_cover_password.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album_password.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/album_thumbs.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_cover_empty.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_cover_image.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_description_guest.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_description_owner.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_description_private.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_description_user.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_description_user_avatar.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_description_user_no_avatar.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/image_plain.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_image_admin_tools.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_image_play_gif.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_image_public_tools.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_like.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_privacy.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/item_share.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user/album.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user/image.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user/liked.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user/user.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user_background_image.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user_cover_empty.php create mode 100644 content/legacy/themes/Peafowl/tpl_list_item/user_cover_image.php create mode 100644 content/legacy/themes/Peafowl/views/403.php create mode 100644 content/legacy/themes/Peafowl/views/404.php create mode 100644 content/legacy/themes/Peafowl/views/account/awaiting-confirmation.php create mode 100644 content/legacy/themes/Peafowl/views/account/email-changed.php create mode 100644 content/legacy/themes/Peafowl/views/account/email-needed.php create mode 100644 content/legacy/themes/Peafowl/views/account/password-forgot.php create mode 100644 content/legacy/themes/Peafowl/views/account/password-reset.php create mode 100644 content/legacy/themes/Peafowl/views/account/resend-activation.php create mode 100644 content/legacy/themes/Peafowl/views/account/two-factor.php create mode 100644 content/legacy/themes/Peafowl/views/album.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/images-albums-users.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/categories.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/content.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/email.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/image-upload.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/languages.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/listings.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/logo.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/system.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/theme.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/tools.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/watermarks.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/settings/website.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/stats.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php create mode 100644 content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/settings.php create mode 100644 content/legacy/themes/Peafowl/views/explore.php create mode 100644 content/legacy/themes/Peafowl/views/image.php create mode 100644 content/legacy/themes/Peafowl/views/index.php create mode 100644 content/legacy/themes/Peafowl/views/login.php create mode 100644 content/legacy/themes/Peafowl/views/logout.php create mode 100644 content/legacy/themes/Peafowl/views/maintenance.php create mode 100644 content/legacy/themes/Peafowl/views/password-gate.php create mode 100644 content/legacy/themes/Peafowl/views/search.php create mode 100644 content/legacy/themes/Peafowl/views/settings.php create mode 100644 content/legacy/themes/Peafowl/views/settings/account.php create mode 100644 content/legacy/themes/Peafowl/views/settings/api.php create mode 100644 content/legacy/themes/Peafowl/views/settings/connections.php create mode 100644 content/legacy/themes/Peafowl/views/settings/homepage.php create mode 100644 content/legacy/themes/Peafowl/views/settings/password.php create mode 100644 content/legacy/themes/Peafowl/views/settings/powered.php create mode 100644 content/legacy/themes/Peafowl/views/settings/profile.php create mode 100644 content/legacy/themes/Peafowl/views/settings/security.php create mode 100644 content/legacy/themes/Peafowl/views/signup.php create mode 100644 content/legacy/themes/Peafowl/views/upload.php create mode 100644 content/legacy/themes/Peafowl/views/user.php create mode 100644 content/pages/.htaccess create mode 100755 content/pages/default/contact.html create mode 100644 content/pages/default/contact.php create mode 100755 content/pages/default/privacy.html create mode 100644 content/pages/default/privacy.php create mode 100755 content/pages/default/tos.html create mode 100644 content/pages/default/tos.php create mode 100644 images/.htaccess create mode 100644 importing/.htaccess create mode 100644 index.php create mode 100644 sdk/pup.js create mode 100644 sdk/pup.min.js diff --git a/.ecs/.header b/.ecs/.header new file mode 100644 index 0000000..404bcb7 --- /dev/null +++ b/.ecs/.header @@ -0,0 +1,6 @@ +This file is part of Chevereto. + +(c) Rodolfo Berrios + +For the full copyright and license information, please view the LICENSE +file that was distributed with this source code. \ No newline at end of file diff --git a/.ecs/ecs-chevere.php b/.ecs/ecs-chevere.php new file mode 100644 index 0000000..85ee257 --- /dev/null +++ b/.ecs/ecs-chevere.php @@ -0,0 +1,212 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer; +use PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer; +use PhpCsFixer\Fixer\ArrayNotation\WhitespaceAfterCommaInArrayFixer; +use PhpCsFixer\Fixer\Basic\BracesFixer; +use PhpCsFixer\Fixer\Basic\EncodingFixer; +use PhpCsFixer\Fixer\Casing\ConstantCaseFixer; +use PhpCsFixer\Fixer\Casing\LowercaseKeywordsFixer; +use PhpCsFixer\Fixer\CastNotation\LowercaseCastFixer; +use PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer; +use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer; +use PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer; +use PhpCsFixer\Fixer\ClassNotation\NoBlankLinesAfterClassOpeningFixer; +use PhpCsFixer\Fixer\ClassNotation\ProtectedToPrivateFixer; +use PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer; +use PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer; +use PhpCsFixer\Fixer\Comment\HeaderCommentFixer; +use PhpCsFixer\Fixer\Comment\NoTrailingWhitespaceInCommentFixer; +use PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer; +use PhpCsFixer\Fixer\ControlStructure\ElseifFixer; +use PhpCsFixer\Fixer\ControlStructure\IncludeFixer; +use PhpCsFixer\Fixer\ControlStructure\NoBreakCommentFixer; +use PhpCsFixer\Fixer\ControlStructure\NoUnneededControlParenthesesFixer; +use PhpCsFixer\Fixer\ControlStructure\NoUnneededCurlyBracesFixer; +use PhpCsFixer\Fixer\ControlStructure\SwitchCaseSemicolonToColonFixer; +use PhpCsFixer\Fixer\ControlStructure\SwitchCaseSpaceFixer; +use PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer; +use PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer; +use PhpCsFixer\Fixer\FunctionNotation\NoSpacesAfterFunctionNameFixer; +use PhpCsFixer\Fixer\FunctionNotation\ReturnTypeDeclarationFixer; +use PhpCsFixer\Fixer\Import\NoLeadingImportSlashFixer; +use PhpCsFixer\Fixer\Import\NoUnusedImportsFixer; +use PhpCsFixer\Fixer\Import\OrderedImportsFixer; +use PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer; +use PhpCsFixer\Fixer\Import\SingleLineAfterImportsFixer; +use PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer; +use PhpCsFixer\Fixer\LanguageConstruct\DeclareEqualNormalizeFixer; +use PhpCsFixer\Fixer\NamespaceNotation\BlankLineAfterNamespaceFixer; +use PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer; +use PhpCsFixer\Fixer\Operator\ConcatSpaceFixer; +use PhpCsFixer\Fixer\Operator\NewWithBracesFixer; +use PhpCsFixer\Fixer\Operator\ObjectOperatorWithoutWhitespaceFixer; +use PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer; +use PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer; +use PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer; +use PhpCsFixer\Fixer\PhpTag\FullOpeningTagFixer; +use PhpCsFixer\Fixer\PhpTag\NoClosingTagFixer; +use PhpCsFixer\Fixer\ReturnNotation\ReturnAssignmentFixer; +use PhpCsFixer\Fixer\Semicolon\MultilineWhitespaceBeforeSemicolonsFixer; +use PhpCsFixer\Fixer\Semicolon\NoEmptyStatementFixer; +use PhpCsFixer\Fixer\Semicolon\NoSinglelineWhitespaceBeforeSemicolonsFixer; +use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer; +use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer; +use PhpCsFixer\Fixer\Whitespace\CompactNullableTypehintFixer; +use PhpCsFixer\Fixer\Whitespace\IndentationTypeFixer; +use PhpCsFixer\Fixer\Whitespace\LineEndingFixer; +use PhpCsFixer\Fixer\Whitespace\NoExtraBlankLinesFixer; +use PhpCsFixer\Fixer\Whitespace\NoSpacesInsideParenthesisFixer; +use PhpCsFixer\Fixer\Whitespace\NoTrailingWhitespaceFixer; +use PhpCsFixer\Fixer\Whitespace\SingleBlankLineAtEofFixer; +use SlevomatCodingStandard\Sniffs\ControlStructures\RequireShortTernaryOperatorSniff; +use SlevomatCodingStandard\Sniffs\Functions\UnusedInheritedVariablePassedToClosureSniff; +use SlevomatCodingStandard\Sniffs\Operators\RequireCombinedAssignmentOperatorSniff; +use SlevomatCodingStandard\Sniffs\PHP\DisallowDirectMagicInvokeCallSniff; +use SlevomatCodingStandard\Sniffs\PHP\UselessParenthesesSniff; +use SlevomatCodingStandard\Sniffs\PHP\UselessSemicolonSniff; +use SlevomatCodingStandard\Sniffs\Variables\UnusedVariableSniff; +use SlevomatCodingStandard\Sniffs\Variables\UselessVariableSniff; +use Symplify\CodingStandard\Fixer\Commenting\ParamReturnAndVarTagMalformsFixer; +use Symplify\EasyCodingStandard\Config\ECSConfig; +use Symplify\EasyCodingStandard\ValueObject\Option; +use Symplify\EasyCodingStandard\ValueObject\Set\SetList; + +return static function (ECSConfig $containerConfigurator): void { + $headerFile = __DIR__ . '/.header'; + $parameters = $containerConfigurator->parameters(); + $parameters->set(Option::SETS, [ + SetList::COMMON, + ]); + $services = $containerConfigurator->services(); + if (file_exists($headerFile)) { + $services->set(HeaderCommentFixer::class) + ->call('configure', [[ + 'header' => file_get_contents($headerFile), + 'location' => 'after_open', + ]]); + } + $services->set(EncodingFixer::class); + $services->set(FullOpeningTagFixer::class); + $services->set(BlankLineAfterNamespaceFixer::class); + $services->set(BracesFixer::class); + $services->set(ClassDefinitionFixer::class); + $services->set(ConstantCaseFixer::class); + $services->set(ElseifFixer::class); + $services->set(FunctionDeclarationFixer::class); + $services->set(IndentationTypeFixer::class); + $services->set(LineEndingFixer::class); + $services->set(LowercaseKeywordsFixer::class); + $services->set(MethodArgumentSpaceFixer::class) + ->call('configure', [[ + 'on_multiline' => 'ensure_fully_multiline', + ]]); + $services->set(NoBreakCommentFixer::class); + $services->set(NoClosingTagFixer::class); + $services->set(NoSpacesAfterFunctionNameFixer::class); + $services->set(NoSpacesInsideParenthesisFixer::class); + $services->set(NoTrailingWhitespaceFixer::class); + $services->set(NoTrailingWhitespaceInCommentFixer::class); + $services->set(SingleBlankLineAtEofFixer::class); + $services->set(SingleClassElementPerStatementFixer::class) + ->call('configure', [[ + 'elements' => ['property'], + ]]); + $services->set(SingleImportPerStatementFixer::class); + $services->set(SingleLineAfterImportsFixer::class); + // $services->set(SwitchCaseSemicolonToColonFixer::class); broken for php 8.0 + $services->set(SwitchCaseSpaceFixer::class); + $services->set(VisibilityRequiredFixer::class); + $services->set(LowercaseCastFixer::class); + $services->set(ShortScalarCastFixer::class); + $services->set(BlankLineAfterOpeningTagFixer::class); + $services->set(NoLeadingImportSlashFixer::class); + $services->set(OrderedImportsFixer::class) + ->call('configure', [[ + 'importsOrder' => ['class', 'function', 'const'], + ]]); + $services->set(DeclareEqualNormalizeFixer::class) + ->call('configure', [[ + 'space' => 'none', + ]]); + $services->set(NewWithBracesFixer::class); + $services->set(BracesFixer::class) + ->call('configure', [[ + 'allow_single_line_closure' => false, + 'position_after_functions_and_oop_constructs' => 'next', + 'position_after_control_structures' => 'same', + 'position_after_anonymous_constructs' => 'same', + ]]); + $services->set(NoBlankLinesAfterClassOpeningFixer::class); + $services->set(VisibilityRequiredFixer::class) + ->call('configure', [[ + 'elements' => ['const', 'method', 'property'], + ]]); + $services->set(BinaryOperatorSpacesFixer::class); + $services->set(TernaryOperatorSpacesFixer::class); + $services->set(UnaryOperatorSpacesFixer::class); + $services->set(ReturnTypeDeclarationFixer::class); + $services->set(NoTrailingWhitespaceFixer::class); + $services->set(ConcatSpaceFixer::class) + ->call('configure', [[ + 'spacing' => 'one', + ]]); + $services->set(NoSinglelineWhitespaceBeforeSemicolonsFixer::class); + $services->set(NoWhitespaceBeforeCommaInArrayFixer::class); + $services->set(WhitespaceAfterCommaInArrayFixer::class); + $services->set(DeclareStrictTypesFixer::class); + $services->set(CompactNullableTypehintFixer::class); + $services->set(BlankLineBeforeStatementFixer::class); + $services->set(CombineConsecutiveUnsetsFixer::class); + $services->set(ClassAttributesSeparationFixer::class); + $services->set(MultilineWhitespaceBeforeSemicolonsFixer::class); + $services->set(SingleLineCommentStyleFixer::class); + $services->set(IncludeFixer::class); + $services->set(ObjectOperatorWithoutWhitespaceFixer::class); + $services->set(DisallowDirectMagicInvokeCallSniff::class); + $services->set(ParamReturnAndVarTagMalformsFixer::class); + $services->set(UnusedVariableSniff::class); + $services->set(UselessVariableSniff::class); + $services->set(UnusedInheritedVariablePassedToClosureSniff::class); + $services->set(UselessSemicolonSniff::class); + // $services->set(UselessParenthesesSniff::class); // broken for php 8.0 + $services->set(ArraySyntaxFixer::class) + ->call('configure', [[ + 'syntax' => 'short', + ]]); + $services->set(NoUnusedImportsFixer::class); + $services->set(OrderedImportsFixer::class); + $services->set(NoEmptyStatementFixer::class); + $services->set(ProtectedToPrivateFixer::class); + $services->set(NoUnneededControlParenthesesFixer::class); + $services->set(NoUnneededCurlyBracesFixer::class); + $services->set(ReturnAssignmentFixer::class); + $services->set(RequireShortTernaryOperatorSniff::class); + $services->set(RequireCombinedAssignmentOperatorSniff::class); + $services->set(NoExtraBlankLinesFixer::class) + ->call('configure', [[ + 'tokens' => [ + 'curly_brace_block', + 'extra', + 'parenthesis_brace_block', + 'square_brace_block', + 'throw', + 'use', + ] + ]]); + $parameters = $containerConfigurator->parameters(); + $parameters->set(Option::SKIP, [ + SingleImportPerStatementFixer::class => null, + ]); +}; diff --git a/.ecs/ecs.php b/.ecs/ecs.php new file mode 100644 index 0000000..6974065 --- /dev/null +++ b/.ecs/ecs.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer; +use Symplify\EasyCodingStandard\Config\ECSConfig; +use Symplify\EasyCodingStandard\ValueObject\Option; + +return static function (ECSConfig $containerConfigurator): void { + $containerConfigurator->import(__DIR__ . '/ecs-chevere.php'); + $services = $containerConfigurator->services(); + $services->remove(DeclareStrictTypesFixer::class); + $parameters = $containerConfigurator->parameters(); + $parameters->set(Option::SKIP, []); +}; diff --git a/.github/banner/chevereto-ultimate.png b/.github/banner/chevereto-ultimate.png new file mode 100644 index 0000000000000000000000000000000000000000..24de8e84c27e129ee6c86405b2341bda055576ef GIT binary patch literal 167712 zcmXt>_=uh;AOcs}n~QKR0DwRsK{(h143dR{4uL^12uO#=m+&>g@Wtt)&k6R=_uZY;ygin8sUq6<6)wEp z<^t6qu15+i#1DpRrw)1BmI%W47+?Q#=}7Jc+@s8E@9g~>RkEj@2z6KVAB3E)yzEhB zq*)YbSuBKfd_sPeeCa(V|A!$6VW9o`fp@j1a|Jo{mEs5_Sg^2M{KUQ2@^A}C#HK_jwrMLhm_j!nC~;C>XsSoGz}82~0P z;Y~bOm*ZAbezjazE%PLHyZ5pQgr3)^;P|k@#|&l7sjiX+e0P2)yduhzOmxh zgAXP-7(H=6`sSu@b${ikyHSFp(Y<@8Ds13Nr8jFl9Y0X;jXBokSdBaj?Uz-aeP#!v z{p{Wv3aB4c@W=|OX)7Lf)qVarfPT^9b*g8-bw2$2E=yfB!8KnvQJ!_Q@rf(-OWLQP6Rjn>gA}=2ul!rn z4wjrjDB%xy8e;3K5=Mv0dP5xV+_N4|ajOea&dd+*%yKNcEMr8_DT=^0mR{>kK3b3$ zH|Q$keiHZjqJ(?8eOkQ-9jBaF@u?2gOneAxsc^1(cIzA2 z_gk`7@+r%(vAW45izt$T?>+C{D<(H1G#nEH%hNR9Pc%;YIE_bm=Pa&lk4&wE-0mS< zYkvCiM^o?o-I8JAbH?4TgkS)`0Cra9r=kj8ehdp8I-O@QdGc70`7zl9)dhi@f=mnb zp`Zgh%+g|QE&q#n?#qz~aw<&Y4Y5Y>Y4b}%{@VlJsslV1F;D*h2|lywehK-ohZ7E{ zYx}H^2B2pBFunh7eOA@$SL^&fWi)*4(bd=U?5(&k_QFE??7vw(3yN^z{OZzu(}}66 zslL9xBc`SkeN{1A8w+7$y&DVP3(K5%uO(AbHWl|PoGg6&*qp5|e7MfQpz?5G04HS| zwV}V6(_8%1{#KifV(eO*q}TXUGwsExN}i<9LRf4yFPP&r#0%ntan3fyj7D(ICKs-< z8X^|PnrGXEzXq-_=-v5>*h1g!nhW1vxO0N_3d_n)w;#sU`Wy`l3k(b_cAkypKa^xq zTvK%>R>G4S$N4!wT==cfY4G=H?g<`eG!VBv_pAF}VDG^X5yxX)=DzbyG0tqOX@}(~ z$jTa%7Fa)iEGI$!YPSy-@+VPT5WIP+(Bt=)WpR==N1Pr#DlmzDQ5TuQO|Qu0{(2rJ zAG>p8`1QmxGoib+-toDHuUhHNXtzpwij=MJCBpi1AMfDq9_PaN{h8Gz&zj|Lj+h3XUz5m;}bFRZ5 z12|2`OG=LaO{stNZezi0UFGVApI0H*Y5l>%$FinRymha8v4O5M;lyok=fa!K&^Z3T zftJU+nMC_o4)b?5X}xjk9GAWN@Zn4@-JEkT(s$?6ZP|GoY3bvpnJcNqdV72_s`{xl z>9cY6hd4v--ij9&VwkxI$ImHM zTz6WU{J2W%nUFvISD^aJZwhHXzhFEjW?Faso-^mlD7VL0K=H<$()#LJP4A-PlGh8| zX19m?xR;!6;q^A}b&VIj(i~|8!_9$5je%WxrmmbA=c&vq+oxWTT*IG{P7VB6VyxnL zt2o5Iok85iD_6czIcw#;&wKBv>>JFSnnWnZSd$iA3x7|qj`)%)aW>xqFZ|_?+4wiA z_x94n`;z&Lo?N}(b2tt&1vh}JbMnf~JCauT{Q2{Nso2e7D*NXqRZ+HLN&0=MnOF1g ze#yuKIMPC~B5$ohOtbE9WwX|Lu4(jP_RZK|GYGCb@4!aIFOvW7u!)b+dt)363|Gdl zE>U^g^ZrOHK4grGMNzVL5@j8rbi*O8bz>((toJln&8InW39R76R`9D}*DTVXB-|7%u=&rfKbr`w~8IAApEayP#%0ScnFN ziHn2dK1P7RsYx^`a7G9;1}VZ^tOe1M|0D)OWq1IG{eDzNrbx+SG)Rj|!4y4{`tC{(2nLWLHcBZln{lQ^^)fGr~t0_7ZWU zUt|lfGZ9Z2Q;V_3!$R1y7hg=&F7Uciyox3(`*VK@^Ym^p!wPBCrtbDa4BKO)$Jj}o zZJfzMFzeRrlSpk(`L_-}$0aWsmoUSgJfn67{(6p+5$C=l`IV)R9*{{B=QQgszJRS6 zKVvLKB6a}YHus_!ZR#pNcTjjLL4x;~TFB^~DYSU2SuVm8XCGJM2D6M~-5FE&w~d`h z>l0qQG^VRCGxATTJ(852t;vf1)1aam8M${l>~%Aavrmy5&{e7(1m;eXc%1C>B#vip zbCDKuTmfGcKoJ5{VD6||^vJ*^k*blBI4y;VOf;)D8Lv!v)%e&N8M2WjsI z*vxMgQ*4V9w7S05?JL; zo5rpY`rE8J2N1*9DUnsqnu=?s8tC&>*ectuFV8N2y_$BWJI}bzop-8g&53tr^y4*7 zlR%i}+D>ECAngk$ zk;r<8VUfj6m++FS(3qbYN8(9uW+lU+Uf+-%nG8N_P$hTk{S$H;1PqIrevtXe>$>-a zM^DJpA`artDhy8yrNMwW6(C5d=n{EJeew{r9~d8e7wnHDKTrgK{qU$`5Jqz4((d4j zl|(^2uVkXCK3p;b2&d(NA|G;Nod$4fDqf91zLy6)u7x_Eqy611;Kd8D;E!o|V4psy zAP4|no{%J7W?fAp5kZB)8ZzK#jtst7&{eP-Nmhs<_~_%U%y3t$=}J#U+7`6xO|`G- zOyPTy_CJ@dPU3wj2x__VNCxS9Hz$O-l-EYR?$r}5&RqK1CyR4sxoS0URbadZs6M~% zW@o%Cz=_Ry!AeLE?yO2KSN0ZAdmkB2&rMD4EKS{FNfwh_ta#!(#%XK9yu;xCF>wm3l0IG`#+97{Dkq%<=dS6g#*$5~<6G$HQAy+(?pH z;EWIJ(}k6BtAA6%I1AuX^4~C5ai+>~kfQww8h<&sOoNdpwlpi)B~{dhx4@%8--jaa zBY0VvAi(MN)G2DP*4YYx*!l3H44{Yrv;YVj1u$ntfvOwxD(9|Ne5rU52!i}ubWRz4 z#;v}XAYkYL9$XW~5W&)n6~}8J;R=EJHZ*NoFHK0$oh=4s9(Kl?kV9@{f1tLZ@w^gZ z(S1n0?@!9u=dsh0*4p}q?KoxDlLEvAVR@GxnUje<_LBLZGIWnnd z*gBDALxCknV(;Q35Gs7*2NxOYe5w*ss}^0-F~_>D@1j>j3U>H%qFSdhvFF;kLov-58f^Fei81P*b>-IemsW^jSe5+qiN4LlMm3 zfMu`{lCf~Z66k%@fg$geqhWv>aN7=ElQ36=7Y#6%76T)f-t}B%J55i?;z+ZiV~S!e z{MsJurpDrVLRJ%*zn8hUzv8ZPo^0E+F9iq0c^chjZbrv)bXn2* zYTWJ>X4oY#SAV-Zo$f{BUPzwetk?^Z^S=DpE&2%wWMtJLOF6I%GIUY8Hj;P;gZ+^3 zRB`-*5>Yx=sUd<{jnLvdrPYVQWZ{Vkhyqy?pI!ns!5qn!DagvchkRzlsQ*RQl=!;m z-(_0oWg$1IIr-nns9B%s`_}mTp!R-#3F}laP53s7CG&;6f_z=QAG2xBK*ISAx&4ps zsxv$ZWF6>zv#L_^Cs^;p@m0fMv%ULYu6ADY&-RB0zl z3w*3K4ZQyTzUI$DyQ>{2izD+k?er<0J!4AuEAMes$||mvdVN*lzy)@rzTXer71HlV zMlS4_w)x&ynVqC<_5|YhQmG;7GY7xDdB21dU9z^MpGTGBcCCkW3omjee@$wO@!ot8 z-d!+6Sl7BsD}!8xb|9>sl{$dDw+auU2sUEHTv{#b5jyB@^nFPFD~S#^!;*-=$xPCN zlGo}E6ZL*{(@;0>;R%%d&qBXctL*CONscWbn?8OWRp$I#Ke!4w?tWTJL3jWbO-(+h zA!KNMp6M1?dE|?l(;gJUN|RM|$fAS)-HAsQ4sdassv-Q*AwzD z_@Z%x(LwNjc107#1%`enbQ8VYDwV7H!_i0O4v?0pyEsk6VLJ zNiqYHNRL!Oj_!PD6ULuB9VS_T0TKhg!chDS#^2jKVQq$lBM^2KTt7R0^8(u)=2iVw zi1F#r7;s${h7SSS`HC_r!E7$DRcGWMOQl?wR>EF{dqDkMnZ#3wQk5wDIl3H3 zds1kItf_3B`T%rR!dj6oyyHk@B#eI*XNDJm&s^a*lsrw7dM;wX)JX%M$0J`})ZMI# zFt=7Yi2O-F0yfr79M*HO{49_HtHlVQHT&$={yvy|7(Vh%r}6!3nd5}2t=oJr`3Qw- zRMEyl`yTG? zp^U{_{N&tiuj_Yt2gJ6gCK|Q4b>j7kHMlf&-X7!LkKum)r?>;Zm);!@D`Ed0_nMEB zn_fgbBWtl(P^<;>>$xAFn%xM4ctr zRpY}g$MVl=Rb79ZjK|{-!jj{dT!zpP&-`Z20vHr4T5r?^{bbSKC3xvXBr~xg*``)H z-2&71EM3p7-TTs*?ON@}cvJ1D;_Wja#Gp-;V+&F!>Q0h(!5&XEGH8J8RfGzv!B)1l zkcSZc;!FWs%W`$Xo)h>Mpu~Xqww~hjMzyFP(DTe%A#pylGR}i(F8n|krw*XyMH9%k z^nsHo=NuZ8jQ9+p2-FYQk<)<;X-PK`TBjN46yTN#bxtXQfuO>rP5w~bK4W!={MLmB z;Xrm|TOYN@qU)DkzeTpxW^JpKdG5pW4 z4B+7ri@dK@g+qW%E$bi2Hg|tQA3jN_PGK|V_c-m@hpV5&p~7-ov`P}caLZ% zxo1ZKlik_&2A*m(xBp)J^Tjg&QjI8E3Oq+V!OHw^sDZ-|W$6rqrRO~rYVjY?YgH=b zy6f=wWs!V-MZV}~NQUqg`K&MRUwsb+j~&7X@c*-y!br1Hpy;i_XQZwY*3?sjI4*ot zvF%9%=@57C4_q9VdvFi8vxKC!Bl?20Jg0b$dUj^&r4&ctO7GBCjvaIO!FBe2*3O|A zXGl1Dq)+Az%>-GS%p_zM@`rjIkKBFmrML;+iDSk^B31)zwIt+EfY0uCzlTS)x`|3% zOE@H0fERkkC$$$`S^g@^$?CvskX}E>9k~{cZwFmdl@ZB$Fr$uYc}18U8R(Z&fxOpB z*GMGp%Si$8M7A+fNn0~EH!TVTEnWRw@Q;%s{IhJuZ+J1{N94MWJ6QNi_JA2QQyto| zF7teGlmR8=Enm7R`aX~yBHVh6oClU*!iV@7Qa5NVhgy#EgPy>yB#Y2)^n%Yw5Yr6E@w~Q^nOD+zJ0wZg@oaq-rc(- zC#LM8xp|9-tGJEi(LhUH?N+so>(sBPUnvRH0s8K8Z0&_*6^Qe`(sA3ds(oBXBy0Yq z#@MWD%T(CZHJKtZEjobm3B5S|9N%@+1F3(EFexvmPWfJQpVplLy`bG1_UX?r@dEl2 z30-eFZ~cVfh+{%IP4T&6@lzH*$OCsF3RXg?u2t4}559&dSrMYAJN>dWbGqV=iW|pN z@{w4&SqIo~N{3%hD5?IWI^mOGXaaT!5pc2o1VB4}LNf6R)){sdbgsTd0g#ZO@`CLE zxAQu@J6i`~Ee?bsh|y5p*-}6UTC!YOhBei>7)|>Gxil?FJP8_HU8%84`rlQ2C@ixd3$9G8$D#;?E~Jhw=FH6NPiI6zrI<(L>0^lg6H;2O z{wHV+$&i3a+P(K7K7ubAz5Hc&%Oo_!=!wsF4frD?1g3>^D z`5a8qcY%J$Wexm$vIgR|22H0afvNc}fs8XY1=~tiDUq`%j%XSilB0$`b8eSHz6+k( zrU8eGZ|49x6jBFo@_O@ck~oRJ*4cMblSkp?EAgsVQtt7Nf z_{Il6MPu4SgR1@cpWG} zQ4>l)O3jg*1%{AF>(oqgU5mdI9n_BmNfSZYAn!f&tMN)G)-7Ra*oULRb0caN!Q##n zG@J90%8bt=Y7$3_EhS4&{2&~T;e3%$1ndLICI~?teA~$)Bub4qWxfyeSXTpoR3KUq z@>0hV$pE<^vxL2;VJH-KoURNW2|*HA*O~O)!v>|DKK=)8`xTgG4bL%`_}Y0H9_*Us zKwsXC1%p_D$|%#lyy{g0X>QH8sox2!!_P_RxD)@Df(F_6ZJXh+zUb96!cRVCb}WY& zE1silM5;o#ldz4t>6wn(y7)&(xD3(?d*SvQ8b%`ME&devqFUL61MCf<*8V@)$hItz z)yY-uI||-8!zXI^w}-F@_i8mM3Qh_S$fqAf2bGJI@qzUWi-th{8X0XMLD+b43$_?l zA4QK(xhy>ob3twmMaJ{GG6`ZypUcTNM2nS=f*OQlx>P}D(E<7`uzn*cIJr{3>=3ja zSb_mc@R8#l*fFRzbWja@jJyao>$Jcc@CP8xFVm{yk)SIAP-IaL%`~w(X)LP-Gs7Oxade&)2Qov-PUf1AQE#w|K9v?i zwt9_8ADLcmobDo0wEm9AzBDR|`S-AD0OLo=6@Y``BM4W6#p?N=*U zl|zomRx3h=bf_UCEr|vy*QkBwahW2Cl0!d2Q^>w`XQixL+U`CR@yV`U3oF%T?)LuM zJ`%sa2~TZj!fr@2M=Or--+PdJ@b?Ltm2B%c?F=;haH?hk4dcLw?~qG>9WNIVg53NB zTojUNuloDmmbA13&nF_uh819SzTdSpVa3;f7K zkX9S0A6&FuwgR^`0i=A2K2iDUyffF?y={da$JxTem6KH)VVCQp%AUzOgw#%JD*Or|4mbF{91rtbm?^~B;FUH3F+8viL zHix_E-`#BnO->=9KsLsedLEl+afC(4)HXrRX2W?tR{>^&cU82p)Ai635h0bYzG;qB+b-xL0&(4 zgx(}+s&EfoY(XeTje5l0gIW2dN3-413z8DJk=zj*?K5uI% zYB()G!GmY@`tL$6h<1D+yoN}iK?nyKc#4P|_&wIa0uEJy`r{ua-87=lB}nl{`G0v@ z>>}=bmG;u2s>|XYa^#a|mYP`7#<{F7Z(5cb6xh%3juI!QJ z?6_!cwI}qB(s2nSzJ*=!8i*u;b{d~e3p1CrNg9^!5_m@KH2I~xXbNos1eM4Yx7F(N z^9eO5o!C!ld)oFi7&j7<>~|OMayvTpKFur|KI{%%>t#s9!kn;5!~>7%0m@hdbkHDf z4pyTXHHN|bC7WyXBzg~B5t@@xa)6f}8#i!W*dM?29~sE(%~MB}77vI!cY({o2=a-e z|D-VX;PV&}>`eU2QTpA!_xwIzXjQ34yrl?y`-mkVyaT<64;Avv8f;>xB$W-;w?y)D zKgoeS&(HqHwv3^vQ07YXL*PA%00(J3g#;QnSA%@4DrmghEXAwx+|#z~lIUSv2&6ty%s};R!-xe?Ze-=PzJ222|WUg@G;~iG^ zq3beraUz_5u6hBnRc#4g(M+4U-E~cybfBjEc{7c}Co}gOEPFSlsvZ1X_G^!gC}z)` zWa4HyhXHRASvAPbrOhQM1sjY!rmJA!5?Z@dUaAoJgM!}=|E}j2ZlQ%}O}X2pkE%$l z^3Pe``&vx$3wayaVoeWA?auhszwv1eawOSJb_c&B-?Rlq}U)jK6QXUL^ot zoEv8{UwzznxWR5tq#Lk@;?F_*b?}$Kb)!1Fh~;nla1`deu%jg9II^r*tjt*lij+Vu z(9mF^AzJ~~JL%@7b9YB5XP{N5K-dzHk1{!!?LjS5Zsxt)_gB%KTeDFqO)6Wfk;iph zBb{YsYEx-z_G#Qv1DxlY(d_o2Up7rF$rPL!Yxn_zRJIc0LsDRK)+_x}NfjWFDN^5u zkl;<>JcRwSAS|O7TC4nOAAr9XON-tCe>9GARh8iUGQC6d}ELT6=4A#{^ zX*oeV?Ep=0z^Ea78;Q}~GGH?S*Eevt^L5{z5(@bKeF7-JNs*CbWUm%9%CG2SJ3b1T z^^N=)Ed5SmS4`TUclw9V4hM!8KJg_Al=Q=qg}5v!L(L4*uPuWUJpW}}7O#Nw-6D)s zzjhVFJ38TYnY-QCo2kUTIiY!h>$7@b+!Q@oDfiK0S=)CV^EgK5pVI}>J{0@o!Re)8 zQLeQdTVri^y-dlT;r{%6`|iS?~dazYW0AVETPBl1$FP(v+bQ3kEHUewc;cPtv= zC_u(iuoq-8-T>AeP-1^CXIA$7CUt_jb&5m6X&4mKNG^D^`9`9~l3cuB+d< zBOO;=Q_hIH|AVtKW24UXcc=O+PF7L3q+)Uv`?+9Nw1FQ9N%D$44QJNnDKb7kpF6CC?**H~vc&KKpnOr!50I1ZfoEcU??BD+j32;5I`x$qw_z)=l{)lPmmB$c zl&T+xHDTUx;12xEd^KNpF6#R{H}4N*I!=Ar1#^g zAY9?=rBo8)s_0x-mYnF^rbYY%{2zGZHE00bMwD_wZzSJ(QV3_B0=YczyHBaSZSmy4I5jlGDSBvI3X9&hXk;tJzY!+}3ZZDLjlc_>wV;Xktqm zk%Xb&rane&lPgI2(feOdRc(oQQnPbdzbh5|U_91x1y7%3eV_BQdFnR66$gagws_jt zoB-QZq&3wj6thMdVu9w`&@DLMMn86ML8u(^&{Hnlf8s3Ke_If^dhty z7~%KU(4i$!jyZPOf~NC6{+dP)^vNyMc$>y3O+YSIbt`>!}m&+U|m-=2q$5F zX4nkyNpzo3a~3iR^DjPB#BQ$AtJ*w`1-#6k6=ySsTKNck@`eY1p}T-oFnPrCAQQ&`5t2wdC)rCk zlSFxoHJMb7=NNSr!;$+!`o%US^iFwgb&_JX_S$o0p~TVq*ZYgxHST4y{;vjSMXlWM)R^!0G9geZ^6#Y(>vP@HRI~)WSK|U2H{+`U zD9aC|sB)4fayICoMTS0~$**pe^uyEAF}H^;2HW(NAKQys>{`#FpkS#(|6q!Ba(xah z^^tegg@V$v|nLTK1N*Rb7k6{L%nnCxMG~?|B;YHX1N7`Lg)(Mv5Q)Vg*rBi zAE9yxf%5~8jR@s#Nan;&5@zPqc z`Y&yOw*cIM@DZkRoNym#6YY{pE)uARrfLNBgDLV-;~@Po`X~zXfFTZY_=lfGI!JII z9EzxihK~T%^VXKz|V6W!$wCA3-m&9TIv7x+a9s=HOyQWKwxQh$S`h;_xFClDh4 z!G-wKpaC=Hu@98)S>o}#;PbW-=IV&61EvYhVI4X~J1=W`gP~Qpr zI1cBaF;TP#1m!^Sj0+}v>YhDId6&}PX9{^<-&8cPgQzz1jD0NM>`880 zo%XF3Wlq-*oH~iMSQ(CEPXylBNDx-6GMI8(oqhI{^lzJUFPnX@0%0_?)RpVVx%#xu zkbP8>s>F_MpWf}?jbI#&rXUV+)jNcarvxKaB~mN*J+;t5fhTqueW(&>Ux~cH;B%T! z6arCD|zNml#7Do@dRnMuO%@0;-pE|tujigkS|&&Bl>|ZzPN82=I4v_!)wv5e4JlnpehxIM%a&Yj3zjST%?L-`0M|Lcf_2wwNERYKhJg9-BS0BZ+;+w?=$-2Ofjb z$0&+39<1Ia=q&^Sk?*QRhnzQ6F%oI1lfXzqU6H6CTYS2Gk}xBrh73Jm$LCl1sZBvh z$g*Edg%#$S-uaWPg`PWqEbo_`Gwxx7^kY8IKB!3F84I={L!(k8em6(~6L#5~aYm$G z?4>%xL$T?`ZpkqG3BhwnSSdDqLk%@SdxwgTtkec4A586`k6;)XjuS~O<^47W3ngMK zPdilKkD|u2Vj~}r!|iFbG|<5xriLf~^;E zH5FR|xpWG!GbNWY!#tq858IVDalY)O+l3+ghP@+H(?A0IXSuQEmNt%^?Y&n@*lc*UYpeyNwAofS`M ziFZq3WNrGE%F2hl&tH>6my5I-rhfyKx6d^YO349I6f_gw2AaK%cDE7qqj}U_+H$Ot zKZ-t)gW|WnRv)EQ|0KF@l_Cubt;r|9m7F=);hmk}eHtwT)yf6s$<^A?`|@ckc8qRY zKypPvt|{fFM5=Ur@UlB5HE!V{FysRMB#Q6A+o+Hmgs`DSPe3Lzhw%aLaVF@sP`Z zA~pNg;%`gJuL(mzO7*EVh`DOj=ZJ*pvj-9%t~^EO_`_?4XUcxs>i;G)PmQ13aK~2s zZN)oP%0Kn_ol&Ki#q)8 z1SKFZ^9Nlb_>e1p2!@{7#l(KyLcinjd!U`POJcn5!pFSH6PYGoi<{0Kf%!TRmX!6(wE`~P5;5G!}t84x+Ng!SGsC$(clYa<*OpiRvsx$pTI?rigDE3j6 zzmT%xGCD}ytt?Z2-Ks4l?PW81Was~hG(9}dN6R=GJ&6|WG0ULipBsjZySLoe1eB1lm ze^PH#*;COTq|3*g*U^KySyn3P2>f_6vdc9M|LuCI%DVXMl`8zxq~!i23<(}I6iqdLzI?_O1qw^^srsF0DAZBr-4g*v z+KMwzg`I+rQ*?{|Q!Z6Y2_J}vfj)1gjEl4TTtQET<+Pfe#g7opyBck2KxAnB@)ukf z-AJnDCXSg4rfrG<1E-EbFivzsv61t%*uY$9&@Lu`MS~^7k$tAgi3iX&z+2eL_1l%e z1@MT73VClh2s8=~&dFl_fMSwJ#-?l!_`;O` zcggoVuAg`>Ik#rDZ|s~eFH~7kbmX;72v=^)Mz4%NC)q6g4gR#=X;b<7-0X~(-H^8F z#&q25h)na;U4R?9xHn?Qy016x%i(unp<$cB7;i?bC1vk;`og%JgyEwW@NMyt^!$D; zi4jLVoi5=F3&v{zyp+2O!I1^KtjWTac>D*w9tqt&JU3e$5Jwmm_YkG-Rj(59Qoppm zkhz9M*7&<1e~Dy8`u1%@nWI$?2*)gKGzfd1lQsC=ye}~Zl~HNr??+5Ts@PbR&jFp& z=+Nf@!lbdm?#0{iB=`wL1Prb4rtosUd3=Lds>6M;TXO< zh+L`&WH1z&)W}rcxtew18ZKgX)18}-{oX5>6DRb8%0JC5>-Ea#2+S3BH?`&|cJ1t0 zI_JKuJ+Q+}APMc994o}JMAIMrvLo4YkkCDlL7c3GOwe6Q(_Yk=XPmkk8DFXV5?y6$ ztTQu#b`g~Rk=cGnQI4A6J5g`QS4+w9_2la!CfEe25EB*BufEC}+!K0>K2WVGWr#7^ zQ?9Y=u*mvI2gI0YK)$Gqe7LXRjGs+NC#{vtsm0rXN{}641W}NUsidDvE3Dc`>Sa8; z3&arZ18~t)DBP|3K^yRjZ~TmGHn4B!pJ-QNtWb{tXeNZ_2nxLu=6x63p#WayBTRx& zV8(0(9vJ^4OZ#lVxXY^Rnxwwrp0L_+-6VbHwk=Z~WpIoY#fys2MeRtO)w+Q-udIXZ zwl81t@V4Y~-0!wFs%SiE(vo_awd&GaJ#PPStzDYHVGwq9+Yn?A>T$7U{W+G>w%23D zll!4fpNGKfguhA~@n!p9Go5zq1w+Z3pZB*<2=Jx9g7O>Gw`sK+Dq+8)%G^CeRkw9# z$$`C%!BSkuyU3P**je(VR(wTk^=YV%fTbC-0!l@Hx2h6HpQgZLwH>U@~u^z5efV8)EG5vWaGPZAPM^4;1<&7 zM1R`qeA9bkJ*-#3H%{*DTBZ%}-@4|$LOXWnnwe;(ynjofdTh?fl&Kww?Q+J;3s+wq zyI%C(ylqbxO2n71yrzF@7JX?VtW&AGNq%OVo>2W9zY~;7%_2If5^K_-87q2j9}3R< zTJ%5q)z3)R9NCj_01@ghS7ok*G0W+>K>zgsoj_I-jM{$?!oB;M{0n)o1IzFr-Lk=2 zc|Su-5?>x$x}4>_E@?n4Y@{rs4m-8L4%$A7mHaazI-HbXj*pUfEe?0fFbZn?Z^d~C z9*@zz4~&WzO~xNqqMa*)`COnaU=xVB2d0g|^?TjHJvefs>tAU26OfNc-%gh@`@8fk z$?3x^t1yb4JxU$pO3i%lJ-G`Wg(J9*@M)YiZ!y!K7rJ^Ix1|>7mA<)CZhvKY^7v!x zY3<52*?z7TyX~s>m4Caf=tiN@{Fk(&f)sv;sf1xiEq=E=36$5E;k>IzS)||RIXc~( zw9i_M9-*GXkoMHBP&ymQ%va(|?}1**Fp=x(VK`=|KE}EdNBHd?>{=hSPGw%_<0gst z9p}5Q0-r8w1;93sX}VRGT##nI4eK&|VHzJ&D#k8WOtN#v7r-1U$i>1Yf0vZz%%y~Z zP9;Q%5?k$*xgqd3a9SKt=otVy&!YNrX>2>fQ9#n2uP>R<0U0tilm_c((l2^)cxxhB zNK6+&1mqc0dc+*45hfJi8SvDUIQAaZ6w*~O*6(hr!#z%;xB^M`%|fO`O)RxJLlL

-@J3ONWMEobL66G-!X?~RPbA5y_PCv_{k2k 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ⅅ8x)|FE848~TT*S7#jkcYP2eud?0L@3mDCej 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Μ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%0DpRaAytsOq5R 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 literal 0 HcmV?d00001 diff --git a/.github/test.yml b/.github/test.yml new file mode 100644 index 0000000..021e2e2 --- /dev/null +++ b/.github/test.yml @@ -0,0 +1,71 @@ +name: Test + +on: + push: + branches: + - "**" + tags-ignore: + - "**" + +jobs: + build: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: [ubuntu-22.04] + php-versions: ["8.0", "8.1"] + env: + extensions: pcov, imagick + tools: composer + ini-values: precision=16, default_charset='UTF-8', pcov.directory=src + key: cache-1626460452817 + name: Test on PHP ${{ matrix.php-versions }} ${{ matrix.operating-system }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Setup cache environment + if: ${{ !env.ACT }} + id: extcache + uses: shivammathur/cache-extensions@v1 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + key: ${{ env.key }} + - name: Cache extensions + if: ${{ !env.ACT }} + uses: actions/cache@v3 + with: + path: ${{ steps.extcache.outputs.dir }} + key: ${{ steps.extcache.outputs.key }} + restore-keys: ${{ steps.extcache.outputs.key }} + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + ini-values: ${{ env.ini-values }} + coverage: pcov + tools: ${{ env.tools }} + env: + fail-fast: true + - name: Setup problem matchers for PHPUnit + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + - name: Validate composer + run: composer validate + working-directory: app + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies + run: composer install --no-progress --ignore-platform-reqs + working-directory: app + - name: Run tests with phpunit + run: app/vendor/bin/phpunit -c app/phpunit-report.xml --coverage-clover=app/build/coverage/clover.xml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..024f4ec --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,102 @@ +name: Docker + +on: + push: + tags: + - "*" + +env: + GHCR_SLUG: ghcr.io/${{ github.repository }} + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + php: ["8.1"] + name: Build on PHP ${{ matrix.php }} ${{ matrix.os }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Get current branch + id: get-branch + run: | + raw=$(git branch -r --contains ${{ github.ref }}) + echo "branch=${raw##*/}" >> $GITHUB_OUTPUT + - run: echo ${{ steps.get-branch.outputs.branch }} + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.GHCR_SLUG }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + labels: | + org.opencontainers.image.title=Chevereto V4 + org.opencontainers.image.description=Ultimate image sharing software 🦄 + org.opencontainers.image.vendor=Chevereto + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build dependencies + run: composer install --no-progress --ignore-platform-reqs + working-directory: app + - name: Build Chevereto + run: | + app/bin/legacy -C langs + app/bin/legacy -C htaccess-checksum + app/bin/legacy -C htaccess-enforce + - name: Packaging + run: | + rm -rf .git .gitignore .github .ecs .vscode + rm -rf README.md chevereto.svg rector.php + rm -rf app/tests app/phpunit*.xml + rm -rf app/.editions app/bin/edition + mkdir importing/{parse-users,parse-albums,no-parse} + mv .package .. + ls -la ../.package + - name: Checkout chevereto/docker + uses: actions/checkout@v3 + with: + repository: chevereto/docker + path: docker + ref: ${{ steps.get-branch.outputs.branch }} + - run: | + mv docker ../docker + mkdir -p ../docker/chevereto + ls -la ../docker + - name: Copy to docker folder + run: | + cp -a ./. ../docker/chevereto/ + ls -la ../docker/chevereto + - name: Build + uses: docker/bake-action@v2 + with: + workdir: ../docker + set: build.args.PHP=${{ matrix.php }} + files: | + ./docker-bake.hcl + ${{ steps.meta.outputs.bake-file }} + targets: build + push: true + - name: Check manifest + run: | + docker buildx imagetools inspect ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }} + - name: Inspect image + run: | + docker pull ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }} + docker image inspect ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..3d8bbc3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,85 @@ +name: Release + +on: + push: + tags: + - "*" + +jobs: + build: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: [ubuntu-latest] + php-versions: ["8.1"] + env: + tools: composer + ini-values: default_charset='UTF-8' + key: cache-1633608016315 + name: Release on PHP ${{ matrix.php-versions }} ${{ matrix.operating-system }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + ini-values: ${{ env.ini-values }} + tools: ${{ env.tools }} + env: + fail-fast: true + - name: Validate composer + run: composer validate + working-directory: app + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + working-directory: app + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Build dependencies + run: composer install --no-progress --ignore-platform-reqs + working-directory: app + - name: Build Chevereto + run: | + app/bin/legacy -C langs + app/bin/legacy -C htaccess-checksum + app/bin/legacy -C htaccess-enforce + - name: Packaging + run: | + rm -rf .git .gitignore .github .ecs .vscode + rm -rf README.md chevereto.svg rector.php + rm -rf app/tests app/phpunit*.xml + rm -rf app/.editions app/bin/edition + mkdir importing/{parse-users,parse-albums,no-parse} + mv .package .. + ls -la ../.package + - name: Archive lite + uses: thedoctor0/zip-release@master + with: + directory: "." + type: "zip" + filename: "${{ github.ref_name}}-lite.zip" + exclusions: "/*app/vendor/*" + - name: Archive release + uses: thedoctor0/zip-release@master + with: + directory: "." + type: "zip" + filename: "${{ github.ref_name}}.zip" + exclusions: "${{ github.ref_name}}-lite.zip" + - name: Upload artifacts + uses: ncipollo/release-action@v1 + with: + allowUpdates: true + removeArtifacts: true + bodyFile: "../.package/${{ github.ref_name}}.txt" + artifacts: > + ../.package/${{ github.ref_name}}.txt, + ${{ github.ref_name}}.zip, + ${{ github.ref_name}}-lite.zip + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd2bbba --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +/.env +/.idea +/app/vendor +/app/build +/app/.phpunit.cache +/app/.phpunit.result.cache +/importing/** +/images/** +!/images/.htaccess +!/importing/.htaccess +/_assets diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..bd7cf45 --- /dev/null +++ b/.htaccess @@ -0,0 +1,31 @@ +ServerSignature Off +Options -Indexes +Options -MultiViews +# CORS header (avoids font rendering issues)(replace dev\.local with your domain\.com) +# SetEnvIf Origin ^(https?://.+\.dev\.local(?::\d{1,5})?)$ CORS_ALLOW_ORIGIN=$1 +# Header append Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e env=CORS_ALLOW_ORIGIN +# Header merge Vary "Origin" +<FilesMatch "\.htaccess|LICENSE"> + Require all denied +</FilesMatch> +<IfModule mod_rewrite.c> + RewriteEngine On + # If you have problems with the rewrite rules remove the "#" from the following RewriteBase line + # You will also have to change the path to reflect the path to your Chevereto installation + # If you are using mod alias is likely that you will need this. + #RewriteBase / + + # Image not found replacement + RewriteCond %{REQUEST_FILENAME} !-f + #RewriteRule images/.+\.(gif|jpe?g|a?png|bmp|webp) content/images/system/default/404.gif [NC,L] + RewriteRule images/.+\.(gif|jpe?g|png|bmp|webp) - [NC,L,R=404] + + # PHP front controller + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule . index.php [L] + + # Single PHP-entrypoint + RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ] [NC] + RewriteRule \.php$ - [NC,L,F,R=404] +</IfModule> \ No newline at end of file diff --git a/.package/4.0.5.txt b/.package/4.0.5.txt new file mode 100644 index 0000000..6ad001b --- /dev/null +++ b/.package/4.0.5.txt @@ -0,0 +1,11 @@ +Chevereto 4.0.5 (2022-11-30) + +✅ Added more environment variables +✅ Renamed dashboard/settings/api to dashboard/settings/guest-api +✅ Renamed website modes (community, personal) +🐞 Fixed bug with Exif metadata removal +🐞 Fixed bug with single image redirect +🐞 Fixed bug with selectable items on iPad +🐞 Fixed bug with login page +🐞 Fixed bug with missing timestamp on upload +🐞 Fixed bug with ModerateContent diff --git a/.package/README.txt b/.package/README.txt new file mode 100755 index 0000000..894592d --- /dev/null +++ b/.package/README.txt @@ -0,0 +1,20 @@ + __ __ + ____/ / ___ _ _____ _______ / /____ +/ __/ _ \/ -_) |/ / -_) __/ -_) __/ _ \ +\__/_//_/\__/|___/\__/_/ \__/\__/\___/ + + https://chevereto.com/ + +This package is another quality release +made by Chevereto Software. We ship +indie software from Concepcion, Chile +to the rest of the world. + +Many thanks for using our software and +trusting our work. This software exists +thanks to your ongoing support. + + ~ + + GRACIAS + (Thank you!) diff --git a/.tinkerwell/CustomTinkerwellDriver.php b/.tinkerwell/CustomTinkerwellDriver.php new file mode 100644 index 0000000..312705f --- /dev/null +++ b/.tinkerwell/CustomTinkerwellDriver.php @@ -0,0 +1,47 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\loaderHandler; + +class CustomTinkerwellDriver extends TinkerwellDriver +{ + public function canBootstrap($projectPath) + { + return file_exists($projectPath . '/app/legacy/load/loader.php'); + } + + public function bootstrap($projectPath) + { + define('ACCESS', 'web'); + define('REPL', true); + require $projectPath . '/app/legacy/load/loader.php'; + include loaderHandler( + _cookie: [], + _env: $_ENV, + _files: [], + _get: [], + _post: [], + _request: [], + _server: [], + _session: [ + 'G_auth_token' => str_repeat('a', 40), + ], + ); + } + + public function contextMenu() + { + return [ + Label::create('Detected Chevereto v4'), + OpenURL::create('Chevereto Docs', 'https://v4-docs.chevereto.com/'), + ]; + } +} diff --git a/.vscode/action.code-snippets b/.vscode/action.code-snippets new file mode 100644 index 0000000..5618625 --- /dev/null +++ b/.vscode/action.code-snippets @@ -0,0 +1,37 @@ +{ + "action": { + "description": "Create an action", + "prefix": "action", + "body": [ + "<?php", + "", + "namespace Chevereto\\\\${TM_DIRECTORY/.*src\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "use Chevere\\Action\\Action;", + "use function Chevere\\Components\\Parameter\\parameters;", + "use Chevere\\Parameter\\Interfaces\\ArgumentsInterface;", + "use Chevere\\Parameter\\Interfaces\\ParametersInterface;", + "use Chevere\\Response\\Interfaces\\ResponseInterface;", + "", + "final class $TM_FILENAME_BASE extends Action", + "{", + "", + "\tpublic function getParameters(): ParametersInterface", + "\t{", + "\t\treturn ${2:parameters()};", + "\t}", + "", + "\tpublic function getResponseParameters(): ParametersInterface", + "\t{", + "\t\treturn parameters();", + "\t}", + "", + "\tpublic function run(ArgumentsInterface \\$arguments): ResponseInterface", + "\t{", + "\t\t$0", + "\t\treturn \\$this->getResponse(key: 'value',);", + "\t}", + "}" + ] + } +} \ No newline at end of file diff --git a/.vscode/class.code-snippets b/.vscode/class.code-snippets new file mode 100644 index 0000000..ca46ed4 --- /dev/null +++ b/.vscode/class.code-snippets @@ -0,0 +1,46 @@ +{ + "interface": { + "description": "Create a interface", + "prefix": "interface", + "body": [ + "<?php", + "", + "namespace Chevereto\\\\${TM_DIRECTORY/.*src\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "/**", + " * Describes the component in charge of ${1:doing}.", + " */", + "interface $TM_FILENAME_BASE", + "{", + "\t$0", + "}" + ] + }, + "class": { + "description": "Create a class", + "prefix": "class", + "body": [ + "<?php", + "", + "namespace Chevereto\\\\${TM_DIRECTORY/.*src\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "final class $TM_FILENAME_BASE", + "{", + "\t${0}", + "}" + ] + }, + "trait": { + "description": "Create a trait", + "prefix": "trait", + "body": [ + "<?php", + "namespace Chevereto\\\\${TM_DIRECTORY/.*src\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "trait $TM_FILENAME_BASE", + "{", + "\t$0", + "}" + ] + }, +} \ No newline at end of file diff --git a/.vscode/controller.code-snippets b/.vscode/controller.code-snippets new file mode 100644 index 0000000..fd21787 --- /dev/null +++ b/.vscode/controller.code-snippets @@ -0,0 +1,38 @@ +{ + "controller-workflow": { + "description": "Create a ControllerWorkflow", + "prefix": "controller-workflow", + "body": [ + "<?php", + "", + "namespace Chevereto\\\\${TM_DIRECTORY/.*src\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "use Chevere\\Parameter\\ObjectParameter;", + "use Chevere\\Parameter\\Parameters;", + "use Chevere\\Parameter\\StringParameter;", + "use Chevere\\Parameter\\Interfaces\\ParametersInterface;", + "use Chevereto\\\\Controller\\ControllerWorkflow;", + "", + "final class $TM_FILENAME_BASE extends ControllerWorkflow", + "{", + "\tpublic function getDescription(): string", + "\t{", + "\t\treturn '${1:description}';", + "\t}", + "", + "\tpublic function getParameters(): ParametersInterface", + "\t{", + "\t\treturn new Parameters(", + "\t\t\t${2:parameter}: new StringParameter(),", + "\t\t);", + "\t}", + "\tpublic function getResponseParameters(): ParametersInterface", + "\t{", + "\t\treturn new Parameters(", + "\t\t\t${3:key}: new ObjectParameter(${4:'className'}),", + "\t\t);", + "\t}", + "}" + ] + }, +} \ No newline at end of file diff --git a/.vscode/doc-internal.code-snippets b/.vscode/doc-internal.code-snippets new file mode 100644 index 0000000..dc404a5 --- /dev/null +++ b/.vscode/doc-internal.code-snippets @@ -0,0 +1,41 @@ +{ + "doc-json": { + "description": "Insert an internal document for route.json.php", + "prefix": "doc-json", + "body": [ + "# ${1:Document}", + "", + "V4 `${2|CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE|} api/4/${3:path}`", + "", + "* Controller", + "* Workflow", + "", + "`OK Response`", + "", + "```php", + "[", + " 'resource' => \\$resource,", + "]", + "```", + "", + "V3 `POST json/?action=${4:action}`", + "", + "* [json](../../../3.20.10/app/routes/route.json.php#${5:line})", + "", + "| Parameter | Values |", + "| --------- | ------ |", + "| | `` |", + "", + "`OK Response`", + "", + "```php", + "[", + " 'status_code' => 200,", + " 'success' => ['message' => 'message', 'code' => 200],", + " 'resource' => $resource,", + "]", + "```", + "", + ] + }, +} \ No newline at end of file diff --git a/.vscode/docblock.code-snippets b/.vscode/docblock.code-snippets new file mode 100644 index 0000000..b71d999 --- /dev/null +++ b/.vscode/docblock.code-snippets @@ -0,0 +1,62 @@ +{ + "docblock-instance": { + "description": "Insert a docblock instance", + "prefix": "docblock-instance", + "body": [ + "/**", + " * Provides access to the ${1:name} instance.", + " */" + ] + }, + "docblock-immutable": { + "description": "Insert a docblock immutable", + "prefix": "docblock-immutable", + "body": [ + "/**", + " * Return an instance with the specified ${1:name}.", + " *", + " * This method MUST retain the state of the current instance, and return", + " * an instance that contains the specified ${1:name}.", + " */" + ] + }, + "docblock-boolean": { + "description": "Insert a docblock boolean", + "prefix": "docblock-boolean", + "body": [ + "/**", + " * Indicates whether the instance has ${1:name}.", + " */" + ] + }, + "docblock-interface": { + "description": "Insert a docblock interface", + "prefix": "docblock-interface", + "body": [ + "/**", + " * Describes the component in charge of ${1:doing}.", + " */" + ] + }, + "coverage-ignore": { + "description": "Insert a code coverage ignore tag", + "prefix": "cov-ignore", + "body": [ + "@codeCoverageIgnore" + ] + }, + "coverage-ignore-start": { + "description": "Insert a code coverage ignore start tag", + "prefix": "cov-ignore-start", + "body": [ + "@codeCoverageIgnoreStart" + ] + }, + "coverage-ignore-end": { + "description": "Insert a code coverage ignore end tag", + "prefix": "cov-ignore-end", + "body": [ + "@codeCoverageIgnoreEnd" + ] + }, +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c1ce077 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "runOnSave.commands": [ + { + "match": "\\.php$", + "runIn": "backend", + "command": "cd ${workspaceFolder} && app/vendor/bin/ecs --config='.ecs/ecs.php' check ${file} --fix", + "workingDirectoryAsCWD": true, + "runningStatusMessage": "ECS ${fileBasename}", + "finishStatusMessage": "${fileBasename} OK" + }, + ] +} \ No newline at end of file diff --git a/.vscode/templates.code-snippets b/.vscode/templates.code-snippets new file mode 100644 index 0000000..e8a7032 --- /dev/null +++ b/.vscode/templates.code-snippets @@ -0,0 +1,34 @@ +{ + "with-method": { + "description": "Chevereto with method", + "prefix": "with", + "body": [ + "private ${2|int,string,bool,array,object,resource|} \\$${3:argument};", + "", + "public function with${1:Name}(${2|int,string,bool,array,object,resource|} \\$${3:argument}): ${4:self}", + "{", + "\t\\$new = clone \\$this;", + "\t\\$new->${3:argument} = \\$${3:argument};", + "", + "\treturn \\$new;", + "}" + ] + }, + "exception": { + "description": "Chevereto exception", + "prefix": "exception", + "body": [ + "<?php", + "namespace Chevereto\\Exceptions\\\\${TM_DIRECTORY/.*Exceptions\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "use Chevereto\\Exceptions\\Core\\Exception;", + "", + "/**", + " * Exception thrown when ${1:description}.", + " */", + "final class $TM_FILENAME_BASE extends Exception", + "{", + "}" + ] + }, +} \ No newline at end of file diff --git a/.vscode/test.code-snippets b/.vscode/test.code-snippets new file mode 100644 index 0000000..224a582 --- /dev/null +++ b/.vscode/test.code-snippets @@ -0,0 +1,40 @@ +{ + "test": { + "description": "Chevereto test", + "prefix": "test", + "body": [ + "<?php", + "namespace Chevereto\\Tests\\\\${TM_DIRECTORY/.*tests\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "use PHPUnit\\Framework\\TestCase;", + "", + "final class $TM_FILENAME_BASE extends TestCase", + "{", + "\t$0", + "}" + ] + }, + "test-method": { + "description": "Chevereto test method", + "prefix": "test-method", + "body": [ + "public function test${1:Name}(): void", + "{", + "\t$0", + "}" + ] + }, + "testResource": { + "description": "Chevereto test resource", + "prefix": "test-resource", + "body": [ + "<?php", + "namespace Chevereto\\Tests\\\\${TM_DIRECTORY/.*tests\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "final class $TM_FILENAME_BASE", + "{", + "\t$0", + "}" + ] + }, +} \ No newline at end of file diff --git a/.vscode/workflow.code-snippets b/.vscode/workflow.code-snippets new file mode 100644 index 0000000..17b17a5 --- /dev/null +++ b/.vscode/workflow.code-snippets @@ -0,0 +1,35 @@ +{ + "action": { + "description": "Create a Workflow", + "prefix": "workflow-return", + "body": [ + "<?php", + "", + "namespace Chevereto\\\\${TM_DIRECTORY/.*src\\/(([^\\/]*)(\\/)?)|(\\/)([^\\/]*)/$2${3:+\\\\}${5:+\\\\}$5/g};", + "", + "use function Chevere\\Components\\Workflow\\step;", + "use function Chevere\\Components\\Workflow\\workflow;", + "use Chevere\\Workflow\\Interfaces\\WorkflowInterface;", + "use Chevereto\\Workflow\\Components\\BaseWorkflow;", + "", + "final class $TM_FILENAME_BASE extends BaseWorkflow", + "{", + "\tpublic function getWorkflow(): WorkflowInterface", + "\t{", + "\t\treturn workflow(", + "\t\t\tstep: step(", + "\t\t\t\t'ActionName',", + "\t\t\t\t${2:parameter}: '\\${${3:variable}}',", + "\t\t\t)", + "\t\t);", + "\t}", + "}" + ] + } +} + + + + +{ + { \ No newline at end of file diff --git a/README.md b/README.md index 95be41d..5f5b9e6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,40 @@ -# chevereto -Ultimate image sharing software 🦄 +# Chevereto: Ultimate image sharing software 🦄 + +> 🔔 [Subscribe](https://chv.to/newsletter) to don't miss any update regarding Chevereto. + +<p align="center"> + <img alt="Chevereto" src="chevereto.svg" width="50%"> +</p> + +![CHUISS](.github/banner/chevereto-ultimate.png) + +[![Community](https://img.shields.io/badge/chv.to-community-blue?style=flat-square)](https://chv.to/community) +[![AGPL-3.0-only](https://img.shields.io/github/license/chevereto/chevereto?style=flat-square)](LICENSE) + +Chevereto enables to create an image sharing website on your own server. It's your hosting and your rules, say goodbye to closures and restrictions. + +![screen](.github/screen/user-profile.jpeg) + +## Documentation + +We provide several layers of documentation covering all aspects of our software. Chevereto documentation is Open Source and your contribution is highly appreciated. + +* Software [v4-docs.chevereto.com](https://v4-docs.chevereto.com) +* Admin [v4-admin.chevereto.com](https://v4-admin.chevereto.com) +* User [v4-user.chevereto.com](https://v4-admin.chevereto.com) + +## License + +### Open Source license + +Copyright [Rodolfo Berríos Arce](http://rodolfoberrios.com) - [AGPLv3](LICENSE). + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/. + +### Commercial license + +The commercial license is designed to for you to use Chevereto in commercial products and applications, without the provisions of the AGPLv3. With the commercial license, your code is kept proprietary, to yourself. See the Chevereto Commercial License at [chevereto.com](https://chevereto.com/license) diff --git a/app/.cache/languages/_locales.php b/app/.cache/languages/_locales.php new file mode 100644 index 0000000..58fd606 --- /dev/null +++ b/app/.cache/languages/_locales.php @@ -0,0 +1,282 @@ +<?php return array ( + 'ar' => + array ( + 'code' => 'ar', + 'dir' => 'rtl', + 'name' => 'العربية', + 'base' => 'ar', + 'short_name' => 'AR', + ), + 'bg-BG' => + array ( + 'code' => 'bg-BG', + 'dir' => 'ltr', + 'name' => 'Български', + 'base' => 'bg', + 'short_name' => 'BG (BG)', + ), + 'cs' => + array ( + 'code' => 'cs', + 'dir' => 'ltr', + 'name' => 'Čeština', + 'base' => 'cs', + 'short_name' => 'CS', + ), + 'da' => + array ( + 'code' => 'da', + 'dir' => 'ltr', + 'name' => 'Dansk', + 'base' => 'da', + 'short_name' => 'DA', + ), + 'de' => + array ( + 'code' => 'de', + 'dir' => 'ltr', + 'name' => 'Deutsch', + 'base' => 'de', + 'short_name' => 'DE', + ), + 'el' => + array ( + 'code' => 'el', + 'dir' => 'ltr', + 'name' => 'Ελληνικά', + 'base' => 'el', + 'short_name' => 'EL', + ), + 'en' => + array ( + 'code' => 'en', + 'dir' => 'ltr', + 'name' => 'English', + 'base' => 'en', + 'short_name' => 'EN', + ), + 'es' => + array ( + 'code' => 'es', + 'dir' => 'ltr', + 'name' => 'Español', + 'base' => 'es', + 'short_name' => 'ES', + ), + 'et-EE' => + array ( + 'code' => 'et-EE', + 'dir' => 'ltr', + 'name' => 'Eesti (Eesti)', + 'base' => 'et', + 'short_name' => 'ET (EE)', + ), + 'fa' => + array ( + 'code' => 'fa', + 'dir' => 'rtl', + 'name' => 'فارسی', + 'base' => 'fa', + 'short_name' => 'FA', + ), + 'fi' => + array ( + 'code' => 'fi', + 'dir' => 'ltr', + 'name' => 'Suomi', + 'base' => 'fi', + 'short_name' => 'FI', + ), + 'fr' => + array ( + 'code' => 'fr', + 'dir' => 'ltr', + 'name' => 'Français', + 'base' => 'fr', + 'short_name' => 'FR', + ), + 'he' => + array ( + 'code' => 'he', + 'dir' => 'rtl', + 'name' => 'עברית', + 'base' => 'he', + 'short_name' => 'HE', + ), + 'hr' => + array ( + 'code' => 'hr', + 'dir' => 'ltr', + 'name' => 'Hrvatski', + 'base' => 'hr', + 'short_name' => 'HR', + ), + 'hu' => + array ( + 'code' => 'hu', + 'dir' => 'ltr', + 'name' => 'Magyar', + 'base' => 'hu', + 'short_name' => 'HU', + ), + 'id' => + array ( + 'code' => 'id', + 'dir' => 'ltr', + 'name' => 'Bahasa Indonesia', + 'base' => 'id', + 'short_name' => 'ID', + ), + 'it' => + array ( + 'code' => 'it', + 'dir' => 'ltr', + 'name' => 'Italiano', + 'base' => 'it', + 'short_name' => 'IT', + ), + 'ja' => + array ( + 'code' => 'ja', + 'dir' => 'ltr', + 'name' => '日本語', + 'base' => 'ja', + 'short_name' => 'JA', + ), + 'ko' => + array ( + 'code' => 'ko', + 'dir' => 'ltr', + 'name' => '한국어', + 'base' => 'ko', + 'short_name' => 'KO', + ), + 'lt-LT' => + array ( + 'code' => 'lt-LT', + 'dir' => 'ltr', + 'name' => 'Lietuvių (Lietuva)', + 'base' => 'lt', + 'short_name' => 'LT (LT)', + ), + 'nb' => + array ( + 'code' => 'nb', + 'dir' => 'ltr', + 'name' => '‪Norsk Bokmål‬', + 'base' => 'nb', + 'short_name' => 'NB', + ), + 'nl' => + array ( + 'code' => 'nl', + 'dir' => 'ltr', + 'name' => 'Nederlands', + 'base' => 'nl', + 'short_name' => 'NL', + ), + 'pl' => + array ( + 'code' => 'pl', + 'dir' => 'ltr', + 'name' => 'Polski', + 'base' => 'pl', + 'short_name' => 'PL', + ), + 'pt' => + array ( + 'code' => 'pt', + 'dir' => 'ltr', + 'name' => 'Português', + 'base' => 'pt', + 'short_name' => 'PT', + ), + 'pt-BR' => + array ( + 'code' => 'pt-BR', + 'dir' => 'ltr', + 'name' => 'Português (Brasil)', + 'base' => 'pt', + 'short_name' => 'PT (BR)', + ), + 'ru' => + array ( + 'code' => 'ru', + 'dir' => 'ltr', + 'name' => 'Русский', + 'base' => 'ru', + 'short_name' => 'RU', + ), + 'sk' => + array ( + 'code' => 'sk', + 'dir' => 'ltr', + 'name' => 'Slovenčina', + 'base' => 'sk', + 'short_name' => 'SK', + ), + 'sr-RS' => + array ( + 'code' => 'sr-RS', + 'dir' => 'ltr', + 'name' => 'Српски', + 'base' => 'sr', + 'short_name' => 'SR (RS)', + ), + 'sv' => + array ( + 'code' => 'sv', + 'dir' => 'ltr', + 'name' => 'Svenska', + 'base' => 'sv', + 'short_name' => 'SV', + ), + 'th' => + array ( + 'code' => 'th', + 'dir' => 'ltr', + 'name' => 'ไทย', + 'base' => 'th', + 'short_name' => 'TH', + ), + 'tr' => + array ( + 'code' => 'tr', + 'dir' => 'ltr', + 'name' => 'Türkçe', + 'base' => 'tr', + 'short_name' => 'TR', + ), + 'uk' => + array ( + 'code' => 'uk', + 'dir' => 'ltr', + 'name' => 'Українська', + 'base' => 'uk', + 'short_name' => 'UK', + ), + 'vi' => + array ( + 'code' => 'vi', + 'dir' => 'ltr', + 'name' => 'Tiếng Việt', + 'base' => 'vi', + 'short_name' => 'VI', + ), + 'zh-CN' => + array ( + 'code' => 'zh-CN', + 'dir' => 'ltr', + 'name' => '简体中文', + 'base' => 'zh', + 'short_name' => 'ZH (CN)', + ), + 'zh-TW' => + array ( + 'code' => 'zh-TW', + 'dir' => 'ltr', + 'name' => '繁體中文', + 'base' => 'zh', + 'short_name' => 'ZH (TW)', + ), +); \ No newline at end of file diff --git a/app/.cache/languages/ar.po.cache.php b/app/.cache/languages/ar.po.cache.php new file mode 100644 index 0000000..7cabd29 --- /dev/null +++ b/app/.cache/languages/ar.po.cache.php @@ -0,0 +1,3303 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2017-06-21 18:28+0000', + 'PO-Revision-Date' => '2017-06-21 18:28+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'ar', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5);', +); +$translation_plural = array ( + 'nplurals' => 6, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "البريد الالكتروني غير صحيح", + ], + "Invalid username" => [ + 0 => "إسم المستخدم غير صحيح", + ], + "Invalid password" => [ + 0 => "كلمة المرور غير صحيحة", + ], + "Invalid website mode" => [ + 0 => "وضع الموقع غير صالح", + ], + "From email address" => [ + 0 => "من البريد الإلكتروني", + ], + "Sender email for emails sent to users." => [ + 0 => "مرسل البريد الإلكترونى للرسائل الموجهة للمستخدمين.", + ], + "Incoming email address" => [ + 0 => "البريد الإلكتروني الوارد", + ], + "Recipient for contact form and system alerts." => [ + 0 => "المستقبل لنظام الإشعارات ونموذج الإتصال.", + ], + "Website mode" => [ + 0 => "وضع الموقع", + ], + "You can switch the website mode anytime." => [ + 0 => "يمكنك تغير وضع الموقع في اي وقت", + ], + "Community" => [ + 0 => "المجتمع", + ], + "Personal" => [ + 0 => "شخصي", + ], + "Update in progress" => [ + 0 => "جاري التحديث", + ], + "An error occurred. Please try again later." => [ + 0 => "حدث خطأ ما. يرجى المحاولة مرة أخرى.", + ], + "Missing %s file" => [ + 0 => "الملف %s مفقود", + ], + "Invalid license info" => [ + 0 => "معلومات الترخيص غير صالحة", + ], + "Invalid license key" => [ + 0 => "مفتاح الترخيص غير صالح", + ], + "Can't save file" => [ + 0 => "لا يمكن حفظ الملف\n", + ], + "Can't download %s" => [ + 0 => "لا يمكن تحميل %s", + ], + "Can't extract %s" => [ + 0 => "لا يمكن استخراج %s", + ], + "Can't create %s directory - %e" => [ + 0 => "لا يمكن انشاء %s دليل - %e", + ], + "Can't update %s file - %e" => [ + 0 => "لا يمكن تحديث %s ملف - %e", + ], + "Untitled" => [ + 0 => "بدون عنوان", + ], + "%s's images" => [ + 0 => "%s صور", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "ملاحظة: هذا المحتوى خاص ولكن أي شخص لديه الرابط سيكون قادرا على رؤيته.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "ملاحظة: هذا المحتوى محمي . تذكر ان تجتاز كلمة المرور لهذا المحتوى لمشاركته.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "تنبيه : هذا المحتوى خاص. عدل خيارات الخصوصية إلى \"عام\" لأجل مشاركته.", + ], + "Private" => [ + 0 => "خاص", + ], + "Public" => [ + 0 => "عام", + ], + "Me" => [ + 0 => "أنا", + ], + "Link" => [ + 0 => "رابط", + ], + "Password" => [ + 0 => "كلمة المرور", + ], + "view" => [ + 1 => "مشاهدة", + 5 => "مشاهدات", + ], + "After %n %t" => [ + 0 => "بعد %n %t", + ], + "Don't autodelete" => [ + 0 => "لا تقم بالحذف التلقائي", + ], + "minute" => [ + 0 => "خانة فارغة", + 1 => "دقيقة", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "دقائق", + ], + "hour" => [ + 0 => "خانة فارغة", + 1 => "ساعة", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "ساعات", + ], + "day" => [ + 0 => "خانة فارغة", + 1 => "يوم", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "أيام", + ], + "Duplicated upload" => [ + 0 => "رفع مكرر", + ], + "Error storing file in external storage server" => [ + 0 => "خطأ في تخزين الملف في خادم التخزين الخارجي", + ], + "External storage has failed" => [ + 0 => "فشل التخزين الخارجي", + ], + "Private upload" => [ + 0 => "رفع خاص", + ], + "Upload switched to local storage" => [ + 0 => "تحول التحميل الي التخزين المحلي", + ], + "System has switched to local storage due to not enough disk capacity (%c) in the external storage server(s). The image %s has been allocated to local storage." => [ + 0 => "تم تحويل النظام إلى التخزين المحلى لعدم كفاية مساحة القرص (%c) فى مشغلات التخزين الخارجى. تم وضع الصورة %s فى المخزن المحلى", + ], + "like" => [ + 1 => "إعجاب", + 5 => "إعجاب", + ], + "image" => [ + 0 => "خانة فارغة", + 1 => "صورة", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "صور", + ], + "Recent" => [ + 0 => "الأحدث", + ], + "Trending" => [ + 0 => "الأكثر رواجا", + ], + "Popular" => [ + 0 => "الأكثر شعبية", + ], + "Top users" => [ + 0 => "الأعضاء الأكثر نشاطا", + ], + "Most recent" => [ + 0 => "الأحدث", + ], + "Oldest" => [ + 0 => "الأقدم", + ], + "Most viewed" => [ + 0 => "الأكثر مشاهدة", + ], + "Most liked" => [ + 0 => "الأكثر إعجابا", + ], + "Explore" => [ + 0 => " تصفح", + ], + "Animated" => [ + 0 => "الصور المتحركة", + ], + "Search" => [ + 0 => " بحث", + ], + "People" => [ + 0 => "اشخاص", + ], + "Image" => [ + 0 => "خانة فارغة", + 1 => "صورة", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "صور", + ], + "Album" => [ + 1 => "ألبوم", + 5 => "الألبومات", + ], + "User" => [ + 1 => "مستخدم", + 5 => "مستخدمين", + ], + "Can't create %s destination dir" => [ + 0 => "لايمكن إنشاء وجهة دليل %s", + ], + "Can't open %s for writing" => [ + 0 => "لا يمكن فتح %s للكتابة", + ], + "Internal" => [ + 0 => "داخلي", + ], + "Can't insert storage." => [ + 0 => "لا يمكن إدراج التخزين", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "سعة التخزين المستخدمة لا يمكن أن تكون أقل من الاستخدام الحالى (%s).", + ], + "Can't update storage details." => [ + 0 => "لا يمكن تحديث تفاصيل التخزين.", + ], + "requires %s" => [ + 0 => "يتطلب %s", + ], + "Unlimited" => [ + 0 => "غير محدود", + ], + "used" => [ + 0 => "مستخدم", + ], + "Private profile" => [ + 0 => "ملف شخصي خاص", + ], + "year" => [ + 1 => "سنة", + 5 => "سنوات", + ], + "month" => [ + 1 => "شهر", + 5 => "أشهر", + ], + "week" => [ + 0 => "خانة فارغة", + 1 => "إسبوع", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "أسابيع", + ], + "second" => [ + 0 => "خانة فارغة", + 1 => "ثانية", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "ثواني", + ], + "%s ago" => [ + 0 => "%s مضى", + ], + "moments ago" => [ + 0 => "لحظات مضت", + ], + "System notification" => [ + 0 => "إعلام النظام", + ], + "Dashboard" => [ + 0 => "لوحة التحكم", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "هناك تحديث متاح لنظامك. إذهب إلى %s لتحميل و تثبيت هذا التحديث", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "قاعدة بيانات النظام قديمة. تحتاج الى تشغيل <a href=\"%s\"> أداة التحديث </a>", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "الموقع في طور الصيانة. للتراجع عن هذا الإعداد اذهب الى <a href=\"%s\"> لوحة التحكم > الإعدادات </a>", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "يجب ان تعطل خاصية تقارير الأخطاء ل php لبيئة الإنتاج. اذهب إلى <a href='%s'>إعدادات النظام</a> لتبديل هذا الإعداد.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "لم تغير أعدادات البريد الإلكترونى الأفتراضية. إذهب إلى <a href='%s'>إعدادات البريد الإلكترونى</a> لتصليح هذا", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "هذا تحديث متاح لموقعك القائم على Chevereto", + ], + "The release notes for this update are:" => [ + 0 => "ملاحظات الإصدار لهذا التحديث هى:", + ], + "admin dashboard" => [ + 0 => "لوحة تحكم الادمن", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "يمكن تطبيق هذا التحديث مباشر من %a الخاص بك أو تحميله من %s ثم تثبيته يدويا.", + ], + "Chevereto update available (v%s)" => [ + 0 => "تحديث Chevereto المتاح (v%s)", + ], + "view on %s" => [ + 0 => "مشاهدة على %s", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this cookie policy." => [ + 0 => "نحن نستخدم ملفات تعريف الارتباط الخاصة بنا وأيضا ملفات تعريف طرف ثالث لتحسين تجربة التصفح الخاص بك في خدماتنا. إذا كنت لا تزال تستخدم موقعنا من المفهوم أن تقبل سياسة الكوكيز.", + ], + "You have been forbidden to use this website." => [ + 0 => "تم منعك من استخدام هذا الموقع.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "لا تتردد في تصفح واكتشاف كل الصور وألبومات المشاركة بواسطتى.", + ], + "View all my images" => [ + 0 => "عرض جميع الصور الخاصة بي", + ], + "That page doesn't exist" => [ + 0 => "هذه الصفحة غير موجودة", + ], + "Forgot password?" => [ + 0 => "نسيت كلمة السر ؟", + ], + "Reset password" => [ + 0 => "إعادة تعيين كلمة المرور", + ], + "Resend account activation" => [ + 0 => "إعادة إرسال تفعيل الحساب", + ], + "Add your email address" => [ + 0 => "إضافة بريدك الإلكتروني", + ], + "Email changed" => [ + 0 => "تم تغيير البريد الإلكتروني", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "لم يتم كتابة حروف التحقق بشكل صحيح", + ], + "Invalid Username/Email" => [ + 0 => "إسم المستخدم/البريد الإلكتروني غير صالح", + ], + "User doesn't have an email." => [ + 0 => "المستخدم لا يتوفر لديه بريد إلكتروني.", + ], + "Request denied" => [ + 0 => "الطلب مرفوض", + ], + "Account needs to be activated to use this feature" => [ + 0 => "يتطلب تفعيل الحساب لإستخدام هذه الخاصية", + ], + "Account already activated" => [ + 0 => "سبق وأن تم تفعيل الحساب", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "الرجاء الإنتظار 15 دقيقة لتلقى البريد الإلكترونى، ومن ثم يمكنك المحاولة من جديد.", + ], + "Reset your password at %s" => [ + 0 => "إعادة تعيين كلمة المرور في %s", + ], + "Confirmation required at %s" => [ + 0 => "التأكيد مطلوب في %s", + ], + "Welcome to %s" => [ + 0 => "أهلاً بك في %s", + ], + "Passwords don't match" => [ + 0 => "كلمة المرور غير متطابقة", + ], + "Email already being used" => [ + 0 => "البريد الإلكتروني مستخدم مسبقا‘", + ], + "Check the errors in the form to continue." => [ + 0 => "إفحص الخطأ أولاً حتى تتمكن من المتابعة.", + ], + "Password required" => [ + 0 => "كلمة السر مطلوبة", + ], + "Share" => [ + 0 => "مشاركة", + ], + "Embed codes" => [ + 0 => "إضافة اكواد", + ], + "Full info" => [ + 0 => "المعلومات الكاملة", + ], + "%a album hosted in %w" => [ + 0 => "%a الألبوم مستضاف فى %w", + ], + "Stats" => [ + 0 => "إحصائيات", + ], + "Images" => [ + 0 => "صور", + ], + "Albums" => [ + 0 => "الألبومات", + ], + "Users" => [ + 0 => "الأعضاء", + ], + "Settings" => [ + 0 => "الإعدادات", + ], + "Chevereto version" => [ + 0 => "نسخة Chevereto", + ], + "install update" => [ + 0 => "ثبت التحديث", + ], + "check for updates" => [ + 0 => "التحقق من التحديث", + ], + "Support" => [ + 0 => "الدعم", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "تحتاج المساعدة؟ اذهب الى %s وسوف تحصل على المساعدة بسرعة.", + ], + "PHP version" => [ + 0 => "نسخة PHP", + ], + "Server" => [ + 0 => "الخادم", + ], + "MySQL version" => [ + 0 => "نسخة MYSQL", + ], + "MySQL server info" => [ + 0 => "بيانات خادم MYSQL", + ], + "GD Library" => [ + 0 => "مكتبة GD", + ], + "File uploads" => [ + 0 => "الملفات المرفوعة", + ], + "Enabled" => [ + 0 => "مفعل", + ], + "Disabled" => [ + 0 => "معطل", + ], + "Max. upload file size" => [ + 0 => "الحد الاقصى. حجم ملف التحميل", + ], + "Max. post size" => [ + 0 => "الحجم الأقصى للتخزين", + ], + "Max. execution time" => [ + 0 => "الحد الأقصى لوقت التنفيذ", + ], + "%d second" => [ + 0 => "خانة فارغة", + 1 => "%d ثانية", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "%d ثواني", + ], + "Memory limit" => [ + 0 => "حدود الذاكرة", + ], + "Links" => [ + 0 => "روابط", + ], + "Documentation" => [ + 0 => "المستندات", + ], + "Changelog" => [ + 0 => "سجل التغيير", + ], + "Request new features" => [ + 0 => "طلب ميزات جديدة", + ], + "Bug tracking" => [ + 0 => "تتبع الأخطاء", + ], + "Blog" => [ + 0 => "المدونة", + ], + "Website" => [ + 0 => "الموقع", + ], + "Content" => [ + 0 => "المحتوى", + ], + "Pages" => [ + 0 => "الصفحات", + ], + "Listings" => [ + 0 => "عناصر العرض", + ], + "Image upload" => [ + 0 => "رفع الصور", + ], + "Categories" => [ + 0 => "الفئات", + ], + "Consent screen" => [ + 0 => "شاشة الموافقة", + ], + "Flood protection" => [ + 0 => "حماية من التدفق الإلكتروني", + ], + "Theme" => [ + 0 => "التصميم", + ], + "Homepage" => [ + 0 => "الرئيسية", + ], + "Banners" => [ + 0 => "البانرات", + ], + "System" => [ + 0 => "النظام", + ], + "Routing" => [ + 0 => "التوجيه", + ], + "Languages" => [ + 0 => "اللغات", + ], + "External storage" => [ + 0 => "تخزين خارجي", + ], + "Email" => [ + 0 => "البريد الإلكتروني", + ], + "Social networks" => [ + 0 => "شبكات التواصل الإجتماعي", + ], + "External services" => [ + 0 => "خدمات خارجية", + ], + "IP bans" => [ + 0 => "حظر IP", + ], + "Additional settings" => [ + 0 => "إعدادات اخرى", + ], + "Tools" => [ + 0 => "الأدوات", + ], + "Can't delete all homepage cover images" => [ + 0 => "لايمكن حذف صور غلاف الصفحة الرئيسية", + ], + "Homepage cover image deleted" => [ + 0 => "تم حذف صورة غلاف الصفحة الرئيسية", + ], + "Local" => [ + 0 => "محلي", + ], + "External" => [ + 0 => "خارجي", + ], + "All" => [ + 0 => "الكل", + ], + "search content" => [ + 0 => "بحث المحتوى", + ], + "Add page" => [ + 0 => "اضف صفحة", + ], + "Edit page ID %s" => [ + 0 => "تعديل معرف الصفحة %s", + ], + "The page has been added successfully." => [ + 0 => "تم اضافة الصفحة بنجاح", + ], + "The page has been deleted." => [ + 0 => "تم مسح الصفحة", + ], + "homepage" => [ + 0 => "الصفحة الرئيسية", + ], + "Before main title (%s)" => [ + 0 => "قبل العنوان الرئيسي (%s)", + ], + "After call to action (%s)" => [ + 0 => "بعد إتخاذ إجراء (%s)", + ], + "After cover (%s)" => [ + 0 => "بعد الغلاف (%s)", + ], + "After listing (%s)" => [ + 0 => "بعد القائمة (%s)", + ], + "Before pagination" => [ + 0 => "قبل ترقيم الصفحات", + ], + "After pagination" => [ + 0 => "بعد ترقيم الصفحات", + ], + "Content (image and album)" => [ + 0 => "المحتوى (الصور والألبوم)", + ], + "Tab about column" => [ + 0 => "تبويب عن العامود", + ], + "Before comments" => [ + 0 => "قبل التعليقات", + ], + "Image page" => [ + 0 => "صفحة الصورة", + ], + "Inside viewer top (image page)" => [ + 0 => "أعلى مستعرض الصور (صفحة الصورة)", + ], + "Expected banner size 728x90" => [ + 0 => "مساحة (أبعاد) البنر 728x90", + ], + "Inside viewer foot (image page)" => [ + 0 => "بداخل ذيل مستعرض الصور (صفحة الصورة)", + ], + "After image viewer (image page)" => [ + 0 => "بعد مستعرض الصور (صفحة الصورة)", + ], + "Before header (image page)" => [ + 0 => "قبل رأس الصفحة (صفحة الصورة)", + ], + "After header (image page)" => [ + 0 => "بعد رأس الصفحة (صفحة الصورة)", + ], + "Footer (image page)" => [ + 0 => "ذيل الصفحة (صفحة الصورة)", + ], + "Album page" => [ + 0 => "صفحة الألبوم", + ], + "Before header (album page)" => [ + 0 => "قبل رأس الصفحة (صفة الألبوم)", + ], + "After header (album page)" => [ + 0 => "بعد رأس الصفحة (صفحة الألبوم)", + ], + "User profile page" => [ + 0 => "صفحة ملف المستخدم", + ], + "After top (user profile)" => [ + 0 => "أعلى الصفحة (صفحة المستخدم)", + ], + "Before listing (user profile)" => [ + 0 => "قبل عرض الصور (صفحة المستخدم)", + ], + "Explore page" => [ + 0 => "تصفح الصفحة", + ], + "After top (explore page)" => [ + 0 => "بعد أعلى الصفحة (صفحة الإستعراض)", + ], + "NSFW" => [ + 0 => "محتوى غير آمن", + ], + "Invalid website name" => [ + 0 => "إسم الموقع غير صالح", + ], + "Invalid language" => [ + 0 => "اللغة غير صالحة", + ], + "Invalid timezone" => [ + 0 => "التوقيت غير صالح", + ], + "Invalid value: %s" => [ + 0 => "قيمة غير صالحة: %s", + ], + "Invalid upload storage mode" => [ + 0 => "وضع التخزين الخاص بالتحميل غير صالح", + ], + "Invalid upload filenaming" => [ + 0 => "اسم الملف المرفوع غير صالح", + ], + "Invalid thumb width" => [ + 0 => "عرض الصورة المصغرة غير صالح", + ], + "Invalid thumb height" => [ + 0 => "ارتفاع الصورة المصغرة غير صحيح", + ], + "Invalid medium size" => [ + 0 => "متوسط الحجم غير ضالح", + ], + "Invalid watermark percentage" => [ + 0 => "علامة مائية غير صالحة", + ], + "Invalid watermark opacity" => [ + 0 => "وضوح العلامة المائية غير صالح", + ], + "Invalid theme" => [ + 0 => "سمة غير صحيحة", + ], + "Invalid value" => [ + 0 => "القيمة غير صالح", + ], + "Invalid theme tone" => [ + 0 => "اسلوب غير صحيح", + ], + "Invalid theme main color" => [ + 0 => "اللون الرئيسي للسمة غير صالح", + ], + "Invalid theme top bar color" => [ + 0 => "لون الشريط العلوي للسمة غير صالح", + ], + "Invalid theme top bar button color" => [ + 0 => "لون الزر في الشريط العلوي غير ضالح ", + ], + "Invalid theme image listing size" => [ + 0 => "حجم عرض الصور في الاستايل غير صحيح", + ], + "Invalid user id" => [ + 0 => "رقم العضوية غير صالح", + ], + "Invalid email mode" => [ + 0 => "بريد إلكتروني غير صحيح", + ], + "Invalid SMTP port" => [ + 0 => "منفذ خاطئ لـ STMP", + ], + "Invalid SMTP security" => [ + 0 => "درجة أمان SMTP غير صالحة", + ], + "Invalid personal mode user ID" => [ + 0 => "هوية مستخدم للوضع الشخصى غير صالحة", + ], + "Invalid or reserved route" => [ + 0 => "طريق غير صالح او محجوز", + ], + "Invalid website privacy mode" => [ + 0 => "وضع خصوصية للموقع غير صالح", + ], + "Invalid website content privacy mode" => [ + 0 => "محتوى وضع خصوصية محتوى الموقع غير صالح", + ], + "Invalid homepage style" => [ + 0 => "طراز صفحة رئيسية غير صالح", + ], + "Invalid homepage call to action button color" => [ + 0 => "لون زر الإجراء فى الصفحة الرئيسية غير صالح", + ], + "Invalid homepage call to action functionality" => [ + 0 => "وظيفة إجراء للصفحة الرئيسية غير صالحة", + ], + "Invalid title" => [ + 0 => "عنوان خاطئ", + ], + "Invalid status" => [ + 0 => "حالة خاطئة", + ], + "Invalid type" => [ + 0 => "نوع خاطئ", + ], + "Invalid visibility" => [ + 0 => "خيار رؤية غير صالح", + ], + "Invalid target attribute" => [ + 0 => "خاصية هدف غير صالحة", + ], + "Invalid rel attribute" => [ + 0 => "خاصية مرتبطة غير صالحة", + ], + "Invalid icon" => [ + 0 => "أيقونة غير صالحة", + ], + "Invalid URL key" => [ + 0 => "مفتاح رابط غير صالح", + ], + "Invalid file path" => [ + 0 => "مسار ملف غير صالح", + ], + "Invalid link URL" => [ + 0 => "رابط غير صحيح", + ], + "Invalid user minimum age" => [ + 0 => "سن أدنى للمستخدم غير صحيح", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "مسموح فقط بالأبجدية الرقمية, الواصلات والرموز التحتية", + ], + "Routes can't be the same" => [ + 0 => "لايمكن أن يكون الطريق متطابقا", + ], + "Invalid upload image path" => [ + 0 => "مسار تحميل الصورة غير صحيح", + ], + "Invalid call to action URL" => [ + 0 => "رابط إجراء غير صحيح", + ], + "Max. allowed %s" => [ + 0 => "الحد الأقصى المسموح %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "لايمكن ترسيم %m للمجلد القائم (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "لايمكن ترسيم %m للطريق القائم (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "لايمكن ترسيم %m إلى %r (تعارض المستخدمين)", + ], + "Invalid SMTP server" => [ + 0 => "سيرفر STMP غير صحيح", + ], + "Invalid SMTP username" => [ + 0 => "اسم العضوية الخاص بـ SMTP غير صحيح", + ], + "Invalid URL" => [ + 0 => "عنوان URL خاطئ", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "عنوان URL مستخدم من قبل صفحة اخرى (معرف %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "مسار الملف مستخدم من قبل صفحة اخرى (معرف %s)", + ], + "Can't save page contents: %s." => [ + 0 => "لا يمكن حفظ محتوى الصفحة: %s", + ], + "Following" => [ + 0 => "متابع", + ], + "About" => [ + 0 => "عن", + ], + "Image ID" => [ + 0 => "رقم هوية الصورة", + ], + "Uploader IP" => [ + 0 => "الأيبي للرافع", + ], + "Ban IP" => [ + 0 => "احظر عنوان الـIP", + ], + "IP already banned" => [ + 0 => "عنوان الـIP محظور بالفعل", + ], + "Upload date" => [ + 0 => "تاريخ الرفع", + ], + "%s images" => [ + 0 => "%s صور", + ], + "Image %i in %a album" => [ + 0 => "الصورة %i في الألبوم %a", + ], + "Image %i in %c category" => [ + 0 => "الصورة %i في الفئة %c", + ], + "Image %i hosted in %w" => [ + 0 => "الصورة %i مستضافة في %w", + ], + "Direct links" => [ + 0 => "روابط مباشرة", + ], + "Image URL" => [ + 0 => "رابط الصورة", + ], + "Image link" => [ + 0 => "رابط الصورة", + ], + "Thumbnail URL" => [ + 0 => "رابط الصورة المصغرة", + ], + "Medium URL" => [ + 0 => "رابط الصورة المتوسطة", + ], + "Full image" => [ + 0 => "الصورة كاملة", + ], + "Full image (linked)" => [ + 0 => "الصورة كاملة (رابط)", + ], + "Medium image (linked)" => [ + 0 => "الصورة المتوسطة (رابط)", + ], + "Thumbnail image (linked)" => [ + 0 => "الصورة المصغيرة (رابط)", + ], + "Login needed" => [ + 0 => "تسجيل الدخول ضروري", + ], + "IP address already banned" => [ + 0 => "عنوان الـIP محظور بالفعل", + ], + "Missing values" => [ + 0 => "قيمة غير صالحة", + ], + "Invalid role" => [ + 0 => "الوظيفة غير صالحة", + ], + "Username already being used" => [ + 0 => "اسم المستخدم مأخوذ بالفعل", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "اضف كلمة سر أو اتصال اجتماعى أخر قبل حذف%s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "اضف بريدا إليكترونيا أو اتصال اجتماعى أخر قبل حذف %s", + ], + "%s has been disconnected." => [ + 0 => "تم قطع الإتصال بـ %s .", + ], + "Test email from %s @ %t" => [ + 0 => "بريد الكتروني تجريبي من %s@%t", + ], + "This is just a test" => [ + 0 => "هذه فقط تجربة", + ], + "Test email sent to %s." => [ + 0 => "بريد الكتروني تجريبي ارسل الى %s", + ], + "User %s followed" => [ + 0 => "تم متابعة المستخدم %s", + ], + "User %s unfollowed" => [ + 0 => "تم إلغاء متابعة المستخدم %s", + ], + "Content liked" => [ + 0 => "محتوى تم الإعجاب به", + ], + "Content disliked" => [ + 0 => "محتوى تم إلغاء الإعجاب به", + ], + "%u liked your %t %c" => [ + 0 => "%u أعجب ب %t %c", + ], + "%u is now following you" => [ + 0 => "%u الأن يتابعك", + ], + "A private user" => [ + 0 => "مستخدم خاص", + ], + "Wrong Username/Email password combination" => [ + 0 => "بريد إلكتروني\\اسم مستخدم أو كلمة مرور خاطئة", + ], + "Sign in" => [ + 0 => "تسجيل الدخول", + ], + "Logged out" => [ + 0 => "تسجيل الخروج", + ], + "General questions/comments" => [ + 0 => "أسئلة عامة / تعليقات", + ], + "DMCA complaint" => [ + 0 => "شكوى DMCA", + ], + "Invalid name" => [ + 0 => "اسم خاطئ", + ], + "Invalid message" => [ + 0 => "رسالة غير صالحة", + ], + "Invalid subject" => [ + 0 => "عنوان غير صالح", + ], + "Invalid reCAPTCHA" => [ + 0 => "reCAPTCHA غير صالحة", + ], + "Can't submit the form: %s" => [ + 0 => "لايمكن تقديم النموذج: %s", + ], + "Message sent. We will get in contact soon." => [ + 0 => "تم الارسال. سوف نتصل بك قريبا .", + ], + "Mail error" => [ + 0 => "خطأ في البريد الإلكتروني", + ], + "Image search results for %s" => [ + 0 => "نتائج البحث عن صورة لـ%s", + ], + "Album search results for %s" => [ + 0 => "نتائج بحث الألأبومات لـ %s", + ], + "User search results for %s" => [ + 0 => "نتائج بحث المستخدمين لـ%s", + ], + "Account" => [ + 0 => "الحساب", + ], + "Profile" => [ + 0 => "الملف الشخصي", + ], + "Linked accounts" => [ + 0 => "الحسابات المرتبطة", + ], + "Invalid image expiration: %s" => [ + 0 => "تاريخ إنتهاء الصورة غير صالح: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "تم إرسال رسالة إلى %s تحتوي على طريقة تفعيل هذا البريد الإلكتروني", + ], + "Invalid website" => [ + 0 => "عنوان الموقع إلكتروني خاطئ", + ], + "Wrong password" => [ + 0 => "كلمة مرور خاطئة", + ], + "Use a new password" => [ + 0 => "استخدم كلمة مرور جديدة", + ], + "Changes have been saved." => [ + 0 => "تم حفظ الاعدادات.", + ], + "Password has been changed" => [ + 0 => "تم تعديل كلمة المرور بنجاح", + ], + "Password has been created." => [ + 0 => "تم إنشاء كلمة السر بنجاح.", + ], + "Wrong Username/Email values" => [ + 0 => "بريد إلكتروني أو كلمة مرور خاطئة", + ], + "Settings for %s" => [ + 0 => "التهيئة لـ %s", + ], + "You must be at least %s years old to use this website." => [ + 0 => "يجب ان تكون %s سنة لتستخدم هذا الموقع", + ], + "Create account" => [ + 0 => "إنشاء حساب", + ], + "%s's Images" => [ + 0 => "%s صور", + ], + "%s's Albums" => [ + 0 => "%s البوم", + ], + "Results for" => [ + 0 => "النتائج لـ", + ], + "Liked by %s" => [ + 0 => "اعجب بواسطة ٪s", + ], + "Liked" => [ + 0 => "اعجاب", + ], + "Followers" => [ + 0 => "المتابعون", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) البومات على %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) على %w", + ], + "Discovery" => [ + 0 => "اكتشاف", + ], + "Close" => [ + 0 => "إغلاق", + ], + "Advanced search" => [ + 0 => "بحث متقدم", + ], + "Random" => [ + 0 => "عشوائي", + ], + "Notices (%s)" => [ + 0 => "الملاحظات (%s)", + ], + "Upload" => [ + 0 => "رفع", + ], + "Sign in with another account" => [ + 0 => "تسجيل الدخول بحساب آخر", + ], + "or" => [ + 0 => "أو", + ], + "Username or Email address" => [ + 0 => "اسم المستخدم أو البريد الإلكتروني", + ], + "Keep me logged in" => [ + 0 => "تذكر دخولي", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "لا يوجد لديك حساب؟ <a href='%s'>سجل الآن</a>.", + ], + "Sign up with another account" => [ + 0 => "الإشتراك بحساب آخر", + ], + "Email address" => [ + 0 => "البريد الإلكتروني", + ], + "Username" => [ + 0 => "إسم المستخدم", + ], + "I'm at least %s years old" => [ + 0 => "انا بعمر %s سنة على الأقل", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "بمجرد إشتراكك ستكون قد وافقت على <a href=\"%s\">شروط الخدمة</a>", + ], + "Notifications" => [ + 0 => "الإشعارات", + ], + "loading" => [ + 0 => "جاري التحميل", + ], + "You don't have notifications" => [ + 0 => "لا يوجد لديك اشعارات", + ], + "My Profile" => [ + 0 => "ملفي الشخصي", + ], + "Sign out" => [ + 0 => "تسجيل الخروج", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "لقد وصلنا طلب لتغيير البريد الإلكتروني <a href=\"%u\">%n</a> لحسابك في %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "لمتابعة الإجراء يستوجب عليك <a href=\"%s\">تفعيل بريدك الإلكتروني </a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "كخيار ثاني ، يمكنك نسخ ولصق الرابط التالي في متصفحك حتى تتمكن من تفعيل بريدك الإلكتروني <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "إذا لم تقم بتنفيذ هذا الإجراء ، برجاء تجاهل هذه الرسالة.", + ], + "This request was made from IP: %s" => [ + 0 => "هذا الإجراء تم تنفيذه بواسطة الأي بي التالي : %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "لقد تلقينا طلب تسجيل %n الحساب فى %w .", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "لإنهاء العمليه يرجى <a href=\"%s\">تفعيل عضوية حسابك </a>", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "لقد تلقينا طلب لتغيير كلمة المرور <a href=\"%u\">%n</a> لحسابك", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "لإعادة تعيين كلمة المرور الخاصة بك <a href=\"%s\">اضغط هنا</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "مرحبا %n مرحبا بك في %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "الآن وبعد أن قمت بانشاء حساب خاص بك بامكانك الاستمتاع برفع الصور الخاصة بك واضافة ألبومات وتعديدل الخصوصية حسب ما تريد.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "بالمناسبة, هاهى صفحتك الشخصية الرائعة: <a href=\"%u\">%n</a> . هيا قم بتخصيصها حسب ماتحب, فهى ملك لك خصيصا!", + ], + "Thank you for joining" => [ + 0 => "شكراً لانضمامك", + ], + "This email was sent from %w %u" => [ + 0 => "تم ارسال البريد من %u %w", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "اسحب و أسقط أو ألصق الصور هنا للتحميل", + ], + "Select the images to upload" => [ + 0 => "إختر الصور المراد رفعها", + ], + "browse from your computer" => [ + 0 => "تصفح من جهاز الكمبيوتر الخاص بك", + ], + "add image URLs" => [ + 0 => "أضف رابط صورة", + ], + "You can also %i or %u." => [ + 0 => "يمكنك أيضاً %i أو %u.", + ], + "take a picture" => [ + 0 => "التقط صورة", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "تعديل أو تغيير حجم أي صورة من خلال النقر على معاينة الصورة", + ], + "Edit or resize any image by touching the image preview" => [ + 0 => "تعديل أو تغيير حجم أي صورة من خلال اللمس على معاينة الصورة", + ], + "your computer" => [ + 0 => "جهاز الكمبيوتر الخاص بك", + ], + "image URLs" => [ + 0 => "روابط الصور", + ], + "You can keep adding more images from %i or from %u." => [ + 0 => "يمكنك الاستمرار في إضافة المزيد من الصور من %i أو من %u", + ], + "your device" => [ + 0 => "جهازك", + ], + "Uploading %q %o" => [ + 0 => "يتم تحميل %q %o", + ], + "complete" => [ + 0 => "أكتمل", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "يجري الآن تحميل القائمة، سوف يستغرق عدة ثواني للإنتهاء.", + ], + "Upload complete" => [ + 0 => "تم الرفع", + ], + "Uploaded content added to %s." => [ + 0 => "تمت إضافة المحتوى الذي تم تحميله إلى %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "يمكنك %c فقط مع المحتوى الذي تم تحميله أو %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "يمكنك %c مع المحتوى الذي تم تحميله للتو.", + ], + "create a new album" => [ + 0 => "إنشاء ألبوم جديد.", + ], + "move it to an existing album" => [ + 0 => "نقله إلى ألبوم موجود", + ], + "create an account" => [ + 0 => "إنشاء حساب", + ], + "sign in" => [ + 0 => "تسجيل الدخول", + ], + "You can %s or %l to save this content into your account." => [ + 0 => "يمكنك %s أو %l لحفظ هذا المحتوى في حسابك.", + ], + "No %s have been uploaded" => [ + 0 => "لا %s تم تحميلها", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "حدث خطأ ما والنظام لا يستطيع الاستجابة لطلبك.", + ], + "Category" => [ + 0 => "فئة", + ], + "Select category" => [ + 0 => "تحديد الفئات", + ], + "Mark this if the upload is not family safe" => [ + 0 => "قم بتعليم المحتوى على أنه غير مناسب للأسرة", + ], + "Not family safe upload" => [ + 0 => "محتوى غير مناسب للأسرة", + ], + "Uploading" => [ + 0 => "جاري الرفع", + ], + "cancel" => [ + 0 => "إلغاء", + ], + "cancel remaining" => [ + 0 => "إلغاء ما تبقى", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "ملاحظة : بعض الصور لم يتم رفعها بنجاح.", + ], + "learn more" => [ + 0 => "إعرف المزيد", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "تحقق من <a data-modal=\"simple\" data-target=\"failed-upload-result\"> تقرير الخطأ</a>للمزيد من المعلومات", + ], + "max" => [ + 0 => "أقصى", + ], + "close" => [ + 0 => "إغلاق", + ], + "copy" => [ + 0 => "نسخ", + ], + "Edit" => [ + 0 => "تعديل", + ], + "Remove" => [ + 0 => "حذف", + ], + "Edit image" => [ + 0 => "تعديل الصورة", + ], + "Title" => [ + 0 => "عنوان", + ], + "optional" => [ + 0 => "خياري", + ], + "Resize image" => [ + 0 => "تغيير حجم الصورة", + ], + "Width" => [ + 0 => "عرض", + ], + "Height" => [ + 0 => "ارتفاع", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "ملاحظة: لن يتم تغيير حجم الصور المتحركة .", + ], + "Auto delete image" => [ + 0 => "حذف تلقائي للصورة", + ], + "Sign up" => [ + 0 => "تسجيل", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s لتتمكن من تخصيص أو تعطيل الحذف التلقائي للصورة.", + ], + "Mark this if the image is not family safe" => [ + 0 => "الاشارة على هذه الصورة في حال كانت غير آمنة", + ], + "Flag as unsafe" => [ + 0 => "علامة لمحتوى غير آمن", + ], + "Description" => [ + 0 => "الوصف", + ], + "Brief description of this image" => [ + 0 => "وصف مختصر عن الصورة", + ], + "Add image URLs" => [ + 0 => "إضافة روابط الصورة", + ], + "Add the image URLs here" => [ + 0 => "إضافة روابط الصورة هنا", + ], + "Create album" => [ + 0 => "إنشاء ألبوم", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "سيتم نقل المحتويات التي يتم تحميلها إلى هذا الألبوم تم إنشاؤه حديثا. يمكنك أيضا نقل المحتوى إلى <a class=\"modal-switch\" data-switch=\"move-existing-album\"> الالبوم القائم</a>", + ], + "Move to album" => [ + 0 => "نقل إلى الألبوم", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "اختر الألبوم لنقل المحتوى الذي تم تحميله. يمكنك أيضا <a class=\"modal-switch\" data-switch=\"move-new-album\"> إنشاء ألبوم جديد</a>ونقل المحتوى هناك", + ], + "Error report" => [ + 0 => "تقرير الأخطاء", + ], + "album" => [ + 0 => "خانة فارغة", + 1 => "ألبوم", + 2 => "خانة فارغة", + 3 => "خانة فارغة", + 4 => "خانة فارغة", + 5 => "ألبومات", + ], + "Viewer links" => [ + 0 => "روابط المشاهد", + ], + "HTML Codes" => [ + 0 => "رمز HTML", + ], + "HTML image" => [ + 0 => "صورة HTML", + ], + "HTML full linked" => [ + 0 => "HTML مرتبط بالكامل", + ], + "HTML medium linked" => [ + 0 => "رابط HTML للصورة المتوسطة", + ], + "HTML thumbnail linked" => [ + 0 => "رابط HTML للصورة الصغيرة", + ], + "BBCodes" => [ + 0 => "رمز بي بي", + ], + "BBCode full" => [ + 0 => "BBCode الكامل", + ], + "BBCode full linked" => [ + 0 => "كود BB مرتبط بالكامل", + ], + "BBCode medium linked" => [ + 0 => "رابط كود BB المتوسط", + ], + "BBCode thumbnail linked" => [ + 0 => "رمز بي بي للصورة المصغرة", + ], + "Markdown full" => [ + 0 => "تخفيض كامل", + ], + "Markdown full linked" => [ + 0 => "رابط التخفيض بالكامل", + ], + "Markdown medium linked" => [ + 0 => "رابط التخفيض المتوسط", + ], + "Markdown thumbnail linked" => [ + 0 => "ربط صورة التخفيض المصغرة", + ], + "All these words" => [ + 0 => "كل الكلمات", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "اكتب الكلمات المهمة: ثلاثية الألوان", + ], + "This exact word or phrase" => [ + 0 => "نفس الكلمة او العبارة", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "ضع الكلمات بالضبط في الاقتباس : \"rat terrier\"", + ], + "None of these words" => [ + 0 => "أيا من هذه الكلمات", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "وضع علامة الطرح قبل الكلمات التي لا تريد:-rodent -\"Jack Russell\"", + ], + "Storage" => [ + 0 => "المخزن", + ], + "IP address" => [ + 0 => "عنوان IP", + ], + "Album name" => [ + 0 => "اسم الألبوم", + ], + "move to existing album" => [ + 0 => "نقل إلى الألبوم القائم", + ], + "Album description" => [ + 0 => "وصف الألبوم", + ], + "Brief description of this album" => [ + 0 => "وصف موجز لهذا الألبوم", + ], + "Album privacy" => [ + 0 => "خصوصية الألبوم", + ], + "Who can view this content" => [ + 0 => "من سيشاهد هذا المحتوى", + ], + "Private (just me)" => [ + 0 => "خاص (أنا فقط)", + ], + "Private (anyone with the link)" => [ + 0 => "خاص (أي شخص مع الرابط)", + ], + "Private (password protected)" => [ + 0 => "خاص ( محمى بكلمة سر )", + ], + "Album password" => [ + 0 => "كلمة سر الألبوم", + ], + "Name" => [ + 0 => "الإسم", + ], + "Category name" => [ + 0 => "اسم الفئة", + ], + "URL key" => [ + 0 => "مفتاح الرابط", + ], + "Category URL key" => [ + 0 => "مفتاح رابط الفئة", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "فقط الحروف، الأرقام، و الوصلات", + ], + "Brief description of this category" => [ + 0 => "وصف موجز لهذه الفئة", + ], + "Untitled image" => [ + 0 => "صورة غير معنونة", + ], + "Expiration date" => [ + 0 => "تاريخ انتهاء الصلاحية", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "سنة-شهر-يوم ساعة-دقيقة-ثانية", + ], + "Example" => [ + 0 => "مثال", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "حتى أى تاريخ سيمنع عنوان الأى بى هذا؟ اتركه فارغا لإلغاء تاريخ الصلاحية.", + ], + "Message" => [ + 0 => "الرسالة", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "رسالة نصية, html أو رابط إعادة توجيه", + ], + "Existing album" => [ + 0 => "المجلد القائم", + ], + "create new album" => [ + 0 => "إنشاء ألبوم جديد", + ], + "Storage name" => [ + 0 => "اسم التخزين", + ], + "API" => [ + 0 => "المعرف API", + ], + "Region" => [ + 0 => "منطقة", + ], + "Storage bucket" => [ + 0 => "مكان التخزين", + ], + "Key" => [ + 0 => "مفتاح", + ], + "Storage key" => [ + 0 => "مفتاح التخزين", + ], + "Secret" => [ + 0 => "سري", + ], + "Storage secret" => [ + 0 => "التخزين السري", + ], + "Client email" => [ + 0 => "البريد الإلكتروني للعميل", + ], + "Google Cloud client email" => [ + 0 => "البريد الأكتروني لمستخدم جوجل كلاود", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "انت تحتاج الى <a %s>حساب خدمة</a> لهذا", + ], + "Private key" => [ + 0 => "مفتاح خاص", + ], + "Google Cloud JSON key" => [ + 0 => "مفتاح JSON لجوجل كلاود", + ], + "Service name" => [ + 0 => "اسم الخدمة", + ], + "Identity URL" => [ + 0 => "رابط الهوية", + ], + "Identity API endpoint" => [ + 0 => "نقطة نهاية هوية API", + ], + "API endpoint for OpenStack identity" => [ + 0 => "نقطة نهاية API لهوية أوبن ستاك ", + ], + "Storage region" => [ + 0 => "منطقة التخزين", + ], + "Container" => [ + 0 => "حاوية", + ], + "Storage container" => [ + 0 => "حاوية التخزين", + ], + "Tenant id" => [ + 0 => "هوية المستأجر", + ], + "Tenant id (account id)" => [ + 0 => "هوية المستأجر ( هوية الحساب )", + ], + "Tenant name" => [ + 0 => "اسم المستأجر", + ], + "Tenant name (account name)" => [ + 0 => "اسم المستأجر ( اسم الحساب ) ", + ], + "Hostname or IP of the storage server" => [ + 0 => "اسم المضيف أو IP لخادم التخزين", + ], + "Path" => [ + 0 => "مسار", + ], + "Server path" => [ + 0 => "مسار الخادم", + ], + "Server path where the files will be stored" => [ + 0 => "مسار الخادم المعتمد حيث سيتم تخزين ملفات", + ], + "Server username" => [ + 0 => "اسم مستخدم الخادم", + ], + "Server password" => [ + 0 => "كلمة مرور الخادم", + ], + "Storage capacity" => [ + 0 => "مساحة التخزين", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "مثال : 20 GB, 1 TB ...", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "سيتم تعطيل هذا التخزين عندما يصل إلى أقصى قدراته. أتركه فارغ أو \"0\" للامحدود.", + ], + "Storage URL" => [ + 0 => "URL التخزين", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "سيقوم النظام بترسيم صور هذا التخزين لهذا الرابط.", + ], + "view more" => [ + 0 => "شاهد المزيد", + ], + "Load more" => [ + 0 => "عرض المزيد", + ], + "Select all" => [ + 0 => "تحديد الكل", + ], + "Clear selection" => [ + 0 => "مسح المحدد", + ], + "Selection" => [ + 0 => "إختيار", + ], + "Action" => [ + 0 => "إجراء", + ], + "Get embed codes" => [ + 0 => "أحصل على كود العرض", + ], + "Assign category" => [ + 0 => "عين فئة", + ], + "Flag as safe" => [ + 0 => "علم بأنه محتوى آمن", + ], + "Delete" => [ + 0 => "حذف", + ], + "Create new album" => [ + 0 => "إنشاء ألبوم جديد", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "حتى تتمكن من إستخدام جميع المميزات يجب عليك تسجيل الدخول. إذا لم يكن لديك حساب <a href=\"%s\">اشترك</a>الان", + ], + "There's nothing to show here." => [ + 0 => "لا يوجد شيء لإظهاره هنا.", + ], + "Upload images" => [ + 0 => "تحميل الصور", + ], + "Edit image details" => [ + 0 => "تعديل بيانات الصورة", + ], + "Edit album details" => [ + 0 => "تعديل معلومات الألبوم", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "جميع الصور سوف يتم نقلها إلى أحدث ألبوم تم إنشاؤه ، كما يمكنك نقل الصور إلى <a class=\"modal-switch\" data-switch=\"move-existing-album\"> الألبومات الحالية </a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "إختر الألبوم الذي ترغب نقل الصور فيه ، كما يمكنك <a class=\"modal-switch\" data-switch=\"move-new-album\">إنشاء ألبوم جديد </a> ونقل الصور فيه", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "حدد ألبوم من القائمة لنقل محتوياته. يمكنك أيضا <a class=\"modal-switch\" data-switch=\"move-new-album\"> إنشاء ألبوم جديد </a> ونقل محتويات الألبوم المحدد مسبقا إلى هناك.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "إختر الألبوم الذي ترغب نقل الصور فيه ، كما يمكنك <a class=\"modal-switch\" data-switch=\"move-new-album\">إنشاء ألبوم جديد </a> ونقل الصور فيه", + ], + "All the selected images will be assigned to this category." => [ + 0 => "سيتم تعيين جميع الصور المختارة لهذه الفئة.", + ], + "There is no categories." => [ + 0 => "لايوجد فئات.", + ], + "Confirm flag content as safe" => [ + 0 => "قم بالتأكيد بأن المحتوى آمن", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "هل أنت متأكد من أن المحتوى آمن ؟", + ], + "Confirm flag content as unsafe" => [ + 0 => "تأكيد بأن المحتوى غير آمن", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "هل تريد حقا الإشارة الى هذا المحتوى بأنه غير آمن ؟", + ], + "Confirm deletion" => [ + 0 => "تأكيد الحذف", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "هل أنت متأكد من رغبتك في مسح هذا المحتوى ؟ لا يمكن التراجع عن هذا الإجراء.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "هل أنت متأكد من رغبتك في مسح المحتويات المختارة ؟ لا يمكنك التراجع عن هذا الإجراء", + ], + "Uploaded by guest" => [ + 0 => "مرفوع بواسطة ضيف", + ], + "From %s" => [ + 0 => "من %s", + ], + "Uploaded by private" => [ + 0 => "مرفوع بواسطة خاص", + ], + "by %u" => [ + 0 => "بواسطة %u", + ], + "Select" => [ + 0 => "إختيار", + ], + "Toggle unsafe flag" => [ + 0 => "تبديل العلم الغير أمن ", + ], + "The requested page was not found." => [ + 0 => "الصفحة المطلوبة غير موجودة.", + ], + "Search something else" => [ + 0 => "إبحث في شئ آخر", + ], + "The user has been deleted" => [ + 0 => "تم حذف المستخدم بنجاح", + ], + "The content has been deleted." => [ + 0 => "تم حذف المحتوى.", + ], + "Your account is almost ready" => [ + 0 => "حسابك جاهز تقريبا", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "تم ارسال بريد الكتروني الى %s مع تعليمات لتفعيل حسابك. رابط التفعيل صالح فقط لمدة 48 ساعة. إذا لم تتلقى التعليمات في صندوق الوارد حاول البحث عنه في مجلد البريد الغير مرغوب.", + ], + "Go to homepage" => [ + 0 => "إذهب إلى الصفحة الرئيسية", + ], + "Resend activation" => [ + 0 => "إعادة إرسال التفعيل", + ], + "You have successfully changed your account email to %s" => [ + 0 => "لقد قمت بنجاج بتغيير البريد الإلكتروني الخاص بحسابك إلى %s", + ], + "Go to my profile" => [ + 0 => "إذهب إلى ملفي الشخصي", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "سوف يتم إرسال رسالة تأكيد إلى هذا البريد يحتوي على تعليمات لتفعيل الحساب.", + ], + "Your email address" => [ + 0 => "بريدك الإلكتروني", + ], + "Add email" => [ + 0 => "إضافة بريد إلكتروني", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "تم إرسال رسالة بريد إلكتروني مع تعليمات لإعادة تعيين كلمة المرور الخاصة بك إلى عنوان البريد الإلكتروني المسجل. إذا لم تتلقى تلك التعليمات في صندوق بريدك الوارد قم بالبحث عن الرسالة في صندوق مرشحات البريد المزعج.", + ], + "Resend instructions" => [ + 0 => "إعادة إرسال التعليمات", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "تم ارسال بريد الكتروني مع معلومات اعادة تعين كلمة المرور. اذا لم تستلم البريد برجاء مراجعة جميع المجلدات في بريدك من الممكن ان تكون في مرشحات البريد المزعج.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "إدخل البريد الإلكتروني أو اسم العضوية التي قمت بتزويدهما أثناء الإشتراك.", + ], + "Submit" => [ + 0 => "تقديم", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "تم تغيير كلمة السر.. تستطيع الان الدخول باستخدام كلمة السر الجديدة.", + ], + "Login now" => [ + 0 => "سجل دخولك", + ], + "Enter the new password that you want to use." => [ + 0 => "إدخل كلمة المرور الجديدة التي تود إستخدامها.", + ], + "New Password" => [ + 0 => "كلمة المرور الجديدة", + ], + "%d characters min" => [ + 0 => "%d كحد ادنى من الحروف", + ], + "Enter your new password" => [ + 0 => "إدخل كلمة المرور الجديدة", + ], + "Confirm password" => [ + 0 => "تأكيد كلمة المرور", + ], + "Re-enter your new password" => [ + 0 => "إعادة إدخال كلمة المرور", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "تم إرسال رسالة بالبريد الالكتروني إلى٪s مع تعليمات لتفعيل حسابك. إذا لم تتلقى تعليمات, يرجى التحقق من البريد غير المرغوب فيه أو مرشحات البريد المزعج.", + ], + "Enter the username or email address that you used to create your account to continue." => [ + 0 => "أدخل اسم المستخدم أو عنوان البريد الإلكتروني الذي استخدمته لإنشاء حسابك للمتابعة.", + ], + "This content is private" => [ + 0 => "هذا المحتوى خاص", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "هل حقا تريد حذف هذا الألبوم وكافة الصور الموجودة بداخله ؟ لا يمكن التراجع.", + ], + "Delete album" => [ + 0 => "حذف الألبوم", + ], + "You like this" => [ + 0 => "انت معحب بهذا", + ], + "Like" => [ + 0 => "إعجاب", + ], + "Upload to album" => [ + 0 => "تحميل إلى الألبوم", + ], + "Album link" => [ + 0 => "رابط الألبوم", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "يرجى قراءة والالتزام بالشروط التالية قبل المتابعة:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "هذا الموقع يحتوى على معلومات, روابط وصور ذات محتوى للبالغين. إذا كنت تحت سن %s. أو إذا كانت المحتوى يؤذيك أو من الغير قانونى مشاهدته فى مجتمعك, رجاء عدم الاستمرار. \n\nانا عمرى على الأقل %s وأعتقد بصفتى شخصا بالغا ان من حقى تلقى \\ مشاهدة محتوى البالغين . واريد ان اتلقى\\ اشاهد ذلك المحتوى. \n\nاعتقد أن الممارسة الجنسية بالتراضى بين البالغين ليست مسيئة أو فاضحة . و المشاهدة, القرائة أو تحميل المحتوى الصريح لاينتهك معايير المجتمع الخاص بى, المدينة أو الولاية أو الدولة . \n\nالمحتوى الجنسى الصريح الذى أقوم بمشاهدته هو لاستخدامى الشخصى ولن أقوم بعرضه على الصغار .\n\nانا المسؤول الوحيد عن أى عواقب قانونية تتبع مشاهدة , قرائة او تحميل أى محتوى على هذا الموقع. وعلاوة على ذلك فإن الموقع وأى من الكيانات التابعة له لن تتحمل أية مسؤولية بخصوص أآ عواقب قانونية تنشأ من الدخول المزور أو استخدام هذا الموقع. \n\nشاشة الموافقة هذة تشكل اتفاقية قانونية بين هذا الموقع وبينك و \\ أو أى اعمال لديك فيها مصلحة قانونية. إذا اعتبر أى جزء من تلك الاتفاقية غير قابل للتنفيذ من قبل محكمة مختصة . فلايجب ان تؤثر على قابلية تنفيذ أى من الأجزاء الأخرى من الاتفاقية.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "عن طريق النقر \"أوافق\" أنت تعلن أنك قد قرأت وفهمت كل الشروط المذكورة.", + ], + "I Agree" => [ + 0 => "أنا موافق", + ], + "Disk used" => [ + 0 => "القرص المستخدم", + ], + "Add user" => [ + 0 => "إضافة عضو", + ], + "Role" => [ + 0 => "الصلاحية", + ], + "Administrator" => [ + 0 => "المتحكم الرئيسي", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "دائما تعطيل هذا الإعداد عند استخدام وضع موقع شخصي.", + ], + "documentation" => [ + 0 => "التوثيق", + ], + "Learn more about %s at our %d." => [ + 0 => "تعلم أكثر عن %s على %d الخاص بنا.", + ], + "Add category" => [ + 0 => "اضافة فئة", + ], + "Add IP ban" => [ + 0 => "إضافة حظر IP", + ], + "Add storage" => [ + 0 => "إضافة التخزين", + ], + "Return to pages" => [ + 0 => "العودة إلى صفحات", + ], + "Website name" => [ + 0 => "اسم الموقع", + ], + "Website doctitle" => [ + 0 => "عنوان الموقع", + ], + "Website description" => [ + 0 => "وصف الموقع", + ], + "Website keywords" => [ + 0 => "كلمات الموقع", + ], + "Default time zone" => [ + 0 => "المنطقة الزمنية الافتراضية", + ], + "Select region" => [ + 0 => "اختر المنطقة", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "يسمح للبحث في الصور والألبومات والمستخدمين استنادا إلى استعلام بحث معين.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "تمكين التصفح للصور العامة التي تم تحميلها . كما أنها تمكن الفئات.", + ], + "Enables to browse images randomly." => [ + 0 => "تمكين لتصفح الصور بشكل عشوائي.", + ], + "Likes" => [ + 0 => "الإعجابات", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "السماح للمستخدمين بالإعجاب بالمحتوى و نشر \" القوائم الأكثر إعجابا \"", + ], + "Followers allows users to follow each other." => [ + 0 => "يسمح المتابعون للمستخدمين بمتابعة بعضهم البعض.", + ], + "Personal mode target user" => [ + 0 => "وضع المستخدم الشخصى ", + ], + "User ID" => [ + 0 => "رقم العضو", + ], + "Your user id is: %s" => [ + 0 => "رقم الهوية الخاص بك هو: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "الهوية الرقمية للمستخدم المستهدف للوضع الشخصى.", + ], + "Personal mode routing" => [ + 0 => "توجيه الوضع الشخصى", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "توجيه مخصص لترسيم / المستخدم إلى / شيئ ما. استخدم \" /\" لترسيم الصفحة الشخصية. ", + ], + "Website privacy mode" => [ + 0 => "وضع خصوصية الموقع", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "الوضع الخاص سيجعل الموقع يظهر فقط للاعضاء المسجلين.", + ], + "Content privacy mode" => [ + 0 => "وضع المحتوى الخاص", + ], + "Default" => [ + 0 => "الإفتراضي", + ], + "Force private (self)" => [ + 0 => "إجبار الوضع الخاص (الذاتي)", + ], + "Force private (anyone with the link)" => [ + 0 => "إجبار الوضع الخاص (أي شخص لديه الرابط)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "الوضع الخاص يجبر على تجاوز خيار المستخدم في اختيار الخصوصية.", + ], + "Page title" => [ + 0 => "عنوان الصفحة", + ], + "Page status" => [ + 0 => "حالة الصفحة", + ], + "Active page" => [ + 0 => "الصفحة النشطة", + ], + "Inactive page (%s)" => [ + 0 => "صفحة غير نشطة (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "يمكن الوصول فقط للصفحات النشطة", + ], + "Type" => [ + 0 => "اكتب", + ], + "Page visibility" => [ + 0 => "إمكانية رؤية الصفحة", + ], + "Visible page" => [ + 0 => "صفحة مرئية", + ], + "Hidden page" => [ + 0 => "صفحة مخفية", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "لن تظهر الصفحات المخفية فى قوائم النظام, لكن يمكن لأى كان الوصول إليها عبر الرابط", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "مسموح فقط فالأبجدية الرقمية والواصلات والخطوط المائلة إلى الأمام", + ], + "File path" => [ + 0 => "مسار الملف", + ], + "A %f file relative to %s" => [ + 0 => "هناك ملف %f مرتبط بـ %s", + ], + "Meta keywords" => [ + 0 => "الكلمات المفتاحية الوصفية", + ], + "Meta description" => [ + 0 => "وصف الميتا", + ], + "Source code" => [ + 0 => "الكود المصدرى", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "لايوجد اذن كتابة فى مسار %s يجب أن تضيف هذا الملف باستخدام أداة تحرير خارجية.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "لايوجد اذن كتابة فى مسار %s يجب أن تعدل محتوى هذا الملف باستخدام أداة تحرير خارجية.", + ], + "Taken from: %s" => [ + 0 => "مأخوذ من: %s", + ], + "Link URL" => [ + 0 => "رابط الصفحة", + ], + "Link target attribute" => [ + 0 => "خاصية هدف الرابط", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "اختر %s لفتح الصفحة أو الرابط فى نافذة جديدة", + ], + "Link rel attribute" => [ + 0 => "خاصية ارتباط الرابط", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "مسموح فقط بالأبجدية الرقمية والواصلات والمسافات", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "خاصية &lt;a&gt; %s HTML", + ], + "Link icon" => [ + 0 => "أيقونة الرابط", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "اختر <a %s> مرجعية الأيقونات </a> للقائمة الكاملة للأيقونات المدعومة ", + ], + "Sort order display" => [ + 0 => "ترتيب العرض", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "ترتيب العرض فى الصفحة للقوائم . استخدم \"1\" للأولوية الأعلى", + ], + "pages" => [ + 0 => "صفحات", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "هل تريد حذف هوية الصورة %s ؟ لايمكن التراجع عن هذا الإجراء", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "تنسيقات الصور غير المحددة لن يسمح بتحميلها.", + ], + "Enable uploads" => [ + 0 => "تفعيل الرفع", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "قم بتفعيل هذه الخاصية إذا أردت فتح ميزة الرفع ، هذه الخاصية لا تؤثر على المديرين.", + ], + "Guest uploads" => [ + 0 => "تحميلات الزوار", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "فعل هذا الخيار إن كنت تريد السماح لغير المسجلين برفع الصور.", + ], + "Enable embed codes (uploader)" => [ + 0 => "تفعيل تضمين الرموز (رافع)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "قم بتفعيل هذا الخيار إذا كنت تريد أن تظهرالرموز المضمنة بعد انتهاء التحميل.", + ], + "Upload threads" => [ + 0 => "Upload threads", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "عدد سلاسل التحميل المتزامنة (التحميل المتوازي)", + ], + "Redirect on single upload" => [ + 0 => "إعادة التوجيه عند الرفع المفرد", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "قم بتفعيل هذا لإعادة التوجيه للصفحة الرئيسية عند الرفع المفرد.", + ], + "Enable duplicate uploads" => [ + 0 => "تفعيل الرفع المزدوج", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "تفعيل هذا إذا اردت السماح بالرفع المزدوج من نفس الأى بى فى خلال 24 ساعة. هذا الإعداد لايؤثر على الإداريين.", + ], + "Enable expirable uploads" => [ + 0 => "تمكين المرفوعات القابلة للانتهاء", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "تفعيل هذا إذا اردت أن تسمح برفوعات ذات خاصية المسح التلقائى.", + ], + "Auto delete guest uploads" => [ + 0 => "حذف تحميلات الضيف تلقائيا", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "تمكين هذا إذا كنت ترغب في حذف تحميلات الضيوف بعد وقت معين.", + ], + "Maximum image size" => [ + 0 => "الحد الأقصى لحجم الصورة", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "سيتم تصغير حجم الصور التي تزيد عن هذا الحجم تلقائيا. استخدم صفر (0) لتجاهل هذا.", + ], + "Image Exif data" => [ + 0 => "بيانات وصف الصورة", + ], + "Keep" => [ + 0 => "الاحتفاظ", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "اختر الإعدادات الافتراضية <a %s> لبيانات وصف الصورة </a> عند الرفع.", + ], + "Image Exif data (user setting)" => [ + 0 => "بيانات وصف الصورة ( إعداد المستخدم )", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "تفعيل هذا إذا اردت ان تسمح لكل مستخدم بضبط كيفية إدارة بيانات الصورة الوصفية.", + ], + "Maximum upload file size" => [ + 0 => "الحد الأقصى لحجم ملف التحميل", + ], + "Image path" => [ + 0 => "مسار الصورة", + ], + "Relative to Chevereto root" => [ + 0 => "متعلق بـ Chevereto root", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "اين يتم حفظ الصور؟ المرتبطة ب Chevereto root.", + ], + "Storage mode" => [ + 0 => "وضع التخزين", + ], + "Datefolders" => [ + 0 => "ملفات التواريخ", + ], + "Direct" => [ + 0 => "مباشر", + ], + "Datefolders creates %s structure" => [ + 0 => "انشاء تاريخ الملفات %s الهيكلية", + ], + "File naming method" => [ + 0 => "طريقة تسمية الملف", + ], + "Original" => [ + 0 => "الأصلي", + ], + "Mix original + random" => [ + 0 => "خلط الأصلى + العشوائى", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\" الأصلى\" سيحاول الحفاظ على اسم الصورة من المصدر فى حين \" العشوائى\" سينتج اسما عشوائيا. \" الهوية\" ستسمى الصورة بمثل هوية الصورة.", + ], + "Thumb size" => [ + 0 => "حجم الصورة المصغرة", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "الصورة المصغرة سوف يتم تثبيتها لهذا الحجم.", + ], + "Medium image fixed dimension" => [ + 0 => "ابعاد ثابتة للصورة المتوسطة", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "ستثبت الصور متوسطة الحج إلى هذة الأبعاد. على سبيل المثال, إذا اخترت \"العرض\" سيتم تثبيت هذا البعد ويتم حساب الارتفاع تلقائيا", + ], + "Medium image fixed size" => [ + 0 => "حجم ثابت للصورة المتوسطة", + ], + "Width or height will be automatically calculated." => [ + 0 => "سيتم حساب العرض والارتفاع تلقائيا", + ], + "Watermarks" => [ + 0 => "علامات مائية", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "تفعيل هذا الخيار يسمح بوضع شعار أو أي شيء تريده في رفع الصور.", + ], + "Warning: Can't write in %s" => [ + 0 => "تحذير: لا يمكن الكتابة في %s", + ], + "Watermark user toggles" => [ + 0 => "تبديلات علامات المستخدم المائية", + ], + "Enable watermark on guest uploads" => [ + 0 => "تفعيل العلامات المائية على مرفوعات الضيوف", + ], + "Enable watermark on user uploads" => [ + 0 => "تفعيل العلامات المائية على مرفوعات المستخدمين", + ], + "Enable watermark on admin uploads" => [ + 0 => "تفعيل العلامة المائية على مرفوعات المديرين", + ], + "Watermark file toggles" => [ + 0 => "تبديلات ملف العلامة المائية", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "تفعيل العلامة المائية على مرفوعات صور بصيغة GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "ادنى حجم مطلوب لتطبيق العلامة المائية", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "الصور الأصغر من الحد الادنى لن تكون ذات علامة مائية . استخدم صفر (0) حتى لا يتم ضبط حدا ادنى للحجم.", + ], + "Watermark image" => [ + 0 => "صورة بعلامة مائية", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "ستحصل على أفضل النتائج بالشعارات الواضحة مع إضافة ظل. يمكنك استخدام صور كبيرة إذا لم يكن حجم الملف كبيرا ( الحد الأقصى الموصى به هو 16كب). ويجب ان تكون فى صيغة PNG.", + ], + "Watermark position" => [ + 0 => "موقع العلامة المائية", + ], + "left top" => [ + 0 => "يسار/فوق", + ], + "left center" => [ + 0 => "يسار/وسط", + ], + "left bottom" => [ + 0 => "يسار/أسفل", + ], + "center top" => [ + 0 => "وسط/فوق", + ], + "center center" => [ + 0 => "وسط/وسط", + ], + "center bottom" => [ + 0 => "وسط/أسفل", + ], + "right top" => [ + 0 => "يمين/فوق", + ], + "right center" => [ + 0 => "يمين/وسط", + ], + "right bottom" => [ + 0 => "يمين/أسفل", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "مكان وضع الصورة المائية. محاذاة أفقية أولاَ ثم محاذاة عمودية.", + ], + "Watermark percentage" => [ + 0 => "نسبة العلامة المائية", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "حجم العلامة المائية التناسبى مع مساحة الصورة. القيم من 1 إلى 100", + ], + "Watermark margin" => [ + 0 => "هامش العلامة المائية", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "تحديد الهامش من حدود الصورة لتظهر الصورة المائية عليها.", + ], + "Watermark opacity" => [ + 0 => "درجة الوضوح للعلامة المائية", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "درجة وضوح العلامة المائية في الصورة النهائية. القيم 0 إلى 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "لوحة التحكم>الإعدادات>الموقع", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "لن تعمل الفئات عند إغلاق ميزة التصفح. لتبديل هذا الإعداد اذهب إلى %s", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "هل انت متأكد من حذف مساحة %s التخزين هذه؟ لايمكن التراجع بعد الحذف.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "ملاحظة: حذف الفئة لا يحذف الصور الموجودة بداخل هذه الفئة.", + ], + "Edit category" => [ + 0 => "تعديل الفئة", + ], + "Expires" => [ + 0 => "انتهاء الصلاحية", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "هل تريد حذف المنع من الأى بى %s ؟ هذا الإجراء لايمكن التراجع عنه", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "الأى بى الممنوع سيحرم من استخدام الموقع بالكامل.", + ], + "Edit IP ban" => [ + 0 => "تعديل منع الأى بى ", + ], + "Enable signups" => [ + 0 => "تفعيل التسجيل", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "قم بتنشيط هذا الخيار إذا كنت ترغب في تفعيل ميزة التسجيل.", + ], + "Minimum age required" => [ + 0 => "السن الأدنى مطلوب", + ], + "Empty" => [ + 0 => "فارغ", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "اتركه فارغا حتى لايطلب عمرا أدنى لاستخدام الموقع", + ], + "Username routing" => [ + 0 => "تحويل اسم المستخدم", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "تفعيل هذا الإختيار إذا أردت إعتماد %s رابط اسم المستخدم بدلامن %s إسم المستخدم.", + ], + "Require email confirmation" => [ + 0 => "تحتاج إلى تأكيد البريد الإلكتروني", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "فعل هذا الإختيار إذا أردت من المستخدمين التحقق من صحة عنوان البريد الإلكتروني الخاصة بهم على قبل الاشتراك.", + ], + "Require email for social signup" => [ + 0 => "طلب البريد الإلكتروني للتسجيل بإستخدام الشبكات الاجتماعية", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "تمكين هذا الإختيار إذا أردت من المستخدمين إستخدام الشبكات الاجتماعية للتسجيل وتوفير عنوان البريد الإلكتروني الخاصة بهم.", + ], + "User avatar max. filesize" => [ + 0 => "صورة المستخدم أقصى حجم للملف", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "أقصى حجم ملف مسموح به لصورة الأفاتار. ( الحد الأقصى المسموح به على الخادم هو %s )", + ], + "User background max. filesize" => [ + 0 => "أقصى حجم لصورة خلفية المستخدم", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "أقصى حجم ملف لصورة خلفية المستخدم. ( أقصى حجم مسموح فى الخادم هو %s )", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "إظهار شاشة موافقة قبل الدخول إلى الموقع. فهى مفيدة بالنسبة لمواقع البالغين حيث لايسمح للصغار الدخول.", + ], + "Enable consent screen" => [ + 0 => "تفعيل شاشة الموافقة", + ], + "Consent screen cover image" => [ + 0 => "صورة غلاف شاشة الموافقة", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "هذا الخيار سوف يقوم بحجب الأي بي للمستخدم الذي يقوم برفع صور خلال وقت أكثر من الحد المسموح به ، هذا الخيار لا يؤثر على مدير الموقع.", + ], + "Notify to email" => [ + 0 => "الإشعار عبر البريد الإلكتروني", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "إذا تم تنشيط هذا الخيار سوف يقوم النظام بإرسال رسالة تحذيرية إلى البريد الإلكتروني.", + ], + "Minute limit" => [ + 0 => "الحد دقيقة", + ], + "Hourly limit" => [ + 0 => "الحد ساعة", + ], + "Daily limit" => [ + 0 => "الحد يوم", + ], + "Weekly limit" => [ + 0 => "الحد أسبوع", + ], + "Monthly limit" => [ + 0 => "الحد شهر", + ], + "Show not safe content in listings" => [ + 0 => "إستعرض المحتويات الغير آمنة في القوائم", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "تفعيل هذا عندما تريد إظهار قوائم المحتوى الغير آمن. هذا النوع من الضبط لايؤثر على الإداريين ويمكن تخطيه بواسطة إعدادات المستخدم.", + ], + "Blur NSFW content in listings" => [ + 0 => "طمس المحتوى الغير أمن NSFW فى القوائم", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "تفعيل هذا إذا اردت أن تطبق تأثير الطمس على صور المحتوى الغير آمن فى القوائم", + ], + "Show banners in not safe content" => [ + 0 => "أستعرض البانر في المحتويات الغير آمنة", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "تمكين هذا الخيار إذا كنت تريد أن يظهر البانر في صفحات ذات المحتوى الغير آمن.", + ], + "Show not safe content in random mode" => [ + 0 => "اظهار المحتوى الغير آمن في الوضع العشوائي", + ], + "List items per page" => [ + 0 => "العناصر القائمة لكل صفحة", + ], + "How many items should be displayed per page listing." => [ + 0 => "كم عدد العناصر التي ستظهر في كل صفحة من القائمة.", + ], + "List pagination mode" => [ + 0 => "نسق ترقيم الصفحات", + ], + "Endless scrolling" => [ + 0 => "تمرير لانهائي", + ], + "Classic pagination" => [ + 0 => "ترقيم تقليدي", + ], + "What pagination method should be used." => [ + 0 => "أي نسق ترغب في إستعراضه في ترقيم الصفحات", + ], + "Image listing size" => [ + 0 => "حجم عرض الصور", + ], + "Fluid" => [ + 0 => "سلس", + ], + "Fixed" => [ + 0 => "محدد", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "كلتا الطريقتين تستخدم عرض ثابت ولكن يستخدم الأسلوب السلس ارتفاع تلقائي.", + ], + "Listing columns number" => [ + 0 => "عرض رقم العامود", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "هنا يمكنك ضبط عدد العواميد المستخدمة بناء على كل جهاز مستهدف", + ], + "Phone" => [ + 0 => "الهاتف", + ], + "Phablet" => [ + 0 => "الهاتف اللوحى", + ], + "Tablet" => [ + 0 => "الجهاز اللوحى", + ], + "Laptop" => [ + 0 => "الحاسب الشخصى", + ], + "Desktop" => [ + 0 => "الحاسب المكتبى", + ], + "Put your themes in the %s folder" => [ + 0 => "ضع السمات الخاصة بك في هذا %s المجلد", + ], + "Tone" => [ + 0 => "اسلوب", + ], + "Light" => [ + 0 => "فاتح", + ], + "Dark" => [ + 0 => "غامق", + ], + "Main color" => [ + 0 => "اللون الرئيسى", + ], + "Hexadecimal color value" => [ + 0 => "قيمة اللون بنظام الهكسا", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "استخدم هذا لضبط لون السمة الرئيسي. يجب ان تكون القيمة <a href=\"%s\" target=\"_blank\"> بنظام الهكسا</a>", + ], + "Top bar color" => [ + 0 => "لون الشريط العلوى", + ], + "Black" => [ + 0 => "أسود", + ], + "White" => [ + 0 => "أبيض", + ], + "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." => [ + 0 => "إذا تم ضبط هذا على \" الأبيض\" فإن الشريط العلوى وكل الأساليب السوداء ستتغير إلى الأساليب البيضاء؟", + ], + "Top bar button color" => [ + 0 => "لون زر الشريط العلوى", + ], + "Blue" => [ + 0 => "أزرق", + ], + "Green" => [ + 0 => "أخضر", + ], + "Orange" => [ + 0 => "برتقالى", + ], + "Red" => [ + 0 => "أحمر", + ], + "Grey" => [ + 0 => "رمادى", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "لون أزرار الشريط العلوى مثل زر\" إنشاء حساب\" ", + ], + "Enable vector logo" => [ + 0 => "تفعيل الشعار الفيكتور", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "الموافقة على الشعارعالي الجودة في الأجهزة ذات كثافة بيكسل عالية.", + ], + "Vector logo image" => [ + 0 => "شعار الفيكتور للصورة", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "الصور من نوع Vector امتدادها SVG .", + ], + "Raster logo image" => [ + 0 => "الشعار النقطي للصورة", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "الصور من نوع Bitmap او شعار موقعك. يوصى بامتداد PNG.", + ], + "Logo height" => [ + 0 => "إرتفاع الشعار", + ], + "No value" => [ + 0 => "لا يوجد قيمة", + ], + "Use this to set the logo height if needed." => [ + 0 => "إستخدام هذا لتعيين ارتفاع الشعار إذا لزم الأمر.", + ], + "Favicon image" => [ + 0 => "أيقونة الصورة", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "صورة الشعار بجنب الرابط (Favicon) يجب أن تكون بنفس الطول والعرض.", + ], + "Enable download button" => [ + 0 => "تفعيل أيقونة التحميل", + ], + "Enable this if you want to show the image download button." => [ + 0 => "قم بتنشيط هذا الخيار إذا كنت ترغب في إظهار أيقونة تحميل الصورة.", + ], + "Enable right click on image" => [ + 0 => "تمكين الضغطة اليمنى على الصورة", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "تمكين هذا إذا اردت السماح بالضغطة اليمنى على صفحة مشاهدة الصورة", + ], + "Enable show Exif data" => [ + 0 => "تمكين إظهار بيانات الصورة", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "تمكين هذا إذا اردت أن تظهر بيانات الصورة", + ], + "Enable social share" => [ + 0 => "تفعيل خاصية المشاركة الإجتماعية", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "قم بتفعيل هذا الخيار إذا كنت تريد أن تظهر أزرار الشبكات الاجتماعية لمشاركة المحتوى.", + ], + "Enable embed codes (content)" => [ + 0 => "تفعيل تضمين الرموز (المحتوى)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "قم بتفعيل هذا الخيار إذا كنت تريد أن تظهررموز المحتوى.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "قم بالاشارة على المربع عند الرفع اذا كان محتوى الصور غير آمن", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "تمكين هذا الخيار إذا كنت تريد أن يظهر مربع للإشارة إلى ان المحتوى غير آمن عند رفع الصور.", + ], + "Custom CSS code" => [ + 0 => "اضافة CSS مخصص", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "ضع التعليمات البرمجية CSS المخصصة هنا. سيتم وضعها في الداخل <style> قبل علامة القفيل </head>.", + ], + "Custom JS code" => [ + 0 => "كود JS مخصص", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "ضع التعليمات البرمجية JS المخصصة هنا. سيتم وضعها في الداخل <script> قبل علامة القفيل </head>.", + ], + "Style" => [ + 0 => "الشكل", + ], + "Landing page" => [ + 0 => "صفحة البداية", + ], + "Split landing + images" => [ + 0 => "فصل صفحة البداية + الصور", + ], + "Route explore" => [ + 0 => "استكشاف الطريق", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "اختر شكل الصفحة الرئيسية .لتخصيصها بشكل أكبر قد بتعديل app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "صورة الغلاف", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "هل أنت متأكد من رغبتك في حذف هذه الصورة ؟ لا يمكن التراجع عن هذه العملية.", + ], + "Delete image" => [ + 0 => "حذف الصورة", + ], + "Add new cover image" => [ + 0 => "إضافة صورة غلاف جديدة", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "إصدار الفيكتور أو شعار الموقع فى صيغة svg (فقط للصفحة الرئيسية) ", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "إصدار البيتماب أو شعار الموقع ( فقط للصفحة الرئيسية ) يوصى باستخدام صيغة .PNG", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "سيتم إضافة هذا فى وسم الصفحة الرئيسية %s . اتركها فارغة لاستخدام المحتويات الافتراضية. ", + ], + "Paragraph" => [ + 0 => "فقرة نصية", + ], + "Call to action button color" => [ + 0 => "لون زر الإجراء", + ], + "Color of the homepage call to action button." => [ + 0 => "لون زر الإجراء فى الصفحة الرئيسية.", + ], + "Call to action outline style button" => [ + 0 => "شكل تحديد زر الإجراء", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "تفعيل هذا لاستخدام شكل التحديد لزر الإجراء فى الصفحة الرئيسية.", + ], + "Call to action functionality" => [ + 0 => "وظيفة زر الإجراء", + ], + "Trigger uploader" => [ + 0 => "رافع المشغل ", + ], + "Open URL" => [ + 0 => "فتح الرابط", + ], + "Call to action URL" => [ + 0 => "رابط الإجراء", + ], + "Enter an absolute or relative URL" => [ + 0 => "إدخال رابط مطلق أو مرتبط", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "الروابط المرتبطة مثل %r ستكون مرسة إلى %l", + ], + "Call to action HTML" => [ + 0 => "html للإجراء", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "سيضاف هذا إلى داخل وسم <a> الإجراء . اتركها فارغة لاستخدام المحتوى الافتراضى", + ], + "User IDs" => [ + 0 => "هويات المستخدم ", + ], + "Comma-separated list of target user IDs to show images on homepage. Leave it empty to display all recent images." => [ + 0 => "قائمة مفصولة بفصلة لهويات المستخدمين لإظهار الصور على الصفحة الرئيسية . اتركها فارغة لعرض كل الصور الحديثة .", + ], + "Display available updates notification" => [ + 0 => "عرض إشعارات التحديثات المتاحة.", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "تمكين هذا لعرض ملحوظة فى الأعلى تنبه على التحديثات الجديدة المتاحة للنظام .", + ], + "Minify code" => [ + 0 => "رمز التصغير", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "تمكين هذا إذار اردت أن تصغر تلقائيا كود CSS و JS.", + ], + "Maintenance" => [ + 0 => "الصيانة ", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "عند التمكين , يقوم الموقع بإظهار رسالة الصيانة . هذا الإعداد لايؤثر على الإداريين فى الموقع", + ], + "Crypt salt" => [ + 0 => "التشفير المتقدم", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "التشفير المتقدم سيتم إستخدامه لتحويل المعرف الرقمي إلى الأبجدية الرقمية. تم إنشاؤها على التثبيت.", + ], + "PHP error reporting" => [ + 0 => "خطأ تقرير PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "قم بتمكين هذا إذا اردت أن تطبع الأخطاء المتولدة من PHP <a %s>error_reporting()</a>. ينبغى ان يتم تعطيل تلك الخاصية للحماية.", + ], + "Debug level" => [ + 0 => "مستوى تصحيح الأخطاء", + ], + "None" => [ + 0 => "لايوجد", + ], + "Error log" => [ + 0 => "قائمة الخطأ ", + ], + "Print errors without error log" => [ + 0 => "اطبع الأخطاء دون قائمة الخطأ", + ], + "Print and log errors" => [ + 0 => "اطبع وادخل الأخطاء.", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "لضبط مستوى تصحيح الخطأ اختر <a %s> توثيق تصحيح الخطأ </a>. المستوى الافتراضى هو \" قائمة الخطأ\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "التوجيه يسمح لك بتخصيص مسارات افتراضية سريعا. يسمح فقط بالأبجدية الرقمية, والواصلة والرموز السفلية فقط. الق نظرة على %s الخاص بنا إذا اردت تخطى أو إضافة طرق جديدة .", + ], + "Image routing" => [ + 0 => "توجيه الصور", + ], + "Routing for %s" => [ + 0 => "التوجيه لـ%s", + ], + "Album routing" => [ + 0 => "توجيه الألبوم", + ], + "Default language" => [ + 0 => "اللغة الإفتراضية", + ], + "Default base language to use." => [ + 0 => "اللغة الأساسية الافتراضية المستخدمة", + ], + "Auto language" => [ + 0 => "لغة تلقائية", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "تمكين هذا إذا اردت أن تتحقق تلقائيا وتضبط اللغة الصحيحة لكل مستخدم.", + ], + "Language chooser" => [ + 0 => "اختيار اللغة ", + ], + "Enable this if you want to allow language selection." => [ + 0 => "تفعيل هذا إذا اردت السماح باختيار اللغات.", + ], + "Enabled languages" => [ + 0 => "تفعيل اللغات", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "اللغات الغير مختارة لن تستخدم فى موقعك.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "قم بتبديل هذا الخيار إذا أردت إعتماد أو إلغاء HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "قم بتبديل هذا الخيار إذا أردت إعتماد أو إلغاء مساحة التخزين هذه", + ], + "Quota" => [ + 0 => "الحد الأقصى", + ], + "Active" => [ + 0 => "مفعَل", + ], + "Storage method" => [ + 0 => "طريقة التخزين", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "يستخدم التخزين المحلي افتراضيا أوعند عدم وجود تخزين خارجي نشط.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "إذا احتجت للمساعدة الف نظرة على <a %s> توثيق التخزين </a>.", + ], + "Edit storage" => [ + 0 => "تعديل التخزين", + ], + "From name" => [ + 0 => "إسم المرسل", + ], + "Sender name for emails sent to users." => [ + 0 => "إسم المرسل يظهر عند إرسال رسائل بريدية إلى الأعضاء.", + ], + "Email mode" => [ + 0 => "وضع البريد الإلكتروني", + ], + "How to send emails? SMTP recommended." => [ + 0 => "ما هي الطريقة المراد استخدامها لارسال البريد الالكتروني؟ يفضل استخدام SMTP", + ], + "SMTP server and port" => [ + 0 => "خادم ومنفذ SMTP", + ], + "SMTP server" => [ + 0 => "سيرفر SMTP", + ], + "SMTP username" => [ + 0 => "اسم مستخدم SMTP", + ], + "SMTP password" => [ + 0 => "كلمة سر SMTP", + ], + "SMTP security" => [ + 0 => "حماية SMTP", + ], + "Unsecured" => [ + 0 => "غير محمي", + ], + "Send test email" => [ + 0 => "‘رسال بريد اليكترونى تجريبى", + ], + "test@somedomain.com" => [ + 0 => "test@somedomain.com", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "استخدم هذا لإظهار رسائل البريد المستلمة. ننصح باستخدام %s.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "تحتاج إلى <a href=\"https://developers.facebook.com/\" target=\"_blank\"> برنامج الفيسبوك </a> من أجل هذا.", + ], + "Facebook app id" => [ + 0 => "رمز التعريف لتطبيق الفيسبوك", + ], + "Facebook app secret" => [ + 0 => "الرمز السري لتطبيق الفيسبوك", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "تحتاج إلى <a href=\"https://apps.twitter.com\" target=\"_blank\">تطبيق تويتر</a> لذلك .", + ], + "Twitter API key" => [ + 0 => "مفتاح الـ API للتويتر", + ], + "Twitter API secret" => [ + 0 => "رمز الـ API للتويتر", + ], + "Twitter account" => [ + 0 => "حساب تويتر", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "تحتاج إلى <a href=\"https://cloud.google.com/console\" target=\"_blank\">تطبيق جوجل</a> لذلك .", + ], + "Google client id" => [ + 0 => "رمز التعريف لعميل جوجل", + ], + "Google client secret" => [ + 0 => "الرمز السري لعميل جوجل", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "تحتاج إلى <a href=\"http://vk.com/dev\" target=\"_blank\"> تطبيق VK </a> لهذا", + ], + "VK client id" => [ + 0 => "رقم هوية مستخدم VK", + ], + "VK client secret" => [ + 0 => "الرمز السري لمستخدم VK", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "تحتاج <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> لتفعيل هذا الخيار.", + ], + "reCAPTCHA threshold" => [ + 0 => "بداية reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "ما هي عدد المحاولات الفاشلة التى يعدها يطلب مكون reCAPTCHA ؟ استخدم صفر (0) دائما لإظهار reCAPTCHA", + ], + "Comment code" => [ + 0 => "كود التعليق", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "ديسكاس، الفيسبوك أو أي شيء تريده. سيتم استخدامه في عرض الصورة.", + ], + "Analytics code" => [ + 0 => "كود التحليل", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "كود تحليل جوجل أو أي شئ تريده ، سوف يتم إضافته في ذيل التصميم.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "للتوثيق عن API تحقق من <a %s> توثيق API </a>", + ], + "API v1 key" => [ + 0 => "مفتاح API V1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "استخدم هذا المفتاح عند استخدام <a %s>API v1</a>", + ], + "Cookie law compliance" => [ + 0 => "الخضوع لقانون ملفات تعريف الارتباط", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "تفعيل هذا لعرض رسالة تتفق مع متطلبات قانون الاتحاد الأوروبى لملفات تعريف الارتباط \" الكوكيز\" . لاحظ: تحتاج لهذا فقط إذا تم استضافة موقعك الإلكترونى فى الاتحاد الإوروبى إذا اردت ان تضيف تتبعا لتلك الملفات ", + ], + "Save changes" => [ + 0 => "حفظ التغييرات", + ], + "Check the errors to proceed." => [ + 0 => "تحقق من الأخطاء لاكمال العملية.", + ], + "Play GIF" => [ + 0 => "تشغيل GIF", + ], + "Guest" => [ + 0 => "زائر", + ], + "Added to %a and categorized in %c" => [ + 0 => "مضاف الى %a ومصنف في %c", + ], + "Added to %s" => [ + 0 => "مضاف إلى %s", + ], + "Uploaded to %s" => [ + 0 => "الرفع الى %s", + ], + "Uploaded %s" => [ + 0 => "مرفوع %s", + ], + "Less Exif data" => [ + 0 => "بيانات صورة أقل", + ], + "More Exif data" => [ + 0 => "بيانات صورة أكثر", + ], + "Share image" => [ + 0 => "مشاركة الصورة", + ], + "Album ID" => [ + 0 => "رقم الألبوم", + ], + "In this album" => [ + 0 => "في هذا الألبوم", + ], + "Upload and share your images." => [ + 0 => "ارفع و شارك صورك", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "اسحب و أسقط فى أى مكان هنا وأبداء فى تحميل صورك الآن . بحد أقصى %s . روابط مباشرة للصور, كود BB و صور HTML مصغرة.", + ], + "Start uploading" => [ + 0 => "بدء الرفع", + ], + "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." => [ + 0 => "قم بملء هذا القسم الخاص برفع الصور لحساب %s <br> بإمكانك تعديل المستخدم المستهدف من صفحة إعدادات لوحة التحكم.", + ], + "Sign up to unlock all the features" => [ + 0 => "قم بالتسجيل لتفعيل جميع المميزات", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "إدارة المحتوى الخاص بك، إنشاء ألبومات خاصة، قم بتخصيص وتنسيق ملف العضوية الخاص بك وأكثر من ذلك.", + ], + "Enter your password" => [ + 0 => "إدخل كلمة المرور", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "لقد تم تسجيل خروجك من %s نأمل أن نراك قريبا.", + ], + "Website under maintenance" => [ + 0 => "الموقع تحت الصيانة", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "نقوم بأداء صيانة دورية على الموقع. من فضلك عاود المحاولة فى خلال دقائق", + ], + "This content is password protected." => [ + 0 => "هذا المحتوى محمى بكلمة سر", + ], + "Please enter your password to continue." => [ + 0 => "رجاء إدخال كلمةالسر الخاصة بك للمتابعة", + ], + "Send" => [ + 0 => "إرسال", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "إما إنك لا تملك صلاحية الدخول لهذه الصفحة أو أن صلاحية الرابط قد إنتهت.", + ], + "Search results" => [ + 0 => "البحث فى النتائج", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "هل حقا تريد حذف هذا المستخدم؟ لا يمكن التراجع.", + ], + "Delete user" => [ + 0 => "حذف المستخدم", + ], + "Register date" => [ + 0 => "تاريخ التسجيل", + ], + "Registration IP" => [ + 0 => "رقم أى بى التسجيل", + ], + "Status" => [ + 0 => "الحالة", + ], + "Valid" => [ + 0 => "صالح", + ], + "Banned" => [ + 0 => "محجوب", + ], + "Awaiting email" => [ + 0 => "بانتظار البريد الإلكتروني", + ], + "Awaiting confirmation" => [ + 0 => "بإنتظار التفعيل", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i إلى %f صفات <br> احرف, ارقام و \"_\"", + ], + "Auto delete uploads" => [ + 0 => "حذف المرفوعات تلقائيا", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "هذا الإعداد سيطبق على كل عمليات رفع الصور بشكل افتراضى. يمكنك تخطى هذا الإعداد فى كل عملية رفع.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "الاحتفاظ <a %s> بيانات الصورة </a> عند الرفع", + ], + "Newsletter" => [ + 0 => "نشرة الأخبار ", + ], + "Send me emails with news about %s" => [ + 0 => "ارسل لى رسائل اليكترونية بأخبار عن %s", + ], + "Content settings" => [ + 0 => "إعدادات المحتوى", + ], + "Show not safe content in listings (from others)" => [ + 0 => "اظهر المحتوى الغير آمن فى القوائم ( من الآخرين) ", + ], + "Language" => [ + 0 => "اللغة", + ], + "Timezone" => [ + 0 => "المنطقة الزمنية", + ], + "Current password" => [ + 0 => "كلمة المرور الحالية", + ], + "Enter your current password" => [ + 0 => "إدخل كلمة المرور الحالية", + ], + "New password" => [ + 0 => "كلمة مرور جديدة", + ], + "Confirm new password" => [ + 0 => "تأكيد كلمة المرور", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "يجب عليك اضافة كلمة مرور", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "هذا المستخدم ليس لديه كلمة مرور ، يمكنك إضافة كلمة المرور بإستخدام هذا النموذج", + ], + "Re-enter your password" => [ + 0 => "إعادة إدخال كلمة المرور", + ], + "Upload new image" => [ + 0 => "رفع صورة جديدة", + ], + "Delete existing image" => [ + 0 => "حذف الصورة القائمة", + ], + "Privacy" => [ + 0 => "الخصوصية", + ], + "Make my profile and identity totally private" => [ + 0 => "جعل صورتى الشخصية والهوية مخصوصة بالكامل", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "تفعيل هذا إذا اردت التصرف كمستخدم مجهول", + ], + "This is your real name, not your username." => [ + 0 => "هذا هو إسمك الحقيقي وليس إسم العضوية.", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "سيرة ذاتية", + ], + "Tell us a little bit about you" => [ + 0 => "اخبرنا قليلا عن نفسك", + ], + "User has no connections." => [ + 0 => "العضو ليس لديه اتصالات", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "أربط حسابك بخدمات خارجية بحيث يمكنك مشاركة المحتويات بواسطتها.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "هل انت متأكد من رغبتك في إيقاف الإتصال بـ %s من هذا الحساب ؟", + ], + "This account is connected to %s" => [ + 0 => "هذا الحساب مرتبط بـ %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "هل انت متأكد من رغبتك في إيقاف الإتصال لـ %s بحسابك ؟", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "سوف يتم تسجيل خروجك من %s ولن تتمكن من الدخول بهذا الحساب من جديد.", + ], + "Your account is connected to %s" => [ + 0 => "حسابك مرتبط بـ %s", + ], + "disconnect" => [ + 0 => "قطع الإتصال", + ], + "Connect %s" => [ + 0 => "متصل بـ %s", + ], + "Button" => [ + 0 => "زر", + ], + "resend account activation" => [ + 0 => "إعادة ارسال تنشيط الحساب", + ], + "If you have already signed up maybe you need to request to %s" => [ + 0 => "لو كنت سجلت بالفعل قد تحتاج لطب من %s", + ], + "Upload profile background" => [ + 0 => "رفع خلفية للملف الشخصي", + ], + "Change background" => [ + 0 => "تعديل الخلفية", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "سوف يتم حذف صورة خلفية الملف الشخصي ، لن تتمكن من التراجع عن هذا الإجراء ، هل أنت متأكد من رغبتك في حذف خلفية الملف الشخصي ؟", + ], + "Delete background" => [ + 0 => "حذف الخلفية", + ], + "Edit profile" => [ + 0 => "تعديل الملف", + ], + "Follower" => [ + 1 => "متابع", + 5 => "المتابعون", + ], + "Follow" => [ + 0 => "متابعة", + ], + "Message sent" => [ + 0 => "تم إرسال الرسالة ", + ], + "Contact" => [ + 0 => "اتصل بنا", + ], + "If you want to send a message fill the form below." => [ + 0 => "إذا كنت ترغب في إرسال رسالة ، قم بإدخال البيانات فى النموذج أدناه.", + ], + "Your name" => [ + 0 => "إسمك", + ], + "Subject" => [ + 0 => "العنوان", + ], + "Installed version is v%s" => [ + 0 => "النسخة المثبتة هى %s", + ], + "Can't connect to %s" => [ + 0 => "لايمكن الاتصال بـ %s", + ], + "Last available release is v%s" => [ + 0 => "أخر اصدار متاح هو %s", + ], + "Update needed, proceeding to download" => [ + 0 => "التحديث مطلوب. الذ", + ], + "No update needed" => [ + 0 => "لايوجد تحديث مطلوب", + ], + "System files already up to date" => [ + 0 => "ملفات النظامم محدثة بالفعل", + ], + "Starting v%s download" => [ + 0 => "بدء %s التحميل", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "تم تحميل %s , الذهاب للإستخراج", + ], + "Attempting to extract v%s" => [ + 0 => "محاولة استخراج %s", + ], + "Extraction completed" => [ + 0 => "تم الاستخراج", + ], + "Proceding to install the update" => [ + 0 => "إتمام عملية تثبيت التحديثات", + ], + "Update failed" => [ + 0 => "فشل التحديث", + ], + "Please provide a valid email address" => [ + 0 => "يرجى تقديم عنوان بريد إلكتروني صالح", + ], + "You must enter the album name." => [ + 0 => "يجب كتابة اسم الالبوم.", + ], + "Confirm" => [ + 0 => "تأكيد", + ], + "Select existing album" => [ + 0 => "إختر الألبوم القائم", + ], + "Please select a valid image file type." => [ + 0 => "الرجاء إختيار صورة من النوع المسموح.", + ], + "Please select a picture of at most %s size." => [ + 0 => "الرجاء إختيار صورة بحجم لا يتجاوز %s .", + ], + "Profile image updated." => [ + 0 => "تم تحديث صورة الملف الشخصي.", + ], + "Profile background image updated." => [ + 0 => "تم تحديث خلفية الملف الشخصي.", + ], + "Profile background image deleted." => [ + 0 => "تم حذف خلفية الملف الشخصي.", + ], + "Error deleting profile background image." => [ + 0 => "خطأ فى حذف صورة خلفية الملف الشخصي.", + ], + "Update available v%s" => [ + 0 => "التحديثات المتاحة %s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "هناك تحديث متاح للنظام الخاص بك. يمكنك تحميل وتثبيت ذلك التحديث تلقائيا أو اذهب إلى %s للاستمرار فى تحميل الملف", + ], + "Update now" => [ + 0 => "تحديث الان", + ], + "Clipboard image" => [ + 0 => "صورة الحافظة", + ], + "File too big." => [ + 0 => "الملف كبير.", + ], + "Invalid or unsupported file format." => [ + 0 => "نوع ملف غير صالح أو غير معتمد .", + ], + "Some files couldn't be added" => [ + 0 => "بعض الملفات لم يتم اضافتها", + ], + "Image edited successfully." => [ + 0 => "تم تعديل الصورة بنجاح.", + ], + "private" => [ + 0 => "خاص", + ], + "Album edited successfully." => [ + 0 => "تم تعديل الالبوم بنجاح.", + ], + "Invalid URL key." => [ + 0 => "مفتاح URL غير صالح.", + ], + "Category URL key already being used." => [ + 0 => "فئة مفتاح URL اللتي يتم إستخدامها.", + ], + "Category successfully deleted." => [ + 0 => "تم حذف الفئة بنجاح.", + ], + "Category %s added." => [ + 0 => "تم إضافة الفئة %s", + ], + "Invalid expiration date." => [ + 0 => "تاريخ انتهاء الصلاحية خاطئ .", + ], + "IP %s already banned." => [ + 0 => "الأى بى %s تم منعه بالفعل", + ], + "IP %s banned." => [ + 0 => "الأى بى %s تم منعه .", + ], + "IP ban successfully deleted." => [ + 0 => "حذف حظر IP بنجاح", + ], + "Please fill all the required fields." => [ + 0 => "يرجى تعبئة جميع الحقول المطلوبة.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "قيمة سعة التخزين غير صالحة. تأكد من استخدام صيغة صالحة.", + ], + "Invalid URL." => [ + 0 => "URL غير متوفر.", + ], + "Storage successfully edited." => [ + 0 => "تم تعديل التخزين بنجاح.", + ], + "User added successfully." => [ + 0 => "تم إضافة المستخدم بنجاح.", + ], + "The content has been moved." => [ + 0 => "تم نقل المحتوى.", + ], + "Unselect" => [ + 0 => "إلغاء الإختيار", + ], + "The content has been edited." => [ + 0 => "تم تعديل المحتوى.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "كل التغييرات التي قمت بها سوف يتم إلغاؤها في حالة المتابعة.", + ], + "Changes saved successfully." => [ + 0 => "تم حفظ التغييرات بنجاح.", + ], + "Go back to form" => [ + 0 => "العودة إلى النموذج", + ], + "continue anyway" => [ + 0 => "متابعة على أي حال", + ], + "Saving" => [ + 0 => "جاري الحفظ", + ], + "Sending" => [ + 0 => "جاري الإرسال", + ], + "Confirm action" => [ + 0 => "تأكيد الإجراء", + ], + "information" => [ + 0 => "معلومات", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/bg-BG.po.cache.php b/app/.cache/languages/bg-BG.po.cache.php new file mode 100644 index 0000000..bbb1331 --- /dev/null +++ b/app/.cache/languages/bg-BG.po.cache.php @@ -0,0 +1,3723 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-04-16 20:33+0000', + 'PO-Revision-Date' => '2020-04-16 20:33+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'bg_BG', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Невалиден имейл", + ], + "Invalid username" => [ + 0 => "Невалидно потребителско име", + ], + "Invalid password" => [ + 0 => "Невалидна парола", + ], + "Invalid website mode" => [ + 0 => "Невалиден режим на сайта", + ], + "From email address" => [ + 0 => "От имейл адрес", + ], + "Sender email for emails sent to users." => [ + 0 => "Имейл, от който потребителите ще получават имейлите", + ], + "Incoming email address" => [ + 0 => "Имейл за входяща поща", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Получател на форма за контакт и системни сигнали.", + ], + "Website mode" => [ + 0 => "Режим на уебсайта", + ], + "You can switch the website mode anytime." => [ + 0 => "Можете да превключвате по всяко време режима на уебсайта", + ], + "Community" => [ + 0 => "Общество", + ], + "Personal" => [ + 0 => "Лично", + ], + "Installed version is v%s" => [ + 0 => "Инсталирана версия : %s", + ], + "Can't connect to %s" => [ + 0 => "Не може да се свърже с %s", + ], + "Last available release is v%s" => [ + 0 => "Последната налична версия е v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Необходима е актуализация", + ], + "No update needed" => [ + 0 => "Не е необходима актуализация", + ], + "System files already up to date" => [ + 0 => "Системните файлове вече са актуализирани", + ], + "Starting v%s download" => [ + 0 => "Сваляне на версия : v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Свалена версия : v%s започва се разархивиране", + ], + "Attempting to extract v%s" => [ + 0 => "Опит за екстракт v%s", + ], + "Extraction completed" => [ + 0 => "Екстрахирането завърши", + ], + "Proceding to install the update" => [ + 0 => "Започване на актуализация", + ], + "Update failed" => [ + 0 => "Неуспешна актуализация", + ], + "Update in progress" => [ + 0 => "В моментът се извършва актуализация", + ], + "Missing %s file" => [ + 0 => "Липсва %s файл", + ], + "Invalid license info" => [ + 0 => "Невалиден лиценз", + ], + "Invalid license key" => [ + 0 => "Невалиден лиценз", + ], + "Can't save file" => [ + 0 => "Файлът не може да бъде запазен", + ], + "Can't download %s" => [ + 0 => "Неуспешно сваляне на %s", + ], + "Can't extract %s" => [ + 0 => "Неуспешно извличане на %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Неуспешно създаване на %s директория - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Неуспешно обновяване на %s файл - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Проверете грешките във формата, за да продължите.", + ], + "You must enter the album name." => [ + 0 => "Нужно е да въведете името на албума.", + ], + "Confirm" => [ + 0 => "Потвърди", + ], + "Select existing album" => [ + 0 => "Изберете съществуващ албум", + ], + "An error occurred. Please try again later." => [ + 0 => "Възникна грешка. Моля, опитайте по-късно.", + ], + "Please select a valid image file type." => [ + 0 => "Моля изберете валиден файлов формат.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Моля изберете снимка с максимален размер %s.", + ], + "Profile image updated." => [ + 0 => "Профилната снимка е обновена", + ], + "Profile background image updated." => [ + 0 => "Фоновата снимка е обновена успешно.", + ], + "Profile background image deleted." => [ + 0 => "Фоновата снимка е изтрита успешно.", + ], + "Error deleting profile background image." => [ + 0 => "Грешка при изтриване на фоновата снимка.", + ], + "Passwords don't match" => [ + 0 => "Паролите не съвпадат", + ], + "Update available v%s" => [ + 0 => "Наличен е ъпдейт v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Има налично обновление за системата ви. Можете автоматично да свалите и инсталирате ъпдейта или да отидете до %s, за да продължите със свалянето на файла.", + ], + "The release notes for this update are:" => [ + 0 => "Бележките за тази актуализация са:", + ], + "Update now" => [ + 0 => "Актуализирайте сега", + ], + "or" => [ + 0 => "или", + ], + "cancel" => [ + 0 => "отмени", + ], + "This website is running latest %s version" => [ + 0 => "Уебсайтът използва последна %s версия", + ], + "loading" => [ + 0 => "зареждане", + ], + "Toggle select" => [ + 0 => "Отбележи селекция", + ], + "Like" => [ + 0 => "Харесай", + ], + "Toggle flag" => [ + 0 => "Отбележи флаг", + ], + "Edit" => [ + 0 => "Редактирай", + ], + "Album" => [ + 0 => "Албум", + 1 => "Албуми", + ], + "Delete" => [ + 0 => "Изтрий", + ], + "Close" => [ + 0 => "Затвори", + ], + "Previous" => [ + 0 => "Предишна", + ], + "Next" => [ + 0 => "Следваща", + ], + "Clipboard image" => [ + 0 => "Снимка от клипборда", + ], + "File too big." => [ + 0 => "Файлът е прекалено голям", + ], + "Invalid or unsupported file format." => [ + 0 => "Невалиден или формат, който не се поддържа.", + ], + "Some files couldn't be added" => [ + 0 => "Някои файлове не бяха добвени", + ], + "image" => [ + 0 => "снимка", + 1 => "снимки", + ], + "%s's Albums" => [ + 0 => "%s Албуми", + ], + "Image edited successfully." => [ + 0 => "Снимката е редактирана успешно.", + ], + "private" => [ + 0 => "скрито", + ], + "Album edited successfully." => [ + 0 => "Албумът е редактиран успешно.", + ], + "Invalid URL key." => [ + 0 => "Невалиден URL ключ.", + ], + "Category URL key already being used." => [ + 0 => "URL на категорията вече се използва.", + ], + "Category successfully deleted." => [ + 0 => "Категорията е успешно изтрита.", + ], + "Category %s added." => [ + 0 => "Категория %s е добавена.", + ], + "Invalid expiration date." => [ + 0 => "Невалидна дата за изтичане.", + ], + "IP %s already banned." => [ + 0 => "IP %s вече има бан.", + ], + "IP %s banned." => [ + 0 => "Успешен бан на IP %s.", + ], + "IP ban successfully deleted." => [ + 0 => "Бан по IP успешно премахнат.", + ], + "Please fill all the required fields." => [ + 0 => "Моля попълнете всички задължителни полета.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Невалидна стойност за съхранение. Моля проверете дали използвате правилно форматиране.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Обем на паметта не може да бъде по-ниска от сегашната му използвана памет (%s).", + ], + "Invalid URL." => [ + 0 => "Невалиден URL.", + ], + "Storage successfully edited." => [ + 0 => "Хранилището е редактирано успешно", + ], + "User added successfully." => [ + 0 => "Потребителят е добавен успешно", + ], + "The content has been deleted." => [ + 0 => "Съдържанието е изтрито", + ], + "The content has been moved." => [ + 0 => "Съдържанието е преместено", + ], + "Select" => [ + 0 => "Избери", + ], + "Unselect" => [ + 0 => "Размаркирай", + ], + "The content has been edited." => [ + 0 => "Съдържанието е редактирано", + ], + "Select number of threads" => [ + 0 => "Изберете брой теми", + ], + "Spam detected" => [ + 0 => "Засечено е спам", + ], + "album" => [ + 0 => "албум", + 1 => "албуми", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Достигнахте лимита можете да качвате само %limit% %content% за %time%.", + ], + "Untitled" => [ + 0 => "Неозаглавен", + ], + "%s's images" => [ + 0 => "Изображенията на %s", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Бележка: Това съдържание е скрито, но всеки с точен линк може да го види.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Бележка: Това съдържание е защитено с парола. Не забравяйте да изпратите на получателя паролата.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Това съдържание е скрито. Променете поверителността на \"публично\", ако желаете да го споделите.", + ], + "Private" => [ + 0 => "Скрито", + ], + "Public" => [ + 0 => "Публично", + ], + "Me" => [ + 0 => "Аз", + ], + "Link" => [ + 0 => "Връзка", + ], + "Password" => [ + 0 => "Парола", + ], + "view" => [ + 0 => "преглед", + 1 => "прегледа", + ], + "After %n %t" => [ + 0 => "След %n %t", + ], + "minute" => [ + 0 => "минута", + 1 => "минути", + ], + "hour" => [ + 0 => "час", + 1 => "часа", + ], + "day" => [ + 0 => "ден", + 1 => "дни", + ], + "week" => [ + 0 => "седмица", + 1 => "седмици", + ], + "month" => [ + 0 => "месец", + 1 => "месеца", + ], + "year" => [ + 0 => "година", + 1 => "години", + ], + "Don't autodelete" => [ + 0 => "Да не се изтрива автоматично", + ], + "Duplicated upload" => [ + 0 => "Дублирано качване", + ], + "Private upload" => [ + 0 => "Скрито качване", + ], + "like" => [ + 0 => "Харесване", + 1 => "Харесвания", + ], + "Recent" => [ + 0 => "Последни", + ], + "Trending" => [ + 0 => "Популярни", + ], + "Top users" => [ + 0 => "Топ потребители", + ], + "Most recent" => [ + 0 => "Най-нови", + ], + "Oldest" => [ + 0 => "Най-стари", + ], + "Most viewed" => [ + 0 => "Най-гледани", + ], + "Popular" => [ + 0 => "Популярни", + ], + "Most liked" => [ + 0 => "Най-харесвани", + ], + "Explore" => [ + 0 => "Разгледай", + ], + "Animated" => [ + 0 => "Анимирани", + ], + "Search" => [ + 0 => "Търси", + ], + "People" => [ + 0 => "Хора", + ], + "Image" => [ + 0 => "Снимка", + 1 => "Снимки", + ], + "User" => [ + 0 => "Потребител", + 1 => "Потребители", + ], + "Can't create %s destination dir" => [ + 0 => "Неуспешно създаване на %s директория", + ], + "Can't open %s for writing" => [ + 0 => "Не можете да отворите %s за писане", + ], + "Internal" => [ + 0 => "Вътрешен", + ], + "Can't insert storage." => [ + 0 => "Неуспешно вмъкване на хранилище.", + ], + "Can't update storage details." => [ + 0 => "Неуспешно обновлени на детайли за хранилището.", + ], + "requires %s" => [ + 0 => "изисква %s", + ], + "Unlimited" => [ + 0 => "Неограничено", + ], + "used" => [ + 0 => "употребяван", + ], + "Private profile" => [ + 0 => "Скрит профил", + ], + "second" => [ + 0 => "секунда", + 1 => "секунди", + ], + "%s ago" => [ + 0 => "Преди %s", + ], + "moments ago" => [ + 0 => "преди моменти", + ], + "Dashboard" => [ + 0 => "Табло", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Налично е обновление за вашата система. Отидете до %s, за да свалите и инсталирате обновлението.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Система за база данни е остаряла. Вие трябва да стартирате инструмента за <a href=\"%s\"> актуализация</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Уебсайта е в режим на поддръжка. За да възстановите настройката отида да <a href=\"%s\"> Табло > Настройки</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Нужно е да изключите PHP докладването на грешки за готовия сайт. Отидете на <a href='%s'>Системни настройки</a>, за да върнете тази настройка.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Не сте променили email настройките по подразбиране. Отидете до <a href='%s'>Email настройки</a>, за да поправите това.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Наличен е ъпдейт за вашия Chevereto базиран уебсайт.", + ], + "admin dashboard" => [ + 0 => "администраторско табло", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Можете да приложите този ъпдейт от вашия %a или да го свалите от %s и след това ръчно да го инсталирате.", + ], + "view on %s" => [ + 0 => "вижте на %s", + ], + "cookie policy" => [ + 0 => "политика за бисквитките", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Ние използваме наши ни на трети страни бисквитки, за да подобрим вашия престой и нашите услуги. Ако продължите да използвате нашия сайт, вие се съгласявате с %cookie_policy_link", + ], + "I understand" => [ + 0 => "Разбирам", + ], + "Forgot password?" => [ + 0 => "Забравена парола?", + ], + "Reset password" => [ + 0 => "Промени паролата", + ], + "Resend account activation" => [ + 0 => "Повторно изпращане на активация на профила", + ], + "Add your email address" => [ + 0 => "Добавете своя имейл адрес", + ], + "Email changed" => [ + 0 => "Имейлът е променен", + ], + "%s says you are a robot" => [ + 0 => "%s ви засича че сте робот", + ], + "Invalid Username/Email" => [ + 0 => "Невалидно потребителско име / имейл", + ], + "User doesn't have an email." => [ + 0 => "Потребителят не разполага с имейл.", + ], + "Request denied" => [ + 0 => "Искането е отказано", + ], + "Account needs to be activated to use this feature" => [ + 0 => "За да използвате тази функция е нужно да активирате вашият профил", + ], + "Account already activated" => [ + 0 => "Профилът вече е активиран", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "След като изчакате 15 минути за имейла. Можете да опитате отново по-късно.", + ], + "Reset your password at %s" => [ + 0 => "Променете паролата си в %s", + ], + "Confirmation required at %s" => [ + 0 => "Нужно е потвърждение в %s", + ], + "Welcome to %s" => [ + 0 => "Добре дошли в %s", + ], + "Email already being used" => [ + 0 => "Този имейл вече се използва", + ], + "Password required" => [ + 0 => "Изисква парола", + ], + "Share" => [ + 0 => "Сподели", + ], + "Embed codes" => [ + 0 => "Кодове за вграждане", + ], + "Full info" => [ + 0 => "Пълна информация", + ], + "%a album hosted in %w" => [ + 0 => "Албум %a се хоства в %w", + ], + "Stats" => [ + 0 => "Статистика", + ], + "Images" => [ + 0 => "Изображения", + ], + "Albums" => [ + 0 => "Албуми", + ], + "Users" => [ + 0 => "Потребители", + ], + "Settings" => [ + 0 => "Настройки", + ], + "Bulk importer" => [ + 0 => "Основен вносител", + ], + "Chevereto version" => [ + 0 => "Версия на Chevereto", + ], + "install update" => [ + 0 => "инсталирайте актуализация", + ], + "check for updates" => [ + 0 => "провери за актуализации", + ], + "Support" => [ + 0 => "Поддръжка", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Имате нужда от помощ? Отидете на %s и ще получите бързо помощ", + ], + "PHP version" => [ + 0 => "PHP версия", + ], + "Server" => [ + 0 => "Сървър", + ], + "MySQL version" => [ + 0 => "MySQL версия", + ], + "MySQL server info" => [ + 0 => "MySQL сървър информация", + ], + "GD Library" => [ + 0 => "GD библиотека", + ], + "File uploads" => [ + 0 => "Качени файлове", + ], + "Enabled" => [ + 0 => "Включено", + ], + "Disabled" => [ + 0 => "Изключено", + ], + "Max. upload file size" => [ + 0 => "Максимален размер за качване", + ], + "Max. post size" => [ + 0 => "Максимален размер на публикацията", + ], + "Max. execution time" => [ + 0 => "Максимално време за изпълнение", + ], + "%d second" => [ + 0 => "%d секунда", + 1 => "%d секунди", + ], + "Memory limit" => [ + 0 => "Ограничение на паметта", + ], + "Connecting IP" => [ + 0 => "Свързване IP", + ], + "Not your IP?" => [ + 0 => "Не е ващо IP?", + ], + "Links" => [ + 0 => "Връзки", + ], + "Collaboration" => [ + 0 => "Сътрудничество", + ], + "Documentation" => [ + 0 => "Документация", + ], + "Changelog" => [ + 0 => "Промени", + ], + "Bug tracking" => [ + 0 => "Бъгове", + ], + "Website" => [ + 0 => "Уебсайт", + ], + "Content" => [ + 0 => "Съдържание", + ], + "Pages" => [ + 0 => "Страници", + ], + "Listings" => [ + 0 => "Списъци", + ], + "Image upload" => [ + 0 => "Качване на изображение", + ], + "Categories" => [ + 0 => "Категории", + ], + "Consent screen" => [ + 0 => "Екран за съгласие", + ], + "Flood protection" => [ + 0 => "Защита от флууд", + ], + "Theme" => [ + 0 => "Тема", + ], + "Homepage" => [ + 0 => "Начална страница", + ], + "Banners" => [ + 0 => "Банери", + ], + "System" => [ + 0 => "Система", + ], + "Routing" => [ + 0 => "Насочване", + ], + "Languages" => [ + 0 => "Езици", + ], + "External storage" => [ + 0 => "Външно съхранение", + ], + "Email" => [ + 0 => "Имейл", + ], + "Social networks" => [ + 0 => "Социални мрежи", + ], + "External services" => [ + 0 => "Външни услуги", + ], + "IP bans" => [ + 0 => "Бан по IP", + ], + "Additional settings" => [ + 0 => "Допълнителни настройки", + ], + "Tools" => [ + 0 => "Инструменти", + ], + "Can't delete all homepage cover images" => [ + 0 => "Не могат да бъдат изтрити всички изображения на корицата на началната страница", + ], + "Homepage cover image deleted" => [ + 0 => "Изображението на корицата е изтрита", + ], + "Local" => [ + 0 => "локално", + ], + "External" => [ + 0 => "Външно", + ], + "All" => [ + 0 => "Всичко", + ], + "search content" => [ + 0 => "търсене на съдържание", + ], + "Add page" => [ + 0 => "Добавяне на страница", + ], + "Edit page ID %s" => [ + 0 => "Редактиране на страницата %s", + ], + "The page has been added successfully." => [ + 0 => "Страницата е добавена успешно.", + ], + "The page has been deleted." => [ + 0 => "Страницата е изтрита.", + ], + "homepage" => [ + 0 => "начална страница", + ], + "Before main title (%s)" => [ + 0 => "Преди основното заглавие %s", + ], + "After call to action (%s)" => [ + 0 => "След призив за действие (%s)", + ], + "After cover (%s)" => [ + 0 => "След покриване %s", + ], + "After listing (%s)" => [ + 0 => "След изброяване %s", + ], + "Before pagination" => [ + 0 => "Преди номериране", + ], + "After pagination" => [ + 0 => "След номериране", + ], + "Content (image and album)" => [ + 0 => "Съдържание (изображение и албум)", + ], + "Tab about column" => [ + 0 => "Раздел за колоната", + ], + "Before comments" => [ + 0 => "Преди коментари", + ], + "Image page" => [ + 0 => "Страница с изображения", + ], + "Inside viewer top (image page)" => [ + 0 => "отгоре (страница с изображения)", + ], + "Expected banner size 728x90" => [ + 0 => "Очакван размер на банера 728x90", + ], + "Inside viewer foot (image page)" => [ + 0 => "Долна част (страница с изображения)", + ], + "After image viewer (image page)" => [ + 0 => "След преглед на изображения (страница с изображение)", + ], + "Before header (image page)" => [ + 0 => "Преди заглавието (изображения)", + ], + "After header (image page)" => [ + 0 => "След заглавието (изображения)", + ], + "Footer (image page)" => [ + 0 => "Долна част (изображения)", + ], + "Album page" => [ + 0 => "Албум страница", + ], + "Before header (album page)" => [ + 0 => "Преди заглавието (албум)", + ], + "After header (album page)" => [ + 0 => "След заглавието (албум)", + ], + "User profile page" => [ + 0 => "Потребителска страница", + ], + "After top (user profile)" => [ + 0 => "След горна част (Потребителска страница)", + ], + "Before listing (user profile)" => [ + 0 => "Преди публикациите (потребителски профил)", + ], + "Explore page" => [ + 0 => "Разгледайте страницата", + ], + "After top (explore page)" => [ + 0 => "След началото", + ], + "NSFW" => [ + 0 => "NFSW", + ], + "Invalid website name" => [ + 0 => "Невалиден уебсайт", + ], + "Invalid language" => [ + 0 => "Невалиден език", + ], + "Invalid timezone" => [ + 0 => "Невалидна часова зона", + ], + "Invalid value: %s" => [ + 0 => "Невалидна стойност %s", + ], + "Invalid upload storage mode" => [ + 0 => "Невалиден режим на съхранение при качване", + ], + "Invalid upload filenaming" => [ + 0 => "Невалидно именуване на файл за качване", + ], + "Invalid thumb width" => [ + 0 => "Невалидна ширина на миниатюра", + ], + "Invalid thumb height" => [ + 0 => "Невалидна височина на миниатюра", + ], + "Invalid medium size" => [ + 0 => "Невалиден среден размер", + ], + "Invalid watermark percentage" => [ + 0 => "Невалиден процент на воден знак", + ], + "Invalid watermark opacity" => [ + 0 => "Невалидна непрозрачност на водния знак", + ], + "Invalid theme" => [ + 0 => "Невалидна тема", + ], + "Invalid value" => [ + 0 => "Невалидна стойност", + ], + "Invalid theme tone" => [ + 0 => "Невалиден тон на темата", + ], + "Invalid theme main color" => [ + 0 => "Невалиден основен цвят на темата", + ], + "Invalid theme top bar color" => [ + 0 => "Невалиден цвят на горната лента", + ], + "Invalid theme top bar button color" => [ + 0 => "Невалиден цвят на бутона на горната лента", + ], + "Invalid theme image listing size" => [ + 0 => "Невалиден размер на списъка с изображение", + ], + "Invalid user id" => [ + 0 => "Невалиден ID номер на потребителя", + ], + "Invalid email mode" => [ + 0 => "Невалиден режим на имейл", + ], + "Invalid SMTP port" => [ + 0 => "Грешно въведен SMTP порт", + ], + "Invalid SMTP security" => [ + 0 => "Невалидна сигурност на SMTP", + ], + "Invalid personal mode user ID" => [ + 0 => "Невалиден идентификационен номер на потребител в личен режим", + ], + "Invalid or reserved route" => [ + 0 => "Невалиден или резервиран път", + ], + "Invalid website privacy mode" => [ + 0 => "Невалиден режим на поверителност на уебсайта", + ], + "Invalid website content privacy mode" => [ + 0 => "Невалиден режим на поверителност на съдържанието на уебсайта", + ], + "Invalid homepage style" => [ + 0 => "Невалиден стил на началната страница", + ], + "Invalid homepage call to action button color" => [ + 0 => "Невалидна страница призив за действие цветен бутон", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Невалидна страница призив за действие функционалност", + ], + "Invalid title" => [ + 0 => "Невалидно заглавие", + ], + "Invalid status" => [ + 0 => "Невалидно състояние", + ], + "Invalid type" => [ + 0 => "Невалиден тип", + ], + "Invalid visibility" => [ + 0 => "Невалидна видимост", + ], + "Invalid internal type" => [ + 0 => "Невалиден вътрешен тип", + ], + "Invalid target attribute" => [ + 0 => "Невалиден целеви атрибут", + ], + "Invalid rel attribute" => [ + 0 => "Невалиден атрибут rel", + ], + "Invalid icon" => [ + 0 => "Невалидна икона", + ], + "Invalid URL key" => [ + 0 => "Невалиден ключ за URL адрес", + ], + "Invalid file path" => [ + 0 => "Невалиден път към файла", + ], + "Invalid link URL" => [ + 0 => "Невалиден URL адрес на връзката", + ], + "Invalid user minimum age" => [ + 0 => "Невалидна минимална възраст на потребителя", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Разрешени са само буквено-цифрови, тире и подчертаващи символи", + ], + "Invalid URL" => [ + 0 => "Невалиден адрес", + ], + "Routes can't be the same" => [ + 0 => "Маршрутите не могат да бъдат еднакви", + ], + "Invalid upload image path" => [ + 0 => "Грешен \"път\" до изображението", + ], + "Invalid call to action URL" => [ + 0 => "Невалиден призив за действие URL", + ], + "Max. allowed %s" => [ + 0 => "Максимално разрешени %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Не може да се картографира %m в съществуваща папка (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Не може да се картографира %m до съществуващ маршрут (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Не може да се картографира %m до %r (сблъсък на потребителско име)", + ], + "Invalid SMTP server" => [ + 0 => "Грешно въведен SMTP сървър", + ], + "Invalid SMTP username" => [ + 0 => "Грешно въведен SMTP потребител", + ], + "Invalid key" => [ + 0 => "Невалиден ключ", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Този ключ за URL адрес вече се използва от друга страница (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Този път към файла вече се използва от друга страница (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Съдържанието на страницата не може да бъде запазено %s.", + ], + "Following" => [ + 0 => "Следва", + ], + "About" => [ + 0 => "Относно", + ], + "Image ID" => [ + 0 => "изображение ID", + ], + "Uploader IP" => [ + 0 => "IP на потребителя", + ], + "Ban IP" => [ + 0 => "Бан IP", + ], + "IP already banned" => [ + 0 => "IP-то вече е баннат", + ], + "Upload date" => [ + 0 => "Дата на качване", + ], + "Image %i in %a album" => [ + 0 => "Изображение %i в %a албум", + ], + "Image %i in %c category" => [ + 0 => "Изображение %i в %c категория", + ], + "Image %i hosted in %w" => [ + 0 => "Изображение %i хоствано в %w", + ], + "Direct links" => [ + 0 => "Директни връзки", + ], + "Image link" => [ + 0 => "Връзка към изображението", + ], + "Image URL" => [ + 0 => "URL адрес на изображението", + ], + "Thumbnail URL" => [ + 0 => "URL адрес на миниатюра", + ], + "Medium URL" => [ + 0 => "Среден URL адрес", + ], + "Full image" => [ + 0 => "Пълно изображение", + ], + "Full image (linked)" => [ + 0 => "Пълно изображение (с връзка)", + ], + "Medium image (linked)" => [ + 0 => "Средно изображение (с връзка)", + ], + "Thumbnail image (linked)" => [ + 0 => "Изображение на миниатюра (с връзка)", + ], + "Login needed" => [ + 0 => "Необходимо е да влезнете", + ], + "IP address already banned" => [ + 0 => "IP адресът вече е баннат", + ], + "Missing values" => [ + 0 => "Липсващи стойности", + ], + "Invalid role" => [ + 0 => "Невалидна роля", + ], + "Username already being used" => [ + 0 => "Потребителското име вече се използва", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Добавете парола или друга социална връзка, преди да изтриете %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Добавете имейл или друга социална връзка, преди да изтриете %s", + ], + "%s has been disconnected." => [ + 0 => "%s е изключен.", + ], + "Test email from %s @ %t" => [ + 0 => "Тест имейл от %s @ %t", + ], + "This is just a test" => [ + 0 => "Това е просто тест", + ], + "Test email sent to %s." => [ + 0 => "Тестов имейл изпратен до %s.", + ], + "Downloading %s data" => [ + 0 => "Изтегляне на %s данни", + ], + "User %s followed" => [ + 0 => "Потребителят %s последва", + ], + "User %s unfollowed" => [ + 0 => "Потребителят %s спря да следва", + ], + "Content liked" => [ + 0 => "Харесали съдържание", + ], + "Content disliked" => [ + 0 => "Не харесали съдържание", + ], + "%u liked your %t %c" => [ + 0 => "%u хареса %t %c", + ], + "%u is now following you" => [ + 0 => "%u сега ви следва", + ], + "A private user" => [ + 0 => "Скрит потребител", + ], + "Wrong Username/Email password combination" => [ + 0 => "Грешно потребителско име или парола", + ], + "Sign in" => [ + 0 => "Вход", + ], + "Upload images" => [ + 0 => "Качване на изображения", + ], + "Upload plugin" => [ + 0 => "Качване на плъгин", + ], + "Image search results for %s" => [ + 0 => "Резултати от търсенето на изображения за %s", + ], + "Album search results for %s" => [ + 0 => "Резултати от търсенето на албуми за %s", + ], + "User search results for %s" => [ + 0 => "Резултати от потребителско търсене за %s", + ], + "Account" => [ + 0 => "Акаунт", + ], + "Profile" => [ + 0 => "Профил", + ], + "Linked accounts" => [ + 0 => "Свързани акаунти", + ], + "Invalid image expiration: %s" => [ + 0 => "Невалиден срок на изображението %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Email беше изпратен до %s с инструкции за активация", + ], + "Invalid name" => [ + 0 => "Невалидно име", + ], + "Invalid website" => [ + 0 => "Невалиден уебсайт", + ], + "Wrong password" => [ + 0 => "Грешна парола", + ], + "Use a new password" => [ + 0 => "Използвай нова парола", + ], + "Changes have been saved." => [ + 0 => "Промените са запазени", + ], + "Password has been changed" => [ + 0 => "Паролата бе сменена", + ], + "Password has been created." => [ + 0 => "Паролата бе създадена", + ], + "Wrong Username/Email values" => [ + 0 => "Грешно въведени Потребителско име/Email данни", + ], + "Settings for %s" => [ + 0 => "Настройки за %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Трябва да се съгласите с условията и политиката за поверителност", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Трябва да имате поне %s години, за да използвате този уебсайт.", + ], + "Create account" => [ + 0 => "Създай акаунт", + ], + "Upload" => [ + 0 => "Качи", + ], + "%s's Images" => [ + 0 => "Изображенията на: %s", + ], + "Results for" => [ + 0 => "Резултати за", + ], + "Liked by %s" => [ + 0 => "Харесвано от %s", + ], + "Liked" => [ + 0 => "Хареса", + ], + "Followers" => [ + 0 => "Последователи", + ], + "%n (%u) albums on %w" => [ + 0 => "%n %u албуми на %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) на %w", + ], + "Discovery" => [ + 0 => "Откритие", + ], + "Advanced search" => [ + 0 => "Подробно търсене", + ], + "Random" => [ + 0 => "Произволен", + ], + "Notices (%s)" => [ + 0 => "Известия %s", + ], + "Notifications" => [ + 0 => "Известия", + ], + "You don't have notifications" => [ + 0 => "Нямате известия", + ], + "My Profile" => [ + 0 => "Моят профил", + ], + "Sign out" => [ + 0 => "Изход", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Получихме заявка за промяна на имейла на вашия <a href=\"%u\">%n</a> акаунт в %w", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "За да завършите процеса, трябва <a href=\"%s\">активирате вашия имейл</a>", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Като алтернатива можете да копирате и поставите URL адреса в браузъра си: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Ако не сте възнамерявали това, просто игнорирайте това съобщение.", + ], + "This request was made from IP: %s" => [ + 0 => "Тази заявка беше направена от IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Получихме заявка за регистриране на %n акаунт на %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "За да завършите процеса, трябва<a href=\"%s\">активирате вашия акаунт</a>", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Получихме заявка за нулиране на паролата за вашия <a href=\"%u\">%n</a> акаунт", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "За да нулирате паролата си <a href=\"%s\"> следвайте тази връзка</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Здравейте, %n, добре дошли в %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Сега, когато акаунтът ви е готов, можете да се насладите на качването на вашите изображения, създаването на албуми и настройката на поверителността на съдържанието ви, както и на още много готини неща, които ще откриете.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Това е вашата прекрасна страница на профила: <a href=\"%u\">%n</a>. Давайте напред и персонализирайте я по ваш вкус!", + ], + "Thank you for joining" => [ + 0 => "Благодарим ви, че се присъединихте към нас", + ], + "This email was sent from %w %u" => [ + 0 => "Този имейл беше изпратен от %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Плъзнете и пуснете или поставете изображенията тук, за да ги качите", + ], + "Select the images to upload" => [ + 0 => "Изберете изображенията за качване", + ], + "browse from your computer" => [ + 0 => "Изберете от вашия компютър", + ], + "add image URLs" => [ + 0 => "добавете URL адреси на изображения", + ], + "You can also %i or %u." => [ + 0 => "Можете също %i или %u", + ], + "browse from your device" => [ + 0 => "Изберете от вашето устройство", + ], + "take a picture" => [ + 0 => "направи снимка", + ], + "You can also %i, %c or %u." => [ + 0 => "Можете също %i, %c или %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Редактирайте или променете размерите на всяко изображение, като щракнете варху визуализацията на изображението", + ], + "Edit any image by touching the image preview" => [ + 0 => "Редактирайте всяко изображение, като докоснете визуализацията на изображението", + ], + "your computer" => [ + 0 => "вашия компютър", + ], + "You can add more images from %i or %u." => [ + 0 => "Можете да добавите още изображения от %i или %u.", + ], + "your device" => [ + 0 => "вашето устройство", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Можете да добавите още изображения от %i, %c или %u.", + ], + "Uploading %q %o" => [ + 0 => "Качване %q %o", + ], + "complete" => [ + 0 => "Завършено", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Опашката се качва, ще отнеме само няколко секунди.", + ], + "Upload complete" => [ + 0 => "Качването завърши", + ], + "Uploaded content added to %s." => [ + 0 => "Каченото съдържание е добавено към %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Можете да %c с току-що каченото съдържание или %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Можете да %c с току-що каченото съдържание.", + ], + "create a new album" => [ + 0 => "създайте нов албум", + ], + "move it to an existing album" => [ + 0 => "преместете го в съществуващ албум", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Трябва да %s или %l да запазите това съдържание във вашия акаунт.", + ], + "create an account" => [ + 0 => "създайте акаунт", + ], + "sign in" => [ + 0 => "Вход", + ], + "No %s have been uploaded" => [ + 0 => "%s не са качени", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Възникнаха някои грешки и системата не можа да обработи вашата заявка.", + ], + "Category" => [ + 0 => "Категория", + ], + "Select category" => [ + 0 => "Изберете категория", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Маркирайте това ако изображението не е подходящо за всички възрасти.", + ], + "Not family safe upload" => [ + 0 => "Не е подходящо за всички възрасти", + ], + "Uploading" => [ + 0 => "Качване", + ], + "cancel remaining" => [ + 0 => "Отменете останалите", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Забележка: Някои изображения не могат да бъдат качени.", + ], + "learn more" => [ + 0 => "Научете повече", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Проверете <a data-modal=\"simple\" data-target=\"failed-upload-result\">доклад за грешка</a> за повече информация.", + ], + "Register to get %s" => [ + 0 => "Регистрирайте се, за да получите %s", + ], + "reset" => [ + 0 => "Нулирай", + ], + "close" => [ + 0 => "затвори", + ], + "copy" => [ + 0 => "Копирай", + ], + "insert" => [ + 0 => "Вмъкни", + ], + "Remove" => [ + 0 => "Премахни", + ], + "Edit image" => [ + 0 => "Редактиране на изображението", + ], + "Title" => [ + 0 => "Заглавие", + ], + "optional" => [ + 0 => "По избор", + ], + "Resize image" => [ + 0 => "Намаляване на изображението", + ], + "Width" => [ + 0 => "Широчина", + ], + "Height" => [ + 0 => "Височина", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Забележка: Анимираните GIF изображения няма да бъдат намалени.", + ], + "Auto delete image" => [ + 0 => "Автоматично изтриване на изображението", + ], + "Sign up" => [ + 0 => "Регистрирайте се", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s за да можете да персонализирате или деактивирате автоматичното изтриване на изображението.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Маркирайте това, ако изображението не е подходящо за всички възрасти", + ], + "Flag as unsafe" => [ + 0 => "Маркирайте кат не е подходящо за деца", + ], + "Description" => [ + 0 => "Описание", + ], + "Brief description of this image" => [ + 0 => "Кратко описание на изображението", + ], + "Add image URLs" => [ + 0 => "Добавете URL адреси на изображения", + ], + "Add the image URLs here" => [ + 0 => "Добавете URL адреси на изображения тук", + ], + "Create album" => [ + 0 => "Създай албум", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Каченото съдържание ще бъде преместено в този новосъздаден албум.", + ], + "existing album" => [ + 0 => "съществуващ албум", + ], + "You can also move the content to an %a." => [ + 0 => "Можете също да преместите съдържанието в %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Трябва да %s или %l, ако искате да редактирате този албум по-късно.", + ], + "Move to album" => [ + 0 => "Премести в албум", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Изберете съществуващ албум, за да преместите каченото съдържание. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\"> да създадете нов албум</a> и да преместете съдържанието там.", + ], + "Error report" => [ + 0 => "Доклад за грешка", + ], + "Viewer links" => [ + 0 => "Връзки за зрители", + ], + "HTML Codes" => [ + 0 => "HTML кодове", + ], + "HTML image" => [ + 0 => "HTML изображение", + ], + "HTML full linked" => [ + 0 => "HTML пълна връзка", + ], + "HTML medium linked" => [ + 0 => "Среден HTML код с връзка", + ], + "HTML thumbnail linked" => [ + 0 => "Свързана HTML картинка", + ], + "BBCodes" => [ + 0 => "ББКодове", + ], + "BBCode full" => [ + 0 => "Пълен ббкод", + ], + "BBCode full linked" => [ + 0 => "ББКод напълно свързан", + ], + "BBCode medium linked" => [ + 0 => "Средно свързан ББКод", + ], + "BBCode thumbnail linked" => [ + 0 => "Свързана миниатюра на ББКод", + ], + "Markdown full" => [ + 0 => "Пълен маркдаун", + ], + "Markdown full linked" => [ + 0 => "напълно свързан маркдаун", + ], + "Markdown medium linked" => [ + 0 => "Средно свързан маркдаун", + ], + "Markdown thumbnail linked" => [ + 0 => "Свързана миниатюра", + ], + "All these words" => [ + 0 => "Всички тези думи", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Въведете важните думи: tri-colour rat terrier", + ], + "This exact word or phrase" => [ + 0 => "Тази точна дума или фраза", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Поставете точни думи в кавички: \"rat terrier\"", + ], + "None of these words" => [ + 0 => "Нито една от тези думи", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Поставете знак минус точно преди думи, които не искате: -rodent -\"Jack Russell\"", + ], + "Storage" => [ + 0 => "Съхранение", + ], + "IP address" => [ + 0 => "IP адрес", + ], + "Album name" => [ + 0 => "Име на албума", + ], + "move to existing album" => [ + 0 => "премести в съществуващ албум", + ], + "Album description" => [ + 0 => "Описание на албума", + ], + "Brief description of this album" => [ + 0 => "Кратко описание албума", + ], + "Album privacy" => [ + 0 => "Поверителност на албума", + ], + "Who can view this content" => [ + 0 => "Кой може да вижда това съдържание", + ], + "Private (just me)" => [ + 0 => "Скрито (само аз)", + ], + "Private (anyone with the link)" => [ + 0 => "Скрито (всеки с връзката)", + ], + "Private (password protected)" => [ + 0 => "Скрито (защитен с парола)", + ], + "Album password" => [ + 0 => "Парола за албума", + ], + "Name" => [ + 0 => "Име", + ], + "Category name" => [ + 0 => "Име на категорията", + ], + "URL key" => [ + 0 => "URL ключ", + ], + "Category URL key" => [ + 0 => "URL ключ за категорията", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Само букви, цифри и тирета", + ], + "Brief description of this category" => [ + 0 => "Кратко описание на категорията", + ], + "Untitled image" => [ + 0 => "Изображение без заглавие", + ], + "Path" => [ + 0 => "Път", + ], + "Local path (absolute)" => [ + 0 => "Локален път", + ], + "Directory structure" => [ + 0 => "Структура на директория", + ], + "Parse top level folders as users (username)" => [ + 0 => "Анализиране на папките на най-високо ниво като потребители (потребителско име)", + ], + "Parse top level folders as albums" => [ + 0 => "Анализиране на папките на най-високо ниво като албуми", + ], + "Don't parse folders" => [ + 0 => "Не анализирайте папки", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Когато анализирате папките от първо ниво като потребители, папките от второ ниво ще бъдат анализирани като потребителски албуми. Разбирането на папки от най-високо ниво като албуми ги добавя като албуми за гости.", + ], + "Threads" => [ + 0 => "Теми", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Това определя колко интензивен и бърз ще бъде процесът на импортиране. Не използвайте повече от %s теми на споделен сървър.", + ], + "You can use wildcard * characters." => [ + 0 => "Можете да използвате символи *.", + ], + "Expiration date" => [ + 0 => "Срок на годност", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "ГГГГ-ММ-ДД ЧЧ:ММ:СС", + ], + "Example" => [ + 0 => "Пример", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "До коя дата този IP адрес ще бъде забранен? Оставете празно без изтичане.", + ], + "Message" => [ + 0 => "Съобщение", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Текстово съобщение, HTML или URL адрес за пренасочване", + ], + "Existing album" => [ + 0 => "Съществуващ албум", + ], + "create new album" => [ + 0 => "създайте нов албум", + ], + "Storage name" => [ + 0 => "Име на съхранение", + ], + "API" => [ + 0 => "API-сървър", + ], + "Region" => [ + 0 => "Област", + ], + "Storage region" => [ + 0 => "Регион за съхранение", + ], + "Storage bucket" => [ + 0 => "Кофа за съхранение", + ], + "Key" => [ + 0 => "Ключ", + ], + "Storage key" => [ + 0 => "Ключ за съхранение", + ], + "Secret" => [ + 0 => "Тайна", + ], + "Storage secret" => [ + 0 => "Тайната за съхранение", + ], + "Private key" => [ + 0 => "Таен ключ", + ], + "Google Cloud JSON key" => [ + 0 => "Ключ на Google Cloud JSON", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "За това ще ви е необходим <a %s>акаунт за услуга </a>.", + ], + "Service name" => [ + 0 => "Име на услугата", + ], + "Identity URL" => [ + 0 => "Идентификационен URL", + ], + "Identity API endpoint" => [ + 0 => "Крайна точка на API за идентичност", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Крайна точка на API за идентичност на OpenStack", + ], + "Username" => [ + 0 => "Потребителско име", + ], + "Container" => [ + 0 => "Контейнер", + ], + "Storage container" => [ + 0 => "Контейнер за съхранение", + ], + "Tenant id" => [ + 0 => "ID на наемателя", + ], + "Tenant id (account id)" => [ + 0 => "ID на наемателя (ID на акаунта)", + ], + "Tenant name" => [ + 0 => "Име на наемателя", + ], + "Tenant name (account name)" => [ + 0 => "Име на наемателя (име на акаунта)", + ], + "Storage endpoint" => [ + 0 => "Крайна точка на съхранение", + ], + "Server address" => [ + 0 => "Адрес на сървър", + ], + "Hostname or IP of the storage server" => [ + 0 => "Име на хост или IP на сървъра за съхранение", + ], + "Server path" => [ + 0 => "Път към сървъра", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Абсолютен път, към файловете които ще бъдат съхранявани в контекста на %p вход. Използвайте %s за root път.", + ], + "Server login" => [ + 0 => "Вход в сървъра", + ], + "Server password" => [ + 0 => "Парола на сървъра", + ], + "Local path" => [ + 0 => "Местен път", + ], + "Local path where the files will be stored" => [ + 0 => "Локален път, където ще се съхраняват файловете", + ], + "Storage capacity" => [ + 0 => "Капацитет за съхранение", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Пример: 20 GB, 1 TB и т.н.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Това съхранение ще бъде деактивирано, когато достигне този капацитет. Оставете празно или нулево без ограничение.", + ], + "Storage URL" => [ + 0 => "URL адрес за съхранение", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Системата ще картографира изображенията от това хранилище към този URL адрес.", + ], + "view more" => [ + 0 => "Виж повече", + ], + "Load more" => [ + 0 => "Зареди още", + ], + "Select all" => [ + 0 => "Маркирай всичко", + ], + "Clear selection" => [ + 0 => "Изчистване на селекцията", + ], + "Selection" => [ + 0 => "Селекция", + ], + "Action" => [ + 0 => "Действие", + ], + "Get embed codes" => [ + 0 => "Вземете кодове за вграждане", + ], + "Assign category" => [ + 0 => "Присвойте категория", + ], + "Flag as safe" => [ + 0 => "Маркирай като безопасно", + ], + "Create new album" => [ + 0 => "Създайте нов албум", + ], + "Sign in with another account" => [ + 0 => "Влезте с друг акаунт", + ], + "Continue with %label%" => [ + 0 => "Продължете с %label%", + ], + "Home" => [ + 0 => "Начало", + ], + "There's nothing to show here." => [ + 0 => "Тук няма какво да се покаже.", + ], + "Edit image details" => [ + 0 => "Редактиране на подробности за изображението", + ], + "Edit album details" => [ + 0 => "Редактирай албум", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Всички изображения ще бъдат преместени в този новосъздаден албум. Можете също да преместите изображенията в <a class=\"modal-switch\" data-switch=\"move-existing-album\">съществуващ албум</a>", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Изберете съществуващ албум, за да преместите изображението. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\">да създадете нов албум</a> и да преместите изображението там.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Изберете съществуващ албум, за да преместите съдържанието на албума. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\">създадете нов албум</a> и да преместите изображението там.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Изберете съществуващ албум, за да преместите изображението. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\">създадете нов албум</a> и да преместите изображенията там.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Всички избрани изображения ще бъдат назначени към тази категория.", + ], + "There is no categories." => [ + 0 => "Няма категории.", + ], + "Confirm flag content as safe" => [ + 0 => "Потвърдете съдържанието като безопасно", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Наистина ли искате да маркирате това съдържание като безопасно?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Потвърдете съдържанието като опасно", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Наистина ли искате да маркирате това съдържание като опасно?", + ], + "Confirm deletion" => [ + 0 => "Потвърждаване на изтриването", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Наистина ли искате да премахнете това съдържание? Това не може да бъде отменено.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Наистина ли искате да премахнете цялото избрано съдържание? Това не може да бъде отменено.", + ], + "Fullscreen" => [ + 0 => "Цял екран", + ], + "Exit fullscreen" => [ + 0 => "Изход от цял екран", + ], + "Guest" => [ + 0 => "Гост", + ], + "Keyboard shortcuts" => [ + 0 => "Комбинация от клавиши", + ], + "Private album" => [ + 0 => "Скрит албум", + ], + "Password protected" => [ + 0 => "Защитен с парола", + ], + "Uploaded by guest" => [ + 0 => "Качено от гост", + ], + "From %s" => [ + 0 => "От %s", + ], + "Uploaded by private" => [ + 0 => "Качено от скрит", + ], + "by %u" => [ + 0 => "от %u", + ], + "Toggle unsafe flag" => [ + 0 => "Превключвайте опасен флаг", + ], + "That page doesn't exist" => [ + 0 => "Страницата не съществува", + ], + "The requested page was not found." => [ + 0 => "Страницата не бе открита", + ], + "Search something else" => [ + 0 => "Потърси нещо друго", + ], + "The user has been deleted" => [ + 0 => "Потребителят бе изтрит", + ], + "Your account is almost ready" => [ + 0 => "Вашият акаунт е почти завършен", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Изпратен е имейл до %s с инструкции за активиране на вашия акаунт. Връзката е валидна 48 часа. Ако не получите инструкциите, проверите спам кутията.", + ], + "Resend activation" => [ + 0 => "Изпрати отново активацията", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Успешно променихте имейла на профила си на %s", + ], + "Go to my profile" => [ + 0 => "Отиди в моя профил", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "На този имейл ще получите писмо за активация на вашия акаунт.", + ], + "Your email address" => [ + 0 => "Вашият имейл адрес", + ], + "Submit" => [ + 0 => "Изпрати", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "На вашият email са изпратени инструкции как да промените своята парола. Ако не получите писмото, то проверете в папките за спам", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Изпратен е имейл с инструкции за нова парола. Ако не сте получили инструкциите, проверете спам кутията.", + ], + "Resend instructions" => [ + 0 => "Изпрати отново инструкции", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Въведете вашето потребителско име или имейл адрес, за да продължите. Може да се наложи да проверите папката си със спам или белия списък %s", + ], + "Username or Email address" => [ + 0 => "Потребителско име или имейл адрес", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Вашата парола е променена. Вече можете да влизате използвайки новата парола", + ], + "Login now" => [ + 0 => "Влезте сега", + ], + "Enter your new password" => [ + 0 => "Въведете новата парола", + ], + "%d characters min" => [ + 0 => "%d минимални символи", + ], + "Password strength" => [ + 0 => "Сигурност на паролата", + ], + "Re-enter your new password" => [ + 0 => "Въведете отново новата парола", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Изпратен е имейл до %s с инструкциите за активиране на вашия акаунт. Ако не сте получили инструкциите моля проверете спам кутията.", + ], + "This content is private" => [ + 0 => "Това съдържание е скрито", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Наистина ли искате да изтриете този албум и всичките му изображения? Това не може да бъде отменено.", + ], + "Delete album" => [ + 0 => "Изтрий албум", + ], + "You like this" => [ + 0 => "Вие харесвате това", + ], + "Upload to album" => [ + 0 => "Качване в албума", + ], + "Album link" => [ + 0 => "Връзка към албум", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Моля, прочетете и спазвайте следните условия, преди да продължите:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Този уебсайт съдържа информация, връзки и изображения на материали, които са явно сексуално представени. Ако сте на възраст под %s, ако такъв материал ви обижда или ако е незаконно да гледате такива материали във вашата общност, моля, не продължавайте.\n\nАз съм на поне %s години и вярвам, че като възрастен е неотменимото ми право да получавам / разглеждам сексуално изрични материали. Искам да получавам / разглеждам сексуално изрични материали.\n\nСчитам, че сексуалните актове между възрастните не са нито обидни, нито нецензурни. Преглеждането, четенето и изтеглянето на сексуално категорични материали не нарушава стандартите на моята общност, град, щат или държава.\n\nСексуално изричният материал, който разглеждам, е за моя лична употреба и няма да излагам непълнолетни на материала.\n\nАз съм единствено отговорен за неверни разкрития или правни последици от гледане, четене или изтегляне на всякакви материали в този сайт. Освен това този уебсайт, нито неговите партньори, ще носят отговорност за правни последствия, произтичащи от измамно влизане или използване на този уебсайт.\n\nТози екран за съгласие представлява правно споразумение между този уебсайт и вас и / или всеки бизнес, в който имате правен или справедлив интерес. Ако някоя част от това споразумение бъде счетена за неприложима от компетентен съд, това не засяга изпълняемостта на другите части от споразумението.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "С кликване варху „Съгласен съм“ декларирате, че сте прочели и разбрали всички условия, посочени по-горе.", + ], + "I Agree" => [ + 0 => "Съгласен съм", + ], + "documentation" => [ + 0 => "Документация", + ], + "Learn more about %s at our %d." => [ + 0 => "Научете повече за %s на нашия %d.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "Свързващият се IP адрес се определя чрез променлива на сървъра %var%. Ако откритият IP адрес не съвпада с вашия, това означава, че вашият уеб сървър е под прокси и трябва да настроите вашия сървър, за да настроите реалното се свързващо IP.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "За Nginx трябва да използвате %nginx%. За Apache, %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Уверете се, че се справяте с този проблем, тъй като системата разчита на точни IP открития, за да осигури основни функционалности и да се предпази от спам, флууд и BruteForce атаки.", + ], + "Disk used" => [ + 0 => "Използвано дисково пространство", + ], + "Queued" => [ + 0 => "На опашка", + ], + "Working" => [ + 0 => "Работещ", + ], + "Paused" => [ + 0 => "На пауза", + ], + "Canceled" => [ + 0 => "Отменен", + ], + "Completed" => [ + 0 => "Завършен", + ], + "Actions" => [ + 0 => "Дейности", + ], + "Pause" => [ + 0 => "Пауза", + ], + "Process log" => [ + 0 => "Дневник на процес логовете", + ], + "Errors" => [ + 0 => "Грешки", + ], + "Status" => [ + 0 => "Статус", + ], + "Add import job" => [ + 0 => "Добавете задание за импортиране", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure. You can learn more about the folder structure, adding metadata, and all about this tool in our %d." => [ + 0 => "Този инструмент позволява масово добавяне на съдържание към уебсайта ви, като посочва системен път със съдържанието, което искате да импортирате. Той поддържа добавянето на потребители, албуми и изображения, използвайки структура, базирана на папки. Можете да научите повече за структурата на папките, добавяне на метаданни и всичко за този инструмент в нашия %d.", + ], + "Process import" => [ + 0 => "Процес на импортиране", + ], + "Top level folders as %s" => [ + 0 => "Папки на най-високо ниво като %s", + ], + "Process" => [ + 0 => "Процес", + ], + "Cancel" => [ + 0 => "Отмени", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Наистина ли искате да премахнете ID за импортиране %s?", + ], + "Parser" => [ + 0 => "Синтактичен анализ", + ], + "Add user" => [ + 0 => "Добавяне на потребител", + ], + "Role" => [ + 0 => "Роля", + ], + "Manager" => [ + 0 => "Мениджър", + ], + "Administrator" => [ + 0 => "Администратор", + ], + "Email address" => [ + 0 => "Имейл адрес", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Тази настройка винаги е деактивирана при използване на личен уебсайт режим.", + ], + "Add category" => [ + 0 => "Добавяне на категория", + ], + "Add IP ban" => [ + 0 => "Добавете бан по IP", + ], + "Add storage" => [ + 0 => "Добавете място за съхранение", + ], + "Return to pages" => [ + 0 => "Върнете се на страниците", + ], + "Website name" => [ + 0 => "Име на уебсайт", + ], + "Website doctitle" => [ + 0 => "Заглавие на уебсайт", + ], + "Website description" => [ + 0 => "Описание на уебсайтa", + ], + "Powered by" => [ + 0 => "Осъществено от", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "Активирайте това, ако искате да се показват бутони за споделяне в социалните мрежи.", + ], + "Automatic" => [ + 0 => "Автоматичен", + ], + "Forced" => [ + 0 => "Принуден", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a ще използва HTTPS откриване от страна на сървъра (препоръчително). %f ще използва HTTPS независимо от настройката на вашия сървър. %d изобщо да не използвате HTTPS.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Това контролира само протокола, използван в URL адресите, няма да превърне вашия уебсайт в валиден HTTPS уебсайт, освен ако вашият сървър не е конфигуриран да поддържа и използва HTTPS.", + ], + "Default time zone" => [ + 0 => "Часова зона по подразбиране", + ], + "Select region" => [ + 0 => "Избери регион", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Позволява да търсите изображения, албуми и потребители въз основа на дадена заявка за търсене.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Разрешава да разглеждате публично качени изображения. Също така дава възможност за категории.", + ], + "guests" => [ + 0 => "Гости", + ], + "Enables explore for guests." => [ + 0 => "Позволява откриване за гостите.", + ], + "Enables to browse images randomly." => [ + 0 => "Позволява да разглеждането изображения произволно.", + ], + "Likes" => [ + 0 => "Харесвания", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Позволява на потребителите да харесват съдържание и да попълват списъци с „Най-харесвани“.", + ], + "Followers allows users to follow each other." => [ + 0 => "Последователите позволяват на потребителите да следват един друг.", + ], + "Personal mode target user" => [ + 0 => "Личен режим на целевия потребител", + ], + "User ID" => [ + 0 => "Потребителско ID", + ], + "Your user id is: %s" => [ + 0 => "Вашето потребитеслко ID е: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Числов идентификатор на целевия потребител за личен режим.", + ], + "Personal mode routing" => [ + 0 => "Личен режим на маршрутизиране", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Персонализиран маршрут за карта / потребителско име до / нещо. Използвайте \"/\", за да насочите към началната страница.", + ], + "Website privacy mode" => [ + 0 => "Режим на поверителност на уебсайта", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Скрития режим ще направи уебсайта достъпен само за регистрирани потребители.", + ], + "Content privacy mode" => [ + 0 => "Режим на поверителност на съдържанието", + ], + "Default" => [ + 0 => "По подразбиране", + ], + "Force private (self)" => [ + 0 => "Принудително скрито (самостоятелно)", + ], + "Force private (anyone with the link)" => [ + 0 => "Принудително скрито (всеки с връзката)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Принудителните режими на поверителност ще отменят избраната от потребителите поверителност.", + ], + "Page title" => [ + 0 => "Заглавие на страница", + ], + "Page status" => [ + 0 => "Състояние на страницата", + ], + "Active page" => [ + 0 => "Активна страница", + ], + "Inactive page (%s)" => [ + 0 => "Неактивна страница (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Ще бъдат достъпни само активни страници.", + ], + "Type" => [ + 0 => "Тип", + ], + "Terms of service" => [ + 0 => "Условия за ползване", + ], + "Privacy" => [ + 0 => "Поверителност", + ], + "Contact" => [ + 0 => "Контакти", + ], + "Extra page" => [ + 0 => "Допълнителна страница", + ], + "Internal page type" => [ + 0 => "Тип вътрешна страница", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Можете да имате няколко допълнителни страници, но само една от другите специални вътрешни типове.", + ], + "Page visibility" => [ + 0 => "Видимост на страницата", + ], + "Visible page" => [ + 0 => "Видима страница", + ], + "Hidden page" => [ + 0 => "Скрита страница", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Скритите страници няма да се показват в системните менюта, но всеки може да получи достъп до нея с връзката.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Само буквено-цифрови, тирета и наклонена черта", + ], + "File path" => [ + 0 => "Пътят на файла", + ], + "A %f file relative to %s" => [ + 0 => "Файл %f спрямо %s", + ], + "Meta keywords" => [ + 0 => "Мета ключови думи", + ], + "Meta description" => [ + 0 => "Мета Описание", + ], + "Source code" => [ + 0 => "Изходен код", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Без разрешение за писане в %s, ще трябва да добавите този файл с помощта на външен редактор.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Без разрешение за писане в %s ще трябва да редактирате съдържанието на този файл с помощта на външен редактор.", + ], + "Taken from: %s" => [ + 0 => "Взето от: %s", + ], + "Link URL" => [ + 0 => "URL адрес на връзката", + ], + "Link target attribute" => [ + 0 => "Атрибут на целевата връзка", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Изберете %s, за да отворите страницата или връзката в нов прозорец.", + ], + "Link rel attribute" => [ + 0 => "Атрибут за връзка на връзката", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Само буквено-цифрови знаци, тирета и празни места", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s атрибут", + ], + "Link icon" => [ + 0 => "Икона на връзката", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Проверете <a %s> справочната икона</a> за пълния списък на поддържаните икони.", + ], + "Sort order display" => [ + 0 => "Ред на сортиране", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Показване на подредбата на страници за менюта и списъци. Използвайте \"1\" за основен приоритет.", + ], + "pages" => [ + 0 => "страници", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Наистина ли искате да изтриете ID на страницата %s? Това не може да бъде отменено.", + ], + "Enabled image formats" => [ + 0 => "Активирани формати на изображения", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Нерегистрирани формати на изображения няма да бъдат разрешени за качване.", + ], + "Enable uploads" => [ + 0 => "Активиране на качванията", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Активирайте това, ако искате да разрешите качване на изображения. Тази настройка не засяга администраторите.", + ], + "Guest uploads" => [ + 0 => "Качени от Гости", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Разреши на нерегистрирани потребители да качват снимки", + ], + "Upload user interface" => [ + 0 => "Качване на потребителски интерфейс", + ], + "On-page container" => [ + 0 => "Контейнер на страница", + ], + "route" => [ + 0 => "Път", + ], + "Enable embed codes (uploader)" => [ + 0 => "Активиране на вградени кодове (за качване)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Активирайте това, ако искате да покажете вградени кодове, когато качването приключи.", + ], + "Upload threads" => [ + 0 => "Бързина на качването", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Бързина за едновременно качване (паралелни качвания)", + ], + "Redirect on single upload" => [ + 0 => "Пренасочване към единично качване", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Активирайте това, ако искате да пренасочите към страницата с изображения при едно качване.", + ], + "Enable duplicate uploads" => [ + 0 => "Активиране на дубликати", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Активирайте това, ако искате да разрешите дублиращи качвания от един и същ IP адрес в рамките на 24 часа. Тази настройка не засяга администраторите.", + ], + "Enable expirable uploads" => [ + 0 => "Активиране на сваляне на изображения с дата на изтичане.", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Активирайте това, ако искате да разрешите качването с опция за автоматично изтриване.", + ], + "Auto delete guest uploads" => [ + 0 => "Автоматично изтриване на качвания на гости", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Активирайте това, ако искате да принудите качванията на гостите да бъдат автоматично изтрити след определено време.", + ], + "Maximum image size" => [ + 0 => "Максимален размер на изображението", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Изображенията, по-големи от този размер, ще бъдат автоматично намалени. Използвайте нула (0), за да не задавате ограничение.", + ], + "Image Exif data" => [ + 0 => "Изображение Exif данни", + ], + "Keep" => [ + 0 => "Пази", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Изберете настройката по подразбиране за изображение на <a %s>Exif данни</a> при качване.", + ], + "Image Exif data (user setting)" => [ + 0 => "Данни за изображение на Exif (настройка на потребителя)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Активирайте това, ако искате да разрешите на всеки потребител да конфигурира как ще се обработват данни Exif с изображения.", + ], + "Maximum upload file size" => [ + 0 => "Максимален размер на файла за качване", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Максималният размер, разрешен от сървъра, е %s. Тази граница е ограничена от %u и %p (%f стойности).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Същото като \"%s\", но за гостите.", + ], + "Image path" => [ + 0 => "Местоположение на снимката", + ], + "Relative to Chevereto root" => [ + 0 => "Относително за chevereto root", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Къде да съхранявате изображенията? Относително chevereto root", + ], + "Storage mode" => [ + 0 => "Режим на съхранение", + ], + "Datefolders" => [ + 0 => "Папки с дата", + ], + "Direct" => [ + 0 => "Директен", + ], + "Datefolders creates %s structure" => [ + 0 => "Папките с дата създават %s структура", + ], + "File naming method" => [ + 0 => "Метод за преименуване на файловете", + ], + "Original" => [ + 0 => "Запази оригинала", + ], + "Mix original + random" => [ + 0 => "Смесете оригинални + произволни", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "„оригинал“ ще се опита да запази името на източника на изображение, докато „случайно“ ще генерира произволно име. „ID“ ще назове изображението точно като идентификатора на изображението.", + ], + "Thumb size" => [ + 0 => "Размер на миниатюра", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Миниатюрите ще бъдат преоразмерени до този размер", + ], + "Medium image fixed dimension" => [ + 0 => "Фиксиран размер на средно изображение", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Изображенията с фиксиран размер на средния размер dimMedium ще бъдат фиксирани към това измерение. Например, ако изберете \"ширина\", този размер ще бъде фиксиран и височината на изображението ще бъде автоматично изчислена", + ], + "Medium image fixed size" => [ + 0 => "Фиксиран размер на средно изображение", + ], + "Width or height will be automatically calculated." => [ + 0 => "Ширината или височината ще се изчисляват автоматично.", + ], + "Watermarks" => [ + 0 => "Водни знаци", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Активирайте това, за да поставите лого или всичко, което искате в качването на изображения.", + ], + "Warning: Can't write in %s" => [ + 0 => "Предупреждение: Не може да пишете в: %s", + ], + "Watermark user toggles" => [ + 0 => "Превключватели на водния знак", + ], + "Enable watermark on guest uploads" => [ + 0 => "Активиране на воден знак при качвания от гости", + ], + "Enable watermark on user uploads" => [ + 0 => "Активиране на воден знак при качвания от потребители", + ], + "Enable watermark on admin uploads" => [ + 0 => "Активиране на воден знак при качвания от администратор", + ], + "Watermark file toggles" => [ + 0 => "Файлове с воден знак", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Активиране на воден знак при качване на GIF изображения", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Минимален размер на изображението, необходим за прилагане на воден знак", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Изображенията по-малки от минималното изискване няма да садържат воден знак. Използвайте нула (0), за да не задавате ограничение за минимален размер на изображението.", + ], + "Watermark image" => [ + 0 => "Изображение на воден знак", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Ще получите най-добри резултати с обикновени логота с капка сянка. Можете да използвате голямо изображение, ако размерът на файла не е толкова голям (препоръчително макс. Е 16 KB). Трябва да е PNG.", + ], + "Watermark position" => [ + 0 => "Позиция на воден знак", + ], + "left top" => [ + 0 => "ляв връх", + ], + "left center" => [ + 0 => "ляв център", + ], + "left bottom" => [ + 0 => "ляво дъно", + ], + "center top" => [ + 0 => "централна горна част", + ], + "center center" => [ + 0 => "център център", + ], + "center bottom" => [ + 0 => "център дъно", + ], + "right top" => [ + 0 => "десен връх", + ], + "right center" => [ + 0 => "десен център", + ], + "right bottom" => [ + 0 => "дясно дъно", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Относително положение на изображението на водния знак. Първо хоризонтално подравняване, след това вертикално подравняване.", + ], + "Watermark percentage" => [ + 0 => "Процент воден знак", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Процентна големина на воден знак спрямо целевата област на изображението. Стойности от 1 до 100.", + ], + "Watermark margin" => [ + 0 => "Марж на воден знак", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Поле от границата на изображението до изображението на воден знак.", + ], + "Watermark opacity" => [ + 0 => "Непрозрачност на воден знак", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Непрозрачност на водния знак в крайното изображение с воден знак. Стойности от 0 до 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Табло за управление> Настройки> Уебсайт", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Категориите няма да работят, когато функцията на Explorer е изключена. За да върнете тази настройка, отидете на %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Наистина ли искате да изтриете %s категория? Това не може да бъде отменено.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Забележка: Изтриването на категория не изтрива изображенията, които принадлежат към тази категория.", + ], + "Edit category" => [ + 0 => "Редактиране на категория", + ], + "Expires" => [ + 0 => "Изтича", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Наистина ли искате да премахнете забраната на IP %s? Това не може да бъде отменено.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Забранен IP адрес ще бъде забранен за използване на целия уебсайт.", + ], + "Edit IP ban" => [ + 0 => "Редактиране на IP забрана", + ], + "Enable signups" => [ + 0 => "Активиране на регистрациите", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Активирайте това, ако искате да разрешите на потребителите да се регистрират.", + ], + "Enable user content delete" => [ + 0 => "Активиране на изтриването на потребителското съдържание", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Активирайте това, ако искате да разрешите на потребителите да изтриват собственото си съдържание. Тази настройка не засяга администраторите.", + ], + "Minimum age required" => [ + 0 => "Необходима минимална възраст", + ], + "Empty" => [ + 0 => "Празен", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Оставете празно, за да не изисква минимална възраст за използване на уебсайта.", + ], + "Notify on user signup" => [ + 0 => "Уведомете при регистрация от потребителя", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Активирайте това, ако искате да получавате известие по имейл за всяка нова регистрация на потребител.", + ], + "Username routing" => [ + 0 => "Маршрутизиране на потребителско име", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Активирайте това, ако искате да използвате URL адреси %s / потребителско име вместо %s / потребител / потребителско име.", + ], + "Require email confirmation" => [ + 0 => "Изисква на потвърждение на имейл адреса", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Активирайте това, ако потребителите трябва да потвърдят имейл адреса си при регистрация.", + ], + "Require email for social signup" => [ + 0 => "Изисквайте имейл за социална регистрация", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Активирайте това, ако потребителите, използващи социални мрежи за регистриране, трябва да предоставят имейл адрес.", + ], + "User avatar max. filesize" => [ + 0 => "Потребителски аватар макс. размер на файла", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Макс. разрешен размер на файла за изображението на аватара на потребителя. (Макс. Разрешен от сървъра е %s)", + ], + "User background max. filesize" => [ + 0 => "Потребителски фон макс. размер на файла", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Макс. разрешен размер на файла за потребителско фоново изображение. (Макс. Разрешен от сървъра е %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Показва екран за съгласие преди да влезете в уебсайта. Полезно за уебсайтове за съдържание за възрастни, където непълнолетни не трябва да бъдат допускани.", + ], + "Enable consent screen" => [ + 0 => "Активиране на екрана за съгласие", + ], + "Consent screen cover image" => [ + 0 => "Съгласие изображение на корицата на екрана", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Блокирайте качването на изображения от IP, ако системата забележи поведение на флууд въз основа на броя качвания за период от време. Тази настройка не засяга администраторите.", + ], + "Notify to email" => [ + 0 => "Уведоми чрез email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Ако е активирана, системата ще изпрати имейл за инциденти с флууд.", + ], + "Minute limit" => [ + 0 => "Минутен лимит", + ], + "Hourly limit" => [ + 0 => "Часови лимит", + ], + "Daily limit" => [ + 0 => "Дневен лимит", + ], + "Weekly limit" => [ + 0 => "Седмичен лимит", + ], + "Monthly limit" => [ + 0 => "Месечен лимит", + ], + "Show not safe content in listings" => [ + 0 => "Показване на не безопасно съдържание в списъците", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Активирайте това, ако искате да показвате не безопасно съдържание в списъците. Тази настройка не засяга администраторите и може да бъде отменена от собствените настройки на потребителя.", + ], + "Blur NSFW content in listings" => [ + 0 => "Размиване на NSFW съдържание в списъците", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Активирайте това, ако искате да приложите ефект на размазване върху NSFW изображенията в списъците.", + ], + "Show banners in not safe content" => [ + 0 => "Показване на банери в не безопасно съдържание", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Активирайте това, ако искате да показвате банери на страници с не безопасно съдържание.", + ], + "Show not safe content in random mode" => [ + 0 => "Показване на не безопасно съдържание в произволен режим", + ], + "List items per page" => [ + 0 => "Списък с елементи на страница", + ], + "How many items should be displayed per page listing." => [ + 0 => "Колко елемента ще се покажа на една страница", + ], + "List pagination mode" => [ + 0 => "Списък на режим на страници", + ], + "Endless scrolling" => [ + 0 => "Безкрайно превъртане", + ], + "Classic pagination" => [ + 0 => "Класическа страница", + ], + "What pagination method should be used." => [ + 0 => "Какъв метод на страници трябва да се използва.", + ], + "Listing viewer" => [ + 0 => "Визуализатор на списъци", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Активирайте това, за да използвате програмата за преглед на списъци, когато щракнете върху изображение.", + ], + "Image listing size" => [ + 0 => "Размер на списък с изображения", + ], + "Fluid" => [ + 0 => "Течен", + ], + "Fixed" => [ + 0 => "Фиксирана", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "И двата метода използват фиксирана ширина, но течния метод използва автоматични височини.", + ], + "Album listing images requirement" => [ + 0 => "Изискване за изображения в албума", + ], + "explore" => [ + 0 => "Разгледай", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Задава минималния брой изображения, необходим за показване на албуми в проучване.", + ], + "Listing columns number" => [ + 0 => "Номер на колоните в списъка", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Тук можете да зададете колко колони да се използват въз основа на всяко целево устройство.", + ], + "Phone" => [ + 0 => "Телефон", + ], + "Phablet" => [ + 0 => "Фаблет", + ], + "Tablet" => [ + 0 => "Таблет", + ], + "Laptop" => [ + 0 => "Лаптоп", + ], + "Desktop" => [ + 0 => "Работен плот", + ], + "theme editing" => [ + 0 => "редактиране на теми", + ], + "Put your themes in the %s folder" => [ + 0 => "Сложи темите си в папка %s", + ], + "Tone" => [ + 0 => "Тон", + ], + "Light" => [ + 0 => "Светъл", + ], + "Dark" => [ + 0 => "Тъмен", + ], + "Main color" => [ + 0 => "Основен цвят", + ], + "Hexadecimal color value" => [ + 0 => "Шестнадесетична стойност на цвета", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Използвайте това, за да зададете основния цвят на темата. Стойността трябва да бъде в <a href=\"%s\" target=\"_blank\">шестнадесетичен формат</a>.", + ], + "Top bar color" => [ + 0 => "Цвят на горната лента", + ], + "Black" => [ + 0 => "Черно", + ], + "White" => [ + 0 => "бял", + ], + "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." => [ + 0 => "Ако зададете това на \"бяло\" горната лента и всички черни тонове ще бъдат променени на бели тонове.", + ], + "Top bar button color" => [ + 0 => "Цвят на бутона на горната лента", + ], + "Blue" => [ + 0 => "Син", + ], + "Green" => [ + 0 => "Зелен", + ], + "Orange" => [ + 0 => "Оранжев", + ], + "Red" => [ + 0 => "Червен", + ], + "Grey" => [ + 0 => "Сив", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Цвят за бутоните в горната лента като бутона „Създаване на акаунт“.", + ], + "Enable vector logo" => [ + 0 => "Активиране на векторното лого", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Активирайте векторното лого за висококачествено лого в устройства с висока плътност на пикселите.", + ], + "Vector logo image" => [ + 0 => "Векторно лого изображение", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Векторна версия или логото на вашия уебсайт във SVG формат.", + ], + "Raster logo image" => [ + 0 => "Растерно лого изображение", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Версия на bitmap или логото на вашия уебсайт. PNG форматът се препоръчва.", + ], + "Logo height" => [ + 0 => "Височина на логото", + ], + "No value" => [ + 0 => "Без стойност", + ], + "Use this to set the logo height if needed." => [ + 0 => "Използвайте това, за да зададете височината на логото, ако е необходимо.", + ], + "Favicon image" => [ + 0 => "Favicon изображение", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon изображение. Изображението трябва да има еднаква ширина и височина.", + ], + "Image load max. filesize" => [ + 0 => "Максимално зареждане на изображението размер на файла", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Изображенията по-големи от този размер ще покажат бутон за зареждане на изображение с пълна разделителна способност.", + ], + "Enable download button" => [ + 0 => "Активиране на бутона за изтегляне", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Активирайте това, ако искате да покажете бутона за изтегляне на изображението.", + ], + "Enable right click on image" => [ + 0 => "Активиране на десния бутон върху изображението", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Активирайте това, ако искате да разрешите десен бутон върху страницата за преглед на изображения.", + ], + "Enable show Exif data" => [ + 0 => "Активиране на показване на Exif данни", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Активирайте това, ако искате да покажете изображения Exif данни.", + ], + "Enable social share" => [ + 0 => "Активирайте социалното споделяне", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Активирайте това, ако искате да виждате бутони за за споделяне в социалните мрежи.", + ], + "Enable embed codes (content)" => [ + 0 => "Активиране на вградени кодове (съдържание)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Активирайте това, ако искате да покажете вградени кодове за съдържанието.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Отметка за не безопасно качване на съдържание", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Активирайте това, ако искате да покажете отметка, че съдържанието е не безопасно.", + ], + "Custom CSS code" => [ + 0 => "Персонализиран CSS код", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Поставете тук своя персонализиран CSS код. Той ще бъде поставен като <style> точно преди затварянето на </head> маркера.", + ], + "Custom JS code" => [ + 0 => "Персонализиран JS код", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Поставете тук своя персонализиран JS код. Той ще бъде поставен като <style> точно преди затварянето на </head> маркера.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Не използвай %s маркиране тук. Това е за обикновен JS код, а не за HTML скриптове. Ако тук използвате тагове за скриптове, ще нарушите вашия уебсайт.", + ], + "Style" => [ + 0 => "Стил", + ], + "Landing page" => [ + 0 => "Целева страница", + ], + "Split landing + images" => [ + 0 => "Разделяне + изображения", + ], + "Route explore" => [ + 0 => "Проучване на маршрут", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Изберете стила на началната страница. За да го персонализирате допълнително, редактирайте app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Изображение на корицата", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Наистина ли искате да изтриете това изображение? Това не може да бъде отменено.", + ], + "Delete image" => [ + 0 => "Изтриване на изображението", + ], + "Add new cover image" => [ + 0 => "Добавете ново изображение на корицата", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Векторна версия или логото на вашия уебсайт във SVG формат (само за начална страница).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Версия на bitmap или логото на вашия уебсайт (само за начална страница). PNG форматът се препоръчва.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Това ще бъде добавено в маркера %s на началната страница. Оставете празно, за да използвате съдържанието по подразбиране.", + ], + "Paragraph" => [ + 0 => "Параграф", + ], + "Call to action button color" => [ + 0 => "Призив към действие цветен бутон", + ], + "Color of the homepage call to action button." => [ + 0 => "Цвят на бутона за призоваване към действие на началната страница.", + ], + "Call to action outline style button" => [ + 0 => "Бутон контур стил", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Активирайте това, за да използвате стила на контура на началната страница.", + ], + "Call to action functionality" => [ + 0 => "Призив към действие функционалност", + ], + "Trigger uploader" => [ + 0 => "Задействащо устройство за задействане", + ], + "Open URL" => [ + 0 => "Отваряне на URL адрес", + ], + "Call to action URL" => [ + 0 => "URL адрес на призив за действие", + ], + "Enter an absolute or relative URL" => [ + 0 => "Въведете абсолютен или относителен URL адрес", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Относителен URL адрес като %r ще бъде картографиран на %l", + ], + "Call to action HTML" => [ + 0 => "HTML за призоваване към действие", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Това ще бъде добавено в <a> маркера за призив към действие. Оставете празно, за да използвате съдържанието по подразбиране.", + ], + "User IDs" => [ + 0 => "Потребителски ID-та", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Списък на разделени със запетая ID-та на целеви потребители, за да се показват изображения на началната страница. Оставете празно или нулево, за да се показват всички скорошни изображения.", + ], + "banners" => [ + 0 => "банери", + ], + "Automatic updates check" => [ + 0 => "Автоматични проверки за актуализации", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "При активиране системата автоматично ще проверява за нови актуализации.", + ], + "Display available updates notification" => [ + 0 => "Показване на наличните известия за актуализации", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Активирайте това, за да се показват известия отгоре, да ви предупреждава за нови налични системни актуализации.", + ], + "Dump update query" => [ + 0 => "Dump актуализация на заявката", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Активирайте това, ако искате автоматично да откриете и зададете правилния език за всеки потребител.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URL адреси", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Активирайте това, ако искате да използвате SEO %s URL адреси.", + ], + "Minify code" => [ + 0 => "Минимизиране на кода", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Активирайте това, ако искате автоматично да минимизирате CSS и JS код.", + ], + "Maintenance" => [ + 0 => "Поддръжка", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Когато е активиран, уебсайтът ще покаже съобщение за поддръжка. Тази настройка не засяга администраторите.", + ], + "Crypt salt" => [ + 0 => "Криптер", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Този криптер се използва за преобразуване на числовия идентификатор в буквено-цифрова стойност. Той е генериран при инсталация.", + ], + "PHP error reporting" => [ + 0 => "Отчитане на грешки в PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Активирайте това, ако искате да отпечатате грешки, генерирани от PHP <a %s>error_reporting()</a>. Това трябва да бъде деактивирано в производството.", + ], + "Debug level" => [ + 0 => "Ниво на грешки", + ], + "None" => [ + 0 => "Нито един", + ], + "Error log" => [ + 0 => "Дневник на грешки", + ], + "Print errors without error log" => [ + 0 => "Грешки при печат без журнал за грешки", + ], + "Print and log errors" => [ + 0 => "Грешки при печат и регистрация", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "За да конфигурирате ниво на грешка, проверете <a %s> документацията за отстраняване на грешки </a>. Нивото по подразбиране е \"Регистър на грешките\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "Маршрутизацията ви позволява да персонализирате връзки по подразбиране по маршрута в движение. Разрешени са само буквено-цифрови, тире и подчертаващи символи. Вижте нашите %s, ако искате да замените или добавите нови маршрути.", + ], + "Image routing" => [ + 0 => "Маршрутизиране на изображения", + ], + "Routing for %s" => [ + 0 => "Маршрут за %s", + ], + "Album routing" => [ + 0 => "Маршрутизиране на албуми", + ], + "Hostname" => [ + 0 => "Име на хост", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Име на хост, върху който ще бъдат добавени подметки.", + ], + "This setting may be overridden by %s." => [ + 0 => "Тази настройка може да бъде отменена с %s.", + ], + "Language subdomains" => [ + 0 => "Езикови поддомейни", + ], + "languages" => [ + 0 => "езици", + ], + "Enable to use %s for %t." => [ + 0 => "Активиране за използване на %s за %t.", + ], + "Username subdomains" => [ + 0 => "Потребителско име поддомейни", + ], + "user profiles" => [ + 0 => "потребителски профили", + ], + "Custom language strings" => [ + 0 => "Персонализирани езикови низове", + ], + "language strings" => [ + 0 => "езикови низове", + ], + "Default language" => [ + 0 => "Език по подразбиране", + ], + "Default base language to use." => [ + 0 => "Да се използва език по подразбиране", + ], + "Auto language" => [ + 0 => "Автоматичен избор на език", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Активирайте това, ако искате автоматично да откриете и зададете правилния език за всеки потребител.", + ], + "Language chooser" => [ + 0 => "Избор на език", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Активирайте това, ако искате да разрешите избор на език.", + ], + "Enabled languages" => [ + 0 => "Активирани езици", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Неописаните езици няма да се използват във вашия уебсайт.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Превключете това, за да активирате или деактивирате HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Превключете това, за да активирате или деактивирате това хранилище", + ], + "Quota" => [ + 0 => "Квота", + ], + "Active" => [ + 0 => "Активен", + ], + "Storage method" => [ + 0 => "Метод на съхранение", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Локалното хранилище се използва по подразбиране или когато няма активно външно хранилище.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Ако имате нужда от помощ, проверете <a %s> документацията за съхранение </a>.", + ], + "Edit storage" => [ + 0 => "Редактиране на хранилището", + ], + "From name" => [ + 0 => "От име", + ], + "Sender name for emails sent to users." => [ + 0 => "Име, от което потребителите ще се получават email-ите", + ], + "Email mode" => [ + 0 => "Режим на имейл", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Как да изпращам имейли? SMTP се препоръчва.", + ], + "SMTP server and port" => [ + 0 => "SMTP сървър и порт", + ], + "SMTP server" => [ + 0 => "SMTP сървър", + ], + "SMTP username" => [ + 0 => "SMTP потребител", + ], + "SMTP password" => [ + 0 => "SMTP парола", + ], + "SMTP security" => [ + 0 => "SMTP защита", + ], + "Unsecured" => [ + 0 => "Незащитено", + ], + "Decode ID" => [ + 0 => "ID за декодиране", + ], + "Encode ID" => [ + 0 => "ID за енкодинг", + ], + "Send test email" => [ + 0 => "Изпратете тестов имейл", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Използвайте това, за да проверите как се доставят вашите имейли. Препоръчваме ви да използвате %s.", + ], + "Export a user" => [ + 0 => "Експортиране на потребител", + ], + "Export user" => [ + 0 => "Експортиране на потребителя", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Това ще ви позволи да изтеглите стандартна лична информация на потребителя във формат JSON.", + ], + "Regenerate external storage stats" => [ + 0 => "Възстановете статистиката за външно съхранение", + ], + "Storage id" => [ + 0 => "Идент. № за съхранение", + ], + "Regenerate" => [ + 0 => "Повторно генериране", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Това ще пресметне сумата от всички записи на изображения, свързани с целевото външно хранилище.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Мигрирайте записи на изображения от една външна памет към друга", + ], + "Source storage id" => [ + 0 => "Идент. № за съхранение", + ], + "Target storage id" => [ + 0 => "Идентификационен номер за съхранение", + ], + "Migrate" => [ + 0 => "Мигриране", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Това актуализира само базата данни. Трябва сами да прехвърлите действителните файлове в целевия контейнер за съхранение. Препоръчва се пренаписване на URL адреси. Използвайте нула (0) за локално съхранение.", + ], + "social networks" => [ + 0 => "социални мрежи", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Необходимо е <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook приложение</a>", + ], + "Facebook app id" => [ + 0 => "ID на фейсбук апликацията", + ], + "Facebook app secret" => [ + 0 => "Секретен код на фейсбук апликацията", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Необходимо е <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter приложение</a>", + ], + "Twitter API key" => [ + 0 => "API Ключ на Twitter", + ], + "Twitter API secret" => [ + 0 => "Секретен код на Twitter", + ], + "Twitter account" => [ + 0 => "Twitter акаунт", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Необходимо е <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google приложение</a>", + ], + "Google client id" => [ + 0 => "Идент. № на клиента на Google", + ], + "Google client secret" => [ + 0 => "Секретен код на Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "За това се нуждаете от <a href=\"http://vk.com/dev\" target=\"_blank\">VK приложение</a>.", + ], + "VK client id" => [ + 0 => "VK клиентски номер", + ], + "VK client secret" => [ + 0 => "Секретен код на VK", + ], + "%s spam protection" => [ + 0 => "%s защита срещу спам", + ], + "user generated content" => [ + 0 => "генерираното от потребителите съдържание", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Активирайте това, за да използвате %l за блокиране на спам на %c.", + ], + "%s API key" => [ + 0 => "%s API ключ", + ], + "user signup" => [ + 0 => "регистрация на потребител", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "За това се нуждаете от <a href=\"%s\" target=\"_blank\">reCAPTCHA ключ</a>.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Моля, обърнете внимание, че всяка версия на reCAPTCHA изисква собствен набор от ключове. Не забравяйте да актуализирате ключовете, ако промените версиите.", + ], + "%s site key" => [ + 0 => "%s ключ на сайта", + ], + "%s secret key" => [ + 0 => "%s секретен код", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA праг", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Колко неуспешни опита са необходими, за да се поиска reCAPTCHA? Използвайте нула (0), за да показвате винаги reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Принуди %s на страницата за контакти", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Активирайте това, за да се показва винаги %s на страницата за контакти.", + ], + "Comments API" => [ + 0 => "API за коментари", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API работи с %s.", + ], + "Disqus shortname" => [ + 0 => "Disqus кратко име", + ], + "%s public key" => [ + 0 => "%s публичен ключ", + ], + "Comment code" => [ + 0 => "Код за коментар", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook или всичко, което искате. Те ще бъдат използвани при изглед на изображение", + ], + "Analytics code" => [ + 0 => "Код на Google Анализ", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics или всичко, което искате. Те ще бъдат добавени към долната част на темата.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "За документация на API проверете <a %s>документацията за API</a>", + ], + "API v1 key" => [ + 0 => "Ключ API v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Използвайте този ключ, когато използвате <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Плъгин маршрут", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Активирайте това за показване на инструкции за плъгини на %u. Връзките към тези инструкции ще бъдат добавени към менюто %s. Тази настройка не засяга администраторите.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Използвайте това, за да зададете персонализиран URL адрес за %p. Моля, обърнете внимание, че трябва ръчно да копирате %s в този URL адрес.", + ], + "Cookie law compliance" => [ + 0 => "Спазване на закона за бисквитките", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Активирайте това, за да се покаже съобщение, което отговаря на изискванията на законодателството на ЕС за бисквитките. Забележка: Това ви трябва само ако уебсайтът ви се хоства в ЕС и ако добавите бисквитки за проследяване.", + ], + "Save changes" => [ + 0 => "Запази промените", + ], + "Check the errors to proceed." => [ + 0 => "Провери за грешки, за да продължиш", + ], + "Play GIF" => [ + 0 => "Старт GIF", + ], + "Load full resolution" => [ + 0 => "Заредете пълна резолюция", + ], + "Added to %a and categorized in %c" => [ + 0 => "Добавено към %a и категоризирано в %c", + ], + "Added to %s" => [ + 0 => "Добавено към %s", + ], + "Uploaded to %s" => [ + 0 => "Качено в %s", + ], + "Uploaded %s" => [ + 0 => "Качено %s", + ], + "Less Exif data" => [ + 0 => "По-малко данни от Exif", + ], + "More Exif data" => [ + 0 => "Повече данни от Exif", + ], + "Share image" => [ + 0 => "Споделете изображение", + ], + "Album ID" => [ + 0 => "ID на албума", + ], + "In this album" => [ + 0 => "В този албум", + ], + "Upload and share your images." => [ + 0 => "Качвайте и споделяйте вашите изображения.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Плъзнете и пуснете навсякъде, където искате и започнете да качвате изображенията си сега. %s ограничение. Директни връзки към изображения, миниатюри на BBCode и HTML.", + ], + "Start uploading" => [ + 0 => "Започнете да качвате", + ], + "Sign up to unlock all the features" => [ + 0 => "Регистрирайте се, за да отключите всички функции", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Управлявайте съдържанието си, създавайте частни албуми, персонализирайте потребителския си профил и др.", + ], + "Sign in with your account" => [ + 0 => "Влезте с вашия акаунт", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Нямате акаунт? <a href='%s'> Регистрирайте се</a> сега.", + ], + "Logged out" => [ + 0 => "Излязохте", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Вие излязохте успешно, %s очакваме ви отново скоро време.", + ], + "Go to homepage" => [ + 0 => "Начална страница", + ], + "Website under maintenance" => [ + 0 => "Уеб Сайта е временно спрян", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Изпълняваме планирани задачи по сайта, Моля пробвайте отново след няколко минути.", + ], + "This content is password protected." => [ + 0 => "Това съдържание е защитено с парола.", + ], + "Please enter your password to continue." => [ + 0 => "Моля, въведете паролата си, за да продължите.", + ], + "Send" => [ + 0 => "Изпрати", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Качване на изображения към вашия уебсайт, блог или форум е възможно след като инсталирате нашия плъгин за качване.Тои осигурява качване на изображения във всеки уебсайт чрез поставяне на бутон, който ще позволи на потребителите директно да качват изображения в нашия сайт и автоматично ще обработи кодовете, необходими за вмъкване на изображения.Всички включени функции като плъзгане и пускане, отдалечено качване, поправяне на размери на изображения и други.", + ], + "Supported software" => [ + 0 => "Поддържан софтуер", + ], + "supported software" => [ + 0 => "поддържан софтуер", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Плъгинът работи във всеки уебсайт със съдържание, редактирано от потребителя и за %sv ще постави бутон за качване, който ще съответства на лентата с инструменти на целевия редактор, така че не е необходимо допълнително персонализиране.", + ], + "Add it to your website" => [ + 0 => "Добавете го към вашия уебсайт", + ], + "options" => [ + 0 => "настроики", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Копирайте и поставете кода на приставката в HTML кода на уебсайта си (за предпочитане вътре в head). Има достатъчно %o, за да го приспособите по-добре към вашите нужди.", + ], + "Basic options" => [ + 0 => "Основни опции", + ], + "Color palette" => [ + 0 => "Цветова палитра", + ], + "Button color scheme" => [ + 0 => "Цветова схема на бутон", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Вградени кодове, които ще бъдат автоматично вмъкнати в редакторското поле", + ], + "Sibling selector" => [ + 0 => "Селектор", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Селектор на близките елементи където да поставите бутона до", + ], + "Sibling position" => [ + 0 => "Селектор", + ], + "After" => [ + 0 => "След", + ], + "Before" => [ + 0 => "Преди", + ], + "Position relative to sibling element" => [ + 0 => "Позиция спрямо елемента", + ], + "Advanced options" => [ + 0 => "Разширени опции", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Плъгинът разполага с голям избор от допълнителни опции, които позволяват пълна персонализация. Можете да използвате персонализиран HTML, CSS, собствена цветова палитра, да зададете наблюдатели и други. Проверете %d и източника на приставки, за да получите по-добра представа за тези разширени опции.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Или нямате разрешение за достъп до тази страница или връзката е изтекла.", + ], + "Search results" => [ + 0 => "Резултати от търсенето", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Наистина ли искате да изтриете този потребител? Това не може да бъде отменено.", + ], + "Delete user" => [ + 0 => "Изтриване на потребител", + ], + "Register date" => [ + 0 => "Дата на регистрация", + ], + "Registration IP" => [ + 0 => "Регистрирано IP", + ], + "Valid" => [ + 0 => "Валиден", + ], + "Banned" => [ + 0 => "Баннат", + ], + "Awaiting email" => [ + 0 => "Чакащ имейл", + ], + "Awaiting confirmation" => [ + 0 => "Очаква потвърждение", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i до %f символи<br>букви и цифри", + ], + "Auto delete uploads" => [ + 0 => "Автоматично изтриване на качванията", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Тази настройка ще се прилага по подразбиране за всички ваши качвания на изображения. Можете да отмените тази настройка при всяко качване.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Запазване на <a %s>Exif данни</a> при качване", + ], + "Newsletter" => [ + 0 => "Бюлетин", + ], + "Send me emails with news about %s" => [ + 0 => "Изпращайте ми имейли с новини относно %s", + ], + "Content settings" => [ + 0 => "Настройки на съдържанието", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Показване на не безопасно съдържание в списъци (от други)", + ], + "Language" => [ + 0 => "Език", + ], + "Timezone" => [ + 0 => "Часова зона", + ], + "Current password" => [ + 0 => "Текуща парола", + ], + "Enter your current password" => [ + 0 => "Въведете текущата си парола", + ], + "New password" => [ + 0 => "Нова парола", + ], + "Confirm new password" => [ + 0 => "Потвърждение на новата парола", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Добавете парола, за да можете да влезете с вашето потребителско име или имейл.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Този потребител няма парола. Добавете такава, като използвате този формуляр.", + ], + "Enter your password" => [ + 0 => "Въведете вашата парола", + ], + "Confirm password" => [ + 0 => "Потвърдете вашата парола", + ], + "Re-enter your password" => [ + 0 => "Въведете отново вашата парола", + ], + "Upload new image" => [ + 0 => "Качи ново изображение", + ], + "Delete existing image" => [ + 0 => "Изтриване на съществуващо изображение", + ], + "Make my profile and identity totally private" => [ + 0 => "Направи ми профила и самоличноста скрито", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Активирайте това, ако искате да сте като анонимен потребител", + ], + "This is your real name, not your username." => [ + 0 => "Това е вашето истинско име, а не вашето потребителско име.", + ], + "http://yourwebsite.com" => [ + 0 => "http://вашиятуебсайт.com", + ], + "Bio" => [ + 0 => "Биография", + ], + "Tell us a little bit about you" => [ + 0 => "Разкажете ни малко за вас", + ], + "User has no connections." => [ + 0 => "Потребителят няма връзки.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Свържете акаунта си с външни услуги, за да можете да влизате и споделяте съдържание.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Сигурни ли сте че искате да излезете %s от този акаунт?", + ], + "This account is connected to %s" => [ + 0 => "Този акаунт е свързан към %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Сигурни ли сте че искате да прекъснете %s вашия акаунт?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Вие ще излезете и няма да можете да влезете отново във вашия акаунт използвайки %s този акаунт", + ], + "Your account is connected to %s" => [ + 0 => "Вашият акаунт е свързан към %s", + ], + "disconnect" => [ + 0 => "Прекъсване", + ], + "Connect %s" => [ + 0 => "Свързване %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Чувствайте се свободни да разгледате всички мои споделени снимки и албуми.", + ], + "Button" => [ + 0 => "Бутон", + ], + "View all my images" => [ + 0 => "Виж всички мои снимки", + ], + "Login" => [ + 0 => "Влез", + ], + "Already have an account? %s now." => [ + 0 => "Вече имате акаунт? %s", + ], + "resend account activation" => [ + 0 => "Повторно изпращане на активация на профила", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Ако вече сте се регистрирали, може би трябва да изисквате %s, за да активирате акаунта си.", + ], + "You can also %s." => [ + 0 => "Можете също да %s.", + ], + "I'm at least %s years old" => [ + 0 => "Аз съм поне на %s години", + ], + "terms" => [ + 0 => "условия", + ], + "privacy policy" => [ + 0 => "политика за поверителност", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Съгласен съм с %terms_link и %privacy_link", + ], + "Upload profile background" => [ + 0 => "Качване на фонова снимка за профила", + ], + "Change background" => [ + 0 => "Смени фона", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Фоновото изображение на профила ще бъде изтрито. Това не може да бъде отменено. Сигурни ли сте, че искате да изтриете фоновото изображение на профила?", + ], + "Delete background" => [ + 0 => "Изтриване на фона", + ], + "Edit profile" => [ + 0 => "Редактиране на профила", + ], + "Follower" => [ + 0 => "Последовател", + 1 => "Последователи", + ], + "Follow" => [ + 0 => "Последвай", + ], + "You have been forbidden to use this website." => [ + 0 => "Забранено вие да използвате този сайт.", + ], + "Plugin" => [ + 0 => "Плъгин", + ], + "Page %s" => [ + 0 => "Страница %s", + ], + "General questions/comments" => [ + 0 => "Общи въпроси / коментари", + ], + "DMCA complaint" => [ + 0 => "Жалба DMCA", + ], + "Invalid message" => [ + 0 => "Невалидно съобщение", + ], + "Invalid subject" => [ + 0 => "Невалиден предмет", + ], + "Mail error" => [ + 0 => "Грешка в пощата", + ], + "Message sent" => [ + 0 => "Съобщението е изпратено", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Съобщението е изпратено. Ще се свържем скоро с вас.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Ако искате да изпратите съобщение, попълнете формата по-долу.", + ], + "Your name" => [ + 0 => "Вашето име", + ], + "Subject" => [ + 0 => "Предмет", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Всички промени, които сте направили, няма да бъдат запазени, ако продължите.", + ], + "Changes saved successfully." => [ + 0 => "Промените са запазени успешно.", + ], + "Go back to form" => [ + 0 => "Върнете се обратно до формата", + ], + "continue anyway" => [ + 0 => "продължете въпреки това", + ], + "Saving" => [ + 0 => "Запазване", + ], + "Sending" => [ + 0 => "Изпращане", + ], + "Confirm action" => [ + 0 => "Потвърдете действието", + ], + "information" => [ + 0 => "Информация", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/cs.po.cache.php b/app/.cache/languages/cs.po.cache.php new file mode 100644 index 0000000..5c44b7d --- /dev/null +++ b/app/.cache/languages/cs.po.cache.php @@ -0,0 +1,3782 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-09-23 13:05+0000', + 'PO-Revision-Date' => '2021-09-23 13:05+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'cs', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "You can also %i." => [ + 0 => "Můžete také %i.", + ], + "You can also %i or %c." => [ + 0 => "Můžete také %i nebo %c.", + ], + "You can add more images from %i." => [ + 0 => "Můžete přidat další obrázky z %i.", + ], + "You can add more images from %i or %c." => [ + 0 => "Můžete přidat další obrázky z %i nebo %c.", + ], + "Enable this if you want to allow image upload from URLs." => [ + 0 => "Zapněte tuto volbu, pokud chcete povolit nahrávání obrázků. Toto nastavení nemá vliv na administrátory.", + ], + "Note that enabling this will expose your server IP." => [ + 0 => "Pamatujte na to, že povolením této možnosti odhalíte IP adresu svého serveru.", + ], + "Invalid email" => [ + 0 => "Neplatný e-mail", + ], + "Invalid username" => [ + 0 => "Neplatné uživatelské jméno", + ], + "Invalid password" => [ + 0 => "Neplatné heslo", + ], + "Installed version is v%s" => [ + 0 => "Instalovaná verze je v%s", + ], + "Can't connect to %s" => [ + 0 => "Nelze se připojit k %s", + ], + "Last available release is v%s" => [ + 0 => "Poslední dostupná verze je v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Je nutná aktualizace, přecházím ke stažení", + ], + "No update needed" => [ + 0 => "Aktualizace není nutná", + ], + "System files already up to date" => [ + 0 => "Systémové soubory jsou již aktuální", + ], + "Starting v%s download" => [ + 0 => "Začínám stahovat v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Verze v%s je stažena, přecházím k rozbalování", + ], + "Attempting to extract v%s" => [ + 0 => "Pokouším se rozbalit verzi v%s", + ], + "Extraction completed" => [ + 0 => "Rozbalování bylo dokončeno", + ], + "Proceding to install the update" => [ + 0 => "Přecházím k instalaci aktualizace", + ], + "Update failed" => [ + 0 => "Aktualizace selhala", + ], + "Update in progress" => [ + 0 => "Probíhá aktualizace", + ], + "Missing %s file" => [ + 0 => "Chybějící %s soubor", + ], + "Invalid license info" => [ + 0 => "Neplatná informace o licenci", + ], + "Can't save file" => [ + 0 => "Soubor nelze uložit", + ], + "Can't extract %s" => [ + 0 => "Nelze rozbalit %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Nelze vytvořit %s adresář - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Nelze aktualizovat %s soubor - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Aby jste mohli pokračovat, zkontrolujte chyby ve formuláři.", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Poznámka: Tento obsah je soukromý, ale kdokoli s odkazem jej bude moci zobrazit.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Poznámka: Tento obsah je chráněn heslem. Pokud jej hodláte sdílet, nezapomeňte sdělit příjemci i heslo.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Poznámka: Tento obsah je soukromý. Pro umožnění sdílení je potřeba změnit soukromí na \"veřejné\".", + ], + "You must enter the album name." => [ + 0 => "Musíte zadat název alba.", + ], + "Confirm" => [ + 0 => "Potvrdit", + ], + "The content has been approved." => [ + 0 => "Obsah byl schválen.", + ], + "Select existing album" => [ + 0 => "Vyberte stávající album", + ], + "An error occurred. Please try again later." => [ + 0 => "Došlo k chybě. Prosím zkuste opakovat akci později.", + ], + "Please select a valid image file type." => [ + 0 => "Prosím vyberte přípustné typy souborů obrázků.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Prosím vyberte obrázek s největší %s velikostí.", + ], + "Profile image updated." => [ + 0 => "Profilový obrázek byl aktualizován.", + ], + "Profile background image updated." => [ + 0 => "Pozadí profilu bylo aktualizováno.", + ], + "Profile background image deleted." => [ + 0 => "Pozadí profilu bylo odstraněno.", + ], + "Error deleting profile background image." => [ + 0 => "Nastala chyba při odstraňování obrázku pozadí profilu.", + ], + "Passwords don't match" => [ + 0 => "Hesla se neshodují", + ], + "Update available v%s" => [ + 0 => "Je dostupná aktualizace v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Je k dispozici aktualizace pro váš systém. Můžete ji automaticky stáhnout a instalovat, nebo běžte na %s a stáhněte si instalační soubor.", + ], + "The release notes for this update are:" => [ + 0 => "Poznámky k verzi této aktualizace:", + ], + "system requirements" => [ + 0 => "požadavky na systém", + ], + "I confirm that this server meets the %s for this update" => [ + 0 => "Potvrzuji, že tento server splňuje %s pro tuto aktualizaci", + ], + "Update now" => [ + 0 => "Aktualizovat nyní", + ], + "This website is running latest %s version" => [ + 0 => "Tato webová stránka používá nejnovější verzi %s", + ], + "Please review the system requirements before proceeding" => [ + 0 => "Než budete pokračovat, zkontrolujte systémové požadavky", + ], + "loading" => [ + 0 => "načítání", + ], + "Toggle select" => [ + 0 => "Označit vybraný obrázek", + ], + "Like" => [ + 0 => "Líbí se", + ], + "Toggle flag" => [ + 0 => "Označit štítkem", + ], + "Edit" => [ + 0 => "Uprav", + ], + "Album" => [ + 0 => "Album", + 1 => "Alb", + 2 => "Alb", + 3 => "Alba", + ], + "Approve" => [ + 0 => "Schválit", + ], + "Delete" => [ + 0 => "Smazat", + ], + "Close" => [ + 0 => "Zavřít", + ], + "Previous" => [ + 0 => "Předchozí", + ], + "Next" => [ + 0 => "Další", + ], + "Clipboard image" => [ + 0 => "Kopírovat obrázek do schránky", + ], + "File too big." => [ + 0 => "Soubor je příliš velký.", + ], + "Invalid or unsupported file format." => [ + 0 => "Neplatný nebo nepodporovaný formát souboru.", + ], + "Some files couldn't be added" => [ + 0 => "Některé soubory nemohly být přidány.", + ], + "image" => [ + 0 => "obrázek", + 1 => "obrázků", + 2 => "obrázků", + 3 => "obrázky", + ], + "%s's Albums" => [ + 0 => "%s Alb", + ], + "Image edited successfully." => [ + 0 => "Obrázek byl úspěšně upraven.", + ], + "private" => [ + 0 => "soukromý", + ], + "Album edited successfully." => [ + 0 => "Album úspěšně upraveno.", + ], + "Invalid URL key." => [ + 0 => "Neplatný klíč URL.", + ], + "Category URL key already being used." => [ + 0 => "URL klíč kategorie se již používá.", + ], + "Category successfully deleted." => [ + 0 => "Kategorie byla úspěšně odstraněna.", + ], + "Category %s added." => [ + 0 => "Kategorie %s byla přidána.", + ], + "Invalid expiration date." => [ + 0 => "Neplatné datum ukončení platnosti.", + ], + "IP %s already banned." => [ + 0 => "IP %s je již zakázána.", + ], + "IP %s banned." => [ + 0 => "IP %s je zakázána.", + ], + "IP ban successfully deleted." => [ + 0 => "IP zákaz byl úspěšně odstraněn.", + ], + "Please fill all the required fields." => [ + 0 => "Prosím vyplňte všechny požadované kolonky.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Neplatná velikost úložiště. Prosím ověřte, že je ve správném formátu.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Velikost úložiště nemůže být menší než ta, kterou používáte nyní (%s).", + ], + "Invalid URL." => [ + 0 => "Neplatné URL.", + ], + "Storage successfully edited." => [ + 0 => "Úložiště bylo úspěšně upraveno.", + ], + "User added successfully." => [ + 0 => "Uživatel byl úspěšně přidán.", + ], + "The content has been deleted." => [ + 0 => "Obsah byl smazán.", + ], + "The content has been moved." => [ + 0 => "Obsah byl přesunut.", + ], + "Select" => [ + 0 => "Vybrat", + ], + "Unselect" => [ + 0 => "Odebrat", + ], + "The content has been edited." => [ + 0 => "Obsah byl upraven.", + ], + "Import ID %s removed" => [ + 0 => "Import ID %s byl odstraněn", + ], + "Spam detected" => [ + 0 => "Byl detekován spam", + ], + "album" => [ + 0 => "album", + 1 => "alba", + 2 => "alba", + 3 => "alba", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Bylo zjištěno zahlcení. Můžete nahrát pouze %limit% %content% za %time%", + ], + "Untitled" => [ + 0 => "Nepojmenováno", + ], + "%s's images" => [ + 0 => "%s obrázků", + ], + "Private" => [ + 0 => "Soukromý", + ], + "Public" => [ + 0 => "Veřejné", + ], + "Me" => [ + 0 => "Já", + ], + "Link" => [ + 0 => "Odkaz", + ], + "Password" => [ + 0 => "Heslo", + ], + "view" => [ + 0 => "zobrazení", + 1 => "zobrazení", + 2 => "zobrazení", + 3 => "zobrazení", + ], + "After %n %t" => [ + 0 => "Po %n %t", + ], + "minute" => [ + 0 => "minuta", + 1 => "minut", + 2 => "minut", + 3 => "minuty", + ], + "hour" => [ + 0 => "hodina", + 1 => "hodin", + 2 => "hodin", + 3 => "hodiny", + ], + "day" => [ + 0 => "den", + 1 => "dnů", + 2 => "dnů", + 3 => "dny", + ], + "week" => [ + 0 => "týden", + 1 => "týdnů", + 2 => "týdnů", + 3 => "týdny", + ], + "month" => [ + 0 => "měsíc", + 1 => "měsíců", + 2 => "měsíců", + 3 => "měsíce", + ], + "year" => [ + 0 => "rok", + 1 => "let", + 2 => "let", + 3 => "let", + ], + "Don't autodelete" => [ + 0 => "Automaticky nemazat", + ], + "Can't open %s for writing" => [ + 0 => "Nelze otevřít %s pro zápis", + ], + "Duplicated upload" => [ + 0 => "Duplicitně nahráno", + ], + "Private upload" => [ + 0 => "Soukromé nahrávání", + ], + "like" => [ + 0 => "líbí se", + 1 => "se líbí", + 2 => "se líbí", + 3 => "líbí se", + ], + "Recent" => [ + 0 => "Nedávné", + ], + "Trending" => [ + 0 => "Trendy", + ], + "Top users" => [ + 0 => "Top uživatelé", + ], + "Most recent" => [ + 0 => "Nejnovější", + ], + "Oldest" => [ + 0 => "Nejstarší", + ], + "Most viewed" => [ + 0 => "Nejprohlíženější", + ], + "Popular" => [ + 0 => "Populární", + ], + "Most liked" => [ + 0 => "Nejoblíbenější", + ], + "Explore" => [ + 0 => "Prozkoumat", + ], + "Animated" => [ + 0 => "Animované", + ], + "Search" => [ + 0 => "Hledat", + ], + "People" => [ + 0 => "Lidé", + ], + "Image" => [ + 0 => "Obrázek", + 1 => "Obrázků", + 2 => "Obrázků", + 3 => "Obrázky", + ], + "User" => [ + 0 => "Uřivatel", + 1 => "Uživatelů", + 2 => "Uživatelů", + 3 => "Uživatelé", + ], + "adult" => [ + 0 => "dospělý", + ], + "teen" => [ + 0 => "dospívající", + ], + "Content of type %s is forbidden" => [ + 0 => "Obsah typu %s je zakázán", + ], + "Can't create %s destination dir" => [ + 0 => "Nelze vytvořit %s cílový adresář", + ], + "Internal" => [ + 0 => "Interní", + ], + "Unlimited" => [ + 0 => "Neomezeno", + ], + "used" => [ + 0 => "využíváno", + ], + "Private profile" => [ + 0 => "Soukromý profil", + ], + "second" => [ + 0 => "sekunda", + 1 => "sekund", + 2 => "sekund", + 3 => "sekundy", + ], + "%s ago" => [ + 0 => "před %s", + ], + "moments ago" => [ + 0 => "před několika okamžiky", + ], + "Dashboard" => [ + 0 => "Administrace", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Je k dispozici nová aktualizace pro Váš systém. Klikněte na následující odkaz %s pro stažení a instalaci této aktualizace.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Systémová databáze je zastaralá. Je potřeba spustit <a href=\"%s\">aktualizační</a> nástroj.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Webová stránka se nachází v režimu údržby. Pro změnu tohoto nastavení jděte do <a href=\"%s\">Administrace > Nastavení</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Měl by jste vypnout zobrazování PHP chyb pro přehlednější prostředí. Jděte na <a href='%s'>Systémové nastavení</a> pro změnu tohoto nastavení.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Dosud jste nezměnili výchozí nastavení e-mailu. Pro změnu tohoto nastavení jděte do <a href='%s'>Nastavení e-mailu</a>.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Je zde dostupná aktualizace pro vaši Chevereto webovou stránku.", + ], + "admin dashboard" => [ + 0 => "Nástěnka admina", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Tuto aktualizaci můžete nainstalovat automaticky přímo ze svého %a nebo si ji stáhnout z %s a nainstalovat manuálně.", + ], + "view on %s" => [ + 0 => "zobrazit na %s", + ], + "cookie policy" => [ + 0 => "zásady cookie", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Používáme naše vlastní cookies a cookies třetích stran, abychom zlepšili vaše zážitky z prohlížení a s používáním našich služeb. Pokud budete pokračovat v používání našich webových stránek, souhlasíte a přijímáte naše %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Rozumím", + ], + "Forgot password?" => [ + 0 => "Zapoměli jste heslo?", + ], + "Reset password" => [ + 0 => "Obnovit heslo", + ], + "Resend account activation" => [ + 0 => "Znovu zaslat aktivační informace", + ], + "Add your email address" => [ + 0 => "Přidejte vaši e-mailovou adresu.", + ], + "Email changed" => [ + 0 => "E-mail změněn", + ], + "%s says you are a robot" => [ + 0 => "%s říká, že jste robot", + ], + "Invalid Username/Email" => [ + 0 => "Neplatné uživatelské jméno nebo e-mail.", + ], + "User doesn't have an email." => [ + 0 => "Uživatel nemá žádnou e-mailovou adresu.", + ], + "Request denied" => [ + 0 => "Požadavek byl zamítnut", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Pro použití této funkce si musíte svůj účet nejprve aktivovat.", + ], + "Account already activated" => [ + 0 => "Účet již byl aktivován", + ], + "Account banned" => [ + 0 => "Účet zakázán", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Zkuste to prosím později. E-mail by měl dorazit do 15 minut.", + ], + "Reset your password at %s" => [ + 0 => "Resetujte si své heslo na %s", + ], + "Confirmation required at %s" => [ + 0 => "Je vyžadován souhlas na %s", + ], + "Welcome to %s" => [ + 0 => "Vítejte do %s", + ], + "Email already being used" => [ + 0 => "E-mailová adresa již v systému existuje", + ], + "Password required" => [ + 0 => "Je vyžadováno heslo", + ], + "Embed codes" => [ + 0 => "Kódy pro vložení", + ], + "Sub albums" => [ + 0 => "Podřízená alba", + ], + "Info" => [ + 0 => "info", + ], + "%a album hosted in %w" => [ + 0 => "%a album hostováno v %w", + ], + "Stats" => [ + 0 => "Statistiky", + ], + "Images" => [ + 0 => "Obrázky", + ], + "Albums" => [ + 0 => "Alba", + ], + "Users" => [ + 0 => "Uživatelé", + ], + "Settings" => [ + 0 => "Nastavení", + ], + "Bulk importer" => [ + 0 => "Hromadný import", + ], + "install update" => [ + 0 => "Instalovat aktualizaci", + ], + "check for updates" => [ + 0 => "Zkontrolovat aktualizace", + ], + "Contributing" => [ + 0 => "Přispívání", + ], + "Support" => [ + 0 => "Podpora", + ], + "Bug tracking" => [ + 0 => "Nachlášení chyb", + ], + "Documentation" => [ + 0 => "Dokumentace", + ], + "PHP version" => [ + 0 => "PHP verze", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL verze", + ], + "MySQL server info" => [ + 0 => "Informace o MySQL serveru", + ], + "Graphics Library" => [ + 0 => "Grafická knihovna", + ], + "File uploads" => [ + 0 => "Nahraných souborů", + ], + "Enabled" => [ + 0 => "Zapnuto", + ], + "Disabled" => [ + 0 => "Vypnuto", + ], + "Max. upload file size" => [ + 0 => "Max. velikost nahrávaného souboru", + ], + "Max. post size" => [ + 0 => "Max. velikost nahrávání (post size)", + ], + "Max. execution time" => [ + 0 => "Max. čas požadavků (exec, time)", + ], + "%d second" => [ + 0 => "%d sekunda", + 1 => "%d sekund", + 2 => "%d sekund", + 3 => "%d sekundy", + ], + "Memory limit" => [ + 0 => "Limit paměti (mem. limit)", + ], + "Rebuild stats" => [ + 0 => "Znovu sestavit statistiky", + ], + "Connecting IP" => [ + 0 => "Připojení IP", + ], + "Not your IP?" => [ + 0 => "Není vaše IP?", + ], + "Website" => [ + 0 => "Webová stránka", + ], + "Content" => [ + 0 => "Obsah", + ], + "Pages" => [ + 0 => "Stránky", + ], + "Listings" => [ + 0 => "Výpisy", + ], + "Image upload" => [ + 0 => "Nahrávání obrázků", + ], + "Categories" => [ + 0 => "Kategorie", + ], + "Consent screen" => [ + 0 => "Schvalovací obrazovka", + ], + "Flood protection" => [ + 0 => "Ochrana proti záplavě (flood)", + ], + "Theme" => [ + 0 => "Šablona (theme)", + ], + "Homepage" => [ + 0 => "Domovská stránka", + ], + "Banners" => [ + 0 => "Bannery", + ], + "System" => [ + 0 => "Systém", + ], + "Routing" => [ + 0 => "Směrování", + ], + "Languages" => [ + 0 => "Jazyky", + ], + "External storage" => [ + 0 => "Externí úložiště", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Sociální sítě", + ], + "External services" => [ + 0 => "Externí služby", + ], + "IP bans" => [ + 0 => "IP bany", + ], + "Additional settings" => [ + 0 => "Doplňková nastavení", + ], + "Tools" => [ + 0 => "Nástroje", + ], + "Can't delete all homepage cover images" => [ + 0 => "Nelze odstranit všechny obrázky pozadí domovské stránky", + ], + "Homepage cover image deleted" => [ + 0 => "Obrázek pozadí domovské stránky byl odstraněn", + ], + "Local" => [ + 0 => "Místní", + ], + "External" => [ + 0 => "Externí", + ], + "All" => [ + 0 => "Vše", + ], + "search content" => [ + 0 => "vyhledat obsah", + ], + "Add page" => [ + 0 => "Přidat stránku", + ], + "Edit page ID %s" => [ + 0 => "Upravit stránku ID %s", + ], + "The page has been added successfully." => [ + 0 => "Stránka byla úspěšně přidána.", + ], + "The page has been deleted." => [ + 0 => "Stránka byla odstraněna.", + ], + "homepage" => [ + 0 => "domovská stránka", + ], + "Before main title (%s)" => [ + 0 => "Před hlavním názvem (%s)", + ], + "After call to action (%s)" => [ + 0 => "Po \"call to action\" (%s)", + ], + "After cover (%s)" => [ + 0 => "Po titulním obrázku (%s)", + ], + "After listing (%s)" => [ + 0 => "Po výpisu (%s)", + ], + "Before pagination" => [ + 0 => "Před stránkováním", + ], + "After pagination" => [ + 0 => "Za stránkováním", + ], + "Content (image and album)" => [ + 0 => "Obsah (obrázek a album)", + ], + "Tab about column" => [ + 0 => "Tabulka se sloupcem \"O ...\"", + ], + "Before comments" => [ + 0 => "Před komentáři", + ], + "Image page" => [ + 0 => "Stránka s obrázkem", + ], + "Inside viewer top (image page)" => [ + 0 => "Uvnitř prohlížeče nahoře (stránka s obrázkem)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Uvnitř prohlížeče dole (stránka s obrázkem)", + ], + "After image viewer (image page)" => [ + 0 => "Za prohlížečem obrázku (stránka s obrázkem)", + ], + "Before header (image page)" => [ + 0 => "Před hlavičkou (stránka s obrázkem)", + ], + "After header (image page)" => [ + 0 => "Za hlavičkou (stránka s obrázkem)", + ], + "Footer (image page)" => [ + 0 => "Patička (stránka s obrázkem)", + ], + "Album page" => [ + 0 => "Stránka s albem", + ], + "Before header (album page)" => [ + 0 => "Před hlavičkou (stránka s albem)", + ], + "After header (album page)" => [ + 0 => "Za hlavičkou (stránka s albem)", + ], + "User profile page" => [ + 0 => "Stránka s uživatelským profilem", + ], + "After top (user profile)" => [ + 0 => "Za hlavičkou (stránka s uživatelským profilem)", + ], + "Before listing (user profile)" => [ + 0 => "Před výpisem (stránka s uživatelským profilem)", + ], + "Explore page" => [ + 0 => "Prozkoumat stránku", + ], + "After top (explore page)" => [ + 0 => "Za hlavičkou (stránka procházení)", + ], + "NSFW" => [ + 0 => "NFSW", + ], + "Invalid website name" => [ + 0 => "Neplatné jméno webové stránky", + ], + "Invalid language" => [ + 0 => "Neplatný jazyk", + ], + "Invalid timezone" => [ + 0 => "Neplatná časová zóna", + ], + "Invalid value: %s" => [ + 0 => "Neplatná hodnota: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Neplatný způsob nahrávání do úložiště", + ], + "Invalid upload filenaming" => [ + 0 => "Neplatné pojmenování nahrávaných souborů", + ], + "Invalid thumb width" => [ + 0 => "Neplatná šířka miniatury", + ], + "Invalid thumb height" => [ + 0 => "Špatná výška miniatury", + ], + "Invalid medium size" => [ + 0 => "Neplatná střední velikost", + ], + "Invalid watermark percentage" => [ + 0 => "Neplatná procentuální hodnota vodoznaku", + ], + "Invalid watermark opacity" => [ + 0 => "Chybná neprůhlednost vodoznaku", + ], + "Invalid theme" => [ + 0 => "Špatná šablona (téma)", + ], + "Invalid value" => [ + 0 => "Neplatná hodnota", + ], + "Invalid theme tone" => [ + 0 => "Neplatný tón šablony.", + ], + "Invalid theme main color" => [ + 0 => "Chybná barva hlavní šablony", + ], + "Invalid theme top bar button color" => [ + 0 => "Neplatná barva vrchního baru tématu.", + ], + "Invalid theme image listing size" => [ + 0 => "Neplatná velikost náhledového obrázku šablony", + ], + "Invalid user id" => [ + 0 => "Neplatné ID uživatele", + ], + "Invalid email mode" => [ + 0 => "Špatný e-mailový mod", + ], + "Invalid SMTP port" => [ + 0 => "Špatný SMTP port", + ], + "Invalid SMTP security" => [ + 0 => "Neplatné zabezpečení SMTP", + ], + "Invalid website mode" => [ + 0 => "Neplatný režim stránky", + ], + "Invalid personal mode user ID" => [ + 0 => "Neplatné osobní uživatelské ID.", + ], + "Invalid or reserved route" => [ + 0 => "Neplatná nebo vyhrazená trasa", + ], + "Invalid website privacy mode" => [ + 0 => "Neplatný režim soukromí stránky", + ], + "Invalid website content privacy mode" => [ + 0 => "Neplatný režim bezpečnosti stránky", + ], + "Invalid homepage style" => [ + 0 => "Neplatný styl domovské stránky", + ], + "Invalid homepage call to action button color" => [ + 0 => "Neplatný příkaz tlačítka akce.", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Neplatný příkaz.", + ], + "Invalid title" => [ + 0 => "Neplatný název", + ], + "Invalid status" => [ + 0 => "Neplatný stav", + ], + "Invalid type" => [ + 0 => "Neplatný typ", + ], + "Invalid visibility" => [ + 0 => "Neplatná viditelnost", + ], + "Invalid internal type" => [ + 0 => "Neplatný interní typ", + ], + "Invalid target attribute" => [ + 0 => "Neplatný cílový atribut", + ], + "Invalid rel attribute" => [ + 0 => "Neplatný rel atribut", + ], + "Invalid icon" => [ + 0 => "Neplatná ikona", + ], + "Invalid URL key" => [ + 0 => "Neplatná URL adresa klíče", + ], + "Invalid file path" => [ + 0 => "Neplatná cesta souboru", + ], + "Invalid link URL" => [ + 0 => "Neplatná URL adresa odkazu", + ], + "Invalid user minimum age" => [ + 0 => "Neplatný minimální věk uživatele", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Povoleny jsou pouze alfanumerické znaky, pomlčka a podtržítko", + ], + "Invalid URL" => [ + 0 => "Neplatná URL adresa", + ], + "Routes can't be the same" => [ + 0 => "Cesty nemůžou být stejné", + ], + "Invalid upload image path" => [ + 0 => "Neplatná cesta nahrávaného obrázku", + ], + "Invalid call to action URL" => [ + 0 => "Neplatné výzva k akci URL", + ], + "Max. allowed %s" => [ + 0 => "Max. povoleno %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "%m nelze namapovat do existující složky (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Nelze namapovat %m na existující trasu (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "%m nelze namapovat k %r (kolize uživatelského jména)", + ], + "Invalid SMTP server" => [ + 0 => "Špatný SMTP server", + ], + "Invalid SMTP username" => [ + 0 => "Špatné SMTP uživatelské jméno", + ], + "Invalid key" => [ + 0 => "Neplatný klíč", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Tato URL adresa klíče je již používána jinou stránkou (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Tato cesta souboru je již používána jinou stránkou (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Nelze uložit obsah stránky: %s.", + ], + "Following" => [ + 0 => "Sledující", + ], + "About" => [ + 0 => "O webu", + ], + "Image ID" => [ + 0 => "ID obrázku", + ], + "Uploader IP" => [ + 0 => "IP adresa autora", + ], + "Ban IP" => [ + 0 => "Zakázat IP", + ], + "IP already banned" => [ + 0 => "IP je již zakázána", + ], + "Upload date" => [ + 0 => "Datum nahrání", + ], + "Image %i in %a album" => [ + 0 => "Obrázek %i v %a albu", + ], + "Image %i in %c category" => [ + 0 => "Obrázek %i v %c kategorii", + ], + "Image %i hosted in %w" => [ + 0 => "Obrázek %i hostován v %w", + ], + "Direct links" => [ + 0 => "Přímé odkazy", + ], + "Image link" => [ + 0 => "Odkaz obrázku", + ], + "Image URL" => [ + 0 => "URL obrázku", + ], + "Thumbnail URL" => [ + 0 => "URL miniatury", + ], + "Medium URL" => [ + 0 => "URL střední zmenšeniny", + ], + "Full image" => [ + 0 => "Plná velikost obrázku", + ], + "Full image (linked)" => [ + 0 => "Plná velikost obrázku (odkazy pro vložení)", + ], + "Medium image (linked)" => [ + 0 => "Střední velikost obrázku (odkazy pro vložení)", + ], + "Thumbnail image (linked)" => [ + 0 => "Miniatura obrázku (odkazy pro vložení)", + ], + "Login needed" => [ + 0 => "Vyžadováno přihlášení", + ], + "IP address already banned" => [ + 0 => "IP adresa je již zabanována", + ], + "Missing values" => [ + 0 => "Chybí hodnoty", + ], + "Invalid role" => [ + 0 => "Neplatná úloha", + ], + "Username already being used" => [ + 0 => "Uživatelské jméno je obsazené", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Přidat heslo nebo jiné sociální připojení před smazáním %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Přidat e-mail nebo jiné sociální připojení před smazáním %s", + ], + "%s has been disconnected." => [ + 0 => "%s byl odpojen.", + ], + "Test email from %s @ %t" => [ + 0 => "Testovací email z %s @ %t", + ], + "This is just a test" => [ + 0 => "Toto je pouze testovací zpráva.", + ], + "Test email sent to %s." => [ + 0 => "Testovací email byl odeslán na %s.", + ], + "Downloading %s data" => [ + 0 => "Stahování dat %s", + ], + "User %s followed" => [ + 0 => "Uživatel %s začal sledovat", + ], + "User %s unfollowed" => [ + 0 => "Uživatel %s přestal sledovat", + ], + "Album cover altered" => [ + 0 => "Obal alba změněn", + ], + "Content liked" => [ + 0 => "Obsah se líbí", + ], + "Content disliked" => [ + 0 => "Obsah se nelíbí", + ], + "%u liked your %t %c" => [ + 0 => "%u se líbí váš %t %c", + ], + "%u is now following you" => [ + 0 => "%u vás nyní sleduje", + ], + "A private user" => [ + 0 => "Soukromý uživatel", + ], + "Wrong Username/Email password combination" => [ + 0 => "Špatná kombinace přihlašovacího jména nebo e-mailu a hesla", + ], + "Sign in" => [ + 0 => "Přihlásit se", + ], + "Moderate" => [ + 0 => "Moderovat", + ], + "Upload images" => [ + 0 => "Nahrát obrázky", + ], + "Upload plugin" => [ + 0 => "Plugin pro nahrávání", + ], + "Image search results for %s" => [ + 0 => "Výsledky vyhledávání obrázku pro výraz %s", + ], + "Album search results for %s" => [ + 0 => "Výsledky vyhledávání alba pro výraz %s", + ], + "User search results for %s" => [ + 0 => "Výsledky vyhledávání uživatele pro výraz %s", + ], + "Account" => [ + 0 => "Účet", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Propojené účty", + ], + "Powered by" => [ + 0 => "Běží na systému", + ], + "Invalid image expiration: %s" => [ + 0 => "Chybná doba platnosti obrázku: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Email byl odeslán %s s instrukcemi pro aktivaci tohoto emailu", + ], + "Invalid name" => [ + 0 => "Neplatné jméno", + ], + "Invalid website" => [ + 0 => "Neplatná webová stránka", + ], + "Wrong password" => [ + 0 => "Neplatné heslo", + ], + "Use a new password" => [ + 0 => "Použijte nové heslo", + ], + "Changes have been saved." => [ + 0 => "Změny byly uloženy.", + ], + "Password has been changed" => [ + 0 => "Heslo bylo změněno", + ], + "Password has been created." => [ + 0 => "Heslo bylo vytvořeno.", + ], + "Wrong Username/Email values" => [ + 0 => "Špatné hodnoty přihlašovacího jména nebo e-mailu", + ], + "Settings for %s" => [ + 0 => "Nastavení pro %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Musíte souhlasit s podmínkami a zásadami ochrany osobních údajů", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Pro možnost používat tuto webovou stránku vám musí být alespoň %s let.", + ], + "Create account" => [ + 0 => "Vytvořit účet", + ], + "Upload" => [ + 0 => "Nahrát", + ], + "%s's Images" => [ + 0 => "%s Obrázků", + ], + "Results for" => [ + 0 => "Výsledky pro", + ], + "Liked by %s" => [ + 0 => "Co se líbí %s", + ], + "Liked" => [ + 0 => "Líbí se mi", + ], + "Followers" => [ + 0 => "Sledující", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) alb v %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) v %w", + ], + "Discovery" => [ + 0 => "Objevit", + ], + "Random" => [ + 0 => "Náhodně", + ], + "Advanced search" => [ + 0 => "Pokročilé vyhledávání", + ], + "Notices (%s)" => [ + 0 => "Oznámení (%s)", + ], + "Notifications" => [ + 0 => "Oznámení", + ], + "You don't have notifications" => [ + 0 => "Nemáte žádná oznámení", + ], + "My Profile" => [ + 0 => "Můj profil", + ], + "Lights" => [ + 0 => "Světla", + ], + "Sign out" => [ + 0 => "Odhlásit se", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Zaznamenali jsme pokus o změnu e-mailu vašeho <a href=\"%u\">%n</a> účtu na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Pro dokončení musíte <a href=\"%s\">aktivovat váš e-mail.</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativně můžete zkopírovat a vložit URL adresu přímo do adresního řádku vašeho prohlížeče: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Pokud jste žádost o změnu neodesílali, stačí když budete tuto zprávu ignorovat.", + ], + "This request was made from IP: %s" => [ + 0 => "Tento požadavek byl vytvořen z IP adresy: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Obdrželi jsme žádost o registraci %n účtu na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Pro dokončení musíte <a href=\"%s\">aktivovat váš účet</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Obdrželi jsme žádost o reset hesla k vašemu <a href=\"%u\">%n</a> účtu.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Pro resetování hesla <a href=\"%s\">přejděte na tento odkaz</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Dobrý den %n, vítejte na %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Nyní, když je váš účet konečně připraven k používání, si můžete naplno užívat nahrávání obrázků, vytváření alb, nastavovat jejich soukromí a spousty dalších vlastností, které jistě brzy objevíte!", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Mimochodem, zde je stránka s vaším úžasným profilem: <a href=\"%u\">%n</a>. Tak neváhejte a upravte si ji podle vašich představ. Je to jenom na vás!", + ], + "Thank you for joining" => [ + 0 => "Děkujeme, že jste se k nám přidali", + ], + "This email was sent from %w %u" => [ + 0 => "Tento e-mail byl odeslán od %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Chytněte a přetáhněte nebo vložte obrázky sem pro nahrání", + ], + "Select the images to upload" => [ + 0 => "Zvolte obrázky k nahrání", + ], + "browse from your computer" => [ + 0 => "vybrat z vašeho počítače", + ], + "add image URLs" => [ + 0 => "přidat URL adresy obrázků", + ], + "You can also %i or %u." => [ + 0 => "Můžeš také %i nebo %u.", + ], + "browse from your device" => [ + 0 => "procházet z vašeho zařízení", + ], + "take a picture" => [ + 0 => "pořídit fotku", + ], + "You can also %i, %c or %u." => [ + 0 => "Můžete také %i, %c nebo %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Upravte nebo změňte velikost libovolného obrázku kliknutím na náhled obrázku", + ], + "Edit any image by touching the image preview" => [ + 0 => "Upravte jakýkoli snímek tím, že se dotknete náhledu obrázku", + ], + "your computer" => [ + 0 => "vašeho počítače", + ], + "You can add more images from %i or %u." => [ + 0 => "Můžete přidat další obrázky z %i nebo %u.", + ], + "your device" => [ + 0 => "vašeho zařízení", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Můžete přidat další obrázky z %i, %c nebo %u.", + ], + "Uploading %q %o" => [ + 0 => "Nahrávání %q %o", + ], + "complete" => [ + 0 => "kompletní", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Fronta se nahrává. Proces nahrávání by měl trvat jen několik sekund.", + ], + "Upload complete" => [ + 0 => "Nahrávání dokončeno", + ], + "Uploaded content added to %s." => [ + 0 => "Nahraný obsah byl přidán do %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Můžete %c s právě nahraným obsahem nebo %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Můžete %c s právě nahraným obsahem.", + ], + "create a new album" => [ + 0 => "vytvořit nové album", + ], + "move it to an existing album" => [ + 0 => "přesunout do již existujícího alba", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Musíte se %s nebo %l pro uložení tohoto obsahu do svého účtu.", + ], + "create an account" => [ + 0 => "vytvořit účet", + ], + "sign in" => [ + 0 => "přihlásit se", + ], + "No %s have been uploaded" => [ + 0 => "Žádné %s nebyly nahrány", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Bohužel se vyskytly nějaké chyby a server nemohl dokončit vaše požadavky.", + ], + "Category" => [ + 0 => "Kategorie", + ], + "Select category" => [ + 0 => "Vyberte kategorii", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Zatrhněte pokud obrázek není vhodný pro děti a mladistvé.", + ], + "Not family safe upload" => [ + 0 => "Obrázek není vhodný pro děti a mladistvé.", + ], + "Uploading" => [ + 0 => "Nahrávám", + ], + "or" => [ + 0 => "nebo", + ], + "cancel" => [ + 0 => "zrušit", + ], + "cancel remaining" => [ + 0 => "zrušit zbývající", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Upozornění: Některé obrázky nelze nahrát.", + ], + "learn more" => [ + 0 => "dozvědět se více", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Zkontrolujte <a data-modal=\"simple\" data-target=\"failed-upload-result\">chybovou zprávu</a> kde se dozvíte více informací.", + ], + "Register to get %s" => [ + 0 => "Zaregistrujte se pro získání %s", + ], + "reset" => [ + 0 => "resetovat", + ], + "close" => [ + 0 => "zavřít", + ], + "Note" => [ + 0 => "Poznámka", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Než budeme moci sdílet, musíme schválit nahraný obsah.", + ], + "copy" => [ + 0 => "kopírovat", + ], + "insert" => [ + 0 => "vložit", + ], + "Remove" => [ + 0 => "Odstranit", + ], + "Title" => [ + 0 => "Název", + ], + "optional" => [ + 0 => "volitelné", + ], + "Resize image" => [ + 0 => "Změnit velikost obrázku", + ], + "Width" => [ + 0 => "Šířka", + ], + "Height" => [ + 0 => "Výška", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Poznámka: Animované GIF obrázky se nezmění.", + ], + "Auto delete image" => [ + 0 => "Automatické smazání obrázku", + ], + "Sign up" => [ + 0 => "Přihlásit se", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s pro zapnutí nebo vypnutí automatického mazání obrázků", + ], + "Mark this if the image is not family safe" => [ + 0 => "Zatrhněte pokud obrázek není vhodný pro děti a mladistvé.", + ], + "Flag as unsafe" => [ + 0 => "Označit jako nevhodné.", + ], + "Description" => [ + 0 => "Popis", + ], + "Brief description of this image" => [ + 0 => "Stručný popis obrázku", + ], + "Add image URLs" => [ + 0 => "Přidat URL obrázku", + ], + "Add the image URLs here" => [ + 0 => "Přidejte URL obrázku zde", + ], + "Create album" => [ + 0 => "Vytvořit album", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Nahraný obsah bude přesunut do tohoto nově vytvořeného alba.", + ], + "existing album" => [ + 0 => "existujícího alba", + ], + "You can also move the content to an %a." => [ + 0 => "Obsah můžete také přesunout do %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Pokud chcete album později upravit, musíte se nejdříve %s nebo %l.", + ], + "Move to album" => [ + 0 => "Přesunout do alba", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Vyberte existující album k nahrání obrázků. Samozřejmě můžete také <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvořit album</a> a nahrát obrázky do něj.", + ], + "Error report" => [ + 0 => "Chybová zpráva", + ], + "Links" => [ + 0 => "Odkazy", + ], + "Viewer links" => [ + 0 => "Odkaz s náhledem", + ], + "HTML Codes" => [ + 0 => "HTML kódy", + ], + "HTML image" => [ + 0 => "HTML obrázku", + ], + "HTML full linked" => [ + 0 => "plná velikost obrázku s odkazem na originál", + ], + "HTML medium linked" => [ + 0 => "středně velký obrázek s odkazem na originál", + ], + "HTML thumbnail linked" => [ + 0 => "miniatura obrázku s odkazem na originál", + ], + "BBCodes" => [ + 0 => "do fóra (BBCode)", + ], + "BBCode full" => [ + 0 => "BBKód plné velikosti obrázku", + ], + "BBCode full linked" => [ + 0 => "Plný odkaz do diskuzního fóra.", + ], + "BBCode medium linked" => [ + 0 => "Kód do fóra se střední zmenšeninou obrázku a odkazem.", + ], + "BBCode thumbnail linked" => [ + 0 => "miniatura obrázku s odkazem na originál", + ], + "Markdown full" => [ + 0 => "Markdown kód plné velikosti obrázku", + ], + "Markdown full linked" => [ + 0 => "Markdown kód plné velikosti obrázku s odkazem", + ], + "Markdown medium linked" => [ + 0 => "Markdown kód střední velikosti velikosti obrázku", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown kód náhledu obrázku s odkazem", + ], + "All these words" => [ + 0 => "Všechna tato slova", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Zadejte důležitá slova: tri-colour rat terrier", + ], + "This exact word or phrase" => [ + 0 => "Toto konkrétní slovo či frázi", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Zadejte přesná slova v uvozovkách: \"rat terrier\"", + ], + "None of these words" => [ + 0 => "Žádné z těchto slov", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Vložte znaménko mínus před slova, která nechcete povolit: -rodent - \"Jack Russell\"", + ], + "Storage" => [ + 0 => "Úložiště", + ], + "IP address" => [ + 0 => "IP adresa", + ], + "Album name" => [ + 0 => "Název alba", + ], + "move to existing album" => [ + 0 => "přesunout do existujicího alba", + ], + "Album description" => [ + 0 => "Popis alba", + ], + "Brief description of this album" => [ + 0 => "Stručný popis tohoto alba", + ], + "Album privacy" => [ + 0 => "Soukromí alba", + ], + "Who can view this content" => [ + 0 => "Kdo může zobrazit tento obsah", + ], + "Private (just me)" => [ + 0 => "Soukromé (pouze já)", + ], + "Private (anyone with the link)" => [ + 0 => "Soukromé (kdokoliv komu dáte link)", + ], + "Private (password protected)" => [ + 0 => "Soukromé (chráněno heslem)", + ], + "Album password" => [ + 0 => "Heslo alba", + ], + "Name" => [ + 0 => "Jméno", + ], + "Category name" => [ + 0 => "Jméno kategorie", + ], + "URL key" => [ + 0 => "URL klíč", + ], + "Category URL key" => [ + 0 => "URL klíč kategorie", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Pouze písmena, čísla a pomlčky", + ], + "Brief description of this category" => [ + 0 => "Stručný popis této kategorie", + ], + "Untitled image" => [ + 0 => "Obrázek bez názvu", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Označit tento obrázek, pokud není vhodný a bezpečný", + ], + "Flag not safe" => [ + 0 => "Označeno jako \"nevhodné\"", + ], + "Path" => [ + 0 => "Cesta", + ], + "Local path (absolute)" => [ + 0 => "Lokální cesta (absolutní)", + ], + "Directory structure" => [ + 0 => "Adresářová struktura", + ], + "Parse top level folders as users (username)" => [ + 0 => "Přiřadit složky nejvyšší úrovně jako uživatele (uživatelské jméno)", + ], + "Parse top level folders as albums" => [ + 0 => "Přiřadit složky nejvyšší úrovně jako alba", + ], + "Don't parse folders" => [ + 0 => "Nepřiřazovat složky", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Při přiřazení složek nejvyšší úrovně jako uživatelé budou složky druhé úrovně přiřazeny jako uživatelské alba. Přiřazení složek nejvyšší úrovně jako alba přidává tyto složky jako alba pro návštěvníky.", + ], + "Threads" => [ + 0 => "Vlákna", + ], + "Select number of threads" => [ + 0 => "Vyberte počet vláken", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Toto určuje, jak intenzivní a rychlý bude proces importu. Na sdíleném serveru nepoužívejte více než %s vláken.", + ], + "You can use wildcard * characters." => [ + 0 => "Můžete použít zástupné znaky *.", + ], + "Expiration date" => [ + 0 => "Datum platnosti", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "RRRR-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Příklad", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Do kdy bude tato IP zakázána? Zanechte pole prázdné pro trvalý zákaz.", + ], + "Message" => [ + 0 => "Zpráva", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Textová zpráva, HTML nebo přesměrovat URL", + ], + "Existing album" => [ + 0 => "Stávající album", + ], + "create new album" => [ + 0 => "Vytvořit nové album", + ], + "Storage name" => [ + 0 => "Jméno úložiště", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Region", + ], + "Storage region" => [ + 0 => "Region úložiště (Storage region)", + ], + "Storage bucket" => [ + 0 => "Bucket úložiště", + ], + "Key" => [ + 0 => "Klíč", + ], + "Storage key" => [ + 0 => "Klíč úložiště", + ], + "Secret" => [ + 0 => "Secret", + ], + "Storage secret" => [ + 0 => "Secret úložiště", + ], + "Private key" => [ + 0 => "Soukromý klíč", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON klíč", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Pro toto potřebujete <a %s>service account</a>.", + ], + "Service name" => [ + 0 => "Název služby", + ], + "Identity URL" => [ + 0 => "Adresa URL Identity (Identity URL)", + ], + "Identity API endpoint" => [ + 0 => "Koncový bod API Identity (Identity API endpoint)", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Koncový bod API OpenStack identity (API endpoint for OpenStack identity)", + ], + "Username" => [ + 0 => "Uživatelské jméno", + ], + "Container" => [ + 0 => "Kontejner (Container)", + ], + "Storage container" => [ + 0 => "Kontejner úložiště (Storage container)", + ], + "Tenant id" => [ + 0 => "ID Nájemce (Tenant id)", + ], + "Tenant id (account id)" => [ + 0 => "ID účtu nájemce (Tenant id)", + ], + "Tenant name" => [ + 0 => "Jméno nájemce (Tenant name)", + ], + "Tenant name (account name)" => [ + 0 => "uživatelský účet", + ], + "Storage endpoint" => [ + 0 => "Koncový bod úložiště", + ], + "Server address" => [ + 0 => "Adresa serveru", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname nebo IP serveru s úložištěm.", + ], + "Server path" => [ + 0 => "Serverová cesta", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Absolutní cesta, kde budou soubory uloženy v souvislosti s přihlášením %p. Pro kořenovou (root) cestu použijte %s.", + ], + "Server login" => [ + 0 => "Přihlášení k serveru", + ], + "Server password" => [ + 0 => "Serverové heslo", + ], + "Local path" => [ + 0 => "Místní cesta", + ], + "Local path where the files will be stored" => [ + 0 => "Místní cesta, kde budou soubory uloženy", + ], + "Storage capacity" => [ + 0 => "Kapacita úložiště", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Příklad: 20 GB, 1 TB, atp.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Toto úložiště přestane být používáno jakmile bude dosaženo zvolené kapacity. Ponechte prázdné nebo nastavte 0 pokud nechcete nastavit kapacitu.", + ], + "Storage URL" => [ + 0 => "URL úložiště", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Sytém namapuje obrázky v úložišti na tuto URL.", + ], + "view more" => [ + 0 => "zobrazit více", + ], + "Load more" => [ + 0 => "Načíst více", + ], + "Select all" => [ + 0 => "Vybrat vše", + ], + "Get embed codes" => [ + 0 => "Zobrazit kódy pro vložení", + ], + "Assign category" => [ + 0 => "Přiřadit kategorii", + ], + "Flag as safe" => [ + 0 => "Označit jako bezpečné", + ], + "Clear selection" => [ + 0 => "Zrušit výběr", + ], + "Create new album" => [ + 0 => "Vytvořit nové album", + ], + "Create sub album" => [ + 0 => "Vytvořit podřízené album", + ], + "Share" => [ + 0 => "Sdílet", + ], + "Sign in with another account" => [ + 0 => "Přihlásit se pomocí jiného účtu", + ], + "Continue with %label%" => [ + 0 => "Pokračovat s %label%", + ], + "Home" => [ + 0 => "Domů", + ], + "There's nothing to show here." => [ + 0 => "Zde se nenachází nic k zobrazení.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Všechny vybrané obrázky budou zařazeny do této kategorie.", + ], + "There is no categories." => [ + 0 => "Nejsou zde žádné kategorie.", + ], + "Confirm flag content as safe" => [ + 0 => "Potvrďte, že obrázek je bezpečný", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Opravdu si přejete tento obsah označit jako bezpečný?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Potvrďte, že obrázek není bezpečný", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Opravdu si přejete tento obsah označit jako nebezpečný?", + ], + "Confirm approval" => [ + 0 => "Potvrďte souhlas", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "Opravdu chcete odstranit veškerý vybraný obsah? Toto nelze vrátit zpět.", + ], + "Confirm deletion" => [ + 0 => "Potvrďte odstranění", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Opravdu chcete odstranit tento obsah? (Nelze vrátit zpět)", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Opravdu chcete odstranit veškerý vybraný obsah? Toto nelze vrátit zpět.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Opravdu si přejete odstranit vybraný obsah? (Nelze vrátit zpět)", + ], + "Guest" => [ + 0 => "Host", + ], + "Keyboard shortcuts" => [ + 0 => "Klávesové zkratky", + ], + "Private album" => [ + 0 => "Soukromé album", + ], + "Password protected" => [ + 0 => "Chráněno heslem", + ], + "Uploaded by guest" => [ + 0 => "Nahráno návštěvníkem", + ], + "From %s" => [ + 0 => "Od %s", + ], + "Uploaded by private" => [ + 0 => "Nahráno soukromě", + ], + "by %u" => [ + 0 => "od %u", + ], + "Toggle unsafe flag" => [ + 0 => "Označit obrázek jako nevhodný", + ], + "That page doesn't exist" => [ + 0 => "Tato stránka neexistuje", + ], + "The requested page was not found." => [ + 0 => "Požadovaná stránka nebyla nalezena.", + ], + "The user has been deleted" => [ + 0 => "Uživatel byl smazán", + ], + "Your account is almost ready" => [ + 0 => "Váš účet je téměř připraven", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "E-mail pro %s byl právě odeslán. E-mail obsahuje instrukce o tom jak aktivovat váš účet. Aktivaci je možné provést do 48 hodin. Pokud e-mailovou zprávu neobdržíte, pak prosím zkontrolujte vaši složku se spamem.", + ], + "Resend activation" => [ + 0 => "Znovu odeslat aktivaci", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Úspěšně jste změnili e-mail k vašemu účtu na %s", + ], + "Go to my profile" => [ + 0 => "Jdi na můj profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Odkaz k potvrzení bude zaslán na e-mail spolu s detaily k aktivaci účtu.", + ], + "Your email address" => [ + 0 => "Vaše e-mailová adresa", + ], + "Submit" => [ + 0 => "Odeslat", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "E-mail s instrukcemi jak resetovat vaše heslo byl právě odeslán na e-mailovou adresu, kterou jste uvedli při registraci. Pokud jste e-mail s instrukcemi neobdrželi, pak prosím zkontrolujte vaši složku se spamem či ostatní filtrovanou poštu.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "E-mail s instrukcemi k resetování vašeho hesla jsme již odeslali. Pokud vám nedorazil pak si prosím zkontrolujte vaši složku se spamem.", + ], + "Resend instructions" => [ + 0 => "Zaslat instrukce znova.", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Chcete-li pokračovat, zadejte své uživatelské jméno nebo e-mailovou adresu. Možná budete muset zkontrolovat složku spamu nebo whitelist %s", + ], + "Username or Email address" => [ + 0 => "Uživatelské jméno nebo e-mailová adresa", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Vaše heslo bylo úspěšně změněno. Nyní se můžete přihlásit s vašim novým heslem.", + ], + "Login now" => [ + 0 => "Přihlásit se", + ], + "Enter your new password" => [ + 0 => "Vložte vaše nové heslo", + ], + "%d characters min" => [ + 0 => "%d znaků minimálně", + ], + "Password strength" => [ + 0 => "Síla hesla", + ], + "Re-enter your new password" => [ + 0 => "Znovu vyplňte nové heslo", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Na adresu %s byl zaslán email s instrukcemi pro aktivaci Vašeho účtu. Pokud jste neobdrželi žádné instrukce, zkontrolujte prosím Vaši nevyžádanou poštu nebo spamové filtry.", + ], + "This content is private" => [ + 0 => "Tento obsah je soukromý", + ], + "Sub album" => [ + 0 => "Podřízené album", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Opravdu si přejete odstranit toto album a všechny obrázky do něj zařazené? (Tuto akci nelze vrátit)", + ], + "Upload to album" => [ + 0 => "Nahrát do alba", + ], + "You like this" => [ + 0 => "Toto se vám líbí", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Přečtěte si a souhlaste s těmito podmínkami, než budete moci pokračovat:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Tato webová stránka obsahuje informace, odkazy a obrázky se sexuálním materiálem. Pokud jste mladší %s let, jestli Vás tento materiál uráží, nebo jestli je zobrazení tohoto materiálu nezákonné ve Vaší komunitě, prosím nepokračujte dál.\n\nJe mi alespoň %s let a věřím, že jako dospělý je to mé nezadatelné právo získávat/prohlížet sexuálně explicitní materiál. Přeji si získávat/zobrazovat sexuálně explicitní materiály.\n\nDomnívám se, že sexuální akty mezi dospělými nejsou nezákonné ani obscénní. Prohlížení, čtení a stahování sexuálně explicitních materiálů neporušuje standardy mé komunity, města, státu nebo země.\n\nSexuálně explicitní materiál si prohlížím pro mou osobní potřebu a nebudu tomuto materiálu vystavovat děti a mladistvé.\n\nJsem sám osobně zodpovědný(á) za poskytnutí nepravdivých informací nebo za jakékoli právní následky za prohlížení, čtení nebo stahování jakéhokoliv materiálu z této webové stránky. Navíc tyto webové stránky ani její pobočky nebudou zodpovědny za případné právní následky vyplývající z podvodného přístupu nebo používání této webové stránky.\n\nTato obrazovka představuje souhlas a právní dohodu mezi těmito webovými stránkami a Vámi a / nebo jakýkoliv podnikem, ve kterém můžete mít jakýkoli právní nebo soukromý zájem. Pokud bude některá část této smlouvy považována za nevymahatelnou prostřednictvím příslušného soudu, nebude to mít vliv na vymahatelnost ostatních částí této dohody.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Kliknutím na \"Souhlasím \" prohlašujete, že jste si přečetli a pochopili všechny výše uvedené podmínky.", + ], + "I Agree" => [ + 0 => "Souhlasím", + ], + "documentation" => [ + 0 => "dokumentace", + ], + "Learn about %s settings at our %d." => [ + 0 => "Přečtěte si další informace o nastavení %s na našem %d.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "Připojovací IP adresa je určena pomocí proměnné serveru %var%. Pokud zjištěná IP neodpovídá vaší, znamená to, že váš webový server je za proxy a je potřeba vyladit váš server pro nastavení skutečné spojující IP.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Pro Nginx musíte použít %nginx%. Pro Apache, %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Ujistěte se, že tento problém řešíte, protože systém spoléhá na přesné detekce IP, aby poskytoval základní funkce a chránil před spamem, záplavami a útoky brutální silou.", + ], + "Disk used" => [ + 0 => "Využití disku", + ], + "Queued" => [ + 0 => "Ve frontě", + ], + "Working" => [ + 0 => "Spuštěno", + ], + "Paused" => [ + 0 => "Pozastaveno", + ], + "Canceled" => [ + 0 => "Zrušeno", + ], + "Completed" => [ + 0 => "Dokončeno", + ], + "Top level folders as %s" => [ + 0 => "Složky nejvyšší úrovně jako %s", + ], + "Actions" => [ + 0 => "Akce", + ], + "Process" => [ + 0 => "Proces", + ], + "Pause" => [ + 0 => "Pauza", + ], + "Cancel" => [ + 0 => "Zrušit", + ], + "Process log" => [ + 0 => "Protokol procesu", + ], + "Errors" => [ + 0 => "Chyby", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Opravdu chcete odstranit import ID %s?", + ], + "Reset" => [ + 0 => "Resetovat", + ], + "Resume" => [ + 0 => "Pokračovat", + ], + "Status" => [ + 0 => "Stav", + ], + "Run the following command to import content to Chevereto:" => [ + 0 => "Spuštěním následujícího příkazu importujte obsah do Chevereto:", + ], + "Read the %s for more information about this feature." => [ + 0 => "Přečtěte si %s pro více informací o této funkci.", + ], + "Add user" => [ + 0 => "Přidat uživatele", + ], + "Role" => [ + 0 => "Úloha", + ], + "Manager" => [ + 0 => "Správce", + ], + "Administrator" => [ + 0 => "Administrátor", + ], + "Email address" => [ + 0 => "E-mailová adresa", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Toto nastavení je vždy zakázáno při použití režimu osobní webové stránky.", + ], + "Add category" => [ + 0 => "Přidat kategorii", + ], + "Add IP ban" => [ + 0 => "Přidat zakázanou IP", + ], + "Add storage" => [ + 0 => "Přidat úložiště", + ], + "Return to pages" => [ + 0 => "Návrat na stránky", + ], + "Website name" => [ + 0 => "Název webu", + ], + "Website doctitle" => [ + 0 => "Nadpis webové stránky (title)", + ], + "Website description" => [ + 0 => "Popis webu", + ], + "Automatic" => [ + 0 => "Automaticky", + ], + "Forced" => [ + 0 => "Vynucené", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a použije detekci HTTPS na straně serveru (doporučeno). %f bude používat protokol HTTPS bez ohledu na nastavení vašeho serveru. %d nepoužije protokol HTTPS vůbec.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Tímto se řídí pouze protokol používaný v URL adresách, nebude to vaše webové stránky přeměňovat na platné HTTPS webové stránky, pokud nebude váš server nakonfigurován pro podporu a použití protokolu HTTPS.", + ], + "Default time zone" => [ + 0 => "Výchozí časové pásmo", + ], + "Select region" => [ + 0 => "Vyber region", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Umožňuje vyhledávat obrázky, alba a uživatele na základě daného vyhledávacího dotazu.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Umožňuje procházet veřejně nahrané obrázky. Také umožňuje procházet veřejné kategorie.", + ], + "guests" => [ + 0 => "hosté", + ], + "Enables explore for guests." => [ + 0 => "Umožňuje procházet veřejně nahrané obrázky i neregistrovaným uživatelům.", + ], + "Enables to browse images randomly." => [ + 0 => "Umožňuje prohlížet obrázky v náhodném pořadí.", + ], + "Likes" => [ + 0 => "Líbí se", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Umožňuje uživatelům \"lajkovat\" obsah a šířit výpisy \"Nejoblíbenějších\".", + ], + "Followers allows users to follow each other." => [ + 0 => "Odběratelé uživatelům umožňují se navzájem sledovat.", + ], + "Website mode" => [ + 0 => "Režim webové stránky", + ], + "Community" => [ + 0 => "Komunita", + ], + "Personal" => [ + 0 => "Osobní", + ], + "You can switch the website mode anytime." => [ + 0 => "Režim webové stránky můžete kdykoliv přepnout.", + ], + "Personal mode target user" => [ + 0 => "Cílový uživatel osobního režimu", + ], + "User ID" => [ + 0 => "Uživatelské ID", + ], + "Your user id is: %s" => [ + 0 => "Vaše uživatelské id je: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Číselné ID cílového uživatele pro osobním režim.", + ], + "Personal mode routing" => [ + 0 => "Routování osobního režimu", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Vlastní cesta pro namapování /uživatelskéjméno na /cokoliv. Použijte \"/\" pro namapování na domovskou stránku.", + ], + "Website privacy mode" => [ + 0 => "Režim soukromí webu", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Soukromý režim způsobí, že stránka bude dostupná pouze registrovaným uživatelům.", + ], + "Content privacy mode" => [ + 0 => "Obsah soukromého módu", + ], + "Default" => [ + 0 => "Výchozí", + ], + "Force private (self)" => [ + 0 => "Vynutit soukromí (jen já)", + ], + "Force private (anyone with the link)" => [ + 0 => "Vynutit soukromí (kdokoliv kdo má link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Vynucení soukromí ovlivní i to co měl uživatel nastaveno.", + ], + "Page title" => [ + 0 => "Název stránky", + ], + "Page status" => [ + 0 => "Stav stránky", + ], + "Active page" => [ + 0 => "Aktivní stránka", + ], + "Inactive page (%s)" => [ + 0 => "Neaktivní stránka (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Pouze aktivní stránky budou přístupné.", + ], + "Type" => [ + 0 => "Typ", + ], + "Terms of service" => [ + 0 => "Podmínky používání služby", + ], + "Privacy" => [ + 0 => "Soukromí", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "Extra page" => [ + 0 => "Zvláštní stránka", + ], + "Internal page type" => [ + 0 => "Typ interní stránky", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Můžete mít několik dalších stránek, ale pouze jeden z dalších speciálních interních typů.", + ], + "Page visibility" => [ + 0 => "Viditelnost stránky", + ], + "Visible page" => [ + 0 => "Viditelná stránka", + ], + "Hidden page" => [ + 0 => "Skrytá stránka", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Skryté stránky se nebudou zobrazovat v systémových nabídkách, ale každý k nim může přistupovat pomocí odkazu.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Pouze alfanumerické znaky, pomlčky a lomítko", + ], + "File path" => [ + 0 => "Cesta k souboru", + ], + "A %f file relative to %s" => [ + 0 => "%f soubor relativní k %s", + ], + "Meta keywords" => [ + 0 => "Meta klíčová slova", + ], + "Meta description" => [ + 0 => "Meta popis", + ], + "Source code" => [ + 0 => "Zdrojový kód", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Nemáte oprávnění k zápisu pro cestu %s. Budete muset přidat tento soubor v externím editoru.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Nemáte oprávnění k zápisu v %s. Budete muset upravit obsah tohoto souboru pomocí externího editoru.", + ], + "Taken from: %s" => [ + 0 => "Převzato z: %s", + ], + "Link URL" => [ + 0 => "URL odkazu", + ], + "Link target attribute" => [ + 0 => "Atribut cíle odkazu", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Zvolte %s pro otevření stránky nebo odkazu v novém okně.", + ], + "Link rel attribute" => [ + 0 => "\"REL\" atribut odkazu", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Pouze alfanumerické znaky, pomlčky a prázné mezery", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s atributy", + ], + "Link icon" => [ + 0 => "Odkaz na ikonu", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Zkontrolujte <a %s>referenční ikonu</a> pro kompletní seznam podporovaných ikon.", + ], + "Sort order display" => [ + 0 => "Pořadí řazení zobrazení", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Pořadí zobrazení stránky pro menu a výpisy. Použijte \"1\" pro nejvyšší prioritu.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Opravdu chcete smazat stránku ID %s? Tato akce nelze vrátit zpátky.", + ], + "Enabled image formats" => [ + 0 => "Povolené formáty obrázků", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Nezaškrtnuté formáty obrázkových souborů nebudou moci být nahrány.", + ], + "Enable uploads" => [ + 0 => "Povolit nahrávání", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Povolte pokud chcete umožnit nahrávání. Toto nastavení nemá vliv na administrátory", + ], + "Upload user interface" => [ + 0 => "Rozhraní uživatelského nahrávání", + ], + "On-page container" => [ + 0 => "On-page kontejner", + ], + "route" => [ + 0 => "trasa", + ], + "Guest uploads" => [ + 0 => "Nahráno hostem", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Povol pokud chceš umožnit neregistrovaným uživatelům nahrávání.", + ], + "Moderate uploads" => [ + 0 => "Moderovat nahrávání", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Povolte tuto funkci pro moderování příchozích nahrávek. Cílový obsah bude ke schválení vyžadovat moderování.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Povolit vkládací odkazy (v nahrávacím nástroji)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Povolte pokud chcete umožnit zobrazování vkládacích odkazů jakmile bude obrázek úspěšné nahraný.", + ], + "Upload threads" => [ + 0 => "Počet vláken pro nahrávání", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Počet vláken použitých při nahrávání (souběžné nahrávání více souborů)", + ], + "Redirect on single upload" => [ + 0 => "Přesměrování na jednotlivé nahrání", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Povolte tuto funkci, pokud chcete přesměrovat na stránku s obrázky při jednotlivém nahrávání.", + ], + "Enable duplicate uploads" => [ + 0 => "Povolit duplicitní nahrávání", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Zapněte tuto funkci, pokud chcete povolit duplicitní nahrávání obrázků ze stejné IP adresy v rámci 24 hodin. Toto nastavení nemá vliv na administrátory.", + ], + "Enable expirable uploads" => [ + 0 => "Povolit časové omezení pro nahrané soubory", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Aktivujte tuto funkci, pokud chcete povolit nahrávání s volbou automatického mazání.", + ], + "Auto delete guest uploads" => [ + 0 => "Automatické mazání návštěvnických uploadů", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Při povolení budou automatické mazány návštěvnické uploady po určitém čase.", + ], + "Maximum image size" => [ + 0 => "Maximální velikost obrázku", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Obrázky větší, než je tato velikost budou automaticky zmenšeny. Zadejte nulu (0) pokud chcete zachovat původní velikost obrázku.", + ], + "Image Exif data" => [ + 0 => "Exif data obrázku", + ], + "Keep" => [ + 0 => "Zachovat", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Zvolit výchozí nastavení pro <a %s>Exif data</a> obrázku při nahrávání.", + ], + "Image Exif data (user setting)" => [ + 0 => "Exif data obrázku (uživ. nastavení)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Povolte, pokud chcete, aby měl každý uživatel možnost nastavit, jak bude nakládáno s EXIF daty obrázku.", + ], + "Maximum upload file size" => [ + 0 => "Maximální velikost nahrávaného souboru", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Maximální velikost povolená serverem je %s. Tato velikost je limitována %u a %p (%f hodnoty).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Stejné jako \"%s\" ale platné pouze pro neregistrované uživatele.", + ], + "Image path" => [ + 0 => "Cesta k obrázku", + ], + "Relative to Chevereto root" => [ + 0 => "Relativně k Chvereto root", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Kde ukládat obrázky? Relativní k chevereto rootu.", + ], + "Storage mode" => [ + 0 => "Režim ukládání", + ], + "Datefolders" => [ + 0 => "Složky podle data", + ], + "Direct" => [ + 0 => "Přímý", + ], + "Datefolders creates %s structure" => [ + 0 => "Složka podle data vytvoří %s strukturu", + ], + "File naming method" => [ + 0 => "Metoda pojmenování souborů", + ], + "Original" => [ + 0 => "Originální", + ], + "Mix original + random" => [ + 0 => "Mix originál + náhodné", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Originál\" se bude snažit zachovat název zdrojového obrázku, zatímco \"náhodné \" bude generovat náhodné jméno. \"ID\" název bude stejný, jako ID obrázku.", + ], + "Thumb size" => [ + 0 => "Velikost miniatury", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "MIniatury budou nastaveny na tuto velikost", + ], + "Medium image fixed dimension" => [ + 0 => "Střední velikost obrázku - pevný rozměr", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Střední velikost obrázku bude mít tyto rozměry. Například, pokud zvolíte \"šířku\", tento rozměr bude opraven a výška obrázku bude automaticky vypočítána.", + ], + "Medium image fixed size" => [ + 0 => "Střední velikost obrázku - pevná velikost", + ], + "Width or height will be automatically calculated." => [ + 0 => "Šířka nebo výška bude automaticky vypočítána.", + ], + "Watermarks" => [ + 0 => "Vodoznaky", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Aktivuj pokud chceš vložit logo nebo cokoliv jiného do nahrávaných obrázků.", + ], + "Watermark user toggles" => [ + 0 => "Přepínač vodoznaku uživatele", + ], + "Enable watermark on guest uploads" => [ + 0 => "Povolit vodoznak pro soubory nahrané hostem", + ], + "Enable watermark on user uploads" => [ + 0 => "Povolit vodoznak pro soubory nahrané uživatelem", + ], + "Enable watermark on admin uploads" => [ + 0 => "Povolit vodoznak pro soubory nahrané administrátorem", + ], + "Watermark file toggles" => [ + 0 => "Přepínač vodoznaku souboru", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Povolit vodoznak při nahrávání GIF obrázků", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Minimální potřebná velikost obrázku pro vložení vodoznaku", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Do obrázků menších, než je tato hodnota nebude možno vložit vodoznak. Pokud zadáte nulu (0) , nebude stanoven žádný minimální limit velikosti obrázku.", + ], + "Watermark image" => [ + 0 => "Soubor s vodoznakem", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Nejlepší výsledky dosáhnete s hladkými logy s vrženým stínem. Můžete použít i velký obrázek ale pouze v případě, že velikost souboru není příliž velká (doporučená velikost je max.16 kb ). Soubor musí být ve formátu png.", + ], + "Watermark position" => [ + 0 => "Pozice vodoznaku", + ], + "left top" => [ + 0 => "vpravo nahoře", + ], + "left center" => [ + 0 => "vlevo uprostřed", + ], + "left bottom" => [ + 0 => "vlevo dole", + ], + "center top" => [ + 0 => "uprostřed nahoře", + ], + "center center" => [ + 0 => "uprostřed", + ], + "center bottom" => [ + 0 => "uprostřed dole", + ], + "right top" => [ + 0 => "vpravo nahoře", + ], + "right center" => [ + 0 => "vpravo uprostřed", + ], + "right bottom" => [ + 0 => "vpravo dole", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Relativní pozice vodoznaku. První hodnota je horizontální, druhá vertikální", + ], + "Watermark percentage" => [ + 0 => "Procentuální velikost vodoznaku", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Procentuální velikost vodoznaku v poměru k ploše cílového obrázku. Hodnoty od 1 do 100.", + ], + "Watermark margin" => [ + 0 => "Odsazení vodoznaku.", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Odsazení od okraje obrázku po vodoznak.", + ], + "Watermark opacity" => [ + 0 => "Průhlednost vodoznaku.", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Průhlednost vodoznaku vzhledem k obrázku. Hodnoty od 0 do 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Administrace > Nastavení > Webová stránka", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Kategorie nebudou fungovat, pokud je tato funkce průzkumníka vypnuta. Pro změnu tohoto nastavení běžte do %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Opravdu chcete odstranit tuto %s kategorii? (Tuto akci nelze vrátit zpět)", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Upozornění: Odstranění kategorie nezpůsobí odstranění obrázků do ní zařazených.", + ], + "Edit category" => [ + 0 => "Uprav kategorii", + ], + "Expires" => [ + 0 => "Vyprší", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Opravdu chcete odstranit zákaz pro tuto IP %s? Tato akce nelze vrátit zpět.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Zakázaným IP adresám bude znemožněn přístup na celý tento web.", + ], + "Edit IP ban" => [ + 0 => "Upravit IP zákaz", + ], + "Enable signups" => [ + 0 => "Povolit registrace", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Povolte, pokud chcete povolit uživatelům registraci.", + ], + "Enable user content delete" => [ + 0 => "Povolit smazání obsahu uživatele", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Zapněte tuto funkci, pokud chcete uživatelům povolit smazat vlastní obsah. Toto nastavení nemá vliv na správce.", + ], + "Minimum age required" => [ + 0 => "Požadavek na minimální věk", + ], + "Empty" => [ + 0 => "Prázdné", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Zanechte pole prázdné, pokud nevyžadujete minimální věk uživatele pro používání této webové stránky.", + ], + "Notify on user signup" => [ + 0 => "Upozornit na registraci uživatele", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Povolte to, pokud chcete dostat e-mailové upozornění pro každou novou registraci uživatele.", + ], + "Username routing" => [ + 0 => "Routování uživatelského jména", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Povolte pokud chcete používat URL ve formátu %s/uzivatelskejmeno namísto %s/uzivatel/username.", + ], + "Require email confirmation" => [ + 0 => "Je vyžadováno potvrzení e-mailu", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Povolte pokud uživatelé musí potvrdit svou e-mailovou schránku během registrace.", + ], + "Require email for social signup" => [ + 0 => "K přihlášení přes sociální síť je vyžadován e-mail.", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Povolte pokud uživatelé, využívající k registraci sociální sítě, budou muset také poskytnou svou e-mailovou adresu.", + ], + "User avatar max. filesize" => [ + 0 => "Max. velikost souboru avatara", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Max. povolená velikost souboru obrázku avatara. (Max. velikost povolená serverem je %s)", + ], + "User background max. filesize" => [ + 0 => "Max. velikost souboru uživatelského pozadí", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Max. povolená velikost souboru obrázku pozadí. (Max. velikost povolená serverem je %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Zobrazuje schvalovací obrazovku před přístupem na tyto webové stránky. Toto je užitečné pro webové stránky s obsahem pro dospělé, který by neměl být přístupný nezletilím.", + ], + "Enable consent screen" => [ + 0 => "Zapnout schvalovací obrazovku", + ], + "Consent screen cover image" => [ + 0 => "Obrázek schvalovací obrazovky", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Zablokovat nahrávání obrázku pro zvolenou IP adresu a obrana proti záplavě na základě maximálního počtu nahraných souborů za časový úsek. Toto nastavení neovlivňuje administrátory.", + ], + "Notify to email" => [ + 0 => "Upozornit na e-mail", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Pokud je zapnuté, pak vás systém o pokusu o záplavu varuje e-mailem.", + ], + "Minute limit" => [ + 0 => "Minutový limit", + ], + "Hourly limit" => [ + 0 => "Hodinový limit", + ], + "Daily limit" => [ + 0 => "Denní limit", + ], + "Weekly limit" => [ + 0 => "Týdenní limit", + ], + "Monthly limit" => [ + 0 => "Měsíční limit", + ], + "Lock %s editing" => [ + 0 => "Zamknout úpravy %s", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "Povolte tuto funkci, aby uživatelé nemohli změnit příznak NSFW. Pokud je funkce povolena, toto oprávnění budou mít pouze administrátoři a správci.", + ], + "Show not safe content in listings" => [ + 0 => "V galerii vypisovat i nevhodný obsah", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Povolte tuto možnost, pokud chcete zobrazit obsah, který není bezpečný v seznamech. Toto nastavení neovlivní správci a lze přepsat vlastním nastavením uživatele.", + ], + "Blur NSFW content in listings" => [ + 0 => "Rozostření NSFW obsahu v seznamech", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Povolte tuto možnost, pokud chcete použít efekt rozostření NSFW obrázků v seznamech.", + ], + "Show banners in not safe content" => [ + 0 => "Zobrazit bannery v nevhodném obsahu", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Nastavte pokud chcete zobrazovat bannery i mezi nevhodným obsahem.", + ], + "Show not safe content in random mode" => [ + 0 => "Zobraz nevhodný obsah v náhodném pořadí", + ], + "List items per page" => [ + 0 => "Počet obrázků na stránku", + ], + "How many items should be displayed per page listing." => [ + 0 => "Kolik položek může být zobrazeno na jedné stránce výpisu", + ], + "List pagination mode" => [ + 0 => "Listovací stránkování", + ], + "Endless scrolling" => [ + 0 => "Nekonečné skrolování", + ], + "Classic pagination" => [ + 0 => "Klasické stránkování", + ], + "What pagination method should be used." => [ + 0 => "Jaká metoda stránkování má být použita?", + ], + "Listing viewer" => [ + 0 => "Prohlížeč seznamu obrázků", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Povolte to, chcete-li kliknutím na obrázek otevřít prohlížeč seznamu obrázků.", + ], + "Image listing size" => [ + 0 => "Velikost náhledu", + ], + "Fluid" => [ + 0 => "Plynulý", + ], + "Fixed" => [ + 0 => "Pevný", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Obě metody používají pevnou šířku, ale plynulá využívá proměnnou výšku.", + ], + "Album listing images requirement" => [ + 0 => "Požadavek na seznam obrázků v albu", + ], + "explore" => [ + 0 => "průzkumník", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Nastavte minimální počet obrázků potřebných pro zobrazení alb v průzkumníkovi.", + ], + "Listing columns number" => [ + 0 => "Počet sloupců výpisu", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Zde můžete nastavit, kolik sloupců se použije na základě každého cílového zařízení.", + ], + "Phone" => [ + 0 => "Telefon", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Notebook", + ], + "Desktop" => [ + 0 => "Počítač", + ], + "Put your themes in the %s folder" => [ + 0 => "Vlož svoje téma (šablonu) do složky %s", + ], + "Tone" => [ + 0 => "Tón", + ], + "Light" => [ + 0 => "Světlý", + ], + "Dark" => [ + 0 => "Tmavý", + ], + "Main color" => [ + 0 => "Hlavní barva", + ], + "Hexadecimal color value" => [ + 0 => "Hexadecimální hodnota barvy", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Použijte pro nastavení barvy hlavní šablony. Hodnota musí být v <a href=\"%s\" target=\"_blank\">hex formátu</a>.", + ], + "Top bar button color" => [ + 0 => "Barva tlačítka horního baru", + ], + "Blue" => [ + 0 => "Modrá", + ], + "Green" => [ + 0 => "Zelená", + ], + "Orange" => [ + 0 => "Oranžová", + ], + "Red" => [ + 0 => "Červená", + ], + "Grey" => [ + 0 => "Šedá", + ], + "Black" => [ + 0 => "Černá", + ], + "White" => [ + 0 => "Bílá", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Barva tlačítek na horní liště, např. jako je tlačítko \"Vytvořit účet\".", + ], + "Enable vector logo" => [ + 0 => "Zapnout vektorové logo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Zapnout vektorové logo pro vysokou kvalitu na HD displejích.", + ], + "Vector logo image" => [ + 0 => "Soubor s vektorovým logem", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Vektorová verze loga vaší webové stránky ve formátu SVG.", + ], + "Raster logo image" => [ + 0 => "Soubor s rastrovým logem.", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Rastrová verze loga vaší webové stránky, nejlépe ve formátu PNG.", + ], + "Logo height" => [ + 0 => "Výška loga.", + ], + "No value" => [ + 0 => "Žádná hodnota", + ], + "Use this to set the logo height if needed." => [ + 0 => "Toto použijte pro natavení výšky loga pokud je to potřeba.", + ], + "Favicon image" => [ + 0 => "Favicon (ikonka webu)", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon musí mít stejnou šířku a výšku.", + ], + "Image load max. filesize" => [ + 0 => "Max. velikost obrázku", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "U obrázků větších, než je tento rozměr, se zobrazí tlačítko pro načtení obrázku v plném rozlišení", + ], + "Enable download button" => [ + 0 => "Aktivovat tlačítko Stáhnout", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Povolte, pokud chcete uživatelům nechat zobrazovat tlačítko \"Stáhnout\".", + ], + "Enable right click on image" => [ + 0 => "Povolit pravý klik myši na obrázku", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Aktivujte tuto možnost, pokud chcete povolit kliknutí pravým tlačítkem myši na stránce prohlížeče obrázků.", + ], + "Enable show Exif data" => [ + 0 => "Povolit zobrazení EXIF dat", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Povolte tuto možnost, pokud chcete zobrazovat EXIF data obrázku.", + ], + "Enable social share" => [ + 0 => "Povolit sdílení přes sociální sítě.", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Zapněte pokud chcete povolit zobrazování tlačítek sociálních sítí u obsahu (sdílení, lajkování...)", + ], + "Enable embed codes (content)" => [ + 0 => "Povolit vkládací odkazy (obsah)", + ], + "Everybody" => [ + 0 => "Všichni", + ], + "Users only" => [ + 0 => "Pouze uživatelé", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Povolte pokud chcete v obsahu zobrazovat vkládací obsahy.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Zaškrtávací políčko s volbou nevhodného obsahu v nahrávacím rozhraní", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Zapněte pokud chcete uživatelům dovolit nastavování nevhodného obsahu.", + ], + "Custom CSS code" => [ + 0 => "Vlastní CSS kód", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Vložte váš vlastní CSS kód zde. Bude umístěný jako <style> těsně před koncem hlavičky (</head>) html kódu.", + ], + "Custom JS code" => [ + 0 => "Vlastní JS kód", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Vložte váš vlastní JS kód zde. Bude umístěný jako <script> těsně před koncem hlavičky (</head>) html kódu.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Zde nepoužívejte značku %s. Toto je pro jednoduchý kód JS, ne pro značky skriptů HTML. Používáte-li zde značky skriptů, narušíte své webové stránky.", + ], + "Style" => [ + 0 => "Styl", + ], + "Landing page" => [ + 0 => "Vstupní stránka", + ], + "Split landing + images" => [ + 0 => "Split landing + obrázky", + ], + "Route %s" => [ + 0 => "Trasa %s", + ], + "upload" => [ + 0 => "nahrát", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Vyberte styl domovské obrazovky. Pro přispůsobení stylu jej upravte v app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Titulní obrázek", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Opravdu chcete obrázek vymazat? Tuto akci nelze vzít zpět.", + ], + "Delete image" => [ + 0 => "Smazat obrázek", + ], + "Add new cover image" => [ + 0 => "Přidat nový titulní obrázek", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Toto bude přidáno dovnitř %s tagu domovské stránky. Ponechte pole prázdné pro použití výchozího obsahu.", + ], + "Paragraph" => [ + 0 => "Odstavec", + ], + "Call to action button color" => [ + 0 => "Barva tlačítka \"Call to action\"", + ], + "Color of the homepage call to action button." => [ + 0 => "Barva tlačítka s výzvou k akci na domovské stránce.", + ], + "Call to action outline style button" => [ + 0 => "okraje tlačítek", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Zapněte, pokud chcete aktivovat rámeček kolem tlačítka akce na titulce", + ], + "Call to action functionality" => [ + 0 => "Funkce tlačítka Call to action", + ], + "Trigger uploader" => [ + 0 => "Spouštění nahrávání", + ], + "Open URL" => [ + 0 => "Otevřít URL adresu", + ], + "Call to action URL" => [ + 0 => "Výzva k akci URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Zadat absolutní nebo relativní URL", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Relativní URL jako %r bude namapována na %l", + ], + "Call to action HTML" => [ + 0 => "Výzva k akci HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Toto bude přidáno uvnitř výzvy k akci <a> tagu. Zanechte prázdné pro použití výchozího obsahu.", + ], + "User IDs" => [ + 0 => "ID uživatele(ů)", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Seznam ID cílových uživatelů oddělených čárkami pro zobrazení jejich obrázků na domovské stránce. Chcete-li zobrazit všechny poslední obrázky, ponechte pole prázdné nebo zadejte nulu.", + ], + "Automatic updates check" => [ + 0 => "Automatická kontrola aktualizací", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Když je tato volba povolena, umožňuje systému automaticky kontrolovat nové aktualizace.", + ], + "Display available updates notification" => [ + 0 => "Zobrazení oznámení o dostupné aktualizaci Chevereta", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Povolte, pokud chcete zobrazit oznámení při dostupné aktualizaci Chevereta.", + ], + "Dump update query" => [ + 0 => "Dotaz na aktualizaci výpisu", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Aktivujte tuto možnost, pokud chcete automaticky zjistit a nastavit správný jazyk pro každého uživatele.", + ], + "SEO %s URLs" => [ + 0 => "SEO URL adresy pro %s", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Povolte tuto možnost, pokud chcete používat SEO URL adresy pro %s.", + ], + "Maintenance" => [ + 0 => "Mód údržby", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Při aktivaci se na webové stránce se zobrazí hlášení o údržbě. Toto nastavení nemá vliv na administrátory.", + ], + "Crypt salt" => [ + 0 => "Kryptografická sůl", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Toto je \"salt\" (kryptografická sůl) používaný k převodu číselného ID na alfanumerický. Byl vygenerován během instalace.", + ], + "PHP error reporting" => [ + 0 => "Hlášení chyb PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Povolte, pokud chcete tisknout chyby generované PHP <a %s>error_reporting()</a>. Toto by mělo být ve výchozím nastavení vypnuto.", + ], + "Debug level" => [ + 0 => "Úroveň ladění", + ], + "None" => [ + 0 => "Není", + ], + "Error log" => [ + 0 => "Protokol chyb", + ], + "Print errors without error log" => [ + 0 => "Vytisknout chyby bez protokolu chyb", + ], + "Print and log errors" => [ + 0 => "Vytisknout a protokolovat chyby", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Pro nastavení úrovně ladění si prohlédněte <a %s>debug documentation</a>. Výchozí hodnota je \"Error log\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." => [ + 0 => "Směrování umožňuje přizpůsobit výchozí vazby trasy za běhu. Povoleny jsou pouze alfanumerické znaky, spojovníky a znak podtržítka.", + ], + "Image routing" => [ + 0 => "Směrování obrázku", + ], + "Routing for %s" => [ + 0 => "Směrování pro %s", + ], + "Album routing" => [ + 0 => "Směrování alba", + ], + "Hostname" => [ + 0 => "Název hostitele", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Název hostitele, ke kterému budou přidány zástupné znaky subdomény.", + ], + "This setting may be overridden by %s." => [ + 0 => "Toto nastavení může být přepsáno pomocí %s.", + ], + "Language subdomains" => [ + 0 => "Jazykové subdomény", + ], + "languages" => [ + 0 => "jazyky", + ], + "Enable to use %s for %t." => [ + 0 => "Povolit použití %s pro %t.", + ], + "Username subdomains" => [ + 0 => "Subdomény uživatelského jména", + ], + "user profiles" => [ + 0 => "uživatelských profilů", + ], + "Custom language strings" => [ + 0 => "Vlastní jazykové řetězce", + ], + "Default language" => [ + 0 => "Výchozí jazyk", + ], + "Default base language to use." => [ + 0 => "Výchozí jazyk pro použití", + ], + "Auto language" => [ + 0 => "Jazyk automaticky", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Povolte, pokud chcete, aby se automaticky detekovat a nastavil správný jazyk pro každého uživatele.", + ], + "Language chooser" => [ + 0 => "Výběr jazyka", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Povolte tuto možnost, pokud chcete povolit výběr jazyka.", + ], + "Enabled languages" => [ + 0 => "Povolené jazyky", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Nezaškrtnuté jazyky nebudou použity na vašich webových stránkách.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Přepněte pro zapnutí HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Přepněte pro povolení nebo zakázání tohoto úložiště.", + ], + "Quota" => [ + 0 => "Kvóta", + ], + "Active" => [ + 0 => "Aktivní", + ], + "Storage method" => [ + 0 => "Metoda ukládání", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Ve výchozím stavu je nataveno místní ukládání. Používá se i pokud není aktivní žádné externí uložiště.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Pokud potřebujete pomoc, zkontrolujte <a %s>dokumentaci úložiště</a>.", + ], + "Edit storage" => [ + 0 => "Upravit úložiště.", + ], + "From name" => [ + 0 => "Od jména", + ], + "Sender name for emails sent to users." => [ + 0 => "Jméno odesílatele uvedeného v e-mailech odeslaných uživatelům.", + ], + "From email address" => [ + 0 => "Z e-mailové adresy", + ], + "Sender email for emails sent to users." => [ + 0 => "E-mail odesílatele uvedený v e-mailech odeslaných uživatelům.", + ], + "Incoming email address" => [ + 0 => "Příchozí e-mailová adresa", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Příjemce pro kontaktování v případě systémových varování.", + ], + "Email mode" => [ + 0 => "Režim e-mailu.", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Způsob odesílání e-mailů. Doporučena metoda SMTP.", + ], + "SMTP server and port" => [ + 0 => "SMTP server a port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "Uživatelské jméno na SMTP server", + ], + "SMTP password" => [ + 0 => "Heslo na SMTP server", + ], + "SMTP security" => [ + 0 => "SMTP zabezpečení", + ], + "Unsecured" => [ + 0 => "Nezabezpečeno", + ], + "Decode ID" => [ + 0 => "ID dekódování", + ], + "Encode ID" => [ + 0 => "ID kódování", + ], + "Send test email" => [ + 0 => "Odeslat testovací email", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Pomocí této funkce lze otestovat, jak jsou vaše e-maily doručovány. Doporučujeme použít %s.", + ], + "Export a user" => [ + 0 => "Exportujte uživatele", + ], + "Export user" => [ + 0 => "Exportovat uživatele", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "To vám umožní stahovat standardní osobní údaje uživatele ve formátu JSON.", + ], + "Regenerate external storage stats" => [ + 0 => "Regenerovat statistiky externího úložiště", + ], + "Storage id" => [ + 0 => "ID úložiště", + ], + "Regenerate" => [ + 0 => "Regenerovat", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Tím se přepočítá součet všech záznamů obrázků přidružených k cílovému externímu úložišti.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Migrujte záznamy obrázků z jednoho externího úložiště do jiného", + ], + "Source storage id" => [ + 0 => "ID zdrojového úložiště", + ], + "Target storage id" => [ + 0 => "ID cílového úložiště", + ], + "Migrate" => [ + 0 => "Migrovat", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Toto pouze aktualizuje databázi. Musíte přenést skutečné soubory do cílového úložného kontejneru. Přepis URL je důrazně doporučen. Použijte nulu (0) pro místní úložiště.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Potřebujete <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook aplikaci</a>.", + ], + "Facebook app id" => [ + 0 => "ID Facebook aplikace", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Potřebujete <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> pro toto.", + ], + "Twitter API key" => [ + 0 => "Twitter API klíč", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter účet", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Potřebujete <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> pro toto.", + ], + "Google client id" => [ + 0 => "Google client (klientské) id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Potřebujete <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> pro toto.", + ], + "VK client id" => [ + 0 => "VK client id", + ], + "VK client secret" => [ + 0 => "VK client secret", + ], + "%s spam protection" => [ + 0 => "Ochrana proti spamu %s", + ], + "user generated content" => [ + 0 => "uživatelem vytvořený obsah", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Povolte tuto možnost, chcete-li pomocí %s blokovat spam na %c.", + ], + "%s API key" => [ + 0 => "API klíč %s", + ], + "user signup" => [ + 0 => "registrace uživatele", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Potřebujete <a href=\"%s\" target=\"_blank\">reCAPTCHA klíč</a>.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Vezměte prosím na vědomí, že každá verze reCAPTCHA vyžaduje vlastní sadu klíčů. Nezapomeňte aktualizovat klíče, pokud měníte verze.", + ], + "%s site key" => [ + 0 => "%s kód stránky", + ], + "%s secret key" => [ + 0 => "%s tajný kód", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold (práh)", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Kolik neúspěšných pokusů je zapotřebí k vyžadování reCAPTCHA? Zadejte nula (0), aby se reCAPTCHA zobrazovala vždy.", + ], + "Force %s on contact page" => [ + 0 => "Vynutit %s na kontaktní stránce", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Aktivací této funkce se bude %s vždy zobrazovat na kontaktní stránce.", + ], + "Comments API" => [ + 0 => "API komentářů", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API pracuje s %s.", + ], + "Disqus shortname" => [ + 0 => "Vaše krátké jméno na Disqus", + ], + "%s public key" => [ + 0 => "%s veřejný kód", + ], + "Comment code" => [ + 0 => "Kód komentáře", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook nebo cokoliv jiného. Bude použito v zobrazení obrázku.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "Automaticky moderujte obsah pomocí služby %s.", + ], + "Automatic approve" => [ + 0 => "Automatické schválení", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Povolte tuto funkci pro automatické schválení obsahu moderovaného touto službou.", + ], + "Block content" => [ + 0 => "Blokovat obsah", + ], + "Adult" => [ + 0 => "Dospělí", + ], + "Teen and adult" => [ + 0 => "Dospívající i dospělí", + ], + "Flag NSFW" => [ + 0 => "Příznak NSFW", + ], + "Analytics code" => [ + 0 => "Kód analytics.", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics nebo cokoliv jiného. Bude přidáno do patičky.", + ], + "API v1 key" => [ + 0 => "API v1 klíč", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Použít tento klíč při použití <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Směrování Pluginu", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Toto aktivujte, aby jste zobrazili instrukce pluginu na %u. Odkaz na tyto pokyny bude přidán do nabídky %s.Toto nastavení nemá vliv na administrátory.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Toto použijte pro nastavení vlastní URL adresy pro %p. Upozorňujeme, že musíte v této URL adrese ručně zkopírovat %s.", + ], + "Cookie law compliance" => [ + 0 => "Vyžádání EU cookie politiky", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Povolením této možnosti se zobrazí zpráva, která splňuje požadavky kladené na cookie právních předpisů EU. Poznámka: Toto nastavení budete potřebovat pouze, pokud jsou vaše webové stránky umístěny v EU, a pokud přidáte tracking cookies.", + ], + "Save changes" => [ + 0 => "Uložit změny", + ], + "Check the errors to proceed." => [ + 0 => "Před pokračováním zkontrolujte chyby", + ], + "Play GIF" => [ + 0 => "Přehrát GIF", + ], + "Load 360° view" => [ + 0 => "Načíst 360° pohled", + ], + "Load full resolution" => [ + 0 => "Načíst v plném rozlišení", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "Opravdu chcete odstranit veškerý vybraný obsah? Toto nelze vrátit zpět.", + ], + "This is the album cover" => [ + 0 => "Toto je obal alba", + ], + "Cover" => [ + 0 => "Obal", + ], + "Added to %a and categorized in %c" => [ + 0 => "Přidáno do alba %a a zařazeno do kategorie %c", + ], + "Added to %s" => [ + 0 => "Přidáno do alba %s", + ], + "Uploaded to %s" => [ + 0 => "Nahráno do alba %s", + ], + "Uploaded %s" => [ + 0 => "Nahráno %s", + ], + "Less Exif data" => [ + 0 => "Méně EXIF dat", + ], + "More Exif data" => [ + 0 => "Více EXIF dat", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "Upload and share your images." => [ + 0 => "Nahrajte a sdílejte obrázky.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Chyťte a přetáhněte obrázky kamkoli budete chtít a začněte ihned nahrávat. Maximální velikost souboru je %s. \nZískáte přímé odkazy, BB-kód, HTML náhledy a vaše obrázky můžete snadno sdílet na mnoha sociálních sítích.", + ], + "Start uploading" => [ + 0 => "Začít nahrávat", + ], + "Sign up to unlock all the features" => [ + 0 => "Zaregistrujte se pro zpřístupnění všech funkcí", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Spravujte váš obsah, vytvářejte soukromá alba, nastavujte váš profil a spoustu dalšího.", + ], + "Sign in with your account" => [ + 0 => "Přihlaste se pomocí svého účtu", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Nemáte účet? <a href='%s'>Registrujte se</a>.", + ], + "Logged out" => [ + 0 => "Odhlášeno", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Odhlášení z webu %s proběhlo úspěšně. Brzy na shledanou.", + ], + "Go to homepage" => [ + 0 => "Jít na úvodní stránku", + ], + "Website under maintenance" => [ + 0 => "Na webové stránce probíhá údržba", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Snažíme se co nejdříve dokončit plánované úkoly údržby na naší webové stránce. Vraťte se prosím za pár minut.", + ], + "This content is password protected." => [ + 0 => "Tento obsah je chráněn heslem.", + ], + "Please enter your password to continue." => [ + 0 => "Pro pokračování zadejte prosím vaše heslo.", + ], + "Send" => [ + 0 => "Odeslat", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Přidejte funkci nahrávání obrázků na své webové stránky, blog nebo fórum nainstalováním pluginu pro nahrávání. Tato funkce poskytuje možnost nahrávání obrázků z libovolné webové stránky tím, že zde umístí tlačítko, které umožní vašim uživatelům přímo odesílat obrázky do naší služby a automaticky zpracuje a vytvoří kódy potřebné pro vkládání. Všechny funkce zahrnují například funkci přetáhni a pusť, vzdálené nahrávání, změnu velikosti obrázků a další.", + ], + "Supported software" => [ + 0 => "Podporovaný software", + ], + "supported software" => [ + 0 => "podporovaný software", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Plugin funguje na libovolné webové stránce s uživatelsky upravitelným obsahem a pro %sv, umístí tlačítko pro nahrání, které bude odpovídat panelu nástrojů pro cílový editor, takže není potřeba další přizpůsobení.", + ], + "Add it to your website" => [ + 0 => "Přidejte je na své webové stránky", + ], + "options" => [ + 0 => "možnosti", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Zkopírujte a vložte kód pluginu do kódu HTML vašich stránek (nejlépe v sekci hlavičky webu). Existuje spousta %o, aby to lépe vyhovovalo vašim potřebám.", + ], + "Basic options" => [ + 0 => "Základní možnosti", + ], + "Color palette" => [ + 0 => "Paleta barev", + ], + "Button color scheme" => [ + 0 => "Barevné schéma tlačítka", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Kódy pro sdílení, které budou automaticky vloženy do pole editoru", + ], + "Sibling selector" => [ + 0 => "Sibling selektor", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Sibling selektor vedle kterého se má umístit tlačítko", + ], + "Sibling position" => [ + 0 => "Pozice Siblingu", + ], + "After" => [ + 0 => "Po", + ], + "Before" => [ + 0 => "Před", + ], + "Position relative to sibling element" => [ + 0 => "Relativní pozice vedle Siblingu", + ], + "Advanced options" => [ + 0 => "Pokročilé možnosti", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Plugin má velkou sadu dalších možností, které umožňují úplné přizpůsobení. Můžete použít vlastní HTML, CSS, vlastní paletu barev, nastavit pozorovatele a další. Zkontrolujte %d a zdroj pluginu, abyste získali lepší představu o těchto pokročilých možnostech.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Nemáte oprávnění k prohlížení této stránky nebo odkaz ze kterého jste se zde dostali již expiroval.", + ], + "Search results" => [ + 0 => "Výsledky vyhledávání", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Opravdu chcete odstranit tohoto uživatele? Tuto akci nelze vzít zpět.", + ], + "Delete user" => [ + 0 => "Odstranit uživatele", + ], + "Register date" => [ + 0 => "Datum registrace", + ], + "Registration IP" => [ + 0 => "IP při registraci", + ], + "Valid" => [ + 0 => "Platný", + ], + "Banned" => [ + 0 => "Zabanovaný", + ], + "Awaiting email" => [ + 0 => "Čeká se na e-mail", + ], + "Awaiting confirmation" => [ + 0 => "Čeká se na potvrzení", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i do %f znaků<br>Písmena, čísla a \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Automaticky smazat nahrané obrázky", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Toto nastavení se bude vztahovat na všechny vaše nahrávané obrázky jako výchozí nastavení. Můžete přepsat toto nastavení při každém nahrávání.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Zachovat <a %s>Exif data</a> obrázku po nahrání", + ], + "Newsletter" => [ + 0 => "Informační Bulletin", + ], + "Send me emails with news about %s" => [ + 0 => "Zasílat mi e-maily o novinkách z %s", + ], + "Content settings" => [ + 0 => "Nastavení obsahu", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Zobrazit závadný obsah v seznamech (od ostatních)", + ], + "Language" => [ + 0 => "Jazyk", + ], + "Timezone" => [ + 0 => "Časová zóna", + ], + "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." => [ + 0 => "Tuto službu poskytuje %website_name%, jsme nezávislým poskytovatelem služeb. Mnohokrát děkujeme za vaši trvalou podporu.", + ], + "At %website_name% we are proudly using and supporting %software%." => [ + 0 => "Jsme hrdí, že na naší webové stránce %website_name% používáme a podporujeme %software%.", + ], + "Current password" => [ + 0 => "Současné heslo", + ], + "Enter your current password" => [ + 0 => "Vložte své současné heslo", + ], + "New password" => [ + 0 => "Nové heslo", + ], + "Confirm new password" => [ + 0 => "Potvrdit nové heslo", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "K tomu aby jste byli schopni se přihlásit uživatelským jménem nebo e-mailem je zapotřebí přidat heslo.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Tento uživatel nemá uložené žádné heslo. Heslo přidejte tímto formulářem.", + ], + "Enter your password" => [ + 0 => "Vložte vaše heslo", + ], + "Confirm password" => [ + 0 => "Potvrďte heslo", + ], + "Re-enter your password" => [ + 0 => "Napište heslo znovu", + ], + "Upload avatar" => [ + 0 => "Nahrát avatar", + ], + "Make my profile and identity totally private" => [ + 0 => "Zachovat můj profil a identitu zcela soukromou", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Povolte, pokud chcete působit jako anonymní uživatel", + ], + "This is your real name, not your username." => [ + 0 => "Toto je vaše opravdové jméno, ne uživatelské.", + ], + "http://yourwebsite.com" => [ + 0 => "http://vašewebovástránka.cz", + ], + "Bio" => [ + 0 => "Životopis", + ], + "Tell us a little bit about you" => [ + 0 => "Řekněte nám něco o vás...", + ], + "User has no connections." => [ + 0 => "Uživatel nemá žádné propojení.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Propojte svůj účet s externími službami, abyste se mohli přihlásit a sdílet obsah.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Opravdu se chcete odpojit %s od tohoto účtu?", + ], + "This account is connected to %s" => [ + 0 => "Tento účet je propojen s %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Opravdu chcete odpojit váš %s účet?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Budete odhlášen(a) a již se nebudete moci přihlásit ke svému účtu prostřednictvím tohoto %s účtu.", + ], + "Your account is connected to %s" => [ + 0 => "Váš účet je propojen s %s", + ], + "disconnect" => [ + 0 => "odpojit", + ], + "Connect %s" => [ + 0 => "Propojit %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Neváhejte a prohlédněte si všechny mé sdílené obrázky a alba.", + ], + "Button" => [ + 0 => "Tlačítko", + ], + "View all my images" => [ + 0 => "Zobrazit všechny mé obrázky", + ], + "Login" => [ + 0 => "Přihlásit se", + ], + "Already have an account? %s now." => [ + 0 => "Máte již účet? %s nyní.", + ], + "resend account activation" => [ + 0 => "znovu poslat aktivaci účtu", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Pokud jste se již zaregistrovali, možná budete muset požádat %s o aktivaci Vašeho účtu.", + ], + "You can also %s." => [ + 0 => "Můžete také %s.", + ], + "I'm at least %s years old" => [ + 0 => "Je mi minimálně %s let.", + ], + "terms" => [ + 0 => "Podmínky", + ], + "privacy policy" => [ + 0 => "Zásady ochrany osobních údajů", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Souhlasím s %terms_link a %privacy_link", + ], + "Upload profile background" => [ + 0 => "Nahrát pozadí profilu", + ], + "Change background" => [ + 0 => "Změnit pozadí", + ], + "Upload new image" => [ + 0 => "Nahrát nový soubor", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Profilový obrázek pozadí bude odstraněn. Tuto akci nelze vrátit. Opravdu si přejete pokračovat?", + ], + "Delete background" => [ + 0 => "Odstranit pozadí", + ], + "Follower" => [ + 0 => "Sledující", + 1 => "Sledujících", + 2 => "Sledujících", + 3 => "Sledující", + ], + "Follow" => [ + 0 => "Sledovat", + ], + "You have been forbidden to use this website." => [ + 0 => "Máte zakázáno používat tuto webovou stránku.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "Page %s" => [ + 0 => "Stránka %s", + ], + "General questions/comments" => [ + 0 => "Obecné dotazy a komentáře", + ], + "DMCA complaint" => [ + 0 => "Nahlásit porušení autorského zákona", + ], + "Invalid message" => [ + 0 => "Neplatná zpráva", + ], + "Invalid subject" => [ + 0 => "Neplatný předmět", + ], + "Mail error" => [ + 0 => "Chyba e-mailu.", + ], + "Message sent" => [ + 0 => "Zpráva byla odeslána", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Zpráva byla odeslána. Budeme Vás brzy kontaktovat.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Chcete-li poslat zprávu, vyplňte níže uvedený formulář.", + ], + "Your name" => [ + 0 => "Vaše jméno", + ], + "Subject" => [ + 0 => "Předmět zprávy", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Všechny změny, které jste provedl(a), budou ztraceny", + ], + "Changes saved successfully." => [ + 0 => "Změny byly úspěšně uloženy.", + ], + "Go back to form" => [ + 0 => "Vrátit se zpět na formulář", + ], + "continue anyway" => [ + 0 => "přesto pokračovat", + ], + "Saving" => [ + 0 => "Ukládání", + ], + "Sending" => [ + 0 => "Odesílání", + ], + "Confirm action" => [ + 0 => "Potvrdit akci", + ], + "information" => [ + 0 => "informace", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/da.po.cache.php b/app/.cache/languages/da.po.cache.php new file mode 100644 index 0000000..78c4717 --- /dev/null +++ b/app/.cache/languages/da.po.cache.php @@ -0,0 +1,2094 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-04-16 20:33+0000', + 'PO-Revision-Date' => '2020-04-16 20:33+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'da', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Ugyldig email", + ], + "Invalid username" => [ + 0 => "Ugyldigt brugernavn", + ], + "Invalid password" => [ + 0 => "Ugyldigt kodeord", + ], + "Invalid website mode" => [ + 0 => "Ugyldigt website mode", + ], + "From email address" => [ + 0 => "Fra email", + ], + "Sender email for emails sent to users." => [ + 0 => "Sender email for emails til brugerne", + ], + "Incoming email address" => [ + 0 => "Indgående email addresse", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Modtager for kontakt formularen og system opdateringer", + ], + "Website mode" => [ + 0 => "Website mode", + ], + "You can switch the website mode anytime." => [ + 0 => "Du kan ændre hjemmesidens tilstand når som helst.", + ], + "Community" => [ + 0 => "Fællesskab", + ], + "Personal" => [ + 0 => "Personlig", + ], + "Can't connect to %s" => [ + 0 => "Kan ikke oprette forbindelse til %s", + ], + "Update in progress" => [ + 0 => "Opdatering i gang", + ], + "Missing %s file" => [ + 0 => "Mangler %s fil", + ], + "Invalid license info" => [ + 0 => "Ugyldig licensinformation", + ], + "Invalid license key" => [ + 0 => "Ugyldig licensnøgle", + ], + "Can't save file" => [ + 0 => "Kan ikke gemme filen", + ], + "Can't download %s" => [ + 0 => "Kan ikke downloade %s", + ], + "Can't extract %s" => [ + 0 => "Kan ikke udtrække %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Kan ikke oprette %s katolog - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Kan ikke opdatere %s fil - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Kontroller fejlene i formularen for at fortsætte.", + ], + "You must enter the album name." => [ + 0 => "Indtast venligst albummets navn.", + ], + "Confirm" => [ + 0 => "Bekræft", + ], + "Select existing album" => [ + 0 => "Vælg eksisterende album", + ], + "An error occurred. Please try again later." => [ + 0 => "Der er sket en fejl. Venligt prøv igen senere.", + ], + "Please select a valid image file type." => [ + 0 => "Venligst vælg en godkendt filtype.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Venligst vælg en fil der ikke er større end %s.", + ], + "Profile image updated." => [ + 0 => "Profilbillede opdateret.", + ], + "Profile background image updated." => [ + 0 => "Profil bagrundsbillede opdateret.", + ], + "Profile background image deleted." => [ + 0 => "Profil bagrundsbillede slettet.", + ], + "Error deleting profile background image." => [ + 0 => "Der er sket en fejl, og din profils bagrundsbillede er ikke blevet slettet.", + ], + "Passwords don't match" => [ + 0 => "Adgangskoderne matcher ikke", + ], + "The release notes for this update are:" => [ + 0 => "Udgivelsesnote til denne opdatering:", + ], + "or" => [ + 0 => "eller", + ], + "cancel" => [ + 0 => "annuller", + ], + "loading" => [ + 0 => "Indlæser", + ], + "Like" => [ + 0 => "Synes godt om", + ], + "Edit" => [ + 0 => "Rediger", + ], + "Album" => [ + 0 => "Album", + 1 => "Albummer", + ], + "Delete" => [ + 0 => "Slet", + ], + "Close" => [ + 0 => "Luk", + ], + "Previous" => [ + 0 => "Tidligere", + ], + "Next" => [ + 0 => "Næste", + ], + "Clipboard image" => [ + 0 => "Billede udklipsholder", + ], + "File too big." => [ + 0 => "Filen er for stor.", + ], + "Invalid or unsupported file format." => [ + 0 => "Ugyldigt eller ikke understøttet filformat.", + ], + "Some files couldn't be added" => [ + 0 => "Nogle filer kunne ikke tilføjes.", + ], + "image" => [ + 0 => "billede", + 1 => "billeder", + ], + "%s's Albums" => [ + 0 => "%s's Albummer", + ], + "Image edited successfully." => [ + 0 => "Billede redigeret succesfuldt.", + ], + "private" => [ + 0 => "Privat", + ], + "Album edited successfully." => [ + 0 => "Album redigeret succesfuldt.", + ], + "Invalid URL key." => [ + 0 => "Ugyldig URL nøgle.", + ], + "Category URL key already being used." => [ + 0 => "Kategori URL nøgle bruges allerede.", + ], + "Invalid expiration date." => [ + 0 => "Ugyldig udløbsdato.", + ], + "IP %s banned." => [ + 0 => "IP %s er bannet.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Lagerkapacitet kan ikke være lavere end den aktuelle brug (%s).", + ], + "Invalid URL." => [ + 0 => "Ugyldig URL.", + ], + "The content has been deleted." => [ + 0 => "Indholdet er blevet slettet.", + ], + "The content has been moved." => [ + 0 => "Indholdet er blevet flyttet.", + ], + "Select" => [ + 0 => "Vælgt", + ], + "Unselect" => [ + 0 => "Fravælg", + ], + "The content has been edited." => [ + 0 => "Indholdet er blevet redigeret.", + ], + "album" => [ + 0 => "album", + 1 => "albums", + ], + "Untitled" => [ + 0 => "Unavngivet", + ], + "%s's images" => [ + 0 => "%s's billeder", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Bemærk: Dette indhold er privat, men alle med linket vil kunne se dette.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Bemærk: Dette indhold er beskyttet med adgangskode. Husk at sende indholdsadgangskoden for at dele.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Bemærk: Dette indhold er privat. Ændre privatindstillinger til \"offentlig\" for at dele", + ], + "Private" => [ + 0 => "Privat", + ], + "Public" => [ + 0 => "Offentlig", + ], + "Me" => [ + 0 => "Mig", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Kodeord", + ], + "view" => [ + 0 => "visning", + 1 => "visninger", + ], + "After %n %t" => [ + 0 => "Efter %n %t", + ], + "minute" => [ + 0 => "minut", + 1 => "minutter", + ], + "hour" => [ + 0 => "time", + 1 => "timer", + ], + "day" => [ + 0 => "dag", + 1 => "dage", + ], + "week" => [ + 0 => "uge", + 1 => "uger", + ], + "month" => [ + 0 => "måned", + 1 => "måneder", + ], + "year" => [ + 0 => "år", + 1 => "år", + ], + "Don't autodelete" => [ + 0 => "Må ikke auto slette", + ], + "Duplicated upload" => [ + 0 => "Duplikeret upload", + ], + "Private upload" => [ + 0 => "Privat upload", + ], + "like" => [ + 0 => "synes godt om", + 1 => "synes godt om", + ], + "Recent" => [ + 0 => "Nylig", + ], + "Trending" => [ + 0 => "Trending", + ], + "Top users" => [ + 0 => "Top brugere", + ], + "Most recent" => [ + 0 => "Seneste", + ], + "Oldest" => [ + 0 => "Ældste", + ], + "Most viewed" => [ + 0 => "Mest sete", + ], + "Popular" => [ + 0 => "Populær", + ], + "Most liked" => [ + 0 => "Mest synes godt om", + ], + "Explore" => [ + 0 => "Udforsk", + ], + "Animated" => [ + 0 => "Animeret", + ], + "Search" => [ + 0 => "Søg", + ], + "People" => [ + 0 => "Folk", + ], + "Image" => [ + 0 => "Billede", + 1 => "Billeder", + ], + "User" => [ + 0 => "Bruger", + 1 => "Brugere", + ], + "Can't create %s destination dir" => [ + 0 => "Kan ikke oprette %s destinationsdir", + ], + "Can't open %s for writing" => [ + 0 => "Kan ikke åbne %s til skrivning", + ], + "Internal" => [ + 0 => "Internt", + ], + "Can't insert storage." => [ + 0 => "Kan ikke indsætte lager.", + ], + "Can't update storage details." => [ + 0 => "Kan ikke opdatere lageroplysninger.", + ], + "requires %s" => [ + 0 => "kræver %s", + ], + "Unlimited" => [ + 0 => "Ubegrænset", + ], + "used" => [ + 0 => "brugt", + ], + "Private profile" => [ + 0 => "Privat profil", + ], + "second" => [ + 0 => "sekund", + 1 => "sekunder", + ], + "%s ago" => [ + 0 => "%s siden", + ], + "moments ago" => [ + 0 => "Få øjeblikke siden", + ], + "Dashboard" => [ + 0 => "Administrator", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Der er en opdatering til rådighed for dit system. Gå til %s for at downloade og installere denne opdatering.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Systemdatabasen er forældet. Du skal køre <a href=\"%s\">opdaterings</a> værktøjet.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Hjemmesiden er i vedligeholdelsestilstand. For at vende tilbage til denne indstilling, skal du gå til <a href=\"%s\">Administrator> Indstillinger</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Du skal deaktivere PHP fejlrapportering for produktionsmiljø. Gå til <a href='%s'>Systemindstillinger</a> for at vende tilbage til denne indstilling.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Du har ikke ændret standard e-mail indstillinger. Gå til <a href='%s'>Email indstillinger</a> for at rette op på dette.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Der er en opdatering tilgængelig til din Chevereto baserede hjemmeside.", + ], + "admin dashboard" => [ + 0 => "admin startside", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Du kan anvende denne opdatering direkte fra din %a eller downloade den fra %s og derefter installere den manuelt.", + ], + "view on %s" => [ + 0 => "visning på %s", + ], + "cookie policy" => [ + 0 => "cookie politik", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Vi bruger vores egne og tredjeparts cookies til at forbedre din browseroplevelse og vores tjenester. Hvis du fortsætter med at bruge vores hjemmeside, forstås det, at du accepterer %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Jeg forstår", + ], + "Forgot password?" => [ + 0 => "Glemt adgangskode?", + ], + "Reset password" => [ + 0 => "Nulstil adgangskode", + ], + "Resend account activation" => [ + 0 => "Gensend aktiveringskode", + ], + "Add your email address" => [ + 0 => "Tilføj din email", + ], + "Email changed" => [ + 0 => "Email opdateret", + ], + "Invalid Username/Email" => [ + 0 => "Ugyldig Brugernavn eller Email", + ], + "User doesn't have an email." => [ + 0 => "Denne bruger har ingen e-mail.", + ], + "Request denied" => [ + 0 => "Anmodning afvist", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Din konto skal aktiveres før du kan bruge denne funktion", + ], + "Account already activated" => [ + 0 => "Denne konto er allerede aktiveret", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Vent venligst op til 15 minutter før du prøver igen. Du kan prøve igen senere.", + ], + "Reset your password at %s" => [ + 0 => "Nulstil din adgangskode til %s", + ], + "Confirmation required at %s" => [ + 0 => "Bekræftelse påkrævet til %s", + ], + "Welcome to %s" => [ + 0 => "Velkommen til %s", + ], + "Email already being used" => [ + 0 => "Denne email er allerede taget i brug", + ], + "Password required" => [ + 0 => "Adgangskode kræves", + ], + "Share" => [ + 0 => "Del", + ], + "Embed codes" => [ + 0 => "Del kode", + ], + "Full info" => [ + 0 => "Fuld info", + ], + "%a album hosted in %w" => [ + 0 => "%a album hostet i %w", + ], + "Stats" => [ + 0 => "Statistik", + ], + "Images" => [ + 0 => "Billeder", + ], + "Albums" => [ + 0 => "Albums", + ], + "Users" => [ + 0 => "Brugere", + ], + "Settings" => [ + 0 => "Indstillinger", + ], + "Chevereto version" => [ + 0 => "Chevereto version", + ], + "install update" => [ + 0 => "installer opdatering", + ], + "check for updates" => [ + 0 => "tjek for opdateringer", + ], + "Support" => [ + 0 => "Support", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Brug for hjælp? Gå til %s, og du får hurtigt hjælp.", + ], + "PHP version" => [ + 0 => "PHP version", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL version", + ], + "MySQL server info" => [ + 0 => "MySQL server info", + ], + "GD Library" => [ + 0 => "GD Library", + ], + "File uploads" => [ + 0 => "Fil uploads", + ], + "Enabled" => [ + 0 => "Aktiveret", + ], + "Disabled" => [ + 0 => "Deaktiveret", + ], + "Max. upload file size" => [ + 0 => "Maks. upload filstørrelse", + ], + "Max. post size" => [ + 0 => "Maks. post størrelse", + ], + "Max. execution time" => [ + 0 => "Maks. eksekveringstid", + ], + "%d second" => [ + 0 => "%d sekund", + 1 => "%d sekunder", + ], + "Memory limit" => [ + 0 => "Hukommelses grænse", + ], + "Links" => [ + 0 => "Links", + ], + "Documentation" => [ + 0 => "Dokumentation", + ], + "Changelog" => [ + 0 => "Seneste nyt", + ], + "Bug tracking" => [ + 0 => "Fejlfinding", + ], + "Website" => [ + 0 => "Hjemmeside", + ], + "Content" => [ + 0 => "Indhold", + ], + "Pages" => [ + 0 => "Sider", + ], + "Listings" => [ + 0 => "Lister", + ], + "Image upload" => [ + 0 => "Billede upload", + ], + "Categories" => [ + 0 => "Kategorier", + ], + "Consent screen" => [ + 0 => "Samtykke skærm", + ], + "Flood protection" => [ + 0 => "Flood beskyttelse", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Startside", + ], + "Banners" => [ + 0 => "Reklamer", + ], + "System" => [ + 0 => "System", + ], + "Languages" => [ + 0 => "Sprog", + ], + "External storage" => [ + 0 => "Eksternt lager", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Sociale netværk", + ], + "External services" => [ + 0 => "Eksterne tjenester", + ], + "IP bans" => [ + 0 => "IP ban", + ], + "Additional settings" => [ + 0 => "Yderligere indstillinger", + ], + "Tools" => [ + 0 => "Værktøj", + ], + "Can't delete all homepage cover images" => [ + 0 => "Kan ikke slette alle baggrundsbilleder fra startsiden", + ], + "Homepage cover image deleted" => [ + 0 => "Baggrundsbillede slettet fra startsiden", + ], + "Local" => [ + 0 => "Lokal", + ], + "External" => [ + 0 => "Eksternt", + ], + "All" => [ + 0 => "Alle", + ], + "search content" => [ + 0 => "søg indhold", + ], + "Add page" => [ + 0 => "Tilføj side", + ], + "Edit page ID %s" => [ + 0 => "Rediger side ID %s", + ], + "The page has been added successfully." => [ + 0 => "Denne side er korrekt tilføjet", + ], + "The page has been deleted." => [ + 0 => "Denne side er slettet", + ], + "homepage" => [ + 0 => "startside", + ], + "Before main title (%s)" => [ + 0 => "Før hovedtitel (%s)", + ], + "After call to action (%s)" => [ + 0 => "Efter opfordring til handling (%s)", + ], + "After cover (%s)" => [ + 0 => "Efter cover (%s)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Ugyldig hjemmeside navn", + ], + "Invalid language" => [ + 0 => "Ugyldigt sprog", + ], + "Invalid timezone" => [ + 0 => "Ugyldig tidszone", + ], + "Invalid value: %s" => [ + 0 => "Ugyldig værdi: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Ugyldig upload lagertilstand", + ], + "Invalid upload filenaming" => [ + 0 => "Ugyldig upload filnavngivning", + ], + "Invalid thumb width" => [ + 0 => "Ugyldig minaturebillede bredde", + ], + "Invalid thumb height" => [ + 0 => "Ugyldig miniature højde", + ], + "Invalid medium size" => [ + 0 => "Ugyldig mellemstørrelse", + ], + "Invalid watermark percentage" => [ + 0 => "Ugyldig vandmærke procent", + ], + "Invalid watermark opacity" => [ + 0 => "Ugyldig vandmærke opacity", + ], + "Invalid theme" => [ + 0 => "Ugyldig tema", + ], + "Invalid value" => [ + 0 => "Ugyldig værdi", + ], + "Invalid theme tone" => [ + 0 => "Ugyldig tema tone", + ], + "Invalid user id" => [ + 0 => "Ugyldig bruger id", + ], + "Invalid email mode" => [ + 0 => "Ugyldig email indstilling", + ], + "Invalid SMTP port" => [ + 0 => "Ugyldig SMTP port", + ], + "Invalid SMTP security" => [ + 0 => "Ugyldig SMTP sikkerhed", + ], + "Invalid homepage style" => [ + 0 => "Ugyldig hjemmeside style", + ], + "Invalid homepage call to action button color" => [ + 0 => "Ugyldig hjemmeside call to action knap farve", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Ugyldig hjemmeside call to action funktion", + ], + "Invalid title" => [ + 0 => "Ugyldig titel", + ], + "Invalid status" => [ + 0 => "Ugyldig status", + ], + "Invalid type" => [ + 0 => "Ugyldig type", + ], + "Invalid visibility" => [ + 0 => "Ugyldig synlighed", + ], + "Invalid URL" => [ + 0 => "Ugyldig URL", + ], + "Invalid upload image path" => [ + 0 => "Ugyldig billede upload sti", + ], + "Max. allowed %s" => [ + 0 => "Maks tilladt %s", + ], + "Invalid SMTP server" => [ + 0 => "Ugyldig SMTP server", + ], + "Invalid SMTP username" => [ + 0 => "Ugyldig SMTP brugernavn", + ], + "Following" => [ + 0 => "Følger", + ], + "About" => [ + 0 => "Om", + ], + "Image ID" => [ + 0 => "Billede ID", + ], + "Uploader IP" => [ + 0 => "Uploader IP", + ], + "Upload date" => [ + 0 => "Upload dato", + ], + "Image %i in %a album" => [ + 0 => "Billede %i i %a album", + ], + "Image %i in %c category" => [ + 0 => "Billede %i i %c kategori", + ], + "Image %i hosted in %w" => [ + 0 => "Billede %i hostet i %w", + ], + "Direct links" => [ + 0 => "Direkte links", + ], + "Image link" => [ + 0 => "Billede link", + ], + "Image URL" => [ + 0 => "Billede URL", + ], + "Thumbnail URL" => [ + 0 => "Miniature URL", + ], + "Medium URL" => [ + 0 => "Mellem URL", + ], + "Full image" => [ + 0 => "Fuld billede", + ], + "Full image (linked)" => [ + 0 => "Fuld billede (linked)", + ], + "Medium image (linked)" => [ + 0 => "Mellem billede (linked)", + ], + "Thumbnail image (linked)" => [ + 0 => "Miniature billede (linked)", + ], + "Login needed" => [ + 0 => "Login påkrævet", + ], + "Missing values" => [ + 0 => "Mangler værdier", + ], + "Username already being used" => [ + 0 => "Brugernavn er allerede brugt", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Tilføj en adgangskode eller en anden social forbindelse, før du sletter %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Tilføj en e-mail eller en anden social forbindelse, før du sletter %s", + ], + "%s has been disconnected." => [ + 0 => "%s er blevet afbrudt.", + ], + "User %s followed" => [ + 0 => "Bruger %s fulgt", + ], + "User %s unfollowed" => [ + 0 => "Bruger %s følges ikke", + ], + "Content liked" => [ + 0 => "Synes godt om indhold", + ], + "Content disliked" => [ + 0 => "Synes godt om fjernet på indhold", + ], + "%u liked your %t %c" => [ + 0 => "%u synes godt om dit %t %c", + ], + "%u is now following you" => [ + 0 => "%u følger dig nu", + ], + "A private user" => [ + 0 => "En privat bruger", + ], + "Wrong Username/Email password combination" => [ + 0 => "Forkert Brugernavn eller Email adgangskode kombination", + ], + "Sign in" => [ + 0 => "Log ind", + ], + "Upload images" => [ + 0 => "Upload billeder", + ], + "Upload plugin" => [ + 0 => "Upload plugin", + ], + "Image search results for %s" => [ + 0 => "Billede søgeresultater for %s", + ], + "Album search results for %s" => [ + 0 => "Album søgeresultater for %s", + ], + "User search results for %s" => [ + 0 => "Bruger søgeresultater for %s", + ], + "Account" => [ + 0 => "Konto", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Tilknyttet kontoer", + ], + "Invalid image expiration: %s" => [ + 0 => "Ugyldig billedudløb: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "En email er blevet sendt til %s med instruktioner for at aktivere denne email", + ], + "Invalid name" => [ + 0 => "Ugyldigt navn", + ], + "Invalid website" => [ + 0 => "Ugyldig hjemmeside", + ], + "Wrong password" => [ + 0 => "Forkert adgangskode", + ], + "Use a new password" => [ + 0 => "Brug en ny adgangskode", + ], + "Changes have been saved." => [ + 0 => "Ændringerne er blevet gemt.", + ], + "Password has been changed" => [ + 0 => "Adgangskoden er blevet ændret", + ], + "Password has been created." => [ + 0 => "Adgangskoden er blevet oprettet.", + ], + "Wrong Username/Email values" => [ + 0 => "Forkert Brugernavn eller Email", + ], + "Settings for %s" => [ + 0 => "Indstillinger for %s", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Du skal være mindst %s år gammel for at kunne bruge denne hjemmeside.", + ], + "Create account" => [ + 0 => "Opret en bruger", + ], + "Upload" => [ + 0 => "Upload", + ], + "%s's Images" => [ + 0 => "%s's Billeder", + ], + "Results for" => [ + 0 => "Resultater for", + ], + "Liked by %s" => [ + 0 => "Synes godt om af %s", + ], + "Liked" => [ + 0 => "Synes godt om", + ], + "Followers" => [ + 0 => "Følgere", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albums på %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) på %w", + ], + "Discovery" => [ + 0 => "Opdagelse", + ], + "Advanced search" => [ + 0 => "Avanceret søgning", + ], + "Random" => [ + 0 => "Tilfældig", + ], + "Notices (%s)" => [ + 0 => "Meddelelser (%s)", + ], + "Notifications" => [ + 0 => "Notifikationer", + ], + "You don't have notifications" => [ + 0 => "Du har ingen notifikationer :(", + ], + "My Profile" => [ + 0 => "Min Profil", + ], + "Sign out" => [ + 0 => "Log ud", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Vi har modtaget en anmodning om at ændre e-mailen til din <a href=\"%u\">%n</a> konto på %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "For at fuldføre processen skal du <a href=\"%s\">aktivér din email</a>", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativt kan du kopiere og indsætte webadressen i din browser: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Hvis du ikke har til hensigt, ignorerer du bare denne meddelelse.", + ], + "This request was made from IP: %s" => [ + 0 => "Denne anmodning blev foretaget fra IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Vi har modtaget en anmodning om at registrere %n konto på %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "For at fuldføre processen skal du <a href=\"%s\">aktivér din konto</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Vi har modtaget en anmodning om at nulstille adgangskoden til din <a href=\"%u\">%n</a> konto.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "For at nulstille din adgangskode <a href=\"%s\">følg dette link</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hej %n, velkommen til %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Nu hvor din konto er klar, kan du nyde at uploade dine billeder, oprette album og indstille privatlivets fred for dit indhold samt mange flere seje ting, du vil opdage.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Forresten, her har du din helt egen fantastisk profilside: <a href=\"%u\">%n</a>. Gå videre og tilpas det, det er din!. :)", + ], + "Thank you for joining" => [ + 0 => "Tak for tilmelding", + ], + "This email was sent from %w %u" => [ + 0 => "Denne email blev sendt fra %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Træk og slip eller indsæt billeder her for at uploade", + ], + "Select the images to upload" => [ + 0 => "Vælg de billeder, der skal uploades", + ], + "browse from your computer" => [ + 0 => "vælge fra din computer", + ], + "add image URLs" => [ + 0 => "tilføje billede webadresser", + ], + "You can also %i or %u." => [ + 0 => "Du kan også %i eller %u.", + ], + "browse from your device" => [ + 0 => "gennemse fra din enhed", + ], + "take a picture" => [ + 0 => "tag et billede", + ], + "You can also %i, %c or %u." => [ + 0 => "Du kan også %i, %c eller %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Rediger eller skalere et billede ved at klikke på billedeksemplet", + ], + "Edit any image by touching the image preview" => [ + 0 => "Rediger et billede ved at trykke på billedeksemplet", + ], + "your computer" => [ + 0 => "din computer", + ], + "You can add more images from %i or %u." => [ + 0 => "Du kan tilføje flere billeder fra %i eller %u.", + ], + "your device" => [ + 0 => "din enhed", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Du kan tilføje flere billeder fra %i, %c eller %u.", + ], + "Uploading %q %o" => [ + 0 => "Uploader %q %o", + ], + "complete" => [ + 0 => "færdig", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Køen bliver uploadet, det tager kun få sekunder at fuldføre.", + ], + "Upload complete" => [ + 0 => "Upload gennemført", + ], + "Uploaded content added to %s." => [ + 0 => "Uploadet indhold tilføjet til %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Du kan %c med indholdet lige uploadet eller %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Du kan %c med indholdet lige uploadet.", + ], + "create a new album" => [ + 0 => "opret et nyt album", + ], + "move it to an existing album" => [ + 0 => "flyt det til et eksisterende album", + ], + "create an account" => [ + 0 => "opret en konto", + ], + "sign in" => [ + 0 => "log ind", + ], + "No %s have been uploaded" => [ + 0 => "Ingen %s er blevet uploadet", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Der er sket nogle fejl og systemet kunne og behandle deres amodning.", + ], + "Category" => [ + 0 => "Kategori", + ], + "Select category" => [ + 0 => "Vælg kategori", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Markér dette hvis billedet ikke er familievenlig", + ], + "Not family safe upload" => [ + 0 => "Ikke familievenlig billede", + ], + "Uploading" => [ + 0 => "Uploader", + ], + "cancel remaining" => [ + 0 => "Annullere resterende", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Bemærk: Nogle billeder kunne ikke uploades.", + ], + "learn more" => [ + 0 => "se mere", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Check <a data-modal=\"simple\" data-target=\"failed-upload-result\">fejl rapporten</a> for mere information.", + ], + "Register to get %s" => [ + 0 => "Tilmeld dig for at få %s", + ], + "reset" => [ + 0 => "nulstil", + ], + "close" => [ + 0 => "luk", + ], + "copy" => [ + 0 => "kopier", + ], + "insert" => [ + 0 => "indsæt", + ], + "Remove" => [ + 0 => "Fjern", + ], + "Edit image" => [ + 0 => "Rediger billede", + ], + "Title" => [ + 0 => "Titel", + ], + "optional" => [ + 0 => "valgfri", + ], + "Resize image" => [ + 0 => "Ændre størrelsen på billedet", + ], + "Width" => [ + 0 => "Bredde", + ], + "Height" => [ + 0 => "Højde", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Bemærk: Animerede GIF billeder kan ikke skaleres", + ], + "Auto delete image" => [ + 0 => "Automatisk slet billede", + ], + "Sign up" => [ + 0 => "Tilmeld", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s 5 for at kunne tilpasse eller deaktivere automatisk sletning af billede.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Markér dette, hvis billedet ikke er familievenligt", + ], + "Flag as unsafe" => [ + 0 => "Markér som usikker", + ], + "Description" => [ + 0 => "Beskrivelse", + ], + "Brief description of this image" => [ + 0 => "Kort beskrivelse af dette billede", + ], + "Add image URLs" => [ + 0 => "Tilføg billede URLs", + ], + "Add the image URLs here" => [ + 0 => "Tilføj billede URLs her", + ], + "Create album" => [ + 0 => "Opret album", + ], + "Move to album" => [ + 0 => "Flyt til album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Vælg et eksisterende album for at flytte indholdet. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">lave et nyt album</a> of flytte indholdet dertil.", + ], + "Error report" => [ + 0 => "Fejl rapport", + ], + "Viewer links" => [ + 0 => "Viewer links", + ], + "HTML Codes" => [ + 0 => "HTML koder", + ], + "HTML image" => [ + 0 => "HTML billede", + ], + "HTML full linked" => [ + 0 => "HTML fuld link", + ], + "HTML medium linked" => [ + 0 => "HTML medium linked", + ], + "HTML thumbnail linked" => [ + 0 => "HTML miniature linked", + ], + "BBCodes" => [ + 0 => "BBKoder", + ], + "BBCode full" => [ + 0 => "BBCode fuld", + ], + "BBCode full linked" => [ + 0 => "BBCode fuld link", + ], + "BBCode medium linked" => [ + 0 => "BBCode medium link", + ], + "BBCode thumbnail linked" => [ + 0 => "BBKode miniature linked", + ], + "All these words" => [ + 0 => "Alle disse ord", + ], + "Album name" => [ + 0 => "Album navn", + ], + "Album description" => [ + 0 => "Albumbeskrivelse", + ], + "Brief description of this album" => [ + 0 => "Kort beskrivelse af dette album", + ], + "Album privacy" => [ + 0 => "Albums privatliv", + ], + "Who can view this content" => [ + 0 => "Hvem kan se dette indhold", + ], + "Private (just me)" => [ + 0 => "Privat (Kun mig)", + ], + "Private (anyone with the link)" => [ + 0 => "Privat (alle med linket)", + ], + "Private (password protected)" => [ + 0 => "Privat (adgangskode beskyttet)", + ], + "Album password" => [ + 0 => "Album adgangskode", + ], + "Name" => [ + 0 => "Navn", + ], + "Category name" => [ + 0 => "Kategori navn", + ], + "URL key" => [ + 0 => "URL nøgle", + ], + "Category URL key" => [ + 0 => "Kategori URL nøgle", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Kun bogstaver, tal og bindestreger", + ], + "Brief description of this category" => [ + 0 => "Kort beskrivelse af denne kategori", + ], + "Untitled image" => [ + 0 => "Unavngivet billede", + ], + "You can use wildcard * characters." => [ + 0 => "Du kan bruge wildcard * tegn.", + ], + "Expiration date" => [ + 0 => "Udløbsdato", + ], + "Example" => [ + 0 => "Eksempel", + ], + "Message" => [ + 0 => "Besked", + ], + "Existing album" => [ + 0 => "Eksisterende album", + ], + "create new album" => [ + 0 => "opret nyt album", + ], + "Username" => [ + 0 => "Brugernavn", + ], + "view more" => [ + 0 => "Se mere", + ], + "Load more" => [ + 0 => "Indlæs mere", + ], + "Select all" => [ + 0 => "Vælg alt", + ], + "Clear selection" => [ + 0 => "Nulstil valg", + ], + "Get embed codes" => [ + 0 => "Få integrer koder", + ], + "Flag as safe" => [ + 0 => "Marker som sikker", + ], + "Create new album" => [ + 0 => "Opret nyt album", + ], + "Sign in with another account" => [ + 0 => "Log ind med en anden konto", + ], + "Home" => [ + 0 => "Hjem", + ], + "There's nothing to show here." => [ + 0 => "Der er ikke noget at se her.", + ], + "Edit image details" => [ + 0 => "Rediger billede detaljer", + ], + "Edit album details" => [ + 0 => "Rediger albummets detaljer", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Alle billederne vil blive flyttet til denne nye album. Du kan også flytte alle billederne til en <a class=\"modal-switch\" data-switch=\"move-existing-album\">eksisterende album</a>", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Vælg et eksisterende album for at flytte billedet. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">lave et nyt album</a> og flytte billedet dertil.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Vælg et eksisterende album for at flytte billederne. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">lave et nyt album</a> og flytte billederne detil.", + ], + "There is no categories." => [ + 0 => "Der er ingen kategorier.", + ], + "Confirm flag content as safe" => [ + 0 => "Bekræft marker indhold som sikker", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Vil du virkelig gerne markere indholdet som sikkert?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Bekræft marker indhold som usikre", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Vil du virkelig gerne markere indholdet som usikkert?", + ], + "Confirm deletion" => [ + 0 => "Bekræft sletning", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Vil du virkelig gerne slette indholdet? Dette kan ikke fortrydes.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Vil du virkelig gerne slette alt det valgte indhold? Det kan ikke fortrydes..", + ], + "Fullscreen" => [ + 0 => "Fuld skærm", + ], + "Exit fullscreen" => [ + 0 => "Luk fuld skærm", + ], + "Guest" => [ + 0 => "Gæst", + ], + "Keyboard shortcuts" => [ + 0 => "Tastaturgenveje", + ], + "Uploaded by guest" => [ + 0 => "Uploadet af gæst", + ], + "From %s" => [ + 0 => "Fra %s", + ], + "Uploaded by private" => [ + 0 => "Uploadet af privat", + ], + "by %u" => [ + 0 => "af %u", + ], + "Toggle unsafe flag" => [ + 0 => "Skift usikre flag", + ], + "That page doesn't exist" => [ + 0 => "Denne side findes ikke", + ], + "The requested page was not found." => [ + 0 => "Den anmodet side er ikke blevet fundet", + ], + "Search something else" => [ + 0 => "Søg noget andet", + ], + "The user has been deleted" => [ + 0 => "Brugeren er blevet slettet", + ], + "Your account is almost ready" => [ + 0 => "Din bruger er næsten klar", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "En email er blevet sendt til %s med instrukser til hvordan du skal aktivere din bruger. Aktivationslinket er kun gyldig de næste 48 timer. Hvis du ikke modtager nogle instrusker anbefaler vi at du prøver at checke din junk eller spam filtrer.", + ], + "Resend activation" => [ + 0 => "Gensend aktivering", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Du har successfuldt opdateret din kontos email til %s", + ], + "Go to my profile" => [ + 0 => "Go til min profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Et bekræftelselink vil blive sendt til denne e-mail med detaljer for at aktivere din konto.", + ], + "Your email address" => [ + 0 => "Din email addresse", + ], + "Submit" => [ + 0 => "Indsend", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "En email med instruktioner til hvordan du nulstiller deres kodeord er blevet sendt til det registreret email addresse. Hvis du ikke modtager instrukserne, skal du checke din junk og spam filtrer.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "En email er blevet sendt til %s med instrukser til hvordan du skal aktivere din konto.n\\Hvis du modtager instrukserne, check din junk og spam filtrer.", + ], + "Resend instructions" => [ + 0 => "Gensend instrukser", + ], + "Username or Email address" => [ + 0 => "Brugernavn eller Email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Dit kodeord er blevet ændret. Du kan logge ind med dit nye kodeord.", + ], + "Login now" => [ + 0 => "Log ind nu", + ], + "Enter your new password" => [ + 0 => "Indtast dit nye kordord", + ], + "%d characters min" => [ + 0 => "%d tegn min", + ], + "Re-enter your new password" => [ + 0 => "Genindtast dit nye kodeord.", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "En email til %s er blevet sendt med instruktioner for at aktivere din konto. Hvis du ikke modtager vejledningen, skal du prøve at kontrollere dine junk eller spamfiltre.", + ], + "This content is private" => [ + 0 => "Indholdet er privat", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Er du sikker på du vil slette dette album og alle dets billeder? Dette kan ikke fortrydes.", + ], + "Delete album" => [ + 0 => "Slet album", + ], + "You like this" => [ + 0 => "Du kan lide dette", + ], + "Upload to album" => [ + 0 => "Upload til album", + ], + "Album link" => [ + 0 => "Album link", + ], + "I Agree" => [ + 0 => "Jeg er enig", + ], + "Disk used" => [ + 0 => "Plads brugt", + ], + "Status" => [ + 0 => "Status", + ], + "Role" => [ + 0 => "Rolle", + ], + "Email address" => [ + 0 => "Email addresse", + ], + "Add category" => [ + 0 => "Tilføj kategori", + ], + "Website name" => [ + 0 => "Sidens navn", + ], + "Website doctitle" => [ + 0 => "Sidens doctitle", + ], + "Website description" => [ + 0 => "Sidens beskrivelse", + ], + "Default time zone" => [ + 0 => "Standard tidszone", + ], + "Select region" => [ + 0 => "Vælg region", + ], + "guests" => [ + 0 => "gæster", + ], + "User ID" => [ + 0 => "Bruger ID", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Privat tilstand vil gøre at hjemmesiden kun er tilgængelig for registrerede brugere.", + ], + "Privacy" => [ + 0 => "Privatliv", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "pages" => [ + 0 => "sider", + ], + "Guest uploads" => [ + 0 => "Gæste uploads", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Aktiver dette hvis du vil tillade ikke registrerede bruger at uploade.", + ], + "Image Exif data" => [ + 0 => "Billede Exif data", + ], + "Keep" => [ + 0 => "Behold", + ], + "Image path" => [ + 0 => "Billede sti", + ], + "Relative to Chevereto root" => [ + 0 => "Relativt til Chevereto root", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Hvor skal billederne gemmes? Relativt til Cheverto root.", + ], + "Storage mode" => [ + 0 => "Lagertilstand", + ], + "Datefolders" => [ + 0 => "Datomapper", + ], + "Direct" => [ + 0 => "Direkte", + ], + "Datefolders creates %s structure" => [ + 0 => "Datofolder skaber %s struktur", + ], + "File naming method" => [ + 0 => "Fil navngivnings metode", + ], + "Original" => [ + 0 => "Original", + ], + "Thumb size" => [ + 0 => "Miniature størrelse", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Miniaturene vil blive fastsat til denne størerlse", + ], + "Dashboard > Settings > Website" => [ + 0 => "Dashboard > Indstillinger > Hjemmeside", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Bemærk: Sletning af en kategori sletter ikke de billeder, som hører til denne kategori.", + ], + "Minimum age required" => [ + 0 => "Mindste alder kræves", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Bloker billede upload per IP hvis systemet opdager suspekt opførelser baseret på det tilladt antal uploads per time. Denne indstilling har ikke indflydelse på administratorer.", + ], + "Notify to email" => [ + 0 => "Anmeld til email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Hvis aktiveret vil system sende en email i tilfælde af suspekt opførelse (DDoS)", + ], + "Minute limit" => [ + 0 => "Grænse per minut", + ], + "Hourly limit" => [ + 0 => "Grænse per time", + ], + "Daily limit" => [ + 0 => "Grænse per dag", + ], + "Weekly limit" => [ + 0 => "Grænse per uge", + ], + "Monthly limit" => [ + 0 => "Grænse per uge", + ], + "How many items should be displayed per page listing." => [ + 0 => "Hvor mange elementer der skal vises per side.", + ], + "explore" => [ + 0 => "udforsk", + ], + "Put your themes in the %s folder" => [ + 0 => "Put dine temaer i %s folderen", + ], + "Cover image" => [ + 0 => "Coverbillede", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Vil du virkelig slette dette billeder? Du kan ikke fortryde dette.", + ], + "Delete image" => [ + 0 => "Slet billede", + ], + "Add new cover image" => [ + 0 => "Tilføj nyt coverbillede", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Vektor version eller dit website logo i SVG format (kun til hjemmeside).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Bitmap version eller dit website logo (kun til hjemmesiden). PNG format anbefales.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Dette vil blive tilføjet inde i hjemmesiden %s tag. Lad det være tomt for at bruge standardindhold.", + ], + "Paragraph" => [ + 0 => "Afsnit", + ], + "Crypt salt" => [ + 0 => "Krypter salten", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Denne salt anvendes til at konvertere numeriske ID til alfanumeriske. Det blev genereret ved installationen.", + ], + "None" => [ + 0 => "Ingen", + ], + "Default language" => [ + 0 => "Standardsprog", + ], + "Default base language to use." => [ + 0 => "Standardsprog der skal bruges.", + ], + "Auto language" => [ + 0 => "Automatiske sprog", + ], + "From name" => [ + 0 => "Fra navn", + ], + "Sender name for emails sent to users." => [ + 0 => "Afsender navn for e-mails sendt til brugerne.", + ], + "Email mode" => [ + 0 => "Email tilstand", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Hvordan vil du sende emails? SMTP anbefalet.", + ], + "SMTP server and port" => [ + 0 => "SMTP server og port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP brugernavn", + ], + "SMTP password" => [ + 0 => "SMTP kodeord", + ], + "SMTP security" => [ + 0 => "SMTP sikkerhed", + ], + "Unsecured" => [ + 0 => "Usikret", + ], + "social networks" => [ + 0 => "sociale netværk", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Du har brug for en <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for dette.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Du skal bruge en <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for det.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter konto", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Du har brug for en <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for dette.", + ], + "Google client id" => [ + 0 => "google klient ID", + ], + "Google client secret" => [ + 0 => "Google klient secret", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "Comment code" => [ + 0 => "Kommentar kode", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook - hvadend du vil. Dette vil blive brugt i billede visning.", + ], + "Analytics code" => [ + 0 => "Analytics kode", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics eller hvad end du vil. Det vil blive tilføjet til temaets footer.", + ], + "Plugin route" => [ + 0 => "Plugin rute", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Aktivér dette for at vise plugin instruktioner på %u. Et link til disse instruktioner tilføjes til menuen %s. Denne indstilling påvirker ikke administratorer.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Brug dette til at angive en brugerdefineret URL for %p. Bemærk venligst, at du skal manuelt replikere %s i denne webadresse.", + ], + "Save changes" => [ + 0 => "Gem ændringer", + ], + "Check the errors to proceed." => [ + 0 => "Se fejlene før de fortsætter.", + ], + "Play GIF" => [ + 0 => "Afspil GIF", + ], + "Load full resolution" => [ + 0 => "Indlæs billedet i fuld opløsning", + ], + "Added to %a and categorized in %c" => [ + 0 => "Tilføjet til %a og kategoriseret i %c", + ], + "Added to %s" => [ + 0 => "Tilføjet til %s", + ], + "Uploaded to %s" => [ + 0 => "Uploadet til %s", + ], + "Uploaded %s" => [ + 0 => "Uploaded %s", + ], + "Less Exif data" => [ + 0 => "Skjul Exif data", + ], + "More Exif data" => [ + 0 => "Vis Exif data", + ], + "Share image" => [ + 0 => "Del billede", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "In this album" => [ + 0 => "I dette album", + ], + "Upload and share your images." => [ + 0 => "Upload og del dine billeder.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Træk og slip hvor som helst du vil, og start upload af dine billeder nu. %s grænse. Direkte billede links, BBCode og HTML thumbnails.", + ], + "Start uploading" => [ + 0 => "Start upload", + ], + "Sign up to unlock all the features" => [ + 0 => "Tilmeld dig for at låse op for alle funktioner", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Administrer dit indhold, opret privat album, tilpas din profil og meget mere.", + ], + "Sign in with your account" => [ + 0 => "Log ind med din konto", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Har du ikke en konto? <a href='%s'>Opret</a> nu.", + ], + "Logged out" => [ + 0 => "Logget ud", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Du er blevet logget ud %s. Vi håber vi ser dig snart igen.", + ], + "Go to homepage" => [ + 0 => "Gå til hjemmesiden", + ], + "Website under maintenance" => [ + 0 => "Hjemmesiden er under vedligeholdelse", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Vi udfører planlagte vedligeholdelsesopgaver på hjemmesiden. Venligst kom tilbage igen senere.", + ], + "This content is password protected." => [ + 0 => "Dette indhold er beskyttet med adgangskode.", + ], + "Please enter your password to continue." => [ + 0 => "Indtast venligst dit adgangskode for at fortsætte.", + ], + "Send" => [ + 0 => "Send", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Tilføj billede upload til dit websted, blog eller forum ved at installere vores upload plugin. Det giver billede uploading service til enhver hjemmeside ved at placere en knap, der gør det muligt for dine brugere at uploade billeder direkte til vores server, og det vil automatisk håndtere de koder, der er nødvendige for indsættelse. Alle funktioner inkluderet som træk og slip, fjernopload, billede skalering og meget mere.", + ], + "Supported software" => [ + 0 => "Understøttet software", + ], + "supported software" => [ + 0 => "understøttet software", + ], + "Add it to your website" => [ + 0 => "Tilføj det til din hjemmeside", + ], + "options" => [ + 0 => "muligheder", + ], + "After" => [ + 0 => "Efter", + ], + "Before" => [ + 0 => "Før", + ], + "Advanced options" => [ + 0 => "Avancerede indstillinger", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Enten har du ikke tilladelse til at tilgå denne side, eller er siden udløbet.", + ], + "Search results" => [ + 0 => "Søgeresultater", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Vil du virkelig gerne slette denne bruger? Dette kan ikke fortrydes.", + ], + "Delete user" => [ + 0 => "Slet bruger", + ], + "Register date" => [ + 0 => "Registrerings dato", + ], + "Registration IP" => [ + 0 => "Registrerings IP", + ], + "Valid" => [ + 0 => "Gyldig", + ], + "Banned" => [ + 0 => "Bandlyst", + ], + "Awaiting email" => [ + 0 => "Afventer email", + ], + "Awaiting confirmation" => [ + 0 => "Afventer konfimering", + ], + "Auto delete uploads" => [ + 0 => "Slet automatisk uploads", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Denne indstilling gælder som standard for alle dine billede uploadere. Du kan tilsidesætte denne indstilling på hver upload.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Gem billede <a %s>Exif data</a> under upload", + ], + "Newsletter" => [ + 0 => "Nyhedsbrev", + ], + "Send me emails with news about %s" => [ + 0 => "Send mig e-mails med nyheder om %s", + ], + "Content settings" => [ + 0 => "Indholdsindstillinger", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Vis ikke sikkert indhold i fortegnelser (fra andre)", + ], + "Language" => [ + 0 => "Sprog", + ], + "Timezone" => [ + 0 => "Tidszone", + ], + "Current password" => [ + 0 => "Nuværende kodeord", + ], + "Enter your current password" => [ + 0 => "Indtast dit nuværende kodeord", + ], + "New password" => [ + 0 => "Nyt kodeord", + ], + "Confirm new password" => [ + 0 => "Bekræft deres nye kodeord", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Tilføj et kodeord for at kunne login med dit brugernavn eller dit email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Denne bruger har ikke et kodeord. Tilføj et med denne formel.", + ], + "Enter your password" => [ + 0 => "Indtast dit kodeord", + ], + "Confirm password" => [ + 0 => "Bekræft kodeord", + ], + "Re-enter your password" => [ + 0 => "Genindtast dit kodeord", + ], + "Upload new image" => [ + 0 => "Upload nyt billede", + ], + "Delete existing image" => [ + 0 => "Slet eksisterende billede", + ], + "Make my profile and identity totally private" => [ + 0 => "Gør min profil og identitet helt privat", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Aktivér dette, hvis du vil fungere som en anonym bruger", + ], + "This is your real name, not your username." => [ + 0 => "Dette er dit rigtige navn, ikke deres brugernavn.", + ], + "http://yourwebsite.com" => [ + 0 => "http://dinhjemmeside.com", + ], + "Bio" => [ + 0 => "Om mig", + ], + "Tell us a little bit about you" => [ + 0 => "Fortæl os lidt om dig selv", + ], + "User has no connections." => [ + 0 => "Brugeren har ikke nogen forbindelser", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Vil du virkelig afbryde %s fra denne konto?", + ], + "This account is connected to %s" => [ + 0 => "Denne konto er forbundet med %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Vil du virkelig fjerne tilknytningen til din %s konto?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Du vil blive logget ud, og du vil ikke kunne logge ind med din %s konto.", + ], + "Your account is connected to %s" => [ + 0 => "Din konto er tilknyttet til %s", + ], + "disconnect" => [ + 0 => "Afbryd forbindelse", + ], + "Connect %s" => [ + 0 => "Forbind %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Du er velkommen til at gennemse og opdage alle mine delte billeder og albums.", + ], + "Button" => [ + 0 => "Knap", + ], + "View all my images" => [ + 0 => "Vis alle mine billeder", + ], + "Login" => [ + 0 => "Log på", + ], + "Already have an account? %s now." => [ + 0 => "Har du allerede en bruger? %s nu.", + ], + "resend account activation" => [ + 0 => "gensend konto aktivering", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Hvis du allerede har tilmeldt dig, skal du anmode om at %s for at aktiveret din konto.", + ], + "I'm at least %s years old" => [ + 0 => "Jeg er mindst %s år gammel", + ], + "terms" => [ + 0 => "betingelser", + ], + "privacy policy" => [ + 0 => "Fortrolighedspolitik", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Jeg er enig i %terms_link and %privacy_link", + ], + "Upload profile background" => [ + 0 => "Upload profil baggrundsbillede", + ], + "Change background" => [ + 0 => "Ændre baggrund", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Dette baggrundsbillede vil blive slette. Dette kan ikke fortrydes. Er du sikker på at du vil slette dit profils baggrundsbillede?", + ], + "Delete background" => [ + 0 => "Slet baggrund", + ], + "Edit profile" => [ + 0 => "Rediger profil", + ], + "Follower" => [ + 0 => "Følger", + 1 => "Følgere", + ], + "Follow" => [ + 0 => "Følg", + ], + "You have been forbidden to use this website." => [ + 0 => "Du er bannet at bruge denne hjemmeside.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "General questions/comments" => [ + 0 => "Generelt spørgsmål/kommentarer", + ], + "DMCA complaint" => [ + 0 => "DMCA klager", + ], + "Invalid message" => [ + 0 => "Ugyldig besked", + ], + "Invalid subject" => [ + 0 => "Ugyldig emne", + ], + "Mail error" => [ + 0 => "Mail fejl", + ], + "Message sent" => [ + 0 => "Besked sendt", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Besked sendt. Vi kontakter dig hurtigst muligt.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Hvis du vil kontakte os, skal du udfylde formularen herunder.", + ], + "Your name" => [ + 0 => "Dit navn", + ], + "Subject" => [ + 0 => "Emne", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Alle ændringerne du har lavet vil gå tabt", + ], + "Changes saved successfully." => [ + 0 => "Ændringerne er blevet gemt", + ], + "Go back to form" => [ + 0 => "Gå tilbage til formularen", + ], + "continue anyway" => [ + 0 => "fortsæt alligevel", + ], + "Saving" => [ + 0 => "Gemmer", + ], + "Sending" => [ + 0 => "Sender", + ], + "Confirm action" => [ + 0 => "Bekræft handling", + ], + "information" => [ + 0 => "information", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/de.po.cache.php b/app/.cache/languages/de.po.cache.php new file mode 100644 index 0000000..22b0993 --- /dev/null +++ b/app/.cache/languages/de.po.cache.php @@ -0,0 +1,3834 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-01-20 12:54+0000', + 'PO-Revision-Date' => '2021-01-20 12:54+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'de', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Ungültige E-Mail-Adresse", + ], + "Invalid username" => [ + 0 => "Ungültiger Benutzername", + ], + "Invalid password" => [ + 0 => "Ungültiges Passwort", + ], + "Invalid website mode" => [ + 0 => "Ungültiger Modus der Internetseite", + ], + "From email address" => [ + 0 => "Absender E-Mail-Adresse", + ], + "Sender email for emails sent to users." => [ + 0 => "Absenderadresse für E-Mail-Kontakt mit Benutzern.", + ], + "Incoming email address" => [ + 0 => "Eintreffende E-Mail Adresse", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Empfänger E-Mail-Adresse für Kontaktanfragen und Systemmeldungen.", + ], + "Website mode" => [ + 0 => "Modus der Internetseite", + ], + "You can switch the website mode anytime." => [ + 0 => "Sie können den Modus der Internetseite jederzeit wechseln.", + ], + "Community" => [ + 0 => "Community", + ], + "Personal" => [ + 0 => "Privat-Modus", + ], + "Installed version is v%s" => [ + 0 => "Installierte Version: v%s", + ], + "Can't connect to %s" => [ + 0 => "Es kann keine Verbindung zu %s aufgebaut werden", + ], + "Last available release is v%s" => [ + 0 => "v%s ist die aktuellste verfügbare Version", + ], + "Update needed, proceeding to download" => [ + 0 => "Update notwendig, Download wird ausgeführt", + ], + "No update needed" => [ + 0 => "Kein Update notwendig", + ], + "System files already up to date" => [ + 0 => "System-Dateien sind bereit zum Update", + ], + "Starting v%s download" => [ + 0 => "Starte Download der Version v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s wurde heruntergeladen, Entpacken wird fortgeführt", + ], + "Attempting to extract v%s" => [ + 0 => "Versuche v%s zu entpacken", + ], + "Extraction completed" => [ + 0 => "Entpacken abgeschlossen", + ], + "Proceding to install the update" => [ + 0 => "Installation des Updates wird fortgeführt", + ], + "Update failed" => [ + 0 => "Update fehlgeschlagen", + ], + "Update in progress" => [ + 0 => "Update in Arbeit...", + ], + "Missing %s file" => [ + 0 => "Datei %s fehlt", + ], + "Invalid license info" => [ + 0 => "Ungültige Lizenz-Information", + ], + "Invalid license key" => [ + 0 => "Ungültiger Lizenz-Schlüssel", + ], + "Can't save file" => [ + 0 => "Speichern nicht möglich", + ], + "Can't download %s" => [ + 0 => "%s kann nicht heruntergeladen werden", + ], + "Can't extract %s" => [ + 0 => "%s kann nicht entpackt werden", + ], + "Can't create %s directory - %e" => [ + 0 => "Verzeichnis %s kann nicht erstellt werden - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Datei %s kann nicht aktualisiert werden - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Beachten Sie die angezeigten Fehler im Formular, bevor Sie fortfahren.", + ], + "You must enter the album name." => [ + 0 => "Sie müssen einen Namen für das Album eingeben.", + ], + "Confirm" => [ + 0 => "Bestätigen", + ], + "The content has been approved." => [ + 0 => "Dieser Inhalt wurde freigeschaltet.", + ], + "Select existing album" => [ + 0 => "Wähle ein bestehendes Album", + ], + "An error occurred. Please try again later." => [ + 0 => "Ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.", + ], + "Please select a valid image file type." => [ + 0 => "Bitte wählen Sie ein gültiges Dateiformat.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Bitte wählen Sie ein Bild mit höchstens %s Dateigröße.", + ], + "Profile image updated." => [ + 0 => "Profilbild aktualisiert.", + ], + "Profile background image updated." => [ + 0 => "Hintergrundbild aktualisiert.", + ], + "Profile background image deleted." => [ + 0 => "Hintergrundbild gelöscht.", + ], + "Error deleting profile background image." => [ + 0 => "Fehler beim Löschen des Hintergrundbildes.", + ], + "Passwords don't match" => [ + 0 => "Passwörter stimmen nicht überein", + ], + "Update available v%s" => [ + 0 => "Update v%s verfügbar", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Es steht ein Update für Ihr System zur Verfügung. Sie können das Update automatisch herutnerladen und installieren oder unter %s einen manuellen Download der Datei starten.", + ], + "The release notes for this update are:" => [ + 0 => "Release-Notes für das Update:", + ], + "Update now" => [ + 0 => "Jetzt updaten", + ], + "or" => [ + 0 => "oder", + ], + "cancel" => [ + 0 => "Abbrechen", + ], + "This website is running latest %s version" => [ + 0 => "Die Internetseite läuft mit der aktuellsten %s Version.", + ], + "loading" => [ + 0 => "Laden", + ], + "Toggle select" => [ + 0 => "Markieren umschalten", + ], + "Like" => [ + 0 => "Like", + ], + "Toggle flag" => [ + 0 => "Jugendfrei-Markierung umschalten", + ], + "Edit" => [ + 0 => "Bearbeiten", + ], + "Album" => [ + 0 => "Album", + 1 => "Alben", + ], + "Approve" => [ + 0 => "Freischalten", + ], + "Delete" => [ + 0 => "Löschen", + ], + "Close" => [ + 0 => "Schließen", + ], + "Previous" => [ + 0 => "Voherige", + ], + "Next" => [ + 0 => "Nächste", + ], + "Clipboard image" => [ + 0 => "Bild in Zwischenablage", + ], + "File too big." => [ + 0 => "Die Datei ist zu groß.", + ], + "Invalid or unsupported file format." => [ + 0 => "Ungültiges oder nicht unterstütztes Dateiformat.", + ], + "Some files couldn't be added" => [ + 0 => "Einige Dateien konnten nicht hinzugefügt werden", + ], + "image" => [ + 0 => "Bild", + 1 => "Bilder", + ], + "%s's Albums" => [ + 0 => "%ss Alben", + ], + "Image edited successfully." => [ + 0 => "Das Bild wurde erfolgreich bearbeitet.", + ], + "private" => [ + 0 => "Privat", + ], + "Album edited successfully." => [ + 0 => "Das Album wurde erfolgreich bearbeitet.", + ], + "Invalid URL key." => [ + 0 => "Ungültiger URL-Schlüssel.", + ], + "Category URL key already being used." => [ + 0 => "Der URL-Schlüssel der Kategorie wird bereits verwendet.", + ], + "Category successfully deleted." => [ + 0 => "Kategorie wurde gelöscht.", + ], + "Category %s added." => [ + 0 => "Kategorie \"%s\" hinzugefügt.", + ], + "Invalid expiration date." => [ + 0 => "Ungültiges Ablaufdatum.", + ], + "IP %s already banned." => [ + 0 => "IP-Adresse %s wurde bereits gesperrt.", + ], + "IP %s banned." => [ + 0 => "IP-Adresse %s gesperrt.", + ], + "IP ban successfully deleted." => [ + 0 => "IP-Bann wurde erfolgreich gelöscht.", + ], + "Please fill all the required fields." => [ + 0 => "Bitte füllen Sie alle notwendigen Felder aus.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Ungültiger Wert für die Speicherkapazität. Bitte geben Sie einen gültigen Wert an.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Die Speicherkapazität darf den aktuellen Verbrauch nicht unterschreiten (%s).", + ], + "Invalid URL." => [ + 0 => "Ungültige URL.", + ], + "Storage successfully edited." => [ + 0 => "Datenspeicher erfolgreich bearbeitet.", + ], + "User added successfully." => [ + 0 => "Benutzer wurde hinzugefügt.", + ], + "The content has been deleted." => [ + 0 => "Der Inhalt wurde gelöscht.", + ], + "The content has been moved." => [ + 0 => "Der Inhalt wurde verschoben.", + ], + "Select" => [ + 0 => "Markieren", + ], + "Unselect" => [ + 0 => "Demarkieren", + ], + "The content has been edited." => [ + 0 => "Der Inhalt wurde bearbeitet.", + ], + "Import job ID %s added successfully, you can process the import now" => [ + 0 => "Import mit der Job-ID %s wurde erfolgreich hinzugefügt. Sie können den Import nun verarbeiten.", + ], + "Select number of threads" => [ + 0 => "Anzahl der Threads auswählen", + ], + "Import job ID %s is being processed now" => [ + 0 => "Import mit der Job-ID %s wird verarbeitet", + ], + "Import ID %s removed" => [ + 0 => "Import mit der ID %s entfernt", + ], + "Spam detected" => [ + 0 => "Spam entdeckt", + ], + "album" => [ + 0 => "Album", + 1 => "Alben", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Spam erkannt. Sie können nur %limit% %content% in %time% hochladen.", + ], + "Untitled" => [ + 0 => "Unbenannt", + ], + "%s's images" => [ + 0 => "%ss Bilder", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Hinweis: Dieser Inhalt ist privat, kann aber dennoch direkt über den Link aufgerufen werden.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Hinweis: Dieser Inhalt ist durch ein Passwort geschützt. Denken Sie daran, das Passwort ebenfalls weiterzugeben.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Hinweis: Dieser Inhalt ist privat. Ändern Sie die Einstellung auf \"Öffentlich\" um den Inhalt zu teilen.", + ], + "Private" => [ + 0 => "Privat", + ], + "Public" => [ + 0 => "Öffentlich (Alle)", + ], + "Me" => [ + 0 => "Ich", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Passwort", + ], + "view" => [ + 0 => "Aufruf", + 1 => "Aufrufe", + ], + "After %n %t" => [ + 0 => "Nach %n %t", + ], + "minute" => [ + 0 => "Minute", + 1 => "Minuten", + ], + "hour" => [ + 0 => "Stunde", + 1 => "Stunden", + ], + "day" => [ + 0 => "Tag", + 1 => "Tagen", + ], + "week" => [ + 0 => "Woche", + 1 => "Wochen", + ], + "month" => [ + 0 => "Monat", + 1 => "Monaten", + ], + "year" => [ + 0 => "Jahr", + 1 => "Jahren", + ], + "Don't autodelete" => [ + 0 => "Auto-Löschen deaktivieren", + ], + "Duplicated upload" => [ + 0 => "Doppelt hochgeladen", + ], + "Private upload" => [ + 0 => "Privater Upload", + ], + "like" => [ + 0 => "Like", + 1 => "Likes", + ], + "Recent" => [ + 0 => "Aktuell", + ], + "Trending" => [ + 0 => "Im Trend", + ], + "Top users" => [ + 0 => "Top-Benutzer", + ], + "Most recent" => [ + 0 => "Neueste", + ], + "Oldest" => [ + 0 => "Älteste", + ], + "Most viewed" => [ + 0 => "Meistgesehen", + ], + "Popular" => [ + 0 => "Beliebt", + ], + "Most liked" => [ + 0 => "Beliebt", + ], + "Explore" => [ + 0 => "Entdecken", + ], + "Animated" => [ + 0 => "Animiert", + ], + "Search" => [ + 0 => "Suche", + ], + "People" => [ + 0 => "Menschen", + ], + "Image" => [ + 0 => "Bild", + 1 => "Bilder", + ], + "User" => [ + 0 => "Benutzer", + 1 => "Benutzer", + ], + "adult" => [ + 0 => "Adult", + ], + "teen" => [ + 0 => "Teen", + ], + "Content of type %s is forbidden" => [ + 0 => "Inhalte des Typs %s sind verboten", + ], + "Can't create %s destination dir" => [ + 0 => "%s Zielverzeichnis kann nicht erstellt werden", + ], + "Can't open %s for writing" => [ + 0 => "%s kann nicht zum Schreiben geöffnet werden", + ], + "Internal" => [ + 0 => "Intern", + ], + "Can't insert storage." => [ + 0 => "Datenspeicher kann nicht eingefügt werden.", + ], + "Can't update storage details." => [ + 0 => "Details zum Datenspeicher können nicht aktualisiert werden.", + ], + "requires %s" => [ + 0 => "Benötigt %s", + ], + "Unlimited" => [ + 0 => "Unlimitiert", + ], + "used" => [ + 0 => "benutzt", + ], + "Private profile" => [ + 0 => "Privates Profil", + ], + "second" => [ + 0 => "Sekunde", + 1 => "Sekunden", + ], + "%s ago" => [ + 0 => "Vor %s", + ], + "moments ago" => [ + 0 => "Vor wenigen Momenten", + ], + "Dashboard" => [ + 0 => "Dashboard", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Es ist ein Update für Ihr System zur Verfügung. Gehen Sie auf %s zum Herunterladen und Installieren des Updates.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Systemdatenbank ist veraltet. Starten sie das <a href=\"%s\">Update-Tool</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Die Internetseite befindet sich im Wartungsmodus. Um den Modus zu beenden, rufen Sie die <a href=\"%s\">Dashboard-Einstellungen</a> auf.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Die PHP-Fehlerberichterstattung sollte bei Live-Systemen deaktiviert werden. Gehen Sie in die <a href='%s'>Systemeinstellungen</a> um diese Einstellung zu ändern.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Sie haben die Standard-Mail-Einstellungen nicht angepasst. Gehen Sie zu den <a href='%s'>E-Mail-Einstellungen</a> um dies zu beheben.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Es gibt ein Update für Ihre auf Chevereto basierende Internetseite.", + ], + "admin dashboard" => [ + 0 => "Admin-Dashboard", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Sie können dieses Update direkt aus Ihrem %a starten oder es manuell von %s herunterladen und installieren.", + ], + "view on %s" => [ + 0 => "Auf %s ansehen", + ], + "cookie policy" => [ + 0 => "Cookie-Policy", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Wir nutzen eigene Cookies und Cookies von Drittanbietern um den Nutzungskomfort unserer Internetseite zu verbessern. Wenn Sie diese Internetseite weiter nutzen, erklären Sie sich mit unserer %cookie_policy_link einverstanden.", + ], + "I understand" => [ + 0 => "Ich stimme zu", + ], + "Forgot password?" => [ + 0 => "Passwort vergessen?", + ], + "Reset password" => [ + 0 => "Passwort zurücksetzen", + ], + "Resend account activation" => [ + 0 => "Aktivierungs-Link erneut senden", + ], + "Add your email address" => [ + 0 => "E-Mail-Adresse hinzufügen", + ], + "Email changed" => [ + 0 => "E-Mail-Adresse geändert", + ], + "%s says you are a robot" => [ + 0 => "%s sagt Sie sind ein Robot.", + ], + "Invalid Username/Email" => [ + 0 => "Ungültiger Benutzername / E-Mail", + ], + "User doesn't have an email." => [ + 0 => "Für diesen Benutzer wurde keine E-Mail-Adresse hinterlegt.", + ], + "Request denied" => [ + 0 => "Anfrage verweigert", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Ihr Konto muss zunächst aktiviert werden, um diese Funktion nutzen zu können", + ], + "Account already activated" => [ + 0 => "Das Konto wurde bereits aktiviert", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Es kann bis zu 15 Minuten dauern, bis die E-Mail Ihr Postfach erreicht. Versuchen Sie es später noch einmal.", + ], + "Reset your password at %s" => [ + 0 => "Passwort bei %s zurücksetzen", + ], + "Confirmation required at %s" => [ + 0 => "Bestätigung für %s benötigt", + ], + "Welcome to %s" => [ + 0 => "Willkommen bei %s", + ], + "Email already being used" => [ + 0 => "Diese E-Mail wird bereits verwendet", + ], + "Password required" => [ + 0 => "Passwort erforderlich", + ], + "Share" => [ + 0 => "Teilen", + ], + "Embed codes" => [ + 0 => "Embed-Codes", + ], + "Full info" => [ + 0 => "Alle Informationen", + ], + "%a album hosted in %w" => [ + 0 => "%a album ist in %w gespeichert", + ], + "Stats" => [ + 0 => "Statistik", + ], + "Images" => [ + 0 => "Bilder", + ], + "Albums" => [ + 0 => "Alben", + ], + "Users" => [ + 0 => "Benutzer", + ], + "Settings" => [ + 0 => "Einstellungen", + ], + "Bulk importer" => [ + 0 => "Bulk-Import", + ], + "Chevereto version" => [ + 0 => "Chevereto-Version", + ], + "install update" => [ + 0 => "Installiere Update", + ], + "check for updates" => [ + 0 => "Suche nach Aktualisierungen", + ], + "Support" => [ + 0 => "Support", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Benötigen Sie Hilfe? Gehen Sie auf %s und Ihnen wird schnellstmöglich geholfen.", + ], + "PHP version" => [ + 0 => "PHP-Version", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL-Version", + ], + "MySQL server info" => [ + 0 => "MySQL Server-Info", + ], + "GD Library" => [ + 0 => "GD-Bibliothek", + ], + "File uploads" => [ + 0 => "Datei-Uploads", + ], + "Enabled" => [ + 0 => "Aktiviert", + ], + "Disabled" => [ + 0 => "Deaktiviert", + ], + "Max. upload file size" => [ + 0 => "Maximale Upload-Dateigröße", + ], + "Max. post size" => [ + 0 => "Maximaler POST-Wert", + ], + "Max. execution time" => [ + 0 => "Maximale Ausführungszeit", + ], + "%d second" => [ + 0 => "%d Sekunde", + 1 => "%d Sekunden", + ], + "Memory limit" => [ + 0 => "PHP-Speicherlimit", + ], + "Rebuild stats" => [ + 0 => "Statistiken berechnen", + ], + "Connecting IP" => [ + 0 => "Verbundene IP", + ], + "Not your IP?" => [ + 0 => "Nicht Ihre IP-Adresse?", + ], + "Links" => [ + 0 => "Links", + ], + "Collaboration" => [ + 0 => "Zusammenarbeit", + ], + "Documentation" => [ + 0 => "Dokumentation", + ], + "Changelog" => [ + 0 => "Changelog", + ], + "Bug tracking" => [ + 0 => "Bug-Tracking", + ], + "Website" => [ + 0 => "Internetseite", + ], + "Content" => [ + 0 => "Inhalt", + ], + "Pages" => [ + 0 => "Seiten", + ], + "Listings" => [ + 0 => "Listen", + ], + "Image upload" => [ + 0 => "Bild-Upload", + ], + "Categories" => [ + 0 => "Kategorien", + ], + "Consent screen" => [ + 0 => "Zustimmungsmitteilung", + ], + "Flood protection" => [ + 0 => "Flood-Schutz", + ], + "Theme" => [ + 0 => "Theme", + ], + "Homepage" => [ + 0 => "Startseite", + ], + "Banners" => [ + 0 => "Werbung", + ], + "System" => [ + 0 => "System", + ], + "Routing" => [ + 0 => "Routing", + ], + "Languages" => [ + 0 => "Sprachen", + ], + "External storage" => [ + 0 => "Externe Datenspeicherung", + ], + "Email" => [ + 0 => "E-Mail", + ], + "Social networks" => [ + 0 => "Soziale Netzwerke", + ], + "External services" => [ + 0 => "Externe Dienste", + ], + "IP bans" => [ + 0 => "IP-Sperren", + ], + "Additional settings" => [ + 0 => "Erweiterte Einstellungen", + ], + "Tools" => [ + 0 => "Werkzeuge", + ], + "Can't delete all homepage cover images" => [ + 0 => "Es können nicht alle Titelbilder gelöscht werden", + ], + "Homepage cover image deleted" => [ + 0 => "Titelbild gelöscht", + ], + "Local" => [ + 0 => "Lokal", + ], + "External" => [ + 0 => "Extern", + ], + "All" => [ + 0 => "Alle", + ], + "search content" => [ + 0 => "Durchsuche Inhalt", + ], + "Add page" => [ + 0 => "Seite hinzufügen", + ], + "Edit page ID %s" => [ + 0 => "Bearbeite Seiten-ID %s", + ], + "The page has been added successfully." => [ + 0 => "Die Seite wurde erfolgreich hinzugefügt.", + ], + "The page has been deleted." => [ + 0 => "Die Seite wurde gelöscht.", + ], + "homepage" => [ + 0 => "Internetseite", + ], + "Before main title (%s)" => [ + 0 => "Vor Haupttitel (%s)", + ], + "After call to action (%s)" => [ + 0 => "Nach \"Call to Action\" (%s)", + ], + "After cover (%s)" => [ + 0 => "Nach Titelbild (%s)", + ], + "After listing (%s)" => [ + 0 => "Nach Auflistung (%s)", + ], + "Before pagination" => [ + 0 => "Vor Seitennummerierung", + ], + "After pagination" => [ + 0 => "Nach Seitennummerierung", + ], + "Content (image and album)" => [ + 0 => "Inhalt (Bild- und Albenansicht)", + ], + "Tab about column" => [ + 0 => "Neben Bilddetails", + ], + "Before comments" => [ + 0 => "Vor Kommentare", + ], + "Image page" => [ + 0 => "Bildansicht", + ], + "Inside viewer top (image page)" => [ + 0 => "In Bildansicht-Kopfzeile", + ], + "Inside viewer foot (image page)" => [ + 0 => "In Bildansicht-Fußzeile", + ], + "After image viewer (image page)" => [ + 0 => "Nach Bildansicht", + ], + "Before header (image page)" => [ + 0 => "Vor Kopfzeile", + ], + "After header (image page)" => [ + 0 => "Nach Kopfzeile", + ], + "Footer (image page)" => [ + 0 => "Fußzeile", + ], + "Album page" => [ + 0 => "Albumansicht", + ], + "Before header (album page)" => [ + 0 => "Vor Kopfzeile", + ], + "After header (album page)" => [ + 0 => "Nach Kopfzeile", + ], + "User profile page" => [ + 0 => "Profilseite", + ], + "After top (user profile)" => [ + 0 => "Nach Kopfzeile", + ], + "Before listing (user profile)" => [ + 0 => "Vor Auflistung", + ], + "Explore page" => [ + 0 => "Entdecken-Seite", + ], + "After top (explore page)" => [ + 0 => "Nach Kopfzeile", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Ungültiger Name der Internetseite", + ], + "Invalid language" => [ + 0 => "Ungültige Sprache", + ], + "Invalid timezone" => [ + 0 => "Ungültige Zeitzone", + ], + "Invalid value: %s" => [ + 0 => "Ungültiger Wert: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Ungültige Speichermethode", + ], + "Invalid upload filenaming" => [ + 0 => "Ungültige Upload-Dateibenennung", + ], + "Invalid thumb width" => [ + 0 => "Ungültige Vorschaubildbreite", + ], + "Invalid thumb height" => [ + 0 => "Ungültige Vorschaubildhöhe", + ], + "Invalid medium size" => [ + 0 => "Ungültige Medium-Größe", + ], + "Invalid watermark percentage" => [ + 0 => "Ungültiges Wasserzeichen-Größenverhältnis", + ], + "Invalid watermark opacity" => [ + 0 => "Ungültige Wasserzeichen-Transparenz", + ], + "Invalid theme" => [ + 0 => "Ungültiges Theme", + ], + "Invalid value" => [ + 0 => "Ungültiger Wert", + ], + "Invalid theme tone" => [ + 0 => "Ungültiger Theme-Farbton", + ], + "Invalid theme main color" => [ + 0 => "Ungültige Hauptfarbe des Themes", + ], + "Invalid theme top bar button color" => [ + 0 => "Ungültige Farbe der Theme-Hauptleisten-Buttons", + ], + "Invalid theme image listing size" => [ + 0 => "Ungültige Bildergröße für die Listung im Theme", + ], + "Invalid user id" => [ + 0 => "Ungültige User-ID", + ], + "Invalid email mode" => [ + 0 => "Ungültiger E-Mail-Modus", + ], + "Invalid SMTP port" => [ + 0 => "Ungültiger SMTP-Port", + ], + "Invalid SMTP security" => [ + 0 => "Ungültige SMTP-Sicherheitseinstellung.", + ], + "Invalid personal mode user ID" => [ + 0 => "Ungültige Benutzer-ID für den Privat-Modus", + ], + "Invalid or reserved route" => [ + 0 => "Ungültige oder reservierte Route", + ], + "Invalid website privacy mode" => [ + 0 => "Ungültiger Datenschutzmodus der Internetseite", + ], + "Invalid website content privacy mode" => [ + 0 => "Ungültiger Datenschutzmodus für den Inhalt der Internetseite", + ], + "Invalid homepage style" => [ + 0 => "Ungültiger Style", + ], + "Invalid homepage call to action button color" => [ + 0 => "Ungültige Farbe des \"Call to Action\"-Buttons", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Ungültige \"Call to Action\"-Funktionsweise", + ], + "Invalid title" => [ + 0 => "Ungültiger Titel", + ], + "Invalid status" => [ + 0 => "Ungültiger Status", + ], + "Invalid type" => [ + 0 => "Ungültiger Typ", + ], + "Invalid visibility" => [ + 0 => "Ungültige Sichtbarkeit", + ], + "Invalid internal type" => [ + 0 => "Ungültiger interner Seitentyp", + ], + "Invalid target attribute" => [ + 0 => "Ungültige Zieleigenschaft", + ], + "Invalid rel attribute" => [ + 0 => "Ungültiges rel-Attribut", + ], + "Invalid icon" => [ + 0 => "Ungültiges Icon", + ], + "Invalid URL key" => [ + 0 => "Ungültiger URL-Schlüssel", + ], + "Invalid file path" => [ + 0 => "Ungültiger Dateipfad", + ], + "Invalid link URL" => [ + 0 => "Ungültige Link-URL", + ], + "Invalid user minimum age" => [ + 0 => "Ungültiges Mindestalter für den Benutzer", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Nur alphanumerische Zeichen, Bindestrich und Unterstriche sind erlaubt", + ], + "Invalid URL" => [ + 0 => "Ungültige URL", + ], + "Routes can't be the same" => [ + 0 => "Die Pfade dürfen nicht gleich sein", + ], + "Invalid upload image path" => [ + 0 => "Ungültiger Bild-Upload-Pfad", + ], + "Invalid call to action URL" => [ + 0 => "Ungültige \"Call to Action\"-URL", + ], + "Max. allowed %s" => [ + 0 => "Maximal erlaubte %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "%m kann nicht auf den bestehenden Ordner (%f) gemappt werden", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "%m kann nicht auf den existierenden Pfad (%r) gemappt werden", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "%m kann nicht auf %r gemappt werden (Benutzernamen-Kollision)", + ], + "Invalid SMTP server" => [ + 0 => "Ungültiger SMTP-Server", + ], + "Invalid SMTP username" => [ + 0 => "Ungültiger SMTP-Benutzername", + ], + "Invalid key" => [ + 0 => "Ungültiger Schlüssel", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Dieser URL-Schlüssel wird bereits für eine andere Seite genutzt (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Dieser Dateipfad wird bereits für eine andere Seite genutzt (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Seiteninhalt kann nicht gespeichert werden: %s.", + ], + "Following" => [ + 0 => "Folgen", + ], + "About" => [ + 0 => "Über", + ], + "Image ID" => [ + 0 => "Bild-ID", + ], + "Uploader IP" => [ + 0 => "Uploader-IP", + ], + "Ban IP" => [ + 0 => "IP-Adresse sperren", + ], + "IP already banned" => [ + 0 => "IP-Adresse wurde bereits gesperrt", + ], + "Upload date" => [ + 0 => "Upload-Datum", + ], + "Image %i in %a album" => [ + 0 => "Bild %i in %a Album", + ], + "Image %i in %c category" => [ + 0 => "Bild %i in %c Kategorie", + ], + "Image %i hosted in %w" => [ + 0 => "Bild %i gespeichert in %w", + ], + "Direct links" => [ + 0 => "Direkt-Link", + ], + "Image link" => [ + 0 => "Betrachter-URL", + ], + "Image URL" => [ + 0 => "Originalbild-URL", + ], + "Thumbnail URL" => [ + 0 => "Vorschaubild-URL", + ], + "Medium URL" => [ + 0 => "Medium-Bild-URL", + ], + "Full image" => [ + 0 => "Vollansicht", + ], + "Full image (linked)" => [ + 0 => "Vollansicht (Verlinkt)", + ], + "Medium image (linked)" => [ + 0 => "Medium-Bild (Verlinkt)", + ], + "Thumbnail image (linked)" => [ + 0 => "Vorschaubild (Verlinkt)", + ], + "Login needed" => [ + 0 => "Anmeldung notwendig", + ], + "IP address already banned" => [ + 0 => "IP-Adresse wurde bereits gesperrt", + ], + "Missing values" => [ + 0 => "Fehlende Werte", + ], + "Invalid role" => [ + 0 => "Ungültiger Status", + ], + "Username already being used" => [ + 0 => "Benutzername wird bereits genutzt", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Fügen Sie ein Passwort oder eine neue Social-Media-Verbindung hinzu bevor Sie %s löschen.", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Fügen Sie eine E-Mail-Adressse oder eine andere Social-Media-Verbindung hinzu, bevor Sie %s löschen.", + ], + "%s has been disconnected." => [ + 0 => "Verbindung zu %s getrennt.", + ], + "Test email from %s @ %t" => [ + 0 => "Test-E-Mail von %s @ %t", + ], + "This is just a test" => [ + 0 => "Dies ist nur ein Test.", + ], + "Test email sent to %s." => [ + 0 => "Test-E-Mail wurde an %s gesendet.", + ], + "Downloading %s data" => [ + 0 => "Lade Daten von %s", + ], + "User %s followed" => [ + 0 => "Benutzer %s wird gefolgt", + ], + "User %s unfollowed" => [ + 0 => "Benutzer %s wird nicht mehr gefolgt", + ], + "Content liked" => [ + 0 => "Inhalt gefällt dir", + ], + "Content disliked" => [ + 0 => "Inhalt gefällt dir nicht mehr", + ], + "%u liked your %t %c" => [ + 0 => "%u hat Ihren %t %c gelikt", + ], + "%u is now following you" => [ + 0 => "%u folgt Ihnen nun", + ], + "A private user" => [ + 0 => "Privater Nutzer", + ], + "Wrong Username/Email password combination" => [ + 0 => "Falsche Kombination aus Benutzername / E-Mail und Passwort", + ], + "Sign in" => [ + 0 => "Anmelden", + ], + "Moderate" => [ + 0 => "Moderation", + ], + "Upload images" => [ + 0 => "Bilder hochladen", + ], + "Upload plugin" => [ + 0 => "Upload-Plugin", + ], + "Image search results for %s" => [ + 0 => "Bild-Suchergebnisse für %s", + ], + "Album search results for %s" => [ + 0 => "Album-Suchergebnisse für %s", + ], + "User search results for %s" => [ + 0 => "Benutzer-Suchergebnisse für %s", + ], + "Account" => [ + 0 => "Konto", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Verbundene Konten", + ], + "Invalid image expiration: %s" => [ + 0 => "Ungültiger Ablaufzeitpunkt: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Es wurde eine E-Mail an %s mit Anweisungen zur Aktivierung versendet.", + ], + "Invalid name" => [ + 0 => "Ungültiger Name", + ], + "Invalid website" => [ + 0 => "Ungültige Internetseite", + ], + "Wrong password" => [ + 0 => "Ungültiges Passwort", + ], + "Use a new password" => [ + 0 => "Setzen Sie ein neues Passwort", + ], + "Changes have been saved." => [ + 0 => "Die Änderungen wurden gespeichert.", + ], + "Password has been changed" => [ + 0 => "Passwort wurde geändert", + ], + "Password has been created." => [ + 0 => "Passwort wurde erstellt.", + ], + "Wrong Username/Email values" => [ + 0 => "Falsche Benutzernamen / E-Mail Werte", + ], + "Settings for %s" => [ + 0 => "Einstellungen von %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Sie müssen den Nutzungsregeln und den Datenschutzbestimmungen zustimmen.", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Sie müssen mindestens %s Jahre alt sein, um diese Seite zu nutzen .", + ], + "Create account" => [ + 0 => "Konto erstellen", + ], + "Upload" => [ + 0 => "Hochladen", + ], + "%s's Images" => [ + 0 => "%ss Bilder", + ], + "Results for" => [ + 0 => "Ergebnisse für", + ], + "Liked by %s" => [ + 0 => "Von %s gelikt", + ], + "Liked" => [ + 0 => "Gefällt mir", + ], + "Followers" => [ + 0 => "Followers", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) Alben unter %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) unter %w", + ], + "Discovery" => [ + 0 => "Entdecken", + ], + "Advanced search" => [ + 0 => "Erweiterte Suche", + ], + "Random" => [ + 0 => "Zufall-Modus", + ], + "Notices (%s)" => [ + 0 => "Anmerkungen (%s)", + ], + "Lights" => [ + 0 => "Lichtmodus", + ], + "Notifications" => [ + 0 => "Benachrichtigungen", + ], + "You don't have notifications" => [ + 0 => "Sie haben keine neuen Benachrichtigungen", + ], + "My Profile" => [ + 0 => "Mein Profil", + ], + "Sign out" => [ + 0 => "Abmelden", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Wir haben eine Anfrage zur Änderung der E-Mail-Adresse Ihres Kontos <a href=\"%u\">%n </a> bei %w erhalten.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Um den Vorgang abzuschließen, müssen Sie Ihre <a href=\"%s\">E-Mail-Adresse bestätigen.</a>", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativ können Sie den Link <a href=\"%s\">%s</a> kopieren und in Ihren Browser einfügen.", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Sollten Sie die Anfrage unbeabsichtigt gestellt haben, können Sie diese Nachricht ignorieren.", + ], + "This request was made from IP: %s" => [ + 0 => "IP-Adresse des Anfragenstellers: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Wir haben eine Anfrage erhalten, das Konto %n bei %w zu registrieren.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Um den Vorgang abzuschließen, müssen Sie Ihr <a href=\"%s\">Konto aktivieren</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Wir haben eine Anfrage zur Zurücksetzung des Passworts Ihres Kontos <a href=\"%u\">%n</a> erhalten.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Um Ihr Passwort zurückzusetzen klicken Sie <a href=\"%s\">hier</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hallo %n, willkommen bei %w!", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Ihr Konto wurde erfolgreich aktiviert. Sie können nun Bilder hochladen, Alben erstellen, die Datenschutzeinstellungen Ihrer Inhalte festlegen und nebenbei viele weitere großartige Funktionen entdecken!", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Übrigens, Ihre ganz persönliche Profilseite können Sie hier abrufen: <a href=\"%u\">%n</a>. Sie können die Seite ganz nach Belieben anpassen!", + ], + "Thank you for joining" => [ + 0 => "Vielen Dank für Ihre Anmeldung", + ], + "This email was sent from %w %u" => [ + 0 => "Diese E-Mail wurde von %w %u gesendet", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Ziehen & Ablegen oder Kopieren & Einfügen der Bilder zum Upload", + ], + "Select the images to upload" => [ + 0 => "Bilder zum Hochladen auswählen", + ], + "browse from your computer" => [ + 0 => "Ihren Computer durchsuchen", + ], + "add image URLs" => [ + 0 => "Bild-URLs", + ], + "You can also %i or %u." => [ + 0 => "Sie können auch %i oder %u einfügen.", + ], + "browse from your device" => [ + 0 => "Durchsuchen Sie Ihr Gerät", + ], + "take a picture" => [ + 0 => "ein Foto aufnehmen", + ], + "You can also %i, %c or %u." => [ + 0 => "Sie können auch %i, %c oder %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Bearbeiten oder skalieren Sie ein Bild, in dem Sie auf die Vorschau klicken", + ], + "Edit any image by touching the image preview" => [ + 0 => "Bearbeiten Sie ein Bild, in dem Sie die Vorschau berühren", + ], + "your computer" => [ + 0 => "Ihrem Computer", + ], + "You can add more images from %i or %u." => [ + 0 => "Sie können mehr Bilder von %i oder %u hinzufügen.", + ], + "your device" => [ + 0 => "Ihre Gerät", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Sie können mehr Bilder von %i, %c oder %u hinzufügen.", + ], + "Uploading %q %o" => [ + 0 => "Lade %q %o hoch", + ], + "complete" => [ + 0 => "Abgeschlossen", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Die Warteschlange wird abgearbeitet, dies dauert einige Sekunden.", + ], + "Upload complete" => [ + 0 => "Hochladen abgeschlossen", + ], + "Uploaded content added to %s." => [ + 0 => "Die hochgeladenen Bilder wurden zu %s hinzugefügt.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Sie können %c mit dem Inhalt, der gerade hochgeladen wurde oder %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Sie können %c mit dem Inhalt, der gerade hochgeladen wurde.", + ], + "create a new album" => [ + 0 => "Neues Album erstellen", + ], + "move it to an existing album" => [ + 0 => "In bestehendes Album verschieben", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Sie müssen %s oder %l um diese Inhalte in Ihrem Konto zu speichern.", + ], + "create an account" => [ + 0 => "Neuen Account erstellen", + ], + "sign in" => [ + 0 => "Einloggen", + ], + "No %s have been uploaded" => [ + 0 => "Es wurden keine %s hochgeladen", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Ihre Anfrage konnte aufgrund von Fehlern im System nicht verarbeitet werden.", + ], + "Category" => [ + 0 => "Kategorie", + ], + "Select category" => [ + 0 => "Wähle Kategorie", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Markieren, wenn der Inhalt nicht jugendfrei ist", + ], + "Not family safe upload" => [ + 0 => "Nicht jugendfreier Inhalt", + ], + "Uploading" => [ + 0 => "Hochladen", + ], + "cancel remaining" => [ + 0 => "Verbleibende abbrechen", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Hinweis: Einige Bilder konnten nicht hochgeladen werden.", + ], + "learn more" => [ + 0 => "Mehr erfahren", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Überprüfen Sie den <a data-modal=\"simple\" data-target=\"failed-upload-result\">Fehlerbericht</a> für mehr Informationen.", + ], + "Register to get %s" => [ + 0 => "Registrieren um %s zu verwenden", + ], + "reset" => [ + 0 => "Zurücksetzen", + ], + "close" => [ + 0 => "Schließen", + ], + "Note" => [ + 0 => "Hinweis", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Wir müssen die hochgeladenen Inhalte freischalten, bevor sie geteilt werden können.", + ], + "copy" => [ + 0 => "Kopieren", + ], + "insert" => [ + 0 => "Einfügen", + ], + "Remove" => [ + 0 => "Löschen", + ], + "Title" => [ + 0 => "Titel", + ], + "optional" => [ + 0 => "Optional", + ], + "Resize image" => [ + 0 => "Größe anpassen", + ], + "Width" => [ + 0 => "Breite", + ], + "Height" => [ + 0 => "Höhe", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Hinweis: Animierte GIF-Bilder werden nicht skaliert.", + ], + "Auto delete image" => [ + 0 => "Automatisches Löschen von Bildern", + ], + "Sign up" => [ + 0 => "Registrieren", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s um das automatische Löschen von Bildern anzupassen oder zu deaktivieren.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Markieren, wenn Inhalt nicht jugendfrei ist", + ], + "Flag as unsafe" => [ + 0 => "Als anstößig markieren", + ], + "Description" => [ + 0 => "Beschreibung", + ], + "Brief description of this image" => [ + 0 => "Kurze Beschreibung des Bildes", + ], + "Add image URLs" => [ + 0 => "Bild-URLs hinzufügen", + ], + "Add the image URLs here" => [ + 0 => "Bild-URLs hier einfügen", + ], + "Create album" => [ + 0 => "Album erstellen", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Der hochgeladene Inhalt wird in das neu erstellte Album verschoben.", + ], + "existing album" => [ + 0 => "Bestehendes Album", + ], + "You can also move the content to an %a." => [ + 0 => "Sie können den Inhalt auch in ein %a verschieben.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Sie müssen %s oder %l wenn Sie das Album später bearbeiten wollen.", + ], + "Move to album" => [ + 0 => "In Album verschieben", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Markieren Sie ein bestehendes Album um die hochgeladenen Inhalte zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und die Inhalte in das neue Album verschieben.", + ], + "Error report" => [ + 0 => "Fehlermeldung", + ], + "Viewer links" => [ + 0 => "Betrachter-Link", + ], + "HTML Codes" => [ + 0 => "HTML-Codes", + ], + "HTML image" => [ + 0 => "HTML (Vollansicht)", + ], + "HTML full linked" => [ + 0 => "HTML (Vollansicht-Link)", + ], + "HTML medium linked" => [ + 0 => "HTML (Medium-Bild-Link)", + ], + "HTML thumbnail linked" => [ + 0 => "HTML (Vorschaubild-Link)", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode full" => [ + 0 => "BBCode (Vollansicht)", + ], + "BBCode full linked" => [ + 0 => "BBCode (Vollansicht-Link)", + ], + "BBCode medium linked" => [ + 0 => "BBCode (Medium-Bild-Link)", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode (Vorschaubild-Link)", + ], + "Markdown full" => [ + 0 => "Markdown (Vollansicht)", + ], + "Markdown full linked" => [ + 0 => "Markdown (Vollansicht-Link)", + ], + "Markdown medium linked" => [ + 0 => "Markdown (Mediumansicht-Link)", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown (Vorschaubild-Link)", + ], + "All these words" => [ + 0 => "Alle Wörter", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Wichtige Begriffe eingeben: Roter Afrikanischer Elefant", + ], + "This exact word or phrase" => [ + 0 => "Genauer Begriff oder Phrase", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Exakter Begriff in Anführungszeichen: \"Afrikanischer Elefant\"", + ], + "None of these words" => [ + 0 => "Begriffe ignorieren", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Minuszeichen vor zu ignorierende Begriffe: -Indischer \"Gefangener Elefant\"", + ], + "Storage" => [ + 0 => "Datenspeicher", + ], + "IP address" => [ + 0 => "IP-Adresse", + ], + "Album name" => [ + 0 => "Albumname", + ], + "move to existing album" => [ + 0 => "in bestehendes Album verschieben", + ], + "Album description" => [ + 0 => "Albumbeschreibung", + ], + "Brief description of this album" => [ + 0 => "Kurze Beschreibung des Albums", + ], + "Album privacy" => [ + 0 => "Album-Privatsphäre", + ], + "Who can view this content" => [ + 0 => "Wer kann diesen Inhalt sehen?", + ], + "Private (just me)" => [ + 0 => "Privat (Nur ich)", + ], + "Private (anyone with the link)" => [ + 0 => "Privat (Jeder mit Link)", + ], + "Private (password protected)" => [ + 0 => "Privat (passwortgeschützt)", + ], + "Album password" => [ + 0 => "Album-Passwort", + ], + "Name" => [ + 0 => "Name", + ], + "Category name" => [ + 0 => "Kategoriebezeichnung", + ], + "URL key" => [ + 0 => "URL-Schlüssel", + ], + "Category URL key" => [ + 0 => "Kategorie-URL-Schlüssel", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Buchstaben, Ziffern und Bindestriche erlaubt", + ], + "Brief description of this category" => [ + 0 => "Kurze Beschreibung der Kategorie", + ], + "Untitled image" => [ + 0 => "Unbetiteltes Bild", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Markieren, falls der Inhalt anstößig ist", + ], + "Flag not safe" => [ + 0 => "Als anstößig markieren", + ], + "Path" => [ + 0 => "Pfad", + ], + "Local path (absolute)" => [ + 0 => "Lokaler Pfad (Absolut)", + ], + "Directory structure" => [ + 0 => "Verzeichnisstruktur", + ], + "Parse top level folders as users (username)" => [ + 0 => "Top-Level-Ordner als Nutzer (Nutzername) parsen", + ], + "Parse top level folders as albums" => [ + 0 => "Top-Level-Ordner als Alben parsen", + ], + "Don't parse folders" => [ + 0 => "Ordner nicht parsen", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Wenn Top-Level-Ordner als Nutzer geparsed werden, werden Ordner auf der zweiten Ebene als Nutzeralben geparsed. Werden Top-Level-Ordner als Alben geparsed, werden diese als Gästealben hinzugefügt.", + ], + "Threads" => [ + 0 => "Threads", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Diese Einstellung bestimmt, wie schnell der Import-Vorgang abgeschlossen sein wird. Nutzen Sie nicht mehr als %s Threads auf einem Managed Server.", + ], + "You can use wildcard * characters." => [ + 0 => "Sie können Platzhalter (*) verwenden.", + ], + "Expiration date" => [ + 0 => "Ablaufdatum", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "JJJJ-MM-DD hh:mm:ss", + ], + "Example" => [ + 0 => "Beispiel", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Bis wann soll die IP-Adresse gesperrt werden? Bei keiner Eingabe wird kein Ablaufdatum festgelegt.", + ], + "Message" => [ + 0 => "Nachricht", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Textnachricht, HTML oder eine Weiterleitungs-URL", + ], + "Existing album" => [ + 0 => "Bestehendes Album", + ], + "create new album" => [ + 0 => "Neues Album erstellen", + ], + "Storage name" => [ + 0 => "Bezechnung des Datenspeichers", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Region", + ], + "Storage region" => [ + 0 => "Datenspeicher-Region", + ], + "Storage bucket" => [ + 0 => "Datenspeicher-Bucket", + ], + "Key" => [ + 0 => "Schlüssel", + ], + "Storage key" => [ + 0 => "Datenspeicher-Schlüssel", + ], + "Secret" => [ + 0 => "Secret", + ], + "Storage secret" => [ + 0 => "Datenspeicher-Secret", + ], + "Private key" => [ + 0 => "Privater Schlüssel", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON Schlüssel", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Sie benötigen einen <a %s>Account</a> für diese Funktion.", + ], + "Service name" => [ + 0 => "Dienstname", + ], + "Identity URL" => [ + 0 => "Identifizierungs-URL", + ], + "Identity API endpoint" => [ + 0 => "Identität des API-Endpunkt", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API-Endpunkt für OpenStack-Identität", + ], + "Username" => [ + 0 => "Benutzername", + ], + "Container" => [ + 0 => "Container", + ], + "Storage container" => [ + 0 => "Speicher-Container", + ], + "Tenant id" => [ + 0 => "Mieter-ID", + ], + "Tenant id (account id)" => [ + 0 => "Mieter-ID (Konto-ID)", + ], + "Tenant name" => [ + 0 => "Mietername", + ], + "Tenant name (account name)" => [ + 0 => "Mietername (Kontoname)", + ], + "Storage endpoint" => [ + 0 => "Datenspeicher Endpunkt", + ], + "Server address" => [ + 0 => "Serveradresse", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname oder IP des Datenspeicher-Server", + ], + "Server path" => [ + 0 => "Server-Pfad", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Absoluter Pfad für die Speicherung im Kontext des %p Login. Nutzen Sie %s für den Root-Pfad.", + ], + "Server login" => [ + 0 => "Server-Login", + ], + "Server password" => [ + 0 => "Server-Passwort", + ], + "Local path" => [ + 0 => "Lokaler Pfad", + ], + "Local path where the files will be stored" => [ + 0 => "Lokaler Pfad in dem die Daten gespeichert werden.", + ], + "Storage capacity" => [ + 0 => "Speicherkapazität", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Beispiel: 20 GB, 1 TB, usw.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Dieser Datenspeicher wird deaktiviert, wenn die maximale Kapazität erreicht wird. Wert auf Null oder setzen oder freilassen, für unlimitierte Nutzung.", + ], + "Storage URL" => [ + 0 => "Datenspeicher-URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Das System wird die Dateien auf diesem Speicher über diese URL abbilden.", + ], + "view more" => [ + 0 => "Mehr anzeigen", + ], + "Load more" => [ + 0 => "Mehr laden", + ], + "Select all" => [ + 0 => "Markiere alle", + ], + "Clear selection" => [ + 0 => "Markierung löschen", + ], + "Selection" => [ + 0 => "Auswahl", + ], + "Action" => [ + 0 => "Aktion", + ], + "Get embed codes" => [ + 0 => "Zeige Embed-Codes", + ], + "Assign category" => [ + 0 => "Kategorie zuweisen", + ], + "Flag as safe" => [ + 0 => "Als jugendfrei markieren", + ], + "Create new album" => [ + 0 => "Neues Album erstellen", + ], + "Sign in with another account" => [ + 0 => "Mit externen Diensten anmelden", + ], + "Continue with %label%" => [ + 0 => "Mit %label% fortfahren", + ], + "Home" => [ + 0 => "Home", + ], + "There's nothing to show here." => [ + 0 => "Keine Inhalte vorhanden.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Alle Bilder werden in das neue Album verschoben. Sie können die Bilder außerdem in ein <a class=\"modal-switch\" data-switch=\"move-existing-album\">bestehendes Album</a> verschieben.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Markieren Sie ein bestehendes Album um das Bild zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und das Bild in das neue Album verschieben.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Markieren Sie ein bestehendes Album um den Inhalt des Albums zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und den Inhalt in das neue Album verschieben.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Markieren Sie ein bestehendes Album um die Bilder zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und die Bilder in das neue Album verschieben.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Alle ausgewählten Bilder werden der Kategorie zugewiesen.", + ], + "There is no categories." => [ + 0 => "Es gibt keine Kategorien.", + ], + "Confirm flag content as safe" => [ + 0 => "Bestätige markierten Inhalt als jugendfrei", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Wollen Sie diesen Inhalt wirklich als jugendfrei markieren?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Bestätige markierten Inhalt als anstößig", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Wollen Sie diesen Inhalt wirklich als anstößig markieren?", + ], + "Confirm approval" => [ + 0 => "Freischaltung bestätigen", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgänig gemacht werden.", + ], + "Confirm deletion" => [ + 0 => "Löschung bestätigen", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Wollen Sie diese Inhalte wirklich löschen? Dies kann nicht rückgängig gemacht werden.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgänig gemacht werden.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgängig gemacht werden.", + ], + "Fullscreen" => [ + 0 => "Vollbild", + ], + "Exit fullscreen" => [ + 0 => "Vollbild verlassen", + ], + "Guest" => [ + 0 => "Gast", + ], + "Keyboard shortcuts" => [ + 0 => "Tastatur-Shortcut", + ], + "Private album" => [ + 0 => "Privates Album", + ], + "Password protected" => [ + 0 => "Passwortgeschützt", + ], + "Uploaded by guest" => [ + 0 => "Hochgeladen von einem Gast", + ], + "From %s" => [ + 0 => "Aus %s", + ], + "Uploaded by private" => [ + 0 => "Hochgeladen von Privat", + ], + "by %u" => [ + 0 => "Von %u", + ], + "Toggle unsafe flag" => [ + 0 => "Als anstößig markieren", + ], + "That page doesn't exist" => [ + 0 => "Diese Seite existiert nicht", + ], + "The requested page was not found." => [ + 0 => "Die angeforderte Seite wurde nicht gefunden.", + ], + "Search something else" => [ + 0 => "Etwas anderes suchen", + ], + "The user has been deleted" => [ + 0 => "Der Benutzer wurde gelöscht.", + ], + "Your account is almost ready" => [ + 0 => "Ihr Konto ist fast fertig", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Es wurde eine E-Mail an %s mit Informationen zur Aktivierung Ihres Kontos gesendet. Der Aktivierungslink ist nur für einen Zeitraum von 48 Stunden gültig. Falls Sie keine E-Mail erhalten haben, sollten Sie Ihren Junk- oder Spam-Filter überprüfen.", + ], + "Resend activation" => [ + 0 => "Aktivierung wiederholen", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Die E-Mail-Adresse des Kontos wurde erfolgreich auf %s geändert.", + ], + "Go to my profile" => [ + 0 => "Gehe zum Profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Ein Bestätigungslink mit Anweisungen zur Aktivierung Ihres Kontos wird an Ihre E-Mail-Adresse versendet.", + ], + "Your email address" => [ + 0 => "Ihre E-Mail-Adresse", + ], + "Submit" => [ + 0 => "Senden", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Es wurde eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts an die hinterlegte E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, sollten Sie Ihren Junk- oder Spam-Filter überprüfen.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Es wurde bereits eine E-Mail mit Anweisungen an die hinterlegte E-Mail-Adresse versendet. Falls Sie keine E-Mail erhalten haben, sollten Sie Ihren Junk- oder Spam-Filter überprüfen.", + ], + "Resend instructions" => [ + 0 => "Anweisungen erneut senden", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Geben Sie Ihren Nutzernamen und Ihre E-Mail-Adresse ein, um fortzufahren. Überprüfen Sie ggf. Ihren Spam-Ordner oder setzen Sie %s auf Ihre Whitelist.", + ], + "Username or Email address" => [ + 0 => "Benutzername / E-Mail", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Ihr Passwort wurde geändert. Sie können nun versuchen, sich mit Ihrem neuen Passwort anzumelden.", + ], + "Login now" => [ + 0 => "Jetzt anmelden", + ], + "Enter your new password" => [ + 0 => "Neues Passwort eingeben", + ], + "%d characters min" => [ + 0 => "Mindestens %d Zeichen", + ], + "Password strength" => [ + 0 => "Passwortstärke", + ], + "Re-enter your new password" => [ + 0 => "Passwort wiederholen", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Es wurde eine E-Mail an %s mit Anweisungen zur Aktivierung des Benutzerkontos versendet. Sollten Sie keine E-Mail mit Anweisungen erhalten haben, überprüfen Sie bitte Ihren Spam-Filter.", + ], + "This content is private" => [ + 0 => "Dieser Inhalt ist privat", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Wollen Sie dieses Album inklusive der enthaltenen Bilder wirklich löschen? Dies kann nicht rückgängig gemacht werden.", + ], + "You like this" => [ + 0 => "Dir gefällt das", + ], + "Upload to album" => [ + 0 => "In Album hochladen", + ], + "Album link" => [ + 0 => "Album-Link", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Bitte lesen und bestätigen Sie die folgenden Bedingungen, bevor Sie fortfahren:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Diese Internetseite enthält Informationen, Links und Bilder mit sexuell anstößigen Materialien. Sollten Sie weniger als %s Jahre alt sein, sollten Sie mit den gezeigten Materialien in jedweder Weise nicht einverstanden sein oder sollten die gezeigten Materialien in Ihrem Land illegal sein, verlassen Sie bitte diese Seite.\n\nIch bin mindestens %s Jahre alt und ich bin der Meinung, dass ich als Erwachsener berechtigt bin, die sexuell anstößigen Materialien zu betrachten. Ich wünsche, das sexuell anstößige Material zu betrachten bzw. zu empfangen.\n\nIch bin der Meinung, dass sexuelle Akte zwischen Erwachsenen weder obszön noch anstößig sind. Das Betrachten, Lesen und Herunterladen des sexuell anstößigen Materials verletzt nicht die Gesetzte meiner Gemeinschafft, Stadt, Staates oder Landes.\n\nDas sexuell anstößige Material ist nur zu meinem persönlichen Gebrauch gedacht und ich werde das Material nicht an Minderjährige aushändigen.\n\nIch bin persönlich für jegliche unerlaubte Veröffentlichung und rechtliche Konsequenzen verantwortlich, die eventuell durch das Betrachten, Lesen und Herunterladen des Materials auf dieser Seite entstehen können. Weiterhin sind weder der Betreiber dieser Seite, noch andere Partner dieser Internetseite für rechtliche Konsequenzen haftbar, die durch meinen Besuch oder meine Nutzung dieser Seite entstehen können.\n\nDiese Zustimmungs-Mitteilung stellt eine rechtlich verbindliche Vereinbarung zwischen Ihnen als Nutzer und dem Betreiber dieser Internetseite dar. Sollte ein Bestandteil dieser Vereinbarung rechtlich unwirksam sein, bleiben alle anderen Bestandteile in ihrer Wirksamkeit unberührt.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Mit dem Klick auf \"Ich stimme zu\" erklären Sie, dass Sie die oben genannten Bedingungen gelesen und verstanden haben.", + ], + "I Agree" => [ + 0 => "Ich stimme zu", + ], + "documentation" => [ + 0 => "Dokumentation", + ], + "Learn more about %s at our %d." => [ + 0 => "Lernen Sie mehr über %s in unserer %d.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "Die verbundene IP-Adresse ist darauf festgelegt, die Server-Variable %var% zu nutzen. Wenn die erkannte IP-Adresse nicht mit Ihrer übereinstimmt, bedeutet dies, dass Ihr Server hinter einem Proxy liegt und Sie Ihren Server so konfigurieren müssen, dass die tatsächlich verbundene IP-Adresse gesetzt wird.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Für Nginx, müssen Sie %nginx% nutzen. Für Apache, %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Stellen Sie sicher, dass dieses Problem gelöst wird. Das System ist auf eine korrekte Erkennung der IP-Adressen angewiesen, um grundsätzliche Funktionen und den Schutz gegen Spam, Flooding und Brute-Force-Attacken zu gewährleisten.", + ], + "Disk used" => [ + 0 => "Speicherverbrauch", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." => [ + 0 => "Dieses Werkzeug erlaubt die Massenverarbeitung von Inhalten, um sie der Internetseite hinzuzufügen. Hierzu wird auf einen Systempfad gezeigt, der den Inhalt enthält, der importiert werden soll. Es wird das Hinzufügen von Benutzern, Alben und Bildern auf Basis einer ordnerbasierten Struktur unterstützt.", + ], + "Automatic importing" => [ + 0 => "Automatisches Importieren", + ], + "The system automatically parses any content by a continuous observation of the %path% path." => [ + 0 => "Dieses System analysiert automatisch fortlaufend jeden Inhalt im Pfad %path%.", + ], + "Completed jobs will be automatically re-started after %n %m." => [ + 0 => "Abgeschlossene Aufgaben werden automatisch nach %n %m neugestartet.", + ], + "Reset to clear stats and logs." => [ + 0 => "Statistiken und Logs werden zurückgesetzt.", + ], + "Queued" => [ + 0 => "In Warteschlange", + ], + "Working" => [ + 0 => "In Arbeit", + ], + "Paused" => [ + 0 => "Pausiert", + ], + "Canceled" => [ + 0 => "Abgebrochen", + ], + "Completed" => [ + 0 => "Abgeschlossen", + ], + "Actions" => [ + 0 => "Aktionen", + ], + "Reset" => [ + 0 => "Zurücksetzen", + ], + "Pause" => [ + 0 => "Pausieren", + ], + "Resume" => [ + 0 => "Fortsetzen", + ], + "Process log" => [ + 0 => "Log", + ], + "Errors" => [ + 0 => "Fehler", + ], + "Status" => [ + 0 => "Status", + ], + "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." => [ + 0 => "Das System arbeitet mit einem geplanten Befehl um das Importieren fortlaufend zu verarbeiten. Hierzu ist ein Crontab Eintrag notwendig.", + ], + "You can run the command in parallel by changing the integer value of %s%." => [ + 0 => "Sie können den Befehl parallel starten indem Sie den Integer Wert auf %s% setzen.", + ], + "All file-system permissions must be granted for the crontab user at %path%" => [ + 0 => "Alle Berechtigung des Dateisystems müssen für den Crontab Benutzer im Pfad %path% gesetzt sein.", + ], + "Add import job" => [ + 0 => "Import-Aufgabe hinzufügen", + ], + "Process import" => [ + 0 => "Import verarbeiten", + ], + "Top level folders as %s" => [ + 0 => "Top-Level-Ordner als %s", + ], + "Process" => [ + 0 => "Verarbeiten", + ], + "Cancel" => [ + 0 => "Abbrechen", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Wollen Sie wirklich die Import-ID %s entfernen?", + ], + "Manual importing" => [ + 0 => "Manuelles Importieren", + ], + "The system will parse the contents of any available filesystem path." => [ + 0 => "Das System analysiert die Inhalte eines jeden verfügbaren Dateisystem-Pfades.", + ], + "These processes must be manually created and handled with the web browser tab open." => [ + 0 => "Dieser Prozess muss manuell erstellt und mit geöffnetem Web-Browser Tab ausgeführt werden.", + ], + "Parser" => [ + 0 => "Parser", + ], + "Add user" => [ + 0 => "Benutzer hinzufügen", + ], + "Role" => [ + 0 => "Berechtigung", + ], + "Manager" => [ + 0 => "Moderator", + ], + "Administrator" => [ + 0 => "Administrator", + ], + "Email address" => [ + 0 => "E-Mail-Adresse", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Diese Einstellung ist immer deaktivert, wenn Sie den Privat-Modus aktiviert habe.", + ], + "Add category" => [ + 0 => "Kategorie hinzufügen", + ], + "Add IP ban" => [ + 0 => "IP-Bann hinzufügen", + ], + "Add storage" => [ + 0 => "Datenspeicher hinzufügen", + ], + "Return to pages" => [ + 0 => "Zurück zu den Seiten", + ], + "Website name" => [ + 0 => "Name der Internetseite", + ], + "Website doctitle" => [ + 0 => "Titel der Internetseite", + ], + "Website description" => [ + 0 => "Beschreibung der Internetseite", + ], + "Powered by" => [ + 0 => "Unterstützt von", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "Aktivieren, falls Teilen-Button für soziale Netzwerke angezeigt werden sollen.", + ], + "Automatic" => [ + 0 => "Automatisch", + ], + "Forced" => [ + 0 => "Erzwingen", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a nutzt die serverseitige HTTPS-Erkennung (empfohlen). %f nutzt HTTPS unabhängig Ihrer Server-Einstellungen. %d deaktiviert die Nutzung von HTTPS vollständig.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Diese Einstellung beeinflusst nur das Protokoll, welches in URLs genutzt wird. Sie verwandelt Ihre Internetseite nicht in eine echte HTTPS-Seite, solange Ihr Server nicht für HTTPS konfiguriert wurde.", + ], + "Default time zone" => [ + 0 => "Standard-Zeitzone", + ], + "Select region" => [ + 0 => "Region wählen", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Ermöglicht die Suche nach Bildern, Alben und Benutzern anhand der gegebenen Suchanfrage.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Erlaubt öffentlich bereitgestellte Bilder zu durchsuchen. Die Kategorien werden ebenso aktiviert.", + ], + "guests" => [ + 0 => "Gäste", + ], + "Enables explore for guests." => [ + 0 => "\"Entdecken\"-Modus für Gäste aktivieren.", + ], + "Enables to browse images randomly." => [ + 0 => "Aktiviert das zufällige Durchsuchen von Bildern.", + ], + "Likes" => [ + 0 => "Likes", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Erlaubt Benutzern, Content zu liken und die beliebtesten Inhalte anzeigen zu lassen.", + ], + "Followers allows users to follow each other." => [ + 0 => "Die Funktion \"Followers\" ermöglicht es, Inhalte anderer Benutzer zu folgen.", + ], + "Personal mode target user" => [ + 0 => "Privat-Modus Zielbenutzer", + ], + "User ID" => [ + 0 => "Benutzer-ID", + ], + "Your user id is: %s" => [ + 0 => "Ihre Benutzer-ID lautet: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Numerische ID des Zielbenutzer für den Privat-Modus.", + ], + "Personal mode routing" => [ + 0 => "Privat-Modus Routing", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Individuelle Route um /Benutzername auf /etwas abzubilden. Verwenden Sie \"/\" auf die Startseite abzubilden.", + ], + "Website privacy mode" => [ + 0 => "Datenschutzmodus der Internetseite", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Im Privat-Modus ist die Internetseite nur für registrierte Benutzer verfügbar.", + ], + "Content privacy mode" => [ + 0 => "Inhalt-Datenschutzmodus", + ], + "Default" => [ + 0 => "Standard", + ], + "Force private (self)" => [ + 0 => "Erzwinge Privat (Ich)", + ], + "Force private (anyone with the link)" => [ + 0 => "Erzwinge Privat (Alle mit Link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Erzwungener Datenschutz-Modus ignoriert ausgewählte Datenschutzeinstellung des Benutzers.", + ], + "Page title" => [ + 0 => "Seitentitel", + ], + "Page status" => [ + 0 => "Seitenstatus", + ], + "Active page" => [ + 0 => "Aktive Seite", + ], + "Inactive page (%s)" => [ + 0 => "Inaktive Seite (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Nur aktive Seiten werden angezeigt.", + ], + "Type" => [ + 0 => "Typ", + ], + "Terms of service" => [ + 0 => "Nutzungsbedingungen", + ], + "Privacy" => [ + 0 => "Privatsphäre", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "Extra page" => [ + 0 => "Zusätzliche Seite", + ], + "Internal page type" => [ + 0 => "Interner Seitentyp", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Sie können mehrere zusätzliche Seiten erstellen, allerdings nur jeweils einen der speziellen internen Seitentypen.", + ], + "Page visibility" => [ + 0 => "Seitensichtbarkeit", + ], + "Visible page" => [ + 0 => "Sichtbare Seite", + ], + "Hidden page" => [ + 0 => "Versteckte Seite", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Versteckte Seiten werden nicht im Menü angezeigt, allerdings kann jeder über die direkte URL auf sie zugreifen.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Nur alphanumerische Zeichen, Bindestriche und Schrägstriche erlaubt.", + ], + "File path" => [ + 0 => "Dateifpad", + ], + "A %f file relative to %s" => [ + 0 => "Eine %f Datei relativ zu %s", + ], + "Meta keywords" => [ + 0 => "Meta-Schlüsselwörter", + ], + "Meta description" => [ + 0 => "Meta-Beschreibung", + ], + "Source code" => [ + 0 => "Quellcode", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Keine Schreibberechtigung im Pfad %s. Sie müssen diese Datei mit einem externen Editor hinzufügen.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Keine Schreibberechtigung in %s. Sie müssen den Inhalt dieser Datei mit einem externen Editor bearbeiten.", + ], + "Taken from: %s" => [ + 0 => "Von: %s", + ], + "Link URL" => [ + 0 => "Link-URL", + ], + "Link target attribute" => [ + 0 => "Link-Zieleigenschaft", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Wählen Sie %s um die Seite zu öffnen oder in ein neues Fenster zu verlinken.", + ], + "Link rel attribute" => [ + 0 => "Link-rel-Attribut", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Nur alphanumerische Zeichen, Bindestriche und Leerzeichen erlaubt.", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt;%s Eigenschaft", + ], + "Link icon" => [ + 0 => "Link-Icon", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Überprüfen Sie die <a %s>Icon-Referenz</a> für eine vollständige Liste mit allen unterstützten Icons.", + ], + "Sort order display" => [ + 0 => "Anzeige der Sortierungsreihenfolge", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Anzeige der Sortierungsreihenfolge für Seiten und Auflistungen. Setzen Sie \"1\" für höchste Priorität.", + ], + "pages" => [ + 0 => "Seiten", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Wollen Sie wirklich die Seite mit der ID %s löschen? Dies kann nicht rückgängig gemacht werden.", + ], + "Enabled image formats" => [ + 0 => "Aktivierte Bildformate", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Nicht markierte Bildformate sind nicht für das Hochladen zugelassen.", + ], + "Enable uploads" => [ + 0 => "Hochladen aktivieren", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Aktivieren, falls das Hochladen von Bildern erlaubt sein soll. Diese Einstellung hat keinen Einfluss auf Administratoren.", + ], + "Upload user interface" => [ + 0 => "Upload-Benutzeroberfläche", + ], + "On-page container" => [ + 0 => "On-Page Container", + ], + "route" => [ + 0 => "Route", + ], + "Guest uploads" => [ + 0 => "Gast-Uploads", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Aktivieren, falls nicht registrierten Benutzern das Hochladen von Bildern erlaubt sein soll.", + ], + "Moderate uploads" => [ + 0 => "Moderation", + ], + "Guests" => [ + 0 => "Gäste", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Aktivieren, falls hochgeladene Inhalte moderiert werden sollen. Entsprechende Inhalte müssen zunächst über die Moderation freigeschaltet werden.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Aktiviere Embed-Codes (Uploader)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Aktivieren, falls Embed-Codes nach einem Upload angezeigt werden sollen.", + ], + "Upload threads" => [ + 0 => "Upload-Threads", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Anzahl der maximal möglichen gleichzeitigen Uploads (Threads)", + ], + "Redirect on single upload" => [ + 0 => "Direkte Weiterleitung bei einzelnem Upload", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Aktivieren Sie diese Funktion, wenn Sie bei einem einzelnen Upload auf die Seite des Bildes weiterleiten wollen.", + ], + "Enable duplicate uploads" => [ + 0 => "Erlaube doppelte Uploads", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Aktivieren Sie diese Option, wenn sie doppelte Uploads von der identischen IP-Adresse innerhalb von 24h ermöglichen wollen. Diese Einstellung hat keine Auswirkung auf Administratoren.", + ], + "Enable expirable uploads" => [ + 0 => "Uploads mit Ablaufdatum", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Aktivieren, falls Sie Uploads mit einer automatischen Löschung nach einer bestimmten Zeit aktivieren wollen.", + ], + "Auto delete guest uploads" => [ + 0 => "Automatisches Löschen von Gast-Uploads", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Aktivieren, falls hochgeladene Bilder von Gästen automatisch nach einer bestimmten Zeit gelöscht werden sollen.", + ], + "Maximum image size" => [ + 0 => "Maximale Bildgröße", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Bilder mit einer größeren Dateigröße werden automatisch verkleinert. Verwenden Sie Null (0), um kein Limit festzulegen.", + ], + "Image Exif data" => [ + 0 => "EXIF-Daten", + ], + "Keep" => [ + 0 => "Beibehalten", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Wählen Sie die Standardeinstellung für <a %s>EXIF-Daten</a> beim Upload.", + ], + "Image Exif data (user setting)" => [ + 0 => "EXIF-Daten (Benutzer-Einstellung)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Aktivieren, falls Sie Benutzern erlauben wollen, die Behandlung von EXIF-Daten beim Upload individuell zu wählen.", + ], + "Maximum upload file size" => [ + 0 => "Maximale Upload-Dateigröße", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Die maximale Dateigröße die vom Server erlaubt wird beträgt %s. Dieses Limit wird von %u und %p begrenzt (%f Werte).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Das Gleiche wie \"%s\" aber für Gäste.", + ], + "Image path" => [ + 0 => "Bildpfad", + ], + "Relative to Chevereto root" => [ + 0 => "Relativ zum Chevereto-Stammverzeichnis", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Wo wollen Sie die Bilder speichern? Relativ zum Chevereto-Stammverzeichnis.", + ], + "Storage mode" => [ + 0 => "Speichermodus", + ], + "Datefolders" => [ + 0 => "Datum", + ], + "Direct" => [ + 0 => "Direkt", + ], + "Datefolders creates %s structure" => [ + 0 => "\"Datum\" erstellt %s Struktur", + ], + "File naming method" => [ + 0 => "Benennungsmethode", + ], + "Original" => [ + 0 => "Original", + ], + "Mix original + random" => [ + 0 => "Mix Original & Zufall", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "Die Einstellung \"Original\" versucht den ursprünglichen Dateinamen des Bildes zu erhalten, während \"Zufall\" einen zufälligen Dateinamen erzeugt. \"ID\" bennent das Bild nach der Bild-ID.", + ], + "Thumb size" => [ + 0 => "Vorschaubildgröße", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Vorschaubilder werden an die gewählte Größe angepasst.", + ], + "Medium image fixed dimension" => [ + 0 => "Feste Größe für Medium-Bild", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Medium-Bilder werden auf eine feste Größe gesetzt. Wenn Sie zum Beispiel die Breite als feste Größe setzen, wird die Höhe automatisch berechnet.", + ], + "Medium image fixed size" => [ + 0 => "Feste Größe für Medium-Bild", + ], + "Width or height will be automatically calculated." => [ + 0 => "Breite oder Höhe wird automatisch berechnet.", + ], + "Watermarks" => [ + 0 => "Wasserzeichen", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Aktivieren, falls Logos oder Grafiken auf hochgeladenen Bildern angezeigt werden sollen.", + ], + "Warning: Can't write in %s" => [ + 0 => "Warnung: Keine Schreibrechte in %s", + ], + "Watermark user toggles" => [ + 0 => "Wasserzeichen-Modus nach Benutzer", + ], + "Enable watermark on guest uploads" => [ + 0 => "Aktiviere Wasserzeichen für Gäste-Uploads", + ], + "Enable watermark on user uploads" => [ + 0 => "Aktiviere Wasserzeichen für Benutzer-Uploads", + ], + "Enable watermark on admin uploads" => [ + 0 => "Aktiviere Wasserzeichen für Admin-Uploads", + ], + "Watermark file toggles" => [ + 0 => "Wasserzeichen-Modus nach Dateityp", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Aktiviere Wasserzeichen für GIF-Uploads", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Mindestbildgröße zur Anwendung von Wasserzeichen", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Liegt ein Bild unterhalb der Mindestbildgröße, werden keine Wasserzeichen angewandt. Setzen Sie Null (0), um keine Mindestbildgröße festzulegen.", + ], + "Watermark image" => [ + 0 => "Wasserzeichen-Grafik", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Die besten Resultate werden mit flachen Logos mit Schlagschatten erzielt. Auch große Bilder können verwendet werden, sofern die Dateigröße gering ist (es werden maximal 16 KB empfohlen). Das Dateiformat PNG ist zwingend erforderlich.", + ], + "Watermark position" => [ + 0 => "Wasserzeichen-Position", + ], + "left top" => [ + 0 => "Links oben", + ], + "left center" => [ + 0 => "Links mittig", + ], + "left bottom" => [ + 0 => "Links unten", + ], + "center top" => [ + 0 => "Mittig oben", + ], + "center center" => [ + 0 => "Zentriert", + ], + "center bottom" => [ + 0 => "Mittig unten", + ], + "right top" => [ + 0 => "Rechts oben", + ], + "right center" => [ + 0 => "Rechts mittig", + ], + "right bottom" => [ + 0 => "Rechts unten", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Relative Position des Wasserzeichens. Horizontale Ausrichtung zuerst, dann vertikale Ausrichtung.", + ], + "Watermark percentage" => [ + 0 => "Wasserzeichen-Größenverhältnis", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Größenverhältnis des Wasserzeichen relativ zum Original-Bild. Werte zwischen 1 und 100.", + ], + "Watermark margin" => [ + 0 => "Wasserzeichen-Abstand", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Abstand vom Rand des Bildes zur Wasserzeichen-Grafik.", + ], + "Watermark opacity" => [ + 0 => "Wasserzeichen-Transparenz", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Transparenz des Wasserzeichens im Bild. Werte von 0 bis 100 erlaubt.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Dashboard > Einstellungen > Internetseite", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Kategorien funktionieren nicht, wenn die \"Entdecken\"-Funktion ausgeschaltet ist. Um die Einstellung zu ändern, klicken Sie hier %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Wollen Sie wirklich die Kategorie %s löschen? Dies kann nicht ruckgängig gemacht werden.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Hinweis: Wird eine Kategorie gelöscht, bleiben die zugehörigen Bilder erhalten.", + ], + "Edit category" => [ + 0 => "Kategorie bearbeiten", + ], + "Expires" => [ + 0 => "Ablaufdatum", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Wollen Sie wirklich die IP-Adresse %s entsperren? Dies kann nicht rückgängig gemacht werden.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Für gesperrte IP-Adressen wird die Nutzung der gesamten Internetseite unterbunden.", + ], + "Edit IP ban" => [ + 0 => "IP-Bann bearbeiten", + ], + "Enable signups" => [ + 0 => "Registrierung aktivieren", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Aktivieren, falls Benutzern die Registrierung erlaubt sein soll.", + ], + "Enable user content delete" => [ + 0 => "Löschen von Nutzerinhalten aktivieren", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Aktivieren, falls Nutzern erlaubt werden soll, ihre eigenen Inhalte zu löschen. Diese Einstellung hat keine Auswirkung auf Administratoren.", + ], + "Minimum age required" => [ + 0 => "Mindestalter", + ], + "Empty" => [ + 0 => "Leer", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Lassen Sie dieses Feld leer, um kein Mindestalter für die Internetseite einzurichten.", + ], + "Notify on user signup" => [ + 0 => "Benachrichtigung bei Neuanmeldung", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Aktivieren, falls Sie eine E-Mail-Benachrichtigung erhalten möchten, wenn sich ein neuer Nutzer anmeldet.", + ], + "Username routing" => [ + 0 => "Benutzernamen-Routing", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Aktivieren, falls %s/Benutzername URLs anstatt %s/user/Benutzername für die Darstellung der URLs benutzt werden soll.", + ], + "Require email confirmation" => [ + 0 => "E-Mail-Bestätigung", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Aktivieren, falls eine Validierung der E-Mail-Adresse bei der Registrierung durch den Benutzer erfolgen soll.", + ], + "Require email for social signup" => [ + 0 => "E-Mail-Bestätigung für Anmeldung über soziales Netzwerk", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Aktivieren, falls bei Anmeldung über ein soziales Netzwerk die Eingabe einer E-Mail-Adresse vorausgesetzt werden soll.", + ], + "User avatar max. filesize" => [ + 0 => "Profilbild - Maximale Dateigröße", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Maximale Dateigröße für Profilbild des Benutzers (%s werden vom Server maximal erlaubt).", + ], + "User background max. filesize" => [ + 0 => "Hintergrundbild - Maximale Dateigröße", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Maximale Dateigröße für das Hintergrundbild des Benutzers (%s werden vom Server maximal erlaubt).", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Zeigt ein Zustimmungsmitteilung, bevor der Zugriff auf die Website erlaubt wird. Dies ist nützlich für Internetseiten mit Inhalten für Erwachsene und auf denen Minderjährige nicht zugelassen werden sollen.", + ], + "Enable consent screen" => [ + 0 => "Aktiviere Zustimmungsmitteilung", + ], + "Consent screen cover image" => [ + 0 => "Titelbild für Zustimmungsmitteilung", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Der Flood-Schutz verhindert Bild-Uploads über bestimmte IP-Adressen, so bald das System eine zu hohe Anzahl an Uploads innerhalb einer vorgegebenen Zeitspanne registriert. Diese Einstellung hat keinen Einfluss auf Administratoren.", + ], + "Notify to email" => [ + 0 => "Nachricht an E-Mail", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Aktivieren, falls bei Flood-Ereignissen eine E-Mail an den Administrator versendet werden soll.", + ], + "Minute limit" => [ + 0 => "Minuten-Limit", + ], + "Hourly limit" => [ + 0 => "Stunden-Limit", + ], + "Daily limit" => [ + 0 => "Tages-Limit", + ], + "Weekly limit" => [ + 0 => "Wochen-Limit", + ], + "Monthly limit" => [ + 0 => "Monats-Limit", + ], + "Lock %s editing" => [ + 0 => "Sperrung von Änderungen bei %s", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "Aktivieren, falls Benutzer daran gehindert werden sollen, die Kennzeichnung anstößiger Inhalte (NSFW) zu verändern. Wenn aktiviert, können nur Administratoren und Moderatoren die Einstellung verändern.", + ], + "Show not safe content in listings" => [ + 0 => "Anstößige Inhalte anzeigen", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Aktivieren, falls anstößiger Inhalt in Auflistungen angezeigt werden sollen. Diese Einstellung gilt nicht für Administratoren und kann durch Benutzereinstellungen außer Kraft gesetzt werden.", + ], + "Blur NSFW content in listings" => [ + 0 => "Freizügige Inhalte (NSFW) in Auflistung verschleiern", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Aktivieren, falls als freizügig markierte Inhalte in der Auflistung der Bilder verschwommen dargestellt werden sollen.", + ], + "Show banners in not safe content" => [ + 0 => "Werbeanzeigen bei anstößigem Inhalt anzeigen", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Aktivieren, falls Werbeanzeigen bei Seiten mit anstößigem Inhalt angezeigt werden sollen.", + ], + "Show not safe content in random mode" => [ + 0 => "Zeige anstößigen Inhalt im Zufall-Modus", + ], + "List items per page" => [ + 0 => "Listen-Objekte je Seite", + ], + "How many items should be displayed per page listing." => [ + 0 => "Anzahl der dargestellten Objekte je Seite.", + ], + "List pagination mode" => [ + 0 => "Seitenumbruch-Modus", + ], + "Endless scrolling" => [ + 0 => "Endlos-Scrolling", + ], + "Classic pagination" => [ + 0 => "Klassischer Seitenumbruch", + ], + "What pagination method should be used." => [ + 0 => "Auswahl der Methode zum Seitenumbruch.", + ], + "Listing viewer" => [ + 0 => "Listenansicht", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Aktivieren, wenn eine Listenansicht bei einem Klick auf ein Bild angezeigt werden soll.", + ], + "Image listing size" => [ + 0 => "Bildgröße für Auflistung", + ], + "Fluid" => [ + 0 => "Fließend", + ], + "Fixed" => [ + 0 => "Fixiert", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Beide Methoden nutzen eine feste Bildbreite, mit \"Fließend\" wird die Bildhöhe automatisch angepasst.", + ], + "Album listing images requirement" => [ + 0 => "Mindestanzahl von Bildern für Alben-Listenmodus", + ], + "explore" => [ + 0 => "Entdecken", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Definiert die Mindestanzahl von Bildern die notwendig ist, um Alben im \"Entdecken\"-Modus anzuzeigen.", + ], + "Listing columns number" => [ + 0 => "Anzahl der Listen-Spalten", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Hier können Sie festlegen, wie viele Spalten auf welchem Gerät benutzt werden sollen", + ], + "Phone" => [ + 0 => "Handy", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Desktop", + ], + "theme editing" => [ + 0 => "Theme-Bearbeitung", + ], + "Put your themes in the %s folder" => [ + 0 => "Platzieren Sie Ihre Themes in das Verzeichnis \"%s\".", + ], + "Tone" => [ + 0 => "Farbschema", + ], + "Light" => [ + 0 => "Hell", + ], + "Dark" => [ + 0 => "Dunkel", + ], + "Main color" => [ + 0 => "Hauptfarbe", + ], + "Hexadecimal color value" => [ + 0 => "Hexadezimaler Farbwert", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Nutzen Sie diese Funktion, um die Hauptfarbe des Themes zu bestimmen. Der Wert muss im <a href=\"%s\" target=\"_blank\">HEX-Format</a> angegeben werden.", + ], + "Top bar button color" => [ + 0 => "Farbe der Hauptleisten-Buttons", + ], + "Blue" => [ + 0 => "Blau", + ], + "Green" => [ + 0 => "Grün", + ], + "Orange" => [ + 0 => "Orange", + ], + "Red" => [ + 0 => "Rot", + ], + "Grey" => [ + 0 => "Grau", + ], + "Black" => [ + 0 => "Schwarz", + ], + "White" => [ + 0 => "Weiß", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Farbe der Hauptleisten-Buttons, z. B. der \"Konto erstellen\"-Button.", + ], + "Enable vector logo" => [ + 0 => "Aktiviere Vektor-Logo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Aktiviere Vektor-Logo für hochauflösende Anzeigegeräte.", + ], + "Vector logo image" => [ + 0 => "Vektor-Logo-Grafik", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Vektor-Grafik des Internetseiten-Logos im SVG-Format.", + ], + "Raster logo image" => [ + 0 => "Raster-Logo-Grafik", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Bitmap-Grafik des Internetseiten-Logos. PNG-Format wird empfohlen.", + ], + "Logo height" => [ + 0 => "Logo-Höhe", + ], + "No value" => [ + 0 => "Kein Wert", + ], + "Use this to set the logo height if needed." => [ + 0 => "Diese Funktion gibt eine feste Höhe des Logos vor.", + ], + "Favicon image" => [ + 0 => "Favicon-Grafik", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Die Favicon-Grafik muss die gleiche Höhe und Breite aufweisen.", + ], + "Image load max. filesize" => [ + 0 => "Maximale Bilder-Dateigröße", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Bilder mit einer größeren Dateigröße erhalten eine Schaltfläche zum Laden der vollen Auflösung.", + ], + "Enable download button" => [ + 0 => "Download-Button aktivieren", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Aktivieren, falls ein Download-Button für Bilder angezeigt werden soll.", + ], + "Enable right click on image" => [ + 0 => "Rechte Maustaste aktivieren", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Aktivieren, falls ein Klick mit der rechten Maustaste im Bildbetrachter erlaubt sein soll.", + ], + "Enable show Exif data" => [ + 0 => "EXIF-Daten anzeigen", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Aktivieren, falls die EXIF-Daten der Bilder angezeigt werden sollen.", + ], + "Enable social share" => [ + 0 => "Aktiviere Social-Share-Funktion", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Aktivieren, falls Buttons von sozialen Netzwerken angezeigt werden sollen.", + ], + "Enable embed codes (content)" => [ + 0 => "Aktiviere Embed-Codes (Inhalt)", + ], + "Everybody" => [ + 0 => "Jeder", + ], + "Users only" => [ + 0 => "Nur Benutzer", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Aktivieren, falls Embed-Codes auf den Inhalt-Seiten angezeigt werden sollen.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Marker für anstößigen Inhalt beim Hochladen anzeigen", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Aktivieren, falls eine Option zur Kennzeichnung von anstößigem Inhalt beim Hochladen angezeigt werden soll.", + ], + "Custom CSS code" => [ + 0 => "Eigener CSS-Code", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Eigener CSS-Code kann hier eingefügt werden. Das Code wird als <style> platziert bevor der </head> Tag geschlossen wird.", + ], + "Custom JS code" => [ + 0 => "Eigener JS-Code", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Eigener JS-Code kann hier eingefügt werden. Der Code wird als <script> platziert bevor der </head> Tag geschlossen wird.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Nutzen hier Sie keinen %s Markup. Dieses Feld ist nur für reinen JS-Code und nicht for HTML-Script-Tags gedacht. Sollten Script-Tags genutzt werden, wird dies Ihre Internetseite funktionsuntüchtig machen.", + ], + "Style" => [ + 0 => "Style", + ], + "Landing page" => [ + 0 => "Landing-Page", + ], + "Split landing + images" => [ + 0 => "Trennung Landing-Page + Bilder", + ], + "Route %s" => [ + 0 => "Route %s", + ], + "upload" => [ + 0 => "hochladen", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Wählen Sie den Style Ihrer Internetseite aus. Zum Anpassen muss app/themes/%s/views/index.php bearbeitet werden.", + ], + "Cover image" => [ + 0 => "Titelbild", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Wollen Sie dieses Bild wirklich löschen? Dies kann nicht rückgängig gemacht werden.", + ], + "Delete image" => [ + 0 => "Bild löschen", + ], + "Add new cover image" => [ + 0 => "Neues Titelbild hinzufügen", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Vektor-Grafik des Internetseiten-Logos im SVG-Format.", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Bitmap-Grafik des Internetseiten-Logos. PNG-Format wird empfohlen.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Die Eingabe wird innerhalb des %s Tag der Internetseite eingefügt. Lassen Sie das Feld frei, um die Standardinhalte zu verwenden.", + ], + "Paragraph" => [ + 0 => "Paragraph", + ], + "Call to action button color" => [ + 0 => "\"Call to Action\"-Button-Farbe", + ], + "Color of the homepage call to action button." => [ + 0 => "Farbe des \"Call to Action\"-Buttons.", + ], + "Call to action outline style button" => [ + 0 => "\"Call to Action\"-Button-Außenlinie", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Aktivieren, falls für den \"Call to Action\"-Button eine Umrandung gesetzt werden soll.", + ], + "Call to action functionality" => [ + 0 => "\"Call to Action\"-Funktionsweise", + ], + "Trigger uploader" => [ + 0 => "Trigger-Uploader", + ], + "Open URL" => [ + 0 => "URL öffnen", + ], + "Call to action URL" => [ + 0 => "\"Call to Action\" URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Geben Sie eine absolute oder relative URL an.", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Eine relative URL wie zum Beispiel %r wird auf %l abgebildet.", + ], + "Call to action HTML" => [ + 0 => "\"Call to Action\" HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Dies wird innerhalb des \"Call to Action\" <a> Tag eingefügt. Lassen Sie das Feld frei, um den Standardinhalt zu verwenden.", + ], + "User IDs" => [ + 0 => "Benutzer-IDs", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Komma-separierte Liste von Benutzer-IDs um Bilder auf der Internetseite anzuzeugen. Lassen Sie diese Einstellung frei oder auf Null um alle aktuellen Bilder anzuzeigen.", + ], + "banners" => [ + 0 => "Banner", + ], + "Automatic updates check" => [ + 0 => "Automatisch nach Updates suchen", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Falls aktiviert, wird das System automatisch auf neue Aktualisierungen hinweisen.", + ], + "Display available updates notification" => [ + 0 => "Anzeigen der verfügbaren Update-Benachrichtigungen", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Aktivieren, wenn Sie einen Hinweis über verfügbare System-Updates wünschen.", + ], + "Dump update query" => [ + 0 => "Aktualisierungsanfrage verwerfen", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Aktivieren, wenn automatisch die korrekte Sprache für jeden Nutzer gesetzt werden soll.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URLs", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Aktivieren, falls SEO %s URLs genutzt werden sollen.", + ], + "Minify code" => [ + 0 => "Code-Reduktion", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Aktivieren, falls CSS und JS Code automatisch reduziert werden soll.", + ], + "Maintenance" => [ + 0 => "Wartung", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Aktivieren, falls eine Wartungsmeldung angezeigt werden soll. Diese Einstellung hat keine Auswirkung auf Administratoren.", + ], + "Crypt salt" => [ + 0 => "Krypto-Salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Das Salt, das zur Umwandlung von numerischen in alphanumerische IDs genutzt wird. Dieses wurde bei der Installation automatisch erzeugt.", + ], + "PHP error reporting" => [ + 0 => "PHP-Fehler-Bericht", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Aktivieren, falls Fehlermeldungen von PHP über <a %s>error_reporting()</a> angezeigt werden sollen. Diese Funktion sollte im Live-Betrieb deaktiviert werden.", + ], + "Debug level" => [ + 0 => "Debug-Level", + ], + "None" => [ + 0 => "Keine", + ], + "Error log" => [ + 0 => "Fehler-Log", + ], + "Print errors without error log" => [ + 0 => "Fehlerausgabe ohne Fehler-Log", + ], + "Print and log errors" => [ + 0 => "Fehlerausgabe mit Fehler-Log", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Um den Debug-Level zu konfigurieren prüfen Sie die <a %s>Debug-Dokumentation</a>. Die Standardeinstellung lautet \"Fehler-Log\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "Das Routing erlaubt benutzerdefinierte Pfade festzulegen. Es sind nur alphanumerische Zeichen, Bindestriche und Unterstriche erlaubt. Prüfen Sie %s, wenn Sie Pfade überschreiben oder neue festlegen wollen.", + ], + "Image routing" => [ + 0 => "Bild-Routing", + ], + "Routing for %s" => [ + 0 => "Routing für %s", + ], + "Album routing" => [ + 0 => "Album-Routing", + ], + "Hostname" => [ + 0 => "Hostname", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Hostname, auf den Subdomain-Wildcards hinzugefügt werden.", + ], + "This setting may be overridden by %s." => [ + 0 => "Diese Einstellung wird eventuell durch %s überschrieben-", + ], + "Language subdomains" => [ + 0 => "Subdomains für Sprachen", + ], + "languages" => [ + 0 => "Sprachen", + ], + "Enable to use %s for %t." => [ + 0 => "Aktivieren, um %s für %t zu nutzen.", + ], + "Username subdomains" => [ + 0 => "Subdomains für Nutzernamen", + ], + "user profiles" => [ + 0 => "Nutzerprofile", + ], + "Custom language strings" => [ + 0 => "Eigene Sprachen-Strings", + ], + "language strings" => [ + 0 => "Sprachen-Strings", + ], + "Default language" => [ + 0 => "Standardsprache", + ], + "Default base language to use." => [ + 0 => "Diese Option ermöglicht die Festsetzung einer Sprachversion als Standardeinstellung.", + ], + "Auto language" => [ + 0 => "Automatische Spracheinstellung", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Aktivieren, falls automatisch die passende Sprache für den Benutzer gewählt werden soll.", + ], + "Language chooser" => [ + 0 => "Sprachauswahl", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Aktivieren, falls die Sprachauswahl aktiviert werden soll.", + ], + "Enabled languages" => [ + 0 => "Sprachen aktivieren", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Nicht markierte Sprachen werden nicht verwendet.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Aktivieren, falls HTTPS genutzt werden soll.", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Aktivieren, falls externer Datenspeicher genutzt werden soll.", + ], + "Quota" => [ + 0 => "Kontingent", + ], + "Active" => [ + 0 => "Aktiv", + ], + "Storage method" => [ + 0 => "Speichermethode", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Der lokale Speicher wird entweder standardmäßig genutzt oder wenn kein externer Speicher aktiv ist.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Falls Sie Hilfe benötigen, überprüfen Sie die <a %s>Datenspeicher Dokumentation</a>.", + ], + "Edit storage" => [ + 0 => "Datenspeicher bearbeiten", + ], + "From name" => [ + 0 => "Absendername", + ], + "Sender name for emails sent to users." => [ + 0 => "Absendername für E-Mail-Kontakt mit Benutzern.", + ], + "Email mode" => [ + 0 => "E-Mail-Modus", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Wie wollen Sie E-Mails versenden? SMTP wird empfohlen.", + ], + "SMTP server and port" => [ + 0 => "SMTP-Server und Port", + ], + "SMTP server" => [ + 0 => "SMTP-Server", + ], + "SMTP username" => [ + 0 => "SMTP-Benutzername", + ], + "SMTP password" => [ + 0 => "SMTP-Passwort", + ], + "SMTP security" => [ + 0 => "SMTP-Sicherheit", + ], + "Unsecured" => [ + 0 => "Ungesichert", + ], + "Decode ID" => [ + 0 => "Dekodierungs-ID", + ], + "Encode ID" => [ + 0 => "Enkodierungs-ID", + ], + "Send test email" => [ + 0 => "Test-E-Mail senden", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Nutzen Sie diese Funktion um zu testen, wie Ihre E-Mails ausgeliefert werden. Wir empfehlen die Nutzung von %s.", + ], + "Export a user" => [ + 0 => "Benutzer exportieren", + ], + "Export user" => [ + 0 => "Exportieren", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Diese Funktion ermöglicht es, die persönlichen Informationen eines Nutzers als JSON-Datei herunterzuladen.", + ], + "Regenerate external storage stats" => [ + 0 => "Statistiken der externen Datenspeicher erneuern", + ], + "Storage id" => [ + 0 => "Datenspeicher-ID", + ], + "Regenerate" => [ + 0 => "Erneuern", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Dies berechnet die Summe aller Bild-Datensätze neu, die mit dem externen Datenspeicher verbunden sind.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Migriert alle Bild-Datensätze von einem externen Datenspeicher auf einen anderen", + ], + "Source storage id" => [ + 0 => "ID des Quell-Datenspeichers", + ], + "Target storage id" => [ + 0 => "ID des Ziel-Datenspeichers", + ], + "Migrate" => [ + 0 => "Migrieren", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Diese Aktion aktualisiert nur die Datenbank. Sie müssen die tatsächlichen Dateien zum Zielspeicherort eigenständig transferieren. URL-Überschreibungen werden empfohlen. Setzten Sie Null (0) für eine lokale Speicherung.", + ], + "social networks" => [ + 0 => "Soziale Netzwerke", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Sie benötigen eine <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook App</a> für diese Funktion.", + ], + "Facebook app id" => [ + 0 => "Facebook App-ID", + ], + "Facebook app secret" => [ + 0 => "Facebook App-Secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Sie benötigen eine <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter App</a> für diese Funktion.", + ], + "Twitter API key" => [ + 0 => "Twitter API-Schlüssel", + ], + "Twitter API secret" => [ + 0 => "Twitter API-Secret", + ], + "Twitter account" => [ + 0 => "Twitter Konto", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Sie benötigen eine <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google App</a> für diese Funktion.", + ], + "Google client id" => [ + 0 => "Google Client-ID", + ], + "Google client secret" => [ + 0 => "Google Client-Secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Sie benötigen eine <a href=\"http://vk.com/dev\" target=\"_blank\">VK App</a> für diese Funktion.", + ], + "VK client id" => [ + 0 => "VK Client-ID", + ], + "VK client secret" => [ + 0 => "VK Client-Secret", + ], + "%s spam protection" => [ + 0 => "%s Spamschutz", + ], + "user generated content" => [ + 0 => "Benutzergenerierte Inhalte", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Aktivieren, um mit %l Spam auf %c zu blockieren.", + ], + "%s API key" => [ + 0 => "%s API-Schlüssel", + ], + "user signup" => [ + 0 => "Benutzeranmeldung", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Sie benötigen einen <a href=\"%s\" target=\"_blank\">reCAPTCHA Schlüssel</a> für diese Funktion.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Bitte beachten Sie, dass für jede reCAPTCHA-Version ein eigener API-Schlüssel erforderlich ist. Vergessen Sie nicht, die API-Schlüssel zu aktualisieren, wenn Sie die Version geändert haben.", + ], + "%s site key" => [ + 0 => "%s Seiten-Schlüssel", + ], + "%s secret key" => [ + 0 => "%s Geheimer Schlüssel", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA Schwelle", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Ab wie vielen Fehlversuchen beim Login soll eine reCAPTCHA-Abfrage notwendig werden? Bei Null (0) wird immer eine reCAPTCHA-Eingabe verlangt.", + ], + "Force %s on contact page" => [ + 0 => "%s auf Kontaktseite erzwingen", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Aktivieren Sie diese Option, um %s immer auf der Kontaktseite anzuzeigen.", + ], + "Comments API" => [ + 0 => "Kommentare-API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API unterstützt %s.", + ], + "Disqus shortname" => [ + 0 => "Disqus Name", + ], + "%s public key" => [ + 0 => "%s Öffentlicher Schlüssel", + ], + "Comment code" => [ + 0 => "Kommentarfunktion", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook und vergleichbare Dienste. Diese werden unter der Bildansicht angezeigt.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "Automatische Freischaltung der Inhalte über %s.", + ], + "Automatic approve" => [ + 0 => "Automatische Freischaltung", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Aktivieren, falls Inhalte automatisch durch diesen Dienst freigeschaltet werden sollen.", + ], + "Block content" => [ + 0 => "Inhalt blockieren", + ], + "Adult" => [ + 0 => "Adult", + ], + "Teen and adult" => [ + 0 => "Teen und Adult", + ], + "Flag NSFW" => [ + 0 => "Anstößige Inhalte", + ], + "Analytics code" => [ + 0 => "Analytics-Code", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics und vergleichbare Dienste. Diese werden im Fußbereich der Seite eingefügt.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Die Dokumentation zur API ist in der <a %s>API-Dokumentation</a> hinterlegt.", + ], + "API v1 key" => [ + 0 => "API-Schlüssel v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Nutzen Sie diesen Schlüssel wenn Sie <a %s>API v1</a> verwenden.", + ], + "Plugin route" => [ + 0 => "Plugin-Route", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Aktivieren, um Anweisungen für Plugins auf %u anzuzeigen. Eine Verlinkung zu den Anweisungen wird zum %s Menü hinzugefügt. Diese Einstellung betrifft keine Administratoren.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Nutzen Sie diese Funktion, um eine benutzerdefinierte URL für %p zu setzen. Beachten Sie bitte, dass %s manuell in der URL geändert werden muss.", + ], + "Cookie law compliance" => [ + 0 => "Rechtlicher Hinweis zu Cookies", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Aktivieren, falls eine zum EU-Recht konforme Meldung hinsichtlich der Verwendung von \"Cookies\" angezeigt werden soll. Hinweis: Diese Einstellung ist nur notwendig, wenn Ihre Internetseite innerhalb der EU gehostet wird und \"Cookies\" gespeichert werden.", + ], + "Save changes" => [ + 0 => "Änderungen speichern", + ], + "Check the errors to proceed." => [ + 0 => "Überprüfen Sie die angezeigten Fehler um fortfahren zu können.", + ], + "Play GIF" => [ + 0 => "GIF abspielen", + ], + "Load full resolution" => [ + 0 => "Volle Auflösung laden", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgänig gemacht werden.", + ], + "Added to %a and categorized in %c" => [ + 0 => "Bild wurde zu %a hinzugefügt und in %c kategorisiert", + ], + "Added to %s" => [ + 0 => "Hinzugefügt zu %s", + ], + "Uploaded to %s" => [ + 0 => "Zu %s hochgeladen", + ], + "Uploaded %s" => [ + 0 => "%s hochgeladen.", + ], + "Less Exif data" => [ + 0 => "Weniger EXIF-Daten", + ], + "More Exif data" => [ + 0 => "Mehr EXIF-Daten", + ], + "Share image" => [ + 0 => "Bild teilen", + ], + "Album ID" => [ + 0 => "Album-ID", + ], + "In this album" => [ + 0 => "In diesem Album", + ], + "Upload and share your images." => [ + 0 => "Bilder hochladen und teilen.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Jetzt ganz leicht per Drag & Drop! Bis %s Bildgröße. Inklusive direkter Bildlinks, BBCodes und HTML Vorschaubilder.", + ], + "Start uploading" => [ + 0 => "Upload starten", + ], + "Sign up to unlock all the features" => [ + 0 => "Jetzt registrieren, um alle Funktionen nutzen zu können", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Verwalten Sie Ihre Inhalte, erstellen Sie private Alben, personalisieren Sie Ihr Profil und vieles mehr.", + ], + "Sign in with your account" => [ + 0 => "Mit Ihrem Konto anmelden", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Sie haben kein Konto? Jetzt <a href='%s'>registrieren</a>!", + ], + "Logged out" => [ + 0 => "Abmeldung erfolgreich", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Sie wurden von %s abgemeldet. Wir freuen uns auf Ihren nächsten Besuch!", + ], + "Go to homepage" => [ + 0 => "Zur Startseite", + ], + "Website under maintenance" => [ + 0 => "Internetseite in Wartung", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Wir führen aktuell geplante Wartungsarbeiten durch. Bitte besuchen Sie uns in einigen Minuten wieder.", + ], + "This content is password protected." => [ + 0 => "Dieser Inhalt ist durch ein Passwort geschützt.", + ], + "Please enter your password to continue." => [ + 0 => "Bitte geben Sie das Passwort ein, um fortzufahren.", + ], + "Send" => [ + 0 => "Senden", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Ermöglichen Sie das Hochladen von Bildern auf Ihrer Internetseite, Ihrm Blog oder Ihrem Forum, indem Sie das Upload-Plugin installieren. Es ermöglicht das Hochladen von Bildern über einen zusätzlichen Button. Dieser erlaubt Ihren Nutzern, Bilder direkt über unseren Service hochzuladen. Das Plugin verwaltet automatisch die Codes, die für das Einfügen der Bilder notwendig sind. Der Funktionsumfang umfasst Drag & Drop, Remote-Uploads, Änderungen der Bildgröße und vieles mehr!", + ], + "Supported software" => [ + 0 => "Unterstützte Software", + ], + "supported software" => [ + 0 => "unterstützten Dienste", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Das Plugin arbeitet auf jeder Internetseite, die über editierbare Inhalte verfügt. Bei %sv wird ein Upload-Button platziert, der sich an die Editor-Toolbar ohne weitere Änderungen anpasst.", + ], + "Add it to your website" => [ + 0 => "Zu Ihrer Internetseite hinzufügen", + ], + "options" => [ + 0 => "Optionen", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Kopieren Sie den Plugin-Code und fügen Sie ihn in den HTML-Code Ihrer Internetseite ein (vorzugsweise immerhalb des Head-Bereichs). Es gibt viele %o, um den Code an Ihre Bedürfnisse anzupassen.", + ], + "Basic options" => [ + 0 => "Grundoptionen", + ], + "Color palette" => [ + 0 => "Farbpalette", + ], + "Button color scheme" => [ + 0 => "Button-Farbschema", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Eingebettete Codes, die automatisch in die Editor-Box eingefügt werden.", + ], + "Sibling selector" => [ + 0 => "Geschwister-Selektor", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Bestimmt, an welchem Geschwister-Element der Button platziert wird.", + ], + "Sibling position" => [ + 0 => "Geschwister-Position", + ], + "After" => [ + 0 => "Nachher", + ], + "Before" => [ + 0 => "Vorher", + ], + "Position relative to sibling element" => [ + 0 => "Bestimmt die Position relativ zum Geschwister-Element.", + ], + "Advanced options" => [ + 0 => "Erweiterte Einstellungen", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Das Plugin hat eine breite Auswahl an weiteren Einstellungen, die eine vollständige Anpassung an die eigenen Bedürfnisse erlauben. Sie können benutzerdefinierte HTML-Codes, CSS, eigene Farbpaletten und Beobachter und vieles mehr festlegen. Prüfen Sie die %d und den Quellcode des Plugins, um ein besseres Verständnis von den Optionen zu erhalten.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Sie haben entweder keine Berechtigung zum Anzeigen der Seite oder der aufgerufene Link ist nicht mehr gültig.", + ], + "Search results" => [ + 0 => "Suchergebnisse", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Wollen Sie diesen Benutzer wirklich löschen? Dies kann nicht rückgängig gemacht werden.", + ], + "Delete user" => [ + 0 => "Benutzer löschen", + ], + "Register date" => [ + 0 => "Registrierungsdatum", + ], + "Registration IP" => [ + 0 => "Registrierungs-IP", + ], + "Valid" => [ + 0 => "Aktiv", + ], + "Banned" => [ + 0 => "Gesperrt", + ], + "Awaiting email" => [ + 0 => "Erwarte E-Mail", + ], + "Awaiting confirmation" => [ + 0 => "Erwarte Bestätigung", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i bis %f Zeichen<br>Buchstaben, Ziffern, \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Automatisches Löschen von Uploads", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Diese Einstellung wird als Standard auf alle Uploads angewandt. Sie können diese Einstellung bei jedem Upload überspringen.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "<a %s>EXIF-Daten</a> beim Upload behalten", + ], + "Newsletter" => [ + 0 => "Newsletter", + ], + "Send me emails with news about %s" => [ + 0 => "Senden Sie mir E-Mails mit Neuigkeiten über %s", + ], + "Content settings" => [ + 0 => "Inhaltseinstellungen", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Zeige anstößigen Inhalt (von anderen Benutzern) in Auflistungen an", + ], + "Language" => [ + 0 => "Sprache", + ], + "Timezone" => [ + 0 => "Zeitzone", + ], + "Current password" => [ + 0 => "Aktuelles Passwort", + ], + "Enter your current password" => [ + 0 => "Aktuelles Passwort eingeben", + ], + "New password" => [ + 0 => "Neues Passwort", + ], + "Confirm new password" => [ + 0 => "Passwort bestätigen", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Sie müssen ein Passwort angeben, um sich mit Ihrem Benutznamen oder Ihrer E-Mail-Adresse anzumelden.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Diesem Benutzer wurde kein Passwort zugewiesen. Teilen Sie dem Nutzer ein Passwort über das Eingabefeld zu.", + ], + "Enter your password" => [ + 0 => "Passwort eingeben", + ], + "Confirm password" => [ + 0 => "Passwort bestätigen", + ], + "Re-enter your password" => [ + 0 => "Passwort wiederholen", + ], + "Upload new image" => [ + 0 => "Neues Bild hochladen", + ], + "Delete existing image" => [ + 0 => "Bild löschen", + ], + "Make my profile and identity totally private" => [ + 0 => "Schalten Sie Ihr Profil und Ihre Identität in den \"Privat\"-Modus", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Aktivieren Sie diese Option, wenn Sie anonym bleiben wollen", + ], + "This is your real name, not your username." => [ + 0 => "Zusätzlich zum Benutzernamen kann hier ein Realname festgelegt werden.", + ], + "http://yourwebsite.com" => [ + 0 => "http://www.ihreinternetseite.de", + ], + "Bio" => [ + 0 => "Über", + ], + "Tell us a little bit about you" => [ + 0 => "Informationen über Ihre Person", + ], + "User has no connections." => [ + 0 => "Benutzer hat keine Verbindungen.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Verbinden Sie Ihr Konto mit externen Diensten um sich anzumelden und Inhalte zu teilen.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Wollen Sie %s wirklich von diesem Konto trennen?", + ], + "This account is connected to %s" => [ + 0 => "Dieses Konto ist mit %s verbunden", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Wollen Sie Ihr %s Konto wirklich trennen?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Sie werden abgemeldet und können nicht mehr mit Ihrem %s Konto auf dieses Konto zugreifen.", + ], + "Your account is connected to %s" => [ + 0 => "Ihr Konto ist mit %s verbunden", + ], + "disconnect" => [ + 0 => "Trennen", + ], + "Connect %s" => [ + 0 => "Verbinde %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Durchsuchen und entdecke alle meine geteilten Bilder und Alben.", + ], + "Button" => [ + 0 => "Button", + ], + "View all my images" => [ + 0 => "Alle meine Bilder anzeigen", + ], + "Login" => [ + 0 => "anmelden", + ], + "Already have an account? %s now." => [ + 0 => "Sie haben bereits ein Konto? Jetzt %s.", + ], + "resend account activation" => [ + 0 => "Account-Aktivierung erneut senden", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Wenn Sie sich bereits angemeldet haben, müssen Sie eventuell %s anfragen, um Ihr Konto zu aktivieren.", + ], + "You can also %s." => [ + 0 => "Sie können auch %s.", + ], + "I'm at least %s years old" => [ + 0 => "Ich bin mindestens %s Jahre alt", + ], + "terms" => [ + 0 => "Nutzungsregeln", + ], + "privacy policy" => [ + 0 => "Datenschutzbestimmungen", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Ich stimme den %terms_link und %privacy_link zu", + ], + "Upload profile background" => [ + 0 => "Hintergrundbild hochladen", + ], + "Change background" => [ + 0 => "Hintergrundbild ändern", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Wollen Sie das Hintergrundbild wirklich löschen? Dies kann nicht rückgänig gemacht werden.", + ], + "Delete background" => [ + 0 => "Hintergrundbild löschen", + ], + "Follower" => [ + 0 => "Follower", + 1 => "Followers", + ], + "Follow" => [ + 0 => "Folgen", + ], + "You have been forbidden to use this website." => [ + 0 => "Die Nutzung dieser Seite ist Ihnen nicht gestattet.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "Page %s" => [ + 0 => "Seite %s", + ], + "General questions/comments" => [ + 0 => "Allgemeine Fragen / Kommentare", + ], + "DMCA complaint" => [ + 0 => "Urheberrechtsverletzung", + ], + "Invalid message" => [ + 0 => "Ungültige Nachricht", + ], + "Invalid subject" => [ + 0 => "Ungültiger Titel", + ], + "Mail error" => [ + 0 => "E-Mail Fehler", + ], + "Message sent" => [ + 0 => "Nachricht gesendet", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Nachricht gesendet. Wir werden in Kürze mit Ihnen Kontakt aufnehmen!", + ], + "If you want to send a message fill the form below." => [ + 0 => "Wenn Sie uns eine Nachricht übermitteln möchten, füllen Sie bitte das folgende Formular aus.", + ], + "Your name" => [ + 0 => "Ihr Name", + ], + "Subject" => [ + 0 => "Betreff", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Alle Änderungen werden verworfen, sofern der Vorgang fortgesetzt wird.", + ], + "Changes saved successfully." => [ + 0 => "Die Änderungen wurden erfolgreich gespeichert.", + ], + "Go back to form" => [ + 0 => "Zurück zum Formular", + ], + "continue anyway" => [ + 0 => "Fortfahren", + ], + "Saving" => [ + 0 => "Speichern", + ], + "Sending" => [ + 0 => "Senden", + ], + "Confirm action" => [ + 0 => "Bestätigen", + ], + "information" => [ + 0 => "Information", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/el.po.cache.php b/app/.cache/languages/el.po.cache.php new file mode 100644 index 0000000..b6d1b55 --- /dev/null +++ b/app/.cache/languages/el.po.cache.php @@ -0,0 +1,1780 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2015-04-13 17:55+0000', + 'PO-Revision-Date' => '2015-04-13 17:55+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'el', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Λανθασμένο email", + ], + "Invalid username" => [ + 0 => "Λανθασμένο όνομα χρήστη", + ], + "Invalid password" => [ + 0 => "Λανθασμένος κωδικός", + ], + "From email address" => [ + 0 => "Από την διεύθυνση email", + ], + "Sender email for emails sent to users." => [ + 0 => "Email αποστολέα για τα email που αποστέλλονται στους χρήστες.", + ], + "Incoming email address" => [ + 0 => "Διεύθυνση εισερχόμενων email", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Παραλήπτης για την φόρμα επικοινωνίας και τις ειδοποιήσεις του συστήματος.", + ], + "Untitled" => [ + 0 => "Χωρίς τίτλο", + ], + "%s's images" => [ + 0 => "Εικόνες του χρήστη %s", + ], + "Private upload" => [ + 0 => "Ιδιωτικό ανέβασμα", + ], + "view" => [ + 0 => "προβολή", + 1 => "προβολές", + ], + "image" => [ + 0 => "εικόνα", + 1 => "εικόνες", + ], + "Can't verify storage credentials." => [ + 0 => "Δεν είναι δυνατή η επαλήθευση των διαπιστευτηρίων αποθήκευσης.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Η χωρητικότητα αποθήκευσης δεν μπορεί να είναι μικρότερη από την τρέχουσα χρησιμοποιούμενη (%s).", + ], + "Unlimited" => [ + 0 => "Απεριόριστα", + ], + "used" => [ + 0 => "σε χρήση", + ], + "year" => [ + 0 => "έτος", + 1 => "έτη", + ], + "month" => [ + 0 => "μήνας", + 1 => "μήνες", + ], + "week" => [ + 0 => "εβδομάδα", + 1 => "εβδομάδες", + ], + "day" => [ + 0 => "μέρα", + 1 => "μέρες", + ], + "hour" => [ + 0 => "ώρα", + 1 => "ώρες", + ], + "minute" => [ + 0 => "λεπτό", + 1 => "λεπτά", + ], + "second" => [ + 0 => "δευτερόλεπτο", + 1 => "δευτερόλεπτα", + ], + "%s ago" => [ + 0 => "Πριν από %s", + ], + "moments ago" => [ + 0 => "πριν λίγο", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Η βάση δεδομένων είναι παλιά. Χρειάζεται να εκτελέσετε το εργαλείο <a href=\"%s\">update</a> .", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Η ιστοσελίδα είναι υπό κατασκευή. Για να αναστρέψετε αυτή τη ρύθμιση πηγαίνετε<a href=\"%s\">Πίνακας ελέγχου > Ρυθμίσεις</a>.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Dashboard > Settings > Email</a> to fix this." => [ + 0 => "Δεν έχετε αλλάξει τις αρχικές ρυθμίσεις email . Go to <a href='%s'>Πίνακας ελέγχου > Ρυθμίσεις > Email</a> to fix this.", + ], + "You have been forbidden to use this website." => [ + 0 => "Απαγορεύεται να χρησιμοποιήσετε αυτή την ιστοσελίδα.", + ], + "That page doesn't exist" => [ + 0 => "Αυτή η σελίδα δεν υπάρχει", + ], + "Forgot password?" => [ + 0 => "Ξεχάσατε τον κωδικό;", + ], + "Reset password" => [ + 0 => "Επαναφορά κωδικού", + ], + "Resend account activation" => [ + 0 => "Αποστολή κωδικού ενεργοποίησης ξανά", + ], + "Add your email address" => [ + 0 => "Προσθέστε το email σας", + ], + "Email changed" => [ + 0 => "Το email άλλαξε", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "Δεν εισήγατε σωστό reCAPTCHA", + ], + "Invalid Username/Email" => [ + 0 => "Λάθος όνομα χρήστη/κωδικός", + ], + "User doesn't have an email." => [ + 0 => "Ο χρήστης δεν έχει email.", + ], + "Request denied" => [ + 0 => "Το αίτημα αρνήθηκε", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Ο λογαριασμός χρειάζεται να ενεργοποιηθεί για να χρησιμοποιήσετε αυτή την δυνατότητα.", + ], + "Account already activated" => [ + 0 => "Ο λογαριασμός έχει ήδη ενεργοποιηθεί.", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Δώστε 15 λεπτά στο email. Μπορείτε να προσπαθήσετε ξανά αργότερα", + ], + "Reset your password at %s" => [ + 0 => "Διαγραφή κωδικού στο %s", + ], + "Confirmation required at %s" => [ + 0 => "Απαιτείται επιβεβαίωση στο %s", + ], + "Welcome to %s" => [ + 0 => "Καλώς ήρθατε στο %s", + ], + "Passwords don't match" => [ + 0 => "Οι κωδικοί δεν ταιριάζουν", + ], + "Email already being used" => [ + 0 => "Το email χρησιμοποιείτε ήδη", + ], + "Check the errors in the form to continue." => [ + 0 => "Ελέγξτε τα λάθη στη φόρμα για να συνεχίσετε", + ], + "Most recent" => [ + 0 => "Πρόσφατο", + ], + "Oldest" => [ + 0 => "Παλαιότερο", + ], + "Most viewed" => [ + 0 => "Περισσότερες προβολές", + ], + "Share" => [ + 0 => "Μοιραστείτε το", + ], + "Full info" => [ + 0 => "Πλήρης πληροφορίες", + ], + "Stats" => [ + 0 => "Στατιστικά", + ], + "Images" => [ + 0 => "Εικόνες", + ], + "Albums" => [ + 0 => "Άλμπουμ", + ], + "Users" => [ + 0 => "Χρήστες", + ], + "Settings" => [ + 0 => "Ρυθμίσεις", + ], + "Chevereto version" => [ + 0 => "Έκδοση Chevereto", + ], + "update" => [ + 0 => "ενημέρωση", + ], + "check for updates" => [ + 0 => "έλεγχος για ενημερώσεις", + ], + "PHP version" => [ + 0 => "Έκδοση PHP", + ], + "Server" => [ + 0 => "Διακομιστής", + ], + "MySQL version" => [ + 0 => "Έκδοση MySQL", + ], + "MySQL server info" => [ + 0 => "Πληροφορίες διακομιστή MySQL", + ], + "GD Library" => [ + 0 => "GD Library", + ], + "File uploads" => [ + 0 => "Μεταφορτώσεις αρχείων", + ], + "Enabled" => [ + 0 => "Ενεργοποιημένο", + ], + "Disabled" => [ + 0 => "Απενεργοποιημένο", + ], + "Max. upload size" => [ + 0 => "Μέγ. μέγεθος μεταφόρτωσης", + ], + "Max. post size" => [ + 0 => "Μέγ. μέγεθος ποστ", + ], + "Max. execution time" => [ + 0 => "Μεγ. χρόνος εκτέλεσης", + ], + "%d second" => [ + 0 => "%d δευτερόλεπτο", + 1 => "%d δευτερόλεπτα", + ], + "Memory limit" => [ + 0 => "Όριο μνήμης", + ], + "Website" => [ + 0 => "Ιστοσελίδα", + ], + "Content" => [ + 0 => "Περιεχόμενο", + ], + "Listings" => [ + 0 => "Καταχωρήσεις", + ], + "Image upload" => [ + 0 => "Μεταφόρτωση εικόνας", + ], + "Categories" => [ + 0 => "Κατηγορίες", + ], + "Flood protection" => [ + 0 => "Προστασία υπερχείλισης", + ], + "Theme" => [ + 0 => "Θέμα", + ], + "Homepage" => [ + 0 => "Αρχική", + ], + "Banners" => [ + 0 => "Διαφημίσεις", + ], + "System" => [ + 0 => "Σύστημα", + ], + "Languages" => [ + 0 => "Γλώσσες", + ], + "External storage" => [ + 0 => "Εξωτερικός χώρος αποθήκευσης", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Κοινωνικά δίκτυα", + ], + "External services" => [ + 0 => "Εξωτερικές υπηρεσίες", + ], + "IP bans" => [ + 0 => "Αποκλεισμένες IP", + ], + "Local" => [ + 0 => "Τοπικά", + ], + "External" => [ + 0 => "Εξωτερικά", + ], + "All" => [ + 0 => "Όλα", + ], + "search content" => [ + 0 => "αναζήτηση περιεχομένων", + ], + "Invalid website name" => [ + 0 => "Λανθασμένο όνομα ιστοσελίδας", + ], + "Invalid language" => [ + 0 => "Λανθασμένη γλώσσα", + ], + "Invalid timezone" => [ + 0 => "Λανθασμένη ζώνη ώρας", + ], + "Invalid value" => [ + 0 => "Λανθασμένη τιμή", + ], + "Invalid upload storage mode" => [ + 0 => "Λανθασμένος τρόπος αποθήκευσης αρχείου μεταφόρτωσης", + ], + "Invalid upload filenaming" => [ + 0 => "Λανθασμένη ονομασία αρχείου μεταφόρτωσης", + ], + "Invalid thumb width" => [ + 0 => "Λάθος μήκος", + ], + "Invalid thumb height" => [ + 0 => "Λάθος ύψος μικρογραφίας", + ], + "Invalid medium width" => [ + 0 => "Λάθος μήκος μεσαίας", + ], + "Invalid theme" => [ + 0 => "Λάθος θέμα", + ], + "Invalid theme tone" => [ + 0 => "Λάθος τόνος θέματος", + ], + "Invalid theme image listing size" => [ + 0 => "Λάθος μέγεθος εικόνας θέματος", + ], + "Invalid user id" => [ + 0 => "Λάθος ταυτότητα χρήστη", + ], + "Invalid email mode" => [ + 0 => "Λάθος τρόπος λειτουργίας email", + ], + "Invalid SMTP port" => [ + 0 => "Λάθος θύρα SMTP", + ], + "Invalid SMTP security" => [ + 0 => "Λάθος ασφάλειας SMTP", + ], + "Invalid website mode" => [ + 0 => "Λάθος μορφή ιστοσελίδας", + ], + "Invalid website content privacy mode" => [ + 0 => "Λάθος περιεχόμενο ιδιωτικότητας ιστοσελίδας", + ], + "Invalid upload image path" => [ + 0 => "Λάθος διαδρομή ανεβάσματος εικόνας", + ], + "Max. allowed %s" => [ + 0 => "Μεγ. επιτρεπόμενο %s", + ], + "Invalid SMTP server" => [ + 0 => "Λάθος διακομιστής SMTP", + ], + "Invalid SMTP username" => [ + 0 => "Λάθος όνομα χρήστη SMTP", + ], + "Invalid URL" => [ + 0 => "Λάθος λινκ", + ], + "Top users" => [ + 0 => "Κορυφαίοι χρήστες", + ], + "Dashboard" => [ + 0 => "Πίνακας ελέγχου", + ], + "Explore" => [ + 0 => "Αναζήτηση", + ], + "About" => [ + 0 => "Περί", + ], + "Embed codes" => [ + 0 => "Επισυναπτόμενος κώδικας(embed)", + ], + "Image ID" => [ + 0 => "Ταυτότητα εικόνας", + ], + "Uploader IP" => [ + 0 => "Ανέβασμα από IP", + ], + "Ban IP" => [ + 0 => "Αποκλεισμός IP", + ], + "IP already banned" => [ + 0 => "IP ήδη αποκλεισμένη", + ], + "Upload date" => [ + 0 => "Ημερομηνία ανεβάσματος", + ], + "%s images" => [ + 0 => "%s εικόνες", + ], + "Login needed" => [ + 0 => "Χρειάζεται είσοδος", + ], + "IP address already banned" => [ + 0 => "Η IP είναι ήδη αποκλεισμένη", + ], + "Missing values" => [ + 0 => "Λείπουν αξίες", + ], + "Invalid role" => [ + 0 => "Λάθος ρόλος", + ], + "Username already being used" => [ + 0 => "Το όνομα χρήστη χρησιμποιείτε ήδη", + ], + "%s has been disconnected." => [ + 0 => "%s αποσυνδέθηκε.", + ], + "Wrong Username/Email password combination" => [ + 0 => "Λανθασμένος συνδυασμός ονόματος χρήστη/κωδικού πρόσβασης", + ], + "Sign in" => [ + 0 => "Είσοδος", + ], + "Logged out" => [ + 0 => "Αποσυνδεθήκατε", + ], + "Image search results for %s" => [ + 0 => "Αποτελέσματα αναζήτησης εικόνας για %s", + ], + "Search" => [ + 0 => "Αναζήτηση", + ], + "Account" => [ + 0 => "Λογαριασμός", + ], + "Profile" => [ + 0 => "Προφίλ", + ], + "Password" => [ + 0 => "Κωδικός", + ], + "Linked accounts" => [ + 0 => "Ενωμένοι λογαριασμοί", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Αποστάλθηκε ένα email στη διεύθυνση %s με οδηγίες για την ενεργοποίηση αυτού του email", + ], + "Invalid name" => [ + 0 => "Λάθος όνομα", + ], + "Invalid website" => [ + 0 => "Λάθος ιστοσελίδα", + ], + "Wrong password" => [ + 0 => "Λάθος κωδικός πρόσβασης", + ], + "Use a new password" => [ + 0 => "Χρησιμοποιήστε ένα νέο κωδικό πρόσβασης", + ], + "Changes have been saved." => [ + 0 => "Οι αλλαγές αποθηκέυτηκαν", + ], + "Password has been changed" => [ + 0 => "Ο κωδικός πρόσβασης άλλαξε", + ], + "Password has been created." => [ + 0 => "Ο κωδικός δημιουργήθηκε", + ], + "Wrong Username/Email values" => [ + 0 => "Λάθος τιμές για όνομα χρήστη/email", + ], + "Settings for %s" => [ + 0 => "Ρυθμίσεις για %s", + ], + "Create account" => [ + 0 => "Δημιουργία λογαριασμού", + ], + "%s's Images" => [ + 0 => "Εικόνες του %s", + ], + "%s's Albums" => [ + 0 => "Αλμπουμ του %s", + ], + "Close" => [ + 0 => "Κλείσιμο", + ], + "Advanced search" => [ + 0 => "Προχωρημένη αναζήτηση", + ], + "Random" => [ + 0 => "Τυχαία", + ], + "Notices (%s)" => [ + 0 => "Σημειώσεις (%s)", + ], + "Upload" => [ + 0 => "Ανέβασμα", + ], + "Sign in with another account" => [ + 0 => "Είσοδος με διαφορετικό λογαριασμό", + ], + "or" => [ + 0 => "ή", + ], + "Username or Email address" => [ + 0 => "Όνομα χρήστη ή διέυθυνση email", + ], + "Keep me logged in" => [ + 0 => "Διατήρηση σύνδεσης", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Δεν έχετε λογαριασμό; <a href='%s'>Εγγραφείτε </a> τώρα.", + ], + "Sign up with another account" => [ + 0 => "Εγγραφείτε με άλλο λογαριασμό", + ], + "Email address" => [ + 0 => "Διέυθυνση email", + ], + "Username" => [ + 0 => "Όνομα χρήστη", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "Με την εγγραφή σας συμφωνείτε στους <a href=\"%s\">Όρους χρήσης </a> μας", + ], + "My Profile" => [ + 0 => "Το προφίλ μου", + ], + "Sign out" => [ + 0 => "Αποσύνδεση", + ], + "Terms of service" => [ + 0 => "Όροι χρήσης", + ], + "Privacy" => [ + 0 => "Ιδιωτικότητα", + ], + "Contact" => [ + 0 => "Επικοινωνία", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Για να ολοκληρώσετε την διαδικασία πρέπει να <a href=\"%s\">ενεργοποιήσετε το email σας</a>.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Για να ολοκληρώσετε την διαδικασία πρέπει να <a href=\"%s\">ενεργοποιήσετε τον λογαριασμό σας</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Για σβήσιμο του κωδικού <a href=\"%s\">ακολούθησε αυτό το λινκ</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Γεια %n, καλώς ήρθες στο %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Τώρα που ο λογαριασμός σας είναι έτοιμος μπορείτε να απολαύσετε το ανέβασμα των εικόνων σας, να δημιουργήσετε άλμπουμ και να ορίσετε την ιδιωτικότητα του περιεχομένου σας καθώς και πολλά άλλα ωραία πράγματα που θα ανακαλύψετε.", + ], + "Thank you for joining" => [ + 0 => "Ευχαρισστούμε για τη συμμετοχή", + ], + "This email was sent from %w %u" => [ + 0 => "Αυτό το email αποστάλθηκε από %w %u", + ], + "General questions/comments" => [ + 0 => "Γενικές ερωτήσεις/σχόλια", + ], + "DMCA complaint" => [ + 0 => "καταγγελία DMCA", + ], + "Invalid message" => [ + 0 => "Λάθος μήνυμα", + ], + "Invalid subject" => [ + 0 => "Λάθος θέμα", + ], + "Invalid reCAPTCHA" => [ + 0 => "Λάθος reCAPTCHA", + ], + "Mail error" => [ + 0 => "Σφάλμα mail", + ], + "Message sent" => [ + 0 => "Το μήνυμα αποστάλθηκε", + ], + "We will be in touch soon." => [ + 0 => "Θα έρθουμε σε επαφή σύντομα", + ], + "If you want to send a message fill the form below." => [ + 0 => "Αν θέλετε να στείλετε ένα μήνυμα, χρησιμοποιήστε την παρακάτω φόρμα.", + ], + "Name" => [ + 0 => "Όνομα", + ], + "Your name" => [ + 0 => "Το όνομά σας", + ], + "Your email address" => [ + 0 => "To email σου", + ], + "Subject" => [ + 0 => "Θέμα", + ], + "Message" => [ + 0 => "Μήνυμα", + ], + "Send message" => [ + 0 => "Αποστολή μηνύματος", + ], + "cancel" => [ + 0 => "ακύρωση", + ], + "Drag and drop images here to upload" => [ + 0 => "Σύρετε κι αφήστε εικόνες εδώ για να ανεβάσετε", + ], + "Select the images to upload" => [ + 0 => "Διάλεξε τις εικόνες που θες να ανεβάσεις", + ], + "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "Μπορείτε επίσης να <a data-trigger=\"anywhere-upload-input\">επιλέξετε από τον υπολογιστή σας</a> ή να <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">προσθέσετε URL εικόνων</a>.", + ], + "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." => [ + 0 => "Μπορείς επίσης <a data-trigger=\"anywhere-upload-input-camera\">πάρε φωτογραφία</a>.", + ], + "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" => [ + 0 => "Ανέβασμα <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">εικόνων</span>", + ], + "The queue is being uploaded. It will take just a few seconds to complete." => [ + 0 => "Η ουρά ανεβαίνει. Θα χρειαστεί μερικά δευτερόλεπτα για να ολοκληρωθεί.", + ], + "Upload complete" => [ + 0 => "Το ανέβασμα ολοκληρώθηκε", + ], + "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." => [ + 0 => "Το περιεχόμενο προστέθηκε στη <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">δημόσια ροή</a>. Μπορείτε να <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">δημιουργήσετε ένα άλμπουμ</a> ή να <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">μετακινήσετε τις <span data-text=\"queue-objects\">εικόνες</span></a> σε ένα υπάρχον άλμπουμ.", + ], + "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." => [ + 0 => "Μπορείτε να <a href=\"%s\">δημιουργήσετε ένα λογαριασμό</a> ή να <a href=\"%l\">συνδεθείτε</a> για να αποθηκεύσετε μελλοντικά ανεβάσματα στον λογαριασμό σας.", + ], + "No <span data-text=\"queue-objects\">images</span> have been uploaded" => [ + 0 => "Δεν ανέβηκε καμία <span data-text=\"queue-objects\">εικόνα</span>", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Προέκυψαν κάποια λάθη και το σύστημα δε μπόρεσε να ολοκλρώσει το αίτημα.", + ], + "Select category" => [ + 0 => "Διάλεξε κατηγορία", + ], + "Change upload privacy" => [ + 0 => "Άλλαξε ιδιωτικότητα ανεβάσματος", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Επέλεξε εαν δεν είναι κατάλληλο για ανηλίκους", + ], + "Not family safe upload" => [ + 0 => "Δεν είναι κατάλληλο για ανηλίκους", + ], + "Uploading" => [ + 0 => "Ανεβαίνει", + ], + "cancel remaining" => [ + 0 => "Ακύρωση υπολοίπων", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Σημείωση: Κάποιες εικόνες δεν μπόρεσαν να ανέβουν.", + ], + "learn more" => [ + 0 => "μάθε περισσότερα", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Ελέγξτε την <a data-modal=\"simple\" data-target=\"failed-upload-result\">αναφορά σφαλμάτων</a> για περισσότερες πληροφορίες.", + ], + "max" => [ + 0 => "μέγιστο", + ], + "close" => [ + 0 => "κλείσιμο", + ], + "Add image URLs" => [ + 0 => "Προσθήκη λινκ εικόνων", + ], + "Add the image URLs here" => [ + 0 => "Προσθήκη των λινκ εικόνων εδώ", + ], + "Create album" => [ + 0 => "Δημιουργία άλμπουμ", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Το ανεβασμένο περιεχόμενο θα μετακινηθεί σε αυτό το νέο άλμπουμ. Μπορείτε επίσης να μετακινήσετε το περιεχόμενο σε ένα <a class=\"modal-switch\" data-switch=\"move-existing-album\">υπάρχον άλμπουμ</a>.", + ], + "Move to album" => [ + 0 => "Μετακίνηση σε άλμπουμ", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Επιλέξτε ένα υπάρχον άλμπουμ για να μετακινήσετε το ανεβασμένο περιεχόμενο. Μπορείτε επίσης να <a class=\"modal-switch\" data-switch=\"move-new-album\">δημιουργήσετε ένα νέο άλμπουμ</a> και να μετακινήσετε το περιεχόμενο εκεί.", + ], + "Error report" => [ + 0 => "Λάθος αναφορά", + ], + "album" => [ + 0 => "άλμπουμ", + 1 => "άλμπουμ", + ], + "Links" => [ + 0 => "Λινκ", + ], + "Viewer links" => [ + 0 => "Προβολές Λινκ", + ], + "Direct links" => [ + 0 => "Απευθείας λινικ", + ], + "HTML Codes" => [ + 0 => "Κώδικες HTML", + ], + "HTML embed" => [ + 0 => "Ενσωμάτωση HTM", + ], + "HTML original linked" => [ + 0 => "Σύνδεσμος HTML πρωτότυπης", + ], + "HTML medium linked" => [ + 0 => "Σύνδεσμος HTML μεσαίας", + ], + "HTML thumbnail linked" => [ + 0 => "Σύνδεσμος HTML μικρογραφίας", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode embed" => [ + 0 => "Ενσωμάτωση BBCode", + ], + "BBCode original linked" => [ + 0 => "Σύνδεσμος BBCode πρωτότυπης", + ], + "BBCode medium linked" => [ + 0 => "Σύνδεσμος BBCode μεσαίας", + ], + "BBCode thumbnail linked" => [ + 0 => "Σύνδεσμος BBCode μικρογραφίας", + ], + "All these words" => [ + 0 => "Όλες αυτές οι λέξεις", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Συμπλήρωσε τις απαραίτητες λέξεις: tri-colour rat terrier", + ], + "This exact word or phrase" => [ + 0 => "Η ακριβής λέξη ή φράση", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Βάλε τις ακριβείς λέξεις στα εισαγωγικά: \"rat terrier\"", + ], + "None of these words" => [ + 0 => "Καμία από αυτές τις λέξεις", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Βάλε ένα αρνητικό πρόσημο λίγο πριν από τις λέξεις που δεν θες: -rodent -\"Jack Russell\"", + ], + "Category" => [ + 0 => "Κατηγορία", + ], + "Storage" => [ + 0 => "Αποθήκευση", + ], + "Uploader IP address" => [ + 0 => "Διέυθυνση IP uploader", + ], + "Album name" => [ + 0 => "Όνομα άλμπουμ", + ], + "Untitled album" => [ + 0 => "Ανώνυμο άλμπουμ", + ], + "move to existing album" => [ + 0 => "μετακινηθείτε στο υπάρχον άλμπουμ", + ], + "Album description" => [ + 0 => "Περιγραφή του άλμπουμ", + ], + "optional" => [ + 0 => "προαιρετικά", + ], + "Brief description of this album" => [ + 0 => "Σύντομη περιγραφή αυτού του άλμπουμ", + ], + "Album Privacy" => [ + 0 => "Ιδιωτικότητα άλμπουμ", + ], + "Who can view this content" => [ + 0 => "Ποιος μπορεί να δει αυτό το περιεχόμενο", + ], + "Public" => [ + 0 => "Δημίσιο", + ], + "Private (just me)" => [ + 0 => "Ιδιωτικό (μόνο εγώ)", + ], + "Private (anyone with the link)" => [ + 0 => "Ιδιωτικό (ο καθένας με το σύνδεσμο)", + ], + "No category" => [ + 0 => "Χωρίς κατηγορία", + ], + "Category name" => [ + 0 => "Όνομα κατηγορίας", + ], + "URL key" => [ + 0 => "Κλειδί URL", + ], + "Category URL key" => [ + 0 => "Κλειδί κατηγορίας URL", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Μόνο γράμματα, νούμερα και απόστροφοι", + ], + "Description" => [ + 0 => "Περιγραφή", + ], + "Brief description of this category" => [ + 0 => "Συνοπτική περιγραφή της κατηγορίας", + ], + "Title" => [ + 0 => "Τίτλος", + ], + "Untitled image" => [ + 0 => "Ανώνυμη Εικόνα", + ], + "Mark this if the image is not family safe" => [ + 0 => "Επιλέξτε αυτό, αν η εικόνα δεν είναι κατάλληλη για ανηλίκους", + ], + "Flag as unsafe" => [ + 0 => "Σημείωση ως μη ασφαλές", + ], + "Brief description of this image" => [ + 0 => "Συνοπτική περιγραφή της εικόνας", + ], + "IP address" => [ + 0 => "Διέυθυνση IP", + ], + "Expiration date" => [ + 0 => "Ημερομηνία λήξης", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "ΕΕΕΕ-ΜΜ-ΗΗ ΩΩ:ΛΛ:ΔΔ", + ], + "Example" => [ + 0 => "Παράδειγμα", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Μέχρι ποιά ημερομηνία αυτή η IP θα πρέπει να είναι απαγορευμένη;Αφήστε το κενό για να μην λήξη ποτέ.", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Μήνυμα κειμένου , HTML, ή απευθείας λινκ", + ], + "Existing album" => [ + 0 => "Υπάρχον άλμπουμ", + ], + "Album" => [ + 0 => "Αλμπουμ", + 1 => "Αλμπουμ", + ], + "private" => [ + 0 => "ιδιωτικό", + ], + "create new album" => [ + 0 => "δημιουργία άλμπουμ", + ], + "Storage name" => [ + 0 => "Όνομα αποθηκευτικού χώρου", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "περιοχή", + ], + "Storage bucket" => [ + 0 => "κάδος αποθήκευσης", + ], + "Key" => [ + 0 => "Κλειδί", + ], + "Storage key" => [ + 0 => "Κλειδί αποθήκευσης", + ], + "Secret" => [ + 0 => "Μυστικό", + ], + "Storage secret" => [ + 0 => "Μυστικό αποθήκευσης", + ], + "Hostname or IP of the storage server" => [ + 0 => "Διέυθυνση ή Ip του σέρβερ αποθήκευσης", + ], + "Path" => [ + 0 => "Μονοπάτι", + ], + "Server path" => [ + 0 => "Μονοπάτι σέρβερ", + ], + "Server path where the files will be stored" => [ + 0 => "Διαδρομή στον server όπου θα αποθηκεύονται τα αρχεία", + ], + "Server username" => [ + 0 => "Όνομα χρήστη σέρβερ", + ], + "Server password" => [ + 0 => "Κωδικός σέρβερ", + ], + "Storage capacity" => [ + 0 => "Χωρητικότητα αποθήκευσης", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Παράδειγμα: 20 GB, 1 TB, κτλ.", + ], + "Storage URL" => [ + 0 => "URL αποθήκευσης", + ], + "view more" => [ + 0 => "δείτε περισσότερα", + ], + "Load more" => [ + 0 => "Φορτώστε περισσότερα", + ], + "Previous" => [ + 0 => "Προηγούμενο", + ], + "Next" => [ + 0 => "Επόμενο", + ], + "Select all" => [ + 0 => "Επιλογή όλων", + ], + "Selection" => [ + 0 => "Επιλογή", + ], + "Action" => [ + 0 => "Δράση", + ], + "Assign category" => [ + 0 => "Εκχώρηση κατηγορίας", + ], + "Delete" => [ + 0 => "Διαγραφή", + ], + "Clear selection" => [ + 0 => "Απαλοιφή επιλογής", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "Για να χρησιμοποιήσετε όλες τις δυνατότητες αυτού του ιστότοπου πρέπει να είστε συνδεδεμένοι. Αν δεν έχετε λογαριασμό μπορείτε να <a href=\"%s\">εγγραφείτε</a> αμέσως τώρα.", + ], + "forgot?" => [ + 0 => "ξεχάσατε;", + ], + "Link" => [ + 0 => "Σύνδεσμος", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Σημείωση: Αυτό το περιεχόμενο είναι ιδιωτικό. Αλλάξτε την ιδιωτικότητα σε \"δημόσιο\" για να το μοιραστείτε.", + ], + "There's nothing to show here." => [ + 0 => "Δεν υπάρχει τίποτα για εμφάνιση εδώ.", + ], + "Edit image details" => [ + 0 => "Επεξεργασία στοιχείων εικόνας", + ], + "Edit album details" => [ + 0 => "Διόρθωση λεπτομερειών του άλμπουμ", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Όλες οι επιλεγμένες εικόνες θα προστεθούν σε αυτή την κατηγορία.", + ], + "There is no categories." => [ + 0 => "Δεν υπάρχουν κατηγορίες.", + ], + "Confirm deletion" => [ + 0 => "Επιβεβαίωση διαγραφής", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Θέλετε πραγματικά να καταργήσετε αυτό το περιεχόμενο; Αυτό δεν μπορεί να αναιρεθεί.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Θέλετε πραγματικά να αφαιρέσετε όλο το επιλεγμένο περιεχόμενο; Αυτό δεν μπορεί να αναιρεθεί.", + ], + "Uploaded by guest to Public" => [ + 0 => "Ανέβηκε από επισκέπτη ως Δημόσιο", + ], + "From %s" => [ + 0 => "Από %s", + ], + "Select" => [ + 0 => "Επιλογή", + ], + "Edit" => [ + 0 => "Επεξεργασία", + ], + "The requested page was not found." => [ + 0 => "Η σελίδα που ζητήσατε δεν βρέθηκε.", + ], + "Search something else" => [ + 0 => "Αναζήτηση για κάτι άλλο", + ], + "The user has been deleted" => [ + 0 => "Ο χρήστης έχει διαγραφεί", + ], + "The content has been deleted." => [ + 0 => "Το περιεχόμενο έχει διαγραφεί.", + ], + "Your account is almost ready" => [ + 0 => "Ο λογαριασμός σας είναι σχεδόν έτοιμος", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Ένα email αποστάλθηκε προς την διεύθυνση %s με οδηγίες για την ενεργοποίηση του λογαριασμού σας. Ο σύνδεσμος ενεργοποίησης θα είναι ενεργός μόνο για 48 ώρες. Αν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας.", + ], + "Go to homepage" => [ + 0 => "Πηγαίνετε στην αρχική σελίδα", + ], + "Resend activation" => [ + 0 => "Επαναποστολή ενεργοποίησης", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Αλλάξατε με επιτυχία το email του λογαριασμού σας σε %s", + ], + "Go to my profile" => [ + 0 => "Πήγαινε στο προφίλ μου", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Ένας σύνδεσμος επιβεβαίωσης θα σταλεί σε αυτό το email με λεπτομέρειες για το πως να ενεργοποιήσετε τον λογαριασμό σας.", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Ένα email με οδηγίες για την επαναφορά του μυστικού κωδικού σας αποστάλθηκε προς την εγγεγραμμένη διεύθυνση email σας. Αν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας.", + ], + "An error occurred. Please try again later." => [ + 0 => "Συνέβη κάποιο λάθος. Παρακαλώ δοκιμάστε ξανά αργότερα.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Ένα προηγούμενο email με οδηγίες για την επαναφορά του μυστικού κωδικού σας αποστάλθηκε. Αν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "Εισάγετε το όνομα χρήστη σας ή τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε για να δημιουργήσετε το λογαριασμό σας.", + ], + "Submit" => [ + 0 => "Αποστολή", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Ο κωδικός πρόσβασής σας έχει αλλάξει. Τώρα μπορείτε να δοκιμάσετε να συνδεθείτε χρησιμοποιώντας το νέο κωδικό πρόσβασης.", + ], + "Login now" => [ + 0 => "Σύνδεση", + ], + "Enter the new password that you want to use." => [ + 0 => "Πληκτρολογήστε το νέο κωδικό πρόσβασης που θέλετε να χρησιμοποιήσετε.", + ], + "New Password" => [ + 0 => "Νέος κωδικός", + ], + "%d characters min" => [ + 0 => "ελάχιστοι χαρακτήρες %d", + ], + "Enter your new password" => [ + 0 => "Εισάγετε το νέο κωδικό πρόσβασής σας", + ], + "Confirm password" => [ + 0 => "Επιβεβαίωση κωδικού πρόσβασης", + ], + "Re-enter your new password" => [ + 0 => "Εισάγετε ξανά το νέο κωδικό πρόσβασής σας", + ], + "An email to %s has been sent with instructions to activate your account.n\\If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Ένα email αποστάλθηκε προς την διεύθυνση %s με οδηγίες για την ενεργοποίηση του λογαριασμού σας.\\nΑν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας.", + ], + "Enter the email address that you used to create your account to continue." => [ + 0 => "Εισάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε για να δημιουργήσετε τον λογαριασμό σας και να συνεχίσετε.", + ], + "This content is private" => [ + 0 => "Το περιεχόμενο είναι ιδιωτικό", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Θέλετε πραγματικά να διαγράψετε αυτό το άλμπουμ και όλες τις εικόνες του; Αυτό δεν μπορεί να αναιρεθεί.", + ], + "Delete album" => [ + 0 => "Διαγραφή άλμπουμ", + ], + "Album link" => [ + 0 => "Σύνδεσμος άλμπουμ", + ], + "Image" => [ + 0 => "Εικόνα", + 1 => "Εικόνες", + ], + "User" => [ + 0 => "Χρήστης", + 1 => "Χρήστες", + ], + "Disk used" => [ + 0 => "Δίσκος που χρησιμοποιήθηκε", + ], + "Add user" => [ + 0 => "Προσθέστε χρήστη", + ], + "Role" => [ + 0 => "Ρόλος", + ], + "Administrator" => [ + 0 => "Διαχειριστής", + ], + "Add category" => [ + 0 => "Προσθήκη κατηγορίας", + ], + "Website name" => [ + 0 => "Όνομα ιστοσελίδας", + ], + "Website doctitle" => [ + 0 => "Τίτλος ιστοσελίδας", + ], + "Website description" => [ + 0 => "Περιγραφή ιστοσελίδας", + ], + "Website keywords" => [ + 0 => "Keywords ιστοσελίδας", + ], + "Default time zone" => [ + 0 => "Προεπιλεγμένη ζώνη ώρας", + ], + "Select region" => [ + 0 => "Επιλέξτε περιοχή", + ], + "Enable this if you want to allow the search feature." => [ + 0 => "Ενεργοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε τη λειτουργία αναζήτησης.", + ], + "Enable this if you want to allow the explore page." => [ + 0 => "Ενεργοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε την εξερεύνηση σελίδας.", + ], + "Enable uploads" => [ + 0 => "Ενεργοποίηση uploads", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Ενεργοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε το ανέβασμα εικόνων. Αυτή η ρύθμιση δεν επηρεάζει τους διαχειριστές.", + ], + "Guest uploads" => [ + 0 => "Ανέβασμα από επισκέπτες", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Ενεργοποιήστε αυτό αν θέλετε μη εγγεγραμμένοι χρήστες να μπορούν να ανεβάσουν.", + ], + "Max. filesize" => [ + 0 => "Μέγ. μέγεθος αρχείου", + ], + "Max. allowed filesize. (Max allowed by server is %s)" => [ + 0 => "Μέγιστο επιτρεπόμενο μέγεθος αρχείου. (Το μέγιστο επιτρεπόμενο από τον διακομιστή είναι %s)", + ], + "Image path" => [ + 0 => "Διαδρομή εικόνων", + ], + "Relative to Chevereto root" => [ + 0 => "Σε σχέση με την θέση του Chevereto", + ], + "Storage mode" => [ + 0 => "Τρόπος αποθήκευσης", + ], + "Datefolders" => [ + 0 => "Φάκελοι δεδομένων", + ], + "Direct" => [ + 0 => "Απευθείας", + ], + "Datefolders creates %s structure" => [ + 0 => "Οι φάκελοι δεδομένων δημιουργούν %s δομή", + ], + "File naming method" => [ + 0 => "Μέθοδος ονοματοδοσίας αρχείων", + ], + "Original" => [ + 0 => "Πρωτότυπο", + ], + "Mixed" => [ + 0 => "Ανάμεικτο", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." => [ + 0 => "Το \"Πρωτότυπο\" θα προσπαθήσει να διατηρήσει το όνομα του πηγαίου αρχείου ενώ το \"Τυχαίο\" θα δημιουργήσει ένα τυχαίο όνομα. Το \"Ανάμεικτο\" είναι ένας συνδυασμός και των δύο μεθόδων.", + ], + "Thumb size" => [ + 0 => "Μέγεθος μικρογραφίας", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Οι μικρογραφίες θα είναι σταθερές σε αυτό το μέγεθος.", + ], + "Medium size" => [ + 0 => "Μέγεθος μεσαίας", + ], + "Height will be automatic calculated." => [ + 0 => "Το ύψος θα υπολογίζεται αυτόματα", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Ενεργοποιήστε αυτό για να βάλετε ένα λογότυπο ή οτιδήποτε άλλο θέλετε στο ανέβασμα εικόνων.", + ], + "Warning: Can't write in %s" => [ + 0 => "Προειδοποίηση: Δεν είναι δυνατή η εγγραφή στο %s", + ], + "Watermark image" => [ + 0 => "Υδατογράφημα εικόνας", + ], + "Watermark image to use. Must be a PNG." => [ + 0 => "Χρήση υδατογραφημένης εικόνας. Πρέπει να είναι σε .png", + ], + "Watermark position" => [ + 0 => "Θέση υδατογραφήματος", + ], + "left top" => [ + 0 => "πάνω αριστερά", + ], + "left center" => [ + 0 => "αριστερά στη μέση", + ], + "left bottom" => [ + 0 => "κάτω αριστερά", + ], + "center top" => [ + 0 => "πάνω κεντρικά", + ], + "center center" => [ + 0 => "στην μέση κεντρικά", + ], + "center bottom" => [ + 0 => "στην μέση κάτω", + ], + "right top" => [ + 0 => "πάνω δεξιά", + ], + "right center" => [ + 0 => "δεξιά στην μέση", + ], + "right bottom" => [ + 0 => "κάτω δεξιά", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Σχετική θέση της υδατογρφημένης εικόνας. Πρώτη οριζόντια στοίχιση και στη συνέχεια κατακόρυφη στοίχιση.", + ], + "Edit category" => [ + 0 => "Επεξεργασία κατηγορίας", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Μπλοκάρισμα ανεβάσματος εικόνων από IP αν το σύστημα παρατηρήσει συμπεριφορά flood βασισμένη σε ανεβάσματα ανά χρονική περίοδο. Αυτή η ρύθμιση δεν επηρεάζει τους διαχειριστές.", + ], + "Notify to email" => [ + 0 => "Ειδοποίηση σε email", + ], + "Minute limit" => [ + 0 => "Όριο ανά λεπτό", + ], + "Hourly limit" => [ + 0 => "Ωριαίο όριο", + ], + "Daily limit" => [ + 0 => "Ημερήσιο όριο", + ], + "Weekly limit" => [ + 0 => "Εβδομαδιαίο όριο", + ], + "Monthly limit" => [ + 0 => "Μηνιαίο όριο", + ], + "How many items should be displayed per page listing." => [ + 0 => "Πόσα αντικείμενα πρέπει να εμφανίζονται ανά σελίδα λίστας.", + ], + "Put your themes in the %s folder" => [ + 0 => "Τοποθετήστε τα θέματα στο φάκελο %s", + ], + "After header (image page)" => [ + 0 => "Μετά από το header (εικόνα σελίδας)", + ], + "Footer (image page)" => [ + 0 => "Footer (εικόνα σελίδας)", + ], + "Album page" => [ + 0 => "Album σελίδα", + ], + "Explore page" => [ + 0 => "Εξερεύνηση σελίδας", + ], + "Crypt salt" => [ + 0 => "Κλειδί κρυπτογράφησης", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Αυτό είναι το κλειδί που χρησιμοποιείται για την μετατροπή αριθμητικών ID σε αλφαριθμητικών. Δημιουργείται κατά την εγκατάσταση.", + ], + "Error reporting" => [ + 0 => "Αναφορά σφαλμάτων", + ], + "Enable this if you need to debug PHP errors." => [ + 0 => "Ενεργοποιήστε αυτό αν θέλετε να αποσφαλματώσετε τα λάθη PHP.", + ], + "Maintenance" => [ + 0 => "Συντήρηση", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Όταν ενεργοποιηθεί η ιστοσελίδα θα εμφανιστεί ένα μήνυμα συντήρησης. Αυτή η ρύθμιση δεν επηρεάζει τους διαχειριστές.", + ], + "Default language" => [ + 0 => "Προεπιλεγμένη γλώσσα", + ], + "Default base language to use." => [ + 0 => "Προεπιλεγμένη βασική γλώσσα για χρήση.", + ], + "Auto language" => [ + 0 => "Αυτόματη γλώσσα", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Εναλλαγή για να ενεργοποιήσετε ή να απενεργοποιήσετε το HTTPS", + ], + "Quota" => [ + 0 => "Ποσόστωση", + ], + "Active" => [ + 0 => "Ενεργό", + ], + "Storage method" => [ + 0 => "Μέθοδος αποθήκευσης", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Η τοπική αποθήκευση χρησιμοποιείται από προεπιλογή ή όταν η εξωτερική μονάδα αποθήκευσης δεν είναι ενεργή.", + ], + "If you need help check the <a href=\"%s\">storage documentation</a>." => [ + 0 => "Αν χρειάζεστε βοήθεια για να ελέγξετε την <a href=\"%s\">τεκμηρίωση αποθήκευσης</a>", + ], + "Edit storage" => [ + 0 => "Επεξεργασία αποθήκευσης", + ], + "From name" => [ + 0 => "Από όνομα", + ], + "Sender name for emails sent to users." => [ + 0 => "Όνομα αποστολέα για τα email που αποστέλλονται στους χρήστες.", + ], + "Email mode" => [ + 0 => "Τρόπος λειτουργίας email", + ], + "SMTP server and port" => [ + 0 => "Διακομιστής και θύρα SMTP", + ], + "SMTP server" => [ + 0 => "Διακομιστής SMTP", + ], + "SMTP username" => [ + 0 => "Όνομα χρήστη SMTP", + ], + "SMTP password" => [ + 0 => "Κωδικός πρόσβασης SMTP", + ], + "SMTP security" => [ + 0 => "Ασφάλεια SMTP", + ], + "Unsecured" => [ + 0 => "Ανασφαλής", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Χρειάζεστε ένα <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> για αυτό.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Χρειάζεστε ένα <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> για αυτό.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter λογαριασμός", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Χρειάζεστε ένα <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> για αυτό.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "reCAPTCHA public key" => [ + 0 => "reCAPTCHA public key", + ], + "reCAPTCHA private key" => [ + 0 => "reCAPTCHA private key", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Μετά από πόσες αποτυχημένες προσπάθειες να γίνει ερώτηση reCAPTCHA? Βάλε (0) για να γίνετε πάντα ερώτηση reCAPTCHA.", + ], + "Comment code" => [ + 0 => "Κώδικας σχολίων", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook ή ότι άλλο θέλετε. Θα χρησιμοποιηθεί στην προβολή εικόνων.", + ], + "Analytics code" => [ + 0 => "Κώδικας στατιστικών", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics ή ότι άλλο θέλετε. Θα προστεθεί στο footer του θέματος.", + ], + "Enable this if you are using Cloudflare." => [ + 0 => "Ενεργοποιήστε αυτό αν χρησιμοποιείτε Cloudflare.", + ], + "For documentation about the API check <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" => [ + 0 => "Για τεκμηρίωση σχετικά με τον έλεγχο API <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>", + ], + "API v1 key" => [ + 0 => "Κλειδί API v1", + ], + "Use this key when using the API v1. <a href=\"https://chevereto.com/docs/api-v1\">Learn more</a>." => [ + 0 => "Χρησιμοποίησε αυτό το κλειδί αν χρησιμοποιείς API v1. <a href=\"https://chevereto.com/docs/api-v1\">Μάθε περισσότερα</a>.", + ], + "Save changes" => [ + 0 => "Αποθήκευση αλλαγών", + ], + "Check the errors to proceed." => [ + 0 => "Έλεγξε τα λάθη για να προχωρήσεις.", + ], + "Guest" => [ + 0 => "Επισκέπτης", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Αλήθεια θες να διαγράψεις την εικόνα; Δεν μπορεί να αναιρεθεί.", + ], + "Delete image" => [ + 0 => "Διαγραφή εικόνας", + ], + "Added to %a and categorized in %c" => [ + 0 => "Προστέθηκε στο %a και κατηγοριοποιήθηκε στην %c", + ], + "Added to %s" => [ + 0 => "Προστέθηκε στον %s", + ], + "Uploaded to %s" => [ + 0 => "Ανεβάστηκε στον %s", + ], + "Uploaded %s" => [ + 0 => "%s ανέβηκε", + ], + "Share image" => [ + 0 => "Μοιράσου την εικόνα", + ], + "Album ID" => [ + 0 => "Ταυτότητα άλμπουμ", + ], + "In this album" => [ + 0 => "Μέσα στο άλμπουμ", + ], + "Image links" => [ + 0 => "Λινκ εικόνας", + ], + "Image URL" => [ + 0 => "Διέυθυνση εικόνας", + ], + "Image link" => [ + 0 => "Λινκ εικόνας", + ], + "Thumbnail URL" => [ + 0 => "Μικρογραφία εικόνας", + ], + "Medium URL" => [ + 0 => "Μεσαίο URL", + ], + "Image embed codes" => [ + 0 => "Κώδικας ενσωμάτωσης εικόνας", + ], + "Linked image" => [ + 0 => "Σύνδεση εικόνας", + ], + "Linked medium" => [ + 0 => "Σύνδεση μεσαίας", + ], + "Linked thumbnail" => [ + 0 => "Σύνδεση μικρογραφιας", + ], + "Upload and share your images." => [ + 0 => "Ανέβασε και μοιράσου τις εικόνες σου.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Σύρετε και αφήστε το οπουδήποτε θέλετε και να ξεκινήσετε τη μεταφόρτωση των εικόνων σας τώρα. όριο %s. Απευθείας συνδέσεις εικόνας, BBCode και HTML μικρογραφίες.", + ], + "Start uploading" => [ + 0 => "Ξεκίνησε το ανέβασμα", + ], + "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." => [ + 0 => "Συμπλήρωσε αυτή την ενότητα ανεβάζοντας φωτογραφίες στο λογαριασμό %s .<br>Μπορείς να επεξεργαστείς τον τελικό στις ρυθμίσεις του πίνακα ελέγχου σου.", + ], + "Sign up to unlock all the features" => [ + 0 => "Εγγραφείτε να ξεκλειδώσετε όλες τις λειτουργίες", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Διαχειρίσου τα περιεχόμενα, δημιούργησε ιδιωτικά άλμπουμ. επεξεργάσου το προφίλ σου και πολλά ακόμα.", + ], + "Enter your password" => [ + 0 => "Βάλε το κωδικό σου", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Αποσυνδέθηκες %s. >Ελπίζουμε να σε δούμε σύντομα.", + ], + "Website under maintenance" => [ + 0 => "Η Ιστοσελίδα είναι υπό συντήρηση", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Εκτελούμε προγραμματισμένες εργασίες συντήρησης στην ιστοσελίδα. Παρακαλούμε επανέλθετε σε λίγα λεπτά.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Ή δεν έχεις την άδεια να εισέλθεις σε αυτή τη σελίδα ή το λίνκ έληξε.", + ], + "Results for" => [ + 0 => "Αποτελέσματα για", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Θέλετε πραγματικά να διαγράψετε αυτόν το χρήστη; Αυτό δεν μπορεί να αναιρεθεί.", + ], + "Delete user" => [ + 0 => "Διαγραφή χρήστη", + ], + "User ID" => [ + 0 => "Ταυτότητα Χρήστη", + ], + "Register date" => [ + 0 => "Ημερ. εγγραφής", + ], + "Status" => [ + 0 => "Κατάσταση", + ], + "Valid" => [ + 0 => "Έγκυρο", + ], + "Banned" => [ + 0 => "Αποκλεισμένο", + ], + "Awaiting email" => [ + 0 => "Αναμονή email", + ], + "Awaiting confirmation" => [ + 0 => "Αναμονή επιβεβαίωσης", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i εως %f χαρακτήρες<br>Γράμματα, νούμερα και \"_\"", + ], + "Newsletter" => [ + 0 => "Ενημερωτικό Δελτίο", + ], + "Content settings" => [ + 0 => "Ρυθμίσεις περιεχομένου", + ], + "Language" => [ + 0 => "Γλώσσα", + ], + "Timezone" => [ + 0 => "Ζώνη ώρας", + ], + "Current password" => [ + 0 => "Τρέχων κωδικός", + ], + "Enter your current password" => [ + 0 => "Εισαγωγή κωδικού", + ], + "New password" => [ + 0 => "Νέος κωδικός", + ], + "Confirm new password" => [ + 0 => "Επιβεβαίωση νέου κωδικού", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Πρόσθεσε ένα κωδικό για να μπορείς να συνδεθείς με το όνομα χρήστη ή το email σου", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Ο χρήστης αυτός δεν έχει κωδικό. Πρόσθεσε έναν χρησιμποιώντας αυτή την φόρμα", + ], + "Re-enter your password" => [ + 0 => "Επανάληψη κωδικού", + ], + "loading" => [ + 0 => "Φόρτωση", + ], + "Upload new image" => [ + 0 => "Ανέβασε νέα εικόνα", + ], + "Delete existing image" => [ + 0 => "Διαγραφή υπάρχουσας εικόνας", + ], + "This is your real name, not your username." => [ + 0 => "Αυτό είναι το πραγματικό σου όνομα, όχι όνομα χρήστη", + ], + "http://yourwebsite.com" => [ + 0 => "http://ηιστοσελιδασου.com", + ], + "Tell us a little bit about you" => [ + 0 => "Πείτε μας λίγα λόγια για εσάς", + ], + "User has no connections." => [ + 0 => "Ο χρήστης δεν έχει συνδέσεις.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Σύνδεσε το λογαριασμό σου σε εξωτερικές υπηρεσίες για να είσαι σε θέση να συνδεθείς και να μοιραστείς το περιεχόμενο.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Αλήθεια θές να αποσυνδέσεις τονt %s από αυτόν το λογαριασμό?", + ], + "This account is connected to %s" => [ + 0 => "Ο λογαριασμός είναι συνδεδεμένος στο %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Αλήθεια θες να αποσυνδέσεις τον λογαριασμό %s ;", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Θα αποσυνδεθείς και δε θα μπορείς να συνδεθείς χρησιμοποιώντας αυτόν τον λογαριασμό %s", + ], + "Your account is connected to %s" => [ + 0 => "Ο λογαριασμός σου είναι συνδεδεμένος στο %s", + ], + "disconnect" => [ + 0 => "αποσύνδεση", + ], + "Connect %s" => [ + 0 => "Σύνδεση %s", + ], + "Upload profile background" => [ + 0 => "Ανέβασε φόντο προφίλ", + ], + "Change background" => [ + 0 => "Αλλαγή φόντου", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Η εικόνα φόντου προφίλ θα διαγραφεί. Αυτό δεν μπορεί να αναιρεθεί. Είσαι σίγουρος ότι θές να διαγράψεις την εικόνα φόντου προφίλ;", + ], + "Delete background" => [ + 0 => "Διαγραφή φόντου", + ], + "Edit profile" => [ + 0 => "Επεξεργασία προφίλ", + ], + "You must enter the album name." => [ + 0 => "Πρέπει να δώσετε ένα όνομα στο άλμπουμ.", + ], + "Confirm" => [ + 0 => "Επιβεβαίωση", + ], + "Select existing album" => [ + 0 => "Επιλογή υπάρχον άλμπουμ", + ], + "Please select a valid image file type." => [ + 0 => "Παρακαλώ επιλέξτε έναν έγκυρο τύπο αρχείου.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Παρακαλώ επιλέξτε μια φωτογραφία με μέγιστο μέγεθος %s.", + ], + "Profile image updated." => [ + 0 => "Η εικόνα του προφίλ ενημερώθηκε.", + ], + "Profile background image updated." => [ + 0 => "Εικόνα φόντου προφίλ αλλάχτηκε.", + ], + "Profile background image deleted." => [ + 0 => "Η εικόνα ταπετσαρίας του προφίλ διαγράφηκε.", + ], + "Error deleting profile background image." => [ + 0 => "Λάθος κατά την διαγραφή εικόνας φόντου προφίλ", + ], + "Update available (%s)" => [ + 0 => "Διαθέσιμη ενημέρωση (%s)", + ], + "There is an update available for your system. Go to %s to proceed to download the file." => [ + 0 => "Υπάρχει διαθέσιμη ενημέρωση συστήματος. Πήγαινε εδώ %s για να κατεβάσεις το αρχείο.", + ], + "The release notes for the update available are:" => [ + 0 => "Οι σημειώσεις έκδοσης για την ενημέρωση που υπάρχουν είναι:", + ], + "Your website is running the latest version of Chevereto." => [ + 0 => "Η ιστοσελίδα σας χρησιμοποιεί την τελευταία έκδοση.", + ], + "File too big." => [ + 0 => "Πολύ μεγάλο αρχείο.", + ], + "Some files couldn't be added" => [ + 0 => "Κάποια αρχεία δε μπορούσαν να προστεθούν", + ], + "Image edited successfully." => [ + 0 => "Η εικόνα διορθώθηκε επιτυχώς.", + ], + "Album edited successfully." => [ + 0 => "Το άλμπουμ διορθώθηκε επιτυχώς.", + ], + "Invalid URL key." => [ + 0 => "Λάθος κλειδί URL.", + ], + "Category URL key already being used." => [ + 0 => "Το κλειδί κατηγορίας URL χρησιμοποιείτε ήδη.", + ], + "Category successfully deleted." => [ + 0 => "Η κατηγορία διαγράφηκε επιτυχώς.", + ], + "Category %s added." => [ + 0 => "Η κατηγορία %s προστέθηκε.", + ], + "Invalid expiration date." => [ + 0 => "Μη έγκυρη ημερομηνία λήξης.", + ], + "IP %s already banned." => [ + 0 => "Η διέυθυνση IP %s έχει ήδη αποκλειστεί.", + ], + "IP %s banned." => [ + 0 => "Η διέυθυνση IP %s αποκλείστηκε.", + ], + "IP ban successfully deleted." => [ + 0 => "Η διέυθυνση IP διαγράφηκε επιτυχώς.", + ], + "Please fill all the required fields." => [ + 0 => "Παρακαλώ συμπληρώστε όλα τα απαραίτητα πεδία.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Μη έγκυρη τιμή χωρητικότητας αποθήκευσης. Βεβαιωθείτε ότι χρησιμοποιείτε μια έγκυρη μορφή.", + ], + "Invalid URL." => [ + 0 => "Μη έγκυρη διεύθυνση URL.", + ], + "Storage successfully edited." => [ + 0 => "Αποθήκευση επεξεργάστηκε με επιτυχία.", + ], + "User added successfully." => [ + 0 => "Ο χρήστης προστέθηκε επιτυχώς.", + ], + "The content has been moved." => [ + 0 => "Το περιεχόμενο μετακινήθηκε.", + ], + "Unselect" => [ + 0 => "Αποεπιλογή", + ], + "The content has been edited." => [ + 0 => "Το περιεχόμενο επεγεργάστηκε.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Όλες οι αλλαγές που κάνατε θα χαθούν αν συνεχίσετε.", + ], + "Changes saved successfully." => [ + 0 => "Οι αλλαγές αποθηκέυτηκαν επιτυχώς.", + ], + "Go back to form" => [ + 0 => "Επιστροφή στην φόρμα", + ], + "continue anyway" => [ + 0 => "συνέχεια έτσι κι αλλιώς", + ], + "Saving" => [ + 0 => "Αποθήκευση", + ], + "Sending" => [ + 0 => "Αποστολή", + ], + "Confirm action" => [ + 0 => "Επιβεβαίωση ενέργειας", + ], + "information" => [ + 0 => "πληροφορία", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/en.po.cache.php b/app/.cache/languages/en.po.cache.php new file mode 100644 index 0000000..ebf30e2 --- /dev/null +++ b/app/.cache/languages/en.po.cache.php @@ -0,0 +1,27 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'Chevereto V3', + 'POT-Creation-Date' => '2021-07-05 14:26-0400', + 'PO-Revision-Date' => '2021-07-05 14:26-0400', + 'Last-Translator' => 'Rodolfo Berríos <inbox@rodolfoberrios.com>', + 'Language-Team' => '', + 'Language' => 'en_US', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'X-Generator' => 'Poedit 3.0', + 'X-Poedit-Basepath' => '../../..', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', + 'X-Poedit-KeywordsList' => '_s;_se;_n:1,2;_ne:1,2;PF.fn._s;PF.fn._n:1,2', + 'X-Poedit-SourceCharset' => 'UTF-8', + 'X-Poedit-SearchPath-0' => '.', + 'X-Poedit-SearchPathExcluded-0' => 'app/vendor', + 'X-Poedit-SearchPathExcluded-1' => 'app/content/languages/cache', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/es.po.cache.php b/app/.cache/languages/es.po.cache.php new file mode 100644 index 0000000..9a2fc7f --- /dev/null +++ b/app/.cache/languages/es.po.cache.php @@ -0,0 +1,3738 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-07 13:29+0000', + 'PO-Revision-Date' => '2021-06-07 13:29+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'es', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Email inválido", + ], + "Invalid username" => [ + 0 => "Nombre de usuario inválido", + ], + "Invalid password" => [ + 0 => "Contraseña inválida", + ], + "Installed version is v%s" => [ + 0 => "La versión instalada es v%s", + ], + "Can't connect to %s" => [ + 0 => "No se puede conectar a %s", + ], + "Last available release is v%s" => [ + 0 => "La última versión disponible es v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Actualización necesaria, procediendo a descarga", + ], + "No update needed" => [ + 0 => "No se necesita actualizar", + ], + "System files already up to date" => [ + 0 => "Los archivos de sistema ya están actualizados", + ], + "Starting v%s download" => [ + 0 => "Comenzando a descargar v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s descargada, procediendo a extraer", + ], + "Attempting to extract v%s" => [ + 0 => "Intentando extraer v%s", + ], + "Extraction completed" => [ + 0 => "Extracción completada", + ], + "Proceding to install the update" => [ + 0 => "Procediendo a instalar la actualización", + ], + "Update failed" => [ + 0 => "Error en la actualización", + ], + "Update in progress" => [ + 0 => "Actualización en progreso", + ], + "Missing %s file" => [ + 0 => "Falta archivo %s", + ], + "Invalid license info" => [ + 0 => "Información de licencia inválida", + ], + "Can't save file" => [ + 0 => "No se puede guardar el archivo", + ], + "Can't extract %s" => [ + 0 => "No se puede extraer %s", + ], + "Can't create %s directory - %e" => [ + 0 => "No se puede crear el directorio %s - %e", + ], + "Can't update %s file - %e" => [ + 0 => "No se puede actualizar el archivo %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Comprueba los errores en el formulario para continuar.", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Nota: Este contenido es privado pero cualquiera con el enlace podrá ver esto.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Nota: Este contenido está protegido con contraseña. Recuerda pasar la contraseña para compartir.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Nota: Este contenido es privado. Cambia su privacidad a \"publico\" para compatir.", + ], + "You must enter the album name." => [ + 0 => "Debes ingresar el nombre del álbum.", + ], + "Confirm" => [ + 0 => "Confirmar", + ], + "The content has been approved." => [ + 0 => "El contenido ha sido aprobado.", + ], + "Select existing album" => [ + 0 => "Seleccionar álbum existente", + ], + "An error occurred. Please try again later." => [ + 0 => "Ha ocurrido un error. Por favor inténtalo más tarde.", + ], + "Please select a valid image file type." => [ + 0 => "Por favor seleciona un archivo de imagen válido.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Por favor selecciona una imagen de a lo sumo %s de tamaño.", + ], + "Profile image updated." => [ + 0 => "Imagen de perfil actualizada.", + ], + "Profile background image updated." => [ + 0 => "Imagen de fondo de perfil actualizada.", + ], + "Profile background image deleted." => [ + 0 => "Imagen de fondo de perfil eliminada.", + ], + "Error deleting profile background image." => [ + 0 => "Error eliminado la imagen de fondo de perfil.", + ], + "Passwords don't match" => [ + 0 => "Las contraseñas no coinciden", + ], + "Update available v%s" => [ + 0 => "Actualización disponible v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Hay una actualización disponible para tu sistema. Puedes descargar automáticamente e instalar esta actualización o puedes ir a %s y descargar este archivo.", + ], + "The release notes for this update are:" => [ + 0 => "Las notas de versión para esta actualización son:", + ], + "system requirements" => [ + 0 => "requisitos de sistema", + ], + "I confirm that this server meets the %s for this update" => [ + 0 => "Confirmo que este servidor cumple los %s para esta actualización", + ], + "Update now" => [ + 0 => "Actualizar ahora", + ], + "This website is running latest %s version" => [ + 0 => "Este sitio web está corriendo la última versión de %s", + ], + "Please review the system requirements before proceeding" => [ + 0 => "Porfavor revisa los requerimientos de sistema antes de proceder", + ], + "loading" => [ + 0 => "cargando", + ], + "Toggle select" => [ + 0 => "Alternar selección", + ], + "Like" => [ + 0 => "Me gusta", + ], + "Toggle flag" => [ + 0 => "Alternar marca", + ], + "Edit" => [ + 0 => "Editar", + ], + "Album" => [ + 0 => "Álbum", + 1 => "Álbumes", + ], + "Approve" => [ + 0 => "Aprobar", + ], + "Delete" => [ + 0 => "Eliminar", + ], + "Close" => [ + 0 => "Cerrar", + ], + "Previous" => [ + 0 => "Anterior", + ], + "Next" => [ + 0 => "Siguiente", + ], + "Clipboard image" => [ + 0 => "Imagen portapales", + ], + "File too big." => [ + 0 => "Archivo muy pesado.", + ], + "Invalid or unsupported file format." => [ + 0 => "Formato de archivo inválido o no soportado.", + ], + "Some files couldn't be added" => [ + 0 => "Algunos archivos no se pudieron agregar", + ], + "image" => [ + 0 => "imagen", + 1 => "imágenes", + ], + "%s's Albums" => [ + 0 => "Álbumes de %s", + ], + "Image edited successfully." => [ + 0 => "Imagen editada exitosamente.", + ], + "private" => [ + 0 => "privado", + ], + "Album edited successfully." => [ + 0 => "Álbum editado exitosamente.", + ], + "Invalid URL key." => [ + 0 => "Llave URL inválida.", + ], + "Category URL key already being used." => [ + 0 => "Llave URL de categoría actualmente en uso.", + ], + "Category successfully deleted." => [ + 0 => "Categoría eliminada exitosamente.", + ], + "Category %s added." => [ + 0 => "Categoría %s agregada.", + ], + "Invalid expiration date." => [ + 0 => "Fecha de expiración inválida.", + ], + "IP %s already banned." => [ + 0 => "IP %s ya baneada.", + ], + "IP %s banned." => [ + 0 => "IP %s baneada.", + ], + "IP ban successfully deleted." => [ + 0 => "Baneo de IP eliminado exitosamente.", + ], + "Please fill all the required fields." => [ + 0 => "Por favor completa todos los campos requeridos.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Capacidad de almacenamiento inválida. Asegúrate de usar un formato válido.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "La capacidad de almacenamiento no puede ser menor que su uso actual (%s).", + ], + "Invalid URL." => [ + 0 => "URL inválida.", + ], + "Storage successfully edited." => [ + 0 => "Almacenamiento editado exitosamente.", + ], + "User added successfully." => [ + 0 => "Usuario agregado exitosamente.", + ], + "The content has been deleted." => [ + 0 => "El contenido ha sido eliminado.", + ], + "The content has been moved." => [ + 0 => "El contenido ha sido trasladado.", + ], + "Select" => [ + 0 => "Seleccionar", + ], + "Unselect" => [ + 0 => "Deseleccionar", + ], + "The content has been edited." => [ + 0 => "El contenido ha sido editado.", + ], + "Import ID %s removed" => [ + 0 => "ID de importación %s eliminada", + ], + "Spam detected" => [ + 0 => "Spam detectado", + ], + "album" => [ + 0 => "álbum", + 1 => "álbumes", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Flooding detectado. Solamente puedes subir %limit% %content% por %time%", + ], + "Untitled" => [ + 0 => "Sin título", + ], + "%s's images" => [ + 0 => "Imágenes de %s", + ], + "Private" => [ + 0 => "Privado", + ], + "Public" => [ + 0 => "Público", + ], + "Me" => [ + 0 => "Yo", + ], + "Link" => [ + 0 => "Enlace", + ], + "Password" => [ + 0 => "Contraseña", + ], + "view" => [ + 0 => "visita", + 1 => "visitas", + ], + "After %n %t" => [ + 0 => "Después de %n %t", + ], + "minute" => [ + 0 => "minuto", + 1 => "minutos", + ], + "hour" => [ + 0 => "hora", + 1 => "horas", + ], + "day" => [ + 0 => "día", + 1 => "días", + ], + "week" => [ + 0 => "semana", + 1 => "semanas", + ], + "month" => [ + 0 => "mes", + 1 => "meses", + ], + "year" => [ + 0 => "año", + 1 => "años", + ], + "Don't autodelete" => [ + 0 => "No eliminar automáticamente", + ], + "Can't open %s for writing" => [ + 0 => "No se puede abrir %s para escritura", + ], + "Duplicated upload" => [ + 0 => "Subida duplicada", + ], + "Private upload" => [ + 0 => "Subida privada", + ], + "like" => [ + 0 => "me gusta", + 1 => "me gusta", + ], + "Recent" => [ + 0 => "Reciente", + ], + "Trending" => [ + 0 => "Tendencia", + ], + "Top users" => [ + 0 => "Usuarios top", + ], + "Most recent" => [ + 0 => "Más reciente", + ], + "Oldest" => [ + 0 => "Más antiguo", + ], + "Most viewed" => [ + 0 => "Más visto", + ], + "Popular" => [ + 0 => "Popular", + ], + "Most liked" => [ + 0 => "Más me gusta", + ], + "Explore" => [ + 0 => "Explorar", + ], + "Animated" => [ + 0 => "Animado", + ], + "Search" => [ + 0 => "Buscar", + ], + "People" => [ + 0 => "Gente", + ], + "Image" => [ + 0 => "Imagen", + 1 => "Imágenes", + ], + "User" => [ + 0 => "Usuario", + 1 => "Usuarios", + ], + "adult" => [ + 0 => "adulto", + ], + "teen" => [ + 0 => "adolescente", + ], + "Content of type %s is forbidden" => [ + 0 => "El contenido de tipo %s está prohibido", + ], + "Can't create %s destination dir" => [ + 0 => "No se puede crear el directorio %s de destino", + ], + "Internal" => [ + 0 => "Interna", + ], + "Unlimited" => [ + 0 => "Ilimitado", + ], + "used" => [ + 0 => "usado", + ], + "Private profile" => [ + 0 => "Perfil privado", + ], + "second" => [ + 0 => "segundo", + 1 => "segundos", + ], + "%s ago" => [ + 0 => "hace %s", + ], + "moments ago" => [ + 0 => "hace unos momentos", + ], + "Dashboard" => [ + 0 => "Administrar", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Hay una actualización disponible para tu sistema. Ve a %s para descargar e instalar esta actualización.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "La base de datos del sistema esta desactualizada. Necesitas ejecutar la herramienta de <a href=\"%s\">actualización</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "La página web está en modo de mantenimiento. Para revertir este ajuste ve a <a href=\"%s\">Administrar > Configuraciones</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Deberías inhabilitar el reporte de errores de PHP en entorno de producción. ve a <a href='%s'>Ajustes de sistema</a> para revertir este ajuste.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "No has cambiado los ajustes de email por defecto. Ve a <a href='%s'>Ajustes de email</a> para reparar esto.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Hay una actualización disponible para tu sitio basado en Chevereto.", + ], + "admin dashboard" => [ + 0 => "panel de administración", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Puedes aplicar esta actualización directamente desde %a o puedes descargarla desde %s e instalar manualmente.", + ], + "view on %s" => [ + 0 => "ver en %s", + ], + "cookie policy" => [ + 0 => "política de cookies", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Utilizamos cookies propias y de terceros para mejorar tu experiencia de navegación y nuestros servicios. Si continúas usando nuestro sitio web, se entiende que aceptas esta %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Entiendo", + ], + "Forgot password?" => [ + 0 => "Recuperar contraseña", + ], + "Reset password" => [ + 0 => "Restablecer contraseña", + ], + "Resend account activation" => [ + 0 => "Reenviar activación de cuenta", + ], + "Add your email address" => [ + 0 => "Agrega tu dirección de email", + ], + "Email changed" => [ + 0 => "Email cambiado", + ], + "%s says you are a robot" => [ + 0 => "%s dice que eres un robot", + ], + "Invalid Username/Email" => [ + 0 => "Nombre de usuario / Email inválido", + ], + "User doesn't have an email." => [ + 0 => "El usuario no tiene email.", + ], + "Request denied" => [ + 0 => "Solicitud denegada", + ], + "Account needs to be activated to use this feature" => [ + 0 => "La cuenta necesita ser activada para usar esta característica", + ], + "Account already activated" => [ + 0 => "La cuenta ya está activada", + ], + "Account banned" => [ + 0 => "Cuenta baneada", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Permite hasta 15 minutos para el email. Puedes intentar más tarde.", + ], + "Reset your password at %s" => [ + 0 => "Restablecer tu contraseña en %s", + ], + "Confirmation required at %s" => [ + 0 => "Confirmación requerida en %s", + ], + "Welcome to %s" => [ + 0 => "Bienvenido/a a %s", + ], + "Email already being used" => [ + 0 => "Email actualmente en uso", + ], + "Password required" => [ + 0 => "Contraseña requerida", + ], + "Embed codes" => [ + 0 => "Insertar", + ], + "Sub albums" => [ + 0 => "Sub-álbumes", + ], + "Info" => [ + 0 => "Info", + ], + "%a album hosted in %w" => [ + 0 => "Álbum %a alojado en %w", + ], + "Stats" => [ + 0 => "Estadísticas", + ], + "Images" => [ + 0 => "Imágenes", + ], + "Albums" => [ + 0 => "Álbumes", + ], + "Users" => [ + 0 => "Usuarios", + ], + "Settings" => [ + 0 => "Ajustes", + ], + "Bulk importer" => [ + 0 => "Importador", + ], + "install update" => [ + 0 => "instalar actualización", + ], + "check for updates" => [ + 0 => "comprobar actualizaciones", + ], + "Contributing" => [ + 0 => "Contribuir", + ], + "Support" => [ + 0 => "Soporte", + ], + "Bug tracking" => [ + 0 => "Seguimiento de errores", + ], + "Documentation" => [ + 0 => "Documentación", + ], + "PHP version" => [ + 0 => "Versión de PHP", + ], + "Server" => [ + 0 => "Servidor", + ], + "MySQL version" => [ + 0 => "Versión de MySQL", + ], + "MySQL server info" => [ + 0 => "Info servidor MySQL", + ], + "Graphics Library" => [ + 0 => "Libreria gráfica", + ], + "File uploads" => [ + 0 => "Subidas de archivos", + ], + "Enabled" => [ + 0 => "Habilitado", + ], + "Disabled" => [ + 0 => "Deshabilitado", + ], + "Max. upload file size" => [ + 0 => "Tamaño máx. de archivo de subida", + ], + "Max. post size" => [ + 0 => "Tamaño máx. de post", + ], + "Max. execution time" => [ + 0 => "Tiempo máx. de ejecución", + ], + "%d second" => [ + 0 => "%d segundo", + 1 => "%d segundos", + ], + "Memory limit" => [ + 0 => "Límite de memoria", + ], + "Rebuild stats" => [ + 0 => "Reconstruir estadísticas", + ], + "Connecting IP" => [ + 0 => "IP conectada", + ], + "Not your IP?" => [ + 0 => "No es tu IP?", + ], + "Website" => [ + 0 => "Sitio web", + ], + "Content" => [ + 0 => "Contenido", + ], + "Pages" => [ + 0 => "Páginas", + ], + "Listings" => [ + 0 => "Listados", + ], + "Image upload" => [ + 0 => "Subida de imágenes", + ], + "Categories" => [ + 0 => "Categorías", + ], + "Consent screen" => [ + 0 => "Pantalla de consentimiento", + ], + "Flood protection" => [ + 0 => "Protección flood", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Página principal", + ], + "Banners" => [ + 0 => "Anuncios", + ], + "System" => [ + 0 => "Sistema", + ], + "Routing" => [ + 0 => "Enrutamiento", + ], + "Languages" => [ + 0 => "Idiomas", + ], + "External storage" => [ + 0 => "Almacenamiento externo", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Redes sociales", + ], + "External services" => [ + 0 => "Servicios externos", + ], + "IP bans" => [ + 0 => "Baneos de IP", + ], + "Additional settings" => [ + 0 => "Ajustes adicionales", + ], + "Tools" => [ + 0 => "Herramientas", + ], + "Can't delete all homepage cover images" => [ + 0 => "No puedes borrar todas las imágenes de portada", + ], + "Homepage cover image deleted" => [ + 0 => "Imagen de portada eliminada", + ], + "Local" => [ + 0 => "Local", + ], + "External" => [ + 0 => "Externo", + ], + "All" => [ + 0 => "Todo", + ], + "search content" => [ + 0 => "buscar contenido", + ], + "Add page" => [ + 0 => "Añadir página", + ], + "Edit page ID %s" => [ + 0 => "Editar página ID %s", + ], + "The page has been added successfully." => [ + 0 => "La página ha sido añadida exitosamente.", + ], + "The page has been deleted." => [ + 0 => "La página ha sido eliminada.", + ], + "homepage" => [ + 0 => "pagina principal", + ], + "Before main title (%s)" => [ + 0 => "Antes del título principal (%s)", + ], + "After call to action (%s)" => [ + 0 => "Después de la llamada de acción (%s)", + ], + "After cover (%s)" => [ + 0 => "Después del cover (%s)", + ], + "After listing (%s)" => [ + 0 => "Después del listado (%s)", + ], + "Before pagination" => [ + 0 => "Antes de la paginación", + ], + "After pagination" => [ + 0 => "Después de la paginación", + ], + "Content (image and album)" => [ + 0 => "Contenido (imagen y álbum)", + ], + "Tab about column" => [ + 0 => "Columna en pestaña sobre", + ], + "Before comments" => [ + 0 => "Antes de los comentarios", + ], + "Image page" => [ + 0 => "Página de imagen", + ], + "Inside viewer top (image page)" => [ + 0 => "En el interior superior del visualizador (página de imagen)", + ], + "Inside viewer foot (image page)" => [ + 0 => "En el interior inferior del visualizador (página de imagen)", + ], + "After image viewer (image page)" => [ + 0 => "Después del visualizador de imagen (página de imagen)", + ], + "Before header (image page)" => [ + 0 => "Antes del header (página de imagen)", + ], + "After header (image page)" => [ + 0 => "Después del header (página de imagen)", + ], + "Footer (image page)" => [ + 0 => "Footer (página de imagen)", + ], + "Album page" => [ + 0 => "Página de álbum", + ], + "Before header (album page)" => [ + 0 => "Antes del header (página de álbum)", + ], + "After header (album page)" => [ + 0 => "Después del header (página de álbum)", + ], + "User profile page" => [ + 0 => "Página de perfil de usuario", + ], + "After top (user profile)" => [ + 0 => "Después del top (página de perfil de usuario)", + ], + "Before listing (user profile)" => [ + 0 => "Antes del listado (página de perfil de usuario)", + ], + "Explore page" => [ + 0 => "Página de exploración", + ], + "After top (explore page)" => [ + 0 => "Después del top (página de exploración)", + ], + "NSFW" => [ + 0 => "No seguro", + ], + "Invalid website name" => [ + 0 => "Nombre de sitio inválido", + ], + "Invalid language" => [ + 0 => "Idioma inválido", + ], + "Invalid timezone" => [ + 0 => "Zona horaria inválida", + ], + "Invalid value: %s" => [ + 0 => "Valor inválido: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Método de almacenamiento inválido", + ], + "Invalid upload filenaming" => [ + 0 => "Nombramiento de subidas inválido", + ], + "Invalid thumb width" => [ + 0 => "Ancho de miniatura inválido", + ], + "Invalid thumb height" => [ + 0 => "Alto de miniatura inválido", + ], + "Invalid medium size" => [ + 0 => "Tamaño medio inválido", + ], + "Invalid watermark percentage" => [ + 0 => "Porcentaje de marca de agua inválido", + ], + "Invalid watermark opacity" => [ + 0 => "Opacidad de marca de agua inválida", + ], + "Invalid theme" => [ + 0 => "Tema inválido", + ], + "Invalid value" => [ + 0 => "Valor inválido", + ], + "Invalid theme tone" => [ + 0 => "Tono de tema inválido", + ], + "Invalid theme main color" => [ + 0 => "Color principal de tema inválido", + ], + "Invalid theme top bar button color" => [ + 0 => "Color de botón de barra superior de tema inválido", + ], + "Invalid theme image listing size" => [ + 0 => "Tamaño de imagen de listado inválido", + ], + "Invalid user id" => [ + 0 => "Id de usuario inválida", + ], + "Invalid email mode" => [ + 0 => "Modo de email inválido", + ], + "Invalid SMTP port" => [ + 0 => "Puerto SMTP inválido", + ], + "Invalid SMTP security" => [ + 0 => "Seguridad SMTP inválida", + ], + "Invalid website mode" => [ + 0 => "Modo de sitio inválido", + ], + "Invalid personal mode user ID" => [ + 0 => "ID de usuario modo personal inválida", + ], + "Invalid or reserved route" => [ + 0 => "Ruta inválida o reservada", + ], + "Invalid website privacy mode" => [ + 0 => "Modo de privacidad de sitio inválido", + ], + "Invalid website content privacy mode" => [ + 0 => "Modo de privacidad de contenido inválido", + ], + "Invalid homepage style" => [ + 0 => "Estilo de página principal inválido", + ], + "Invalid homepage call to action button color" => [ + 0 => "Color de botón de llamada de acción de página principal inválido", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Función inválida del boton de accion de la página principal", + ], + "Invalid title" => [ + 0 => "Título inválido", + ], + "Invalid status" => [ + 0 => "Estado inválido", + ], + "Invalid type" => [ + 0 => "Tipo inválido", + ], + "Invalid visibility" => [ + 0 => "Visibilidad inválida", + ], + "Invalid internal type" => [ + 0 => "Tipo interno inválido", + ], + "Invalid target attribute" => [ + 0 => "Atributo target inválido", + ], + "Invalid rel attribute" => [ + 0 => "Atributo rel inválido", + ], + "Invalid icon" => [ + 0 => "Icono inválido", + ], + "Invalid URL key" => [ + 0 => "Llave URL inválida", + ], + "Invalid file path" => [ + 0 => "Ruta de archivo inválida", + ], + "Invalid link URL" => [ + 0 => "Enlace URL inválido", + ], + "Invalid user minimum age" => [ + 0 => "Edad mínima de usuario inválida", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Solamente se permiten caracteres alfanuméricos, guiones y guion bajo.", + ], + "Invalid URL" => [ + 0 => "URL inválida", + ], + "Routes can't be the same" => [ + 0 => "Las rutas no pueden ser iguales", + ], + "Invalid upload image path" => [ + 0 => "Ruta de subidas de imágenes inválida", + ], + "Invalid call to action URL" => [ + 0 => "URL de llamada de acción inválida", + ], + "Max. allowed %s" => [ + 0 => "%s max. permitido", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "No se puede mapear %m a una carpeta existente (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "No se puede mapear %m a una ruta existente (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "No se puede mapear %m a %r (conflicto con nombre de usuario)", + ], + "Invalid SMTP server" => [ + 0 => "Servidor SMTP inválido", + ], + "Invalid SMTP username" => [ + 0 => "Usuario SMTP inválido", + ], + "Invalid key" => [ + 0 => "Llave inválida", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Esta llave URL ya está siendo utilizada por otra página (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Esta ruta de archivo ya está siendo utilizada por otra página (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "No se puede guardar el contenido de la página: %s.", + ], + "Following" => [ + 0 => "Siguiendo", + ], + "About" => [ + 0 => "Acerca", + ], + "Image ID" => [ + 0 => "ID de imagen", + ], + "Uploader IP" => [ + 0 => "IP", + ], + "Ban IP" => [ + 0 => "Banear IP", + ], + "IP already banned" => [ + 0 => "IP ya baneada", + ], + "Upload date" => [ + 0 => "Fecha de subida", + ], + "Image %i in %a album" => [ + 0 => "Imagen %i en álbum %a", + ], + "Image %i in %c category" => [ + 0 => "Imagen %i en categoría %c", + ], + "Image %i hosted in %w" => [ + 0 => "Imagen %i alojada en %w", + ], + "Direct links" => [ + 0 => "Enlaces directos", + ], + "Image link" => [ + 0 => "Enlace a la imagen", + ], + "Image URL" => [ + 0 => "URL imagen", + ], + "Thumbnail URL" => [ + 0 => "URL miniatura", + ], + "Medium URL" => [ + 0 => "URL media", + ], + "Full image" => [ + 0 => "Imagen completa", + ], + "Full image (linked)" => [ + 0 => "Imagen completa (enlazada)", + ], + "Medium image (linked)" => [ + 0 => "Imagen media (enlazada)", + ], + "Thumbnail image (linked)" => [ + 0 => "Imagen en miniatura (enlazada)", + ], + "Login needed" => [ + 0 => "Necesitas identificarte", + ], + "IP address already banned" => [ + 0 => "La dirección IP ya esta baneada", + ], + "Missing values" => [ + 0 => "Faltan campos", + ], + "Invalid role" => [ + 0 => "Rol inválido", + ], + "Username already being used" => [ + 0 => "Nombre de usuario actualmente en uso", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Agrega una contraseña u otra conexión social antes de eliminar %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Agrega un email u otra conexión social antes de eliminar %s", + ], + "%s has been disconnected." => [ + 0 => "%s ha sido desconectado.", + ], + "Test email from %s @ %t" => [ + 0 => "Email de prueba desde %s @ %t", + ], + "This is just a test" => [ + 0 => "Esto es solamente una prueba", + ], + "Test email sent to %s." => [ + 0 => "Email de prueba enviado a %s", + ], + "Downloading %s data" => [ + 0 => "Descargando datos de %s", + ], + "User %s followed" => [ + 0 => "Ahora sigues a %s", + ], + "User %s unfollowed" => [ + 0 => "Dejaste de seguir a %s", + ], + "Album cover altered" => [ + 0 => "Cover de álbum alterada", + ], + "Content liked" => [ + 0 => "Contenido gustado", + ], + "Content disliked" => [ + 0 => "Contenido ya no gustado", + ], + "%u liked your %t %c" => [ + 0 => "A %u le gusta tu %t %c", + ], + "%u is now following you" => [ + 0 => "%u ahora te está siguiendo", + ], + "A private user" => [ + 0 => "Un usuario privado", + ], + "Wrong Username/Email password combination" => [ + 0 => "Combinación Nombre de usuario / Email incorrecta", + ], + "Sign in" => [ + 0 => "Entrar", + ], + "Moderate" => [ + 0 => "Moderar", + ], + "Upload images" => [ + 0 => "Subir imágenes", + ], + "Upload plugin" => [ + 0 => "Complemento de subida", + ], + "Image search results for %s" => [ + 0 => "Resultados de búsqueda de imagen para %s", + ], + "Album search results for %s" => [ + 0 => "Resultados de búsqueda de álbum para %s", + ], + "User search results for %s" => [ + 0 => "Resultados de búsqueda de usuario para %s", + ], + "Account" => [ + 0 => "Cuenta", + ], + "Profile" => [ + 0 => "Perfil", + ], + "Linked accounts" => [ + 0 => "Cuentas enlazadas", + ], + "Powered by" => [ + 0 => "Alimentado por", + ], + "Invalid image expiration: %s" => [ + 0 => "Fecha de expiración inválida: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Un email ha sido enviado a %s con las instrucciones para activar este email", + ], + "Invalid name" => [ + 0 => "Nombre inválido", + ], + "Invalid website" => [ + 0 => "Sitio web inválido", + ], + "Wrong password" => [ + 0 => "Contraseña incorrecta", + ], + "Use a new password" => [ + 0 => "Usa una nueva contraseña", + ], + "Changes have been saved." => [ + 0 => "Los cambios se han guardado.", + ], + "Password has been changed" => [ + 0 => "La contraseña ha sido cambiada", + ], + "Password has been created." => [ + 0 => "La contraseña ha sido creada.", + ], + "Wrong Username/Email values" => [ + 0 => "Nombre de usuario / Email inválidos", + ], + "Settings for %s" => [ + 0 => "Ajustes para %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Debes aceptar los términos y política de privacidad", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Debes tener al menos %s años para usar este sitio web.", + ], + "Create account" => [ + 0 => "Crear cuenta", + ], + "Upload" => [ + 0 => "Subir", + ], + "%s's Images" => [ + 0 => "Imágenes de %s", + ], + "Results for" => [ + 0 => "Resultados para", + ], + "Liked by %s" => [ + 0 => "Le gusta a %s", + ], + "Liked" => [ + 0 => "Me gusta", + ], + "Followers" => [ + 0 => "Seguidores", + ], + "%n (%u) albums on %w" => [ + 0 => "Álbumes de %n (%u) en %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) en %w", + ], + "Discovery" => [ + 0 => "Descubrimiento", + ], + "Random" => [ + 0 => "Aleatorio", + ], + "Advanced search" => [ + 0 => "Búsqueda avanzada", + ], + "Notices (%s)" => [ + 0 => "Avisos (%s)", + ], + "Notifications" => [ + 0 => "Notificaciones", + ], + "You don't have notifications" => [ + 0 => "No tienes notificaciones", + ], + "My Profile" => [ + 0 => "Mi Perfil", + ], + "Lights" => [ + 0 => "Luces", + ], + "Sign out" => [ + 0 => "Salir", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Hemos recibido la solicitud de cambiar el email de tu cuenta <a href=\"%u\">%n</a> en %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Para completar el proceso debes <a href=\"%s\">activar tu email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativamente puedes copiar y pegar esta direccíon en tu navegador: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Si no has efectuado esta solicitud simplemente ignora este mensaje.", + ], + "This request was made from IP: %s" => [ + 0 => "Esta solicitud fue realizada desde la IP %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Hemos recibido la solicitud de registrar la cuenta %n en %w", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Para completar el proceso debes <a href=\"%s\">activar tu cuenta</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Hemos recibido la solicitud de restablecer la contraseña para tu cuenta <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Para restablecer tu contraseña <a href=\"%s\">sigue este enlace</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hola %n, bienvenido(a) a %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Ahora que tu cuenta está lista puedes disfrutar subiendo imágenes, creando álbumes y estableciendo la privacidad de tu contenido asi como también otras cosas interesantes que iras descubriendo.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "A propósito, aquí está tu propio perfil: <a href=\"%u\">%n</a>. Anda y personaliza tu perfil, ¡es tuyo!", + ], + "Thank you for joining" => [ + 0 => "Gracias por unirte", + ], + "This email was sent from %w %u" => [ + 0 => "Este email fue enviado desde %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Arrastra aquí o pega las imágenes para subir", + ], + "Select the images to upload" => [ + 0 => "Selecciona las imágenes a subir", + ], + "browse from your computer" => [ + 0 => "explorar desde tu computadora", + ], + "add image URLs" => [ + 0 => "agregar URLs de imagen", + ], + "You can also %i or %u." => [ + 0 => "También puedes %i o %u.", + ], + "browse from your device" => [ + 0 => "explorar desde tu dispositivo", + ], + "take a picture" => [ + 0 => "tomar una foto", + ], + "You can also %i, %c or %u." => [ + 0 => "También puedes %i, %c o %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Edita o redimensiona cualquier imagen haciendo click en la previsualización", + ], + "Edit any image by touching the image preview" => [ + 0 => "Edita cualquier imagen tocando la previsualización", + ], + "your computer" => [ + 0 => "tu computadora", + ], + "You can add more images from %i or %u." => [ + 0 => "Puedes añadir más imágenes desde %i o %u.", + ], + "your device" => [ + 0 => "tu dispositivo", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Puedes añadir más imágenes desde %i, %c o %u.", + ], + "Uploading %q %o" => [ + 0 => "Subiendo %q %o", + ], + "complete" => [ + 0 => "completado", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Subida en curso, debería tomar solo un momento para completar el proceso.", + ], + "Upload complete" => [ + 0 => "Subida completada", + ], + "Uploaded content added to %s." => [ + 0 => "Contenido subido agregado a %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Puedes %c con el contenido recién subido o %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Puedes %c con el contenido recién subido.", + ], + "create a new album" => [ + 0 => "crear un nuevo ábum", + ], + "move it to an existing album" => [ + 0 => "trasladarlo a un álbum existente", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Debes %s o %l para guardar este contenido en tu cuenta.", + ], + "create an account" => [ + 0 => "crear una cuenta", + ], + "sign in" => [ + 0 => "entrar", + ], + "No %s have been uploaded" => [ + 0 => "No se han subido %s", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Han ocurrido algunos errores y el sistema no ha podido procesar la solicitud.", + ], + "Category" => [ + 0 => "Categoría", + ], + "Select category" => [ + 0 => "Seleccionar categoría", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Marca esto si la subida no es segura para familia", + ], + "Not family safe upload" => [ + 0 => "Subida no segura para familia", + ], + "Uploading" => [ + 0 => "Subiendo", + ], + "or" => [ + 0 => "o", + ], + "cancel" => [ + 0 => "cancelar", + ], + "cancel remaining" => [ + 0 => "cancelar restantes", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Nota: Algunas imágenes no se pudieron subir.", + ], + "learn more" => [ + 0 => "conocer más", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Revisa el <a data-modal=\"simple\" data-target=\"failed-upload-result\">reporte de error</a> para más información.", + ], + "Register to get %s" => [ + 0 => "Regístrate para obtener %s", + ], + "reset" => [ + 0 => "restablecer", + ], + "close" => [ + 0 => "cerrar", + ], + "Note" => [ + 0 => "Nota", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Debemos aprobar el contenido subido antes de poder compartir.", + ], + "copy" => [ + 0 => "copiar", + ], + "insert" => [ + 0 => "insertar", + ], + "Remove" => [ + 0 => "Eliminar", + ], + "Title" => [ + 0 => "Título", + ], + "optional" => [ + 0 => "opcional", + ], + "Resize image" => [ + 0 => "Redimensionar imagen", + ], + "Width" => [ + 0 => "Ancho", + ], + "Height" => [ + 0 => "Alto", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Nota: Las imágenes GIF animadas no serán redimensionadas.", + ], + "Auto delete image" => [ + 0 => "Eliminar imagen automáticamente", + ], + "Sign up" => [ + 0 => "Regístrate", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s para poder personalizar o inhabilitar la eliminación automática de imágenes.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Marca esto si la imagen no es segura para familia", + ], + "Flag as unsafe" => [ + 0 => "Marcar como no segura", + ], + "Description" => [ + 0 => "Descripción", + ], + "Brief description of this image" => [ + 0 => "Breve descripción de esta imagen", + ], + "Add image URLs" => [ + 0 => "Agrega URLs de imagen", + ], + "Add the image URLs here" => [ + 0 => "Agrega aquí las URLs de las imágenes", + ], + "Create album" => [ + 0 => "Crear álbum", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "El contenido subido será trasladado a este nuevo álbum.", + ], + "existing album" => [ + 0 => "álbum existente", + ], + "You can also move the content to an %a." => [ + 0 => "También puedes trasladar el contenido a un %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Debes %s o %l si quieres editar este álbum más adelante.", + ], + "Move to album" => [ + 0 => "Trasladar a álbum", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Selecciona el álbum donde quieres trasladar el contenido subido. También puedes <a class=\"modal-switch\" data-switch=\"move-new-album\">crear un álbum</a> y trasladar el contenido al mismo.", + ], + "Error report" => [ + 0 => "Reporte de error", + ], + "Links" => [ + 0 => "Enlaces", + ], + "Viewer links" => [ + 0 => "Enlaces de visualizador", + ], + "HTML Codes" => [ + 0 => "Códigos HTML", + ], + "HTML image" => [ + 0 => "HTML imagen", + ], + "HTML full linked" => [ + 0 => "HTML completa enlazada", + ], + "HTML medium linked" => [ + 0 => "HTML media enlazada", + ], + "HTML thumbnail linked" => [ + 0 => "HTML miniatura enlazada", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode full" => [ + 0 => "BBCode completa", + ], + "BBCode full linked" => [ + 0 => "BBCode completa enlazada", + ], + "BBCode medium linked" => [ + 0 => "BBCode media enlazada", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode miniatura enlazada", + ], + "Markdown full" => [ + 0 => "Markdown completo", + ], + "Markdown full linked" => [ + 0 => "Markdown completa enlazada", + ], + "Markdown medium linked" => [ + 0 => "Markdown media enlazada", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown miniatura enlazada", + ], + "All these words" => [ + 0 => "Todas estas palabras", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Ingresa las palabras importantes: Terrier ratonero tricolor", + ], + "This exact word or phrase" => [ + 0 => "Esta palabra o frase exactas", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Ingresa las palabras exactas entre comillas: \"Terrier ratonero\"", + ], + "None of these words" => [ + 0 => "Ninguna de estas palabras", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Ingresa un signo menos justo delante de las palabras que no quieres que aparezcan: -Roedor, -\"Jack Russell\"", + ], + "Storage" => [ + 0 => "Almacenamiento", + ], + "IP address" => [ + 0 => "Dirección IP", + ], + "Album name" => [ + 0 => "Nombre del álbum", + ], + "move to existing album" => [ + 0 => "trasladar a álbum existente", + ], + "Album description" => [ + 0 => "Descripción del ábum", + ], + "Brief description of this album" => [ + 0 => "Breve descripción de este álbum", + ], + "Album privacy" => [ + 0 => "Privacidad del álbum", + ], + "Who can view this content" => [ + 0 => "Quién puede ver este contenido", + ], + "Private (just me)" => [ + 0 => "Privado (sólo yo)", + ], + "Private (anyone with the link)" => [ + 0 => "Privado (cualquiera con el enlace)", + ], + "Private (password protected)" => [ + 0 => "Privado (protegido con contraseña)", + ], + "Album password" => [ + 0 => "Contraseña del álbum", + ], + "Name" => [ + 0 => "Nombre", + ], + "Category name" => [ + 0 => "Nombre de la categoría", + ], + "URL key" => [ + 0 => "Llave URL", + ], + "Category URL key" => [ + 0 => "Llave URL de categoría", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Sólo letras, números y guiones", + ], + "Brief description of this category" => [ + 0 => "Breve descripción de esta categoría", + ], + "Untitled image" => [ + 0 => "Imagen sin título", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Marca esto si la imagen no es segura para trabajo", + ], + "Flag not safe" => [ + 0 => "Marcar no segura", + ], + "Path" => [ + 0 => "Ruta", + ], + "Local path (absolute)" => [ + 0 => "Ruta local (absoluta)", + ], + "Directory structure" => [ + 0 => "Estructura de directorio", + ], + "Parse top level folders as users (username)" => [ + 0 => "Analizar carpetas de nivel superior como usuarios (nombre de usuario)", + ], + "Parse top level folders as albums" => [ + 0 => "Analizar carpetas de nivel superior como álbumes", + ], + "Don't parse folders" => [ + 0 => "No analizar carpetas", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Al analizar carpetas de nivel superior como usuarios, las carpetas de segundo nivel son analizadas como álbumes de usuario. Analizar carpetas de nivel superior como álbumes agrega estos como álbumes de invitados.", + ], + "Threads" => [ + 0 => "Hilos", + ], + "Select number of threads" => [ + 0 => "Selecciona número de hilos", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Esto determina que tan intensivo y rápido será el proceso de importación. No uses más de %s hilos en un servidor compartido.", + ], + "You can use wildcard * characters." => [ + 0 => "Puedes usar caracteres comodín *.", + ], + "Expiration date" => [ + 0 => "Fecha de expiración", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "AAAA-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Ejemplo", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "¿Hasta qué fecha esta IP estará baneada? Deja en blanco para no establecer expiración.", + ], + "Message" => [ + 0 => "Mensaje", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Mensaje de texto, HTML o una URL de redirección", + ], + "Existing album" => [ + 0 => "Álbum existente", + ], + "create new album" => [ + 0 => "crear nuevo álbum", + ], + "Storage name" => [ + 0 => "Nombre del almacenamiento", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Región", + ], + "Storage region" => [ + 0 => "Región de almacenamiento", + ], + "Storage bucket" => [ + 0 => "Bucket del almacenamiento", + ], + "Key" => [ + 0 => "Llave", + ], + "Storage key" => [ + 0 => "Llave del almacenamiento", + ], + "Secret" => [ + 0 => "Secreto", + ], + "Storage secret" => [ + 0 => "Componente secreto del almacenamiento", + ], + "Private key" => [ + 0 => "Llave privada", + ], + "Google Cloud JSON key" => [ + 0 => "Llave JSON de Google Cloud", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Necesitarás una <a %s>cuenta de servicio</a> para esto.", + ], + "Service name" => [ + 0 => "Nombre de servicio", + ], + "Identity URL" => [ + 0 => "URL identidad", + ], + "Identity API endpoint" => [ + 0 => "Endpoint API identidad", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Endpoint para API identidad OpenStack", + ], + "Username" => [ + 0 => "Nombre de usuario", + ], + "Container" => [ + 0 => "Contenedor", + ], + "Storage container" => [ + 0 => "Contenedor almacenamiento", + ], + "Tenant id" => [ + 0 => "Id inquilino", + ], + "Tenant id (account id)" => [ + 0 => "Id inquilino (id de cuenta)", + ], + "Tenant name" => [ + 0 => "Nombre inquilino", + ], + "Tenant name (account name)" => [ + 0 => "Nombre de inquilino (nombre de cuenta)", + ], + "Storage endpoint" => [ + 0 => "Endpoint de almacenamiento", + ], + "Server address" => [ + 0 => "Dirección del servidor", + ], + "Hostname or IP of the storage server" => [ + 0 => "Nombre del host o IP del servidor de almacenamiento", + ], + "Server path" => [ + 0 => "Ruta del servidor", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Ruta absoluta donde los archivos se almacenarán en contexto del acceso %p. Usa %s para ruta raíz.", + ], + "Server login" => [ + 0 => "Login del servidor", + ], + "Server password" => [ + 0 => "Contraseña del servidor", + ], + "Local path" => [ + 0 => "Ruta local", + ], + "Local path where the files will be stored" => [ + 0 => "Ruta local donde los archivos serán almacenados", + ], + "Storage capacity" => [ + 0 => "Capacidad de almacenamiento", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Ejemplo: 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Este almacenamiento se desabilitará cuando alcance esta capacidad. Deja en blanco o en cero para capacidad ilimitada.", + ], + "Storage URL" => [ + 0 => "URL del almacenamiento", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "El sistema asignará esta URL a las imágenes.", + ], + "view more" => [ + 0 => "ver más", + ], + "Load more" => [ + 0 => "Cargar más", + ], + "Select all" => [ + 0 => "Seleccionar todo", + ], + "Clear" => [ + 0 => "Limpiar", + ], + "Get embed codes" => [ + 0 => "Obtener códigos", + ], + "Assign category" => [ + 0 => "Asignar categoría", + ], + "Flag as safe" => [ + 0 => "Marcar como segura", + ], + "Clear selection" => [ + 0 => "Limpiar selección", + ], + "Create new album" => [ + 0 => "Crear nuevo album", + ], + "Create sub album" => [ + 0 => "Crear sub-álbum", + ], + "Share" => [ + 0 => "Compartir", + ], + "Sign in with another account" => [ + 0 => "Entrar con otra cuenta", + ], + "Continue with %label%" => [ + 0 => "Continuar con %label%", + ], + "Home" => [ + 0 => "Principal", + ], + "There's nothing to show here." => [ + 0 => "No hay nada que mostrar aquí.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Todas las imágenes seleccionadas serán asignadas a esta categoría.", + ], + "There is no categories." => [ + 0 => "No hay categorías.", + ], + "Confirm flag content as safe" => [ + 0 => "Confirmar marcar contenido como seguro", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "¿Realmente quieres marcar este contenido como seguro?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Confirmar marcar contenido como no seguro", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "¿Realmente quieres marcar este contenido como no seguro?", + ], + "Confirm approval" => [ + 0 => "Confirmar aprobación", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar todo el contenido seleccionado? Esto no se podrá deshacer.", + ], + "Confirm deletion" => [ + 0 => "Confirmar eliminación", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar este contenido? Esto no se podrá deshacer.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Do you really want to approve all the selected content? This can't be undone.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar todo el contenido seleccionado? Esto no se podrá deshacer.", + ], + "Guest" => [ + 0 => "Invitado", + ], + "Keyboard shortcuts" => [ + 0 => "Atajos de teclado", + ], + "Private album" => [ + 0 => "Album privado", + ], + "Password protected" => [ + 0 => "Protegido con contraseña", + ], + "Uploaded by guest" => [ + 0 => "Subido por invitado", + ], + "From %s" => [ + 0 => "De %s", + ], + "Uploaded by private" => [ + 0 => "Subido por privado", + ], + "by %u" => [ + 0 => "por %u", + ], + "Toggle unsafe flag" => [ + 0 => "Cambiar marca de contenido", + ], + "That page doesn't exist" => [ + 0 => "Esa página no existe", + ], + "The requested page was not found." => [ + 0 => "La página solicitada no ha sido encontrada.", + ], + "The user has been deleted" => [ + 0 => "El usuario ha sido eliminado", + ], + "Your account is almost ready" => [ + 0 => "Tu cuenta está casi lista", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email ha sido enviado a %s con instrucciones para activar tu cuenta. El enlace de activación sólo es válido por 48 horas. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado.", + ], + "Resend activation" => [ + 0 => "Re-enviar activación", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Has cambiado exitosamente el email de tu cuenta a %s", + ], + "Go to my profile" => [ + 0 => "Ir a mi perfil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Un enlace de confirmación será enviado a este email con detalles para activar tu cuenta.", + ], + "Your email address" => [ + 0 => "Tu dirección de email", + ], + "Submit" => [ + 0 => "Enviar", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email con instrucciones para restablecer tu contraseña ha sido enviado a la dirección de email con la que te registraste. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email ha sido enviado previamente con instrucciones para restablecer tu contraseña. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado.", + ], + "Resend instructions" => [ + 0 => "Re-enviar instrucciones", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Introduce tu nombre de usuario o e-mail para continuar. Es posible que tengas que revisar tu carpeta de correo no deseado o agregar %s a tu lista blanca.", + ], + "Username or Email address" => [ + 0 => "Nombre de usuario o dirección de email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Tu contraseña ha sido actualizada. Puedes intentar ingresar ahora usando tu nueva contraseña.", + ], + "Login now" => [ + 0 => "Ingresar ahora", + ], + "Enter your new password" => [ + 0 => "Introduce tu nueva contraseña", + ], + "%d characters min" => [ + 0 => "%d caracteres min", + ], + "Password strength" => [ + 0 => "Seguridad de la contraseña", + ], + "Re-enter your new password" => [ + 0 => "Re-ingresa tu nueva contraseña", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email ha sido enviado a %s con instrucciones para activar tu cuenta. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado.", + ], + "This content is private" => [ + 0 => "Este contenido es privado", + ], + "Sub album" => [ + 0 => "Sub-álbum", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar este álbum y todas sus imágenes? Esto no se podrá deshacer.", + ], + "Upload to album" => [ + 0 => "Subir al ábum", + ], + "You like this" => [ + 0 => "Te gusta esto", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Por favor lee y cumple con las siguientes condiciones antes de continuar:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Este sitio web contiene información, enlaces e imagines con contenido sexual explicito. Si tienes menos de %s años, si este material te ofende o si ver este material es ilegal en tu comunidad por favor no continues.\n\nTengo al menos %s años y creo que como un adulto, es mi derecho inalienable el recibir/ver material sexualmente explicito. Deseo recibir/ver material sexualmente explicito.\n\nCreo que los actos sexual entre adultos con consentimiento no es ofensivo u obsceno. El ver, leer y descargar material sexualmente explicito no viola los estándares de mi comunidad, pueblo, ciudad, estado o país.\n\nEl material sexualmente explicito que voy a ver es para mi uso personal y no expondré a menores a este material.\n\nSoy el único responsable de cualquier consecuencia o ramificaciones legales de ver, leer o descargar cualquier material en este sitio. Además, este sitio web ni sus afiliados serán responsables por cualquier ramificación legal que surja de la entrada fraudulenta o uso de este sitio web.\n\nEsta pantalla de consentimiento constituye un acuerdo legal entre este sitio web y tu persona y/o cualquier negocio en el cual tengas algún interés legal o equitativo. Si alguna parte de este acuerdo se considera no exigible por un tribunal de jurisdicción competente, no afectará a la aplicabilidad de las demás partes del acuerdo.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Al hacer click en \"Estoy de acuerdo\" declaras que has leído y entendido todas las condiciones mencionadas anteriormente.", + ], + "I Agree" => [ + 0 => "Estoy de acuerdo", + ], + "documentation" => [ + 0 => "documentación", + ], + "Learn about %s settings at our %d." => [ + 0 => "Aprende más sobre %s en nuestra %d.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "La IP conectada es determinada usando la variable de servidor %var%. Si la IP detectada no coincide con la tuya, significa que tu servidor web está bajo un proxy y necesitas ajustarlo para establecer la IP de conexión real.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Para Nginx, debes usar %nginx%. Para Apache, %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Asegúrate de abordar este problema ya que el sistema depende de la detección precisa de la IP para proporcionar funcionalidades básicas y para proteger contra spam, flooding y ataques de fuerza bruta.", + ], + "Disk used" => [ + 0 => "Disco usado", + ], + "Queued" => [ + 0 => "En cola", + ], + "Working" => [ + 0 => "Trabajando", + ], + "Paused" => [ + 0 => "Pausado", + ], + "Canceled" => [ + 0 => "Cancelado", + ], + "Completed" => [ + 0 => "Completado", + ], + "Top level folders as %s" => [ + 0 => "Carpetas de nivel superior como %s", + ], + "Actions" => [ + 0 => "Acciones", + ], + "Process" => [ + 0 => "Procesar", + ], + "Pause" => [ + 0 => "Pausa", + ], + "Cancel" => [ + 0 => "Cancelar", + ], + "Process log" => [ + 0 => "Registro de proceso", + ], + "Errors" => [ + 0 => "Errores", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "¿Realmente quieres eliminar el trabajo de importación ID %s?", + ], + "Reset" => [ + 0 => "Restablecer", + ], + "Resume" => [ + 0 => "Reanudar", + ], + "Status" => [ + 0 => "Estado", + ], + "Run the following command to import content to Chevereto:" => [ + 0 => "Corre el siguiente comando para importar contenido a Chevereto:", + ], + "Read the %s for more information about this feature." => [ + 0 => "Lee la %s para más información sobre esta funcionalidad.", + ], + "Add user" => [ + 0 => "Agregar usuario", + ], + "Role" => [ + 0 => "Rol", + ], + "Manager" => [ + 0 => "Gerente", + ], + "Administrator" => [ + 0 => "Administrador", + ], + "Email address" => [ + 0 => "Email", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Esta configuración siempre está inhabilitada cuando se usa el modo de sitio web personal.", + ], + "Add category" => [ + 0 => "Agregar categoría", + ], + "Add IP ban" => [ + 0 => "Agregar baneo de IP", + ], + "Add storage" => [ + 0 => "Agregar almacenamiento", + ], + "Return to pages" => [ + 0 => "Volver a páginas", + ], + "Website name" => [ + 0 => "Nombre del sitio", + ], + "Website doctitle" => [ + 0 => "Doctitle del sitio", + ], + "Website description" => [ + 0 => "Descripción del sitio", + ], + "Automatic" => [ + 0 => "Automático", + ], + "Forced" => [ + 0 => "Forzado", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a usará detección HTTPS de lado de servidor (recomendado). %f usará HTTPS independiente de tu configuración de servidor. %d para no usar HTTPS en lo absoluto.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Esto solamente controla el protocolo usado en las URLs, no convertirá tu sitio web en un sitio web HTTPS válido a menos que tu servidor esté configurado para usar y soportar HTTPS.", + ], + "Default time zone" => [ + 0 => "Zona horaria predeterminada", + ], + "Select region" => [ + 0 => "Seleccionar región", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Permite buscar imágenes, álbumes y usuarios basado en una determinada consulta de búsqueda.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Permite navegar las imágenes subidas de manera publica. También permite categorías.", + ], + "guests" => [ + 0 => "invitados", + ], + "Enables explore for guests." => [ + 0 => "Habilita explorador para invitados.", + ], + "Enables to browse images randomly." => [ + 0 => "Permite navegar imágenes de manera aleatoria.", + ], + "Likes" => [ + 0 => "Me gusta", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Permite a los usuarios gustar contenido y generar listados con lo \"Más gustado\".", + ], + "Followers allows users to follow each other." => [ + 0 => "Seguidores permite a los usuarios que se sigan mutuamente.", + ], + "Website mode" => [ + 0 => "Modo del sitio", + ], + "Community" => [ + 0 => "Comunidad", + ], + "Personal" => [ + 0 => "Personal", + ], + "You can switch the website mode anytime." => [ + 0 => "Puedes alternar el modo del sitio en cualquier momento.", + ], + "Personal mode target user" => [ + 0 => "Usuario objetivo para modo personal", + ], + "User ID" => [ + 0 => "ID usuario", + ], + "Your user id is: %s" => [ + 0 => "Tu id de usuario es: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "ID numérica del usuario objetivo para modo personal.", + ], + "Personal mode routing" => [ + 0 => "Enrutamiento modo personal", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Ruta personalizada para mapear /nombredeusuario a /algo. Usa \"/\" para mapear a la página principal.", + ], + "Website privacy mode" => [ + 0 => "Modo de privacidad del sitio", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "El modo privado hace que el sitio este disponible sólo para usuarios registrados.", + ], + "Content privacy mode" => [ + 0 => "Modo de privacidad del contenido", + ], + "Default" => [ + 0 => "Predeterminado", + ], + "Force private (self)" => [ + 0 => "Forzar privado (propio)", + ], + "Force private (anyone with the link)" => [ + 0 => "Forzar privado (cualquiera con el enlace)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Los modos forzados sobrescribirán la selección de privacidad del usuario.", + ], + "Page title" => [ + 0 => "Título de la página", + ], + "Page status" => [ + 0 => "Estado de la página", + ], + "Active page" => [ + 0 => "Página activa", + ], + "Inactive page (%s)" => [ + 0 => "Página inactiva (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Solamente las páginas activas serán accesibles.", + ], + "Type" => [ + 0 => "Tipo", + ], + "Terms of service" => [ + 0 => "Términos de servicio", + ], + "Privacy" => [ + 0 => "Privacidad", + ], + "Contact" => [ + 0 => "Contacto", + ], + "Extra page" => [ + 0 => "Página adicional", + ], + "Internal page type" => [ + 0 => "Tipo de página interna", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Puedes tener múltiples páginas adicionales, pero solamente una de los otros tipos internos especiales.", + ], + "Page visibility" => [ + 0 => "Visibilidad de página", + ], + "Visible page" => [ + 0 => "Página visible", + ], + "Hidden page" => [ + 0 => "Página oculta", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Las páginas ocultas no se mostraran en menús del sistema, pero cualquiera podrá acceder a ella con el enlace.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Solo alfanuméricos, guiones y barra inclinada", + ], + "File path" => [ + 0 => "Ruta de archivo", + ], + "A %f file relative to %s" => [ + 0 => "Un archivo %f relativo a %s", + ], + "Meta keywords" => [ + 0 => "Meta palabras clave", + ], + "Meta description" => [ + 0 => "Meta descripción", + ], + "Source code" => [ + 0 => "Código fuente", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "No hay permiso de escritura en la ruta %s necesitarás agregar este archivo usando un editor externo.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "No hay permiso de escritura en %s necesitarás editar el contenido de este archivo usando un editor externo.", + ], + "Taken from: %s" => [ + 0 => "Tomado desde: %s", + ], + "Link URL" => [ + 0 => "URL enlace", + ], + "Link target attribute" => [ + 0 => "Atributo target del enlace", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Selecciona %s para abrir la pagina o enlace en una nueva ventana.", + ], + "Link rel attribute" => [ + 0 => "Atributo rel del enlace", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Solo alfanuméricos, guiones y espacios", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "Atributo HTML &lt;a&gt; %s", + ], + "Link icon" => [ + 0 => "Icono del enlace", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Revisa la <a %s>referencia de iconos</a> para la lista completa de iconos compatibles.", + ], + "Sort order display" => [ + 0 => "Orden de visualización", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Orden de visualización de la página para menús y listados. Usa \"1\" para mayor prioridad.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar la página ID %s? Esto no de podrá deshacer.", + ], + "Enabled image formats" => [ + 0 => "Formatos de imagen habilitados", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "No se permitirá subir los formatos no marcados.", + ], + "Enable uploads" => [ + 0 => "Habilitar subidas", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Habilita esto si quieres permitir subidas de imágenes. Esta configuración no afecta a los administradores.", + ], + "Upload user interface" => [ + 0 => "Interfaz de subida", + ], + "On-page container" => [ + 0 => "Contenedor en página", + ], + "route" => [ + 0 => "ruta", + ], + "Guest uploads" => [ + 0 => "Subidas de invitados", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Habilita esto si quieres permitir permitir que usuarios no registrados suban imágenes", + ], + "Moderate uploads" => [ + 0 => "Moderar subidas", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Habilita esto para moderar las subidas entrantes. El contenido objetivo requerirá moderación para ser aprobado.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Habilitar códigos de inserción (subidas)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Habilita esto si quieres mostrar códigos de inserción al completar la subida.", + ], + "Upload threads" => [ + 0 => "Hilos de subida", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Numero de hilos de subida simultáneos (subidas paralelas)", + ], + "Redirect on single upload" => [ + 0 => "Redireccionar en subida única", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Habilita esto si quieres redireccionar a la página de imagen en subida única.", + ], + "Enable duplicate uploads" => [ + 0 => "Habilitar subidas duplicadas", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Habilita esto si quieres permitir subidas duplicadas desde la misma IP en un periodo de 24hrs. Esta configuración no afecta a los administradores.", + ], + "Enable expirable uploads" => [ + 0 => "Habilitar subidas expirables", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Habilita esto si quieres permitir la opción de eliminar imágenes automáticamente.", + ], + "Auto delete guest uploads" => [ + 0 => "Auto eliminar subidas de invitados", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Habilita esto si quieres forzar la eliminación automática de las subidas de invitados después de cierto tiempo.", + ], + "Maximum image size" => [ + 0 => "Tamaño máximo de imagen", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Imágenes mayores de este tamaño se reducirán de tamaño automáticamente. Usa cero (0) para no establecer un límite.", + ], + "Image Exif data" => [ + 0 => "Datos Exif de imagen", + ], + "Keep" => [ + 0 => "Mantener", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Selecciona la configuración predeterminada para los <a %s>datos Exif</a> al subir.", + ], + "Image Exif data (user setting)" => [ + 0 => "Datos Exif imagen (configuración de usuario)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Habilita esto si quieres permitir que cada usuario pueda configurar como se manejarán los datos Exif.", + ], + "Maximum upload file size" => [ + 0 => "Tamaño máximo de archivo de subida", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Tamaño máximo permitido por el servidor es %s. Este límite es regido por %u y %p (valores %f).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Lo mismo que \"%s\" pero para invitados.", + ], + "Image path" => [ + 0 => "Ruta de las imágenes", + ], + "Relative to Chevereto root" => [ + 0 => "Relativa a la raíz de Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "¿Dónde almacenar las imágenes? Relativo a la raíz de Chevereto.", + ], + "Storage mode" => [ + 0 => "Modo de almacenamiento", + ], + "Datefolders" => [ + 0 => "Carpetas por fecha", + ], + "Direct" => [ + 0 => "Directo", + ], + "Datefolders creates %s structure" => [ + 0 => "Datefolders crea una estructura %s", + ], + "File naming method" => [ + 0 => "Método de nombramiento de archivos", + ], + "Original" => [ + 0 => "Original", + ], + "Mix original + random" => [ + 0 => "Combinar original + aleatorio", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Original\" intentará de mantener el nombre original mientras que \"Aleatorio\" generará un nombre al azar. \"ID\"nombrará la imagen tal cual la ID de la imagen.", + ], + "Thumb size" => [ + 0 => "Tamaño de miniatura", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Las miniaturas se ajustaran a este tamaño.", + ], + "Medium image fixed dimension" => [ + 0 => "Dimension fija de la imagen media", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Las imágenes medias se fijaran a esta dimension. Por ejemplo, si seleccionas \"ancho\" esta dimension será fija y el alto de la imagen se calculara automáticamente.", + ], + "Medium image fixed size" => [ + 0 => "Tamaño fijo de la imagen media", + ], + "Width or height will be automatically calculated." => [ + 0 => "El alto o ancho será calculado automáticamente", + ], + "Watermarks" => [ + 0 => "Marcas de agua", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Habilita esto para poner un un logo o lo que quieras en las subidas de imágenes.", + ], + "Watermark user toggles" => [ + 0 => "Alternaciones marca de agua por usuario", + ], + "Enable watermark on guest uploads" => [ + 0 => "Habilitar marca de agua en subidas de invitados", + ], + "Enable watermark on user uploads" => [ + 0 => "Habilitar marca de agua en subidas de usuarios", + ], + "Enable watermark on admin uploads" => [ + 0 => "Habilitar marca de agua en subidas de administradores", + ], + "Watermark file toggles" => [ + 0 => "Alternaciones marca de agua por archivo", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Habilitar marca de agua en subidas de imágenes GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Tamaño mínimo necesario para aplicar marca de agua", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Imágenes inferiores a esto no tendrán marca de agua. Usa cero (0) para no establecer un límite mínimo.", + ], + "Watermark image" => [ + 0 => "Imagen de marca de agua", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Obtendrás mejores resultados con logos planos con sombra. Puedes usar una imagen grande si el tamaño de la misma no es tan grande (se recomienda máx. 16KB). Debe ser PNG.", + ], + "Watermark position" => [ + 0 => "Posición de la marca de agua", + ], + "left top" => [ + 0 => "izquierda arriba", + ], + "left center" => [ + 0 => "izquierda centro", + ], + "left bottom" => [ + 0 => "izquierda abajo", + ], + "center top" => [ + 0 => "centro arriba", + ], + "center center" => [ + 0 => "centro centro", + ], + "center bottom" => [ + 0 => "centro abajo", + ], + "right top" => [ + 0 => "derecha arriba", + ], + "right center" => [ + 0 => "derecha centro", + ], + "right bottom" => [ + 0 => "derecha abajo", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Posición relativa de la marca de agua. Primero alineación horizontal y luego vertical.", + ], + "Watermark percentage" => [ + 0 => "Porcentaje de marca de agua", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Tamaño porcentual de la marca de agua relativo al área de la imagen objetivo. Valores 1 a 100.", + ], + "Watermark margin" => [ + 0 => "Margen de la marca de agua", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margen desde el borde de la imagen hasta la marca de agua.", + ], + "Watermark opacity" => [ + 0 => "Opacidad de la marca de agua", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Opacidad de la marca de agua en la imagen resultante. Valores 0 a 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Administrar > Configuraciones > Sitio web", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Las categorías no funcionaran cuando la funcionalidad de explorar está inhabilitada. Para revertir esta configuración ve a %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar la categoría %s?. Esto no se podrá deshacer.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Nota: Eliminar una categoría no elimina las imágenes pertenecientes a esa categoría.", + ], + "Edit category" => [ + 0 => "Editar categoría", + ], + "Expires" => [ + 0 => "Expira", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar el baneo a la IP %s? Esto no se podrá deshacer.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "A las direcciones de IP baneadas se les prohibirá el uso de todo el sitio web.", + ], + "Edit IP ban" => [ + 0 => "Editar baneo de IP", + ], + "Enable signups" => [ + 0 => "Habilitar registros", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Habilita esto si quieres permitir el registro de cuentas de usuario.", + ], + "Enable user content delete" => [ + 0 => "Habilitar eliminación de contenido de usuario", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Habilita esto si quieres permitir que los usuarios eliminen su contenido propio. Esta configuración no afecta a los administradores.", + ], + "Minimum age required" => [ + 0 => "Edad mínima requerida", + ], + "Empty" => [ + 0 => "Vacío", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Dejar vacío para no requerir una edad mínima para usar el sitio web.", + ], + "Notify on user signup" => [ + 0 => "Notificar en registro de usuario", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Habilita esto si quieres recibir una notificación vía email cada vez que se registre un usuario.", + ], + "Username routing" => [ + 0 => "Enrutamiento de nombre de usuario", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Habilita esto si quieres usar URLs %s/username en lugar de %s/user/username", + ], + "Require email confirmation" => [ + 0 => "Requerir confirmación email", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Habilita esto si los usuarios deben validar su dirección de email en registro.", + ], + "Require email for social signup" => [ + 0 => "Requerir email para registro social", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Habilita esto si los usuarios que usan redes sociales para registrarse deben indicar una dirección de email.", + ], + "User avatar max. filesize" => [ + 0 => "Tamaño máx. de avatar de usuario", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Tamaño máx. de avatar de usuario permitido (El máx. permitido por el sistema es %s)", + ], + "User background max. filesize" => [ + 0 => "Tamaño máx. de fondo de usuario", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Tamaño máx. de fondo de usuario permitido (El máx. permitido por el sistema es %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Muestra una pantalla de consentimiento antes de acceder al sitio. Util para sitios web con contenido de adultos donde los menores no deberían ser permitidos.", + ], + "Enable consent screen" => [ + 0 => "Habilitar pantalla de consentimiento", + ], + "Consent screen cover image" => [ + 0 => "Imagen de portada de pantalla de consentimiento", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Bloquear la subida de imágenes por IP si el sistema detecta un comportamiento abusivo basado en el número de subidas por periodo de tiempo. Esta configuración no afecta a los administradores.", + ], + "Notify to email" => [ + 0 => "Notificar por email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Si esta habilitado el sistema enviará un email en incidentes de flood.", + ], + "Minute limit" => [ + 0 => "Límite por minuto", + ], + "Hourly limit" => [ + 0 => "Límite horario", + ], + "Daily limit" => [ + 0 => "Límite diario", + ], + "Weekly limit" => [ + 0 => "Límite semanal", + ], + "Monthly limit" => [ + 0 => "Límite mensual", + ], + "Lock %s editing" => [ + 0 => "Bloquear edición de %s", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "Habilita esto para prevenir que los usuarios cambien la marca no segura para trabajo (NSFW). Cuando está habilitado, solo administrador y gerentes tendrán este permiso.", + ], + "Show not safe content in listings" => [ + 0 => "Mostrar contenido no seguro en los listados", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Habilita esto si quieres mostrar contenido no seguro en los listados. Este ajuste no afecta a los administradores y puede ser sobrescrita por los ajustes del usuario.", + ], + "Blur NSFW content in listings" => [ + 0 => "Desenfocar contenido de NSFW en los listados.", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Habilite esta opción si desea aplicar un efecto borroso en las imágenes NSFW en los listados.", + ], + "Show banners in not safe content" => [ + 0 => "Mostrar avisos en contenido no seguro", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Habilita esto si quieres mostrar avisos en páginas de contenido no seguro.", + ], + "Show not safe content in random mode" => [ + 0 => "Mostrar contenido no seguro en modo aleatorio", + ], + "List items per page" => [ + 0 => "Elementos por página de listado", + ], + "How many items should be displayed per page listing." => [ + 0 => "Cuantos elementos se deberian mostrar por página de listado", + ], + "List pagination mode" => [ + 0 => "Modo de paginación", + ], + "Endless scrolling" => [ + 0 => "Desplazamiento infinito", + ], + "Classic pagination" => [ + 0 => "Paginación clasica", + ], + "What pagination method should be used." => [ + 0 => "Que modo de paginación se debería usar.", + ], + "Listing viewer" => [ + 0 => "Visualizador de listados", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Habilita esto para usar el visualizador de imágenes cuando se haga click en una imagen.", + ], + "Image listing size" => [ + 0 => "Tamaño de imagen de listado", + ], + "Fluid" => [ + 0 => "Fluido", + ], + "Fixed" => [ + 0 => "Fijo", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Ambos métodos usan ancho fijo pero el método fluido usa alturas automáticas.", + ], + "Album listing images requirement" => [ + 0 => "Requerimiento de imágenes para listados de álbumes", + ], + "explore" => [ + 0 => "explorar", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Establece la cantidad mínima de imágenes necesarias para mostrar álbumes en el explorador.", + ], + "Listing columns number" => [ + 0 => "Número de columnas en listado", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Aquí puedes establecer cuantas columnas se usaran según en cada dispositivo objetivo.", + ], + "Phone" => [ + 0 => "Telefóno", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Escritorio", + ], + "Put your themes in the %s folder" => [ + 0 => "Pon tus temas en la carpeta %s", + ], + "Tone" => [ + 0 => "Tono", + ], + "Light" => [ + 0 => "Claro", + ], + "Dark" => [ + 0 => "Oscuro", + ], + "Main color" => [ + 0 => "Color principal", + ], + "Hexadecimal color value" => [ + 0 => "Color en valor hexadecimal", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Usa esto para establecer el color principal del tema. El valor debe estar en <a href=\"%s\" target=\"_blank\">formato hex</a>.", + ], + "Top bar button color" => [ + 0 => "Color de botón de barra superior", + ], + "Blue" => [ + 0 => "Azul", + ], + "Green" => [ + 0 => "Verde", + ], + "Orange" => [ + 0 => "Anaranjado", + ], + "Red" => [ + 0 => "Rojo", + ], + "Grey" => [ + 0 => "Gris", + ], + "Black" => [ + 0 => "Negro", + ], + "White" => [ + 0 => "Blanco", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Color de los botones de la barra superior como el botón \"Crear cuenta\".", + ], + "Enable vector logo" => [ + 0 => "Habilitar logo vectorial", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Habilita logo vectorial para usar un logo de alta calidad en dispositivos con alta densidad de pixel.", + ], + "Vector logo image" => [ + 0 => "Logo vectorizado", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Versión vector de tu logo en formato SVG.", + ], + "Raster logo image" => [ + 0 => "Logo ráster", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Versión mapa de bits de tu logo. Se recomienda formato PNG.", + ], + "Logo height" => [ + 0 => "Altura del logo", + ], + "No value" => [ + 0 => "Sin valor", + ], + "Use this to set the logo height if needed." => [ + 0 => "Usa esto si necesitas establecer la altura del logo.", + ], + "Favicon image" => [ + 0 => "Imagen favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Imagen favicon. La imagen debe tener el mismo alto y ancho.", + ], + "Image load max. filesize" => [ + 0 => "Tamaño máx. de carga", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Imágenes de tamaño superior a este mostrarán un botón para cargar la imagen a resolución completa.", + ], + "Enable download button" => [ + 0 => "Habilitar botón de descarga", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Habilita esto si quieres mostrar el botón de descarga de imagen.", + ], + "Enable right click on image" => [ + 0 => "Habilitar click derecho en imagen", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Habilita esto si quieres permitir click derecho en la página de visualización de la imagen.", + ], + "Enable show Exif data" => [ + 0 => "Habilitar mostrar datos Exif", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Habilita esto si quieres mostrar datos Exif de la imagen.", + ], + "Enable social share" => [ + 0 => "Habilitar compartir social", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Habilita esto si quieres mostrar los botones de redes sociales para compartir contenido.", + ], + "Enable embed codes (content)" => [ + 0 => "Habilitar códigos de inserción (contenido)", + ], + "Everybody" => [ + 0 => "Todos", + ], + "Users only" => [ + 0 => "Solo usuarios", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Habilita esto si quieres mostrar códigos de inserción para el contenido.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Caja de selección de contenido no seguro en uploader", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Habilita esto si quieres mostrar una caja de selección para indicar subida de contenido no seguro.", + ], + "Custom CSS code" => [ + 0 => "Código CSS personalizado", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Pon tu código CSS personalizado aquí. Será ubicado como <style> justo antes del cierre de la etiqueta </head>.", + ], + "Custom JS code" => [ + 0 => "Código JS personalizado", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Pon tu código JS personalizado aquí. Será ubicado como <script> justo antes del cierre de la etiqueta </head>.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "No uses marcado %s aquí. Esto es para código JS, no para etiquetas de script HTML. Si usas etiquetas de script romperás tu sitio web.", + ], + "Style" => [ + 0 => "Estilo", + ], + "Landing page" => [ + 0 => "Página de caída", + ], + "Split landing + images" => [ + 0 => "Pág. caída + imágenes", + ], + "Route %s" => [ + 0 => "Ruta %s", + ], + "upload" => [ + 0 => "subir", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Selecciona el estilo de la página principal. Para personalizar más edita app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Imagen de portada", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar esta imagen? Esto no se podrá deshacer.", + ], + "Delete image" => [ + 0 => "Eliminar imagen", + ], + "Add new cover image" => [ + 0 => "Agregar nueva imagen de portada", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Esto se agregara en el interior de la etiqueta %s de la página principal. Dejar en blanco para usar el contenido preestablecido.", + ], + "Paragraph" => [ + 0 => "Párrafo", + ], + "Call to action button color" => [ + 0 => "Color de botón de llamada de acción", + ], + "Color of the homepage call to action button." => [ + 0 => "Color del botón de llamada de acción de la página principal.", + ], + "Call to action outline style button" => [ + 0 => "Estilo contorneado del botón de llama de acción", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Habilita esto para usar estilo contorneado para el botón de llamada de acción de la página principal.", + ], + "Call to action functionality" => [ + 0 => "Funcionalidad de llamada de acción", + ], + "Trigger uploader" => [ + 0 => "Gatillar uploader", + ], + "Open URL" => [ + 0 => "Abrir URL", + ], + "Call to action URL" => [ + 0 => "URL de llamada de acción", + ], + "Enter an absolute or relative URL" => [ + 0 => "Introducir una URL absoluta o relativa", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Una URL relativa como %r sera mapeada a %l", + ], + "Call to action HTML" => [ + 0 => "HTML de llamada de acción", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Esto se agregara en el interior de la etiqueta <a> de la llama de acción. Dejar en blanco para usar el el contenido preestablecido.", + ], + "User IDs" => [ + 0 => "IDs de usuario", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Lista separada por comas de las IDs de usuario a mostrar en la página principal. Dejar en blanco o en cero para mostrar todas las imágenes recientes.", + ], + "Automatic updates check" => [ + 0 => "Comprobar actualizaciones automáticamente", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Cuando esta habilitado el sistema comprobara automáticamente por nuevas actualizaciones.", + ], + "Display available updates notification" => [ + 0 => "Mostrar notificación de nuevas actualizaciones disponibles", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Habilita esto para mostrar una notificación en la parte superior advirtiéndote de nuevas actualizaciones de sistema disponibles.", + ], + "Dump update query" => [ + 0 => "Volcar consulta de actualización", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Habilita esto si quieres detectar y establecer automáticamente el idioma correcto para cada usuario.", + ], + "SEO %s URLs" => [ + 0 => "URLs SEO %s", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Habilita esto si quieres usar URLs SEO para %s.", + ], + "Maintenance" => [ + 0 => "Mantención", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Cuando esta habilitado la página web mostrará un mensaje de mantenimiento. Esta configuración no afecta a los administradores.", + ], + "Crypt salt" => [ + 0 => "Salto criptográfico", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Este es el salto usado para convertir ID númerica en alfanuméricos. Fue generado durante la instalación.", + ], + "PHP error reporting" => [ + 0 => "Reporte de errores PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Habilita esto si quieres mostrar errores generados por la función PHP <a %s>error_reporting()</a>. Esto debería ser deshabilitado en producción.", + ], + "Debug level" => [ + 0 => "Nivel de depuración", + ], + "None" => [ + 0 => "Ninguno", + ], + "Error log" => [ + 0 => "Registro de error", + ], + "Print errors without error log" => [ + 0 => "Mostrar errores sin registrarlos", + ], + "Print and log errors" => [ + 0 => "Mostrar y registrar errores", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Para configurar el nivel de depuración comprueba la <a %s>documentación de depuración</a>. El nivel predeterminado es \"Registro de error\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." => [ + 0 => "El enrutamiento te permite personalizar las rutas de manera inmediata. Solamente se permiten caracteres alfanuméricos, guiones y guiones bajos.", + ], + "Image routing" => [ + 0 => "Enrutamiento de imagen", + ], + "Routing for %s" => [ + 0 => "Enrutamiento para %s", + ], + "Album routing" => [ + 0 => "Enrutamiento de album", + ], + "Hostname" => [ + 0 => "Nombre del host", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Nombre de host en el que se agregarán los comodines de sub-dominio.", + ], + "This setting may be overridden by %s." => [ + 0 => "Esta configuración puede ser anulada por %s.", + ], + "Language subdomains" => [ + 0 => "Subdominios de idioma", + ], + "languages" => [ + 0 => "idiomas", + ], + "Enable to use %s for %t." => [ + 0 => "Habilitar para usar %s para %t.", + ], + "Username subdomains" => [ + 0 => "Subdominios de nombre de usuario", + ], + "user profiles" => [ + 0 => "perfiles de usuario", + ], + "Custom language strings" => [ + 0 => "Cadenas de idioma personalizadas", + ], + "Default language" => [ + 0 => "Idioma predeterminado", + ], + "Default base language to use." => [ + 0 => "Idioma Predeterminado base a usar.", + ], + "Auto language" => [ + 0 => "Idioma automático", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Habilita esto si quieres detectar y establecer automáticamente el idioma correcto para cada usuario.", + ], + "Language chooser" => [ + 0 => "Selector de idioma", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Habilita esto si quieres permitir selección de idioma.", + ], + "Enabled languages" => [ + 0 => "Idiomas habilitados", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Los idiomas no seleccionados no seran usados en tu sitio web.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Alterna para habilitar o deshabilitar HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Alterna para habilitar o deshabilitar este almacenamiento", + ], + "Quota" => [ + 0 => "Cuota", + ], + "Active" => [ + 0 => "Activo", + ], + "Storage method" => [ + 0 => "Método de almacenamiento", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Por defecto se usa almacenamiento local o cuando no hay ningún almacenamiento externo activado.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Si necesitas ayuda revisa la <a %s>documentación de almacenamiento</a>.", + ], + "Edit storage" => [ + 0 => "Editar almacenamiento", + ], + "From name" => [ + 0 => "Nombre emisor", + ], + "Sender name for emails sent to users." => [ + 0 => "Nombre del emisor de los emails enviados a los usuarios.", + ], + "From email address" => [ + 0 => "Email de origen", + ], + "Sender email for emails sent to users." => [ + 0 => "Email del emisor de los correos enviados a los usuarios.", + ], + "Incoming email address" => [ + 0 => "Dirección de e-mail entrante", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Recipiente para el formulario de contacto y alertas del sistema.", + ], + "Email mode" => [ + 0 => "Modo de email", + ], + "How to send emails? SMTP recommended." => [ + 0 => "¿Cómo enviar emails? Se recomienda SMTP.", + ], + "SMTP server and port" => [ + 0 => "Servidor SMTP y puerto", + ], + "SMTP server" => [ + 0 => "Servidor SMTP", + ], + "SMTP username" => [ + 0 => "Usuario SMTP", + ], + "SMTP password" => [ + 0 => "Contraseña SMTP", + ], + "SMTP security" => [ + 0 => "Seguridad SMTP", + ], + "Unsecured" => [ + 0 => "Inseguro", + ], + "Decode ID" => [ + 0 => "Descodificar ID", + ], + "Encode ID" => [ + 0 => "Codificar ID", + ], + "Send test email" => [ + 0 => "Enviar email de prueba", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Usa esto para corroborar la entrega de email. Recomendamos usar %s.", + ], + "Export a user" => [ + 0 => "Exportar un usuario", + ], + "Export user" => [ + 0 => "Exportar usuario", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Esto te permitirá descargar la información estandarizada personal de un usuario en formato JSON.", + ], + "Regenerate external storage stats" => [ + 0 => "Regenerar las estadísticas de almacenamiento externo", + ], + "Storage id" => [ + 0 => "Id almacenamiento", + ], + "Regenerate" => [ + 0 => "Regenerar", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Esto volverá a calcular la suma de todos los registros de imágenes asociados al almacenamiento externo de destino.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Migrar los registros de imágenes de un almacenamiento externo a otro", + ], + "Source storage id" => [ + 0 => "Id almacenamiento (origen)", + ], + "Target storage id" => [ + 0 => "Id almacenamiento (destino)", + ], + "Migrate" => [ + 0 => "Migrar", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Esto solamente actualiza la base de datos. Debes mover los archivos al contenedor de almacenamiento por tu cuenta. Reescritura de URL es recomendada. Usa cero (0) para almacenamiento local.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Necesitaras una <a href=\"https://developers.facebook.com/\" target=\"_blank\">App de Facebook</a> para esto.", + ], + "Facebook app id" => [ + 0 => "App id de Facebook", + ], + "Facebook app secret" => [ + 0 => "App secret de Facebook", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Necesitaras una <a href=\"https://apps.twitter.com\" target=\"_blank\">App de Twitter</a> para esto.", + ], + "Twitter API key" => [ + 0 => "API key de Twitter", + ], + "Twitter API secret" => [ + 0 => "API secret de Twitter", + ], + "Twitter account" => [ + 0 => "Cuenta de Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Necesitaras una <a href=\"https://cloud.google.com/console\" target=\"_blank\">App de Google </a> para esto.", + ], + "Google client id" => [ + 0 => "Client id de Google", + ], + "Google client secret" => [ + 0 => "Client secret de Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Necesitas una <a href=\"http://vk.com/dev\" target=\"_blank\">aplicación de VK</a> para esto.", + ], + "VK client id" => [ + 0 => "Client id de VK", + ], + "VK client secret" => [ + 0 => "Client id de VK", + ], + "%s spam protection" => [ + 0 => "Protección de spam %s", + ], + "user generated content" => [ + 0 => "contenido generado por el usuario", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Habilita esto para usar %l para bloquear spam en %c.", + ], + "%s API key" => [ + 0 => "Llave API de %s", + ], + "user signup" => [ + 0 => "registro de usuario", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Necesitas una cuenta de <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> para esto.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Por favor, tenga en cuenta que cada versión de reCAPTCHA requiere su propio juego de llaves. No olvides actualizar las llaves si cambias de versión.", + ], + "%s site key" => [ + 0 => "Llave de sitio %s", + ], + "%s secret key" => [ + 0 => "Llave secreta %s", + ], + "reCAPTCHA threshold" => [ + 0 => "Umbral reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "¿Cuántos intentos fallidos son necesarios para solicitar reCAPTCHA? Usa cero (0) para siempre mostrar el reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Forzar %s en página de contacto", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Habilita esto para siempre mostrar %s en la página de contacto", + ], + "Comments API" => [ + 0 => "API de comentarios", + ], + "Disqus API works with %s." => [ + 0 => "La API de Disqus funciona con %s.", + ], + "Disqus shortname" => [ + 0 => "Nombre corto en Disqus", + ], + "%s public key" => [ + 0 => "Llave pública de %s", + ], + "Comment code" => [ + 0 => "Código de comentarios", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook o lo que quieras. Será usado en la vista de imagen.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "Moderar automáticamente el contenido usando el servicio de %s.", + ], + "Automatic approve" => [ + 0 => "Aprobación automática", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Habilita esto para aprobar automáticamente el contenido moderado por este servicio.", + ], + "Block content" => [ + 0 => "Bloquear contenido", + ], + "Adult" => [ + 0 => "Adulto", + ], + "Teen and adult" => [ + 0 => "Adolescente y adulto", + ], + "Flag NSFW" => [ + 0 => "Marcar NSFW", + ], + "Analytics code" => [ + 0 => "Código de analíticas", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics o lo que quieras. Será agreado al footer del tema.", + ], + "API v1 key" => [ + 0 => "Llave API v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Usa esta llave cuando uses la <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Ruta de complemento", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Habilita esto para mostrar las instrucciones del complemento en %u. Un enlace a estas instrucciones será añadido al menú %s. Esta configuración no afecta a los administradores.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Usa esto para establecer una URL personalizada para %p. Ten en cuenta que necesitarás replicar manualmente %s en esta URL.", + ], + "Cookie law compliance" => [ + 0 => "Cumplimiento de la Ley de Cookies", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Habilitar esta opción para mostrar un mensaje de cumplimiento de la Ley de Cookies . Nota: Esto sólo es necesario si su web está alojada en la EU y si se agrega cookies de seguimiento.", + ], + "Save changes" => [ + 0 => "Guardar cambios", + ], + "Check the errors to proceed." => [ + 0 => "Comprueba los errores para proceder.", + ], + "Play GIF" => [ + 0 => "Reproducir GIF", + ], + "Load 360° view" => [ + 0 => "Cargar vista 360°", + ], + "Load full resolution" => [ + 0 => "Cargar tamaño completo", + ], + "%s image" => [ + 0 => "%s imagen", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "¿Realmente quieres aprobar todo el contenido seleccionado? Esto no se podrá deshacer.", + ], + "This is the album cover" => [ + 0 => "Esta es la caratula del álbum", + ], + "Cover" => [ + 0 => "Caratula", + ], + "Added to %a and categorized in %c" => [ + 0 => "Agregada a %a y categorizada en %c", + ], + "Added to %s" => [ + 0 => "Agregada a %s", + ], + "Uploaded to %s" => [ + 0 => "Subida a %s", + ], + "Uploaded %s" => [ + 0 => "Subida %s", + ], + "Less Exif data" => [ + 0 => "Menos datos Exif", + ], + "More Exif data" => [ + 0 => "Más datos Exif", + ], + "Album ID" => [ + 0 => "ID álbum", + ], + "Upload and share your images." => [ + 0 => "Sube y comparte tus imágenes.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Arrastra y suelta donde quieras para comenzar a subir ahora tus imágenes. %s de límite. Enlace directo de imagen, miniaturas en BBCode y HTML.", + ], + "Start uploading" => [ + 0 => "Comienza a subir", + ], + "Sign up to unlock all the features" => [ + 0 => "Registrate para desbloquear todas las funcionalidades", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Administra tu contenido, crea álbumes privados, personaliza tu perfil y más.", + ], + "Sign in with your account" => [ + 0 => "Entrar con tu cuenta", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "¿No tienes cuenta? <a href='%s'>Crear cuenta</a> ahora.", + ], + "Logged out" => [ + 0 => "Desconectado", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Te has desconectado de %s. Esperamos verte pronto.", + ], + "Go to homepage" => [ + 0 => "Ir a la página principal", + ], + "Website under maintenance" => [ + 0 => "Página web en mantenimiento", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Estamos realizando tareas de mantenimiento programado en la página web. Por favor, vuelve en unos minutos.", + ], + "This content is password protected." => [ + 0 => "Este contenido está protegido con contraseña.", + ], + "Please enter your password to continue." => [ + 0 => "Por favor introduce tu contraseña para continuar.", + ], + "Send" => [ + 0 => "Enviar", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Agrega subida de imágenes a tu sitio web, blog o foro instalando nuestro complemento de subida. Proporciona subida de imágenes a cualquier sitio web mediante la colocación de un botón que permitirá a tus usuarios cargar directamente imágenes a nuestro servicio y se encargará automáticamente de los códigos necesarios para la inserción. Todas las características incluidas como arrastrar y soltar, subida remota, redimensionamiento de imágenes y mucho más.", + ], + "Supported software" => [ + 0 => "Software soportado", + ], + "supported software" => [ + 0 => "software soportado", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "El complemento funciona en cualquier sitio web con contenido editable por el usuario y para el %sv, colocará un botón de subida que coincidirá con la barra de herramientas del editor de destino, por lo que no se necesita personalización adicional.", + ], + "Add it to your website" => [ + 0 => "Añadir a su sitio web", + ], + "options" => [ + 0 => "opciones", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Copia y pega el código del complemento en código HTML de tu sitio web (preferiblemente dentro de la cabecera). Hay un montón de %o para que se adapte mejor a tus necesidades.", + ], + "Basic options" => [ + 0 => "Opciones básicas", + ], + "Color palette" => [ + 0 => "Paleta de color", + ], + "Button color scheme" => [ + 0 => "Esquema de colores del botón", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Códigos de inserción que se insertarán automáticamente en el cuadro del editor", + ], + "Sibling selector" => [ + 0 => "Selector hermano", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Selector de elemento hermano donde poner el botón", + ], + "Sibling position" => [ + 0 => "Posición hermano", + ], + "After" => [ + 0 => "Después", + ], + "Before" => [ + 0 => "Antes", + ], + "Position relative to sibling element" => [ + 0 => "Posición relativa al elemento hermano", + ], + "Advanced options" => [ + 0 => "Opciones avanzadas", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "El complemento tiene un gran conjunto de opciones adicionales que permiten personalización completa. Puedes utilizar HTML personalizado, CSS, paleta de colores propia, establecer observadores y mucho más. Comprueba la %d y la fuente del complemento para obtener una mejor idea de estas opciones avanzadas.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "No tienes permiso para acceder a esta página o el enlace a expirado.", + ], + "Search results" => [ + 0 => "Resultados de búsqueda", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "¿Realmente quieres eliminar este usuario? Esto no se podrá deshacer.", + ], + "Delete user" => [ + 0 => "Eliminar usuario", + ], + "Register date" => [ + 0 => "Fecha de registro", + ], + "Registration IP" => [ + 0 => "IP de registro", + ], + "Valid" => [ + 0 => "Válido", + ], + "Banned" => [ + 0 => "Deshabilitado", + ], + "Awaiting email" => [ + 0 => "Esperando email", + ], + "Awaiting confirmation" => [ + 0 => "Esperando confirmación", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "De %i a %f catacteres<br>Letras, números y \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Auto eliminar subidas", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Este ajuste se aplicara en todas tus subidas de manera predeterminada. Podrás alterar este ajuste para cada subida.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Mantener <a %s>datos Exif</a> de imagen al subir", + ], + "Newsletter" => [ + 0 => "Boletín", + ], + "Send me emails with news about %s" => [ + 0 => "Enviarme correos electrónicos con noticias sobre %s", + ], + "Content settings" => [ + 0 => "Ajustes de contenido", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Mostrar contenido no seguro en listados (de otros)", + ], + "Language" => [ + 0 => "Idioma", + ], + "Timezone" => [ + 0 => "Zona horaria", + ], + "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." => [ + 0 => "Este servicio es alimentado por %website_name%, somos un proveedor independiente. Muchas gracias por tu apoyo constante.", + ], + "At %website_name% we are proudly using and supporting %software%." => [ + 0 => "En %website_name% usamos orgullosamente y soportamos a %software%.", + ], + "Current password" => [ + 0 => "Contraseña actual", + ], + "Enter your current password" => [ + 0 => "Introduce tu contraseña actual", + ], + "New password" => [ + 0 => "Nueva contraseña", + ], + "Confirm new password" => [ + 0 => "Confirmar nueva contraseña", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Agrega una contraseña para poder entrar usando tu nombre de usuario o email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Este usuario no tiene contraseña. Agrega una usando este formulario.", + ], + "Enter your password" => [ + 0 => "Introduce tu contraseña", + ], + "Confirm password" => [ + 0 => "Confirmar contraseña", + ], + "Re-enter your password" => [ + 0 => "Re-ingresa tu contraseña", + ], + "Upload avatar" => [ + 0 => "Subir avatar", + ], + "Make my profile and identity totally private" => [ + 0 => "Hacer completamente privado mi perfil e identidad", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Habilita esto si quieres actuar como un usuario anónimo", + ], + "This is your real name, not your username." => [ + 0 => "Este es tu nombre real, no tu nombre de usuario.", + ], + "http://yourwebsite.com" => [ + 0 => "http://misitioweb.com", + ], + "Bio" => [ + 0 => "Biografía", + ], + "Tell us a little bit about you" => [ + 0 => "Cuéntanos un poco sobre ti", + ], + "User has no connections." => [ + 0 => "El usuario no tiene conexiones.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Enlaza tu cuenta con servicios externos para poder entrar y compartir contenido.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "¿Realmente deseas desconectar %s de esta cuenta?", + ], + "This account is connected to %s" => [ + 0 => "Esta cuenta está conectada a %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "¿Realmente deseas desconectar %s de tu cuenta?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Vas a ser desconectado y no podrás entrar a tu cuenta usando %s.", + ], + "Your account is connected to %s" => [ + 0 => "Tu cuenta está conectada a %s", + ], + "disconnect" => [ + 0 => "desconectar", + ], + "Connect %s" => [ + 0 => "Conectar %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Siéntete libre de navegar y descubrir todas mis imágenes y álbumes compartidos.", + ], + "Button" => [ + 0 => "Botón", + ], + "View all my images" => [ + 0 => "Ver todas mis imágenes", + ], + "Login" => [ + 0 => "Ingresar", + ], + "Already have an account? %s now." => [ + 0 => "¿Ya tienes cuenta? %s ahora.", + ], + "resend account activation" => [ + 0 => "reenviar activación de cuenta", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Si ya te has registrado, tal vez necesites solicitar %s para activar tu cuenta.", + ], + "You can also %s." => [ + 0 => "También puedes %s", + ], + "I'm at least %s years old" => [ + 0 => "Tengo al menos %s años", + ], + "terms" => [ + 0 => "términos", + ], + "privacy policy" => [ + 0 => "política de privacidad", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Estoy de acuerdo con los %terms_link y %privacy_link", + ], + "Upload profile background" => [ + 0 => "Subir fondo de perfil", + ], + "Change background" => [ + 0 => "Cambiar fondo", + ], + "Upload new image" => [ + 0 => "Subir nueva imagen", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "La imagen de fondo de perfil se eliminada. Esto no se podrá deshacer. ¿Estas seguro que quieres eliminar el fondo de perfil?", + ], + "Delete background" => [ + 0 => "Eliminar fondo", + ], + "Follower" => [ + 0 => "Seguidor", + 1 => "Seguidores", + ], + "Follow" => [ + 0 => "Seguir", + ], + "You have been forbidden to use this website." => [ + 0 => "Se te ha prohibido el acceso a este sitio web.", + ], + "Plugin" => [ + 0 => "Complemento", + ], + "Page %s" => [ + 0 => "Página %s", + ], + "General questions/comments" => [ + 0 => "Preguntas generales/comentarios", + ], + "DMCA complaint" => [ + 0 => "Queja DMCA", + ], + "Invalid message" => [ + 0 => "Mensaje inválido", + ], + "Invalid subject" => [ + 0 => "Asunto inválido", + ], + "Mail error" => [ + 0 => "Error en mail", + ], + "Message sent" => [ + 0 => "Mensaje enviado", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Mensaje enviado. Nos pondremos en contacto pronto.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Rellena este formulario si quieres enviarnos un mensaje.", + ], + "Your name" => [ + 0 => "Tu nombre", + ], + "Subject" => [ + 0 => "Asunto", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Todos los cambios que has realizado se perderan si continuas.", + ], + "Changes saved successfully." => [ + 0 => "Cambios guardados exitosamente", + ], + "Go back to form" => [ + 0 => "Volver al formulario", + ], + "continue anyway" => [ + 0 => "continuar de todos modos", + ], + "Saving" => [ + 0 => "Guardando", + ], + "Sending" => [ + 0 => "Enviando", + ], + "Confirm action" => [ + 0 => "Confirmar acción", + ], + "information" => [ + 0 => "información", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/et-EE.po.cache.php b/app/.cache/languages/et-EE.po.cache.php new file mode 100644 index 0000000..c44b774 --- /dev/null +++ b/app/.cache/languages/et-EE.po.cache.php @@ -0,0 +1,489 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-03-31 21:05+0000', + 'PO-Revision-Date' => '2020-03-31 21:05+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'et_EE', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Vigane email", + ], + "Invalid username" => [ + 0 => "Vigane kasutaja", + ], + "Invalid password" => [ + 0 => "Vigane parool", + ], + "Invalid website mode" => [ + 0 => "Vigane veebilehe laad", + ], + "From email address" => [ + 0 => "Saatja email", + ], + "Sender email for emails sent to users." => [ + 0 => "Saatja email millega saadetakse kasutajatele.", + ], + "Incoming email address" => [ + 0 => "Sissetulev emaili aadres", + ], + "Website mode" => [ + 0 => "Veebilehe laad", + ], + "You can switch the website mode anytime." => [ + 0 => "Saad vahetada veebilehe laadi igal ajal.", + ], + "Community" => [ + 0 => "Kommuun", + ], + "Personal" => [ + 0 => "Peronaalne", + ], + "Update in progress" => [ + 0 => "Käimas on uuendamine", + ], + "Missing %s file" => [ + 0 => "Puudu %s fail", + ], + "Invalid license info" => [ + 0 => "Vigane litsentsi info", + ], + "Invalid license key" => [ + 0 => "Vigane litsentsi kood", + ], + "Can't save file" => [ + 0 => "Faili ei saa salvestada", + ], + "Can't download %s" => [ + 0 => "Ei saa alla laadida %s", + ], + "An error occurred. Please try again later." => [ + 0 => "Ilmnes viga. Palun proovi hiljem uuesti.", + ], + "Passwords don't match" => [ + 0 => "Parool ei ühti", + ], + "cancel" => [ + 0 => "katkesta", + ], + "Edit" => [ + 0 => "Muuda", + ], + "Album" => [ + 0 => "Album", + 1 => "Albumid", + ], + "Close" => [ + 0 => "Sulge", + ], + "image" => [ + 0 => "pilt", + 1 => "pildid", + ], + "%s's Albums" => [ + 0 => "%s Albumid", + ], + "Untitled" => [ + 0 => "Tiitlita", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Märkus: Sisu on märgitud parooliga kaitstuks. Pea meeles jagada parooli.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Märkus: Sisu on märgitud privaatseks. Määra privaatsus seadetest \"avalik\" teistega jagamiseks.", + ], + "Private" => [ + 0 => "Privaatne", + ], + "Public" => [ + 0 => "Avalik", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Parool", + ], + "view" => [ + 0 => "vaatamine", + 1 => "vaatamist", + ], + "minute" => [ + 0 => "minut", + 1 => "minutit", + ], + "hour" => [ + 0 => "tund", + 1 => "tundi", + ], + "day" => [ + 0 => "päev", + 1 => "päeva", + ], + "week" => [ + 0 => "nädal", + 1 => "nädalat", + ], + "month" => [ + 0 => "kuu", + 1 => "kuud", + ], + "year" => [ + 0 => "aasta", + 1 => "aastat", + ], + "Don't autodelete" => [ + 0 => "Ära kustuta automaatselt", + ], + "Private upload" => [ + 0 => "Privaatne üleslaadimine", + ], + "like" => [ + 0 => "meeldimine", + 1 => "meeldimist", + ], + "Recent" => [ + 0 => "Viimati lisatud", + ], + "Trending" => [ + 0 => "Kuum", + ], + "Top users" => [ + 0 => "Top kasutajad", + ], + "Most recent" => [ + 0 => "Viimased", + ], + "Oldest" => [ + 0 => "Vanimad", + ], + "Most viewed" => [ + 0 => "Enim vaadatud", + ], + "Popular" => [ + 0 => "Populaarsed", + ], + "Explore" => [ + 0 => "Sirvi pilte", + ], + "Animated" => [ + 0 => "Animeeritud", + ], + "Search" => [ + 0 => "Otsi", + ], + "Image" => [ + 0 => "pilt", + 1 => "Pildid", + ], + "User" => [ + 0 => "Kasutaja", + 1 => "Kasutajad", + ], + "Can't update storage details." => [ + 0 => "Ei saanud uuendada salvestamise detaile.", + ], + "Unlimited" => [ + 0 => "Piiramatu", + ], + "used" => [ + 0 => "kasutatud", + ], + "Private profile" => [ + 0 => "Privaatne profiil", + ], + "second" => [ + 0 => "sekund", + 1 => "sekundit", + ], + "%s ago" => [ + 0 => "%s tagasi", + ], + "moments ago" => [ + 0 => "hetk tagasi", + ], + "That page doesn't exist" => [ + 0 => "Seda lehte ei eksisteeri", + ], + "Forgot password?" => [ + 0 => "Unustasid parooli ?", + ], + "Reset password" => [ + 0 => "Taasta parool", + ], + "Resend account activation" => [ + 0 => "Saada uuesti konto kinnitamise e-mail", + ], + "Add your email address" => [ + 0 => "Lisa oma e-mail", + ], + "Email changed" => [ + 0 => "E-mail muudetud", + ], + "Invalid Username/Email" => [ + 0 => "Vale Kasutajanimi/Parool", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Konto peab olema aktiveeritud", + ], + "Account already activated" => [ + 0 => "Konto on juba aktiveeritud", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "E-maili saabumine võib võtta aega kuni 15 minutit. Proovi hiljem uuesti.", + ], + "Email already being used" => [ + 0 => "E-mail on juba kasutusel", + ], + "Password required" => [ + 0 => "Parool nõutud", + ], + "Share" => [ + 0 => "Jaga", + ], + "Embed codes" => [ + 0 => "HTML ja BBKoodi tag'id", + ], + "Stats" => [ + 0 => "Statistika", + ], + "Images" => [ + 0 => "Pildid", + ], + "Albums" => [ + 0 => "Albumid", + ], + "Users" => [ + 0 => "Kasutajad", + ], + "Settings" => [ + 0 => "Seaded", + ], + "Chevereto version" => [ + 0 => "Chevereto versioon", + ], + "install update" => [ + 0 => "installeeri uuendus", + ], + "check for updates" => [ + 0 => "kontrolli uuendusi", + ], + "Support" => [ + 0 => "Kasutajatugi", + ], + "Enabled" => [ + 0 => "Lubatud", + ], + "Disabled" => [ + 0 => "Keelatud", + ], + "Max. upload file size" => [ + 0 => "Max faili suurus", + ], + "Invalid timezone" => [ + 0 => "Vale ajatsoon", + ], + "Sign in" => [ + 0 => "Logi sisse", + ], + "Upload images" => [ + 0 => "Lae pilt ülesse", + ], + "Account" => [ + 0 => "Konto", + ], + "Profile" => [ + 0 => "Profiil", + ], + "Wrong password" => [ + 0 => "Vale parool", + ], + "Password has been changed" => [ + 0 => "Parool muudetud edukalt", + ], + "Create account" => [ + 0 => "Loo konto", + ], + "Upload" => [ + 0 => "Lae pilt...", + ], + "Discovery" => [ + 0 => "Avasta", + ], + "Advanced search" => [ + 0 => "Täpsem otsing", + ], + "Random" => [ + 0 => "Suvaline pilt", + ], + "My Profile" => [ + 0 => "Minu konto", + ], + "Sign out" => [ + 0 => "Logi välja", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Lohista fail siia või lae ülesse clipboardist", + ], + "browse from your computer" => [ + 0 => "valida faili arvutist", + ], + "add image URLs" => [ + 0 => "lisada läbi lingi", + ], + "You can also %i or %u." => [ + 0 => "Sa saad %i või %u", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Muuda pilti või pildi suurust vajutades pisipildile", + ], + "your computer" => [ + 0 => "arvutist", + ], + "You can add more images from %i or %u." => [ + 0 => "Saad lisada pilte juurde %i või %u", + ], + "sign in" => [ + 0 => "logi sisse", + ], + "close" => [ + 0 => "sulge", + ], + "Remove" => [ + 0 => "Kustuta", + ], + "Edit image" => [ + 0 => "Muuda pilti", + ], + "Title" => [ + 0 => "Pealkiri", + ], + "optional" => [ + 0 => "valikuline", + ], + "Resize image" => [ + 0 => "Pildi mõõtmed", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Animeeritud (gif) failide pildi suurust ei saa muuta!", + ], + "Auto delete image" => [ + 0 => "Kustuta pilt automaatselt", + ], + "Description" => [ + 0 => "Kirjeldus", + ], + "Brief description of this image" => [ + 0 => "....", + ], + "Album name" => [ + 0 => "Albumi nimi", + ], + "Private (just me)" => [ + 0 => "Privaatne(ainult minule)", + ], + "Album password" => [ + 0 => "Albumi parool", + ], + "Name" => [ + 0 => "Nimi", + ], + "Select all" => [ + 0 => "Vali kõik", + ], + "Clear selection" => [ + 0 => "Eemalda valik", + ], + "Selection" => [ + 0 => "Valitud", + ], + "Sign in with another account" => [ + 0 => "Logi sisse kasutades...", + ], + "There's nothing to show here." => [ + 0 => "Tühjus... Pole midagi näidata!", + ], + "Edit image details" => [ + 0 => "Muuda pilti", + ], + "The requested page was not found." => [ + 0 => "Soovitud lehekülge ei leitud!", + ], + "The user has been deleted" => [ + 0 => "Kasutaja kustutatud", + ], + "Submit" => [ + 0 => "Edasi", + ], + "Username or Email address" => [ + 0 => "Kasutajanimi või e-mail", + ], + "Enter your new password" => [ + 0 => "Sisesta uus parool", + ], + "Re-enter your new password" => [ + 0 => "Sisesta uuesti uus parool", + ], + "Delete album" => [ + 0 => "Kustuta album", + ], + "Album link" => [ + 0 => "Albumi link", + ], + "Email address" => [ + 0 => "E-mail", + ], + "Save changes" => [ + 0 => "Salvesta", + ], + "Uploaded %s" => [ + 0 => "Üles laetud %s", + ], + "More Exif data" => [ + 0 => "Vaata exif andmeid", + ], + "Share image" => [ + 0 => "Jaga pilti", + ], + "Upload and share your images." => [ + 0 => "Lae pilt ülesse ja jaga seda", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Lohista oma pilt siia ja alusta üleslaadimist. Kuni %s", + ], + "Start uploading" => [ + 0 => "Lae pilt...", + ], + "Logged out" => [ + 0 => "Välja logitud", + ], + "Go to homepage" => [ + 0 => "Mine esilehele", + ], + "Timezone" => [ + 0 => "Ajatsoon", + ], + "Current password" => [ + 0 => "Praegune parool", + ], + "Enter your current password" => [ + 0 => "Sisesta praegune parool", + ], + "Upload new image" => [ + 0 => "Lae pilt", + ], + "If you want to send a message fill the form below." => [ + 0 => "Kirjuta meile.", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/fa.po.cache.php b/app/.cache/languages/fa.po.cache.php new file mode 100644 index 0000000..7380857 --- /dev/null +++ b/app/.cache/languages/fa.po.cache.php @@ -0,0 +1,1743 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2015-04-13 17:55+0000', + 'PO-Revision-Date' => '2015-04-13 17:55+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'fa', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "ایمیل اشتباه است", + ], + "Invalid username" => [ + 0 => "نام کاربری اشتباه است", + ], + "Invalid password" => [ + 0 => "رمز عبور اشتباه استد", + ], + "From email address" => [ + 0 => "ایمیل آدرس", + ], + "Sender email for emails sent to users." => [ + 0 => "ایمیل آدرس برای ارسال ایمیل به کاربران", + ], + "Incoming email address" => [ + 0 => "ایمیل آدرس ورودی", + ], + "Recipient for contact form and system alerts." => [ + 0 => "ایمیل جهت دریافت فرم های تماس و پیغام های سیستمی", + ], + "Untitled" => [ + 0 => "بدون عنوان", + ], + "%s's images" => [ + 0 => "%s عکس", + ], + "Private upload" => [ + 0 => "بارگذاری خصوصی", + ], + "view" => [ + 0 => "نمایش", + 1 => "نمایش", + ], + "image" => [ + 0 => "عکس", + 1 => "عکس", + ], + "year" => [ + 0 => "سال", + 1 => "سال", + ], + "month" => [ + 0 => "ماه", + 1 => "ماه", + ], + "week" => [ + 0 => "هفته", + 1 => "هفته", + ], + "day" => [ + 0 => "روز", + 1 => "روز", + ], + "hour" => [ + 0 => "ساعت", + 1 => "ساعت", + ], + "minute" => [ + 0 => "دقیقه", + 1 => "دقیقه", + ], + "second" => [ + 0 => "ثانیه", + 1 => "ثانیه", + ], + "%s ago" => [ + 0 => "%s قبل", + ], + "moments ago" => [ + 0 => "لحظه ایی پیش", + ], + "That page doesn't exist" => [ + 0 => "صفحه وجود ندارد.", + ], + "Reset password" => [ + 0 => "بازیابی رمز عبور", + ], + "Resend account activation" => [ + 0 => "ارسال دوباره ایمیل فعال سازی", + ], + "Add your email address" => [ + 0 => "ایمیل خود را وارد کنید", + ], + "Email changed" => [ + 0 => "ایمیل تغییر کرد.", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "تصویر امنیتی به درستی وارد نشده است.", + ], + "Invalid Username/Email" => [ + 0 => "نام کاربری / رمز عبور اشتباه است", + ], + "User doesn't have an email." => [ + 0 => "کاربر ایمیلی ندارد.", + ], + "Request denied" => [ + 0 => "درخواست غیر مجاز است", + ], + "Account needs to be activated to use this feature" => [ + 0 => "برای استفاده از این ویژگی باید حساب خود را فعال کنید.", + ], + "Account already activated" => [ + 0 => "حساب شما فعال شد.", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "حداقل 15 دقیقه تا دریافت ایمیل . شما میتوانید بعدا دوباره امتحان کنید.", + ], + "Reset your password at %s" => [ + 0 => "بازیابی رمز عبور در %s", + ], + "Confirmation required at %s" => [ + 0 => "فعالسازی مورد نیاز است در %s", + ], + "Welcome to %s" => [ + 0 => "به %s خوش آمدید", + ], + "Passwords don't match" => [ + 0 => "رمز عبور هماهنگ نیستند", + ], + "Email already being used" => [ + 0 => "ایمیل در حال حاضر استفاده شده است.", + ], + "Check the errors in the form to continue." => [ + 0 => "خطاهای این فرم را بررسی کنید", + ], + "Most recent" => [ + 0 => "آخرین تصاویر", + ], + "Oldest" => [ + 0 => "قدیمیترین تصاویر", + ], + "Most viewed" => [ + 0 => "محبوبترین", + ], + "Share" => [ + 0 => "اشتراک گذاری", + ], + "Full info" => [ + 0 => "توضیحات کامل", + ], + "Stats" => [ + 0 => "آمار", + ], + "Albums" => [ + 0 => "آلبوم ها", + ], + "Users" => [ + 0 => "کاربران", + ], + "Settings" => [ + 0 => "تنظیمات", + ], + "Chevereto version" => [ + 0 => "نسخه ی نرم افزار", + ], + "PHP version" => [ + 0 => "نسخه ی PHP", + ], + "Server" => [ + 0 => "سرور", + ], + "MySQL version" => [ + 0 => "نسخه ی دیتابیس", + ], + "MySQL server info" => [ + 0 => "اطلاعات سرور دیتابیس", + ], + "GD Library" => [ + 0 => "GD Library", + ], + "File uploads" => [ + 0 => "فایل آپلود شده", + ], + "Enabled" => [ + 0 => "فعال", + ], + "Disabled" => [ + 0 => "غیرفعال", + ], + "Max. upload size" => [ + 0 => "حداکثر حجم آپلود", + ], + "Max. post size" => [ + 0 => "حداکثر حجم پست", + ], + "Max. execution time" => [ + 0 => "Max. execution time", + ], + "%d second" => [ + 0 => "%d ثانیه", + 1 => "%d ثانیه", + ], + "Memory limit" => [ + 0 => "محدودیت حافظه", + ], + "Website" => [ + 0 => "وبسایت", + ], + "Content" => [ + 0 => "محتوا", + ], + "Listings" => [ + 0 => "محتوا", + ], + "Image upload" => [ + 0 => "آپلود تصویر", + ], + "Categories" => [ + 0 => "دسته بندی ها", + ], + "Flood protection" => [ + 0 => "محافظت از حملات", + ], + "Theme" => [ + 0 => "قالب", + ], + "Homepage" => [ + 0 => "صفحه اصلی", + ], + "Banners" => [ + 0 => "بنر ها", + ], + "System" => [ + 0 => "سیستم", + ], + "Email" => [ + 0 => "ایمیل", + ], + "Social networks" => [ + 0 => "شبکه های اجتماعی", + ], + "External services" => [ + 0 => "سرویس های خارجی", + ], + "All" => [ + 0 => "همه", + ], + "search content" => [ + 0 => "جستجو مطالب", + ], + "Invalid website name" => [ + 0 => "نام وبسایت اشتباه است", + ], + "Invalid language" => [ + 0 => "زبان اشتباه است", + ], + "Invalid timezone" => [ + 0 => "Invalid timezone", + ], + "Invalid value" => [ + 0 => "مقدار اشتباه است", + ], + "Invalid upload storage mode" => [ + 0 => "شیوه ذخیره سازی فایل های آپلود شده اشتباه است.", + ], + "Invalid upload filenaming" => [ + 0 => "نام گذاری فایل های آپلود شده اشتباه است.", + ], + "Invalid thumb width" => [ + 0 => "عرض تصویر بند انگشتی اشتباه است.", + ], + "Invalid thumb height" => [ + 0 => "ارتقاع تصویر بند انگشتی اشتباه است.", + ], + "Invalid medium width" => [ + 0 => "عرض تصویر متوسط اشتباه است", + ], + "Invalid theme" => [ + 0 => "قالب اشتباه است", + ], + "Invalid theme tone" => [ + 0 => "قالب اشتباه است", + ], + "Invalid theme image listing size" => [ + 0 => "اندازه لیست تصاویر قالب اشتباده است", + ], + "Invalid user id" => [ + 0 => "شناسه کاربری اشتباه است", + ], + "Invalid email mode" => [ + 0 => "شیوه ارسال ایمیل نادرست است.", + ], + "Invalid SMTP port" => [ + 0 => "پرت SMTP اشتباه است", + ], + "Invalid SMTP security" => [ + 0 => "امنیت SMTP اشتباه است", + ], + "Invalid website mode" => [ + 0 => "روش وبسایت اشتباه است", + ], + "Invalid website content privacy mode" => [ + 0 => "حریم خصوصی مطالب سایت اشتباه است", + ], + "Invalid upload image path" => [ + 0 => "آدرس آپلود تصاویر اشتباه است", + ], + "Max. allowed %s" => [ + 0 => "حداکثر مجاز %s", + ], + "Invalid SMTP server" => [ + 0 => "سرور SMTP نادرست است", + ], + "Invalid SMTP username" => [ + 0 => "نام کاربری SMTP نادرست است", + ], + "Top users" => [ + 0 => "برترین کاربران", + ], + "Dashboard" => [ + 0 => "پیشخوان", + ], + "Explore" => [ + 0 => "پویش", + ], + "About" => [ + 0 => "درباره", + ], + "Embed codes" => [ + 0 => "کد های پیوست", + ], + "Image ID" => [ + 0 => "شماره ی تصویر", + ], + "Uploader IP" => [ + 0 => "آیپی آپلود کننده تصویر", + ], + "Upload date" => [ + 0 => "تاریخ آپلود تصویر", + ], + "%s images" => [ + 0 => "%s عکس", + ], + "Login needed" => [ + 0 => "باید وارد شوید", + ], + "Missing values" => [ + 0 => "مقدار اشتباه است", + ], + "Invalid role" => [ + 0 => "نقش اشتباه است", + ], + "Username already being used" => [ + 0 => "نام کاربری قبلا ثبت شده است", + ], + "%s has been disconnected." => [ + 0 => "%s متصل نشده است", + ], + "Wrong Username/Email password combination" => [ + 0 => "ترکیب نام کاربری / ایمیل + رمز عبور اشتباه است", + ], + "Sign in" => [ + 0 => "ورود", + ], + "Logged out" => [ + 0 => "خارج شدید", + ], + "Search" => [ + 0 => "جستجو", + ], + "Account" => [ + 0 => "حساب", + ], + "Profile" => [ + 0 => "پروفایل", + ], + "Password" => [ + 0 => "رمز عبور", + ], + "Linked accounts" => [ + 0 => "حساب های متصل شده", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "ایمیلی به %s جهت فعالسازی این ایمیل آدرس ارسال شده است.", + ], + "Invalid name" => [ + 0 => "نام اشتباه است", + ], + "Invalid website" => [ + 0 => "وبسایت اشتباه است", + ], + "Wrong password" => [ + 0 => "رمز عبور اشتباه است", + ], + "Use a new password" => [ + 0 => "استفاده از یک رمز عبور جدید", + ], + "Changes have been saved." => [ + 0 => "تغییرات ذخیره شدند.", + ], + "Password has been changed" => [ + 0 => "رمز عبور تغییر یافت.", + ], + "Password has been created." => [ + 0 => "رمز عبور ساخته شد.", + ], + "Wrong Username/Email values" => [ + 0 => "مقدار نام کاربری / ایمیل اشتباه وارد شده است.", + ], + "Settings for %s" => [ + 0 => "تنظیمات برای %s", + ], + "Create account" => [ + 0 => "ثبت نام", + ], + "%s's Images" => [ + 0 => "تصاویر %s", + ], + "%s's Albums" => [ + 0 => "آلبوم های %s", + ], + "Random" => [ + 0 => "تصادفی", + ], + "Upload" => [ + 0 => "آپلود عکس", + ], + "Sign in with another account" => [ + 0 => "وارد شدن با یک حساب دیگر", + ], + "or" => [ + 0 => "یا", + ], + "Username or Email address" => [ + 0 => "نام کاربری یا آدرس ایمیل", + ], + "Keep me logged in" => [ + 0 => "مرا بخاطر بسپار", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "در سایت ما عضو نیستید؟ همین الان <a href='%s'>ثبت نام</a> کنید.", + ], + "Sign up with another account" => [ + 0 => "ثبت نام یک حساب کاربری دیگر.", + ], + "Email address" => [ + 0 => "آدرس ایمیل", + ], + "Username" => [ + 0 => "نام کاربری", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "با عضویت خود تایید میکنید که با <a href=\"%s\">شرایط سرویس دهی</a> ما موافقید", + ], + "My Profile" => [ + 0 => "پروفایل من", + ], + "Sign out" => [ + 0 => "خروج", + ], + "Terms of service" => [ + 0 => "شرایط استفاده", + ], + "Privacy" => [ + 0 => "حریم خصوصی", + ], + "Contact" => [ + 0 => "تماس با ما", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "ما درخواستی مبنی بر تغییر ایمیل آدرس حساب شما <a href=\"%u\">%n</a> در %w دریافت کرده اییم", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "برای پردازش این عمل شما باید <a href=\"%s\">ایمیل خود را تایید کنید</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "همچنین شما میتوانید آدرس مقابل را در مرورگر خود وارد کنید : <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "در صورتی که این شما نبوده ایید، کافیست این ایمیل را نادیده بگیرید.", + ], + "This request was made from IP: %s" => [ + 0 => "این درخواست از آیپی آدرس %s دریافت شده است", + ], + "We received a request to register the %n account at %w." => [ + 0 => "ما درخواستی مبنی بر ثبت حساب %n در %w دریافت کرده اییم.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "برای پردازش این درخواست شما باید <a href=\"%s\">حساب خود را فعال کنید</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "ما درخواستی برای بازیابی رمز عبور حساب شما <a href=\"%u\">%n</a> دریافت کرده اییم.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "برای بازیابی رمز خود <a href=\"%s\">این لینک را دنبال کنید</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "سلام %n, خوش آمدید به %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "حالا حساب شما فعال است و میتوانید از بارگذاری تصاویر ، ساخت آلبوم ها ، تنظیمات حریم خصوصی تصاویر و آلبوم و بسیاری ویژگی های دیگر سایت ما لذت ببرید.", + ], + "Thank you for joining" => [ + 0 => "از عضویت شما متشکریم", + ], + "This email was sent from %w %u" => [ + 0 => "این ایمیل از %w %u ارسال شده است.", + ], + "General questions/comments" => [ + 0 => "نظرات / سوالات اصلی", + ], + "DMCA complaint" => [ + 0 => "شکایت از نقض حقوق معنوی", + ], + "Invalid message" => [ + 0 => "پیغام نادرست است.", + ], + "Invalid subject" => [ + 0 => "عنوان نادرست است.", + ], + "Invalid reCAPTCHA" => [ + 0 => "کد امنیتی نادرست است.", + ], + "Mail error" => [ + 0 => "خطا در ارسال ایمیل.", + ], + "Message sent" => [ + 0 => "پیغام شما ارسال شد.", + ], + "We will be in touch soon." => [ + 0 => "به زودی با شما تماس میگیریم.", + ], + "If you want to send a message fill the form below." => [ + 0 => "اگر میخواهید پیغامی بفرستید فرم زیر را پر کنید.", + ], + "Name" => [ + 0 => "نام", + ], + "Your name" => [ + 0 => "نام شما", + ], + "Your email address" => [ + 0 => "آدرس ایمیل شما", + ], + "Subject" => [ + 0 => "عنوان", + ], + "Message" => [ + 0 => "پیغام", + ], + "Send message" => [ + 0 => "ارسال پیغام", + ], + "cancel" => [ + 0 => "لغو", + ], + "Drag and drop images here to upload" => [ + 0 => "برای آپلود عکس ها آنها را به اینجا بکشید و رها کنید.", + ], + "Select the images to upload" => [ + 0 => "عکسی را برای آپلود انتخاب کنید", + ], + "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "همچنین شما میتوانید <a data-trigger=\"anywhere-upload-input\">تصویری از کامپیوتر خود برگزینید</a> یا <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">آدرس اینترنتی تصویر را وارد کنید.</a>", + ], + "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." => [ + 0 => "همچنین میتوانید همین الان <a data-trigger=\"anywhere-upload-input-camera\">عکس بگیرید</a>", + ], + "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" => [ + 0 => "در حال بارگذاری <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">عکس</span>", + ], + "The queue is being uploaded. It will take just a few seconds to complete." => [ + 0 => "بارگذاری در حال انجام است. ممکن است چند ثانیه طول بکشد تا تکمیل شدن بارگذاری.", + ], + "Upload complete" => [ + 0 => "بارگذاری کامل شد", + ], + "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." => [ + 0 => "تصویر به <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">محتوای عمومی</a> اضافه شد. شما میتوانید <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">یک آلبوم جدید بسازید </a> یا <a data-modal=\"form\" data-target=\"form-uploaded-move-album\"> انتقال دهید <span data-text=\"queue-objects\">تصاویر</span></a> را به آلبوم های قبلی.", + ], + "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." => [ + 0 => "شما میتوانید <a href=\"%s\">ثبت نام کنید</a> یا <a href=\"%l\">وارد شوید</a> تا تصاویر بارگذاری شده در آینده را در حساب خود ذخیره کنید.", + ], + "No <span data-text=\"queue-objects\">images</span> have been uploaded" => [ + 0 => "هیچ <span data-text=\"queue-objects\">تصویری</span> آپلود نشده است.", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "خطایی پیش آمده و سیستم قادر به انجام درخواست شما نیست.", + ], + "Select category" => [ + 0 => "انتخاب دسته بندی", + ], + "Change upload privacy" => [ + 0 => "تغییر حریم خصوصی آپلود", + ], + "Mark this if the upload is not family safe" => [ + 0 => "اگر آپلود حاوی محتوای نا مناسب است این گزینه را فعال کنید", + ], + "Not family safe upload" => [ + 0 => "نا مناسب برای خانواده", + ], + "Uploading" => [ + 0 => "در حال آپلود", + ], + "cancel remaining" => [ + 0 => "لغو باقی مانده ها", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "توجه: امکان آپلود برخی تصاویر موجود نیست.", + ], + "learn more" => [ + 0 => "بیشتر بخوانید.", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "برای توضیحات بیشتر <a data-modal=\"simple\" data-target=\"failed-upload-result\">گزارش خطاها</a> را مطلعه کنید", + ], + "max" => [ + 0 => "حداکثر", + ], + "close" => [ + 0 => "بستن", + ], + "Add image URLs" => [ + 0 => "افزودن آدرس تصویر", + ], + "Add the image URLs here" => [ + 0 => "آدرس تصویر را اینجا وارد کنید", + ], + "Create album" => [ + 0 => "ساخت آلبوم", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "تصاویر آپلود شده به این آلبوم جدید منتقل خواهند شد. همچنین شما میتوانید آنها را به <a class=\"modal-switch\" data-switch=\"move-existing-album\">آلبوم های قبلی</a> منتقل کنید.", + ], + "Move to album" => [ + 0 => "انتقال به آلبوم", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "یک آلبوم جهت انتقال تصاویر آپلود شده انتخاب کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و تصاویر را به آن منتقل کنید.", + ], + "Error report" => [ + 0 => "گزارش خطا", + ], + "album" => [ + 0 => "آلبوم", + 1 => "آلبوم ها", + ], + "Links" => [ + 0 => "لینکها", + ], + "Viewer links" => [ + 0 => "لینک مشاهده", + ], + "Direct links" => [ + 0 => "لینک مستقیم", + ], + "HTML Codes" => [ + 0 => "کد HTML", + ], + "HTML embed" => [ + 0 => "پیوست HTML", + ], + "HTML original linked" => [ + 0 => "کد HTML برای تصویر اصلی", + ], + "HTML medium linked" => [ + 0 => "کد HTML برای تصویر متوسط", + ], + "HTML thumbnail linked" => [ + 0 => "کد HTML برای تصویر بند انگشتی", + ], + "BBCodes" => [ + 0 => "BBCode ها", + ], + "BBCode embed" => [ + 0 => "BBCode پیوست", + ], + "BBCode original linked" => [ + 0 => "کد BBCode برای تصویر اصلی", + ], + "BBCode medium linked" => [ + 0 => "کد BBCode برای تصویر متوسط", + ], + "BBCode thumbnail linked" => [ + 0 => "کد BBCode برای تصویر بندانگشتی", + ], + "Category" => [ + 0 => "دسته بندی", + ], + "Album name" => [ + 0 => "نام آلبوم", + ], + "Untitled album" => [ + 0 => "آلبوم بدون عنوان", + ], + "Album description" => [ + 0 => "توضیحات آلبوم", + ], + "optional" => [ + 0 => "اختیاری", + ], + "Brief description of this album" => [ + 0 => "توضیحات کوتاهی در مورد این آلبوم", + ], + "Album Privacy" => [ + 0 => "حریم خصوصی آلبوم", + ], + "Who can view this content" => [ + 0 => "چه کسانی میتوانند این را مشاهده کنند؟", + ], + "Public" => [ + 0 => "عمومی", + ], + "Private (just me)" => [ + 0 => "خصوصی ( فقط من )", + ], + "Private (anyone with the link)" => [ + 0 => "خصوصی (هرکسی که لینک داشته باشد)", + ], + "No category" => [ + 0 => "بدون دسته بندی", + ], + "Category name" => [ + 0 => "نام دسته بندی", + ], + "URL key" => [ + 0 => "کلید آدرس", + ], + "Category URL key" => [ + 0 => "کلید آدرس دسته بندی", + ], + "Description" => [ + 0 => "توضیحات", + ], + "Brief description of this category" => [ + 0 => "توضیحات کمی در مورد این دسته بندی", + ], + "Mark this if the image is not family safe" => [ + 0 => "اگر تصویر نامناسب برای خانواده است این گزینه را فعال کنید", + ], + "Flag as unsafe" => [ + 0 => "برچسب به عنوان نا امن", + ], + "Brief description of this image" => [ + 0 => "توضیح مختصری در مورد تصویر بنویسید", + ], + "Existing album" => [ + 0 => "آلبوم موجود", + ], + "private" => [ + 0 => "خصوصی", + ], + "create new album" => [ + 0 => "ساخت آلبوم جدید", + ], + "view more" => [ + 0 => "بیشتر", + ], + "Load more" => [ + 0 => "بارگذاری بیشتر", + ], + "Previous" => [ + 0 => "قبلی", + ], + "Next" => [ + 0 => "بعدی", + ], + "Select all" => [ + 0 => "انتخاب همه", + ], + "Selection" => [ + 0 => "انتخاب منطقه", + ], + "Action" => [ + 0 => "حساب", + ], + "Get embed codes" => [ + 0 => "دریافت کد پیوست", + ], + "Flag as safe" => [ + 0 => "برچسب به عنوان امن", + ], + "Delete" => [ + 0 => "حذف", + ], + "Clear selection" => [ + 0 => "عدم انتخاب", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "برای استفاده از این ویژگی باید قبلا در سایت وارد شده باشید. اگر در سایت ما حسابی ندارید همین الان <a href=\"%s\">ثبت نام</a> کنید", + ], + "forgot?" => [ + 0 => "فراموش کردید؟", + ], + "Link" => [ + 0 => "پیوند", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "توجه: این مطلب خصوصی است. جهت اشتراک آن باید مطلب را \"public\" کنید", + ], + "There's nothing to show here." => [ + 0 => "چیزی برای نمایش وجود ندارد", + ], + "Edit image details" => [ + 0 => "ویرایش جزئیات تصویر", + ], + "Edit album details" => [ + 0 => "ویرایش جزئیات آلبوم", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "تمامی تصاویر به آلبوم جدید منتقل خواهند شد. همچنین شما میتوانید تصاویرتان را در <a class=\"modal-switch\" data-switch=\"move-existing-album\">آلبوم های قبلی</a> قرار دهید.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "یک آلبوم جهت انتقال این تصویر انتخاب کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و تصویر را به آنجا انتقال دهید.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "یک آلبوم برای انتقال محتوای این آلبوم انتخاب کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و محتوای این آلبوم را به آنجا انتقال دهید.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "یک آلبوم انتخاب و تصاویر را به آن منتقل کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و تصاویر را به آنجا انتقال دهید.", + ], + "Confirm flag content as safe" => [ + 0 => "تایید مطلب به عنوان امن", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "آیا نسبت به امن کردن محتوا اطمینان دارید؟", + ], + "Confirm flag content as unsafe" => [ + 0 => "تایید برچسب مطلب به عنوان نا امن", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "نسبت به علامت زدن این محتوا به عنوان کنترل نشده اطمینان دارید؟", + ], + "Confirm deletion" => [ + 0 => "تایید حذف", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "آیا نسبت به حذف این محتوا مطمئن هستید؟ این عمل غیر قابل بازگشت است.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "آیا نسبت به حذف تمامی انتخاب شده ها مطمئن هستید؟ این عمل غیر قابل بازگشت است.", + ], + "Uploaded by guest to Public" => [ + 0 => "آپلود شده توسط مهمان در عمومی", + ], + "From %s" => [ + 0 => "از %s", + ], + "From %a by %u" => [ + 0 => "از %a توسط %u", + ], + "Select" => [ + 0 => "انتخاب", + ], + "Edit" => [ + 0 => "ویرایش", + ], + "The requested page was not found." => [ + 0 => "صفحه ی درخواستی وجود ندارد.", + ], + "Search something else" => [ + 0 => "جستجو ی چیزی دیگر", + ], + "The user has been deleted" => [ + 0 => "کاربر حذف شد.", + ], + "The content has been deleted." => [ + 0 => "مطلب حذف شد.", + ], + "Your account is almost ready" => [ + 0 => "حساب شما آماده است.", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "ایمیلی به %s بهمراه توضیحات جهت فعالسازی حساب شما ارسال شد. این ایمیل تا 48 ساعت آینده معتبر است. در صورتی که آن را دریافت نکرده ایید پوشه ی اسپم ایمیل خود را چک کنید.", + ], + "Go to homepage" => [ + 0 => "رفتن به صفحه ی اصلی", + ], + "Resend activation" => [ + 0 => "ارسال دوباره فعالسازی", + ], + "You have successfully changed your account email to %s" => [ + 0 => "شما با موفقیت ایمیل حساب خود را به %s تغییر دادید", + ], + "Go to my profile" => [ + 0 => "به پروفایل خود بروید", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "یک ایمیل فعالسازی همراه با جزئیات فعالسازی به این ایمیل ارسال خواهد شد.", + ], + "Add email" => [ + 0 => "افزودن ایمیل", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "ایمیلی بهمراه توضیحات در مورد بازیابی رمز عبور شما به ایمیل ثبت شده ی حسابتان ارسال شد. در صورتی که ایمیل را نمیبینید پوشه ی اسپم ایمیل را چک کنید.", + ], + "Resend instructions" => [ + 0 => "ارسال دوباره ی راهنمایی", + ], + "An error occurred. Please try again later." => [ + 0 => "خطایی پیش آمده. لطفا بعدا دوباره تلاش کنید.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "ایمیل قبلی بهمراه راهنمایی های لازم جهت بازیابی رمزتان به ایمیلتان ارسال شد. اگر ایمیل را نمیبینید پوشه ی اسپم خود را بررسی کنید.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "نام کاربری و ایمیل آدرسی که برای ساخت حسابتان استفاده کرده ایید وارد کنید.", + ], + "Submit" => [ + 0 => "ارسال", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "رمز عبور شما تغییر یافت. شما اکنون میتوانید با رمز عبور جدید وارد سایت شوید.", + ], + "Login now" => [ + 0 => "اکنون وارد شوید", + ], + "Enter the new password that you want to use." => [ + 0 => "رمز عبور جدیدی که میخواهید استفاده کنید وارد کنید.", + ], + "New Password" => [ + 0 => "پسورد جدید", + ], + "%d characters min" => [ + 0 => "حداقل %d کاراکتر", + ], + "Enter your new password" => [ + 0 => "رمز عبور جدید خود را وارد کنید", + ], + "Confirm password" => [ + 0 => "رمز عبور را دوباره وارد کنید", + ], + "Re-enter your new password" => [ + 0 => "رمز عبور جدید را دوباره وارد کنید", + ], + "An email to %s has been sent with instructions to activate your account.n\\If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "ایمیلی بهمراه راهنمایی های لازم جهت فعالسازی حسابتان به %s ارسال شد. n\\\\ اگر ایمیل را نمیبینید پوشه ی اسپم را چک کنید.", + ], + "Enter the email address that you used to create your account to continue." => [ + 0 => "ایمیل آدرسی که برای ساخت حساب استفاده کرده ایید وارد کنید.", + ], + "This content is private" => [ + 0 => "این مطلب خصوصی میباشد.", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "آیا نسبت به حذف این آلبوم و تصاویر آن مطمئن هستید؟ این عمل غیرقابل بازگشت است.", + ], + "Delete album" => [ + 0 => "حذف آلبوم", + ], + "Album link" => [ + 0 => "لینک آلبوم", + ], + "Image" => [ + 0 => "تصویر", + 1 => "تصاویر", + ], + "User" => [ + 0 => "کاربر", + 1 => "کاربران", + ], + "Disk used" => [ + 0 => "فضای استفاده شده", + ], + "Add user" => [ + 0 => "افزودن کاربر", + ], + "Role" => [ + 0 => "سمت", + ], + "Administrator" => [ + 0 => "مدیر کل سایت", + ], + "Add category" => [ + 0 => "افزودن دسته بندی", + ], + "Website name" => [ + 0 => "آدرس وبسایت", + ], + "Website doctitle" => [ + 0 => "عنوان وبسایت", + ], + "Website description" => [ + 0 => "توضیحات وبسایت", + ], + "Website keywords" => [ + 0 => "کلمات کلیدی وبسایت", + ], + "Default time zone" => [ + 0 => "منطقه زمانی اصلی", + ], + "Select region" => [ + 0 => "انتخاب منطقه", + ], + "Enable this if you want to allow the explore page." => [ + 0 => "برای نمایش صفحه پویش این گزینه را فعال کنید", + ], + "Website mode" => [ + 0 => "حالت وبسایت", + ], + "Private" => [ + 0 => "خصوصی", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "حالت خصوصی دسترسی به وبسایت را تنها برای کاربران عضو امکان پذیر میکند", + ], + "Content privacy mode" => [ + 0 => "حالت حفظ خصوصی مطالب", + ], + "Default" => [ + 0 => "معمولی", + ], + "Force private (self)" => [ + 0 => "اجبار به خصوصی", + ], + "Force private (anyone with the link)" => [ + 0 => "اجبار به خصوصی ( هر کسی با یک لینک )", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "تنظیمات خصوصی اجباری تنظیمات کاربران را تحت تاثیر قرار میدهد", + ], + "Enable uploads" => [ + 0 => "فعالسازی بارگذاری", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "جهت فعالسازی بارگذاری فایل این گزینه را فعال کنید. این گزینه بر مدیریت سایت تاثیر نمیگذارد.", + ], + "Guest uploads" => [ + 0 => "آپلود مهمان", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "برای فعالسازی آپلود کاربران غیر عضو این گزینه را فعال کنید.", + ], + "Max. filesize" => [ + 0 => "حداکثر حجم فایل", + ], + "Max. allowed filesize. (Max allowed by server is %s)" => [ + 0 => "حداکثر حجم قابل آپلود برای هر فایل ( در این سرور %s)", + ], + "Image path" => [ + 0 => "پوشه تصاویر", + ], + "Relative to Chevereto root" => [ + 0 => "مربوط به پوشه ی نرم افزار", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "کجا تصاویر ذخیره شوند؟ مربوط است به محل ذخیره نرم افزار", + ], + "Storage mode" => [ + 0 => "شیوه ذخیره سازی", + ], + "Datefolders" => [ + 0 => "پوشه بندی بر اساس زمان", + ], + "Direct" => [ + 0 => "مستقیم", + ], + "Datefolders creates %s structure" => [ + 0 => "پوشه بندی بر اساس زمان ساختار %s را تولید میکنند", + ], + "File naming method" => [ + 0 => "شیوه نامگذاری فایلها", + ], + "Original" => [ + 0 => "نام اصلی", + ], + "Mixed" => [ + 0 => "میکس شده", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." => [ + 0 => "\"Original\" نام اصلی فایل ها را ذخیره میکند. \"Random\" یک نام تصادفی به هر تصویر اختصاص میدهد و \"Mixed\" ترکیبی از این دو است. ", + ], + "Thumb size" => [ + 0 => "اندازه بند انگشتی", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "تصاویر بند انگشتی با این اندازه نمایش داده میشوند.", + ], + "Medium size" => [ + 0 => "اندازه تصویر متوسط", + ], + "Height will be automatic calculated." => [ + 0 => "ارتقاع به صورت خودکار اندازه گیری میشود", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "برای اضافه کردن لوگو و یا هر چیزی در عکس های آپلود شده", + ], + "Warning: Can't write in %s" => [ + 0 => "خطا: قادر به نوشتن در %s نیست", + ], + "Watermark image" => [ + 0 => "تصویر واترمارک", + ], + "Watermark image to use. Must be a PNG." => [ + 0 => "تصویر مورد استفاده در واترمارک. حتما png باشد", + ], + "Watermark position" => [ + 0 => "مکان قرار گیری واترمارک", + ], + "left top" => [ + 0 => "بالا چپ", + ], + "left center" => [ + 0 => "مرکز چپ", + ], + "left bottom" => [ + 0 => "چپ پایین", + ], + "center top" => [ + 0 => "وسط بالا", + ], + "center center" => [ + 0 => "وسط وسط", + ], + "center bottom" => [ + 0 => "وسط پایین", + ], + "right top" => [ + 0 => "بالا راست", + ], + "right center" => [ + 0 => "راست مرکز", + ], + "right bottom" => [ + 0 => "پایین راست", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "مربوط به مکان قرارگیری تصویر واترمارک. اولی افقی و دومی عمودی است", + ], + "Watermark margin" => [ + 0 => "فاصله واترمارک", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "قراردادن فاصل بین انتهای تصویر و محل قرار گیری واترمارک", + ], + "Watermark opacity" => [ + 0 => "شفافیت واترمارک", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "شفافیت نمایش واترمارک در تصاویر. بین 0 تا 100", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "توجه: حذف یک دسته بندی تصاویر مربوط به آن دسته بندی را حذف نمیکند.", + ], + "Edit category" => [ + 0 => "ویرایش دسته بندی", + ], + "Enable signups" => [ + 0 => "فعالسازی عضویت", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "برای فعالسازی عضویت کاربران جدید این گزینه را فعال کنید", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "بلوکه کردن آپلود تصاویر از یک آیپی خاص هنگامی است که سیستم تشخیص حملات از یک آیپی را میدهد. این تنظیم بر مدیریت سایت تاثیری ندارد.", + ], + "Notify to email" => [ + 0 => "ارسال ایمیل", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "اگر فعال باشد سیستم در هنگام حملات برای شما ایمیل ارسال میکند", + ], + "Minute limit" => [ + 0 => "محدودیت آپلود در دقیقه", + ], + "Hourly limit" => [ + 0 => "محدودیت آپلود در ساعت", + ], + "Daily limit" => [ + 0 => "محدودیت آپلود در روز", + ], + "Weekly limit" => [ + 0 => "محدودیت آپلود در هفته", + ], + "Monthly limit" => [ + 0 => "محدودیت آپلود در ماه", + ], + "Show not safe content in listings" => [ + 0 => "نمایش محتوای کنترل نشده در لیست محتوا", + ], + "Show banners in not safe content" => [ + 0 => "نمایش بنر ها در مطالب کنترل نشده", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "برای نمایش بنر ها در محتوا های کنترل نشده این گزینه را فعال کنید", + ], + "Show not safe content in random mode" => [ + 0 => "نمایش محتوای کنترل نشده در نمایشگر تصادفی", + ], + "List items per page" => [ + 0 => "نمایش آیتم ها در هر صفحه", + ], + "How many items should be displayed per page listing." => [ + 0 => "چه تعداد تصویر در هر صفحه نمایش داده شود", + ], + "List pagination mode" => [ + 0 => "حالت نمایش محتوا", + ], + "Endless scrolling" => [ + 0 => "خزیدن نا محدود", + ], + "Classic pagination" => [ + 0 => "نمایش شماره صفحات", + ], + "What pagination method should be used." => [ + 0 => "آنچه نمایش صفحات به آن صورت است", + ], + "Image listing size" => [ + 0 => "اندازه لیست تصاویر", + ], + "Fluid" => [ + 0 => "روان", + ], + "Fixed" => [ + 0 => "فیکس شده", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "هر دو روش از عرض فیکس شده استفاده میکنند ولی در حالت روان ارتفاع ها متغییر است", + ], + "Put your themes in the %s folder" => [ + 0 => "قالب هایتان را در پوشه %s قرار دهید.", + ], + "Tone" => [ + 0 => "رنگ قالب", + ], + "Light" => [ + 0 => "روشن", + ], + "Dark" => [ + 0 => "سیاه", + ], + "Enable vector logo" => [ + 0 => "فعالسازی لوگو برداری", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "برای نمایش لوگو با کیفیت بالا لوگو برداری را فعال کنید", + ], + "Vector logo image" => [ + 0 => "تصویر لوگو برداری", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "نسخه ی برداری لوگو وبسایت شما در فرمت svg", + ], + "Raster logo image" => [ + 0 => "لوگو اصلی سایت", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "لوگو اصلی وبسایت شما در فرمت png", + ], + "Favicon image" => [ + 0 => "تصویر فاو آیکون", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "تصویر فاو آیکون باید ارتفاع و عرض یکسان داشته باشد.", + ], + "Enable download button" => [ + 0 => "فعالسازی دکمه دانلود", + ], + "Enable this if you want to show the image download button." => [ + 0 => "برای نمایش دکمه دانلود تصاویر این گزینه را فعال کنید", + ], + "Not safe content checkbox in uploader" => [ + 0 => "چک باکس محتوای نا امن در آپلودر", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "برای نمایش چک باکس به جهت علامت دار شدن محتوای کنترل نشده این گزینه را فعال کنید", + ], + "Custom CSS code" => [ + 0 => "کد css شخصی", + ], + "Custom JS code" => [ + 0 => "جاوا اسکریپت شخصی", + ], + "Here you can set the codes for the predefined ad spaces." => [ + 0 => "اینجا میتوانید کد های تبلیغاتی را برای مکان های از پیش تعیین شده قرار دهید.", + ], + "Before cover (homepage)" => [ + 0 => "قبل از کاور ( صفحه اصلی )", + ], + "After cover (homepage)" => [ + 0 => "بعد از کاور ( صفحه اصلی )", + ], + "After listing (homepage)" => [ + 0 => "بعد از تصاویر ( صفحه اصلی)", + ], + "Before pagination" => [ + 0 => "قبل از شمارنده صفحه", + ], + "After pagination" => [ + 0 => "بعد از شماره صفحات", + ], + "Content (image and album)" => [ + 0 => "مطالب ( تصاویر و آلبوم ها )", + ], + "Tab about column" => [ + 0 => "سربرگ درباره ", + ], + "Before comments" => [ + 0 => "قبل از نظرات", + ], + "Image page" => [ + 0 => "صفحه تصاویر", + ], + "Inside viewer top (image page)" => [ + 0 => "بالا درون نمایشگر ( صفحه تصاویر )", + ], + "Expected banner size 728x90" => [ + 0 => "سایز پیشنهادی 728*90", + ], + "Inside viewer foot (image page)" => [ + 0 => "پایین درون نمایشگر (صفحه تصاویر)", + ], + "After image viewer (image page)" => [ + 0 => "بعد از نمایشگر تصاویر ( صفحه تصاویر )", + ], + "Before header (image page)" => [ + 0 => "قبل از سربرگ ( صفحه تصاویر )", + ], + "After header (image page)" => [ + 0 => "بعد از سربرگ ( صفحه تصاویر )", + ], + "Footer (image page)" => [ + 0 => "پاورقی ( صفحه تصاویر)", + ], + "Album page" => [ + 0 => "صفحه آلبوم", + ], + "Before header (album page)" => [ + 0 => "قبل از سربرگ ( صفحه آلبوم )", + ], + "After header (album page)" => [ + 0 => "بعد از سربرگ ( صفحه آلبوم )", + ], + "User profile page" => [ + 0 => "صفحه ی پروفایل کاربر", + ], + "After top (user profile)" => [ + 0 => "بعد از سربرگ ( صفحه ی کاربر )", + ], + "Before listing (user profile)" => [ + 0 => "قبل از لیست تصاویر ( صفحه پروفایل )", + ], + "Explore page" => [ + 0 => "صفحه پویش", + ], + "After top (explore page)" => [ + 0 => "بعد از سربرگ ( صفحه پویشگر تصاویر )", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "این کلید برای تبدیل شناسه عددی به شناسه ی ترکیبی حروف و اعداد استفاده میشود. این به صورت خودکار در هنگام نصب ساخته شده است.", + ], + "Error reporting" => [ + 0 => "گزارش خطا ها", + ], + "Enable this if you need to debug PHP errors." => [ + 0 => "برای مشاهده خطاهای برنامه نویسی و رفع اشکال این گزینه را فعال کنید.", + ], + "Default language" => [ + 0 => "زبان اصلی", + ], + "Default base language to use." => [ + 0 => "زبان اصلی مورد استفاده در نرم افزار.", + ], + "Auto language" => [ + 0 => "انتخاب خودکار زبان", + ], + "From name" => [ + 0 => "نام ", + ], + "Sender name for emails sent to users." => [ + 0 => "نام ارسال کننده برای ایمیل های ارسال شده به کاربران", + ], + "Email mode" => [ + 0 => "روش ارسال ایمیل", + ], + "How to send emails? SMTP recommended." => [ + 0 => "نحوه ی ارسال ایمیل ها؟ SMTP پیشنهاد میشود", + ], + "SMTP server and port" => [ + 0 => "پرت و سرور smtp", + ], + "SMTP server" => [ + 0 => "سرور SMTP", + ], + "SMTP username" => [ + 0 => "نام کاربری SMTP", + ], + "SMTP password" => [ + 0 => "رمز عبور SMTP", + ], + "SMTP security" => [ + 0 => "امنیت SMTP", + ], + "Unsecured" => [ + 0 => "غیر امن", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "شما برای این به یک <a href=\"https://developers.facebook.com/\" target=\"_blank\">اپ فیسبوک</a> نیاز دارید", + ], + "Facebook app id" => [ + 0 => "شناسه ی اپ فیسبوک", + ], + "Facebook app secret" => [ + 0 => "کد امنیتی اپ فیسبوک", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "شما به یک You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">اپ توییتر</a> برای این نیاز دارید", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "حساب توییتر", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "شما به یک You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> برای این نیاز دارید.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "شما به یک <a href=\"%s\" target=\"_blank\">کلید reCAPTCHA </a> برای این نیاز دارید", + ], + "reCAPTCHA public key" => [ + 0 => "reCAPTCHA public key", + ], + "reCAPTCHA private key" => [ + 0 => "reCAPTCHA private key", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "Comment code" => [ + 0 => "کد نظرات", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "دیکاس ، فیسبوک و یا هر چیزی که شما مایل باشید. این در قسمت نمایش تصویر استفاده میشود.", + ], + "Analytics code" => [ + 0 => "کد آمارگیر", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "گوگل آنالیتیکس یا هر چیز دیگری که شما مایلید. این در فوتر سایت نمایش داده میشود", + ], + "Enable this if you are using Cloudflare." => [ + 0 => "در صورتی که از cloudflare استفاده میکنید این گزینه را فعال کنید", + ], + "For documentation about the API check <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" => [ + 0 => "برای نمایش توضیحات درباره رابط برنامه نویسی میتوانید <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a> را مطالعه کنید", + ], + "API v1 key" => [ + 0 => "کلید api نسخه 1", + ], + "Use this key when using the API v1. <a href=\"https://chevereto.com/docs/api-v1\">Learn more</a>." => [ + 0 => "برای استفاده از رابط برنامه نویسی این کلید را به کار ببرید. <a href=\"https://chevereto.com/docs/api-v1\">بیشتر بدانید</a>.", + ], + "Save changes" => [ + 0 => "ذخیره تغییرات", + ], + "Check the errors to proceed." => [ + 0 => "برای ادامه خطا ها را رفع کنید", + ], + "Guest" => [ + 0 => "مهمان", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "واقعا نسبت به حذف این تصویر مطمئنید؟ این عمل غیرقابل بازگشت است.", + ], + "Delete image" => [ + 0 => "حذف تصویر", + ], + "Added to %a and categorized in %c" => [ + 0 => "افزوده شد به %a و دسته بندی شد در %c", + ], + "Added to %s" => [ + 0 => "افزوده شد به %s", + ], + "Uploaded to %s" => [ + 0 => "آپلود شده به %s", + ], + "Uploaded %s" => [ + 0 => "%s آپلود شد", + ], + "Share image" => [ + 0 => "اشتراک گذاری تصویر", + ], + "Album ID" => [ + 0 => "شناسه آلبوم", + ], + "In this album" => [ + 0 => "در این آلبوم", + ], + "Image links" => [ + 0 => "لینک های تصویر", + ], + "Image URL" => [ + 0 => "URL تصویر", + ], + "Image link" => [ + 0 => "لینک تصویر", + ], + "Thumbnail URL" => [ + 0 => "آدرس پیشنمایش", + ], + "Medium URL" => [ + 0 => "آدرس تصویر متوسط", + ], + "Image embed codes" => [ + 0 => "کد های پیوست تصویر", + ], + "Linked image" => [ + 0 => "تصاویر لینک شده", + ], + "Linked medium" => [ + 0 => "تصویر متوسط", + ], + "Linked thumbnail" => [ + 0 => "بند انگشتی", + ], + "Upload and share your images." => [ + 0 => "عکس های خود را آپلود و منتشر کنید", + ], + "Sign up to unlock all the features" => [ + 0 => "عضو شوید تا همه چیز را به رایگان داشته باشید!", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "مدیریت مطالب شما ، ساخت آلبوم خصوصی ، ویرایش پروفایل و ...", + ], + "Enter your password" => [ + 0 => "رمز عبور خود را وارد کنید", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "%s شما با موفقیت خارج شدید. به امید دیدار ", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "شما دیگر دسترسی برای این صفحه را ندارید یا این لینک منقضی شده است", + ], + "Results for" => [ + 0 => "نتایج برای", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "نسبت به حذف این کاربر مطمئن هستید؟ این عمل غیرقابل بازگشت است.", + ], + "Delete user" => [ + 0 => "حذف کاربر", + ], + "User ID" => [ + 0 => "شناسه کاربری", + ], + "Register date" => [ + 0 => "تاریخ عضویت", + ], + "Status" => [ + 0 => "وضعیت", + ], + "Valid" => [ + 0 => "فعال", + ], + "Banned" => [ + 0 => "اخراج شده", + ], + "Awaiting email" => [ + 0 => "در انتظار ایمیل", + ], + "Awaiting confirmation" => [ + 0 => "در انتظار تایید ایمیل", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "کاراکتر های %i تا %f <br> حروف ، اعداد و \"_\"", + ], + "Language" => [ + 0 => "زبان", + ], + "Timezone" => [ + 0 => "منطقه زمانی", + ], + "Current password" => [ + 0 => "رمز عبور فعلی", + ], + "Enter your current password" => [ + 0 => "رمز عبور فعلی خود را وارد کنید", + ], + "New password" => [ + 0 => "رمز عبور جدید", + ], + "Confirm new password" => [ + 0 => "تایید رمز عبور", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "جهت ورود با نام کاربری یا ایمیل باید یک پسورد تعیین کنید.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "این کاربر رمز عبوری ندارد. توسط فرم زیر برای کاربر رمز عبور تعیین کنید.", + ], + "Re-enter your password" => [ + 0 => "رمز عبور را دوباره وارد کنید", + ], + "loading" => [ + 0 => "در حال بارگذاری", + ], + "Upload new image" => [ + 0 => "بارگذاری تصویر جدید", + ], + "Delete existing image" => [ + 0 => "حذف تصاویر موجود", + ], + "This is your real name, not your username." => [ + 0 => "این نام اصلی شماست. نه نام کاربری شما", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "User has no connections." => [ + 0 => "کاربر هیچ اتصالاتی ندارد", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "حساب کاربری خود را با سرویس های خارجی لینک کنید تا بتوانید وارد شوید و مطالب را به اشتراک بگذارید.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "آیا نسبت به قطع اتصال %s از این حساب مطمئنید؟", + ], + "This account is connected to %s" => [ + 0 => "این کاربر به %s متصل شد.", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "آیا نسبت به قطع ارتباط %s به حساب خود مطمئنید؟", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "شما خارج خواهید شد و دیگر با %s قادر به ورود به این حساب نیستیدو", + ], + "Your account is connected to %s" => [ + 0 => "حساب شما به %s متصل شده است.", + ], + "disconnect" => [ + 0 => "قطع ارتباط", + ], + "Connect %s" => [ + 0 => "اتصال به %s", + ], + "Upload profile background" => [ + 0 => "بارگذاری پس زمینه ی پروفایل", + ], + "Change background" => [ + 0 => "تغییر پس زمینه", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "پس زمینه ی پروفایل شما حذف میشود. این عمل غیر قابل بازگشت است. مطمئن هستید؟", + ], + "Delete background" => [ + 0 => "حذف پس زمینه", + ], + "Edit profile" => [ + 0 => "ویرایش پروفایل", + ], + "You must enter the album name." => [ + 0 => "شما باید نام آلبوم را وارد کنید", + ], + "Confirm" => [ + 0 => "تایید", + ], + "Select existing album" => [ + 0 => "انتخاب یک آلبوم", + ], + "Please select a valid image file type." => [ + 0 => "لطفا یک فایل قابل قبول انتخاب کنید (تصویر)", + ], + "Please select a picture of at most %s size." => [ + 0 => "لطفا یک تصویر با حداکثر حجم %s انتخاب کنید", + ], + "Profile image updated." => [ + 0 => "تصویر پروفایل با موفقیت به روز شد.", + ], + "Profile background image updated." => [ + 0 => "تصویر پس زمینه با موفقیت به روز شد.", + ], + "Profile background image deleted." => [ + 0 => "تصویر پس زمینه با موفقیت حذف شد", + ], + "Error deleting profile background image." => [ + 0 => "خطا در هنگام حذف تصویر پس زمینه.", + ], + "File too big." => [ + 0 => "فایل بسیار بزرگ است.", + ], + "Some files couldn't be added" => [ + 0 => "بعضی فایل ها امکان اضافه شدن را ندارند.", + ], + "Image edited successfully." => [ + 0 => "تصویر با موفقیت ویرایش شد", + ], + "Album edited successfully." => [ + 0 => "آلبوم با موفقیت ویرایش شد.", + ], + "The content has been moved." => [ + 0 => "محتوا منتقل شده است.", + ], + "Unselect" => [ + 0 => "عدم انتخاب", + ], + "The content has been edited." => [ + 0 => "محتوا با موفقیت ویرایش شد.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "تمامی تغییراتی که اعمال کرده ایید در صورت ادامه از بین میروند", + ], + "Changes saved successfully." => [ + 0 => "تنظیمات با موفقیت ذخیره شدند.", + ], + "Go back to form" => [ + 0 => "بازگشت به فرم", + ], + "continue anyway" => [ + 0 => "ادامه در هر صورت", + ], + "Saving" => [ + 0 => "در حال ذخیره", + ], + "Sending" => [ + 0 => "در حال ارسال", + ], + "Confirm action" => [ + 0 => "تایید", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/fi.po.cache.php b/app/.cache/languages/fi.po.cache.php new file mode 100644 index 0000000..cfb9c52 --- /dev/null +++ b/app/.cache/languages/fi.po.cache.php @@ -0,0 +1,3756 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-11-27 19:52+0000', + 'PO-Revision-Date' => '2020-11-27 19:52+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'fi', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Virheellinen sähköpostiosoite", + ], + "Invalid username" => [ + 0 => "Virheellinen käyttäjänimi", + ], + "Invalid password" => [ + 0 => "Virheellinen salasana", + ], + "Invalid website mode" => [ + 0 => "Virheellinen verkkosivuston tila", + ], + "From email address" => [ + 0 => "Sähköpostiosoitteesta", + ], + "Sender email for emails sent to users." => [ + 0 => "Käyttäjille viestejä lähettävän sähköpostin osoite", + ], + "Incoming email address" => [ + 0 => "Sisääntulevan postin sähköpostiosoite", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Vastaanottaja yhteydenottolomakkeelle ja järjestelmähälytyksille.", + ], + "Website mode" => [ + 0 => "Verkkosivusto", + ], + "You can switch the website mode anytime." => [ + 0 => "Voit vaihtaa verkkosivun tilaa koska vain.", + ], + "Community" => [ + 0 => "Yhteisö", + ], + "Personal" => [ + 0 => "Henkilökohtainen", + ], + "Installed version is v%s" => [ + 0 => "Asennettu versio v%s", + ], + "Can't connect to %s" => [ + 0 => "Ei voida yhdistää %s", + ], + "Last available release is v%s" => [ + 0 => "Viimeisin saatavilla oleva versio on v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Päivitys vaaditaan, siirrytään lataukseen", + ], + "No update needed" => [ + 0 => "Ei päivityksiä saatavilla", + ], + "System files already up to date" => [ + 0 => "Järjestelmän tiedostot ovat ajantasalla", + ], + "Starting v%s download" => [ + 0 => "Aloitetaan v%s lataus", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Ladattu v%s, siirrytään purkamaan tiedosto", + ], + "Attempting to extract v%s" => [ + 0 => "Yritetään purkaan v%s", + ], + "Extraction completed" => [ + 0 => "Purkaminen valmis", + ], + "Proceding to install the update" => [ + 0 => "Siirrytään asentamaan päivitys", + ], + "Update failed" => [ + 0 => "Päivitys epäonnistui", + ], + "Update in progress" => [ + 0 => "Päivitys käynnissä", + ], + "Missing %s file" => [ + 0 => "Puuttuva %s tiedosto", + ], + "Invalid license info" => [ + 0 => "Virheellinen lisenssitieto", + ], + "Invalid license key" => [ + 0 => "Virheellinen lisenssiavain", + ], + "Can't save file" => [ + 0 => "Tiedoston tallennus ei onnistunut", + ], + "Can't download %s" => [ + 0 => "Ei voida ladata %s", + ], + "Can't extract %s" => [ + 0 => "Ei voida purkaa %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Ei voida luoda %s hakemistoa - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Ei voida ladata tiedostoa %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Tarkista virheet jatkaaksesi.", + ], + "You must enter the album name." => [ + 0 => "Sinun täytyy antaa albumille nimi.", + ], + "Confirm" => [ + 0 => "Hyväksy", + ], + "The content has been approved." => [ + 0 => "Sisältö on hyväksytty.", + ], + "Select existing album" => [ + 0 => "Valitse olemassa oleva albumi", + ], + "An error occurred. Please try again later." => [ + 0 => "Virhe havaittu. Yritä myöhemmin uudelleen.", + ], + "Please select a valid image file type." => [ + 0 => "Valitsethan oikean tyyppisen kuvan.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Valitse kuva, joka on enintään %s kokoinen.", + ], + "Profile image updated." => [ + 0 => "Profiilin kuva päivitetty.", + ], + "Profile background image updated." => [ + 0 => "Profiilin taustakuva päivitetty.", + ], + "Profile background image deleted." => [ + 0 => "Profiilin taustakuva poistettu.", + ], + "Error deleting profile background image." => [ + 0 => "Virhe poistaessa profiilin taustakuvaa.", + ], + "Passwords don't match" => [ + 0 => "Salasanat eivät täsmää", + ], + "Update available v%s" => [ + 0 => "Päivitys saatavilla v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Päivitys saatavilla järjestelmääsi. Voit automaattisesti ladata ja asentaa sen tai mennä %s ladataksesi tiedoston.", + ], + "The release notes for this update are:" => [ + 0 => "Muutoshistoria päivitykselle ovat:", + ], + "Update now" => [ + 0 => "Päivitä nyt", + ], + "or" => [ + 0 => "tai", + ], + "cancel" => [ + 0 => "peruuta", + ], + "This website is running latest %s version" => [ + 0 => "Sivusto käyttää viimeisintä %s versiota", + ], + "loading" => [ + 0 => "ladataan", + ], + "Toggle select" => [ + 0 => "Vaihda valinta", + ], + "Like" => [ + 0 => "Tykkäys", + ], + "Toggle flag" => [ + 0 => "Vaihda lippu", + ], + "Edit" => [ + 0 => "Muokkaa", + ], + "Album" => [ + 0 => "Albumi", + 1 => "Albumit", + ], + "Approve" => [ + 0 => "Hyväksy", + ], + "Delete" => [ + 0 => "Poista", + ], + "Close" => [ + 0 => "Sulje", + ], + "Previous" => [ + 0 => "Edellinen", + ], + "Next" => [ + 0 => "Seuraava", + ], + "Clipboard image" => [ + 0 => "Leikepöydän kuva", + ], + "File too big." => [ + 0 => "Tiedosto on liian suuri.", + ], + "Invalid or unsupported file format." => [ + 0 => "Virheellinen tai ei tuettu tiedostomuoto.", + ], + "Some files couldn't be added" => [ + 0 => "Joitakin tiedostoja ei voitu lisätä", + ], + "image" => [ + 0 => "kuva", + 1 => "kuvaa", + ], + "%s's Albums" => [ + 0 => "Käyttäjän %s albumit", + ], + "Image edited successfully." => [ + 0 => "Kuva muokattu onnistuneesti.", + ], + "private" => [ + 0 => "yksityinen", + ], + "Album edited successfully." => [ + 0 => "Albumi muokattu onnistuneesti.", + ], + "Invalid URL key." => [ + 0 => "Virheellinen osoite avain.", + ], + "Category URL key already being used." => [ + 0 => "Kategoria osoite avain jo käytössä.", + ], + "Category successfully deleted." => [ + 0 => "Kategoria onnistuneesti poistettu.", + ], + "Category %s added." => [ + 0 => "%s kategoria lisätty.", + ], + "Invalid expiration date." => [ + 0 => "Virheellinen päättymispäivä.", + ], + "IP %s already banned." => [ + 0 => "IP-osoite %s on jo estetty.", + ], + "IP %s banned." => [ + 0 => "IP-osoite %s estetty.", + ], + "IP ban successfully deleted." => [ + 0 => "IP esto onnistuneesti poistettu.", + ], + "Please fill all the required fields." => [ + 0 => "Täytä kaikki vaadittavat kentät.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Virheellinen tallennustilan kapasiteettiarvo. Tarkista, että arvo on oikeassa muodossa.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Tallennustila ei voi olla matalampi kuin se nykyinen käyttö (%s).", + ], + "Invalid URL." => [ + 0 => "Virheellinen osoite.", + ], + "Storage successfully edited." => [ + 0 => "Talennustilan muokkaaminen onnistunut.", + ], + "User added successfully." => [ + 0 => "Käyttäjä lisätty onnistuneesti.", + ], + "The content has been deleted." => [ + 0 => "Sisältö poistettu", + ], + "The content has been moved." => [ + 0 => "Sisältö siirretty", + ], + "Select" => [ + 0 => "Valitse", + ], + "Unselect" => [ + 0 => "Poista valinta", + ], + "The content has been edited." => [ + 0 => "Sisältö muokattu", + ], + "Select number of threads" => [ + 0 => "Valitse ketjujen määrä", + ], + "Import job ID %s is being processed now" => [ + 0 => "Tuontityö ID %s on nyt käsittelyssä", + ], + "Import ID %s removed" => [ + 0 => "Tuontityö ID %s poistettiin", + ], + "Spam detected" => [ + 0 => "Spammia havaittu", + ], + "album" => [ + 0 => "albumi", + 1 => "albumia", + ], + "Untitled" => [ + 0 => "Nimetön", + ], + "%s's images" => [ + 0 => "Käyttäjän %s kuvat", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Huomio: Tämä sisältö on salainen, mutta kaikki linkin tietävät pääsevät katsomaan sitä.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Huomio: Tämä sisältö on salasanalla suojattu. Jaa myös salasana jakaaksesi sisältöä muiden kanssa.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Huomio: Tämä materiaali on yksityinen. Vaihda yksityisyysasetus \"julkinen\" jakaaksesi.", + ], + "Private" => [ + 0 => "Yksityinen", + ], + "Public" => [ + 0 => "Julkinen", + ], + "Me" => [ + 0 => "Minä", + ], + "Link" => [ + 0 => "Linkki", + ], + "Password" => [ + 0 => "Salasana", + ], + "view" => [ + 0 => "näyttökerta", + 1 => "näyttökertaa", + ], + "After %n %t" => [ + 0 => "Jälkeen %n %t", + ], + "minute" => [ + 0 => "minuutti", + 1 => "minuuttia", + ], + "hour" => [ + 0 => "tunti", + 1 => "tuntia", + ], + "day" => [ + 0 => "päivä", + 1 => "päivää", + ], + "week" => [ + 0 => "viikko", + 1 => "viikkoa", + ], + "month" => [ + 0 => "kuukausi", + 1 => "kuukautta", + ], + "year" => [ + 0 => "vuosi", + 1 => "vuotta", + ], + "Don't autodelete" => [ + 0 => "Älä poista automaattisesti", + ], + "Duplicated upload" => [ + 0 => "Kaksinkertainen lataus", + ], + "Private upload" => [ + 0 => "Yksityinen lähetys", + ], + "like" => [ + 0 => "tykkäys", + 1 => "tykkäystä", + ], + "Recent" => [ + 0 => "Viimeaikainen", + ], + "Trending" => [ + 0 => "Nousussa", + ], + "Top users" => [ + 0 => "Suosituimmat käyttäjät", + ], + "Most recent" => [ + 0 => "Viimeisimmät", + ], + "Oldest" => [ + 0 => "Vanhimmat", + ], + "Most viewed" => [ + 0 => "Katsotuimmat", + ], + "Popular" => [ + 0 => "Suosittu", + ], + "Most liked" => [ + 0 => "Suosituimmat", + ], + "Explore" => [ + 0 => "Selaa", + ], + "Animated" => [ + 0 => "Animoitu", + ], + "Search" => [ + 0 => "Etsi", + ], + "People" => [ + 0 => "Ihmiset", + ], + "Image" => [ + 0 => "Kuva", + 1 => "Kuvat", + ], + "User" => [ + 0 => "Käyttäjä", + 1 => "Käyttäjät", + ], + "adult" => [ + 0 => "aikuinen", + ], + "teen" => [ + 0 => "nuori", + ], + "Content of type %s is forbidden" => [ + 0 => "Sisältö tyypiltään %s on kiellettyä", + ], + "Can't create %s destination dir" => [ + 0 => "Kohde hakemistoa %s ei voida luoda", + ], + "Can't open %s for writing" => [ + 0 => "%s ei voida avata kirjoittaakseen sinne", + ], + "Internal" => [ + 0 => "Sisäinen", + ], + "Can't insert storage." => [ + 0 => "Ei voida lisätä ulkoista tallennustilaa.", + ], + "Can't update storage details." => [ + 0 => "Ei voida päivittää tallennustilan tietoja.", + ], + "requires %s" => [ + 0 => "tarvitsee %s", + ], + "Unlimited" => [ + 0 => "Rajoittamaton", + ], + "used" => [ + 0 => "käytetty", + ], + "Private profile" => [ + 0 => "Yksityinen profiili", + ], + "second" => [ + 0 => "sekunti", + 1 => "sekuntia", + ], + "%s ago" => [ + 0 => "%s sitten", + ], + "moments ago" => [ + 0 => "hetki sitten", + ], + "Dashboard" => [ + 0 => "Hallintapaneeli", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Päivitys saatavilla. Mene %s ladataksesi ja asentaaksesi se.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Järjestelmän tietokanta on vanhentunut. Sinun tulee käyttää <a href=\"%s\">päivitystyökalua</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Sivusto on huoltotilassa. Ottaaksesi huoltotilan pois, mene <a href=\"%s\">Hallintapaneeli > Asetukset</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Sinun tulee ottaa PHP virheiden raportointi pois käytöstä tuotantoympäristössä. Mene <a href='%s'>Järjestelmän asetukset</a> palauttaaksesi tämän asetuksen.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Et ole muuttanu oletussähköpostiasetuksia. Mene <a href='%s'>Sähköpostiasetukset</a> muuttaaksesi ne.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Päivitys saatavilla sinun Chevereto sivustoon.", + ], + "admin dashboard" => [ + 0 => "hallintapaneeli", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Voit päivittää järjestelmän automaattisesti %a tai ladata sen %s ja asentaa käsin.", + ], + "view on %s" => [ + 0 => "näyttöä %s", + ], + "cookie policy" => [ + 0 => "Evästekäytäntö", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Käytämme omia ja kolmannen osapuolen evästeitä parantaaksemme selainkokemustasi ja palveluitamme. Jos jatkat verkkosivustomme käyttöä, ymmärrät, että hyväksyt tämän %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Ymmärrän", + ], + "Forgot password?" => [ + 0 => "Salasana unohtunut?", + ], + "Reset password" => [ + 0 => "Nollaa salasana", + ], + "Resend account activation" => [ + 0 => "Lähetä käyttäjätunnuksen aktivointi uudelleen", + ], + "Add your email address" => [ + 0 => "Lisää sähköpostisi", + ], + "Email changed" => [ + 0 => "Sähköposti muutettu", + ], + "%s says you are a robot" => [ + 0 => "%s sanoo, että olet robotti", + ], + "Invalid Username/Email" => [ + 0 => "Virheellinen käyttäjätunnus/sähköpostiosoite", + ], + "User doesn't have an email." => [ + 0 => "Käyttäjällä ei ole sähköpostia.", + ], + "Request denied" => [ + 0 => "Pyyntö hylätty", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Käyttäjätunnus tulee aktivoida, jotta voit käyttää tätä ominaisuutta", + ], + "Account already activated" => [ + 0 => "Käyttäjätunnus on jo aktivoitu", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Voit pyytää lähetystä vasta 15 minuutin kuluttua sähköpostiisi. Kokeile myöhemmin uudelleen.", + ], + "Reset your password at %s" => [ + 0 => "Nollaa salasanasi palvelussa %s", + ], + "Confirmation required at %s" => [ + 0 => "Varmistus tarvitaan palvelusta %s", + ], + "Welcome to %s" => [ + 0 => "Tervetuloa palveluun %s", + ], + "Email already being used" => [ + 0 => "Sähköpostiosoite on jo käytössä", + ], + "Password required" => [ + 0 => "Salasana vaaditaan", + ], + "Share" => [ + 0 => "Jaa", + ], + "Embed codes" => [ + 0 => "Upotuskoodit", + ], + "Full info" => [ + 0 => "Kaikki tiedot", + ], + "%a album hosted in %w" => [ + 0 => "%a albumi ylläpidetty %w", + ], + "Stats" => [ + 0 => "Tilastot", + ], + "Images" => [ + 0 => "Kuvat", + ], + "Albums" => [ + 0 => "Albumit", + ], + "Users" => [ + 0 => "Käyttäjät", + ], + "Settings" => [ + 0 => "Asetukset", + ], + "Bulk importer" => [ + 0 => "Massatuonti", + ], + "Chevereto version" => [ + 0 => "Chevereto-versio", + ], + "install update" => [ + 0 => "asenna päivitys", + ], + "check for updates" => [ + 0 => "tarkista päivitykset", + ], + "Support" => [ + 0 => "Tuki", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Tarvitsetko apua? %s -sivustolta saat apua nopeasti.", + ], + "PHP version" => [ + 0 => "PHP-versio", + ], + "Server" => [ + 0 => "Palvelin", + ], + "MySQL version" => [ + 0 => "MySQL-versio", + ], + "MySQL server info" => [ + 0 => "MySQL-palvelimen tiedot", + ], + "GD Library" => [ + 0 => "GD-kirjasto", + ], + "File uploads" => [ + 0 => "Tiedostojen lähetys", + ], + "Enabled" => [ + 0 => "Käytössä", + ], + "Disabled" => [ + 0 => "Pois käytöstä", + ], + "Max. upload file size" => [ + 0 => "Suurin lähetettävän tiedoston koko", + ], + "Max. post size" => [ + 0 => "Suurin lähetyksen koko", + ], + "Max. execution time" => [ + 0 => "Suurin suoritusaika", + ], + "%d second" => [ + 0 => "%d sekunti", + 1 => "%d sekuntia", + ], + "Memory limit" => [ + 0 => "Muistirajoitus", + ], + "Rebuild stats" => [ + 0 => "Uudelleenrakenna statistiikka", + ], + "Connecting IP" => [ + 0 => "Yhdistetään IP", + ], + "Not your IP?" => [ + 0 => "Ei sinun IP?", + ], + "Links" => [ + 0 => "Linkit", + ], + "Collaboration" => [ + 0 => "Yhteistyö", + ], + "Documentation" => [ + 0 => "Dokumentaatio", + ], + "Changelog" => [ + 0 => "Muutoslogi", + ], + "Bug tracking" => [ + 0 => "Virheenseuranta", + ], + "Website" => [ + 0 => "Verkkosivusto", + ], + "Content" => [ + 0 => "Sisältö", + ], + "Pages" => [ + 0 => "Sivut", + ], + "Listings" => [ + 0 => "Listaus", + ], + "Image upload" => [ + 0 => "Kuvan lähetys", + ], + "Categories" => [ + 0 => "Kategoriat", + ], + "Consent screen" => [ + 0 => "Ehtojen hyväksymisikkuna", + ], + "Flood protection" => [ + 0 => "Spämmiesto", + ], + "Theme" => [ + 0 => "Teema", + ], + "Homepage" => [ + 0 => "Etusivu", + ], + "Banners" => [ + 0 => "Bannerit", + ], + "System" => [ + 0 => "Järjestelmä", + ], + "Routing" => [ + 0 => "Ohjaus", + ], + "Languages" => [ + 0 => "Kielet", + ], + "External storage" => [ + 0 => "Ulkoinen tallennustila", + ], + "Email" => [ + 0 => "Sähköposti", + ], + "Social networks" => [ + 0 => "Sosiaaliset verkostot", + ], + "External services" => [ + 0 => "Ulkoiset palvelut", + ], + "IP bans" => [ + 0 => "IP-estot", + ], + "Additional settings" => [ + 0 => "Lisäasetukset", + ], + "Tools" => [ + 0 => "Työkalut", + ], + "Can't delete all homepage cover images" => [ + 0 => "Kotisivun kansikuvien poisto ei onnistu", + ], + "Homepage cover image deleted" => [ + 0 => "Kotisivun kansikuva poistettu", + ], + "Local" => [ + 0 => "Paikallinen", + ], + "External" => [ + 0 => "Ulkoinen", + ], + "All" => [ + 0 => "Kaikki", + ], + "search content" => [ + 0 => "etsi sisältöä", + ], + "Add page" => [ + 0 => "Lisää sivu", + ], + "Edit page ID %s" => [ + 0 => "Muokkaa sivun %s ID:tä", + ], + "The page has been added successfully." => [ + 0 => "Sivu lisätty onnistuneesti.", + ], + "The page has been deleted." => [ + 0 => "Sivu on poistettu.", + ], + "homepage" => [ + 0 => "kotisivu", + ], + "Before main title (%s)" => [ + 0 => "Ennen pääotsikkoa (%s)", + ], + "After call to action (%s)" => [ + 0 => "Toimintapainikkeen jälkeen (%s)", + ], + "After cover (%s)" => [ + 0 => "Kannen jälkeen (%s)", + ], + "After listing (%s)" => [ + 0 => "Listauksen jälkeen (%s)", + ], + "Before pagination" => [ + 0 => "Ennen sivunumerointia", + ], + "After pagination" => [ + 0 => "Sivunumeroinnin jälkeen", + ], + "Content (image and album)" => [ + 0 => "Sisältö (kuva ja albumi)", + ], + "Tab about column" => [ + 0 => "Tietoa välilehden sarake", + ], + "Before comments" => [ + 0 => "Ennen kommentteja", + ], + "Image page" => [ + 0 => "Kuvasivu", + ], + "Inside viewer top (image page)" => [ + 0 => "Katselijan sisällä keskellä (kuvasivu)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Katselijan sisällä alhaalla (kuvasivu)", + ], + "After image viewer (image page)" => [ + 0 => "Katselijan jälkeen (kuvasivu)", + ], + "Before header (image page)" => [ + 0 => "Ennen headeria (kuvasivu)", + ], + "After header (image page)" => [ + 0 => "Headerin jälkeen (kuvasivu)", + ], + "Footer (image page)" => [ + 0 => "Footeri (kuvasivu)", + ], + "Album page" => [ + 0 => "Albumisivu", + ], + "Before header (album page)" => [ + 0 => "Ennen headeria (albumisivu)", + ], + "After header (album page)" => [ + 0 => "Headerin jälkeen (albumisivu)", + ], + "User profile page" => [ + 0 => "Käyttäjän profiili", + ], + "After top (user profile)" => [ + 0 => "Yläreunan jälkeen (käyttäjän profiili)", + ], + "Before listing (user profile)" => [ + 0 => "Ennen listausta (käyttäjän profiili)", + ], + "Explore page" => [ + 0 => "Selaa sivu", + ], + "After top (explore page)" => [ + 0 => "Yläreunan jälkeen (selaa sivu)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Virheellinen verkkosivuston nimi", + ], + "Invalid language" => [ + 0 => "Virheellinen kieli", + ], + "Invalid timezone" => [ + 0 => "Virheellinen aikavyöhyke", + ], + "Invalid value: %s" => [ + 0 => "Virheellinen arvo: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Virheellinen lähetysten tallennustila", + ], + "Invalid upload filenaming" => [ + 0 => "Virheellinen tiedostojen nimeämistapa", + ], + "Invalid thumb width" => [ + 0 => "Virheellinen kuvakkeen leveys", + ], + "Invalid thumb height" => [ + 0 => "Virheellinen kuvakkeen korkeus", + ], + "Invalid medium size" => [ + 0 => "Virheellinen keskikokoisen koko", + ], + "Invalid watermark percentage" => [ + 0 => "Virheellinen vesileiman prosentti", + ], + "Invalid watermark opacity" => [ + 0 => "Virheellinen vesileiman läpinäkyvyys", + ], + "Invalid theme" => [ + 0 => "Virheellinen teema", + ], + "Invalid value" => [ + 0 => "Virheellinen arvo", + ], + "Invalid theme tone" => [ + 0 => "Virheellinen teeman sävy", + ], + "Invalid theme main color" => [ + 0 => "Virheellinen teeman pääväri", + ], + "Invalid theme top bar button color" => [ + 0 => "Virheellinen teeman yläpalkin painikkeen väri", + ], + "Invalid theme image listing size" => [ + 0 => "Virheellinen teeman kuvalistauksen koko", + ], + "Invalid user id" => [ + 0 => "Virheellinen käyttäjätunnus", + ], + "Invalid email mode" => [ + 0 => "Virheellinen sähköposti-tila", + ], + "Invalid SMTP port" => [ + 0 => "Virheellinen SMTP-portti", + ], + "Invalid SMTP security" => [ + 0 => "Virheellinen SMTP-turvallisuus", + ], + "Invalid personal mode user ID" => [ + 0 => "Virheellinen henkilökohtaisen tilan käyttäjä ID", + ], + "Invalid or reserved route" => [ + 0 => "Virheellinen tai varattu ohjaus", + ], + "Invalid website privacy mode" => [ + 0 => "Virheellinen verkkosivun yksityinen tila", + ], + "Invalid website content privacy mode" => [ + 0 => "Virheellinen verkkosivun sisällön salaus tila", + ], + "Invalid homepage style" => [ + 0 => "Virheellinen etusivun tyyli", + ], + "Invalid homepage call to action button color" => [ + 0 => "Virheellinen etusivun painikkeen väri", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Virheellinen kotisivun toiminnallisuus", + ], + "Invalid title" => [ + 0 => "Virheellinen otsikko", + ], + "Invalid status" => [ + 0 => "Virheellinen tila", + ], + "Invalid type" => [ + 0 => "Virheellinen tyyppi", + ], + "Invalid visibility" => [ + 0 => "Virheellinen näkyvyys", + ], + "Invalid internal type" => [ + 0 => "Virheellinen sisäinen tyyppi", + ], + "Invalid target attribute" => [ + 0 => "Virheellinen kohdemääritys", + ], + "Invalid rel attribute" => [ + 0 => "Virheellinen suhteellinen määritys", + ], + "Invalid icon" => [ + 0 => "Virheellinen ikoni", + ], + "Invalid URL key" => [ + 0 => "Virheellinen URL avain", + ], + "Invalid file path" => [ + 0 => "Virheellinen tiedostopolku", + ], + "Invalid link URL" => [ + 0 => "Virheellinen linkin URL", + ], + "Invalid user minimum age" => [ + 0 => "Virheellinen käyttäjän minimi ikä", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Vain aakkosnumeerisia, tavuviiva ja alaviivat ovat sallittuja", + ], + "Invalid URL" => [ + 0 => "Virheellinen osoite", + ], + "Routes can't be the same" => [ + 0 => "Ohjaukset ei voi olla samoja", + ], + "Invalid upload image path" => [ + 0 => "Virheellinen kuvan lähetyskansio", + ], + "Invalid call to action URL" => [ + 0 => "Virheellinen call to action -osoite", + ], + "Max. allowed %s" => [ + 0 => "Suurin sallittu %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Ei voida uudelleenohjata %m olemassa olevaan kansioon (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Ei voida uudelleenohjata %m olemassa olevaan ohjaukseen (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "%m ei voida uudelleenohjata %r (käyttäjätunnuksen törmäys)", + ], + "Invalid SMTP server" => [ + 0 => "Virheellinen SMTP-palvelin", + ], + "Invalid SMTP username" => [ + 0 => "Virheellinen SMTP:n käyttäjänimi", + ], + "Invalid key" => [ + 0 => "Virheellinen avain", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "URL avain on jo käytössä toisella sivulla (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Tiedostopolku on jo käytössä toisella sivulla (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Sivun %s sisältöä ei voida tallentaa.", + ], + "Following" => [ + 0 => "Seurataan", + ], + "About" => [ + 0 => "Tietoa", + ], + "Image ID" => [ + 0 => "Kuvan tunniste", + ], + "Uploader IP" => [ + 0 => "Lähettäjän IP-osoite", + ], + "Ban IP" => [ + 0 => "Estä IP-osoite", + ], + "IP already banned" => [ + 0 => "IP-osoite jo estetty", + ], + "Upload date" => [ + 0 => "Lähetetty", + ], + "Image %i in %a album" => [ + 0 => "Kuva %i albumissa %a", + ], + "Image %i in %c category" => [ + 0 => "Kuva %i kategoriassa %c", + ], + "Image %i hosted in %w" => [ + 0 => "Kuva %i yläpidetty %w", + ], + "Direct links" => [ + 0 => "Suorat linkit", + ], + "Image link" => [ + 0 => "Kuvan linkki", + ], + "Image URL" => [ + 0 => "Kuvan osoite", + ], + "Thumbnail URL" => [ + 0 => "Kuvakkeen osoite", + ], + "Medium URL" => [ + 0 => "Keskikoon osoite", + ], + "Full image" => [ + 0 => "Koko kuva", + ], + "Full image (linked)" => [ + 0 => "Koko kuva (linkitetty)", + ], + "Medium image (linked)" => [ + 0 => "Keskikokoinen kuva (linkitetty)", + ], + "Thumbnail image (linked)" => [ + 0 => "Kuvakkeen kuva (linkitetty)", + ], + "Login needed" => [ + 0 => "Vaaditaan kirjautumista", + ], + "IP address already banned" => [ + 0 => "IP-osoite on jo estetty", + ], + "Missing values" => [ + 0 => "Puuttuva tieto", + ], + "Invalid role" => [ + 0 => "Virheellinen rooli", + ], + "Username already being used" => [ + 0 => "Käyttäjätunnus jo käytössä", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Anna salasana tai muu sosiaalisen verkoston yhteys ennen %s poistamista", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Anna sähköpostiosoite tai muu sosiaalisen verkoston yhteys ennen %s poistamista", + ], + "%s has been disconnected." => [ + 0 => "%s yhteys on katkastu.", + ], + "Test email from %s @ %t" => [ + 0 => "Testisähköposti %s @ %t", + ], + "This is just a test" => [ + 0 => "Tämä on vain testi", + ], + "Test email sent to %s." => [ + 0 => "Testisähköposti lähetetty osoitteeseen %s.", + ], + "Downloading %s data" => [ + 0 => "Ladataan %s tietoja", + ], + "User %s followed" => [ + 0 => "Seurataan käyttäjää %s", + ], + "User %s unfollowed" => [ + 0 => "Käyttäjän %s seuranta lopetettu", + ], + "Content liked" => [ + 0 => "Tykätty sisällöstä", + ], + "Content disliked" => [ + 0 => "Ei tykätty sisällöstä", + ], + "%u liked your %t %c" => [ + 0 => "%u tykkäsi sinun %t %c", + ], + "%u is now following you" => [ + 0 => "%u seuraa sinua", + ], + "A private user" => [ + 0 => "Yksityinen käyttäjä", + ], + "Wrong Username/Email password combination" => [ + 0 => "Väärä käyttäjätunnus tai salasana", + ], + "Sign in" => [ + 0 => "Kirjaudu sisään", + ], + "Moderate" => [ + 0 => "Valvonta", + ], + "Upload images" => [ + 0 => "Lataa kuvia", + ], + "Upload plugin" => [ + 0 => "Kuvien lataus liitännäinen", + ], + "Image search results for %s" => [ + 0 => "Kuvahaun tulokset %s", + ], + "Album search results for %s" => [ + 0 => "Albumihaun tulokset %s", + ], + "User search results for %s" => [ + 0 => "Käyttäjähaun tulokset %s", + ], + "Account" => [ + 0 => "Käyttäjätunnus", + ], + "Profile" => [ + 0 => "Profiili", + ], + "Linked accounts" => [ + 0 => "Linkitetyt tilit", + ], + "Invalid image expiration: %s" => [ + 0 => "Virheellinen kuvan vanheneminen: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Sähköposti lähetetty osoitteeseen %s aktivointi-ohjeiden kera", + ], + "Invalid name" => [ + 0 => "Virheellinen nimi", + ], + "Invalid website" => [ + 0 => "Virheellinen verkkosivu", + ], + "Wrong password" => [ + 0 => "Väärä salasana", + ], + "Use a new password" => [ + 0 => "Käytä uutta salasanaa", + ], + "Changes have been saved." => [ + 0 => "Muutokset tallennettu", + ], + "Password has been changed" => [ + 0 => "Salasana vaihdettu", + ], + "Password has been created." => [ + 0 => "Salasana on luotu.", + ], + "Wrong Username/Email values" => [ + 0 => "Väärä käyttäjätunnus/sähköposti", + ], + "Settings for %s" => [ + 0 => "Asetukset käyttäjälle %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Sinun on hyväksyttävä ehdot ja tietosuojakäytäntö", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Sinun tulee olla vähintään %s vuotta vanha käyttääksesi sivustoa.", + ], + "Create account" => [ + 0 => "Rekisteröidy", + ], + "Upload" => [ + 0 => "Lähetä", + ], + "%s's Images" => [ + 0 => "Käyttäjän %s kuvat", + ], + "Results for" => [ + 0 => "Tulokset haulle", + ], + "Liked by %s" => [ + 0 => "%s tykännyt", + ], + "Liked" => [ + 0 => "Tykätty", + ], + "Followers" => [ + 0 => "Seuraajat", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albumia %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) %w", + ], + "Discovery" => [ + 0 => "Löytö", + ], + "Advanced search" => [ + 0 => "Tarkennettu haku", + ], + "Random" => [ + 0 => "Satunnainen", + ], + "Notices (%s)" => [ + 0 => "Ilmoitukset (%s)", + ], + "Lights" => [ + 0 => "Valot", + ], + "Notifications" => [ + 0 => "Ilmoitukset", + ], + "You don't have notifications" => [ + 0 => "Sinulla ei ole yhtään ilmoituksia", + ], + "My Profile" => [ + 0 => "Profiilini", + ], + "Sign out" => [ + 0 => "Kirjaudu ulos", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Olemme vastaanottanut pyynnön muuttaa sähköpostiosoite <a href=\"%u\">%n</a> käyttäjätunnukselle %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Viedäksesi prosessin loppuun, sinun täytyy <a href=\"%s\">aktivoida sähköpostisi</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Vaihtoehtoisesti voit kopioida ja sijoittaa seuraavan linkin selaimeen: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Jos et tehnyt tätä, jätä viesti huomioimatta.", + ], + "This request was made from IP: %s" => [ + 0 => "Tämä pyyntö on tehty IP-osoitteesta: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Saimme pyynnön rekisteröidä %n käyttäjätunnus %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Viedäksesi prosessin loppuun, sinun täytyy <a href=\"%s\">aktivoida käyttäjätunnuksesi</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Saimme pyynnön nollata salasanasi käyttäjätunnukselle <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Nollataksesi salasanasi <a href=\"%s\">klikkaa tästä</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hei %n, tervetuloa palveluun %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Käyttäjätunnuksesi on nyt valmis ja voit siirtää kuvia, luoda albumeja sekä asettaa sisältöäsi yksityiseksi. Tutki myös muita mahtavia ominaisuuksia.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Muuten, täältä löytyy sinun upea profiilisivu: <a href=\"%u\">%n</a>. Anna mennä ja muokkaa sitä, se on sinun!", + ], + "Thank you for joining" => [ + 0 => "Kiitos liittymisestäsi", + ], + "This email was sent from %w %u" => [ + 0 => "Tämä sähköposti lähettiin sinulle palvelusta %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Raahaa ja tiputa tai liitä kuva tähän lähettääksesi sen", + ], + "Select the images to upload" => [ + 0 => "Valitse kuvat lähetettäväksi", + ], + "browse from your computer" => [ + 0 => "Selaa tietokoneeltasi", + ], + "add image URLs" => [ + 0 => "lisää kuvan osoite", + ], + "You can also %i or %u." => [ + 0 => "Voit myös %i tai %u.", + ], + "browse from your device" => [ + 0 => "selaa laitteesta", + ], + "take a picture" => [ + 0 => "ota kuva", + ], + "You can also %i, %c or %u." => [ + 0 => "Voit myös %i, %c tai %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Muokkaa tai muuta kuvan kokoa osoittamalla kuvan esikatselua", + ], + "Edit any image by touching the image preview" => [ + 0 => "Muokkaa kuvaa koskettamalla kuvan esikatselua", + ], + "your computer" => [ + 0 => "tietokoneesi", + ], + "You can add more images from %i or %u." => [ + 0 => "Voit lisätä kuvia %i tai %u.", + ], + "your device" => [ + 0 => "laitteesi", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Voit lisätä kuvia %i, %c tai %u.", + ], + "Uploading %q %o" => [ + 0 => "Ladataan %q %o", + ], + "complete" => [ + 0 => "valmis", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Ladataan kuvia, kestää vielä hetken.", + ], + "Upload complete" => [ + 0 => "Lähettäminen valmis", + ], + "Uploaded content added to %s." => [ + 0 => "Ladattu sisältö lisätty %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Voi %c juuri ladatun sisällön tai %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Voit %c juuri ladatun sisällön.", + ], + "create a new album" => [ + 0 => "luo uusi albumi", + ], + "move it to an existing album" => [ + 0 => "siirrä olemassa olevaan albumiin", + ], + "create an account" => [ + 0 => "luo uusi käyttäjätunnus", + ], + "sign in" => [ + 0 => "kirjaudu sisään", + ], + "No %s have been uploaded" => [ + 0 => "Yhtään %s ei ladattu", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Joitakin virheitä havaittu eikä järjestelmä voinut suorittaa prosessiasi loppuun asti.", + ], + "Category" => [ + 0 => "Kategoria", + ], + "Select category" => [ + 0 => "Valitse kategoria", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Merkise tämä, jos lataus on sopimatonta", + ], + "Not family safe upload" => [ + 0 => "Sopimaton lataus", + ], + "Uploading" => [ + 0 => "Lähetetään", + ], + "cancel remaining" => [ + 0 => "peruuta jäljellä olevat", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Huomio: Joitakin kuvia ei voitu lähettää.", + ], + "learn more" => [ + 0 => "lue lisää", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Katso <a data-modal=\"simple\" data-target=\"failed-upload-result\">virheraportti</a> saadaksesi lisätietoja.", + ], + "Register to get %s" => [ + 0 => "Rekisteröidy saadaksesi %s", + ], + "reset" => [ + 0 => "nollaa", + ], + "close" => [ + 0 => "sulje", + ], + "Note" => [ + 0 => "Muistiinpano", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Meidän on hyväksyttävä ladattu sisältö ennen kuin voit jakaa.", + ], + "copy" => [ + 0 => "kopioi", + ], + "insert" => [ + 0 => "lisää", + ], + "Remove" => [ + 0 => "Poista", + ], + "Title" => [ + 0 => "Otsikko", + ], + "optional" => [ + 0 => "valinnainen", + ], + "Resize image" => [ + 0 => "Muokkaa kuvan kokoa", + ], + "Width" => [ + 0 => "Leveys", + ], + "Height" => [ + 0 => "Korkeus", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Huom: Animoitujen GIF kuvien koko ei muutu.", + ], + "Auto delete image" => [ + 0 => "Poista kuva automaattisesti", + ], + "Sign up" => [ + 0 => "Kirjaudu", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s muokataksesi tai poistaaksesi automaattinen kuvien poisto käytöstä.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Merkitse kuva sopimattomaksi", + ], + "Flag as unsafe" => [ + 0 => "Liputa sopimattomaksi", + ], + "Description" => [ + 0 => "Kuvaus", + ], + "Brief description of this image" => [ + 0 => "Lyhyt kuvaus tästä kuvasta", + ], + "Add image URLs" => [ + 0 => "Lisää kuvien osoitteet", + ], + "Add the image URLs here" => [ + 0 => "Lisää kuvien osoitteet tähän", + ], + "Create album" => [ + 0 => "Luo albumi", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Ladattu sisältö siirretään tähän äskettäin luotuun albumiin.", + ], + "existing album" => [ + 0 => "olemassa oleva albumi", + ], + "Move to album" => [ + 0 => "Siirrä albumiin", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Valitse olemassa oleva albumi siirtääksesi lataamasi kuvat sinne. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uuden albumin</a> ja siirtää kuvat sinne.", + ], + "Error report" => [ + 0 => "Virheraportti", + ], + "Viewer links" => [ + 0 => "Katselijan linkit", + ], + "HTML Codes" => [ + 0 => "HTML-koodit", + ], + "HTML image" => [ + 0 => "HTML kuva", + ], + "HTML full linked" => [ + 0 => "HTML kokonainen linkki", + ], + "HTML medium linked" => [ + 0 => "HTML-linkki keskikokoiseen", + ], + "HTML thumbnail linked" => [ + 0 => "HTML-kuvake linkillä", + ], + "BBCodes" => [ + 0 => "BBkoodit", + ], + "BBCode full" => [ + 0 => "BBCode kokonainen", + ], + "BBCode full linked" => [ + 0 => "BBCOde kokonainen linkki", + ], + "BBCode medium linked" => [ + 0 => "BBCode keskikokoisen linkki", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode-kuvake linkillä", + ], + "Markdown full" => [ + 0 => "Markdown täysi", + ], + "Markdown full linked" => [ + 0 => "Markdown täysi linkitetty", + ], + "Markdown medium linked" => [ + 0 => "Markdown keskikokoinen linkitetty", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown kuvake linkitetty", + ], + "All these words" => [ + 0 => "Kaikilla näillä sanoilla", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Kirjoita tärkeät sanat: kolmivärinen rottaterrieri", + ], + "This exact word or phrase" => [ + 0 => "Juuri tällä sanalla tai ilmauksella", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Kirjoita tarkat sanat lainausmerkkien sisään: \"kolmivärinen rottaterrieri\"", + ], + "None of these words" => [ + 0 => "Ei millään näistä sanoista", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Lisää miinusmerkki niiden sanojen eteen, joilla et halua hakea: -nainen, -\"elin\"", + ], + "Storage" => [ + 0 => "Tallennustila", + ], + "IP address" => [ + 0 => "IP-osoite", + ], + "Album name" => [ + 0 => "Albumin nimi", + ], + "move to existing album" => [ + 0 => "siirrä olemassa olevaan albumiin", + ], + "Album description" => [ + 0 => "Albumin kuvaus", + ], + "Brief description of this album" => [ + 0 => "Lyhyt kuvaus albumista", + ], + "Album privacy" => [ + 0 => "Albumin yksityisyys", + ], + "Who can view this content" => [ + 0 => "Kuka voi nähdä tämän sisällön", + ], + "Private (just me)" => [ + 0 => "Yksityinen (vain minä)", + ], + "Private (anyone with the link)" => [ + 0 => "Yksityinen (vain linkin tietäville)", + ], + "Private (password protected)" => [ + 0 => "Yksityinen (salasanalla suojattu)", + ], + "Album password" => [ + 0 => "Albumin salasana", + ], + "Name" => [ + 0 => "Nimi", + ], + "Category name" => [ + 0 => "Kategorian nimi", + ], + "URL key" => [ + 0 => "Osoite avain", + ], + "Category URL key" => [ + 0 => "Kategorian osoite avain", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Vain kirjaimia, numeroita ja väliviivoja", + ], + "Brief description of this category" => [ + 0 => "Lyhyt kuvaus kategoriasta", + ], + "Untitled image" => [ + 0 => "Nimetön kuva", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Merkitse tämä, jos kuva ei ole turvallinen töissä katseltavaksi", + ], + "Flag not safe" => [ + 0 => "Liputa ei turvalliseksi", + ], + "Path" => [ + 0 => "Polku", + ], + "Local path (absolute)" => [ + 0 => "Paikallinen polku (absoluuttinen)", + ], + "Directory structure" => [ + 0 => "Hakemistorakenne", + ], + "Parse top level folders as users (username)" => [ + 0 => "Jäsennä ylätason kansiot käyttäjinä (käyttäjänimi)", + ], + "Parse top level folders as albums" => [ + 0 => "Jäsennä ylätason kansiot albumeina", + ], + "Don't parse folders" => [ + 0 => "Älä jäsennä kansioita", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Kun jäsennetään ylätason kansioita käyttäjinä, toisen tason kansiot jäsennetään käyttäjän albumeina. Jäsennys ylätason kansioista albumeina lisää nämä vierasalbumeiksi.", + ], + "Threads" => [ + 0 => "Langat", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Tämä määrittää kuinka intensiivinen ja nopea tuontiprosessi on. Älä käytä enempää kuin %s säiettä jaetulla palvelimella.", + ], + "You can use wildcard * characters." => [ + 0 => "Voit käyttää jokerimerkkejä *.", + ], + "Expiration date" => [ + 0 => "Päättymispäivä", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Esimerkki", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Mihin päivämäärään asti IP-osoite on estetty? Jätä tyhjäksi, jos ei päättymispäivää.", + ], + "Message" => [ + 0 => "Viesti", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Viesti, HTML tai osoitteetn uudelleenohjaus", + ], + "Existing album" => [ + 0 => "Olemassaoleva albumi", + ], + "create new album" => [ + 0 => "luo uusi albumi", + ], + "Storage name" => [ + 0 => "Tallennustilan nimi", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Alue", + ], + "Storage region" => [ + 0 => "Tallennustilan alue", + ], + "Storage bucket" => [ + 0 => "Varastoämpäri", + ], + "Key" => [ + 0 => "Avain", + ], + "Storage key" => [ + 0 => "Tallennustilan avain", + ], + "Secret" => [ + 0 => "Salaisuus", + ], + "Storage secret" => [ + 0 => "Tallennustilan salaisuus", + ], + "Private key" => [ + 0 => "Yksityinen avain", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON avain", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Tarvitset <a %s>palvelun käyttäjätunnuksen</a> tätä varten.", + ], + "Service name" => [ + 0 => "Palvelun nimi", + ], + "Identity URL" => [ + 0 => "Identiteetti osoite", + ], + "Identity API endpoint" => [ + 0 => "Identiteetti API päätepiste", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API päätepiste OpenStack identiteetille", + ], + "Username" => [ + 0 => "Käyttäjänimi", + ], + "Container" => [ + 0 => "Säilö", + ], + "Storage container" => [ + 0 => "Säilytystila", + ], + "Tenant id" => [ + 0 => "Vuokralaisen id", + ], + "Tenant id (account id)" => [ + 0 => "Vuokralaisen id (käyttäjä id)", + ], + "Tenant name" => [ + 0 => "Vuokralaisen nimi", + ], + "Tenant name (account name)" => [ + 0 => "Vuokralaisen nimi (käyttäjänimi)", + ], + "Storage endpoint" => [ + 0 => "Tallennuksen päätepiste", + ], + "Server address" => [ + 0 => "Palvelimen osoite", + ], + "Hostname or IP of the storage server" => [ + 0 => "Tallennustilapalvelimen Isäntänimi tai IP-osoite", + ], + "Server path" => [ + 0 => "Palvelimen polku", + ], + "Server login" => [ + 0 => "Palvelimen sisäänkirjautuminen", + ], + "Server password" => [ + 0 => "Palvelimen salasana", + ], + "Local path" => [ + 0 => "Paikallinen polku", + ], + "Local path where the files will be stored" => [ + 0 => "Paikallinen polku, johon tiedostot tallennetaan", + ], + "Storage capacity" => [ + 0 => "Tallennustilan kapasiteetti", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Esimerkiksi: 20 GB, 1TB, jne.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Tämä tallennustila otetaan pois käytöstä, kun sen kapasiteetti loppuu. Jätä se tyhjäksi tai nollaksi, jos et halua rajoitusta.", + ], + "Storage URL" => [ + 0 => "Tallennustilan osoite", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Järjestelmä uudelleen ohjaa tämän tallennustilan kuvat tähän osoitteeseen.", + ], + "view more" => [ + 0 => "näytä lisää", + ], + "Load more" => [ + 0 => "Lataa lisää", + ], + "Select all" => [ + 0 => "Valitse kaikki", + ], + "Clear selection" => [ + 0 => "Poista valinta", + ], + "Selection" => [ + 0 => "Valittu", + ], + "Action" => [ + 0 => "Toiminto", + ], + "Get embed codes" => [ + 0 => "Hae upotuskoodit", + ], + "Assign category" => [ + 0 => "Määritä kategoria", + ], + "Flag as safe" => [ + 0 => "Liputa turvalliseksi", + ], + "Create new album" => [ + 0 => "Luo uusi albumi", + ], + "Sign in with another account" => [ + 0 => "Kirjaudu tilillä", + ], + "Continue with %label%" => [ + 0 => "Jatka mallilla %label%", + ], + "Home" => [ + 0 => "Etusivu", + ], + "There's nothing to show here." => [ + 0 => "Täällä ei ole mitään nähtävää.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Kaikki kuvat siirretään tähän vastaluotuun albumiin. Voit myös siirtää kuvat <a class=\"modal-switch\" data-switch=\"move-existing-album\">olemassa olevaan albumiin</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Valitse olemassa oleva albumi siirtääksesi kuvan. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uuden albumin</a> ja siirtää kuva sinne.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Valitse olemassa oleva albumi siirtääksesi albumin sisältö. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uusi albumi</a> ja siirtää albumin sisältö siihen.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Valitse olemassa oleva albumi siirtääksesi kuvat. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uuden albumin</a> ja siirtää kuvat sinne.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Kaikki valitut kuvat tullaan siirtämään tähän kategoriaa.", + ], + "There is no categories." => [ + 0 => "Ei yhtään kategoriaa.", + ], + "Confirm flag content as safe" => [ + 0 => "Liputa sisältö turvalliseksi", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Haluatko varmasti vahvistaa tämän sisällön turvalliseksi?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Liputa sisältö sopimattomaksi", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Haluatko varmasti vahvistaa tämän sisällön sopimattomaksi?", + ], + "Confirm approval" => [ + 0 => "Vahvista hyväksyntä", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "Haluatko todella poistaa kaiken valitun sisällön? Tätä ei voi kumota.", + ], + "Confirm deletion" => [ + 0 => "Varmista poisto", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa tämän sisällön? Toimintoa ei voi perua.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Haluatko todella poistaa kaiken valitun sisällön? Tätä ei voi kumota.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa kaiken valitun sisällön? Toimintoa ei voi perua.", + ], + "Fullscreen" => [ + 0 => "Koko näyttö", + ], + "Exit fullscreen" => [ + 0 => "Poistu koko näytöstä", + ], + "Guest" => [ + 0 => "Vieras", + ], + "Keyboard shortcuts" => [ + 0 => "Pikanäppäimet", + ], + "Private album" => [ + 0 => "Yksityinen albumi", + ], + "Password protected" => [ + 0 => "Salasana suojattu", + ], + "Uploaded by guest" => [ + 0 => "Ladannut vieras", + ], + "From %s" => [ + 0 => "Albumista %s", + ], + "Uploaded by private" => [ + 0 => "Ladannut yksityinen", + ], + "by %u" => [ + 0 => "%u", + ], + "Toggle unsafe flag" => [ + 0 => "Ota käyttöön sopimattoman sisällön lippu", + ], + "That page doesn't exist" => [ + 0 => "Sivua ei ole olemassa", + ], + "The requested page was not found." => [ + 0 => "Pyydettyä sivua ei löydy", + ], + "Search something else" => [ + 0 => "Etsi jotakin muuta", + ], + "The user has been deleted" => [ + 0 => "Käyttäjätunnus poistettu", + ], + "Your account is almost ready" => [ + 0 => "Käyttäjätunnuksesi on melkein valmis", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Teille on lähetetty sähköpostiviesti osoitteeseen %s josta löydätte tarkemmat ohjeet käyttäjätunnuksen vahvistamiseen. Käyttäjätunnuksen vahvistamislinkki on voimassa 48 tuntia. Jos et saanut sähköpostiviestiä, tarkista roskapostit. ", + ], + "Resend activation" => [ + 0 => "Lähetä aktivointi uudelleen", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Sähköpostiosoite vaihdettu onnistuneesti osoitteeseen %s", + ], + "Go to my profile" => [ + 0 => "Siirry profiiliini", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Vahvistuslinkki lähetetään syöttämääsi sähköpostiosoitteeseen käyttäjätunnuksen aktivointia varten.", + ], + "Your email address" => [ + 0 => "Sinun sähköpostiosoitteesi", + ], + "Submit" => [ + 0 => "Lähetä", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Teille on lähetetty sähköpostiviesti josta löydätte tarkemmat ohjeet salasanan vaihtamiseen. Jos et saanut sähköpostiviestiä, tarkista roskapostit.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Teille on lähetetty sähköpostiviesti josta löydätte tarkemmat ohjeet salasanan vaihtamiseen. Jos et saanut sähköpostiviestiä, tarkista roskapostit.", + ], + "Resend instructions" => [ + 0 => "Lähetä ohjeet uudelleen", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Syötä käyttäjänimesi tai sähköpostiosoitteesi jatkaaksesi. Saatat joutua tarkistamaan roskapostikansiosi tai sallittujen luettelosi %s", + ], + "Username or Email address" => [ + 0 => "Käyttäjänimi tai sähköpostiosoite", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Salasanasi on nyt vaihdettu. Voit kokeilla kirjautua käyttämällä uutta salasanaasi.", + ], + "Login now" => [ + 0 => "Kirjaudu nyt sisään", + ], + "Enter your new password" => [ + 0 => "Kirjoita uusi salasana", + ], + "%d characters min" => [ + 0 => "vähintään %d merkkiä", + ], + "Password strength" => [ + 0 => "Salasanan vahvuus", + ], + "Re-enter your new password" => [ + 0 => "Kirjoita uusi salasanasi uudelleen", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Sähköposti lähetetty osoitteeseen %s aktivointi-ohjeiden kera. Jos et saanut sähköpostiviestiä, tarkista roskapostit.", + ], + "This content is private" => [ + 0 => "Tämä sisältö on yksityistä", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa albumin ja kaikki sen kuvat? Toimintoa ei voi perua.", + ], + "You like this" => [ + 0 => "Tykkäsit tästä", + ], + "Upload to album" => [ + 0 => "Lataa albumiin", + ], + "Album link" => [ + 0 => "Albumin osoite", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Lue ja täytä seuraavat ehdot ennen jatkamista:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Tämä sivusto sisältää tietoa, linkkejä ja kuvia seksuaalisesta materiaalista. Jos olet alle %s-vuotias, koet tällaisen materiaalin loukkaavaksi tai jos se on laitonta katsella tällaista materiaalia paikkakunnallasi, älä jatka.\n\nOlen vähintään %s-vuotias ja uskon, että aikuisena minulla on oikeus saada/katsella seksuaalista materiaalia. Haluan saada/katsella seksuaalista materiaalia.\n\nUskon, että aikuisten välinen seksuaalinen toiminta on vapaaehtoista ja ei ole loukkaavaa eikä säädytöntä. Seksuaalisen materiaalin katselu, lukeminen ja lataaminen ei riko paikkakuntani, kaupungin tai maani lakia.\n\nKatselemani seksuaalinen materiaali on vain omaan käyttööni ja en näytä sitä alaikäisille.\n\nOlen yksin vastuussa kaikista vääristä tiedoista tai oikeudellisista seurauksista liittyen materiaalin katseluun, lukemiseen tai lataamiseen tällä sivustolla. Lisäksi tämä sivusto tai sen konserniyhtiöt eivät ole vastuussa mistään oikeudellisista seurauksista, jotka johtuvat petollisen tulon saamisesta tai näiden verkkosivujen käytöstä.\n\nTämä ehtojen hyväksyminen muodostaa laillisen sopimuksen tämän sivuston ja sinun ja/tai yrityksen, jossa sinulla on laillinen tai tasapuolinen osuus. Jos jokin osan tästä sopimuksesta toimivaltainen tuomioistuin katsoo täytäntöönpanokelvottomaksi, se ei vaikuta muihin sopimuksen osiin.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Klikkaamalla \"Hyväksyn\" ilmoitat, että olet lukenut ja ymmärtänyt kaikki edellä mainitut edellytykset.", + ], + "I Agree" => [ + 0 => "Hyväksyn", + ], + "documentation" => [ + 0 => "dokumentit", + ], + "Learn more about %s at our %d." => [ + 0 => "Tutustu tarkemmin %s täällä %d.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "Yhdistävä IP määritetään palvelimen muuttujalla %var%. Jos havaittu IP ei vastaa sinun IP-osoitettasi, se tarkoittaa, että verkkopalvelimesi on välityspalvelimen alla ja sinun on nipistettävä palvelinta asettamaan todellinen yhteys IP.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Nginx-sovelluksessa sinun on käytettävä %nginx%. Apache: %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Varmista, että käsittelet tätä ongelmaa, koska järjestelmä luottaa tarkkoihin IP-havaintoihin perustoimintojen tarjoamiseksi ja suojaamiseksi roskapostilta, tulvilta ja hyökkäyksiltä.", + ], + "Disk used" => [ + 0 => "Käytetty levytila", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." => [ + 0 => "Tämän työkalun avulla voidaan lisätä sisältöä verkkosivustollesi osoittamalla järjestelmän polku tuotavan sisällön kanssa. Se tukee käyttäjien, albumien ja kuvien lisäämistä kansiopohjaisen rakenteen avulla.", + ], + "Automatic importing" => [ + 0 => "Automaattinen tuonti", + ], + "Reset to clear stats and logs." => [ + 0 => "Nollaa tilastot ja lokit.", + ], + "Queued" => [ + 0 => "Jonossa", + ], + "Working" => [ + 0 => "Työskentelee", + ], + "Paused" => [ + 0 => "Tauolla", + ], + "Canceled" => [ + 0 => "Peruutettu", + ], + "Completed" => [ + 0 => "Suoritettu", + ], + "Actions" => [ + 0 => "Toiminnot", + ], + "Reset" => [ + 0 => "Resetoi", + ], + "Pause" => [ + 0 => "Tauko", + ], + "Resume" => [ + 0 => "Palauta", + ], + "Process log" => [ + 0 => "Prosessiloki", + ], + "Errors" => [ + 0 => "Virheet", + ], + "Status" => [ + 0 => "Tila", + ], + "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." => [ + 0 => "Järjestelmä toimii ajoitetun komennon kanssa tuonnin jatkuvassa käsittelyssä. Se vaatii crontab-merkinnän.", + ], + "You can run the command in parallel by changing the integer value of %s%." => [ + 0 => "Voit suorittaa komennon rinnakkain muuttamalla kokonaislukua %s%.", + ], + "Add import job" => [ + 0 => "Lisää tuontityö", + ], + "Process import" => [ + 0 => "Prosessin tuonti", + ], + "Top level folders as %s" => [ + 0 => "Ylätason kansiot muodossa %s", + ], + "Process" => [ + 0 => "Prosessi", + ], + "Cancel" => [ + 0 => "Peruuta", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Peruuta Haluatko todella poistaa tuontitunnuksen %s?", + ], + "Manual importing" => [ + 0 => "Manuaalinen tuonti", + ], + "The system will parse the contents of any available filesystem path." => [ + 0 => "Järjestelmä jäsentää minkä tahansa käytettävissä olevan tiedostojärjestelmän polun sisällön.", + ], + "These processes must be manually created and handled with the web browser tab open." => [ + 0 => "Nämä prosessit on luotava ja käsiteltävä manuaalisesti, kun verkkoselaimen välilehti on auki.", + ], + "Parser" => [ + 0 => "Jäsennin", + ], + "Add user" => [ + 0 => "Lisää käyttäjä", + ], + "Role" => [ + 0 => "Rooli", + ], + "Manager" => [ + 0 => "manageri", + ], + "Administrator" => [ + 0 => "Ylläpitäjä", + ], + "Email address" => [ + 0 => "Sähköpostiosoite", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Tämä asetus on aina pois käytöstä käytettäessä henkilökohtainen verkkosivu tilaa.", + ], + "Add category" => [ + 0 => "Lisää kategoria", + ], + "Add IP ban" => [ + 0 => "Lisää IP esto", + ], + "Add storage" => [ + 0 => "Lisää tallennustila", + ], + "Return to pages" => [ + 0 => "Palaa sivuihin", + ], + "Website name" => [ + 0 => "Verkkosivuston nimi", + ], + "Website doctitle" => [ + 0 => "Verkkosivuston otsake", + ], + "Website description" => [ + 0 => "Verkkosivuston kuvaus", + ], + "Powered by" => [ + 0 => "Voimanlähteenä", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "Ota tämä käyttöön, jos haluat näyttää sosiaalisen verkoston painikkeita sisällön jakamiseksi.", + ], + "Automatic" => [ + 0 => "Automaattinen", + ], + "Forced" => [ + 0 => "Pakotettu", + ], + "Default time zone" => [ + 0 => "Oletusaikavyöhyke", + ], + "Select region" => [ + 0 => "Valitse alue", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Sallii kuvien, albumien ja käyttäjien etsimisen tietyllä hakulausekkeella.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Salli julkisesti ladattujen kuvien katselu. Tämä sallii myös kategoriat.", + ], + "guests" => [ + 0 => "vieraat", + ], + "Enables explore for guests." => [ + 0 => "Mahdollistaa selauksen vieraille.", + ], + "Enables to browse images randomly." => [ + 0 => "Salli kuvien satunnaisen katselun.", + ], + "Likes" => [ + 0 => "Tykkäykset", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Salli käyttäjien tykätä sisällöstä ja vaikuttaa \"Tykätyimmät\" listaukseen.", + ], + "Followers allows users to follow each other." => [ + 0 => "Salli seuraajien seurata toisiaan.", + ], + "Personal mode target user" => [ + 0 => "Henkilökohtaisen tilan käyttäjä", + ], + "User ID" => [ + 0 => "Käyttäjän tunniste", + ], + "Your user id is: %s" => [ + 0 => "Sinun käyttäjäid on: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Käyttäjän ID henkilökohtaiseen tilaan.", + ], + "Personal mode routing" => [ + 0 => "Henkilökohtaisen tilan ohjaus", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Mukautettu ohjaus /käyttäjänimi /jonnekin. Käytä \"/\" ohjataksesi etusivulle.", + ], + "Website privacy mode" => [ + 0 => "Verkkosivun yksityinen tila", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Yksityinen näyttää verkkosivun vain rekisteröityneille käyttäjille", + ], + "Content privacy mode" => [ + 0 => "Yksityinen sisältö", + ], + "Default" => [ + 0 => "Oletus", + ], + "Force private (self)" => [ + 0 => "Pakota yksityiseksi (itselle)", + ], + "Force private (anyone with the link)" => [ + 0 => "Pakota yksityiseksi (kaikille linkin tietäville)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Pakotettu yksityisyys ylikirjoittaa käyttäjän valitseman yksityisyysasetuksen.", + ], + "Page title" => [ + 0 => "Sivun otsikko", + ], + "Page status" => [ + 0 => "Sivun tila", + ], + "Active page" => [ + 0 => "Aktiivinen sivu", + ], + "Inactive page (%s)" => [ + 0 => "Toimeton sivu (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Vain aktiiviset sivut on saatavilla.", + ], + "Type" => [ + 0 => "Tyyppi", + ], + "Terms of service" => [ + 0 => "Käyttöehdot", + ], + "Privacy" => [ + 0 => "Yksityisyys", + ], + "Contact" => [ + 0 => "Ota yhteyttä", + ], + "Extra page" => [ + 0 => "Lisäsivu", + ], + "Internal page type" => [ + 0 => "Sisäinen sivutyyppi", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Sinulla voi olla useita ylimääräisiä sivuja, mutta vain yksi muista sisäisistä erityistyypeistä.", + ], + "Page visibility" => [ + 0 => "Sivun näkyvyys", + ], + "Visible page" => [ + 0 => "Näkyvä sivu", + ], + "Hidden page" => [ + 0 => "Piilotettu sivu", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Piilotetut sivut eivät näy järjestelmän valikoissa, mutta kuka tahansa linkin tietävä voi vierailla niillä.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Vain kirjaimia, väliviivoja ja vinoviiva", + ], + "File path" => [ + 0 => "Tiedostopolku", + ], + "A %f file relative to %s" => [ + 0 => "Tiedosto %f suhteessa %s tiedostoon", + ], + "Meta keywords" => [ + 0 => "Meta avainsanat", + ], + "Meta description" => [ + 0 => "Meta kuvaus", + ], + "Source code" => [ + 0 => "Lähdekoodi", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Ei kirjoitusoikeutta %s polkuun. Joudut lisäämään tämän tiedoston käyttäen ulkoista editoria.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Ei kirjoitusoikeutta kohteeseen %s. Joudut muokkaamaan tämän tiedoston sisältöä käyttäen ulkoista editoria.", + ], + "Taken from: %s" => [ + 0 => "Sivun sisältö: %s", + ], + "Link URL" => [ + 0 => "Linkin URL", + ], + "Link target attribute" => [ + 0 => "Linkin kohde määritys", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Valitse %s avataksesi sivun tai linkin uuteen ikkunaan.", + ], + "Link rel attribute" => [ + 0 => "Linkin suhteellinen määritys", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Vain kirjaimia, väliviivoja ja välilyöntejä", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s määritys", + ], + "Link icon" => [ + 0 => "Linkin ikoni", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Katso <a %s>ikoniviittauksista</a> täydellinen listaus tuetuista ikoneista.", + ], + "Sort order display" => [ + 0 => "Lajittelujärjestys", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Sivun lajittelujärjestys valikoissa ja listoissa. Käytä \"1\" ensisijaisesti.", + ], + "pages" => [ + 0 => "sivut", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa sivun ID %s? Toimintoa ei voi perua.", + ], + "Enabled image formats" => [ + 0 => "Käytössäolevat kuvamuodot", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Valitse ladattavaksi sallitut kuvaformaatit.", + ], + "Enable uploads" => [ + 0 => "Salli kuvien lataus", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Salli kuvien lataus. Tämä ei vaikuta ylläpitäjiin.", + ], + "Upload user interface" => [ + 0 => "Lataa käyttöliittymä", + ], + "On-page container" => [ + 0 => "Sivusäiliö", + ], + "route" => [ + 0 => "Reitti", + ], + "Guest uploads" => [ + 0 => "Vieraiden kuvien lataus", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Salli vieraiden ladata kuvia.", + ], + "Moderate uploads" => [ + 0 => "Kohtuullinen lataus", + ], + "Guests" => [ + 0 => "Vieraat", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Ota tämä käyttöön, kun haluat valvoa saapuvia latauksia. Kohdesisältö edellyttää valvontaa hyväksynnän saamiseksi.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Ota käyttöön upotuskoodit (lataus)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Ota upotuskoodit käyttöön, kun lataus on valmis.", + ], + "Upload threads" => [ + 0 => "Lähetyksen säikeet", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Yhtäaikaisten latausten määrä (rinnakkaiset lataukset)", + ], + "Redirect on single upload" => [ + 0 => "Uudelleenohjaa yksittäiseen lataukseen", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Salli uudelleenohjaus kuvan sivulta yksittäiseen lataukseen.", + ], + "Enable duplicate uploads" => [ + 0 => "Salli kaksoiskappaleiden lähetys", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Salli kuvien kaksoikappaleiden lähetys samasta ip-osoitteesta 24 tunnin aikana. Tämä asetus ei vaikuta ylläpitäjiin.", + ], + "Enable expirable uploads" => [ + 0 => "Ota käyttöön vanhentuvat lataukset", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Ota tämä käyttöön mikäli haluat sallia automaattisesti poistuvat kuvat.", + ], + "Auto delete guest uploads" => [ + 0 => "Automaattisesti poista vieraiden lataukset", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Ota käyttöön vieraiden latausten automaattinen poisto tietyn ajan kuluttua.", + ], + "Maximum image size" => [ + 0 => "Kuvan enimmäiskoko", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Tätä suuremmat kuvat pienennetään automaattisesti. Käytä arvoa nolla (0) ellet halua asettaa rajaa.", + ], + "Image Exif data" => [ + 0 => "Kuvan Exif tiedot", + ], + "Keep" => [ + 0 => "Pidä", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Valitse oletusarvo kuvien <a %s>Exif tiedoille</a> latauksissa.", + ], + "Image Exif data (user setting)" => [ + 0 => "Kuvan Exif tiedot (käyttäjän asetus)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Salli käyttäjien valita miten kuvien Exif tietoja näytetään.", + ], + "Maximum upload file size" => [ + 0 => "Lähetettävän kuvatiedoston maksimikoko.", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Palvelimen sallima maksimikoko on %s. Ylärajan asettavat %u ja %p (%f arvot).", + ], + "Image path" => [ + 0 => "Kuvien sijainti", + ], + "Relative to Chevereto root" => [ + 0 => "Suhteessa Chevereton juureen", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Minne kuvat tallennetaan? Riippuvainen Chevereton juuresta.", + ], + "Storage mode" => [ + 0 => "Tallennustila", + ], + "Datefolders" => [ + 0 => "Päiväkansiot", + ], + "Direct" => [ + 0 => "Suora", + ], + "Datefolders creates %s structure" => [ + 0 => "Päiväkansiot luovat %s rakenteen.", + ], + "File naming method" => [ + 0 => "Tiedoston nimeämistapa", + ], + "Original" => [ + 0 => "Alkuperäinen", + ], + "Mix original + random" => [ + 0 => "Sekoita alkuperäinen + arvottu", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Alkuperäinen\" yrittää pitää kuvan alkuperäisen nimen. \"Arvottu\" generoi satunnaisen nimen. \"ID\" nimeää kuvan ID mukaan.", + ], + "Thumb size" => [ + 0 => "Kuvakkeen koko", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Kuvake muutetaan tämän kokoiseksi", + ], + "Medium image fixed dimension" => [ + 0 => "Keskikokoisen kuvan kiinteä koko", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Keskikokoisen kuvan kiinteä koko. Esimerkiksi, jos valitset \"leveys\", tämä tulee olemaan kuvan leveys ja kuvan korkeus lasketaan automaattisesti.", + ], + "Medium image fixed size" => [ + 0 => "Keskikokoisen kuvan kiinteä koko", + ], + "Width or height will be automatically calculated." => [ + 0 => "Leveys tai korkeus lasketaan automaattisesti.", + ], + "Watermarks" => [ + 0 => "Vesileima", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Ota käyttöön vesileima kuvien latauksessa. Se voi olla logo tai muu kuva.", + ], + "Warning: Can't write in %s" => [ + 0 => "Varoitus: Ei voida kirjoittaa %s", + ], + "Watermark user toggles" => [ + 0 => "Käyttäjien vesileimat", + ], + "Enable watermark on guest uploads" => [ + 0 => "Ota vesileima käyttöön vieraiden latauksissa", + ], + "Enable watermark on user uploads" => [ + 0 => "Ota vesileima käyttöön käyttäjien latauksissa", + ], + "Enable watermark on admin uploads" => [ + 0 => "Ota vesileima käyttöön ylläpidon latauksissa", + ], + "Watermark file toggles" => [ + 0 => "Tiedostojen vesileimat", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Ota vesileima käyttöön GIF kuvien latauksissa", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Kuvan vähimmäiskoko tarvitaan vesileiman käyttöön", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Kuva, jotka on tätä pienempiä, ei vesileimata. Käytä nolla (0), jos et halua asettaa vähimmäiskokoa.", + ], + "Watermark image" => [ + 0 => "Vesileima", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Saat parhaimman tuloksen käyttämällä selkeää logoa, jossa on varjostus. Voit käyttää isoa kuvaa, jos tiedoston koko ei ole iso (suositeltava koko enintään 16KB). Tiedoston tulee olla PNG.", + ], + "Watermark position" => [ + 0 => "Vesileiman sijainti", + ], + "left top" => [ + 0 => "Vasemmalla ylhäällä", + ], + "left center" => [ + 0 => "Vasemmalla keskellä", + ], + "left bottom" => [ + 0 => "Vasemmalla alhaalla", + ], + "center top" => [ + 0 => "Keskellä ylhäällä", + ], + "center center" => [ + 0 => "Keskellä keskellä", + ], + "center bottom" => [ + 0 => "Keskellä alhaalla", + ], + "right top" => [ + 0 => "Oikealla ylhäällä", + ], + "right center" => [ + 0 => "Oikealla keskellä", + ], + "right bottom" => [ + 0 => "Oikealla alhaalla", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Suhteellinen sijainti vesileimalle. Ensiksi horisontaalinen ja sitten vertikaalinen kohdistus.", + ], + "Watermark percentage" => [ + 0 => "Vesileiman prosentti", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Vesileiman prosentuaalinen koko verrattuna kohde kuvaan. Arvo 1-100.", + ], + "Watermark margin" => [ + 0 => "Vesileiman marginaali", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Marginaalit vesileiman reunoilta.", + ], + "Watermark opacity" => [ + 0 => "Vesileiman läpinäkyvyys", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Vesileiman läpinäkyvyys lopullisessa vesileimatussa kuvassa. Arvot 0-100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Hallintapaneeli > Asetukset > Verkkosivu", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Kategoriat ei toimi kun tutki ominaisuus on pois päältä. Palauttaaksesi tämän asetuksen, mene %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa %s kategorian? Toimintoa ei voi perua.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Huom: Kategorian poisto ei poista kategorian sisältämiä kuvia.", + ], + "Edit category" => [ + 0 => "Muokkaa kategoriaa", + ], + "Expires" => [ + 0 => "Vanhentuu", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa eston %s IP-osoitteelta? Toimintoa ei voi perua.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Estetyillä IP-osoitteilla ei ole pääsyä koko sivustolle.", + ], + "Edit IP ban" => [ + 0 => "Muokkaa IP estoa", + ], + "Enable signups" => [ + 0 => "Salli rekisteröitymiset", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Salli käyttäjien rekisteröityä palveluun.", + ], + "Enable user content delete" => [ + 0 => "Salli käyttäjien poistaa sisältöä", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Salli käyttäjien poistaa omaa sisältöään palvelusta. Tämä asetus ei vaikuta ylläpitäjiin.", + ], + "Minimum age required" => [ + 0 => "Vähimmäisikä vaaditaan", + ], + "Empty" => [ + 0 => "Tyhjä", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Jätä tyhjäksi, jos vähimmäikää ei vaadita sivuston käyttöön.", + ], + "Notify on user signup" => [ + 0 => "Ilmoita käyttäjän rekisteröitymisen yhteydessä", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Ota tämä käyttöön, jos haluat saada sähköposti-ilmoituksen jokaisesta uudesta rekisteröitymisestä.", + ], + "Username routing" => [ + 0 => "Käyttäjätunnuksen ohjaus", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Ota käyttöön, jos haluat käyttää osoiterivillä %s/käyttäjätunnus muotoa %s/user/kyttäjätunnus sijaan.", + ], + "Require email confirmation" => [ + 0 => "Vaadi sähköpostivarmistus", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Ota käyttöön käyttäjien sähköpostivarmistus rekisteröinnissä.", + ], + "Require email for social signup" => [ + 0 => "Vaadi sähköpostiosoite rekisteröitäessä sosiaalisen verkoston tileillä", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Vaadi sähköpostiosoite, kun käyttäjä rekisteröityy käyttäen sosiaalisen verkoston tilejä.", + ], + "User avatar max. filesize" => [ + 0 => "Käyttäjän profiilikuvan maksimikoko", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Maksimi tiedostokoko käyttäjän profiilikuvalle. (Palvelimen hyväksymä maksimikoko on %s)", + ], + "User background max. filesize" => [ + 0 => "Käyttäjän taustakuvan maksimikoko", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Maksimi tiedostokoko käyttäjän taustakuvalle. (Palvelimen hyväksymä maksimikoko on %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Näytä ehtojen hyväksymisikkuna ennen sivustolle siirtymistä. Hyödyllinen aikuisille tarkoitetun sisällön sivustoille, joihin alaikäisiä ei sallita.", + ], + "Enable consent screen" => [ + 0 => "Ota käyttöön ehtojen hyväksymisikkuna", + ], + "Consent screen cover image" => [ + 0 => "Ehtojen hyväksymisikkunan taustakuva", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Estä kuvien lähettäjän IP-numero, jos järjestelmä havaitsee spämmäystä. Tämä ei vaikuta ylläpitäjiin.", + ], + "Notify to email" => [ + 0 => "Ilmoita sähköpostilla", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Salli järjestelmän lähettää sähköpostia spämmieston aktivoituessa.", + ], + "Minute limit" => [ + 0 => "Minuutin rajoitus", + ], + "Hourly limit" => [ + 0 => "Tunnin rajoitus", + ], + "Daily limit" => [ + 0 => "Päivän rajoitus", + ], + "Weekly limit" => [ + 0 => "Viikon rajoitus", + ], + "Monthly limit" => [ + 0 => "Kuukauden rajoitus", + ], + "Show not safe content in listings" => [ + 0 => "Näytä sopimatonta sisältöä listauksessa", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Ota käyttöön sopimatton sisällön näyttö listauksessa. Tämä ei vaikuta ylläpitäjiin ja voidaan ohittaa käyttäjän omista asetuksista.", + ], + "Blur NSFW content in listings" => [ + 0 => "Sumenna NSFW sisältö listauksessa", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Ota käyttöön sopimattoman sisällön sumennus kuvien listauksessa.", + ], + "Show banners in not safe content" => [ + 0 => "Näytä lippu sopimattomasta sisällöstä", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Valitse tämä, jos haluat näyttää lipun sopimattomasta sisälällöstä.", + ], + "Show not safe content in random mode" => [ + 0 => "Näytä ei turvallista sisältöä satunnaisessa tilassa", + ], + "List items per page" => [ + 0 => "Kohteita sivulla", + ], + "How many items should be displayed per page listing." => [ + 0 => "Kuinka monta kohdetta näytetään sivua kohden.", + ], + "List pagination mode" => [ + 0 => "Listauksen tyyli", + ], + "Endless scrolling" => [ + 0 => "Loputon vieritys", + ], + "Classic pagination" => [ + 0 => "Tavallinen sivutus", + ], + "What pagination method should be used." => [ + 0 => "Mitä sivunumerointitapaa käytetään.", + ], + "Image listing size" => [ + 0 => "Kuvan koko", + ], + "Fluid" => [ + 0 => "Joustava", + ], + "Fixed" => [ + 0 => "Kiinteä", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Kummatkin käyttävät kiinteää leveyttä, mutta joustava käyttää automaattista korkeutta.", + ], + "Album listing images requirement" => [ + 0 => "Albumilistausvaatimus", + ], + "explore" => [ + 0 => "Selaus", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Asettaa minimi kuvamäärän, mitä näytetään selaustilassa.", + ], + "Listing columns number" => [ + 0 => "Listauksen sarakkeiden määrä", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Määrittele näytettävien sarakkeiden määrä laitekohtaisesti.", + ], + "Phone" => [ + 0 => "Puhelin", + ], + "Phablet" => [ + 0 => "Phabletti", + ], + "Tablet" => [ + 0 => "Tabletti", + ], + "Laptop" => [ + 0 => "Kannettava", + ], + "Desktop" => [ + 0 => "Työpöytä", + ], + "theme editing" => [ + 0 => "teeman muokkaus", + ], + "Put your themes in the %s folder" => [ + 0 => "Siirrä teemat kansioon %s", + ], + "Tone" => [ + 0 => "Sävy", + ], + "Light" => [ + 0 => "Vaalea", + ], + "Dark" => [ + 0 => "Tumma", + ], + "Main color" => [ + 0 => "Pääväri", + ], + "Hexadecimal color value" => [ + 0 => "Heksadesimaali värikoodi", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Aseta sivuston pääväri. Arvon tulee olla <a href=\"%s\" target=\"_blank\">hexadesimaalimuodossa</a>.", + ], + "Top bar button color" => [ + 0 => "Yläpalkin painikkeen väri", + ], + "Blue" => [ + 0 => "Sininen", + ], + "Green" => [ + 0 => "Vihreä", + ], + "Orange" => [ + 0 => "Oranssi", + ], + "Red" => [ + 0 => "Punainen", + ], + "Grey" => [ + 0 => "Harmaa", + ], + "Black" => [ + 0 => "Musta", + ], + "White" => [ + 0 => "Valkoinen", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Yläpalkin painikkeiden, kuten \"Rekisteröidy\" painikkeen väri.", + ], + "Enable vector logo" => [ + 0 => "Käytä vektorilogoa", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Ota käyttöön vektorilogo, joka on parempi laatuinen kaikilla laitteilla.", + ], + "Vector logo image" => [ + 0 => "Vektorilogon kuva", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Vektori versio verkkosivun logosta SVG-muodossa.", + ], + "Raster logo image" => [ + 0 => "Rasterilogon kuva", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Bitmap versio verkkosivun logosta. PNG-formaatti suositeltu.", + ], + "Logo height" => [ + 0 => "Logon korkeus", + ], + "No value" => [ + 0 => "Ei arvoa", + ], + "Use this to set the logo height if needed." => [ + 0 => "Määrittele tarvittaessa logon korkeus tästä.", + ], + "Favicon image" => [ + 0 => "Favicon kuva", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon kuva. Kuvan tulee olla yhtä korkea kuin leveä.", + ], + "Image load max. filesize" => [ + 0 => "Kuvan lähetyksen maksimi tiedostokoko.", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Tätä kokoa suuremmissa kuvissa näytetään painike, jolla täyskokoisen kuvatiedoston voi ladata.", + ], + "Enable download button" => [ + 0 => "Ota Lataa kuva -painike käyttöön", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Tästä voit ottaa Lataa kuva -painikkeen käyttöön.", + ], + "Enable right click on image" => [ + 0 => "Salli oikean klikkaus kuvassa", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Haluatko sallia hiiren oikean napin klikkausen kuvankatselusivulla.", + ], + "Enable show Exif data" => [ + 0 => "Näytä Exif-tiedot", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Ota käyttöön Exif-tietojen näyttö.", + ], + "Enable social share" => [ + 0 => "Salli sosiaalinen jako", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Ota käyttöön sosiaalisten palveluiden jakopainikkeet.", + ], + "Enable embed codes (content)" => [ + 0 => "Ota käyttöön upotuskoodit (sisältö)", + ], + "Everybody" => [ + 0 => "Kaikki", + ], + "Users only" => [ + 0 => "Vain käyttäjät", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Ota upotuskoodit käyttöön sisällölle.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Sopimatonta sisältöä -valintaruutu latauksessa", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Valitse tämä, jos haluat näyttää sopimatonta sisältöä -valintaruudun.", + ], + "Custom CSS code" => [ + 0 => "Mukautettu CSS-koodi", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Kirjoita mukautettu CSS-koodi tähän. Se tulee <style> -elementtiin juuri ennen </head> -elementtiä.", + ], + "Custom JS code" => [ + 0 => "Mukautettu JS-koodi", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Kirjoita mukautettu JS-koodi tähän. Se tulee <script> -elementtiin juuri ennen </head> -elementtiä.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Älä käytä %s -merkintää täällä. Tämä koskee tavallista JS-koodia, ei HTML-komentotunnisteita. Jos käytät komentotunnisteita täällä, rikot verkkosivustosi.", + ], + "Style" => [ + 0 => "Tyyli", + ], + "Landing page" => [ + 0 => "Aloitussivu", + ], + "Split landing + images" => [ + 0 => "Aloitussivu + kuvia", + ], + "Route %s" => [ + 0 => "Reitti %s", + ], + "upload" => [ + 0 => "Lataa", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Valitse etusivun tyyli. Muokataksesi lisää, mene app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Kannen kuva", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa tämän kuvan? Toimintoa ei voi perua.", + ], + "Delete image" => [ + 0 => "Poista kuva", + ], + "Add new cover image" => [ + 0 => "Lisää uusi kansikuva", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Vektori versio sivuston logosta SVG muodossa (vain etusivula).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Bitmap versio sivuston logosta (vain etusivula). PNG muoto on suositeltu.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Tämä lisätään etusivulle %s tagin sisään. Jätä se tyhjäksi käyttääksesi oletussisältöä.", + ], + "Paragraph" => [ + 0 => "Kappale", + ], + "Call to action button color" => [ + 0 => "Toimintapainikkeen väri", + ], + "Color of the homepage call to action button." => [ + 0 => "Etusivun toimintapainikkeen väri", + ], + "Call to action outline style button" => [ + 0 => "Toimintapainikkeen ääriviivan tyyli", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Ota käyttöön toimintapainikkeen ääriviivojen tyyli etusivulla.", + ], + "Call to action functionality" => [ + 0 => "Toiminnalisuus", + ], + "Trigger uploader" => [ + 0 => "Latauksen laukaisija", + ], + "Open URL" => [ + 0 => "Avaa osoite", + ], + "Call to action URL" => [ + 0 => "Osoite toiminnallisuus", + ], + "Enter an absolute or relative URL" => [ + 0 => "Anna absoluuttinen tai suhteellinen osoite", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Suhteellinen osoite %r osoittaa %l", + ], + "Call to action HTML" => [ + 0 => "HTML toiminnallisuus", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Tämä lisätään toiminnallisuuden <a> tagin sisään. Jätä se tyhjäksi käyttääksesi oletussisältöä.", + ], + "User IDs" => [ + 0 => "Käyttäjä ID:t", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Pilkuilla erotettu luettelo kohdekäyttäjätunnuksista kuvien näyttämiseksi kotisivulla. Jätä se tyhjäksi tai nollaksi nähdäksesi kaikki viimeisimmät kuvat.", + ], + "banners" => [ + 0 => "bannerit", + ], + "Automatic updates check" => [ + 0 => "Automaattinen päivitysten tarkistus", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Kun otettu käyttöön, järjestelmä tarkistaa automaattisesti uudet päivitykset.", + ], + "Display available updates notification" => [ + 0 => "Näytä ilmoitus päivityksistä", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Ota käyttöön ilmoitus uusista päivityksistä järjestelmään.", + ], + "Dump update query" => [ + 0 => "Tyhjennä päivityskysely", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Ota tämä käyttöön, jos haluat tunnistaa ja asettaa oikean kielen automaattisesti jokaiselle käyttäjälle.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URL-osoitteet", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Kytke tämä päälle, jos tahdot käyttää SEO %s osoitteita.", + ], + "Minify code" => [ + 0 => "Pakkaa koodi", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Ota käyttöön CSS ja JS koodin automaattinen pakkaus.", + ], + "Maintenance" => [ + 0 => "Huolto", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Kun otettu käyttöön, sivustolla näkyy huoltotila ilmoitus. Tämä asetus ei vaikuta pääkäyttäjille.", + ], + "Crypt salt" => [ + 0 => "Kryptauksen avain", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Tätä suolaa käytetään muuntamaan numerollisesta tunnisteesta aakkosnumeerinen. Se luotiin asennuksen aikana.", + ], + "PHP error reporting" => [ + 0 => "PHP virhe raportointi", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Ota käyttöön PHP:n <a %s>error_reporting()</a> viestien näyttö. Tämä tulee poistaa käytöstä tuotantoympäristössä.", + ], + "Debug level" => [ + 0 => "Debug taso", + ], + "None" => [ + 0 => "Ei mitään", + ], + "Error log" => [ + 0 => "Virheen kirjaus", + ], + "Print errors without error log" => [ + 0 => "Näytö virheet ilman virheen kirjausta", + ], + "Print and log errors" => [ + 0 => "Näytä ja kirjaa virheet", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Katso <a %s>debug ohjeet</a> konfiguroidaksesi sen. Oletusarvoisesti taso on \"Virheen kirjaus\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "Ohjauksen avulla voit muokata oletusohjauksen lennosta. Vain aakkosnumeerisia, tavuviiva ja alaviivat ovat sallittuja. Tutustu %s, jos haluat ylikirjoittaa tai lisätä uusia ohjauksia.", + ], + "Image routing" => [ + 0 => "Kuvan ohjaus", + ], + "Routing for %s" => [ + 0 => "%s ohjaus", + ], + "Album routing" => [ + 0 => "Albumin ohjaus", + ], + "Hostname" => [ + 0 => "Isäntänimi", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Isäntänimi, johon aliverkkotunnuksen yleismerkit lisätään.", + ], + "This setting may be overridden by %s." => [ + 0 => "%s voi ohittaa tämän asetuksen.", + ], + "Language subdomains" => [ + 0 => "Kielen aliverkkotunnukset", + ], + "languages" => [ + 0 => "Kielet", + ], + "Username subdomains" => [ + 0 => "Käyttäjätunnuksen aliverkkotunnukset", + ], + "user profiles" => [ + 0 => "käyttäjäprofiilit", + ], + "Custom language strings" => [ + 0 => "Muokatut kielikäännökset", + ], + "language strings" => [ + 0 => "kielikäännökset", + ], + "Default language" => [ + 0 => "Oletuskieli", + ], + "Default base language to use." => [ + 0 => "Oletuskieli käyttöä varten", + ], + "Auto language" => [ + 0 => "Automaattinen kielenvalinta", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Ota käyttöön automaattinen kielenvalinta käyttäjille.", + ], + "Language chooser" => [ + 0 => "Sivuston kielenvalinta", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Ota käyttöön kielenvalinta", + ], + "Enabled languages" => [ + 0 => "Sivustolla käytössä olevat kielet", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Valitse sivuston käyttämät kielet.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Laita HTTPS päälle tai pois", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Laita tallennustila päälle tai pois", + ], + "Quota" => [ + 0 => "Kiintiö", + ], + "Active" => [ + 0 => "Aktiivinen", + ], + "Storage method" => [ + 0 => "Säilytysmuoto", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Paikallista tallennustilaa käytetään oletuksena tai jos ulkoinen tallennustila ei ole aktiivinen.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Jos tarvitse apua, katso <a %s>säilytystilan ohjeet</a>.", + ], + "Edit storage" => [ + 0 => "Muokkaa tallennustilaa", + ], + "From name" => [ + 0 => "Nimellä", + ], + "Sender name for emails sent to users." => [ + 0 => "Sähköpostin lähettäjän nimi", + ], + "Email mode" => [ + 0 => "Sähköpostitila", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Kuinka sähköpostit lähetetään? SMTP on suositeltu.", + ], + "SMTP server and port" => [ + 0 => "SMTP-palvelin osoite ja portti", + ], + "SMTP server" => [ + 0 => "SMTP-palvlein", + ], + "SMTP username" => [ + 0 => "SMTP-käyttäjänimi", + ], + "SMTP password" => [ + 0 => "SMTP-salasana", + ], + "SMTP security" => [ + 0 => "SMTP-suojaustyyppi", + ], + "Unsecured" => [ + 0 => "Suojaamaton", + ], + "Decode ID" => [ + 0 => "Dekoodaus ID", + ], + "Encode ID" => [ + 0 => "Enkoodaus ID", + ], + "Send test email" => [ + 0 => "Lähetä testisähköposti", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Käytä tätä nähdäksesi kuinka sähköpostit lähetetään. Suosittelemme käyttämään %s.", + ], + "Export a user" => [ + 0 => "Vie käyttäjä", + ], + "Export user" => [ + 0 => "Vie käyttäjä", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Tämän avulla voit ladata käyttäjän vakiotiedot JSON-muodossa.", + ], + "Regenerate external storage stats" => [ + 0 => "Luo ulkoisen tallennustilan tilastot uudelleen", + ], + "Storage id" => [ + 0 => "Tallennustunnus", + ], + "Regenerate" => [ + 0 => "Luo uudelleen", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Tämä laskee uudelleen kaikkien kohdetietovälineeseen liittyvien kuvatietueiden summan.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Siirrä kuvatietueet ulkoisesta tallennustilasta toiseen", + ], + "Source storage id" => [ + 0 => "Lähteen tallennustilan tunnus", + ], + "Target storage id" => [ + 0 => "Kohteen tallennustilan tunnus", + ], + "Migrate" => [ + 0 => "Siirrä", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Tämä vain päivittää tietokannan. Sinun on siirrettävä todelliset tiedostot omaan kohdesäilöön. URL-osoitteiden uudelleenkirjoittaminen on erittäin suositeltavaa. Käytä nollaa (0) paikalliseen tallennustilaan.", + ], + "social networks" => [ + 0 => "sosiaaliset verkostot", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Tarvitset <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> sovelluksen tätä varten.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Tarvitset <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> sovelluksen tätä varten.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter-käyttäjätili", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Tarvitset <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> sovelluksen tätä varten.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Tarvitset <a href=\"http://vk.com/dev\" target=\"_blank\">VK ohjelman</a> tätä varten.", + ], + "VK client id" => [ + 0 => "CK asiakas id", + ], + "VK client secret" => [ + 0 => "VK asiakas salaisuus", + ], + "%s spam protection" => [ + 0 => "%s roskapostisuojaus", + ], + "user generated content" => [ + 0 => "käyttäjän luomaa sisältöä", + ], + "%s API key" => [ + 0 => "%s API avain", + ], + "user signup" => [ + 0 => "käyttäjän rekisteröityminen", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Tarvitset <a href=\"%s\" target=\"_blank\">reCAPTCHA avaimen</a> tätä varten.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Huomaa, että jokainen reCAPTCHA-versio vaatii oman avainsarjansa. Älä unohda päivittää avaimia, jos vaihdat versioita.", + ], + "%s site key" => [ + 0 => "%s sivuston avain", + ], + "%s secret key" => [ + 0 => "%s salainen avain", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA-kynnys", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Kuinka monta epäonnistunutta kirjautumisyritystä ennen kuin pyydetään reCAPTCHA? Käytä nollaa (0) näyttääksesi aina reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Pakota %s yhteydenotto sivulle", + ], + "Comments API" => [ + 0 => "Kommentointi API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API toimii %s kanssa.", + ], + "Disqus shortname" => [ + 0 => "Disqus lyhytnimi", + ], + "%s public key" => [ + 0 => "%s julkinen avain", + ], + "Comment code" => [ + 0 => "Kommenttikoodi", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook tai mitä ikinä käytätkin. Tätä käytetään kuvan katselutilassa.", + ], + "Automatic approve" => [ + 0 => "Hyväksy automaattisesti", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Ota tämä käyttöön, jos haluat hyväksyä tämän palvelun valvoman sisällön automaattisesti.", + ], + "Block content" => [ + 0 => "Estä sisältö", + ], + "Adult" => [ + 0 => "Aikuinen", + ], + "Teen and adult" => [ + 0 => "Nuori ja aikuinen", + ], + "Flag NSFW" => [ + 0 => "Liputa NSFW", + ], + "Analytics code" => [ + 0 => "Analytics-koodi", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics tai mitä ikinä käytätkin. Tämä koodi lisätään teemaan footeriin.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Ohjeet APIn käyttöön löytyy <a %s>täältä</a>", + ], + "API v1 key" => [ + 0 => "API v1 avain", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Käytä tätä avainta käyttäessäsi <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Liitännäisen ohjaus", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Ota käyttään liitännäisen ohjeet %u. Ohjeet tulee näkymään %s valikossa. Tämä asetus ei vaikuta ylläpitäjiin.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Aseta kustomoitu URL %p. Huomioi, että sinun tulee käsin kopioida se %s URL:iin.", + ], + "Cookie law compliance" => [ + 0 => "Evästeiden lakiteksti", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Ota käyttöön evästeisiin liittyvä EU:n lakiteksti-ilmoitus. Huomautus: Tarvitset tämän vain, jos verkkosivusi sijaitsee EU:ssa ja jos otat käyttöön seurantaevästeet.", + ], + "Save changes" => [ + 0 => "Tallenna muutokset", + ], + "Check the errors to proceed." => [ + 0 => "Tarkista virheet jatkaaksesi.", + ], + "Play GIF" => [ + 0 => "Toista GIF", + ], + "Load full resolution" => [ + 0 => "Lataa täydessä resoluutiossa", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "Haluatko todella poistaa kaiken valitun sisällön? Tätä ei voi kumota.", + ], + "Added to %a and categorized in %c" => [ + 0 => "Lisätty %a ja kategorioitu %c", + ], + "Added to %s" => [ + 0 => "Lisätty kohteeseen %s", + ], + "Uploaded to %s" => [ + 0 => "Lähetetty %s", + ], + "Uploaded %s" => [ + 0 => "Lähetetty %s", + ], + "Less Exif data" => [ + 0 => "Vähemmän Efix tietoja", + ], + "More Exif data" => [ + 0 => "Enemmän Exif-tietoja", + ], + "Share image" => [ + 0 => "Jaa kuva", + ], + "Album ID" => [ + 0 => "Albumin tunniste", + ], + "In this album" => [ + 0 => "Tässä albumissa", + ], + "Upload and share your images." => [ + 0 => "Lähetä ja jaa kuviasi.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Vedä ja pudota minne tahansa aloittaaksesi kuvien lataamisen. %s rajoitus. Suorat kuvalinkit, BBCode- ja HTML-kuvakkeet.", + ], + "Start uploading" => [ + 0 => "Aloita lataaminen", + ], + "Sign up to unlock all the features" => [ + 0 => "Rekisteröidy saadaksesi käyttöön kaikki huikeat ominaisuudet", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Hallitse sisältöäsi, luo yksityisiä albumeja, muokkaa profiiliasi ja paljon muuta.", + ], + "Sign in with your account" => [ + 0 => "Kirjaudu sisään tililläsi", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Ei tunnusta? <a href='%s'>Rekisteröidy</a> nyt.", + ], + "Logged out" => [ + 0 => "Kirjauduttu ulos", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Olet kirjautunut ulos palvelusta %s. Toivottavasti näemme pian uudelleen.", + ], + "Go to homepage" => [ + 0 => "Siirry etusivulle", + ], + "Website under maintenance" => [ + 0 => "Sivusto huollossa", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Suoritamme suunnitteltuja huoltotoimenpiteitä sivustolla. Tule takaisin muutaman minuutin päästä.", + ], + "This content is password protected." => [ + 0 => "Tämä sisältö on salasanalla suojattu.", + ], + "Please enter your password to continue." => [ + 0 => "Anna salasana jatkaaksesi.", + ], + "Send" => [ + 0 => "Lähetä", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Lisää kuvien lataus mahdollisuus verkkosivuille, blogiin tai foorumille asentamalla liitännäinen. Tämä lisää painikkeen sivuille mahdollistaen kuvien lataamisen palvelimelle ja hoitaa automaattisesti kaiken taustalla. Kaikki toiminnot saatavilla mm. kuvien lataaminen raahaamalla ja tiputtamalla, etälataus sekä kuvien kokojen automaattinen muuttaminen.", + ], + "Supported software" => [ + 0 => "Tuetut alustat", + ], + "supported software" => [ + 0 => "tuetut alustat", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Tämä liitännäinen toimii millä tahansa verkkosivulla, jolla käyttäjä voi muokata sisältöä. %sv latauspainike tulee näkymään automaattisesti työkalupalkissa ja ylimääräisiä muokkauksia ei siis tarvitse tehdä.", + ], + "Add it to your website" => [ + 0 => "Asentaminen", + ], + "options" => [ + 0 => "asetuksia", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Sijoita liitännäisen koodi verkkosivun HTML-koodiin (mieluiten head-osion sisään). Liitännäiseen löytyy paljon %o, joilla voit muokata sen paremmin tarpeisiisi.", + ], + "Basic options" => [ + 0 => "Asetukset", + ], + "Color palette" => [ + 0 => "Väripaletti", + ], + "Button color scheme" => [ + 0 => "Painikkeiden väriteema", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Upotuskoodit, jotka tulevat automaattisesti muokkauslaatikkoon", + ], + "Sibling selector" => [ + 0 => "Sisarvalikko", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Sisarelementin valitsin, johon sijoitetaan vieressä oleva painike", + ], + "Sibling position" => [ + 0 => "Sisarelementin sijainti", + ], + "After" => [ + 0 => "Jälkeen", + ], + "Before" => [ + 0 => "Ennen", + ], + "Position relative to sibling element" => [ + 0 => "Asema sisarelementtiin nähden", + ], + "Advanced options" => [ + 0 => "Edistyneet asetukset", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Tähän liitännäiseen on paljon edistyneitä muokkausasetuksia. Voit muokata mm. HTML, CSS, värejä, asettaa tarkkailijoita yms. Lue liitännäisen %d saadaksesi paremman käsityksen edistyneistä asetuksista.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Sinulla ei ole oikeutta tälle sivulle tai linkkisi on vanhentunut.", + ], + "Search results" => [ + 0 => "Hakutulokset", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Haluatko varmasti poistaa tämän käyttäjän? Toimintoa ei voi perua.", + ], + "Delete user" => [ + 0 => "Poista käyttäjä", + ], + "Register date" => [ + 0 => "Liittynyt", + ], + "Registration IP" => [ + 0 => "Rekisteröinti IP", + ], + "Valid" => [ + 0 => "Aktiivinen", + ], + "Banned" => [ + 0 => "Estetty", + ], + "Awaiting email" => [ + 0 => "Odottaa sähköpostia", + ], + "Awaiting confirmation" => [ + 0 => "Odottaa hyväksyntää", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "merkkejä %i-%f<br>Kirjaimia, numeroita ja \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Latausten automaattinen poisto", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Tämä on oletusasetus kaikkiin kuvien lataukseen. Voit muuttaa tämän asetuksen latauksen yhteydessä.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Pidä <a %s>Exif tiedot</a> kuvan latauksessa", + ], + "Newsletter" => [ + 0 => "Uutiskirje", + ], + "Send me emails with news about %s" => [ + 0 => "Lähetä minulle uutissähköposteja %s aiheesta", + ], + "Content settings" => [ + 0 => "Sisältöasetukset", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Näytä (muiden käyttäjien) sopimatonta sisältöä listauksissa", + ], + "Language" => [ + 0 => "Kieli", + ], + "Timezone" => [ + 0 => "Aikavyöhyke", + ], + "Current password" => [ + 0 => "Nykyinen salasana", + ], + "Enter your current password" => [ + 0 => "Kirjoita nykyinen salasanasi", + ], + "New password" => [ + 0 => "Uusi salasana", + ], + "Confirm new password" => [ + 0 => "Varmista uusi salasana", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Lisää salasana, jotta voit kirjautua myös käyttäjänimelläsi tai sähköpostillasi.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Tällä käyttäjällä ei ole salasanaa. Lisää sellainen käyttäen tätä lomaketta.", + ], + "Enter your password" => [ + 0 => "Syötä salasanasi", + ], + "Confirm password" => [ + 0 => "Salasana uudelleen", + ], + "Re-enter your password" => [ + 0 => "Kirjoita salasanasi uudelleen", + ], + "Upload new image" => [ + 0 => "Lähetä uusi kuva", + ], + "Delete existing image" => [ + 0 => "Poista olemassaoleva kuva", + ], + "Make my profile and identity totally private" => [ + 0 => "Tee profiilistani ja identiteetistäni täysin yksityinen", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Ota tämä käyttöön, jos haluat näkyä kuin anonyymi käyttäjä", + ], + "This is your real name, not your username." => [ + 0 => "Tämä on oikea nimesi, ei käyttäjänimesi.", + ], + "http://yourwebsite.com" => [ + 0 => "http://sinunsivusi.fi", + ], + "Bio" => [ + 0 => "Bio", + ], + "Tell us a little bit about you" => [ + 0 => "Kerro meille hieman sinusta", + ], + "User has no connections." => [ + 0 => "Käyttäjällä ei ole yhteyksiä.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Linkitä tilisi ulkoisiin palveluihin, jotta voit kirjautua sisään ja jakaa sisältöä.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Haluatko varmasti katkaista yhteyden %s käyttäjätunnukselta?", + ], + "This account is connected to %s" => [ + 0 => "Tämä käyttäjätunnus on yhdistetty palveluun %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Haluatko varmasti katkaista yhteyden %s käyttäjätunnuksella?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Sinut kirjataan ulos etkä voi enää kirjautua sisään %s käyttäjätunnuksella.", + ], + "Your account is connected to %s" => [ + 0 => "Käyttäjätunnuksesi on yhdistetty palveluun %s", + ], + "disconnect" => [ + 0 => "katkaise yhteys", + ], + "Connect %s" => [ + 0 => "Yhdistettynä %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Voit vapaasti selata kaikkia jakamiani kuvia ja albumeita.", + ], + "Button" => [ + 0 => "Painike", + ], + "View all my images" => [ + 0 => "Näytä kaikki kuvani", + ], + "Login" => [ + 0 => "Kirjaudu", + ], + "Already have an account? %s now." => [ + 0 => "Onko sinulla jo tunnus? %s nyt.", + ], + "resend account activation" => [ + 0 => "Lähetä uudelleen aktivointiviesti", + ], + "I'm at least %s years old" => [ + 0 => "Olen vähintään %s vuotta vanha", + ], + "Upload profile background" => [ + 0 => "Lähetä profiilin taustakuva", + ], + "Change background" => [ + 0 => "Vaihda taustakuva", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Profiilin taustakuva poistetaan. Toimintoa ei voi perua. Olethan varma poistaessasi kuvaa?", + ], + "Delete background" => [ + 0 => "Poista taustakuva", + ], + "Follower" => [ + 0 => "Seuraaja", + 1 => "Seuraajaa", + ], + "Follow" => [ + 0 => "Seuraa", + ], + "You have been forbidden to use this website." => [ + 0 => "Sinulla ei ole oikeuksia käyttää tätä sivustoa.", + ], + "Plugin" => [ + 0 => "Liitännäinen", + ], + "General questions/comments" => [ + 0 => "Yleiset kysymykset/kommentit", + ], + "DMCA complaint" => [ + 0 => "Tekijänoikeusrikkomus", + ], + "Invalid message" => [ + 0 => "Virheellinen viesti", + ], + "Invalid subject" => [ + 0 => "Virheellinen aihe", + ], + "Mail error" => [ + 0 => "Sähköpostivirhe", + ], + "Message sent" => [ + 0 => "Viesti lähetetty", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Viesti lähetetty. Olemme sinuun yhteydessä pian.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Ota yhteyttä alla olevan lomakkeen kautta.", + ], + "Your name" => [ + 0 => "Nimi", + ], + "Subject" => [ + 0 => "Aihe", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Kaikki muutoksesi menetetään, jos jatkat.", + ], + "Changes saved successfully." => [ + 0 => "Muutokset tallennettu onnistuneesti.", + ], + "Go back to form" => [ + 0 => "Siirry takaisin lomakkeeseen", + ], + "continue anyway" => [ + 0 => "jatka silti", + ], + "Saving" => [ + 0 => "Tallennetaan", + ], + "Sending" => [ + 0 => "Lähetetään", + ], + "Confirm action" => [ + 0 => "Hyväksy toiminto", + ], + "information" => [ + 0 => "tiedot", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/fr.po.cache.php b/app/.cache/languages/fr.po.cache.php new file mode 100644 index 0000000..72ca06e --- /dev/null +++ b/app/.cache/languages/fr.po.cache.php @@ -0,0 +1,3477 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-19 15:47+0000', + 'PO-Revision-Date' => '2021-06-19 15:47+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'fr', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n > 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Adresse email incorrecte", + ], + "Invalid username" => [ + 0 => "Nom d'utilisateur incorrect", + ], + "Invalid password" => [ + 0 => "Mot de passe incorrect", + ], + "Installed version is v%s" => [ + 0 => "La version installée est v%s", + ], + "Can't connect to %s" => [ + 0 => "Vous ne pouvez pas vous connecter à %s", + ], + "Last available release is v%s" => [ + 0 => "La dernière version disponible est v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Mise à jour nécessaire, lancement du téléchargement", + ], + "No update needed" => [ + 0 => "Aucune mise à jour nécessaire", + ], + "System files already up to date" => [ + 0 => "Vous possédez déjà la dernière version.", + ], + "Starting v%s download" => [ + 0 => "Début du téléchargement v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s téléchargé, lancement de l'extraction", + ], + "Attempting to extract v%s" => [ + 0 => "Tentative d'extraction de v%s", + ], + "Extraction completed" => [ + 0 => "Extraction terminée", + ], + "Proceding to install the update" => [ + 0 => "Procéder à l'installation de la mise à jour", + ], + "Update failed" => [ + 0 => "La mise à jour a échoué", + ], + "Update in progress" => [ + 0 => "Mise à jour en cours", + ], + "Missing %s file" => [ + 0 => "Fichier %s manquant", + ], + "Invalid license info" => [ + 0 => "Info de licence non valide", + ], + "Can't save file" => [ + 0 => "Impossible d'enregistrer le fichier", + ], + "Can't extract %s" => [ + 0 => "Extraction impossible de %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Impossible de créer le répertoire %s - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Impossible de mettre à jour le fichier %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Vérifiez les erreurs dans le formulaire pour continuer.", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Remarque : Ce contenu est privé mais toute personne disposant du lien pourra y accéder.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Remarque: Ce contenu est protégé par mot de passe mais toute personne ayant le mot de passe sera en mesure de voir cela.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Note : Ce contenu est privé. Changez la confidentialité à \"publique\" pour le partager.", + ], + "You must enter the album name." => [ + 0 => "Vous devez saisir le nom de l'album.", + ], + "Confirm" => [ + 0 => "Confirmer", + ], + "The content has been approved." => [ + 0 => "Ce contenu a été approuvé.", + ], + "Select existing album" => [ + 0 => "Choisir un album existant", + ], + "An error occurred. Please try again later." => [ + 0 => "Une erreur est survenue. Veuillez réessayer plus tard.", + ], + "Please select a valid image file type." => [ + 0 => "Veuillez sélectionner un type de fichier image valide.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Veuillez sélectionner une image d'une taille d'au plus %s.", + ], + "Profile image updated." => [ + 0 => "Image de profil mise à jour.", + ], + "Profile background image updated." => [ + 0 => "Photo de couverture mise à jour.", + ], + "Profile background image deleted." => [ + 0 => "Photo de couverture supprimée.", + ], + "Error deleting profile background image." => [ + 0 => "Erreur lors de la suppression de la photo de couverture.", + ], + "Passwords don't match" => [ + 0 => "Les mots de passe ne correspondent pas", + ], + "Update available v%s" => [ + 0 => "Mise à jour disponible v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Il ya une mise à jour disponible pour votre système. Vous pouvez télécharger et installer automatiquement cette mise à jour ou aller sur %s pour lancer le téléchargement du fichier.", + ], + "The release notes for this update are:" => [ + 0 => "Les notes de version de cette mise à jour sont les suivantes :", + ], + "system requirements" => [ + 0 => "exigences du système", + ], + "I confirm that this server meets the %s for this update" => [ + 0 => "Je confirme que ce serveur répond à %s de cette mise à jour", + ], + "Update now" => [ + 0 => "Mettre à jour maintenant", + ], + "This website is running latest %s version" => [ + 0 => "Ce site web utilise la dernière version %s", + ], + "Please review the system requirements before proceeding" => [ + 0 => "Veuillez consulter la configuration requise avant de poursuivre", + ], + "loading" => [ + 0 => "chargement", + ], + "Toggle select" => [ + 0 => "Basculer la sélection", + ], + "Like" => [ + 0 => "J'aime", + ], + "Toggle flag" => [ + 0 => "Basculer le drapeau", + ], + "Edit" => [ + 0 => "Modifier", + ], + "Album" => [ + 0 => "Album", + 1 => "Albums", + ], + "Approve" => [ + 0 => "Approuver", + ], + "Delete" => [ + 0 => "Supprimer", + ], + "Close" => [ + 0 => "Fermer", + ], + "Previous" => [ + 0 => "Précédent", + ], + "Next" => [ + 0 => "Suivant", + ], + "Clipboard image" => [ + 0 => "Image du presse-papier", + ], + "File too big." => [ + 0 => "Fichier trop volumineux.", + ], + "Invalid or unsupported file format." => [ + 0 => "Format de fichier incorrect ou non pris en charge.", + ], + "Some files couldn't be added" => [ + 0 => "Certains fichiers n'ont pu être ajoutés", + ], + "image" => [ + 0 => "image", + 1 => "images", + ], + "%s's Albums" => [ + 0 => "Les albums de %s", + ], + "Image edited successfully." => [ + 0 => "Image modifiée avec succès.", + ], + "private" => [ + 0 => "privé", + ], + "Album edited successfully." => [ + 0 => "Album modifié avec succès.", + ], + "Invalid URL key." => [ + 0 => "Clé URL non valide.", + ], + "Category URL key already being used." => [ + 0 => "Clé URL de catégorie déjà utilisée.", + ], + "Category successfully deleted." => [ + 0 => "Catégorie supprimée avec succès.", + ], + "Category %s added." => [ + 0 => "Catégorie %s ajoutée.", + ], + "Invalid expiration date." => [ + 0 => "Date d'expiration non valide.", + ], + "IP %s already banned." => [ + 0 => "IP %s déjà bannie.", + ], + "IP %s banned." => [ + 0 => "IP %s bannie.", + ], + "IP ban successfully deleted." => [ + 0 => "Bannissement IP supprimé avec succès.", + ], + "Please fill all the required fields." => [ + 0 => "Merci de compléter tous les champs requis.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Capacité de stockage invalide. Merci d'utiliser un format valide.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "La capacité de stockage ne peut pas être inférieure à son usage actuel (%s).", + ], + "Invalid URL." => [ + 0 => "URL non valide.", + ], + "Storage successfully edited." => [ + 0 => "Stockage modifié avec succès.", + ], + "User added successfully." => [ + 0 => "Utilisateur ajouté avec succès.", + ], + "The content has been deleted." => [ + 0 => "Ce contenu a été supprimé.", + ], + "The content has been moved." => [ + 0 => "Ce contenu a été déplacé.", + ], + "Select" => [ + 0 => "Sélectionner", + ], + "Unselect" => [ + 0 => "Désélectionner", + ], + "The content has been edited." => [ + 0 => "Ce contenu a été modifié.", + ], + "Import ID %s removed" => [ + 0 => "ID d'importation %s supprimé", + ], + "Spam detected" => [ + 0 => "Spam détecté", + ], + "album" => [ + 0 => "album", + 1 => "albums", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Flooding détecté. Vous ne pouvez télécharger que %limit% %content% par %time%.", + ], + "Untitled" => [ + 0 => "Sans titre", + ], + "%s's images" => [ + 0 => "Images de %s", + ], + "Private" => [ + 0 => "Privé", + ], + "Public" => [ + 0 => "Publique", + ], + "Me" => [ + 0 => "Moi", + ], + "Link" => [ + 0 => "Lien", + ], + "Password" => [ + 0 => "Mot de passe", + ], + "view" => [ + 0 => "vue", + 1 => "vues", + ], + "After %n %t" => [ + 0 => "Après %n %t", + ], + "minute" => [ + 0 => "minute", + 1 => "minutes", + ], + "hour" => [ + 0 => "heure", + 1 => "heures", + ], + "day" => [ + 0 => "jour", + 1 => "jours", + ], + "week" => [ + 0 => "semaine", + 1 => "semaines", + ], + "month" => [ + 0 => "mois", + 1 => "mois", + ], + "year" => [ + 0 => "an", + 1 => "ans", + ], + "Don't autodelete" => [ + 0 => "Pas d'auto suppression", + ], + "Can't open %s for writing" => [ + 0 => "Impossible d'ouvrir %s pour écriture", + ], + "Duplicated upload" => [ + 0 => "Envoi dupliqué", + ], + "Private upload" => [ + 0 => "Envoi privé", + ], + "like" => [ + 0 => "j'aime", + 1 => "j'aime", + ], + "Recent" => [ + 0 => "Récent", + ], + "Trending" => [ + 0 => "Tendances", + ], + "Top users" => [ + 0 => "Utilisateurs principaux", + ], + "Most recent" => [ + 0 => "Plus récentes", + ], + "Oldest" => [ + 0 => "Plus anciennes", + ], + "Most viewed" => [ + 0 => "Plus vues", + ], + "Popular" => [ + 0 => "Populaire", + ], + "Most liked" => [ + 0 => "Plus aimés", + ], + "Explore" => [ + 0 => "Explorer", + ], + "Animated" => [ + 0 => "Animé", + ], + "Search" => [ + 0 => "Rechercher", + ], + "People" => [ + 0 => "Personnes", + ], + "Image" => [ + 0 => "Image", + 1 => "Images", + ], + "User" => [ + 0 => "Utilisateur", + 1 => "Utilisateurs", + ], + "adult" => [ + 0 => "adulte", + ], + "teen" => [ + 0 => "adolescent", + ], + "Content of type %s is forbidden" => [ + 0 => "Le contenu du type %s est interdit", + ], + "Can't create %s destination dir" => [ + 0 => "Impossible de créer le dossier de destination %s", + ], + "Internal" => [ + 0 => "Interne", + ], + "Unlimited" => [ + 0 => "Illimité", + ], + "used" => [ + 0 => "utilisé", + ], + "Private profile" => [ + 0 => "Profil privé", + ], + "second" => [ + 0 => "seconde", + 1 => "secondes", + ], + "%s ago" => [ + 0 => "il y a %s", + ], + "moments ago" => [ + 0 => "il y a peu de temps", + ], + "Dashboard" => [ + 0 => "Tableau de bord", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Il y a une mise à jour disponible pour votre système. Aller à %s pour télécharger et installer cette mise à jour.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "La base de données système n'est pas à jour. Vous devez utiliser l'outil de <a href=\"%s\">mise à jour</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Le site web est en mode maintenance. Pour annuler ce paramètre, allez sur le <a href=\"%s\">Tableau de bord > Paramètres</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Vous devez désactiver les rapports d'erreur PHP pour l'environnement de production. Aller dans les <a href='%s'>paramètres</a> pour résoudre ce problème.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Vous n'avez pas modifié les paramètres email par défaut. Modifiez votre <a href='%s'>Compte</a> pour résoudre ce problème.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Il y a une mise à jour disponible pour votre site Chevereto.", + ], + "admin dashboard" => [ + 0 => "Tableau de bord administrateur", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Vous pouvez appliquer cette mise à jour directement à partir de votre %a ou la télécharger à partir de %s puis l'installer manuellement.", + ], + "view on %s" => [ + 0 => "vue sur %s", + ], + "cookie policy" => [ + 0 => "politique des cookies", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Nous utilisons nos propres cookies et ceux de tiers pour améliorer votre expérience de navigation et nos services. Si vous continuez à utiliser notre site, il est entendu que vous acceptez la %cookie_policy_link.", + ], + "I understand" => [ + 0 => "je comprends", + ], + "Forgot password?" => [ + 0 => "Mot de passe oublié ?", + ], + "Reset password" => [ + 0 => "Réinitialiser le mot de passe", + ], + "Resend account activation" => [ + 0 => "Renvoyer l'email d'activation du compte", + ], + "Add your email address" => [ + 0 => "Ajouter votre adresse email", + ], + "Email changed" => [ + 0 => "Adresse email modifiée", + ], + "%s says you are a robot" => [ + 0 => "%s dit que vous êtes un robot", + ], + "Invalid Username/Email" => [ + 0 => "Nom d'utilisateur/email incorrect", + ], + "User doesn't have an email." => [ + 0 => "L'utilisateur n'a pas d'adresse email.", + ], + "Request denied" => [ + 0 => "Demande refusée", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Le compte doit être activé pour utiliser cette fonctionnalité", + ], + "Account already activated" => [ + 0 => "Compte déjà activé", + ], + "Account banned" => [ + 0 => "Compte banni", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Merci de patienter 15 minutes pour le traitement de l'email. Vous pourrez réessayer ultérieurement.", + ], + "Reset your password at %s" => [ + 0 => "Réinitialisez votre mot de passe sur %s", + ], + "Confirmation required at %s" => [ + 0 => "Validation de votre compte sur %s", + ], + "Welcome to %s" => [ + 0 => "Bienvenue sur %s", + ], + "Email already being used" => [ + 0 => "Adresse email déjà utilisée", + ], + "Password required" => [ + 0 => "Mot de passe requis", + ], + "Embed codes" => [ + 0 => "Codes d'intégration", + ], + "Sub albums" => [ + 0 => "Sous albums", + ], + "Info" => [ + 0 => "Informations", + ], + "%a album hosted in %w" => [ + 0 => "Album %a hébergé dans %w", + ], + "Stats" => [ + 0 => "Statistiques", + ], + "Images" => [ + 0 => "Images", + ], + "Albums" => [ + 0 => "Albums", + ], + "Users" => [ + 0 => "Utilisateurs", + ], + "Settings" => [ + 0 => "Paramètres", + ], + "Bulk importer" => [ + 0 => "Importer en masse", + ], + "install update" => [ + 0 => "Installer la mise à jour", + ], + "check for updates" => [ + 0 => "rechercher les mises à jour", + ], + "Contributing" => [ + 0 => "Contribuer", + ], + "Support" => [ + 0 => "Support", + ], + "Bug tracking" => [ + 0 => "Suivi des bugs", + ], + "Documentation" => [ + 0 => "Documentation", + ], + "PHP version" => [ + 0 => "Version de PHP", + ], + "Server" => [ + 0 => "Serveur", + ], + "MySQL version" => [ + 0 => "Version de MySQL", + ], + "MySQL server info" => [ + 0 => "Infos du serveur MySQL", + ], + "Graphics Library" => [ + 0 => "Bibliothèque graphique", + ], + "File uploads" => [ + 0 => "Envoi de fichiers", + ], + "Enabled" => [ + 0 => "Activé", + ], + "Disabled" => [ + 0 => "Désactivé", + ], + "Max. upload file size" => [ + 0 => "Taille maximum de l'image importée", + ], + "Max. post size" => [ + 0 => "Taille d'envoi du formulaire maximale", + ], + "Max. execution time" => [ + 0 => "Temps d'exécution maximal", + ], + "%d second" => [ + 0 => "%d seconde", + 1 => "%d secondes", + ], + "Memory limit" => [ + 0 => "Limite de mémoire", + ], + "Rebuild stats" => [ + 0 => "Reconstruire les stats", + ], + "Connecting IP" => [ + 0 => "IP de connexion", + ], + "Not your IP?" => [ + 0 => "Pas votre IP ?", + ], + "Website" => [ + 0 => "Site web", + ], + "Content" => [ + 0 => "Contenu", + ], + "Pages" => [ + 0 => "Pages", + ], + "Listings" => [ + 0 => "Listes", + ], + "Image upload" => [ + 0 => "Envoi d'image", + ], + "Categories" => [ + 0 => "Catégories", + ], + "Consent screen" => [ + 0 => "Disclamer", + ], + "Flood protection" => [ + 0 => "Protection flood", + ], + "Theme" => [ + 0 => "Thème", + ], + "Homepage" => [ + 0 => "Page d'accueil", + ], + "Banners" => [ + 0 => "Bannières", + ], + "System" => [ + 0 => "Système", + ], + "Routing" => [ + 0 => "Adressage", + ], + "Languages" => [ + 0 => "Langues", + ], + "External storage" => [ + 0 => "Stockage externe", + ], + "Email" => [ + 0 => "Adresse email", + ], + "Social networks" => [ + 0 => "Réseaux sociaux", + ], + "External services" => [ + 0 => "Services externes", + ], + "IP bans" => [ + 0 => "Bannissements IP", + ], + "Additional settings" => [ + 0 => "Paramètres additionnels", + ], + "Tools" => [ + 0 => "Outils", + ], + "Can't delete all homepage cover images" => [ + 0 => "Vous ne pouvez pas supprimer toutes les images de la page d'accueil", + ], + "Homepage cover image deleted" => [ + 0 => "Image de la page d'accueil supprimé", + ], + "Local" => [ + 0 => "Local", + ], + "External" => [ + 0 => "Externe", + ], + "All" => [ + 0 => "Tout", + ], + "search content" => [ + 0 => "rechercher du contenu", + ], + "Add page" => [ + 0 => "Ajouter page", + ], + "Edit page ID %s" => [ + 0 => "Modifier la page ID %s", + ], + "The page has been added successfully." => [ + 0 => "La page a été ajoutée avec succès.", + ], + "The page has been deleted." => [ + 0 => "Cette page a été supprimée.", + ], + "homepage" => [ + 0 => "Page d'accueil", + ], + "Before main title (%s)" => [ + 0 => "Avant le titre (%s)", + ], + "After call to action (%s)" => [ + 0 => "Après le bouton (%s)", + ], + "After cover (%s)" => [ + 0 => "Après la photo (%s)", + ], + "After listing (%s)" => [ + 0 => "Après la liste d'images (%s)", + ], + "Before pagination" => [ + 0 => "Avant pagination", + ], + "After pagination" => [ + 0 => "Après pagination", + ], + "Content (image and album)" => [ + 0 => "Contenu (image et album)", + ], + "Tab about column" => [ + 0 => "Colonne du menu à propos", + ], + "Before comments" => [ + 0 => "Avant les commentaires", + ], + "Image page" => [ + 0 => "Page de l'image", + ], + "Inside viewer top (image page)" => [ + 0 => "Intérieur du haut de la page visualisation (page image)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Intérieur du bas de la page visualisation (page image)", + ], + "After image viewer (image page)" => [ + 0 => "Après la page de visualisation (page image)", + ], + "Before header (image page)" => [ + 0 => "Avant le haut de page (page image)", + ], + "After header (image page)" => [ + 0 => "Après le haut de page (page image)", + ], + "Footer (image page)" => [ + 0 => "Bas de page (page image)", + ], + "Album page" => [ + 0 => "Page album", + ], + "Before header (album page)" => [ + 0 => "Avant le haut de page (page album)", + ], + "After header (album page)" => [ + 0 => "Après le haut de page (page album)", + ], + "User profile page" => [ + 0 => "Page de profil utilisateur", + ], + "After top (user profile)" => [ + 0 => "Après le haut de page (profil utilisateur)", + ], + "Before listing (user profile)" => [ + 0 => "Avant le listing (profil utilisateur)", + ], + "Explore page" => [ + 0 => "Page explorer", + ], + "After top (explore page)" => [ + 0 => "Après le haut de page (page explorer)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Nom de site web incorrect", + ], + "Invalid language" => [ + 0 => "Langage incorrect", + ], + "Invalid timezone" => [ + 0 => "Fuseau horaire incorrect", + ], + "Invalid value: %s" => [ + 0 => "Valeur invalide : %s", + ], + "Invalid upload storage mode" => [ + 0 => "Mode de stockage d'envois incorrect", + ], + "Invalid upload filenaming" => [ + 0 => "Nommage de fichiers envoyés incorrect", + ], + "Invalid thumb width" => [ + 0 => "Largeur des miniatures incorrecte", + ], + "Invalid thumb height" => [ + 0 => "Hauteur de miniature incorrecte", + ], + "Invalid medium size" => [ + 0 => "Taille moyenne invalide", + ], + "Invalid watermark percentage" => [ + 0 => "Pourcentage du filigrane non valide", + ], + "Invalid watermark opacity" => [ + 0 => "Opacité du filigrane non valide", + ], + "Invalid theme" => [ + 0 => "Thème non valide", + ], + "Invalid value" => [ + 0 => "Valeur incorrect", + ], + "Invalid theme tone" => [ + 0 => "Ton de thème non valide", + ], + "Invalid theme main color" => [ + 0 => "Couleur principale du thème incorrecte", + ], + "Invalid theme top bar button color" => [ + 0 => "Couleur du bouton de la barre supérieure du thème non valide", + ], + "Invalid theme image listing size" => [ + 0 => "Taille de thème de listing d'images non valide", + ], + "Invalid user id" => [ + 0 => "ID utilisateur non valide", + ], + "Invalid email mode" => [ + 0 => "Mode email non valide", + ], + "Invalid SMTP port" => [ + 0 => "Port SMTP non valide", + ], + "Invalid SMTP security" => [ + 0 => "Sécurité SMTP non valide", + ], + "Invalid website mode" => [ + 0 => "Mode de site web non valide", + ], + "Invalid personal mode user ID" => [ + 0 => "ID utilisateur du mode personnel non valide", + ], + "Invalid or reserved route" => [ + 0 => "Route réservée ou non valide", + ], + "Invalid website privacy mode" => [ + 0 => "Mode de confidentialité de site web non valide", + ], + "Invalid website content privacy mode" => [ + 0 => "Mode de confidentialité du contenu de site web non valide", + ], + "Invalid homepage style" => [ + 0 => "Style de page d'accueil non valide", + ], + "Invalid homepage call to action button color" => [ + 0 => "Couleur du bouton d'action de l'accueil non valide", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Fonctionnalité d'appel à l'action de la page d'accueil non valide", + ], + "Invalid title" => [ + 0 => "Titre non valide", + ], + "Invalid status" => [ + 0 => "Statut non valide", + ], + "Invalid type" => [ + 0 => "Type non valide", + ], + "Invalid visibility" => [ + 0 => "Visibilité non valide", + ], + "Invalid internal type" => [ + 0 => "Type interne non valide", + ], + "Invalid target attribute" => [ + 0 => "Attribut cible non valide", + ], + "Invalid rel attribute" => [ + 0 => "Attribut rel non valide", + ], + "Invalid icon" => [ + 0 => "Icône non valide", + ], + "Invalid URL key" => [ + 0 => "Clé URL non valide", + ], + "Invalid file path" => [ + 0 => "Chemin de fichier non valide", + ], + "Invalid link URL" => [ + 0 => "Lien URL non valide", + ], + "Invalid user minimum age" => [ + 0 => "Age minimum invalide", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Seuls les caractères alphanumériques, les traits d'union et les underscore sont autorisés", + ], + "Invalid URL" => [ + 0 => "URL non valide", + ], + "Routes can't be the same" => [ + 0 => "Les adressages ne peuvent pas être identiques.", + ], + "Invalid upload image path" => [ + 0 => "Répertoire d'envoi d'images non valide", + ], + "Invalid call to action URL" => [ + 0 => "URL d'appel à l'action non valide", + ], + "Max. allowed %s" => [ + 0 => "Max. autorisé %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Impossible d'adresser %m à un dossier existant (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Impossible d'adresser %m à un adressage existant (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Impossible d'adresser %m à %r (Collision de nom d'utilisateur)", + ], + "Invalid SMTP server" => [ + 0 => "Serveur SMTP non valide", + ], + "Invalid SMTP username" => [ + 0 => "Nom d'utilisateur SMTP non valide", + ], + "Invalid key" => [ + 0 => "Clé non valide", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Cette URL clé est déjà utilisée par une autre page (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Ce chemin de fichier est déjà utilisé par une autre page (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Impossible de sauvegarder le contenu de la page : %s.", + ], + "Following" => [ + 0 => "Abonnements", + ], + "About" => [ + 0 => "À Propos", + ], + "Image ID" => [ + 0 => "ID de l'image", + ], + "Uploader IP" => [ + 0 => "IP de l'émetteur", + ], + "Ban IP" => [ + 0 => "Bannissement IP", + ], + "IP already banned" => [ + 0 => "IP déjà bannie", + ], + "Upload date" => [ + 0 => "Date de l'envoi", + ], + "Image %i in %a album" => [ + 0 => "Image %i dans l'album %a", + ], + "Image %i in %c category" => [ + 0 => "Image %i dans la catégorie %c", + ], + "Image %i hosted in %w" => [ + 0 => "Image %i hébergée dans %w", + ], + "Direct links" => [ + 0 => "Liens directs", + ], + "Image link" => [ + 0 => "Lien vers cette page", + ], + "Image URL" => [ + 0 => "Lien direct vers l'image", + ], + "Thumbnail URL" => [ + 0 => "URL de la miniature", + ], + "Medium URL" => [ + 0 => "URL intermédiaire", + ], + "Full image" => [ + 0 => "Image complète", + ], + "Full image (linked)" => [ + 0 => "Image complète (Lien raccourci)", + ], + "Medium image (linked)" => [ + 0 => "Miniature de l'image (Lien raccourci)", + ], + "Thumbnail image (linked)" => [ + 0 => "Miniature de l'image (Lien raccourci)", + ], + "Login needed" => [ + 0 => "Connexion requise", + ], + "IP address already banned" => [ + 0 => "L'adresse IP est déjà bannie", + ], + "Missing values" => [ + 0 => "Valeurs manquantes", + ], + "Invalid role" => [ + 0 => "Rôle non valide", + ], + "Username already being used" => [ + 0 => "Nom d'utilisateur déjà utilisé", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Ajouter un mot de passe ou un réseau sociale avant de supprimer %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Ajouter une adresse email ou un réseau sociale avant de supprimer %s", + ], + "%s has been disconnected." => [ + 0 => "%s a été déconnecté.", + ], + "Test email from %s @ %t" => [ + 0 => "Email test de %s @ %t", + ], + "This is just a test" => [ + 0 => "Ceci est juste un test", + ], + "Test email sent to %s." => [ + 0 => "Email de test envoyé à %s", + ], + "Downloading %s data" => [ + 0 => "Téléchargement des données %s", + ], + "User %s followed" => [ + 0 => "Abonné à l'utilisateur %s", + ], + "User %s unfollowed" => [ + 0 => "Désabonné de l'utilisateur %s", + ], + "Album cover altered" => [ + 0 => "Couverture d'album modifiée", + ], + "Content liked" => [ + 0 => "Contenus aimés", + ], + "Content disliked" => [ + 0 => "Contenus non aimés", + ], + "%u liked your %t %c" => [ + 0 => "%u a aimé votre %t %c", + ], + "%u is now following you" => [ + 0 => "%u vous suit désormais", + ], + "A private user" => [ + 0 => "Utilisateur privé", + ], + "Wrong Username/Email password combination" => [ + 0 => "L'identifiant ou le mot de passe est incorrect", + ], + "Sign in" => [ + 0 => "Connexion", + ], + "Moderate" => [ + 0 => "Modéré", + ], + "Upload images" => [ + 0 => "Importer des images", + ], + "Upload plugin" => [ + 0 => "Envoyer un plugin", + ], + "Image search results for %s" => [ + 0 => "Résultats de la recherche d'image pour %s", + ], + "Album search results for %s" => [ + 0 => "Résultats de la recherche d'album pour %s", + ], + "User search results for %s" => [ + 0 => "Résultats de la recherche d'utilisateur pour %s", + ], + "Account" => [ + 0 => "Compte", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Comptes liés", + ], + "Powered by" => [ + 0 => "Propulsé par", + ], + "Invalid image expiration: %s" => [ + 0 => "Expiration d'image invalide : %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Un email contenant des instructions pour l'activation du compte a été envoyé à l'adresse %s", + ], + "Invalid name" => [ + 0 => "Nom d'utilisateur incorrect", + ], + "Invalid website" => [ + 0 => "Site web non valide", + ], + "Wrong password" => [ + 0 => "Mot de passe incorrect", + ], + "Use a new password" => [ + 0 => "Utiliser un nouveau mot de passe", + ], + "Changes have been saved." => [ + 0 => "Les modifications ont été enregistrées.", + ], + "Password has been changed" => [ + 0 => "Le mot de passe a été modifié", + ], + "Password has been created." => [ + 0 => "Le mot de passe a été créé.", + ], + "Wrong Username/Email values" => [ + 0 => "Identifiant incorrect", + ], + "Settings for %s" => [ + 0 => "Paramètres pour %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Vous devez accepter les conditions générales et la politique de confidentialité", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Vous devez avoir plus de %s pour utiliser ce site.", + ], + "Create account" => [ + 0 => "Créer un compte", + ], + "Upload" => [ + 0 => "Envoyer", + ], + "%s's Images" => [ + 0 => "Images de %s", + ], + "Results for" => [ + 0 => "Résultats pour", + ], + "Liked by %s" => [ + 0 => "Aimé par %s", + ], + "Liked" => [ + 0 => "Aimé", + ], + "Followers" => [ + 0 => "Abonnés", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albums dans %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) sur %w", + ], + "Discovery" => [ + 0 => "Découverte", + ], + "Random" => [ + 0 => "Aléatoire", + ], + "Advanced search" => [ + 0 => "Recherche avancée", + ], + "Notices (%s)" => [ + 0 => "Notifications (%s)", + ], + "Notifications" => [ + 0 => "Notifications", + ], + "You don't have notifications" => [ + 0 => "Vous n'avez pas de notifications", + ], + "My Profile" => [ + 0 => "Mon Profil", + ], + "Lights" => [ + 0 => "Lumières", + ], + "Sign out" => [ + 0 => "Déconnexion", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Nous avons reçu une demande de changement d'adresse email de votre compte <a href=\"%u\">%n</a> sur %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Pour finaliser votre demande vous devez <a href=\"%s\">activer votre adresse email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Vous pouvez également copier-coller cette adresse dans votre navigateur : <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Si vous n'avez pas fait de telle demande, veuillez ignorer ce message.", + ], + "This request was made from IP: %s" => [ + 0 => "Cette demande a été effectuée depuis l'adresse IP : %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Nous avons reçu une demande de création du compte %n sur %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Pour finaliser votre demande vous devez <a href=\"%s\">activer votre compte</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Nous avons reçu une demande de réinitialisation de mot de passe du compte <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Pour réinitialiser votre mot de passe <a href=\"%s\">suivez ce lien</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Bonjour %n nous te souhaitons la bienvenue sur %w !", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Votre compte est désormais en ligne ! Vous pouvez dès maintenant envoyer des images et créez des albums. N'hésitez pas à partager votre contenu avec vos amis ! Vous avez également la possibilité de changer les paramètres de confidentialité dans les réglages de votre compte.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Consulter votre profil ici : <a href=\"%u\">%n</a>. N'hésitez pas à le personnaliser il est à vous !", + ], + "Thank you for joining" => [ + 0 => "Merci de rejoindre", + ], + "This email was sent from %w %u" => [ + 0 => "Ce message a été envoyé par %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Glisser-déposer ou coller les images ici pour les envoyer", + ], + "Select the images to upload" => [ + 0 => "Sélectionnez les images à envoyer", + ], + "browse from your computer" => [ + 0 => "Parcourez votre ordinateur", + ], + "add image URLs" => [ + 0 => "Ajouter des URL d'image", + ], + "You can also %i or %u." => [ + 0 => "Vous pouvez également %i ou %u.", + ], + "browse from your device" => [ + 0 => "parcourir depuis votre appareil", + ], + "take a picture" => [ + 0 => "prendre une photo", + ], + "You can also %i, %c or %u." => [ + 0 => "Vous pouvez également %i, %c ou %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Modifiez ou redimensionnez toute image en cliquant sur l'aperçu de l'image", + ], + "Edit any image by touching the image preview" => [ + 0 => "Modifier n'importe quelle image en touchant l'aperçu de l'image", + ], + "your computer" => [ + 0 => "votre ordinateur", + ], + "You can add more images from %i or %u." => [ + 0 => "Vous pouvez ajouter d'autres images à partir de %i ou %u.", + ], + "your device" => [ + 0 => "votre appareil", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Vous pouvez ajouter d'autres images à partir de %i, %c ou %u.", + ], + "Uploading %q %o" => [ + 0 => "Importation %q %o", + ], + "complete" => [ + 0 => "complété", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "La liste est en cours d'importation, il ne reste que quelques secondes !", + ], + "Upload complete" => [ + 0 => "Envoi terminé", + ], + "Uploaded content added to %s." => [ + 0 => "Contenu importé ajouté à %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Vous pouvez %c avec le contenu que vous venez de mettre en ligne ou %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Vous pouvez %c avec le contenu que vous venez de mettre en ligne.", + ], + "create a new album" => [ + 0 => "Créer un nouvel album", + ], + "move it to an existing album" => [ + 0 => "déplacer vers un album existant", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Vous pouvez %s ou %l pour sauvegarder ce contenu dans votre compte.", + ], + "create an account" => [ + 0 => "créer un compte", + ], + "sign in" => [ + 0 => "se connecter", + ], + "No %s have been uploaded" => [ + 0 => "Aucun %s n'a été mis en ligne", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Des erreurs sont survenues et le système ne peut pas procéder à votre demande.", + ], + "Category" => [ + 0 => "Catégorie", + ], + "Select category" => [ + 0 => "Choisir une catégorie", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Cochez ceci si l'envoi ne convient pas à un public jeune", + ], + "Not family safe upload" => [ + 0 => "Envoi ne convenant pas aux mineurs", + ], + "Uploading" => [ + 0 => "Envoi en cours", + ], + "or" => [ + 0 => "ou", + ], + "cancel" => [ + 0 => "annuler", + ], + "cancel remaining" => [ + 0 => "annuler la file", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Note : certaines images n'ont pas pu être envoyées", + ], + "learn more" => [ + 0 => "en savoir plus", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Regardez le <a data-modal=\"simple\" data-target=\"failed-upload-result\">rapport d'erreur</a> pour plus d'informations.", + ], + "Register to get %s" => [ + 0 => "Inscrivez-vous pour avoir %s", + ], + "reset" => [ + 0 => "réinitialiser", + ], + "close" => [ + 0 => "fermer", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Nous devons approuver le contenu téléchargé avant de pouvoir le partager.", + ], + "copy" => [ + 0 => "copie", + ], + "insert" => [ + 0 => "insérer", + ], + "Remove" => [ + 0 => "Supprimer", + ], + "Title" => [ + 0 => "Titre", + ], + "optional" => [ + 0 => "optionnel", + ], + "Resize image" => [ + 0 => "Changer la taille de l'image", + ], + "Width" => [ + 0 => "Largeur", + ], + "Height" => [ + 0 => "Hauteur", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Note : Les GIFs ne seront pas redimensionnés.", + ], + "Auto delete image" => [ + 0 => "Suppression automatique des images", + ], + "Sign up" => [ + 0 => "S'inscrire", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s pour pouvoir personnaliser ou désactiver la suppression automatique de l'image.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Cochez ceci si l'image ne convient pas à un public jeune", + ], + "Flag as unsafe" => [ + 0 => "Contenu sensible", + ], + "Description" => [ + 0 => "Description", + ], + "Brief description of this image" => [ + 0 => "Courte description de cette image", + ], + "Add image URLs" => [ + 0 => "Ajouter les URLs d'images", + ], + "Add the image URLs here" => [ + 0 => "Ajouter les URLs d'images ici", + ], + "Create album" => [ + 0 => "Créer un album", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Le contenu envoyé sera déplacé vers cet album nouvellement créé.", + ], + "existing album" => [ + 0 => "album existant", + ], + "You can also move the content to an %a." => [ + 0 => "Vous pouvez aussi déplacer le contenu sur un %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Vous devez %s ou %l si vous souhaitez modifier cet album plus tard.", + ], + "Move to album" => [ + 0 => "Déplacer dans l'album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Sélectionnez un album existant pour déplacer le contenu envoyé. Vous pouvez également <a class=\"modal-switch\" data-switch=\"move-new-album\">créer un nouvel album</a> et déplacer le contenu dans celui-ci.", + ], + "Error report" => [ + 0 => "Rapport d'erreur", + ], + "Links" => [ + 0 => "Liens", + ], + "Viewer links" => [ + 0 => "Liens du visualisateur", + ], + "HTML Codes" => [ + 0 => "Codes HTML", + ], + "HTML image" => [ + 0 => "Image HTML", + ], + "HTML full linked" => [ + 0 => "Lien complet HTML", + ], + "HTML medium linked" => [ + 0 => "Lien HTML intermédiaire", + ], + "HTML thumbnail linked" => [ + 0 => "Lien HTML miniature", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode full" => [ + 0 => "BBCode complet", + ], + "BBCode full linked" => [ + 0 => "Lien complet BBCode", + ], + "BBCode medium linked" => [ + 0 => "Lien BBCode intermédaire", + ], + "BBCode thumbnail linked" => [ + 0 => "Lien BBCode miniature", + ], + "Markdown full" => [ + 0 => "Markdown complet", + ], + "Markdown full linked" => [ + 0 => "Markdown complet avec liens", + ], + "Markdown medium linked" => [ + 0 => "Markdown moyen avec liens", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown miniature avec liens", + ], + "All these words" => [ + 0 => "Tous ces mots", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Tapez les mots importants : rat terrier couleur", + ], + "This exact word or phrase" => [ + 0 => "Ce mot exact ou la phrase", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Mettez les mots exacts entre quillemets: \"rat terrier\"", + ], + "None of these words" => [ + 0 => "Aucun de ces mots", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Mettez le signe moins devant le mot non souhaité: -rongeur -\"James Bond\"", + ], + "Storage" => [ + 0 => "Stockage", + ], + "IP address" => [ + 0 => "Adresse IP", + ], + "Album name" => [ + 0 => "Nom de l'album", + ], + "move to existing album" => [ + 0 => "déplacer dans l'album existant", + ], + "Album description" => [ + 0 => "Description de l'album", + ], + "Brief description of this album" => [ + 0 => "Courte description de l'album", + ], + "Album privacy" => [ + 0 => "Album privé", + ], + "Who can view this content" => [ + 0 => "Qui peut voir ce contenu", + ], + "Private (just me)" => [ + 0 => "Privé (moi uniquement)", + ], + "Private (anyone with the link)" => [ + 0 => "Privé (tous ceux avec le lien)", + ], + "Private (password protected)" => [ + 0 => "Privé (protégé par mot de passe)", + ], + "Album password" => [ + 0 => "Mot de passe album", + ], + "Name" => [ + 0 => "Nom", + ], + "Category name" => [ + 0 => "Nom de catégorie", + ], + "URL key" => [ + 0 => "Clé URL", + ], + "Category URL key" => [ + 0 => "Clé URL de la catégorie", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Lettres, chiffres et tirets uniquement.", + ], + "Brief description of this category" => [ + 0 => "Courte description de la catégorie", + ], + "Untitled image" => [ + 0 => "Image sans nom", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Cochez cette case si l'image n'est pas sûre pour le travail.", + ], + "Path" => [ + 0 => "Chemin", + ], + "Local path (absolute)" => [ + 0 => "Chemin local (absolu)", + ], + "Directory structure" => [ + 0 => "Structure répertoire", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Lors de l'analyse des dossiers de premier niveau en tant qu'utilisateurs, les dossiers de deuxième niveau seront analysés en tant qu'albums utilisateurs. L'analyse des dossiers de premier niveau en tant qu'albums les ajoute en tant qu'albums invités.", + ], + "Select number of threads" => [ + 0 => "Sélectionnez le nombre de processus concurrents", + ], + "You can use wildcard * characters." => [ + 0 => "Vous pouvez utiliser des caractères spéciaux.", + ], + "Expiration date" => [ + 0 => "Date d'expiration", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Exemple", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Jusqu'à quelle date cette adresse IP devra être bannie ? Laissez vide pour illimité.", + ], + "Message" => [ + 0 => "Message", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Message texte, HTML ou une adresse URL de redirection.", + ], + "Existing album" => [ + 0 => "Album existant", + ], + "create new album" => [ + 0 => "créer un nouvel album", + ], + "Storage name" => [ + 0 => "Nom du stockage", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Région", + ], + "Storage region" => [ + 0 => "Région de stockage", + ], + "Storage bucket" => [ + 0 => "Bucket du stockage", + ], + "Key" => [ + 0 => "Clé", + ], + "Storage key" => [ + 0 => "Clé de stockage", + ], + "Secret" => [ + 0 => "Secret", + ], + "Storage secret" => [ + 0 => "Secret de stockage", + ], + "Private key" => [ + 0 => "Clé privée", + ], + "Google Cloud JSON key" => [ + 0 => "Clé JSON Google Cloud", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Vous avez besoin d'un <a %s>compte de service</a> pour cela.", + ], + "Service name" => [ + 0 => "Nom du service", + ], + "Identity URL" => [ + 0 => "URL de l'identité", + ], + "Identity API endpoint" => [ + 0 => "Point de terminaison de l'API identité", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Point de terminaison pour l'identité OpenStack", + ], + "Username" => [ + 0 => "Nom d'utilisateur", + ], + "Container" => [ + 0 => "Conteneur", + ], + "Storage container" => [ + 0 => "Conteneur de stockage", + ], + "Tenant id" => [ + 0 => "ID du locataire", + ], + "Tenant id (account id)" => [ + 0 => "ID du locataire (ID du compte)", + ], + "Tenant name" => [ + 0 => "Nom du locataire", + ], + "Tenant name (account name)" => [ + 0 => "Nom du locataire (nom du compte)", + ], + "Server address" => [ + 0 => "Adresse serveur", + ], + "Hostname or IP of the storage server" => [ + 0 => "Nom d'hôte ou adresse IP du serveur de stockage", + ], + "Server path" => [ + 0 => "Chemin serveur", + ], + "Server password" => [ + 0 => "Mot de passe serveur", + ], + "Local path" => [ + 0 => "Chemin local", + ], + "Local path where the files will be stored" => [ + 0 => "Chemin local où les fichiers seront stockés", + ], + "Storage capacity" => [ + 0 => "Capacité de stockage", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Exemple : 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Le stockage sera désactivé lorsque la capacité sera atteinte. Laissez la vide ou mettez 0 pour illimité.", + ], + "Storage URL" => [ + 0 => "URL du stockage", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Le système va lier les images de ce stockage à cette adresse URL.", + ], + "view more" => [ + 0 => "voir plus", + ], + "Load more" => [ + 0 => "Voir plus", + ], + "Select all" => [ + 0 => "Tout sélectionner", + ], + "Get embed codes" => [ + 0 => "Obtenir les liens d'intégration", + ], + "Assign category" => [ + 0 => "Assigner une catégorie", + ], + "Flag as safe" => [ + 0 => "Retirer le signalement", + ], + "Clear selection" => [ + 0 => "Vider la sélection", + ], + "Create new album" => [ + 0 => "Créer un nouvel album", + ], + "Share" => [ + 0 => "Partager", + ], + "Sign in with another account" => [ + 0 => "Se connecter avec un autre compte", + ], + "Home" => [ + 0 => "Accueil", + ], + "There's nothing to show here." => [ + 0 => "Il n'y a rien à voir ici.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Toutes les images sélectionnées seront assignées à cette catégorie.", + ], + "There is no categories." => [ + 0 => "Il n'y a pas de catégories.", + ], + "Confirm flag content as safe" => [ + 0 => "Confirmer l'annulation du signalement", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Souhaitez-vous vraiment retirer le signalement du contenu ?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Confirmer le signalement du contenu", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Souhaitez-vous vraiment signaler ce contenu ?", + ], + "Confirm deletion" => [ + 0 => "Confirmez la suppression", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Êtes-vous sûr de vouloir supprimer ce contenu ? Cette action est irréversible.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Êtes-vous sûr de vouloir supprimer le contenu sélectionné ? Cette action est irréversible.", + ], + "Guest" => [ + 0 => "Invité", + ], + "Keyboard shortcuts" => [ + 0 => "Raccourcis clavier", + ], + "Private album" => [ + 0 => "Album privé", + ], + "Password protected" => [ + 0 => "Protégé par un mot de passe", + ], + "Uploaded by guest" => [ + 0 => "Mise en ligne par un visiteur", + ], + "From %s" => [ + 0 => "Dans %s", + ], + "Uploaded by private" => [ + 0 => "Mise en ligne par un compte privé", + ], + "by %u" => [ + 0 => "Par %u", + ], + "Toggle unsafe flag" => [ + 0 => "Basculer le signalement", + ], + "That page doesn't exist" => [ + 0 => "Cette page n'existe pas", + ], + "The requested page was not found." => [ + 0 => "La page demandée n'a pas été trouvée", + ], + "The user has been deleted" => [ + 0 => "L'utilisateur a été supprimé", + ], + "Your account is almost ready" => [ + 0 => "Votre compte est presque prêt", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email a été envoyé à l'adresse %s avec les instructions pour activer votre compte. Ce lien d'activation n'est valide que 48 heures. Si vous ne recevez pas les instructions, pensez à vérifier le contenu de vos filtres anti-spam.", + ], + "Resend activation" => [ + 0 => "Renvoyer l'email d'activation", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Vous avez changé l'adresse email de votre compte en %s avec succès", + ], + "Go to my profile" => [ + 0 => "Allez à mon profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Un lien de confirmation va être envoyé à cette adresse avec les détails d’activation de votre compte.", + ], + "Your email address" => [ + 0 => "Votre adresse email", + ], + "Submit" => [ + 0 => "Envoyer", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email avec les instructions pour réinitialiser votre mot de passe a été envoyé à votre adresse email. Si vous ne recevez pas les instructions, vérifiez vos filtres anti-spam.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email a été envoyé avec les instructions pour activer votre compte à l'adresse %s.n\\\\Si vous ne recevez pas les instructions, essayez de vérifier vos filtres anti-spam.", + ], + "Resend instructions" => [ + 0 => "Renvoyer les instructions", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Entrez votre nom d'utilisateur ou votre adresse e-mail pour continuer. Vous devrez peut-être vérifier votre dossier spam %s", + ], + "Username or Email address" => [ + 0 => "Nom d'utilisateur ou Adresse email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Le mot de passe a été modifié. Vous pouvez essayer de vous connecter à l'aide de votre nouveau mot de passe.", + ], + "Login now" => [ + 0 => "Se connecter", + ], + "Enter your new password" => [ + 0 => "Saisissez un nouveau mot de passe", + ], + "%d characters min" => [ + 0 => "%d caractères min", + ], + "Password strength" => [ + 0 => "Force du mot de passe", + ], + "Re-enter your new password" => [ + 0 => "Confirmez le nouveau mot de passe", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Un email contenant les instructions d'activation de compte a été envoyé à %s. Si vous ne recevez pas les instructions, vérifiez le contenu de vos dossiers de spam ou vos filtres.", + ], + "This content is private" => [ + 0 => "Ce contenu a été modifié.", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Êtes-vous sûr de vouloir supprimer cet album et toutes ses images ? Cette action est irréversible.", + ], + "Upload to album" => [ + 0 => "Importer dans un album", + ], + "You like this" => [ + 0 => "Vous aimez ceci", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Merci de lire et de respecter les conditions suivantes avant de continuer:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Ce site contient des informations, des liens et des images de type sexuellement explicite. Si vous êtes sous l'âge de %s ans, si ce type de contenu vous offense ou s'il est illégal de visionner ce contenu dans votre communauté, ville, état ou pays merci de ne pas continuer.\n\nJe suis âgé d'au moins %s ans et je reconnais croit qu'en tant qu'adulte, c'est mon droit de visualiser ou non un contenu sexuellement explicite.\n\nJe reconnais que les actes sexuels entre adultes consentants ne sont ni injurieux, ni obscène. La visualisation, la lecture et le téléchargement de contenu sexuellement explicite ne violent pas les normes de ma communauté, ville, état ou pays.\n\nLe contenue de ce site est pour mon propre usage personnel et je ne l'exposerais pas à des mineurs.\n\nJe suis seul responsable de toutes fausses divulgations ou ramifications juridiques de l'affichage, la lecture ou téléchargement de tout contenu de ce site. En outre ce site ni ses sociétés affiliées seront tenus responsables de n'importe quelles conséquences juridiques...", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "En cliquant sur \"J'accepte\", vous déclarez que vous avez lu et compris toutes les conditions mentionnées ci-dessus.", + ], + "I Agree" => [ + 0 => "J'accepte", + ], + "documentation" => [ + 0 => "documentation", + ], + "Disk used" => [ + 0 => "Espace disque utilisé", + ], + "Queued" => [ + 0 => "En attente", + ], + "Working" => [ + 0 => "En cours", + ], + "Paused" => [ + 0 => "En pause", + ], + "Canceled" => [ + 0 => "Annulé", + ], + "Completed" => [ + 0 => "Terminé", + ], + "Actions" => [ + 0 => "Actions", + ], + "Pause" => [ + 0 => "Pause", + ], + "Cancel" => [ + 0 => "Annuler", + ], + "Errors" => [ + 0 => "Erreurs", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Souhaitez-vous vraiment supprimé l'ID importé %s ?", + ], + "Status" => [ + 0 => "Statut", + ], + "Add user" => [ + 0 => "Ajouter utilisateur", + ], + "Role" => [ + 0 => "Rôle", + ], + "Administrator" => [ + 0 => "Administrateur", + ], + "Email address" => [ + 0 => "Adresse email", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Ce réglage est toujours désactivé lorsque vous utilisez le mode personnel.", + ], + "Add category" => [ + 0 => "Ajouter catégorie", + ], + "Add IP ban" => [ + 0 => "Ajouter bannissement IP", + ], + "Add storage" => [ + 0 => "Ajouter stockage", + ], + "Return to pages" => [ + 0 => "Retourner aux pages", + ], + "Website name" => [ + 0 => "Nom du site web", + ], + "Website doctitle" => [ + 0 => "Titre du site web", + ], + "Website description" => [ + 0 => "Description du site web", + ], + "Automatic" => [ + 0 => "Automatique", + ], + "Forced" => [ + 0 => "Forcer", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a va utiliser la détection HTTPS du côté du serveur (recommandé). %f utilisera HTTPS quelque soit la configuration de votre serveur. %d pour ne pas utiliser HTTPS.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Cela contrôle uniquement le protocole utilisé dans les URL, cela ne transformera pas votre site en un site sécurisé valide à moins que votre serveur ne soit configuré pour supporter et utiliser HTTPS.", + ], + "Default time zone" => [ + 0 => "Fuseau horaire par défaut", + ], + "Select region" => [ + 0 => "Sélectionnez la région", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Permet de rechercher des images, des albums et des utilisateurs.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Permets de consulter les images publiques du site. Permets également l'utilisation des catégories.", + ], + "guests" => [ + 0 => "invités", + ], + "Enables explore for guests." => [ + 0 => "Activer l'explorateur pour les visiteurs.", + ], + "Enables to browse images randomly." => [ + 0 => "Permets de parcourir les images une par une de manière aléatoire.", + ], + "Likes" => [ + 0 => "J'aimes", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Permets aux utilisateurs d'aimer le contenu et de consulter les images les plus aimées de la communauté.", + ], + "Followers allows users to follow each other." => [ + 0 => "Permets aux utilisateurs de s'abonner aux autres utilisateurs du site.", + ], + "Website mode" => [ + 0 => "Mode de site web", + ], + "Community" => [ + 0 => "Communauté", + ], + "Personal" => [ + 0 => "Personnel", + ], + "You can switch the website mode anytime." => [ + 0 => "Vous pouvez changer le mode de site web à tout instant.", + ], + "Personal mode target user" => [ + 0 => "Utilisateur cible du mode personnel", + ], + "User ID" => [ + 0 => "ID Utilisateur", + ], + "Your user id is: %s" => [ + 0 => "Votre identifiant utilisateur est : %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "ID numérique du client ciblé pour le mode personnel.", + ], + "Personal mode routing" => [ + 0 => "Routage du mode personnel", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Routage personnalité pour rediriger /nomdutilisateur vers /quelquechose. utilisez \"/\" pour rediriger vers la page d'accueil.", + ], + "Website privacy mode" => [ + 0 => "Mode de confidentialité du site web", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Le mode privé ne rendra le site accessible qu'aux utilisateurs enregistrés.", + ], + "Content privacy mode" => [ + 0 => "Mode ce confidentialité du contenu", + ], + "Default" => [ + 0 => "Défaut", + ], + "Force private (self)" => [ + 0 => "Forcer privé (lui même)", + ], + "Force private (anyone with the link)" => [ + 0 => "Forcer privé (ceux avec le lien)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Les modes de confidentialité forcés outrepassent la confidentialité définie par l'utilisateur.", + ], + "Page title" => [ + 0 => "Titre de la page", + ], + "Page status" => [ + 0 => "Statut de la page", + ], + "Active page" => [ + 0 => "Page active", + ], + "Inactive page (%s)" => [ + 0 => "Page inactive (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Seules pages actives seront accessibles.", + ], + "Type" => [ + 0 => "Type", + ], + "Terms of service" => [ + 0 => "Conditions d'utilisation", + ], + "Privacy" => [ + 0 => "Vie privée", + ], + "Contact" => [ + 0 => "Contact", + ], + "Page visibility" => [ + 0 => "Visibilité de la page", + ], + "Visible page" => [ + 0 => "Page visible", + ], + "Hidden page" => [ + 0 => "Page cachée", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Les pages cachées ne s'afficheront pas dans les menus système, mais tout le monde peut y accéder par son lien.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Seuls les caractères alphanumériques, traits d'union et barre oblique", + ], + "File path" => [ + 0 => "Chemin de fichier", + ], + "A %f file relative to %s" => [ + 0 => "Un fichier %f relatif à %s", + ], + "Meta keywords" => [ + 0 => "Mot clés meta", + ], + "Meta description" => [ + 0 => "Description meta", + ], + "Source code" => [ + 0 => "Code source", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Pas de permission d'écriture dans le chemin %s, vous allez devoir ajouter ce fichier en utilisant un éditeur externe.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Pas de permission d'écriture dans le chemin %s, vous allez modifier le contenu du fichier en utilisant un éditeur externe.", + ], + "Taken from: %s" => [ + 0 => "Prise depuis : %s", + ], + "Link URL" => [ + 0 => "Lien URL", + ], + "Link target attribute" => [ + 0 => "Attribut cible du lien", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Sélectionnez %s pour ouvrir la page ou le lien dans une nouvelle fenêtre.", + ], + "Link rel attribute" => [ + 0 => "Attribut rel du lien", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Seuls les caractères alphanumériques, traits d'union et espaces", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "Attribut HTML &lt;a&gt; %s", + ], + "Link icon" => [ + 0 => "Lien icône", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Vérifiez les <a %s>références icône</a> pour une liste complète des icônes supportées.", + ], + "Sort order display" => [ + 0 => "Définir l'ordre d'affichage", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Ordre d'affichage des pages dans les menus et listes. Utilisez \"1\" pour la priorité maximale.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Souhaitez-vous vraiment supprimer la page ID %s ? Cette action est irréversible.", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Cochez les extensions de fichiers autorisés sur votre site.", + ], + "Enable uploads" => [ + 0 => "Activer les envois", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Activez ceci si vous souhaitez autoriser les envois d'images. Ce paramètres n'affecte pas les administrateurs.", + ], + "Guest uploads" => [ + 0 => "Tranferts des Invités", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Activez ceci si vous voulez autoriser les utilisateurs non enregistrés à envoyer des images.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Activer les codes d'intégration (après l'envoi)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Activez ceci si vous souhaitez afficher les codes d'intégration quand un envoi est terminé.", + ], + "Upload threads" => [ + 0 => "Mise en ligne simultanées", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Nombre de mise en ligne simultanées (Mise en ligne parallèle)", + ], + "Redirect on single upload" => [ + 0 => "Rediriger après l'envoi d'une seule image.", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Activez cette option si vous souhaitez rediriger vers la page de l'image après l'envoi de celle-ci.", + ], + "Enable duplicate uploads" => [ + 0 => "Activer la duplication des images mises en ligne", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Activez cette option si vous voulez autoriser la duplication des images mises en ligne à partir de la même adresse IP dans les 24 heures. Ce paramètre n'a aucune incidence sur les administrateurs.", + ], + "Enable expirable uploads" => [ + 0 => "Activer l'expiration des envois", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Activez cette option si vous souhaitez autoriser les envois avec une option de suppression automatique.", + ], + "Auto delete guest uploads" => [ + 0 => "Supprimer automatiquement les images mises en ligne par les invités", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Activez l'option si vous souhaitez supprimer automatiquement après un certain temps les images mis en ligne par les visiteurs.", + ], + "Maximum image size" => [ + 0 => "Taille maximale de l'image", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Les images supérieures à cette taille seront automatiquement réduites. Utilisez zéro (0) pour ne pas définir de limite.", + ], + "Image Exif data" => [ + 0 => "Données Exif de l'image", + ], + "Keep" => [ + 0 => "Garder", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Sélectionnez le paramètre par défaut pour les <a %s>données Exif</a> de l'image à l'envoi.", + ], + "Image Exif data (user setting)" => [ + 0 => "Données Exif de l'image (réglage de l'utilisateur)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Activez cette option si vous souhaitez permettre à chaque utilisateur de configurer comment les données Exif de l'image seront traitées.", + ], + "Maximum upload file size" => [ + 0 => "Taille maximale de l'image importé", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "La taille maximale autorisée par le serveur est %s. Cette limite est fixée par %u et %p (valeurs %f)", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Pareil que \"%s\" mais pour les invités.", + ], + "Image path" => [ + 0 => "Répertoire des images", + ], + "Relative to Chevereto root" => [ + 0 => "Relatif à la racine Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Où stocker les images ? Relatif à la racine Chevereto.", + ], + "Storage mode" => [ + 0 => "Mode de stockage", + ], + "Datefolders" => [ + 0 => "Dossiers de dates", + ], + "Direct" => [ + 0 => "Direct", + ], + "Datefolders creates %s structure" => [ + 0 => "Les dossiers de dates créent une structure %s", + ], + "File naming method" => [ + 0 => "Méthode de nommage des fichiers", + ], + "Original" => [ + 0 => "Original", + ], + "Mix original + random" => [ + 0 => "Mélange original + aléatoire", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Original\" tentera de garder le nom de l'image source tandis que \"aléatoire\" générera un nom aléatoire. \"ID\" nommera l'image comme l'ID de l'image.", + ], + "Thumb size" => [ + 0 => "Taille de miniature", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Les miniatures seront fixées à cette taille.", + ], + "Medium image fixed dimension" => [ + 0 => "Fixe les dimensions d'une image moyenne", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Les images de taille moyenne seront fixées à cette dimension. Par exemple, si vous sélectionnez «width» cette dimension sera fixe et hauteur de l'image sera calculée automatiquement.", + ], + "Medium image fixed size" => [ + 0 => "Image de taille moyenne fixe", + ], + "Width or height will be automatically calculated." => [ + 0 => "La largeur ou la hauteur seront automatiquement calculés.", + ], + "Watermarks" => [ + 0 => "Filigranes", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Activez ceci pour insérer un logo ou autre chose dans les envois d'image.", + ], + "Watermark user toggles" => [ + 0 => "Basculer le filigrane utilisateur", + ], + "Enable watermark on guest uploads" => [ + 0 => "Activer le filigrane pour les envois d'invités", + ], + "Enable watermark on user uploads" => [ + 0 => "Activer le filigrane pour les envois d'utilisateurs", + ], + "Enable watermark on admin uploads" => [ + 0 => "Activer le filigrane pour les envois d'administrateurs", + ], + "Watermark file toggles" => [ + 0 => "Basculer le filigrane de fichier", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Activer le filigrane sur les envois d'images GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Taille minimale de l'image pour appliquer le filigrane", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Les images plus petites que cela n'auront pas de filigrane. Utilisez zéro (0) pour ne pas définir de limite.", + ], + "Watermark image" => [ + 0 => "Image du watermark (filigrane)", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Vous obtiendrez un meilleur résultat avec des logos entiers avec ombre portée. Vous pouvez utiliser une image large si la taille du fichier n'est pas trop grosses (max. recommandé 16Ko). Doit être un PNG.", + ], + "Watermark position" => [ + 0 => "Position du watermark (filigrane)", + ], + "left top" => [ + 0 => "gauche haut", + ], + "left center" => [ + 0 => "gauche centre", + ], + "left bottom" => [ + 0 => "gauche bas", + ], + "center top" => [ + 0 => "centre haut", + ], + "center center" => [ + 0 => "centre centre", + ], + "center bottom" => [ + 0 => "centre bas", + ], + "right top" => [ + 0 => "droit haut", + ], + "right center" => [ + 0 => "droit centre", + ], + "right bottom" => [ + 0 => "droit bas", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Position relative de l'image du watermark (filigrane). Alignement horizontal puis alignement vertical.", + ], + "Watermark percentage" => [ + 0 => "Pourcentage de filigrane", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Pourcentage de filigrane relatif à la zone de l'image cible. Valeurs de 1 à 100.", + ], + "Watermark margin" => [ + 0 => "Marge du watermark (filigrane)", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Marge depuis la bordure de l'image vers l'image du watermark (filigrane).", + ], + "Watermark opacity" => [ + 0 => "Opacité du watermark (filigrane)", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Opacité du watermark (filigrane) dans l'image finale. Valeur de 0 à 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Tableau de bord > Paramètres > Site web", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Les catégories ne fonctionneront pas si la fonction \"Explorer\" est éteinte. Pour changer ce paramètre aller à %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Souhaitez-vous réellement supprimer la catégorie %s ? Cette action est irréversible.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Note : supprimer une catégorie ne supprime pas les images associées à cette catégorie.", + ], + "Edit category" => [ + 0 => "Modifier catégorie", + ], + "Expires" => [ + 0 => "Expiration", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Souhaitez-vous réellement supprimer le bannissement de l'IP %s ? Cela ne peut être annulé.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "L'adresse IP bannie ne pourra plus utiliser le site web.", + ], + "Edit IP ban" => [ + 0 => "Modifier le bannissement IP", + ], + "Enable signups" => [ + 0 => "Activer les inscriptions", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Activez ceci si vous souhaitez autoriser les utilisateurs à s'inscrire.", + ], + "Enable user content delete" => [ + 0 => "Activer la suppression du contenu pour les utilisateurs", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Activez ceci si vous souhaitez permettre aux utilisateurs de supprimer leur propre contenu. Ce paramètre n'affecte pas les administrateurs.", + ], + "Minimum age required" => [ + 0 => "Age minimum requis", + ], + "Empty" => [ + 0 => "Vide", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Laissez-le vide s'il n'y a pas un âge minimum pour utiliser le site.", + ], + "Notify on user signup" => [ + 0 => "Notifier lors de l'inscription de l'utilisateur", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Activez cette option si vous souhaitez recevoir une notification par email pour chaque nouvel utilisateur inscrit.", + ], + "Username routing" => [ + 0 => "Routage du nom d'utilisateur", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Activez ceci si vous souhaitez utiliser les URLs %s/nom-d'utilisateur à la place de %s/user/nom-d'utilisateur", + ], + "Require email confirmation" => [ + 0 => "Confirmation par email obligatoire", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Activez ceci si vous souhaitez que les utilisateurs valident leur adresse email pour s'inscrire.", + ], + "Require email for social signup" => [ + 0 => "Adresse email nécessaire pour l'enregistrement via réseaux sociaux", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Activez ceci si vous souhaitez que les utilisateurs utilisant les réseaux sociaux pour se connecter fournissent une adresse email.", + ], + "User avatar max. filesize" => [ + 0 => "Taille maximale de l'avatar de l'utilisateur.", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Taille maximale autorisée pour l'avatar de l'utilisateur. (Maximum autorisé par le serveur : %s)", + ], + "User background max. filesize" => [ + 0 => "Taille maximale du fond d'écran utilisateur", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Taille maximale autorisée pour le fond d'écran utilisateur (Maximum autorisé par le serveur : %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Affiche un disclamer avant d'accéder au site. Utile pour les sites de contenu pour adultes où les mineurs ne devraient pas être autorisés.", + ], + "Enable consent screen" => [ + 0 => "Activer le disclamer", + ], + "Consent screen cover image" => [ + 0 => "Image de couverture du disclamer", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Restreint l'envoi d'images par IP si le système détecte un comportement de flood basé sur le nombre d'images par période temps. Ceci n'affecte pas les administrateurs.", + ], + "Notify to email" => [ + 0 => "Notifier par email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Si activé, le système va envoyer un email lors d'un incident flood.", + ], + "Minute limit" => [ + 0 => "Limite par minute", + ], + "Hourly limit" => [ + 0 => "Limite par heure", + ], + "Daily limit" => [ + 0 => "Limite par jour", + ], + "Weekly limit" => [ + 0 => "Limite par semaine", + ], + "Monthly limit" => [ + 0 => "Limite par mois", + ], + "Show not safe content in listings" => [ + 0 => "Afficher le contenu signalé dans les listes", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Activez-ceci si vous souhaitez afficher du contenu non sûr dans la liste. Ce paramètre n'affecte pas les administrateurs et peut être substitué par les paramètres de l'utilisateur.", + ], + "Blur NSFW content in listings" => [ + 0 => "Flouter le contenu sensible dans la liste.", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Activez ceci si vous souhaitez appliquer un effet de flou sur les images sensibles dans la liste.", + ], + "Show banners in not safe content" => [ + 0 => "Afficher les bannières pour le contenu signalé", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Activez ceci si vous souhaitez afficher les bannières sur les pages avec du contenu signalé.", + ], + "Show not safe content in random mode" => [ + 0 => "Afficher le contenu non sûr dans le mode aléatoire", + ], + "List items per page" => [ + 0 => "Lister les objets par page", + ], + "How many items should be displayed per page listing." => [ + 0 => "Combien d'objets devraient être affichés par page.", + ], + "List pagination mode" => [ + 0 => "Mode de pagination de la liste", + ], + "Endless scrolling" => [ + 0 => "Défilement infini", + ], + "Classic pagination" => [ + 0 => "Pagination classique", + ], + "What pagination method should be used." => [ + 0 => "Quel mode de pagination devrait être utilisé.", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Activez cette option pour utiliser le visualiseur d'image lorsque vous cliquez sur une image.", + ], + "Image listing size" => [ + 0 => "Taille de la liste des images", + ], + "Fluid" => [ + 0 => "Fluide", + ], + "Fixed" => [ + 0 => "Fixé", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Les deux méthodes utilisent une largeur fixe mais la méthode fluide utilise des hauteurs automatiques.", + ], + "explore" => [ + 0 => "explorer", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Définit le nombre minimum d'images nécessaires pour afficher les albums dans l'explorateur.", + ], + "Listing columns number" => [ + 0 => "Nombre de colonnes à afficher", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Ici vous pouvez définir combien de colonnes sont affichées suivant chaque périphérique.", + ], + "Phone" => [ + 0 => "Mobile", + ], + "Phablet" => [ + 0 => "Phablette", + ], + "Tablet" => [ + 0 => "Tablette", + ], + "Laptop" => [ + 0 => "PC Portable", + ], + "Desktop" => [ + 0 => "PC Fixe", + ], + "Put your themes in the %s folder" => [ + 0 => "Insérez vos thèmes dans le dossier %s", + ], + "Tone" => [ + 0 => "Ton", + ], + "Light" => [ + 0 => "Clair", + ], + "Dark" => [ + 0 => "Sombre", + ], + "Main color" => [ + 0 => "Couleur princiaple", + ], + "Hexadecimal color value" => [ + 0 => "Valeur hexadécimale de la couleur", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Utilisez-ceci pour définir une couleur principale de thème. La valeur doit être au <a href=\"%s\" target=\"_blank\">format hex</a>.", + ], + "Top bar button color" => [ + 0 => "Couleur du bouton de la barre supérieure", + ], + "Blue" => [ + 0 => "Bleu", + ], + "Green" => [ + 0 => "Vert", + ], + "Orange" => [ + 0 => "Orange", + ], + "Red" => [ + 0 => "Rouge", + ], + "Grey" => [ + 0 => "Gris", + ], + "Black" => [ + 0 => "Noir", + ], + "White" => [ + 0 => "Blanc", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Couleur des buttons de la barre supérieure comme le bouton \"Créer un compte\".", + ], + "Enable vector logo" => [ + 0 => "Activer le logo vectoriel", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Activer le logo vectoriel pour le logo haute définition dans les appareils avec une haute densité de pixels.", + ], + "Vector logo image" => [ + 0 => "Image vectorielle du logo", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Image vectorielle ou le logo de votre site au format SVG.", + ], + "Raster logo image" => [ + 0 => "Image raster du logo", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Version Bitmap ou le logo de votre site. Le format PNG est recommandé.", + ], + "Logo height" => [ + 0 => "Hauteur de logo", + ], + "No value" => [ + 0 => "Aucune valeur", + ], + "Use this to set the logo height if needed." => [ + 0 => "Utilisez ceci pour définir la hauteur du logo si nécessaire.", + ], + "Favicon image" => [ + 0 => "Image favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Image favicon. L'image doit avoir la même largeur et la même hauteur.", + ], + "Image load max. filesize" => [ + 0 => "Taille d'image maximum a l'affichage. Poids du fichier", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Les images supérieures à cette taille afficheront un bouton pour charger l'image en pleine résolution.", + ], + "Enable download button" => [ + 0 => "Activer le bouton de téléchargement", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Activer ceci si vous souhaitez afficher le bouton de téléchargement d'image.", + ], + "Enable right click on image" => [ + 0 => "Activer le clic droit sur l'image", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Activez ceci si vous souhaitez autoriser le clic droit sur l'image de la page de visualisation.", + ], + "Enable show Exif data" => [ + 0 => "Activer l'affichage des données Exif", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Activez-ceci si vous souhaite afficher les données Exif de l'image.", + ], + "Enable social share" => [ + 0 => "Activer le partage social", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Activez ceci si vous souhaitez afficher les boutons de partage des réseaux sociaux.", + ], + "Enable embed codes (content)" => [ + 0 => "Activer les codes d'intégration (contenu)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Activez ceci si vous souhaitez afficher les codes d'intégration pour le contenu.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Case à cocher signaler dans le formulaire d'envoi", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Activez ceci si vous souhaitez afficher une case à cocher pour indiquer si le contenu envoyé doit être signalé.", + ], + "Custom CSS code" => [ + 0 => "Code CSS personnalisé", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Insérez votre code CSS personnalisé ici. Il sera placé comme <style> juste avant la balise de clôture </head>.", + ], + "Custom JS code" => [ + 0 => "Code JS personnalisé", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Insérez votre code JS personnalisé ici. Il sera placé comme <script> juste avant la balise de clôture </head>.", + ], + "Style" => [ + 0 => "Style", + ], + "Landing page" => [ + 0 => "Page d'accueil", + ], + "Split landing + images" => [ + 0 => "Diviser l'accueil + images", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Sélectionnez le style de page d'accueil. Pour la personnaliser davantage, modifiez app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Image de couverture", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Êtes-vous sûr de vouloir supprimer cette image ? Cette action est irréversible.", + ], + "Delete image" => [ + 0 => "Supprimer l'image", + ], + "Add new cover image" => [ + 0 => "Ajouter une nouvelle image de couverture", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Ceci sera ajouté dans le tag %s de votre page d'accueil. Laissez le vide pour utiliser le contenu par défaut.", + ], + "Paragraph" => [ + 0 => "Paragraphe", + ], + "Call to action button color" => [ + 0 => "Couleur du bouton d'action.", + ], + "Color of the homepage call to action button." => [ + 0 => "Couleur du bouton d'action de l'accueil.", + ], + "Call to action outline style button" => [ + 0 => "Style de contour du bouton d'action", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Activez-ceci pour utiliser le style de couleur pour le bouton d'action de l'accueil.", + ], + "Call to action functionality" => [ + 0 => "Fonctionnalité d'appel à l'action", + ], + "Trigger uploader" => [ + 0 => "Déclencher l'envoi", + ], + "Open URL" => [ + 0 => "Ouvrir URL", + ], + "Call to action URL" => [ + 0 => "URL de l'appel à l'action", + ], + "Enter an absolute or relative URL" => [ + 0 => "Entrez une URL absolue ou relative", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Une URL relative comme %r sera redirigée vers %l", + ], + "Call to action HTML" => [ + 0 => "HTML de l'appel à l'action", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Ceci sera ajouté dans la balise <a> de l'appel à l'action. Laissez le vide pour utiliser le contenu par défaut.", + ], + "User IDs" => [ + 0 => "IDs utilisateur", + ], + "Automatic updates check" => [ + 0 => "Vérification automatique des mises à jour", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Quand l'option est activée le système vérifie automatiquement la présence de nouvelles mises à jour.", + ], + "Display available updates notification" => [ + 0 => "Afficher les mises à jour disponibles par notification", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Activer cette option pour afficher une infobox en haut du site pour vous avertir de nouvelles mises à jour système disponibles.", + ], + "Maintenance" => [ + 0 => "Maintenance", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Lors de son activation, le site web affichera un message de maintenance. Ce paramètre n'affecte pas les administrateurs.", + ], + "Crypt salt" => [ + 0 => "Grain de sel pour Crypt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "C'est le grain de sel utilisé pour convertir des ID numériques en alphanumériques. Il a été généré lors de l'installation.", + ], + "PHP error reporting" => [ + 0 => "Rapport d'erreurs PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Activez-ceci si vous souhaitez afficher les erreurs générées par PHP <a %s>error_reporting()</a>. Ceci devrait être désactivé en production.", + ], + "Debug level" => [ + 0 => "Niveau de débogage", + ], + "None" => [ + 0 => "Aucun", + ], + "Error log" => [ + 0 => "Journal des erreurs", + ], + "Print errors without error log" => [ + 0 => "Afficher les erreurs sans les enregistrer", + ], + "Print and log errors" => [ + 0 => "Afficher et enregistrer les erreurs", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Pour paramétrer le niveau de débogage, regardez la <a %s>documentation de débogage</a>. Le niveau par défaut est \"Journal d'erreur\" (1).", + ], + "Image routing" => [ + 0 => "Adressage de l'image", + ], + "Routing for %s" => [ + 0 => "Adressage pour %s", + ], + "Album routing" => [ + 0 => "Adressage de l'album", + ], + "This setting may be overridden by %s." => [ + 0 => "Ce paramètre peut être outrepassé par %s.", + ], + "Language subdomains" => [ + 0 => "Sous-domaines par langue", + ], + "languages" => [ + 0 => "langues", + ], + "Custom language strings" => [ + 0 => "Texte personnalisé", + ], + "Default language" => [ + 0 => "Langue par défaut", + ], + "Default base language to use." => [ + 0 => "Base de langue à utiliser par défaut", + ], + "Auto language" => [ + 0 => "Langue automatique", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Activez-ceci si vous souhaitez automatiquement détecter et paramétrer la langue pour chaque utilisateur.", + ], + "Language chooser" => [ + 0 => "Sélectionneur de langue", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Activez-ceci si vous souhaitez autoriser la sélection des langues", + ], + "Enabled languages" => [ + 0 => "Activez les langues", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Les langues non cochées ne seront pas utilisée sur votre site.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Activez ou désactivez le HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Activez ou désactivez ce stockage", + ], + "Quota" => [ + 0 => "Quota", + ], + "Active" => [ + 0 => "Actif", + ], + "Storage method" => [ + 0 => "Méthode de stockage", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Par défaut le stockage local est utilisé ou quand aucun stockage externe n'est actif.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Si vous avez besoin d'aide, regardez la <a %s>documentation de stockage</a>.", + ], + "Edit storage" => [ + 0 => "Modifier le stockage", + ], + "From name" => [ + 0 => "Nom de l'émetteur", + ], + "Sender name for emails sent to users." => [ + 0 => "Nom d'envoi pour les emails envoyés aux utilisateurs.", + ], + "From email address" => [ + 0 => "Adresse email d'expédition", + ], + "Sender email for emails sent to users." => [ + 0 => "Nom d'envoi pour les emails envoyés aux utilisateurs.", + ], + "Incoming email address" => [ + 0 => "Adresse email de contact", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Destinataire du formulaire de contact et des alertes système.", + ], + "Email mode" => [ + 0 => "Mode email", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Comment envoyer les emails ? SMTP recommandé.", + ], + "SMTP server and port" => [ + 0 => "Serveur SMTP et port", + ], + "SMTP server" => [ + 0 => "Serveur SMTP", + ], + "SMTP username" => [ + 0 => "Nom d'utilisateur SMTP", + ], + "SMTP password" => [ + 0 => "Mot de passe SMTP", + ], + "SMTP security" => [ + 0 => "Sécurité SMTP", + ], + "Unsecured" => [ + 0 => "Non sécurisé", + ], + "Send test email" => [ + 0 => "Envoyer un email test", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Utilisez cette option pour tester la façon dont vos e-mails sont envoyé. Nous vous recommandons d'utiliser %s", + ], + "Export a user" => [ + 0 => "Exporter un utilisateur", + ], + "Export user" => [ + 0 => "Exporter l'utilisateur", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Cela vous permettra de télécharger les informations personnelles standard d'un utilisateur au format JSON.", + ], + "Regenerate" => [ + 0 => "Regénérer", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Migrer les images d'un stockage externe vers un autre", + ], + "Source storage id" => [ + 0 => "ID du stockage source", + ], + "Target storage id" => [ + 0 => "ID du stockage cible", + ], + "Migrate" => [ + 0 => "Migrer", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Ceci ne fait que mettre à jour la base de données. Vous devez transférer vous-même les fichiers réels dans le conteneur de stockage cible. La réécriture d'URL est fortement recommandée. Utilisez zéro (0) pour le stockage local.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Nécessite un compte <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a>.", + ], + "Facebook app id" => [ + 0 => "ID Facebook app", + ], + "Facebook app secret" => [ + 0 => "Secret Facebook app", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Nécessite un compte <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a>.", + ], + "Twitter API key" => [ + 0 => "Clé API Twitter", + ], + "Twitter API secret" => [ + 0 => "Secret API Twitter", + ], + "Twitter account" => [ + 0 => "Compte Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Nécessite un compte <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>.", + ], + "Google client id" => [ + 0 => "ID Google client", + ], + "Google client secret" => [ + 0 => "Secret Google client", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Vous avez besoin d'une <a href=\"http://vk.com/dev\" target=\"_blank\">app VK</a> pour ceci.", + ], + "VK client id" => [ + 0 => "ID Client VK", + ], + "VK client secret" => [ + 0 => "Secret Client VK", + ], + "%s spam protection" => [ + 0 => "%s protection contre les indésirables", + ], + "%s API key" => [ + 0 => "Clé API %s", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Vous avez besoin d'une <a href=\"%s\" target=\"_blank\">clé reCAPTCHA</a> pour ceci.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Veuillez noter que chaque version de reCAPTCHA nécessite des clés différentes. N'oubliez pas de mettre à jour les clés si vous changez de version.", + ], + "%s site key" => [ + 0 => "Clé du site %s", + ], + "%s secret key" => [ + 0 => "Clé secrète %s", + ], + "reCAPTCHA threshold" => [ + 0 => "Seuil reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Combien d'échecs sont nécessaires pour demander un reCAPTCHA ? Mettez (0) pour toujours afficher reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Forcer %s sur la page de contact", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Activez ceci pour toujours afficher %s sur la page de contact.", + ], + "Comments API" => [ + 0 => "API des commentaires", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API fonctionne avec %s", + ], + "Disqus shortname" => [ + 0 => "Identifiant Disqus", + ], + "%s public key" => [ + 0 => "Clé publique %s", + ], + "Comment code" => [ + 0 => "Code des commentaires", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook ou ce que vous voulez. Ce sera utilisé dans le visualiseur d'images.", + ], + "Analytics code" => [ + 0 => "Code Analytics", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics ou ce que vous voulez. Ce sera ajouté au pied de page du thème.", + ], + "API v1 key" => [ + 0 => "Clé API v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Utilisez cette clé lors de l'utilisation de l'<a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Dossier plugin", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Activez cette option pour afficher les instructions du plugin à %u. Un lien vers ces instructions sera ajouté au menu %s. Ce paramètre n'affecte pas les administrateurs.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Utilisez cette option pour définir une URL personnalisée pour %p. Veuillez noter que vous devez dupliquer manuellement %s dans cette URL.", + ], + "Cookie law compliance" => [ + 0 => "Respecter la loi sur les cookies", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Activez ceci pour afficher un message qui respecte la loi sur les cookies de l'UE. Note : vous n'avez besoin de ceci que si votre site est hébergé dans l'UE et que vous utilisez des cookies de suivi.", + ], + "Save changes" => [ + 0 => "Enregistrer les modifications", + ], + "Check the errors to proceed." => [ + 0 => "Vérifiez les erreurs pour continuer.", + ], + "Play GIF" => [ + 0 => "Lire le GIF", + ], + "Load full resolution" => [ + 0 => "Afficher en haute définition", + ], + "Added to %a and categorized in %c" => [ + 0 => "Ajouté à %a et catégorisé en %c", + ], + "Added to %s" => [ + 0 => "Ajouté à %s", + ], + "Uploaded to %s" => [ + 0 => "Envoyé sur %s", + ], + "Uploaded %s" => [ + 0 => "Envoyé %s", + ], + "Less Exif data" => [ + 0 => "Moins de données Exif", + ], + "More Exif data" => [ + 0 => "Plus de données Exif", + ], + "Album ID" => [ + 0 => "ID de l'album", + ], + "Upload and share your images." => [ + 0 => "Envoyez et partagez vos images.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Glisser-déposer n'importe où pour commencer l'envoi de vos images dès maintenant. Limite de %s. Liens directs vers l'image, BBCode et miniatures HTML.", + ], + "Start uploading" => [ + 0 => "Commencer l'envoi", + ], + "Sign up to unlock all the features" => [ + 0 => "Enregistrez-vous pour débloquer toutes les fonctionnalités", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Gérez vos contenus, créez des albums privés, modifiez votre profil et plus encore.", + ], + "Sign in with your account" => [ + 0 => "Connectez-vous avec votre compte", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Vous n'avez pas de compte ? <a href='%s'>Inscrivez-vous</a> maintenant.", + ], + "Logged out" => [ + 0 => "Déconnexion", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Vous avez été déconnecté de %s. Nous espérons vous revoir prochainement.", + ], + "Go to homepage" => [ + 0 => "Retourner sur l'accueil", + ], + "Website under maintenance" => [ + 0 => "Site web en maintenance", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Nous effectuons une maintenance programmée sur le site web. Veuillez réessayer dans quelques minutes.", + ], + "This content is password protected." => [ + 0 => "Ce contenu est protégé par mot de passe.", + ], + "Please enter your password to continue." => [ + 0 => "Veuillez entrer le mot de passe pour continuer.", + ], + "Send" => [ + 0 => "Envoyer", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Ajoutez le téléchargement d'images sur votre site web, blog ou forum en installant notre plugin de téléchargement. Il permet de télécharger des images vers n'importe quel site Web en plaçant un bouton qui permettra à vos utilisateurs de télécharger directement des images vers notre service et il traitera automatiquement les codes nécessaires à l'insertion. Toutes les fonctions incluses comme le glisser-déposer, le téléchargement à distance, le redimensionnement des images et plus encore.", + ], + "Supported software" => [ + 0 => "Logiciel supporté", + ], + "supported software" => [ + 0 => "logiciel supporté", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Le plugin fonctionne sur n'importe quel site web avec un contenu modifiable par l'utilisateur et pour %sv, il placera un bouton de téléchargement qui correspondra à la barre d'outils de l'éditeur cible, donc aucune personnalisation supplémentaire n'est nécessaire.", + ], + "Add it to your website" => [ + 0 => "Ajoutez-le à votre site web", + ], + "options" => [ + 0 => "options", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Copiez le code du plugin dans le code HTML de votre site (de préférence dans la section head). Il y a beaucoup de %o pour le faire correspondre au mieux à vos besoins.", + ], + "Basic options" => [ + 0 => "Options de base", + ], + "Color palette" => [ + 0 => "Palette de couleurs", + ], + "Button color scheme" => [ + 0 => "Button color scheme", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Intégrer des codes qui seront automatiquement insérés dans la boîte d'édition", + ], + "After" => [ + 0 => "Après", + ], + "Before" => [ + 0 => "Avant", + ], + "Advanced options" => [ + 0 => "Options avancées", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Le plugin possède un grand nombre d'options supplémentaires qui permettent une personnalisation complète. Vous pouvez utiliser l'HTML personnalisé, CSS, votre propre palette de couleurs, définir des observateurs et plus encore. Vérifiez le %d et la source du plugin pour avoir une meilleure idée de ces options avancées.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Vous n'avez soit pas la permission d'accéder à cette page ou le lien a expiré.", + ], + "Search results" => [ + 0 => "Résultats de la recherche", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible.", + ], + "Delete user" => [ + 0 => "Supprimer l'utilisateur", + ], + "Register date" => [ + 0 => "Date d'enregistrement", + ], + "Registration IP" => [ + 0 => "IP à l'inscription", + ], + "Valid" => [ + 0 => "Valide", + ], + "Banned" => [ + 0 => "Banni", + ], + "Awaiting email" => [ + 0 => "En attente de l'email", + ], + "Awaiting confirmation" => [ + 0 => "En attente de confirmation", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i à %f caractères<br>Lettres, chiffres et \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Suppression automatique des envois", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Ce paramètre sera applicable par défaut à toutes vos images envoyées. Vous pouvez outrepasser remplacer ce paramètre à chaque envoi.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Garder les <a %s>données Exif</a> de l'image lors de l'envoi", + ], + "Newsletter" => [ + 0 => "Bulletin d'information", + ], + "Send me emails with news about %s" => [ + 0 => "Envoyez moi des courriels avec des informations sur %s", + ], + "Content settings" => [ + 0 => "Paramètres du contenu", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Afficher le contenu non sûr dans la liste (des autres)", + ], + "Language" => [ + 0 => "Langue", + ], + "Timezone" => [ + 0 => "Fuseau horaire", + ], + "Current password" => [ + 0 => "Mot de passe actuel", + ], + "Enter your current password" => [ + 0 => "Saisissez votre mot de passe actuel", + ], + "New password" => [ + 0 => "Nouveau mot de passe", + ], + "Confirm new password" => [ + 0 => "Confirmer le nouveau mot de passe", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Ajoutez un mot de passe pour pouvoir vous connecter avec votre nom d'utilisateur ou une adresse email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Cet utilisateur n'a pas de mot de passe. Ajoutez-en un avec ce formulaire.", + ], + "Enter your password" => [ + 0 => "Entrez votre mot de passe", + ], + "Confirm password" => [ + 0 => "Confirmez le mot de passe", + ], + "Re-enter your password" => [ + 0 => "Entrez à nouveau votre mot de passe", + ], + "Make my profile and identity totally private" => [ + 0 => "Rendre mon profil entièrement privé", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Activez cette option si vous voulez utiliser le site comme un utilisateur anonyme", + ], + "This is your real name, not your username." => [ + 0 => "C'est votre nom réel, pas votre nom d'utilisateur.", + ], + "http://yourwebsite.com" => [ + 0 => "http://votresite.fr", + ], + "Bio" => [ + 0 => "Biographie", + ], + "Tell us a little bit about you" => [ + 0 => "Parlez-nous un peu de vous.", + ], + "User has no connections." => [ + 0 => "L'utilisateur n'a pas de connexions.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Souhaitez-vous vraiment déconnecter %s de son compte ?", + ], + "This account is connected to %s" => [ + 0 => "Ce compte est connecté à %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Souhaitez-vous réellement déconnecter votre compte %s ?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Vous allez être déconnecté et vous ne pourrez plus vous connecter en utilisant le compte %s.", + ], + "Your account is connected to %s" => [ + 0 => "Votre compte est connecté à %s", + ], + "disconnect" => [ + 0 => "déconnecter", + ], + "Connect %s" => [ + 0 => "Connecter %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Profitez-en pour découvrir toutes mes images et albums partagés.", + ], + "Button" => [ + 0 => "Bouton", + ], + "View all my images" => [ + 0 => "Voir toutes mes images", + ], + "Login" => [ + 0 => "Connexion", + ], + "Already have an account? %s now." => [ + 0 => "Vous avez déjà un compte ? %s maintenant.", + ], + "resend account activation" => [ + 0 => "renvoyer l'activation de compte", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Si vous avez déjà un compte vous avez peut-être besoin de demander à %s d'activer votre compte.", + ], + "You can also %s." => [ + 0 => "Vous pouvez également %s.", + ], + "I'm at least %s years old" => [ + 0 => "Je suis âgé d'au moins %s ans", + ], + "terms" => [ + 0 => "conditions générales", + ], + "privacy policy" => [ + 0 => "politique de confidentialité", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "J'accepte les %terms_link et la %privacy_link", + ], + "Upload profile background" => [ + 0 => "Envoyer une photo de couverture", + ], + "Change background" => [ + 0 => "Modifier la couverture", + ], + "Upload new image" => [ + 0 => "Envoyer une nouvelle image", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "La photo de couverture va être supprimée. Cette action est irréversible. Êtes-vous sûr de vouloir supprimer la photo de couverture ?", + ], + "Delete background" => [ + 0 => "Supprimer la couverture", + ], + "Follower" => [ + 0 => "Abonné", + 1 => "Abonnés", + ], + "Follow" => [ + 0 => "Suivre", + ], + "You have been forbidden to use this website." => [ + 0 => "Vous avez été banni du site.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "General questions/comments" => [ + 0 => "Questions/commentaires généraux", + ], + "DMCA complaint" => [ + 0 => "Réclamation DADVSI", + ], + "Invalid message" => [ + 0 => "Message non valide", + ], + "Invalid subject" => [ + 0 => "Sujet non valide", + ], + "Mail error" => [ + 0 => "Erreur email", + ], + "Message sent" => [ + 0 => "Message envoyé", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Message envoyé. Nous prendrons contact rapidement.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Si vous voulez envoyer un message veuillez remplir le formulaire ci-dessous.", + ], + "Your name" => [ + 0 => "Votre nom", + ], + "Subject" => [ + 0 => "Sujet", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Toutes les modifications effectuées seront perdues si vous continuez.", + ], + "Changes saved successfully." => [ + 0 => "Modifications enregistrées avec succès.", + ], + "Go back to form" => [ + 0 => "Retourner au formulaire", + ], + "continue anyway" => [ + 0 => "continuer quand même", + ], + "Saving" => [ + 0 => "Enregistrement", + ], + "Sending" => [ + 0 => "Envoi", + ], + "Confirm action" => [ + 0 => "Confirmer l'action", + ], + "information" => [ + 0 => "information", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/he.po.cache.php b/app/.cache/languages/he.po.cache.php new file mode 100644 index 0000000..3ac4b77 --- /dev/null +++ b/app/.cache/languages/he.po.cache.php @@ -0,0 +1,2309 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:16+0000', + 'PO-Revision-Date' => '2020-09-02 17:16+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'he', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n!=0 && n>10 && n%10==0 ? 2 : 3);', +); +$translation_plural = array ( + 'nplurals' => 4, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "דוא\"ל שגוי", + ], + "Invalid username" => [ + 0 => "שגיאה בבחירת מצב אתר", + ], + "Invalid password" => [ + 0 => "סיסמא שגוייה", + ], + "Invalid website mode" => [ + 0 => "שגיאה בבחירת מצב אתר", + ], + "From email address" => [ + 0 => "מכתובת דואר אלקטרוני", + ], + "Sender email for emails sent to users." => [ + 0 => "דוא\"ל שולח לשליחת הודעות למשתמשים", + ], + "Incoming email address" => [ + 0 => "כתובת דוא\"ל נכנסת", + ], + "Recipient for contact form and system alerts." => [ + 0 => "נמען לטופס יצירת קשר ולמערכת ההתראות", + ], + "Website mode" => [ + 0 => "מצב אתר", + ], + "You can switch the website mode anytime." => [ + 0 => "אתם יכולים לשנות את מצב האתר בכל זמן", + ], + "Community" => [ + 0 => "קהילה", + ], + "Personal" => [ + 0 => "אישי", + ], + "Installed version is v%s" => [ + 0 => "הגירסה הנוכחית היא %s", + ], + "Can't connect to %s" => [ + 0 => "לא ניתן להתחבר ל- %s", + ], + "Last available release is v%s" => [ + 0 => "יש עדכון זמין לגירסה %s", + ], + "Update needed, proceeding to download" => [ + 0 => "מוריד עדכון חדש, אנא המתן", + ], + "No update needed" => [ + 0 => "עדכון לא נדרש", + ], + "System files already up to date" => [ + 0 => "קבצי מערכת נמצאו מעודכנים", + ], + "Starting v%s download" => [ + 0 => "מתחיל בהורדת עדכון %s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "עדכון %s הורד בהצלחה, ממתין לאימות נתונים", + ], + "Attempting to extract v%s" => [ + 0 => "עדכון %s עבר אימות בהצלחה, וכעת מתקין קבצים", + ], + "Update in progress" => [ + 0 => "מעדכן נתונים", + ], + "Can't download %s" => [ + 0 => "שגיאה בהורדה %s", + ], + "Can't extract %s" => [ + 0 => "לא יכול לחלץ %s", + ], + "Check the errors in the form to continue." => [ + 0 => "בדקו שגיאות בטופס כדי להמשיך.", + ], + "You must enter the album name." => [ + 0 => "לא הוזן שם אלבום", + ], + "Confirm" => [ + 0 => "אישור פעולה", + ], + "Select existing album" => [ + 0 => "בחר לאלבום קיים", + ], + "An error occurred. Please try again later." => [ + 0 => "התרחשה שגיאה. אנא נסו שוב מאוחר יותר.", + ], + "Please select a valid image file type." => [ + 0 => "בחר סוג קובץ תמונה תקין.", + ], + "Please select a picture of at most %s size." => [ + 0 => "ניתן לבחור תמונה עד גודל %s.", + ], + "Profile image updated." => [ + 0 => "תמונת פרופיל עודכנה בהצלחה.", + ], + "Profile background image updated." => [ + 0 => "תמונת רקע פרופיל עודכנה בהצלחה.", + ], + "Profile background image deleted." => [ + 0 => "תמונת רקע פרופיל נמחקה בהצלחה.", + ], + "Error deleting profile background image." => [ + 0 => "שגיאה בעת מחיקת תמונת רקע פרופיל, נסה שוב.", + ], + "Passwords don't match" => [ + 0 => "הסיסמאות אינן תואמות", + ], + "Update available v%s" => [ + 0 => "עדכון זמין (גירסה %s)", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "קיים עדכון זמין עבור המערכת. באפשרותך להוריד ולהתקין את העדכון באופן אוטומטי, או להיכנס לכתובת %s כדי להמשיך ולהוריד את הקובץ.", + ], + "The release notes for this update are:" => [ + 0 => "הערות שחרור עבור עדכון זה:", + ], + "Update now" => [ + 0 => "עדכן כעת", + ], + "or" => [ + 0 => "או", + ], + "cancel" => [ + 0 => "ביטול", + ], + "This website is running latest %s version" => [ + 0 => "הינך נמצא בגירסה המעודכנת של מערכת %s", + ], + "loading" => [ + 0 => "טוען נתונים", + ], + "Toggle select" => [ + 0 => "סמן בחירה", + ], + "Like" => [ + 0 => "לייק", + ], + "Toggle flag" => [ + 0 => "סמן כתוכן פוגעני", + ], + "Edit" => [ + 0 => "עריכה", + ], + "Album" => [ + 0 => "אלבום", + 1 => "אלבומים", + 2 => "אלבומים", + 3 => "אלבומים", + ], + "Delete" => [ + 0 => "מחק", + ], + "Close" => [ + 0 => "סגור", + ], + "File too big." => [ + 0 => "הקובץ בנפח גדול", + ], + "Some files couldn't be added" => [ + 0 => "לא ניתן להעלות קבצים מסויימים", + ], + "image" => [ + 0 => "תמונה", + 1 => "תמונות", + 2 => "תמונות", + 3 => "תמונות", + ], + "%s's Albums" => [ + 0 => "האלבומים של %s", + ], + "Image edited successfully." => [ + 0 => "שינוי פרטי התמונה עודכן בהצלחה", + ], + "private" => [ + 0 => "פרטי", + ], + "Album edited successfully." => [ + 0 => "שינוי פרטי האלבום עודכן בהצלחה", + ], + "Invalid URL key." => [ + 0 => "מפתח קישור לא חוקי", + ], + "Category URL key already being used." => [ + 0 => "מפתח קישור של קטגוריה כבר נמצא בשימוש", + ], + "Category %s added." => [ + 0 => "קטגוריית %s נוספה בהצלחה.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "קיבולת האיחסון לא יכולה להיות נמוכה מהנוכחית %s", + ], + "User added successfully." => [ + 0 => "משתמש התווסף בהצלחה", + ], + "The content has been deleted." => [ + 0 => "התוכן נמחק בהצלחה.", + ], + "The content has been moved." => [ + 0 => "התמונות הועברו לאלבום בהצלחה.", + ], + "Select" => [ + 0 => "בחירה", + ], + "Unselect" => [ + 0 => "בטל בחירה", + ], + "The content has been edited." => [ + 0 => "הפרטים נערכו בהצלחה.", + ], + "album" => [ + 0 => "אלבום", + 1 => "אלבומים", + 2 => "אלבומים", + 3 => "אלבומים", + ], + "Untitled" => [ + 0 => "ללא כותרת", + ], + "%s's images" => [ + 0 => "%s תמונות", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "שים לב: התוכן הזה הינו מוגדר כפרטי. אך כל מי שקיבל את הקישור יוכל לצפות בו.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "שים לב: התוכן הזה הינו מוגן באמצעות סיסמא. זכור לשתף גם את הסיסמא על מנת לשתף את התוכן.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "שים לב: התוכן הזה הינו מוגדר כפרטי. שנה את הגדרות הפרטיות ל- \"ציבורי\" על מנת לשתף.", + ], + "Private" => [ + 0 => "פרטי", + ], + "Public" => [ + 0 => "ציבורי", + ], + "Me" => [ + 0 => "אני", + ], + "Link" => [ + 0 => "קישור", + ], + "Password" => [ + 0 => "סיסמא", + ], + "view" => [ + 0 => "צפיות", + 1 => "צפיות", + 2 => "צפיות", + 3 => "צפיות", + ], + "After %n %t" => [ + 0 => "לאחר %n %t", + ], + "minute" => [ + 0 => "דקה", + 1 => "דקות", + 2 => "דקות", + 3 => "דקות", + ], + "hour" => [ + 0 => "שעות", + 1 => "שעות", + 2 => "שעות", + 3 => "שעות", + ], + "day" => [ + 0 => "יום", + 1 => "ימים", + 2 => "ימים", + 3 => "ימים", + ], + "week" => [ + 0 => "שבוע", + 1 => "שבועיים", + 2 => "שבועות", + 3 => "שבועות", + ], + "month" => [ + 0 => "חודש", + 1 => "חודשיים", + 2 => "חודשים", + 3 => "חודשים", + ], + "year" => [ + 0 => "שנה", + 1 => "שנתיים", + 2 => "שנים", + 3 => "שנים", + ], + "Don't autodelete" => [ + 0 => "ללא", + ], + "Duplicated upload" => [ + 0 => "העלאה כפולה", + ], + "Private upload" => [ + 0 => "העלאה פרטית", + ], + "like" => [ + 0 => "לייקים", + 1 => "לייקים", + 2 => "לייקים", + 3 => "לייקים", + ], + "Recent" => [ + 0 => "אחרונים", + ], + "Trending" => [ + 0 => "טרנדים", + ], + "Top users" => [ + 0 => "המשתמשים הכי פעילים", + ], + "Most recent" => [ + 0 => "נוספו לאחרונה", + ], + "Oldest" => [ + 0 => "הכי ישנים", + ], + "Most viewed" => [ + 0 => "הכי נצפים", + ], + "Popular" => [ + 0 => "פופולרים", + ], + "Most liked" => [ + 0 => "הכי אהובים", + ], + "Explore" => [ + 0 => "סיור", + ], + "Animated" => [ + 0 => "אהובים", + ], + "Search" => [ + 0 => "חיפוש", + ], + "Image" => [ + 0 => "תמונה", + 1 => "תמונות", + 2 => "תמונות", + 3 => "תמונות", + ], + "User" => [ + 0 => "משתמש", + 1 => "משתמשים", + 2 => "משתמשים", + 3 => "משתמשים", + ], + "Can't create %s destination dir" => [ + 0 => "לא ניתן לצור את תקית היעד %s", + ], + "Can't open %s for writing" => [ + 0 => "לא ניתן לפתוח את %s לכתיבה", + ], + "Internal" => [ + 0 => "חיצוני", + ], + "Unlimited" => [ + 0 => "בלתי מוגבל", + ], + "used" => [ + 0 => "שומש", + ], + "Private profile" => [ + 0 => "פרופיל פרטי", + ], + "second" => [ + 0 => "שניה", + 1 => "שניות", + 2 => "שניות", + 3 => "שניות", + ], + "%s ago" => [ + 0 => "לפני %s", + ], + "moments ago" => [ + 0 => "לפני כמה רגעים", + ], + "Dashboard" => [ + 0 => "פאנל ניהול", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "קיים עדכון זמין עבור המערכת. עבור אל %s כדי להוריד ולהתקין את העדכון", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "בסיס הנתונים של המערכת מיושן. הינך צריך להריץ את פונקציית <a href=\"%s\">update</a>", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "האתר במצב תחזוקה. כדי לשנות הגדרות כנסו ל <a href=\"%s\">פאנל ניהול > הגדרות</a>", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "קיים עדכון זמין עבור אתר האינטרנט שלך מבוסס Chevereto.", + ], + "admin dashboard" => [ + 0 => "פאנל ניהול", + ], + "cookie policy" => [ + 0 => "מדיניות פרטיות", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "<b>באתר זה נעשה שימוש בקבצי cookie כדי לשפר את חווית הגלישה שלכם.</b>\nלמידע נוסף על האופן שבו אנו משתמשים בקבצי cookies, עיינו במדיניות הפרטיות שלנו. במידה ותמשיכו להשתמש באתר שלנו, אתם מסכימים לשימוש כזה בקבצי %cookie_policy_link", + ], + "Forgot password?" => [ + 0 => "שכחתי סיסמא?", + ], + "Reset password" => [ + 0 => "איפוס סיסמה", + ], + "Resend account activation" => [ + 0 => "שלחו שוב את הפעלת החשבון", + ], + "Add your email address" => [ + 0 => "הוסיפו את כתובת הדוא\"ל שלכם", + ], + "Email changed" => [ + 0 => "דוא\"ל שונה.", + ], + "%s says you are a robot" => [ + 0 => "יש לבצע אימות %s לוודא שאינך רובוט", + ], + "Invalid Username/Email" => [ + 0 => "שם משתמש\\דוא\"ל שגויים", + ], + "User doesn't have an email." => [ + 0 => "למשתמש אין דוא\"ל", + ], + "Request denied" => [ + 0 => "הבקשה נדחתה", + ], + "Account needs to be activated to use this feature" => [ + 0 => "עליך לבצע הפעלה לחשבון כדי להשתמש בתכונה זו", + ], + "Account already activated" => [ + 0 => "המשתמש כבר פעיל", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "שליחת מייל שני מתאפשרת לאחר 15 דק'. תוכלו לנסות שוב מאוחר יותר.", + ], + "Reset your password at %s" => [ + 0 => "אפס את סיסמתך ב%s", + ], + "Confirmation required at %s" => [ + 0 => "נדרש אישור ב- %s", + ], + "Welcome to %s" => [ + 0 => "ברוכים הבאים ל%s", + ], + "Email already being used" => [ + 0 => "דוא\"ל כבר בשימוש", + ], + "Password required" => [ + 0 => "נדרשת סיסמא", + ], + "Share" => [ + 0 => "שתף", + ], + "Embed codes" => [ + 0 => "קודים מוטבעים", + ], + "Full info" => [ + 0 => "מידע מלא", + ], + "%a album hosted in %w" => [ + 0 => "%a אלבום מאוחסן ב%w", + ], + "Stats" => [ + 0 => "סטטיסטיקה", + ], + "Images" => [ + 0 => "תמונות", + ], + "Albums" => [ + 0 => "אלבומים", + ], + "Users" => [ + 0 => "משתמשים", + ], + "Settings" => [ + 0 => "הגדרות", + ], + "Chevereto version" => [ + 0 => "גירסת המערכת", + ], + "install update" => [ + 0 => "מתקין עדכון", + ], + "check for updates" => [ + 0 => "בדוק עדכונים", + ], + "Support" => [ + 0 => "תמיכה", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "זקוק לעזרה\\תמיכה? לחץ על הקישור %s לקבלת תמיכה .", + ], + "PHP version" => [ + 0 => "PHP version", + ], + "Server" => [ + 0 => "שרת", + ], + "MySQL version" => [ + 0 => "MySQL version", + ], + "MySQL server info" => [ + 0 => "מידע על שרת MySQL", + ], + "GD Library" => [ + 0 => "ספריית GD", + ], + "File uploads" => [ + 0 => "העלאת קבצים", + ], + "Enabled" => [ + 0 => "מופעל", + ], + "Disabled" => [ + 0 => "כבוי", + ], + "Max. upload file size" => [ + 0 => "מקסימלי: נפח העלהת קובץ", + ], + "Max. post size" => [ + 0 => "גודל תגובה מקסימלי", + ], + "Max. execution time" => [ + 0 => "זמן ביצוע מקסימלי", + ], + "%d second" => [ + 0 => "%d שניה", + 1 => "%d שניות", + 2 => "%d שניות", + 3 => "%d שניות", + ], + "Memory limit" => [ + 0 => "הגבלת זיכרון", + ], + "Links" => [ + 0 => "קישורים", + ], + "Website" => [ + 0 => "אתר אינטרנט", + ], + "Content" => [ + 0 => "תוכן", + ], + "Pages" => [ + 0 => "עמודים", + ], + "Listings" => [ + 0 => "רישומים", + ], + "Image upload" => [ + 0 => "העלאת תמונה", + ], + "Categories" => [ + 0 => "קטגוריות", + ], + "Consent screen" => [ + 0 => "מסך תנאי כניסה", + ], + "Flood protection" => [ + 0 => "הגנה מפני הצפות", + ], + "Theme" => [ + 0 => "ערכת נושא", + ], + "Homepage" => [ + 0 => "דף הבית", + ], + "Banners" => [ + 0 => "באנרים", + ], + "System" => [ + 0 => "מערכת", + ], + "Languages" => [ + 0 => "שפות", + ], + "External storage" => [ + 0 => "איחסון חיצוני", + ], + "Email" => [ + 0 => "דוא\"ל", + ], + "Social networks" => [ + 0 => "רשתות חברתיות", + ], + "External services" => [ + 0 => "שירותים חיצוניים", + ], + "IP bans" => [ + 0 => "השהיות IP", + ], + "Additional settings" => [ + 0 => "הגדרות נוספות", + ], + "Tools" => [ + 0 => "כלים", + ], + "Homepage cover image deleted" => [ + 0 => "תמונת עטיפה לדף נחיתה נמחקה בהצלחה", + ], + "Local" => [ + 0 => "מקומי", + ], + "External" => [ + 0 => "חיצוני", + ], + "All" => [ + 0 => "הכל", + ], + "search content" => [ + 0 => "חיפוש תוכן לפי כתובת IP", + ], + "Add page" => [ + 0 => "הוסף עמוד", + ], + "Edit page ID %s" => [ + 0 => "עריכת עמוד מספר מזהה %s", + ], + "The page has been added successfully." => [ + 0 => "העמוד נוסף בהצלחה.", + ], + "Invalid website name" => [ + 0 => "שם אתר אינטרנט לא חוקי", + ], + "Invalid language" => [ + 0 => "שפה לא חוקית", + ], + "Invalid timezone" => [ + 0 => "אזור זמן לא חוקי", + ], + "Invalid upload storage mode" => [ + 0 => "מצב העלאת איחסון לא חוקי", + ], + "Invalid upload filenaming" => [ + 0 => "שם העלאה לא חוקי", + ], + "Invalid thumb width" => [ + 0 => "רוחב אובייקט לא חוקי", + ], + "Invalid thumb height" => [ + 0 => "אורך אובייקט לא חוקי", + ], + "Invalid watermark percentage" => [ + 0 => "אחוז Watermark לא תקין", + ], + "Invalid watermark opacity" => [ + 0 => "טשטוש חותמת מים לא תקין", + ], + "Invalid theme" => [ + 0 => "ערכת נושא לא חוקית", + ], + "Invalid value" => [ + 0 => "ערך לא חוקי", + ], + "Invalid theme tone" => [ + 0 => "גוון ערכת נושא לא חוקי", + ], + "Invalid theme main color" => [ + 0 => "צבע עיקרי של ערכת הנושא לא חוקי", + ], + "Invalid theme top bar button color" => [ + 0 => "צבע כפתור הבאר העליון של ערכת הנושא לא חוקי", + ], + "Invalid theme image listing size" => [ + 0 => "גודל רישום ערכת הנושא לא חוקי", + ], + "Invalid user id" => [ + 0 => "שם משתמש שגוי", + ], + "Invalid email mode" => [ + 0 => "מצב דוא\"ל לא חוקי", + ], + "Invalid SMTP port" => [ + 0 => "SMTP port לא חוקי", + ], + "Invalid SMTP security" => [ + 0 => "אבטחת SMTP לא חוקית", + ], + "Invalid personal mode user ID" => [ + 0 => "מזהה משתמש במצב אישי שגוי", + ], + "Invalid or reserved route" => [ + 0 => "ניתוב שמורות לא חוקי", + ], + "Invalid website privacy mode" => [ + 0 => "מצב אתר פרטי לא חוקי", + ], + "Invalid website content privacy mode" => [ + 0 => "תוכן מצב אתר פרטי לא חוקי", + ], + "Invalid homepage style" => [ + 0 => "סגנון דף הבית לא חוקי", + ], + "Invalid homepage call to action button color" => [ + 0 => "צבע כפתור \"הנעה לפעולה\" בדף הבית לא חוקי", + ], + "Invalid homepage call to action functionality" => [ + 0 => "פונקציות \"הנעה לפעולה\" בדף הבית לא חוקיות", + ], + "Invalid URL key" => [ + 0 => "מפתח קישור לא חוקי", + ], + "Invalid URL" => [ + 0 => "קישור לא תקין", + ], + "Invalid upload image path" => [ + 0 => "נתיב העלאת תמונה לא חוקי", + ], + "Invalid call to action URL" => [ + 0 => "קישור \"הנעה לפעולה\" לא חוקי", + ], + "Max. allowed %s" => [ + 0 => "%s מרבי שניתן", + ], + "Invalid SMTP server" => [ + 0 => "שרת SMTP לא חוקי", + ], + "Invalid SMTP username" => [ + 0 => "שם משתמש SMTP לא חוקי", + ], + "Following" => [ + 0 => "במעקב", + ], + "About" => [ + 0 => "אודות", + ], + "Image ID" => [ + 0 => "מזהה תמונה", + ], + "Uploader IP" => [ + 0 => "הועלה מכתובת IP", + ], + "Ban IP" => [ + 0 => "הרחקת כתובת IP", + ], + "IP already banned" => [ + 0 => "IP כבר מושהה", + ], + "Upload date" => [ + 0 => "תאריך העלאה", + ], + "Image %i in %a album" => [ + 0 => "תמונה %i באלבום %a", + ], + "Image %i in %c category" => [ + 0 => "תמונה %i בקטגורית %c", + ], + "Image %i hosted in %w" => [ + 0 => "תמונה %i מאוחסנת ב%w", + ], + "Direct links" => [ + 0 => "קישורים ישירים (כתובת תמונה)", + ], + "Image link" => [ + 0 => "קישור לתמונה", + ], + "Image URL" => [ + 0 => "כתובת URL: תמונה רגילה", + ], + "Thumbnail URL" => [ + 0 => "כתובת URL: תמונה ממוזערת", + ], + "Medium URL" => [ + 0 => "כתובת URL: תמונה בינונית", + ], + "Full image" => [ + 0 => "תמונה רגילה", + ], + "Full image (linked)" => [ + 0 => "תמונה רגילה (כולל קוד קישור)", + ], + "Medium image (linked)" => [ + 0 => "תמונה בינונית (כולל קוד קישור)", + ], + "Thumbnail image (linked)" => [ + 0 => "תמונה ממוזערת (כולל קוד קישור)", + ], + "Login needed" => [ + 0 => "עליך לבצע התחברות למערכת", + ], + "IP address already banned" => [ + 0 => "כתובת IP כבר בהשהיה", + ], + "Missing values" => [ + 0 => "ערכים חסרים", + ], + "Invalid role" => [ + 0 => "תפקיד לא חוקי", + ], + "Username already being used" => [ + 0 => "שם משתמש כבר בשימוש", + ], + "%s has been disconnected." => [ + 0 => "%s התנתק", + ], + "%u liked your %t %c" => [ + 0 => "%u סימן לייק ל%t %c", + ], + "%u is now following you" => [ + 0 => "%u במעקב אחריך", + ], + "A private user" => [ + 0 => "משתמש פרטי", + ], + "Wrong Username/Email password combination" => [ + 0 => "שם המשתמש או הדוא\"ל שגויים", + ], + "Sign in" => [ + 0 => "היכנס", + ], + "Upload images" => [ + 0 => "העלה תמונות", + ], + "Upload plugin" => [ + 0 => "העלה תוסף", + ], + "Image search results for %s" => [ + 0 => "תוצאות חיפוש תמונות עבור %s", + ], + "Album search results for %s" => [ + 0 => "תוצאות חיפוש באלבום עבור %s", + ], + "User search results for %s" => [ + 0 => "תוצאות חיפוש משתמש עבור %s", + ], + "Account" => [ + 0 => "חשבון", + ], + "Profile" => [ + 0 => "פרופיל", + ], + "Linked accounts" => [ + 0 => "חשבונות מקושרים", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "דואר אלקטרוני נשלח אל %s עם הוראות הפעלת החשבון", + ], + "Invalid name" => [ + 0 => "שם לא חוקי", + ], + "Invalid website" => [ + 0 => "אתר אינטרנט לא חוקי", + ], + "Wrong password" => [ + 0 => "סיסמא שגויה", + ], + "Use a new password" => [ + 0 => "השתמש בסיסמא חדשה", + ], + "Changes have been saved." => [ + 0 => "השינויים נשמרו", + ], + "Password has been changed" => [ + 0 => "הסיסמא השתנתה", + ], + "Password has been created." => [ + 0 => "הסיסמה נוצרה", + ], + "Wrong Username/Email values" => [ + 0 => "שם משתמש\\דוא\"ל שגויים", + ], + "Settings for %s" => [ + 0 => "הגדרות עבור %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "עליך להסכים לתנאי שימוש ולמדיניות פרטיות", + ], + "Create account" => [ + 0 => "צור חשבון", + ], + "Upload" => [ + 0 => "העלאה", + ], + "%s's Images" => [ + 0 => "התמונות של %s", + ], + "Results for" => [ + 0 => "תוצאות עבור", + ], + "Liked by %s" => [ + 0 => "לייקים מאת %s", + ], + "Liked" => [ + 0 => "לייק", + ], + "Followers" => [ + 0 => "עוקבים", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) אלבומים ב %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) ב %w", + ], + "Discovery" => [ + 0 => "גלה עוד", + ], + "Advanced search" => [ + 0 => "חיפוש מתקדם", + ], + "Random" => [ + 0 => "אקראי", + ], + "Notices (%s)" => [ + 0 => "הודעות (%s)", + ], + "Notifications" => [ + 0 => "התראות", + ], + "You don't have notifications" => [ + 0 => "אין התראות חדשות", + ], + "My Profile" => [ + 0 => "הפרופיל שלי", + ], + "Sign out" => [ + 0 => "התנתק", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "התקבלה בקשה לשנות את האימייל שלכם בחשבון <a href=\"%u\">%n</a> ב%w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "על מנת להשלים את התהליך אתם חייבים <a href=\"%s\">להפעיל את הדוא\"ל שלכם</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "לחלופין, אתם יכולים להעתיק ולהדביק את הקישור לדפדפן שלכם. <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "אם לא התכוונתם לזה, פשוט התעלמו מהודעה זו.", + ], + "This request was made from IP: %s" => [ + 0 => "הבקשה התקבלה מכתובת IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "התקבלה בקשה לרשום את ה%n חשבון ב%w", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "על מנת להשלים את התהליך אתם חייבים <a href=\"%s\">להפעיל את חשבונכם</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "התקבלה בקשה לאפס את הסיסמא לחשבון המשוייך ל- <a href=\"%u\">%n</a>", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "על מנת לאפס את סיסמתכם, <a href=\"%s\">לחצו כאן</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "היי %n, ברוכים הבאים ל%w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "עכשיו כשחשבונכם מוכן, תוכלו להנות מלהעלות את התמונות שלכם, ליצור אלבומים ולהגדיר את הפרטיות של התוכן שלכם כמו דברים רבים ומגניבים שעוד תגלו.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "דרך אגב, להלן לינק לפרופיל האישי שלכם: <a href=\"%u\">%n</a>. היכנסו ותתאימו אותו לטעם שלכם!", + ], + "Thank you for joining" => [ + 0 => "תודה על הצטרפותכם!", + ], + "This email was sent from %w %u" => [ + 0 => "הדוא\"ל נשלח מ %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "גרור ושחרר כאן את התמונות להעלאה", + ], + "Select the images to upload" => [ + 0 => "בחר תמונות להעלאה", + ], + "browse from your computer" => [ + 0 => "מהמחשב האישי", + ], + "add image URLs" => [ + 0 => "הוספת קישורים של תמונות", + ], + "You can also %i or %u." => [ + 0 => "ניתן להוסיף גם %i או %u. ", + ], + "browse from your device" => [ + 0 => "דפדף במכשיר שלך", + ], + "take a picture" => [ + 0 => "צילום תמונה", + ], + "You can also %i, %c or %u." => [ + 0 => "ניתן להוסיף גם %i, %c או %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "ערוך או שנה את גודל התמונה על ידי לחיצה על התמונה או אייקון העריכה", + ], + "Edit any image by touching the image preview" => [ + 0 => "ערוך או שנה את גודל התמונה על ידי לחיצה על תצוגה מקדימה או אייקון העריכה", + ], + "your computer" => [ + 0 => "המחשב שלי", + ], + "You can add more images from %i or %u." => [ + 0 => "ניתן להוסיף עוד תמונות מ- %i או %u.", + ], + "your device" => [ + 0 => "ספריית תמונות", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "ניתן להוסיף עוד תמונות מ- %i, %c או %u.", + ], + "Uploading %q %o" => [ + 0 => "העלאת %q %o", + ], + "complete" => [ + 0 => "הושלם", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "התמונות בהעלאה, יקח כמה שניות עד שתקבל לינק להורדה\\הטמעה", + ], + "Upload complete" => [ + 0 => "העלאה הושלמה", + ], + "Uploaded content added to %s." => [ + 0 => "התמונות שהועלו, התווספו לאלבום %s", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "באפשרותך לי%c עם התוכן שהועלה, או %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "הינך יכול לי%c אלבום חדש עם התוכן שהועלה.", + ], + "create a new album" => [ + 0 => "צור אלבום חדש", + ], + "move it to an existing album" => [ + 0 => "להעביר אותם לאלבום קיים", + ], + "sign in" => [ + 0 => "היכנס", + ], + "No %s have been uploaded" => [ + 0 => "תקלה בעת העלאת קבצי %s, נסה שוב", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "נתקלנו במספר שגיאות במהלך הפעולה האחרונה שביצעת ולא ניתן להשלים אותה, נסה שוב!", + ], + "Category" => [ + 0 => "קטגוריה", + ], + "Select category" => [ + 0 => "בחר קטגוריה", + ], + "Mark this if the upload is not family safe" => [ + 0 => "סמן כאן אם התוכן הינו פוגעני", + ], + "Not family safe upload" => [ + 0 => "סמן כתוכן פוגעני", + ], + "Uploading" => [ + 0 => "בהעלאה..", + ], + "cancel remaining" => [ + 0 => "בטל את העלאה", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "שים לב: חלק מהתמונות לא הועלו", + ], + "learn more" => [ + 0 => "למד עוד", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "עיין ב- <a data-modal=\"simple\" data-target=\"failed-upload-result\">דו\"ח השגיאות</a> למידע נוסף.", + ], + "close" => [ + 0 => "סגור", + ], + "copy" => [ + 0 => "העתק", + ], + "Remove" => [ + 0 => "הסרה", + ], + "Title" => [ + 0 => "כותרת", + ], + "optional" => [ + 0 => "לא חובה", + ], + "Resize image" => [ + 0 => "שינוי מימדי תמונה", + ], + "Width" => [ + 0 => "רוחב", + ], + "Height" => [ + 0 => "אורך", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "הערה: תמונות GIF מונפשות אינן ניתנות לשינוי מימדים.", + ], + "Auto delete image" => [ + 0 => "מחיקה תמונה אוטומטית", + ], + "Sign up" => [ + 0 => "הירשם", + ], + "Mark this if the image is not family safe" => [ + 0 => "סמן אם התמונה הינה תוכן פוגעני", + ], + "Flag as unsafe" => [ + 0 => "סמן כתוכן פוגעני", + ], + "Description" => [ + 0 => "תיאור", + ], + "Brief description of this image" => [ + 0 => "תאר בקצרה את התמונה", + ], + "Add image URLs" => [ + 0 => "הוספת קישורים של תמונות", + ], + "Add the image URLs here" => [ + 0 => "הכנס כאן רשימת קישורים של תמונות", + ], + "Create album" => [ + 0 => "צור אלבום", + ], + "You can also move the content to an %a." => [ + 0 => "העבר את התוכן ל- %a.", + ], + "Move to album" => [ + 0 => "העבר לאלבום", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "בחרו אלבום קיים על מנת להעביר את התמונות שהועלו. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונות לשם.", + ], + "Error report" => [ + 0 => "דוח שגיאות", + ], + "Viewer links" => [ + 0 => "קישורים ישירים (מקוצר)", + ], + "HTML Codes" => [ + 0 => "קוד HTML", + ], + "HTML image" => [ + 0 => "תמונת HTML", + ], + "HTML full linked" => [ + 0 => "HTML מקושר במלואו", + ], + "HTML medium linked" => [ + 0 => "HTML מקושר בחלקו", + ], + "HTML thumbnail linked" => [ + 0 => "HTML מקושר במעט", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode full" => [ + 0 => "BBCode מלא", + ], + "BBCode full linked" => [ + 0 => "BBCode מקושר במלואו", + ], + "BBCode medium linked" => [ + 0 => "BBCode מקושר בחלקו", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode מקושר במעט", + ], + "All these words" => [ + 0 => "כל המילים הללו", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "הקלידו את המילים החשובות: כלבים, ציפורים", + ], + "This exact word or phrase" => [ + 0 => "מילה או ביטוי מדויק", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "הכניסו מילים מדוייקות כמו: \"כלבים\"", + ], + "None of these words" => [ + 0 => "אף אחת מהמילים הללו", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "שימו מינוס רק לפני מילים שאתם לא רוצים. כמו: -\"ג'ק ספארו\" -\"ג'וני דפ\"", + ], + "Storage" => [ + 0 => "איחסון", + ], + "IP address" => [ + 0 => "כתובת IP", + ], + "Album name" => [ + 0 => "שם האלבום", + ], + "move to existing album" => [ + 0 => "העבר לאלבום קיים", + ], + "Album description" => [ + 0 => "תיאור האלבום", + ], + "Brief description of this album" => [ + 0 => "תאר בקצרה את האלבום", + ], + "Album privacy" => [ + 0 => "פרטיות אלבום", + ], + "Who can view this content" => [ + 0 => "מי יכול לצפות בתוכן הזה", + ], + "Private (just me)" => [ + 0 => "פרטי (רק אני)", + ], + "Private (anyone with the link)" => [ + 0 => "פרטי (כל אחד עם הקישור)", + ], + "Private (password protected)" => [ + 0 => "פרטי (מוגן בסיסמא)", + ], + "Album password" => [ + 0 => "סיסמת אלבום", + ], + "Name" => [ + 0 => "שם", + ], + "Category name" => [ + 0 => "שם הקטגוריה", + ], + "URL key" => [ + 0 => "מפתח קישור", + ], + "Category URL key" => [ + 0 => "קטגוריית מפתח קישור", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "רק אותיות, מספרים ומקפים", + ], + "Brief description of this category" => [ + 0 => "תיאור קצר של הקטגוריה", + ], + "Untitled image" => [ + 0 => "תמונה ללא כותרת", + ], + "Path" => [ + 0 => "נתיב", + ], + "Expiration date" => [ + 0 => "תאריך תפוגה", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "שנה-חודש-יום שעות:דקות:שניות", + ], + "Example" => [ + 0 => "דוגמה", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "עד איזה תאריך כתובת IP זו תהיה מושהת? השאירו ריק להשהייה לצמיתות.", + ], + "Message" => [ + 0 => "הודעה", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "הודעת טקסט, HTML או קישור מפנה", + ], + "Existing album" => [ + 0 => "אלבום קיים", + ], + "create new album" => [ + 0 => "צור אלבום חדש", + ], + "Storage name" => [ + 0 => "שם איחסון", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "אזור", + ], + "Storage region" => [ + 0 => "אזור איחסון", + ], + "Storage bucket" => [ + 0 => "דלי איחסון", + ], + "Key" => [ + 0 => "מפתח", + ], + "Storage key" => [ + 0 => "מפתח איחסון", + ], + "Secret" => [ + 0 => "סוד", + ], + "Storage secret" => [ + 0 => "איחסון סוד", + ], + "Private key" => [ + 0 => "מפתח פרטי", + ], + "Google Cloud JSON key" => [ + 0 => "מפתח Google Cloud JSON", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "אתם תצטרכו <a %s>שירותי משתמש</a> בשביל זה.", + ], + "Identity URL" => [ + 0 => "קישור זהות", + ], + "Identity API endpoint" => [ + 0 => "זהות נקודת סיום AIP", + ], + "API endpoint for OpenStack identity" => [ + 0 => "נקודת סיום API בשביל זהות OpenStack", + ], + "Username" => [ + 0 => "שם משתמש", + ], + "Container" => [ + 0 => "מיכל", + ], + "Storage container" => [ + 0 => "מיכל איחסון", + ], + "Tenant id" => [ + 0 => "מזהה דייר", + ], + "Tenant id (account id)" => [ + 0 => "מזהה דייר (מזהה משתמש)", + ], + "Tenant name" => [ + 0 => "שם דייר", + ], + "Tenant name (account name)" => [ + 0 => "שם דייר (שם משתמש)", + ], + "Hostname or IP of the storage server" => [ + 0 => "שם איחסון או IP של שרת האיחסון", + ], + "Server path" => [ + 0 => "ניתוב שרת", + ], + "Server login" => [ + 0 => "התחברות לשרת", + ], + "Server password" => [ + 0 => "סיסמת השרת", + ], + "Storage capacity" => [ + 0 => "קיבולת איחסון", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "דוגמה: 20GB, 1TB וכדומה.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "איחסון זה יהיה מושבת כאשר הוא יגיע למירב הקיבולת. השאירו ריק או 0 כדי לא להגביל.", + ], + "Storage URL" => [ + 0 => "קישור איחסון", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "המערכת תמפה את התמונות של אחסון זה לכתובת זו.", + ], + "view more" => [ + 0 => "הצג עוד", + ], + "Load more" => [ + 0 => "טען עוד", + ], + "Select all" => [ + 0 => "בחר הכל", + ], + "Clear selection" => [ + 0 => "נקה בחירה", + ], + "Selection" => [ + 0 => "בחירה", + ], + "Action" => [ + 0 => "פעולה", + ], + "Get embed codes" => [ + 0 => "קבל קודים מוטבעים", + ], + "Assign category" => [ + 0 => "העבר לקטגוריה", + ], + "Flag as safe" => [ + 0 => "סמן כתוכן מאושר", + ], + "Create new album" => [ + 0 => "צור אלבום חדש", + ], + "Sign in with another account" => [ + 0 => "היכנס עם חשבון אחר", + ], + "There's nothing to show here." => [ + 0 => "לא נמצאו נתונים.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "כל התמונות יועברו לאלבום החדש. ניתן גם להעביר תמונות <a class=\"modal-switch\" data-switch=\"move-existing-album\">מאלבום קיים</a>", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "בחרו באלבום קיים כדי להעביר את התמונה. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונה לשם.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "בחרו באלבום קיים כדי להעביר את תמונות האלבום. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונות לאלבום החדש.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "בחרו אלבום קיים כדי להעביר את התמונות. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונות לשם.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "כל התמונות שסומנו יופיעו תחת הקטגוריה שנבחרה.", + ], + "There is no categories." => [ + 0 => "אין קטגוריות.", + ], + "Confirm flag content as safe" => [ + 0 => "אשר סימון כתוכן מאושר", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "האם הינך בטוח שאתה רוצה לסמן תוכן זה כמאושר?", + ], + "Confirm flag content as unsafe" => [ + 0 => "אשר סימון כתוכן פוגעני", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "אתה בטוח שאתה רוצה לסמן תוכן זה כתוכן פוגעני?", + ], + "Confirm deletion" => [ + 0 => "אשר מחיקה", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "האם הינך בטוח במחיקת התמונה? לא ניתן לבטל פעולה זו.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "אתה בטוח שאתה רוצה להסיר את כל התוכן המסומן?", + ], + "Fullscreen" => [ + 0 => "מסך מלא", + ], + "Exit fullscreen" => [ + 0 => "יציאה ממסך מלא", + ], + "Guest" => [ + 0 => "אורח", + ], + "Keyboard shortcuts" => [ + 0 => "קיצורי דרך במקלדת", + ], + "Uploaded by guest" => [ + 0 => "הועלה על ידי אורח", + ], + "From %s" => [ + 0 => "מתוך %s", + ], + "Uploaded by private" => [ + 0 => "הועלה לתוכן פרטי", + ], + "by %u" => [ + 0 => "מאת %u", + ], + "Toggle unsafe flag" => [ + 0 => "אפשרות דגל לא בטוח", + ], + "That page doesn't exist" => [ + 0 => "הדף אינו קיים.", + ], + "The requested page was not found." => [ + 0 => "הדף המבוקש אינו נמצא", + ], + "Search something else" => [ + 0 => "חפשו משהו אחר", + ], + "The user has been deleted" => [ + 0 => "המשתמש נמחק", + ], + "Your account is almost ready" => [ + 0 => "החשבון שלך כמעט מוכן", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "הודעת דוא\"ל נשלחה אל %s עם הוראות הפעלת חשבון. קישור הפעלת חשבון זמין רק ל- 48 שעות הבאות. אם לא קיבלתם את ההוראות, נסו לבדוק בתיבת דואר זבל.", + ], + "Resend activation" => [ + 0 => "ההפעלה נשלחה שוב", + ], + "You have successfully changed your account email to %s" => [ + 0 => "הצלחתם לשנות את דוא\"ל החשבון ל%s", + ], + "Go to my profile" => [ + 0 => "נווט אל הפרופיל שלך", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "קישור לאישור החשבון ישלח לכתובת הדוא\"ל הזו עם פרטים נוספים להפעלת החשבון שלכם.", + ], + "Your email address" => [ + 0 => "כתובת הדוא\"ל שלכם", + ], + "Submit" => [ + 0 => "שליחה", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "דוא\"ל עם הוראות איפוס הסיסמא נשלח אל כתובת הדואר האלקטרוני שנרשמת איתה. אם לא קיבלת בדוק בבקשה את תיבת הספאם שלך.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "הודעת דוא\"ל נשלחה עם הוראות לאיפוס הסיסמה שלכם. אם לא קיבלתם את ההוראות, נסו לבדוק בתיבת דואר זבל.", + ], + "Resend instructions" => [ + 0 => "שלח שוב", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "הזן את שם המשתמש או את כתובת הדוא\"ל שלך כדי להמשיך. ייתכן שתצטרך לבדוק את תיקיית דואר הזבל או להוסיף את הדוא\"ל %s לרשימה הלבנה", + ], + "Username or Email address" => [ + 0 => "שם משתמש או דואר אלקטרוני", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "הסיסמה שלכם שונתה! כעת תוכלו להתחבר עם הסיסמה החדשה.", + ], + "Login now" => [ + 0 => "היכנס עכשיו", + ], + "Enter your new password" => [ + 0 => "הכנס סיסמא חדשה", + ], + "%d characters min" => [ + 0 => "לפחות %d תווים", + ], + "Password strength" => [ + 0 => "חוזק סיסמא", + ], + "Re-enter your new password" => [ + 0 => "הכניסו שוב את הסיסמא החדשה", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "הודעות דוא\"ל נשלחה אל %s עם הוראות הפעלת החשבון. אם לא קיבלתם את ההוראות, בדקו בתיבת דואר זבל.", + ], + "This content is private" => [ + 0 => "האלבום מוגדר פרטי", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "האם הינך בטוח במחיקת האלבום כולל התמונות? לא ניתן לבטל פעולה זו.", + ], + "You like this" => [ + 0 => "אהבת את זה", + ], + "Upload to album" => [ + 0 => "העלה תמונות לאלבום", + ], + "Album link" => [ + 0 => "קישור לאלבום", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "אנא הקפד לקרוא היטב את תנאי השימוש לפני המשך השימוש באתר; תנאי השימוש מהווים הסכם מחייב בינך לבין מערכת האתר", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "1) אתר זה עלול להכיל מידע, קישורים ותמונות של חומר שעלול להתפרש כמיני. אם הינך מתחת לגיל %s, אנא קרא תנאים אלה בעיון ובקפידה יחד עם הוריך (או אפוטרופוס אחר). אם אתה (או הוריך) אינכם מסכימים לתנאי השימוש של האתר, כולם או חלקם, אינך רשאי לעשות שימוש באתר זה לכל מטרה שהיא.\n\n2) אם בכל זאת המשכת לסעיף הבא הינך מצהיר שעברת את גיל %s שנה, ויש לך זכות לקבל / להציג חומר מיני מפורש.\n\n3) החומר שהינך נחשף אליו ועלול להתפרש כמיני ראוי רק לשימוש האישי שלי ונאסר עלי לחשוף אותו בפני קטינים.\n\nהמערכת או מי מטעמה לא נושאים בכל אחריות שהיא לנזק, הוצאה, התחייבות, הפסד או תביעה שייגרמו למשתמש באתר, ונובעים או קשורים בשימוש שלא כדין בשירותים באתר או לגבי תכנים הניתנים בו, או במידת שביעות רצונו של המשתמש מהם, לרבות אך לא רק לנזק, הוצאה, התחייבות, הפסד או תביעה עקב מסירת או העלאת מידע לאתרים בניהול או בבעלות צד שלישי שהמשתמש הגיע אליהם דרך קישור באתר; פרטים ו/או תוכן לא מהימן ו/או לא שלם ו/או לא ו/או לא מדויק מעודכן ו/או לא חוקי שנמסר או הועלה לאתר על ידי משתמש; לפרסומות המתפרסמות באתר מעת לעת על ידי מפרסמים ונותני חסות.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "באמצעות קליק על כפתור \"אני מאשר\" הינך מצהיר כי עברת על כל התנאים שנכתבו למעלה.", + ], + "I Agree" => [ + 0 => "אני מאשר", + ], + "Disk used" => [ + 0 => "שימוש דיסק", + ], + "Errors" => [ + 0 => "שגיאות", + ], + "Status" => [ + 0 => "סטטוס", + ], + "Cancel" => [ + 0 => "ביטול", + ], + "Add user" => [ + 0 => "הוספת משתמש", + ], + "Role" => [ + 0 => "תפקיד", + ], + "Manager" => [ + 0 => "מנהל", + ], + "Administrator" => [ + 0 => "מנהל ראשי", + ], + "Email address" => [ + 0 => "כתובת דואר אלקטרוני", + ], + "Add category" => [ + 0 => "הוסף קטגוריה", + ], + "Add IP ban" => [ + 0 => "הוסף הרחקת כתובת IP", + ], + "Add storage" => [ + 0 => "הוסף איחסון", + ], + "Return to pages" => [ + 0 => "חזור לרשימת עמודים", + ], + "Website name" => [ + 0 => "שם האתר", + ], + "Website doctitle" => [ + 0 => "כותרת האתר", + ], + "Website description" => [ + 0 => "תיאור האתר", + ], + "Default time zone" => [ + 0 => "ברירת מחדל איזור זמן", + ], + "Select region" => [ + 0 => "בחר אזור", + ], + "guests" => [ + 0 => "אורחים", + ], + "Enables explore for guests." => [ + 0 => "אפשר לאורחים אופציית סיור", + ], + "Likes" => [ + 0 => "אהבתי", + ], + "Personal mode target user" => [ + 0 => "משתמש מיועד למצב אישי", + ], + "User ID" => [ + 0 => "מזהה משתמש", + ], + "Your user id is: %s" => [ + 0 => "מזהה המשתמש שלכם הוא: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "מזהה מספרי של משתמש מיועד למצב אישי.", + ], + "Personal mode routing" => [ + 0 => "ניתוב מצב אישי", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "ניתוב מותאם אישית כדי למפות /שם משתמש ל/כל דבר. השתמש ב\"/\" כדי למפות לדף הבית.", + ], + "Website privacy mode" => [ + 0 => "מצב פרטי של האתר", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "מצב פרטי יהפוך את האתר זמין רק למשתמשים רשומים.", + ], + "Content privacy mode" => [ + 0 => "מצב פרטי של התוכן", + ], + "Default" => [ + 0 => "ברירת מחדל", + ], + "Force private (self)" => [ + 0 => "אלץ פרטי (עצמי)", + ], + "Force private (anyone with the link)" => [ + 0 => "אלץ פרטי (כל אחד עם הקישור)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "מצבי פרטיות שאולצו יעקפו בחירת פרטיות של המשתמש.", + ], + "Page status" => [ + 0 => "סטטוס עמוד", + ], + "Type" => [ + 0 => "סוג", + ], + "Terms of service" => [ + 0 => "תנאי שימוש", + ], + "Privacy" => [ + 0 => "פרטי", + ], + "Contact" => [ + 0 => "צור קשר", + ], + "Page visibility" => [ + 0 => "חשיפה", + ], + "Visible page" => [ + 0 => "לינק עמוד מפורסם", + ], + "Hidden page" => [ + 0 => "לינק עמוד מוסתר", + ], + "Source code" => [ + 0 => "קוד מקור", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "סמן את סוגי הפורמטים המאושרים להעלאה.", + ], + "Enable uploads" => [ + 0 => "פונקציית העלאת תמונות", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "הפעילו את זה אם אתם רוצים לאפשר העלאת תמונות. הגדרות אלו אינן משפיעות על מנהלים.", + ], + "Guest uploads" => [ + 0 => "העלאות של משתמשים לא רשומים", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "הפעילו את זה כדי לאפשר למשתמשים לא רשומים להעלאות קבצים", + ], + "Enable embed codes (uploader)" => [ + 0 => "הפעילו קודים מוטמעים (מעלה)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "הפעילו את זה אם אתם רוצים להראות קודים מוטמעים בסיום העלאת תמונות.", + ], + "Redirect on single upload" => [ + 0 => "בצע הפנייה בהעלאת קובץ בודד", + ], + "Auto delete guest uploads" => [ + 0 => "מחיקת תמונה אוטומטית (אורחים)", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "הפעל פונקצייה זו אם ברצונך למחוק אוטומטית העלאת תמונות של אורחים", + ], + "Image Exif data" => [ + 0 => "נתוני Exif של תמונה", + ], + "Keep" => [ + 0 => "אשר", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "בחר את הגדרת נתוני <a %s>Exif</a עבור העלאת תמונות.\n", + ], + "Image Exif data (user setting)" => [ + 0 => "נתוני Exif של תמונה (הגדרת רשומים)", + ], + "Maximum upload file size" => [ + 0 => "גודל הקובץ המרבי להעלאה", + ], + "Image path" => [ + 0 => "נתיב תיקיית תמונות", + ], + "Original" => [ + 0 => "מקור", + ], + "Thumb size" => [ + 0 => "גודל תמונה ממוזערת", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "התמונה הממוזערת תותאם לגודל שקבעת", + ], + "Medium image fixed size" => [ + 0 => "גודל תמונה בינונית", + ], + "Watermarks" => [ + 0 => "חותמת מים", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "הפעילו את זה כדי לשים לוגו או כל דבר שתרצו בהעלאות תמונה.", + ], + "Watermark user toggles" => [ + 0 => "אפשרויות משתמש עבור חותמת מים", + ], + "Enable watermark on guest uploads" => [ + 0 => "הפעל חותמת תמונות בהעלאות אורח", + ], + "Enable watermark on user uploads" => [ + 0 => "הפעל חותמת תמונות בהעלאות משתמש", + ], + "Enable watermark on admin uploads" => [ + 0 => "הפעל חותמת תמונות בהעלאות מנהל", + ], + "Watermark file toggles" => [ + 0 => "אפשרויות קובץ חותמת מים", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "הפעילו חותמת תמונות על העלאות תמונת GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "מינימום גודל תמונה הנדרש כדי להוסיף את חותמת מים", + ], + "Watermark image" => [ + 0 => "תמונת חותמת מים", + ], + "Watermark position" => [ + 0 => "מיקום תמונת חותמת מים", + ], + "left top" => [ + 0 => "למעלה בצד שמאל", + ], + "left center" => [ + 0 => "באמצע בצד שמאל", + ], + "left bottom" => [ + 0 => "למטה בצד שמאל", + ], + "center top" => [ + 0 => "למעלה באמצע", + ], + "center center" => [ + 0 => "באמצע למרכז", + ], + "center bottom" => [ + 0 => "למטה באמצע", + ], + "right top" => [ + 0 => "למעלה בצד ימין", + ], + "right center" => [ + 0 => "באמצע בצד ימין", + ], + "right bottom" => [ + 0 => "למטה בצד ימין", + ], + "Watermark percentage" => [ + 0 => "אחוז חדות חותמת מים", + ], + "Watermark margin" => [ + 0 => "כיוון שוליים של חותמת מים", + ], + "Watermark opacity" => [ + 0 => "טשטוש חותמת מים", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "האם הינך בטוח במחיקת קטגוריית %s? לא ניתן לבטל פעולה זו.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "שים לב: בעת מחיקת קטגוריה, תמונות שמשוייכות לאותה קטגוריה לא ימחקו", + ], + "Edit category" => [ + 0 => "ערוך קטגוריה", + ], + "Enable signups" => [ + 0 => "הפעלת הרשמות", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "הפעילו את זה אם תרצו לתת למשתמשים להרשם.", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "הפעל אפשרות על קבלת הודעה במייל על רישום משתמש חדש.", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "הפעילו את זה אם תרצו להשתמש בקישור %s/username במקום %s/user/username", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "הפעילו את זה אם המשתמש חייב לאמת את הדוא\"ל שלו בהרשמה.", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "הפעילו את זה אם המשתמש שנרשם דרך רשת חברתית חייב להכניס כתובת דוא\"ל.", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "הצג חלון עם אישור כניסה (שימושי עבור מערכת למבוגרים בלבד)", + ], + "Enable consent screen" => [ + 0 => "הפעל מסך תנאי כניסה", + ], + "Notify to email" => [ + 0 => "קבל הודעה למייל", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "אם מופעל, המערכת תשלח דוא\"ל במקרי הצפות.", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "הפעילו את זה אם אתם רוצים להראות תוכן \"פוגעני\" במאפיינים. הגדרות אלו אינן משפיעות על מנהלים ומשתמש יכול לעקוף אותן בהגדרות הפרטיות שלו.", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "הפעילו את זה אם אתם רוצים להוסיף אפקט \"Blur\" על תמונות NSFW שברשימות.", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "הפעילו את זה אם אתם רוצים להראות באנרים בדפים \"לא בטוחים\".", + ], + "How many items should be displayed per page listing." => [ + 0 => "כמה אייטמים להציג עבור דף", + ], + "Light" => [ + 0 => "בהיר", + ], + "Dark" => [ + 0 => "חשוך", + ], + "Orange" => [ + 0 => "כתום", + ], + "Enable vector logo" => [ + 0 => "הפעלת לוגו וקטורי", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "הפעילו לוגו וקטורי באיכות לוגו גבוהה במכשירים עם צפיפות פיקסלים גבוהה.", + ], + "Vector logo image" => [ + 0 => "תמונת לוגו וקטור", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "הוסף את תמונת לוגו וקטור או את הלוגו של האתר בפורמט SVG.", + ], + "Raster logo image" => [ + 0 => "תמונת לוגו סרוקה", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "מומלץ להעלאות תמונה בפורמט PNG.", + ], + "No value" => [ + 0 => "לא קיים ערך", + ], + "Enable download button" => [ + 0 => "הפעלת לחצן הורדה", + ], + "Enable this if you want to show the image download button." => [ + 0 => "הפעילו את זה אם אתם רוצים להציג לחצן הורדת תמונה.", + ], + "Enable right click on image" => [ + 0 => "הפעלת קליק ימני על תמונה", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "הפעילו את זה אם אתם רוצים לאפשר קליק ימני בדף צפייה בתמונה.", + ], + "Enable show Exif data" => [ + 0 => "הפעלת הצגת Exif data", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "הפעילו את זה אם אתם רוצים להציג Exif data של תמונה.", + ], + "Enable social share" => [ + 0 => "הפעילו שיתוף ברשתות חברתיות", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "הפעילו את זה אם אתם רוצים להציג כפתור לשיתוף תוכן ברשתות חברתיות.", + ], + "Enable embed codes (content)" => [ + 0 => "הפעלת קודים מוטמעים (תוכן)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "הפעילו את זה אם אתם רוצים להראות קודים מוטמעים של התוכן.", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "הפעילו את זה אם אתם רוצים להראות תיבת סימון כדי לסמן אם התוכן המועלה כ- \"פוגעני\".", + ], + "Style" => [ + 0 => "סגנון", + ], + "Landing page" => [ + 0 => "דף נחיתה", + ], + "Split landing + images" => [ + 0 => "דף נחיתה + תמונות אחרונות", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "בחר את סגנון דף הבית. כדי להתאימו אישית יש לערוך את הקובץ app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "תמונת עטיפה לדף נחיתה", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "האם הינך בטוח במחיקת התמונה? לא ניתן לבטל פעולה זו.", + ], + "Delete image" => [ + 0 => "מחק תמונה", + ], + "Add new cover image" => [ + 0 => "הוסף תמונת עטיפה חדשה", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "הוסף את תמונת לוגו וקטור או את הלוגו של האתר בפורמט SVG (רק עבור דף הבית).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "מומלץ להעלאות תמונה בפורמט PNG (רק עבור דף הבית).", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "התוכן יתווסף בתוך טאג %s בדף הבית. השאר ריק כדי להציג תוכן ברירת מחדל.", + ], + "Call to action button color" => [ + 0 => "צבע כפתור פעולה בדף הבית", + ], + "Color of the homepage call to action button." => [ + 0 => "בחר צבע לכפתור \"הנעה לפעולה\" בדף הבית", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "הפעילו את זה על מנת להשתמש בסגנון מתווה בשביל דף הבית בכפתור \"הנעה לפעולה\".", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "התוכן יתווסף בתוך טאג <a>. השאר ריק כדי להציג תוכן ברירת מחדל.", + ], + "Display available updates notification" => [ + 0 => "הצג התראות על עדכון למערכת", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "הפעילו את זה אם אתם רוצים מיניפציה אוטומטית של CSS וJS.", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "כשזה מופעל, האתר יציג הודעת תחזוקה. הגדרות אלו אינן משפיעות על מנהלים.", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "הפעילו את זה אם אתם רוצים להדפיס שגיאות שנוצרות על ידי PHP <a %s>error_reporting()</a>. זה צריך להיות כבוי בזמן תחזוקה.", + ], + "Default language" => [ + 0 => "שפת ברירת מחדל", + ], + "Auto language" => [ + 0 => "בחר שפה אוטומטית", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "הפעילו את זה אם אתם רוצים לזהות באופן אוטומטי ולהגדיר את השפה הנכונה עבור כל משתמש.", + ], + "Enable this if you want to allow language selection." => [ + 0 => "הפעילו את זה אם אתם רוצים לאפשר בחירת שפה.", + ], + "Enabled languages" => [ + 0 => "הפעלת שפות", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "גלגלו כדי להפעיל או לכבות HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "גלגלו כדי להפעיל או לכבות את האיחסון הזה", + ], + "SMTP username" => [ + 0 => "שם משתמש SMTP", + ], + "SMTP password" => [ + 0 => "סיסמת לשרת SMTP", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "הפעילו את זה כדי להציג הודעה שעומדת בדרישות החוק של האיחוד האירופי בנוגע לעוגיות. הערה: אתם צריכים את זה רק אם האתר שלכם מתארח באיחוד האירופי או אם יש לכם עוגיות מעקב.", + ], + "Save changes" => [ + 0 => "שמור שינויים", + ], + "Check the errors to proceed." => [ + 0 => "נתגלו שגיאות בפעולה האחרונה, נסה שוב.", + ], + "Added to %a and categorized in %c" => [ + 0 => "התווסף לאלבום %a, ומופיע בקטגוריית %c", + ], + "Added to %s" => [ + 0 => "התווסף לאלבום %s", + ], + "Uploaded to %s" => [ + 0 => "התווסף לקטגוריית %s", + ], + "Uploaded %s" => [ + 0 => "הועלה %s", + ], + "Share image" => [ + 0 => "שתף תמונה", + ], + "Album ID" => [ + 0 => "מזהה אלבום", + ], + "In this album" => [ + 0 => "באלבום הנוכחי", + ], + "Upload and share your images." => [ + 0 => "העלו ושתפו את התמונות שלכם.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "גררו ושחררו כאן כדי להתחיל להעלות את התמונות שלכם עכשיו! מוגבל עד %s. ניתן להוסיף גם קישורים ישירים של תמונות, הטמעות BBCode ו- HTML.", + ], + "Start uploading" => [ + 0 => "התחל כאן", + ], + "Sign up to unlock all the features" => [ + 0 => "הירשם\\התחבר למערכת כדי להציג את התוכן", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "ניתן לאחר ההרשמה\\התחברות לנהל את התוכן שלך, ליצור אלבומים פרטיים, להתאים אישית את הפרופיל שלך", + ], + "Sign in with your account" => [ + 0 => "כניסת משתמש", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "אין לך משתמש? <a href='%s'>הירשם עכשיו</a>.", + ], + "Logged out" => [ + 0 => "התנתק", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "התנתקת בהצלחה ממערכת %s, מקווים לראותך בקרוב", + ], + "Go to homepage" => [ + 0 => "חזור אל דף הבית", + ], + "This content is password protected." => [ + 0 => "האלבום מוגן בסיסמא", + ], + "Please enter your password to continue." => [ + 0 => "הזן סיסמא כדי להמשיך", + ], + "Send" => [ + 0 => "שלח", + ], + "After" => [ + 0 => "לאחר", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "לא ניתן להציג להציג כעת את הדף שביקשת. ייתכן שאינו זמין זמנית, הקישור שעליו לחצת פגום או שאינו בתוקף או שאין לך הרשאה להציג דף זה.", + ], + "Delete user" => [ + 0 => "מחק משתמש", + ], + "Register date" => [ + 0 => "תאריך הצטרפות", + ], + "Registration IP" => [ + 0 => "הרשמה מכתובת IP", + ], + "Valid" => [ + 0 => "פעיל", + ], + "Banned" => [ + 0 => "מורחק", + ], + "Awaiting email" => [ + 0 => "ממתין לאישור כתובת דוא\"ל", + ], + "Awaiting confirmation" => [ + 0 => "ממתין לאישור הפעלת חשבון", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "ניתן להשתמש מ- %i עד %f תווים<br>אותיות, מספרים ו- \"_\"", + ], + "Auto delete uploads" => [ + 0 => "מחיקת תמונה אוטומטית", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "בעת סימון אופציית מחיקת תמונה אוטומטית, כל ההעלאות שתבצע לאחר מכן יוגדרו אוטומטית למחיקה זמן התמונה. (ניתן לבטל פעולה זו בכל העלאה)", + ], + "Newsletter" => [ + 0 => "ניוזלטר", + ], + "Send me emails with news about %s" => [ + 0 => "אני מאשר קבלת חדשות וכו' על מערכת %s בהודעת דוא\"ל", + ], + "Content settings" => [ + 0 => "הגדרות הצגת תוכן פוגעני", + ], + "Language" => [ + 0 => "שפה", + ], + "Timezone" => [ + 0 => "איזור זמן", + ], + "Current password" => [ + 0 => "סיסמא נוכחית", + ], + "Enter your current password" => [ + 0 => "הכנס את הסיסמא הנוכחית", + ], + "New password" => [ + 0 => "סיסמא חדשה", + ], + "Confirm new password" => [ + 0 => "אמת סיסמא חדשה", + ], + "Enter your password" => [ + 0 => "הכנס סיסמא", + ], + "Confirm password" => [ + 0 => "אמת סיסמא", + ], + "Re-enter your password" => [ + 0 => "הזן שוב את הסיסמא", + ], + "Upload new image" => [ + 0 => "העלה תמונה חדשה", + ], + "Delete existing image" => [ + 0 => "מחק תמונת פרופיל", + ], + "Make my profile and identity totally private" => [ + 0 => "בעת סימון הגדרה זו, הפרופיל וכל התוכן האישי שלך יהפוך להיות פרטי ולא ציבורי", + ], + "This is your real name, not your username." => [ + 0 => "כאן ניתן להכניס את השם המלא שלך (לא שם משתמש)", + ], + "Bio" => [ + 0 => "ביוגרפיה", + ], + "Tell us a little bit about you" => [ + 0 => "ספר בקצרה מי אתה !!", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "הרגישו חופשיים לעיין ולראות את כל האלבומים והתמונות המשותפים שלי.", + ], + "View all my images" => [ + 0 => "צפייה בכל התמונות שלי", + ], + "Login" => [ + 0 => "התחבר", + ], + "Already have an account? %s now." => [ + 0 => "נרשמת בעבר למערכת? %s עכשיו.", + ], + "resend account activation" => [ + 0 => "לבצע שליחת הוראות להפעלת החשבון מחדש", + ], + "You can also %s." => [ + 0 => "תוכל גם ל %s.", + ], + "I'm at least %s years old" => [ + 0 => "אני מעל גיל %s שנה", + ], + "terms" => [ + 0 => "תנאי שימוש", + ], + "privacy policy" => [ + 0 => "מדיניות פרטיות", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "אני מסכים ל- %terms_link ו- %privacy_link", + ], + "Upload profile background" => [ + 0 => "בחר תמונת רקע פרופיל", + ], + "Change background" => [ + 0 => "שנה רקע", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "לא ניתן לבטל פעולה זו לאחר מחיקת תמונת רקע של הפרופיל. האם הינך בטוח במחיקת תמונת רקע?", + ], + "Delete background" => [ + 0 => "מחק רקע", + ], + "Follower" => [ + 0 => "עוקבים", + 1 => "עוקבים", + 2 => "עוקבים", + 3 => "עוקבים", + ], + "Follow" => [ + 0 => "לעקוב", + ], + "You have been forbidden to use this website." => [ + 0 => "נחסמת זמנית לכניסה למערכת.", + ], + "Plugin" => [ + 0 => "תוספים", + ], + "General questions/comments" => [ + 0 => "שאלות כלליות\\הערות", + ], + "DMCA complaint" => [ + 0 => "תלונת DMCA", + ], + "Invalid message" => [ + 0 => "הודעה לא חוקית", + ], + "Invalid subject" => [ + 0 => "נושא לא חוקי", + ], + "Mail error" => [ + 0 => "שגיאה בדוא\"ל", + ], + "Message sent" => [ + 0 => "ההודעה נשלחה בהצלחה", + ], + "Message sent. We will get in contact soon." => [ + 0 => "בדקות הקרובות ההודעה תתקבל למייל של המערכת, ונדאג ליצור איתך קשר.", + ], + "If you want to send a message fill the form below." => [ + 0 => "הזן את הפרטים הבאים בכדי לשלוח הודעה.", + ], + "Your name" => [ + 0 => "שם מלא", + ], + "Subject" => [ + 0 => "נושא", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "השינויים שביצעת לא נשמרו. האם להמשיך?", + ], + "Go back to form" => [ + 0 => "חזור", + ], + "continue anyway" => [ + 0 => "המשך", + ], + "Saving" => [ + 0 => "שמירת נתונים", + ], + "Sending" => [ + 0 => "שולח נתונים", + ], + "Confirm action" => [ + 0 => "אשר את הפעולה", + ], + "information" => [ + 0 => "מידע", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/hr.po.cache.php b/app/.cache/languages/hr.po.cache.php new file mode 100644 index 0000000..44889b0 --- /dev/null +++ b/app/.cache/languages/hr.po.cache.php @@ -0,0 +1,1259 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-11-27 19:52+0000', + 'PO-Revision-Date' => '2020-11-27 19:52+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'hr', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Pogrešan email", + ], + "Invalid username" => [ + 0 => "Netočno korisničko ime", + ], + "Invalid password" => [ + 0 => "Pogrešna lozinka", + ], + "Invalid website mode" => [ + 0 => "Nevažeći način web stranice", + ], + "From email address" => [ + 0 => "Od email adrese", + ], + "Sender email for emails sent to users." => [ + 0 => "Admin mail za slanje E-Mail pošte članovima.", + ], + "Incoming email address" => [ + 0 => "Dolazna e-mail adresa", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Primatelj za kontakt obrasca i sustava upozorenja.", + ], + "Website mode" => [ + 0 => "Način web stranice", + ], + "You can switch the website mode anytime." => [ + 0 => "Način web stranice možete prebaciti bilo kada.", + ], + "Community" => [ + 0 => "Zajednica", + ], + "Personal" => [ + 0 => "Osobno", + ], + "Installed version is v%s" => [ + 0 => "Instalirana verzija je v%s", + ], + "Can't connect to %s" => [ + 0 => "Ne mogu se povezati s %s", + ], + "Last available release is v%s" => [ + 0 => "Posljednje dostupno izdanje je v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Potrebno ažuriranje, nastavlja se preuzimanje", + ], + "No update needed" => [ + 0 => "Nije potrebno ažuriranje", + ], + "System files already up to date" => [ + 0 => "Sistemske datoteke su već ažurirane", + ], + "Starting v%s download" => [ + 0 => "Početak v%s preuzimanja", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Preuzeto v%s, nastavlja se ekstrakcija", + ], + "Attempting to extract v%s" => [ + 0 => "Pokušaj ekstrakcije v%s", + ], + "Extraction completed" => [ + 0 => "Ekstrakcija zavšena", + ], + "Proceding to install the update" => [ + 0 => "Priprema za instalaciju ažuriranja", + ], + "Update failed" => [ + 0 => "Ažuriranje nije uspjelo", + ], + "Update in progress" => [ + 0 => "Ažuriranje u tijeku", + ], + "Missing %s file" => [ + 0 => "Nedostaje %s dokument", + ], + "Invalid license info" => [ + 0 => "Netočna informacija licence", + ], + "Invalid license key" => [ + 0 => "Netočni ključ licence", + ], + "Can't save file" => [ + 0 => "Ne možete spremiti dokument", + ], + "Can't download %s" => [ + 0 => "Ne možete skinuti %s", + ], + "Can't extract %s" => [ + 0 => "Ne možete raspakirati %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Ne možete napraviti %s mapu", + ], + "Can't update %s file - %e" => [ + 0 => "Ne možete ažurirati %s dokument - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Provjerite pogreške u formi za nastavak.", + ], + "You must enter the album name." => [ + 0 => "Moraš upisati ime albuma", + ], + "Confirm" => [ + 0 => "Potvrdi", + ], + "The content has been approved." => [ + 0 => "Sadržaj je odobren.", + ], + "Select existing album" => [ + 0 => "Odaberite postojeći album", + ], + "An error occurred. Please try again later." => [ + 0 => "Došlo je do pogreške. Pokušajte ponovno kasnije.", + ], + "Please select a valid image file type." => [ + 0 => "Odaberite važeću vrstu slikovne datoteke.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Molimo odaberite sliku veličine najviše %s.", + ], + "Profile image updated." => [ + 0 => "Profil slike ažuriran.", + ], + "Profile background image updated." => [ + 0 => "Ažurirana je pozadinska slika profila.", + ], + "Profile background image deleted." => [ + 0 => "Izbrisana je pozadinska slika profila.", + ], + "Error deleting profile background image." => [ + 0 => "Pogreška pri brisanju pozadinske slike profila.", + ], + "Passwords don't match" => [ + 0 => "Lozinke se ne podudaraju", + ], + "Update available v%s" => [ + 0 => "Dostupno ažuriranje v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Dostupno je ažuriranje za vaš sustav. Možete automatski preuzeti i instalirati ovo ažuriranje ili prijeći na %s da biste nastavili s preuzimanjem datoteke.", + ], + "The release notes for this update are:" => [ + 0 => "Promjene na ovom ažuriranju su:", + ], + "Update now" => [ + 0 => "Ažurirati sada", + ], + "or" => [ + 0 => "ili", + ], + "cancel" => [ + 0 => "poništi", + ], + "This website is running latest %s version" => [ + 0 => "Ovo web mjesto ima najnoviju %s verziju", + ], + "loading" => [ + 0 => "učitavanje", + ], + "Toggle select" => [ + 0 => "Uključi/isključi odabir", + ], + "Like" => [ + 0 => "Sviđa mi se", + ], + "Edit" => [ + 0 => "Uredi", + ], + "Album" => [ + 0 => "Album", + 1 => "Albumi", + 2 => "Albumi", + ], + "Approve" => [ + 0 => "Odobriti", + ], + "Delete" => [ + 0 => "Izbriši", + ], + "Close" => [ + 0 => "Zatvori", + ], + "Previous" => [ + 0 => "Prethodni", + ], + "Next" => [ + 0 => "Sljedeći", + ], + "Clipboard image" => [ + 0 => "Slika u međuspremniku", + ], + "File too big." => [ + 0 => "Datoteka je prevelika.", + ], + "Invalid or unsupported file format." => [ + 0 => "Nevaljani ili nepodržani format datoteke.", + ], + "Some files couldn't be added" => [ + 0 => "Neke datoteke nije moguće dodati", + ], + "image" => [ + 0 => "slika", + 1 => "slike", + 2 => "slike", + ], + "%s's Albums" => [ + 0 => "%s'ovi Albumi", + ], + "Image edited successfully." => [ + 0 => "Slika je uspješno editirana.", + ], + "private" => [ + 0 => "privatno", + ], + "Album edited successfully." => [ + 0 => "Album je uspješno uređen.", + ], + "Invalid URL key." => [ + 0 => "Nevažeći ključ URL-a.", + ], + "Category URL key already being used." => [ + 0 => "Ključ URL-a kategorije već se koristi.", + ], + "Category successfully deleted." => [ + 0 => "Kategorija je uspješno izbrisana.", + ], + "Category %s added." => [ + 0 => "Dodana je kategorija %s.", + ], + "Invalid expiration date." => [ + 0 => "Nevažeći datum isteka.", + ], + "IP %s already banned." => [ + 0 => "IP %s je već zabranjen.", + ], + "IP %s banned." => [ + 0 => "IP %s je zabranjen.", + ], + "IP ban successfully deleted." => [ + 0 => "Zabrana IP uspješno izbrisana.", + ], + "Please fill all the required fields." => [ + 0 => "Molimo ispunite sva obavezna polja.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Nevažeća vrijednost kapaciteta pohrane. Obavezno koristite valjani format.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Kapacitet pohrane ne može biti manji od trenutne upotrebe (%s).", + ], + "Invalid URL." => [ + 0 => "Neispravan URL.", + ], + "Storage successfully edited." => [ + 0 => "Poslužitelj za pohranu uspješno uređen.", + ], + "User added successfully." => [ + 0 => "Korisnik je uspješno dodan.", + ], + "The content has been deleted." => [ + 0 => "Sadržaj je izbrisan.", + ], + "The content has been moved." => [ + 0 => "Sadržaj je premješten.", + ], + "Select" => [ + 0 => "Odaberi", + ], + "Unselect" => [ + 0 => "Poništi odabir", + ], + "The content has been edited." => [ + 0 => "Sadržaj je uređen.", + ], + "Import job ID %s added successfully, you can process the import now" => [ + 0 => "Uvoz ID posla %s uspješno je dodan, uvoz možete sada obraditi.", + ], + "Select number of threads" => [ + 0 => "Odaberite broj niti", + ], + "Import job ID %s is being processed now" => [ + 0 => "Uvoz ID-a posla %s trenutno se obrađuje", + ], + "Import ID %s removed" => [ + 0 => "Uklonjen je ID uvoza %s", + ], + "Spam detected" => [ + 0 => "Otkrivena je neželjena pošta", + ], + "album" => [ + 0 => "album", + 1 => "albumi", + 2 => "albumi", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Otkrivena poplava. Možete učitati samo %limit% %content% u %time%", + ], + "Untitled" => [ + 0 => "Neimenovano", + ], + "%s's images" => [ + 0 => "%s'ove slike", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Napomena: Sadržaj je privatan, ali svatko s vezom moći će ga vidjeti.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Napomena: Ovaj sadržaj je zaštićen zaporkom.\nUpišite važeću lozinku da bi nastavili.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Napomena: Ovaj sadržaj je privatan. Promijenite privatnost na \"javno\".", + ], + "Private" => [ + 0 => "Privatno", + ], + "Public" => [ + 0 => "Javno", + ], + "Me" => [ + 0 => "Ja", + ], + "Link" => [ + 0 => "Veza", + ], + "Password" => [ + 0 => "Lozinka", + ], + "view" => [ + 0 => "pogled", + 1 => "pogleda", + 2 => "pogledi", + ], + "After %n %t" => [ + 0 => "Nakon %n %t", + ], + "minute" => [ + 0 => "minuta", + 1 => "minuta", + 2 => "minute", + ], + "hour" => [ + 0 => "sat", + 1 => "sata", + 2 => "sati", + ], + "day" => [ + 0 => "dan", + 1 => "dana", + 2 => "dana", + ], + "week" => [ + 0 => "tjedan", + 1 => "tjedana", + 2 => "tjedni", + ], + "month" => [ + 0 => "mjesec", + 1 => "mjeseci", + 2 => "mjeseci", + ], + "year" => [ + 0 => "godina", + 1 => "godine", + 2 => "godine", + ], + "Don't autodelete" => [ + 0 => "Nemoj automatski izbrisati", + ], + "Duplicated upload" => [ + 0 => "Duplicirani prijenos", + ], + "Private upload" => [ + 0 => "Privatni prijesno", + ], + "like" => [ + 0 => "sviđanje", + 1 => "sviđanja", + 2 => "sviđanja", + ], + "Recent" => [ + 0 => "Nedavno", + ], + "Trending" => [ + 0 => "U trendu", + ], + "Top users" => [ + 0 => "Top korisnici", + ], + "Most recent" => [ + 0 => "Najnovije", + ], + "Oldest" => [ + 0 => "Najstarije", + ], + "Most viewed" => [ + 0 => "Najgledanije", + ], + "Popular" => [ + 0 => "Popularno", + ], + "Most liked" => [ + 0 => "Sa najviše sviđanja", + ], + "Explore" => [ + 0 => "Pretraži", + ], + "Animated" => [ + 0 => "Animirano", + ], + "Search" => [ + 0 => "Traži", + ], + "People" => [ + 0 => "Ljudi", + ], + "Image" => [ + 0 => "Slika", + 1 => "Slike", + 2 => "Slike", + ], + "User" => [ + 0 => "Korisnik", + 1 => "Korisnika", + 2 => "Korisnika", + ], + "adult" => [ + 0 => "odrasla osoba", + ], + "teen" => [ + 0 => "tinejdžer", + ], + "Content of type %s is forbidden" => [ + 0 => "Sadržaj tipa %s je zabranjen", + ], + "Can't create %s destination dir" => [ + 0 => "Ne mogu napraviti %s odredišnu mapu", + ], + "Can't open %s for writing" => [ + 0 => "Ne mogu otvoriti %s za zapisivanje", + ], + "Internal" => [ + 0 => "Interni", + ], + "Can't insert storage." => [ + 0 => "Nije moguće umetnuti pohranu.", + ], + "Can't update storage details." => [ + 0 => "Detalji o poslužitelju pohranitelja nije moguće ažurirati.", + ], + "requires %s" => [ + 0 => "zahtijeva %s", + ], + "Unlimited" => [ + 0 => "Neograničeno", + ], + "used" => [ + 0 => "korišteno", + ], + "Private profile" => [ + 0 => "Privatni profil", + ], + "second" => [ + 0 => "sekunda", + 1 => "sekundi", + 2 => "sekundi", + ], + "%s ago" => [ + 0 => "prije %s", + ], + "moments ago" => [ + 0 => "prije par trenutaka", + ], + "Dashboard" => [ + 0 => "Nadzorna ploča", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Dostupno je ažuriranje za vaš sustav. Idite na %s da biste preuzeli i instalirali ovo ažuriranje.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Baza podataka sustava je zastarjela. Morate pokrenuti alat <a href=\"%s\">ažuriranje</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Web stranica je u načinu održavanja. Da biste vratili ovu postavku, idite na <a href=\"%s\">Nadzorna ploča > Postavke</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Trebali biste onemogućiti izvještavanje o PHP pogreškama za produkcijsko okruženje. Idite na <a href='%s'>Postavke sustava</a> da biste vratili ovu postavku.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Niste promijenili zadane postavke e-pošte. Idite na <a href='%s'>Postavke e-pošte</a> da biste to popravili.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Dostupno je ažuriranje za vašu Chevereto web stranicu.", + ], + "admin dashboard" => [ + 0 => "adminska nadzorna ploča", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Ovo ažuriranje možete primijeniti izravno s %a ili ga preuzeti s %s a zatim ga ručno instalirati.", + ], + "view on %s" => [ + 0 => "pregledi na %s", + ], + "cookie policy" => [ + 0 => "politika kolačića", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Koristimo vlastite kolačiće i kolačiće trećih strana kako bismo poboljšali vaše iskustvo pregledavanja i naše usluge. Ako nastavite koristiti našu web stranicu, podrazumijeva se da to prihvaćate %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Razumijem", + ], + "Forgot password?" => [ + 0 => "Zaboravili ste lozinku?", + ], + "Reset password" => [ + 0 => "Resetiraj lozinku", + ], + "Resend account activation" => [ + 0 => "Pošalji ponovo aktivaciju računa", + ], + "Add your email address" => [ + 0 => "Dodaj email adresu", + ], + "Email changed" => [ + 0 => "e-mail promjenjen", + ], + "%s says you are a robot" => [ + 0 => "%s kaže da ste robot", + ], + "Invalid Username/Email" => [ + 0 => "Nevažeće korisničko ime / email", + ], + "User doesn't have an email." => [ + 0 => "Korisnik nema e-mail.", + ], + "Request denied" => [ + 0 => "Zahtjev odbijen", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Račun mora biti omogućen kako bi koristili ovu mogućnost", + ], + "Account already activated" => [ + 0 => "Račun je već aktiviran", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Dopustite do 15 minuta za e-poštu. Možete pokušati ponovo kasnije.", + ], + "Reset your password at %s" => [ + 0 => "Poništite svoju zaporku na %s", + ], + "Confirmation required at %s" => [ + 0 => "Potvrda potrebna na %s", + ], + "Welcome to %s" => [ + 0 => "Dobrodošao na %s", + ], + "Email already being used" => [ + 0 => "Email se već koristi", + ], + "Password required" => [ + 0 => "Zaporka potrebna", + ], + "Share" => [ + 0 => "Podijeli", + ], + "Embed codes" => [ + 0 => "Embed kodovi", + ], + "Full info" => [ + 0 => "Cijeli info", + ], + "%a album hosted in %w" => [ + 0 => "%a album hostan u %w", + ], + "Stats" => [ + 0 => "Statistika", + ], + "Images" => [ + 0 => "Slike", + ], + "Albums" => [ + 0 => "Albumi", + ], + "Users" => [ + 0 => "Korisnici", + ], + "Settings" => [ + 0 => "Postavke", + ], + "Bulk importer" => [ + 0 => "Masovni uzovnik", + ], + "Chevereto version" => [ + 0 => "Chevereto verzija", + ], + "install update" => [ + 0 => "instalirati ažuriranje", + ], + "check for updates" => [ + 0 => "provjeri nova ažuriranja", + ], + "Support" => [ + 0 => "Podrška", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Trebate pomoć? Idite na %s i dobit će te pomoć ubrzo.", + ], + "PHP version" => [ + 0 => "PHP verzija", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL verzija", + ], + "MySQL server info" => [ + 0 => "MySQL server info", + ], + "GD Library" => [ + 0 => "GD Library", + ], + "File uploads" => [ + 0 => "Postavljanje datoteka", + ], + "Enabled" => [ + 0 => "Omogućeno", + ], + "Disabled" => [ + 0 => "Onemogućeno", + ], + "Max. upload file size" => [ + 0 => "Maks. veličina datoteke", + ], + "Max. post size" => [ + 0 => "Max. post veličina", + ], + "Max. execution time" => [ + 0 => "Max. vrijeme izvršavanja", + ], + "%d second" => [ + 0 => "%d sekunda", + 1 => "sekundi", + 2 => "%d sekundi", + ], + "Memory limit" => [ + 0 => "limit memorije", + ], + "Rebuild stats" => [ + 0 => "Obnovite statistiku", + ], + "Connecting IP" => [ + 0 => "IP povezivanje", + ], + "Not your IP?" => [ + 0 => "Nije vaša IP adresa?", + ], + "Links" => [ + 0 => "Linkovi", + ], + "Collaboration" => [ + 0 => "Suradnja", + ], + "Documentation" => [ + 0 => "Dokumentacija", + ], + "Changelog" => [ + 0 => "Log promjena", + ], + "Bug tracking" => [ + 0 => "bug pračenje", + ], + "Website" => [ + 0 => "Web stranica", + ], + "Content" => [ + 0 => "Sadržaj", + ], + "Pages" => [ + 0 => "Stranice", + ], + "Listings" => [ + 0 => "Spisak", + ], + "Image upload" => [ + 0 => "Upload slike", + ], + "Categories" => [ + 0 => "Kategorije", + ], + "Consent screen" => [ + 0 => "Zaslon za pristanak", + ], + "Flood protection" => [ + 0 => "Zaštita od poplave", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Početna stranica", + ], + "Banners" => [ + 0 => "Banneri", + ], + "System" => [ + 0 => "Sistem", + ], + "Routing" => [ + 0 => "Routing", + ], + "Languages" => [ + 0 => "Jezici", + ], + "External storage" => [ + 0 => "Vanjsko skladištenje", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Društvene mreže", + ], + "External services" => [ + 0 => "Eksterni servisi", + ], + "IP bans" => [ + 0 => "IP zabrane", + ], + "Additional settings" => [ + 0 => "Dodatne postavke", + ], + "Tools" => [ + 0 => "Alati", + ], + "Can't delete all homepage cover images" => [ + 0 => "Ne mogu izbrisati sve slike naslovnice početne stranice", + ], + "Homepage cover image deleted" => [ + 0 => "Slika naslovnice početne stranice izbrisana", + ], + "Local" => [ + 0 => "Lokalni", + ], + "External" => [ + 0 => "Eksterni", + ], + "All" => [ + 0 => "Sve", + ], + "search content" => [ + 0 => "pretraživanje sadržaja", + ], + "Add page" => [ + 0 => "Dodaj stranicu", + ], + "Edit page ID %s" => [ + 0 => "Uredi stranicu ID %s", + ], + "The page has been added successfully." => [ + 0 => "Stranica je uspješno dodana.", + ], + "The page has been deleted." => [ + 0 => "Stranica je izbrisana", + ], + "homepage" => [ + 0 => "početna stranica", + ], + "Album page" => [ + 0 => "Album stranica", + ], + "User profile page" => [ + 0 => "Korisnička stranica", + ], + "NSFW" => [ + 0 => "Nesiguran sadržaj za javnost", + ], + "Invalid website name" => [ + 0 => "Nevažeće ime web stranice", + ], + "Invalid language" => [ + 0 => "Nevažeći jezik", + ], + "Invalid timezone" => [ + 0 => "Nevažeća vremenska zona", + ], + "Invalid theme" => [ + 0 => "Nevažeća tema", + ], + "Invalid value" => [ + 0 => "nevažeća vrijednost", + ], + "Invalid email mode" => [ + 0 => "Nevažeći e-mail", + ], + "Invalid SMTP port" => [ + 0 => "Nevažeći SMTP port", + ], + "Invalid SMTP server" => [ + 0 => "Nevažeči SMTP server", + ], + "Invalid SMTP username" => [ + 0 => "Nevažeće SMTP korisničko ime", + ], + "About" => [ + 0 => "O nama", + ], + "Image ID" => [ + 0 => "ID slike", + ], + "Direct links" => [ + 0 => "Izravni linkovi", + ], + "Image link" => [ + 0 => "Link slike", + ], + "Image URL" => [ + 0 => "URL slike", + ], + "Thumbnail URL" => [ + 0 => "Minijatura URL", + ], + "Login needed" => [ + 0 => "Potrebna je prijava", + ], + "Wrong Username/Email password combination" => [ + 0 => "Pogrešno unošena lozinka za korisnički profil ili E-Mail adresu", + ], + "Sign in" => [ + 0 => "Prijavi se", + ], + "Account" => [ + 0 => "Račun", + ], + "Profile" => [ + 0 => "Profil", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "E-Mail je poslan na %s sa uputama za aktiviranje", + ], + "Invalid name" => [ + 0 => "Nevažeće ime", + ], + "Invalid website" => [ + 0 => "Nevažeća stranica", + ], + "Wrong password" => [ + 0 => "Pogrešna lozinka", + ], + "Use a new password" => [ + 0 => "Koristi novu lozinku", + ], + "Changes have been saved." => [ + 0 => "Promjene su spremljene.", + ], + "Password has been changed" => [ + 0 => "Lozinka je promijenjena", + ], + "Password has been created." => [ + 0 => "Lozinka je napravljena.", + ], + "Wrong Username/Email values" => [ + 0 => "Pogrešno korisničko ime / e-mail", + ], + "Create account" => [ + 0 => "Napravi račun", + ], + "Upload" => [ + 0 => "Uploadaj", + ], + "Results for" => [ + 0 => "Rezultati za", + ], + "Random" => [ + 0 => "Nasumice", + ], + "My Profile" => [ + 0 => "Moj Profil", + ], + "Sign out" => [ + 0 => "Odjavi se", + ], + "Hi %n, welcome to %w" => [ + 0 => "Pozdrav %n, dobrodošao na %w", + ], + "Thank you for joining" => [ + 0 => "Hvala što ste se pridružili", + ], + "Upload complete" => [ + 0 => "Upload završen", + ], + "learn more" => [ + 0 => "saznajte više", + ], + "close" => [ + 0 => "zatvori", + ], + "optional" => [ + 0 => "opcija", + ], + "Brief description of this image" => [ + 0 => "Kratak opis ove slike", + ], + "Create album" => [ + 0 => "Napravi album", + ], + "Move to album" => [ + 0 => "Premjesti u album", + ], + "HTML Codes" => [ + 0 => "HTML Kodovi", + ], + "BBCodes" => [ + 0 => "BB Kodovi", + ], + "Album name" => [ + 0 => "Ime albuma", + ], + "move to existing album" => [ + 0 => "premjesti u postojeći album", + ], + "Who can view this content" => [ + 0 => "Tko može vidjeti ovaj sadržaj", + ], + "Private (just me)" => [ + 0 => "Privatno (samo ja)", + ], + "Name" => [ + 0 => "Ime", + ], + "Message" => [ + 0 => "Poruka", + ], + "create new album" => [ + 0 => "Napravi novi album", + ], + "Username" => [ + 0 => "Korisničko ime", + ], + "view more" => [ + 0 => "vidi više", + ], + "Select all" => [ + 0 => "Odaberi sve", + ], + "Sign in with another account" => [ + 0 => "Prijavi se s drugim računom", + ], + "Confirm deletion" => [ + 0 => "Potvrdi brisanje", + ], + "Guest" => [ + 0 => "Gost", + ], + "That page doesn't exist" => [ + 0 => "Stranica ne postoji", + ], + "The requested page was not found." => [ + 0 => "Tražena stranica ne postoji.", + ], + "Search something else" => [ + 0 => "Traži nešto drugo", + ], + "The user has been deleted" => [ + 0 => "Korisnik je obrisan", + ], + "Your account is almost ready" => [ + 0 => "Vaš korisnički račun je gotovo spreman", + ], + "Resend activation" => [ + 0 => "Pošalji aktivaciju ponovno", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Uspješno ste promijenili e-mail računa u %s", + ], + "Go to my profile" => [ + 0 => "Idi na moj profil", + ], + "Your email address" => [ + 0 => "Tvoja email adresa", + ], + "Username or Email address" => [ + 0 => "Korisničko ime ili Email adresa", + ], + "Login now" => [ + 0 => "Prijavite se sada", + ], + "Enter your new password" => [ + 0 => "Upiši novu lozinku", + ], + "Re-enter your new password" => [ + 0 => "Potvrdi novu lozinku", + ], + "This content is private" => [ + 0 => "Ovaj sadržaj je privatan", + ], + "Album link" => [ + 0 => "Album link", + ], + "Disk used" => [ + 0 => "Disk koristi", + ], + "Status" => [ + 0 => "Status", + ], + "Role" => [ + 0 => "Uloga", + ], + "Email address" => [ + 0 => "Email adresa", + ], + "Website name" => [ + 0 => "Naziv web stranice", + ], + "Website doctitle" => [ + 0 => "Glavni opis web stranice", + ], + "Website description" => [ + 0 => "Opis web stranice", + ], + "Default time zone" => [ + 0 => "Zadana vremenska zona", + ], + "Select region" => [ + 0 => "Odaberi regiju", + ], + "User ID" => [ + 0 => "ID Korisnika", + ], + "Guest uploads" => [ + 0 => "Omogući gostima postavljanje slika", + ], + "Image path" => [ + 0 => "Putanja slike", + ], + "Direct" => [ + 0 => "Direkt", + ], + "Original" => [ + 0 => "Original", + ], + "Notify to email" => [ + 0 => "Obavijesti na e-mail", + ], + "Daily limit" => [ + 0 => "Dnevni limit", + ], + "Weekly limit" => [ + 0 => "Tjedni limit", + ], + "Monthly limit" => [ + 0 => "Mjesečni limit", + ], + "How many items should be displayed per page listing." => [ + 0 => "Koliko slika želite prikazati po stranici kao spisak.", + ], + "Put your themes in the %s folder" => [ + 0 => "Stavi teme u %s folder", + ], + "Delete image" => [ + 0 => "Izbriši sliku", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "Default language" => [ + 0 => "Zadani jezik", + ], + "Default base language to use." => [ + 0 => "Glavni jezik za koristiti", + ], + "Auto language" => [ + 0 => "Automatsko podešavanje jezika", + ], + "From name" => [ + 0 => "Od naziva", + ], + "Sender name for emails sent to users." => [ + 0 => "Vaš naziv za poslane E-mails za članove.", + ], + "Email mode" => [ + 0 => "E-Mail modus", + ], + "SMTP server and port" => [ + 0 => "SMTP server i port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP korisničko ime", + ], + "SMTP password" => [ + 0 => "SMTP lozinka", + ], + "SMTP security" => [ + 0 => "SMTP sigurnost", + ], + "Unsecured" => [ + 0 => "Nezaštićen", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Trebaš <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> za ovo.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Trebaš <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> za ovo.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Trebaš <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> za ovo.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "Analytics code" => [ + 0 => "Analytics kod", + ], + "Save changes" => [ + 0 => "Spremi promjene", + ], + "Share image" => [ + 0 => "Podijeli sliku", + ], + "In this album" => [ + 0 => "U ovaj album", + ], + "Logged out" => [ + 0 => "Odjavljen", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Vi ste se odjavili %s. Nadamo se da ćemo Vas uskoro vidjeti.", + ], + "Go to homepage" => [ + 0 => "Idi na početnu stranicu", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Nemate dopuštenje za pristup ovoj stranici ili je link istekao.", + ], + "Delete user" => [ + 0 => "Izbriši korisnika", + ], + "Register date" => [ + 0 => "Datum registracije", + ], + "Valid" => [ + 0 => "Važeći", + ], + "Language" => [ + 0 => "Jezik", + ], + "Timezone" => [ + 0 => "Vremenska zona", + ], + "Current password" => [ + 0 => "Sadašnja lozinka", + ], + "Enter your current password" => [ + 0 => "Upiši sadašnju lozinku", + ], + "New password" => [ + 0 => "Nova lozinka", + ], + "Confirm new password" => [ + 0 => "Potvrdi novu lozinku", + ], + "Enter your password" => [ + 0 => "Unesite svoju lozinku", + ], + "Confirm password" => [ + 0 => "Potvrdi lozinku", + ], + "Re-enter your password" => [ + 0 => "Ponovno unesite svoju lozinku", + ], + "Delete existing image" => [ + 0 => "Izbriši postojeću sliku", + ], + "This is your real name, not your username." => [ + 0 => "Ovo je tvoje pravo ime, a ne vaše korisničko ime.", + ], + "http://yourwebsite.com" => [ + 0 => "http://tvojsite.com", + ], + "View all my images" => [ + 0 => "Pogledaj sve moje slike", + ], + "Change background" => [ + 0 => "Promjeni pozadinu", + ], + "Delete background" => [ + 0 => "Izbriši pozadinu", + ], + "General questions/comments" => [ + 0 => "Opća pitanja / komentari", + ], + "DMCA complaint" => [ + 0 => "DMCA žalba", + ], + "Invalid message" => [ + 0 => "Pogrešna poruka", + ], + "Invalid subject" => [ + 0 => "Pogrešan predmet", + ], + "Mail error" => [ + 0 => "Mail greška", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Sve promjene koje ste napravili bit će izgubljeno ako nastavite.", + ], + "continue anyway" => [ + 0 => "nastavi svejedno", + ], + "Confirm action" => [ + 0 => "Potvrdi akciju", + ], + "information" => [ + 0 => "informacije", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/hu.po.cache.php b/app/.cache/languages/hu.po.cache.php new file mode 100644 index 0000000..3517ffe --- /dev/null +++ b/app/.cache/languages/hu.po.cache.php @@ -0,0 +1,2901 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2016-07-15 17:52+0000', + 'PO-Revision-Date' => '2016-07-15 17:52+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'hu', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Érvénytelen e-mail", + ], + "Invalid username" => [ + 0 => "Érvénytelen felhasználónév", + ], + "Invalid password" => [ + 0 => "Érvénytelen jelszó", + ], + "Invalid website mode" => [ + 0 => "Érvénytelen weboldal mód", + ], + "From email address" => [ + 0 => "Küldő e-mail címe", + ], + "Sender email for emails sent to users." => [ + 0 => "Küldő e-mail címe a felhasználóknak kiküldött üzenetekben.", + ], + "Incoming email address" => [ + 0 => "Beérkező üzenetek címe", + ], + "Recipient for contact form and system alerts." => [ + 0 => "A kapcsolati űrlap és a rendszerüzenetek címzettje.", + ], + "Website mode" => [ + 0 => "Weboldal mód", + ], + "You can switch the website mode anytime." => [ + 0 => "Bármikor megváltoztathatja a weboldal üzemmódját.", + ], + "Community" => [ + 0 => "Közösségi", + ], + "Personal" => [ + 0 => "Személyes", + ], + "Update in progress" => [ + 0 => "Frissítés folyamatban", + ], + "An error occurred. Please try again later." => [ + 0 => "Hiba történt. Kérjük próbálja újra később.", + ], + "Missing %s file" => [ + 0 => "Hiányzó file: %s", + ], + "Invalid license info" => [ + 0 => "Érvénytelen licensz info", + ], + "Invalid license key" => [ + 0 => "Érvénytelen licensz kulcs", + ], + "Can't save file" => [ + 0 => "A fájl mentése nem sikerült", + ], + "Can't download %s" => [ + 0 => "%s letöltése sikertelen", + ], + "Can't extract %s" => [ + 0 => "%s kicsomagolása sikertelen", + ], + "Untitled" => [ + 0 => "Névtelen", + ], + "%s's images" => [ + 0 => "%s képei", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Megjegyzés: Ez egy privát tartalom. Ha szeretné megosztani állítsa publikusra a láthatóságát.", + ], + "Don't autodelete" => [ + 0 => "Ne töröljön automatikusan", + ], + "minute" => [ + 0 => "perccel", + 1 => "perccel", + ], + "hour" => [ + 0 => "órával", + 1 => "órával", + ], + "day" => [ + 0 => "nappal", + 1 => "nappal", + ], + "Duplicated upload" => [ + 0 => "Duplikált feltöltés", + ], + "Private upload" => [ + 0 => "Privát feltöltés", + ], + "view" => [ + 0 => "megtekintés", + 1 => "megtekintés", + ], + "like" => [ + 0 => "Kedvelés", + 1 => "Kedvelések", + ], + "image" => [ + 0 => "kép", + 1 => "kép", + ], + "%u liked your %t %c" => [ + 0 => "%u kedveli a(z) %t %c", + ], + "%u is now following you" => [ + 0 => "%u mostantól követ téged", + ], + "Can't create %s destination dir" => [ + 0 => "Nem sikerült létrehozni a következő célkönyvtárat: %s", + ], + "Can't open %s for writing" => [ + 0 => "%s megnyitása szerkesztésre sikertelen", + ], + "Internal" => [ + 0 => "Belső", + ], + "Link" => [ + 0 => "Link", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "A tároló kapacitása nem lehet kisebb a jelenlegi kihasználtságnál (%s).", + ], + "Unlimited" => [ + 0 => "Korlátlan", + ], + "used" => [ + 0 => "használt", + ], + "Private" => [ + 0 => "Privát", + ], + "year" => [ + 0 => "évvel", + 1 => "évvel", + ], + "month" => [ + 0 => "hónappal", + 1 => "hónappal", + ], + "week" => [ + 0 => "héttel", + 1 => "héttel", + ], + "second" => [ + 0 => "másodperccel", + 1 => "másodperccel", + ], + "%s ago" => [ + 0 => "%s ezelőtt", + ], + "moments ago" => [ + 0 => "pillanatokkal ezelőtt", + ], + "Dashboard" => [ + 0 => "Vezérlőpult", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Szükség van az adatbázis frissítésére. Futtassa a <a href=\"%s\">frissítő</a> eszközt.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "A weboldal karbantartási módban van. Ennek kikapcsolásához navigáljon a <a href=\"%s\">Vezérlőpult > Beállítások</a> részhez.", + ], + "The release notes for this update are:" => [ + 0 => "A frissítés kiadási jegyzetei:", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this cookie policy." => [ + 0 => "A szolgáltatásaink és a böngészési élmény javításának érdekében saját (és harmadik személytől származó) \"sütiket\" használunk. Az oldal további használatával kijelenti, hogy megértette és elfogadja ezt a tényt.", + ], + "You have been forbidden to use this website." => [ + 0 => "Önnek nem engedélyezett a weboldal használata.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Fedezze fel a feltöltött képeimet és böngésszen az albumaim között.", + ], + "View all my images" => [ + 0 => "Az összes képem megtekintése", + ], + "That page doesn't exist" => [ + 0 => "Az oldal nem létezik", + ], + "Forgot password?" => [ + 0 => "Elfelejtette a jelszót?", + ], + "Reset password" => [ + 0 => "Jelszó visszaállítása", + ], + "Resend account activation" => [ + 0 => "Aktiváló e-mail újraküldése", + ], + "Add your email address" => [ + 0 => "Adja meg az e-mail címét", + ], + "Email changed" => [ + 0 => "E-mail megváltoztatva", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "A megadott reCAPTCHA érvénytelen", + ], + "Invalid Username/Email" => [ + 0 => "Érvénytelen Felhasználónév/E-mail", + ], + "User doesn't have an email." => [ + 0 => "A felhasználónak nincs megadott e-mail címe.", + ], + "Request denied" => [ + 0 => "Kérés megtagadva", + ], + "Account needs to be activated to use this feature" => [ + 0 => "A fióknak aktiválva kell lennie a szolgáltatás használatához", + ], + "Account already activated" => [ + 0 => "A fiók már aktiválva lett", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Várjon legalább 15 percet az e-mail megérkezésére. Később újrapróbálhatja.", + ], + "Reset your password at %s" => [ + 0 => "Jelszó visszaállítása a következőhöz: %s", + ], + "Confirmation required at %s" => [ + 0 => "Megerősítés szükséges a következőhöz: %s", + ], + "Welcome to %s" => [ + 0 => "Üdvözöljük %s oldalán", + ], + "Passwords don't match" => [ + 0 => "A jelszavak nem egyeznek meg", + ], + "Email already being used" => [ + 0 => "Ez az e-mail cím már regsztrálva van", + ], + "Check the errors in the form to continue." => [ + 0 => "Javítsa az űrlapon megjelenő hibákat a folytatáshoz.", + ], + "Most recent" => [ + 0 => "Legfrissebb", + ], + "Oldest" => [ + 0 => "Legrégebbi", + ], + "Most viewed" => [ + 0 => "Legnépszerűbb", + ], + "Most liked" => [ + 0 => "Legtöbbször kedvelt", + ], + "Share" => [ + 0 => "Megosztás", + ], + "Full info" => [ + 0 => "Teljes infó", + ], + "%a album hosted in %w" => [ + 0 => "%a album a következőben: %w", + ], + "Stats" => [ + 0 => "Statisztikák", + ], + "Images" => [ + 0 => "Képek", + ], + "Albums" => [ + 0 => "Albumok", + ], + "Users" => [ + 0 => "Felhasználók", + ], + "Settings" => [ + 0 => "Beállítások", + ], + "Chevereto version" => [ + 0 => "Chevereto verzió", + ], + "install update" => [ + 0 => "Frissítés telepítése", + ], + "check for updates" => [ + 0 => "frissítések keresése", + ], + "PHP version" => [ + 0 => "PHP verzió", + ], + "Server" => [ + 0 => "Szerver", + ], + "MySQL version" => [ + 0 => "MySQL verzió", + ], + "MySQL server info" => [ + 0 => "MySQL szerver infó", + ], + "GD Library" => [ + 0 => "GD könyvtár", + ], + "File uploads" => [ + 0 => "Fájlfeltöltések", + ], + "Enabled" => [ + 0 => "Engedélyezve", + ], + "Disabled" => [ + 0 => "Kikapcsolva", + ], + "Max. upload size" => [ + 0 => "Max. feltöltési korlát", + ], + "Max. post size" => [ + 0 => "Max. post méret", + ], + "Max. execution time" => [ + 0 => "Max. végrehajtási idő", + ], + "%d second" => [ + 0 => "%d másodperc", + 1 => "%d másodperc", + ], + "Memory limit" => [ + 0 => "Memória limit", + ], + "Website" => [ + 0 => "Weboldal", + ], + "Content" => [ + 0 => "Tartalom", + ], + "Pages" => [ + 0 => "Oldalak", + ], + "Listings" => [ + 0 => "Feltöltések", + ], + "Image upload" => [ + 0 => "Képfeltöltés", + ], + "Categories" => [ + 0 => "Kategóriák", + ], + "Flood protection" => [ + 0 => "Flood védelem", + ], + "Theme" => [ + 0 => "Sablon", + ], + "Homepage" => [ + 0 => "Kezdőlap", + ], + "Banners" => [ + 0 => "Bannerek (reklámok)", + ], + "System" => [ + 0 => "Rendszer", + ], + "Languages" => [ + 0 => "Nyelvek", + ], + "External storage" => [ + 0 => "Külső tároló", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Közösségi hálózatok", + ], + "External services" => [ + 0 => "Külső szolgáltatások", + ], + "IP bans" => [ + 0 => "IP banok", + ], + "Additional settings" => [ + 0 => "További beállítások", + ], + "Tools" => [ + 0 => "Eszközök", + ], + "Local" => [ + 0 => "Helyi", + ], + "External" => [ + 0 => "Külső", + ], + "All" => [ + 0 => "Összes kép", + ], + "search content" => [ + 0 => "feltöltéseinek mutatása", + ], + "Add page" => [ + 0 => "Oldal hozzáadása", + ], + "Edit page ID %s" => [ + 0 => "Oldal azonosító (ID) szerkesztése: %s", + ], + "The page has been added successfully." => [ + 0 => "Az oldal sikeresen hozzáadva.", + ], + "The page has been deleted." => [ + 0 => "Az oldal törlésre került.", + ], + "Before cover (homepage)" => [ + 0 => "A borító előtt (kezdőlap)", + ], + "After cover (homepage)" => [ + 0 => "A borító után (kezdőlap)", + ], + "After listing (homepage)" => [ + 0 => "A listák után (kezdőlap)", + ], + "Before pagination" => [ + 0 => "Navigáció előtt", + ], + "After pagination" => [ + 0 => "Navigáció után", + ], + "Content (image and album)" => [ + 0 => "Tartalom (kép és album)", + ], + "Tab about column" => [ + 0 => "A részletek oszlopa", + ], + "Before comments" => [ + 0 => "A kommentek előtt", + ], + "Image page" => [ + 0 => "A kép oldala", + ], + "Inside viewer top (image page)" => [ + 0 => "A képnéző teteje (kép oldal)", + ], + "Expected banner size 728x90" => [ + 0 => "Az ideális banner méret 728x90", + ], + "Inside viewer foot (image page)" => [ + 0 => "A képnéző alja (kép oldal)", + ], + "After image viewer (image page)" => [ + 0 => "A képnéző után (kép oldal)", + ], + "Before header (image page)" => [ + 0 => "A fejléc előtt (kép oldal)", + ], + "After header (image page)" => [ + 0 => "A fejléc után (kép oldal)", + ], + "Footer (image page)" => [ + 0 => "Lábléc (kép oldal)", + ], + "Album page" => [ + 0 => "Album oldal", + ], + "Before header (album page)" => [ + 0 => "A fejléc előtt (album oldal)", + ], + "After header (album page)" => [ + 0 => "A fejléc előtt (album oldal)", + ], + "User profile page" => [ + 0 => "Felhasználói profiloldal", + ], + "After top (user profile)" => [ + 0 => "A felső rész után (profil)", + ], + "Before listing (user profile)" => [ + 0 => "A listák után (profil)", + ], + "Explore page" => [ + 0 => "\"Véletlen\" oldal", + ], + "After top (explore page)" => [ + 0 => "A felső rész után (\"véletlen\" oldal)", + ], + "NSFW" => [ + 0 => "Korhatáros", + ], + "Invalid website name" => [ + 0 => "Érvénytelen weboldal név", + ], + "Invalid language" => [ + 0 => "Érvénytelen nyelv", + ], + "Invalid timezone" => [ + 0 => "Érvénytelen időzóna", + ], + "Invalid value" => [ + 0 => "Érvénytelen érték", + ], + "Invalid upload storage mode" => [ + 0 => "Érvénytelen feltöltési tároló mód", + ], + "Invalid upload filenaming" => [ + 0 => "Érvénytelen feltöltési fájlnevezés", + ], + "Invalid thumb width" => [ + 0 => "Érvénytelen miniatűr szélesség", + ], + "Invalid thumb height" => [ + 0 => "Érvénytelen miniatűr méret", + ], + "Invalid watermark percentage" => [ + 0 => "Érvénytelen vízjel százalék", + ], + "Invalid watermark opacity" => [ + 0 => "Érvénytelen vízjel átlátszóság", + ], + "Invalid theme" => [ + 0 => "Érvénytelen sablon", + ], + "Invalid theme tone" => [ + 0 => "Érvénytelen sablon séma", + ], + "Invalid theme main color" => [ + 0 => "Érvénytelen sablon alapszín", + ], + "Invalid theme top bar color" => [ + 0 => "Érvénytelen sablon felső sáv szín", + ], + "Invalid theme top bar button color" => [ + 0 => "Érvénytelen sablon felső sáv gomb szín", + ], + "Invalid theme image listing size" => [ + 0 => "Érvénytelen képlistázás méret", + ], + "Invalid user id" => [ + 0 => "Érvénytelen felhasználó azonosító", + ], + "Invalid email mode" => [ + 0 => "Érvénytelen e-mail mód", + ], + "Invalid SMTP port" => [ + 0 => "Érvénytelen SMTP port", + ], + "Invalid SMTP security" => [ + 0 => "Érvénytelen SMTP biztonság", + ], + "Invalid personal mode user ID" => [ + 0 => "Érvénytelen felhasználó azonosító a személyes módhoz", + ], + "Invalid or reserved route" => [ + 0 => "Érvénytelen vagy foglalt útvonal (route)", + ], + "Invalid website privacy mode" => [ + 0 => "Érvénytelen tartalomkorlátozási mód", + ], + "Invalid website content privacy mode" => [ + 0 => "Érvénytelen weboldal tartalomkorlátozási mód", + ], + "Invalid homepage style" => [ + 0 => "Érvénytelen kezdőlap stílus", + ], + "Invalid homepage call to action button color" => [ + 0 => "Érvénytelen kezdőlapi akciógomb szín", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Érvénytelen kezdőlapi akciógomb funkció", + ], + "Invalid title" => [ + 0 => "Érvénytelen cím.", + ], + "Invalid status" => [ + 0 => "Érévnytelen állapot.", + ], + "Invalid type" => [ + 0 => "Érvénytelen típus.", + ], + "Invalid visibility" => [ + 0 => "Érvénytelen láthatóság.", + ], + "Invalid target attribute" => [ + 0 => "Érvénytelen cél attribútum.", + ], + "Invalid rel attribute" => [ + 0 => "Érvénytelen rel attribútum.", + ], + "Invalid icon" => [ + 0 => "Érvénytelen ikon.", + ], + "Invalid URL key" => [ + 0 => "Érvénytelen URL kulcs", + ], + "Invalid file path" => [ + 0 => "Érvénytelen fájl útvonal", + ], + "Invalid link URL" => [ + 0 => "Érvénytelen link URL", + ], + "Invalid upload image path" => [ + 0 => "Érvénytelen képfeltöltési útvonal", + ], + "Invalid call to action URL" => [ + 0 => "Érvénytelen akciógomb URL", + ], + "Max. allowed %s" => [ + 0 => "Maximum megengedett %s", + ], + "Invalid SMTP server" => [ + 0 => "Érvénytelen SMTP szerver", + ], + "Invalid SMTP username" => [ + 0 => "Érvénytelen SMTP felhasználónév", + ], + "Invalid URL" => [ + 0 => "Érvénytelen URL", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Ezt az URL kulcsot már használja egy másik oldal (azonosítója: %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Ezt a fájl útvonalat más használja egy másik oldal (azonosítója: %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Az oldal tartalmának mentése nem sikerült: %s.", + ], + "Top users" => [ + 0 => "Legaktívabb felhasználók", + ], + "Explore" => [ + 0 => "Feltöltések", + ], + "Following" => [ + 0 => "Követések", + ], + "About" => [ + 0 => "Információk", + ], + "Embed codes" => [ + 0 => "Beillesztő kódok", + ], + "Image ID" => [ + 0 => "Kép azonosító", + ], + "Uploader IP" => [ + 0 => "Feltöltő IP címe", + ], + "Ban IP" => [ + 0 => "IP tiltása", + ], + "IP already banned" => [ + 0 => "Az IP cím már tiltva van", + ], + "Upload date" => [ + 0 => "Feltöltés dátuma", + ], + "%s images" => [ + 0 => "%s kép", + ], + "Image %i in %a album" => [ + 0 => "%i kép a(z) %a albumban", + ], + "Image %i in %c category" => [ + 0 => "%i kép a(z) %c kategóriában", + ], + "Image %i hosted in %w" => [ + 0 => "%i kép a következőben: %w", + ], + "Direct links" => [ + 0 => "Direkt linkek", + ], + "Image URL" => [ + 0 => "Kép URL", + ], + "Image link" => [ + 0 => "Kép link", + ], + "Thumbnail URL" => [ + 0 => "Miniatűr URL", + ], + "Medium URL" => [ + 0 => "Középméret URL", + ], + "Login needed" => [ + 0 => "Bejelentkezés szükséges", + ], + "IP address already banned" => [ + 0 => "Az IP cím már bannolva van", + ], + "Missing values" => [ + 0 => "Hiányzó értékek", + ], + "Invalid role" => [ + 0 => "Érvénytelen szabály", + ], + "Username already being used" => [ + 0 => "A felhasználónév már használatban van", + ], + "%s has been disconnected." => [ + 0 => "%s felhasználó kilépett.", + ], + "Test email from %s @ %t" => [ + 0 => "Teszt üzenet %s feladótól @ %t", + ], + "This is just a test" => [ + 0 => "Ez csak egy teszt", + ], + "Test email sent to %s." => [ + 0 => "Teszt üzenet elküldve a(z) %s címre.", + ], + "User %s followed" => [ + 0 => "%s felhasználó követve", + ], + "User %s unfollowed" => [ + 0 => "%s felhasználó követése törölve", + ], + "Content liked" => [ + 0 => "Kedvelt tartalmak", + ], + "Content disliked" => [ + 0 => "Nem kedvelt tartalmak", + ], + "Wrong Username/Email password combination" => [ + 0 => "Hibás felhasználónév/ e-mail jelszó kombináció", + ], + "Sign in" => [ + 0 => "Belépés", + ], + "Logged out" => [ + 0 => "Kijelentkezett", + ], + "General questions/comments" => [ + 0 => "Általános kérdések/reakciók", + ], + "DMCA complaint" => [ + 0 => "Jogi bejelentés/kép törlési kérelem", + ], + "Invalid name" => [ + 0 => "Érvénytelen név", + ], + "Invalid message" => [ + 0 => "Érvénytelen üzenet", + ], + "Invalid subject" => [ + 0 => "Érvénytelen tárgy", + ], + "Invalid reCAPTCHA" => [ + 0 => "Érvénytelen reCAPTCHA", + ], + "Can't submit the form: %s" => [ + 0 => "Az űrlap beküldése nem sikerült: %s", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Üzenet elküldve. Hamarosan válaszolni fogunk.", + ], + "Mail error" => [ + 0 => "Üzenetküldési hiba", + ], + "Image search results for %s" => [ + 0 => "Kép keresési találatok a következőre: %s", + ], + "Album search results for %s" => [ + 0 => "Album keresési találatok a következőre: %s", + ], + "User search results for %s" => [ + 0 => "Felhasználó keresési találatok a következőre: %s", + ], + "Search" => [ + 0 => "Keresés", + ], + "Account" => [ + 0 => "Fiók", + ], + "Profile" => [ + 0 => "Profil", + ], + "Password" => [ + 0 => "Jelszó", + ], + "Linked accounts" => [ + 0 => "Összekapcsolt fiókok", + ], + "Invalid image expiration" => [ + 0 => "Érvénytelen kép lejárati idő", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Az aktiválás befejezéséhez szükséges üzenet kiküldésre került a következő e-mail címre: %s", + ], + "Invalid website" => [ + 0 => "Érvénytelen weboldal", + ], + "Wrong password" => [ + 0 => "Rossz jelszó", + ], + "Use a new password" => [ + 0 => "Használjon egy új jelszót", + ], + "Changes have been saved." => [ + 0 => "A változások mentésre kerültek.", + ], + "Password has been changed" => [ + 0 => "A jelszó megváltoztatásra került", + ], + "Password has been created." => [ + 0 => "Jelszó létrehozva.", + ], + "Wrong Username/Email values" => [ + 0 => "Hibás Felhasználónév/E-mail", + ], + "Settings for %s" => [ + 0 => "%s beállításai", + ], + "Create account" => [ + 0 => "Fiók létrehozása", + ], + "%s's Images" => [ + 0 => "%s képei", + ], + "%s's Albums" => [ + 0 => "%s albumai", + ], + "Results for" => [ + 0 => "Találatok a következőre:", + ], + "Liked by %s" => [ + 0 => "%s kedvelte", + ], + "Liked" => [ + 0 => "Kedvelve", + ], + "Followers" => [ + 0 => "Követők", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) album itt: %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) itt: %w", + ], + "Close" => [ + 0 => "Bezár", + ], + "Advanced search" => [ + 0 => "Bővített keresés", + ], + "Random" => [ + 0 => "Véletlen", + ], + "Notices (%s)" => [ + 0 => "Értesítések (%s)", + ], + "Upload" => [ + 0 => "Feltöltés", + ], + "Sign in with another account" => [ + 0 => "Belépés más fiókkal", + ], + "or" => [ + 0 => "vagy", + ], + "Username or Email address" => [ + 0 => "Felhasználónév vagy E-mail cím", + ], + "Keep me logged in" => [ + 0 => "Emlékezzen rám", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Nincs még fiókja? <a href='%s'>Regisztráljon</a> most.", + ], + "Sign up with another account" => [ + 0 => "Regisztráció más fiókkal", + ], + "Email address" => [ + 0 => "E-mail cím", + ], + "Username" => [ + 0 => "Felhasználónév", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "A regisztrációval elfogadja a <a href=\"%s\">Felhasználási Feltételeinket</a>", + ], + "Notifications" => [ + 0 => "Értesítések", + ], + "loading" => [ + 0 => "töltés", + ], + "You don't have notifications" => [ + 0 => "Nincsenek értesítéseid", + ], + "My Profile" => [ + 0 => "Profilom", + ], + "Sign out" => [ + 0 => "Kilépés", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Egy e-mail cím megváltoztatására irányuló kérés érkezett hozzánk a következő fiókhoz: <a href=\"%u\">%n</a>", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "A folyamat befejezéséhez <a href=\"%s\">aktiválnia kell az e-mail címét</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Kattintson a fenti linkre vagy másolja be a következő hivatkozást a böngészője címsorába: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Amennyiben nem ön indította a regisztrációt úgy kérjük hagyja figyelmen kívül ezt az üzenetet.", + ], + "This request was made from IP: %s" => [ + 0 => "A kérés a következő IP címről érkezett: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Regisztrációt kezdeményezett %n felhasználónévvel a következő webhelyen: %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "A folyamat befejezéséhez <a href=\"%s\">aktiválnia kell a fiókját</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Egy jelszó visszaállító kérés érkezett a következő fiókjához: <a href=\"%u\">%n</a>", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "A jelszó visszaállításához <a href=\"%s\">kattintson erre a linkre</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Kedves %n, üdvözöljük a %w oldalán", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Most hogy a fiókja elkészült feltölthet - privát vagy nyilvános - képeket, létrehozhat albumokat és nekiláthat a megannyi izgalmas funkció felfedezésének.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Itt találhatja a nagyszerű profil oldalát: <a href=\"%u\">%n</a> Indulhat a testreszabás!", + ], + "Thank you for joining" => [ + 0 => "Köszönjük, hogy csatlakozott!", + ], + "This email was sent from %w %u" => [ + 0 => "Az e-mail innen került kiküldésre: %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Húzza ide vagy illessze be a képeket a vágólapról a feltöltéshez", + ], + "Select the images to upload" => [ + 0 => "Válassza ki a feltölteni kívánt képeket", + ], + "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "Vagy <a data-trigger=\"anywhere-upload-input\">kitallózhatja őket a számítógépéről</a> esetleg feltölthet még <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">külső URL-ről is</a>.", + ], + "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "<a data-trigger=\"anywhere-upload-input-camera\">Készíthet képet</a> vagy <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">hozzáadhatja a képek linkjeit is</a>.", + ], + "Edit or resize an image by clicking the image preview" => [ + 0 => "Kép szerkesztése vagy átméretezése az előnézetre való kattintással", + ], + "Edit or resize an image by touching the image preview" => [ + 0 => "Kép szerkesztése vagy átméretezése az előnézet megérintésével", + ], + "You can add more images <a data-trigger=\"anywhere-upload-input\">from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">from image URLs</a>." => [ + 0 => "Tölthet fel több képet <a data-trigger=\"anywhere-upload-input\">a számítógépéről</a> vagy <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">hozzáadhatja a képek linkjeit is</a>.", + ], + "You can <a data-trigger=\"anywhere-upload-input\">add more images</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "<a data-trigger=\"anywhere-upload-input\">Hozzáadhat még több képet</a> vagy <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">megadhatja a képek linkjeit</a>.", + ], + "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" => [ + 0 => "<span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">kép</span> feltöltése", + ], + "complete" => [ + 0 => "kész", + ], + "The queue is being uploaded. It will take just a few seconds to complete." => [ + 0 => "A hozzáadott képek feltöltése folyamatban van. Néhány pillanat és kész is.", + ], + "Upload complete" => [ + 0 => "Feltöltés befejezve", + ], + "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." => [ + 0 => "A feltöltés hozzáadva a <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">nyilvános hírfolyamhoz</a>. <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">Létrehozhat új albumot</a> vagy <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">áthelyezheti a <span data-text=\"queue-objects\">képeket</span></a> egy már létező albumba.", + ], + "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." => [ + 0 => "<a href=\"%s\">Létrehozhat egy fiókot</a> vagy <a href=\"%l\">jelentkezzen be</a> hogy a feltöltései automatikusan megőrződjenek.", + ], + "No <span data-text=\"queue-objects\">images</span> have been uploaded" => [ + 0 => "Egy <span data-text=\"queue-objects\">kép</span> sem lett feltöltve.", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Hiba történt és a rendszer nem tudta feldolgozni a kérést.", + ], + "Select category" => [ + 0 => "Válasszon kategóriát", + ], + "Change upload privacy" => [ + 0 => "A feltöltési mód megváltoztatása", + ], + "cancel" => [ + 0 => "mégse", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Jelölje be hogyha a feltöltés korhatáros (felnőtteknek szóló)", + ], + "Not family safe upload" => [ + 0 => "Korhatáros tartalom", + ], + "Uploading" => [ + 0 => "Feltöltés", + ], + "cancel remaining" => [ + 0 => "hátralévők megszakítása", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Megjegyzés: Néhány kép nem került feltöltésre.", + ], + "learn more" => [ + 0 => "tudjon meg többet", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "További információért ellenőrizze a <a data-modal=\"simple\" data-target=\"failed-upload-result\">hibajelentést</a>.", + ], + "max" => [ + 0 => "max", + ], + "close" => [ + 0 => "bezárás", + ], + "Edit" => [ + 0 => "Szerkesztés", + ], + "Remove" => [ + 0 => "Eltávolítás", + ], + "Edit image" => [ + 0 => "Kép szerkesztése", + ], + "Title" => [ + 0 => "Cím", + ], + "optional" => [ + 0 => "opcionális", + ], + "Resize image" => [ + 0 => "Kép átméretezése", + ], + "Width" => [ + 0 => "Szélesség", + ], + "Height" => [ + 0 => "Magasság", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Megjegyzés: Az animált GIF képek nem kerülnek átméretezésre.", + ], + "Auto delete image" => [ + 0 => "Kép automatikus törlése", + ], + "Mark this if the image is not family safe" => [ + 0 => "Jelölje be hogyha a kép korhatáros (felnőtteknek szóló)", + ], + "Flag as unsafe" => [ + 0 => "Kép jelentése", + ], + "Description" => [ + 0 => "Leírás", + ], + "Brief description of this image" => [ + 0 => "A kép rövid leírása.", + ], + "Add image URLs" => [ + 0 => "Kép URL-ek hozzáadása", + ], + "Add the image URLs here" => [ + 0 => "Itt adja hozzá a kép URL-eket", + ], + "Create album" => [ + 0 => "Album létrehozása", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "A feltöltött tartalmak áthelyezésre fognak kerülni ebbe az újonnan létrehozott albumba. Áthelyezheti még őket egy már <a class=\"modal-switch\" data-switch=\"move-existing-album\">korábban létrehozott albumba</a> is.", + ], + "Move to album" => [ + 0 => "Áthelyezés albumba", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "A tartalom áthelyezéséhez válasszon ki egy meglévő albumot. Ha szeretné <a class=\"modal-switch\" data-switch=\"move-new-album\">létrehozhat egy újat</a> is.", + ], + "Error report" => [ + 0 => "Hibajelentés", + ], + "album" => [ + 0 => "album", + 1 => "album", + ], + "Links" => [ + 0 => "Linkek", + ], + "Viewer links" => [ + 0 => "Megtekintő linkek", + ], + "HTML Codes" => [ + 0 => "HTML kódok", + ], + "HTML image" => [ + 0 => "HTML kép", + ], + "HTML full linked" => [ + 0 => "HTML teljes link", + ], + "HTML medium linked" => [ + 0 => "HTML középméret", + ], + "HTML thumbnail linked" => [ + 0 => "HTML miniatűr", + ], + "BBCodes" => [ + 0 => "BBkódok", + ], + "BBCode full" => [ + 0 => "Teljes BBCode", + ], + "BBCode full linked" => [ + 0 => "BBCode teljes link", + ], + "BBCode medium linked" => [ + 0 => "BBCode közepes link", + ], + "BBCode thumbnail linked" => [ + 0 => "BBkód miniatűr", + ], + "Markdown full" => [ + 0 => "Teljes markdown", + ], + "Markdown full linked" => [ + 0 => "Teljes linkelt markdown", + ], + "Markdown medium linked" => [ + 0 => "Közepes linkelt markdown", + ], + "Markdown thumbnail linked" => [ + 0 => "Miniatűr linkelt markdown", + ], + "All these words" => [ + 0 => "Írja ide a keresett szót vagy kifejezést", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Például: autós háttérképek", + ], + "This exact word or phrase" => [ + 0 => "Pontosabb keresés", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Tegye idézőjelbe a teljes kifejezést: \"autós háttérképek\"", + ], + "None of these words" => [ + 0 => "Találatok szűrése", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Tegyen egy minusz jelet a nem kívánt találatok elé: -ferrari -\"VW Golf\"", + ], + "Category" => [ + 0 => "Kategória", + ], + "Storage" => [ + 0 => "Tároló", + ], + "IP address" => [ + 0 => "IP cím", + ], + "Album name" => [ + 0 => "Album neve", + ], + "move to existing album" => [ + 0 => "mozgatás egy meglévő albumba", + ], + "Album description" => [ + 0 => "Album leírása", + ], + "Brief description of this album" => [ + 0 => "Az album témájának rövid és tömör leírása", + ], + "Who can view this content" => [ + 0 => "Ki láthatja ezt a tartalmat", + ], + "Public" => [ + 0 => "Publikus", + ], + "Private (just me)" => [ + 0 => "Privát (csak én)", + ], + "Private (anyone with the link)" => [ + 0 => "Privát (a linkkel rendelkező felhasználók tudják megtekinteni)", + ], + "No category" => [ + 0 => "Nincs kategória", + ], + "Name" => [ + 0 => "Név", + ], + "Category name" => [ + 0 => "Kategória neve", + ], + "URL key" => [ + 0 => "Keresőbarát URL", + ], + "Category URL key" => [ + 0 => "Kategória keresőbarát URL-je", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Csak betűk, számok és kötőjelek", + ], + "Brief description of this category" => [ + 0 => "A kategória rövid és tömör leírása", + ], + "Untitled image" => [ + 0 => "Névtelen kép", + ], + "Expiration date" => [ + 0 => "Lejárati dátum", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "ÉÉÉÉ-HH-NN ÓÓ:PP:MM", + ], + "Example" => [ + 0 => "Példa", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Meddig kerüljön az IP cím bannolásra? Hagyja üresen, ha nem kíván megadni lejárati dátumot.", + ], + "Message" => [ + 0 => "Üzenet", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Szöveges üzenet, HTML vagy átirányítási cím (URL)", + ], + "Existing album" => [ + 0 => "Meglévő album", + ], + "Album" => [ + 0 => "Album", + 1 => "Albumok", + ], + "me" => [ + 0 => "én", + ], + "link" => [ + 0 => "link", + ], + "password" => [ + 0 => "jelszó", + ], + "private" => [ + 0 => "privát", + ], + "create new album" => [ + 0 => "új album létrehozása", + ], + "Storage name" => [ + 0 => "Tároló neve", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Régió", + ], + "Storage bucket" => [ + 0 => "Tároló bucket", + ], + "Key" => [ + 0 => "Kulcs", + ], + "Storage key" => [ + 0 => "Tároló kulcsa", + ], + "Secret" => [ + 0 => "Titkos kulcs", + ], + "Storage secret" => [ + 0 => "Tároló titkos kulcs", + ], + "Client email" => [ + 0 => "Kliens e-mail", + ], + "Google Cloud client email" => [ + 0 => "Google Cloud kliens e-mail", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Ehhez <a %s> szolgáltatás fiók</a> szükséges.", + ], + "Private key" => [ + 0 => "Privát kulcs", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON kulcs", + ], + "Identity URL" => [ + 0 => "Identity URL", + ], + "Identity API endpoint" => [ + 0 => "Identity API végpont", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API végpont az OpenStack identityhez", + ], + "Storage region" => [ + 0 => "Tároló régió", + ], + "Container" => [ + 0 => "Konténer", + ], + "Storage container" => [ + 0 => "Tároló konténer", + ], + "Tenant id" => [ + 0 => "Tenant id", + ], + "Tenant id (account id)" => [ + 0 => "Tenant id (fiók azonosító)", + ], + "Tenant name" => [ + 0 => "Tenant név", + ], + "Tenant name (account name)" => [ + 0 => "Tenant név (fiók neve)", + ], + "Hostname or IP of the storage server" => [ + 0 => "A tároló szerver hostneve vagy IP címe", + ], + "Path" => [ + 0 => "Elérési út", + ], + "Server path" => [ + 0 => "Szerver útvonal", + ], + "Server path where the files will be stored" => [ + 0 => "A fájlok tárolási helyének elérési útvonala", + ], + "Server username" => [ + 0 => "Szerver felhasználónév", + ], + "Server password" => [ + 0 => "Szerver jelszó", + ], + "Storage capacity" => [ + 0 => "Tároló kapacitás", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Példa: 20 GB, 1 TB, stb.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "A tároló inaktív lesz amint eléri ezt a mennyiséget. Hagyja üresen vagy adjon meg nullát a korlátlan értékhez.", + ], + "Storage URL" => [ + 0 => "Tároló URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "A rendszer ehhez az URL-hez fogja rendelni a tároló képeit.", + ], + "view more" => [ + 0 => "továbbiak megtekintése", + ], + "Load more" => [ + 0 => "Több betöltése", + ], + "Previous" => [ + 0 => "Előző", + ], + "Next" => [ + 0 => "Következő", + ], + "Select all" => [ + 0 => "Összes kijelölése", + ], + "Clear selection" => [ + 0 => "Kiválasztás megszüntetése", + ], + "Selection" => [ + 0 => "Kiválasztás", + ], + "Action" => [ + 0 => "Művelet", + ], + "Get embed codes" => [ + 0 => "Beillesztő kódok megjelenítése", + ], + "Assign category" => [ + 0 => "Kategória hozzárendelése", + ], + "Flag as safe" => [ + 0 => "Megjelölés mint biztonságos tartalom", + ], + "Delete" => [ + 0 => "Törlés", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "Az oldal szolgáltatásainak használatához be kell jelentkeznie. Ha még nincs fiókja <a href=\"%s\">létrehozhat egyet</a> most.", + ], + "There's nothing to show here." => [ + 0 => "Jelenleg nincs megjeleníthető tartalom.", + ], + "Edit image details" => [ + 0 => "Képadatok szerkesztése", + ], + "Edit album details" => [ + 0 => "Album szerkesztése", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Az összes kép át lesz helyezve az újonnan létrehozott albumba. Áthelyezheti még őket egy <a class=\"modal-switch\" data-switch=\"move-existing-album\">már meglévőbe</a> is.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "A kép áthelyezéséhez válasszon ki egy korábban létrehozott albumot. Esetleg ha szeretne, <a class=\"modal-switch\" data-switch=\"move-new-album\">készíthet egy újat</a> is.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Válasszon ki egy korábban létrehozott albumot az áthelyezéshez. Ha szeretné <a class=\"modal-switch\" data-switch=\"move-new-album\">létrehozhat egy új albumot</a> is.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Válasszon ki egy meglévő albumot a képek áthelyezéséhez. Esetleg ha szeretne, <a class=\"modal-switch\" data-switch=\"move-new-album\">létrehozhat egy újat</a> is.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Az összes kiválasztott kép átkerül ebbe a kategóriába.", + ], + "There is no categories." => [ + 0 => "Nincsenek kategóriák.", + ], + "Confirm flag content as safe" => [ + 0 => "A megjelölés biztonságosként lépés megerősítése", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Biztos, hogy meg akarja jelölni, mint biztonságos tartalmat?", + ], + "Confirm flag content as unsafe" => [ + 0 => "A megjelölés korhatárosként lépés megerősítése", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Biztos, hogy meg akarja jelölni, mint korhatáros tartalmat?", + ], + "Confirm deletion" => [ + 0 => "Törlés megerősítése", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Biztos, hogy törölni szeretné? A folyamat nem visszafordítható.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Biztos, hogy az összeset törölni szeretné? A folyamat nem visszafordítható.", + ], + "From %s" => [ + 0 => "Album: %s", + ], + "by %u" => [ + 0 => "%u által", + ], + "Select" => [ + 0 => "Kiválasztás", + ], + "Toggle unsafe flag" => [ + 0 => "A nem biztonságos jelzés mutatása", + ], + "The requested page was not found." => [ + 0 => "A kért oldal nem található.", + ], + "Search something else" => [ + 0 => "Keressen valami mást", + ], + "The user has been deleted" => [ + 0 => "A felhasználó törlésre került", + ], + "The content has been deleted." => [ + 0 => "A tartalom törlésre került.", + ], + "Your account is almost ready" => [ + 0 => "Az ön fiókja majdnem kész", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "A fiókja aktiválására szolgáló üzenetet kiküldtük az e-mail címére (%s). Az aktiváló link csak 48 óráig érvényes. Amennyiben az üzenet nem érkezik meg ellenőrizze a spam szűrő beállításait.", + ], + "Go to homepage" => [ + 0 => "Ugrás a főoldalra", + ], + "Resend activation" => [ + 0 => "Aktiváló üzenet újraküldése", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Sikeresen megváltoztatta a fiókja e-mail címét a következőre: %s", + ], + "Go to my profile" => [ + 0 => "Ugrás a profilomhoz", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Egy megerősítésre szolgáló hivatkozást küldünk erre az e-mail címre az aktiválás befejezéséhez szükséges lépésekkel.", + ], + "Your email address" => [ + 0 => "Az ön e-mail címe", + ], + "Add email" => [ + 0 => "E-mail hozzáadása", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "A jelszó visszaállítására vonatkozó instrukciókat tartalmazó üzenetet kiküldtük a regisztrációkor megadott e-mail címére. Ellenőrizze a spam mappát is.", + ], + "Resend instructions" => [ + 0 => "Instrukciók újraküldése", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "A jelszó visszaállítási útmutatót tartalmazó üzenetet elküldtük. Ha nem érkezett meg kérjük ellenőrizze a levelezője spam mappáját.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "Írja be a regisztrációkor megadott e-mail címét vagy felhasználónevét.", + ], + "Submit" => [ + 0 => "Elküld", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "A jelszava megváltozott. A következő belépéskor az újonnan megadott jelszót használja.", + ], + "Login now" => [ + 0 => "Bejelentkezés most", + ], + "Enter the new password that you want to use." => [ + 0 => "Írja be a használni kívánt új jelszót.", + ], + "New Password" => [ + 0 => "Új jelszó", + ], + "%d characters min" => [ + 0 => "Minimum %d karakter", + ], + "Enter your new password" => [ + 0 => "Írja be az új jelszót", + ], + "Confirm password" => [ + 0 => "Jelszó megerősítése", + ], + "Re-enter your new password" => [ + 0 => "Az új jelszó még egyszer", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "A fiók aktiválásához szükséges instrukciókat tartalmazó üzenetet kiküldtük a következő címre: %s. n\\ Kérjük ellenőrizze a spam mappát is!", + ], + "Enter the username or email address that you used to create your account to continue." => [ + 0 => "A folytatáshoz írja be a fiókja létrehozásakor megadott e-mail címet vagy felhasználónevet.", + ], + "This content is private" => [ + 0 => "Ez egy privát tartalom", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Biztos, hogy törölni szeretné az albumot és a benne található összes képet? Ez a folyamat nem visszafordítható.", + ], + "Delete album" => [ + 0 => "Album Törlése", + ], + "Album link" => [ + 0 => "Album link", + ], + "Image" => [ + 0 => "Kép", + 1 => "Kép", + ], + "User" => [ + 0 => "Felhasználó", + 1 => "Felhasználó", + ], + "Disk used" => [ + 0 => "Felhasznált tárterület", + ], + "Add user" => [ + 0 => "Felhasználó hozzáadása", + ], + "Role" => [ + 0 => "Jogosultság", + ], + "Administrator" => [ + 0 => "Adminisztrátor", + ], + "Add category" => [ + 0 => "Kategória hozzáadása", + ], + "Add IP ban" => [ + 0 => "IP ban hozzáadása", + ], + "Add storage" => [ + 0 => "Tároló hozzáadása", + ], + "Return to pages" => [ + 0 => "Vissza az oldalakhoz", + ], + "Website name" => [ + 0 => "Weboldal neve", + ], + "Website doctitle" => [ + 0 => "Weboldal címe (doctitle)", + ], + "Website description" => [ + 0 => "Weboldal meta leírása", + ], + "Website keywords" => [ + 0 => "Weboldal kulcsszavai", + ], + "Default time zone" => [ + 0 => "Alapértelmezett időzóna", + ], + "Select region" => [ + 0 => "Régió kiválasztása", + ], + "Personal mode target user" => [ + 0 => "Személyes mód célfelhasználója", + ], + "User ID" => [ + 0 => "Azonosító", + ], + "Your user id is: %s" => [ + 0 => "Az ön felhasználó azonosítója: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "A kiválasztott felhasználó numerikus azonosítója a személyes módhoz.", + ], + "Personal mode routing" => [ + 0 => "Személyes mód hozzárendelés", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Egyedi hozzárendelés (/felhasználónév -> /valami). A kezdőlaphoz rendeléshez írjon perjelet \"/\".", + ], + "Website privacy mode" => [ + 0 => "Weboldal tartalomkorlátozási módja", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "A privát mód csak a regisztrált felhasználók számára teszi elérhetővé a weboldalt.", + ], + "Content privacy mode" => [ + 0 => "Privát tartalom mód", + ], + "Default" => [ + 0 => "Alapértelmezett", + ], + "Force private (self)" => [ + 0 => "Kényszerített privát", + ], + "Force private (anyone with the link)" => [ + 0 => "Kényszerített privát (csak a linkkel rendelkező felhasználóknak)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "A kényszerített tartalom mód felülírja a felhasználó által kiválasztott módot.", + ], + "Page title" => [ + 0 => "Oldal címe", + ], + "Page status" => [ + 0 => "Oldal státusza", + ], + "Active page" => [ + 0 => "Aktív oldal", + ], + "Inactive page (%s)" => [ + 0 => "Inaktív oldal (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Csak az aktív oldalak érhetőek el.", + ], + "Type" => [ + 0 => "Típus", + ], + "Page visibility" => [ + 0 => "Oldal láthatósága", + ], + "Visible page" => [ + 0 => "Látható oldal", + ], + "Hidden page" => [ + 0 => "Rejtett oldal", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "A rejtett oldalak nem látszanak a menüben, de a linkkel rendelkezők meg tudják nyitni őket.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Csak betűk, számok, kötőjel és perjel (/)", + ], + "Page URL key relative to %s" => [ + 0 => "Az oldal URL kulcs relatív ehhez: %s", + ], + "File path" => [ + 0 => "Fájl útvonal", + ], + "A %f file relative to %s" => [ + 0 => "Egy %f fájl relatív a következőhöz: %s", + ], + "Meta keywords" => [ + 0 => "Meta kulcsszavak", + ], + "Meta description" => [ + 0 => "Meta leírás", + ], + "Source code" => [ + 0 => "Forráskód", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Nincs írási engedély a(z) %s útvonalhoz tehát külső szerkesztő segítségével kell hozzáadnia ezt a fájlt.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Nincs írási engedély a(z) %s fájlhoz tehát külső szerkesztő segítségével kell módosítania a tartalmát.", + ], + "Taken from: %s" => [ + 0 => "Származási hely: %s", + ], + "Link URL" => [ + 0 => "Link URL", + ], + "Link target attribute" => [ + 0 => "Link cél attribútum (target)", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Válassza ki a(z) %s értéket az oldal vagy link új ablakban történő megnyitásához.", + ], + "Link rel attribute" => [ + 0 => "Link rel attribútum", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Csak betűk, számok, kötőjel és szóközök", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt;%s attribútum", + ], + "Link icon" => [ + 0 => "Link ikon", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Tekintse meg a(z) <a %s> ikon útmutatót</a> a támogatott ikonok teljes listájáért.", + ], + "Sort order display" => [ + 0 => "Megjelenítési sorrend", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Az oldalak megjelenítési sorrendje a menüben és a listákban. Adja meg az \"1\" értéket a magasabb prioritáshoz.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Biztos, hogy törölni akarja a(z) %s azonosítóval rendelkező oldalt? A művelet nem visszavonható.", + ], + "Enable uploads" => [ + 0 => "Feltöltések engedélyezése", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Kapcsolja be, ha szeretné engedélyezni a képfeltöltéseket. Ez az opció nem vonatkozik az adminisztrátorokra.", + ], + "Guest uploads" => [ + 0 => "Vendég feltöltés", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Engedélyezze ha szeretné, hogy nem regisztrált felhasználók is tudjanak feltölteni.", + ], + "Enable expirable uploads" => [ + 0 => "Automatikusan törlődő feltöltések engedélyezése", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Engedélyezze, ha szeretné, hogy a feltöltésekhez megadható legyen automatikus törlési időpont.", + ], + "Image Exif data" => [ + 0 => "Kép Exif adatok", + ], + "Keep" => [ + 0 => "Megőriz", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Válassza ki az alapértelmezett beállításokat a kép <a %s>Exif adataihoz</a> feltöltéskor.", + ], + "Image Exif data (user setting)" => [ + 0 => "Kép Exif adatai (felhasználói beállítás)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Engedélyezze, ha szeretné, hogy a felhasználók maguk állíthassák be az Exif beállításokat.", + ], + "Max. filesize" => [ + 0 => "Max. fájlméret", + ], + "Max. allowed filesize. (Max allowed by server is %s)" => [ + 0 => "A maximum engedélyezett fájlméret. (A szerver által engedett maximum: %s)", + ], + "Image path" => [ + 0 => "A képek útvonala", + ], + "Relative to Chevereto root" => [ + 0 => "Relatív a Chevereto gyökérkönyvtárához", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Hol tároljuk a képeket? Az útvonal relatív kell legyen a Chevereto gyökérkönyvtárához.", + ], + "Storage mode" => [ + 0 => "Tároló mód", + ], + "Datefolders" => [ + 0 => "Dátum mappák", + ], + "Direct" => [ + 0 => "Direkt", + ], + "Datefolders creates %s structure" => [ + 0 => "A dátum mappák a következő struktúrát hozzák létre: %s", + ], + "File naming method" => [ + 0 => "Fájl elnevezési módszer", + ], + "Original" => [ + 0 => "Eredeti", + ], + "Mix original + random" => [ + 0 => "Az eredeti és véletlen keverése", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "Az \"eredeti\" megpróbálja megtartani a kép eredeti nevét míg a \"véletlen\" generál egy vegyes karakterekből álló nevet. Az \"ID\" elnevezi a képet egy azonosító alapján.", + ], + "Thumb size" => [ + 0 => "Miniatűrök mérete", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "A miniatűrök ekkora méretben fognak megjelenni.", + ], + "Watermarks" => [ + 0 => "Vízjelek", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Engedélyezze, ha szeretne logót vagy képet elhelyezni a feltöltéseken.", + ], + "Warning: Can't write in %s" => [ + 0 => "Figyelem: Nem sikerült írni a következőbe: %s", + ], + "Watermark user toggles" => [ + 0 => "Vízjel felhasználó beállításai", + ], + "Enable watermark on guest uploads" => [ + 0 => "Vízjel engedélyezése a vendég feltöltéseknél", + ], + "Enable watermark on user uploads" => [ + 0 => "Vízjel engedélyezése a felhasználók feltöltéseinél", + ], + "Enable watermark on admin uploads" => [ + 0 => "Vízjel engedélyezése az admin feltöltéseinél", + ], + "Watermark file toggles" => [ + 0 => "Vízjel fájl beállításai", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Vízjel engedélyezése a GIF feltöltéseknél", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "A vízjelhez szükséges minimális képméret", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Az ennél kisebb méretű képekre nem fog kerülni vízjel. Adjon meg nullát (0), ha nem szeretne beállítani méretkorlátozást.", + ], + "Watermark image" => [ + 0 => "Vízjel képe", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "A legjobb eredményt az egyszerű (vetett árnyékos) logóval tudja elérni. Nagyobb képet is használhat, ha a fájlméret megfelelő (az ajánlott maximum 16KB). PNG használata kötelező.", + ], + "Watermark position" => [ + 0 => "A vízjel pozíciója", + ], + "left top" => [ + 0 => "bal felül", + ], + "left center" => [ + 0 => "bal középen", + ], + "left bottom" => [ + 0 => "bal alul", + ], + "center top" => [ + 0 => "középen felül", + ], + "center center" => [ + 0 => "közép közép", + ], + "center bottom" => [ + 0 => "közép alul", + ], + "right top" => [ + 0 => "jobb felül", + ], + "right center" => [ + 0 => "jobb középen", + ], + "right bottom" => [ + 0 => "jobb alul", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "A vízjel képének relatív pozíciója. Az első érték a horizontális, a második a vertikális pozíció.", + ], + "Watermark percentage" => [ + 0 => "Vízjel mérete", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "A vízjel százalékos mérete a képhez viszonyítva. Megadható érték: 1-100.", + ], + "Watermark margin" => [ + 0 => "A vízjel margója", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margó a kép szélétől számítva a vízjelig.", + ], + "Watermark opacity" => [ + 0 => "Vízjel átlátszósága", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "A vízjel átlátszósága a végső vízjelezett képen. Az értéke 0 és 100 között lehet.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Biztos, hogy törölni akarja a(z) %s kategóriát? A művelet nem visszavonható.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Megjegyzés: A kategóriában található képek nem törlődnek a kategória törlésével.", + ], + "Edit category" => [ + 0 => "Kategória szerkesztése", + ], + "Expires" => [ + 0 => "Lejár", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Biztosan el szeretné távolítani a tiltást a következő IP címről? %s A folyamat nem visszafordítható.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "A bannolt IP cím tulajdonosa képtelen lesz hozzáférni a weboldalhoz.", + ], + "Edit IP ban" => [ + 0 => "IP ban szerkesztése", + ], + "Enable signups" => [ + 0 => "Regisztráció engedélyezése", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Engedélyezze, ha szeretné, hogy a látogatók regisztrálhassanak.", + ], + "Username routing" => [ + 0 => "Felhasználónév útvonal", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Engedélyezze ha szeretné, hogy a felhasználó URL %s/felhasználónév legyen %s/user/felhasználónév helyett.", + ], + "Require email confirmation" => [ + 0 => "E-mail megerősítés szükséges", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Engedélyezze, ha szeretné, hogy a felhasználóknak meg kelljen erősíteni az e-mail címüket regisztrációkor.", + ], + "Require email for social signup" => [ + 0 => "E-mail szükséges a közösségi oldalakkal történő regisztrációhoz.", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Engedélyezze, ha a közösségi oldalakon át érkező regisztrációkhoz szükséges legyen e-mail cím megadása.", + ], + "User avatar max. filesize" => [ + 0 => "Felhasználó avatárjának maximális fájlmérete", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "A maximális engedélyezett méret a felhasználó avatárjához. (A szerver által engedélyezett maximum: %s)", + ], + "User background max. filesize" => [ + 0 => "A felhasználó hátterének maximális fájlmérete", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "A maximális engedélyezett méret a felhasználó hátteréhez. (A szerver által engedélyezett maximum: %s)", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Tiltja a képfeltöltést (IP alapján) ha a rendszer túl sok feltöltési kérést észlel egy megadott időintervallum alatt. Ez a beállítás nem vonatkozik az adminisztrátorokra.", + ], + "Notify to email" => [ + 0 => "Értesítés e-mailben", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Engedélyezése esetén a rendszer e-mail üzenetet fog küldeni feltöltési (flood) támadás esetén.", + ], + "Minute limit" => [ + 0 => "Percenkénti limit", + ], + "Hourly limit" => [ + 0 => "Óránkénti limit", + ], + "Daily limit" => [ + 0 => "Napi limit", + ], + "Weekly limit" => [ + 0 => "Heti limit", + ], + "Monthly limit" => [ + 0 => "Havi limit", + ], + "Show not safe content in listings" => [ + 0 => "A korhatáros tartalom megjelenítése", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Engedélyezze, ha szeretné megjeleníteni a korhatáros tartalmakat a képek között. Ez a beállítás nem vonatkozik az adminisztrátorokra és a felhasználók felülírhatják a beállításaik között.", + ], + "Blur NSFW content in listings" => [ + 0 => "A korhatáros tartalom elmosása a feltöltések között", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Engedélyezése esetén a korhatáros képek elmosódva (kivehetetlenül) fognak látszódni a feltöltési listában.", + ], + "Show banners in not safe content" => [ + 0 => "Mutassa a bannereket a korhatáros tartalmak között", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Engedélyezze, ha szeretné, hogy megjelenjenek a bannerek a korhatáros tartalmak között.", + ], + "Show not safe content in random mode" => [ + 0 => "Mutassa a korhatáros tartalmat a \"véletlen\" módban", + ], + "List items per page" => [ + 0 => "Oldalak szerinti listázás", + ], + "How many items should be displayed per page listing." => [ + 0 => "Hány elem kerüljön megjelenítésre a listázás során.", + ], + "List pagination mode" => [ + 0 => "Képek lapozásának módja", + ], + "Endless scrolling" => [ + 0 => "Végtelen görgetés", + ], + "Classic pagination" => [ + 0 => "Klasszikus lapozás", + ], + "What pagination method should be used." => [ + 0 => "Kiválaszthatja az önnek leginkább tetsző navigációs megoldást.", + ], + "Image listing size" => [ + 0 => "Kép listázás méret", + ], + "Fluid" => [ + 0 => "Fluid", + ], + "Fixed" => [ + 0 => "Fix", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Mind a két opció fix szélességet használ, a \"fluid\" azonban automatán számolja ki a magasságot.", + ], + "Listing columns number" => [ + 0 => "Képlista oszlopszáma", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Itt beállíthatja hány oszlop jelenjen meg az eszközökön.", + ], + "Phone" => [ + 0 => "Telefon", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Asztali gép", + ], + "Put your themes in the %s folder" => [ + 0 => "Helyezd a sablonokat a %s mappába", + ], + "Tone" => [ + 0 => "Séma", + ], + "Light" => [ + 0 => "Világos", + ], + "Dark" => [ + 0 => "Sötét", + ], + "Main color" => [ + 0 => "Alap szín", + ], + "Hexadecimal color value" => [ + 0 => "Hexadecimális színkód", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Ezt használhatja a téma alapszínének megadásához. Az értéknek <a href=\"%s\" target=\"_blank\">hexa formátumban</a> kell lennie.", + ], + "Top bar color" => [ + 0 => "Felső sáv színe", + ], + "Black" => [ + 0 => "Fekete", + ], + "White" => [ + 0 => "Fehér", + ], + "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." => [ + 0 => "Ha ezt fehér színre állítja, akkor a felső sáv és az összes sötét tónus fehérre fog váltani.", + ], + "Top bar button color" => [ + 0 => "Felső sáv gombjainak színe", + ], + "Blue" => [ + 0 => "Kék", + ], + "Green" => [ + 0 => "Zöld", + ], + "Orange" => [ + 0 => "Narancs", + ], + "Red" => [ + 0 => "Piros", + ], + "Grey" => [ + 0 => "Szürke", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "A felső sáv gombjainak színe (példa: \"Fiók létrehozása\" gomb).", + ], + "Enable vector logo" => [ + 0 => "A vektoros logó bekapcsolása", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Bekapcsolja a vektoros logót a nagyobb pixelsűrűségű eszközökön a jobb minőség érdekében.", + ], + "Vector logo image" => [ + 0 => "Vektor logó", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "A weboldal logójának vektoros változata SVG formátumban.", + ], + "Raster logo image" => [ + 0 => "Sima logó", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "A logó hétköznapi verziója. Az ajánlott formátum a PNG.", + ], + "Logo height" => [ + 0 => "Logo magasság", + ], + "No value" => [ + 0 => "Nincs érték", + ], + "Use this to set the logo height if needed." => [ + 0 => "Itt állíthatja be a logo magasságát, ha szükséges.", + ], + "Favicon image" => [ + 0 => "A favicon képe", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon kép. A magasságnak és szélességnek egyeznie kell.", + ], + "Enable download button" => [ + 0 => "A letöltés gomb engedélyezése", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Engedélyezze, ha szeretné, hogy megjelenjen a letöltés gomb a képek mellett.", + ], + "Enable right click on image" => [ + 0 => "Jobb kattintás engedélyezése a képeken", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Engedélyezze, ha szeretné, hogy engedélyezett legyen a jobb kattintás a képmegjelenítő felületen.", + ], + "Enable show Exif data" => [ + 0 => "Exif adatok mutatásának engedélyezése", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Engedélyezze, ha szeretné, hogy megjelenjenek az Exif adatok.", + ], + "Enable social share" => [ + 0 => "Közösségi megosztás engedélyezése", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Engedélyezze, ha szeretné megjeleníteni a közösségi megosztás gombokat.", + ], + "Enable embed codes (content)" => [ + 0 => "Beillesztő kódok engedélyezése (tartalom)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Engedélyezze, ha szeretné megjeleníteni a beillesztő kódokat a tartalomhoz.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Beillesztő kódok engedélyezése (feltöltő)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Engedélyezze, ha szeretné megjeleníttetni a beillesztő kódokat a feltöltés végén.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Lehetőség a korhatáros tartalom megjelölésére a feltöltés során", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Engedélyezze, ha szeretne megjeleníteni egy kiválasztó gombot a korhatáros tartalom megjelölésére feltöltések esetén.", + ], + "Custom CSS code" => [ + 0 => "Saját CSS kód", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Ide írja a saját CSS kódját. Ez <style> formátumban kerül beillesztésre a záró </head> tag elé.", + ], + "Custom JS code" => [ + 0 => "Saját JS kód", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Ide írja a saját JS kódját. Ez <script> formátumban kerül beillesztésre a záró </head> tag elé.", + ], + "Style" => [ + 0 => "Stílus", + ], + "Landing page" => [ + 0 => "Kezdőoldal", + ], + "Split landing + images" => [ + 0 => "Kezdőoldal + képek", + ], + "Route explore" => [ + 0 => "Route explore", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Válassza ki a kezdőlap stílusát. További módosításhoz szerkessze az app/themes/%s/views/index.php fájlt.", + ], + "Cover image" => [ + 0 => "Borítókép", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Biztos, hogy törölni szeretné ezt a képet? A folyamat nem visszafordítható.", + ], + "Delete image" => [ + 0 => "Kép törlése", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "A weboldal logója vektoros formátumban (csak a kezdőlaphoz).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "A weboldal logójának bitmap verziója (csak a kezdőlaphoz). PNG formátum ajánlott.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Ez lesz hozzáadva a kezdőlap %s tagjéhez. Hagyja üresen az alapértelmezett tartalom használatához.", + ], + "Paragraph" => [ + 0 => "Bekezdés", + ], + "Call to action button color" => [ + 0 => "Az \"akciógomb\" színe", + ], + "Color of the homepage call to action button." => [ + 0 => "A kezdőlapon megjelenő \"akciógomb\" színe.", + ], + "Call to action outline style button" => [ + 0 => "Az \"akciógomb\" külső stílua", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Engedélyezze, hogy külső stílust adjon meg a kezdőlapi \"akciógombnak\".", + ], + "Call to action functionality" => [ + 0 => "Akciógomb funkció", + ], + "Trigger uploader" => [ + 0 => "Feltöltő aktiválása", + ], + "Open URL" => [ + 0 => "Link megnyitása", + ], + "Call to action URL" => [ + 0 => "Akciógomb URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Adjon meg egy abszolút vagy relatív URL-t", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Egy relatív URL mint például %r lesz hozzárendelve a következőhöz: %l", + ], + "Call to action HTML" => [ + 0 => "Akciógomb HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Ez lesz hozzáadva az akciógomb <a> tagjához. Hagyja üresen az alapértelmezett tartalom használatához.", + ], + "User IDs" => [ + 0 => "Felhasználó azonosítók", + ], + "Here you can set the codes for the predefined ad spaces." => [ + 0 => "Itt tudja megadni a hirdetések kódjait.", + ], + "Minify code" => [ + 0 => "Kód tömörítése", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Engedélyezze, ha szeretné, hogy az oldal automatikusan tömörítse a CSS és JS kódot.", + ], + "Maintenance" => [ + 0 => "Karbantartás", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Bekapcsolása esetén a látogatók számára egy karbantartásra figyelmeztető üzenetet jelenik meg. Az admnisztrátorok továbbra is megtekinthetik az oldalt.", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Ez a 'salt' konvertálja a numerikus azonosítót alfanumerikussá. A telepítéskor került létrehozásra.", + ], + "PHP error reporting" => [ + 0 => "PHP hibajelentés", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Engedélyezze, ha szeretné látni a PHP <a %s>error_reporting()</a> által generált hibákat. Éles oldalnál ajánlott kikapcsolva tartani.", + ], + "Debug level" => [ + 0 => "Hibakeresési szint", + ], + "None" => [ + 0 => "Nincs", + ], + "Error log" => [ + 0 => "Hibák logolása", + ], + "Print errors without error log" => [ + 0 => "Hibák megjelenítése logolás nélkül", + ], + "Print and log errors" => [ + 0 => "Mutassa és logolja is a hibákat", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "A hibakeresési szint beállításához olvassa el a <a %s>hibakeresési dokumentációt</a>. Az alapértelmezett beállítás a \"Hibák logolása\" (1).", + ], + "Default language" => [ + 0 => "Alapértelmezett nyelv", + ], + "Default base language to use." => [ + 0 => "Az alapértelmezetten használt nyelv.", + ], + "Auto language" => [ + 0 => "Automata nyelvváltás", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Engedélyezze, ha szeretné, hogy a felhasználók számára automatikusan beállításra kerüljön az oldalon használt nyelv.", + ], + "Language chooser" => [ + 0 => "Nyelvválasztó", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Engedélyezze, ha szeretné engedélyezni a nyelvválasztást.", + ], + "Enabled languages" => [ + 0 => "Engedélyezett nyelvek", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "A nem kijelölt nyelvek nem fognak megjelenni a weboldalon.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Engedélyezze, hogy be/kikapcsolja a HTTPS-t", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Engedélyezze, hogy be/kikapcsolja ezt a tárolót", + ], + "Quota" => [ + 0 => "Kvóta", + ], + "Active" => [ + 0 => "Aktív", + ], + "Storage method" => [ + 0 => "Tárolási módszer", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "A helyi tároló az alapértelmezetten használt mód (abban az esetben is, ha nincs aktív külső tároló).", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Ha segítségre lenne szüksége olvassa el a <a %s>tároló dokumentációt</a>.", + ], + "Edit storage" => [ + 0 => "Tároló szerkesztése", + ], + "From name" => [ + 0 => "Küldő neve", + ], + "Sender name for emails sent to users." => [ + 0 => "Ez lesz a küldő neve a felhasználóknak kiküldött üzenetekben.", + ], + "Email mode" => [ + 0 => "E-mail mód", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Hogyan küldjük ki az e-maileket? Ajánlott: SMTP", + ], + "SMTP server and port" => [ + 0 => "SMTP szerver és port", + ], + "SMTP server" => [ + 0 => "SMTP szerver", + ], + "SMTP username" => [ + 0 => "SMTP felhasználónév", + ], + "SMTP password" => [ + 0 => "SMTP jelszó", + ], + "SMTP security" => [ + 0 => "SMTP biztonság", + ], + "Unsecured" => [ + 0 => "Nem biztonságos", + ], + "Send test email" => [ + 0 => "Teszt e-mail küldése", + ], + "test@somedomain.com" => [ + 0 => "teszt@domained.hu", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Használja ezt a beépített tesztet, hogy kipróbálja a rendszerüzenetek küldését. Az ajánlott módszer: %s.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Ehhez szükséges egy <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook alkalmazás.</a>", + ], + "Facebook app id" => [ + 0 => "Facebook alkalmazás azonosító (ID)", + ], + "Facebook app secret" => [ + 0 => "Facebook alkalmazás titkos kulcs (secret)", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Ehhez egy <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter alkalmazás szükséges.</a>", + ], + "Twitter API key" => [ + 0 => "Twitter API kulcs", + ], + "Twitter API secret" => [ + 0 => "Twitter API titkos kulcs (secret)", + ], + "Twitter account" => [ + 0 => "Twitter fiók", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Ehhez egy <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google alkalmazás szükséges.</a>", + ], + "Google client id" => [ + 0 => "Google kliens id", + ], + "Google client secret" => [ + 0 => "Google kliens titkos kulcs (secret)", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Ehhez egy<a href=\"http://vk.com/dev\" target=\"_blank\">VK alkalmazás</a> szükséges.", + ], + "VK client id" => [ + 0 => "VK kliens azonosító (ID)", + ], + "VK client secret" => [ + 0 => "VK kliens titkos kulcs (secret)", + ], + "CDN allows you to offload static content to several edge servers making your website faster. If you don't have a CDN provider you should try %s." => [ + 0 => "A CDN segítségével áttöltheti a weboldala statikus tartalmait több külső szerverre a sebesség növelése érdekében. Ha még nincs CDN szolgáltatója akkor próbálja ki a következőt: %s", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Ehhez szüksége lesz egy <a href=\"%s\" target=\"_blank\">reCAPTCHA kulcsra</a>.", + ], + "reCAPTCHA public key" => [ + 0 => "reCAPTCHA publikus kulcs", + ], + "reCAPTCHA private key" => [ + 0 => "reCAPTCHA privát kulcs", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA tűréshatár", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Hány hibás próbálkozás legyen szükséges a reCAPTCHA megjelenéséhez? Nulla (0) használata esetén mindig meg fog jelenni.", + ], + "Comment code" => [ + 0 => "Komment kód", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook vagy bármi más amit szeretne. A képnézetben kerül megjelenítésre.", + ], + "Analytics code" => [ + 0 => "Analytics kód", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics vagy bármi más amit szeretne. A sablon láblécébe (footer) kerül.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Az API-val kapcsolatos bővebb információkért olvassa el az <a %s>API dokumentációt</a>.", + ], + "API v1 key" => [ + 0 => "API v1 kulcs", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Ezt a kulcsot használja az <a %s>API v1</a> használata esetén.", + ], + "Cookie law compliance" => [ + 0 => "Sütikre vonatkozó jogi figyelmeztetés", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Engedélyezése esetén megjelenik az EU jogszabályoknak megfelelő figyelmeztető üzenet. Megjegyzés: Bekapcsolására csak abban az esetben van szükség, ha a weboldal az EU területén belüli tárhelyen található és ha használ követő sütiket.", + ], + "Save changes" => [ + 0 => "Változtatások mentése", + ], + "Check the errors to proceed." => [ + 0 => "A folytatáshoz javítsa a hibákat.", + ], + "Guest" => [ + 0 => "Vendég", + ], + "You like this" => [ + 0 => "Kedveled ezt", + ], + "Like" => [ + 0 => "Kedvelés", + ], + "Added to %a and categorized in %c" => [ + 0 => "Feltöltve a %a albumba és a %c kategóriába", + ], + "Added to %s" => [ + 0 => "Hozzáadva a következőhöz: %s", + ], + "Uploaded to %s" => [ + 0 => "Feltöltve a következőbe: %s", + ], + "Uploaded %s" => [ + 0 => "Feltöltés ideje: %s", + ], + "Less Exif data" => [ + 0 => "Kevesebb Exif adat", + ], + "More Exif data" => [ + 0 => "Több Exif adat", + ], + "Share image" => [ + 0 => "Kép megosztása", + ], + "Album ID" => [ + 0 => "Album azonosító", + ], + "In this album" => [ + 0 => "Ebben az albumban", + ], + "Upload and share your images." => [ + 0 => "Töltse fel képeit és ossza meg őket a világgal.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Húzza a képeket ahová csak szeretné és kezdje el feltölteni őket most! (Korlát: %s). Direkt linkek, BBCode-ok, HTML miniatűrök és még megannyi hasznos funkció.", + ], + "Start uploading" => [ + 0 => "Feltöltés megkezdése", + ], + "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." => [ + 0 => "Töltsön fel képeket %s fiókjába és jelenítse meg őket ezen az oldalon.<br>A vezérlőpulton belül módosíthatja, hogy mely felhasználó képei jelenjenek meg itt.", + ], + "Sign up to unlock all the features" => [ + 0 => "Regisztráljon, hogy hozzáférhessen az összes funkcióhoz", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Töltse fel képeit, hozzon létre privát albumokat, szabja testre a profilját és fedezzen fel még több egyedi funkciót.", + ], + "Enter your password" => [ + 0 => "Írja be a jelszavát", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Kilépett a %s oldalról. A mihamarabbi viszontlátásra!", + ], + "Website under maintenance" => [ + 0 => "A weboldal karbantartás alatt áll", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Éppen változtatásokat végzünk a motorháztető alatt, frissítünk, újítunk, javítunk. Még néhány perc és újra elérhetőek leszünk.", + ], + "Send" => [ + 0 => "Küldés", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Nincs jogosultsága az oldal megtekintéséhez vagy a link már érvénytelen.", + ], + "Search results" => [ + 0 => "Keresési eredmények", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Biztos, hogy törölni szeretné ezt a felhasználót? A törlés végleges.", + ], + "Delete user" => [ + 0 => "Felhasználó törlése", + ], + "Register date" => [ + 0 => "Regisztráció dátuma", + ], + "Registration IP" => [ + 0 => "Regisztrációs IP", + ], + "Status" => [ + 0 => "Állapot", + ], + "Valid" => [ + 0 => "Aktivált", + ], + "Banned" => [ + 0 => "Tiltott", + ], + "Awaiting email" => [ + 0 => "E-mail-re vár", + ], + "Awaiting confirmation" => [ + 0 => "Megerősítésre vár", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "Engedélyezett karakterek: %i - %f <br>Számok, betűk és \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Feltöltések automatikus törlése", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Ez a beállítás az összes feltöltésere alapértelmezetten érvényes lesz. A beállítás felülírható minden egyes feltöltés esetében.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "A kép <a %s>Exif adatainak</a> megtartása feltöltéskor", + ], + "Newsletter" => [ + 0 => "Hírlevél", + ], + "Send me emails with news about %s" => [ + 0 => "Szeretnék hírlevelet kapni a(z) %s újdonságaival kapcsolatban", + ], + "Content settings" => [ + 0 => "Tartalmi beállítások", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Mutassa a korhatáros tartalmat a képek között (mások feltöltései esetében)", + ], + "Language" => [ + 0 => "Nyelv", + ], + "Timezone" => [ + 0 => "Időzóna", + ], + "Current password" => [ + 0 => "Jelenlegi jelszó", + ], + "Enter your current password" => [ + 0 => "Írja be a jelenlegi jelszavát", + ], + "New password" => [ + 0 => "Új jelszó", + ], + "Confirm new password" => [ + 0 => "Erősítse meg az új jelszót", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Adjon meg egy jelszót, hogy be tudjon jelentkezni a felhasználónevével vagy e-mail címével.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Ennek a felhasználónak nincs jelszava. Adjon meg egyet az űrlap kitöltésével.", + ], + "Re-enter your password" => [ + 0 => "A jelszó még egyszer", + ], + "Upload new image" => [ + 0 => "Új kép feltöltése", + ], + "Delete existing image" => [ + 0 => "Feltöltött kép törlése", + ], + "This is your real name, not your username." => [ + 0 => "Ez a valódi neve, nem a felhasználóneve.", + ], + "http://yourwebsite.com" => [ + 0 => "http://weboldala.hu", + ], + "Bio" => [ + 0 => "Rólam", + ], + "Tell us a little bit about you" => [ + 0 => "Mondjon egy pár szót magáról", + ], + "User has no connections." => [ + 0 => "A felhasználónak nincsenek kapcsolatai.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Kapcsolja össze a fiókját külső szolgáltatásokkal hogy be tudjon lépni és információkat tudjon megosztani.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Biztos benne, hogy lecsatlakoztatja %s -t erről a fiókról?", + ], + "This account is connected to %s" => [ + 0 => "Ez a fiók a következőhöz van kapcsolva: %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Biztos, hogy lecsatlakozik az ön %s fiókjáról?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Kiléptetésre kerül és nem fog tudni bejelentkezni a fiókjába a %s fiók segítségével.", + ], + "Your account is connected to %s" => [ + 0 => "A fiókja csatlakoztatva van a következőhöz: %s", + ], + "disconnect" => [ + 0 => "lecsatlakozás", + ], + "Connect %s" => [ + 0 => "Összekapcsolás %s", + ], + "Button" => [ + 0 => "Gomb", + ], + "resend account activation" => [ + 0 => "aktiváló e-mail újraküldése", + ], + "If you have already signed up maybe you need to request to %s" => [ + 0 => "Ha már regisztrált, akkor talán megfelelő lépés lehet az %s", + ], + "Upload profile background" => [ + 0 => "Profil háttérkép feltöltése", + ], + "Change background" => [ + 0 => "Háttér megváltoztatása", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "A profil háttérképe törölve lesz és a folyamat nem visszafordítható. Biztos benne, hogy ezt szeretné tenni?", + ], + "Delete background" => [ + 0 => "Háttér törlése", + ], + "Edit profile" => [ + 0 => "Profil szerkesztése", + ], + "Follower" => [ + 0 => "Követő", + 1 => "Követők", + ], + "Follow" => [ + 0 => "Követés", + ], + "Contact" => [ + 0 => "Kapcsolatok", + ], + "Your name" => [ + 0 => "A neved", + ], + "Subject" => [ + 0 => "Tárgy", + ], + "Installed version is v%s" => [ + 0 => "A telepített verzió: v%s", + ], + "Can't connect to %s" => [ + 0 => "Nem sikerült a kapcsolódás a következőhöz: %s", + ], + "Last available release is v%s" => [ + 0 => "A legutolsó elérhető kiadás: v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Frissítés szükséges, tovább a letöltéshez", + ], + "No update needed" => [ + 0 => "Nincs szükség frissítésre", + ], + "System files already up to date" => [ + 0 => "A rendszerfájlok naprakészek", + ], + "Starting v%s download" => [ + 0 => "A v%s letöltésének megkezdése", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s letöltve, kicsomagolás megkezdése", + ], + "Attempting to extract v%s" => [ + 0 => "v%s kicsomagolása", + ], + "Extraction completed" => [ + 0 => "Kicsomagolás befejezve", + ], + "Proceding to install the update" => [ + 0 => "Frissítés telepítése folyamatban", + ], + "Update failed" => [ + 0 => "Frissítés sikertelen", + ], + "Please provide a valid email address" => [ + 0 => "Kérjük adjon meg egy érvényes e-mail címet", + ], + "You must enter the album name." => [ + 0 => "Meg kell adnia az album nevét.", + ], + "Confirm" => [ + 0 => "Megerősít", + ], + "Select existing album" => [ + 0 => "Válasszon ki egy meglévő albumot", + ], + "Please select a valid image file type." => [ + 0 => "Kérjük válasszon ki egy érvényes kép típust.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Kérjük válasszon ki egy képet maximum %s méretben.", + ], + "Profile image updated." => [ + 0 => "Profil kép frissítve.", + ], + "Profile background image updated." => [ + 0 => "Profil háttérkép frissítve.", + ], + "Profile background image deleted." => [ + 0 => "Profil háttérkép törölve.", + ], + "Error deleting profile background image." => [ + 0 => "Hiba történt a profil háttérkép törlése közben.", + ], + "Update available v%s" => [ + 0 => "Frissítés elérhető: v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Egy frissítés érhető el a rendszerhez. Automatikusan letöltheti és telepítheti ezt vagy a következő linken letöltheti: %s", + ], + "Update now" => [ + 0 => "Frissítés indítása", + ], + "Your website is running the latest version of Chevereto." => [ + 0 => "A weboldala a legfrisebb Chevereto verziót használja.", + ], + "Clipboard image" => [ + 0 => "Vágólap kép", + ], + "File too big." => [ + 0 => "A fájl túl nagy.", + ], + "Some files couldn't be added" => [ + 0 => "Néhány fájl hozzáadása nem sikerült", + ], + "Image edited successfully." => [ + 0 => "A kép módosítása sikeres.", + ], + "Album edited successfully." => [ + 0 => "Az album módosítása sikeres.", + ], + "Invalid URL key." => [ + 0 => "Érvénytelen URL kulcs.", + ], + "Category URL key already being used." => [ + 0 => "A kategória URL kulcs már használatban van.", + ], + "Category successfully deleted." => [ + 0 => "A kategória sikeresen törölve.", + ], + "Category %s added." => [ + 0 => "%s kategória létrehozva.", + ], + "Invalid expiration date." => [ + 0 => "Érvénytelen lejárati dátum.", + ], + "IP %s already banned." => [ + 0 => "Az IP (%s) már tiltva van.", + ], + "IP %s banned." => [ + 0 => "IP (%s) tiltásra került.", + ], + "IP ban successfully deleted." => [ + 0 => "Az IP ban törlésre került.", + ], + "Please fill all the required fields." => [ + 0 => "Kérjük töltse ki az összes szükséges mezőt.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Érvénytelen tároló kapacitás érték. Használjon érvényes formátumot.", + ], + "Invalid URL." => [ + 0 => "Érvénytelen URL.", + ], + "Storage successfully edited." => [ + 0 => "Tároló sikeresen módosítva.", + ], + "User added successfully." => [ + 0 => "A felhasználó sikeresen hozzáadva.", + ], + "The content has been moved." => [ + 0 => "A tartalom áthelyezésre került.", + ], + "Unselect" => [ + 0 => "Kiválasztás törlése", + ], + "The content has been edited." => [ + 0 => "A tartalom módosítva lett.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Hogyha folytatja az összes módosítás elvész.", + ], + "Changes saved successfully." => [ + 0 => "A változtatások mentése sikeres.", + ], + "Go back to form" => [ + 0 => "Vissza az űrlaphoz", + ], + "continue anyway" => [ + 0 => "folytatom", + ], + "Saving" => [ + 0 => "Mentés", + ], + "Sending" => [ + 0 => "Küldés", + ], + "Confirm action" => [ + 0 => "Döntés megerősítése", + ], + "information" => [ + 0 => "információ", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/id.po.cache.php b/app/.cache/languages/id.po.cache.php new file mode 100644 index 0000000..2ebbd51 --- /dev/null +++ b/app/.cache/languages/id.po.cache.php @@ -0,0 +1,3344 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-09 16:33+0000', + 'PO-Revision-Date' => '2021-06-09 16:33+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'id', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Email tidak benar", + ], + "Invalid username" => [ + 0 => "Username tidak benar", + ], + "Invalid password" => [ + 0 => "Password salah", + ], + "Installed version is v%s" => [ + 0 => "Versi terpasang ialah v%s", + ], + "Can't connect to %s" => [ + 0 => "Tidak dapat terhubung ke %s", + ], + "Last available release is v%s" => [ + 0 => "Rilis terakhir yang tersedia ialah v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Pembaruan diperlukan, melanjutkan untuk mengunduh", + ], + "No update needed" => [ + 0 => "Pembaruan tidak diperlukan", + ], + "System files already up to date" => [ + 0 => "Sistem file telah terbaru", + ], + "Starting v%s download" => [ + 0 => "Memulai unduhan v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s terunduh, melanjutkan ekstraksi", + ], + "Attempting to extract v%s" => [ + 0 => "Mencoba mengekstrak v%s", + ], + "Extraction completed" => [ + 0 => "Ekstraksi selesai", + ], + "Proceding to install the update" => [ + 0 => "Melanjutkan pemasangan pembaruan", + ], + "Update failed" => [ + 0 => "Pembaruan gagal", + ], + "Update in progress" => [ + 0 => "Pembaharuan sedang berlangsung", + ], + "Missing %s file" => [ + 0 => "File %s hilang", + ], + "Invalid license info" => [ + 0 => "info lisensi tidak valid", + ], + "Can't save file" => [ + 0 => "Tidak dapat menyimpan file", + ], + "Can't extract %s" => [ + 0 => "Tidak dapat mengekstrak %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Tidak dapat membuat direktori %s - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Tidak dapat memperbarui berkas %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Periksa kesalahan pada kotak isian untuk melanjutkan", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Catatan: Konten ini bersifat pribadi namun siapapun yang memiliki tautan dapat melihat ini.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Catatan: Konten ini dilindungi kata sandi.\nIngat untuk melewati konten dengan kata sandi untuk dibagikan.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Catatan: Ini konten pribadi. Ubah privasi ke \"Umum\" untuk membagikan.", + ], + "You must enter the album name." => [ + 0 => "Anada harus mengisi nama album.", + ], + "Confirm" => [ + 0 => "Konfirmasi", + ], + "Select existing album" => [ + 0 => "Pilih album yang telah ada", + ], + "An error occurred. Please try again later." => [ + 0 => "Terjadi sebuah kesalahan. Harap coba lagi lain kali.", + ], + "Please select a valid image file type." => [ + 0 => "Silakan pilih tipe berkas yang benar.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Silakan pilih gambar dengan ukuran %s .", + ], + "Profile image updated." => [ + 0 => "Gambar profil baru saja diperbaharui.", + ], + "Profile background image updated." => [ + 0 => "Gambar latar belakang baru saja diperbaharui.", + ], + "Profile background image deleted." => [ + 0 => "Gambar latar belakang baru saja dihapus.", + ], + "Error deleting profile background image." => [ + 0 => "Gagal menghapus gambar latar belakang di profil.", + ], + "Passwords don't match" => [ + 0 => "Password tidak cocok", + ], + "Update available v%s" => [ + 0 => "Pembaruan yang tersedia v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Terdapat pembaruan untuk sistem anda. Anda dapat mengunduh otomatis dan memasang pembaruan ini atau pergi ke %s untuk melanjutkan mengunduh file.", + ], + "The release notes for this update are:" => [ + 0 => "Catatan rilis untuk pembaruan ini diantaranya:", + ], + "Update now" => [ + 0 => "Perbarui sekarang", + ], + "This website is running latest %s version" => [ + 0 => "Situs web ini menjalankan versi %s terbaru", + ], + "loading" => [ + 0 => "menunggu", + ], + "Like" => [ + 0 => "Suka", + ], + "Edit" => [ + 0 => "Edit", + ], + "Album" => [ + 0 => "Album", + ], + "Approve" => [ + 0 => "Diterima", + ], + "Delete" => [ + 0 => "Hapus", + ], + "Close" => [ + 0 => "Tutup", + ], + "Previous" => [ + 0 => "Sebelumnya", + ], + "Next" => [ + 0 => "Berikutnya", + ], + "Clipboard image" => [ + 0 => "Gambar papan klip", + ], + "File too big." => [ + 0 => "Berkas terlalu besar.", + ], + "Invalid or unsupported file format." => [ + 0 => "Format berkas tidak valid atau tidak didukung.", + ], + "Some files couldn't be added" => [ + 0 => "Beberapa berkas tidak dapat ditambahkan.", + ], + "image" => [ + 0 => "gambar", + ], + "%s's Albums" => [ + 0 => "Album %s", + ], + "Image edited successfully." => [ + 0 => "Gambar berhasil diubah.", + ], + "private" => [ + 0 => "pribadi", + ], + "Album edited successfully." => [ + 0 => "Album berhasil diubah.", + ], + "Invalid URL key." => [ + 0 => "URL key tidak benar.", + ], + "Category URL key already being used." => [ + 0 => "Kategori URL key telah digunakan.", + ], + "Category successfully deleted." => [ + 0 => "Kategori berhasil dihapus.", + ], + "Category %s added." => [ + 0 => "Kategori %s telah ditambahkan.", + ], + "Invalid expiration date." => [ + 0 => "Tanggal kadaluarsa tidak benar.", + ], + "IP %s already banned." => [ + 0 => "IP %s telah diblokir.", + ], + "IP %s banned." => [ + 0 => "IP %s diblokir.", + ], + "IP ban successfully deleted." => [ + 0 => "Larangan terhadap IP telah dihapus dari daftar.", + ], + "Please fill all the required fields." => [ + 0 => "Silakan isi semua kolom yang dibutuhkan.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Kapasitas penyimpanan tidak benar. Pastikan menggunakan bentuk yang baku.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Kapasitas penyimpanan tidak bisa lebih rendah dari penggunaan sekarang (%s).", + ], + "Invalid URL." => [ + 0 => "URL tidak benar.", + ], + "Storage successfully edited." => [ + 0 => "Kapasitas penyimpanan berhasil diubah.", + ], + "User added successfully." => [ + 0 => "Nama pengguna berhasil ditambahkan.", + ], + "The content has been deleted." => [ + 0 => "Konten telah dihapus.", + ], + "The content has been moved." => [ + 0 => "Isi telah dipindahkan.", + ], + "Select" => [ + 0 => "Pilih", + ], + "Unselect" => [ + 0 => "Buang seleksi", + ], + "The content has been edited." => [ + 0 => "Isi telah diubah.", + ], + "Spam detected" => [ + 0 => "Spam terdeteksi", + ], + "album" => [ + 0 => "album", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Flooding terdeteksi. Anda hanya dapat mengunggah %limit% %content% per %time%", + ], + "Untitled" => [ + 0 => "Tidak berjudul", + ], + "%s's images" => [ + 0 => "%s foto", + ], + "Private" => [ + 0 => "Pribadi", + ], + "Public" => [ + 0 => "Umum", + ], + "Me" => [ + 0 => "Aku", + ], + "Link" => [ + 0 => "Tautan", + ], + "Password" => [ + 0 => "Kata sandi", + ], + "view" => [ + 0 => "dilihat", + ], + "After %n %t" => [ + 0 => "Setelah %n %t", + ], + "minute" => [ + 0 => "menit", + ], + "hour" => [ + 0 => "jam", + ], + "day" => [ + 0 => "hari", + ], + "week" => [ + 0 => "minggu", + ], + "month" => [ + 0 => "bulan", + ], + "year" => [ + 0 => "tahun", + ], + "Don't autodelete" => [ + 0 => "Jangan hapus otomatis", + ], + "Can't open %s for writing" => [ + 0 => "Tidak dapat membuka %s untuk ditulis", + ], + "Duplicated upload" => [ + 0 => "Gandakan unggahan", + ], + "Private upload" => [ + 0 => "Unggahan pribadi", + ], + "like" => [ + 0 => "suka", + ], + "Recent" => [ + 0 => "Baru-baru ini", + ], + "Trending" => [ + 0 => "Tren", + ], + "Top users" => [ + 0 => "Pengguna teratas", + ], + "Most recent" => [ + 0 => "Terbaru", + ], + "Oldest" => [ + 0 => "Terlama", + ], + "Most viewed" => [ + 0 => "Paling dilihat", + ], + "Popular" => [ + 0 => "Populer", + ], + "Most liked" => [ + 0 => "Paling disukai", + ], + "Explore" => [ + 0 => "Jelajahi", + ], + "Animated" => [ + 0 => "Beranimasi", + ], + "Search" => [ + 0 => "Cari", + ], + "People" => [ + 0 => "Orang", + ], + "Image" => [ + 0 => "Gambar", + ], + "User" => [ + 0 => "Pengguna", + ], + "Can't create %s destination dir" => [ + 0 => "Tidak dapat membuat direktori tujuan %s", + ], + "Internal" => [ + 0 => "Internal", + ], + "Unlimited" => [ + 0 => "Tanpa batasan", + ], + "used" => [ + 0 => "digunakan", + ], + "Private profile" => [ + 0 => "Profil pribadi", + ], + "second" => [ + 0 => "detik", + ], + "%s ago" => [ + 0 => "%s yang lalu", + ], + "moments ago" => [ + 0 => "beberapa waktu lalu", + ], + "Dashboard" => [ + 0 => "Beranda", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Terdapat pembaruan untuk sistem anda. Pergi ke %s untuk mengunduh dan memasang pembaruan ini.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Sistem database sudah kadaluarsa. Anda perlu untuk menjalankan menu <a href=\"%s\">update</a>", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Website sedang dalam perbaikan. Untuk merubah setting ini kunjungi <a href=\"%s\">Menu Utama > Pengaturan</a>", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Anda harus menonaktifkan pelaporan kesalahan PHP untuk lingkungan produksi. Pergi ke <a href='%s'>Pengaturan sistem</a> untuk mengembalikan pengaturan ini.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Anda belum mengubah pengaturan email bawaan. Pergi ke <a href='%s'>Pengaturan Email</a> untuk memperbaiki hal ini.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Terdapat pembaruan untuk website berbasis Chevereto anda.", + ], + "admin dashboard" => [ + 0 => "dasbor admin", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Anda dapat menerapkan pembaruan ini secara langsung dari %a anda atau mengunduhnya dari %s dan kemudian secara manual memasangnya.", + ], + "view on %s" => [ + 0 => "Ditampilkan pad %s", + ], + "cookie policy" => [ + 0 => "kebijakan cookie", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Kami menggunakan cookie kami sendiri dan pihak ketiga untuk meningkatkan pengalaman menjelajah Anda dan layanan kami. Jika Anda terus menggunakan situs web kami, dipahami bahwa Anda menerima ini %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Saya mengerti", + ], + "Forgot password?" => [ + 0 => "Lupa password anda?", + ], + "Reset password" => [ + 0 => "atur ulang password", + ], + "Resend account activation" => [ + 0 => "Kirim kembali kode aktivasi", + ], + "Add your email address" => [ + 0 => "Masukkan alamat email anda", + ], + "Email changed" => [ + 0 => "Email telah berubah", + ], + "%s says you are a robot" => [ + 0 => "%s bilang kamu adalah robot", + ], + "Invalid Username/Email" => [ + 0 => "Username/Email tidak sah", + ], + "User doesn't have an email." => [ + 0 => "Pengguna tidak memiliki email", + ], + "Request denied" => [ + 0 => "Permintaan ditolak", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Akun perlu untuk diaktivasi agar bisa menggunakan fitur ini", + ], + "Account already activated" => [ + 0 => "Akun telah diaktivasi", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Tunggu sampai 15 menit untuk email. Anda bisa mencoba lagi nanti.", + ], + "Reset your password at %s" => [ + 0 => "Reset password anda di %s", + ], + "Confirmation required at %s" => [ + 0 => "Konfirmasi diperlukan di %s", + ], + "Welcome to %s" => [ + 0 => "Selamat datang di %s", + ], + "Email already being used" => [ + 0 => "Email telah digunakan", + ], + "Password required" => [ + 0 => "Kata sandi diperlukan", + ], + "Embed codes" => [ + 0 => "Kode cantumkan", + ], + "%a album hosted in %w" => [ + 0 => "%a album disimpan di %w", + ], + "Stats" => [ + 0 => "Status", + ], + "Images" => [ + 0 => "Foto", + ], + "Albums" => [ + 0 => "Album", + ], + "Users" => [ + 0 => "Pengguna", + ], + "Settings" => [ + 0 => "Pengaturan", + ], + "Bulk importer" => [ + 0 => "Import massal", + ], + "install update" => [ + 0 => "Pasang pembaharuan", + ], + "check for updates" => [ + 0 => "Cek pembaharuan", + ], + "Support" => [ + 0 => "Dukungan", + ], + "Bug tracking" => [ + 0 => "Pelacakan bug", + ], + "Documentation" => [ + 0 => "Dokumentasi", + ], + "PHP version" => [ + 0 => "Versi PHP", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "Versi MySQL", + ], + "MySQL server info" => [ + 0 => "Informasi server MySQL", + ], + "File uploads" => [ + 0 => "Mengunggah berkas", + ], + "Enabled" => [ + 0 => "Diaktifkan", + ], + "Disabled" => [ + 0 => "Dinonaktifkan", + ], + "Max. upload file size" => [ + 0 => "Ukuran unggah berkas maks.", + ], + "Max. post size" => [ + 0 => "Ukuran maks. penulisan", + ], + "Max. execution time" => [ + 0 => "Waktu maks. eksekusi", + ], + "%d second" => [ + 0 => "%d detik", + ], + "Memory limit" => [ + 0 => "Batas memori", + ], + "Rebuild stats" => [ + 0 => "Bangun kembali statistik", + ], + "Connecting IP" => [ + 0 => "Menghubungkan IP", + ], + "Not your IP?" => [ + 0 => "Bukan IP Anda?", + ], + "Website" => [ + 0 => "Website", + ], + "Content" => [ + 0 => "Isi", + ], + "Pages" => [ + 0 => "Laman", + ], + "Listings" => [ + 0 => "Daftar", + ], + "Image upload" => [ + 0 => "Foto diunggah", + ], + "Categories" => [ + 0 => "Kategori", + ], + "Consent screen" => [ + 0 => "Layar kesepakatan", + ], + "Flood protection" => [ + 0 => "Anti penggembosan", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Halaman muka", + ], + "Banners" => [ + 0 => "banner", + ], + "System" => [ + 0 => "sistem", + ], + "Routing" => [ + 0 => "Pengarahan", + ], + "Languages" => [ + 0 => "Bahasa", + ], + "External storage" => [ + 0 => "Penyimpanan tambahan", + ], + "Email" => [ + 0 => "Surel", + ], + "Social networks" => [ + 0 => "Media sosial", + ], + "External services" => [ + 0 => "Layanan tambahan", + ], + "IP bans" => [ + 0 => "Blokir IP", + ], + "Additional settings" => [ + 0 => "Pengaturan tambahan", + ], + "Tools" => [ + 0 => "Alat-alat", + ], + "Can't delete all homepage cover images" => [ + 0 => "Tidak dapat menghapus semua gambar sampul halaman muka.", + ], + "Homepage cover image deleted" => [ + 0 => "Gambar halaman muka dihapus", + ], + "Local" => [ + 0 => "Lokal", + ], + "External" => [ + 0 => "Tambahan", + ], + "All" => [ + 0 => "Semua", + ], + "search content" => [ + 0 => "cari konten", + ], + "Add page" => [ + 0 => "Tambah laman", + ], + "Edit page ID %s" => [ + 0 => "Ubah halaman ID %s", + ], + "The page has been added successfully." => [ + 0 => "Halaman telah berhasil ditambahkan.", + ], + "The page has been deleted." => [ + 0 => "Halaman telah dihapus.", + ], + "homepage" => [ + 0 => "beranda", + ], + "Before main title (%s)" => [ + 0 => "Sebelum judul utama (%s)", + ], + "After call to action (%s)" => [ + 0 => "Setelah panggilan untuk melakukan (%s)", + ], + "After cover (%s)" => [ + 0 => "Setelah sampul (%s)", + ], + "After listing (%s)" => [ + 0 => "Setelah pendaftaran (%s)", + ], + "Before pagination" => [ + 0 => "Sebelum nomor halaman", + ], + "After pagination" => [ + 0 => "Setelah nomor halaman", + ], + "Content (image and album)" => [ + 0 => "Konten (gambar dan album)", + ], + "Tab about column" => [ + 0 => "Kolom tab tentang", + ], + "Before comments" => [ + 0 => "Sebelum komentar", + ], + "Image page" => [ + 0 => "Halaman gambar", + ], + "Inside viewer top (image page)" => [ + 0 => "Didalam atas penonton (halaman gambar)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Didalam kaki penonton (halaman gambar)", + ], + "After image viewer (image page)" => [ + 0 => "Setelah penampil gambar (halaman gambar)", + ], + "Before header (image page)" => [ + 0 => "Sebelum judul (halaman gambar)", + ], + "After header (image page)" => [ + 0 => "Setelah judul (halaman gambar)", + ], + "Footer (image page)" => [ + 0 => "Kaki (halaman gambar)", + ], + "Album page" => [ + 0 => "Laman album", + ], + "Before header (album page)" => [ + 0 => "Sebelum Judul (halaman album)", + ], + "After header (album page)" => [ + 0 => "Setelah judul (halaman album)", + ], + "User profile page" => [ + 0 => "Halaman profil pengguna", + ], + "After top (user profile)" => [ + 0 => "Setelah teratas (profil pengguna)", + ], + "Before listing (user profile)" => [ + 0 => "Sebelum pendaftaran (profil pengguna)", + ], + "Explore page" => [ + 0 => "Jelajahi halaman", + ], + "After top (explore page)" => [ + 0 => "Setelah teratas (halaman jelajahi)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Nama website tidak sah", + ], + "Invalid language" => [ + 0 => "Bahasa tidak sah", + ], + "Invalid timezone" => [ + 0 => "Zona waktu tidak sah", + ], + "Invalid value: %s" => [ + 0 => "Nilai tidak valid: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Mode penyimpanan upload tidak valid", + ], + "Invalid upload filenaming" => [ + 0 => "Unggah penamaan tidak valid", + ], + "Invalid thumb width" => [ + 0 => "lebar gambar kecil tidak valid", + ], + "Invalid thumb height" => [ + 0 => "Tinggi gambar kecil tidak valid", + ], + "Invalid medium size" => [ + 0 => "Ukuran medium tidak valid", + ], + "Invalid watermark percentage" => [ + 0 => "Presentasi tanda air tidak valid", + ], + "Invalid watermark opacity" => [ + 0 => "Kegelapan tanda air tidak valid", + ], + "Invalid theme" => [ + 0 => "Tema tidak sah", + ], + "Invalid value" => [ + 0 => "Isi tidak sah", + ], + "Invalid theme tone" => [ + 0 => "Suasana tema tidak valid", + ], + "Invalid theme main color" => [ + 0 => "Warna utama tema tidak valid", + ], + "Invalid theme top bar button color" => [ + 0 => "Warna batang bawah tema tidak valid", + ], + "Invalid theme image listing size" => [ + 0 => "Ukuran tema pendaftaran gambar tidak valid", + ], + "Invalid user id" => [ + 0 => "Id user salah", + ], + "Invalid email mode" => [ + 0 => "Mode email tidak benar", + ], + "Invalid SMTP port" => [ + 0 => "Port SMTP salah", + ], + "Invalid SMTP security" => [ + 0 => "Pengaman SMTP salah", + ], + "Invalid website mode" => [ + 0 => "Mode website salah", + ], + "Invalid personal mode user ID" => [ + 0 => "Mode pribadi ID pengguna tidak valid", + ], + "Invalid or reserved route" => [ + 0 => "Tidak valid atau dilindungi", + ], + "Invalid website privacy mode" => [ + 0 => "mode privasi website tidak valid", + ], + "Invalid website content privacy mode" => [ + 0 => "Mode privasi konten website tidak valid", + ], + "Invalid homepage style" => [ + 0 => "gaya beranda tidak valid", + ], + "Invalid homepage call to action button color" => [ + 0 => "Panggilan beranda untuk warna tombol aksi tidak valid", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Fungsionalitas panggilan ke tindakan beranda tidak valid", + ], + "Invalid title" => [ + 0 => "Judul tidak valid", + ], + "Invalid status" => [ + 0 => "Status tidak valid", + ], + "Invalid type" => [ + 0 => "Tipe tidak valid", + ], + "Invalid visibility" => [ + 0 => "Visibilitas tidak valid", + ], + "Invalid internal type" => [ + 0 => "Jenis internal tidak valid", + ], + "Invalid target attribute" => [ + 0 => "Atribut sasaran tidak valid", + ], + "Invalid rel attribute" => [ + 0 => "Atribut rel tidak valid", + ], + "Invalid icon" => [ + 0 => "Ikon tidak valid", + ], + "Invalid URL key" => [ + 0 => "Kunci URL tidak valid", + ], + "Invalid file path" => [ + 0 => "Jalur file tidak valid", + ], + "Invalid link URL" => [ + 0 => "URL tautan tidak valid", + ], + "Invalid user minimum age" => [ + 0 => "Usia minimal pengguna tidak valid", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Hanya karakter alfanumerik, tanda hubung dan garis bawah yang diperbolehkan", + ], + "Invalid URL" => [ + 0 => "URL tidak valid", + ], + "Routes can't be the same" => [ + 0 => "Pengarahan tidak boleh sama", + ], + "Invalid upload image path" => [ + 0 => "Jalur upload gambar tidak valid", + ], + "Invalid call to action URL" => [ + 0 => "Panggilan tidak valid untuk aksi URL", + ], + "Max. allowed %s" => [ + 0 => "Maks. diperbolehkan %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Tidak dapat memetakan %m ke folder yang telah ada (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Tidak dapat memetakan %m ke rute yang telah ada (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Tidak dapat memetakan %m ke %r (tubrukan nama pengguna)", + ], + "Invalid SMTP server" => [ + 0 => "Server SMTP tidak valid", + ], + "Invalid SMTP username" => [ + 0 => "username SMTP tidak valid", + ], + "Invalid key" => [ + 0 => "Kunci tidak sesuai", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Kunci URL ini telah digunakan oleh halaman lainnya (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Jalur file ini telah digunakan oleh halaman lainnya (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Tidak dapat menyimpan isi halaman: %s", + ], + "Following" => [ + 0 => "Mengikuti", + ], + "About" => [ + 0 => "Tentang", + ], + "Image ID" => [ + 0 => "ID Gambar", + ], + "Uploader IP" => [ + 0 => "IP Pengunggah", + ], + "Ban IP" => [ + 0 => "Blokir IP", + ], + "IP already banned" => [ + 0 => "IP telah diblokir", + ], + "Upload date" => [ + 0 => "Tanggal upload", + ], + "Image %i in %a album" => [ + 0 => "Gambar %i di album %a", + ], + "Image %i in %c category" => [ + 0 => "Gambar %i di Kategori %c", + ], + "Image %i hosted in %w" => [ + 0 => "Gambar %i tersimpan di %w", + ], + "Direct links" => [ + 0 => "Tautan langsung", + ], + "Image link" => [ + 0 => "Tautan gambar", + ], + "Image URL" => [ + 0 => "URL gambar", + ], + "Thumbnail URL" => [ + 0 => "URL sketsa", + ], + "Medium URL" => [ + 0 => "URL sedang", + ], + "Full image" => [ + 0 => "Gambar penuh", + ], + "Full image (linked)" => [ + 0 => "Gambar penuh (terhubung)", + ], + "Medium image (linked)" => [ + 0 => "Gambar medium (terhubung)", + ], + "Thumbnail image (linked)" => [ + 0 => "Gambar kecil (terhubung)", + ], + "Login needed" => [ + 0 => "Login dibutuhkan", + ], + "IP address already banned" => [ + 0 => "Alamat IP telah di blokir", + ], + "Missing values" => [ + 0 => "Nilai yang hilang", + ], + "Invalid role" => [ + 0 => "Peran tidak valid", + ], + "Username already being used" => [ + 0 => "Username talah digunakan", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Tambahkan sebuah kata sandi atau sambungan sosial lainnya sebelum menghapus %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Tambakan sebuah email atau atau sambungan sosial lainnya sebelum menghapus %s", + ], + "%s has been disconnected." => [ + 0 => "%s telah terputus.", + ], + "Test email from %s @ %t" => [ + 0 => "Email percobaan dari %s @%t", + ], + "This is just a test" => [ + 0 => "Ini hanya sebuah percobaan", + ], + "Test email sent to %s." => [ + 0 => "Email percobaan telah terkirim ke %s.", + ], + "Downloading %s data" => [ + 0 => "Mengunduh data %s", + ], + "User %s followed" => [ + 0 => "Pengguna %s diikuti", + ], + "User %s unfollowed" => [ + 0 => "Pengguna %s batal mengikuti", + ], + "Content liked" => [ + 0 => "Konten disukai", + ], + "Content disliked" => [ + 0 => "Konten tidak disukai", + ], + "%u liked your %t %c" => [ + 0 => "%u menyukai %t %c anda", + ], + "%u is now following you" => [ + 0 => "%u kini mengikuti anda", + ], + "A private user" => [ + 0 => "Pengguna pribadi", + ], + "Wrong Username/Email password combination" => [ + 0 => "Kombinasi Username/password email salah", + ], + "Sign in" => [ + 0 => "Masuk", + ], + "Upload images" => [ + 0 => "Unggah gambar", + ], + "Upload plugin" => [ + 0 => "Unggah plugin", + ], + "Image search results for %s" => [ + 0 => "Hasil pencarian gambar %s", + ], + "Album search results for %s" => [ + 0 => "Hasil pencarian album %s", + ], + "User search results for %s" => [ + 0 => "Hasil pencarian user %s", + ], + "Account" => [ + 0 => "Akun", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Akun terhubung", + ], + "Powered by" => [ + 0 => "Dipersembahkan oleh", + ], + "Invalid image expiration: %s" => [ + 0 => "Kadaluarsa gambar tidak valid: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Sebuah email telah terrkirim ke %s dengan instruksi untuk mengaktifkan email ini", + ], + "Invalid name" => [ + 0 => "Nama tidak valid", + ], + "Invalid website" => [ + 0 => "Website tidak valid", + ], + "Wrong password" => [ + 0 => "Kata sandi salah", + ], + "Use a new password" => [ + 0 => "Gunakan password baru", + ], + "Changes have been saved." => [ + 0 => "Perubahan telah disimpan.", + ], + "Password has been changed" => [ + 0 => "Kata sandi telah diubah", + ], + "Password has been created." => [ + 0 => "Password telah dibuat", + ], + "Wrong Username/Email values" => [ + 0 => "Nilai Nama pengguna/Email salah", + ], + "Settings for %s" => [ + 0 => "Pengaturan untuk %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Anda harus menyetujui persyaratan dan kebijakan privasi", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Anda paling tidak harus berumur %s tahun untuk bisa menggunakan website ini.", + ], + "Create account" => [ + 0 => "Buat akun", + ], + "Upload" => [ + 0 => "Unggah", + ], + "%s's Images" => [ + 0 => "Gambar %s", + ], + "Results for" => [ + 0 => "Hasil untuk", + ], + "Liked by %s" => [ + 0 => "Disukai oleh %s", + ], + "Liked" => [ + 0 => "Disukai", + ], + "Followers" => [ + 0 => "Pengikut", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) album pada %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) pada %w", + ], + "Discovery" => [ + 0 => "Penemuan", + ], + "Random" => [ + 0 => "Acak", + ], + "Advanced search" => [ + 0 => "Pencarian lanjutan", + ], + "Notices (%s)" => [ + 0 => "Pemberitahuan (%s)", + ], + "Notifications" => [ + 0 => "Notifikasi", + ], + "You don't have notifications" => [ + 0 => "Anda tidak memiliki notifikasi", + ], + "My Profile" => [ + 0 => "Profil ku", + ], + "Lights" => [ + 0 => "Lampu", + ], + "Sign out" => [ + 0 => "Keluar", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Kami menerima sebuah permintaan untuk mengganti email dari <a href=\"%u\">%n</a> akun pada %w", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Untuk menyelesaikan langkah anda harus <a href=\"%s\">mengaktivasi email anda</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Atau anda dapat menyalin dan menempel URL ke browser anda: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Jika anda tidak melakukan hal ini abaikan pesan ini.", + ], + "This request was made from IP: %s" => [ + 0 => "Permintaan ini diminta dari IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Kami menerima sebuah permintaan pendaftaran akun %n pada %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Untuk menyelesaikan langkah anda harus <a href=\"%s\">mengaktivasi email anda</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Kami menerima sebuah permintaan untuk mengganti kata sandi untuk <a href=\"%u\">%n</a> akun anda.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Untuk mengganti kata sandi <a href=\"%s\">ikuti tautan ini</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hi %n, Selamat datang ke %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Akun anda kini telah siap anda dapat mengunggah gambar, membuat album tan mengatur privasi dari akun anda sebaik banyak hal yang akan ada temukan.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Ngomong-ngomong, ini merupakan halaman profil anda yang mengagumkan: <a href=\"%u\">%n</a>. Lanjutkan dan sesuaikan, Itu milik anda!.", + ], + "Thank you for joining" => [ + 0 => "Terima kasih telah bergaung", + ], + "This email was sent from %w %u" => [ + 0 => "Email ini dikirm dari %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Tarik dan lepas atau tempel gambar disini untuk mengunggah", + ], + "Select the images to upload" => [ + 0 => "Pilih gambar untuk mengunggah", + ], + "browse from your computer" => [ + 0 => "cari dari komputer anda", + ], + "add image URLs" => [ + 0 => "tambah URL gambar", + ], + "You can also %i or %u." => [ + 0 => "Anda dapat %i atau %u.", + ], + "browse from your device" => [ + 0 => "telusuri dari perangkat Anda", + ], + "take a picture" => [ + 0 => "ambil sebuah gambar", + ], + "You can also %i, %c or %u." => [ + 0 => "Anda juga dapat %i, %c atau %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Ubah atau ukur ulang gambar apapun dengan mengklik pratinjau gambar", + ], + "Edit any image by touching the image preview" => [ + 0 => "Edit gambar apa pun dengan menyentuh pratinjau gambar", + ], + "your computer" => [ + 0 => "komputer anda", + ], + "You can add more images from %i or %u." => [ + 0 => "Anda dapat menambahkan lebih banyak gambar dari %i atau %u.", + ], + "your device" => [ + 0 => "perangkat anda", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Anda dapat menambahkan lebih banyak gambar dari %i, %c atau %u.", + ], + "Uploading %q %o" => [ + 0 => "Mengunggah %q %o", + ], + "complete" => [ + 0 => "selesai", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Antrian sedang diunggah, hal ini harusnya berlangsung beberapa saat untuk selesai.", + ], + "Upload complete" => [ + 0 => "Upload selesai", + ], + "Uploaded content added to %s." => [ + 0 => "Konten terunggah ditambahkan ke %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Anda dapat %c dengan konten yang baru saja terunggah atau %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Anda dapat %c dengan konten yang baru saja terunggah.", + ], + "create a new album" => [ + 0 => "buat sebuah album baru", + ], + "move it to an existing album" => [ + 0 => "pindahkan ke album yang sudah ada", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Anda harus %s atau %l untuk menyimpan konten ini ke akun Anda.", + ], + "create an account" => [ + 0 => "buat sebuah akun", + ], + "sign in" => [ + 0 => "masuk", + ], + "No %s have been uploaded" => [ + 0 => "tidak ada %s yang barus saja terunggah", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Beberapa kesalahan terjadi dan sistem tidak dapat memproses permintaan anda.", + ], + "Category" => [ + 0 => "Kategori", + ], + "Select category" => [ + 0 => "Pilih kategori", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Tandai ini jika upload tidak aman untuk keluarga", + ], + "Not family safe upload" => [ + 0 => "Upload tidak aman untuk keluarga", + ], + "Uploading" => [ + 0 => "mengunggah", + ], + "or" => [ + 0 => "atau", + ], + "cancel" => [ + 0 => "batal", + ], + "cancel remaining" => [ + 0 => "batalkan sisanya", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Catatan: Beberapa gambar tidak dapat diunggah.", + ], + "learn more" => [ + 0 => "pelajari lebih banyak", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Periksa <a data-modal=\"simple\" data-target=\"failed-upload-result\">laporan kesalahan</a> untuk informasi lebih lanjut.", + ], + "Register to get %s" => [ + 0 => "Daftar untuk mendapatkan %s", + ], + "reset" => [ + 0 => "atur ulang", + ], + "close" => [ + 0 => "tutup", + ], + "copy" => [ + 0 => "salin", + ], + "insert" => [ + 0 => "memasukkan", + ], + "Remove" => [ + 0 => "Hapus", + ], + "Title" => [ + 0 => "Judul", + ], + "optional" => [ + 0 => "pilihan", + ], + "Resize image" => [ + 0 => "Ubah ukuran gambar", + ], + "Width" => [ + 0 => "Lebar", + ], + "Height" => [ + 0 => "Tinggi", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Catatan: Gambar animasi GIF tidak bisa di ubah ukuran.", + ], + "Auto delete image" => [ + 0 => "Hapus otomatis gambar", + ], + "Sign up" => [ + 0 => "Mendaftar", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s tidak dapat mengkostumisasi atau mematikan hapus gambar otomatis.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Tandai ini jika gambar tidak aman untuk keluarga", + ], + "Flag as unsafe" => [ + 0 => "Tandai sebagai tidak aman", + ], + "Description" => [ + 0 => "Deskripsi", + ], + "Brief description of this image" => [ + 0 => "Deskripsi singkat gambar ini", + ], + "Add image URLs" => [ + 0 => "Tambahkan URL gambar", + ], + "Add the image URLs here" => [ + 0 => "Tambahkan URL gambar disini", + ], + "Create album" => [ + 0 => "Buat album", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Konten yang diunggah akan dipindahkan ke album yang baru dibuat ini.", + ], + "existing album" => [ + 0 => "album yang ada", + ], + "You can also move the content to an %a." => [ + 0 => "Anda juga dapat memindahkan konten ke %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Anda harus %s atau %l jika ingin mengedit album ini nanti.", + ], + "Move to album" => [ + 0 => "Pindahkan ke album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Pilih sebuah album yang ada untuk memindah konten yang telah diupload Anda juga dapat <a class=\"modal-switch\" data-switch=\"move-new-album\">membuat sebuah album baru</a> dan memindahkan konten kesana.", + ], + "Error report" => [ + 0 => "Laporan error", + ], + "Links" => [ + 0 => "Tautan", + ], + "Viewer links" => [ + 0 => "Penonton tautan", + ], + "HTML Codes" => [ + 0 => "Kode HTML", + ], + "HTML image" => [ + 0 => "Gambar HTML", + ], + "HTML full linked" => [ + 0 => "Tautan penuh HTML", + ], + "HTML medium linked" => [ + 0 => "Tautan medium HTML", + ], + "HTML thumbnail linked" => [ + 0 => "Tautan gambar kecil HTML", + ], + "BBCodes" => [ + 0 => "BBcode", + ], + "BBCode full" => [ + 0 => "BBcode penuh", + ], + "BBCode full linked" => [ + 0 => "Tautan BBcode penuh", + ], + "BBCode medium linked" => [ + 0 => "Tautan BBcode sedang", + ], + "BBCode thumbnail linked" => [ + 0 => "Tautan BBcode gambar kecil", + ], + "Markdown full" => [ + 0 => "Markdown penuh", + ], + "Markdown full linked" => [ + 0 => "Markdown penuh terhubung", + ], + "Markdown medium linked" => [ + 0 => "Markdown sedang terhubung", + ], + "Markdown thumbnail linked" => [ + 0 => "Thumbnail Markdown ditambahkan", + ], + "All these words" => [ + 0 => "Semua kata ini", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Ketik kata-kata penting: tri-warna tikus terrier", + ], + "This exact word or phrase" => [ + 0 => "Kata atau farsa tertentu ini", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Berikan kata yang tepat dalam tanda kutip: \"sejenis tikus\"", + ], + "None of these words" => [ + 0 => "Tak satu pun dari kata-kata ini", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Berikan tanda minus sebelum kata yang tidak anda inginkan: -hewan pengerat -\"Jack Russell\"", + ], + "Storage" => [ + 0 => "Penyimpanan", + ], + "IP address" => [ + 0 => "Alamat IP", + ], + "Album name" => [ + 0 => "Nama Album", + ], + "move to existing album" => [ + 0 => "pindahkan ke album yang ada", + ], + "Album description" => [ + 0 => "Deskripsi Album", + ], + "Brief description of this album" => [ + 0 => "Deskripsi singkat album ini", + ], + "Album privacy" => [ + 0 => "Privasi album", + ], + "Who can view this content" => [ + 0 => "Siapa yang bisa melihat konten ini", + ], + "Private (just me)" => [ + 0 => "Pribadi (hanya saya)", + ], + "Private (anyone with the link)" => [ + 0 => "Pribadi (siapapun yang memiliki tautan)", + ], + "Private (password protected)" => [ + 0 => "Privat (dilindungi kata sandi)", + ], + "Album password" => [ + 0 => "Kata sandi album", + ], + "Name" => [ + 0 => "Nama", + ], + "Category name" => [ + 0 => "Nama kategori", + ], + "URL key" => [ + 0 => "Kunci URL", + ], + "Category URL key" => [ + 0 => "Kunci kategori URL", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "hanya huruf, nomor dan tanda hubung", + ], + "Brief description of this category" => [ + 0 => "Deskripsi singkat dari kategori ini", + ], + "Untitled image" => [ + 0 => "gambar belum berjudul", + ], + "Path" => [ + 0 => "Jalur", + ], + "Local path (absolute)" => [ + 0 => "Jalur lokal (absolut)", + ], + "Directory structure" => [ + 0 => "Struktur direktori", + ], + "Parse top level folders as users (username)" => [ + 0 => "Parse folder tingkat atas sebagai pengguna (nama pengguna)", + ], + "Parse top level folders as albums" => [ + 0 => "Parse folder tingkat atas sebagai album", + ], + "Don't parse folders" => [ + 0 => "Jangan parse folder", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Saat mem-parsing folder tingkat atas sebagai pengguna, folder tingkat kedua akan diurai sebagai album pengguna. Memilah folder tingkat atas saat album menambahkan ini sebagai album tamu.", + ], + "You can use wildcard * characters." => [ + 0 => "Anda dapat menggunakan karakter wildcard *.", + ], + "Expiration date" => [ + 0 => "Tanggal kadaluarsa", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "TTTT-BB-HH JJ-MM-DD", + ], + "Example" => [ + 0 => "Contoh", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Sampai kapan alamat IP ini diblokir? Biarkon kosong jika tidak ada kadaluarsa", + ], + "Message" => [ + 0 => "Pesan", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Pesan teks, HTML atau sebuah URL pengarahan", + ], + "Existing album" => [ + 0 => "Album yang telah ada", + ], + "create new album" => [ + 0 => "buat album baru", + ], + "Storage name" => [ + 0 => "Nama penyimpanan", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Region", + ], + "Storage region" => [ + 0 => "Region Penyimpanan", + ], + "Storage bucket" => [ + 0 => "Keranjang penyimpanan", + ], + "Key" => [ + 0 => "Kunci", + ], + "Storage key" => [ + 0 => "Kunci penyimpanan", + ], + "Secret" => [ + 0 => "Rahasia", + ], + "Storage secret" => [ + 0 => "Rahasia Penyimpanan", + ], + "Private key" => [ + 0 => "Kunci pribadi", + ], + "Google Cloud JSON key" => [ + 0 => "Kunci JSON Google Cloud", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Anda memerlukan sebuah <a %s>layanan akun</a> untuk hal ini.", + ], + "Service name" => [ + 0 => "Nama layanan", + ], + "Identity URL" => [ + 0 => "Identitas URL", + ], + "Username" => [ + 0 => "Nama pengguna", + ], + "Container" => [ + 0 => "Isi", + ], + "Storage container" => [ + 0 => "Isi penyimpanan", + ], + "Tenant id" => [ + 0 => "ID Penyewa", + ], + "Tenant id (account id)" => [ + 0 => "ID Penyewa (id akun)", + ], + "Tenant name" => [ + 0 => "Nama Penyewa", + ], + "Tenant name (account name)" => [ + 0 => "Nama Penyewa (nama akun)", + ], + "Storage endpoint" => [ + 0 => "Titik akhir penyimpanan", + ], + "Server address" => [ + 0 => "Alamat server", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname atau IP server penyimpanan", + ], + "Server path" => [ + 0 => "Jalur server", + ], + "Server login" => [ + 0 => "Login server", + ], + "Server password" => [ + 0 => "Kata sandi Server", + ], + "Local path" => [ + 0 => "Jalur lokal", + ], + "Storage capacity" => [ + 0 => "Ukuran penyimpanan", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Contoh: 20 GB, 1 TB, dll.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Penyimpanan ini akan dinonaktifkan ketika telah menyampai kapasitas ini. Biarkan kosong atau nol untuk tidak membatasi.", + ], + "Storage URL" => [ + 0 => "URL penyimpanan", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Sistem akan memetakan gambar ke penyimnanan ini untuk URL ini.", + ], + "view more" => [ + 0 => "tampilkan lebih banyak", + ], + "Load more" => [ + 0 => "Muat lebih banyak", + ], + "Select all" => [ + 0 => "Pilih Semua", + ], + "Get embed codes" => [ + 0 => "Dapatkan kode sematkan", + ], + "Assign category" => [ + 0 => "Tetapkan kategori", + ], + "Flag as safe" => [ + 0 => "Tandai aman", + ], + "Clear selection" => [ + 0 => "Hapus pilihan", + ], + "Create new album" => [ + 0 => "Buat album baru", + ], + "Share" => [ + 0 => "Bagikan", + ], + "Sign in with another account" => [ + 0 => "Masuk dengan akun lain", + ], + "Continue with %label%" => [ + 0 => "Lanjutkan dengan %label%", + ], + "Home" => [ + 0 => "Beranda", + ], + "There's nothing to show here." => [ + 0 => "Tidak ada yang ditampilkan disini.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Semua gambar yang dipilih akan di tempatkan ke kategori ini.", + ], + "There is no categories." => [ + 0 => "Tidak ada kategori.", + ], + "Confirm flag content as safe" => [ + 0 => "Konfirmasi penandaan konten sebagai aman", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Apakah anda yakin menandai konten ini aman?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Konfirmasi penandaan tidak aman", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Apakah anda yakin menandai konten ini tidak aman?", + ], + "Confirm deletion" => [ + 0 => "Konfirmasi penghapusan", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Apakah anda benar-benar ingin menghapus konten ini? Hal ini tidak dapat dibatalkan.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Apakah anda benar-benar ingin menghapus semua konten yang dipilih? Hal ini tidak dapat dibatalkan", + ], + "Guest" => [ + 0 => "Tamu", + ], + "Keyboard shortcuts" => [ + 0 => "Pintasan keyboard", + ], + "Private album" => [ + 0 => "Album pribadi", + ], + "Password protected" => [ + 0 => "Dilindungi kata sandi", + ], + "Uploaded by guest" => [ + 0 => "Diunggah oleh pengunjung", + ], + "From %s" => [ + 0 => "Dari %s", + ], + "Uploaded by private" => [ + 0 => "Diunggah oleh pribadi", + ], + "by %u" => [ + 0 => "oleh %u", + ], + "That page doesn't exist" => [ + 0 => "Halaman tersebut tidak tersedia.", + ], + "The requested page was not found." => [ + 0 => "Halaman yang diminta tidak ditemukan", + ], + "The user has been deleted" => [ + 0 => "Pengguna telah dihapus", + ], + "Your account is almost ready" => [ + 0 => "Akun anda hampir siap", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Sebuah email ke %s telah dikirim dengan instruksi untuk mengaktifkan akun. Tautan aktivasi hanya berlaku untuk 48 jam. Jika anda tidak menerima instruksi coba periksa sampah atau penyaring spam anda.", + ], + "Resend activation" => [ + 0 => "Kirim ulang aktivasi", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Anda telah berhasil mengubah email aktivasi anda ke %s", + ], + "Go to my profile" => [ + 0 => "Pergi ke profil ku", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Sebuah tautan konfirmasi akan dikirim ke email ini dengan detail untuk mengaktifkan akun anda.", + ], + "Your email address" => [ + 0 => "Alamat email anda", + ], + "Submit" => [ + 0 => "Kirimkan", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Sebuah email dengan instruksi mengatur ulang kata sandi anda telah dikirim ke email yang terdaftar. Jika anda tidak menerima instruksi cobalah periksa sampah atau penyaring spam.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Email sebelumnya telah dikirim dengan instruksi untuk mengubah kata sandi anda. Jika anda tidak menerima instruksi cobalah periksa sampah atau penyaring spam.", + ], + "Resend instructions" => [ + 0 => "Kirim ulang instruksi", + ], + "Username or Email address" => [ + 0 => "Username atau alamat email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Kata sandi anda telah diubah. Kini anda dapat mencoba masuk dengan kata sandi baru anda.", + ], + "Login now" => [ + 0 => "Masuk sekarang", + ], + "Enter your new password" => [ + 0 => "Masukkan kata sandi baru anda", + ], + "%d characters min" => [ + 0 => "Min. %d karakter", + ], + "Password strength" => [ + 0 => "Kekuatan kata sandi", + ], + "Re-enter your new password" => [ + 0 => "Masukkan kembali kata sandi baru anda", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Sebuah email ke %s telah dikirimkan dengan instruksi untuk mengaktifkan akun. Jika anda tidak menerima instruksi cobalah periksa sampah atau penyaring spam anda.", + ], + "This content is private" => [ + 0 => "Ini konten pribadi", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Apakah anda benar-benar ingin menghapus album ini dan semua gambarnya? Hal ini tidak dapat dibatalkan", + ], + "Upload to album" => [ + 0 => "Unggah ke album", + ], + "You like this" => [ + 0 => "Anda menyukai ini", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Harap baca dan patuhi kondisi berikut ini sebelum anda melanjutkan:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Situs web ini berisi informasi, tautan, dan gambar materi yang eksplisit secara seksual. Jika Anda berusia di bawah %s, jika materi tersebut menyinggung Anda atau jika ilegal melihat materi tersebut di komunitas Anda, jangan lanjutkan.\n\nSaya setidaknya %s tahun dan saya percaya bahwa sebagai orang dewasa itu adalah hak saya yang tidak dapat dicabut untuk menerima / melihat materi yang eksplisit secara seksual. Saya ingin menerima / melihat materi yang eksplisit secara seksual.\n\nSaya percaya bahwa tindakan seksual antara orang dewasa yang menyetujui tidak menyinggung atau tidak senonoh. Melihat, membaca, dan mengunduh materi yang eksplisit secara seksual tidak melanggar standar komunitas saya, kota, kota, negara bagian atau negara.\n\nMateri yang eksplisit secara seksual yang saya lihat adalah untuk penggunaan pribadi saya dan saya tidak akan mengekspos anak di bawah umur untuk materi tersebut.\n\nSaya bertanggung jawab penuh atas segala pengungkapan palsu atau konsekuensi hukum dari melihat, membaca, atau mengunduh materi apa pun di situs ini. Lebih lanjut, situs web ini atau afiliasinya tidak akan bertanggung jawab atas konsekuensi hukum yang timbul dari penipuan yang masuk ke dalam atau penggunaan situs web ini.\n\nLayar persetujuan ini merupakan perjanjian hukum antara situs web ini dan Anda dan / atau bisnis di mana Anda memiliki kepentingan hukum atau kepentingan yang adil. Jika ada bagian dari perjanjian ini yang dianggap tidak dapat diberlakukan oleh pengadilan dengan yurisdiksi yang kompeten, maka tidak akan mempengaruhi keberlakuan bagian-bagian lain dari perjanjian.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Dengan mengklik di \"Saya Setuju\" nda menyatakan bahwa Anda telah membaca dan memahami semua kondisi yang disebutkan di atas.", + ], + "I Agree" => [ + 0 => "Saya Setuju", + ], + "documentation" => [ + 0 => "dokumentasi", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "IP penghubung ditentukan menggunakan variabel server %var%. Jika IP yang terdeteksi tidak cocok dengan Anda, itu berarti bahwa server web Anda berada di bawah proxy dan Anda perlu mengubah server Anda untuk mengatur IP penghubung yang sebenarnya.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Untuk Nginx, Anda harus menggunakan %nginx%. Untuk Apache, %apache%.", + ], + "Disk used" => [ + 0 => "Ruang disk digunakan", + ], + "Queued" => [ + 0 => "Antri", + ], + "Working" => [ + 0 => "Kerja", + ], + "Paused" => [ + 0 => "Dijeda", + ], + "Canceled" => [ + 0 => "Dibatalkan", + ], + "Completed" => [ + 0 => "Selesai", + ], + "Top level folders as %s" => [ + 0 => "Folder tingkat atas sebagai %s", + ], + "Actions" => [ + 0 => "Tindakan", + ], + "Process" => [ + 0 => "Proses", + ], + "Pause" => [ + 0 => "Jeda", + ], + "Cancel" => [ + 0 => "Membatalkan", + ], + "Process log" => [ + 0 => "Log proses", + ], + "Errors" => [ + 0 => "Kesalahan", + ], + "Reset" => [ + 0 => "Setel ulang", + ], + "Resume" => [ + 0 => "Lanjut", + ], + "Status" => [ + 0 => "Status", + ], + "Add user" => [ + 0 => "Tambahkan pengguna", + ], + "Role" => [ + 0 => "Peran", + ], + "Manager" => [ + 0 => "Pengelola", + ], + "Administrator" => [ + 0 => "Administrator", + ], + "Email address" => [ + 0 => "Alamat surel", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Pengaturan ini akan selalu dinonaktifkan ketika menggunakan mode website pribadi.", + ], + "Add category" => [ + 0 => "Tambah kategori", + ], + "Add IP ban" => [ + 0 => "Tambah IP di blokir", + ], + "Add storage" => [ + 0 => "Tambahkan penyimpanan", + ], + "Return to pages" => [ + 0 => "Kembali ke halaman", + ], + "Website name" => [ + 0 => "Nama website", + ], + "Website doctitle" => [ + 0 => "Doctitle website", + ], + "Website description" => [ + 0 => "Deskripsi website", + ], + "Automatic" => [ + 0 => "Otomatis", + ], + "Forced" => [ + 0 => "Dipaksa", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Ini hanya mengontrol protokol yang digunakan dalam URL, hal tersebut tidak akan mengubah situs web Anda menjadi situs web HTTPS yang valid kecuali server Anda dikonfigurasi untuk mendukung dan menggunakan HTTPS.", + ], + "Default time zone" => [ + 0 => "Zona waktu default", + ], + "Select region" => [ + 0 => "Pilih region", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Bolehkan pencarian gambar, album dan pengguna berdasarkan permintaan pencarian yang diberikan.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Memungkinkan untuk menelusuri gambar yang diunggah publik. Ini juga memungkinkan kategori.", + ], + "guests" => [ + 0 => "tamu", + ], + "Enables explore for guests." => [ + 0 => "Memungkinkan penjelajahan untuk para tamu.", + ], + "Enables to browse images randomly." => [ + 0 => "Aktifkan mencari gambar secara acak.", + ], + "Likes" => [ + 0 => "Suka", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Memungkinkan pengguna menyukai konten dan mengisi daftar \"Paling disukai\".", + ], + "Followers allows users to follow each other." => [ + 0 => "Pengikut membolehkan pengguna untuk saling mengikuti.", + ], + "Website mode" => [ + 0 => "Mode website", + ], + "Community" => [ + 0 => "Komunitas", + ], + "Personal" => [ + 0 => "perseorangan", + ], + "You can switch the website mode anytime." => [ + 0 => "Ada dapat mengubah mode website kapanpun.", + ], + "User ID" => [ + 0 => "ID pengguna", + ], + "Your user id is: %s" => [ + 0 => "Id pengguna anda adalah: %s", + ], + "Personal mode routing" => [ + 0 => "Pengarahan mode personal", + ], + "Website privacy mode" => [ + 0 => "Mode privasi website", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Mode pribadi akan menjadikan website hanya tersedia untuk pengguna terdaftar.", + ], + "Content privacy mode" => [ + 0 => "Mode privasi konten", + ], + "Default" => [ + 0 => "Default", + ], + "Force private (self)" => [ + 0 => "Paksa pribadi (sendiri)", + ], + "Force private (anyone with the link)" => [ + 0 => "Paksa pribadi (semua orang dengan tautan)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Mode privasi dipaksakan akan mengembalikan privasi pengguna terpilih.", + ], + "Page title" => [ + 0 => "Judul halaman", + ], + "Page status" => [ + 0 => "Status halaman", + ], + "Active page" => [ + 0 => "Halaman aktif", + ], + "Inactive page (%s)" => [ + 0 => "Halaman tidak aktif (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Hanya halaman aktif yang dapat diakses.", + ], + "Type" => [ + 0 => "Tipe", + ], + "Terms of service" => [ + 0 => "Ketentuan layanan", + ], + "Privacy" => [ + 0 => "Privasi", + ], + "Contact" => [ + 0 => "Kontak", + ], + "Extra page" => [ + 0 => "Halaman tambahan", + ], + "Internal page type" => [ + 0 => "Jenis halaman internal", + ], + "Page visibility" => [ + 0 => "Keterlihatan halaman", + ], + "Visible page" => [ + 0 => "Halaman terlihat", + ], + "Hidden page" => [ + 0 => "Halaman tersembunyi", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Halaman tersembunyi tidak akan ditampilkan di menu sistem, tetapi semua orang dapat mengakses nya melalui tautan.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Hanya alfanumerik, tanda hubung dan garis miring", + ], + "File path" => [ + 0 => "Jalur berkas", + ], + "A %f file relative to %s" => [ + 0 => "Sebuah berkas %f berhubungan dengan %s", + ], + "Meta keywords" => [ + 0 => "Kata kunci meta", + ], + "Meta description" => [ + 0 => "Deskripsi meta", + ], + "Source code" => [ + 0 => "Kode sumber", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Tidak ada izin menulis di jalur %s anda perlu menambahkan berkas ini menggunakan editor eksternal.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Tidak ada izin menulis di jalur %s anda perlu mengedit konten dari berkas ini menggunakan editor eksternal.", + ], + "Taken from: %s" => [ + 0 => "Diambil dari: %s", + ], + "Link URL" => [ + 0 => "Tautan URL", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Pilih %s untuk membuka halaman atau tautan di jendela baru.", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Hanya alfanumerik, tanda hubung dan spasi", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "Atribut HTML &lt;a&gt; %s", + ], + "Link icon" => [ + 0 => "Ikon tautan", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Periksa <a %s>referensi ikon</a> untuk daftar lengkap ikon yang didukung.", + ], + "Sort order display" => [ + 0 => "Urutan tampilan", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Apakah anda yakin ingin menghapus halaman dengan ID %s? Hal ini tidak dapat dibatalkan.", + ], + "Enabled image formats" => [ + 0 => "Format gambar yang diaktifkan", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "format gambar yang tidak diperiksa tidak akan diperbolehkan untuk diunggah.", + ], + "Enable uploads" => [ + 0 => "Aktifkan upload", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Aktifkan ini jika anda ingin memperbolehkan upload gambar. Pengaturan ini tidak berdampak pada administrator", + ], + "route" => [ + 0 => "rute", + ], + "Guest uploads" => [ + 0 => "Unggahan pengunjung", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Aktifkan ini jika anda mengizinkan pengguna tidak terdaftar menunggah.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Aktifkan kode semat (pengunggah)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Aktifkan ini jika anda ingin menampilkan kode sematkan ketika unggahan akan selesai.", + ], + "Upload threads" => [ + 0 => "Rangkaian unduhan", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Jumlah rangkaian unggahan bersasamaan (unggahan pararel)", + ], + "Redirect on single upload" => [ + 0 => "Arahkan pada unggahan tunggal", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Aktifkan ini jika anda ingin mengarahkan kembali ke halaman gambar pada unggahan tunggal.", + ], + "Enable duplicate uploads" => [ + 0 => "Nyalakan unggahan duplikat", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Nyalakan ini jika anda ingin memperbolehkan unggahan duplikat dari alamat IP yang sama dalam 24 Jam. Pengaturan ini tidak mempengaruhi administrator.", + ], + "Enable expirable uploads" => [ + 0 => "Aktifkan upload berkadaluarsa", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Nyalakan ini jika anda ingin memperbolehkan unggahan dengan sebuah opsi hapus otomatis.", + ], + "Auto delete guest uploads" => [ + 0 => "Hapus otomatis unggahan pengunjung", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Nyalakan ini jika anda ingin memaksa unggahan pengunjung untuk dihapus otomatis setelah waktu tertentu.", + ], + "Maximum image size" => [ + 0 => "Ukuran maksimum gambar", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Gambar lebih besar dari ukuran ini akan secara otomatis diturunkan ukurannya. Gunakan Nol (0) untuk tidak menetapkan batas.", + ], + "Image Exif data" => [ + 0 => "Data Exif gambar", + ], + "Keep" => [ + 0 => "Biarkan", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Pilih pengaturan default untuk gambar <a %s>Exif data</a> pada ungguhan.", + ], + "Image Exif data (user setting)" => [ + 0 => "Data Exif gambar (pengaturan pengguna)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Aktifkan ini jika anda ingin membolehkan setiap pengguna mengatur bagaimana data Exif gambar akan ditangani.", + ], + "Maximum upload file size" => [ + 0 => "Ukuran unggah berkas maksimum", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Ukuran maksumum yang diperbolehkan serever adalah %s. Ukuran ini dibatasi oleh %u dan %p (nilai %f).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Sama seperti \"%s\" tetapi untuk tamu.", + ], + "Image path" => [ + 0 => "Jalur gambar", + ], + "Relative to Chevereto root" => [ + 0 => "Berhubungan ke akar Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Dimana harus menyimpan gambar? Tergantung pada akar Chevereto.", + ], + "Storage mode" => [ + 0 => "Mode penyimpanan", + ], + "Datefolders" => [ + 0 => "Tanggalfolder", + ], + "Direct" => [ + 0 => "Langsung", + ], + "Datefolders creates %s structure" => [ + 0 => "Tanggalfolder membuat struktur %s", + ], + "File naming method" => [ + 0 => "Metode penamaan berkas", + ], + "Original" => [ + 0 => "Asli", + ], + "Mix original + random" => [ + 0 => "Campur asli + acak", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Asli\" akan mencoba menjaga nama sumber gambar sedangkan \"Acak\" akan menghasilkan sebuah nama acak. \"ID\" akan menamakan gambar seperti halnya ID gambar.", + ], + "Thumb size" => [ + 0 => "Ukuran Thumb", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Thumbnails akan ditentukan menurut ukuran ini.", + ], + "Medium image fixed dimension" => [ + 0 => "Dimensi gambar tetap sedang", + ], + "Width or height will be automatically calculated." => [ + 0 => "Lebar atau tinggi akan secara otomatis terhitung.", + ], + "Watermarks" => [ + 0 => "Tanda air", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Aktifkan ini untuk menempatkan sebuah logo atau apapun yang anda inginkan di upload gambar.", + ], + "Enable watermark on admin uploads" => [ + 0 => "Aktifkan tanda air di unggahan admin", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Aktifkan tanda air di unggahan gambar GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Ukuran gambar minimum dibutuhkan untuk menerapkan tanda air", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Gambar lebih kecil dari ini tidak akan diberikan tanda air. Gunakan nol (0) agar jangan menetapkan batas minimum ukuran gambar.", + ], + "Watermark image" => [ + 0 => "Gambar stempel", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Anda akan mendapatkan hasil terbaik dengan logo polos dengan bayangan jatuh. Anda dapat menggunakan sebuah gambar besar jika ukuran berkas tidak begitu besar (disarankan maks. adalah 16KB). Harus sebuah PNG.", + ], + "Watermark position" => [ + 0 => "Posisi stempel", + ], + "left top" => [ + 0 => "kiri atas", + ], + "left center" => [ + 0 => "kiri ke tengah", + ], + "left bottom" => [ + 0 => "kiri bawah", + ], + "center top" => [ + 0 => "tengah atas", + ], + "center center" => [ + 0 => "pas tengah", + ], + "center bottom" => [ + 0 => "tengah bawah", + ], + "right top" => [ + 0 => "kanan atas", + ], + "right center" => [ + 0 => "kanan tengah", + ], + "right bottom" => [ + 0 => "kanan bawah", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Penyesuaian posisi stempel. Pertama mendatar selanjutnya tegak lurus.", + ], + "Watermark percentage" => [ + 0 => "Presentasi Tanda air", + ], + "Watermark margin" => [ + 0 => "Jarak stempel", + ], + "Watermark opacity" => [ + 0 => "Kegelapan tanda air", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "kegelapan tanda air di gambar akhir yang diberi tanda air. Nilai antara 0 sampai 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Dasbor > Pengaturan > Situs Web", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Kategori tidak akan bekerja ketika fitur penjelajah dimatikan. Untuk mengubah pengaturan ini pergilah ke %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Apakah anda ingin menghapus kategori %s? Hal ini tidak dapat dibatalkan.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Catatan: Menghapus sebuah kategori tidak berarti menghapus gambar yang memiliki kategori tersebut.", + ], + "Edit category" => [ + 0 => "Ubah kategori", + ], + "Expires" => [ + 0 => "Kadaluarsa", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Apakah anda yakin ingin menghapus larangan terhadap IP %s? Hal ini tidak dapat dibatalkan.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Alamat IP yang diblokir akan melarang penggunaan ke seluruh website.", + ], + "Edit IP ban" => [ + 0 => "Ubah larangan IP", + ], + "Enable signups" => [ + 0 => "Aktifkan mendaftar", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Aktifkan ini jika anda ingin membolehkan pengguna untuk mendaftar.", + ], + "Enable user content delete" => [ + 0 => "Aktifkan penghapusan konten pengguna", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Aktifkan ini jika Anda ingin mengizinkan pengguna untuk menghapus konten mereka sendiri. Pengaturan ini tidak memengaruhi administrator.", + ], + "Minimum age required" => [ + 0 => "Usia minimum dibutuhkan", + ], + "Empty" => [ + 0 => "Kosong", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Biarkan kosong jika anda tidak memerlukan usia minimum untuk bisa menggunakan website.", + ], + "Notify on user signup" => [ + 0 => "Beri tahu saat mendaftar", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Aktifkan ini jika Anda ingin mendapatkan pemberitahuan email untuk setiap pendaftaran pengguna baru.", + ], + "Username routing" => [ + 0 => "Perutean nama pengguna", + ], + "Require email confirmation" => [ + 0 => "Konfirmasi email dibutuhkan", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Aktifkan ini jika pengguna harus memvalidasi alamat email mereka untuk mendaftar.", + ], + "Require email for social signup" => [ + 0 => "Memerlukan email untuk pendaftaran sosial", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Aktifkan ini jika pengguna menggunakan jaringan sosial untuk mendaftar harus menyertakan sebuah alamat email.", + ], + "User avatar max. filesize" => [ + 0 => "Avatar pengguna maks. ukuran file", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "ukuran berkas maks. yang diperbolehkan untuk gambar avatar pengguna. (Maks. yang diperbolehkan server adalah %s)", + ], + "User background max. filesize" => [ + 0 => "ukuran berkas maks. latar belakang pengguna", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Menampilkan sebuah layar persetujuan sebelum mengakses website. Sangat berguna untuk website konten dewasa dimana anak dibawah umur harusnya tidak diperbolehkan.", + ], + "Enable consent screen" => [ + 0 => "Aktifkan layar persetujuan", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Blok unggahan gambar dari IP jika sistem memperhatikan perilaku membanjiri berdasarkan periode jumlah unggahan per detik. Pengaturan ini tidak berdampak pada administrator.", + ], + "Notify to email" => [ + 0 => "Beritahu lewat surel", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Jika diaktifkan sistem akan mengirim sebuah email pada insiden pembanjiran.", + ], + "Minute limit" => [ + 0 => "Batas menitan", + ], + "Hourly limit" => [ + 0 => "Batas jam-jam an", + ], + "Daily limit" => [ + 0 => "Batas harian", + ], + "Weekly limit" => [ + 0 => "Batas mingguan", + ], + "Monthly limit" => [ + 0 => "Batas bulanan", + ], + "Show not safe content in listings" => [ + 0 => "Perlihatkan isi yang tidak aman", + ], + "Blur NSFW content in listings" => [ + 0 => "Kaburkan konten NSFW dalam daftar", + ], + "Show banners in not safe content" => [ + 0 => "Tampilkan spanduk dalam konten yang tidak aman", + ], + "Show not safe content in random mode" => [ + 0 => "Perlihatkan konten tidak aman di mode acak", + ], + "List items per page" => [ + 0 => "Daftar item per halaman", + ], + "Classic pagination" => [ + 0 => "Penomoran halaman klasik", + ], + "What pagination method should be used." => [ + 0 => "Metode penomoran apa yang harusnya digunakan.", + ], + "Listing viewer" => [ + 0 => "Penampil daftar", + ], + "Image listing size" => [ + 0 => "Ukuran pendaftaran gambar", + ], + "Fixed" => [ + 0 => "Tetap", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "kedua metode menggunakan lebar tetap tapi metode tidak pasti menggunakan tinggi otomatis.", + ], + "explore" => [ + 0 => "jelajahi", + ], + "Listing columns number" => [ + 0 => "Jumlah kolom pendaftaran", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Disini anda dapat mengatur berapa banyak kolom yang digunakan berdasarkan masing-masing target perangkat.", + ], + "Phone" => [ + 0 => "Selular", + ], + "Phablet" => [ + 0 => "Phapblet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Desktop", + ], + "Put your themes in the %s folder" => [ + 0 => "Tempatkan tema anda di folder %s", + ], + "Tone" => [ + 0 => "Suasana", + ], + "Light" => [ + 0 => "Menyala", + ], + "Dark" => [ + 0 => "Gelap", + ], + "Main color" => [ + 0 => "Warna utama", + ], + "Hexadecimal color value" => [ + 0 => "Nilai warna Heksadesimal", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Gunakan ini untuk mengatur warna utama tema. Nila harus dalam <a href=\"%s\" target=\"_blank\">format hex</a>.", + ], + "Top bar button color" => [ + 0 => "Warna tombol bilah atas", + ], + "Blue" => [ + 0 => "Biru", + ], + "Green" => [ + 0 => "Hijau", + ], + "Orange" => [ + 0 => "Oranye", + ], + "Red" => [ + 0 => "Merah", + ], + "Grey" => [ + 0 => "Abu-abu", + ], + "Black" => [ + 0 => "Hitam", + ], + "White" => [ + 0 => "Putih", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Warna untuk tombol bilah atas seperti halnya tombol \"Buat akun\".", + ], + "Enable vector logo" => [ + 0 => "Aktifkan logo vektor", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Aktifkan logo vektor untuk logo berkualitas tinggi di perangkat dengan kepadatan piksel yang tinggi.", + ], + "Vector logo image" => [ + 0 => "Gambar logo vektor", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Versi vektor atau logo website dalam format SVG.", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Versi bitmap atau logo situs web anda. Disarankan berformat PNG.", + ], + "Logo height" => [ + 0 => "Tinggi logo", + ], + "No value" => [ + 0 => "Tidak ada nilai", + ], + "Use this to set the logo height if needed." => [ + 0 => "Gunakan ini untuk mengatur ketinggian logo jika diperlukan.", + ], + "Favicon image" => [ + 0 => "Gambar favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Gambar favicon. Gambar harus memiliki lebar dan tinggi yang sama.", + ], + "Image load max. filesize" => [ + 0 => "Maksimal ukuran file untuk memuat gambar.", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Gambar lebih besar dari ukuran ini akan ditampilkan sebagai sebuah tombol untuk ditampilkan dalam resolusi penuh.", + ], + "Enable download button" => [ + 0 => "Aktifkan tombol unduh", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Aktifkan ini jika anda ingin menampilkan gambar dengan tombol unduh.", + ], + "Enable right click on image" => [ + 0 => "Aktifkan klik kanan pada gambar", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Aktifkan ini jika anda ingin membolehkan klik kanan pada halaman penampil gambar.", + ], + "Enable show Exif data" => [ + 0 => "Aktifkan untuk menampilkan data Exif", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Aktifkan ini jika anda ingin menampilkan data Exif gambar.", + ], + "Enable social share" => [ + 0 => "Aktifkan berbagi sosial", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Aktifkan ini jika anda ingin menampilkan tombol jaringan sosial untuk membagikan konten.", + ], + "Enable embed codes (content)" => [ + 0 => "Aktifkan kode sematkan (konten)", + ], + "Everybody" => [ + 0 => "Semua orang", + ], + "Users only" => [ + 0 => "Hanya pengguna", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Aktifkan ini jika anda ingin menampilkan kode sematkan untuk konten.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Kotak centang konten tidak aman di pengunggah", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Nyalakan ini jika anda ingin menampilkan sebuah kotak centang untuk mengindikasikan unggahan konten tidak aman.", + ], + "Custom CSS code" => [ + 0 => "Kode CSS kustom", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Letakkan kode CSS kustom disini. Ini akan ditempatkan sebagai <style> tepat sebelum tag penutup </head>.", + ], + "Custom JS code" => [ + 0 => "Kode JS kustom", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Letakkan kode JS kustom disini. Ini akan ditempatkan sebagai <style> tepat sebelum tag penutup </head>.", + ], + "Style" => [ + 0 => "Gaya", + ], + "Landing page" => [ + 0 => "Halaman arahan", + ], + "Split landing + images" => [ + 0 => "Halaman arahan + gambar", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Pilih gaya halaman muka. Untuk menyesuaikannya lanjut ubah app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Gambar sampul", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Apakah anda yakin ingin menghapus gambar ini? Hal ini tidak dapat dimundurkan.", + ], + "Delete image" => [ + 0 => "Menghapus gambar", + ], + "Add new cover image" => [ + 0 => "Tambah sebuah gambar sampul baru", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "ini akan ditambahkan kedalam tag halaman depan %s. Biarkan kosong untuk mengunakan konten default.", + ], + "Paragraph" => [ + 0 => "Paragraf", + ], + "Call to action button color" => [ + 0 => "Warna tombol ajakan bertindak", + ], + "Color of the homepage call to action button." => [ + 0 => "Warna tombol ajakan bertindak beranda.", + ], + "Call to action outline style button" => [ + 0 => "Tombol gaya garis besar ajakan untuk bertindak", + ], + "Call to action functionality" => [ + 0 => "Fungsi ajakan bertindak", + ], + "Open URL" => [ + 0 => "Buka URL", + ], + "Call to action URL" => [ + 0 => "URL ajakan untuk bertindak", + ], + "Enter an absolute or relative URL" => [ + 0 => "Masukkan sebuah URL absolut atau relatif", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Sebuah URL relatif seperti %r akan dipetakan ke %l", + ], + "Call to action HTML" => [ + 0 => "Ajakan untuk bertindak HTML", + ], + "User IDs" => [ + 0 => "ID Pengguna", + ], + "Automatic updates check" => [ + 0 => "Pemeriksaan pembaruan otomatis", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "ketika diaktifkan sistem akan secara otomatis memeriksa pembaruan yang ada.", + ], + "Display available updates notification" => [ + 0 => "Tampilkan notifikasi pembaruan yang tersedia", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Aktifkan untuk menampilkan sebuah pemberitahuan memperingatkan anda tentang pembaruan sistem yang ada.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URL", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Aktifkan ini jika Anda ingin menggunakan URL SEO %s.", + ], + "Maintenance" => [ + 0 => "Perawatan", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Ketika anda mengaktifkan website akan muncul sebuah pesan perawatan. Pengaturan ini tidak berpengaruh terhadap administrator.", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "PHP error reporting" => [ + 0 => "Pelaporan kesalahan PHP", + ], + "Debug level" => [ + 0 => "Tingkat debug", + ], + "None" => [ + 0 => "Tidaka ada", + ], + "Error log" => [ + 0 => "log kesalahan", + ], + "Print errors without error log" => [ + 0 => "Cetak kesalahan tanpa log kesalahan", + ], + "Print and log errors" => [ + 0 => "Cetak dan log kesalahan", + ], + "Image routing" => [ + 0 => "Pengarahan Gambar", + ], + "Routing for %s" => [ + 0 => "Pengarahan untuk %s", + ], + "Album routing" => [ + 0 => "Pengarahan Album", + ], + "Hostname" => [ + 0 => "Nama host", + ], + "This setting may be overridden by %s." => [ + 0 => "Pengaturan ini mungkin ditimpa oleh %s.", + ], + "Language subdomains" => [ + 0 => "Subdomain bahasa\n", + ], + "languages" => [ + 0 => "bahasa", + ], + "Enable to use %s for %t." => [ + 0 => "Aktifkan untuk menggunakan %s untuk %t.", + ], + "Username subdomains" => [ + 0 => "Subdomain nama pengguna", + ], + "user profiles" => [ + 0 => "Profil pengguna", + ], + "Custom language strings" => [ + 0 => "string bahasa kustom", + ], + "Default language" => [ + 0 => "Bahasa default", + ], + "Default base language to use." => [ + 0 => "Bahasa dasar yang ingin digunakan.", + ], + "Auto language" => [ + 0 => "Bahasa otomatis", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Aktifkan jika anda ingin secara otomatis mendeteksi dan mengatur bahasa yang tepat untuk setiap pengguna.", + ], + "Language chooser" => [ + 0 => "Pemilih bahasa", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Mengatifkan ini jika anda ingin memperbolehkan pemilihan bahasa.", + ], + "Enabled languages" => [ + 0 => "Bahasa diaktifkan", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Bahasa yang tidak dicentang tidak akan digunakan di website anda.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Alihkan ini untuk mengaktifkan atau menonaktifkan HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Alihkan ini jika ingin mengaktifkan atau menonaktifkan penyimpanan ini", + ], + "Quota" => [ + 0 => "Kuota", + ], + "Active" => [ + 0 => "Aktif", + ], + "Storage method" => [ + 0 => "Metode penyimpanan", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Penyimpanan lokal akan digunakan secara default atau ketika tidak ada penyimpanan eksternal yang aktif.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Jika anda memerlukan bantuan periksa <a %s>dokumentasi penyimpanan</a>.", + ], + "Edit storage" => [ + 0 => "Edit penyimpanan", + ], + "From name" => [ + 0 => "Nama dari", + ], + "Sender name for emails sent to users." => [ + 0 => "Nama pengirim untuk email yang dikirim kepada pengguna.", + ], + "From email address" => [ + 0 => "Alamat email pengirim", + ], + "Sender email for emails sent to users." => [ + 0 => "Alamat pengirim untuk email yang dikirim ke user.", + ], + "Incoming email address" => [ + 0 => "Alamat email masuk", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Penerima untuk halaman kontak dan notifikasi sistem.", + ], + "Email mode" => [ + 0 => "Mode email", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Bagaimana cara pengiriman email? SMTP direkomendasikan.", + ], + "SMTP server and port" => [ + 0 => "Server dan port SMTP", + ], + "SMTP server" => [ + 0 => "Server SMTP", + ], + "SMTP username" => [ + 0 => "Username SMTP", + ], + "SMTP password" => [ + 0 => "Password SMTP", + ], + "SMTP security" => [ + 0 => "Keamanan SMTP", + ], + "Unsecured" => [ + 0 => "Tidak aman", + ], + "Decode ID" => [ + 0 => "ID decode", + ], + "Encode ID" => [ + 0 => "ID Encode", + ], + "Send test email" => [ + 0 => "Kirim email percobaan", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Gunakan ini untuk memeriksa apakan email sedang dikirimkan. Kami merekomendasikan anda untuk menggunakan %s.", + ], + "Export a user" => [ + 0 => "Ekspor pengguna", + ], + "Export user" => [ + 0 => "Ekspor pengguna", + ], + "Storage id" => [ + 0 => "Id penyimpanan", + ], + "Regenerate" => [ + 0 => "Diperbaiki", + ], + "Source storage id" => [ + 0 => "ID penyimpanan sumber", + ], + "Target storage id" => [ + 0 => "Target id penyimpanan", + ], + "Migrate" => [ + 0 => "Migrasi", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Anda memerlukan sebuah <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> untuk hal ini.", + ], + "Facebook app id" => [ + 0 => "id app Facebook", + ], + "Facebook app secret" => [ + 0 => "Rahasia app Facebook", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Anda membutuhkan sebuah <a href=\"https://apps.twitter.com\" target=\"_blank\">Apliksi Twitter</a> untuk hal ini.", + ], + "Twitter API key" => [ + 0 => "Kunci API Twitter", + ], + "Twitter API secret" => [ + 0 => "API rahasia Twitter", + ], + "Twitter account" => [ + 0 => "Akun Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Anda membutuhkan sebuah<a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> untuk hal ini.", + ], + "Google client id" => [ + 0 => "Id klien Google", + ], + "Google client secret" => [ + 0 => "Rahasia klien Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Anda membutuhkan sebuah <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> untuk hal ini.", + ], + "VK client id" => [ + 0 => "id klien VK", + ], + "VK client secret" => [ + 0 => "rahasia klien VK", + ], + "%s spam protection" => [ + 0 => "%s perlindungan spam", + ], + "user generated content" => [ + 0 => "konten yang dibuat pengguna", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Aktifkan ini untuk menggunakan %l untuk memblokir spam di %c.", + ], + "%s API key" => [ + 0 => "Kunci %s API", + ], + "user signup" => [ + 0 => "pendaftaran pengguna", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Anda memerlukan sebuah <a href=\"%s\" target=\"_blank\"> kunci reCAPTCHA</a> untuk hal ini.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Harap dicatat bahwa setiap versi reCAPTCHA memerlukan set kunci sendiri. Jangan lupa untuk memperbarui kunci jika Anda mengubah versi.", + ], + "%s site key" => [ + 0 => "Kunci situs %s", + ], + "%s secret key" => [ + 0 => "Kunci rahasia %s", + ], + "reCAPTCHA threshold" => [ + 0 => "batas reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Berapa kali percobaan yang diperbolehkan untuk meminta reCAPTCHA? Gunakan Nol (0) untuk selalu memperlihatkan reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Paksa %s di halaman kontak", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Aktifkan ini untuk selalu menampilkan %s di halaman kontak.", + ], + "Comments API" => [ + 0 => "API Komentar", + ], + "Disqus API works with %s." => [ + 0 => "API Disqus bekerja dengan %s", + ], + "Disqus shortname" => [ + 0 => "Nama pendek Disqus", + ], + "%s public key" => [ + 0 => "Kunci publik %s", + ], + "Comment code" => [ + 0 => "Kode komentar", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook atau apa pun yang Anda inginkan. Ini akan digunakan dalam tampilan gambar.", + ], + "Analytics code" => [ + 0 => "Kode analitik", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics atau apa pun yang Anda inginkan. Ini akan ditambahkan dengan tema footer.", + ], + "API v1 key" => [ + 0 => "Kunci API V1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Gunakan kunci ini ketika menggunakan <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Rute plugin", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Aktifkan ini untuk menampilkan instruksi plugin di %u. Tautan ke petunjuk ini akan ditambahkan ke menu %s. Pengaturan ini tidak mempengaruhi administrator.", + ], + "Cookie law compliance" => [ + 0 => "Kesesuaian aturan kuki", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Aktifkan ini untuk menampilkan sebuah pesan yang sesuai dengan persyaratan hukum kuki Uni Eropa. Catatan: Anda hanya memerlukan hal ini jika website anda tersimpan di Uni Eropa dan jika anda menambahkan kuki pelacakan.", + ], + "Save changes" => [ + 0 => "Simpan perubahan", + ], + "Check the errors to proceed." => [ + 0 => "Periksa kesalahan untuk meneruskan proses.", + ], + "Play GIF" => [ + 0 => "Mainkan GIF", + ], + "Load full resolution" => [ + 0 => "Muat resolusi penuh", + ], + "Added to %a and categorized in %c" => [ + 0 => "Ditambahkan ke %a dan dikategorikan kedalam %c", + ], + "Added to %s" => [ + 0 => "Ditambahkan ke %s", + ], + "Uploaded to %s" => [ + 0 => "Diunggah ke %s", + ], + "Uploaded %s" => [ + 0 => "Terunggah %s", + ], + "Less Exif data" => [ + 0 => "Lihat sedikit data Exif", + ], + "More Exif data" => [ + 0 => "Lihat banyak data Exif", + ], + "Album ID" => [ + 0 => "ID album", + ], + "Upload and share your images." => [ + 0 => "Unggah dan bagikan gambar anda.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Tarik dan taruh dimanapun dan mulai unggah gambar anda sekarang. %s tersisa. Tautan gambar langsung, BBCode and sketsa HTML.", + ], + "Start uploading" => [ + 0 => "Mulai mengunggah", + ], + "Sign up to unlock all the features" => [ + 0 => "Daftarlah untuk mendapatkan semua kelebihan yang ada", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Mengelola konten Anda, membuat album pribadi, menyesuaikan profil Anda dan banyak lagi.", + ], + "Sign in with your account" => [ + 0 => "Masuk dengan akun Anda", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Tidak memiliki sebuah akun? <a href='%s'>Daftar</a> Sekarang.", + ], + "Logged out" => [ + 0 => "Keluar", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Anda telah keluar %s. Sampai bertemu kembali.", + ], + "Go to homepage" => [ + 0 => "Pergi ke beranda", + ], + "Website under maintenance" => [ + 0 => "Website dalam perbaikan", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Kami sedang melakukan perawatan rutin. Silakan kembali dalam beberapa menit lagi.", + ], + "This content is password protected." => [ + 0 => "Konten ini dilindungi kata sandi.", + ], + "Please enter your password to continue." => [ + 0 => "harap masukkan kata sandi anda untuk melanjutkan", + ], + "Send" => [ + 0 => "Terkirim", + ], + "Supported software" => [ + 0 => "Perangkat lunak yang didukung", + ], + "supported software" => [ + 0 => "perangkat lunak yang didukung", + ], + "Add it to your website" => [ + 0 => "Tambahkan ke situs web Anda", + ], + "options" => [ + 0 => "pilihan", + ], + "Basic options" => [ + 0 => "Pilihan dasar", + ], + "After" => [ + 0 => "Setelah", + ], + "Before" => [ + 0 => "Sebelum", + ], + "Advanced options" => [ + 0 => "Opsi lanjutan", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Anda tidak diperkenankan memasuki halaman ini atau tautan telah tidak berlaku.", + ], + "Search results" => [ + 0 => "Hasil pencarian", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Apakah anda yakin akan menghapus pengguna ini? Hal ini tidak dapat dimundurkan.", + ], + "Delete user" => [ + 0 => "Menghapus pengguna", + ], + "Register date" => [ + 0 => "Tanggal pendaftaran", + ], + "Registration IP" => [ + 0 => "Pendaftaran IP", + ], + "Valid" => [ + 0 => "Sah", + ], + "Banned" => [ + 0 => "Diblokir", + ], + "Awaiting email" => [ + 0 => "Menunggu email", + ], + "Awaiting confirmation" => [ + 0 => "Menunggu konfirmasi", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i sampai %f karankter<br>Huruf, angka dan \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Hapus otomatis unggahan", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Pengaturan ini akan diterapkan ke semua gambar yang telah anda unggah secara default. Anda dapat mengubah pengaturan ini di setiap unggahan.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Biarkan <a %s>Exif data</a> gambar ketika upload", + ], + "Newsletter" => [ + 0 => "Langganan berita", + ], + "Send me emails with news about %s" => [ + 0 => "Kirimi saya email berita tentang %s", + ], + "Content settings" => [ + 0 => "Pengaturan isi", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Perlihatkan berkas dewasa di daftar (dari yang lain)", + ], + "Language" => [ + 0 => "Bahasa", + ], + "Timezone" => [ + 0 => "Zona waktu", + ], + "Current password" => [ + 0 => "Password saat ini", + ], + "Enter your current password" => [ + 0 => "Masukkan password saat ini", + ], + "New password" => [ + 0 => "Password baru", + ], + "Confirm new password" => [ + 0 => "Konfirmasi password baru", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Ketik password untuk masuk menggunakan username atau email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Pengguna ini tidak memiliki password. Tambahkan melalui form berikut.", + ], + "Enter your password" => [ + 0 => "Masukkan password anda", + ], + "Confirm password" => [ + 0 => "Konfirmasi kata sandi", + ], + "Re-enter your password" => [ + 0 => "Ketik ulang password", + ], + "Make my profile and identity totally private" => [ + 0 => "Buat profil dan identitas saya sepenuhnya pribadi.", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Aktifkan jika anda ingin menjadi seperti pengguna anonim.", + ], + "This is your real name, not your username." => [ + 0 => "Ini adalah nama anda bukan username.", + ], + "http://yourwebsite.com" => [ + 0 => "http://websitekamu.com", + ], + "Bio" => [ + 0 => "Bio", + ], + "Tell us a little bit about you" => [ + 0 => "Ceritakan sedikit mengenai anda", + ], + "User has no connections." => [ + 0 => "Pengguna tidak mempunyai koneksi.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Apakah anda yakin ingin diskonek %s dari akun ini?", + ], + "This account is connected to %s" => [ + 0 => "Akun ini terhubung dengan %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Apakah anda yakin ingin memutuskan hubungan dengan akun %s ?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Anda akan keluar dan tidak dapat masuk kembali ke akun anda menggunakan akun %s ini.", + ], + "Your account is connected to %s" => [ + 0 => "Akun anda terhubung dengan %s", + ], + "disconnect" => [ + 0 => "terputus", + ], + "Connect %s" => [ + 0 => "Menghubungkan dengan %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Silahkan mencari dan menemukan semua gambar dan album yang saya bagikan.", + ], + "Button" => [ + 0 => "Tombol", + ], + "View all my images" => [ + 0 => "Tampilkan semua gambarku", + ], + "Login" => [ + 0 => "Masuk", + ], + "Already have an account? %s now." => [ + 0 => "Sudah memiliki akun? %s sekarang.", + ], + "resend account activation" => [ + 0 => "Kirim ulang aktivasi akun", + ], + "You can also %s." => [ + 0 => "Anda juga dapat %s.", + ], + "I'm at least %s years old" => [ + 0 => "Saya telah berumur %s tahun", + ], + "terms" => [ + 0 => "ketentuan", + ], + "privacy policy" => [ + 0 => "kebijakan privasi", + ], + "Upload profile background" => [ + 0 => "Unggah latar belakang untuk profil anda", + ], + "Change background" => [ + 0 => "Ubah latar belakang", + ], + "Upload new image" => [ + 0 => "Unggah gambar baru", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Latar belakang profil akan dihapus. Tidak dapat dimundurkan. Apakah anda yakin untuk menghapus gambar latar belakang dari profil?", + ], + "Delete background" => [ + 0 => "Menghapus latar belakang", + ], + "Follower" => [ + 0 => "Pengikut", + ], + "Follow" => [ + 0 => "Ikuti", + ], + "You have been forbidden to use this website." => [ + 0 => "Anda telah diblokir dari website ini.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "Page %s" => [ + 0 => "Laman %s", + ], + "General questions/comments" => [ + 0 => "Pertanyaan/komentar umum", + ], + "DMCA complaint" => [ + 0 => "Pengaduan DCMA", + ], + "Invalid message" => [ + 0 => "Pesan tidak valid", + ], + "Invalid subject" => [ + 0 => "Judul tidak valid", + ], + "Mail error" => [ + 0 => "Pos galat", + ], + "Message sent" => [ + 0 => "Pesan terkirim", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Pesan terkirim. Kami akan menghubungi segera.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Jika anda ingin mengirim sebuah pesan isi form dibawah ini.", + ], + "Your name" => [ + 0 => "Nama anda", + ], + "Subject" => [ + 0 => "Judul", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Semua perubahan yang dibuat akan hilang jika anda teruskan tindakan ini", + ], + "Changes saved successfully." => [ + 0 => "Perubahan telah disimpan", + ], + "Go back to form" => [ + 0 => "Kembali ke formulir", + ], + "continue anyway" => [ + 0 => "lanjutkan saja", + ], + "Saving" => [ + 0 => "Sedang menyimpan", + ], + "Sending" => [ + 0 => "Sedang mengirim", + ], + "Confirm action" => [ + 0 => "Konfirmasi tindakan", + ], + "information" => [ + 0 => "informasi", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/it.po.cache.php b/app/.cache/languages/it.po.cache.php new file mode 100644 index 0000000..e320ccc --- /dev/null +++ b/app/.cache/languages/it.po.cache.php @@ -0,0 +1,3738 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-07 13:29+0000', + 'PO-Revision-Date' => '2021-06-07 13:29+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'it', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Indirizzo email non valido", + ], + "Invalid username" => [ + 0 => "Nome utente non valido", + ], + "Invalid password" => [ + 0 => "Password non valida", + ], + "Installed version is v%s" => [ + 0 => "Versione installata è v%s", + ], + "Can't connect to %s" => [ + 0 => "Impossibile connettersi a %s", + ], + "Last available release is v%s" => [ + 0 => "Ultima release disponibile è v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Aggiornamento necessario, procedere scaricare", + ], + "No update needed" => [ + 0 => "Nessun aggiornamento necessario", + ], + "System files already up to date" => [ + 0 => " file di sistema già aggiornato", + ], + "Starting v%s download" => [ + 0 => "Avviamento v%s download", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Scaricato v%s, di procedere alla estrazione", + ], + "Attempting to extract v%s" => [ + 0 => "Il tentativo di estrarre v%s", + ], + "Extraction completed" => [ + 0 => "estrazione completata", + ], + "Proceding to install the update" => [ + 0 => "Di procedere per installare l'aggiornamento", + ], + "Update failed" => [ + 0 => "Aggiornamento non riuscito", + ], + "Update in progress" => [ + 0 => "Aggiornamento in corso...", + ], + "Missing %s file" => [ + 0 => "File %s non trovato", + ], + "Invalid license info" => [ + 0 => "Info licenza non valida", + ], + "Can't save file" => [ + 0 => "Impossibile salvare il file", + ], + "Can't extract %s" => [ + 0 => "Impossibile estrarre %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Impossibile creare la cartella %s - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Impossibile aggiornare il file %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Per proseguire verifica gli errori di compilazione.", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Nota: questo contenuto è privato, ma accessibile da chiunque abbia il link diretto.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Nota: questo contenuto è protetto da password. Ricorda di comunicarla per consentire l'accesso.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Nota: questo contenuto è privato. Per condividerlo imposta la privacy a livello \"pubblico\".", + ], + "You must enter the album name." => [ + 0 => "È necessario immettere il nome dell'album.", + ], + "Confirm" => [ + 0 => "Confermare", + ], + "The content has been approved." => [ + 0 => "Il contenuto è stato approvato.", + ], + "Select existing album" => [ + 0 => "Seleziona album esistente", + ], + "An error occurred. Please try again later." => [ + 0 => "Si è verificato un errore. Riprova più tardi.", + ], + "Please select a valid image file type." => [ + 0 => "Si prega di selezionare un tipo di file immagine valido.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Si prega di selezionare un'immagine di al massimo %s dimensioni.", + ], + "Profile image updated." => [ + 0 => "Immagine profilo aggiornato.", + ], + "Profile background image updated." => [ + 0 => "Immagine di sfondo del profilo aggiornata.", + ], + "Profile background image deleted." => [ + 0 => "Immagine di sfondo del profilo cancellata.", + ], + "Error deleting profile background image." => [ + 0 => "Errore nella cancellazione dell'immagine di sfondo del profilo.", + ], + "Passwords don't match" => [ + 0 => "Le password non corrispondono", + ], + "Update available v%s" => [ + 0 => "Aggiornamento disponibile v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Vi è disponibile un aggiornamento per il sistema. È possibile scaricare automaticamente e installare questo aggiornamento o andare al %s per procedere per scaricare il file.", + ], + "The release notes for this update are:" => [ + 0 => "Note di rilascio per questo aggiornamento:", + ], + "system requirements" => [ + 0 => "requisiti di sistema", + ], + "I confirm that this server meets the %s for this update" => [ + 0 => "Confermo che questo server soddisfa %s per questo aggiornamento ", + ], + "Update now" => [ + 0 => "Aggiorna ora", + ], + "This website is running latest %s version" => [ + 0 => "Questo sito web è in esecuzione la versione più recente di %s", + ], + "Please review the system requirements before proceeding" => [ + 0 => "Si prega di rivedere i requisiti di sistema prima di procedere", + ], + "loading" => [ + 0 => "Caricamento", + ], + "Toggle select" => [ + 0 => "Attiva/disattiva selezione", + ], + "Like" => [ + 0 => "Mi piace", + ], + "Toggle flag" => [ + 0 => "Attiva/disattiva flag", + ], + "Edit" => [ + 0 => "Modifica", + ], + "Album" => [ + 0 => "Album", + 1 => "Album", + ], + "Approve" => [ + 0 => "Approvare", + ], + "Delete" => [ + 0 => "Cancella", + ], + "Close" => [ + 0 => "Chiudi", + ], + "Previous" => [ + 0 => "Precedente", + ], + "Next" => [ + 0 => "Prossimo", + ], + "Clipboard image" => [ + 0 => "Appunti immagine", + ], + "File too big." => [ + 0 => "File troppo grande.", + ], + "Invalid or unsupported file format." => [ + 0 => "formato di file non valido o non supportato", + ], + "Some files couldn't be added" => [ + 0 => "Alcuni file non possono essere aggiunti", + ], + "image" => [ + 0 => "Immagine", + 1 => "Immagini", + ], + "%s's Albums" => [ + 0 => "Album di %s", + ], + "Image edited successfully." => [ + 0 => "Immagine modificata con successo.", + ], + "private" => [ + 0 => "privato", + ], + "Album edited successfully." => [ + 0 => "Album modificato con successo.", + ], + "Invalid URL key." => [ + 0 => "Chiave URL non valida.", + ], + "Category URL key already being used." => [ + 0 => "Categoria chiave URL già utilizzata.", + ], + "Category successfully deleted." => [ + 0 => "Categoria eliminata correttamente.", + ], + "Category %s added." => [ + 0 => "Categoria %s aggiunta.", + ], + "Invalid expiration date." => [ + 0 => "Data di scadenza invalida.", + ], + "IP %s already banned." => [ + 0 => "IP %s è già stato vietato.", + ], + "IP %s banned." => [ + 0 => "IP %s bannato.", + ], + "IP ban successfully deleted." => [ + 0 => "IP è stato correttamente cancellato.", + ], + "Please fill all the required fields." => [ + 0 => "Si prega di compilare tutti i campi obbligatori.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Valore di capacità di memoria non valido. Assicurarsi di utilizzare un formato valido.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Lo spazio di archiviazione non può essere inferiore a quello attualmente in uso (%s).", + ], + "Invalid URL." => [ + 0 => "URL non valido", + ], + "Storage successfully edited." => [ + 0 => "Archiviazione modificato con successo.", + ], + "User added successfully." => [ + 0 => "Utente aggiunto con successo.", + ], + "The content has been deleted." => [ + 0 => "Il contenuto è stato cancellato.", + ], + "The content has been moved." => [ + 0 => "Il contenuto è stato spostato.", + ], + "Select" => [ + 0 => "Seleziona", + ], + "Unselect" => [ + 0 => "Non hai selezionato", + ], + "The content has been edited." => [ + 0 => "Il contenuto è stato modificato.", + ], + "Import ID %s removed" => [ + 0 => "L'ID importazione %s rimosso", + ], + "Spam detected" => [ + 0 => "Spam rilevato", + ], + "album" => [ + 0 => "album", + 1 => "album", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Inondazione rilevata. Puoi caricare solo il %limit% %content% per %time%", + ], + "Untitled" => [ + 0 => "Senza titolo", + ], + "%s's images" => [ + 0 => "Immagini di %s", + ], + "Private" => [ + 0 => "Privato", + ], + "Public" => [ + 0 => "Pubblico", + ], + "Me" => [ + 0 => "Me", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Password", + ], + "view" => [ + 0 => "visualizzazione", + 1 => "visualizzazioni", + ], + "After %n %t" => [ + 0 => "Dopo %n %t", + ], + "minute" => [ + 0 => "minuto", + 1 => "minuti", + ], + "hour" => [ + 0 => "ora", + 1 => "ore", + ], + "day" => [ + 0 => "giorno", + 1 => "giorni", + ], + "week" => [ + 0 => "settimana", + 1 => "settimane", + ], + "month" => [ + 0 => "mese", + 1 => "mesi", + ], + "year" => [ + 0 => "anno", + 1 => "anni", + ], + "Don't autodelete" => [ + 0 => "Non cancellare automaticamente", + ], + "Can't open %s for writing" => [ + 0 => "Impossibile aprire %s in scrittura", + ], + "Duplicated upload" => [ + 0 => "Contenuto duplicato", + ], + "Private upload" => [ + 0 => "Caricamento privato", + ], + "like" => [ + 0 => "Mi piace", + 1 => "Gli piace", + ], + "Recent" => [ + 0 => "Recente", + ], + "Trending" => [ + 0 => "Argomenti", + ], + "Top users" => [ + 0 => "Utenti top", + ], + "Most recent" => [ + 0 => "Più nuove", + ], + "Oldest" => [ + 0 => "Più vecchie", + ], + "Most viewed" => [ + 0 => "Più viste", + ], + "Popular" => [ + 0 => "Popolare", + ], + "Most liked" => [ + 0 => "Più piaciute", + ], + "Explore" => [ + 0 => "Esplora", + ], + "Animated" => [ + 0 => "Animato", + ], + "Search" => [ + 0 => "Cerca", + ], + "People" => [ + 0 => "Persone", + ], + "Image" => [ + 0 => "Immagine", + 1 => "Immagini", + ], + "User" => [ + 0 => "Utente", + 1 => "Utenti", + ], + "adult" => [ + 0 => "adulto", + ], + "teen" => [ + 0 => "adolescente", + ], + "Content of type %s is forbidden" => [ + 0 => "Il contenuto di tipo %s è vietato", + ], + "Can't create %s destination dir" => [ + 0 => "Impossibile creare la cartella di destinazione %s", + ], + "Internal" => [ + 0 => "Interno", + ], + "Unlimited" => [ + 0 => "Illimitato", + ], + "used" => [ + 0 => "usato", + ], + "Private profile" => [ + 0 => "Profilo privato", + ], + "second" => [ + 0 => "secondo", + 1 => "secondi", + ], + "%s ago" => [ + 0 => "%s fa", + ], + "moments ago" => [ + 0 => "poco fa", + ], + "Dashboard" => [ + 0 => "Pannello di controllo", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Aggiornamento di sistema disponibile: vai qui %s per scaricarlo ed installarlo.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "È necessario eseguire lo strumento di <a href=\"%s\">aggiornamento</a> del database di sistema.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Sito web in modalità manutenzione. Per annullare questa impostazione vai al menu <a href=\"%s\"> Cruscotto > Impostazioni </a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Si consiglia di disattivare il rapporto errori PHP in ambienti di produzione. Vai a <a href='%s'> Impostazioni di sistema </a> per annullare questa impostazione.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Le impostazioni email predefinite non sono state modificate. Vai a <a href='%s'> Impostazioni email </a> per gestirle.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Aggiornamento disponibile per il tuo sito web di Chevereto.", + ], + "admin dashboard" => [ + 0 => "Pannello di controllo amministratore", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Puoi applicare questo aggiornamento direttamente dal tuo %a, oppure scaricarlo dal %s ed installarlo manualmente.", + ], + "view on %s" => [ + 0 => "visualizza su %s", + ], + "cookie policy" => [ + 0 => "politica dei cookie", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Utilizziamo i nostri cookie propri e di terze parti per migliorare la tua esperienza di navigazione e i nostri servizi. Se continui a utilizzare il nostro sito Web, comprendi che accetti questo %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Capisco", + ], + "Forgot password?" => [ + 0 => "Password dimenticata?", + ], + "Reset password" => [ + 0 => "Reimpostazione password", + ], + "Resend account activation" => [ + 0 => "Reinvia la richiesta di attivazione account", + ], + "Add your email address" => [ + 0 => "Aggiungi il tuo indirizzo email", + ], + "Email changed" => [ + 0 => "Indirizzo email modificato", + ], + "%s says you are a robot" => [ + 0 => "%s dice che sei un robot", + ], + "Invalid Username/Email" => [ + 0 => "Nome utente/Indirizzo email non validi", + ], + "User doesn't have an email." => [ + 0 => "L'utente non dispone di indirizzo email.", + ], + "Request denied" => [ + 0 => "Richiesta rifiutata", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Per utilizzare questa funzionalità è necessaria l'attivazione dell'account", + ], + "Account already activated" => [ + 0 => "Account già attivato", + ], + "Account banned" => [ + 0 => "Account bloccato", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Attendi fino a 15 minuti per la ricezione delll'email. Puoi riprovare più tardi.", + ], + "Reset your password at %s" => [ + 0 => "Cambia la tua password %s", + ], + "Confirmation required at %s" => [ + 0 => "Conferma obbligatoria a %s", + ], + "Welcome to %s" => [ + 0 => "Benvenuti in %s", + ], + "Email already being used" => [ + 0 => "Indirizzo email già utilizzato", + ], + "Password required" => [ + 0 => "Password obbligatoria", + ], + "Embed codes" => [ + 0 => "Condivisione", + ], + "Sub albums" => [ + 0 => "Sotto album", + ], + "Info" => [ + 0 => "Info", + ], + "%a album hosted in %w" => [ + 0 => "Album %a ospitato in %w", + ], + "Stats" => [ + 0 => "Statistiche", + ], + "Images" => [ + 0 => "Immagini", + ], + "Albums" => [ + 0 => "Album", + ], + "Users" => [ + 0 => "Utenti", + ], + "Settings" => [ + 0 => "Impostazioni", + ], + "Bulk importer" => [ + 0 => "Massa Importatore", + ], + "install update" => [ + 0 => "installa l'aggiornamento", + ], + "check for updates" => [ + 0 => "controlla aggiornamenti", + ], + "Contributing" => [ + 0 => "Contribuire", + ], + "Support" => [ + 0 => "Supporto", + ], + "Bug tracking" => [ + 0 => "Segnalazione bug", + ], + "Documentation" => [ + 0 => "Documentazione", + ], + "PHP version" => [ + 0 => "Versione PHP", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "Versione MySQL", + ], + "MySQL server info" => [ + 0 => "Info server MySQL", + ], + "Graphics Library" => [ + 0 => "Libreria grafica", + ], + "File uploads" => [ + 0 => "File caricati", + ], + "Enabled" => [ + 0 => "Abilitato", + ], + "Disabled" => [ + 0 => "Disabilitato", + ], + "Max. upload file size" => [ + 0 => "Max. dimensione del file di caricamento", + ], + "Max. post size" => [ + 0 => "Max. valore POST", + ], + "Max. execution time" => [ + 0 => "Max. tempo di esecuzione", + ], + "%d second" => [ + 0 => "%d secondo", + 1 => "%d secondi", + ], + "Memory limit" => [ + 0 => "Limite memoria", + ], + "Rebuild stats" => [ + 0 => "Ricostruisci le statistiche", + ], + "Connecting IP" => [ + 0 => "Connessione IP", + ], + "Not your IP?" => [ + 0 => "Non è il tuo IP?", + ], + "Website" => [ + 0 => "Sito web", + ], + "Content" => [ + 0 => "Contenuto", + ], + "Pages" => [ + 0 => "Pagine", + ], + "Listings" => [ + 0 => "Gallerie", + ], + "Image upload" => [ + 0 => "Caricamento", + ], + "Categories" => [ + 0 => "Categorie", + ], + "Consent screen" => [ + 0 => "Pagina di consenso", + ], + "Flood protection" => [ + 0 => "Protezione da flood", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Homepage", + ], + "Banners" => [ + 0 => "Pubblicità", + ], + "System" => [ + 0 => "Sistema", + ], + "Routing" => [ + 0 => "Percorsi", + ], + "Languages" => [ + 0 => "Localizzazione", + ], + "External storage" => [ + 0 => "Archiviazione esterna", + ], + "Email" => [ + 0 => "Indirizzo email", + ], + "Social networks" => [ + 0 => "Social network", + ], + "External services" => [ + 0 => "Servizi esterni", + ], + "IP bans" => [ + 0 => "Blocco IP", + ], + "Additional settings" => [ + 0 => "Altre impostazioni", + ], + "Tools" => [ + 0 => "Strumenti", + ], + "Can't delete all homepage cover images" => [ + 0 => "Impossibile cancellare tutte le immagini di copertina della homepage", + ], + "Homepage cover image deleted" => [ + 0 => "Immagine di copertina homepage cancellata", + ], + "Local" => [ + 0 => "Locale", + ], + "External" => [ + 0 => "Esterno", + ], + "All" => [ + 0 => "Tutto", + ], + "search content" => [ + 0 => "Ricerca contenuti", + ], + "Add page" => [ + 0 => "Aggiungi pagina", + ], + "Edit page ID %s" => [ + 0 => "Modifica ID pagina %s", + ], + "The page has been added successfully." => [ + 0 => "La pagina è stata aggiunta correttamente.", + ], + "The page has been deleted." => [ + 0 => "La pagina è stata cancellata.", + ], + "homepage" => [ + 0 => "homepage", + ], + "Before main title (%s)" => [ + 0 => "Prima del titolo principale (%s)", + ], + "After call to action (%s)" => [ + 0 => "Dopo il pulsante di caricamento (%s)", + ], + "After cover (%s)" => [ + 0 => "Dopo la copertina (%s)", + ], + "After listing (%s)" => [ + 0 => "Dopo la galleria (%s)", + ], + "Before pagination" => [ + 0 => "Prima dell'impaginazione", + ], + "After pagination" => [ + 0 => "Dopo l'impaginazione", + ], + "Content (image and album)" => [ + 0 => "Contenuto (immagini ed album)", + ], + "Tab about column" => [ + 0 => "Colonna scheda informazioni", + ], + "Before comments" => [ + 0 => "Prima dei commenti", + ], + "Image page" => [ + 0 => "Pagina immagine", + ], + "Inside viewer top (image page)" => [ + 0 => "Visualizzatore interno superiore (pagina immagine)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Visualizzatore interno inferiore (pagina immagine)", + ], + "After image viewer (image page)" => [ + 0 => "Dopo il visualizzatore immagine (pagina immagine)", + ], + "Before header (image page)" => [ + 0 => "Prima dell'intestazione (pagina immagine)", + ], + "After header (image page)" => [ + 0 => "Dopo l'intestazione (pagina immagine)", + ], + "Footer (image page)" => [ + 0 => "Piè di pagina (pagina immagine)", + ], + "Album page" => [ + 0 => "Pagina album", + ], + "Before header (album page)" => [ + 0 => "Prima dell'intestazione (pagina album)", + ], + "After header (album page)" => [ + 0 => "Dopo l'intestazione (pagina album)", + ], + "User profile page" => [ + 0 => "Pagina profilo utente", + ], + "After top (user profile)" => [ + 0 => "Dopo il top (profilo utente)", + ], + "Before listing (user profile)" => [ + 0 => "Prima della galleria (profilo utente)", + ], + "Explore page" => [ + 0 => "Pagina \"Esplora\"", + ], + "After top (explore page)" => [ + 0 => "Dopo il top (pagina \"Esplora\")", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Nome sito web non valido", + ], + "Invalid language" => [ + 0 => "Lingua non valida", + ], + "Invalid timezone" => [ + 0 => "Fuso orario non valido", + ], + "Invalid value: %s" => [ + 0 => "Valore non valido: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Modalità di archiviazione non valida", + ], + "Invalid upload filenaming" => [ + 0 => "Denominazione dei file non valida", + ], + "Invalid thumb width" => [ + 0 => "Larghezza miniatura non valida", + ], + "Invalid thumb height" => [ + 0 => "Altezza miniatura non valida", + ], + "Invalid medium size" => [ + 0 => "Dimensione media non valida", + ], + "Invalid watermark percentage" => [ + 0 => "Percentuale filigrana non valida", + ], + "Invalid watermark opacity" => [ + 0 => "Opacità filigrana non valida", + ], + "Invalid theme" => [ + 0 => "Tema non valido", + ], + "Invalid value" => [ + 0 => "Valore non valido", + ], + "Invalid theme tone" => [ + 0 => "Tonalità tema non valida", + ], + "Invalid theme main color" => [ + 0 => "Colore principale del tema non valido", + ], + "Invalid theme top bar button color" => [ + 0 => "Colore pulsante top bar del tema non valido", + ], + "Invalid theme image listing size" => [ + 0 => "Dimensione galleria immagini del tema non valida", + ], + "Invalid user id" => [ + 0 => "ID utente non valido", + ], + "Invalid email mode" => [ + 0 => "Modalità email non valida", + ], + "Invalid SMTP port" => [ + 0 => "Porta SMTP non valida", + ], + "Invalid SMTP security" => [ + 0 => "Tipo sicurezza SMTP non valido", + ], + "Invalid website mode" => [ + 0 => "Modalità sito non valida", + ], + "Invalid personal mode user ID" => [ + 0 => "ID utente modalità personale non valido", + ], + "Invalid or reserved route" => [ + 0 => "Percorso non valido o riservato", + ], + "Invalid website privacy mode" => [ + 0 => "Modalità sito web privato non valida", + ], + "Invalid website content privacy mode" => [ + 0 => "Modalità contenuto privato sito web non valida", + ], + "Invalid homepage style" => [ + 0 => "Stile homepage non valido", + ], + "Invalid homepage call to action button color" => [ + 0 => "Colore pulsante invito all'azione in homepage non valido", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Funzionalità invito all'azione in homepage non valida", + ], + "Invalid title" => [ + 0 => "Titolo non valido", + ], + "Invalid status" => [ + 0 => "Stato non valido", + ], + "Invalid type" => [ + 0 => "Tipo non valido", + ], + "Invalid visibility" => [ + 0 => "Visibilità non valida", + ], + "Invalid internal type" => [ + 0 => "Tipo interno non valido", + ], + "Invalid target attribute" => [ + 0 => "Attributo target non valido", + ], + "Invalid rel attribute" => [ + 0 => "Attributo rel non valido", + ], + "Invalid icon" => [ + 0 => "Icona non valida", + ], + "Invalid URL key" => [ + 0 => "Chiave URL non valida", + ], + "Invalid file path" => [ + 0 => "Percorso file non valido", + ], + "Invalid link URL" => [ + 0 => "Link URL non valido", + ], + "Invalid user minimum age" => [ + 0 => "Età minima utente non valida", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Sono consentiti solo caratteri alfanumerici, trattino e trattino basso (underscore)", + ], + "Invalid URL" => [ + 0 => "URL non valido", + ], + "Routes can't be the same" => [ + 0 => "I percorsi non possono essere uguali", + ], + "Invalid upload image path" => [ + 0 => "Percorso caricamento immagine non valido", + ], + "Invalid call to action URL" => [ + 0 => "URL invito all'azione non valido", + ], + "Max. allowed %s" => [ + 0 => "Massimo consentito %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Non è possibile mappare %m ad una cartella esistente (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Non è possibile mappare %m ad un percorso esistente (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Non è possibile mappare %m a %r (conflitto username)", + ], + "Invalid SMTP server" => [ + 0 => "Server SMTP non valido", + ], + "Invalid SMTP username" => [ + 0 => "Username SMTP non valido", + ], + "Invalid key" => [ + 0 => "Chiave non valida", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Questa chiave URL è già utilizzata da un'altra pagina (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Questo percorso file è già utilizzato da un'altra pagina (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Impossibile salvare il contenuto della pagina: %s.", + ], + "Following" => [ + 0 => "Seguire", + ], + "About" => [ + 0 => "Informazioni", + ], + "Image ID" => [ + 0 => "ID immagine", + ], + "Uploader IP" => [ + 0 => "IP uploader", + ], + "Ban IP" => [ + 0 => "Blocca IP", + ], + "IP already banned" => [ + 0 => "IP già bloccato", + ], + "Upload date" => [ + 0 => "Caricato il", + ], + "Image %i in %a album" => [ + 0 => "Immagine %i in album %a", + ], + "Image %i in %c category" => [ + 0 => "Immagine %i in categoria %c", + ], + "Image %i hosted in %w" => [ + 0 => "Immagine %i ospitata in %w", + ], + "Direct links" => [ + 0 => "Link diretti", + ], + "Image link" => [ + 0 => "Pagina immagine", + ], + "Image URL" => [ + 0 => "Immagine originale", + ], + "Thumbnail URL" => [ + 0 => "Immagine in miniatura", + ], + "Medium URL" => [ + 0 => "Immagine ridotta", + ], + "Full image" => [ + 0 => "Immagine originale", + ], + "Full image (linked)" => [ + 0 => "Immagine originale (con link)", + ], + "Medium image (linked)" => [ + 0 => "Immagine ridotta (con link)", + ], + "Thumbnail image (linked)" => [ + 0 => "Immagine in miniatura (con link)", + ], + "Login needed" => [ + 0 => "Autenticazione obbligatoria", + ], + "IP address already banned" => [ + 0 => "Indirizzo IP già bloccato", + ], + "Missing values" => [ + 0 => "Valori mancanti", + ], + "Invalid role" => [ + 0 => "Ruolo non valido", + ], + "Username already being used" => [ + 0 => "Nome utente già in uso", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Aggiungi una password o una connessione ad un Social prima di eliminare %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Aggiungi un indirizzo email o una connessione ad un Social prima di eliminare %s", + ], + "%s has been disconnected." => [ + 0 => "%s è stato disconnesso.", + ], + "Test email from %s @ %t" => [ + 0 => "Email di prova da %s @ %t", + ], + "This is just a test" => [ + 0 => "Questa è soltanto una prova", + ], + "Test email sent to %s." => [ + 0 => "Email di prova inviata a %s.", + ], + "Downloading %s data" => [ + 0 => "Download di dati %s", + ], + "User %s followed" => [ + 0 => "Utente %s seguito", + ], + "User %s unfollowed" => [ + 0 => "Utente %s non seguito più", + ], + "Album cover altered" => [ + 0 => "Copertina dell'album alterata", + ], + "Content liked" => [ + 0 => "Contenuto piaciuto", + ], + "Content disliked" => [ + 0 => "Contenuto non piaciuto", + ], + "%u liked your %t %c" => [ + 0 => "A %u piace il tuo %t %c", + ], + "%u is now following you" => [ + 0 => "%u ora ti sta seguendo", + ], + "A private user" => [ + 0 => "Un utente privato", + ], + "Wrong Username/Email password combination" => [ + 0 => "Combinazione Username/Email/password errata", + ], + "Sign in" => [ + 0 => "Accedi", + ], + "Moderate" => [ + 0 => "Moderare", + ], + "Upload images" => [ + 0 => "Carica immagini", + ], + "Upload plugin" => [ + 0 => "Caricare plugin", + ], + "Image search results for %s" => [ + 0 => "Risultati della ricerca immagine per %s", + ], + "Album search results for %s" => [ + 0 => "Risultati della ricerca album per %s", + ], + "User search results for %s" => [ + 0 => "Risultati della ricerca utente per %s", + ], + "Account" => [ + 0 => "Account", + ], + "Profile" => [ + 0 => "Profilo", + ], + "Linked accounts" => [ + 0 => "Account collegati", + ], + "Powered by" => [ + 0 => "Offerto da", + ], + "Invalid image expiration: %s" => [ + 0 => "Scadenza immagine non valida: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Email inviata a %s con le istruzioni per attivare il tuo account", + ], + "Invalid name" => [ + 0 => "Nome non valido", + ], + "Invalid website" => [ + 0 => "Sito web non valido", + ], + "Wrong password" => [ + 0 => "Password errata", + ], + "Use a new password" => [ + 0 => "Utilizza una nuova password", + ], + "Changes have been saved." => [ + 0 => "Le modifiche sono state salvate.", + ], + "Password has been changed" => [ + 0 => "La password è stata cambiata", + ], + "Password has been created." => [ + 0 => "La password é stata creata", + ], + "Wrong Username/Email values" => [ + 0 => "Valori di username/email non validi", + ], + "Settings for %s" => [ + 0 => "Impostazioni per %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Devi accettare i termini e l'informativa sulla privacy", + ], + "You must be at least %s years old to use this website." => [ + 0 => "L'utilizzo di questo sito web è vietato ai minori di %s anni.", + ], + "Create account" => [ + 0 => "Crea un account", + ], + "Upload" => [ + 0 => "Carica", + ], + "%s's Images" => [ + 0 => "Immagini di %s", + ], + "Results for" => [ + 0 => "Risultati per", + ], + "Liked by %s" => [ + 0 => "Piaciuto a %s", + ], + "Liked" => [ + 0 => "Preferite", + ], + "Followers" => [ + 0 => "Follower", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) album su %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) su %w", + ], + "Discovery" => [ + 0 => "Scoperta", + ], + "Random" => [ + 0 => "Casuale", + ], + "Advanced search" => [ + 0 => "Ricerca avanzata", + ], + "Notices (%s)" => [ + 0 => "Avvisi (%s)", + ], + "Notifications" => [ + 0 => "Notifiche", + ], + "You don't have notifications" => [ + 0 => "Non hai nuove notifiche", + ], + "My Profile" => [ + 0 => "Il mio profilo", + ], + "Lights" => [ + 0 => "Luci", + ], + "Sign out" => [ + 0 => "Disconnessione", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Abbiamo ricevuto una richiesta di modifica indirizzo email del tuo account <a href=\"%u\">%n</a> a %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Per completare la procedura deve <a href=\"%s\">attivare la tua email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "In alternativa è possibile copiare e incollare l'indirizzo URL nel browser: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Se non intendevi questo, ignora il messaggio.", + ], + "This request was made from IP: %s" => [ + 0 => "Richiesta eseguita da questo indirizzo IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Abbiamo ricevuto la richiesta di registrazione dell'account %n a %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Per completare la procedura devi <a href=\"%s\">attivare il tuo account</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Abbiamo ricevuto richiesta di reimpostazione password per il tuo account <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Per reimpostare la tua password<a href=\"%s\">segui questo link</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Ciao %n, benvenuto in %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Ora che il tuo account è attivo, divertirti a caricare immagini, creare album, impostare la privacy dei tuoi contenuti, ed a scoprire altre attività interessanti.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Inoltre qui trovi la pagina del tuo profilo: <a href=\"%u\">%n</a>. Vai a personalizzarlo!", + ], + "Thank you for joining" => [ + 0 => "Grazie per l'iscrizione", + ], + "This email was sent from %w %u" => [ + 0 => "Email inviata da %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Trascina e rilascia oppure incolla qui le tue immagini per caricarle", + ], + "Select the images to upload" => [ + 0 => "Seleziona le immagini da caricare", + ], + "browse from your computer" => [ + 0 => "navigare dal computer", + ], + "add image URLs" => [ + 0 => "aggiungi URL immagini", + ], + "You can also %i or %u." => [ + 0 => "È inoltre possibile %i o %u.", + ], + "browse from your device" => [ + 0 => "esplorare dal tuo dispositivo", + ], + "take a picture" => [ + 0 => "Fai una foto", + ], + "You can also %i, %c or %u." => [ + 0 => "Puoi anche %i, %c o %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Modificare o ridimensionare un immagine cliccando l'immagine di anteprima", + ], + "Edit any image by touching the image preview" => [ + 0 => "Modifica qualsiasi immagine toccando l'anteprima dell'immagine", + ], + "your computer" => [ + 0 => "il tuo computer", + ], + "You can add more images from %i or %u." => [ + 0 => "È possibile aggiungere altre immagini %i o %u.", + ], + "your device" => [ + 0 => "il tuo dispositivo", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "È possibile aggiungere altre immagini %i, %c o %u.", + ], + "Uploading %q %o" => [ + 0 => "Caricamento %q %o", + ], + "complete" => [ + 0 => "completo", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "La coda è caricata, si dovrebbe perdere solo pochi secondi per essere completata.", + ], + "Upload complete" => [ + 0 => "Caricamento completato", + ], + "Uploaded content added to %s." => [ + 0 => "contenuti caricati aggiunto %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "È possibile %c con il contenuto appena caricato o %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "È possibile %c con il contenuto appena caricato.", + ], + "create a new album" => [ + 0 => "creare un nuovo album", + ], + "move it to an existing album" => [ + 0 => "spostarlo in un album esistente", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Devi %s o %l per salvare questo contenuto nel tuo account.", + ], + "create an account" => [ + 0 => "crea un account", + ], + "sign in" => [ + 0 => "registrati", + ], + "No %s have been uploaded" => [ + 0 => "Nessun %s sono state caricate", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "La tua richiesta non è stata elaborata a causa di alcuni errori.", + ], + "Category" => [ + 0 => "Categoria", + ], + "Select category" => [ + 0 => "Seleziona la categoria", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Seleziona la spunta se il contenuto non è adatto a tutti", + ], + "Not family safe upload" => [ + 0 => "Contenuto non adatto a tutti", + ], + "Uploading" => [ + 0 => "Caricamento in corso...", + ], + "or" => [ + 0 => "oppure", + ], + "cancel" => [ + 0 => "Annulla ", + ], + "cancel remaining" => [ + 0 => "Annulla il caricamento", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Attenzione: non è stato possibile caricare alcune immagini.", + ], + "learn more" => [ + 0 => "Scopri di più", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Controlla il <a data-modal=\"simple\" data-target=\"failed-upload-result\">rapporto di errore</a> per ulteriori informazioni.", + ], + "Register to get %s" => [ + 0 => "Registrati per ottenere %s", + ], + "reset" => [ + 0 => "azzerare", + ], + "close" => [ + 0 => "chiudi", + ], + "Note" => [ + 0 => "Nota", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Dobbiamo approvare il contenuto caricato prima di poterlo condividere.", + ], + "copy" => [ + 0 => "copia", + ], + "insert" => [ + 0 => "inserire", + ], + "Remove" => [ + 0 => "Rimuovi", + ], + "Title" => [ + 0 => "Titolo", + ], + "optional" => [ + 0 => "Opzionale", + ], + "Resize image" => [ + 0 => "Ridimensiona immagine", + ], + "Width" => [ + 0 => "Larghezza", + ], + "Height" => [ + 0 => "Altezza", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Nota: le immagini GIF animate non saranno ridimensionate.", + ], + "Auto delete image" => [ + 0 => "Cancellazione automatica immagine", + ], + "Sign up" => [ + 0 => "Registrazione", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s Per poter personalizzare o disattivare l'eliminazione automatica delle immagini.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Seleziona la spunta se l'immagine non è adatta a tutti", + ], + "Flag as unsafe" => [ + 0 => "Contrassegna come non adatto a tutti", + ], + "Description" => [ + 0 => "Descrizione", + ], + "Brief description of this image" => [ + 0 => "Descrizione sintetica dell'immagine", + ], + "Add image URLs" => [ + 0 => "Aggiungi link di immagini", + ], + "Add the image URLs here" => [ + 0 => "Aggiungi qui i link di immagini", + ], + "Create album" => [ + 0 => "Crea album", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Il contenuto caricato verrà spostato in questo album appena creato.", + ], + "existing album" => [ + 0 => "album esistente", + ], + "You can also move the content to an %a." => [ + 0 => "Puoi anche spostare il contenuto in un %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Devi %s o l se desideri modificare questo album in seguito.", + ], + "Move to album" => [ + 0 => "Sposta nell'album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Seleziona un album esistente in cui spostare le immagini caricate. Puoi anche <a class=\"modal-switch\" data-switch=\"move-new-album\">creare un nuovo album</a> e spostarvi il contenuto.", + ], + "Error report" => [ + 0 => "Rapporto d'errore", + ], + "Links" => [ + 0 => "Link utili", + ], + "Viewer links" => [ + 0 => "Link di visualizzazione", + ], + "HTML Codes" => [ + 0 => "Codici HTML", + ], + "HTML image" => [ + 0 => "Immagine originale", + ], + "HTML full linked" => [ + 0 => "Immagine originale con link", + ], + "HTML medium linked" => [ + 0 => "Immagine ridotta con linkg", + ], + "HTML thumbnail linked" => [ + 0 => "Immagine in miniatura con link", + ], + "BBCodes" => [ + 0 => "BBcode", + ], + "BBCode full" => [ + 0 => "Immagine originale", + ], + "BBCode full linked" => [ + 0 => "Immagine originale con link", + ], + "BBCode medium linked" => [ + 0 => "Immagine ridotta con link", + ], + "BBCode thumbnail linked" => [ + 0 => "Immagine in miniatura con link", + ], + "Markdown full" => [ + 0 => "Immagine originale", + ], + "Markdown full linked" => [ + 0 => "Immagine originale con link", + ], + "Markdown medium linked" => [ + 0 => "Immagine ridotta con link", + ], + "Markdown thumbnail linked" => [ + 0 => "Immagine in miniatura con link", + ], + "All these words" => [ + 0 => "Tutte queste parole chiave", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Inserire le parole chiave: tri-color rat terrier", + ], + "This exact word or phrase" => [ + 0 => "Questa parola chiave o frase esatta", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Definire le parole chiave esatte tra virgolette: \"rat terrier\"", + ], + "None of these words" => [ + 0 => "Nessuna di queste parole chiave", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Inserisci un segno meno davanti alle parole chiave non volute: -rodent - \"Jack Russell\"", + ], + "Storage" => [ + 0 => "Archiviazione", + ], + "IP address" => [ + 0 => "Indirizzo IP", + ], + "Album name" => [ + 0 => "Nome album", + ], + "move to existing album" => [ + 0 => "sposta in un album esistente", + ], + "Album description" => [ + 0 => "Descrizione album", + ], + "Brief description of this album" => [ + 0 => "Descrizione sintetica di questo album", + ], + "Album privacy" => [ + 0 => "Privacy album", + ], + "Who can view this content" => [ + 0 => "Chi può visualizzare questo contenuto", + ], + "Private (just me)" => [ + 0 => "Privato (solo io)", + ], + "Private (anyone with the link)" => [ + 0 => "Privato (chiunque tramite link)", + ], + "Private (password protected)" => [ + 0 => "Privato (protetto da password)", + ], + "Album password" => [ + 0 => "Password album", + ], + "Name" => [ + 0 => "Nome", + ], + "Category name" => [ + 0 => "Nome categoria", + ], + "URL key" => [ + 0 => "Chiave URL", + ], + "Category URL key" => [ + 0 => "Chiave URL categoria", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Soltanto lettere, numeri e trattini", + ], + "Brief description of this category" => [ + 0 => "Descrizione sintetica di questa categoria", + ], + "Untitled image" => [ + 0 => "Immagine senza titolo", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Segna questo se l'immagine non è sicura", + ], + "Flag not safe" => [ + 0 => "Segnala non sicuro", + ], + "Path" => [ + 0 => "Percorso", + ], + "Local path (absolute)" => [ + 0 => "Percorso locale (assoluto)", + ], + "Directory structure" => [ + 0 => "Struttura della directory", + ], + "Parse top level folders as users (username)" => [ + 0 => "Analizza le cartelle di primo livello come utenti (nome utente)", + ], + "Parse top level folders as albums" => [ + 0 => "Analizza le cartelle di livello superiore come album", + ], + "Don't parse folders" => [ + 0 => "Non analizzare le cartelle", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Quando si analizzano le cartelle di livello superiore come utenti, le cartelle di secondo livello verranno analizzate come album utente. L'analisi delle cartelle di primo livello come album le aggiunge come album degli ospiti.", + ], + "Threads" => [ + 0 => "Discussioni", + ], + "Select number of threads" => [ + 0 => "Seleziona il numero di discussioni", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Questo determina quanto intenso e veloce sarà il processo di importazione. Non utilizzare più di %s discussioni su un server condiviso.", + ], + "You can use wildcard * characters." => [ + 0 => "È possibile utilizzare caratteri jolly *.", + ], + "Expiration date" => [ + 0 => "Data di scadenza", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Esempio", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Data di scadenza del blocco IP. Lascia vuoto per non impostare alcuna scadenza.", + ], + "Message" => [ + 0 => "Messaggio", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Messaggio di testo, HTML o URL di reindirizzamento", + ], + "Existing album" => [ + 0 => "Album esistente", + ], + "create new album" => [ + 0 => "Crea nuovo album", + ], + "Storage name" => [ + 0 => "Nome spazio di archiviazione", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Regione", + ], + "Storage region" => [ + 0 => "Regione spazio di archiviazione", + ], + "Storage bucket" => [ + 0 => "Bucket spazio di archiviazione", + ], + "Key" => [ + 0 => "Chiave ", + ], + "Storage key" => [ + 0 => "Key spazio di archiviazione", + ], + "Secret" => [ + 0 => "Segreto", + ], + "Storage secret" => [ + 0 => "Secret spazio di archiviazione", + ], + "Private key" => [ + 0 => "Key privata", + ], + "Google Cloud JSON key" => [ + 0 => "JSON key Google Cloud", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Ti server un <a %s>account di servizio</a> per questo.", + ], + "Service name" => [ + 0 => "Nome servizio", + ], + "Identity URL" => [ + 0 => "Identità URL", + ], + "Identity API endpoint" => [ + 0 => "Identità API endpoint", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API endpoint per identità OpenStack", + ], + "Username" => [ + 0 => "Username", + ], + "Container" => [ + 0 => "Container", + ], + "Storage container" => [ + 0 => "Container spazio di archiviazione", + ], + "Tenant id" => [ + 0 => "ID tenant", + ], + "Tenant id (account id)" => [ + 0 => "ID tenant (ID account)", + ], + "Tenant name" => [ + 0 => "Nome tenant", + ], + "Tenant name (account name)" => [ + 0 => "Nome tenant (nome account)", + ], + "Storage endpoint" => [ + 0 => "Endpoint di archiviazione", + ], + "Server address" => [ + 0 => "Indirizzo del server", + ], + "Hostname or IP of the storage server" => [ + 0 => "Nome di dominio oppure IP del server di archiviazione", + ], + "Server path" => [ + 0 => "Percorso server", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Percorso assoluto in cui i file verranno archiviati nel contesto del login %p. Usa %s per il percorso principale.", + ], + "Server login" => [ + 0 => "Accesso al server", + ], + "Server password" => [ + 0 => "Password server", + ], + "Local path" => [ + 0 => "Percorso locale", + ], + "Local path where the files will be stored" => [ + 0 => "Percorso locale in cui verranno archiviati i file", + ], + "Storage capacity" => [ + 0 => "Capacità spazio di archiviazione", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Esempio: 20 GB, 1 TB, etc etc...", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Lo spazio di archiviazione sarà disabilitato al raggiungimento di questo valore. Lascia il campo vuoto oppure inserisci valore zero per non impostare il limite.", + ], + "Storage URL" => [ + 0 => "URL spazio di archiviazione", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Il sistema mapperà le immagini di questo spazio di archiviazione al seguente URL", + ], + "view more" => [ + 0 => "Vedi altro", + ], + "Load more" => [ + 0 => "Carica altro", + ], + "Select all" => [ + 0 => "Seleziona tutto", + ], + "Clear" => [ + 0 => "Cancella", + ], + "Get embed codes" => [ + 0 => "Recupera i codici embed", + ], + "Assign category" => [ + 0 => "Assegna categoria", + ], + "Flag as safe" => [ + 0 => "Contrassegna come adatto a tutti", + ], + "Clear selection" => [ + 0 => "Annulla selezione", + ], + "Create new album" => [ + 0 => "Crea nuovo album", + ], + "Create sub album" => [ + 0 => "Crea sotto album ", + ], + "Share" => [ + 0 => "Condividi", + ], + "Sign in with another account" => [ + 0 => "Accedi con un account diverso", + ], + "Continue with %label%" => [ + 0 => "Continua con %label%", + ], + "Home" => [ + 0 => "Home", + ], + "There's nothing to show here." => [ + 0 => "Non c'è niente da mostrare qui.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Tutte le immagini selezionate saranno assegnate a questa categoria.", + ], + "There is no categories." => [ + 0 => "Non ci sono categorie", + ], + "Confirm flag content as safe" => [ + 0 => "Conferma che i contenuti sono adatti a tutti", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Vuoi davvero contrassegnare questo contenuto come adatto a tutti?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Conferma che i contenuti non sono adatti a tutti", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Vuoi davvero contrassegnare questo contenuto come non adatto a tutti?", + ], + "Confirm approval" => [ + 0 => "Conferma l'approvazione", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "Vuoi davvero rimuovere tutto il contenuto selezionato? Questo non può essere annullato.", + ], + "Confirm deletion" => [ + 0 => "Conferma la cancellazione", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Vuoi davvero cancellare questo contenuto? Questa azione non può essere annullata.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Vuoi davvero rimuovere tutto il contenuto selezionato? Questo non può essere annullato.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Vuoi davvero cancellare tutto il contenuto selezionato? Questa azione non può essere annullata.", + ], + "Guest" => [ + 0 => "Ospite\n", + ], + "Keyboard shortcuts" => [ + 0 => "Tasti rapidi", + ], + "Private album" => [ + 0 => "Album privato", + ], + "Password protected" => [ + 0 => "Protetto da password", + ], + "Uploaded by guest" => [ + 0 => "Caricato da ospite", + ], + "From %s" => [ + 0 => "Da %s", + ], + "Uploaded by private" => [ + 0 => "Caricato da privato", + ], + "by %u" => [ + 0 => "di %u", + ], + "Toggle unsafe flag" => [ + 0 => "Contrassegna come non adatto a tutti", + ], + "That page doesn't exist" => [ + 0 => "La pagina non esiste", + ], + "The requested page was not found." => [ + 0 => "La pagina richiesta non è stata trovata.", + ], + "The user has been deleted" => [ + 0 => "L'utente è stato cancellato", + ], + "Your account is almost ready" => [ + 0 => "Il tuo account è quasi pronto", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Una e-mail a %s è stata inviata con le istruzioni per attivare il tuo account. Il link di attivazione è valida solo per 48 ore. Se non ricevete le istruzioni Prova a controllare i filtri junk o spam.", + ], + "Resend activation" => [ + 0 => "Inviami di nuovo la email di attivazione", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Avete cambiato con successo la tua email account per %s", + ], + "Go to my profile" => [ + 0 => "Vai al mio profilo", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Un link di conferma verrà inviato a questa email con i dettagli per attivare l'account", + ], + "Your email address" => [ + 0 => "Il tuo indirizzo email", + ], + "Submit" => [ + 0 => "Invia", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Ti abbiamo inviata una email all'indirizzo email registrato con le indicazioni per reimpostare la password. Se non la hai ricevuta, verifica anche nelle cartelle spam o posta indesiderata.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Ti abbiamo già inviata una email con le indicazioni per reimpostare la password. Se non la hai ricevuta, verifica anche nelle cartelle spam o posta indesiderata.", + ], + "Resend instructions" => [ + 0 => "Invia di nuovo le istruzioni", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Inserisci il tuo nome utente o indirizzo email per continuare. Potrebbe essere necessario controllare la cartella o la lista bianca dello spam %s", + ], + "Username or Email address" => [ + 0 => "Username o indirizzo email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "La tua password è stata modificata. Ora puoi collegarti con la nuova password.", + ], + "Login now" => [ + 0 => "Collegati ora", + ], + "Enter your new password" => [ + 0 => "Inserisci la tua nuova password", + ], + "%d characters min" => [ + 0 => "Minimo %d caratteri", + ], + "Password strength" => [ + 0 => "Forza password", + ], + "Re-enter your new password" => [ + 0 => "Reinserisci la tua nuova password", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Una e-mail a %s è stato inviato con le istruzioni per attivare l'account. Se non ricevete le istruzioni Prova a controllare i filtri junk o spam.", + ], + "This content is private" => [ + 0 => "Questo contenuto è privato", + ], + "Sub album" => [ + 0 => "Sotto album ", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Vuoi davvero cancellare questo album e le relative immagini? Questa azione non può essere annullata.", + ], + "Upload to album" => [ + 0 => "Carica un album", + ], + "You like this" => [ + 0 => "Ti piace", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Prima di proseguire sei invitato a leggere ed ad attenerti alle seguenti condizioni:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Questo sito contiene informazioni, link e immagini di materiale sessualmente esplicito. Se siete sotto l'età di %s, se tale materiale si offende o se è illegale per visualizzare tale materiale nella vostra comunità si prega di non continuare.\n\nSono almeno %s anni di età e credo che come un adulto è mio diritto inalienabile di ricevere / visualizzare materiale sessualmente esplicito. Desidero ricevere / visualizzare materiale sessualmente esplicito.\n\nCredo che gli atti sessuali tra adulti consenzienti non sono né offensiva né osceni. La visualizzazione, lettura e il download di materiale sessualmente esplicito non viola le norme della mia comunità, città, città, stato o paese.\n\nIl materiale sessualmente esplicito che visualizzo è per mio uso personale e non voglio esporre i minori al materiale.\n\nIo sono l'unico responsabile per eventuali dichiarazioni false o di conseguenze legali di visualizzazione, la lettura o il download di qualsiasi materiale di questo sito. Inoltre questo sito né i suoi affiliati potranno essere ritenuti responsabili di eventuali conseguenze legali derivanti da accesso fraudolento nel o l'uso di questo sito web.\n\nQuesta schermata consenso costituisce un accordo legale tra questo sito e voi e / o qualsiasi attività commerciale in cui si dispone di alcun interesse legale. Se una qualsiasi parte di questo accordo è ritenuta inapplicabile da un tribunale della giurisdizione competente non pregiudica l'applicabilità delle altre parti del contratto.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Selezionando \"Accetto\" dichiari di aver letto e compreso tutte le condizioni riportate.", + ], + "I Agree" => [ + 0 => "Accetto", + ], + "documentation" => [ + 0 => "documentazione", + ], + "Learn about %s settings at our %d." => [ + 0 => "Scopri le impostazioni di %s nel nostro %d. ", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "L'IP di connessione viene determinato utilizzando la variabile server %var%. Se l'IP rilevato non corrisponde al tuo, significa che il tuo server Web è sotto un proxy e devi modificare il tuo server per impostare l'IP di connessione reale.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Per Nginx, è necessario utilizzare %nginx%. Per Apache, %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Assicurati di affrontare questo problema poiché il sistema si basa su rilevamenti IP accurati per fornire funzionalità di base e per proteggere da spam, inondazioni e attacchi di forza bruta.", + ], + "Disk used" => [ + 0 => "Spazio occupato su disco", + ], + "Queued" => [ + 0 => "In coda", + ], + "Working" => [ + 0 => "Lavoro", + ], + "Paused" => [ + 0 => "In pausa", + ], + "Canceled" => [ + 0 => "Annullata", + ], + "Completed" => [ + 0 => "Completato", + ], + "Top level folders as %s" => [ + 0 => "Cartelle di primo livello come %s", + ], + "Actions" => [ + 0 => "Azioni", + ], + "Process" => [ + 0 => "Processi", + ], + "Pause" => [ + 0 => "Pausa", + ], + "Cancel" => [ + 0 => "Annulla", + ], + "Process log" => [ + 0 => "Registro di processo", + ], + "Errors" => [ + 0 => "Errore", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Vuoi veramente rimuovere l'ID di importazione %s?", + ], + "Reset" => [ + 0 => "Ripristina", + ], + "Resume" => [ + 0 => "Riprendere", + ], + "Status" => [ + 0 => "Stato", + ], + "Run the following command to import content to Chevereto:" => [ + 0 => "Eseguire il seguente comando per importare il contenuto su Chevereto: ", + ], + "Read the %s for more information about this feature." => [ + 0 => "Leggi %s per ulteriori informazioni su questa funzione. ", + ], + "Add user" => [ + 0 => "Aggiungi utente", + ], + "Role" => [ + 0 => "Ruolo", + ], + "Manager" => [ + 0 => "Manager", + ], + "Administrator" => [ + 0 => "Amministratore", + ], + "Email address" => [ + 0 => "Indirizzo email", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Questa impostazione è sempre disabilitata quando si utilizza la modalità sito personale.", + ], + "Add category" => [ + 0 => "Aggiungi categoria", + ], + "Add IP ban" => [ + 0 => "Aggiungi blocco IP", + ], + "Add storage" => [ + 0 => "Aggiungi spazio di archiviazione", + ], + "Return to pages" => [ + 0 => "Torna alle pagine", + ], + "Website name" => [ + 0 => "Nome del sito web", + ], + "Website doctitle" => [ + 0 => "Doctitle sito web", + ], + "Website description" => [ + 0 => "Descrizione sito web", + ], + "Automatic" => [ + 0 => "Automatico", + ], + "Forced" => [ + 0 => "Costretto", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a utilizzerà il rilevamento HTTPS sul lato server (consigliato). %f utilizzerà HTTPS indipendentemente dall'impostazione del server. %d non usare affatto HTTPS.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Questo controlla solo il protocollo utilizzato negli URL, non trasformerà il tuo sito Web in un sito Web HTTPS valido se il tuo server non è configurato per supportare e utilizzare HTTPS.", + ], + "Default time zone" => [ + 0 => "Fuso orario predefinito", + ], + "Select region" => [ + 0 => "Seleziona la regione", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Abilita la ricerca di immagini, album ed utenti in base a specifica chiave di ricerca.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Abilita la visualizzazione delle immagini pubbliche. Inoltre abilita le categorie.", + ], + "guests" => [ + 0 => "ospiti", + ], + "Enables explore for guests." => [ + 0 => "Consente di esplorare per gli ospiti.", + ], + "Enables to browse images randomly." => [ + 0 => "Abilita la visualizzazione casuale delle immagini.", + ], + "Likes" => [ + 0 => "Piaciuti", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Consente agli utenti di usare i \"like\" e popolare l'elenco dei \"più graditi\".", + ], + "Followers allows users to follow each other." => [ + 0 => "Consente agli utenti di seguirsi.", + ], + "Website mode" => [ + 0 => "Modalità sito", + ], + "Community" => [ + 0 => "Comunità", + ], + "Personal" => [ + 0 => "Personale", + ], + "You can switch the website mode anytime." => [ + 0 => "Puoi modificare la modalità sito web in ogni momento.", + ], + "Personal mode target user" => [ + 0 => "Modalità personale utente di destinazione", + ], + "User ID" => [ + 0 => "ID utente", + ], + "Your user id is: %s" => [ + 0 => "Il tuo ID utente è: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "ID numerico dell'utente di destinazione per la modalità personale.", + ], + "Personal mode routing" => [ + 0 => "Percorso modalità personale", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Percorso personalizzato per mappare /username a /esempio. Utilizza \"/\" per mappare alla homepage.", + ], + "Website privacy mode" => [ + 0 => "Modalità privacy sito web", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "In modalità privata il sito è disponibile soltanto agli utenti iscritti.", + ], + "Content privacy mode" => [ + 0 => "Modalità privacy contenuto", + ], + "Default" => [ + 0 => "Predefinito", + ], + "Force private (self)" => [ + 0 => "Forza privato (sé stessi)", + ], + "Force private (anyone with the link)" => [ + 0 => "Imposta privato (chiunque tramite link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Le modalità di privacy forzata sostituiranno le modalità di privacy degli utenti selezionati.", + ], + "Page title" => [ + 0 => "Titolo pagina", + ], + "Page status" => [ + 0 => "Stato pagina", + ], + "Active page" => [ + 0 => "Pagina attiva", + ], + "Inactive page (%s)" => [ + 0 => "Pagina non attiva (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Saranno accessibili soltanto le pagine attive.", + ], + "Type" => [ + 0 => "Tipologia", + ], + "Terms of service" => [ + 0 => "Termini di servizio", + ], + "Privacy" => [ + 0 => "Privacy", + ], + "Contact" => [ + 0 => "Contatto", + ], + "Extra page" => [ + 0 => "Pagina aggiuntiva", + ], + "Internal page type" => [ + 0 => "Tipo di pagina interna", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Puoi avere più pagine extra, ma solo uno degli altri tipi interni speciali.", + ], + "Page visibility" => [ + 0 => "Visibilità pagina", + ], + "Visible page" => [ + 0 => "Pagina visibile", + ], + "Hidden page" => [ + 0 => "Pagina nascosta", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Le pagine nascoste non saranno mostrate nel menu, ma rimangono accessibili da chiunque tramite link diretto.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Soltanto caratteri alfanumerici, trattini e barra", + ], + "File path" => [ + 0 => "Percorso file", + ], + "A %f file relative to %s" => [ + 0 => "Un file %f relativo a %s", + ], + "Meta keywords" => [ + 0 => "Meta parole chiave", + ], + "Meta description" => [ + 0 => "Meta descrizione", + ], + "Source code" => [ + 0 => "Codice sorgente", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Nessuno permesso di scrittura nel percorso %s: sarà necessario aggiungere questo file usando un editor esterno.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Nessun permesso di scrittura in %s: sarà necessario modificare questo file con un editor esterno.", + ], + "Taken from: %s" => [ + 0 => "Preso da: %s", + ], + "Link URL" => [ + 0 => "URL link", + ], + "Link target attribute" => [ + 0 => "Attributo link target", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Seleziona %s per aprire la pagina o il link in una nuova finestra", + ], + "Link rel attribute" => [ + 0 => "Attributo link rel", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Soltanto caratteri alfanumerici, trattini e spazi bianchi", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "Attributo HTML &lt;a&gt; %s", + ], + "Link icon" => [ + 0 => "Link icona", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Controlla qui <a %s>icon reference</a> per l'elenco completo delle icone supportate.", + ], + "Sort order display" => [ + 0 => "VIsualizza ordinamento", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Display ordine pagina ordina per i menu ed elenchi. Usare \"1\" per la massima priorità.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Vuoi davvero eliminare la pagina con ID %s? Questa azione non può essere annullata.", + ], + "Enabled image formats" => [ + 0 => "Formati di immagine abilitati", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Sarà consentito caricare soltanto i tipi di immagine selezionati.", + ], + "Enable uploads" => [ + 0 => "Caricamenti", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Abilitare questa opzione se si desidera consentire il caricamento di immagini. Questa impostazione non influisce sugli amministratori.", + ], + "Upload user interface" => [ + 0 => "Carica l'interfaccia utente", + ], + "On-page container" => [ + 0 => "Contenitore in-page", + ], + "route" => [ + 0 => "itinerario", + ], + "Guest uploads" => [ + 0 => "Caricamenti anonimi", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Abilita quest'opzione se vuoi consentire a utenti non registrati di caricare immagini.", + ], + "Moderate uploads" => [ + 0 => "Caricamenti da moderare", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Abilita questa opzione per moderare i caricamenti in arrivo. Il contenuto di destinazione richiederà moderazione per l'approvazione.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Attiva i codici embed (uploader)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Abilitare questa opzione se si desidera visualizzare i codici embed quando il caricamento viene completato.", + ], + "Upload threads" => [ + 0 => "Carica le discussioni", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Numero di caricamenti simultanei.", + ], + "Redirect on single upload" => [ + 0 => "reindirizzamento singolo caricamento", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Abilita reindirizzamento alla pagina dell'immagine dopo singolo caricamento.", + ], + "Enable duplicate uploads" => [ + 0 => "Caricamenti duplicati", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Abilita questa opzione per consentire caricamenti duplicati dallo stesso IP nell'arco di 24 ore. Questa impostazione non ha effetto sugli amministratori.", + ], + "Enable expirable uploads" => [ + 0 => "Caricamenti con scadenza", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Abilita questa opzione per consentire caricamenti con cancellazione automatica.", + ], + "Auto delete guest uploads" => [ + 0 => "Cancellare automaticamente i guest upload", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Abilitare questa opzione se si desidera forzare i caricamenti degli ospiti per essere eliminati automaticamente dopo un certo tempo.", + ], + "Maximum image size" => [ + 0 => "La dimensione massima dell'immagine", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Immagini più grandi di queste dimensioni avranno automaticamente ridimensionato. Utilizzare zero (0) per non impostare un limite.", + ], + "Image Exif data" => [ + 0 => "Dati EXIF", + ], + "Keep" => [ + 0 => "Mantieni", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Seleziona l'impostazione predefinita per i dati <a %s>EXIF</a> nel caricamento.", + ], + "Image Exif data (user setting)" => [ + 0 => "Dati EXIF (impostazione utente)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Abilita questa opzione per consentire ad ogni utente di configurare la gestione dei dati EXIF.", + ], + "Maximum upload file size" => [ + 0 => "La dimensione massima del file di caricamento", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "La dimensione massima consentita dal server è %s. Questo limite è ricoperta da %u e %p (%f valori).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Uguale a \"%s\" ma per gli ospiti.", + ], + "Image path" => [ + 0 => "Percorso immagine", + ], + "Relative to Chevereto root" => [ + 0 => "Relativo alla root del sito web", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Percorso archiviazioni immagini. Relativo alla root del sito web.", + ], + "Storage mode" => [ + 0 => "Modalità spazio di archiviazione.", + ], + "Datefolders" => [ + 0 => "Datefolders", + ], + "Direct" => [ + 0 => "Diretto", + ], + "Datefolders creates %s structure" => [ + 0 => "Datefolders crea struttura %s", + ], + "File naming method" => [ + 0 => "Modalità denominazione file", + ], + "Original" => [ + 0 => "Originale", + ], + "Mix original + random" => [ + 0 => "Originale + casuale", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "Con \"originale\" è conservato il nome nativo, con \"casuale\" è generato un nome casuale, con \"ID\" il nome assegnato all'immagine corrisponde all'ID.", + ], + "Thumb size" => [ + 0 => "Formato miniature", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Le miniature avranno questo formato.", + ], + "Medium image fixed dimension" => [ + 0 => "Dimensione prefissata dell'immagine ridotta", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Se selezioni \"larghezza\", l'altezza sarà calcolata di conseguenza in automatico, e viceversa.", + ], + "Medium image fixed size" => [ + 0 => "Formato fisso delle immagini ridotte", + ], + "Width or height will be automatically calculated." => [ + 0 => "Larghezza od altezza saranno calcolate in automatico.", + ], + "Watermarks" => [ + 0 => "Filigrana", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Abilita questa opzione per inserire un logo od altro nelle immagini caricate.", + ], + "Watermark user toggles" => [ + 0 => "Alterna utente Watermark", + ], + "Enable watermark on guest uploads" => [ + 0 => "Abilita filigrana sui caricamenti di anonimi", + ], + "Enable watermark on user uploads" => [ + 0 => "Abilita filigrana sui caricamenti degli utenti", + ], + "Enable watermark on admin uploads" => [ + 0 => "Abilita watermark su uploads degli Admin", + ], + "Watermark file toggles" => [ + 0 => "Alterna i file Watermark", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Abilita filigrana nel caricamento di immagini GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Dimensione minima dell'immagine necessaria per applicare filigrana", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Immagini più piccolo rispetto a questo non saranno filigranata. Usare zero (0) per non impostare un limite minimo dimensioni dell'immagine.", + ], + "Watermark image" => [ + 0 => "Immagine filigrana", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Otterrete i migliori risultati con i loghi di pianura con ombra. È possibile utilizzare una grande immagine, se la dimensione del file non è così grande (consigliato max. È 16 KB). Deve essere un PNG", + ], + "Watermark position" => [ + 0 => "Posizione filigrana", + ], + "left top" => [ + 0 => "in alto a sinistra", + ], + "left center" => [ + 0 => "a sinistra", + ], + "left bottom" => [ + 0 => "in basso a sinistra", + ], + "center top" => [ + 0 => "in alto al centro", + ], + "center center" => [ + 0 => "al centro", + ], + "center bottom" => [ + 0 => "in basso al centro", + ], + "right top" => [ + 0 => "in alto a destra", + ], + "right center" => [ + 0 => "a destra", + ], + "right bottom" => [ + 0 => "in basso a destra", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Posizione relativa della filigrana. Prima allineamento orizzontale poi verticale.", + ], + "Watermark percentage" => [ + 0 => "Percentuale filigrana", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Dimensione percentuale della filigrana rispetto all'immagine di destinazione. Valore da 1 a 100.", + ], + "Watermark margin" => [ + 0 => "Margine watermark", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margine dal confine dell'immagine della filigrana.", + ], + "Watermark opacity" => [ + 0 => "Opacità watermark", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Opacità della filigrana nell'immagine finale filigranata. Valori da 0 a 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Dashboard> Impostazioni> Sito Web", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Categorie non funziona quando la funzione Explorer è disattivata. Per ripristinare questa impostazione andare a %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Vuoi davvero cancellare %s categoria? Questo non può essere annullata.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Nota: Eliminazione di una categoria non elimina le immagini che appartiene a quella categoria.", + ], + "Edit category" => [ + 0 => "Edita categoria", + ], + "Expires" => [ + 0 => "Scade", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Vuoi davvero eliminare il divieto alla IP %s? Questa azione non può essere annullata.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Agli indirizzi IP bloccati è inibito l'utilizzo dell'intero sito.", + ], + "Edit IP ban" => [ + 0 => "Edita l'indirizzo IP del ban", + ], + "Enable signups" => [ + 0 => "Attiva registrazione utenti", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Attiva questa opzione per consentire all'utente di registrarsi al sito", + ], + "Enable user content delete" => [ + 0 => "Abilita l'eliminazione dei contenuti utente", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Abilitare questa opzione se si desidera consentire agli utenti di eliminare i propri contenuti. Questa impostazione non riguarda gli amministratori.", + ], + "Minimum age required" => [ + 0 => "Età minima richiesta", + ], + "Empty" => [ + 0 => "Vuoto", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Lascia vuoto per non richiedono un'età minima per utilizzare il sito.", + ], + "Notify on user signup" => [ + 0 => "Notifica sulla registrazione dell'utente", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Abilita questa opzione se desideri ricevere una notifica via email per ogni nuova registrazione utente.", + ], + "Username routing" => [ + 0 => "Percorso nome utente", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Abilita questa opzione se vuoi usare l'URL %s/username invece di %s/user/username", + ], + "Require email confirmation" => [ + 0 => "Richiede mail di conferma", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Abilitare questa opzione se gli utenti devono confermare il proprio indirizzo e-mail per l'inscrizione", + ], + "Require email for social signup" => [ + 0 => "Richiedi e-mail per inscrizione dei social", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Abilita questa opzione se gli utenti che usano i social network per registrarsi devono fornire un indirizzo email.", + ], + "User avatar max. filesize" => [ + 0 => "Avatar utente massima dimensione del file", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Dimensione massima consentita per l'immagine avatar dell'utente. (Max consentito dal server è %s)", + ], + "User background max. filesize" => [ + 0 => "Dimensione massima per lo sfondo dell'utente", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Dimensione massima consentita per l'immagine di sfondo dell'utente. (Max consentito dal server è %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Mostra una schermata consenso prima di accedere al sito web. Utile per i siti web di contenuti per adulti in cui non dovrebbe essere consentito minori.", + ], + "Enable consent screen" => [ + 0 => "Abilita schermo consenso", + ], + "Consent screen cover image" => [ + 0 => "immagine di copertina schermo consenso", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Blocca l'Upload dell' immagine in base al suo IP se il sistema nota un comportamento anomalo in base al numero di arrivi per periodo di tempo. Questa impostazione non influisce sugli amministratori.", + ], + "Notify to email" => [ + 0 => "Notifica per e-mail", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Se attivato il sistema invierà una e-mail sui flood che subisce il sito", + ], + "Minute limit" => [ + 0 => "Limite in minuti", + ], + "Hourly limit" => [ + 0 => "Limite orario", + ], + "Daily limit" => [ + 0 => "Limite giornaliero", + ], + "Weekly limit" => [ + 0 => "Limite settimanale", + ], + "Monthly limit" => [ + 0 => "Limite mensile", + ], + "Lock %s editing" => [ + 0 => "Blocca la modifica di %s", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "Abilitalo per impedire agli utenti di modificare il flag NSFW. Se abilitato, solo l'amministratore e i gestori avranno questa autorizzazione.", + ], + "Show not safe content in listings" => [ + 0 => "Mostra contenuto non sicuro in lista", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Attivare questa opzione se si desidera visualizzare il contenuto non sicuro in inserzioni. Questa impostazione non influisce sugli amministratori e può essere soprascritta sulle proprie impostazioni di utente.", + ], + "Blur NSFW content in listings" => [ + 0 => "Contenuti Blur NSFW nelle inserzioni", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Attivare questa opzione se si desidera applicare un effetto di sfocatura sulle immagini NSFW nelle inserzioni.", + ], + "Show banners in not safe content" => [ + 0 => "Mostra banner nel contenuto non sicuro", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Abilitare questa opzione se si desidera visualizzare banner in pagine di contenuti non sicuri.", + ], + "Show not safe content in random mode" => [ + 0 => "Mostra contenuto non sicuro in modalità casuale", + ], + "List items per page" => [ + 0 => "Elenco articoli per pagina", + ], + "How many items should be displayed per page listing." => [ + 0 => "Quanti articoli devono essere visualizzati per pagina in elenco.", + ], + "List pagination mode" => [ + 0 => "Modalità di impaginazione Lista", + ], + "Endless scrolling" => [ + 0 => "Scrolling infinito", + ], + "Classic pagination" => [ + 0 => "Impaginazione Classica", + ], + "What pagination method should be used." => [ + 0 => "Quale metodo impaginazione deve essere utilizzato.", + ], + "Listing viewer" => [ + 0 => "Elenco visualizzatore", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Abilita questa opzione per utilizzare il visualizzatore della scheda quando fai clic su un'immagine.", + ], + "Image listing size" => [ + 0 => "Dimensioni lista Immagine", + ], + "Fluid" => [ + 0 => "Fluido", + ], + "Fixed" => [ + 0 => "Fisso", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Entrambi i metodi utilizzano una larghezza fissa, ma il metodo fluido utilizza altezze automatici.", + ], + "Album listing images requirement" => [ + 0 => "Requisito di immagini per elenco album", + ], + "explore" => [ + 0 => "Esplorare", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Imposta il numero minimo di immagini necessario per mostrare gli album in esplorazione.", + ], + "Listing columns number" => [ + 0 => "Numero colonne Lista", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Qui è possibile impostare il numero di colonne vengono utilizzate in base a ciascun dispositivo di destinazione.", + ], + "Phone" => [ + 0 => "Telefono", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Desktop", + ], + "Put your themes in the %s folder" => [ + 0 => "Mettere i temi nella cartella %s", + ], + "Tone" => [ + 0 => "Tono", + ], + "Light" => [ + 0 => "Chiaro", + ], + "Dark" => [ + 0 => "Scuro", + ], + "Main color" => [ + 0 => "Colore principale", + ], + "Hexadecimal color value" => [ + 0 => "Valore di colore esadecimale", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Usare questo per impostare il colore del tema principale. Il valore deve essere in <a href=\"%s\" target=\"_blank\">formato esadecimale</a>.", + ], + "Top bar button color" => [ + 0 => "Colore pulsante della top bar", + ], + "Blue" => [ + 0 => "Blu", + ], + "Green" => [ + 0 => "Verde", + ], + "Orange" => [ + 0 => "Arancio", + ], + "Red" => [ + 0 => "Rosso", + ], + "Grey" => [ + 0 => "Grigio", + ], + "Black" => [ + 0 => "Nero", + ], + "White" => [ + 0 => "Bianco", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Colore dei pulsanti come \"Crea account\" della top bar.", + ], + "Enable vector logo" => [ + 0 => "Abilita logo vettoriale", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Abilita logo del vettore per il logo di alta qualità in dispositivi con alta densità di pixel.", + ], + "Vector logo image" => [ + 0 => "Vector logo immagine", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Il logo del tuo sito web deve avere il formato SVG.", + ], + "Raster logo image" => [ + 0 => "Logo immagine raster", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Versione Bitmap per il logo del vostro sito web logo. Si raccomanda formato PNG.", + ], + "Logo height" => [ + 0 => "Aaltezza Logo", + ], + "No value" => [ + 0 => "Nessun valore", + ], + "Use this to set the logo height if needed." => [ + 0 => "Utilizzare questa opzione per impostare l'altezza per il logo, se necessario.", + ], + "Favicon image" => [ + 0 => "Immagine favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Immagine Favicon. L'immagine deve avere stessa larghezza e altezza.", + ], + "Image load max. filesize" => [ + 0 => "max dimensione del file Immagine di upload", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Per immagini con dimensioni maggiori di questa sarà disponibile l'opzione di visualizzazione a risoluzione originale.", + ], + "Enable download button" => [ + 0 => "Pulsante di download immagini", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Attivare questa opzione se si desidera visualizzare il pulsante per scaricare l'immagine", + ], + "Enable right click on image" => [ + 0 => "Abilitare tasto destro del mouse sull'immagine", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Attivare questa opzione se si desidera consentire l'uso del destro del mouse sulle immagini.", + ], + "Enable show Exif data" => [ + 0 => "Abilita mostrano dati Exif", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Attivare questa opzione se si desidera visualizzare immagini dati Exif.", + ], + "Enable social share" => [ + 0 => "Abilita la condivisione sociale", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Abilitare questa opzione se si desidera visualizzare i pulsanti dei social network per condividere i contenuti", + ], + "Enable embed codes (content)" => [ + 0 => "Attiva i codici embed (contenuto)", + ], + "Everybody" => [ + 0 => "Tutti", + ], + "Users only" => [ + 0 => "Solo utenti", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Abilitare questa opzione se si desidera visualizzare i codici embed per il contenuto.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Non sicuro checkbox contenuto in uploader", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Abilitare questa opzione se si desidera mostrare una casella di controllo per indicare il contenuto non è sicuro di upload.", + ], + "Custom CSS code" => [ + 0 => "Codice CSS personalizzato", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Metti qui il tuo codice CSS personalizzato. Esso sarà posto <style> appena prima della chiusura </head> tag.", + ], + "Custom JS code" => [ + 0 => "Codice JavaScript personalizzato", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Metti qui il tuo codice JS personalizzato. Esso sarà posto <script> appena prima della chiusura</head> tag.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Non usare il markup %s qui. Questo è per il semplice codice JS, non per i tag di script HTML. Se usi tag script qui interromperà il tuo sito web.", + ], + "Style" => [ + 0 => "Stile", + ], + "Landing page" => [ + 0 => "Arrivo pagina", + ], + "Split landing + images" => [ + 0 => "Split atterraggio + immagini", + ], + "Route %s" => [ + 0 => "Itinerario %s", + ], + "upload" => [ + 0 => "caricare", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Selezionare homepage stile.Per personalizzare ulteriormente modificare app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Immagine di copertina", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Vuoi davvero eliminare questa immagine? Questaazione non può essere annullata.", + ], + "Delete image" => [ + 0 => "Cancella immagine", + ], + "Add new cover image" => [ + 0 => "Aggiungere un'immagine nuova di copertina", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Questo verrà aggiunto all'interno della homepage %s tag. Lascia vuoto per utilizzare i contenuti di default.", + ], + "Paragraph" => [ + 0 => "Paragrafo", + ], + "Call to action button color" => [ + 0 => "Pulsante di invito all'azione colore", + ], + "Color of the homepage call to action button." => [ + 0 => "Colore della homepage del pulsante di invito all'azione.", + ], + "Call to action outline style button" => [ + 0 => "Invito all'azione pulsante stile contorno", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Attivare questa opzione per utilizzare lo stile contorno per homepage pulsante di invito all'azione.", + ], + "Call to action functionality" => [ + 0 => "Invito alla funzionalità azione", + ], + "Trigger uploader" => [ + 0 => "Grilletto uploader", + ], + "Open URL" => [ + 0 => "Apri URL", + ], + "Call to action URL" => [ + 0 => "Invito all'azione URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Immettere un assoluta o URL relativa", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Un URL relativo come% sarà mappato%l", + ], + "Call to action HTML" => [ + 0 => "Invito all'azione HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Questo verrà aggiunto all'interno della chiamata di tag all'azione <a>. Lascia vuoto per utilizzare i contenuti di default.", + ], + "User IDs" => [ + 0 => "Utente IDs", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Elenco separato da virgole di ID utente di destinazione per mostrare le immagini sulla homepage. Lascialo vuoto o zero per visualizzare tutte le immagini recenti.", + ], + "Automatic updates check" => [ + 0 => "controllare gli aggiornamenti automatici", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Quando si consente al sistema controllerà automaticamente i nuovi aggiornamenti.", + ], + "Display available updates notification" => [ + 0 => "Mostra aggiornamenti disponibili in notifica", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Abilita questo per mostrare un avviso in alto che avvisa sui nuovi aggiornamenti di sistema disponibili.", + ], + "Dump update query" => [ + 0 => "Dump query di aggiornamento", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Abilitare questa opzione se si desidera rilevare e impostare automaticamente la lingua giusta per ciascun utente.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URL", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Abilita questa opzione se desideri utilizzare gli URL di %s SEO.", + ], + "Maintenance" => [ + 0 => "Manutenzione", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Quando è abilitato il sito mostrerà un messaggio di manutenzione. Questa impostazione non influisce sugli amministratori.", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Questo codice alfanumerico è stato generato al momento dell'installazione.", + ], + "PHP error reporting" => [ + 0 => "segnalazione del PHP errori", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Attivare questa opzione se si desidera stampare gli errori generati dal PHP <a %s> error_reporting () </a>. Questo dovrebbe essere disattivata in produzione.", + ], + "Debug level" => [ + 0 => "livello di debug", + ], + "None" => [ + 0 => "nessuno", + ], + "Error log" => [ + 0 => "Log di errore", + ], + "Print errors without error log" => [ + 0 => "Errori di stampa senza log degli errori", + ], + "Print and log errors" => [ + 0 => "Errori di stampa e di registro", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Per configurare il controllo del livello di debug <a %s> documentazione di debug </a>. Il livello di default è \"Protocollo errori\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." => [ + 0 => "Il routing (instradamento ) ti consente di personalizzare al volo i collegamenti di percorso predefiniti. Sono consentiti solo caratteri alfanumerici, trattini e trattini bassi. ", + ], + "Image routing" => [ + 0 => "Immmagine routing", + ], + "Routing for %s" => [ + 0 => "Routing per %s", + ], + "Album routing" => [ + 0 => "Instradamento dell'album", + ], + "Hostname" => [ + 0 => "Nome host", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Nome host su cui verranno aggiunti i caratteri jolly del sotto dominio.", + ], + "This setting may be overridden by %s." => [ + 0 => "Questa impostazione può essere ignorata da %s.", + ], + "Language subdomains" => [ + 0 => "Sotto domini di lingua", + ], + "languages" => [ + 0 => "le lingue", + ], + "Enable to use %s for %t." => [ + 0 => "Abilita per usare %s per %t.", + ], + "Username subdomains" => [ + 0 => "Sotto domini del nome utente", + ], + "user profiles" => [ + 0 => "profili utente", + ], + "Custom language strings" => [ + 0 => "stringhe lingua personalizzata", + ], + "Default language" => [ + 0 => "Lingua del sito", + ], + "Default base language to use." => [ + 0 => "Lingua di base predefinita da utilizzare nel sito", + ], + "Auto language" => [ + 0 => "Scelta della lingua automatica", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Attivare questa opzione se si desidera rilevare automaticamente e impostare la lingua giusta per ogni utente.", + ], + "Language chooser" => [ + 0 => "Scelta Lingua", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Attivare questa opzione se si desidera consentire la selezione della lingua.", + ], + "Enabled languages" => [ + 0 => "lingue attivate", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Lingue che non devono essere utilizzate nel vostro sito web.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Alterna questa opzione per abilitare o disabilitare HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Alterna questa opzione per abilitare o disabilitare la memorizzazione", + ], + "Quota" => [ + 0 => "Quota", + ], + "Active" => [ + 0 => "Attivo", + ], + "Storage method" => [ + 0 => "Metodo di memorizzazione", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "L'archiviazione locale è utilizzata per impostazione predefinita o quando non è attiva quella esterna.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Se hai bisogno di aiuto controllare la <a %s> documentazione di stoccaggio </a>.", + ], + "Edit storage" => [ + 0 => "Modifica di archiviazione", + ], + "From name" => [ + 0 => "Dal nome", + ], + "Sender name for emails sent to users." => [ + 0 => "Nome email che riceveranno gli utenti", + ], + "From email address" => [ + 0 => "Dall'indirizzo email", + ], + "Sender email for emails sent to users." => [ + 0 => "Indirizzo email per le comunicazioni agli utenti", + ], + "Incoming email address" => [ + 0 => "Indirizzo email per le comunicazioni in arrivo", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Destinatario del modulo di contatto e degli avvisi di sistema.", + ], + "Email mode" => [ + 0 => "Modalità di invio Email", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Come inviare e-mail? SMTP raccomandato.", + ], + "SMTP server and port" => [ + 0 => "SMPT porta del server", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP username", + ], + "SMTP password" => [ + 0 => "SMTP password", + ], + "SMTP security" => [ + 0 => "SMTP sicurezza", + ], + "Unsecured" => [ + 0 => "Non garantito", + ], + "Decode ID" => [ + 0 => "Decodifica ID", + ], + "Encode ID" => [ + 0 => "Codifica ID", + ], + "Send test email" => [ + 0 => "Invia emai prova", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Utilizzare questo per verificare come vengono consegnate le vostre email. Si consiglia di utilizzare %s.", + ], + "Export a user" => [ + 0 => "Esporta un utente", + ], + "Export user" => [ + 0 => "Esporta utente", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Ciò ti consentirà di scaricare le informazioni personali standard dell'utente in formato JSON.", + ], + "Regenerate external storage stats" => [ + 0 => "Rigenera le statistiche di archiviazione esterna", + ], + "Storage id" => [ + 0 => "ID di archiviazione", + ], + "Regenerate" => [ + 0 => "Rigenerare", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Questo ricalcola la somma di tutti i record di immagine associati alla memoria esterna di destinazione.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Migrare i record di immagini da una memoria esterna a un'altra", + ], + "Source storage id" => [ + 0 => "ID di archiviazione di origine", + ], + "Target storage id" => [ + 0 => "ID di archiviazione di destinazione", + ], + "Migrate" => [ + 0 => "Migrare", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Questo aggiorna solo il database. È necessario trasferire i file effettivi nel contenitore di archiviazione di destinazione da soli. La riscrittura dell'URL è fortemente raccomandata. Utilizzare zero (0) per l'archiviazione locale.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Hai bisogno di un <a href=\"https://developers.facebook.com/\" target=\"_blank\"> Facebook app </a> per questo.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app segreta", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Hai bisogno di un <a href=\"https://apps.twitter.com\" target=\"_blank\"> Twitter app </a> per questo.", + ], + "Twitter API key" => [ + 0 => "Twitter API chiave", + ], + "Twitter API secret" => [ + 0 => "Twitter API segreta", + ], + "Twitter account" => [ + 0 => "Account twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Hai bisogno di un <a href=\"https://cloud.google.com/console\" target=\"_blank\"> Google app </a> per questo.", + ], + "Google client id" => [ + 0 => "Google cliente id", + ], + "Google client secret" => [ + 0 => "Google cliente segreta", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Avete bisogno di un <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> per questo.", + ], + "VK client id" => [ + 0 => "VK id cliente ", + ], + "VK client secret" => [ + 0 => "VK cliente segreta", + ], + "%s spam protection" => [ + 0 => "%s spam protezione", + ], + "user generated content" => [ + 0 => "contenuto generato dall'utente", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Abilita questo per usare % per bloccare lo spam %c.", + ], + "%s API key" => [ + 0 => "%s API key", + ], + "user signup" => [ + 0 => "iscrizione utente", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Avete bisogno di un <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> per questo.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Si noti che ciascuna versione di reCAPTCHA richiede il proprio set di chiavi. Non dimenticare di aggiornare le chiavi se cambi le versioni.", + ], + "%s site key" => [ + 0 => "%s chiave del sito", + ], + "%s secret key" => [ + 0 => "%s chiave segreta", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA soglia", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Quanti tentativi falliti sono necessarie per chiedere reCAPTCHA? Usare zero (0) per mostrare sempre reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Forza %s nella pagina dei contatti.", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Abilita questo per mostrare sempre %s nella pagina dei contatti.", + ], + "Comments API" => [ + 0 => "Commenti API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API lavora con %s", + ], + "Disqus shortname" => [ + 0 => "Disqus nomecorto", + ], + "%s public key" => [ + 0 => "%s chiave pubblica", + ], + "Comment code" => [ + 0 => "Codice di commento", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook e tutto quello che vuoi. Sarà usato in visualizzazione dell'immagine per condividerla", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "Modera automaticamente il contenuto utilizzando il servizio %s.", + ], + "Automatic approve" => [ + 0 => "Approvazione automatica", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Abilitalo per approvare automaticamente i contenuti moderati da questo servizio.", + ], + "Block content" => [ + 0 => "Blocca contenuto", + ], + "Adult" => [ + 0 => "Adulto", + ], + "Teen and adult" => [ + 0 => "Adolescente e adulto", + ], + "Flag NSFW" => [ + 0 => "Segnala NSFW", + ], + "Analytics code" => [ + 0 => "Codice di Google Analytics", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics o tutto quello che vuoi. Sarà aggiunto al piè di pagina del tema.", + ], + "API v1 key" => [ + 0 => "API v1 key", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Utilizzare questo tasto quando si utilizza i <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Percorso Plugin", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Abilita questo per visualizzare le istruzioni del plugin a %u. Un link a queste istruzioni verrà aggiunto al menu %s. Questa impostazione non riguarda gli amministratori.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Utilizza questo per impostare una URL personalizzato per %p. Tieni presente che devi replicare manualmente %s in questa URL.", + ], + "Cookie law compliance" => [ + 0 => "Conformità normativa Cookie", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Attivare questa opzione per visualizzare un messaggio che è conforme ai requisiti di legge Cookie UE. Nota: è necessario solo questo se il vostro sito è ospitato nella UE e se si aggiunge tracking cookie.", + ], + "Save changes" => [ + 0 => "Salva cambiamenti", + ], + "Check the errors to proceed." => [ + 0 => "Controllare gli errori per procedere.", + ], + "Play GIF" => [ + 0 => "Riproduci GIF", + ], + "Load 360° view" => [ + 0 => "Carica vista a 360° ", + ], + "Load full resolution" => [ + 0 => "Caricare con una piena risoluzione", + ], + "%s image" => [ + 0 => "%s immagine ", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "Vuoi davvero rimuovere tutto il contenuto selezionato? Questo non può essere annullato.", + ], + "This is the album cover" => [ + 0 => "Questa è la copertina dell'album ", + ], + "Cover" => [ + 0 => "Copertina", + ], + "Added to %a and categorized in %c" => [ + 0 => "Aggiunto a %a e classificati in%c", + ], + "Added to %s" => [ + 0 => "Aggiunto a %s", + ], + "Uploaded to %s" => [ + 0 => "Caricato in %s", + ], + "Uploaded %s" => [ + 0 => "Caricati %s", + ], + "Less Exif data" => [ + 0 => "Meno dati Exif", + ], + "More Exif data" => [ + 0 => "Altro Exif dati", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "Upload and share your images." => [ + 0 => "Carica e condividi le tue immagini", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Trascina e rilascia le immagini ovunque sullo schermo per iniziare il caricamento. Il limite è di %s. Collegamenti immagine diretto, BBCode e HTML miniature.", + ], + "Start uploading" => [ + 0 => "Inizia il caricamento", + ], + "Sign up to unlock all the features" => [ + 0 => "Iscriviti per accedere a tutte le funzionalità del sito", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Gestisci i tuoi contenuti, crea album privati​​, personalizza il tuo profilo e molto altro.", + ], + "Sign in with your account" => [ + 0 => "Accedi con il tuo account", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Non hai un account? <a href='%s'>Iscriviti</a> ora.", + ], + "Logged out" => [ + 0 => "Disconnesso", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Sei stato disconnesso %s.Spero di rivederti presto", + ], + "Go to homepage" => [ + 0 => "Vai alla home page", + ], + "Website under maintenance" => [ + 0 => "Sito in manutenzione", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Stiamo eseguendo operazioni di manutenzione programmata nel sito. Si prega di tornare tra pochi minuti.", + ], + "This content is password protected." => [ + 0 => "Questo contenuto è protetto da password.", + ], + "Please enter your password to continue." => [ + 0 => "Si prega di inserire la password per continuare", + ], + "Send" => [ + 0 => "Invia", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Aggiungi l'upload dell'immagine al tuo sito web, blog o forum installando il nostro plug-in per il caricamento. Fornisce l'upload di immagini a qualsiasi sito web posizionando un pulsante che permetterà agli utenti di caricare direttamente immagini al nostro servizio e gestirà automaticamente i codici necessari per l'inserimento. Tutte le funzioni incluse come trascinamento, rilascio remoto, ridimensionamento delle immagini e altro ancora.", + ], + "Supported software" => [ + 0 => "Software supportato", + ], + "supported software" => [ + 0 => "Software supportato", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Il plugin funziona in qualsiasi sito web con contenuti modificabili dall'utente e per %sv, metterà un pulsante di caricamento che corrisponderà alla barra degli strumenti dell'editor di destinazione in modo che non sia necessaria alcuna personalizzazione aggiuntiva.", + ], + "Add it to your website" => [ + 0 => "Aggiungilo al tuo sito web", + ], + "options" => [ + 0 => "opzioni", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Copia e incolla il codice plug-in nel codice HTML del tuo sito web (preferibilmente all'interno della sezione di testa). Ci sono molti %o per adattarla meglio alle tue esigenze.", + ], + "Basic options" => [ + 0 => "Opzioni di base", + ], + "Color palette" => [ + 0 => "Palette dei colori", + ], + "Button color scheme" => [ + 0 => "Schema colore dei pulsanti", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Incorpora i codici che verranno inseriti automaticamente nella casella di testo", + ], + "Sibling selector" => [ + 0 => "Selettore", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Selettore di elementi di sintonia in cui posizionare il pulsante accanto", + ], + "Sibling position" => [ + 0 => "Posizione del Selettore", + ], + "After" => [ + 0 => "Dopo", + ], + "Before" => [ + 0 => "Prima", + ], + "Position relative to sibling element" => [ + 0 => "Posizione relativa all'elemento del selettore", + ], + "Advanced options" => [ + 0 => "Opzioni avanzate", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Il plugin dispone di un vasto set di opzioni aggiuntive che consentono una completa personalizzazione. È possibile utilizzare HTML personalizzato, CSS, la propria tavolozza di colori, impostare gli osservatori e altro ancora. Controlla la %d e la fonte plugin per avere un'idea migliore di queste opzioni avanzate.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Attenzione Tu non hai i permessi per accedere a questa pagina o il link oppure è scaduto.", + ], + "Search results" => [ + 0 => "Risultati della ricerca", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Vuoi davvero eliminare questo utente? Attenzione, questa azione non può essere annullata", + ], + "Delete user" => [ + 0 => "Cancella utente", + ], + "Register date" => [ + 0 => "Data registrazione", + ], + "Registration IP" => [ + 0 => "Registrazione IP", + ], + "Valid" => [ + 0 => "Valdo", + ], + "Banned" => [ + 0 => "Bannato", + ], + "Awaiting email" => [ + 0 => "In attesa di e-mail", + ], + "Awaiting confirmation" => [ + 0 => "In attesa di conferma", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i a %f caratteri<br>Lettere, numeri e \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Eliminazione automatica contenuti", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Questa impostazione si applica a tutte le vostre immagini caricate per impostazione predefinita. È possibile ignorare questa impostazione su ogni upload.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Mantenere immagine <a %s> Exif </a> dati durante il caricamento", + ], + "Newsletter" => [ + 0 => "Newsletter", + ], + "Send me emails with news about %s" => [ + 0 => "Inviami email con notizie su %s", + ], + "Content settings" => [ + 0 => "Impostazioni contenuti", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Mostra contenuto non sicuro in lista (da altri)", + ], + "Language" => [ + 0 => "Lingua", + ], + "Timezone" => [ + 0 => "Fuso orario", + ], + "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." => [ + 0 => "Questo servizio è fornito da %website_name%, siamo un fornitore di servizi indipendente. Molte grazie per il vostro continuo supporto. ", + ], + "At %website_name% we are proudly using and supporting %software%." => [ + 0 => "In %website_name% utilizziamo e supportiamo con orgoglio %software%. ", + ], + "Current password" => [ + 0 => "Password attuale", + ], + "Enter your current password" => [ + 0 => "Immettere la password corrente", + ], + "New password" => [ + 0 => "Nuova password", + ], + "Confirm new password" => [ + 0 => "Conferma nuova password", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Aggiungere una password per poter accedere utilizzando il tuo username o email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "L'utente non dispone di una password. Aggiungere una utilizzando questo modulo.", + ], + "Enter your password" => [ + 0 => "Inserisci la tua password", + ], + "Confirm password" => [ + 0 => "Conferma password", + ], + "Re-enter your password" => [ + 0 => "Rimettere la password", + ], + "Upload avatar" => [ + 0 => "Carica avatar ", + ], + "Make my profile and identity totally private" => [ + 0 => "Fare il mio profilo e identità totalmente privato", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Attivare questa opzione se si vuole agire come un utente anonimo", + ], + "This is your real name, not your username." => [ + 0 => "Questo è il tuo vero nome, non il nome utente.", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "Bio", + ], + "Tell us a little bit about you" => [ + 0 => "Raccontaci un po 'di te", + ], + "User has no connections." => [ + 0 => "L'utente non ha connessioni.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Collega il tuo account a servizi esterni per poter accedere e condividere contenuti.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Vuoi davvero scollegarti %s da questo account?", + ], + "This account is connected to %s" => [ + 0 => "Questo account è collegato a %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Vuoi davvero scollegare questo %s account?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Sarai disconnesso e non sarai in grado di accedere al tuo account utilizzando questo %s account.", + ], + "Your account is connected to %s" => [ + 0 => "Il tuo account è collegato a %s", + ], + "disconnect" => [ + 0 => "scollegare", + ], + "Connect %s" => [ + 0 => "Collegare %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Divertiti a sfogliare e scoprire tutte le mie immagini ed i miei album condivisi!", + ], + "Button" => [ + 0 => "Bottone", + ], + "View all my images" => [ + 0 => "Visualizza tutte le mie immagini", + ], + "Login" => [ + 0 => "Accesso", + ], + "Already have an account? %s now." => [ + 0 => "Hai già un account? %s adesso.", + ], + "resend account activation" => [ + 0 => "inviare nuovamente attivazione dell'account", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Se ti sei già registrato forse devi richiedere a %s di attivare il tuo account.", + ], + "You can also %s." => [ + 0 => "Puoi anche %s.", + ], + "I'm at least %s years old" => [ + 0 => "Ho più di %s anni", + ], + "terms" => [ + 0 => "condizioni", + ], + "privacy policy" => [ + 0 => "politica sulla riservatezza", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Accetto i termini %terms_link e %privacy_link", + ], + "Upload profile background" => [ + 0 => "Carica lo sfondo per il tuo profilo", + ], + "Change background" => [ + 0 => "Cambia sfondo", + ], + "Upload new image" => [ + 0 => "Carica nuova immagine", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "L'immagine di sfondo del profilo sarà cancellata. Questa azione non può essere annullata. Sei sicuro di voler eliminare l'immagine di sfondo del profilo?", + ], + "Delete background" => [ + 0 => "Elimina sfondo", + ], + "Follower" => [ + 0 => "Seguace", + 1 => "Seguaci", + ], + "Follow" => [ + 0 => "Seguire", + ], + "You have been forbidden to use this website." => [ + 0 => "Non sei autorizzato ad utilizzare questo sito web.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "Page %s" => [ + 0 => "Pagina %s", + ], + "General questions/comments" => [ + 0 => "Domande generali/commenti", + ], + "DMCA complaint" => [ + 0 => "Reclamo DMCA", + ], + "Invalid message" => [ + 0 => "Messaggio non valido", + ], + "Invalid subject" => [ + 0 => "Soggetto non valido", + ], + "Mail error" => [ + 0 => "Errore email", + ], + "Message sent" => [ + 0 => "Messaggio inviato", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Messaggio inviato. Sarai ricontattato il prima possibile.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Se si desidera inviare un messaggio compila il form sottostante.", + ], + "Your name" => [ + 0 => "Il tuo nome", + ], + "Subject" => [ + 0 => "Soggetto", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Tutte le modifiche apportate andranno perse se si continua.", + ], + "Changes saved successfully." => [ + 0 => "Modifiche salvate con successo.", + ], + "Go back to form" => [ + 0 => "Torna al form", + ], + "continue anyway" => [ + 0 => "Continua comunque", + ], + "Saving" => [ + 0 => "Salvataggio", + ], + "Sending" => [ + 0 => "Invio", + ], + "Confirm action" => [ + 0 => "Conferma", + ], + "information" => [ + 0 => "informazioni", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/ja.po.cache.php b/app/.cache/languages/ja.po.cache.php new file mode 100644 index 0000000..fd5493b --- /dev/null +++ b/app/.cache/languages/ja.po.cache.php @@ -0,0 +1,3818 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:14+0000', + 'PO-Revision-Date' => '2020-09-02 17:14+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'ja', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "有効なメールアドレスではありません。", + ], + "Invalid username" => [ + 0 => "無効なユーザ名です。", + ], + "Invalid password" => [ + 0 => "有効なパスワードではありません。", + ], + "Invalid website mode" => [ + 0 => "無効なウェブサイトモードです。", + ], + "From email address" => [ + 0 => "送信元メールアドレス", + ], + "Sender email for emails sent to users." => [ + 0 => "ユーザに送信するメールの送信元アドレス", + ], + "Incoming email address" => [ + 0 => "受信メールアドレス", + ], + "Recipient for contact form and system alerts." => [ + 0 => "システム警告、連絡先フォームからの受信者", + ], + "Website mode" => [ + 0 => "ウェブサイトモード", + ], + "You can switch the website mode anytime." => [ + 0 => "いつでもWebサイトのモードを切替可能です。", + ], + "Community" => [ + 0 => "コミュニティ", + ], + "Personal" => [ + 0 => "個人", + ], + "Installed version is v%s" => [ + 0 => "インストールされているバージョンは v%s", + ], + "Can't connect to %s" => [ + 0 => "%s に接続できません。", + ], + "Last available release is v%s" => [ + 0 => "最新版は v%s です", + ], + "Update needed, proceeding to download" => [ + 0 => "更新が必要です、ダウンロードをおこないます。", + ], + "No update needed" => [ + 0 => "更新の必要はありません。", + ], + "System files already up to date" => [ + 0 => "システムファイルは既に更新されています。", + ], + "Starting v%s download" => [ + 0 => "v%sのダウンロードを開始しています。", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%sのダウンロードが完了しました。抽出しています。", + ], + "Attempting to extract v%s" => [ + 0 => "v%sの抽出を試みています。", + ], + "Extraction completed" => [ + 0 => "抽出が完了しました。", + ], + "Proceding to install the update" => [ + 0 => "更新のインストールが進行中", + ], + "Update failed" => [ + 0 => "更新に失敗しました。", + ], + "Update in progress" => [ + 0 => "進行中の更新", + ], + "Missing %s file" => [ + 0 => "ファイル: %s が見つかりません。", + ], + "Invalid license info" => [ + 0 => "無効なライセンス情報です。", + ], + "Invalid license key" => [ + 0 => "無効なライセンスキーです。", + ], + "Can't save file" => [ + 0 => "ファイルを保存できませんでした。", + ], + "Can't download %s" => [ + 0 => "%s をダウンロードできません。", + ], + "Can't extract %s" => [ + 0 => "%s を抽出できません。", + ], + "Can't create %s directory - %e" => [ + 0 => "%sディレクトリを作成できません - %e", + ], + "Can't update %s file - %e" => [ + 0 => "%sファイルを更新できません - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "先に進むためには、フォーム内のエラーを修正してください。", + ], + "You must enter the album name." => [ + 0 => "アルバム名を入力して下さい。", + ], + "Confirm" => [ + 0 => "確認", + ], + "The content has been approved." => [ + 0 => "コンテンツは承認されました。", + ], + "Select existing album" => [ + 0 => "既に存在するアルバムを選択", + ], + "An error occurred. Please try again later." => [ + 0 => "エラーが発生しました。後ほど、再度お試し下さい。", + ], + "Please select a valid image file type." => [ + 0 => "有効な画像ファイル形式を選択して下さい。", + ], + "Please select a picture of at most %s size." => [ + 0 => "%s以内の画像を選択して下さい。", + ], + "Profile image updated." => [ + 0 => "プロフィール画像をアップロード", + ], + "Profile background image updated." => [ + 0 => "プロフィールの背景画像をアップロード", + ], + "Profile background image deleted." => [ + 0 => "プロフィールの背景画像が削除されました。", + ], + "Error deleting profile background image." => [ + 0 => "プロフィールページの背景画像の削除でエラーが発生しました。", + ], + "Passwords don't match" => [ + 0 => "パスワードが一致しません。", + ], + "Update available v%s" => [ + 0 => "v%sの更新が利用可能です。", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "このシステムで利用可能な更新が存在します。このアップデートを自動でダウンロードしてインストールするか、%sにアクセスしてダウンロードをすることができます。", + ], + "The release notes for this update are:" => [ + 0 => "このアップデートのリリースノート:", + ], + "Update now" => [ + 0 => "今すぐ更新する", + ], + "or" => [ + 0 => "または", + ], + "cancel" => [ + 0 => "キャンセル", + ], + "This website is running latest %s version" => [ + 0 => "このサイトは、最新の %s 版で動作しています", + ], + "loading" => [ + 0 => "読み込み中", + ], + "Toggle select" => [ + 0 => "選択をトグル", + ], + "Like" => [ + 0 => "いいね!", + ], + "Toggle flag" => [ + 0 => "フラグをトグル", + ], + "Edit" => [ + 0 => "編集", + ], + "Album" => [ + 0 => "アルバム", + ], + "Approve" => [ + 0 => "承認", + ], + "Delete" => [ + 0 => "削除", + ], + "Close" => [ + 0 => "閉じる", + ], + "Previous" => [ + 0 => "前へ", + ], + "Next" => [ + 0 => "次へ", + ], + "Clipboard image" => [ + 0 => "クリップボードの画像", + ], + "File too big." => [ + 0 => "ファイルが大きすぎます。", + ], + "Invalid or unsupported file format." => [ + 0 => "無効か非対応のファイル形式です。", + ], + "Some files couldn't be added" => [ + 0 => "いくつかのファイルが追加できませんでした。", + ], + "image" => [ + 0 => "画像", + ], + "%s's Albums" => [ + 0 => "%sさんのアルバム", + ], + "Image edited successfully." => [ + 0 => "画像の編集が完了しました。", + ], + "private" => [ + 0 => "非公開", + ], + "Album edited successfully." => [ + 0 => "アルバムの編集が完了しました。", + ], + "Invalid URL key." => [ + 0 => "無効なURLキーです。", + ], + "Category URL key already being used." => [ + 0 => "このカテゴリURLキーは、既に使用されています。", + ], + "Category successfully deleted." => [ + 0 => "カテゴリの削除が完了しました。", + ], + "Category %s added." => [ + 0 => "カテゴリ: %s を追加しました。", + ], + "Invalid expiration date." => [ + 0 => "無効な期限です。", + ], + "IP %s already banned." => [ + 0 => "IPアドレス: %s はアクセス禁止となっています。", + ], + "IP %s banned." => [ + 0 => "IPアドレス: %s はアクセス禁止となっています。", + ], + "IP ban successfully deleted." => [ + 0 => "このIPアドレスのアクセス禁止を解除しました。", + ], + "Please fill all the required fields." => [ + 0 => "必須の項目全てに入力して下さい。", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "ストレージ容量が不正です。有効なフォーマットかを確認して下さい。", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "ストレージ容量は現在の使用量 (%s)より小さくできません。", + ], + "Invalid URL." => [ + 0 => "無効なURLです。", + ], + "Storage successfully edited." => [ + 0 => "ストレージの編集が完了しました。", + ], + "User added successfully." => [ + 0 => "ユーザの追加が完了しました。", + ], + "The content has been deleted." => [ + 0 => "コンテンツは削除されました。", + ], + "The content has been moved." => [ + 0 => "コンテンツは移動しました。", + ], + "Select" => [ + 0 => "選択", + ], + "Unselect" => [ + 0 => "選択を解除", + ], + "The content has been edited." => [ + 0 => "コンテンツの編集が完了しました。", + ], + "Import job ID %s added successfully, you can process the import now" => [ + 0 => "インポートジョブID %s の追加に成功しました、インポートを行えます", + ], + "Select number of threads" => [ + 0 => "スレッドの数を選択", + ], + "Import job ID %s is being processed now" => [ + 0 => "インポートジョブID %s は、現在処理中です", + ], + "Import ID %s removed" => [ + 0 => "インポートID %s は削除されました", + ], + "Spam detected" => [ + 0 => "迷惑行為を検知しました", + ], + "album" => [ + 0 => "アルバム", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "不正な動作を検知しました。%time%回に%content%を%limit%までアップロードできます。", + ], + "Untitled" => [ + 0 => "名称未設定", + ], + "%s's images" => [ + 0 => "%sさんの画像", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "注:このコンテンツは非公開ですが、リンクから誰でも閲覧することができます。", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "注:このコンテンツはパスワードで保護されています。コンテンツを共有するためには、コンテンツ用パスワードも共有してください。", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "注意:このコンテンツは非公開です。公開するためには、プライバシー設定を変更して下さい。", + ], + "Private" => [ + 0 => "非公開", + ], + "Public" => [ + 0 => "公開", + ], + "Me" => [ + 0 => "自分", + ], + "Link" => [ + 0 => "リンク", + ], + "Password" => [ + 0 => "パスワード", + ], + "view" => [ + 0 => "回", + ], + "After %n %t" => [ + 0 => "%n以降%t", + ], + "minute" => [ + 0 => "分", + ], + "hour" => [ + 0 => "時間", + ], + "day" => [ + 0 => "日", + ], + "week" => [ + 0 => "週", + ], + "month" => [ + 0 => "月", + ], + "year" => [ + 0 => "年", + ], + "Don't autodelete" => [ + 0 => "自動削除しない", + ], + "Duplicated upload" => [ + 0 => "重複したアップロード", + ], + "Private upload" => [ + 0 => "非公開アップロード", + ], + "like" => [ + 0 => "いいね!", + ], + "Recent" => [ + 0 => "最新", + ], + "Trending" => [ + 0 => "流行", + ], + "Top users" => [ + 0 => "トップユーザ", + ], + "Most recent" => [ + 0 => "最も最新", + ], + "Oldest" => [ + 0 => "古い順", + ], + "Most viewed" => [ + 0 => "閲覧順", + ], + "Popular" => [ + 0 => "人気", + ], + "Most liked" => [ + 0 => "もっともいいね!されている", + ], + "Explore" => [ + 0 => "もっと見る", + ], + "Animated" => [ + 0 => "アニメーション", + ], + "Search" => [ + 0 => "検索", + ], + "People" => [ + 0 => "人々", + ], + "Image" => [ + 0 => "画像", + ], + "User" => [ + 0 => "ユーザ", + ], + "adult" => [ + 0 => "アダルト", + ], + "teen" => [ + 0 => "未成年", + ], + "Content of type %s is forbidden" => [ + 0 => "コンテンツタイプ %s は許可されていません。", + ], + "Can't create %s destination dir" => [ + 0 => "転送先ディレクトリ %s が作成できません。", + ], + "Can't open %s for writing" => [ + 0 => "書込み権限で %s を開けません。", + ], + "Internal" => [ + 0 => "内部", + ], + "Can't insert storage." => [ + 0 => "ストレージを追加できません", + ], + "Can't update storage details." => [ + 0 => "ストレージの詳細を更新できません", + ], + "requires %s" => [ + 0 => "%sが必要", + ], + "Unlimited" => [ + 0 => "無制限", + ], + "used" => [ + 0 => "使用中", + ], + "Private profile" => [ + 0 => "非公開プロフィール", + ], + "second" => [ + 0 => "秒", + ], + "%s ago" => [ + 0 => "%s前", + ], + "moments ago" => [ + 0 => "少し前", + ], + "Dashboard" => [ + 0 => "ダッシュボード", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "適用できるアップデートがあります。%sからダウンロード後インストールしてください。", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "システム用データベースが更新されていません。 <a href=\"%s\">更新ツール</a> を起動して下さい。", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Webサイトは現在メンテナンスモードです。 通常モードへ復帰させるためには <a href=\"%s\">ダッシュボード > 設定</a>画面で行います。", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "実機環境として運用される場合はPHPのエラーレポートを無効にするべきです。<a href='%s'>システム設定</a>からこの設定を変更してください。", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "デフォルトのメール設定を変更していません。<a href='%s'>メール設定</a>から修正してください。", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "あなたのCheveretoベースのサイトへ必要なアップデートがあります。", + ], + "admin dashboard" => [ + 0 => "管理者用ダッシュボード", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "%aから直接アップデート・ダウンロードは出来ません。%sより手動でインストールしてください。", + ], + "view on %s" => [ + 0 => "%sとして表示", + ], + "cookie policy" => [ + 0 => "Cookieのポリシー", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "当サイトでは、サイトをより快適にお使いいただけるように当社とサードパーティのCookieを利用しています。当サイトのご利用を続行頂いた場合、お客様は%cookie_policy_link に同意頂いたと見なします。", + ], + "I understand" => [ + 0 => "私は次を理解しました:", + ], + "Forgot password?" => [ + 0 => "パスワードを忘れてしまいましたか?", + ], + "Reset password" => [ + 0 => "パスワードのリセット", + ], + "Resend account activation" => [ + 0 => "アカウント認証メールを再送信する", + ], + "Add your email address" => [ + 0 => "メールアドレスの追加", + ], + "Email changed" => [ + 0 => "メールアドレスが変更されました。", + ], + "%s says you are a robot" => [ + 0 => "%s は、あなたはボットだと言っています。", + ], + "Invalid Username/Email" => [ + 0 => "ユーザ名/メールアドレスが有効ではありません。", + ], + "User doesn't have an email." => [ + 0 => "ユーザのメールアドレスが登録されていません。", + ], + "Request denied" => [ + 0 => "リクエストは拒否されました。", + ], + "Account needs to be activated to use this feature" => [ + 0 => "この機能を使用するためには、アカウント認証が必要です。", + ], + "Account already activated" => [ + 0 => "アカウントは既に認証されています。", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "メールが届くまで15分ほどお待ち下さい。その後、再度お試し下さい。", + ], + "Reset your password at %s" => [ + 0 => "パスワードが%sに変更されました。", + ], + "Confirmation required at %s" => [ + 0 => "%sに確認が必要です。", + ], + "Welcome to %s" => [ + 0 => "ようこそ、%sさん", + ], + "Email already being used" => [ + 0 => "このメールアドレスは既に使用されています。", + ], + "Password required" => [ + 0 => "パスワードが必要です。", + ], + "Share" => [ + 0 => "共有", + ], + "Embed codes" => [ + 0 => "埋め込みコード", + ], + "Full info" => [ + 0 => "詳細情報", + ], + "%a album hosted in %w" => [ + 0 => "%a アルバムは %w にてホストされます。", + ], + "Stats" => [ + 0 => "統計", + ], + "Images" => [ + 0 => "画像", + ], + "Albums" => [ + 0 => "アルバム", + ], + "Users" => [ + 0 => "ユーザ", + ], + "Settings" => [ + 0 => "設定", + ], + "Bulk importer" => [ + 0 => "一括インポート", + ], + "Chevereto version" => [ + 0 => "Cheveretoのバージョン", + ], + "install update" => [ + 0 => "更新をインストール", + ], + "check for updates" => [ + 0 => "アップデートのチェック", + ], + "Support" => [ + 0 => "サポート", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "ヘルプが必要な方は、 %s まで。", + ], + "PHP version" => [ + 0 => "PHPバージョン", + ], + "Server" => [ + 0 => "サーバ", + ], + "MySQL version" => [ + 0 => "MySQLバージョン", + ], + "MySQL server info" => [ + 0 => "MySQLサーバ情報", + ], + "GD Library" => [ + 0 => "GD Library", + ], + "File uploads" => [ + 0 => "ファイルのアップロード", + ], + "Enabled" => [ + 0 => "有効", + ], + "Disabled" => [ + 0 => "無効化", + ], + "Max. upload file size" => [ + 0 => "アップロードファイルの最大サイズ", + ], + "Max. post size" => [ + 0 => "最大投稿サイズ", + ], + "Max. execution time" => [ + 0 => "最大実行時間", + ], + "%d second" => [ + 0 => "%d 秒", + ], + "Memory limit" => [ + 0 => "メモリ制限", + ], + "Rebuild stats" => [ + 0 => "統計を再構築", + ], + "Connecting IP" => [ + 0 => "接続中のIP", + ], + "Not your IP?" => [ + 0 => "あなたのIPアドレスではありませんか?", + ], + "Links" => [ + 0 => "リンク", + ], + "Collaboration" => [ + 0 => "コラボレーション", + ], + "Documentation" => [ + 0 => "ドキュメント", + ], + "Changelog" => [ + 0 => "変更履歴", + ], + "Bug tracking" => [ + 0 => "バグ修正過程", + ], + "Website" => [ + 0 => "ウェブサイト", + ], + "Content" => [ + 0 => "コンテンツ", + ], + "Pages" => [ + 0 => "ページ", + ], + "Listings" => [ + 0 => "リストページ", + ], + "Image upload" => [ + 0 => "画像アップロード", + ], + "Categories" => [ + 0 => "カテゴリー", + ], + "Consent screen" => [ + 0 => "コンセント画面", + ], + "Flood protection" => [ + 0 => "フラッディング攻撃への対処", + ], + "Theme" => [ + 0 => "テーマ", + ], + "Homepage" => [ + 0 => "ホームページ", + ], + "Banners" => [ + 0 => "バナー", + ], + "System" => [ + 0 => "システム", + ], + "Routing" => [ + 0 => "ルーティング", + ], + "Languages" => [ + 0 => "言語", + ], + "External storage" => [ + 0 => "外部ストレージ", + ], + "Email" => [ + 0 => "電子メール", + ], + "Social networks" => [ + 0 => "ソーシャルネットワーク", + ], + "External services" => [ + 0 => "外部サービス", + ], + "IP bans" => [ + 0 => "アクセス禁止IPアドレス", + ], + "Additional settings" => [ + 0 => "追加の設定", + ], + "Tools" => [ + 0 => "ツール", + ], + "Can't delete all homepage cover images" => [ + 0 => "すべてのホームページのヘッダ画像は削除できません。", + ], + "Homepage cover image deleted" => [ + 0 => "ホームページのトップ画像を削除しました。", + ], + "Local" => [ + 0 => "ローカル", + ], + "External" => [ + 0 => "外部", + ], + "All" => [ + 0 => "すべて", + ], + "search content" => [ + 0 => "コンテンツの検索", + ], + "Add page" => [ + 0 => "ページを追加", + ], + "Edit page ID %s" => [ + 0 => "ページ ID %s を編集", + ], + "The page has been added successfully." => [ + 0 => "ページは正常に追加されました。", + ], + "The page has been deleted." => [ + 0 => "ページは削除されました。", + ], + "homepage" => [ + 0 => "ホームページ", + ], + "Before main title (%s)" => [ + 0 => "メインタイトル前 (%s)", + ], + "After call to action (%s)" => [ + 0 => "アクション呼び出し後 (%s)", + ], + "After cover (%s)" => [ + 0 => "カバーの後 (%s)", + ], + "After listing (%s)" => [ + 0 => "リストの後 (%s)", + ], + "Before pagination" => [ + 0 => "ページネーションの前", + ], + "After pagination" => [ + 0 => "ページネーションの後", + ], + "Content (image and album)" => [ + 0 => "コンテンツ (画像とアルバム)", + ], + "Tab about column" => [ + 0 => "画像詳細タブ内", + ], + "Before comments" => [ + 0 => "コメントの前", + ], + "Image page" => [ + 0 => "画像ページ", + ], + "Inside viewer top (image page)" => [ + 0 => "画像ビューア内上部 (画像ページ)", + ], + "Inside viewer foot (image page)" => [ + 0 => "画像ビューア内下部(画像ページ)", + ], + "After image viewer (image page)" => [ + 0 => "画像ビューアの下(画像ページ)", + ], + "Before header (image page)" => [ + 0 => "画像詳細メニュー上(画像ページ)", + ], + "After header (image page)" => [ + 0 => "画像詳細メニュー(画像ページ)", + ], + "Footer (image page)" => [ + 0 => "フッタ部(画像ページ)", + ], + "Album page" => [ + 0 => "アルバムページ", + ], + "Before header (album page)" => [ + 0 => "アルバムタイトル前(アルバムページ)", + ], + "After header (album page)" => [ + 0 => "アルバム詳細下(アルバムページ)", + ], + "User profile page" => [ + 0 => "ユーザープロフィールページ", + ], + "After top (user profile)" => [ + 0 => "ユーザ名の前(プロファイルページ)", + ], + "Before listing (user profile)" => [ + 0 => "ユーザ名の後(プロファイルページ)", + ], + "Explore page" => [ + 0 => "もっと見る一覧ページ", + ], + "After top (explore page)" => [ + 0 => "トップ下(もっと見るページ)", + ], + "NSFW" => [ + 0 => "成人向けコンテンツ", + ], + "Invalid website name" => [ + 0 => "無効なウェブサイト名", + ], + "Invalid language" => [ + 0 => "無効な言語", + ], + "Invalid timezone" => [ + 0 => "無効なタイムゾーン", + ], + "Invalid value: %s" => [ + 0 => "不正な値: %s", + ], + "Invalid upload storage mode" => [ + 0 => "無効なアップロード ストレージモード", + ], + "Invalid upload filenaming" => [ + 0 => "無効なアップロードファイル名", + ], + "Invalid thumb width" => [ + 0 => "無効なサムネイルの幅", + ], + "Invalid thumb height" => [ + 0 => "サムネイルの高さが有効ではありません。", + ], + "Invalid medium size" => [ + 0 => "無効な中間サイズです。", + ], + "Invalid watermark percentage" => [ + 0 => "透かしのパーセンテージ指定が不正な値です。", + ], + "Invalid watermark opacity" => [ + 0 => "透かしの不透明度の値が不正です。", + ], + "Invalid theme" => [ + 0 => "有効なテーマではありません。", + ], + "Invalid value" => [ + 0 => "無効な値", + ], + "Invalid theme tone" => [ + 0 => "テーマのトーン(色調)が有効ではありません。", + ], + "Invalid theme main color" => [ + 0 => "無効なメインカラーです。", + ], + "Invalid theme top bar button color" => [ + 0 => "無効なトップバーのボタンの色です。", + ], + "Invalid theme image listing size" => [ + 0 => "テーマ中に表示される画像サイズが有効ではありません。", + ], + "Invalid user id" => [ + 0 => "無効なユーザIDです。", + ], + "Invalid email mode" => [ + 0 => "有効な電子メールモードではありません。", + ], + "Invalid SMTP port" => [ + 0 => "有効なSMTPポートではありません。", + ], + "Invalid SMTP security" => [ + 0 => "無効なSMTPセキュリティモードです。", + ], + "Invalid personal mode user ID" => [ + 0 => "パーソナルモードのユーザIDが不正です。", + ], + "Invalid or reserved route" => [ + 0 => "すでに使用されているか、不正なルートです。", + ], + "Invalid website privacy mode" => [ + 0 => "不正な非公開モードです", + ], + "Invalid website content privacy mode" => [ + 0 => "無効なウェブサイトのコンテンツの非公開モードです。", + ], + "Invalid homepage style" => [ + 0 => "無効なホームページスタイルです。", + ], + "Invalid homepage call to action button color" => [ + 0 => "トップページに戻るボタンの色が不正です。", + ], + "Invalid homepage call to action functionality" => [ + 0 => "トップページに戻る機能が適切に設定されていません。", + ], + "Invalid title" => [ + 0 => "タイトルが不正です。", + ], + "Invalid status" => [ + 0 => "ステータスが不正です。", + ], + "Invalid type" => [ + 0 => "タイプが不正です。", + ], + "Invalid visibility" => [ + 0 => "可視性が不正です。", + ], + "Invalid internal type" => [ + 0 => "不正なタイプです。", + ], + "Invalid target attribute" => [ + 0 => "ターゲットの属性が不正です。", + ], + "Invalid rel attribute" => [ + 0 => "refの属性が不正です。", + ], + "Invalid icon" => [ + 0 => "アイコンが不正です。", + ], + "Invalid URL key" => [ + 0 => "URLキーが不正です。", + ], + "Invalid file path" => [ + 0 => "ファイルパスが不正です。", + ], + "Invalid link URL" => [ + 0 => "リンクURLが不正です。", + ], + "Invalid user minimum age" => [ + 0 => "無効なユーザーの最低年齢です。", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "使用できるのは、英数字、ハイフン、アンダースコアのみです。", + ], + "Invalid URL" => [ + 0 => "無効なURLです。", + ], + "Routes can't be the same" => [ + 0 => "ルートは同じではありません。", + ], + "Invalid upload image path" => [ + 0 => "有効な画像アップロードパスではありません。", + ], + "Invalid call to action URL" => [ + 0 => "不正なURLです。", + ], + "Max. allowed %s" => [ + 0 => "最大%s許可されています。", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "既にあるフォルダ (%f) と %m は紐付けできません。", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "既にあるルート (%r) と %m は紐付けできません。", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "マップを作成できません。 %m%r (ユーザ名の不一致により)", + ], + "Invalid SMTP server" => [ + 0 => "有効なSMTPサーバーではありません。", + ], + "Invalid SMTP username" => [ + 0 => "有効なSMTPユーザ名ではありません。", + ], + "Invalid key" => [ + 0 => "無効なキー", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "このURLキーは、すでに他のページで使用されています (ID %s)。", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "このファイルパスは、 すでに他のページで使用されています (ID %s)。", + ], + "Can't save page contents: %s." => [ + 0 => "ページコンテンツを保存出来ません。: %s.", + ], + "Following" => [ + 0 => "フォロー中", + ], + "About" => [ + 0 => "詳細", + ], + "Image ID" => [ + 0 => "画像ID", + ], + "Uploader IP" => [ + 0 => "アップロード元のIP", + ], + "Ban IP" => [ + 0 => "アクセス禁止IPアドレスに追加", + ], + "IP already banned" => [ + 0 => "IPアドレスは既にアクセス禁止となっています。", + ], + "Upload date" => [ + 0 => "アップロード日時", + ], + "Image %i in %a album" => [ + 0 => "アルバム「%a」に存在する「%i」", + ], + "Image %i in %c category" => [ + 0 => "カテゴリ:%cに存在する画像:%i", + ], + "Image %i hosted in %w" => [ + 0 => "%wでホストされている画像:%i", + ], + "Direct links" => [ + 0 => "ダイレクトリンク", + ], + "Image link" => [ + 0 => "画像へのリンク", + ], + "Image URL" => [ + 0 => "画像URL", + ], + "Thumbnail URL" => [ + 0 => "サムネイルURL", + ], + "Medium URL" => [ + 0 => "中間サイズURL", + ], + "Full image" => [ + 0 => "フルサイズ", + ], + "Full image (linked)" => [ + 0 => "フルサイズ(リンクされている)", + ], + "Medium image (linked)" => [ + 0 => "中間サイズ(リンクされている)", + ], + "Thumbnail image (linked)" => [ + 0 => "サムネイル(リンクされている)", + ], + "Login needed" => [ + 0 => "ログインが必要です。", + ], + "IP address already banned" => [ + 0 => "このIPアドレスは既にアクセス禁止になっています。", + ], + "Missing values" => [ + 0 => "値が設定されていません。", + ], + "Invalid role" => [ + 0 => "無効な権限です。", + ], + "Username already being used" => [ + 0 => "ユーザ名は既に使用されています。", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "%sを削除する前に、パスワードを追加するか他のソーシャルアカウントを接続してください。", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "%sを削除する前に、メールアドレスを追加するか他のソーシャルアカウントを接続してください。", + ], + "%s has been disconnected." => [ + 0 => "%sの接続は閉じられました。", + ], + "Test email from %s @ %t" => [ + 0 => "%s @ %t からのテストメール", + ], + "This is just a test" => [ + 0 => "これはテストです。", + ], + "Test email sent to %s." => [ + 0 => "%sへテストメールを送信しました。", + ], + "Downloading %s data" => [ + 0 => "%sのデータをダウンロード中", + ], + "User %s followed" => [ + 0 => "ユーザー\"%s\"さんをフォローしました。", + ], + "User %s unfollowed" => [ + 0 => "ユーザー\"%s\"さんのフォローを解除しました。", + ], + "Content liked" => [ + 0 => "いいね!", + ], + "Content disliked" => [ + 0 => "ざんねん", + ], + "%u liked your %t %c" => [ + 0 => "%uさんがあなたの%t%cをいいねしました。", + ], + "%u is now following you" => [ + 0 => "%uさんがあなたをフォローしました。", + ], + "A private user" => [ + 0 => "プライベートユーザ", + ], + "Wrong Username/Email password combination" => [ + 0 => "ユーザ名/電子メールアドレスとパスワードの組合せが間違っています。", + ], + "Sign in" => [ + 0 => "サインイン", + ], + "Moderate" => [ + 0 => "判定", + ], + "Upload images" => [ + 0 => "画像をアップロード", + ], + "Upload plugin" => [ + 0 => "プラグインをアップロード", + ], + "Image search results for %s" => [ + 0 => "%sの検索結果", + ], + "Album search results for %s" => [ + 0 => "%sのアルバムの検索結果", + ], + "User search results for %s" => [ + 0 => "%sのユーザーの検索結果", + ], + "Account" => [ + 0 => "アカウント", + ], + "Profile" => [ + 0 => "プロフィール", + ], + "Linked accounts" => [ + 0 => "関連づけされているアカウント", + ], + "Invalid image expiration: %s" => [ + 0 => "無効な画像の有効期限: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "この電子メールアドレスは認証され、%s宛に説明書を添付したメールを送信しました。", + ], + "Invalid name" => [ + 0 => "有効な名前ではありません。", + ], + "Invalid website" => [ + 0 => "有効なWebサイトではありません。", + ], + "Wrong password" => [ + 0 => "パスワードが間違っています。", + ], + "Use a new password" => [ + 0 => "新しいパスワードを使用して下さい。", + ], + "Changes have been saved." => [ + 0 => "変更が保存されました。", + ], + "Password has been changed" => [ + 0 => "パスワードが変更されました。", + ], + "Password has been created." => [ + 0 => "パスワードの作成が完了しました。", + ], + "Wrong Username/Email values" => [ + 0 => "ユーザ名/電子メールアドレスが有効な値ではありません。", + ], + "Settings for %s" => [ + 0 => "%sの設定", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "利用規約とプライバシーポリシーに同意頂く必要があります", + ], + "You must be at least %s years old to use this website." => [ + 0 => "このサイトを利用するには、あなたが%s歳以上である必要があります。", + ], + "Create account" => [ + 0 => "アカウント作成", + ], + "Upload" => [ + 0 => "アップロード", + ], + "%s's Images" => [ + 0 => "%sさんの画像", + ], + "Results for" => [ + 0 => "結果:", + ], + "Liked by %s" => [ + 0 => "%sさんにいいね!されました。", + ], + "Liked" => [ + 0 => "[いいね]された", + ], + "Followers" => [ + 0 => "フォロワー", + ], + "%n (%u) albums on %w" => [ + 0 => "%w上にある%n (%u)さんのアルバム", + ], + "%n (%u) on %w" => [ + 0 => "%w上にある%n (%u)さんのアルバム", + ], + "Discovery" => [ + 0 => "発見", + ], + "Advanced search" => [ + 0 => "高度な検索", + ], + "Random" => [ + 0 => "ランダム", + ], + "Notices (%s)" => [ + 0 => "通知 (%s)", + ], + "Lights" => [ + 0 => "明るい", + ], + "Notifications" => [ + 0 => "通知", + ], + "You don't have notifications" => [ + 0 => "まだ通知はありません。", + ], + "My Profile" => [ + 0 => "マイ プロフィール", + ], + "Sign out" => [ + 0 => "サインアウト", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "%wに、あなたのアカウント<a href=\"%u\">%n</a>のメールアドレスの変更要求を受け付けました。", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "処理を完了するために<a href=\"%s\">メール内にある認証リンク</a>をクリックして下さい。", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "リンクをクリックできない場合は、ブラウザのアドレス欄に <a href=\"%s\">%s</a>を貼り付けてアクセスできます。", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "このメッセージに心当たりがない場合には、無視して下さい。", + ], + "This request was made from IP: %s" => [ + 0 => "このリクエストは、IP:%sより行われました。", + ], + "We received a request to register the %n account at %w." => [ + 0 => "%wに、アカウント%nを登録するようにリクエストを受け付けました。", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "登録処理を完了するために<a href=\"%s\">アカウントの認証</a>をクリックして下さい。", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "アカウント:<a href=\"%u\">%n</a>のパスワードをリセットのリクエストを受け付けました。", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "パスワードをリセットするには<a href=\"%s\">こちらのリンク</a>をクリックして下さい。", + ], + "Hi %n, welcome to %w" => [ + 0 => "こんにちは、 %nさん。%wへようこそ", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "画像のアップロードをしたり、アルバムの作成を行ったり、非公開コンテンツの設定を行うなどの、沢山の機能を使用するためのアカウント登録が完了しました。", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "こちらが、あなただけのプロフィールページです。: <a href=\"%u\">%n</a>. あなた専用にカスタマイズしましょう!", + ], + "Thank you for joining" => [ + 0 => "ご参加いただき、ありがとうございます。", + ], + "This email was sent from %w %u" => [ + 0 => "このメールは%w %uより送信されました。", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "アップロードするために、ここへ画像をドラッグするか貼り付けでください。", + ], + "Select the images to upload" => [ + 0 => "アップロードする画像を選択", + ], + "browse from your computer" => [ + 0 => "コンピュータから参照", + ], + "add image URLs" => [ + 0 => "画像のURLを追加", + ], + "You can also %i or %u." => [ + 0 => "%iまたは%uすることもできます。", + ], + "browse from your device" => [ + 0 => "デバイスを見る", + ], + "take a picture" => [ + 0 => "写真を撮影", + ], + "You can also %i, %c or %u." => [ + 0 => "%i, %c または、 %uから", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "画像のプレビューをクリックして編集または画像をリサイズ", + ], + "Edit any image by touching the image preview" => [ + 0 => "プレビューをタッチして編集", + ], + "your computer" => [ + 0 => "あなたのコンピュータ", + ], + "You can add more images from %i or %u." => [ + 0 => "%u、または、%iから画像を追加することができます。", + ], + "your device" => [ + 0 => "あなたのデバイス", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "%i、%c または %uから画像を追加することができます。", + ], + "Uploading %q %o" => [ + 0 => "アップロード中 %q %o", + ], + "complete" => [ + 0 => "完了", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "キューのアップロードが進行中です。完了まで数秒ほどかかります。", + ], + "Upload complete" => [ + 0 => "アップロード完了", + ], + "Uploaded content added to %s." => [ + 0 => "アップロードが完了したコンテンツは%sに追加されました。", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "アップロードされたコンテンツまたは%mに対して%cが可能です。", + ], + "You can %c with the content just uploaded." => [ + 0 => "アップロードされたコンテンツに対して%cが可能です。", + ], + "create a new album" => [ + 0 => "新規アルバムを作成", + ], + "move it to an existing album" => [ + 0 => "既に存在するアルバムに移動", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "このコンテンツをアカウントに保存するには、%s または %l である必要があります。", + ], + "create an account" => [ + 0 => "アカウントを作成", + ], + "sign in" => [ + 0 => "サインイン", + ], + "No %s have been uploaded" => [ + 0 => "アップロードされた%sはありません。", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "エラーが発生しました、システムはリクエストを処理出来ません。", + ], + "Category" => [ + 0 => "カテゴリ", + ], + "Select category" => [ + 0 => "カテゴリ選択", + ], + "Mark this if the upload is not family safe" => [ + 0 => "ファミリーセーフティに触れるものをアップロードする場合には、チェックボックスをONにして下さい。", + ], + "Not family safe upload" => [ + 0 => "ファミリーセーフティではない", + ], + "Uploading" => [ + 0 => "アップロード中", + ], + "cancel remaining" => [ + 0 => "残りも全てキャンセルする", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "注意:一部の画像がアップロード出来ませんでした。", + ], + "learn more" => [ + 0 => "もっと詳しく", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "詳しくは<a data-modal=\"simple\" data-target=\"failed-upload-result\">エラーレポート</a>をご覧下さい。", + ], + "Register to get %s" => [ + 0 => "%s を入手するには登録が必要です", + ], + "reset" => [ + 0 => "リセット", + ], + "close" => [ + 0 => "閉じる", + ], + "Note" => [ + 0 => "ノート", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "アップロードされた内容が承認されてから、共有できるようにしなければなりません。", + ], + "copy" => [ + 0 => "コピー", + ], + "insert" => [ + 0 => "挿入", + ], + "Remove" => [ + 0 => "削除", + ], + "Title" => [ + 0 => "タイトル", + ], + "optional" => [ + 0 => "任意", + ], + "Resize image" => [ + 0 => "画像のリサイズ", + ], + "Width" => [ + 0 => "幅", + ], + "Height" => [ + 0 => "高さ", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "注意:アニメーションGIFはリサイズできません。", + ], + "Auto delete image" => [ + 0 => "画像を自動削除する", + ], + "Sign up" => [ + 0 => "会員登録", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s で画像の自動削除、またはカスタマイズを可能にできます。", + ], + "Mark this if the image is not family safe" => [ + 0 => "ファミリーセーフティに触れるコンテンツの場合は、チェックボックスをONにして下さい。", + ], + "Flag as unsafe" => [ + 0 => "ファミリーセーフティに接触するコンテンツとしてマーク", + ], + "Description" => [ + 0 => "説明", + ], + "Brief description of this image" => [ + 0 => "この画像の簡単な説明", + ], + "Add image URLs" => [ + 0 => "画像URLの追加", + ], + "Add the image URLs here" => [ + 0 => "ここへ画像URLを追加", + ], + "Create album" => [ + 0 => "アルバムの作成", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "アップロードされたコンテンツは最も新しいアルバムに移動されます。", + ], + "existing album" => [ + 0 => "既に存在するアルバム", + ], + "You can also move the content to an %a." => [ + 0 => "コンテンツを %a に移動することも可能です。", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "このアルバムを後で編集するには、%s または %l である必要があります。", + ], + "Move to album" => [ + 0 => "アルバムへ移動", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "アップロードされたコンテンツを移動するお持ちのアルバムを選択して下さい。 または、 <a class=\"modal-switch\" data-switch=\"move-new-album\">アルバムの新規作成</a>を行い、移動することもできます。", + ], + "Error report" => [ + 0 => "エラーレポート", + ], + "Viewer links" => [ + 0 => "閲覧用リンク", + ], + "HTML Codes" => [ + 0 => "HTMLコード", + ], + "HTML image" => [ + 0 => "HTMLイメージ", + ], + "HTML full linked" => [ + 0 => "HTMLフルリンク", + ], + "HTML medium linked" => [ + 0 => "中間サイズへのHTMLリンク", + ], + "HTML thumbnail linked" => [ + 0 => "サムネイルへのHTMLリンク", + ], + "BBCodes" => [ + 0 => "BBコード", + ], + "BBCode full" => [ + 0 => "BBCodeフル", + ], + "BBCode full linked" => [ + 0 => "BBCodeフルリンク", + ], + "BBCode medium linked" => [ + 0 => "BBコード(中間サイズへのリンク)", + ], + "BBCode thumbnail linked" => [ + 0 => "BBコード(サムネイルへのリンク)", + ], + "Markdown full" => [ + 0 => "全マークダウン", + ], + "Markdown full linked" => [ + 0 => "[いいね]された全マークダウン", + ], + "Markdown medium linked" => [ + 0 => "中いいねされたマークダウン", + ], + "Markdown thumbnail linked" => [ + 0 => "いいねされたサブネイルをマークダウン", + ], + "All these words" => [ + 0 => "全ての語句", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "重要な語句を入力します。", + ], + "This exact word or phrase" => [ + 0 => "これと一致する語句", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "引用する語句を正確に入力", + ], + "None of these words" => [ + 0 => "これらの語句を含まない", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "検索結果に含みたくない語句の前にマイナス(-)をつけて下さい。: -ねずみ目 -\"ジャック・ラッセル・テリア\"", + ], + "Storage" => [ + 0 => "ストレージ", + ], + "IP address" => [ + 0 => "IPアドレス", + ], + "Album name" => [ + 0 => "アルバム名", + ], + "move to existing album" => [ + 0 => "既に存在するアルバムへ移動", + ], + "Album description" => [ + 0 => "アルバムの説明", + ], + "Brief description of this album" => [ + 0 => "このアルバムの簡単な説明", + ], + "Album privacy" => [ + 0 => "アルバムの公開モード", + ], + "Who can view this content" => [ + 0 => "このコンテンツを見ることのできるユーザ", + ], + "Private (just me)" => [ + 0 => "非公開 (自分のみ閲覧可)", + ], + "Private (anyone with the link)" => [ + 0 => "非公開 (リンクを知っている人全員)", + ], + "Private (password protected)" => [ + 0 => "非公開(パスワードが必要)", + ], + "Album password" => [ + 0 => "アルバムパスワード", + ], + "Name" => [ + 0 => "名前", + ], + "Category name" => [ + 0 => "カテゴリ名", + ], + "URL key" => [ + 0 => "URLキー", + ], + "Category URL key" => [ + 0 => "カテゴリURLキー", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "英文字、数字とハイフンのみです。", + ], + "Brief description of this category" => [ + 0 => "このカテゴリの簡単な説明", + ], + "Untitled image" => [ + 0 => "画像のタイトルを入力", + ], + "Mark this if the image is not safe for work" => [ + 0 => "画像が安全に作業できない場合には、マークを付けてください。", + ], + "Flag not safe" => [ + 0 => "安全ではない印", + ], + "Path" => [ + 0 => "パス", + ], + "Local path (absolute)" => [ + 0 => "ローカルパス (絶対パス)", + ], + "Directory structure" => [ + 0 => "ディレクトリ構造", + ], + "Parse top level folders as users (username)" => [ + 0 => "トップレベルフォルダーをユーザー名にする", + ], + "Parse top level folders as albums" => [ + 0 => "トップレベルフォルダーをアルバムにする", + ], + "Don't parse folders" => [ + 0 => "フォルダーを構成しない", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "トップレベルフォルダーをユーザー名として構成すると、セカンドレベルフォルダーはユーザーのアルバムとして構成されます。トップレベルフォルダーをアルバムとして構成すると", + ], + "Threads" => [ + 0 => "スレッド", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "これは、インポート処理をどの程度集中的かつ高速に行われるかを設定できます。共有サーバーでは、%s スレッド以上利用しないでください。", + ], + "You can use wildcard * characters." => [ + 0 => "ワイルドカード * 文字 をご利用いただけます。", + ], + "Expiration date" => [ + 0 => "期限", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "例", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "このIPアドレスはいつまでアクセス禁止にしますか?期限なしの場合は空欄にしてください。", + ], + "Message" => [ + 0 => "本文", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "テキストメッセージ、HTMLまたはリダイレクト先のURL", + ], + "Existing album" => [ + 0 => "既に存在するアルバム", + ], + "create new album" => [ + 0 => "新しいアルバムを作成", + ], + "Storage name" => [ + 0 => "ストレージ名", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "リージョン", + ], + "Storage region" => [ + 0 => "ストレージ地域", + ], + "Storage bucket" => [ + 0 => "ストレージのバケット", + ], + "Key" => [ + 0 => "キー", + ], + "Storage key" => [ + 0 => "ストレージキー", + ], + "Secret" => [ + 0 => "秘密鍵", + ], + "Storage secret" => [ + 0 => "ストレージ秘密鍵", + ], + "Private key" => [ + 0 => "プライベートキー", + ], + "Google Cloud JSON key" => [ + 0 => "グーグルクラウド用JOSNキー", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "<a %s>サービスアカウント</a>が必要です。", + ], + "Service name" => [ + 0 => "サービス名", + ], + "Identity URL" => [ + 0 => "Identity URL(ユーザが保有するURL)", + ], + "Identity API endpoint" => [ + 0 => "Identity API エンドポイント", + ], + "API endpoint for OpenStack identity" => [ + 0 => "OpenStack用identityのAPIエンドポイント", + ], + "Username" => [ + 0 => "ユーザ名", + ], + "Container" => [ + 0 => "コンテナ", + ], + "Storage container" => [ + 0 => "ストレージコンテナ", + ], + "Tenant id" => [ + 0 => "テナントID", + ], + "Tenant id (account id)" => [ + 0 => "テナントID(アカウントID)", + ], + "Tenant name" => [ + 0 => "テナント名", + ], + "Tenant name (account name)" => [ + 0 => "テナント名(アカウント名)", + ], + "Storage endpoint" => [ + 0 => "ストレージのエンドポイント", + ], + "Server address" => [ + 0 => "サーバーのアドレス", + ], + "Hostname or IP of the storage server" => [ + 0 => "外部ストレージサーバーのホスト名、または、IPアドレス", + ], + "Server path" => [ + 0 => "サーバーのパス", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "絶対パスは、%p ログインで保管されます。ルートパスにする場合は、%s を利用してください。", + ], + "Server login" => [ + 0 => "サーバーログイン", + ], + "Server password" => [ + 0 => "サーバーのパスワード", + ], + "Local path" => [ + 0 => "ローカルパス", + ], + "Local path where the files will be stored" => [ + 0 => "ファイルを保管する場所となるローカルパスです", + ], + "Storage capacity" => [ + 0 => "ストレージ容量", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "例: 20 GB, 1 TB, など", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "この外部ストレージは容量に達したときに無効になります。容量無制限の場合は、ゼロ、または、空欄にして下さい。", + ], + "Storage URL" => [ + 0 => "ストレージURL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "システムはこのURLとこのストレージの画像をリンクさせます。", + ], + "view more" => [ + 0 => "もっと見る", + ], + "Load more" => [ + 0 => "さらに表示", + ], + "Select all" => [ + 0 => "全て選択", + ], + "Clear selection" => [ + 0 => "選択を解除", + ], + "Selection" => [ + 0 => "選択", + ], + "Action" => [ + 0 => "アクション", + ], + "Get embed codes" => [ + 0 => "埋め込みコードの取得", + ], + "Assign category" => [ + 0 => "カテゴリを適用", + ], + "Flag as safe" => [ + 0 => "ファミリーセーフティを満たすとしてマーク", + ], + "Create new album" => [ + 0 => "新規アルバムを作成", + ], + "Sign in with another account" => [ + 0 => "別のアカウントでサインイン", + ], + "Continue with %label%" => [ + 0 => "%label%で続ける", + ], + "Home" => [ + 0 => "ホーム", + ], + "There's nothing to show here." => [ + 0 => "表示するものはありません。", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "すべての画像は最新のアルバムへ移動されます。 <a class=\"modal-switch\" data-switch=\"move-existing-album\">既に存在する他のアルバム</a>へ移動することもできます。", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "画像の移動先となる既に存在するアルバムを選択して下さい。<a class=\"modal-switch\" data-switch=\"move-new-album\">新しいアルバムの作成</a>を行い、移動することもできます。", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "アルバム内のコンテンツを移動する他のアルバムを選択してください。 または、 <a class=\"modal-switch\" data-switch=\"move-new-album\">アルバムの新規作成</a>を行い、移動することもできます。", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "画像を移動する既に存在するアルバムを選択して下さい。<a class=\"modal-switch\" data-switch=\"move-new-album\">新しいアルバムの作成</a>を行い、移動することもできます。", + ], + "All the selected images will be assigned to this category." => [ + 0 => "選択された全ての画像は、このカテゴリが適用されます。", + ], + "There is no categories." => [ + 0 => "カテゴリがありません。", + ], + "Confirm flag content as safe" => [ + 0 => "コンテンツがファミリーセーフティを満たすと確認", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "このコンテンツが本当にファミリーセーフティを満たすとマークしますか?", + ], + "Confirm flag content as unsafe" => [ + 0 => "コンテンツがファミリーセーフティに接触すると確認", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "このコンテンツが本当にファミリーセーフティに接触するとマークしますか?", + ], + "Confirm approval" => [ + 0 => "承認を確認", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。", + ], + "Confirm deletion" => [ + 0 => "削除の確認", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "このコンテンツを本当に削除しますか?一度削除すると元には戻せません。", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。", + ], + "Fullscreen" => [ + 0 => "全画面", + ], + "Exit fullscreen" => [ + 0 => "全画面を終了", + ], + "Guest" => [ + 0 => "ゲスト", + ], + "Keyboard shortcuts" => [ + 0 => "キーボードショートカット", + ], + "Private album" => [ + 0 => "個人用アルバム", + ], + "Password protected" => [ + 0 => "パスワードで保護", + ], + "Uploaded by guest" => [ + 0 => "ゲストからのアップロード", + ], + "From %s" => [ + 0 => "%sより", + ], + "Uploaded by private" => [ + 0 => "プライベートモードでアップロード", + ], + "by %u" => [ + 0 => "%u により", + ], + "Toggle unsafe flag" => [ + 0 => "ファミリーセーフ ON/OFF", + ], + "That page doesn't exist" => [ + 0 => "ページが存在しません。", + ], + "The requested page was not found." => [ + 0 => "要求されたページは見つかりません。", + ], + "Search something else" => [ + 0 => "他のものを検索", + ], + "The user has been deleted" => [ + 0 => "そのユーザは削除されています。", + ], + "Your account is almost ready" => [ + 0 => "アカウントの設定が完了するまで、あと少しです。", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "%s宛にアカウント認証のためのメールを送信しました。 アカウント認証のためのリンクは48時間以内有効です。届いていない場合には迷惑メールフォルダをチェックして下さい。", + ], + "Resend activation" => [ + 0 => "認証メールを再送信", + ], + "You have successfully changed your account email to %s" => [ + 0 => "あなたのアカウントのメールアドレスを%sに変更しました。", + ], + "Go to my profile" => [ + 0 => "プロフィールへ", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "アカウントを有効化するための詳細と確認用リンクをメールで送信しました。", + ], + "Your email address" => [ + 0 => "メールアドレス", + ], + "Submit" => [ + 0 => "送信", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "パスワードのリセット方法を登録されているメールアドレス宛に送信しました。もし届いていない場合には、迷惑メールフォルダをチェックして下さい。", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "パスワードのリセットの手順をメールで送信しました。届いていない場合には、迷惑メールフォルダをチェックして下さい。", + ], + "Resend instructions" => [ + 0 => "手順を再送信", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "続行するにはユーザー名またはパスワードを入力してください。迷惑メールフォルダーの確認と、%s をホワイトリストに追加するのも合わせてご確認ください。", + ], + "Username or Email address" => [ + 0 => "ユーザ名 又は 電子メールアドレス", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "パスワードの変更が完了しました。新しいパスワードでログインして下さい。", + ], + "Login now" => [ + 0 => "今すぐログイン", + ], + "Enter your new password" => [ + 0 => "新しいパスワードを入力して下さい。", + ], + "%d characters min" => [ + 0 => "最低%d文字", + ], + "Password strength" => [ + 0 => "パスワードの強さ", + ], + "Re-enter your new password" => [ + 0 => "新しいパスワードを再度入力して下さい。", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "有効なアカウント %s  宛にE-mailを送信しました。届いていない場合には迷惑フォルダを確認してください。", + ], + "This content is private" => [ + 0 => "このコンテンツは非公開です。", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "本当にこのアルバムとアルバムにある全ての画像を削除しますか?削除すると元には戻せません。", + ], + "You like this" => [ + 0 => "いいね!しました", + ], + "Upload to album" => [ + 0 => "アルバムにアップロード", + ], + "Album link" => [ + 0 => "アルバムへのリンク", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "続行する前に次の利用規約をお読みになり同意いただく必要があります:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "このサイトには、性的な情報、リンク、画像があります。あなたが %s歳以下の場合、あなたの国で、この先にある情報を見ることは法律に違反します。\n\nこれ先に進むことは許されません。\n\n私は、%s歳以上で、性的な情報に触れたり・見ることが出来る権利をもった、法的に成人と見なされると思います。私は、自分の意思で、この先に進みます。\n\n私は、相手を不快にさせたり侮辱したりしない常識のある成人です。性的な情報・画像などを、見たり、読んだり、ダウンロードすることが、私の国の法律や市町村の条例には違反しません。\n\n性的なものを見ることは個人的な目的であり、そのような情報から保護されている未成年ではありません。\n\nこのサイトにある情報を、見たり、読んだり、ダウンロードしたことによる如何なる影響、開示されている情報に間違いがあった場合でも、全て個人の責任として受け入れます。私が、このサイトをしようしたことによる如何なる損害・損失もサイト提供者・アフィリエイターが負わないことろ理解しています。\n\nこの同意画面は、このウェブサイトおよびあなたと/またはあなたが法的または慣習上の利害関係を持っている全てのものとの間に交わされる法的な合意です。本契約のいずれかの部分が管轄裁判所によって執行不能と見なされた場合においても、契約書の他の部分の執行性に影響を与えないものとします。", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "”同意します”をクリックした時点で、あなたは上記の利用規約を読み、ご理解いただいたと見なします。", + ], + "I Agree" => [ + 0 => "同意します", + ], + "documentation" => [ + 0 => "ドキュメント", + ], + "Learn more about %s at our %d." => [ + 0 => "%sについての詳細は、 %dから。", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "接続 IP は、サーバ変数 %var% を使用して決定されます。検出されたIPがあなたのものと一致しない場合、それはあなたのウェブサーバがプロキシの下にあることを意味し、実際の接続IPを設定するためにサーバを調整する必要があります。", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Nginxでは %nginx% 、Apacheでは %apache%を使用します。", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "システムは基本的な機能を提供し、スパム、フラッディング、ブルートフォース攻撃から保護するために、正確な IP 検出に依存しているため、この問題に対処することを確認してください。", + ], + "Disk used" => [ + 0 => "ディスク使用量", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." => [ + 0 => "インポートしたいコンテンツをシステムパスを指し示すことで、Webサイトにコンテンツを大量に追加することができるツールです。フォルダベースの構造を利用したユーザー、アルバム、画像の追加に対応しています。", + ], + "Automatic importing" => [ + 0 => "自動インポート", + ], + "The system automatically parses any content by a continuous observation of the %path% path." => [ + 0 => "システムは、 パス %path% を継続的に観測することで自動的にコンテンツの解析を行います。", + ], + "Completed jobs will be automatically re-started after %n %m." => [ + 0 => "完了したジョブは、%n %m 後に自動的に開始します。", + ], + "Reset to clear stats and logs." => [ + 0 => "統計とログをクリアします", + ], + "Queued" => [ + 0 => "キューに追加済み", + ], + "Working" => [ + 0 => "お待ちください。", + ], + "Paused" => [ + 0 => "一時停止中", + ], + "Canceled" => [ + 0 => "キャンセルされました。", + ], + "Completed" => [ + 0 => "完了しました。", + ], + "Actions" => [ + 0 => "アクション", + ], + "Reset" => [ + 0 => "リセット", + ], + "Pause" => [ + 0 => "一時停止", + ], + "Resume" => [ + 0 => "再開する", + ], + "Process log" => [ + 0 => "プロセスログ", + ], + "Errors" => [ + 0 => "エラー", + ], + "Status" => [ + 0 => "ステータス", + ], + "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." => [ + 0 => "スケジュール化されたコマンドでインポート処理を継続的に行います。これにはcrontabのエントリが必要です。", + ], + "You can run the command in parallel by changing the integer value of %s%." => [ + 0 => "%s% の値でコマンドを並列実行することができます。", + ], + "All file-system permissions must be granted for the crontab user at %path%" => [ + 0 => "crontabユーザーへ %path% へのファイルシステムにアクセスする権利を付与してください。", + ], + "Add import job" => [ + 0 => "インポートジョブに追加", + ], + "Process import" => [ + 0 => "インポート処理", + ], + "Top level folders as %s" => [ + 0 => "トップ階層 %s", + ], + "Process" => [ + 0 => "処理", + ], + "Cancel" => [ + 0 => "キャンセル", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "インポートID: %s を削除してもよろしいですか?", + ], + "Manual importing" => [ + 0 => "手動インポート", + ], + "The system will parse the contents of any available filesystem path." => [ + 0 => "システムは、利用可能なファイルシステムのパスの内容を解析します。", + ], + "These processes must be manually created and handled with the web browser tab open." => [ + 0 => "これらのプロセスは、手動で作成し、ウェブブラウザのタブを開いた状態で処理する必要があります。", + ], + "Parser" => [ + 0 => "パーサー", + ], + "Add user" => [ + 0 => "ユーザの追加", + ], + "Role" => [ + 0 => "権限", + ], + "Manager" => [ + 0 => "マネージャー", + ], + "Administrator" => [ + 0 => "管理者", + ], + "Email address" => [ + 0 => "メールアドレス", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "この設定は個人Webサイトモードを利用している時は常に無効です。", + ], + "Add category" => [ + 0 => "カテゴリの追加", + ], + "Add IP ban" => [ + 0 => "アクセス禁止IPアドレスの追加", + ], + "Add storage" => [ + 0 => "ストレージの追加", + ], + "Return to pages" => [ + 0 => "ページに戻る", + ], + "Website name" => [ + 0 => "ウェブサイト名", + ], + "Website doctitle" => [ + 0 => "ウェブサイトのタイトル (ページタイトル)", + ], + "Website description" => [ + 0 => "ウェブサイトの詳細", + ], + "Powered by" => [ + 0 => "提供元", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "コンテンツをSNSで共有するためにSNSボタンを表示するためにONにします。", + ], + "Automatic" => [ + 0 => "自動的", + ], + "Forced" => [ + 0 => "強制的", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a は、サーバー側でHTTPSの検出をするために利用されます (推奨)。%f は、サーバーの設定がされていない場合に利用されます。 HTTPSを絶対に使用しない場合は、%d にしてください。", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "お使いのサーバーがHTTPSのサポート設定が完了するまで、有効なHTTPSにはならず、URLで指定されたプロトコルで通信します。", + ], + "Default time zone" => [ + 0 => "既定のタイムゾーン", + ], + "Select region" => [ + 0 => "地域の選択", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "検索クエリによる画像、アルバムやユーザーの検索を許可する", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "公開状態のアップロードされている画像の閲覧を有効にする。同時にカテゴリーも有効になります。", + ], + "guests" => [ + 0 => "ゲスト", + ], + "Enables explore for guests." => [ + 0 => "ゲストに「もっと見る」機能を有効にします。", + ], + "Enables to browse images randomly." => [ + 0 => "ランダムな画像の閲覧を有効にする", + ], + "Likes" => [ + 0 => "いいね", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "ユーザーによるコンテンツへの”いいね”と”もっともいいねされている”リストを許可する", + ], + "Followers allows users to follow each other." => [ + 0 => "フォロワーはユーザーと互いにフォローすることを許可する", + ], + "Personal mode target user" => [ + 0 => "パーソナルモードが可能なユーザ", + ], + "User ID" => [ + 0 => "ユーザID", + ], + "Your user id is: %s" => [ + 0 => "あなたのユーザID: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "パーソナルモードが可能なユーザのID(数字)", + ], + "Personal mode routing" => [ + 0 => "パーソナルモード ルーティング", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "カスタムルートを /username から /somethingのようにマップします。ホームページへのマップは、\"/\"を使います。", + ], + "Website privacy mode" => [ + 0 => "Webサイト プライバシーモード", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "非公開モードは、登録されたユーザのみ閲覧することが出来るようになります。", + ], + "Content privacy mode" => [ + 0 => "コンテンツ非公開モード", + ], + "Default" => [ + 0 => "既定", + ], + "Force private (self)" => [ + 0 => "強制的に非公開 (自分のみ)", + ], + "Force private (anyone with the link)" => [ + 0 => "強制的に非公開(リンクを知っている人全員)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "ユーザの選択した非公開モードを強制的に継承する", + ], + "Page title" => [ + 0 => "ページタイトル", + ], + "Page status" => [ + 0 => "ページステータス", + ], + "Active page" => [ + 0 => "アクティブページ", + ], + "Inactive page (%s)" => [ + 0 => "非アクティブページ (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "アクティブページのみがアクセス可能です。", + ], + "Type" => [ + 0 => "タイプ", + ], + "Terms of service" => [ + 0 => "利用規約", + ], + "Privacy" => [ + 0 => "非公開", + ], + "Contact" => [ + 0 => "コンテンツ", + ], + "Extra page" => [ + 0 => "追加ページ", + ], + "Internal page type" => [ + 0 => "内部ページタイプ", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "別なタイプとしてのみ複数の追加ページを作成できます。", + ], + "Page visibility" => [ + 0 => "ページ可視性", + ], + "Visible page" => [ + 0 => "表示可能なページ", + ], + "Hidden page" => [ + 0 => "隠しページ", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "隠しページはシステムメニューに表示されません、しかしリンクからは誰でもアクセスすることができます。", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "半角英数字、ハイフンとスラッシュのみ", + ], + "File path" => [ + 0 => "ファイルパス", + ], + "A %f file relative to %s" => [ + 0 => "ファイル %f は %s に関連付けされています", + ], + "Meta keywords" => [ + 0 => "メタキーワード", + ], + "Meta description" => [ + 0 => "メタディスクリプション", + ], + "Source code" => [ + 0 => "ソースコード", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "%s このパスに追加する書込権限がありません。外部エディタを使用してください。", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "%s このパスには編集する書込権限がありません。外部エディタを使用してください。", + ], + "Taken from: %s" => [ + 0 => "抽出元: %s", + ], + "Link URL" => [ + 0 => "リンクURL", + ], + "Link target attribute" => [ + 0 => "リンクターゲット属性", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "ページを開くか、リンクを別なウィンドウで開くか %s を選択してください。", + ], + "Link rel attribute" => [ + 0 => "リンクのRel属性", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "半角英数字、ハイフン、半角スペースのみ", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s 属性", + ], + "Link icon" => [ + 0 => "リンクアイコン", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "サポートされたアイコンリストを使用するために、 <a %s>アイコン参照</a>をチェックしてください。", + ], + "Sort order display" => [ + 0 => "並び順を表示", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "ページの並び順をメニューやリスティングに表示するために、プライオリティに1を使用してください。", + ], + "pages" => [ + 0 => "ページ", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "ページID %s を本当に削除しますか?削除すると元に戻せません。", + ], + "Enabled image formats" => [ + 0 => "画像フォーマット可", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "未確認の画像フォーマットでは、アップロードが行えません。", + ], + "Enable uploads" => [ + 0 => "アップロード", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "画像のアップロードを許可する場合には有効にしてください。この設定は管理者へ影響しません。", + ], + "Upload user interface" => [ + 0 => "アップロード用ユーザインターフェース", + ], + "On-page container" => [ + 0 => "ページ上のコンテナー", + ], + "route" => [ + 0 => "ルート", + ], + "Guest uploads" => [ + 0 => "ゲストとしてアップロード", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "未登録ユーザのアップロードを許可するときに有効にしてください。", + ], + "Moderate uploads" => [ + 0 => "アップロードを判定", + ], + "Guests" => [ + 0 => "ゲスト", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "これを有効にすると、アップロードを判定することができます。対象となるコンテンツは、承認のための判定が必要になります。", + ], + "Enable embed codes (uploader)" => [ + 0 => "埋込みコード(アップロードしたユーザへのリンク)を有効にします。", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "アップロードが完了したときに、画像への埋込みコードを表示する場合に有効にします。", + ], + "Upload threads" => [ + 0 => "アップロードスレッド数", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "同時アップロードのスレッド数(平行して動じにアップロード)", + ], + "Redirect on single upload" => [ + 0 => "ファイル毎のアップロードへリダイレクト", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "ファイル毎にアップロードするページへのリダイレクトを有効にする", + ], + "Enable duplicate uploads" => [ + 0 => "重複するアップロードを有効にする", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "24時間以内に同一IPアドレスからの重複アップロードを許可(管理者には適用されません。)", + ], + "Enable expirable uploads" => [ + 0 => "期限付きアップロードを有効にする", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "画像の自動削除を付加したアップロードを有効にするにはこの設定を有効にしてください。", + ], + "Auto delete guest uploads" => [ + 0 => "ゲストアップロードの自動削除", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "ゲストアップロードは一定期間後に自動で削除するようにするにはこれを有効にしてください。", + ], + "Maximum image size" => [ + 0 => "最大画像サイズ", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "このサイズより大きなサイズは自動的にサイズを縮小されます。無制限サイズを選択される場合には「ゼロ」を指定してください。", + ], + "Image Exif data" => [ + 0 => "画像のExifデータ", + ], + "Keep" => [ + 0 => "保持する", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "アップロードした画像の<a %s>Exifデータ</a>に関してのデフォルト設定を選択してください。", + ], + "Image Exif data (user setting)" => [ + 0 => "画像のExifデータ(ユーザー設定)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "画像のExifデータをユーザー毎に設定を許可する場合はこの設定を有効にしてください。", + ], + "Maximum upload file size" => [ + 0 => "最大アップロードファイルサイズ", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "サーバーが許可している最大サイズは、%sです。この制限は、%u、%p(%f)によって行われたものです。", + ], + "Same as \"%s\" but for guests." => [ + 0 => "\"%s\"と同じですが、ゲストです。", + ], + "Image path" => [ + 0 => "イメージパス", + ], + "Relative to Chevereto root" => [ + 0 => "サイトルートからの相対パス", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "画像をどこへ保存しますか?ウェブサイトのルートからの相対パス", + ], + "Storage mode" => [ + 0 => "ストレージモード", + ], + "Datefolders" => [ + 0 => "日付フォルダ", + ], + "Direct" => [ + 0 => "ダイレクト", + ], + "Datefolders creates %s structure" => [ + 0 => "日付形式を%s形式で作成", + ], + "File naming method" => [ + 0 => "ファイル名の命名規則", + ], + "Original" => [ + 0 => "オリジナル", + ], + "Mix original + random" => [ + 0 => "オリジナルとランダムの混合", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "「ランダム」が一意なファイル名を作成する間は、元ファイル名が保持されます。「ID」は、画像にIDを振るのみです。", + ], + "Thumb size" => [ + 0 => "サムネイルのサイズ", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "サムネイルは、このサイズに変更されます。", + ], + "Medium image fixed dimension" => [ + 0 => "中間サイズのリサイズ値", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "中間サイズの画像はこの値にリサイズされます。たとえばもし”幅”を選択した場合、幅はその値でリサイズされ、画像の高さは自動的に計算されてリサイズされます。", + ], + "Medium image fixed size" => [ + 0 => "中間サイズのリサイズ", + ], + "Width or height will be automatically calculated." => [ + 0 => "幅または高さは自動的に計算されます。", + ], + "Watermarks" => [ + 0 => "透かし", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "有効にすると、ロゴやアップロードされる全ての画像に透かしが入ります。", + ], + "Warning: Can't write in %s" => [ + 0 => "警告: %s へ書き込みできません。", + ], + "Watermark user toggles" => [ + 0 => "透かし使用 ON/OFF", + ], + "Enable watermark on guest uploads" => [ + 0 => "ゲストユーザのアップロードに透かしを入れる", + ], + "Enable watermark on user uploads" => [ + 0 => "ユーザのアップロードに透かしを入れる", + ], + "Enable watermark on admin uploads" => [ + 0 => "管理者のアップロードに透かしを入れる", + ], + "Watermark file toggles" => [ + 0 => "透かしファイルのON/OFF", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "GIF画像のアップロードに透かしを入れる", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "透かし適用に画像サイズの最低値を指定する。", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "画像が指定のサイズより小さい場合には透かしが入りません。画像サイズの最低値を指定しない場合には、ゼロ(0)を指定してください。", + ], + "Watermark image" => [ + 0 => "透かし", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "ドロップシャドウ付きの装飾なしのロゴが、最適です。出来る限り推奨サイズに近い、大きなファイルサイズを使ってください(最大16KBを推奨)。また、PNGのみです。", + ], + "Watermark position" => [ + 0 => "透かしの位置", + ], + "left top" => [ + 0 => "左上部", + ], + "left center" => [ + 0 => "左中央", + ], + "left bottom" => [ + 0 => "左下部", + ], + "center top" => [ + 0 => "中央上部", + ], + "center center" => [ + 0 => "中央", + ], + "center bottom" => [ + 0 => "中央下部", + ], + "right top" => [ + 0 => "右上部", + ], + "right center" => [ + 0 => "右中央", + ], + "right bottom" => [ + 0 => "右下部", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "透かしは相対位置です。最初が水平、次が垂直となります。", + ], + "Watermark percentage" => [ + 0 => "透かしのパーセンテージ", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "透かしのパーセンテージは、ターゲットイメージエリアとの相対値になります。1~100の間で指定してください。", + ], + "Watermark margin" => [ + 0 => "透かしの余白", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "画像の最下部から透かしまでの余白を入力してください。", + ], + "Watermark opacity" => [ + 0 => "透かしの透明度", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "最終の透かし画像の透明度。値は0から100で入力してください。", + ], + "Dashboard > Settings > Website" => [ + 0 => "ダッシュボード>設定>Webサイト", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "カテゴリーは”探索”機能が無効になっている状態だと動作しません。この設定を戻すには%sに移動してください。", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "カテゴリ: %s を本当に削除しますか?削除すると元に戻せません。", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "注意:カテゴリ名を削除してもカテゴリに属する画像は削除されません。", + ], + "Edit category" => [ + 0 => "カテゴリの編集", + ], + "Expires" => [ + 0 => "期限", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "本当にIPアドレス: %s のアクセス禁止を解除しますか? 解除すると戻せません。", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "アクセス禁止にされたIPアドレスは、このウェブサイトへアクセスできなくなります。", + ], + "Edit IP ban" => [ + 0 => "アクセス禁止IPアドレスの編集", + ], + "Enable signups" => [ + 0 => "新規アカウントの登録を有効にする", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "ゲストに新規アカウントの登録を許可する場合に有効にしてください。", + ], + "Enable user content delete" => [ + 0 => "ユーザーのコンテンツの消去を許可", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "ユーザーに自分のコンテンツの削除を許可する。この設定は管理者には影響しません。", + ], + "Minimum age required" => [ + 0 => "最低年齢の要求", + ], + "Empty" => [ + 0 => "空白", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "空白の状態だとこのサイトを利用するのに必要な年齢の要求を行いません。", + ], + "Notify on user signup" => [ + 0 => "ユーザーの会員登録時に通知する", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "ユーザーが会員登録する際にメールで通知が欲しい場合は有効にしてください。", + ], + "Username routing" => [ + 0 => "ユーザのURL形式の選択", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "URLを %s/user/username の替わりに %s/username を使いたい場合に有効にしてください。", + ], + "Require email confirmation" => [ + 0 => "メールアドレスの確認が必要", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "アカウント作成時にメールアドレスの確認を必須とする場合に有効にしてください。", + ], + "Require email for social signup" => [ + 0 => "ソーシャルネットワーク経由でのログインを使用するためにはメールアドレスが必要", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "ユーザがソーシャルネットワーク経由でのログインを使用するために、メールアドレスの登録を必須とする場合に有効にしてください。", + ], + "User avatar max. filesize" => [ + 0 => "ユーザーアバターの最大ファイルサイズ", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "ユーザーアバター画像の最大サイズ. (最大 %s に制限されます。)", + ], + "User background max. filesize" => [ + 0 => "ユーザー背景画像の最大ファイルサイズ", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "ユーザ背景画像の最大サイズ(最大 %s に制限されます。)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Webサイトにアクセスする前にコンセント画面を表示します。成人向けコンテンツを含むサイトを運用する場合に便利です。", + ], + "Enable consent screen" => [ + 0 => "コンセント画面を有効にする", + ], + "Consent screen cover image" => [ + 0 => "コンセント画面のカバー画像", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "既定の時間内に許可されたアップロード数を超えた場合に、IPアドレスで画像のアップロードをブロックします。どれくらいの投稿数でブロックを行うかを設定します。この設定は管理者には影響しません。", + ], + "Notify to email" => [ + 0 => "電子メールで知らせる", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "有効にされている場合、フラッディング攻撃があった場合メールで通知します。", + ], + "Minute limit" => [ + 0 => "1分間の許容量", + ], + "Hourly limit" => [ + 0 => "1時間の許容量", + ], + "Daily limit" => [ + 0 => "1日の許容量", + ], + "Weekly limit" => [ + 0 => "1週間の許容量", + ], + "Monthly limit" => [ + 0 => "1ヶ月の許容量", + ], + "Lock %s editing" => [ + 0 => "%s の編集をロック ", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "これを有効にすると、ユーザーがNSFWフラグを変更できなくなります。有効にすると、管理者と管理者のみがこの権限を持つことになります。", + ], + "Show not safe content in listings" => [ + 0 => "リスト中にファミリーセーフティに接触するコンテンツが含まれている場合でも表示する", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "リスト内に不適切なコンテンツを表示したい場合に有効にしてください。なお、この設定は管理者と自分自身で設定を行っている場合には適用されません。", + ], + "Blur NSFW content in listings" => [ + 0 => "リスト内のNSFW(不適切なコンテンツ)をボカす。", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "リスト内のNSFW(不適切なコンテンツ)をボカす場合、ONにする。", + ], + "Show banners in not safe content" => [ + 0 => "バナー中にファミリーセーフティに接触するコンテンツがある場合でも表示する", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "有効を選択すると、バナー中にファミリーセーフティに接触するなコンテンツが含まれていた場合にも表示します。この設定は管理者には影響しません。", + ], + "Show not safe content in random mode" => [ + 0 => "ランダム表示でのコンテンツにファミリーセーフティに接触するものが含まれている場合でも表示する", + ], + "List items per page" => [ + 0 => "1ページへの表示アイテム数", + ], + "How many items should be displayed per page listing." => [ + 0 => "1ページに表示するアイテム数をいくつにしますか?", + ], + "List pagination mode" => [ + 0 => "ページネーション方法の選択", + ], + "Endless scrolling" => [ + 0 => "無限スクロール", + ], + "Classic pagination" => [ + 0 => "通常のページネーション", + ], + "What pagination method should be used." => [ + 0 => "どのようなページネーションを使用しますか?", + ], + "Listing viewer" => [ + 0 => "リスト型ビューワー", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "画像をクリックした際にリスト型のビューワーを使う場合は有効にしてください。", + ], + "Image listing size" => [ + 0 => "表示される画像のサイズ", + ], + "Fluid" => [ + 0 => "フレキシブル", + ], + "Fixed" => [ + 0 => "固定", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "どちらも固定の幅になりますが、フレキシブルを選択すると高さは自動となります。", + ], + "Album listing images requirement" => [ + 0 => "アルバムをリスト化する際に必要な画像の枚数", + ], + "explore" => [ + 0 => "もっと見る", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "アルバムを「もっと見る」ページに表示するために必要な画像の最低枚数を設定してください。", + ], + "Listing columns number" => [ + 0 => "表示する列数", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "ここで、ターゲットデバイス毎にいくつの列を使用するか設定することができます。", + ], + "Phone" => [ + 0 => "スマートフォン", + ], + "Phablet" => [ + 0 => "ファブレット", + ], + "Tablet" => [ + 0 => "タブレット", + ], + "Laptop" => [ + 0 => "ラップトップ", + ], + "Desktop" => [ + 0 => "デスクトップ", + ], + "theme editing" => [ + 0 => "テーマ編集", + ], + "Put your themes in the %s folder" => [ + 0 => "テーマは%sフォルダへ入れて下さい。", + ], + "Tone" => [ + 0 => "色調", + ], + "Light" => [ + 0 => "明るく", + ], + "Dark" => [ + 0 => "暗く", + ], + "Main color" => [ + 0 => "メインカラー", + ], + "Hexadecimal color value" => [ + 0 => "16進数の色の値", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "メインのテーマ色を設定するにはこちらをご利用ください。値は、<a href=\"%s\" target=\"_blank\">16進数</a>で入力する必要があります。", + ], + "Top bar button color" => [ + 0 => "トップバーのボタンの色", + ], + "Blue" => [ + 0 => "青", + ], + "Green" => [ + 0 => "緑", + ], + "Orange" => [ + 0 => "橙", + ], + "Red" => [ + 0 => "赤", + ], + "Grey" => [ + 0 => "灰色", + ], + "Black" => [ + 0 => "黒", + ], + "White" => [ + 0 => "白", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "トップの”アカウントを作成”ボタンなどの色を設定します。", + ], + "Enable vector logo" => [ + 0 => "ベクターロゴを有効", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "高密度ピクセルのデバイスでは、ベクターロゴの画質を上げる", + ], + "Vector logo image" => [ + 0 => "ベクターロゴ画像", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "サイトのロゴにベクター画像、または、SVGフォーマット画像を使用できます。", + ], + "Raster logo image" => [ + 0 => "ラスターロゴ画像", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "透かしに使用するビットマップ画像、又はPNGフォーマットの画像。あならのサイトログはいかがですか?", + ], + "Logo height" => [ + 0 => "ロゴの高さ", + ], + "No value" => [ + 0 => "値がありません", + ], + "Use this to set the logo height if needed." => [ + 0 => "ロゴの高さが必要な場合、こちらを使用して下さい。", + ], + "Favicon image" => [ + 0 => "favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "faviconは高さと幅が同じでないといけません。", + ], + "Image load max. filesize" => [ + 0 => "画像の最大ファイルサイズ", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "このファイルサイズを超えたものは、オリジナル画像表示用のボタンが表示されます。", + ], + "Enable download button" => [ + 0 => "ダウンロードボタンを有効にする", + ], + "Enable this if you want to show the image download button." => [ + 0 => "画像ダウンロードボタンを表示したい場合に有効にしてください。", + ], + "Enable right click on image" => [ + 0 => "画像上での右クリックを可能にする", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "イメージビューアーページで右クリックを許可したい場合に有効にしてください。", + ], + "Enable show Exif data" => [ + 0 => "Exifデータを表示する", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Exifデータを表示したい場合に、この設定を有効にしてください。", + ], + "Enable social share" => [ + 0 => "ソーシャルネットワークでの共有を有効可", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "ソーシャルネットワークでコンテンツを共有するボタンを表示する場合に有効にしてください。", + ], + "Enable embed codes (content)" => [ + 0 => "埋込みコード(コンテンツへのリンク)を有効にする", + ], + "Everybody" => [ + 0 => "すべての人", + ], + "Users only" => [ + 0 => "ユーザーのみ", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "コンテンツへの埋込みコードを表示したい場合に有効にします。", + ], + "Not safe content checkbox in uploader" => [ + 0 => "ファミリーセーフティに接触するコンテンツのチェックボックスを表示する", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "ファミリーセーフティに接触するコンテンツをアップロードする警告を表示する場合に有効にします。", + ], + "Custom CSS code" => [ + 0 => "カスタムCSSコード", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "カスタムCSSコードをここへ入力します。 ヘッダタグの閉じられる寸前の</head>前に<style>タグとして挿入されます。", + ], + "Custom JS code" => [ + 0 => "カスタムJSコード", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "カスタムJSコードをここへ入力します。ヘッダタグの閉じられる寸前の</head>前に<script>タグとして挿入されます。", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "マークアップ %s は、ここでは使用できません。ここはjavascriptコードのためで、HTML用ではありません。HTMLタグを使用するとサイトに不具合が発生します。", + ], + "Style" => [ + 0 => "スタイル", + ], + "Landing page" => [ + 0 => "ランディングページ", + ], + "Split landing + images" => [ + 0 => "ランディング + 画像 を分割", + ], + "Route %s" => [ + 0 => "ルート%s", + ], + "upload" => [ + 0 => "アップロード", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "ホームページのスタイルを選択。 カスタマイズを行う場合は app/themes/%s/views/index.php を編集します。", + ], + "Cover image" => [ + 0 => "カバー画像", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "この画像を削除しますか?削除後は元に戻せません。", + ], + "Delete image" => [ + 0 => "画像を削除", + ], + "Add new cover image" => [ + 0 => "ヘッダ画像を新規追加", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "ベクターバージョンまたはSVG形式のサイトロゴ(ホームページのみ)", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "ビットマップバージョンまたは通常のサイトロゴ(ホームページのみ)PNG形式がおすすめです。", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "トップページに %s タグが追加されます。既定のコンテンツを使う場合は空欄にしてください。", + ], + "Paragraph" => [ + 0 => "段落", + ], + "Call to action button color" => [ + 0 => "アクションボタンの色", + ], + "Color of the homepage call to action button." => [ + 0 => "トップページに戻るボタンの色", + ], + "Call to action outline style button" => [ + 0 => "アウトラインスタイルボタン", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "トップページに戻るボタンにアウトラインスタイルを適用", + ], + "Call to action functionality" => [ + 0 => "機能", + ], + "Trigger uploader" => [ + 0 => "アップローダー起動", + ], + "Open URL" => [ + 0 => "独自URL", + ], + "Call to action URL" => [ + 0 => "URLを呼び出し", + ], + "Enter an absolute or relative URL" => [ + 0 => "絶対パス、または相対パスを入力", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "%r のような相対URLは、%l に変換されます。", + ], + "Call to action HTML" => [ + 0 => "HTMLの呼び出し", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => " <a> タグを追加する機能です。既定のコンテンツを使用する場合は空欄にしてください。", + ], + "User IDs" => [ + 0 => "ユーザID", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "コンマ区切りの対象ユーザーIDにホームページの画像を表示します。空欄、またはゼロの場合は、最近の画像を表示します。", + ], + "banners" => [ + 0 => "広告バナー", + ], + "Automatic updates check" => [ + 0 => "アップデートを自動でチェック", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "システムが自動でアップデートをチェックします。", + ], + "Display available updates notification" => [ + 0 => "アップデートの通知を有効化", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "システムアップデートがリリースされた場合に歳重用通知として表示を有効化", + ], + "Dump update query" => [ + 0 => "アップデートクエリーを削除", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "ユーザーごとに適切な言語を自動的に検出したい場合に有効にします。", + ], + "SEO %s URLs" => [ + 0 => "%s のSEO対応URL", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "%s URLsのSEOを有効化", + ], + "Minify code" => [ + 0 => "コードを圧縮", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "CSS、jsファイルを自動で圧縮する", + ], + "Maintenance" => [ + 0 => "メンテナンスモード", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "有効にされている場合、メンテナンスモードと表示されます。この設定は管理者には影響しません。", + ], + "Crypt salt" => [ + 0 => "暗号化のためのキー", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "数字のIDをアルファベット変換する際に使用されるキーです。インストール時に生成されています。", + ], + "PHP error reporting" => [ + 0 => "PHPエラーレポート", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "PHPが作成する <a %s>error_reporting()</a>を表示する。運用時はOFFにしてください。", + ], + "Debug level" => [ + 0 => "デバッグレベル", + ], + "None" => [ + 0 => "なし", + ], + "Error log" => [ + 0 => "エラーログ", + ], + "Print errors without error log" => [ + 0 => "エラーログなしでのエラー表示", + ], + "Print and log errors" => [ + 0 => "エラー表示(ログを含む)", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "デバッグレベルの設定は <a %s>debug documentation</a>を確認してください。 ディフォルトは \"Error log\" (1)です。", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "ルーティングは、既定のルートに直ちに反映されます。英数字、ハイフン、アンダースコアのみ有効です。ルートの新規追加、更新は、%sを確認してください。", + ], + "Image routing" => [ + 0 => "画像ルーティング", + ], + "Routing for %s" => [ + 0 => "%sへのルート", + ], + "Album routing" => [ + 0 => "アルバムへのルーティング", + ], + "Hostname" => [ + 0 => "ホスト名", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "ホスト名のサブドメインをワイルドカードで追加します。", + ], + "This setting may be overridden by %s." => [ + 0 => "この設定は、%s で上書されます。", + ], + "Language subdomains" => [ + 0 => "サブドメインの言語", + ], + "languages" => [ + 0 => "言語", + ], + "Enable to use %s for %t." => [ + 0 => "%t 用に %s を使用", + ], + "Username subdomains" => [ + 0 => "サブドメインのユーザ名", + ], + "user profiles" => [ + 0 => "ユーザープロファイル", + ], + "Custom language strings" => [ + 0 => "個別の言語文字列", + ], + "language strings" => [ + 0 => "言語", + ], + "Default language" => [ + 0 => "既定の言語", + ], + "Default base language to use." => [ + 0 => "既定の言語として使用", + ], + "Auto language" => [ + 0 => "言語を自動で選択", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "各ユーザ毎に言語を自動で設定する", + ], + "Language chooser" => [ + 0 => "言語選択", + ], + "Enable this if you want to allow language selection." => [ + 0 => "言語の選択を可能にする", + ], + "Enabled languages" => [ + 0 => "選択できる言語", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "チェックされていない言語はサイトで使用出来ません。", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "HTTPSの有効/無効の切替", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "このストレージの有効/無効の切替", + ], + "Quota" => [ + 0 => "クォータ", + ], + "Active" => [ + 0 => "アクティブ", + ], + "Storage method" => [ + 0 => "保存方法", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "アクティブな外部ストレージがない場合、ローカルストレージが使用されます。", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "ヘルプは <a %s>storage documentation</a> です。", + ], + "Edit storage" => [ + 0 => "ストレージの編集", + ], + "From name" => [ + 0 => "送信元名", + ], + "Sender name for emails sent to users." => [ + 0 => "ユーザに送信するメールの送信元名", + ], + "Email mode" => [ + 0 => "電子メールモード", + ], + "How to send emails? SMTP recommended." => [ + 0 => "どのようにメールを送信しますか?SMTPがお勧めです。", + ], + "SMTP server and port" => [ + 0 => "SMTPサーバーとポート番号", + ], + "SMTP server" => [ + 0 => "SMTPサーバー", + ], + "SMTP username" => [ + 0 => "SMTPユーザ名", + ], + "SMTP password" => [ + 0 => "SMTPパスワード", + ], + "SMTP security" => [ + 0 => "SMTPセキュリティ", + ], + "Unsecured" => [ + 0 => "セキュリティで保護されていません", + ], + "Decode ID" => [ + 0 => "デコードID", + ], + "Encode ID" => [ + 0 => "エンコードID", + ], + "Send test email" => [ + 0 => "テストメールを送信する", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "メールアドレスにどのように送信されるかをテストする場合にこちらを利用してください。%sを使用することをお勧めします。", + ], + "Export a user" => [ + 0 => "ユーザーをエクスポート", + ], + "Export user" => [ + 0 => "ユーザーをエクスポート", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "JSONフォーマットで、ユーザーの標準的な個人情報をダウンロードすることができます。", + ], + "Regenerate external storage stats" => [ + 0 => "外部ストレージの統計情報を再構築", + ], + "Storage id" => [ + 0 => "ストレージID", + ], + "Regenerate" => [ + 0 => "再構築", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "指定された外部ストレージと再計算された保存画像の合計を紐付けます。", + ], + "Migrate image records from one external storage to another" => [ + 0 => "外部ストレージから別の外部ストレージに画像を移動します。", + ], + "Source storage id" => [ + 0 => "元になるストレージID", + ], + "Target storage id" => [ + 0 => "ターゲットのストレージID", + ], + "Migrate" => [ + 0 => "移動", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "これはデータベースの更新のみす。ファイルは、ご自身でターゲット先に移動してください。URLの書換も推奨します。ローカルストレージを使用するには、ゼロ(0)を使用します。", + ], + "social networks" => [ + 0 => "ソーシャル・ネットワーク", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "この機能を使用するためには、<a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebookアプリ</a>が必要です。", + ], + "Facebook app id" => [ + 0 => "フェイスブック アプリID", + ], + "Facebook app secret" => [ + 0 => "Facebookアプリシークレットキー", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "この機能を使用するためには、<a href=\"https://apps.twitter.com\" target=\"_blank\">Twitterアプリ</a>が必要です。", + ], + "Twitter API key" => [ + 0 => "Twitter APIキー", + ], + "Twitter API secret" => [ + 0 => "Twitter API シークレットキー", + ], + "Twitter account" => [ + 0 => "Twitterアカウント", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "この機能を使用するためには、<a href=\"https://cloud.google.com/console\" target=\"_blank\">Googleアプリ</a>が必要です。", + ], + "Google client id" => [ + 0 => "Google クライアントID", + ], + "Google client secret" => [ + 0 => "Google クライアントシークレットキー", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "この機能を使用するためには、<a href=\"http://vk.com/dev\" target=\"_blank\">VK アプリ</a>が必要です。", + ], + "VK client id" => [ + 0 => "VKクライアントID", + ], + "VK client secret" => [ + 0 => "VKクライアントシークレットキー", + ], + "%s spam protection" => [ + 0 => "%s スパム保護", + ], + "user generated content" => [ + 0 => "ユーザー作成のコンテンツ", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "%l を使用して %c のスパムをブロックを有効化", + ], + "%s API key" => [ + 0 => "%s API key", + ], + "user signup" => [ + 0 => "ユーザーアカウント作成", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "画像認証を使用するためには、<a href=\"%s\" target=\"_blank\">reCAPTCHA キー</a>が必要です。", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "reCAPTCHAのバージョンとキーはセットです。バージョンを上げる場合にはキーの更新も忘れないようにしてください。", + ], + "%s site key" => [ + 0 => "%s サイトキー", + ], + "%s secret key" => [ + 0 => "%s シークレットキー", + ], + "reCAPTCHA threshold" => [ + 0 => "閾値(失敗)", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "何回の失敗でreCAPTCHAを有効にしますか?ゼロ(0)だと常にreCAPTCHAが表示されます。", + ], + "Force %s on contact page" => [ + 0 => "コンタクトページ上で %s を行わせる", + ], + "Enable this to always show %s on contact page." => [ + 0 => "コンタクトページに %s を常に表示する場合", + ], + "Comments API" => [ + 0 => "コメントAPI", + ], + "Disqus API works with %s." => [ + 0 => "%s でDisqus APIが動作します。", + ], + "Disqus shortname" => [ + 0 => "Disqus ショートネーム", + ], + "%s public key" => [ + 0 => "%s パブリックキー", + ], + "Comment code" => [ + 0 => "コメントコード", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus,Facebookなどが必要な場合には、イメージ表示を使って下さい。", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "%s を使用してコンテンツを自動で判定する。", + ], + "Automatic approve" => [ + 0 => "自動承認", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "このサービスによってモデレートされたコンテンツを自動的に承認するには、これを有効にします。", + ], + "Block content" => [ + 0 => "コンテンツをブロック", + ], + "Adult" => [ + 0 => "アダルト", + ], + "Teen and adult" => [ + 0 => "未成年とアダルト", + ], + "Flag NSFW" => [ + 0 => "NSFW印", + ], + "Analytics code" => [ + 0 => "アクセス解析用コード", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analyticsや他の解析コードが必要な場合に入力してください。テーマのフッタ部分に追加されます。", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "APIのドキュメントは <a %s>API documentation</a>です。", + ], + "API v1 key" => [ + 0 => "API v1 キー", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "<a %s>API v1</a>を使用するときは、このキーを使用します。", + ], + "Plugin route" => [ + 0 => "プラグインルート", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "%uでプラグインの説明を表示する。これらの説明は、メニューに%sを追加します。この設定は管理者には影響しません。", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "%pのカスタムURLをセットするのに使用。手動でこのURLを%sで複製してください。", + ], + "Cookie law compliance" => [ + 0 => "法律に準拠したクッキー", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "EU法に準拠したメッセージを表示するためにONにする。注) あなたのWebサイトがEU内でホスティングされており、クッキーでのトラッキングを行う場合に必要です。", + ], + "Save changes" => [ + 0 => "変更を保存", + ], + "Check the errors to proceed." => [ + 0 => "次へ進むためにエラーをチェックして下さい。", + ], + "Play GIF" => [ + 0 => "GIF再生", + ], + "Load full resolution" => [ + 0 => "最大解像度で表示", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。", + ], + "Added to %a and categorized in %c" => [ + 0 => "%a へ追加してカテゴリ名: %c に分類", + ], + "Added to %s" => [ + 0 => "%sに追加", + ], + "Uploaded to %s" => [ + 0 => "%s へアップロード", + ], + "Uploaded %s" => [ + 0 => "%sにアップロード", + ], + "Less Exif data" => [ + 0 => "Exifデータをたたむ", + ], + "More Exif data" => [ + 0 => "さらにExifデータを表示", + ], + "Share image" => [ + 0 => "画像を共有", + ], + "Album ID" => [ + 0 => "アルバムID", + ], + "In this album" => [ + 0 => "このアルバム内", + ], + "Upload and share your images." => [ + 0 => "アップロードして画像を共有する。", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "アップロードする画像をドラッグ&ドロップすると、すぐにアップロードが始まります。最大%sまでの画像をアップロードできます。 画像へのダイレクトURL、 BBCode とHTML サムネイルなどが利用できます。", + ], + "Start uploading" => [ + 0 => "アップロード開始", + ], + "Sign up to unlock all the features" => [ + 0 => "すべての機能を利用するためにアカウントを作成しましょう。", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "あなたのコンテンツを管理したり、非公開アルバムを作成したり、プロフィールのカスタマイズなどが行えます。", + ], + "Sign in with your account" => [ + 0 => "アカウントへログイン", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "アカウントがありませんか?今すぐ<a href='%s'>アカウントを作成</a>しましょう。", + ], + "Logged out" => [ + 0 => "ログアウトしました。", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "あなたは%sからログアウトしました。またのご利用をお待ちしています。", + ], + "Go to homepage" => [ + 0 => "ホームへ戻る", + ], + "Website under maintenance" => [ + 0 => "現在、メンテナンス中です。", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "大変申し訳ありませんが、現在、定期メンテナンスを行っています。しばらくしてから再度アクセスしてください。", + ], + "This content is password protected." => [ + 0 => "このコンテンツはパスワードで保護されています。", + ], + "Please enter your password to continue." => [ + 0 => "続けるにはパスワードを入力してください。", + ], + "Send" => [ + 0 => "送信", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "このアップロードプラグインのインストールされている、Webサイト、ブログ、またはフォーラムから画像をアップロードして追加する。画像の追加に必要なコードを自動で扱うボタンの設置されたWebサイトへ画像をアップロードします。ドラッグ&ドロップやリモートアップロード、画像のリサイズなどの機能も全てふくまれています。", + ], + "Supported software" => [ + 0 => "サポートするソフトウェア", + ], + "supported software" => [ + 0 => "サポートするソフトウェア", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "プラグインは、ユーザーがコンテンツを編集可能なWebサイトや%sの編集用エディタに特別なカスタマイズなしで、画像のアップロートボタンを追加します。", + ], + "Add it to your website" => [ + 0 => "あなたのWebサイトへ追加", + ], + "options" => [ + 0 => "オプション", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "WebサイトのHTMLへコードをコピーして貼りつけます(head内が最適です)。豊富な%oが合わせます。", + ], + "Basic options" => [ + 0 => "基本オプション", + ], + "Color palette" => [ + 0 => "カラーパレット", + ], + "Button color scheme" => [ + 0 => "ボタン色スキーマ", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "エディターボックスに自動でコードを埋め込む", + ], + "Sibling selector" => [ + 0 => "兄弟セレクター", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "ボタンの隣の兄弟セレクター", + ], + "Sibling position" => [ + 0 => "兄弟ポジション", + ], + "After" => [ + 0 => "アフター", + ], + "Before" => [ + 0 => "ビフォー", + ], + "Position relative to sibling element" => [ + 0 => "兄弟エレメントとrelativeに", + ], + "Advanced options" => [ + 0 => "追加オプション", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "プラグインには、フルカスタマイズするための豊富な追加オプションセットがあります。カスタムHTML,カスタムCSS、カラーパレットなどが使えます。追加オプションセットを使いこなすには、%dか、プラグインのソースを参照してください。", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "このページにアクセスする権利がないか、または、期限切れのリンクです。", + ], + "Search results" => [ + 0 => "検索結果", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "本当にこのユーザを削除しますか?削除すると元には戻せません。", + ], + "Delete user" => [ + 0 => "ユーザを削除", + ], + "Register date" => [ + 0 => "登録日", + ], + "Registration IP" => [ + 0 => "登録元IP", + ], + "Valid" => [ + 0 => "有効", + ], + "Banned" => [ + 0 => "追放済み", + ], + "Awaiting email" => [ + 0 => "メールアドレス待ち", + ], + "Awaiting confirmation" => [ + 0 => "確認待ち", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i 文字以上 %f 文字以下で<br>半角英文字, 数字と \"_\"が使えます。", + ], + "Auto delete uploads" => [ + 0 => "アップロードを自動削除する", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "この設定はデフォルトでアップロードされる全ての画像に適用されます。アップロード毎にこの設定を変更することが可能です。", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "画像の <a %s>Exifデータ</a>を保持する", + ], + "Newsletter" => [ + 0 => "ニュースレター", + ], + "Send me emails with news about %s" => [ + 0 => "%sに関するニュースをメールで送信します。", + ], + "Content settings" => [ + 0 => "現在の設定", + ], + "Show not safe content in listings (from others)" => [ + 0 => "不適切なコンテンツをリストに表示しない(他のユーザーのコンテンツ)", + ], + "Language" => [ + 0 => "言語", + ], + "Timezone" => [ + 0 => "タイムゾーン", + ], + "Current password" => [ + 0 => "現在のパスワード", + ], + "Enter your current password" => [ + 0 => "現在のパスワードを入力して下さい。", + ], + "New password" => [ + 0 => "新しいパスワード", + ], + "Confirm new password" => [ + 0 => "新しいパスワードの確認", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "ユーザ名、または、メールアドレスを使ってパスワードを設定して下さい。", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "このユーザはパスワードを設定していません。このフォームから設定して下さい。", + ], + "Enter your password" => [ + 0 => "パスワードを入力して下さい。", + ], + "Confirm password" => [ + 0 => "新しいパスワード(確認)", + ], + "Re-enter your password" => [ + 0 => "パスワードを再度入力して下さい。", + ], + "Upload new image" => [ + 0 => "新規画像のアップロード", + ], + "Delete existing image" => [ + 0 => "アップロード済みの画像を削除", + ], + "Make my profile and identity totally private" => [ + 0 => "プロフィールなどを非公開にする", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "匿名ユーザとなる", + ], + "This is your real name, not your username." => [ + 0 => "これはユーザー名ではなく、表示名です。", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "自己紹介", + ], + "Tell us a little bit about you" => [ + 0 => "あなたについて少し教えてください。", + ], + "User has no connections." => [ + 0 => "ユーザは何も接続していません。", + ], + "Link your account to external services to be able to login here." => [ + 0 => "あなたのアカウントでの外部サービスへログイン、コンテンツの共有を行うリンク", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "%sのアカウントとの接続を解除してもよろしいですか?", + ], + "This account is connected to %s" => [ + 0 => "このアカウントは、%sに接続されています。", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "本当に%sアカウントへの接続を解除してもよろしいですか?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "ログアウトすると、%sのアカウントを使用してログイン出来なくなります。", + ], + "Your account is connected to %s" => [ + 0 => "あなたのアカウントは%sへ接続されています。", + ], + "disconnect" => [ + 0 => "接続を解除", + ], + "Connect %s" => [ + 0 => "%sと接続", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "お気軽に共有設定しているアルバムと画像をご覧下さい。", + ], + "Button" => [ + 0 => "ボタン", + ], + "View all my images" => [ + 0 => "全ての画像を見る", + ], + "Login" => [ + 0 => "ログイン", + ], + "Already have an account? %s now." => [ + 0 => "既にアカウントをお持ちであれば %s へどうぞ。", + ], + "resend account activation" => [ + 0 => "アカウント有効の再通知", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "アカウント申込みが完了している場合は、%s へ有効化を申請してください。 ", + ], + "You can also %s." => [ + 0 => "%s も使用できます。", + ], + "I'm at least %s years old" => [ + 0 => "私は%s歳以上です。", + ], + "terms" => [ + 0 => "利用規約", + ], + "privacy policy" => [ + 0 => "プライバシーポリシー", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "私は、%terms_link と %privacy_link に同意します", + ], + "Upload profile background" => [ + 0 => "プロフィールの背景をアップロード", + ], + "Change background" => [ + 0 => "背景を変更", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "このプロフィールの背景画像は削除されます。削除すると、元には戻せません。本当に削除して構いませんか?", + ], + "Delete background" => [ + 0 => "背景の削除", + ], + "Follower" => [ + 0 => "フォロワー", + ], + "Follow" => [ + 0 => "フォロー", + ], + "You have been forbidden to use this website." => [ + 0 => "あなたは、このウェブサイトを使うことができません。", + ], + "Plugin" => [ + 0 => "プラグイン", + ], + "Page %s" => [ + 0 => "%sページ", + ], + "General questions/comments" => [ + 0 => "一般的な質問/コメント", + ], + "DMCA complaint" => [ + 0 => "デジタルミレニアム著作権法", + ], + "Invalid message" => [ + 0 => "有効なメッセージではありません。", + ], + "Invalid subject" => [ + 0 => "有効な件名ではありません。", + ], + "Mail error" => [ + 0 => "メールでエラーが発生しました。", + ], + "Message sent" => [ + 0 => "メッセージを送信しました。", + ], + "Message sent. We will get in contact soon." => [ + 0 => "メッセージを送信しました。まもなく私どもから連絡を差し上げます。", + ], + "If you want to send a message fill the form below." => [ + 0 => "メッセージを送信するには、以下のフォームに入力してください。", + ], + "Your name" => [ + 0 => "氏名", + ], + "Subject" => [ + 0 => "件名", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "続行すると、行った全ての変更が破棄されます。", + ], + "Changes saved successfully." => [ + 0 => "変更の保存が完了しました。", + ], + "Go back to form" => [ + 0 => "フォームへ戻る", + ], + "continue anyway" => [ + 0 => "とにかく続ける", + ], + "Saving" => [ + 0 => "保存中", + ], + "Sending" => [ + 0 => "送信中", + ], + "Confirm action" => [ + 0 => "確認を行う", + ], + "information" => [ + 0 => "情報", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/ko.po.cache.php b/app/.cache/languages/ko.po.cache.php new file mode 100644 index 0000000..d0a0e89 --- /dev/null +++ b/app/.cache/languages/ko.po.cache.php @@ -0,0 +1,3785 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-25 18:53+0000', + 'PO-Revision-Date' => '2020-09-25 18:53+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'ko', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "이메일 주소가 잘못되었습니다", + ], + "Invalid username" => [ + 0 => "잘못된 사용자명", + ], + "Invalid password" => [ + 0 => "잘못된 암호", + ], + "Invalid website mode" => [ + 0 => "잘못된 웹사이트 모드", + ], + "From email address" => [ + 0 => "보내는 이메일 주소", + ], + "Sender email for emails sent to users." => [ + 0 => "사용자에게 이메일을 보낼 때 사용하는 이메일 주소입니다.", + ], + "Incoming email address" => [ + 0 => "받는 이메일 주소", + ], + "Recipient for contact form and system alerts." => [ + 0 => "시스템 경고 및 문의하기 폼메일로부터 작성된 메시지를 받는 이메일 주소입니다.", + ], + "Website mode" => [ + 0 => "웹사이트 모드", + ], + "You can switch the website mode anytime." => [ + 0 => "웹사이트 모드는 언제든지 바꿀 수 있습니다.", + ], + "Community" => [ + 0 => "모임", + ], + "Personal" => [ + 0 => "개인용", + ], + "Installed version is v%s" => [ + 0 => "설치된 버전은 v%s 입니다", + ], + "Can't connect to %s" => [ + 0 => "%s에 연결할 수 없습니다", + ], + "Last available release is v%s" => [ + 0 => "사용 가능한 최신 버전은 v%s 입니다", + ], + "Update needed, proceeding to download" => [ + 0 => "업데이트가 필요합니다. 다운로드 진행 중", + ], + "No update needed" => [ + 0 => "업데이트가 필요하지 않습니다", + ], + "System files already up to date" => [ + 0 => "시스템 파일이 이미 최신 상태입니다", + ], + "Starting v%s download" => [ + 0 => "v%s 버전 다운로드를 시작 중", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s 을(를) 다운로드했습니다. 압축을 해제하는 중입니다", + ], + "Attempting to extract v%s" => [ + 0 => "v%s 의 압축을 해제하는 중입니다", + ], + "Extraction completed" => [ + 0 => "압축 해제가 완료되었습니다", + ], + "Proceding to install the update" => [ + 0 => "업데이트를 설치하는중 입니다", + ], + "Update failed" => [ + 0 => "업데이트가 실패하였습니다", + ], + "Update in progress" => [ + 0 => "업데이트가 진행 중입니다", + ], + "Missing %s file" => [ + 0 => "%s 파일이 없습니다", + ], + "Invalid license info" => [ + 0 => "라이선스 정보가 잘못되었습니다", + ], + "Invalid license key" => [ + 0 => "라이선스 키가 잘못되었습니다", + ], + "Can't save file" => [ + 0 => "파일을 저장할 수 업습니다", + ], + "Can't download %s" => [ + 0 => "%s를 다운로드 할 수 없습니다", + ], + "Can't extract %s" => [ + 0 => "%s의 압축을 해제할 수 없습니다", + ], + "Can't create %s directory - %e" => [ + 0 => "%s 디렉터리를 만들 수 없습니다 -%e", + ], + "Can't update %s file - %e" => [ + 0 => "%s 파일을 업데이트할 수 없습니다 - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "계속하려면 잘못된 입력 내용을 수정해주세요.", + ], + "You must enter the album name." => [ + 0 => "앨범 이름은 필수 요소입니다.", + ], + "Confirm" => [ + 0 => "확인", + ], + "The content has been approved." => [ + 0 => "게시물을 승인하였습니다.", + ], + "Select existing album" => [ + 0 => "기존 앨범 선택하기", + ], + "An error occurred. Please try again later." => [ + 0 => "오류가 발생했습니다. 잠시 후에 다시 시도해주세요.", + ], + "Please select a valid image file type." => [ + 0 => "올바른 이미지 파일 유형을 선택하십시오.", + ], + "Please select a picture of at most %s size." => [ + 0 => "최대 %s 크기의 이미지를 선택해주세요.", + ], + "Profile image updated." => [ + 0 => "프로필 이미지가 업데이트되었습니다.", + ], + "Profile background image updated." => [ + 0 => "프로필 배경 이미지가 업데이트되었습니다.", + ], + "Profile background image deleted." => [ + 0 => "프로필 배경 이미지가 삭제되었습니다.", + ], + "Error deleting profile background image." => [ + 0 => "프로필 배경 이미지를 삭제하는 동안 오류가 발생했습니다.", + ], + "Passwords don't match" => [ + 0 => "비밀번호가 일치하지 않습니다", + ], + "Update available v%s" => [ + 0 => "v%s 버전 업데이트가 가능합니다", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "시스템에 적용할 수 있는 업데이트가 발견되었습니다. 이 업데이트를 자동으로 다운로드하여 설치하거나 %s 로(으로) 이동하여 파일 다운로드를 진행할 수 있습니다.", + ], + "The release notes for this update are:" => [ + 0 => "이 업데이트의 릴리즈 노트는 다음과 같습니다:", + ], + "Update now" => [ + 0 => "업데이트 하기", + ], + "or" => [ + 0 => "또는", + ], + "cancel" => [ + 0 => "취소", + ], + "This website is running latest %s version" => [ + 0 => "이 웹사이트는 최신 %s 버전을 사용 중입니다", + ], + "loading" => [ + 0 => "불러오는 중", + ], + "Toggle select" => [ + 0 => "선택 토글", + ], + "Like" => [ + 0 => "좋아요", + ], + "Toggle flag" => [ + 0 => "플래그 토글", + ], + "Edit" => [ + 0 => "편집", + ], + "Album" => [ + 0 => "앨범", + ], + "Approve" => [ + 0 => "승인", + ], + "Delete" => [ + 0 => "삭제", + ], + "Close" => [ + 0 => "닫기", + ], + "Previous" => [ + 0 => "앞으로", + ], + "Next" => [ + 0 => "뒤로", + ], + "Clipboard image" => [ + 0 => "클립보드 이미지", + ], + "File too big." => [ + 0 => "파일이 너무 큽니다.", + ], + "Invalid or unsupported file format." => [ + 0 => "파일이 잘못되었거나 지원하지 않는 형식입니다.", + ], + "Some files couldn't be added" => [ + 0 => "일부 파일을 추가하지 못했습니다", + ], + "image" => [ + 0 => "이미지", + ], + "%s's Albums" => [ + 0 => "%s의 앨범", + ], + "Image edited successfully." => [ + 0 => "이미지 편집이 완료되었습니다.", + ], + "private" => [ + 0 => "비공개", + ], + "Album edited successfully." => [ + 0 => "앨범 편집이 완료되었습니다.", + ], + "Invalid URL key." => [ + 0 => "URL 키가 잘못되었습니다.", + ], + "Category URL key already being used." => [ + 0 => "카테고리 URL 키가 이미 사용 중입니다.", + ], + "Category successfully deleted." => [ + 0 => "카테고리 삭제가 완료되었습니다.", + ], + "Category %s added." => [ + 0 => "%s 카테고리가 추가되었습니다.", + ], + "Invalid expiration date." => [ + 0 => "만료 날짜가 잘못되었습니다.", + ], + "IP %s already banned." => [ + 0 => "%s IP 주소는 이미 차단되었습니다.", + ], + "IP %s banned." => [ + 0 => "%s IP 주소가 차단되었습니다.", + ], + "IP ban successfully deleted." => [ + 0 => "IP 차단 삭제가 완료되었습니다.", + ], + "Please fill all the required fields." => [ + 0 => "모든 필수 요소를 채워주세요.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "저장소 용량이 잘못되었습니다. 유효한 형식인지 확인해주세요.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "저장소 용량은 현재 사용량 (%s) 보다 작을 수 없습니다.", + ], + "Invalid URL." => [ + 0 => "URL이 잘못되었습니다.", + ], + "Storage successfully edited." => [ + 0 => "저장소 편집이 완료되었습니다.", + ], + "User added successfully." => [ + 0 => "사용자 추가가 완료되었습니다.", + ], + "The content has been deleted." => [ + 0 => "게시물이 삭제되었습니다.", + ], + "The content has been moved." => [ + 0 => "게시물이 이동되었습니다.", + ], + "Select" => [ + 0 => "선택", + ], + "Unselect" => [ + 0 => "선택 해제", + ], + "The content has been edited." => [ + 0 => "게시물이 편집되었습니다.", + ], + "Import job ID %s added successfully, you can process the import now" => [ + 0 => "가져오기 작업 ID %s 이(가) 추가되었습니다. 지금 가져오기를 처리할 수 있습니다", + ], + "Select number of threads" => [ + 0 => "스래드 개수를 선택해주세요", + ], + "Import job ID %s is being processed now" => [ + 0 => "가져오기 작업 ID %s 이(가) 지금 처리 중입니다", + ], + "Import ID %s removed" => [ + 0 => "가져오기 작업 ID %s 이(가) 제거되었습니다", + ], + "Spam detected" => [ + 0 => "스팸이 감지되었습니다", + ], + "album" => [ + 0 => "앨범", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "헤비 업로드가 감지되었습니다. %time% 동안 %content%는 %limit% 만큼 업로드할 수 있습니다", + ], + "Untitled" => [ + 0 => "제목 없음", + ], + "%s's images" => [ + 0 => "%s님의 이미지", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "참고: 이 게시물은 비공개(링크)로 설정되어 있습니다. 링크를 통해 열람이 가능합니다.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "참고: 이 게시물은 비공개(비밀번호)로 설정되어 있습니다. 공유된 게시물을 열람하려면 비밀번호가 필요합니다.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "참고: 이 게시물은 비공개(개인)로 설정되어 있습니다. 공유하려면 공개 범위 설정을 \"공개\"로 변경해주세요.", + ], + "Private" => [ + 0 => "비공개", + ], + "Public" => [ + 0 => "공개", + ], + "Me" => [ + 0 => "나만", + ], + "Link" => [ + 0 => "링크", + ], + "Password" => [ + 0 => "암호", + ], + "view" => [ + 0 => "조회", + ], + "After %n %t" => [ + 0 => "%n%t 후", + ], + "minute" => [ + 0 => "분", + ], + "hour" => [ + 0 => "시간", + ], + "day" => [ + 0 => "일", + ], + "week" => [ + 0 => "주", + ], + "month" => [ + 0 => "개월", + ], + "year" => [ + 0 => "년", + ], + "Don't autodelete" => [ + 0 => "자동 삭제를 하지 않음", + ], + "Duplicated upload" => [ + 0 => "중복된 업로드", + ], + "Private upload" => [ + 0 => "비공개 업로드", + ], + "like" => [ + 0 => "좋아요", + ], + "Recent" => [ + 0 => "최신 게시물", + ], + "Trending" => [ + 0 => "트렌드", + ], + "Top users" => [ + 0 => "최고 사용자", + ], + "Most recent" => [ + 0 => "최신순", + ], + "Oldest" => [ + 0 => "오래된순", + ], + "Most viewed" => [ + 0 => "조회순", + ], + "Popular" => [ + 0 => "인기", + ], + "Most liked" => [ + 0 => "인기순", + ], + "Explore" => [ + 0 => "탐색", + ], + "Animated" => [ + 0 => "움짤", + ], + "Search" => [ + 0 => "찾아보기", + ], + "People" => [ + 0 => "사람", + ], + "Image" => [ + 0 => "이미지", + ], + "User" => [ + 0 => "사용자", + ], + "adult" => [ + 0 => "성인", + ], + "teen" => [ + 0 => "미성년자", + ], + "Can't create %s destination dir" => [ + 0 => "%s 목적지 디렉터리를 찾을 수 없습니다", + ], + "Can't open %s for writing" => [ + 0 => "쓰기 위해 %s 을(를) 열 수 없습니다", + ], + "Internal" => [ + 0 => "내부", + ], + "Can't insert storage." => [ + 0 => "저장소를 설정할 수 없습니다.", + ], + "Can't update storage details." => [ + 0 => "저장소 상세정보를 업데이트 할 수 없습니다.", + ], + "requires %s" => [ + 0 => "%s 필요", + ], + "Unlimited" => [ + 0 => "제한 없음", + ], + "used" => [ + 0 => "사용됨", + ], + "Private profile" => [ + 0 => "비공개 프로필", + ], + "second" => [ + 0 => "초", + ], + "%s ago" => [ + 0 => "%s 전", + ], + "moments ago" => [ + 0 => "방금 전", + ], + "Dashboard" => [ + 0 => "대시보드", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "시스템 업데이트가 가능합니다. %s 로 이동하여 이 업데이트를 다운로드하고 설치해주세요.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "시스템 데이터베이스가 오래되었습니다. <a href=\"%s\">업데이트</a> 도구를 실행해주세요.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "웹사이트가 유지보수 모드 상태입니다. 이 설정을 되돌리려면 <a href=\"%s\">대시보드 > 설정</a>으로 이동해주세요.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "실 사용 환경에서는 PHP 에러 보고 기능을 비활성화해주세요. 이 설정을 되돌리려면 <a href='%s'>시스템</a> 설정으로 이동해주세요.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "아직 기본 이메일 설정을 변경하지 않았습니다. 이 설정을 수정하려면 <a href='%s'>이메일</a> 설정으로 이동해주세요.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Chevereto 기반 웹사이트에 대한 업데이트가 있습니다.", + ], + "admin dashboard" => [ + 0 => "관리자 대시보드", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "이 업데이트를 %a에서 직접 적용시키거나 %s에서 다운로드하여 수동으로 설치할 수 있습니다.", + ], + "view on %s" => [ + 0 => "%s에서 보기", + ], + "cookie policy" => [ + 0 => "쿠키 정책", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "이 웹사이트는 개인화되고 맞춤화된 서비스를 제공하기 위해서, 사용자의 정보를 저장하고 수시로 불러오는 쿠키(cookie)를 사용합니다. 웹사이트 이용을 계속하는 것은 %cookie_policy_link에 동의하는 것으로 간주합니다.", + ], + "I understand" => [ + 0 => "동의합니다.", + ], + "Forgot password?" => [ + 0 => "암호를 잊으셨나요?", + ], + "Reset password" => [ + 0 => "암호 재설정", + ], + "Resend account activation" => [ + 0 => "계정 활성화 메일 다시보내기", + ], + "Add your email address" => [ + 0 => "이메일 주소를 넣어주세요", + ], + "Email changed" => [ + 0 => "이메일 주소가 변경됨", + ], + "%s says you are a robot" => [ + 0 => "%s 가 현재 사용자를 로봇으로 보고했습니다", + ], + "Invalid Username/Email" => [ + 0 => "사용자 이름 또는 이메일 주소가 잘못되었습니다", + ], + "User doesn't have an email." => [ + 0 => "이메일 주소가 없는 사용자입니다.", + ], + "Request denied" => [ + 0 => "요청이 거부됨", + ], + "Account needs to be activated to use this feature" => [ + 0 => "이 기능을 사용하려면 계정이 활성화되어야 합니다", + ], + "Account already activated" => [ + 0 => "계정이 이미 활성화됨", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "이메일을 다시 보내기 위해서는 최대 15분이 필요합니다. 잠시 후에 다시 시도해주세요.", + ], + "Reset your password at %s" => [ + 0 => "귀하의 암호 재설정하기 - %s", + ], + "Confirmation required at %s" => [ + 0 => "%s에서 확인해주셔야 할 내용이 있습니다.", + ], + "Welcome to %s" => [ + 0 => "%s에 방문하신 것을 환영합니다", + ], + "Email already being used" => [ + 0 => "이메일 주소가 이미 사용 중입니다", + ], + "Password required" => [ + 0 => "암호 필요", + ], + "Share" => [ + 0 => "공유하기", + ], + "Embed codes" => [ + 0 => "퍼가기", + ], + "Full info" => [ + 0 => "상세 정보", + ], + "%a album hosted in %w" => [ + 0 => "%w에서 호스팅하는 %a 앨범", + ], + "Stats" => [ + 0 => "서버 상태", + ], + "Images" => [ + 0 => "이미지", + ], + "Albums" => [ + 0 => "앨범", + ], + "Users" => [ + 0 => "사용자", + ], + "Settings" => [ + 0 => "설정", + ], + "Bulk importer" => [ + 0 => "한꺼번에 가져오기", + ], + "Chevereto version" => [ + 0 => "Chevereto 버전", + ], + "install update" => [ + 0 => "업데이트 설치하기", + ], + "check for updates" => [ + 0 => "업데이트 확인하기", + ], + "Support" => [ + 0 => "지원", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "도움이 필요하세요? %s을 방문하시면 빠르게 도움을 받을 수 있습니다.", + ], + "PHP version" => [ + 0 => "PHP 버전", + ], + "Server" => [ + 0 => "서버", + ], + "MySQL version" => [ + 0 => "MySQL 버전", + ], + "MySQL server info" => [ + 0 => "MySQL 서버 정보", + ], + "GD Library" => [ + 0 => "GD 라이브러리", + ], + "File uploads" => [ + 0 => "파일 업로드", + ], + "Enabled" => [ + 0 => "활성화", + ], + "Disabled" => [ + 0 => "비활성화", + ], + "Max. upload file size" => [ + 0 => "최대 업로드 파일 크기", + ], + "Max. post size" => [ + 0 => "최대 게시물 크기", + ], + "Max. execution time" => [ + 0 => "최대 실행 시간", + ], + "%d second" => [ + 0 => "%d 초", + ], + "Memory limit" => [ + 0 => "메모리 제한용량", + ], + "Rebuild stats" => [ + 0 => "서버 상태 다시 읽기", + ], + "Connecting IP" => [ + 0 => "접속 중인 IP 주소", + ], + "Not your IP?" => [ + 0 => "이 IP가 아닌가요?", + ], + "Links" => [ + 0 => "링크", + ], + "Collaboration" => [ + 0 => "협력하기", + ], + "Documentation" => [ + 0 => "문서보기", + ], + "Changelog" => [ + 0 => "변경 내역", + ], + "Bug tracking" => [ + 0 => "버그 추적", + ], + "Website" => [ + 0 => "웹사이트", + ], + "Content" => [ + 0 => "게시물", + ], + "Pages" => [ + 0 => "페이지", + ], + "Listings" => [ + 0 => "목록", + ], + "Image upload" => [ + 0 => "이미지 업로드", + ], + "Categories" => [ + 0 => "범주", + ], + "Consent screen" => [ + 0 => "동의 화면", + ], + "Flood protection" => [ + 0 => "헤비 업로드 제한", + ], + "Theme" => [ + 0 => "테마", + ], + "Homepage" => [ + 0 => "홈페이지", + ], + "Banners" => [ + 0 => "배너", + ], + "System" => [ + 0 => "시스템", + ], + "Routing" => [ + 0 => "라우팅", + ], + "Languages" => [ + 0 => "언어", + ], + "External storage" => [ + 0 => "외부 저장소", + ], + "Email" => [ + 0 => "전자우편", + ], + "Social networks" => [ + 0 => "소셜 네트워크", + ], + "External services" => [ + 0 => "외부 서비스", + ], + "IP bans" => [ + 0 => "IP 차단", + ], + "Additional settings" => [ + 0 => "추가 설정", + ], + "Tools" => [ + 0 => "도구", + ], + "Can't delete all homepage cover images" => [ + 0 => "최소한 하나의 홈페이지 커버 이미지는 필요합니다", + ], + "Homepage cover image deleted" => [ + 0 => "홈페이지 커버 이미지가 삭제되었습니다", + ], + "Local" => [ + 0 => "내부", + ], + "External" => [ + 0 => "외부", + ], + "All" => [ + 0 => "전체", + ], + "search content" => [ + 0 => "게시물 찾아보기", + ], + "Add page" => [ + 0 => "페이지 추가하기", + ], + "Edit page ID %s" => [ + 0 => "페이지 ID %s 편집하기", + ], + "The page has been added successfully." => [ + 0 => "페이지 추가가 완료되었습니다.", + ], + "The page has been deleted." => [ + 0 => "페이지가 삭제되었습니다.", + ], + "homepage" => [ + 0 => "홈페이지", + ], + "Before main title (%s)" => [ + 0 => "메인 타이틀 앞 (%s)", + ], + "After call to action (%s)" => [ + 0 => "콜투액션 뒤 (%s)", + ], + "After cover (%s)" => [ + 0 => "커버 뒤 (%s)", + ], + "After listing (%s)" => [ + 0 => "목록 뒤 (%s)", + ], + "Before pagination" => [ + 0 => "페이지네이션 앞", + ], + "After pagination" => [ + 0 => "페이지네이션 뒤", + ], + "Content (image and album)" => [ + 0 => "게시물 (이미지 및 앨범)", + ], + "Tab about column" => [ + 0 => "정보 칼럼 탭", + ], + "Before comments" => [ + 0 => "댓글 앞", + ], + "Image page" => [ + 0 => "이미지 페이지", + ], + "Inside viewer top (image page)" => [ + 0 => "뷰어의 상단 (이미지 페이지)", + ], + "Inside viewer foot (image page)" => [ + 0 => "뷰어의 하단 (이미지 페이지)", + ], + "After image viewer (image page)" => [ + 0 => "이미지 뷰어 뒤 (이미지 페이지)", + ], + "Before header (image page)" => [ + 0 => "헤더 앞 (이미지 페이지)", + ], + "After header (image page)" => [ + 0 => "헤더 뒤 (이미지 페이지)", + ], + "Footer (image page)" => [ + 0 => "푸터 (이미지 페이지)", + ], + "Album page" => [ + 0 => "앨범 페이지", + ], + "Before header (album page)" => [ + 0 => "헤더 앞 (앨범 페이지)", + ], + "After header (album page)" => [ + 0 => "헤더 뒤 (앨범 페이지)", + ], + "User profile page" => [ + 0 => "사용자 프로필 페이지", + ], + "After top (user profile)" => [ + 0 => "상단 뒤 (사용자 프로필)", + ], + "Before listing (user profile)" => [ + 0 => "목록 앞 (사용자 프로필)", + ], + "Explore page" => [ + 0 => "둘러보기 페이지", + ], + "After top (explore page)" => [ + 0 => "상단 뒤 (둘러보기 페이지)", + ], + "NSFW" => [ + 0 => "후방주의", + ], + "Invalid website name" => [ + 0 => "웹사이트 이름이 잘못되었습니다", + ], + "Invalid language" => [ + 0 => "언어 설정이 잘못되었습니다", + ], + "Invalid timezone" => [ + 0 => "시간대 설정이 잘못되었습니다", + ], + "Invalid value: %s" => [ + 0 => "값이 잘못되었습니다: %s", + ], + "Invalid upload storage mode" => [ + 0 => "업로드 저장소 모드가 잘못되었습니다", + ], + "Invalid upload filenaming" => [ + 0 => "업로드 파일 이름이 잘못되었습니다", + ], + "Invalid thumb width" => [ + 0 => "미리보기 이미지 너비가 잘못되었습니다", + ], + "Invalid thumb height" => [ + 0 => "미리보기 이미지 높이가 잘못되었습니다", + ], + "Invalid medium size" => [ + 0 => "일반 이미지 크기가 잘못되었습니다", + ], + "Invalid watermark percentage" => [ + 0 => "워터마크 비율이 잘못되었습니다", + ], + "Invalid watermark opacity" => [ + 0 => "워터마크 투명도가 잘못되었습니다", + ], + "Invalid theme" => [ + 0 => "테마가 잘못되었습니다", + ], + "Invalid value" => [ + 0 => "값이 잘못되었습니다", + ], + "Invalid theme tone" => [ + 0 => "잘못된 테마 톤", + ], + "Invalid theme main color" => [ + 0 => "테마 주 색상이 잘못되었습니다", + ], + "Invalid theme top bar button color" => [ + 0 => "테마 상단 바 버튼 색상이 잘못되었습니다", + ], + "Invalid theme image listing size" => [ + 0 => "테마 이미지 목록 크기가 잘못되었습니다", + ], + "Invalid user id" => [ + 0 => "사용자 ID가 잘못되었습니다", + ], + "Invalid email mode" => [ + 0 => "이메일 모드가 잘못되었습니다", + ], + "Invalid SMTP port" => [ + 0 => "SMTP 포트가 잘못되었습니다", + ], + "Invalid SMTP security" => [ + 0 => "SMTP 보안연결이 잘못되었습니다", + ], + "Invalid personal mode user ID" => [ + 0 => "개인 모드 사용자 ID가 잘못되었습니다", + ], + "Invalid or reserved route" => [ + 0 => "라우팅 경로가 잘못되었거나 사용 중입니다", + ], + "Invalid website privacy mode" => [ + 0 => "웹사이트 공개 범위 모드가 잘못되었습니다", + ], + "Invalid website content privacy mode" => [ + 0 => "웹사이트 게시물 공개 범위 모드가 잘못되었습니다", + ], + "Invalid homepage style" => [ + 0 => "홈페이지 스타일이 잘못되었습니다", + ], + "Invalid homepage call to action button color" => [ + 0 => "홈페이지 콜투액션 버튼 색상이 잘못되었습니다", + ], + "Invalid homepage call to action functionality" => [ + 0 => "홈페이지 콜투액션 기능이 잘못되었습니다", + ], + "Invalid title" => [ + 0 => "제목이 잘못되었습니다", + ], + "Invalid status" => [ + 0 => "상태가 잘못되었습니다", + ], + "Invalid type" => [ + 0 => "유형이 잘못되었습니다", + ], + "Invalid visibility" => [ + 0 => "가시성이 잘못되었습니다", + ], + "Invalid internal type" => [ + 0 => "내부 유형이 잘못되었습니다", + ], + "Invalid target attribute" => [ + 0 => "대상 속성이 잘못되었습니다", + ], + "Invalid rel attribute" => [ + 0 => "관계(rel) 속성이 잘못되었습니다", + ], + "Invalid icon" => [ + 0 => "아이콘이 잘못되었습니다", + ], + "Invalid URL key" => [ + 0 => "URL 키가 잘못되었습니다", + ], + "Invalid file path" => [ + 0 => "파일 경로가 잘못되었습니다", + ], + "Invalid link URL" => [ + 0 => "링크 URL이 잘못되었습니다", + ], + "Invalid user minimum age" => [ + 0 => "사용자 최소 연령이 잘못되었습니다", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "영문자와 숫자, 하이픈(-) 그리고 밑줄 문자(_)만 사용 가능합니다", + ], + "Invalid URL" => [ + 0 => "URL이 잘못되었습니다", + ], + "Routes can't be the same" => [ + 0 => "라우팅 경로는 같을 수 없습니다", + ], + "Invalid upload image path" => [ + 0 => "업로드 이미지 경로가 잘못되었습니다", + ], + "Invalid call to action URL" => [ + 0 => "콜투액션 URL이 잘못되었습니다", + ], + "Max. allowed %s" => [ + 0 => "최대 허용 %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "%m을(를) 기존 폴더 (%f)로(으로) 맵핑할 수 없습니다", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "%m을(를) 기존 라우팅 경로 (%r)로(으로) 맵핑할 수 없습니다", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "%m을(를) %r로(으로) 맵핑할 수 없습니다 (사용자 이름 충돌)", + ], + "Invalid SMTP server" => [ + 0 => "SMTP 서버 주소가 잘못되었습니다", + ], + "Invalid SMTP username" => [ + 0 => "SMTP 사용자 이름이 잘못되었습니다", + ], + "Invalid key" => [ + 0 => "키가 잘못되었습니다", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "이 URL 키는 이미 다른 페이지 (ID %s) 에서 사용 중입니다", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "이 파일 경로는 이미 다른 페이지 (ID %s) 에서 사용 중입니다", + ], + "Can't save page contents: %s." => [ + 0 => "페이지 내용을 저장할 수 없습니다: %s.", + ], + "Following" => [ + 0 => "팔로잉", + ], + "About" => [ + 0 => "정보", + ], + "Image ID" => [ + 0 => "이미지 ID", + ], + "Uploader IP" => [ + 0 => "업로드 IP", + ], + "Ban IP" => [ + 0 => "IP 차단하기", + ], + "IP already banned" => [ + 0 => "IP 주소가 이미 차단되었습니다", + ], + "Upload date" => [ + 0 => "업로드 날짜", + ], + "Image %i in %a album" => [ + 0 => "%a 앨범의 이미지 %i", + ], + "Image %i in %c category" => [ + 0 => "%c 카테고리의 이미지 %i", + ], + "Image %i hosted in %w" => [ + 0 => "%w 호스팅 이미지 %i", + ], + "Direct links" => [ + 0 => "다이렉트 링크", + ], + "Image link" => [ + 0 => "이미지 링크", + ], + "Image URL" => [ + 0 => "원본 이미지 URL", + ], + "Thumbnail URL" => [ + 0 => "미리보기 이미지 URL", + ], + "Medium URL" => [ + 0 => "일반 이미지 URL", + ], + "Full image" => [ + 0 => "원본 이미지", + ], + "Full image (linked)" => [ + 0 => "원본 이미지 (링크)", + ], + "Medium image (linked)" => [ + 0 => "일반 이미지 (링크)", + ], + "Thumbnail image (linked)" => [ + 0 => "미리보기 이미지 (링크)", + ], + "Login needed" => [ + 0 => "로그인이 필요합니다", + ], + "IP address already banned" => [ + 0 => "IP 주소가 이미 차단되었습니다", + ], + "Missing values" => [ + 0 => "값이 설정되지 않았습니다", + ], + "Invalid role" => [ + 0 => "권한 설정이 잘못되었습니다", + ], + "Username already being used" => [ + 0 => "사용자 이름이 이미 사용 중입니다", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "%s을(를) 삭제하기 전에 비밀번호나 다른 소셜 네트워크 연결을 추가해주세요", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "%s을(를) 삭제하기 전에 이메일 주소나 다른 소셜 네트워크 연결을 추가해주세요", + ], + "%s has been disconnected." => [ + 0 => "%s은(는) 연결이 해제되었습니다.", + ], + "Test email from %s @ %t" => [ + 0 => "%s로(으로)부터 %t 에 수신된 테스트 이메일입니다", + ], + "This is just a test" => [ + 0 => "테스트 이메일입니다.", + ], + "Test email sent to %s." => [ + 0 => "%s로(으로) 테스트 이메일을 보냈습니다.", + ], + "Downloading %s data" => [ + 0 => "%s 데이터를 다운로드하는 중입니다", + ], + "User %s followed" => [ + 0 => "사용자 %s님이 팔로우했습니다", + ], + "User %s unfollowed" => [ + 0 => "사용자 %s님이 팔로우를 해제했습니다", + ], + "Content liked" => [ + 0 => "좋아하는 게시물", + ], + "Content disliked" => [ + 0 => "싫어하는 게시물", + ], + "%u liked your %t %c" => [ + 0 => "%u님이 %c %t을(를) 좋아합니다", + ], + "%u is now following you" => [ + 0 => "%u님이 팔로잉 합니다", + ], + "A private user" => [ + 0 => "비공개 사용자", + ], + "Wrong Username/Email password combination" => [ + 0 => "사용자 이름 또는 이메일 주소의 비밀번호가 잘못되었습니다", + ], + "Sign in" => [ + 0 => "로그인", + ], + "Moderate" => [ + 0 => "중재하기", + ], + "Upload images" => [ + 0 => "이미지 업로드", + ], + "Upload plugin" => [ + 0 => "업로드 플러그인", + ], + "Image search results for %s" => [ + 0 => "%s로(으로) 찾은 이미지", + ], + "Album search results for %s" => [ + 0 => "%s로(으로) 찾은 앨범", + ], + "User search results for %s" => [ + 0 => "%s로(으로) 찾은 사용자", + ], + "Account" => [ + 0 => "계정", + ], + "Profile" => [ + 0 => "프로필", + ], + "Linked accounts" => [ + 0 => "연결된 계정", + ], + "Invalid image expiration: %s" => [ + 0 => "이미지 만료가 잘못되었습니다: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "계정 활성화를 위한 안내 이메일을<br>%s로(으로) 보냈습니다", + ], + "Invalid name" => [ + 0 => "이름이 잘못되었습니다", + ], + "Invalid website" => [ + 0 => "웹사이트가 잘못되었습니다", + ], + "Wrong password" => [ + 0 => "틀린 암호", + ], + "Use a new password" => [ + 0 => "새로운 암호 사용하기", + ], + "Changes have been saved." => [ + 0 => "변경 사항이 저장되었습니다.", + ], + "Password has been changed" => [ + 0 => "암호가 변경되었습니다.", + ], + "Password has been created." => [ + 0 => "암호가 생성되었습니다.", + ], + "Wrong Username/Email values" => [ + 0 => "사용자 이름 또는 이메일 주소가 잘못되었습니다", + ], + "Settings for %s" => [ + 0 => "%s 설정 내용", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "이용 약관과 개인 정보 보호 정책에 동의해야 합니다", + ], + "You must be at least %s years old to use this website." => [ + 0 => "이 웹사이트를 이용하려면 최소 %s세 이상이어야 합니다.", + ], + "Create account" => [ + 0 => "계정 만들기", + ], + "Upload" => [ + 0 => "업로드", + ], + "%s's Images" => [ + 0 => "%s님의 이미지", + ], + "Results for" => [ + 0 => "검색 결과 ", + ], + "Liked by %s" => [ + 0 => "%s님의 좋아요", + ], + "Liked" => [ + 0 => "좋아요", + ], + "Followers" => [ + 0 => "팔로워", + ], + "%n (%u) albums on %w" => [ + 0 => "%w의 %n (%u) 앨범", + ], + "%n (%u) on %w" => [ + 0 => "%w의 %n (%u)", + ], + "Discovery" => [ + 0 => "전체 게시물", + ], + "Advanced search" => [ + 0 => "자세히 찾아보기", + ], + "Random" => [ + 0 => "아무거나", + ], + "Notices (%s)" => [ + 0 => "알림 (%s)", + ], + "Lights" => [ + 0 => "다크 모드", + ], + "Notifications" => [ + 0 => "알림", + ], + "You don't have notifications" => [ + 0 => "알림 내용이 없습니다", + ], + "My Profile" => [ + 0 => "내 프로필", + ], + "Sign out" => [ + 0 => "로그아웃", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "저희는 %w의 <a href=\"%u\">%n</a> 계정에 대한 이메일 주소 변경 요청을 받았습니다.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "이메일 주소를 변경하려면 <a href=\"%s\"> 이메일 주소 활성화</a>를 해주세요.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "또는 브라우저의 주소창에 다음의 URL을 복사하여 붙여 넣어주세요:<br><br><a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "의도하지 않은 경우 이 이메일 메시지를 무시해주세요.", + ], + "This request was made from IP: %s" => [ + 0 => "<br>이 요청은 다음의 IP 에서 받았습니다: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "저희는 %w의 %n 계정에 대한 등록 요청을 받았습니다.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "계정을 등록하려면 <a href=\"%s\"> 계정 활성화</a>를 해주세요.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "저희는 <a href=\"%u\">%n</a> 계정에 대한 비밀번호의 재설정 요청을 받았습니다.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "비밀번호를 재설정하려면 <a href=\"%s\"> 링크</a>를 클릭해주세요.", + ], + "Hi %n, welcome to %w" => [ + 0 => "안녕하세요 %n님, %w 가입을 환영합니다.", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "이제 이미지 업로드, 앨범 만들기, 게시물의 공개 범위 설정을 하실 수 있는 계정이 준비되었습니다. 이 외에도 다양한 멋진 것들을 찾아보실 수 있습니다.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "일단, 여기 <a href=\"%u\">%n</a>님의 프로필 페이지가 있습니다. 방문하셔서 멋지게 꾸며보세요!", + ], + "Thank you for joining" => [ + 0 => "등록해주셔서 감사합니다", + ], + "This email was sent from %w %u" => [ + 0 => "이 이메일은 <a href=\"%u\">%w</a>에서 보냈습니다.", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "여기에 이미지를 끌어놓기 또는 붙여넣기", + ], + "Select the images to upload" => [ + 0 => "업로드할 이미지를 선택해주세요", + ], + "browse from your computer" => [ + 0 => "컴퓨터에서 탐색", + ], + "add image URLs" => [ + 0 => "이미지 URL 추가", + ], + "You can also %i or %u." => [ + 0 => "%i하거나 %u를 통해 업로드할 수도 있습니다.", + ], + "browse from your device" => [ + 0 => "기기에서 탐색", + ], + "take a picture" => [ + 0 => "사진 찍기", + ], + "You can also %i, %c or %u." => [ + 0 => "%i하거나 %c 또는 %u를 통해 업로드할 수도 있습니다.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "이미지 미리보기를 클릭하면<br>이미지를 편집하거나 사이즈를 조절할 수 있습니다.", + ], + "Edit any image by touching the image preview" => [ + 0 => "이미지 미리보기를 탭하면<br>이미지를 편집하거나 사이즈를 조절할 수 있습니다.", + ], + "your computer" => [ + 0 => "컴퓨터", + ], + "You can add more images from %i or %u." => [ + 0 => "%i나 %u를 통해 이미지를 더 추가할 수 있습니다.", + ], + "your device" => [ + 0 => "기기", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "%i나 %c 또는 %u를 통해 이미지를 더 추가할 수 있습니다.", + ], + "Uploading %q %o" => [ + 0 => "업로드 중 %q %o", + ], + "complete" => [ + 0 => "완료", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "대기열을 업로드하고 있습니다. 완료하는데 몇 초밖에 걸리지 않습니다.", + ], + "Upload complete" => [ + 0 => "업로드가 완료되었습니다", + ], + "Uploaded content added to %s." => [ + 0 => "업로드한 게시물이 %s 앨범에 추가되었습니다.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "업로드된 게시물은 %c 또는 %m를 할 수 있습니다.", + ], + "You can %c with the content just uploaded." => [ + 0 => "업로드된 게시물은 %c를 할 수 있습니다.", + ], + "create a new album" => [ + 0 => "새 앨범 만들기", + ], + "move it to an existing album" => [ + 0 => "기존 앨범에 넣기", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "계정에 이 게시물을 저장하려면 %s 또는 %l 해야 합니다.", + ], + "create an account" => [ + 0 => "계정 만들기", + ], + "sign in" => [ + 0 => "로그인", + ], + "No %s have been uploaded" => [ + 0 => "%s이(가) 업로드되지 않았습니다", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "업로드 중 일부 이미지에 오류가 발생하여 시스템이 처리하지 못했습니다.", + ], + "Category" => [ + 0 => "카테고리", + ], + "Select category" => [ + 0 => "카테고리를 선택해주세요", + ], + "Mark this if the upload is not family safe" => [ + 0 => "업로드하는 게시물이 다른 사용자에게 불쾌감을 줄 수 있거나 19금 등의 후방주의가 필요하다면 체크해주세요", + ], + "Not family safe upload" => [ + 0 => "후방주의 업로드", + ], + "Uploading" => [ + 0 => "업로드 중", + ], + "cancel remaining" => [ + 0 => "남아있는 업로드 취소", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "참고: 일부 이미지를 업로드하지 못했습니다.", + ], + "learn more" => [ + 0 => "더 알아보기", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "자세한 내용은 <a data-modal=\"simple\" data-target=\"failed-upload-result\">오류 보고서</a>를 참고해주세요.", + ], + "Register to get %s" => [ + 0 => "%s을(를) 얻으려면 가입해주세요", + ], + "reset" => [ + 0 => "초기화", + ], + "close" => [ + 0 => "닫기", + ], + "Note" => [ + 0 => "비고", + ], + "copy" => [ + 0 => "복사", + ], + "insert" => [ + 0 => "삽입", + ], + "Remove" => [ + 0 => "제거", + ], + "Title" => [ + 0 => "제목", + ], + "optional" => [ + 0 => "선택사항", + ], + "Resize image" => [ + 0 => "이미지 크기 조절", + ], + "Width" => [ + 0 => "너비", + ], + "Height" => [ + 0 => "높이", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "참고: 움직이는 GIF 이미지는 크기를 조절할 수 없습니다.", + ], + "Auto delete image" => [ + 0 => "자동 이미지 삭제", + ], + "Sign up" => [ + 0 => "가입하기", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s은(는) 이미지 자동 삭제를 사용자화하거나 비활성화할 수 있습니다.", + ], + "Mark this if the image is not family safe" => [ + 0 => "이미지가 다른 사용자에게 불쾌감을 줄 수 있거나 19금 등의 후방주의가 필요하다면 체크해주세요", + ], + "Flag as unsafe" => [ + 0 => "후방주의 플래그 설정", + ], + "Description" => [ + 0 => "설명", + ], + "Brief description of this image" => [ + 0 => "이 이미지에 대해 알려주세요", + ], + "Add image URLs" => [ + 0 => "이미지 URL로 추가하기", + ], + "Add the image URLs here" => [ + 0 => "여기에 이​​미지 URL주소를 넣어주세요", + ], + "Create album" => [ + 0 => "앨범 만들기", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "업로드한 게시물은 새로 만든 앨범으로 이동됩니다.", + ], + "existing album" => [ + 0 => "기존 앨범", + ], + "You can also move the content to an %a." => [ + 0 => "또는 %a으로 게시물을 이동시킬 수 있습니다.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "나중에 이 앨범을 편집하려면 %s 또는 %l 해야합니다.", + ], + "Move to album" => [ + 0 => "앨범으로 이동", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "업로드한 게시물을 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다.", + ], + "Error report" => [ + 0 => "오류 보고서", + ], + "Viewer links" => [ + 0 => "뷰어 링크", + ], + "HTML Codes" => [ + 0 => "HTML 코드", + ], + "HTML image" => [ + 0 => "HTML 원본 이미지", + ], + "HTML full linked" => [ + 0 => "HTML 원본 이미지 링크", + ], + "HTML medium linked" => [ + 0 => "HTML 일반 이미지 링크", + ], + "HTML thumbnail linked" => [ + 0 => "HTML 미리보기 이미지 링크", + ], + "BBCodes" => [ + 0 => "BBCode 코드", + ], + "BBCode full" => [ + 0 => "BBCode 원본 이미지", + ], + "BBCode full linked" => [ + 0 => "BBCode 원본 이미지 링크", + ], + "BBCode medium linked" => [ + 0 => "BBCode 일반 이미지 링크", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode 미리보기 이미지 링크", + ], + "Markdown full" => [ + 0 => "마크다운 원본 이미지", + ], + "Markdown full linked" => [ + 0 => "마크다운 원본 이미지 링크", + ], + "Markdown medium linked" => [ + 0 => "마크다운 일반 이미지 링크", + ], + "Markdown thumbnail linked" => [ + 0 => "마크다운 미리보기 이미지 링크", + ], + "All these words" => [ + 0 => "모든 단어로 찾아보기", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "키워드가 될만한 단어를 넣어주세요. 예) 네눈박이 진돗개 블랙탄 강아지", + ], + "This exact word or phrase" => [ + 0 => "입력 내용 그대로 찾아보기", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "따옴표로 입력 내용을 묶어주세요. 예) \"시베리안 허스키\"", + ], + "None of these words" => [ + 0 => "입력 내용만 빼고 찾아보기", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "원치 않는 입력 내용 앞에 빼기 표시를 해주세요. 예) -퍼그 -\"래브라도 리트리버\"", + ], + "Storage" => [ + 0 => "저장소", + ], + "IP address" => [ + 0 => "IP 주소", + ], + "Album name" => [ + 0 => "앨범 이름", + ], + "move to existing album" => [ + 0 => "기존 앨범으로 이동", + ], + "Album description" => [ + 0 => "앨범 설명", + ], + "Brief description of this album" => [ + 0 => "이 앨범에 대해 알려주세요", + ], + "Album privacy" => [ + 0 => "앨범 공개 범위", + ], + "Who can view this content" => [ + 0 => "이 게시물에 대한 공개 범위", + ], + "Private (just me)" => [ + 0 => "비공개(개인)", + ], + "Private (anyone with the link)" => [ + 0 => "비공개(링크)", + ], + "Private (password protected)" => [ + 0 => "비공개 (암호로 보호 됨)", + ], + "Album password" => [ + 0 => "앨범 암호", + ], + "Name" => [ + 0 => "이름", + ], + "Category name" => [ + 0 => "카테고리 이름", + ], + "URL key" => [ + 0 => "URL 키", + ], + "Category URL key" => [ + 0 => "카테고리 URL 키", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "문자와 숫자, 붙임표(하이픈)만 가능합니다", + ], + "Brief description of this category" => [ + 0 => "이 카테고리에 대해 알려주세요", + ], + "Untitled image" => [ + 0 => "제목 없는 이미지", + ], + "Flag not safe" => [ + 0 => "미안전 표기", + ], + "Path" => [ + 0 => "경로", + ], + "Local path (absolute)" => [ + 0 => "내부 경로 (절대 경로)", + ], + "Directory structure" => [ + 0 => "디렉터리 구조", + ], + "Parse top level folders as users (username)" => [ + 0 => "최상위 폴더를 사용자 (사용자 이름)으로 구문분석(파싱)", + ], + "Parse top level folders as albums" => [ + 0 => "최상위 폴더를 앨범으로 구문분석(파싱)", + ], + "Don't parse folders" => [ + 0 => "폴더를 구문분석(파싱)하지 않기", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "최상위 폴더를 사용자로 구문분석(파싱)할 때 그 이하의 폴더는 사용자 앨범으로 구문분석(파싱)됩니다. 최상위 폴더를 앨범으로 구문분석(파싱)하면 이 폴더들은 손님 앨범으로 추가됩니다.", + ], + "Threads" => [ + 0 => "스레드", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "가져오기 처리를 얼마나 빠르게 할 것인지 결정합니다. 공유 서버에서는 스래드를 %s개 이상 사용하지 마세요.", + ], + "You can use wildcard * characters." => [ + 0 => "와일드카드 문자(*)를 사용할 수 있습니다.", + ], + "Expiration date" => [ + 0 => "만료 날짜", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "예제", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "IP를 언제까지 차단할 것인지 설정합니다. 만료시키지 않으려면 공란으로 비워두세요.", + ], + "Message" => [ + 0 => "메시지", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "텍스트 메시지나 HTML 또는 넘김(리다이렉션) URL을 입력해주세요", + ], + "Existing album" => [ + 0 => "기존 앨범", + ], + "create new album" => [ + 0 => "새 앨범 만들기", + ], + "Storage name" => [ + 0 => "저장소 이름", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "지역", + ], + "Storage region" => [ + 0 => "저장소 위치", + ], + "Storage bucket" => [ + 0 => "저장소 버킷", + ], + "Key" => [ + 0 => "키", + ], + "Storage key" => [ + 0 => "저장소 키", + ], + "Secret" => [ + 0 => "시크릿 코드(Secret)", + ], + "Storage secret" => [ + 0 => "저장소 시크릿 코드(Storage Secret)", + ], + "Private key" => [ + 0 => "비공개 키", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON 키", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "비공개 키는 <a %s>서비스 계정</a>이 필요합니다.", + ], + "Service name" => [ + 0 => "서비스 이름", + ], + "Identity URL" => [ + 0 => "Identity URL", + ], + "Identity API endpoint" => [ + 0 => "Identity API 종단점", + ], + "API endpoint for OpenStack identity" => [ + 0 => "OpenStack identity를 위한 API 종단점", + ], + "Username" => [ + 0 => "사용자 이름", + ], + "Container" => [ + 0 => "컨테이너", + ], + "Storage container" => [ + 0 => "저장소 컨테이너", + ], + "Tenant id" => [ + 0 => "Tenant id", + ], + "Tenant id (account id)" => [ + 0 => "Tenant id (계정 id)", + ], + "Tenant name" => [ + 0 => "Tenant 이름", + ], + "Tenant name (account name)" => [ + 0 => "Tenant 이름 (계정 name)", + ], + "Storage endpoint" => [ + 0 => "저장소 종단점", + ], + "Server address" => [ + 0 => "서버 주소", + ], + "Hostname or IP of the storage server" => [ + 0 => "저장소의 호스트 이름 또는 IP 주소", + ], + "Server path" => [ + 0 => "서버 경로", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "%p 로그인 콘텍스트에 파일이 저장될 절대 경로입니다. 루트 경로에 %s를 사용해주세요.", + ], + "Server login" => [ + 0 => "서버 사용자 이름", + ], + "Server password" => [ + 0 => "서버 암호", + ], + "Local path" => [ + 0 => "내부 경로", + ], + "Local path where the files will be stored" => [ + 0 => "파일이 저장될 내부 경로입니다", + ], + "Storage capacity" => [ + 0 => "저장소 용량", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "예) 20 GB, 1 TB, 기타.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "이 저장소는 저장 게시물이 설정한 용량에 도달하면 사용할 수 없게 됩니다. 저장 용량 제한을 없애려면 공란으로 두거나 0을 넣어주세요.", + ], + "Storage URL" => [ + 0 => "저장소 URL 주소", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "시스템은 이 저장소의 이미지를 설정한 URL로 맵핑합니다.", + ], + "view more" => [ + 0 => "더 보기", + ], + "Load more" => [ + 0 => "더 불러오기", + ], + "Select all" => [ + 0 => "모두 선택", + ], + "Clear selection" => [ + 0 => "선택 해제", + ], + "Selection" => [ + 0 => "선택", + ], + "Action" => [ + 0 => "액션", + ], + "Get embed codes" => [ + 0 => "퍼가기 코드", + ], + "Assign category" => [ + 0 => "카테고리 할당", + ], + "Flag as safe" => [ + 0 => "후방주의 플래그 해제", + ], + "Create new album" => [ + 0 => "새 앨범 만들기", + ], + "Sign in with another account" => [ + 0 => "다른 계정으로 로그인하기", + ], + "Continue with %label%" => [ + 0 => "%label%로(으로) 계속하기", + ], + "Home" => [ + 0 => "홈", + ], + "There's nothing to show here." => [ + 0 => "볼 수 있는 게시물이 없습니다.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "모든 이미지는 새로 만든 앨범으로 이동됩니다. 또는 <a class=\"modal-switch\" data-switch=\"move-existing-album\">기존 앨범</a>으로 이동시킬 수 있습니다.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "이미지를 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "앨범 내의 게시물을 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "선택한 이미지를 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "선택한 이미지에 할당할 카테고리를 선택해주세요.", + ], + "There is no categories." => [ + 0 => "카테고리가 없습니다.", + ], + "Confirm flag content as safe" => [ + 0 => "후방주의 플래그 해제 확인", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "선택한 게시물의 후방주의 플래그 설정을 해제하시겠습니까?", + ], + "Confirm flag content as unsafe" => [ + 0 => "후방주의 플래그 설정 확인", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "선택한 게시물에 후방주의 플래그를 설정하시겠습니까?", + ], + "Confirm approval" => [ + 0 => "승인 확인", + ], + "Confirm deletion" => [ + 0 => "삭제 확인", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "이 게시물을 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "선택한 게시물을 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Fullscreen" => [ + 0 => "전체화면", + ], + "Exit fullscreen" => [ + 0 => "전체화면 나가기", + ], + "Guest" => [ + 0 => "손님", + ], + "Keyboard shortcuts" => [ + 0 => "키보드 단축키", + ], + "Private album" => [ + 0 => "비공개 앨범", + ], + "Password protected" => [ + 0 => "암호로 보호 됨", + ], + "Uploaded by guest" => [ + 0 => "손님의 업로드", + ], + "From %s" => [ + 0 => "%s", + ], + "Uploaded by private" => [ + 0 => "비공개 업로드", + ], + "by %u" => [ + 0 => "%u님의 이미지", + ], + "Toggle unsafe flag" => [ + 0 => "후방주의 플래그 토글", + ], + "That page doesn't exist" => [ + 0 => "페이지가 존재하지 않습니다", + ], + "The requested page was not found." => [ + 0 => "요청하신 페이지를 찾을 수 없습니다.", + ], + "Search something else" => [ + 0 => "다른 것 찾아보기", + ], + "The user has been deleted" => [ + 0 => "사용자가 삭제되었습니다", + ], + "Your account is almost ready" => [ + 0 => "계정이 거의<br>준비되었습니다", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "계정 활성화를 위한 안내 이메일을<br>%s로(으로) 보냈습니다.<br>계정 활성화 링크는 48시간 동안 유효합니다.<br>이메일을 못 받으셨다면 정크 메일함이나<br>스팸 필터를 확인해주세요.", + ], + "Resend activation" => [ + 0 => "활성화 메일 다시 보내기", + ], + "You have successfully changed your account email to %s" => [ + 0 => "%s로(으로)<br>이메일 주소 변경이 완료되었습니다.", + ], + "Go to my profile" => [ + 0 => "내 프로필 페이지로 가기", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "계정 활성화를 위한 안내 사항과 함께 확인 링크를 입력하신 이메일로 보내드립니다.", + ], + "Your email address" => [ + 0 => "이메일 주소", + ], + "Submit" => [ + 0 => "확인", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "비밀번호 재설정을 위한 안내 이메일을<br>입력하신 이메일 주소로 보냈습니다.<br>이메일을 못 받으셨다면<br>정크 메일함이나 스팸 필터를 확인해주세요.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "이전에 비밀번호 재설정을 위한<br>안내 이메일을 보내드렸었습니다.<br>이메일을 못 받으셨다면<br>정크 메일함이나 스팸 필터를 확인해주세요.", + ], + "Resend instructions" => [ + 0 => "안내 사항 다시 보내기", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "계속하려면<br>사용자 이름 또는 이메일 주소를 넣어주세요.<br>%s 메일 주소를<br>화이트리스트에 등록해야 하거나<br>정크 메일함을 확인해야 할 수 있습니다.", + ], + "Username or Email address" => [ + 0 => "사용자 이름 또는 이메일 주소", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "비밀번호가 변경되었습니다.<br>이제 새 비밀번호로 로그인할 수 있습니다.", + ], + "Login now" => [ + 0 => "바로 로그인하기", + ], + "Enter your new password" => [ + 0 => "새로운 비밀번호를 입력해주세요", + ], + "%d characters min" => [ + 0 => "최소 %d개의 문자를 입력해주세요", + ], + "Password strength" => [ + 0 => "암호 강도", + ], + "Re-enter your new password" => [ + 0 => "새로운 비밀번호를 다시 입력해주세요", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "계정 활성화를 위한 안내 이메일을 %s로(으로) 보내드렸습니다. 계정 활성화 링크는 48시간 동안 유효합니다. 이메일을 못 받으셨다면 정크 메일함이나 스팸 필터를 확인해주세요.", + ], + "This content is private" => [ + 0 => "이 게시물은 비공개 게시물입니다", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "이 앨범과 앨범의 모든 이미지를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "You like this" => [ + 0 => "좋아하는 게시물입니다", + ], + "Upload to album" => [ + 0 => "앨범에 업로드", + ], + "Album link" => [ + 0 => "앨범 링크", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "계속하기 전에 다음 조건을 읽고 준수해주세요:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "이 웹사이트에는 성적으로 노골적인 자료의 정보, 링크 및 이미지가 포함되어있습니다. %s세 미만인 경우, 이러한 자료가 여러분을 불쾌하게 하거나 커뮤니티에서 이러한 자료를 보는 것이 불법인 경우, 입장하지 말아 주세요.\n\n나는 적어도 %s세 이상의 나이이며, 성인으로서 성적으로 노골적인 자료를 받고 보는 것은 나의 양도할 수 없는 권리라고 믿습니다. 이에 따라 성적으로 노골적인 자료를 받고 보겠습니다.\n\n나는 상호 동의하에 성인들 사이의 성행위는 불쾌하지 않으며 음란하지 않다고 생각합니다. 성적으로 노골적인 자료를 보고 읽거나 다운로드하는 것은 나의 지역사회, 마을, 도시, 주 또는 국가의 기준을 위반하는 것이 아닙니다.\n\n내가 보는 성적으로 노골적인 자료는 나의 개인 용도로 사용되며 미성년자에게 해당 자료를 노출시키지 않겠습니다.\n\n나는 본 웹사이트의 자료를 보고 읽거나 다운로드하는 것에 대한 잘못된 결과나 법적 결과에 대해 전적으로 나에게 책임이 있음을 이해합니다. 또한 본 웹사이트 혹은 그 계열사에게 본 웹사이트의 부정 입장 또는 사용으로 인해 발생하는 모든 법적 결과에 대해 책임을 지겠습니다.\n\n이 동의 화면은 본 웹사이트와 귀하 그리고/또는 귀하가 법적 또는 공평한 지분을 가지고 있는 모든 기업 간의 법적 계약을 구성합니다. 관할 법원에서 본 계약의 일부를 집행할 수 없다고 판단될 경우, 본 계약의 다른 부분의 집행 가능성에 영향을 미치지 않습니다.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "\"동의합니다\"를 클릭하면 위에서 언급한 모든 조건을 읽고 이해하였음을 선언하는 것입니다.", + ], + "I Agree" => [ + 0 => "동의합니다", + ], + "documentation" => [ + 0 => "문서", + ], + "Learn more about %s at our %d." => [ + 0 => "%s에 대한 자세한 내용은 %d를 참조해주세요.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "연결 IP는 %var% 서버 변수를 사용하여 결정됩니다. 탐지된 IP가 사용자의 것과 일치하지 않으면 웹 서버가 프락시 아래에 있고 실제 연결 IP를 설정하기 위해 서버의 설정 내용을 변경해야 함을 의미합니다.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Nginx의 경우, %nginx%를 사용해야 합니다. Apache의 경우, %apache%입니다.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "시스템은 정확한 IP 탐지에 의존하여 기본 기능을 제공하고 스팸, 헤비 업로드, 비밀번호 무차별 대입 공격으로부터 보호하므로 이 문제를 해결해야 합니다.", + ], + "Disk used" => [ + 0 => "디스크 사용량", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." => [ + 0 => "이 도구를 사용하면 가져올 내용물의 시스템 경로를 지정하여 웹사이트에 내용물을 대량으로 추가할 수 있습니다. 폴더 기반 구조를 사용하여 사용자, 앨범 및 이미지의 추가를 지원합니다.", + ], + "Automatic importing" => [ + 0 => "자동으로 가져오기", + ], + "The system automatically parses any content by a continuous observation of the %path% path." => [ + 0 => "시스템은 %path% 경로를 지속적으로 감시하여 자동으로 내용물을 구문 분석합니다.", + ], + "Completed jobs will be automatically re-started after %n %m." => [ + 0 => "완료된 작업은 %n %m 후에 자동으로 재시작됩니다.", + ], + "Reset to clear stats and logs." => [ + 0 => "통계 및 로그를 지우려면 재설정해주세요.", + ], + "Queued" => [ + 0 => "대기열에 등록됨", + ], + "Working" => [ + 0 => "작업 중", + ], + "Paused" => [ + 0 => "멈춤", + ], + "Canceled" => [ + 0 => "취소", + ], + "Completed" => [ + 0 => "완료", + ], + "Actions" => [ + 0 => "액션", + ], + "Reset" => [ + 0 => "재설정", + ], + "Pause" => [ + 0 => "멈춤", + ], + "Resume" => [ + 0 => "재시작", + ], + "Process log" => [ + 0 => "처리 로그", + ], + "Errors" => [ + 0 => "오류", + ], + "Status" => [ + 0 => "상태", + ], + "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." => [ + 0 => "시스템은 예약된 명령으로 지속적으로 가져오기를 처리합니다. crontab 항목이 필요합니다.", + ], + "You can run the command in parallel by changing the integer value of %s%." => [ + 0 => "%s% 의 정수 값을 변경하여 명령을 병렬로 다중 실행할 수 있습니다.", + ], + "All file-system permissions must be granted for the crontab user at %path%" => [ + 0 => "crontab 사용자에게 %path% 경로의 모든 파일 시스템 권한을 부여해야 합니다.", + ], + "Add import job" => [ + 0 => "가져오기 작업 추가하기", + ], + "Process import" => [ + 0 => "가져오기 실행하기", + ], + "Top level folders as %s" => [ + 0 => "최상위 폴더를 %s로(으로) 구문분석(파싱)", + ], + "Process" => [ + 0 => "실행하기", + ], + "Cancel" => [ + 0 => "취소", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "가져오기 작업 ID %s을(를) 삭제하시겠습니까?", + ], + "Manual importing" => [ + 0 => "수동으로 가져오기", + ], + "The system will parse the contents of any available filesystem path." => [ + 0 => "시스템은 사용 가능한 파일 시스템 경로의 내용을 구문분석합니다.", + ], + "These processes must be manually created and handled with the web browser tab open." => [ + 0 => "이러한 프로세스는 웹 브라우저 탭을 열고 수동으로 생성 및 처리해야 합니다.", + ], + "Parser" => [ + 0 => "파싱 구분", + ], + "Add user" => [ + 0 => "사용자 추가", + ], + "Role" => [ + 0 => "역할", + ], + "Manager" => [ + 0 => "관리자", + ], + "Administrator" => [ + 0 => "최고관리자", + ], + "Email address" => [ + 0 => "이메일 주소", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "이 설정은 개인 웹사이트 모드로 설정한 경우 비활성화됩니다.", + ], + "Add category" => [ + 0 => "카테고리 추가", + ], + "Add IP ban" => [ + 0 => "IP 차단 추가", + ], + "Add storage" => [ + 0 => "저장소 추가", + ], + "Return to pages" => [ + 0 => "페이지로 돌아가기", + ], + "Website name" => [ + 0 => "웹사이트 이름", + ], + "Website doctitle" => [ + 0 => "웹사이트 문서제목", + ], + "Website description" => [ + 0 => "웹사이트 설명", + ], + "Powered by" => [ + 0 => "Powered by", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "푸터에 \"%s\" 링크를 보여주려면 이 옵션을 활성화로 설정해주세요.", + ], + "Automatic" => [ + 0 => "자동 설정", + ], + "Forced" => [ + 0 => "강제 설정", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a은 서버 측에서 HTTPS 감지를 사용합니다(권장됨). %f은 서버 설정에 관계없이 HTTPS를 사용합니다. %d는 HTTPS를 전혀 사용하지 않습니다.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "이 옵션은 URL에 사용된 프로토콜만 제어하며 서버가 HTTPS를 지원하고 사용하도록 구성되어있지 않으면 웹사이트를 유효한 HTTPS 웹사이트로 전환하지 않습니다.", + ], + "Default time zone" => [ + 0 => "기본 시간대", + ], + "Select region" => [ + 0 => "지역 선택", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "검색어를 입력하여 이미지, 앨범 및 사용자를 검색할 수 있도록 하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "활성화 하면 공개된 업로드 이미지를 탐색할 수 있습니다. 또한 카테고리를 활성화합니다.", + ], + "guests" => [ + 0 => "손님", + ], + "Enables explore for guests." => [ + 0 => "활성화 하면 손님이 공개된 업로드 이미지를 탐색할 수 있습니다.", + ], + "Enables to browse images randomly." => [ + 0 => "활성화 하면 이미지를 임의로 탐색할 수 있습니다.", + ], + "Likes" => [ + 0 => "좋아요", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "사용자가 게시물에 좋아요를 표시하거나 목록에서 인기순 탐색을 할 수 있도록 하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Followers allows users to follow each other." => [ + 0 => "활성화 하면 사용자간 팔로우/언팔로우를 할 수 있습니다.", + ], + "Personal mode target user" => [ + 0 => "개인 모드 대상 사용자", + ], + "User ID" => [ + 0 => "사용자 ID", + ], + "Your user id is: %s" => [ + 0 => "현재 사용자 id: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "개인 모드 대상 사용자의 숫자 형식의 ID 입니다.", + ], + "Personal mode routing" => [ + 0 => "개인 모드 라우팅", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "/사용자_이름 을 /다른_이름 으로 맵핑합니다. \"/\" 는 홈페이지에 맵핑합니다.", + ], + "Website privacy mode" => [ + 0 => "웹사이트 공개 범위 모드", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "비공개 모드는 등록된 사용자만 게시물을 볼 수 있습니다.", + ], + "Content privacy mode" => [ + 0 => "게시물 비공개 모드", + ], + "Default" => [ + 0 => "기본값", + ], + "Force private (self)" => [ + 0 => "강제 비공개(개인)", + ], + "Force private (anyone with the link)" => [ + 0 => "강제 비공개(링크)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "사용자가 선택한 공개 범위를 여기에서 설정한 공개 범위로 강제로 대체합니다.", + ], + "Page title" => [ + 0 => "페이지 제목", + ], + "Page status" => [ + 0 => "페이지 상태", + ], + "Active page" => [ + 0 => "활성 페이지", + ], + "Inactive page (%s)" => [ + 0 => "비활성 페이지 (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "활성 페이지에만 액세스할 수 있습니다.", + ], + "Type" => [ + 0 => "유형", + ], + "Terms of service" => [ + 0 => "이용약관", + ], + "Privacy" => [ + 0 => "개인 정보 보호 정책", + ], + "Contact" => [ + 0 => "문의", + ], + "Extra page" => [ + 0 => "추가 페이지", + ], + "Internal page type" => [ + 0 => "내부 페이지 유형", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "추가 페이지는 여러 개 설정할 수 있지만, 특수 내부 페이지 유형은 하나씩만 설정 가능합니다.", + ], + "Page visibility" => [ + 0 => "페이지 가시성", + ], + "Visible page" => [ + 0 => "보이는 페이지", + ], + "Hidden page" => [ + 0 => "감춰진 페이지", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "감춰진 페이지는 시스템 메뉴에서 보이지 않습니다. 하지만 링크로 누구나 액세스가 가능합니다.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "영문자와 숫자, 하이픈(-) 그리고 빗금 문자(/)만 사용 가능합니다", + ], + "File path" => [ + 0 => "파일 경로", + ], + "A %f file relative to %s" => [ + 0 => "%f 파일은 %s에 있습니다", + ], + "Meta keywords" => [ + 0 => "메타 키워드", + ], + "Meta description" => [ + 0 => "메타 설명", + ], + "Source code" => [ + 0 => "소스 코드", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "%s 경로에 쓰기 권한이 없습니다. 외부 편집기를 사용하여 이 파일을 추가해주세요.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "%s에 쓰기 권한이 없습니다. 외부 편집기를 사용하여 이 파일의 내용을 편집해주세요.", + ], + "Taken from: %s" => [ + 0 => "가져온 경로: %s", + ], + "Link URL" => [ + 0 => "링크 URL", + ], + "Link target attribute" => [ + 0 => "링크 대상 속성", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "새 창에서 페이지 또는 링크를 열려면 %s를 선택해주세요.", + ], + "Link rel attribute" => [ + 0 => "링크 관계(rel) 속성", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "영문자와 숫자, 하이픈(-) 그리고 공백 문자(스페이스)만 사용 가능합니다", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s 속성", + ], + "Link icon" => [ + 0 => "링크 아이콘", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "지원되는 아이콘은 <a %s>아이콘 참조 목록</a>을 참조해주세요.", + ], + "Sort order display" => [ + 0 => "표시 정렬 순서", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "메뉴 및 목록에 대한 페이지 표시 정렬 순서입니다. \"1\"이 최우선 순위입니다.", + ], + "pages" => [ + 0 => "페이지", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "페이지 ID %s을(를) 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Enabled image formats" => [ + 0 => "활성화된 이미지 형식", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "선택하지 않은 이미지 형식은 업로드할 수 없습니다.", + ], + "Enable uploads" => [ + 0 => "업로드 활성화", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "이미지 업로드를 허용하려면 이 옵션을 활성화로 설정해주세요. 이 설정은 관리자에게 영향을 주지 않습니다.", + ], + "Upload user interface" => [ + 0 => "업로드 사용자 인터페이스", + ], + "On-page container" => [ + 0 => "온페이지 컨테이너", + ], + "route" => [ + 0 => "라우팅", + ], + "Guest uploads" => [ + 0 => "손님 업로드", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "미등록 사용자의 업로드를 허용하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Moderate uploads" => [ + 0 => "올려놓기 중재", + ], + "Guests" => [ + 0 => "손님", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "활성화하면 올려놓기 요청을 중재합니다. 대상 게시물은 중재를 통한 승인이 요구됩니다.", + ], + "Enable embed codes (uploader)" => [ + 0 => "퍼가기 코드 활성화 (업로드 창)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "업로드가 완료되었을 때 업로드 창에서 퍼가기 코드를 보여주려면 이 옵션을 활성화로 설정해주세요.", + ], + "Upload threads" => [ + 0 => "업로드 스레드", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "동시에 업로드하는 스레드 개수입니다. (병렬 업로드)", + ], + "Redirect on single upload" => [ + 0 => "단일 업로드 바로 넘김(리다이렉션)", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "단일 업로드를 한 경우 이미지 페이지로 바로 넘기려면 이 옵션을 활성화로 선택해주세요.", + ], + "Enable duplicate uploads" => [ + 0 => "중복 업로드 활성화", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "같은 IP 주소에서 24시간 내에 중복된 업로드를 하는 것을 허용하려면 이 옵션을 활성화로 선택해주세요. 이 설정은 관리자에게 영향을 주지 않습니다.", + ], + "Enable expirable uploads" => [ + 0 => "기간 만료 업로드 활성화", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "자동 삭제 옵션으로 업로드하는 것을 허용하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Auto delete guest uploads" => [ + 0 => "손님 업로드 자동 삭제", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "손님이 업로드한 게시물을 특정 시간후에 자동으로 삭제하려면 이 옵션을 설정해주세요.", + ], + "Maximum image size" => [ + 0 => "최대 이미지 크기", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "설정한 크기보다 큰 이미지는 자동으로 크기를 줄입니다. 크기 제한을 설정하지 않으려면 값을 0으로 설정해주세요.", + ], + "Image Exif data" => [ + 0 => "이미지 Exif 정보", + ], + "Keep" => [ + 0 => "유지", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "업로드 시 이미지의 Exif 정보에 대한 기본 설정을 선택합니다.", + ], + "Image Exif data (user setting)" => [ + 0 => "이미지 Exif 정보 (사용자 설정)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "사용자가 업로드한 이미지의 Exif 정보를 설정할 수 있게 하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Maximum upload file size" => [ + 0 => "최대 업로드 파일 크기", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "서버에서 허용된 최대 크기는 %s입니다. 서버의 크기 제한은 %u 및 %p (%f 값)에서 설정됩니다.", + ], + "Same as \"%s\" but for guests." => [ + 0 => "손님에게 적용되는 \"%s\"입니다.", + ], + "Image path" => [ + 0 => "이미지 경로", + ], + "Relative to Chevereto root" => [ + 0 => "Chevereto 웹페이지 루트의 상대 경로", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "이미지를 저장할 경로를 설정합니다. Chevereto 웹 페이지 루트에 대한 상대 경로입니다.", + ], + "Storage mode" => [ + 0 => "저장 모드", + ], + "Datefolders" => [ + 0 => "날짜 폴더", + ], + "Direct" => [ + 0 => "이미지 경로에 직접", + ], + "Datefolders creates %s structure" => [ + 0 => "날짜 폴더는 %s 구조의 폴더를 만들어 저장합니다.", + ], + "File naming method" => [ + 0 => "파일 이름 생성 방법", + ], + "Original" => [ + 0 => "원본", + ], + "Mix original + random" => [ + 0 => "원본 + 아무 거나", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"원본\"은 이미지 원본 이름을 그대로 유지하지만 \"아무 거나\"는 임의의 이름을 생성하여 적용합니다. \"ID\"는 이미지 ID와 같이 이미지 이름을 적용합니다.", + ], + "Thumb size" => [ + 0 => "미리보기 이미지 크기", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "미리보기 이미지의 너비와 높이를 지정한 값으로 고정합니다.", + ], + "Medium image fixed dimension" => [ + 0 => "일반 이미지 고정 공간", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "일반 이미지를 설정한 공간으로 고정합니다. 예를 들어, \"너비\"를 선택하면 해당 공간을 고정하고 이미지 높이를 자동으로 계산합니다.", + ], + "Medium image fixed size" => [ + 0 => "일반 이미지 고정 크기", + ], + "Width or height will be automatically calculated." => [ + 0 => "너비 또는 높이는 자동으로 계산됩니다.", + ], + "Watermarks" => [ + 0 => "워터마크", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "업로드 이미지에 로고나 원하는 내용을 덧붙이려면 이 옵션을 활성화로 설정해주세요.", + ], + "Warning: Can't write in %s" => [ + 0 => "경고: %s에는 쓸 수 없습니다.", + ], + "Watermark user toggles" => [ + 0 => "워터마크 사용자 토글", + ], + "Enable watermark on guest uploads" => [ + 0 => "손님 업로드에 워터마크 활성화", + ], + "Enable watermark on user uploads" => [ + 0 => "사용자 업로드에 워터마크 활성화", + ], + "Enable watermark on admin uploads" => [ + 0 => "관리자 업로드에 워터마크 활성화", + ], + "Watermark file toggles" => [ + 0 => "워터마크 파일 토글", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "GIF 이미지 업로드에 워터마크 활성화", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "워터마크 적용에 필요한 최소 이미지 크기", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "설정된 값보다 작은 이미지는 워터마크가 적용되지 않습니다. 이미지 크기를 제한하지 않으려면 값을 0으로 설정해주세요.", + ], + "Watermark image" => [ + 0 => "워터마크 이미지", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "그림자를 드리우는 일반 로고로 최상의 결과를 얻을 수 있습니다. 파일 크기가 크지 않는 한 큰 이미지를 사용할 수 있습니다.(권장 최대 크기는 16KB입니다) PNG 파일 형식만 가능합니다.", + ], + "Watermark position" => [ + 0 => "워터마크 위치", + ], + "left top" => [ + 0 => "좌측 상단", + ], + "left center" => [ + 0 => "좌측 중앙", + ], + "left bottom" => [ + 0 => "좌측 하단", + ], + "center top" => [ + 0 => "중앙 상단", + ], + "center center" => [ + 0 => "정중앙", + ], + "center bottom" => [ + 0 => "중앙 하단", + ], + "right top" => [ + 0 => "우측 상단", + ], + "right center" => [ + 0 => "우측 중앙", + ], + "right bottom" => [ + 0 => "우측 하단", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "워터마크 이미지의 상대적인 위치입니다. 수평을 먼저 맞추고 수직을 맞추어 배치합니다.", + ], + "Watermark percentage" => [ + 0 => "워터마크 비율", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "대상 이미지 영역에 대한 상대적인 워터마크 비율입니다. 값은 1에서 100 사이입니다.", + ], + "Watermark margin" => [ + 0 => "워터마크 여백", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "이미지의 테두리로부터 워터마크까지의 여백입니다.", + ], + "Watermark opacity" => [ + 0 => "워터마크 투명도", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "이미지에 배치되는 워터마크 이미지의 투명도 입니다. 값은 0(투명)부터 100(불투명)입니다.", + ], + "Dashboard > Settings > Website" => [ + 0 => "대시보드 > 설정 > 웹사이트", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "둘러보기 기능이 꺼져있으면 카테고리가 작동하지 않습니다. 이 설정을 되돌리려면 %s로 이동해주세요.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "%s 카테고리를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "참고: 카테고리를 삭제하여도 카테고리에 속한 이미지는 삭제되지 않습니다.", + ], + "Edit category" => [ + 0 => "카테고리 속성 편집", + ], + "Expires" => [ + 0 => "만료 날짜", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "차단된 IP %s 설정을 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "차단된 IP 주소는 전체 웹사이트를 사용할 수 없습니다.", + ], + "Edit IP ban" => [ + 0 => "IP 차단 속성 편집", + ], + "Enable signups" => [ + 0 => "가입 활성화", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "방문자의 가입을 허용하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Enable user content delete" => [ + 0 => "사용자 게시물 삭제 활성화", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "사용자가 자신의 게시물을 삭제할수 있도록 하려면 이 옵션을 활성화로 설정해주세요. 이 설정은 관리자에게 영향을 주지 않습니다.", + ], + "Minimum age required" => [ + 0 => "최소 연령 제한", + ], + "Empty" => [ + 0 => "없음", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "웹사이트 사용에 나이 제한을 두지 않으려면 \"없음\"으로 설정해주세요", + ], + "Notify on user signup" => [ + 0 => "사용자 가입 알림", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "사용자가 가입할때 이메일로 알람을 받으려면 이 옵션을 활성화로 선택해주세요.", + ], + "Username routing" => [ + 0 => "사용자 이름 URL 라우팅", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "사용자의 URL을 %s/user/username 대신 %s/username을 사용하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Require email confirmation" => [ + 0 => "전자우편 확인 요구", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "가입시 사용자의 이메일 주소 정상 여부를 확인하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Require email for social signup" => [ + 0 => "소셜 네트워크 가입시 이메일 인증 요청", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "소셜 네트워크 계정으로 가입한 사용자에게 이메일 주소 등록을 요청하고 정상 여부를 확인하려면 이 옵션을 활성화로 설정해주세요.", + ], + "User avatar max. filesize" => [ + 0 => "사용자 프로필 이미지 최대 크기", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "사용자 프로필에 사용되는 이미지 파일의 최대 크기 입니다. (서버에서 허용된 최대 크기는 %s입니다)", + ], + "User background max. filesize" => [ + 0 => "사용자 프로필 배경 이미지 최대 크기", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "사용자 프로필 배경에 사용되는 이미지 파일의 최대 크기 입니다. (서버에서 허용된 최대 크기는 %s입니다.)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "웹사이트에 액세스하기 전에 동의 화면을 표시합니다. 미성년자를 허용해서는 안 되는 성인 콘텐츠 웹사이트에 유용합니다.", + ], + "Enable consent screen" => [ + 0 => "동의 화면 활성화", + ], + "Consent screen cover image" => [ + 0 => "동의 화면 커버 이미지", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "시스템이 사용자 IP를 기준으로 과도한 시간당 업로드 수를 감지하면 업로드를 차단합니다. 이 설정은 관리자에게 영향을 주지 않습니다.", + ], + "Notify to email" => [ + 0 => "이메일 알림", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "활성화하면 과도한 업로드가 발생한 경우 시스템이 받는 이메일 주소로 이메일을 보냅니다.", + ], + "Minute limit" => [ + 0 => "분당 업로드 제한", + ], + "Hourly limit" => [ + 0 => "시간당 업로드 제한", + ], + "Daily limit" => [ + 0 => "일일 업로드 제한", + ], + "Weekly limit" => [ + 0 => "주간 업로드 제한", + ], + "Monthly limit" => [ + 0 => "월간 업로드 제한", + ], + "Lock %s editing" => [ + 0 => "%s의 편집 잠금", + ], + "Show not safe content in listings" => [ + 0 => "목록에 후방주의 게시물 노출", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "목록에 후방주의 게시물을 노출시키려면 이 옵션을 활성화로 선택해주세요. 이 설정은 관리자에게 영향을 주지 않으며 사용자의 설정에 의해 재정의될 수 있습니다.", + ], + "Blur NSFW content in listings" => [ + 0 => "후방주의 게시물을 목록에서 흐리게 표시", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "목록에서 후방주의 게시물에 흐림(Blur) 효과를 주려면 이 옵션을 활성화로 선택해주세요.", + ], + "Show banners in not safe content" => [ + 0 => "후방주의 게시물에 배너 표시", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "후방주의 게시물에 배너를 표시하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Show not safe content in random mode" => [ + 0 => "아무거나 보기에서 후방주의 게시물 노출", + ], + "List items per page" => [ + 0 => "페이지당 표시 항목", + ], + "How many items should be displayed per page listing." => [ + 0 => "한 페이지에 표시되는 항목 개수를 설정합니다.", + ], + "List pagination mode" => [ + 0 => "목록 페이지네이션 모드", + ], + "Endless scrolling" => [ + 0 => "무한 스크롤", + ], + "Classic pagination" => [ + 0 => "일반 페이지네이션", + ], + "What pagination method should be used." => [ + 0 => "페이지네이션 방법을 설정합니다.", + ], + "Listing viewer" => [ + 0 => "목록 뷰어", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "이미지를 클릭했을 때 목록 뷰어를 사용하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Image listing size" => [ + 0 => "이미지 목록 크기", + ], + "Fluid" => [ + 0 => "유연한", + ], + "Fixed" => [ + 0 => "고정된", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "두 가지 방법 모두 고정된 이미지 너비를 사용하지만 유연한 이미지 목록은 자동으로 계산된 이미지 높이를 사용합니다.", + ], + "Album listing images requirement" => [ + 0 => "앨범 목록 표시 필요 이미지", + ], + "explore" => [ + 0 => "둘러보기", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "둘러보기에서 앨범을 표시하는데 필요한 최소 이미지 개수를 설정해주세요.", + ], + "Listing columns number" => [ + 0 => "목록 칼럼 개수", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "각 대상 기기에 따라 사용되는 목록의 칼럼 개수를 설정할 수 있습니다.", + ], + "Phone" => [ + 0 => "전화", + ], + "Phablet" => [ + 0 => "패블릿", + ], + "Tablet" => [ + 0 => "태블릿", + ], + "Laptop" => [ + 0 => "노트북", + ], + "Desktop" => [ + 0 => "데스크톱", + ], + "theme editing" => [ + 0 => "테마 설정", + ], + "Put your themes in the %s folder" => [ + 0 => "테마는 %s 폴더에 넣어주세요.", + ], + "Tone" => [ + 0 => "테마 톤", + ], + "Light" => [ + 0 => "밝게", + ], + "Dark" => [ + 0 => "어둡게", + ], + "Main color" => [ + 0 => "주 색상", + ], + "Hexadecimal color value" => [ + 0 => "16진수 색상 코드(헥스 코드)", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "주 테마 색상을 설정하려면 이 옵션을 설정해주세요. 설정 값은 <a href=\"%s\" target=\"_blank\">헥스 코드</a>이어야 합니다.", + ], + "Top bar button color" => [ + 0 => "상단 바 버튼 색상", + ], + "Blue" => [ + 0 => "파랑", + ], + "Green" => [ + 0 => "초록", + ], + "Orange" => [ + 0 => "주황", + ], + "Red" => [ + 0 => "빨강", + ], + "Grey" => [ + 0 => "회색", + ], + "Black" => [ + 0 => "검정", + ], + "White" => [ + 0 => "하양", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "상단 바 버튼의 색상은 \"계정 만들기\" 버튼의 색상과 같이 사용됩니다.", + ], + "Enable vector logo" => [ + 0 => "벡터 로고 활성화", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "고해상도의 기기에서 고품질의 로고를 표시하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Vector logo image" => [ + 0 => "벡터 로고 이미지", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "웹사이트에서 사용하는 SVG 파일 형식의 백터 이미지입니다.", + ], + "Raster logo image" => [ + 0 => "비트맵 로고 이미지", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "웹사이트에서 사용하는 비트맵 이미지입니다. PNG 파일 형식을 권장합니다.", + ], + "Logo height" => [ + 0 => "로고 높이", + ], + "No value" => [ + 0 => "값 없음", + ], + "Use this to set the logo height if needed." => [ + 0 => "로고의 높이가 필요한 경우 이 옵션을 설정해주세요.", + ], + "Favicon image" => [ + 0 => "파비콘 이미지", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "파비콘 이미지입니다. 이미지의 너비와 높이는 같아야 합니다.", + ], + "Image load max. filesize" => [ + 0 => "이미지 로딩 최대 파일 크기", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "이미지 크기가 설정한 값보다 큰 경우 원본 이미지 보기 버튼을 표시합니다.", + ], + "Enable download button" => [ + 0 => "다운로드 버튼 활성화", + ], + "Enable this if you want to show the image download button." => [ + 0 => "이미지 다운로드 버튼을 제공하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Enable right click on image" => [ + 0 => "이미지 우클릭 활성화", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "이미지 뷰어 페이지에서 우클릭을 허용하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Enable show Exif data" => [ + 0 => "Exif 정보 표시 활성화", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "이미지 Exif 정보를 보여주려면 이 옵션을 활성화로 설정해주세요.", + ], + "Enable social share" => [ + 0 => "소셜 공유 활성화", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "게시물을 공유하는 소셜 네트워크 버튼을 제공하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Enable embed codes (content)" => [ + 0 => "퍼가기 코드 활성화 (게시물)", + ], + "Everybody" => [ + 0 => "누구나", + ], + "Users only" => [ + 0 => "사용자만", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "게시물에 퍼가기 코드를 보여주려면 이 옵션을 활성화로 선택해주세요.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "업로드 창에 후방주의 체크박스 표시", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "업로드 창에 후방주의 체크박스를 제공하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Custom CSS code" => [ + 0 => "사용자 정의 CSS 코드", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "사용자 정의 CSS 코드를 여기에 넣어주세요. 닫는 </head> 태그 바로 앞에 <style>로 배치됩니다.", + ], + "Custom JS code" => [ + 0 => "사용자 정의 JS 코드", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "사용자 정의 JS 코드를 여기에 넣어주세요. 닫는 </head> 태그 바로 앞에 <style>로 배치됩니다.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "여기에 %s 마크업을 사용하지 마세요. HTML 스크립트 태그가 아닌 일반 JS 코드를 위한 공간입니다. 스크립트 태그를 사용하면 웹사이트가 손상됩니다.", + ], + "Style" => [ + 0 => "스타일", + ], + "Landing page" => [ + 0 => "방문 페이지", + ], + "Split landing + images" => [ + 0 => "잘라낸 방문 페이지 + 이미지", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "홈페이지 스타일을 선택해주세요. 추가 편집은 app/themes/%s/views/index.php에서 할 수 있습니다.", + ], + "Cover image" => [ + 0 => "커버 이미지", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "이 이미지를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Delete image" => [ + 0 => "이미지 삭제하기", + ], + "Add new cover image" => [ + 0 => "새 커버 이미지 추가", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "벡터 버전 또는 SVG 형식의 웹사이트 로고 (홈페이지 전용).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "비트맵 버전 또는 웹사이트 로고 (홈페이지 전용). PNG 파일 형식을 사용하는 것이 좋습니다.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "홈페이지 %s 태그 안에 추가됩니다. 기본 내용을 사용하려면 비워두세요.", + ], + "Paragraph" => [ + 0 => "문단", + ], + "Call to action button color" => [ + 0 => "콜투액션 버튼 색상", + ], + "Color of the homepage call to action button." => [ + 0 => "홈페이지 콜투액션 버튼의 색상입니다.", + ], + "Call to action outline style button" => [ + 0 => "콜투액션 아웃라인 스타일 버튼", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "홈페이지 콜투액션 버튼을 아웃라인 스타일로 설정하려면 이 옵션을 활성화 해주세요.", + ], + "Call to action functionality" => [ + 0 => "콜투액션 기능", + ], + "Trigger uploader" => [ + 0 => "업로더 트리거", + ], + "Open URL" => [ + 0 => "URL 열기", + ], + "Call to action URL" => [ + 0 => "콜투액션 URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "절대 또는 상대 경로의 URL을 입력해주세요.", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "상대 경로 URL은 %r과 같은 형식이며 %l로 맵핑됩니다.", + ], + "Call to action HTML" => [ + 0 => "콜투액션 HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "콜투액션 <a> 태그 안에 추가됩니다. 기본 내용을 사용하려면 비워두세요.", + ], + "User IDs" => [ + 0 => "사용자 ID", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "홈페이지에서 가장 최근 이미지를 표시하기 위한 쉼표로 구분된 대상 사용자 ID(정수) 목록입니다. 트랜드 이미지를 보여주려면 비워두세요.", + ], + "banners" => [ + 0 => "배너", + ], + "Automatic updates check" => [ + 0 => "자동 업데이트 확인하기", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "활성화하면 시스템은 자동으로 새로운 업데이트를 체크합니다.", + ], + "Display available updates notification" => [ + 0 => "업데이트 가능 알림 표시", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "사용 가능한 새로운 시스템 업데이트에 대한 알림을 상단 알림에 표시하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Dump update query" => [ + 0 => "업데이트 쿼리 덤프 뜨기", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "활성화하면 자동으로 언어를 감자하여 각 사용자에게 맞는 언어로 설정합니다.", + ], + "SEO %s URLs" => [ + 0 => "검색엔진 최적화 %s URL", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "검색엔진 최적화 %s URL을 사용하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Minify code" => [ + 0 => "코드 최소화", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "CSS 및 JS 코드를 자동으로 최소화하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Maintenance" => [ + 0 => "유지보수", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "이 옵션을 활성화하면 웹사이트는 사용자에게 유지보수 메시지를 보여줍니다. 이 설정은 관리자에게 영향을 주지 않습니다.", + ], + "Crypt salt" => [ + 0 => "암호화 솔트(Crypt salt)", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "이 옵션은 숫자 ID를 영숫자로 변환할 때 사용하는 문자열입니다. 솔트 문자열은 설치시 생성되었습니다.", + ], + "PHP error reporting" => [ + 0 => "PHP 오류 보고", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "PHP 오류 보고에서 생성된 오류를 출력하려면 이 옵션을 활성화로 선택해주세요. 실 사용 구성에서는 이 옵션을 비활성화해야 합니다.", + ], + "Debug level" => [ + 0 => "디버그 수준", + ], + "None" => [ + 0 => "없음", + ], + "Error log" => [ + 0 => "에러 로그", + ], + "Print errors without error log" => [ + 0 => "에러 로그 없이 오류 출력", + ], + "Print and log errors" => [ + 0 => "에러 로그와 오류 출력", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "디버그 수준을 구성하려면 <a %s>디버그 문서</a>를 참조해주세요. 기본 수준은 \"Error log\" (1) 입니다.", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "라우팅을 사용하면 기본 경로 바인딩을 바로 사용자화할 수 있습니다. 영문자와 숫자, 하이픈(-) 그리고 밑줄 문자(_)만 사용 가능합니다. 새 라우팅을 추가하거나 대체하려면 %s를 참조해주세요.", + ], + "Image routing" => [ + 0 => "이미지 라우팅", + ], + "Routing for %s" => [ + 0 => "%s을(를) 위한 라우팅", + ], + "Album routing" => [ + 0 => "앨범 라우팅", + ], + "Hostname" => [ + 0 => "호스트네임", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "서브도메인 와일드카드가 추가될 호스트 이름입니다.", + ], + "This setting may be overridden by %s." => [ + 0 => "이 설정은 %s에 의해 대체될 수 있습니다.", + ], + "Language subdomains" => [ + 0 => "언어 서브도메인", + ], + "languages" => [ + 0 => "언어", + ], + "Enable to use %s for %t." => [ + 0 => "%t 서브도메인을 붙여 %s처럼 사용하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Username subdomains" => [ + 0 => "사용자 이름 서브도메인", + ], + "user profiles" => [ + 0 => "사용자 프로필", + ], + "Custom language strings" => [ + 0 => "언어 문자열 사용자화", + ], + "language strings" => [ + 0 => "언어 문자열", + ], + "Default language" => [ + 0 => "기본 언어", + ], + "Default base language to use." => [ + 0 => "기본으로 사용될 언어입니다.", + ], + "Auto language" => [ + 0 => "자동 언어", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "액세스한 사용자에게 적합한 언어를 감지하여 자동으로 적용시키려면 이 옵션을 활성화로 선택해주세요.", + ], + "Language chooser" => [ + 0 => "언어 선택", + ], + "Enable this if you want to allow language selection." => [ + 0 => "사용자가 언어를 선택할 수 있도록 하려면 이 옵션을 활성화로 선택해주세요.", + ], + "Enabled languages" => [ + 0 => "활성화된 언어", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "체크 해제된 언어는 웹사이트에서 사용되지 않습니다.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "HTTPS를 활성화 또는 비활성화하려면 이 옵션을 토글 해주세요", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "이 저장소를 활성화 또는 비활성화하려면 이 옵션을 토글 해주세요", + ], + "Quota" => [ + 0 => "한도", + ], + "Active" => [ + 0 => "활성화", + ], + "Storage method" => [ + 0 => "저장 방법", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "활성화된 외부 저장소가 없는 경우 내부 저장소가 사용됩니다.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "도움이 필요하다면 <a %s>저장소 문서</a>를 참조해주세요.", + ], + "Edit storage" => [ + 0 => "저장소 속성 편집", + ], + "From name" => [ + 0 => "보내는 사람 이름", + ], + "Sender name for emails sent to users." => [ + 0 => "사용자에게 보내는 이메일에 표시할 보내는 사람 이름입니다.", + ], + "Email mode" => [ + 0 => "이메일 모드", + ], + "How to send emails? SMTP recommended." => [ + 0 => "이메일을 보내는 방식을 설정합니다. SMTP 방식을 권장합니다.", + ], + "SMTP server and port" => [ + 0 => "SMTP 서버 및 포트", + ], + "SMTP server" => [ + 0 => "SMTP 서버", + ], + "SMTP username" => [ + 0 => "SMTP 사용자 이름", + ], + "SMTP password" => [ + 0 => "SMTP 사용자 암호", + ], + "SMTP security" => [ + 0 => "SMTP 보안 연결 방법", + ], + "Unsecured" => [ + 0 => "보안 연결 안 함", + ], + "Decode ID" => [ + 0 => "ID 디코딩(복호화)", + ], + "Encode ID" => [ + 0 => "ID 인코딩(암호화)", + ], + "Send test email" => [ + 0 => "테스트 이메일 보내기", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "설정한 이메일이 정상 작동하는지 테스트해볼 수 있습니다. %s을(를) 사용해보는 것을 권장합니다.", + ], + "Export a user" => [ + 0 => "사용자 정보 내보내기", + ], + "Export user" => [ + 0 => "사용자 정보 내보내기", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "사용자의 일반 정보를 JSON 형식으로 다운로드 할 수 있습니다.", + ], + "Regenerate external storage stats" => [ + 0 => "외부 저장소 통계 재생성", + ], + "Storage id" => [ + 0 => "저장소 id", + ], + "Regenerate" => [ + 0 => "재생성하기", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "대상 외부 저장소와 관련된 모든 이미지 레코드 합계를 다시 계산합니다.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "외부 저장소에서 다른 외부저장소로 이미지 레코드 마이그레이션", + ], + "Source storage id" => [ + 0 => "소스 외부 저장소 id", + ], + "Target storage id" => [ + 0 => "대상 외부 저장소 id", + ], + "Migrate" => [ + 0 => "마이그레이션하기", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "마이그레이션은 데이터베이스만 업데이트하며 실제 파일은 대상 외부 저장소 컨테이너로 직접 옮겨야 합니다. URL을 다시 작성하는 것이 좋습니다. 내부 저장소에는 0을 사용해주세요.", + ], + "social networks" => [ + 0 => "소셜 네트워크", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "연동 하려면 <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook 앱</a>이 필요합니다.", + ], + "Facebook app id" => [ + 0 => "Facebook 앱 id", + ], + "Facebook app secret" => [ + 0 => "Facebook 앱 시크릿 코드(secret)", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "연동 하려면 <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter 앱 </a>이 필요합니다.", + ], + "Twitter API key" => [ + 0 => "Twitter API 키", + ], + "Twitter API secret" => [ + 0 => "Twitter API 시크릿 코드(secret)", + ], + "Twitter account" => [ + 0 => "Twitter 계정", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "연동 하려면 <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google 앱</a>이 필요합니다.", + ], + "Google client id" => [ + 0 => "Google 클라이언트 id", + ], + "Google client secret" => [ + 0 => "Google 클라이언트 시크릿 코드(secret)", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "연동하려면 <a href=\"http://vk.com/dev\" target=\"_blank\">VK 앱</a>이 필요합니다.", + ], + "VK client id" => [ + 0 => "VK 클라이언트 id", + ], + "VK client secret" => [ + 0 => "VK client 시크릿 코드(secret)", + ], + "%s spam protection" => [ + 0 => "%s 스팸 보호", + ], + "user generated content" => [ + 0 => "사용자 생성 게시물", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "%l을(를) 사용하여 %c 스팸을 차단하려면 이 옵션을 활성화로 설정해주세요.", + ], + "%s API key" => [ + 0 => "%s API 키", + ], + "user signup" => [ + 0 => "사용자 가입", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "연동하려면 <a href=\"%s\" target=\"_blank\">reCAPTCHA 키</a>가 필요합니다.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "각 reCAPTCHA 버전에는 고유한 키 세트가 필요합니다. 버전을 변경하는 경우 키를 업데이트하는 것을 잊지 마세요.", + ], + "%s site key" => [ + 0 => "%s 사이트 키(site key)", + ], + "%s secret key" => [ + 0 => "%s 비밀 키(secert key)", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA 한도", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "reCAPTCHA 호출에 필요한 실패 시도 횟수를 설정해주세요.항상 reCAPTCHA를 표시하려면 0으로 설정해주세요.", + ], + "Force %s on contact page" => [ + 0 => "문의하기 페이지 %s 강제적용", + ], + "Enable this to always show %s on contact page." => [ + 0 => "문의하기 페이지에 %s를 항상 사용하려면 이 옵션을 활성화로 설정해주세요.", + ], + "Comments API" => [ + 0 => "댓글 API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API 는 %s로 작동합니다.", + ], + "Disqus shortname" => [ + 0 => "Disqus 짧은 이름(shortname)", + ], + "%s public key" => [ + 0 => "%s 공개 키", + ], + "Comment code" => [ + 0 => "댓글 코드", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook 또는 다른 원하는 서비스의 코드를 넣어주세요. 댓글은 이미지 뷰어에 사용됩니다.", + ], + "Automatic approve" => [ + 0 => "자동 승인", + ], + "Block content" => [ + 0 => "블럭한 게시물", + ], + "Adult" => [ + 0 => "성인", + ], + "Teen and adult" => [ + 0 => "미성년자와 성인", + ], + "Flag NSFW" => [ + 0 => "후방주의 표기", + ], + "Analytics code" => [ + 0 => "접속 통계 코드", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google 애널리틱스 또는 다른 원하는 서비스의 코드를 넣어주세요. 접속 통계는 테마의 푸터에 추가됩니다.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "API에 대해 설명서가 필요하다면 <a %s>API 문서</a>를 참조해주세요.", + ], + "API v1 key" => [ + 0 => "API v1 키", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "<a %s>API v1</a>을 사용하려면 이 키를 사용해주세요.", + ], + "Plugin route" => [ + 0 => "Plugin 라우팅", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "%u에 플러그인 사용방법을 표시하려면 이 옵션을 활성화로 설정해주세요. %s 메뉴에 사용방법에 대한 링크가 추가됩니다. 이 설정은 관리자에게 영향을 주지 않습니다.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "%p의 URL을 사용자화 합니다. 이 URL에 %s를 수동으로 복사해서 붙여 넣어야 합니다.", + ], + "Cookie law compliance" => [ + 0 => "Cookie 법률 준수", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "EU 쿠키 법률 요구 사항을 준수하는 메시지를 표시하려면 이 옵션을 활성화로 설정해주세요. 참고: 웹사이트가 EU에서 호스팅 되고 추적 쿠키를 추가하는 경우에만 이 옵션이 필요합니다.", + ], + "Save changes" => [ + 0 => "변경 사항 저장", + ], + "Check the errors to proceed." => [ + 0 => "계속 하려면 오류를 확인해주세요.", + ], + "Play GIF" => [ + 0 => "GIF 재생", + ], + "Load full resolution" => [ + 0 => "원본 이미지 보기", + ], + "Added to %a and categorized in %c" => [ + 0 => "%c 카테고리로 %a 앨범에 추가됨", + ], + "Added to %s" => [ + 0 => "%s 앨범에 추가됨", + ], + "Uploaded to %s" => [ + 0 => "%s 카테고리로 업로드됨", + ], + "Uploaded %s" => [ + 0 => "%s에 업로드됨", + ], + "Less Exif data" => [ + 0 => "Exif 정보 간략히", + ], + "More Exif data" => [ + 0 => "Exif 정보 자세히", + ], + "Share image" => [ + 0 => "이미지 공유", + ], + "Album ID" => [ + 0 => "앨범 ID", + ], + "In this album" => [ + 0 => "앨범 게시물", + ], + "Upload and share your images." => [ + 0 => "이미지를 업로드 하고<br>공유해보세요.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "원하는 곳 어디든 끌어놓기로 이미지를 바로 업로드해보세요.(이미지당 %s 가능)<br>다이렉트 링크, BBCode 및 HTML 미리보기등을 제공해드립니다.", + ], + "Start uploading" => [ + 0 => "업로드 하기", + ], + "Sign up to unlock all the features" => [ + 0 => "지금 가입하시고<br>다양한 기능을 누려 보세요", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "게시물을 관리하고 비공개 앨범을 만들거나<br>프로필을 입맛에 맞게 꾸며보는 등의<br>다채로운 것들을 해볼 수 있습니다.", + ], + "Sign in with your account" => [ + 0 => "계정으로 로그인하기", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "계정이 없으신가요?<br>바로 <a href='%s'>가입</a>할 수 있습니다.", + ], + "Logged out" => [ + 0 => "로그아웃 되었습니다", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "%s에서 로그아웃되었습니다. 조만간 다시 뵈어요!", + ], + "Go to homepage" => [ + 0 => "홈페이지로 이동하기", + ], + "Website under maintenance" => [ + 0 => "웹사이트가 유지보수 중입니다", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "웹사이트에서 예정된 유지보수 작업을 수행하고 있습니다.<br>잠시 후에 다시 방문해주세요.", + ], + "This content is password protected." => [ + 0 => "이 게시물은 비밀번호로 보호되었습니다.", + ], + "Please enter your password to continue." => [ + 0 => "계속하려면 비밀번호를 넣어주세요.", + ], + "Send" => [ + 0 => "확인", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "업로드 플러그인을 설치하여 웹사이트, 블로그 또는 포럼에 이미지 업로드를 추가해보세요. 사용자가 이 웹사이트 서비스에 이미지를 직접 업로드할 수 있는 버튼을 배치하여 어떤 웹사이트라도 이미지 업로드를 제공하거나 이미지 삽입에 필요한 자동으로 처리된 코드를 얻어 사용할 수 있습니다. 끌어놓기, 원격 업로드, 이미지 크기 조정 등과 같은 다양한 기능이 포함되어 있습니다.", + ], + "Supported software" => [ + 0 => "지원 소프트웨어", + ], + "supported software" => [ + 0 => "지원 소프트웨어", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "플러그인은 사용자가 편집할 수 있는 콘텐츠가 있는 모든 웹사이트에서 작동하며 %sv의 경우, 대상 편집기 도구 모음과 일치하는 업로드 버튼을 배치하므로 추가로 사용자화할 필요가 없습니다.", + ], + "Add it to your website" => [ + 0 => "웹사이트에 추가", + ], + "options" => [ + 0 => "옵션", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "플러그인 코드를 복사하여 웹사이트 HTML 코드(주로 헤드 섹션 안)에 붙여넣기만 하면 됩니다. 이 외에도 필요에 따라 사용할 수 있는 알맞는 %o이 많이 있습니다.", + ], + "Basic options" => [ + 0 => "기본 옵션", + ], + "Color palette" => [ + 0 => "색상 팔레트", + ], + "Button color scheme" => [ + 0 => "버튼 색상 구성", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "편집기에 자동으로 삽입되는 퍼가기 코드", + ], + "Sibling selector" => [ + 0 => "형제(시블링) 선택자", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "옆에 버튼을 배치할 형제(시블링) 요소 선택자", + ], + "Sibling position" => [ + 0 => "형제(시블링) 위치", + ], + "After" => [ + 0 => "뒤에", + ], + "Before" => [ + 0 => "앞에", + ], + "Position relative to sibling element" => [ + 0 => "형제(시블링) 요소에 대한 상대 위치", + ], + "Advanced options" => [ + 0 => "고급 옵션", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "플러그인에는 전체를 사용자화할 수 있는 다양한 추가 옵션 세트가 있습니다. HTML, CSS, 자체 색상 팔레트, 관찰자 등을 사용자화할 수 있습니다. 이러한 고급 옵션에 대해 더 자세히 알아보려면 %d 및 플러그인 소스를 참조해주세요.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "이 페이지에 액세스할 수 있는 권한이 없거나 링크가 만료되었습니다.", + ], + "Search results" => [ + 0 => "검색 결과", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "이 사용자를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Delete user" => [ + 0 => "사용자 삭제하기", + ], + "Register date" => [ + 0 => "가입 날짜", + ], + "Registration IP" => [ + 0 => "가입 IP", + ], + "Valid" => [ + 0 => "인증됨", + ], + "Banned" => [ + 0 => "추방됨", + ], + "Awaiting email" => [ + 0 => "이메일 인증 대기 중", + ], + "Awaiting confirmation" => [ + 0 => "확인 대기 중", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i ~ %f자의 영문자, 숫자와 특수기호(_)만 사용 가능합니다.", + ], + "Auto delete uploads" => [ + 0 => "자동 삭제 업로드", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "이 설정은 모든 이미지 업로드에 기본값으로 설정합니다. 업로드할 때마다 이 설정을 바꿔서 적용할 수 있습니다.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "업로드 시 이미지 <a %s>Exif 정보</a> 유지하기", + ], + "Newsletter" => [ + 0 => "뉴스 레터", + ], + "Send me emails with news about %s" => [ + 0 => "%s에 대한 새소식을 내 이메일로 보내기", + ], + "Content settings" => [ + 0 => "게시물 설정", + ], + "Show not safe content in listings (from others)" => [ + 0 => "목록에서 다른 사용자의 후방주의 게시물 보기", + ], + "Language" => [ + 0 => "언어", + ], + "Timezone" => [ + 0 => "시간대", + ], + "Current password" => [ + 0 => "현재 암호", + ], + "Enter your current password" => [ + 0 => "귀하의 현재 암호를 입력해주세요.", + ], + "New password" => [ + 0 => "새 암호", + ], + "Confirm new password" => [ + 0 => "새 암호 확인", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "사용자 이름 또는 이메일 주소로 로그인 하려면 비밀번호를 넣어주세요.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "이 사용자는 비밀번호를 설정하지 않았습니다. 여기서 비밀번호를 설정해주세요.", + ], + "Enter your password" => [ + 0 => "암호를 입력해주세요.", + ], + "Confirm password" => [ + 0 => "암호 확인", + ], + "Re-enter your password" => [ + 0 => "암호를 다시 입력해주세요.", + ], + "Upload new image" => [ + 0 => "새 이미지 업로드하기", + ], + "Delete existing image" => [ + 0 => "기존 이미지 삭제하기", + ], + "Make my profile and identity totally private" => [ + 0 => "내 프로필과 개인 정보를 완전히 비공개로 설정하기", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "익명 사용자처럼 행동하려면 이 옵션을 활성화로 선택해주세요", + ], + "This is your real name, not your username." => [ + 0 => "사용자 이름이 아닌 실제 이름입니다.", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "소개", + ], + "Tell us a little bit about you" => [ + 0 => "간단한 자기 소개를 해주세요.", + ], + "User has no connections." => [ + 0 => "이 사용자는 연결된 계정이 없습니다.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "외부 서비스로 로그인하려면 계정을 연결해주세요.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "이 계정을 %s 계정과 연결을 해제하시겠습니까?", + ], + "This account is connected to %s" => [ + 0 => "이 계정은 %s에 연결되어있습니다.", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "%s 계정과 연결을 해제하시겠습니까?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "계속하면 로그아웃되고 이 %s 계정을 사용해서 현재 계정으로 로그인할 수 없게 됩니다.", + ], + "Your account is connected to %s" => [ + 0 => "이 계정은 %s 계정과 연결되었습니다.", + ], + "disconnect" => [ + 0 => "연결 해제하기", + ], + "Connect %s" => [ + 0 => "%s 계정과 연결하기", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "공유된 모든 이미지와 앨범을 자유롭게 찾아보고 검색해보세요.", + ], + "Button" => [ + 0 => "버튼", + ], + "View all my images" => [ + 0 => "내 이미지 모두 보기", + ], + "Login" => [ + 0 => "로그인", + ], + "Already have an account? %s now." => [ + 0 => "등록한 계정이 있으시다면 %s해보세요.", + ], + "resend account activation" => [ + 0 => "계정 활성화 메일 다시보내기", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "이미 계정 등록을 하셨다면 %s에 계정을 활성화하도록 요청해야 할 수 있습니다.", + ], + "You can also %s." => [ + 0 => "<br>또는 %s를<br>할 수 있습니다.", + ], + "I'm at least %s years old" => [ + 0 => "나는 %s세 이상입니다.", + ], + "terms" => [ + 0 => "이용 약관", + ], + "privacy policy" => [ + 0 => "개인 정보 보호 정책", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "%terms_link 및 %privacy_link에 동의합니다", + ], + "Upload profile background" => [ + 0 => "프로필 배경 업로드하기", + ], + "Change background" => [ + 0 => "배경 바꾸기", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "배경 지우기는 프로필 배경 이미지를 삭제합니다. 프로필 배경 이미지를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다.", + ], + "Delete background" => [ + 0 => "배경 지우기", + ], + "Follower" => [ + 0 => "팔로워", + ], + "Follow" => [ + 0 => "팔로우", + ], + "You have been forbidden to use this website." => [ + 0 => "이 웹사이트를 사용하는 것이 금지되었습니다.", + ], + "Plugin" => [ + 0 => "플러그인", + ], + "Page %s" => [ + 0 => "페이지 %s", + ], + "General questions/comments" => [ + 0 => "일반적인 질문 및 의견", + ], + "DMCA complaint" => [ + 0 => "저작권법 위반 내용 접수", + ], + "Invalid message" => [ + 0 => "메시지 내용이 잘못되었습니다", + ], + "Invalid subject" => [ + 0 => "주제가 잘못되었습니다", + ], + "Mail error" => [ + 0 => "이메일 오류", + ], + "Message sent" => [ + 0 => "메시지를 보냈습니다.", + ], + "Message sent. We will get in contact soon." => [ + 0 => "메시지를 보냈습니다. 빠른 시일내에 답변드리겠습니다.", + ], + "If you want to send a message fill the form below." => [ + 0 => "메시지를 보내시려면 아래의 양식을 채워주세요.", + ], + "Your name" => [ + 0 => "보내는 분 이름", + ], + "Subject" => [ + 0 => "주제", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "계속하면 변경한 내용이 모두 손실됩니다.", + ], + "Changes saved successfully." => [ + 0 => "변경한 내용 저장이 완료되었습니다.", + ], + "Go back to form" => [ + 0 => "입력폼으로 되돌아가기", + ], + "continue anyway" => [ + 0 => "입력폼에서 나가기", + ], + "Saving" => [ + 0 => "저장하는 중", + ], + "Sending" => [ + 0 => "처리 중", + ], + "Confirm action" => [ + 0 => "내용 확인", + ], + "information" => [ + 0 => "정보", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/lt-LT.po.cache.php b/app/.cache/languages/lt-LT.po.cache.php new file mode 100644 index 0000000..3bdaeb7 --- /dev/null +++ b/app/.cache/languages/lt-LT.po.cache.php @@ -0,0 +1,1202 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-04-16 20:33+0000', + 'PO-Revision-Date' => '2020-04-16 20:33+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'lt_LT', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Neteisingas el.paštas", + ], + "Invalid username" => [ + 0 => "Neteisingas vartotojo vardas", + ], + "Invalid password" => [ + 0 => "Neteisingas slaptažodis", + ], + "Invalid website mode" => [ + 0 => "Neteisingas svetainės režimas", + ], + "From email address" => [ + 0 => "Iš el.pašto", + ], + "Sender email for emails sent to users." => [ + 0 => "Laiškų siuntimo vartotojams el.paštas", + ], + "Incoming email address" => [ + 0 => "Įeinantis el. paštas", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Kontaktinės formos ir sistemos perspėjimų gavėjas.", + ], + "Website mode" => [ + 0 => "Svetainės režimas", + ], + "You can switch the website mode anytime." => [ + 0 => "Svetainės režimą galite pakeisti bet kada.", + ], + "Community" => [ + 0 => "Bendruomenė", + ], + "Personal" => [ + 0 => "Asmeninė", + ], + "Installed version is v%s" => [ + 0 => "Įdiegta versija yra v%s", + ], + "Can't connect to %s" => [ + 0 => "Nepavyksta prisijungti prie %s", + ], + "Last available release is v%s" => [ + 0 => "Paskutinis galimas leidimas yra v%s", + ], + "No update needed" => [ + 0 => "Nereikia atnaujinti", + ], + "System files already up to date" => [ + 0 => "Sistemos failai jau atnaujinti", + ], + "Starting v%s download" => [ + 0 => "Pradedamas v%s atsisiuntimas", + ], + "Update failed" => [ + 0 => "Atnaujinti nepavyko", + ], + "Missing %s file" => [ + 0 => "Trūksta %s failo", + ], + "Can't save file" => [ + 0 => "Negalima išsaugoti failo", + ], + "Check the errors in the form to continue." => [ + 0 => "Pasitikrinkite klaidas ir tęskite.", + ], + "Confirm" => [ + 0 => "Patvirtinti", + ], + "Passwords don't match" => [ + 0 => "Slaptažodžiai nesutampa", + ], + "or" => [ + 0 => "ar", + ], + "cancel" => [ + 0 => "atšaukti", + ], + "loading" => [ + 0 => "kraunama", + ], + "Edit" => [ + 0 => "Redaguoti", + ], + "Album" => [ + 0 => "Album.", + 1 => "Album.", + 2 => "Album.", + 3 => "Album.", + ], + "Delete" => [ + 0 => "Pašalinti", + ], + "Close" => [ + 0 => "Uždaryti", + ], + "image" => [ + 0 => "paveiksl.", + 1 => "paveiksl.", + 2 => "paveiksl.", + 3 => "paveiksl.", + ], + "%s's Albums" => [ + 0 => "%s albumai", + ], + "private" => [ + 0 => "privatus", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Atminties talpa negali būti mažesnė nei dabartinis jos naudojimas (%s)", + ], + "Invalid URL." => [ + 0 => "Neteisingas URL.", + ], + "The content has been deleted." => [ + 0 => "Turinys buvo pašalintas", + ], + "Select" => [ + 0 => "Rinktis", + ], + "album" => [ + 0 => "album.", + 1 => "album.", + 2 => "album.", + 3 => "album.", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Aptiktas piktnaudžiavimas. Galite įkelti tik %limit% %content% per %time%", + ], + "Untitled" => [ + 0 => "Be pavadinimo", + ], + "%s's images" => [ + 0 => "%s paveikslėliai", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Perspėjimas: Turinys yra privatus. Pakeiskite privatumo lygį į \"viešą\" ir galėsite dalintis.", + ], + "Public" => [ + 0 => "Viešas", + ], + "Me" => [ + 0 => "Aš", + ], + "Link" => [ + 0 => "Nuoroda", + ], + "Password" => [ + 0 => "Slaptažodis", + ], + "view" => [ + 0 => "perž.", + 1 => "perž.", + 2 => "perž.", + 3 => "perž.", + ], + "minute" => [ + 0 => "min.", + 1 => "min.", + 2 => "min.", + 3 => "min.", + ], + "hour" => [ + 0 => "val.", + 1 => "val.", + 2 => "val.", + 3 => "val.", + ], + "day" => [ + 0 => "d.", + 1 => "d.", + 2 => "d.", + 3 => "d.", + ], + "week" => [ + 0 => "sav.", + 1 => "sav.", + 2 => "sav.", + 3 => "sav.", + ], + "month" => [ + 0 => "mėn.", + 1 => "mėn.", + 2 => "mėn.", + 3 => "mėn.", + ], + "year" => [ + 0 => "m.", + 1 => "m.", + 2 => "m.", + 3 => "m.", + ], + "Private upload" => [ + 0 => "Privatus įkėlimas", + ], + "Top users" => [ + 0 => "Top vartotojai", + ], + "Most recent" => [ + 0 => "Naujausia", + ], + "Oldest" => [ + 0 => "Seniausia", + ], + "Most viewed" => [ + 0 => "Labiausiai žiūrima", + ], + "Explore" => [ + 0 => "Naršyti", + ], + "Search" => [ + 0 => "Ieškoti", + ], + "People" => [ + 0 => "Žmonės", + ], + "Image" => [ + 0 => "Paveikslėlis", + 1 => "Paveikslėliai", + 2 => "Paveikslėliai", + 3 => "Paveikslėliai", + ], + "User" => [ + 0 => "Vartotojas", + 1 => "Vartotojai", + 2 => "Vartotojai", + 3 => "Vartotojai", + ], + "Unlimited" => [ + 0 => "Be apribojimo", + ], + "used" => [ + 0 => "naudojama", + ], + "second" => [ + 0 => "s.", + 1 => "s.", + 2 => "s.", + 3 => "s.", + ], + "%s ago" => [ + 0 => "prieš %s", + ], + "moments ago" => [ + 0 => "ką tik", + ], + "Dashboard" => [ + 0 => "Skydelis", + ], + "Forgot password?" => [ + 0 => "Pamiršote slaptažodį?", + ], + "Reset password" => [ + 0 => "Atnaujinti slaptažodį", + ], + "Resend account activation" => [ + 0 => "Aktyvuoti paskyrą", + ], + "Add your email address" => [ + 0 => "Įrašykite savo el.paštą", + ], + "Email changed" => [ + 0 => "El.paštas pakeistas", + ], + "Invalid Username/Email" => [ + 0 => "Neteisingas Vartotojo vardas/El.paštas", + ], + "User doesn't have an email." => [ + 0 => "Vartotojas neturi el.pašto.", + ], + "Request denied" => [ + 0 => "Užklausa atmesta", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Paskyra reikalauja aktyvacijos", + ], + "Account already activated" => [ + 0 => "Paskyra jau yra aktyvuota", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Palaukite apie 15 minučių el.laiško. Taip pat galite bandyti vėliau dar kartą.", + ], + "Reset your password at %s" => [ + 0 => "Atnaujinti slaptažodį %s", + ], + "Confirmation required at %s" => [ + 0 => "Reikalauja patvirtinimo %s", + ], + "Welcome to %s" => [ + 0 => "Sveiki atvykę į %s", + ], + "Email already being used" => [ + 0 => "Šis el.paštas jau naudojamas", + ], + "Password required" => [ + 0 => "Būtinas slaptažodis", + ], + "Share" => [ + 0 => "Dalintis", + ], + "Embed codes" => [ + 0 => "Dalinimosi kodas", + ], + "Full info" => [ + 0 => "Pilna informacija", + ], + "Stats" => [ + 0 => "Statistika", + ], + "Images" => [ + 0 => "paveikslėliai", + ], + "Albums" => [ + 0 => "Albumai", + ], + "Users" => [ + 0 => "Vartotojai", + ], + "Settings" => [ + 0 => "Nustatymai", + ], + "Chevereto version" => [ + 0 => "Chevereto versija", + ], + "check for updates" => [ + 0 => "tikrinti atnaujinimus", + ], + "Support" => [ + 0 => "Pagalba", + ], + "PHP version" => [ + 0 => "PHP versija", + ], + "Server" => [ + 0 => "Serveris", + ], + "MySQL version" => [ + 0 => "MySQL versija", + ], + "MySQL server info" => [ + 0 => "MySQL serverio informacija", + ], + "GD Library" => [ + 0 => "GD biblioteka", + ], + "File uploads" => [ + 0 => "Failų įkėlimas", + ], + "Enabled" => [ + 0 => "Įjungta", + ], + "Disabled" => [ + 0 => "Išjungta", + ], + "Max. post size" => [ + 0 => "Maksimalus aprašymo dydis", + ], + "Max. execution time" => [ + 0 => "Maksimalus vykdymo laikas", + ], + "%d second" => [ + 0 => "%d sek.", + 1 => "%d sek.", + 2 => "%d sek.", + 3 => "%d sek.", + ], + "Memory limit" => [ + 0 => "Atminties limitas", + ], + "Links" => [ + 0 => "Nuorodos", + ], + "Website" => [ + 0 => "Svetainė", + ], + "Content" => [ + 0 => "Turinys", + ], + "Listings" => [ + 0 => "Skelbimai", + ], + "Image upload" => [ + 0 => "paveikslėlio įkėlimas", + ], + "Categories" => [ + 0 => "Kategorijos", + ], + "Flood protection" => [ + 0 => "Apsauga nuo floodo", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Namų puslapis", + ], + "Banners" => [ + 0 => "Baneriai", + ], + "System" => [ + 0 => "Sistema", + ], + "Languages" => [ + 0 => "Kalbos", + ], + "External storage" => [ + 0 => "Išorinė saugykla", + ], + "Email" => [ + 0 => "El.paštas", + ], + "Social networks" => [ + 0 => "Socialiniai tinklai", + ], + "External services" => [ + 0 => "Išorinės tarnybos", + ], + "IP bans" => [ + 0 => "Užblokuoti IP", + ], + "Local" => [ + 0 => "Vietinis", + ], + "External" => [ + 0 => "Išorinis", + ], + "All" => [ + 0 => "Visi", + ], + "search content" => [ + 0 => "ieškoti", + ], + "Invalid website name" => [ + 0 => "Neteisingas svetainės pavadinimas", + ], + "Invalid language" => [ + 0 => "Neteisinga kalba", + ], + "Invalid timezone" => [ + 0 => "Neteisinga laiko juosta", + ], + "Invalid upload storage mode" => [ + 0 => "Neteisingas įkėlimo saugojimo režimas", + ], + "Invalid upload filenaming" => [ + 0 => "Neteisingi įkeliamų failų pavadinimai", + ], + "Invalid thumb width" => [ + 0 => "Neteisingas miniatiūros plotis", + ], + "Invalid thumb height" => [ + 0 => "Neteisingas miniatiūros aukštis", + ], + "Invalid theme" => [ + 0 => "Neteisinga tema", + ], + "Invalid value" => [ + 0 => "Neteisingas dydis", + ], + "Invalid theme tone" => [ + 0 => "Neteisingas temos tonas", + ], + "Invalid theme image listing size" => [ + 0 => "Neteisingas temos paveikslėlių sąrašo dydis", + ], + "Invalid user id" => [ + 0 => "Neteisingas vartotojo id", + ], + "Invalid email mode" => [ + 0 => "Neteisingas el.pašto režimas", + ], + "Invalid SMTP port" => [ + 0 => "Neteisingas SMTP portas", + ], + "Invalid SMTP security" => [ + 0 => "Neteisinga SMTP apsauga", + ], + "Invalid website content privacy mode" => [ + 0 => "Neteisingas svetainės turinio privatumo režimas", + ], + "Invalid URL" => [ + 0 => "Neteisingas URL", + ], + "Invalid upload image path" => [ + 0 => "Neteisingas įkeliamo paveikslėlio kelias", + ], + "Max. allowed %s" => [ + 0 => "Maks. galima %s", + ], + "Invalid SMTP server" => [ + 0 => "Neteisingas SMTP serveris", + ], + "Invalid SMTP username" => [ + 0 => "Neteisingas SMTP vartotojo vardas", + ], + "About" => [ + 0 => "Apie", + ], + "Image ID" => [ + 0 => "Paveikslėlio ID", + ], + "Uploader IP" => [ + 0 => "Įkėlėjo ID", + ], + "Upload date" => [ + 0 => "Įkėlimo data", + ], + "Direct links" => [ + 0 => "Tiesioginės nuorodos", + ], + "Image link" => [ + 0 => "Paveikslėlio nuoroda", + ], + "Image URL" => [ + 0 => "Paveikslėlio URL", + ], + "Thumbnail URL" => [ + 0 => "Miniatiūros URL", + ], + "Medium URL" => [ + 0 => "Vidutinio dydžio URL", + ], + "Login needed" => [ + 0 => "Reikia prisijungti", + ], + "IP address already banned" => [ + 0 => "IP adresas jau yra užblokuotas", + ], + "Missing values" => [ + 0 => "Dingę dydžiai", + ], + "Invalid role" => [ + 0 => "Neteisinga rolė", + ], + "Username already being used" => [ + 0 => "Toks vartotojo vardas jau naudojamas", + ], + "%s has been disconnected." => [ + 0 => "%s atsijungęs.", + ], + "Wrong Username/Email password combination" => [ + 0 => "Netesinga vartotojo vardo/el.pašto kombinacija", + ], + "Sign in" => [ + 0 => "Prisijungti", + ], + "Account" => [ + 0 => "Paskyra", + ], + "Profile" => [ + 0 => "Profilis", + ], + "Linked accounts" => [ + 0 => "Susiję profiliai", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Laiškas buvo išsiųstas į %s el. paštą su elektroninio pašto aktyvavimo instrukcijomis", + ], + "Invalid name" => [ + 0 => "Neteisingas vardas", + ], + "Invalid website" => [ + 0 => "Neteisinga svetainė", + ], + "Wrong password" => [ + 0 => "Neteisingas slaptažodis", + ], + "Use a new password" => [ + 0 => "Naudokite naują slaptažodį", + ], + "Changes have been saved." => [ + 0 => "Pakeitimai išsaugoti.", + ], + "Password has been changed" => [ + 0 => "Slaptažodis pakeistas", + ], + "Password has been created." => [ + 0 => "Slaptažodis sukurtas.", + ], + "Wrong Username/Email values" => [ + 0 => "Neteisingi vartotojo vardo/el.pašto dydžiai", + ], + "Settings for %s" => [ + 0 => "%s nustatymai", + ], + "Create account" => [ + 0 => "Sukurti paskyrą", + ], + "Upload" => [ + 0 => "Įkelti", + ], + "%s's Images" => [ + 0 => "%s paveikslėliai", + ], + "Advanced search" => [ + 0 => "Išplėstinė paieška", + ], + "Random" => [ + 0 => "Atsitiktinis", + ], + "Notices (%s)" => [ + 0 => "Pranešimai (%s)", + ], + "My Profile" => [ + 0 => "Mano profilis", + ], + "Sign out" => [ + 0 => "Atsijungti", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Gavome prašymą pakeisti el.paštą jūsų <a href=\"%u\">%n</a> paskyroje %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Proceso užbaigimui turite <a href=\"%s\">aktyvuoti savo el.paštą</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Taip pat galite kopijuoti ir įklijuoti URL adresą į naršyklę: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Jei tai buvote ne jūs - nekreipkite dėmesio į šį pranešimą.", + ], + "This request was made from IP: %s" => [ + 0 => "Prašymas buvo pateiktas iš IP adreso: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Gavome prašymą užregistruoti %n paskyrą %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Proceso užbaigimui turite <a href=\"%s\">turite aktyvuoti savo paskyrą</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Gavome užklausą atnaujinti slaptažodį jūsų <a href=\"%u\">%n</a> paskyrai.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Tam, kad atnaujintumėte slaptažodį <a href=\"%s\">spauskite šią nuorodą</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Labas %n, sveiki atvykę į %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Dabar, kai jūsų paskyra sukurta - mėgaukitės įkeltomis nuotraukomis ir paveikslėliais, kurkite naujus albumus, dalinkitės jais su draugais.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Čia yra jūsų profilio puslapis: <a href=\"%u\">%n</a>. Nustatykite jį pagal savo skonį ir poreikius!.", + ], + "Thank you for joining" => [ + 0 => "Ačiū už registraciją", + ], + "This email was sent from %w %u" => [ + 0 => "Šis laiškas buvo išsiųstas iš %w %u", + ], + "Select the images to upload" => [ + 0 => "Rinkitės paveikslėlius įkėlimui", + ], + "Upload complete" => [ + 0 => "Įkėlimas baigtas", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Dėl tam tikrų klaidų sistema negalėjo apdoroti jūsų užklausos", + ], + "Category" => [ + 0 => "Kategorija", + ], + "Select category" => [ + 0 => "Rinktis kategoriją", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Pažymėkite, jei įkėlimas neskirtas peržiūrėti visai šeimai", + ], + "Not family safe upload" => [ + 0 => "Įkėlimas neskirtas peržiūrėti visai šeimai", + ], + "Uploading" => [ + 0 => "Įkėlimas", + ], + "cancel remaining" => [ + 0 => "atšaukti likusius", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Pastaba: Kai kurie paveikslėliai negalėjo būti įkelti.", + ], + "learn more" => [ + 0 => "sužinoti daugiau", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Peržiūrėkite <a data-modal=\"simple\" data-target=\"failed-upload-result\">klaidų ataskaitas,</a> jei norite sužinoti daugiau.", + ], + "close" => [ + 0 => "uždaryti", + ], + "Title" => [ + 0 => "Pavadinimas", + ], + "optional" => [ + 0 => "nebūtina", + ], + "Mark this if the image is not family safe" => [ + 0 => "Pažymėkite, jei paveikslėlis skirtas peržiūrėti ne visai šeimai", + ], + "Flag as unsafe" => [ + 0 => "Žymėti kaip nesaugų", + ], + "Description" => [ + 0 => "Aprašymas", + ], + "Brief description of this image" => [ + 0 => "Trumpas paveikslėlio aprašymas", + ], + "Add image URLs" => [ + 0 => "Įkelti paveikslėlio URL", + ], + "Add the image URLs here" => [ + 0 => "Čia įkelkite paveikslėlio URL", + ], + "Create album" => [ + 0 => "Sukurti albumą", + ], + "Move to album" => [ + 0 => "Perkelti į albumą", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Rinkitės jau esantį albumą ir patalpinkite jame ką tik įkeltą turinį. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir talpinti ką tik įkeltus elementus jame.", + ], + "Error report" => [ + 0 => "Pranešimas apie klaidą", + ], + "Viewer links" => [ + 0 => "Peržiūros nuorodos", + ], + "HTML Codes" => [ + 0 => "HTML kodai", + ], + "HTML medium linked" => [ + 0 => "HTML vidutinės kokybės nuoroda", + ], + "HTML thumbnail linked" => [ + 0 => "HTML miniatiūros nuoroda", + ], + "BBCodes" => [ + 0 => "BBkodai", + ], + "BBCode medium linked" => [ + 0 => "BBkodo vidutinės kokybės nuoroda", + ], + "BBCode thumbnail linked" => [ + 0 => "BBkodo miniatiūros nuoroda", + ], + "All these words" => [ + 0 => "Visi šie žodžiai", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Įveskite svarbius žodžius: trispalvė žiurkė terjeras", + ], + "This exact word or phrase" => [ + 0 => "Tai tikslus žodis ar frazė", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Įdėkite tikslius žodžius į kabutes: \"žiurkių terjeras\"", + ], + "None of these words" => [ + 0 => "Nė vienas iš šių žodžių", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Įdėkite minusą prieš žodžius, kurių nenorite: -terjeras - \"Džeko Raselo\"", + ], + "Storage" => [ + 0 => "Saugojimas", + ], + "IP address" => [ + 0 => "IP adresas", + ], + "Album name" => [ + 0 => "Albumo pavadinimas", + ], + "move to existing album" => [ + 0 => "perkelti į jau esantį albumą", + ], + "Album description" => [ + 0 => "Albumo aprašymas", + ], + "Brief description of this album" => [ + 0 => "Trumpas albumo aprašymas", + ], + "Who can view this content" => [ + 0 => "Kas gali matyti šį turinį", + ], + "Private (just me)" => [ + 0 => "Privatus (tik man)", + ], + "Private (anyone with the link)" => [ + 0 => "Privatus (kitiems pagal nuorodą)", + ], + "Name" => [ + 0 => "Vardas", + ], + "Category name" => [ + 0 => "Kategorijos pavadinimas", + ], + "URL key" => [ + 0 => "URL raktas", + ], + "Category URL key" => [ + 0 => "Kategorijos URL raktas", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Tik raidės, skaičiai ir brūkšneliai", + ], + "Brief description of this category" => [ + 0 => "Kategorijos trumpas aprašymas", + ], + "Untitled image" => [ + 0 => "Paveikslėlis be pavadinimo", + ], + "Path" => [ + 0 => "Path", + ], + "Expiration date" => [ + 0 => "Galiojimo data", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Pavyzdys", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Kuriam laikui šis IP adresas bus užblokuotas? Palikite tuščią, jei blokuosite visam laikui.", + ], + "Message" => [ + 0 => "Žinutė", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Teksto žinutė, HTML arba nukreipimo URL", + ], + "Existing album" => [ + 0 => "Esantis albumas", + ], + "create new album" => [ + 0 => "Sukurti naują albumą", + ], + "Storage name" => [ + 0 => "Laikmenos pavadinimas", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Regionas", + ], + "Storage bucket" => [ + 0 => "Storage bucket", + ], + "Key" => [ + 0 => "Raktas", + ], + "Storage key" => [ + 0 => "Laikmenos raktas", + ], + "Secret" => [ + 0 => "Secret", + ], + "Storage secret" => [ + 0 => "Storage secret", + ], + "Username" => [ + 0 => "Vartotojo vardas", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname or IP of the storage server", + ], + "Server path" => [ + 0 => "Server path", + ], + "Server password" => [ + 0 => "Serverio slaptažodis", + ], + "Storage capacity" => [ + 0 => "Storage capacity", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Example: 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit.", + ], + "Storage URL" => [ + 0 => "Storage URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "The system will map the images of this storage to this URL.", + ], + "view more" => [ + 0 => "žiūrėti daugiau", + ], + "Load more" => [ + 0 => "Įkelti daugiau", + ], + "Select all" => [ + 0 => "Pasirinkti viską", + ], + "Clear selection" => [ + 0 => "Išvalyti pažymėtus", + ], + "Selection" => [ + 0 => "Pasirinkimas", + ], + "Action" => [ + 0 => "Veiksmai", + ], + "Get embed codes" => [ + 0 => "Gauti dalinimosi kodus", + ], + "Assign category" => [ + 0 => "Priskirti kategoriją", + ], + "Flag as safe" => [ + 0 => "Žymėti kaip saugų", + ], + "Sign in with another account" => [ + 0 => "Prisijungti su kita paskyra", + ], + "There's nothing to show here." => [ + 0 => "Nėra ką rodyti.", + ], + "Edit image details" => [ + 0 => "Redaguoti paveikslėlio detales", + ], + "Edit album details" => [ + 0 => "Albumo redagavimo detalės", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Visi paveikslėliai bus perkelti į naujai sukurtą albumą. Taip pat galite perkelti paveikslėlius ir į jau <a class=\"modal-switch\" data-switch=\"move-existing-album\">esantį albumą</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Rinkitės jau esantį albumą ir perkelkite paveikslėlius. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir perkelti paveikslėlius ten.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Rinkitės jau esantį albumą, jei norite perkelti ten savo pakeislėlius. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir perkelti paveikslėlius ten.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Rinkitės jau esantį albumą, jei norite perkelti ten savo pakeislėlius. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir perkelti paveikslėlius ten.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Visi atrinkti vaizdai bus priskirtas šiai kategorijai.", + ], + "There is no categories." => [ + 0 => "Nėra kategorijų.", + ], + "Confirm flag content as safe" => [ + 0 => "Patvirtinkite turinio žymėjimą kaip saugų", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Ar tikrai norite pažymėti turinį kaip saugų?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Patvirtinkite turinio žymėjimą kaip nesaugų", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Ar tikrai norite pažymėti turinį kaip nesaugų?", + ], + "Confirm deletion" => [ + 0 => "Patvirtinti šalinimą", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Ar tikrai norite pašalinti šį turinį? Veiksmas vėliau negalės būti atšauktas", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Ar tikrai norite pašalinti visą pasirinktą turinį? Veiksmas vėliau negalės būti atšauktas", + ], + "Guest" => [ + 0 => "Svečiai", + ], + "From %s" => [ + 0 => "Nuo %s", + ], + "That page doesn't exist" => [ + 0 => "Puslapis neegzistuoja", + ], + "The requested page was not found." => [ + 0 => "Puslapis nerastas", + ], + "Search something else" => [ + 0 => "Ko nors ieškoti", + ], + "The user has been deleted" => [ + 0 => "Vartotojas buvo pašalintas", + ], + "Your account is almost ready" => [ + 0 => "Jūsų paskyra beveik sukurta", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Laiškas su paskyros aktyvavimo instrukcijomis buvo išsiųstas į %s . Paskyros aktyvavimo nuoroda galios 48 valandas. Jei laiško negaunate - pasitikrinkite savo el.pašto spamo ir šiukšlių direktorijas.", + ], + "Resend activation" => [ + 0 => "Aktyvuoti iš naujo", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Jūs sėkmingai pakeitėte paskyros el.paštą į %s", + ], + "Go to my profile" => [ + 0 => "Eiti į mano profilį", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Patvirtinimo nuoroda bus išsiųsta šiuo el.paštu kartu su instrukcija, kaip aktyvuoti paskyrą.", + ], + "Your email address" => [ + 0 => "Jūsų el.pašto adresas", + ], + "Username or Email address" => [ + 0 => "Vartotojo vardas arba el.pašto adresas", + ], + "Login now" => [ + 0 => "Prisijungti dabar", + ], + "Enter your new password" => [ + 0 => "Jūsų naujas slaptažodis", + ], + "Re-enter your new password" => [ + 0 => "Pakartotinai įrašyti naują slaptažodį", + ], + "Delete album" => [ + 0 => "Pašalinti albumą", + ], + "Album link" => [ + 0 => "Albumo nuoroda", + ], + "Disk used" => [ + 0 => "Užimta vietos", + ], + "Status" => [ + 0 => "Statusas", + ], + "Administrator" => [ + 0 => "Administratorius", + ], + "Email address" => [ + 0 => "El.pašto adresas", + ], + "Website name" => [ + 0 => "Svetainės pavadinimas", + ], + "Website description" => [ + 0 => "Svetainės aprašymas", + ], + "User ID" => [ + 0 => "Vartotojo ID", + ], + "Privacy" => [ + 0 => "Privatumas", + ], + "Contact" => [ + 0 => "Kontaktai", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Ar tikrai norite pašalinti šį paveikslėlį? Veiksmo atšaukti nebus galima", + ], + "Delete image" => [ + 0 => "Pašalinti paveikslėlį", + ], + "Default language" => [ + 0 => "Kalba pagal nutylėjimą", + ], + "Save changes" => [ + 0 => "Išsaugoti pakeitimus", + ], + "Added to %s" => [ + 0 => "Įkelta į %s", + ], + "Uploaded %s" => [ + 0 => "Įkelta %s", + ], + "Share image" => [ + 0 => "Dalintis paveikslėliu", + ], + "In this album" => [ + 0 => "Šiame albume", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Dar neturite paskyros? <a href='%s'>Registruokitės</a> dabar.", + ], + "Logged out" => [ + 0 => "Atsijungta", + ], + "Go to homepage" => [ + 0 => "Į namų puslapį", + ], + "Search results" => [ + 0 => "Paieškos rezultatai", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Ar tikrai norite pašalinti šį vartotoją? Veiksmo atšaukti nebus galima.", + ], + "Delete user" => [ + 0 => "Pašalinti vartotoją", + ], + "Register date" => [ + 0 => "Registracijos data", + ], + "Newsletter" => [ + 0 => "Naujienlaiškis", + ], + "Language" => [ + 0 => "Kalba", + ], + "Timezone" => [ + 0 => "Laiko zona", + ], + "Current password" => [ + 0 => "Dabartinis slaptažodis", + ], + "Enter your current password" => [ + 0 => "Įrašykite dabartinį slaptažodį", + ], + "New password" => [ + 0 => "Naujas slaptažodis", + ], + "Confirm new password" => [ + 0 => "Patvirtinti naują slaptažodį", + ], + "Confirm password" => [ + 0 => "Pakartoti slaptažodį", + ], + "Upload new image" => [ + 0 => "Įkelti naują paveikslėlį", + ], + "http://yourwebsite.com" => [ + 0 => "http://jususvetaine.lt", + ], + "Bio" => [ + 0 => "Biografija", + ], + "View all my images" => [ + 0 => "Žiūrėti visus mano paveikslėlius", + ], + "Upload profile background" => [ + 0 => "Įkelti profilio fono paveikslėlį", + ], + "Change background" => [ + 0 => "Keisti fono paveikslėlį", + ], + "Delete background" => [ + 0 => "Pašalinti fono paveikslėlį", + ], + "Edit profile" => [ + 0 => "Redaguoti profilį", + ], + "Follow" => [ + 0 => "Sekti", + ], + "You have been forbidden to use this website." => [ + 0 => "Jums draudžiama naudotis šia svetaine.", + ], + "Plugin" => [ + 0 => "Įskiepis", + ], + "General questions/comments" => [ + 0 => "Bendrieji klausimai/komentarai", + ], + "DMCA complaint" => [ + 0 => "DMCA skundas", + ], + "Invalid message" => [ + 0 => "Neteisinga žinutė", + ], + "Invalid subject" => [ + 0 => "Neteisinga tema", + ], + "Mail error" => [ + 0 => "Pašto klaida", + ], + "Message sent" => [ + 0 => "Žinutė išsiųsta", + ], + "Your name" => [ + 0 => "Jūsų vardas", + ], + "Subject" => [ + 0 => "Tema", + ], + "information" => [ + 0 => "informacija", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/nb.po.cache.php b/app/.cache/languages/nb.po.cache.php new file mode 100644 index 0000000..fc66eca --- /dev/null +++ b/app/.cache/languages/nb.po.cache.php @@ -0,0 +1,3636 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2019-12-12 15:27+0000', + 'PO-Revision-Date' => '2019-12-12 15:27+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'nb', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Ugyldig e-post", + ], + "Invalid username" => [ + 0 => "Ugyldig brukernavn", + ], + "Invalid password" => [ + 0 => "Ugyldig passord", + ], + "Invalid website mode" => [ + 0 => "Ugyldig modus", + ], + "From email address" => [ + 0 => "Avsenders e-postadresse", + ], + "Sender email for emails sent to users." => [ + 0 => "Avsenders adresse for e-post til brukere.", + ], + "Incoming email address" => [ + 0 => "Innkommende e-postadresse", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Mottaker for kontaktskjema og systemvarsler.", + ], + "Website mode" => [ + 0 => "Modus for nettsted", + ], + "You can switch the website mode anytime." => [ + 0 => "Du kan bytte nettstedsmodus når som helst.", + ], + "Community" => [ + 0 => "Samfunn", + ], + "Personal" => [ + 0 => "Personlig", + ], + "Installed version is v%s" => [ + 0 => "Installert versjon er v%s", + ], + "Can't connect to %s" => [ + 0 => "Kan ikke koble til %s", + ], + "Last available release is v%s" => [ + 0 => "Siste tilgjengelige versjon er v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Oppdatering nødvendig, fortsetter til nedlasting", + ], + "No update needed" => [ + 0 => "Ingen oppdatering er nødvendig", + ], + "System files already up to date" => [ + 0 => "Systemfiler er allerede oppdaterte", + ], + "Starting v%s download" => [ + 0 => "Starter nedlasting av v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Lastet ned v%s, fortsetter til utpakking", + ], + "Attempting to extract v%s" => [ + 0 => "Forsøker å pakke ut v%s", + ], + "Extraction completed" => [ + 0 => "Utpakking fullført", + ], + "Proceding to install the update" => [ + 0 => "Fortsetter installasjon av oppdateringen", + ], + "Update failed" => [ + 0 => "Oppdatering mislyktes", + ], + "Update in progress" => [ + 0 => "Oppdatering pågår", + ], + "Missing %s file" => [ + 0 => "Mangler fil %s", + ], + "Invalid license info" => [ + 0 => "Ugyldig lisensinformasjon", + ], + "Invalid license key" => [ + 0 => "Ugyldig lisensnøkkel", + ], + "Can't save file" => [ + 0 => "Kan ikke lagre filen", + ], + "Can't download %s" => [ + 0 => "Kan ikke laste ned %s", + ], + "Can't extract %s" => [ + 0 => "Kan ikke pakke ut %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Kan ikke opprette %s mappen - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Kan ikke oppdatere %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Sjekk feil i skjemaet for å fortsette.", + ], + "You must enter the album name." => [ + 0 => "Du må skrive inn et albumnavn.", + ], + "Confirm" => [ + 0 => "Bekreft", + ], + "Select existing album" => [ + 0 => "Velg eksisterende album", + ], + "An error occurred. Please try again later." => [ + 0 => "En feil oppsto. Vennligst forsøk senere.", + ], + "Please select a valid image file type." => [ + 0 => "Velg en gyldig bildefil.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Velg et bilde på maksimalt %s størrelse.", + ], + "Profile image updated." => [ + 0 => "Profilbilde oppdatert.", + ], + "Profile background image updated." => [ + 0 => "Profilbakgrunnsbilde oppdatert.", + ], + "Profile background image deleted." => [ + 0 => "Profilbakgrunnsbilde slettet.", + ], + "Error deleting profile background image." => [ + 0 => "Feil ved sletting av profilbakgrunnsbilde.", + ], + "Passwords don't match" => [ + 0 => "Passordene er ikke like", + ], + "Update available v%s" => [ + 0 => "Oppdatering tilgjengelig v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "En oppdatering for systemet er tilgjengelig. Du kan automatisk laste ned og installere denne oppdateringen eller gå til %s for å laste ned filen manuelt.", + ], + "The release notes for this update are:" => [ + 0 => "Utgivelsesnotat for denne oppdateringen er:", + ], + "Update now" => [ + 0 => "Oppdater nå", + ], + "or" => [ + 0 => "eller", + ], + "cancel" => [ + 0 => "avbryt", + ], + "This website is running latest %s version" => [ + 0 => "Nettstedet kjører siste %s versjon.", + ], + "loading" => [ + 0 => "Laster inn", + ], + "Toggle select" => [ + 0 => "Merk valg", + ], + "Like" => [ + 0 => "Like", + ], + "Toggle flag" => [ + 0 => "Merk flagg", + ], + "Edit" => [ + 0 => "Rediger", + ], + "Album" => [ + 0 => "Album", + 1 => "Album", + ], + "Delete" => [ + 0 => "Slett", + ], + "Close" => [ + 0 => "Lukk", + ], + "Previous" => [ + 0 => "Forrige", + ], + "Next" => [ + 0 => "Neste", + ], + "Clipboard image" => [ + 0 => "Utklippstavlebilde", + ], + "File too big." => [ + 0 => "Fil for stor.", + ], + "Invalid or unsupported file format." => [ + 0 => "Ugyldig eller ikke støttet filformat.", + ], + "Some files couldn't be added" => [ + 0 => "Noen filer kunne ikke legges til", + ], + "image" => [ + 0 => "bilde", + 1 => "bilder", + ], + "%s's Albums" => [ + 0 => "%ss album", + ], + "Image edited successfully." => [ + 0 => "Bilderedigering fullført.", + ], + "private" => [ + 0 => "privat", + ], + "Album edited successfully." => [ + 0 => "Album oppdatert uten problemer.", + ], + "Invalid URL key." => [ + 0 => "Ugyldig URL-nøkkel.", + ], + "Category URL key already being used." => [ + 0 => "Kategori-URL-nøkkel er allerede i bruk.", + ], + "Category successfully deleted." => [ + 0 => "Kategorien er slettet.", + ], + "Category %s added." => [ + 0 => "Kategori %s lagt til.", + ], + "Invalid expiration date." => [ + 0 => "Ugyldig utløpsdato.", + ], + "IP %s already banned." => [ + 0 => "IP %s er allerede blokkert.", + ], + "IP %s banned." => [ + 0 => "IP %s blokkert.", + ], + "IP ban successfully deleted." => [ + 0 => "IP-blokkering slettet.", + ], + "Please fill all the required fields." => [ + 0 => "Vennligst fyll ut alle de påkrevde feltene.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Ugyldig verdi for lagringskapasitet. Sørg for å bruke et gyldig format.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Lagringskapasiteten kan ikke være lavere enn dagens bruk (%s).", + ], + "Invalid URL." => [ + 0 => "Ugyldig URL.", + ], + "Storage successfully edited." => [ + 0 => "Lagring er vellykket redigert.", + ], + "User added successfully." => [ + 0 => "Bruker vellykket lagt til.", + ], + "The content has been deleted." => [ + 0 => "Innholdet er slettet.", + ], + "The content has been moved." => [ + 0 => "Innholdet har blitt flyttet.", + ], + "Select" => [ + 0 => "Velg", + ], + "Unselect" => [ + 0 => "Fjern merking", + ], + "The content has been edited." => [ + 0 => "Innholdet har blitt redigert.", + ], + "Untitled" => [ + 0 => "Uten navn", + ], + "%s's images" => [ + 0 => "%ss bilder", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Merk: Dette innholdet er privat, men alle som har linken vil være i stand til å se dette.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Merk: Dette innholdet er passordbeskyttet. Husk å levere passord for å dele.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "PS: Dette innlegget er privat. Endre personvern til \"offentlig\" for å dele.", + ], + "Private" => [ + 0 => "Privat", + ], + "Public" => [ + 0 => "Offentlig", + ], + "Me" => [ + 0 => "Meg", + ], + "Link" => [ + 0 => "Lenke", + ], + "Password" => [ + 0 => "Passord", + ], + "view" => [ + 0 => "visning", + 1 => "visninger", + ], + "After %n %t" => [ + 0 => "Etter %n %t", + ], + "minute" => [ + 0 => "minutt", + 1 => "minutter", + ], + "hour" => [ + 0 => "time", + 1 => "timer", + ], + "day" => [ + 0 => "dag", + 1 => "dager", + ], + "week" => [ + 0 => "uke", + 1 => "uker", + ], + "month" => [ + 0 => "måned", + 1 => "måneder", + ], + "year" => [ + 0 => "år", + 1 => "år", + ], + "Don't autodelete" => [ + 0 => "Ikke slett automatisk", + ], + "Duplicated upload" => [ + 0 => "Duplikat lastet opp", + ], + "Private upload" => [ + 0 => "Privat opplasting", + ], + "like" => [ + 0 => "Liker", + 1 => "Liker", + ], + "Recent" => [ + 0 => "Nylig", + ], + "Trending" => [ + 0 => "Trender", + ], + "Top users" => [ + 0 => "Toppbrukere", + ], + "Most recent" => [ + 0 => "Nylige", + ], + "Oldest" => [ + 0 => "Eldste", + ], + "Most viewed" => [ + 0 => "Mest vist", + ], + "Popular" => [ + 0 => "Populært", + ], + "Most liked" => [ + 0 => "Mest likt", + ], + "Explore" => [ + 0 => "Utforsk", + ], + "Animated" => [ + 0 => "Animert", + ], + "Search" => [ + 0 => "Søk", + ], + "People" => [ + 0 => "Folk", + ], + "Image" => [ + 0 => "Bilde", + 1 => "Bilder", + ], + "User" => [ + 0 => "Bruker", + 1 => "Brukere", + ], + "Can't create %s destination dir" => [ + 0 => "Kan ikke opprette %s mappe målet", + ], + "Can't open %s for writing" => [ + 0 => "Kan ikke åpne %s for skriving", + ], + "Internal" => [ + 0 => "Lokalt", + ], + "Can't insert storage." => [ + 0 => "Kan ikke sette lagring.", + ], + "Can't update storage details." => [ + 0 => "Kan ikke oppdatere lagringsdetaljer.", + ], + "requires %s" => [ + 0 => "krever %s", + ], + "Unlimited" => [ + 0 => "Ubegrenset", + ], + "used" => [ + 0 => "brukt", + ], + "Private profile" => [ + 0 => "Privat profil", + ], + "second" => [ + 0 => "sekund", + 1 => "sekunder", + ], + "%s ago" => [ + 0 => "%s siden", + ], + "moments ago" => [ + 0 => "for kort tid siden", + ], + "Dashboard" => [ + 0 => "Kontrollpanel", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Det er en oppdatering tilgjengelig for systemet. Gå til %s for å laste ned og installere denne oppdateringen.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Systemdatabasen er utdatert. Du må kjøre <a href=\"%s\">oppdateringsverktøyet</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Nettstedet er i vedlikeholdsmodus. For å endre tilbake, gå til <a href=\"%s\">Dashboard > Innstillinger</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Du bør deaktivere PHP-feilrapportering for produksjonsmiljøer. Gå til <a href='%s'>Systeminnstillinger</a>for å endre dette.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Du har ikke endret standard e-postinnstillinger. Gå til <a href='%s'>E-postinnstillinger</a> for å fikse dette.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Det er en oppdatering tilgjengelig for ditt Chevereto-baserte nettsted.", + ], + "admin dashboard" => [ + 0 => "administratordashboard", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Du kan bruke denne oppdateringen direkte fra %a eller laste den ned fra %s og deretter manuelt installere den.", + ], + "view on %s" => [ + 0 => "sett på %s", + ], + "cookie policy" => [ + 0 => "retningslinjer for informasjonskapsler", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Vi bruker våre egne samt tredjeparts informasjonskapsler for å forbedre din opplevelse av nettstedet og tjenestene våre. Hvis du fortsetter å bruke nettstedet betyr det at du aksepterer våre %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Jeg forstår", + ], + "You have been forbidden to use this website." => [ + 0 => "Du har blitt sperret fra å benytte denne siden.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Føl deg fri til å bla gjennom og oppdage alle mine delte bilder og album.", + ], + "View all my images" => [ + 0 => "Vis alle mine bilder", + ], + "Plugin" => [ + 0 => "Utvidelse", + ], + "Request denied" => [ + 0 => "Forespørsel avslått", + ], + "That page doesn't exist" => [ + 0 => "Denne siden eksisterer ikke", + ], + "Forgot password?" => [ + 0 => "Glemt passord?", + ], + "Reset password" => [ + 0 => "Nullstill passord", + ], + "Resend account activation" => [ + 0 => "Send kontoaktivering på nytt", + ], + "Add your email address" => [ + 0 => "Legg inn din e-postadresse", + ], + "Email changed" => [ + 0 => "E-post endret", + ], + "%s says you are a robot" => [ + 0 => "%s sier du er en robot", + ], + "Invalid Username/Email" => [ + 0 => "Ugyldig brukernavn/e-postadresse", + ], + "User doesn't have an email." => [ + 0 => "Brukeren har ikke registrert e-postadresse.", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Kontoen må aktiveres for å benytte denne funksjonen", + ], + "Account already activated" => [ + 0 => "Konto er allerede aktivert", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Vent inntil 15 minutter på e-posten. Du kan forsøke igjen senere.", + ], + "Reset your password at %s" => [ + 0 => "Nullstill ditt passord på %s", + ], + "Confirmation required at %s" => [ + 0 => "Bekreftelse kreves på %s", + ], + "Welcome to %s" => [ + 0 => "Velkommen til %s", + ], + "Email already being used" => [ + 0 => "E-postadressen er allerede i bruk", + ], + "Password required" => [ + 0 => "Passord kreves", + ], + "Share" => [ + 0 => "Del", + ], + "Embed codes" => [ + 0 => "Integrasjonskoder", + ], + "Full info" => [ + 0 => "Detaljer", + ], + "%a album hosted in %w" => [ + 0 => "%a album lagres hos %w", + ], + "Stats" => [ + 0 => "Statistikk", + ], + "Images" => [ + 0 => "Bilder", + ], + "Albums" => [ + 0 => "Album", + ], + "Users" => [ + 0 => "Brukere", + ], + "Settings" => [ + 0 => "Innstillinger", + ], + "Bulk importer" => [ + 0 => "Masseimportering", + ], + "Chevereto version" => [ + 0 => "Chevereto-versjon", + ], + "install update" => [ + 0 => "installer oppdatering", + ], + "check for updates" => [ + 0 => "se etter oppdateringer", + ], + "Support" => [ + 0 => "Brukerstøtte", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Trenger du hjelp? Gå til %s for å få hjelp raskt.", + ], + "PHP version" => [ + 0 => "PHP-versjon", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL-versjon", + ], + "MySQL server info" => [ + 0 => "MySQL-serverinformasjon", + ], + "GD Library" => [ + 0 => "GD-bibliotek", + ], + "File uploads" => [ + 0 => "Filopplastinger", + ], + "Enabled" => [ + 0 => "Aktivert", + ], + "Disabled" => [ + 0 => "Deaktivert", + ], + "Max. upload file size" => [ + 0 => "Maks opplastingsstørrelse", + ], + "Max. post size" => [ + 0 => "Maks poststørrelse", + ], + "Max. execution time" => [ + 0 => "Maks kjøretid", + ], + "%d second" => [ + 0 => "%d sekund", + 1 => "%d sekunder", + ], + "Memory limit" => [ + 0 => "Minnebegrensning", + ], + "Links" => [ + 0 => "Lenker", + ], + "Documentation" => [ + 0 => "Dokumentasjon", + ], + "Changelog" => [ + 0 => "Endringslogg", + ], + "Bug tracking" => [ + 0 => "Problemsporing", + ], + "Website" => [ + 0 => "Nettside", + ], + "Content" => [ + 0 => "Innhold", + ], + "Pages" => [ + 0 => "Sider", + ], + "Listings" => [ + 0 => "Oppføringer", + ], + "Image upload" => [ + 0 => "Bildeopplastning", + ], + "Categories" => [ + 0 => "Kategorier", + ], + "Consent screen" => [ + 0 => "Samtykkeskjema", + ], + "Flood protection" => [ + 0 => "Spambeskyttelse", + ], + "Theme" => [ + 0 => "Utseende", + ], + "Homepage" => [ + 0 => "Hjemmeside", + ], + "Banners" => [ + 0 => "Bannere", + ], + "System" => [ + 0 => "System", + ], + "Routing" => [ + 0 => "Ruting", + ], + "Languages" => [ + 0 => "Språk", + ], + "External storage" => [ + 0 => "Ekstern lagring", + ], + "Email" => [ + 0 => "E-post", + ], + "Social networks" => [ + 0 => "Sosiale nettverk", + ], + "External services" => [ + 0 => "Eksterne tjenester", + ], + "IP bans" => [ + 0 => "IP-blokkeringer", + ], + "Additional settings" => [ + 0 => "Andre innstillinger", + ], + "Tools" => [ + 0 => "Verktøy", + ], + "Can't delete all homepage cover images" => [ + 0 => "Kan ikke slette alle forsidebilder", + ], + "Homepage cover image deleted" => [ + 0 => "Forsidebilde slettet", + ], + "Local" => [ + 0 => "Lokal", + ], + "External" => [ + 0 => "Ekstern", + ], + "All" => [ + 0 => "Alle", + ], + "search content" => [ + 0 => "Søk i innhold", + ], + "Add page" => [ + 0 => "Legg til side", + ], + "Edit page ID %s" => [ + 0 => "Rediger side %s", + ], + "The page has been added successfully." => [ + 0 => "Siden har blitt lagt til.", + ], + "The page has been deleted." => [ + 0 => "Siden har blitt slettet.", + ], + "homepage" => [ + 0 => "hjemmeside", + ], + "Before main title (%s)" => [ + 0 => "Før hovedtittel (%s)", + ], + "After call to action (%s)" => [ + 0 => "Etter forespørsel om handling (%s)", + ], + "After cover (%s)" => [ + 0 => "Etter cover (%s)", + ], + "After listing (%s)" => [ + 0 => "Etter oppføring (%s)", + ], + "Before pagination" => [ + 0 => "Før sideinndeling", + ], + "After pagination" => [ + 0 => "Etter sideinndeling", + ], + "Content (image and album)" => [ + 0 => "Innhold (bilde og album)", + ], + "Tab about column" => [ + 0 => "Tab om kolonne", + ], + "Before comments" => [ + 0 => "Før kommentarer", + ], + "Image page" => [ + 0 => "Bildeside", + ], + "Inside viewer top (image page)" => [ + 0 => "Innvendig visning topp (bildeside)", + ], + "Expected banner size 728x90" => [ + 0 => "Forventet bannerstørrelse 728x90", + ], + "Inside viewer foot (image page)" => [ + 0 => "Innvendig visning bunn (bildeside)", + ], + "After image viewer (image page)" => [ + 0 => "Etter bildeviser (bildeside)", + ], + "Before header (image page)" => [ + 0 => "Før header (bildeside)", + ], + "After header (image page)" => [ + 0 => "Etter header (bildeside)", + ], + "Footer (image page)" => [ + 0 => "Bunn (bildeside)", + ], + "Album page" => [ + 0 => "Albumside", + ], + "Before header (album page)" => [ + 0 => "Før header (albumside)", + ], + "After header (album page)" => [ + 0 => "Etter header (albumside)", + ], + "User profile page" => [ + 0 => "Brukerprofilside", + ], + "After top (user profile)" => [ + 0 => "Etter toppen (brukerprofil)", + ], + "Before listing (user profile)" => [ + 0 => "Før oppføring (brukerprofil)", + ], + "Explore page" => [ + 0 => "Utforsk siden", + ], + "After top (explore page)" => [ + 0 => "Etter toppen (utforsk siden)", + ], + "NSFW" => [ + 0 => "ITPJ", + ], + "Invalid website name" => [ + 0 => "Ugyldig navn på nettsted", + ], + "Invalid language" => [ + 0 => "Ugyldig språk", + ], + "Invalid timezone" => [ + 0 => "Ugyldig tidssone", + ], + "Invalid value: %s" => [ + 0 => "Ugyldig verdi: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Ugyldig lagringsmetode", + ], + "Invalid upload filenaming" => [ + 0 => "Ugyldig filnavngiving på opplasting", + ], + "Invalid thumb width" => [ + 0 => "Ugyldig bredde på miniatyrbilde", + ], + "Invalid thumb height" => [ + 0 => "Ugyldig høyde på miniatyrbilde", + ], + "Invalid medium size" => [ + 0 => "Ugyldig middels-størrelse", + ], + "Invalid watermark percentage" => [ + 0 => "Ugyldig vannmerkeprosent", + ], + "Invalid watermark opacity" => [ + 0 => "Ugyldig gjennomsiktighet på vannmerke", + ], + "Invalid theme" => [ + 0 => "Ugyldig tema", + ], + "Invalid value" => [ + 0 => "Ugyldig verdi", + ], + "Invalid theme tone" => [ + 0 => "Ugyldig tematone", + ], + "Invalid theme main color" => [ + 0 => "Ugyldig hovedfarge på tema", + ], + "Invalid theme top bar color" => [ + 0 => "Ugyldig farge på temaets toppfarge", + ], + "Invalid theme top bar button color" => [ + 0 => "Ugyldig farge på temaets knappefarge", + ], + "Invalid theme image listing size" => [ + 0 => "Ugyldig størrelse på temaets bildeoppføring", + ], + "Invalid user id" => [ + 0 => "Ugyldig brukerID", + ], + "Invalid email mode" => [ + 0 => "Ugyldig e-post-modus", + ], + "Invalid SMTP port" => [ + 0 => "Ugyldig SMTP-port", + ], + "Invalid SMTP security" => [ + 0 => "Ugyldig SMTP-sikkerhet", + ], + "Invalid personal mode user ID" => [ + 0 => "Ugyldig personlig modus brukerID", + ], + "Invalid or reserved route" => [ + 0 => "Ugyldig eller reservert rute", + ], + "Invalid website privacy mode" => [ + 0 => "Ugyldig personvernmodus for nettstedet", + ], + "Invalid website content privacy mode" => [ + 0 => "Ugyldig personvernmodus for innhold på nettstedet", + ], + "Invalid homepage style" => [ + 0 => "Ugyldig stil for nettstedet", + ], + "Invalid homepage call to action button color" => [ + 0 => "Ugyldig farge på hjemmesidens handlingsknapp", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Ugyldig funksjonalitet på hjemmesidens handlingsknapp", + ], + "Invalid title" => [ + 0 => "Ugyldig tittel", + ], + "Invalid status" => [ + 0 => "Ugyldig status", + ], + "Invalid type" => [ + 0 => "Ugyldig type", + ], + "Invalid visibility" => [ + 0 => "Ugyldig synlighet", + ], + "Invalid internal type" => [ + 0 => "Ugyldig intern type", + ], + "Invalid target attribute" => [ + 0 => "Ugyldig målattributt", + ], + "Invalid rel attribute" => [ + 0 => "Ugyldig rel-attributt", + ], + "Invalid icon" => [ + 0 => "Ugyldig ikon", + ], + "Invalid URL key" => [ + 0 => "Ugyldig URL-nøkkel", + ], + "Invalid file path" => [ + 0 => "Ugyldig filbane", + ], + "Invalid link URL" => [ + 0 => "Ugyldig lenke-URL", + ], + "Invalid user minimum age" => [ + 0 => "Ugyldig minstealder", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Bare alfanumeriske, bindestrek og understrek-tegn er tillatte", + ], + "Invalid URL" => [ + 0 => "Ugyldig URL", + ], + "Routes can't be the same" => [ + 0 => "Rutene kan ikke være like", + ], + "Invalid upload image path" => [ + 0 => "Ugyldig opplastningssti", + ], + "Invalid call to action URL" => [ + 0 => "Ugyldig oppfordring til handling-URL", + ], + "Max. allowed %s" => [ + 0 => "Maks tillatt %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Kan ikke tilordne %m til en eksisterende mappe (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Kan ikke tilordne %m til en eksisterende rute (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Kan ikke tilordne %m til %r (brukernavnkollisjon)", + ], + "Invalid SMTP server" => [ + 0 => "Ugyldig SMTP-server", + ], + "Invalid SMTP username" => [ + 0 => "Ugyldig SMTP-brukernavn", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Denne URL-nøkkelen brukes allerede av en annen side (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Denne filbanen er allerede i bruk av en annen side (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Kan ikke lagre sideinnholdet: %s.", + ], + "Following" => [ + 0 => "Følger", + ], + "About" => [ + 0 => "Om oss", + ], + "Image ID" => [ + 0 => "Bilde-ID", + ], + "Uploader IP" => [ + 0 => "Opplastnings-IP", + ], + "Ban IP" => [ + 0 => "Blokker IP", + ], + "IP already banned" => [ + 0 => "IP allerede blokkert", + ], + "Upload date" => [ + 0 => "Opplastningsdato", + ], + "Image %i in %a album" => [ + 0 => "Bilde %i i %a album", + ], + "Image %i in %c category" => [ + 0 => "Bilde %i i kategorien %c", + ], + "Image %i hosted in %w" => [ + 0 => "Bilde %i lagret i %w", + ], + "Direct links" => [ + 0 => "Direktelenker", + ], + "Image link" => [ + 0 => "Bildelenke", + ], + "Image URL" => [ + 0 => "Bildeadresse", + ], + "Thumbnail URL" => [ + 0 => "Miniatyrbilde", + ], + "Medium URL" => [ + 0 => "Medium URL", + ], + "Full image" => [ + 0 => "Bildet i fullstørrelse", + ], + "Full image (linked)" => [ + 0 => "Bilde i fullstørelse (lenke)", + ], + "Medium image (linked)" => [ + 0 => "Medium størrelse (1024px bredde) (lenke)", + ], + "Thumbnail image (linked)" => [ + 0 => "Miniatyrbilde (lenke)", + ], + "Login needed" => [ + 0 => "Login kreves", + ], + "IP address already banned" => [ + 0 => "IP-adressen er allerede blokkert", + ], + "Missing values" => [ + 0 => "Mangler verdier", + ], + "Invalid role" => [ + 0 => "Ugyldig rolle", + ], + "Username already being used" => [ + 0 => "Brukernavnet er allerede i bruk", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Legg inn et passord eller en annen sosial tilkobling før du sletter %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Legg til en e-post eller annen sosial tilkobling før %s slettes.", + ], + "%s has been disconnected." => [ + 0 => "%s har blitt koblet fra.", + ], + "Test email from %s @ %t" => [ + 0 => "Test e-post fra %s @ %t", + ], + "This is just a test" => [ + 0 => "Dette er bare en test", + ], + "Test email sent to %s." => [ + 0 => "Test e-post sendt til %s.", + ], + "Downloading %s data" => [ + 0 => "Laster ned %s data", + ], + "User %s followed" => [ + 0 => "Følger bruker %s.", + ], + "User %s unfollowed" => [ + 0 => "Følger ikke bruker %s lenger.", + ], + "Content liked" => [ + 0 => "Innhold likt", + ], + "Content disliked" => [ + 0 => "Innhold mislikt", + ], + "%u liked your %t %c" => [ + 0 => "%u liker ditt %t %c", + ], + "%u is now following you" => [ + 0 => "%u har begynt å følge deg", + ], + "A private user" => [ + 0 => "En privat bruker", + ], + "Wrong Username/Email password combination" => [ + 0 => "Feil kombinasjon av brukernavn/e-postadresse og passord", + ], + "Sign in" => [ + 0 => "Logg inn", + ], + "Upload images" => [ + 0 => "Last opp bilder", + ], + "Upload plugin" => [ + 0 => "Last opp utvidelse", + ], + "Image search results for %s" => [ + 0 => "Bilderesultater for %s", + ], + "Album search results for %s" => [ + 0 => "Albumresultater for %s", + ], + "User search results for %s" => [ + 0 => "Brukerresultater for %s", + ], + "Account" => [ + 0 => "Konto", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Tilkoblede kontoer", + ], + "Invalid image expiration: %s" => [ + 0 => "Ugyldig utløpsdato for bilde: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "En e-post har blitt sent til %s med instruksjoner om hvordan man aktiverer denne e-posten.", + ], + "Invalid name" => [ + 0 => "Ugyldig navn", + ], + "Invalid website" => [ + 0 => "Ugyldig nettadresse", + ], + "Wrong password" => [ + 0 => "Feil passord", + ], + "Use a new password" => [ + 0 => "Bruk et nytt passord", + ], + "Changes have been saved." => [ + 0 => "Endringene ble lagret.", + ], + "Password has been changed" => [ + 0 => "Passordet har blitt endret", + ], + "Password has been created." => [ + 0 => "Passord har blitt opprettet.", + ], + "Wrong Username/Email values" => [ + 0 => "Ugyldige verdier for brukernavn/e-postadresse", + ], + "Settings for %s" => [ + 0 => "Innstillinger for %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Du må akseptere retningslinjene for bruk", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Du må være minst %s år for å benytte denne websiden.", + ], + "Create account" => [ + 0 => "Opprett konto", + ], + "Upload" => [ + 0 => "Last opp bilde", + ], + "%s's Images" => [ + 0 => "%ss bilder", + ], + "Results for" => [ + 0 => "Resultater for", + ], + "Liked by %s" => [ + 0 => "Likt av %s", + ], + "Liked" => [ + 0 => "Mine liker", + ], + "Followers" => [ + 0 => "Følgere", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) album på %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) på %w", + ], + "Discovery" => [ + 0 => "Oppdagelse", + ], + "Advanced search" => [ + 0 => "Avansert søk", + ], + "Random" => [ + 0 => "Tilfeldig", + ], + "Notices (%s)" => [ + 0 => "Notiser (%s)", + ], + "Notifications" => [ + 0 => "Varsler", + ], + "You don't have notifications" => [ + 0 => "Du har ingen varsler", + ], + "My Profile" => [ + 0 => "Min profil", + ], + "Sign out" => [ + 0 => "Logg ut", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Vi har mottatt en forespørsel om å endre e-postadressen for konto <a href=\"%u\">%n</a> på %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "For å fullføre registreringen må du <a href=\"%s\">aktivere din konto</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativt kan du kopiere og lime inn denne linken i din nettleser: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Hvis du ikke har bedt om dette kan du ignorere denne e-posten.", + ], + "This request was made from IP: %s" => [ + 0 => "Denne forespørselen ble sendt fra IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Vi har mottatt en forespørsel for registrering av konto med brukernavn %n på %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "For å fullføre registreringen må du <a href=\"%s\">aktivere din konto</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Vi har mottatt en forespørsel om å endre passord på konto <a href=\"%u\">%n</a>", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "For å nullstille passordet ditt, <a href=\"%s\">trykk på denne lenken</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hei %n. Velkommen til %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Nå som kontoen din er klar kan du kose deg med alle fordelene. Lage album, laste opp bilder, dele med venner og mye mer du vil oppdage.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Forresten, vi har også gitt deg din egen profil: <a href=\"%u\">%n</a>. Tilpass den og gjør som du vil!", + ], + "Thank you for joining" => [ + 0 => "Takk for at du registrerte deg", + ], + "This email was sent from %w %u" => [ + 0 => "Denne e-posten er sendt fra %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Dra bildene du ønsker å laste opp, hit", + ], + "Select the images to upload" => [ + 0 => "Velg bilde(r) som skal lastes opp", + ], + "browse from your computer" => [ + 0 => "finn filer på din datamaskin", + ], + "add image URLs" => [ + 0 => "legg til bilde-URLer", + ], + "You can also %i or %u." => [ + 0 => "Du kan også %i eller %u.", + ], + "browse from your device" => [ + 0 => "se gjennom fra din enhet", + ], + "take a picture" => [ + 0 => "ta et bilde", + ], + "You can also %i, %c or %u." => [ + 0 => "Du kan også %i, %c eller %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Rediger eller endre størrelse på hvilket som helst bilde ved å klikke på forhåndsvisningen", + ], + "Edit any image by touching the image preview" => [ + 0 => "Rediger et bilde ved å ta på miniatyrbildet", + ], + "your computer" => [ + 0 => "din datamaskin", + ], + "You can add more images from %i or %u." => [ + 0 => "Du kan legge til flere bilder fra %i eller %u.", + ], + "your device" => [ + 0 => "din enhet", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Du kan legge til flere bilder fra %i, %c eller %u.", + ], + "Uploading %q %o" => [ + 0 => "Laster opp %q %o", + ], + "complete" => [ + 0 => "fullført", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Køen lastes opp. Dette burde bare ta noen få sekunder å fullføre.", + ], + "Upload complete" => [ + 0 => "Opplasting fullført", + ], + "Uploaded content added to %s." => [ + 0 => "Opplastet innhold lagt til i %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Du kan %c med innholdet du nettopp lastet opp, eller %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Du kan %c med innholdet du nettopp lastet opp.", + ], + "create a new album" => [ + 0 => "opprett nytt album", + ], + "move it to an existing album" => [ + 0 => "flytt til eksisterende album", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Du må %s eller %l for å lagre dette innholdet til kontoen din.", + ], + "create an account" => [ + 0 => "opprett konto", + ], + "sign in" => [ + 0 => "logg inn", + ], + "No %s have been uploaded" => [ + 0 => "Ingen %s ble lastet opp.", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Noe gikk galt og systemet kunne ikke fullføre handlingen.", + ], + "Category" => [ + 0 => "Kategori", + ], + "Select category" => [ + 0 => "Velg kategori", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Trykk her dersom bildet er uegnet for personer under 18 år", + ], + "Not family safe upload" => [ + 0 => "Ikke egnet for barn", + ], + "Uploading" => [ + 0 => "Laster opp", + ], + "cancel remaining" => [ + 0 => "avbryt gjenstående", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Advarsel: Noen av bildene kunne ikke lastes opp.", + ], + "learn more" => [ + 0 => "Lær mer", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Sjekk <a data-modal=\"simple\" data-target=\"failed-upload-result\">feilmeldingen</a> for mer informasjon.", + ], + "Register to get %s" => [ + 0 => "Registrer deg for å få %s", + ], + "reset" => [ + 0 => "nullstill", + ], + "close" => [ + 0 => "lukk", + ], + "copy" => [ + 0 => "kopier", + ], + "insert" => [ + 0 => "sett inn", + ], + "Remove" => [ + 0 => "Fjern", + ], + "Edit image" => [ + 0 => "Rediger bilde", + ], + "Title" => [ + 0 => "Tittel", + ], + "optional" => [ + 0 => "valgfritt", + ], + "Resize image" => [ + 0 => "Endre størrelse på bilde", + ], + "Width" => [ + 0 => "Bredde", + ], + "Height" => [ + 0 => "Høyde", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "NB: Animerte GIF-bilder vil ikke få endret størrelse.", + ], + "Auto delete image" => [ + 0 => "Slett bilde automatisk", + ], + "Sign up" => [ + 0 => "Registrer deg", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s for å kunne tilpasse eller deaktivere automatisk sletting av bilder.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Trykk her dersom bildet er uegnet for barn", + ], + "Flag as unsafe" => [ + 0 => "Marker som uegnet", + ], + "Description" => [ + 0 => "Beskrivelse", + ], + "Brief description of this image" => [ + 0 => "Kort beskrivelse av bildet", + ], + "Add image URLs" => [ + 0 => "Legg inn bildeadresse", + ], + "Add the image URLs here" => [ + 0 => "Lim inn bildeadressen her", + ], + "Create album" => [ + 0 => "Opprett album", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Det opplastede innholdet vil bli flyttet til det nylig opprettede albumet.", + ], + "existing album" => [ + 0 => "eksisterende album", + ], + "You can also move the content to an %a." => [ + 0 => "Du kan også flytte innholdet til en %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Du må %s eller %l hvis du ønsker å endre dette albumet senere.", + ], + "Move to album" => [ + 0 => "Flytt til album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Velg et eksiterende album for å flytte bildene du har lastet opp. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte bildene dit.", + ], + "Error report" => [ + 0 => "Feilmelding", + ], + "album" => [ + 0 => "album", + 1 => "album", + ], + "Viewer links" => [ + 0 => "Visningslenker", + ], + "HTML Codes" => [ + 0 => "HTML-koder", + ], + "HTML image" => [ + 0 => "HTML-bilde", + ], + "HTML full linked" => [ + 0 => "HTML full link", + ], + "HTML medium linked" => [ + 0 => "HTML medium link", + ], + "HTML thumbnail linked" => [ + 0 => "HTML minibilde-link", + ], + "BBCodes" => [ + 0 => "BBkoder:", + ], + "BBCode full" => [ + 0 => "BBkode (full):", + ], + "BBCode full linked" => [ + 0 => "BBkode (fullstørrelse med lenke)", + ], + "BBCode medium linked" => [ + 0 => "BBkode (mediumstørrelse med lenke)", + ], + "BBCode thumbnail linked" => [ + 0 => "BBkode (miniatyrbilde med lenke)", + ], + "Markdown full" => [ + 0 => "Full markdown", + ], + "Markdown full linked" => [ + 0 => "Markdown full linket", + ], + "Markdown medium linked" => [ + 0 => "Markdown medium linket", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown thumbnail linket", + ], + "All these words" => [ + 0 => "Alle disse ordene", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Skriv inn søkeord", + ], + "This exact word or phrase" => [ + 0 => "Eksakt ord eller frase", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Skriv inn eksakte ord i anførselstegn: \"20kg lange\"", + ], + "None of these words" => [ + 0 => "Ingen av disse ordene", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Sett et minustegn foran ord du ikke vil ha : -lange -\"20kg\"", + ], + "Storage" => [ + 0 => "Lagring", + ], + "IP address" => [ + 0 => "IP-adresse", + ], + "Album name" => [ + 0 => "Albumnavn", + ], + "move to existing album" => [ + 0 => "flytt til eksisterende album", + ], + "Album description" => [ + 0 => "Albumbeskrivelse", + ], + "Brief description of this album" => [ + 0 => "Kort beskrivelse av albumet", + ], + "Album privacy" => [ + 0 => "Privat album?", + ], + "Who can view this content" => [ + 0 => "Hvem kan se dette innholdet", + ], + "Private (just me)" => [ + 0 => "Privat (bare meg)", + ], + "Private (anyone with the link)" => [ + 0 => "Privat (alle med link)", + ], + "Private (password protected)" => [ + 0 => "Privat (passordbeskyttet)", + ], + "Album password" => [ + 0 => "Albumpassord", + ], + "Name" => [ + 0 => "Navn", + ], + "Category name" => [ + 0 => "Kategorinavn", + ], + "URL key" => [ + 0 => "URL-nøkkel", + ], + "Category URL key" => [ + 0 => "Kategori URL-nøkkel", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Bare bokstaver, tall og bindestrek", + ], + "Brief description of this category" => [ + 0 => "Kort beskrivelse av denne kategorien", + ], + "Untitled image" => [ + 0 => "Bilde uten navn", + ], + "Path" => [ + 0 => "Sti", + ], + "Local path (absolute)" => [ + 0 => "Lokal sti (absolutt)", + ], + "Directory structure" => [ + 0 => "Mappestruktur", + ], + "Parse top level folders as users (username)" => [ + 0 => "Tolk toppnivåmapper som brukere (brukernavn)", + ], + "Parse top level folders as albums" => [ + 0 => "Tolk toppnivåmapper som album", + ], + "Don't parse folders" => [ + 0 => "Ikke tolk mapper", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Når toppnivåmapper tolkes som brukere, vil andrenivåmapper bli tolket som brukeralbum. Tolking av toppnivåmapper som album legger disse til som gjestealbum.", + ], + "Threads" => [ + 0 => "Tråder", + ], + "Select number of threads" => [ + 0 => "Velg antall tråder", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Dette avgjør hvor intensiv og rask importeringsprosessen vil være. Ikke bruk flere enn %s tråder på en delt server.", + ], + "You can use wildcard * characters." => [ + 0 => "Du kan bruke jokertegn (*).", + ], + "Expiration date" => [ + 0 => "Utløpsdato", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "ÅÅÅÅ-MM-DD TT:MM:SS", + ], + "Example" => [ + 0 => "Eksempel", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Frem til hvilken dato skal IP-adressen blokkeres? La stå blank om du ikke ønsker utløpsdato.", + ], + "Message" => [ + 0 => "Melding", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Tekstmelding, HTML eller en nettadresse for viderekobling", + ], + "Existing album" => [ + 0 => "Eksisterende album", + ], + "create new album" => [ + 0 => "opprett nytt album", + ], + "Storage name" => [ + 0 => "Lagringsnavn", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Region", + ], + "Storage region" => [ + 0 => "lagringsregion", + ], + "Storage bucket" => [ + 0 => "Lagringsplass", + ], + "Key" => [ + 0 => "Nøkkel", + ], + "Storage key" => [ + 0 => "Lagringsnøkkel", + ], + "Secret" => [ + 0 => "Hemmelig", + ], + "Storage secret" => [ + 0 => "Lagringshemmelighet", + ], + "Private key" => [ + 0 => "Privatnøkkel", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON-nøkkel", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Du trenger en <a %s>tjenestekonto</a> for dette.", + ], + "Service name" => [ + 0 => "tjenestenavn", + ], + "Identity URL" => [ + 0 => "Identitets-URL", + ], + "Identity API endpoint" => [ + 0 => "Identitet API-endepunkt", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API-endepunkt for Openstack-identitet", + ], + "Username" => [ + 0 => "Brukernavn", + ], + "Container" => [ + 0 => "Beholder", + ], + "Storage container" => [ + 0 => "Lagerbeholder", + ], + "Tenant id" => [ + 0 => "Leietaker-ID", + ], + "Tenant id (account id)" => [ + 0 => "Leietaker-ID (konto-ID)", + ], + "Tenant name" => [ + 0 => "Leietakers navn", + ], + "Tenant name (account name)" => [ + 0 => "Leietakers navn (brukernavn)", + ], + "Storage endpoint" => [ + 0 => "Endepunkt for lagring", + ], + "Server address" => [ + 0 => "Serveradresse", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostnavn eller IP-adresse til lagringsserveren", + ], + "Server path" => [ + 0 => "Serversti", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Absolutt sti hvor filene vil lagres i kontekst av %p-innloggingen. Bruk %s for rotsti.", + ], + "Server login" => [ + 0 => "Serverinnlogging", + ], + "Server password" => [ + 0 => "Serverpassord", + ], + "Local path" => [ + 0 => "Lokal sti", + ], + "Local path where the files will be stored" => [ + 0 => "Lokal sti hvor filene vil bli lagret", + ], + "Storage capacity" => [ + 0 => "Lagringskapasitet", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Eksempel: 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Denne lagringsplassen vil bli deaktivert når brukt plass når denne grensen. La stå tom eller skriv inn null for ubegrenset.", + ], + "Storage URL" => [ + 0 => "lagrings-URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Systemet vil koble bildene mot lagringen på denne adressen.", + ], + "view more" => [ + 0 => "Se mer", + ], + "Load more" => [ + 0 => "Last inn mer", + ], + "Select all" => [ + 0 => "Velg alle", + ], + "Clear selection" => [ + 0 => "Velg ingen", + ], + "Selection" => [ + 0 => "Utvalg", + ], + "Action" => [ + 0 => "Handling", + ], + "Get embed codes" => [ + 0 => "Hent integrasjonskoder", + ], + "Assign category" => [ + 0 => "Tildel kategori", + ], + "Flag as safe" => [ + 0 => "Merk som trygt", + ], + "Create new album" => [ + 0 => "Opprett nytt album", + ], + "Sign in with another account" => [ + 0 => "Logg inn med en annen konto", + ], + "Home" => [ + 0 => "Hjem", + ], + "There's nothing to show here." => [ + 0 => "Ingenting å vise her.", + ], + "Edit image details" => [ + 0 => "Rediger bildedetaljer", + ], + "Edit album details" => [ + 0 => "Endre albumdetaljer", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Alle bildene vil bli flyttet til det nyopprettede albumet. Du kan også flytte bildene til et <a class=\"modal-switch\" data-switch=\"move-existing-album\">eksisterende album</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Velg et eksisterende album å flytte bildet til. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte bildet dit.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Velg et eksisterende album å flytte albuminnhold til. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte album innholdet der.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Velg et eksisterende album å flytte bildene til. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte bildene dit.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "De valgte bildene vil bli tilordnet denne kategorien.", + ], + "There is no categories." => [ + 0 => "Det finnes ingen kategorier.", + ], + "Confirm flag content as safe" => [ + 0 => "Flagget bekrefter innhold som trygt", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Er du sikker på du vil flagge dette innholdet som trygt?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Flagg dette innholdet som utrygt?", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Er du sikker på at du ønsker å flagge dette innholdet som utrygt?", + ], + "Confirm deletion" => [ + 0 => "Bekreft sletting", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette? Dette kan ikke angres.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette alt det merkede innholdet? Dette kan ikke angres.", + ], + "Fullscreen" => [ + 0 => "Fullskjerm", + ], + "Exit fullscreen" => [ + 0 => "Avslutt fullskjerm", + ], + "Guest" => [ + 0 => "Gjest", + ], + "Keyboard shortcuts" => [ + 0 => "Tastatursnarveier", + ], + "Uploaded by guest" => [ + 0 => "Lastet opp av gjest", + ], + "From %s" => [ + 0 => "Fra %s", + ], + "Uploaded by private" => [ + 0 => "Lastet opp av privat", + ], + "by %u" => [ + 0 => "av %u", + ], + "Toggle unsafe flag" => [ + 0 => "Merk som utrygt innhold", + ], + "The requested page was not found." => [ + 0 => "Den etterspurte siden ble ikke funnet.", + ], + "Search something else" => [ + 0 => "Søk etter noe annet", + ], + "The user has been deleted" => [ + 0 => "Denne brukeren har blitt slettet", + ], + "Your account is almost ready" => [ + 0 => "Kontoen din er nesten klar", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "En e-post har har blitt sendt til %s med instruksjoner for aktivering av konto. Aktiveringslinken er gyldig i 48 timer. Hvis du ikke har mottatt e-posten, sjekk spamfilteret ditt.", + ], + "Resend activation" => [ + 0 => "Send e-post med aktiveringslink på nytt", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Du har endret kontoe-post til %s", + ], + "Go to my profile" => [ + 0 => "Gå til min profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "En bekreftelseslenke vil bli sendt til denne e-posten med detaljer for å aktivere kontoen din.", + ], + "Your email address" => [ + 0 => "Din e-postadresse", + ], + "Submit" => [ + 0 => "Utfør", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "En e-post med instruksjoner for å nullstille passordet ditt har blitt sendt til e-postadressen du har registrert. Hvis du ikke mottar instruksjonene, sjekk spamfilteret ditt.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Det har allerede blitt sendt en e-post for å nullstille ditt passord. Hvis du ikke har mottatt e-posten, sjekk spamfilteret ditt.", + ], + "Resend instructions" => [ + 0 => "Send på nytt", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Angi brukernavn eller epostadresse for å fortsette. Du kan måtte sjekke søppelpostmappen din eller legge til %s på en klareringsliste (whitelist)", + ], + "Username or Email address" => [ + 0 => "Brukernavn eller e-postadresse", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Passordet ditt er endret. Du kan nå logge inn med det nye passordet.", + ], + "Login now" => [ + 0 => "Logg inn nå", + ], + "Enter your new password" => [ + 0 => "Skriv inn ditt nye passord", + ], + "%d characters min" => [ + 0 => "minst %d tegn", + ], + "Password strength" => [ + 0 => "Passordstyrke", + ], + "Re-enter your new password" => [ + 0 => "Skriv inn ditt nye passord igjen", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "En e-post til %s er sendt med instruksjoner for å aktivere kontoen din. Hvis du ikke mottar instruksjonene prøve å sjekke søppelpost eller spam-filtre.", + ], + "This content is private" => [ + 0 => "Dette innholdet er privat", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette dette albumet og alle bildene? Dette kan ikke angres.", + ], + "Delete album" => [ + 0 => "Slett album", + ], + "You like this" => [ + 0 => "Du liker dette", + ], + "Upload to album" => [ + 0 => "Last opp til album", + ], + "Album link" => [ + 0 => "Album-lenke", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Vennligst les og aksepter følgende betingelser før du fortsetter:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Dette nettstedet kan inneholde informasjon, linker og bilder av eksplisitt seksuell natur. Hvis du er under %s år, blir støtt av slikt materiale eller om lokal lovgivning forbyr visning av slikt materiale, bør du ikke fortsette registreringen.\n\nJeg bekrefter at jeg er minst %s år, og at det som voksen er min umistelige rett til å motta/vise materiale av eksplisitt seksuell natur. Jeg bekrefter med dette at jeg ønsker å motta/vise materiale av eksplisitt seksuell natur.\n\nJeg synes ikke at seksuelle omgang mellom samtykkende voksne er verken støtende eller obskønt. Visning, lesing og nedlasting av materiale av eksplisitt seksuell natur bryter ikke normer eller regler for mitt lokalsamfunn, by, fylke eller land.\n\nDet materialet av eksplisitt seksuell natur jeg ser på er for mitt eget personlig bruk, og jeg vil ikke tillate mindreårige å se dette materialet.\n\nJeg er selv ansvarlig for eventuelle uriktige opplysninger eller juridiske konsekvenser av visning, lese eller laste ned materiale av eksplisitt seksuell natur fra dette nettstedet .\n\nDette samtykket på skjerm utgjør en juridisk bindende avtale mellom denne nettsiden og deg, og/eller enhver virksomhet som du har noen juridisk eller likeverdig interessei. Hvis noen del av denne avtalen anses ugjennomførlig av en kompetent domstol, skal det ikke påvirke gyldigheten av de andre deler av avtalen.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Ved å klikke på \"Jeg aksepterer\" erklærer du at du har lest og forstått alle vilkårene nevnt ovenfor.", + ], + "I Agree" => [ + 0 => "Jeg aksepterer", + ], + "documentation" => [ + 0 => "dokumentasjon", + ], + "Learn more about %s at our %d." => [ + 0 => "Lær mer om %s på vår %d.", + ], + "Disk used" => [ + 0 => "Diskplass brukt", + ], + "Add import job" => [ + 0 => "Legg til importeringsjobb", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure. You can learn more about the folder structure, adding metadata, and all about this tool in our %d." => [ + 0 => "Dette verktøyet lar deg masseimportere innhold til nettstedet ved å angi en systemsti der innholdet du ønsker å importere, ligger. Det støtter importering av brukere, album og bilder basert på en mappestruktur. Du kan lære mer om mappestrukturen, å legge til metadata og alt annet om dette verktøyet i %d.", + ], + "Process import" => [ + 0 => "Prosessér importering", + ], + "Top level folders as %s" => [ + 0 => "Toppnivåmapper som %s", + ], + "Actions" => [ + 0 => "Handlinger", + ], + "Process" => [ + 0 => "Prosessér", + ], + "Pause" => [ + 0 => "Pause", + ], + "Cancel" => [ + 0 => "Avbryt", + ], + "Process log" => [ + 0 => "Progresjonslogg", + ], + "Errors" => [ + 0 => "Feil", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Vil du virkelig fjerne import-IDen %s?", + ], + "Queued" => [ + 0 => "I kø", + ], + "Working" => [ + 0 => "Jobber", + ], + "Paused" => [ + 0 => "Pauset", + ], + "Canceled" => [ + 0 => "Avbrutt", + ], + "Completed" => [ + 0 => "Fullført", + ], + "Parser" => [ + 0 => "Tolker", + ], + "Status" => [ + 0 => "Status", + ], + "Add user" => [ + 0 => "Legg til bruker", + ], + "Role" => [ + 0 => "Rolle", + ], + "Manager" => [ + 0 => "Håndterer", + ], + "Administrator" => [ + 0 => "Administrator", + ], + "Email address" => [ + 0 => "E-postadresse", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Denne innstillingen er deaktivert når personlig webside modus benyttes.", + ], + "Add category" => [ + 0 => "Legg til kategori", + ], + "Add IP ban" => [ + 0 => "Legg til en IP-blokkering", + ], + "Add storage" => [ + 0 => "Legg til lagringsplass", + ], + "Return to pages" => [ + 0 => "Returner til sider", + ], + "Website name" => [ + 0 => "Navn på nettsted", + ], + "Website doctitle" => [ + 0 => "Tittel på nettsted", + ], + "Website description" => [ + 0 => "Beskrivelse av nettsted", + ], + "Automatic" => [ + 0 => "Automatisk", + ], + "Forced" => [ + 0 => "Tvunget", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a vil bruke HTTPS-deteksjon på serversiden (anbefalt). %f vil bruke HTTPS uavhengig av serveroppsettet ditt. %d for å ikke bruke HTTPS i det hele tatt.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Dette kontrollerer kun protokollen brukt i URLer, det vil ikke forvandle nettstedet ditt til et gyldig HTTPS-nettsted med mindre serveren er satt opp til å støtte og bruke HTTPS.", + ], + "Default time zone" => [ + 0 => "Standard tidssone", + ], + "Select region" => [ + 0 => "Velg region", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Tillat søk etter bilder, album og brukere basert på en egendefinert søkestreng.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Aktiverer visning av offentlige bilder. Det aktiverer også kategorier.", + ], + "guests" => [ + 0 => "gjester", + ], + "Enables explore for guests." => [ + 0 => "Aktiverer utforsking for gjester.", + ], + "Enables to browse images randomly." => [ + 0 => "Aktiverer mulighet for å bla tilfeldig i bilder", + ], + "Likes" => [ + 0 => "Liker", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Tillat brukere å like innhold", + ], + "Followers allows users to follow each other." => [ + 0 => "Følgere tillater brukere å følge hverandre", + ], + "Personal mode target user" => [ + 0 => "Personlig modus målbruker", + ], + "User ID" => [ + 0 => "Bruker-ID", + ], + "Your user id is: %s" => [ + 0 => "Din bruker-ID er: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Numerisk ID for målbrukeren for personlig modus.", + ], + "Personal mode routing" => [ + 0 => "Ruting for personlig modus", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Tilpasset rute for å tilordne /brukernavn til /noe. Bruk \"/\" å tilordne til hjemmesiden.", + ], + "Website privacy mode" => [ + 0 => "Nettstedsmodus for personvern", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Privatmodus vil gjøre siden tilgjengelig kun for registrerte brukere.", + ], + "Content privacy mode" => [ + 0 => "Innhold privatmodus", + ], + "Default" => [ + 0 => "Standard", + ], + "Force private (self)" => [ + 0 => "Tving privat (egen)", + ], + "Force private (anyone with the link)" => [ + 0 => "Tvinge privat (alle med link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Tvunget personvernmodus vil overstyre brukers valg av personvern.", + ], + "Page title" => [ + 0 => "Sidetittel", + ], + "Page status" => [ + 0 => "Sidestatus", + ], + "Active page" => [ + 0 => "Aktiv side", + ], + "Inactive page (%s)" => [ + 0 => "Inaktiv side (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "bare aktive sider vil være tilgjengelige.", + ], + "Type" => [ + 0 => "Type", + ], + "Terms of service" => [ + 0 => "Betingelser for bruk", + ], + "Privacy" => [ + 0 => "Personvern", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "Extra page" => [ + 0 => "Ekstra side", + ], + "Internal page type" => [ + 0 => "Intern sidetype", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Du kan ha flere ekstra sider, men kun én av de andre spesielle interne typene.", + ], + "Page visibility" => [ + 0 => "Sidesynlighet", + ], + "Visible page" => [ + 0 => "Synlig side", + ], + "Hidden page" => [ + 0 => "Skjult side", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Skjulte sider blir ikke vist i systemmenyer, men alle kan få tilgang til dem med direkte link.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Bare alfanumeriske tegn, bindestrek og skråstrek", + ], + "File path" => [ + 0 => "Filsti", + ], + "A %f file relative to %s" => [ + 0 => "En %f fil i forhold til %s", + ], + "Meta keywords" => [ + 0 => "Metasøkeord", + ], + "Meta description" => [ + 0 => "Metabeskrivelse", + ], + "Source code" => [ + 0 => "Kildekode", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Ingen skrivetilgang i %s stien, du må legge til denne filen med et eksternt redigeringsprogram.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Ingen skrivetilgang i %s, du må legge til denne filen med et eksternt redigeringsprogram.", + ], + "Taken from: %s" => [ + 0 => "Tatt fra: %s", + ], + "Link URL" => [ + 0 => "Link-URL", + ], + "Link target attribute" => [ + 0 => "Link til målattributtet", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Velg %s for å åpne siden eller lenke i et nytt vindu.", + ], + "Link rel attribute" => [ + 0 => "Link rel-attributt", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Bare alfanumeriske tegn, bindestreker og mellomrom", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s-attributt", + ], + "Link icon" => [ + 0 => "Lenkeikon", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Sjekk <a %s>ikon-oversikten</a> for en komplett liste over støttede ikoner.", + ], + "Sort order display" => [ + 0 => "Sorteringsrekkefølge", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Side-sorteringsrekkefølge for menyer og oppføringer. Bruk \"1\" for høyeste prioritet.", + ], + "pages" => [ + 0 => "sider", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette sideID %s? Dette kan ikke angres.", + ], + "Enabled image formats" => [ + 0 => "Aktiverte bildeformater", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Uavkryssede bildeformater vil ikke bli tillatt lastet opp.", + ], + "Enable uploads" => [ + 0 => "Aktiver opplastninger.", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Aktiver denne dersom du ønsker å tillate opplastning av bilder. Innstillingen berører ikke administratorer.", + ], + "Guest uploads" => [ + 0 => "Gjesteopplastinger", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Aktiver dersom du vil at uregistrerte brukere skal kunne laste opp.", + ], + "Upload user interface" => [ + 0 => "Last opp brukergrensesnitt", + ], + "On-page container" => [ + 0 => "På-side beholder", + ], + "route" => [ + 0 => "rute", + ], + "Enable embed codes (uploader)" => [ + 0 => "Aktiver integrasjonskoder (opplastning)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Aktiver denne hvis du vil vise integrasjonskoder når opplastningen er fullført.", + ], + "Upload threads" => [ + 0 => "Opplastingstråder", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Antall samtidige opplastingstråder (parallelle opplastinger)", + ], + "Redirect on single upload" => [ + 0 => "Omdirigere ved enkel opplasting", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Aktiver dette alternativet hvis du vil viderekoble til bildesiden ved enkel opplasting.", + ], + "Enable duplicate uploads" => [ + 0 => "Aktiver duplikatopplastinger", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Aktiver dette alternativet hvis du vil tillate duplikatopplastinger fra samme IP innen 24 timer. Denne innstillingen påvirker ikke administratorer.", + ], + "Enable expirable uploads" => [ + 0 => "Aktiver utløpsdato på bilder", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Aktiver dersom du vil tillate opplastninger med valg om automatisk sletting.", + ], + "Auto delete guest uploads" => [ + 0 => "Automatisk sletting av gjesteopplastinger", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Aktiver dersom du ønsker å tvinge automatisk sletting av gjesteopplastinger etter en gitt tid.", + ], + "Maximum image size" => [ + 0 => "Maks bildestørrelse", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Bilder som overskrider denne størrelsesbegrensningen vil automatisk bli nedskalert. Angi null (0) for å ikke ha noen begrensninger.", + ], + "Image Exif data" => [ + 0 => "Exif-data på bilder", + ], + "Keep" => [ + 0 => "Beholde", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Velg standardinnstilling for bilde <a %s>Exif-data</a> på opplasting.", + ], + "Image Exif data (user setting)" => [ + 0 => "Exif-data (brukerinnstilling)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Aktiver denne hvis du vil at brukere selv kan velge hvordan Exif-data behandles.", + ], + "Maximum upload file size" => [ + 0 => "Maks filstørrelse for opplasting.", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Den maksimale størrelsen tillatt av serveren er %s. Denne begrensningen er avkortet av %u og %p (%f-verdier).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Samme som \"%s\", men for gjester.", + ], + "Image path" => [ + 0 => "Bildesti", + ], + "Relative to Chevereto root" => [ + 0 => "Relativ til Cheveretos rotmappe", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Hvor skal bildene lagres? Relativ sti til Cheveretos rotmappe.", + ], + "Storage mode" => [ + 0 => "Lagringsmodus", + ], + "Datefolders" => [ + 0 => "Datamapper", + ], + "Direct" => [ + 0 => "Direkte", + ], + "Datefolders creates %s structure" => [ + 0 => "Datamapper opprettes i %s struktur", + ], + "File naming method" => [ + 0 => "Filnavngivingsmetoden", + ], + "Original" => [ + 0 => "Original", + ], + "Mix original + random" => [ + 0 => "Bland original + tilfeldig", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Original\" vil forsøke å beholde kildefilens navn mens \"Tilfeldig\" vil generere et tilfeldig navn. \"ID\" vil gi samme navnet som bilde-ID.", + ], + "Thumb size" => [ + 0 => "Miniatyrbildestørrelse", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Miniatyrbilder vil bli endret til denne størrelsen.", + ], + "Medium image fixed dimension" => [ + 0 => "Mellomstore bilder, faste størrelser", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Mellomstore bilder vil bli låst til denne dimensjonen. For eksempel, hvis du velger \"bredde\", vil den verdien bli låst, mens høyden på bildet blir automatisk beregnet.", + ], + "Medium image fixed size" => [ + 0 => "Mellomstore bilde med fast størrelse", + ], + "Width or height will be automatically calculated." => [ + 0 => "Bredde eller høyde beregnes automatisk.", + ], + "Watermarks" => [ + 0 => "Vannmerke", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Aktiver denne for å legge til logo eller det du ønsker på opplastninger.", + ], + "Warning: Can't write in %s" => [ + 0 => "Advarsel: Kan ikke skrive i %s", + ], + "Watermark user toggles" => [ + 0 => "Vannmerke brukerveksler", + ], + "Enable watermark on guest uploads" => [ + 0 => "Aktiver vannmerke på gjesteopplastninger", + ], + "Enable watermark on user uploads" => [ + 0 => "Aktiver vannmerke på brukeropplastninger", + ], + "Enable watermark on admin uploads" => [ + 0 => "Aktiver vannmerke på adminopplastninger", + ], + "Watermark file toggles" => [ + 0 => "Vannmerke filveksler", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Aktiver opplastninger på GIF-bildeopplastninger", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Minimum bildestørrelse for å legge til vannmerke", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Bilder mindre enn dette vil ikke bli vannmerket. Bruk null (0) for å ikke angi minimumsgrense for bildestørrelse.", + ], + "Watermark image" => [ + 0 => "Vannmerkebilde", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Du vil få best resultat med vanlige logoer med skygge. Du kan bruke et stort bilde hvis filstørrelsen er ikke så stor (anbefalt maks. er 16KB). Må være et PNG-bilde.", + ], + "Watermark position" => [ + 0 => "Vannmerkeposisjon", + ], + "left top" => [ + 0 => "øverst til venstre", + ], + "left center" => [ + 0 => "senter til venstre", + ], + "left bottom" => [ + 0 => "nederst til venstre", + ], + "center top" => [ + 0 => "øverst i midten", + ], + "center center" => [ + 0 => "midt i bildet", + ], + "center bottom" => [ + 0 => "nederst i midten", + ], + "right top" => [ + 0 => "øverst til høyre", + ], + "right center" => [ + 0 => "senter til høyre", + ], + "right bottom" => [ + 0 => "nederst til høyre", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Plassering av vannmerkebilde. Juster først horisontal plassering, deretter vertikal.", + ], + "Watermark percentage" => [ + 0 => "Vannmerkeprosent", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Vannmerkets prosentvise størrelse i forhold til målets bildeområde. Verdier er 1-100.", + ], + "Watermark margin" => [ + 0 => "Vannmerkemargin", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margin fra kanten av bildet til vannmerkebildet.", + ], + "Watermark opacity" => [ + 0 => "Vannmerkets gjennomsiktighet", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Gjennomsiktigheten av vannmerket i det endelige, vannmerkede bildet. Verdier er 0-100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Kontrollpanel > Innstillinger > Webside", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Kategorier vil ikke fungere når utforskingsfunksjonen er slått av. For å reversere denne innstillingen gå til %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette kategorien %s? Dette kan ikke angres.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "NB: Selv om du sletter en kategori vil ikke bildene tilhørende i denne kategorien bli slettet.", + ], + "Edit category" => [ + 0 => "Rediger kategori", + ], + "Expires" => [ + 0 => "Utløper", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Vil du virkelig fjerne blokkeringen av IP %s? Dette kan ikke gjøres om.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "IP-adresser som er svartelistet vil bli blokkert fra hele nettstedet.", + ], + "Edit IP ban" => [ + 0 => "Rediger IP-blokkering", + ], + "Enable signups" => [ + 0 => "Aktiver registrering", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Aktiver hvis du vil tillate registrering av nye brukere.", + ], + "Enable user content delete" => [ + 0 => "Aktiver sletting av brukerinnhold", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Aktiver hvis du vil la brukere slette sitt eget innhold. Denne innstillingen berører ikke administratorer.", + ], + "Minimum age required" => [ + 0 => "Minimum alder som kreves", + ], + "Empty" => [ + 0 => "Tom", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "La denne være blank dersom det ikke er noen aldersbegrensning for å benytte nettstedet.", + ], + "Notify on user signup" => [ + 0 => "Varsle ved brukerregistrering", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Aktiver dette hvis du ønsker å få en epostvarsling for hver ny brukerregistrering.", + ], + "Username routing" => [ + 0 => "Brukernavn-ruting", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Aktiver hvis du vil benytte URLer i formatet %s/brukernavn istedenfor %s/bruker/brukernavn.", + ], + "Require email confirmation" => [ + 0 => "Krev e-postbekreftelse", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Aktiver for å kreve at brukere må bekrefte e-postadressen sin når de registrerer seg.", + ], + "Require email for social signup" => [ + 0 => "Krever e-post for sosial registrering", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Aktiver hvis brukere som benytter sosial tilkobling må oppgi e-postadresse.", + ], + "User avatar max. filesize" => [ + 0 => "Brukeravatar maks filstørrelse", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Maks tillatt størrelse for brukeravatar. (Maks tillatt av server er %s)", + ], + "User background max. filesize" => [ + 0 => "Personlig bakgrunnsbilde maks størrelse", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Maks tillatt filstørrelse for personlig bakgrunnsbilde. (Maks tillatt av server er %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Vis en samtykke-side før man kommer inn på siden. Benyttes f.eks. for nettsteder med seksuelt innhold.", + ], + "Enable consent screen" => [ + 0 => "Aktiver samtykke-side", + ], + "Consent screen cover image" => [ + 0 => "Bilde for samtykke-side", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Blokker bildeopplastning på IP hvis systemet merker høy trafikk basert på antall opplastninger per tidsperiode. Denne innstillingen berører ikke administratorer.", + ], + "Notify to email" => [ + 0 => "Varsle til e-post", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Hvis aktivert vil systemet sende en e-post når spamming skjer.", + ], + "Minute limit" => [ + 0 => "Minuttbegrensning", + ], + "Hourly limit" => [ + 0 => "Timebegrensning", + ], + "Daily limit" => [ + 0 => "Daglig begrensning", + ], + "Weekly limit" => [ + 0 => "Ukentlig begrensning", + ], + "Monthly limit" => [ + 0 => "Månedlig begrensning", + ], + "Show not safe content in listings" => [ + 0 => "Viser utrygt innhold i lister", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Aktiver dette hvis du ønsker å vise utrygt innhold i lister. Denne innstillingen berører ikke administratorer og kan bli overstyrt av brukerens egne innstillinger.", + ], + "Blur NSFW content in listings" => [ + 0 => "Gjør NSFW-innhold i lister uskarpt", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Aktiver dette alternativet hvis du vil bruke en dimmeeffekt på NSFW-bilder i lister.", + ], + "Show banners in not safe content" => [ + 0 => "Vis bannere i utrygt innhold", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Aktiver dette alternativet hvis du ønsker å vise bannere på utrygge innholdssider.", + ], + "Show not safe content in random mode" => [ + 0 => "Vis utrygt innhold i tilfeldig modus", + ], + "List items per page" => [ + 0 => "Bilder pr. side", + ], + "How many items should be displayed per page listing." => [ + 0 => "Hvor mange bilder som skal vises pr. side.", + ], + "List pagination mode" => [ + 0 => "Sideinndelingsmodus", + ], + "Endless scrolling" => [ + 0 => "Endeløs rulling", + ], + "Classic pagination" => [ + 0 => "Klassisk sideinndeling", + ], + "What pagination method should be used." => [ + 0 => "Hvilken sideinndelingsmodus som skal brukes.", + ], + "Listing viewer" => [ + 0 => "Listeviser", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Aktiver dette for å bruke listeviseren når et bilde klikkes.", + ], + "Image listing size" => [ + 0 => "Bildeoppføringsstørrelse", + ], + "Fluid" => [ + 0 => "Flytende", + ], + "Fixed" => [ + 0 => "Fast", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Begge metodene bruker en fast bredde, men den flytende metoden regner automatisk ut høyden.", + ], + "Album listing images requirement" => [ + 0 => "Albumlistekrav for bilder", + ], + "explore" => [ + 0 => "utforsk", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Angir minimum antall bilder som trengs for å vise et album i utforskingsmodus", + ], + "Listing columns number" => [ + 0 => "Antall kolonner for oppføringer", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Her kan du angi hvor mange kolonner som brukes basert på hver enhet.", + ], + "Phone" => [ + 0 => "Telefon", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Nettbrett", + ], + "Laptop" => [ + 0 => "Bærbar PC", + ], + "Desktop" => [ + 0 => "Stasjonær PC", + ], + "theme editing" => [ + 0 => "temaredigering", + ], + "Put your themes in the %s folder" => [ + 0 => "Last opp temaer i mappen %s", + ], + "Tone" => [ + 0 => "Tone", + ], + "Light" => [ + 0 => "Lys", + ], + "Dark" => [ + 0 => "Mørk", + ], + "Main color" => [ + 0 => "Hovedfarge", + ], + "Hexadecimal color value" => [ + 0 => "Heksadesimal fargeverdi", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Bruk denne til å angi hovedtemaets farge. Verdien må være i <a href=\"%s\" target=\"_blank\">heksadesimalt format</a>.", + ], + "Top bar color" => [ + 0 => "Topplinjefarge", + ], + "Black" => [ + 0 => "Svart", + ], + "White" => [ + 0 => "Hvit", + ], + "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." => [ + 0 => "Hvis du setter denne til \"hvit\", blir topplinjen og alle svarttoner bli endret til hvittoner.", + ], + "Top bar button color" => [ + 0 => "Topplinjens knappefarge", + ], + "Blue" => [ + 0 => "Blå", + ], + "Green" => [ + 0 => "Grønn", + ], + "Orange" => [ + 0 => "Oransje", + ], + "Red" => [ + 0 => "Rød", + ], + "Grey" => [ + 0 => "Grå", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Farge på topplinjens knapper, som \"Opprett konto\" -knappen.", + ], + "Enable vector logo" => [ + 0 => "Aktiver vektorlogo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Aktiver vektorlogo for høykvalitets logo på enheter med høy pikseltetthet.", + ], + "Vector logo image" => [ + 0 => "Vektor-logobilde.", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Logoen din i vektorformat (.svg)", + ], + "Raster logo image" => [ + 0 => "Raster-logobilde", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Logoen din i bitmapformat. PNG-format er anbefalt.", + ], + "Logo height" => [ + 0 => "logohøyde", + ], + "No value" => [ + 0 => "Ingen verdi", + ], + "Use this to set the logo height if needed." => [ + 0 => "Bruk denne for å sette logohøyde hvis nødvendig.", + ], + "Favicon image" => [ + 0 => "favicon-bilde", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon-bilde: Bildet må ha samme bredde og høyde.", + ], + "Image load max. filesize" => [ + 0 => "Bildelasting maks filstørrelse", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Bilder større enn angitt grense vil vise en knapp for å laste inn bildet i full størrelse.", + ], + "Enable download button" => [ + 0 => "Aktiver nedlastingsknapp", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Aktiver dette alternativet hvis du vil vise nedlastingsknappen.", + ], + "Enable right click on image" => [ + 0 => "Aktiver høyreklikk på bildet", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Aktiver dette alternativet hvis du vil tillate høyreklikk på bilder.", + ], + "Enable show Exif data" => [ + 0 => "Aktiver visning av Exif-data", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Aktiver denne hvis du vil vise Exif-data.", + ], + "Enable social share" => [ + 0 => "Aktiver sosial deling", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Aktiver dette alternativet hvis du ønsker å vise knapper for sosiale nettverk for å dele innhold.", + ], + "Enable embed codes (content)" => [ + 0 => "Aktiver integrasjonskoder (innhold)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Aktiver denne hvis du vil vise integrasjonskoder for innholdet.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "\"Utrygt innhold\" avkryssingsboks i opplastningsvinduet", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Aktiver dette alternativet hvis du vil vise en avkrysningsboks for å indikere utrygt innhold ved opplasting.", + ], + "Custom CSS code" => [ + 0 => "Egendefinert CSS-kode", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Legg inn din egendefinerte CSS-kode her. Den vil bli plassert som en <style>-tag rett før </head>-tagen.", + ], + "Custom JS code" => [ + 0 => "Egendefinert JS-kode", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Legg inn din egendefinerte JS-kode her. Den vil bli plassert som en <script>-tag rett for </head>-tagen.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Ikke bruk %s-markup her. Dette er for ren JS-kode, ikke for HTML-tags. Hvis du bruker scripttags her vil det føre til at nettstedet slutter å fungere.", + ], + "Style" => [ + 0 => "Stil", + ], + "Landing page" => [ + 0 => "Landingsside", + ], + "Split landing + images" => [ + 0 => "Delt landingsside + bilder", + ], + "Route explore" => [ + 0 => "Rute: utforske", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Velg stil for startsiden. For å tilpasse stilen ytterligere, rediger app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Forsidebilde", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette dette bildet? Dette kan ikke angres.", + ], + "Delete image" => [ + 0 => "Slett bilde", + ], + "Add new cover image" => [ + 0 => "Legg til nytt forsidebilde", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Logoen din i vektorformat (.svg) (Kun for forsiden)", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Logoen din i bitmapformat (PNG er anbefalt) (Kun for forsiden)", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Dette vil bli lagt inn på hjemmesiden %s som tag. La det stå tomt for å bruke standardinnholdet.", + ], + "Paragraph" => [ + 0 => "Avsnitt", + ], + "Call to action button color" => [ + 0 => "Registreringsknappfarge", + ], + "Color of the homepage call to action button." => [ + 0 => "Farge på registreringsknappen", + ], + "Call to action outline style button" => [ + 0 => "konturstil på registreringsknappen, utvendige linjer", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Aktiver denne for å bruke konturstil for registreringsknappen.", + ], + "Call to action functionality" => [ + 0 => "Registreringsknappens funksjon", + ], + "Trigger uploader" => [ + 0 => "Trigger-opplasting", + ], + "Open URL" => [ + 0 => "Åpne URL", + ], + "Call to action URL" => [ + 0 => "Oppfordring til handlings-URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Skriv en absolutt eller relativ URL", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "En relativ URL som %r skal tilordnes %l", + ], + "Call to action HTML" => [ + 0 => "HTML-tekst på forsiden", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Dette vil bli lagt inn i handlingsknappens <a>-tag. La stå tomt for å bruke standardinnholdet.", + ], + "User IDs" => [ + 0 => "BrukerIDer", + ], + "banners" => [ + 0 => "bannere", + ], + "Automatic updates check" => [ + 0 => "Automatisk sjekk etter oppdateringer", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Når aktivert vil systemet automatisk se etter nye oppdateringer.", + ], + "Display available updates notification" => [ + 0 => "Vis varsler for tilgjengelige oppdateringer", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Aktiver for å vise en melding på toppen med informasjon om tilgjengelige systemoppdateringer.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URLer", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Aktiver dette hvis du ønsker å bruke SEO %s URLer.", + ], + "Minify code" => [ + 0 => "Minify-kode", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Aktiver hvis du vil automatisk bruke minify for CSS- og JS-kode.", + ], + "Maintenance" => [ + 0 => "Vedlikehold", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Når aktivert vil nettstedet vise en vedlikeholdsmelding. Denne innstillingen berører ikke administratorer.", + ], + "Crypt salt" => [ + 0 => "kryptosalt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Dette kryptosalt som brukes til å konvertere numeriske IDer til alfanumeriske. Kryptosaltet ble automatisk generert ved installeringen av programmet.", + ], + "PHP error reporting" => [ + 0 => "PHP-feilrapportering", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Aktiver dette alternativet hvis du vil vise feil generert av PHP <a %s>error_reporting()</a>. Dette bør være deaktivert i produksjonsmiljøer.", + ], + "Debug level" => [ + 0 => "Feilsøkingsnivå", + ], + "None" => [ + 0 => "Ingen", + ], + "Error log" => [ + 0 => "Feillogg", + ], + "Print errors without error log" => [ + 0 => "Vis feil uten feilloggen", + ], + "Print and log errors" => [ + 0 => "Vis og logg feil", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "For å konfigurere feilsøkingsnivå, se gjennom <a %s>feilsøkingsdokumentasjonen</a>. Standardnivået er \"Feillogg (Error log)\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "Ruting lar deg tilpasse standardruten fortløpende. Bare alfanumeriske tegn, bindestrek og understrek er tillatt. Se gjennom %s dersom du ønsker å overstyre eller legge til nye ruter.", + ], + "Image routing" => [ + 0 => "Bilde-ruting", + ], + "Routing for %s" => [ + 0 => "Rute for %s", + ], + "Album routing" => [ + 0 => "Album-ruting", + ], + "Language subdomains" => [ + 0 => "Språk for underdomener", + ], + "Enable to use %s for %t." => [ + 0 => "Aktiver dette for å bruke %s for %t.", + ], + "Username subdomains" => [ + 0 => "Brukernavn for underdomener", + ], + "user profiles" => [ + 0 => "brukerprofiler", + ], + "Custom language strings" => [ + 0 => "Egendefinerte språkstrenger", + ], + "language strings" => [ + 0 => "språkstrenger", + ], + "Default language" => [ + 0 => "Standardspråk", + ], + "Default base language to use." => [ + 0 => "Bruk dette som standardspråk.", + ], + "Auto language" => [ + 0 => "Automatisk valg av språk", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Aktiver denne hvis du vil at språk skal settes automatisk for hver bruker.", + ], + "Language chooser" => [ + 0 => "Språkvelger", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Aktiver denne dersom du vil tillate valg av språk.", + ], + "Enabled languages" => [ + 0 => "Tilgjengelige språk", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Umerkede språk vil ikke bli brukt på siden.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Aktiver for å aktivere eller deaktivere HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Aktiver denne for å aktivere eller deaktivere denne lagringsenheten", + ], + "Quota" => [ + 0 => "Kvote", + ], + "Active" => [ + 0 => "Aktiv", + ], + "Storage method" => [ + 0 => "Lagringsmetode", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Lokal lagring brukes som standard, eller når ingen ekstern lagring er aktivert.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Hvis du trenger hjelp, se gjennom <a %s>lagringsdokumentasjonen</a>.", + ], + "Edit storage" => [ + 0 => "Rediger lagringsenheter", + ], + "From name" => [ + 0 => "Fra navn", + ], + "Sender name for emails sent to users." => [ + 0 => "Visningsnavn for e-post sendt til brukere", + ], + "Email mode" => [ + 0 => "E-postmodus", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Hvordan skal e-post sendes? SMTP anbefales.", + ], + "SMTP server and port" => [ + 0 => "SMTP-server og -port", + ], + "SMTP server" => [ + 0 => "SMTP-server", + ], + "SMTP username" => [ + 0 => "SMTP-brukernavn", + ], + "SMTP password" => [ + 0 => "SMTP-passord", + ], + "SMTP security" => [ + 0 => "SMTP-sikkerhet", + ], + "Unsecured" => [ + 0 => "Usikret", + ], + "Decode ID" => [ + 0 => "Dekodings-ID", + ], + "Encode ID" => [ + 0 => "Kodings-ID", + ], + "Send test email" => [ + 0 => "Send test-e-post", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Bruk denne for å teste hvordan e-post blir levert. Vi anbefaler å bruke %s.", + ], + "Export a user" => [ + 0 => "Eksporter en bruker", + ], + "Export user" => [ + 0 => "Eksporter bruker", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Dette lar deg laste ned en brukers personlige standardinformasjon i JSON-format.", + ], + "Regenerate external storage stats" => [ + 0 => "Regenerer ekstern lagringsstatus", + ], + "Storage id" => [ + 0 => "LagringsID", + ], + "Regenerate" => [ + 0 => "Regenerer", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Dette vil rekalkulere summen av alle bildeoppføringer assosiert med den eksterne lagringen.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Migrer bildeoppføringer fra en ekstern lagring til en annen", + ], + "Source storage id" => [ + 0 => "LagringsID for kilde", + ], + "Target storage id" => [ + 0 => "LagringsID for mål", + ], + "Migrate" => [ + 0 => "Migrer", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Dette oppdaterer bare databasen. Du må overføre de faktiske filene til mållagringsområdet selv. URL-omskriving er sterkt anbefalt. Bruk null (0) for lokal lagring.", + ], + "social networks" => [ + 0 => "sosiale nettverk", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Du trenger en <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook-app</a> for dette.", + ], + "Facebook app id" => [ + 0 => "Facebook-app-ID", + ], + "Facebook app secret" => [ + 0 => "Facebook-app-hemmelighet", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Du trenger en <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter-app</a> for dette.", + ], + "Twitter API key" => [ + 0 => "Twitter-API-nøkkel", + ], + "Twitter API secret" => [ + 0 => "Twitter-API-hemmelighet", + ], + "Twitter account" => [ + 0 => "Twitter-konto", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Du trenger en <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google-app</a> for dette.", + ], + "Google client id" => [ + 0 => "Google-klient-ID", + ], + "Google client secret" => [ + 0 => "Google-klient-hemmelighet", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Du trenger en <a href=\"http://vk.com/dev\" target=\"_blank\">VK-app</a> for dette.", + ], + "VK client id" => [ + 0 => "VK-klient-ID", + ], + "VK client secret" => [ + 0 => "VK-klient-hemmelighet", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Du trenger en <a href=\"%s\" target=\"_blank\">reCAPTCHA-nøkkel</a> for dette.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Merk at hver reCAPTCHA-versjon trenger sitt eget sett nøkler. Ikke glem å oppdatere nøklene hvis du bytter mellom versjoner.", + ], + "%s site key" => [ + 0 => "%s sidenøkkel", + ], + "%s secret key" => [ + 0 => "%s hemmelig nøkkel", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA-terskel", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Hvor mange mislykkede forsøk er nødvendig før reCAPTCHA etterspørres? Bruk null (0) for å alltid vise reCAPTCHA.", + ], + "Comments API" => [ + 0 => "Kommentar-API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus-API virker med %s.", + ], + "Disqus shortname" => [ + 0 => "Disqus kort navn", + ], + "%s public key" => [ + 0 => "%s offentlig nøkkel", + ], + "Comment code" => [ + 0 => "kommentarkode", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook eller noe du ønsker vil bli brukt i bildevisningen .", + ], + "Analytics code" => [ + 0 => "Analytics-kode", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics eller hva du vil. Det vil bli lagt til temaets bunntekst.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "For dokumentasjon om API, se gjennom <a %s>API-dokumentasjonen</a>", + ], + "API v1 key" => [ + 0 => "API v1-nøkkel", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Bruk denne nøkkelen når du bruker <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Utvidelsesrute", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Aktiver denne for å vise instruksjoner for utvidelsen på %u. En lenke til disse instruksjonene vil bli lagt til %s-menyen. Denne innstillingen påvirker ikke administratorer.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Bruk denne for å sette en egendefinert URL for %p. Påse at du manuelt må replikere %s i denne URLen.", + ], + "Cookie law compliance" => [ + 0 => "Lovgivningssamsvar for bruk av cookies", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Aktiver dette for å vise en melding som er i samsvar med EUs lovmessige krav angående cookies. Du trenger bare dette alternativet hvis nettstedet ditt er lokalisert i EU, eller hvis du legger til sporing av informasjonskapsler .", + ], + "Save changes" => [ + 0 => "Lagre endringer", + ], + "Check the errors to proceed." => [ + 0 => "Se gjennom feilene for å fortsette.", + ], + "Play GIF" => [ + 0 => "Spill av GIF-animasjon", + ], + "Load full resolution" => [ + 0 => "Last fulloppløst bilde", + ], + "Added to %a and categorized in %c" => [ + 0 => "Lagt til i %a og kategorisert i %c", + ], + "Added to %s" => [ + 0 => "Lagt til i %s", + ], + "Uploaded to %s" => [ + 0 => "Lastet opp til %s", + ], + "Uploaded %s" => [ + 0 => "Lastet opp %s", + ], + "Less Exif data" => [ + 0 => "Skjul Exif-data", + ], + "More Exif data" => [ + 0 => "Mer Exif-data", + ], + "Share image" => [ + 0 => "Del bilde", + ], + "Album ID" => [ + 0 => "Album-ID", + ], + "In this album" => [ + 0 => "I dette albumet", + ], + "Upload and share your images." => [ + 0 => "Last opp og del bildene dine.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Dra og slipp bildene hvor som helst og start opplastning med en gang. Begrensning: %s. Direkte bildelink, BBCode for forum og HTML-miniatyrbilder.", + ], + "Start uploading" => [ + 0 => "Start opplasting", + ], + "Sign up to unlock all the features" => [ + 0 => "Registrer deg for å låse opp alle funksjonene", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Administrer ditt innhold, opprett private album, tilpass din profil og mer.", + ], + "Sign in with your account" => [ + 0 => "Logg inn med din konto", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Har du ikke en konto? <a href='%s'>Registrer</a> deg nå.", + ], + "Logged out" => [ + 0 => "Logget ut", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Du har blitt logget ut fra %s. Velkommen tilbake!", + ], + "Go to homepage" => [ + 0 => "Tilbake til startsiden", + ], + "Website under maintenance" => [ + 0 => "Nettstedet er under vedlikehold", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Vi utfører planlagt vedlikehold på nettstedet. Vennligst forsøk igjen senere.", + ], + "This content is password protected." => [ + 0 => "Dette innholdet er passordbeskyttet.", + ], + "Please enter your password to continue." => [ + 0 => "Vennligst skriv inn passordet ditt for å fortsette.", + ], + "Send" => [ + 0 => "Send", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Legg til bildeopplasting på nettsiden, bloggen eller forumet ditt ved å installere opplastingsutvidelsen vår. Den tilbyr bildeopplasting til en hvilken som helst nettside ved å legge til en knapp som lar brukerne dine laste opp bilder direkte til vår tjeneste, og håndterer automatisk kodene for å legge dem til. Alle funksjoner som dra-og-slipp, fjernopplasting, bildeskalering m.m. er tilgjengelige.", + ], + "Supported software" => [ + 0 => "Støttet programvare", + ], + "supported software" => [ + 0 => "støttet programvare", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Utvidelsen fungerer på alle nettsteder med bruker-redigerbart innhold, og for %sv vil den plassere en knapp som passer med målets redigeringsverktøylinje, slik at ingen ekstra tilpassing er nødvendig.", + ], + "Add it to your website" => [ + 0 => "Legg den til nettstedet ditt", + ], + "options" => [ + 0 => "alternativer", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Kopier og lim inn koden for utvidelsen direkte i HTML-kilden for nettstedet ditt (helst i HEAD-området). Det finnes mange %o for å la den bedre passe dine behov.", + ], + "Basic options" => [ + 0 => "Grunnleggende alternativer", + ], + "Color palette" => [ + 0 => "Fargepalett", + ], + "Button color scheme" => [ + 0 => "Fargetema for knapper", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Innbyggingskoder som automatisk blir fylt ut i redigeringsfeltet", + ], + "Sibling selector" => [ + 0 => "Valg for beslektet element", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Beslektet element å plassere knappen ved siden av", + ], + "Sibling position" => [ + 0 => "Plassering av beslektet element", + ], + "After" => [ + 0 => "Etter", + ], + "Before" => [ + 0 => "Før", + ], + "Position relative to sibling element" => [ + 0 => "Plassering relativ til beslektet element", + ], + "Advanced options" => [ + 0 => "Avanserte alternativer", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Utvidelsen har et stort utvalg utvidete alternativer som gir full tilpassingskontroll. Du kan bruke egen HTML, CSS, egen fargepalett, settobservatører og mer til. Sjekk ut %d og kildekoden for utvidelsen for å få en bedre forståelse av disse avanserte alternativene.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Enten har du ikke tillatelse til denne siden eller linken er utløpt.", + ], + "Search results" => [ + 0 => "Søkeresultater", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Er du sikker på at du vil slette denne brukeren? Dette kan ikke angres.", + ], + "Delete user" => [ + 0 => "Slett bruker", + ], + "Register date" => [ + 0 => "Registreringsdato", + ], + "Registration IP" => [ + 0 => "Registrerings-IP", + ], + "Valid" => [ + 0 => "Gyldig", + ], + "Banned" => [ + 0 => "Utestengt", + ], + "Awaiting email" => [ + 0 => "Venter på e-post", + ], + "Awaiting confirmation" => [ + 0 => "Venter på bekreftelse", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i til %f tegn<br>Bokstaver, nummer og \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Slett opplastinger automatisk", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Denne innstillingen vil gjelde for alle bilder du har lastet opp. Du kan overstyre denne innstillingen for hver enkelt opplasting.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Behold <a %s>Exif-data</a> ved opplasting", + ], + "Newsletter" => [ + 0 => "Nyhetsbrev", + ], + "Send me emails with news about %s" => [ + 0 => "Send meg e-poster med nyheter fra %s", + ], + "Content settings" => [ + 0 => "Innholdsinnstillinger", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Vis utrygt innhold fra andre brukere", + ], + "Language" => [ + 0 => "Språk", + ], + "Timezone" => [ + 0 => "Tidssone", + ], + "Current password" => [ + 0 => "Nåværende passord", + ], + "Enter your current password" => [ + 0 => "Skriv inn ditt nåværende passord", + ], + "New password" => [ + 0 => "Nytt passord", + ], + "Confirm new password" => [ + 0 => "Bekreft nytt passord", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Skriv inn et passord for å kunne logge inn med ditt brukernavn eller e-postadresse", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Denne brukeren har ikke passord. Legg til et ved å bruke dette skjemaet.", + ], + "Enter your password" => [ + 0 => "Skriv inn ditt passord", + ], + "Confirm password" => [ + 0 => "Bekreft passord", + ], + "Re-enter your password" => [ + 0 => "Skriv inn ditt passord på nytt", + ], + "Upload new image" => [ + 0 => "Last opp nytt profilbilde", + ], + "Delete existing image" => [ + 0 => "Slett eksisterende bilde", + ], + "Make my profile and identity totally private" => [ + 0 => "Gjør min profil og identitet fullstendig privat", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Aktiver dette hvis du ønsker å opptre som en anonym bruker", + ], + "This is your real name, not your username." => [ + 0 => "Dette er ditt ekte navn, ikke brukernavnet ditt.", + ], + "http://yourwebsite.com" => [ + 0 => "http://example.com", + ], + "Bio" => [ + 0 => "Biografi", + ], + "Tell us a little bit about you" => [ + 0 => "Skriv litt om deg selv", + ], + "User has no connections." => [ + 0 => "Bruker har ingen forbindelser.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Koble kontoen din til eksterne tjenester for å kunne logge på og dele innhold lettere.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Vil du virkelig koble %s fra denne kontoen?", + ], + "This account is connected to %s" => [ + 0 => "Denne kontoen er koblet til %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Vil du virkelig koble fra %s kontoen?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Du vil bli logget ut, og du vil ikke være i stand til å logge inn på kontoen din ved hjelp av denne %s kontoen.", + ], + "Your account is connected to %s" => [ + 0 => "Kontoen din er koblet til %s", + ], + "disconnect" => [ + 0 => "koble fra", + ], + "Connect %s" => [ + 0 => "koble til %s", + ], + "Button" => [ + 0 => "Knapp", + ], + "Login" => [ + 0 => "Logg inn", + ], + "Already have an account? %s now." => [ + 0 => "Har du allerede en konto? %s nå.", + ], + "resend account activation" => [ + 0 => "send konto-aktivering på nytt", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Hvis du allerede har registrert deg, trenger du kanskje å be om %s for å aktivere kontoen din.", + ], + "You can also %s." => [ + 0 => "Du kan også %s.", + ], + "I'm at least %s years old" => [ + 0 => "Jeg er minst %s år gammel", + ], + "terms" => [ + 0 => "betingelser", + ], + "privacy policy" => [ + 0 => "behandling av personopplysninger", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Jeg aksepterer %terms_link og %privacy_link", + ], + "Upload profile background" => [ + 0 => "Last opp nytt profilbakgrunnsbilde", + ], + "Change background" => [ + 0 => "Bytt bakgrunnsbilde", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Bakgrunnsbildet vil bli slettet. Dette kan ikke angres. Er du sikker på at du vil slette bakgrunnsbildet for profilen?", + ], + "Delete background" => [ + 0 => "Slett bakgrunn", + ], + "Edit profile" => [ + 0 => "Rediger profil", + ], + "Follower" => [ + 0 => "Følger", + 1 => "Følgere", + ], + "Follow" => [ + 0 => "Følg", + ], + "General questions/comments" => [ + 0 => "Generelle spørsmål/kommentarer", + ], + "DMCA complaint" => [ + 0 => "Brudd på opphavsrettigheter", + ], + "Invalid message" => [ + 0 => "Ugyldig melding", + ], + "Invalid subject" => [ + 0 => "Ugyldig emne", + ], + "Mail error" => [ + 0 => "E-postfeil", + ], + "Message sent" => [ + 0 => "Melding sendt", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Meldingen er sendt. Vi vil svare deg så fort vi kan.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Hvis du ønsker å sende en melding, fyll ut skjemaet under.", + ], + "Your name" => [ + 0 => "Ditt navn", + ], + "Subject" => [ + 0 => "Emne", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Alle endringene du har gjort vil gå tapt hvis du fortsetter.", + ], + "Changes saved successfully." => [ + 0 => "Endringer vellykket lagret.", + ], + "Go back to form" => [ + 0 => "Gå tilbake til skjemaet", + ], + "continue anyway" => [ + 0 => "fortsett likevel", + ], + "Saving" => [ + 0 => "lagrer", + ], + "Sending" => [ + 0 => "Sender", + ], + "Confirm action" => [ + 0 => "Bekreft handling", + ], + "information" => [ + 0 => "Informasjon", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/nl.po.cache.php b/app/.cache/languages/nl.po.cache.php new file mode 100644 index 0000000..80bb1b3 --- /dev/null +++ b/app/.cache/languages/nl.po.cache.php @@ -0,0 +1,3738 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-07 13:29+0000', + 'PO-Revision-Date' => '2021-06-07 13:29+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'nl', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Ongeldig e-mailadres", + ], + "Invalid username" => [ + 0 => "Ongeldige gebruikersnaam", + ], + "Invalid password" => [ + 0 => "Ongeldig wachtwoord", + ], + "Installed version is v%s" => [ + 0 => "Geïnstalleerde versie: v%s", + ], + "Can't connect to %s" => [ + 0 => "Kan niet verbinden met %s", + ], + "Last available release is v%s" => [ + 0 => "Laatst beschikbare release is v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Update nodig, doorgestuurd naar downloaden", + ], + "No update needed" => [ + 0 => "Geen update nodig", + ], + "System files already up to date" => [ + 0 => "Systeembestanden zijn reeds bijgewerkt.", + ], + "Starting v%s download" => [ + 0 => "Start downloaden van v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s is gedownload, verder met uitpakken", + ], + "Attempting to extract v%s" => [ + 0 => "Bezig met uitpakken van v%s", + ], + "Extraction completed" => [ + 0 => "Uitpakken gereed", + ], + "Proceding to install the update" => [ + 0 => "Bezig met installeren van de update", + ], + "Update failed" => [ + 0 => "Bijwerken mislukt", + ], + "Update in progress" => [ + 0 => "Bezig met bijwerken", + ], + "Missing %s file" => [ + 0 => "Missende %s bestand", + ], + "Invalid license info" => [ + 0 => "Ongeldige licentie info", + ], + "Can't save file" => [ + 0 => "Kan bestand niet opslaan", + ], + "Can't extract %s" => [ + 0 => "Kan %s niet uitpakken", + ], + "Can't create %s directory - %e" => [ + 0 => "Kan directory %s niet aanmaken - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Kan bestand %s niet updaten - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Controleer de fouten in het formulier om verder te gaan.", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Let op: deze inhoud is privé, maar is zichtbaar voor iedereen met de link.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Opmerking: deze inhoud is beschermd met een wachtwoord. Denk eraan het wachtwoord mee te sturen bij het delen.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Let op: deze inhoud is privé. Wijzig de privacy-instellingen naar \" publiek\" om deze te delen met buitenstaanders.", + ], + "You must enter the album name." => [ + 0 => "U moet nog een albumnaam invoeren.", + ], + "Confirm" => [ + 0 => "Bevestigen", + ], + "The content has been approved." => [ + 0 => "De inhoud is goedgekeurd.", + ], + "Select existing album" => [ + 0 => "Selecteer bestaand album", + ], + "An error occurred. Please try again later." => [ + 0 => "Er is een fout opgetreden. Probeer het later nog eens.", + ], + "Please select a valid image file type." => [ + 0 => "Selecteer a.u.b. een geldig afbeeldingformaat", + ], + "Please select a picture of at most %s size." => [ + 0 => "Selecteer a.u.b. een foto met maximale grootte %s.", + ], + "Profile image updated." => [ + 0 => "Profielfoto is geüpdatet.", + ], + "Profile background image updated." => [ + 0 => "Achtergrondafbeelding is geüpdatet.", + ], + "Profile background image deleted." => [ + 0 => "Achtergrondafbeelding is verwijderd.", + ], + "Error deleting profile background image." => [ + 0 => "Fout bij het verwijderen van uw profielachtergrond.", + ], + "Passwords don't match" => [ + 0 => "Wachtwoorden komen niet overeen", + ], + "Update available v%s" => [ + 0 => "Update naar v%s beschikbaar", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Er is een update beschikbaar voor uw systeem. U kunt deze automatisch downloaden installeren of ga naar %s om het updatebestand te downloaden.", + ], + "The release notes for this update are:" => [ + 0 => "De releaseopmerkingen voor deze update zijn:", + ], + "system requirements" => [ + 0 => "Systeemvereisten", + ], + "I confirm that this server meets the %s for this update" => [ + 0 => "Ik bevestig dat deze server voldoet aan %s voor deze update", + ], + "Update now" => [ + 0 => "Nu bijwerken", + ], + "This website is running latest %s version" => [ + 0 => "Deze website gebruikt de laatste %s versie", + ], + "Please review the system requirements before proceeding" => [ + 0 => "Bekijk alstublieft de systeemvereisten voordat u verder gaat", + ], + "loading" => [ + 0 => "laden", + ], + "Toggle select" => [ + 0 => "Selectiekeuze", + ], + "Like" => [ + 0 => "Waardeer", + ], + "Toggle flag" => [ + 0 => "Vlagkeuze", + ], + "Edit" => [ + 0 => "Bewerken", + ], + "Album" => [ + 0 => "Album", + 1 => "Albums", + ], + "Approve" => [ + 0 => "Goedkeuren", + ], + "Delete" => [ + 0 => "Verwijder", + ], + "Close" => [ + 0 => "Sluiten", + ], + "Previous" => [ + 0 => "Vorige", + ], + "Next" => [ + 0 => "Volgende", + ], + "Clipboard image" => [ + 0 => "Klembord afbeelding", + ], + "File too big." => [ + 0 => "Bestand is te groot.", + ], + "Invalid or unsupported file format." => [ + 0 => "Ongeldig of niet ondersteund bestandsformaat.", + ], + "Some files couldn't be added" => [ + 0 => "Sommige bestanden kunnen niet toegevoegd worden", + ], + "image" => [ + 0 => "afbeelding", + 1 => "afbeeldingen", + ], + "%s's Albums" => [ + 0 => "%s's albums", + ], + "Image edited successfully." => [ + 0 => "Afbeelding is aangepast", + ], + "private" => [ + 0 => "privé", + ], + "Album edited successfully." => [ + 0 => "Album is aangepast", + ], + "Invalid URL key." => [ + 0 => "Ongeldige URL sleutel.", + ], + "Category URL key already being used." => [ + 0 => "Categorie URL sleutel is al in gebruik.", + ], + "Category successfully deleted." => [ + 0 => "Categorie succesvol verwijderd.", + ], + "Category %s added." => [ + 0 => "Categorie %s is toegevoegd.", + ], + "Invalid expiration date." => [ + 0 => "Ongeldige vervaldatum.", + ], + "IP %s already banned." => [ + 0 => "IP %s is reeds geblokkeerd.", + ], + "IP %s banned." => [ + 0 => "IP %s is geblokkeerd.", + ], + "IP ban successfully deleted." => [ + 0 => "IP blokkering is verwijderd.", + ], + "Please fill all the required fields." => [ + 0 => "Vul alstublieft de verplichte velden in.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Ongeldige waarde voor de opslagcapaciteit. Controleer op juistheid formaat.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Opslagcapaciteit kan niet lager zijn dan wat er nu in gebruik is (%s).", + ], + "Invalid URL." => [ + 0 => "Ongeldige URL.", + ], + "Storage successfully edited." => [ + 0 => "Opslag succesvol gewijzigd.", + ], + "User added successfully." => [ + 0 => "Gebruiker is toegevoegd.", + ], + "The content has been deleted." => [ + 0 => "De inhoud is verwijderd", + ], + "The content has been moved." => [ + 0 => "De inhoud is verplaatst", + ], + "Select" => [ + 0 => "Selecteer", + ], + "Unselect" => [ + 0 => "Deselecteer", + ], + "The content has been edited." => [ + 0 => "De inhoud is aangepast", + ], + "Import ID %s removed" => [ + 0 => "Import nummer %s verwijderd", + ], + "Spam detected" => [ + 0 => "Spam gedetecteerd", + ], + "album" => [ + 0 => "album", + 1 => "albums", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Flooding gedetecteerd. U kunt enkel %limit%%content% uploaden per %time%", + ], + "Untitled" => [ + 0 => "Naamloos", + ], + "%s's images" => [ + 0 => "%s's afbeeldingen", + ], + "Private" => [ + 0 => "Privé", + ], + "Public" => [ + 0 => "Publiek", + ], + "Me" => [ + 0 => "Mijn", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Wachtwoord", + ], + "view" => [ + 0 => "weergave", + 1 => "weergaven", + ], + "After %n %t" => [ + 0 => "Na %n %t", + ], + "minute" => [ + 0 => "minuut", + 1 => "minuten", + ], + "hour" => [ + 0 => "uur", + 1 => "uren", + ], + "day" => [ + 0 => "dag", + 1 => "dagen", + ], + "week" => [ + 0 => "week", + 1 => "weken", + ], + "month" => [ + 0 => "maand", + 1 => "maanden", + ], + "year" => [ + 0 => "jaar", + 1 => "jaren", + ], + "Don't autodelete" => [ + 0 => "Niet automatisch verwijderen", + ], + "Can't open %s for writing" => [ + 0 => "Kan %s niet openen om te schrijven", + ], + "Duplicated upload" => [ + 0 => "Dubbele upload", + ], + "Private upload" => [ + 0 => "Privé-upload", + ], + "like" => [ + 0 => "like", + 1 => "likes", + ], + "Recent" => [ + 0 => "Recent", + ], + "Trending" => [ + 0 => "Trending", + ], + "Top users" => [ + 0 => "Topgebruikers", + ], + "Most recent" => [ + 0 => "Meest recent", + ], + "Oldest" => [ + 0 => "Oudste", + ], + "Most viewed" => [ + 0 => "Meest bekeken", + ], + "Popular" => [ + 0 => "Populair", + ], + "Most liked" => [ + 0 => "meest geliked", + ], + "Explore" => [ + 0 => "Verkennen", + ], + "Animated" => [ + 0 => "Geanimeerde", + ], + "Search" => [ + 0 => "Zoeken", + ], + "People" => [ + 0 => "Mensen", + ], + "Image" => [ + 0 => "Afbeelding", + 1 => "Afbeeldingen", + ], + "User" => [ + 0 => "Gebruiker", + 1 => "Gebruikers", + ], + "adult" => [ + 0 => "Volwassene", + ], + "teen" => [ + 0 => "Tienier", + ], + "Content of type %s is forbidden" => [ + 0 => "%s inhoud is niet toegestaan.", + ], + "Can't create %s destination dir" => [ + 0 => "Kan doelmap %s niet maken", + ], + "Internal" => [ + 0 => "Intern", + ], + "Unlimited" => [ + 0 => "Ongelimiteerd", + ], + "used" => [ + 0 => "gebruikt", + ], + "Private profile" => [ + 0 => "Privéprofiel", + ], + "second" => [ + 0 => "seconde", + 1 => "seconden", + ], + "%s ago" => [ + 0 => "%s geleden", + ], + "moments ago" => [ + 0 => "zojuist", + ], + "Dashboard" => [ + 0 => "Dashboard", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Er is een update beschikbaar voor uw systeem. Ga naar %s om deze update te downloaden en te installeren.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Systeemdatabase is verouderd. Het is noodzakelijk om deze te <a href=\"%s\">updaten</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Website is in onderhoudsmodus. Om deze instelling ongedaan te maken, ga naar <a href=\"%s\">Dashboard > Instellingen</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Het is aanbevolen om PHP foutmeldingen uit te schakelen in de productieomgeving. Ga naar <a href='%s'>Systeeminstellingen</a> om deze instelling uit te schakelen.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Het standaard e-mailadres is niet gewijzigd. Ga naar <a href='%s'>E-mailinstellingen</a> om dit aan te passen.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Er is een update beschikbaar voor uw Chevereto website.", + ], + "admin dashboard" => [ + 0 => "Beheer dashboard", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "U kunt deze update direct uitvoeren via %a of deze downloaden vanaf %s en dan handmatig installeren.", + ], + "view on %s" => [ + 0 => "Bekijk op %s", + ], + "cookie policy" => [ + 0 => "Cookie beleid", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Wij gebruiken onze eigen cookies en cookies van derden om uw surfervaring en onze services te verbeteren. Als u doorgaat met het gebruik van onze website betekent dit dat u deze %cookie_policy_link accepteert.", + ], + "I understand" => [ + 0 => "Ik begrijp het", + ], + "Forgot password?" => [ + 0 => "Wachtwoord vergeten?", + ], + "Reset password" => [ + 0 => "Wachtwoord opnieuw instellen", + ], + "Resend account activation" => [ + 0 => "Activatie opnieuw verzenden", + ], + "Add your email address" => [ + 0 => "Voeg uw e-mailadres toe", + ], + "Email changed" => [ + 0 => "E-mailadres veranderd", + ], + "%s says you are a robot" => [ + 0 => "%s geeft aan dat u een robot bent", + ], + "Invalid Username/Email" => [ + 0 => "Ongeldige gebruikersnaam of e-mailadres", + ], + "User doesn't have an email." => [ + 0 => "Deze gebruiker heeft geen e-mailadres.", + ], + "Request denied" => [ + 0 => "Aanvraag niet toegestaan", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Gebruikersaccount moet geactiveerd zijn om deze optie te gebruiken!", + ], + "Account already activated" => [ + 0 => "Gebruikersccount is al geactiveerd", + ], + "Account banned" => [ + 0 => "Account geblokkeerd", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Wacht a.u.b. 15 minuten op het ontvangen van een e-mail. U kunt het later opnieuw proberen.", + ], + "Reset your password at %s" => [ + 0 => "Wachtwoord resetten op %s", + ], + "Confirmation required at %s" => [ + 0 => "Bevestiging nodig voor %s", + ], + "Welcome to %s" => [ + 0 => "Welkom bij %s.", + ], + "Email already being used" => [ + 0 => "E-mailadres wordt al gebruikt door iemand anders", + ], + "Password required" => [ + 0 => "Wachtwoord vereist", + ], + "Embed codes" => [ + 0 => "Insluitcodes", + ], + "Sub albums" => [ + 0 => "Subalbums", + ], + "Info" => [ + 0 => "Informatie", + ], + "%a album hosted in %w" => [ + 0 => "%a album hosted in %w", + ], + "Stats" => [ + 0 => "Statistieken", + ], + "Images" => [ + 0 => "Afbeeldingen", + ], + "Albums" => [ + 0 => "Albums", + ], + "Users" => [ + 0 => "Gebruikers", + ], + "Settings" => [ + 0 => "Instellingen", + ], + "Bulk importer" => [ + 0 => "Invoer in bulk", + ], + "install update" => [ + 0 => "Update installeren", + ], + "check for updates" => [ + 0 => "controleer op updates", + ], + "Contributing" => [ + 0 => "Bijdrage", + ], + "Support" => [ + 0 => "Ondersteuning", + ], + "Bug tracking" => [ + 0 => "Bug tracking", + ], + "Documentation" => [ + 0 => "Documentatie", + ], + "PHP version" => [ + 0 => "PHP versie", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL versie", + ], + "MySQL server info" => [ + 0 => "MySQL server informatie", + ], + "Graphics Library" => [ + 0 => "Grafische bibliotheek", + ], + "File uploads" => [ + 0 => "Uploads", + ], + "Enabled" => [ + 0 => "Ingeschakeld", + ], + "Disabled" => [ + 0 => "Uitgeschakeld", + ], + "Max. upload file size" => [ + 0 => "Max. upload bestandsgrootte", + ], + "Max. post size" => [ + 0 => "Maximale berichtgrootte", + ], + "Max. execution time" => [ + 0 => "Maximale laadtijd uploaden", + ], + "%d second" => [ + 0 => "%d seconde", + 1 => "%d secondes", + ], + "Memory limit" => [ + 0 => "Geheugenlimiet", + ], + "Rebuild stats" => [ + 0 => "Statistieken verversen", + ], + "Connecting IP" => [ + 0 => "Verbonden IP", + ], + "Not your IP?" => [ + 0 => "Niet jouw IP?", + ], + "Website" => [ + 0 => "Website", + ], + "Content" => [ + 0 => "Inhoud", + ], + "Pages" => [ + 0 => "Pagina's", + ], + "Listings" => [ + 0 => "Inhoud", + ], + "Image upload" => [ + 0 => "Upload", + ], + "Categories" => [ + 0 => "Categorieën", + ], + "Consent screen" => [ + 0 => "Toestemmingsscherm", + ], + "Flood protection" => [ + 0 => "Spambeveiliging (Flood Protection)", + ], + "Theme" => [ + 0 => "Thema", + ], + "Homepage" => [ + 0 => "Startpagina", + ], + "Banners" => [ + 0 => "Advertenties", + ], + "System" => [ + 0 => "Systeem", + ], + "Routing" => [ + 0 => "Routering", + ], + "Languages" => [ + 0 => "Talen", + ], + "External storage" => [ + 0 => "Externe opslag", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Social media", + ], + "External services" => [ + 0 => "Externe services", + ], + "IP bans" => [ + 0 => "IP bans", + ], + "Additional settings" => [ + 0 => "Extra instellingen", + ], + "Tools" => [ + 0 => "Gereedschappen", + ], + "Can't delete all homepage cover images" => [ + 0 => "Kan niet alle homepage omslagafbeeldingen verwijderen", + ], + "Homepage cover image deleted" => [ + 0 => "Homepage omslagafbeelding verwijderd", + ], + "Local" => [ + 0 => "Lokaal", + ], + "External" => [ + 0 => "Extern", + ], + "All" => [ + 0 => "Alles", + ], + "search content" => [ + 0 => "Zoek inhoud", + ], + "Add page" => [ + 0 => "Pagina toevoegen", + ], + "Edit page ID %s" => [ + 0 => "Wijzig paginanummer %s", + ], + "The page has been added successfully." => [ + 0 => "De pagina is succesvol toegevoegd.", + ], + "The page has been deleted." => [ + 0 => "De pagina is verwijderd.", + ], + "homepage" => [ + 0 => "homepage", + ], + "Before main title (%s)" => [ + 0 => "Voor hoofdtitel (%s)", + ], + "After call to action (%s)" => [ + 0 => "Na oproep tot actie (%s)", + ], + "After cover (%s)" => [ + 0 => "Na omslag (%s)", + ], + "After listing (%s)" => [ + 0 => "Na lijst (%s)", + ], + "Before pagination" => [ + 0 => "Voor paginanummering", + ], + "After pagination" => [ + 0 => "Na paginanummering", + ], + "Content (image and album)" => [ + 0 => "Inhoud (afbeelding en album)", + ], + "Tab about column" => [ + 0 => "Tab over kolom", + ], + "Before comments" => [ + 0 => "Voor opmerkingen", + ], + "Image page" => [ + 0 => "Weergavepagina afbeelding", + ], + "Inside viewer top (image page)" => [ + 0 => "Vanboven in de afbeelding viewer (weergavepagina afbeelding)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Vanonder in de afbeelding viewer (weergavepagina afbeelding)", + ], + "After image viewer (image page)" => [ + 0 => "Achter de afbeelding (weergavepagina afbeelding)", + ], + "Before header (image page)" => [ + 0 => "Voor de header(afbeeldings pagina)", + ], + "After header (image page)" => [ + 0 => "Achter de header (weergavepagina afbeelding)", + ], + "Footer (image page)" => [ + 0 => "Footer (weergavepagina afbeelding)", + ], + "Album page" => [ + 0 => "Album pagina", + ], + "Before header (album page)" => [ + 0 => "Voor header (Album pagina)", + ], + "After header (album page)" => [ + 0 => "Achter de header (Album pagina)", + ], + "User profile page" => [ + 0 => "Profielpagina", + ], + "After top (user profile)" => [ + 0 => "Achter bovenzijde (profiel)", + ], + "Before listing (user profile)" => [ + 0 => "Achter afbeeldinglijst (startpagina)", + ], + "Explore page" => [ + 0 => "Verkenningspagina", + ], + "After top (explore page)" => [ + 0 => "Achter bovenzijde (verkenning pagina)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Ongeldige websitenaam", + ], + "Invalid language" => [ + 0 => "Ongeldige taal", + ], + "Invalid timezone" => [ + 0 => "Ongeldige tijdzone", + ], + "Invalid value: %s" => [ + 0 => "Ongeldigde waarde: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Ongeldige opslagmodus", + ], + "Invalid upload filenaming" => [ + 0 => "Ongeldige bestandsnaam", + ], + "Invalid thumb width" => [ + 0 => "Ongeldige thumbnailbreedte", + ], + "Invalid thumb height" => [ + 0 => "Ongeldige thumbnailhoogte", + ], + "Invalid medium size" => [ + 0 => "Ongeldige medium grootte", + ], + "Invalid watermark percentage" => [ + 0 => "Ongeldig watermerk percentage", + ], + "Invalid watermark opacity" => [ + 0 => "Ongeldige transparantie watermerk.", + ], + "Invalid theme" => [ + 0 => "Ongeldig thema", + ], + "Invalid value" => [ + 0 => "Ongeldige waarde", + ], + "Invalid theme tone" => [ + 0 => "Ongeldige thema toonzetting", + ], + "Invalid theme main color" => [ + 0 => "Ongeldige hoofdkleur thema", + ], + "Invalid theme top bar button color" => [ + 0 => "Ongeldige topbalk knop kleur", + ], + "Invalid theme image listing size" => [ + 0 => "Ongeldige thema afbeelding lijstgrootte", + ], + "Invalid user id" => [ + 0 => "Ongeldige gebruikers-ID", + ], + "Invalid email mode" => [ + 0 => "Ongeldige e-mailinstellingen", + ], + "Invalid SMTP port" => [ + 0 => "Ongeldige SMTP-poort", + ], + "Invalid SMTP security" => [ + 0 => "Ongeldige SMTP-beveiliging", + ], + "Invalid website mode" => [ + 0 => "Ongeldige websitemodus", + ], + "Invalid personal mode user ID" => [ + 0 => "Ongeldige user ID persoonlijke mode", + ], + "Invalid or reserved route" => [ + 0 => "Ongeldige of gereserveerde route", + ], + "Invalid website privacy mode" => [ + 0 => "Ongeldige website privé mode", + ], + "Invalid website content privacy mode" => [ + 0 => "Ongeldige privacy-instelling", + ], + "Invalid homepage style" => [ + 0 => "Ongeldige homepage stijl", + ], + "Invalid homepage call to action button color" => [ + 0 => "Ongeldige startpagina oproep tot actie knop kleur", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Ongeldige startpagina oproep tot actie functionaliteit", + ], + "Invalid title" => [ + 0 => "Ongeldige titel", + ], + "Invalid status" => [ + 0 => "Ongeldige status", + ], + "Invalid type" => [ + 0 => "Ongeldig type", + ], + "Invalid visibility" => [ + 0 => "Ongeldige zichtbaarheid", + ], + "Invalid internal type" => [ + 0 => "Ongeldig intern type", + ], + "Invalid target attribute" => [ + 0 => "Ongeldig doelattribuut", + ], + "Invalid rel attribute" => [ + 0 => "Ongeldig rel attribuut", + ], + "Invalid icon" => [ + 0 => "Ongeldig icoon", + ], + "Invalid URL key" => [ + 0 => "Ongeldige URL sleutel", + ], + "Invalid file path" => [ + 0 => "Ongeldig bestandspad", + ], + "Invalid link URL" => [ + 0 => "Ongeldige link URL", + ], + "Invalid user minimum age" => [ + 0 => "Ongeldige minimum leeftijd voor gebruiker", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Enkel alfanumeriek, koppelteken en underscore karakters zijn toegestaan", + ], + "Invalid URL" => [ + 0 => "Ongeldige URL", + ], + "Routes can't be the same" => [ + 0 => "Routes kunnen niet hetzelfde zijn", + ], + "Invalid upload image path" => [ + 0 => "Ongeldig uploadpad voor afbeeldingen", + ], + "Invalid call to action URL" => [ + 0 => "Ongeldige call to action URL", + ], + "Max. allowed %s" => [ + 0 => "Maximum toegestaan: %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Kan %m niet koppelen aan een bestaande map (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Kan %m niet koppelen aan een bestaande route (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Kan %m niet koppelen aan %r (gebruikersnaam conflict)", + ], + "Invalid SMTP server" => [ + 0 => "Ongeldige SMTP-server", + ], + "Invalid SMTP username" => [ + 0 => "Ongeldige SMTP-gebruikernaam", + ], + "Invalid key" => [ + 0 => "Ongeldige sleutel", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Deze URL sleutel is al in gebruik door een andere pagina (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Dit bestandspad is alreeds in gebruik door andere pagina (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Kan pagina inhoud niet opslaan: %s.", + ], + "Following" => [ + 0 => "Volgend", + ], + "About" => [ + 0 => "Over", + ], + "Image ID" => [ + 0 => "Afbeelding ID", + ], + "Uploader IP" => [ + 0 => "Uploader IP", + ], + "Ban IP" => [ + 0 => "Blokkeer IP", + ], + "IP already banned" => [ + 0 => "IP reeds geblokkeerd.", + ], + "Upload date" => [ + 0 => "Upload datum", + ], + "Image %i in %a album" => [ + 0 => "Afbeelding %i in %a album", + ], + "Image %i in %c category" => [ + 0 => "Afbeelding %i in %c categorie", + ], + "Image %i hosted in %w" => [ + 0 => "Afbeelding %i gehost in %w", + ], + "Direct links" => [ + 0 => "Directe link", + ], + "Image link" => [ + 0 => "Afbeelding link", + ], + "Image URL" => [ + 0 => "Afbeelding URL", + ], + "Thumbnail URL" => [ + 0 => "Thumbnail URL", + ], + "Medium URL" => [ + 0 => "Medium URL", + ], + "Full image" => [ + 0 => "Volledige afbeelding", + ], + "Full image (linked)" => [ + 0 => "Volledige afbeelding (gelinkt)", + ], + "Medium image (linked)" => [ + 0 => "Medium afbeelding (gelinkt)", + ], + "Thumbnail image (linked)" => [ + 0 => "Thumbnail afbeelding (gelinkt)", + ], + "Login needed" => [ + 0 => "Inloggen vereist", + ], + "IP address already banned" => [ + 0 => "IP adres is reeds geblokkeerd.", + ], + "Missing values" => [ + 0 => "Ontbrekende waarden", + ], + "Invalid role" => [ + 0 => "Ongeldige rol", + ], + "Username already being used" => [ + 0 => "Gebruikersnaam is al in gebruik", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Voeg een wachtwoord of een andere sociale connectie toe voor het verwijderen van %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Voeg een e-mail adres of een andere sociale connectie toe voor het verwijderen van %s", + ], + "%s has been disconnected." => [ + 0 => "%s is verbroken.", + ], + "Test email from %s @ %t" => [ + 0 => "Test email van %s @ %t", + ], + "This is just a test" => [ + 0 => "Dit is slechts een test", + ], + "Test email sent to %s." => [ + 0 => "Test email verzonden naar %s.", + ], + "Downloading %s data" => [ + 0 => "Download %s data", + ], + "User %s followed" => [ + 0 => "Gebruiker %s wordt gevolgd.", + ], + "User %s unfollowed" => [ + 0 => "Gebruiker %s wordt niet meer gevolgd.", + ], + "Album cover altered" => [ + 0 => "Album cover aangepast", + ], + "Content liked" => [ + 0 => "Inhoud gewaardeerd", + ], + "Content disliked" => [ + 0 => "Inhoud niet meer gewaardeerd", + ], + "%u liked your %t %c" => [ + 0 => "%u waardeert uw %t %c", + ], + "%u is now following you" => [ + 0 => "%u volgt u nu", + ], + "A private user" => [ + 0 => "Een prive-gebruiker", + ], + "Wrong Username/Email password combination" => [ + 0 => "Verkeerde inloggegevens", + ], + "Sign in" => [ + 0 => "Inloggen", + ], + "Moderate" => [ + 0 => "Modereren", + ], + "Upload images" => [ + 0 => "Upload afbeeldingen", + ], + "Upload plugin" => [ + 0 => "Upload plugin", + ], + "Image search results for %s" => [ + 0 => "Zoekresultaten afbeelding voor %s", + ], + "Album search results for %s" => [ + 0 => "Zoekresultaten album voor %s", + ], + "User search results for %s" => [ + 0 => "Zoekresultaten gebruiker voor %s", + ], + "Account" => [ + 0 => "Account", + ], + "Profile" => [ + 0 => "Profiel", + ], + "Linked accounts" => [ + 0 => "Gekoppelde accounts", + ], + "Powered by" => [ + 0 => "Ondersteunt door", + ], + "Invalid image expiration: %s" => [ + 0 => "Ongeldige afbeelding expiratie: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Een e-mail is verzonden naar %s met instructies om dit e-mailadres te activeren.", + ], + "Invalid name" => [ + 0 => "Ongeldige naam", + ], + "Invalid website" => [ + 0 => "Ongeldige website", + ], + "Wrong password" => [ + 0 => "Verkeerd wachtwoord", + ], + "Use a new password" => [ + 0 => "Gebruik een nieuw wachtwoord", + ], + "Changes have been saved." => [ + 0 => "Wijziging is opgeslagen", + ], + "Password has been changed" => [ + 0 => "Wachtwoord is gewijzigd", + ], + "Password has been created." => [ + 0 => "Wachtwoord is aangemaakt.", + ], + "Wrong Username/Email values" => [ + 0 => "Verkeerde inloggegevens", + ], + "Settings for %s" => [ + 0 => "Instellingen voor %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "U moet akkoord gaan met de voorwaarden en het privacybeleid", + ], + "You must be at least %s years old to use this website." => [ + 0 => "U moet minimaal %s jaar oud zijn om deze website te gebruiken.", + ], + "Create account" => [ + 0 => "Maak een account", + ], + "Upload" => [ + 0 => "Upload", + ], + "%s's Images" => [ + 0 => "%s's Afbeeldingen", + ], + "Results for" => [ + 0 => "Resultaten voor", + ], + "Liked by %s" => [ + 0 => "Geliked door %s", + ], + "Liked" => [ + 0 => "Liked", + ], + "Followers" => [ + 0 => "Volgers", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albums in %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) in %w", + ], + "Discovery" => [ + 0 => "Ontdekken", + ], + "Random" => [ + 0 => "Willekeurig", + ], + "Advanced search" => [ + 0 => "Geavanceerd zoeken", + ], + "Notices (%s)" => [ + 0 => "Mededelingen (%s)", + ], + "Notifications" => [ + 0 => "Berichten", + ], + "You don't have notifications" => [ + 0 => "U hebt geen berichten", + ], + "My Profile" => [ + 0 => "Mijn profiel", + ], + "Lights" => [ + 0 => "Donker/licht", + ], + "Sign out" => [ + 0 => "Log uit", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Wij hebben een aanvraag ontvangen om het volgende e-mailadres <a href=\"%u\">%n</a> te wijzigen op %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Om uw e-mailadres te activeren, klik op <a href=\"%s\">deze link</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "U kunt ook deze link in uw adresbalk plakken: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Heeft u niet om dit bericht gevraagd, dan kunt u dit bericht negeren.", + ], + "This request was made from IP: %s" => [ + 0 => "Deze aanvraag is gedaan vanaf IP adres: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Wij hebben een aanvraag ontvangen om het account %n te registreren op %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Om uw account te activeren, klik op <a href=\"%s\">deze link</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Wij hebben een aanvraag ontvangen om het wachtwoord <a href=\"%u\">%n</a> te wijzigen.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Om uw wachtwoord te wijzigen <a href=\"%s\">volgt u deze link</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hallo %n, welkom bij %w.", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Nu uw account klaar is, kunt u foto's gaan uploaden, albums aanmaken , krijgt u de mogelijkheid om de privacy-instellingen te kiezen voor uw foto's en kunt u verder nog veel meer leuke dingen gaan ontdekken.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Hier is uw eigen profiel: <a href=\"%u\">%n</a>. Ga nu snel aan de slag en maak deze meer persoonlijk.", + ], + "Thank you for joining" => [ + 0 => "Bedankt voor het registreren", + ], + "This email was sent from %w %u" => [ + 0 => "Deze e-mail is verzonden van %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Sleep afbeeldingen naar dit veld of plak afbeeldingen hier om ze te uploaden", + ], + "Select the images to upload" => [ + 0 => "Selecteer afbeeldingen om te uploaden", + ], + "browse from your computer" => [ + 0 => "vanaf uw computer bladeren", + ], + "add image URLs" => [ + 0 => "voeg afbeeldingen URL's toe", + ], + "You can also %i or %u." => [ + 0 => "U kunt ook %i of %u.", + ], + "browse from your device" => [ + 0 => "vanaf uw toestel bladeren", + ], + "take a picture" => [ + 0 => "neem een foto", + ], + "You can also %i, %c or %u." => [ + 0 => "U kunt ook %i, %c of %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Bewerk of pas formaat aan van de afbeelding door op de voorvertoning te klikken", + ], + "Edit any image by touching the image preview" => [ + 0 => "Bewerk iedere afbeelding door het voorbeeld aan te raken", + ], + "your computer" => [ + 0 => "uw computer", + ], + "You can add more images from %i or %u." => [ + 0 => "U kunt meer afbeeldingen toevoegen vanaf %i of %u.", + ], + "your device" => [ + 0 => "uw apparaat", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "U kunt meer afbeeldingen toevoegen vanaf %i, %c of %u.", + ], + "Uploading %q %o" => [ + 0 => "Uploading %q %o", + ], + "complete" => [ + 0 => "afgerond", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "De wachtrij wordt geupload, dit duurt een aantal seconden voordat het gereed is.", + ], + "Upload complete" => [ + 0 => "Upload voltooid", + ], + "Uploaded content added to %s." => [ + 0 => "Geuploade afbeeldingen toegevoegd aan %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "U kunt %c met de afbeeldingen die net zijn geupload of %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "U kunt %c met de afbeeldingen die net zijn geupload.", + ], + "create a new album" => [ + 0 => "een nieuw album maken", + ], + "move it to an existing album" => [ + 0 => "verplaats naar een bestaand album", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "U moet %s of %l om de informatie op te slaan in uw account.", + ], + "create an account" => [ + 0 => "Maak een account", + ], + "sign in" => [ + 0 => "Log in", + ], + "No %s have been uploaded" => [ + 0 => "Geen %s is geupload", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Er zijn een aantal fouten gebeurd waardoor uw aanvraag niet verwerkt kon worden.", + ], + "Category" => [ + 0 => "Categorie", + ], + "Select category" => [ + 0 => "Selecteer categorie", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Markeer dit wanneer de inhoud onveilige inhoud bevat (NSFW)", + ], + "Not family safe upload" => [ + 0 => "Onveilige (NSFW) upload", + ], + "Uploading" => [ + 0 => "Uploaden", + ], + "or" => [ + 0 => "of", + ], + "cancel" => [ + 0 => "annuleren", + ], + "cancel remaining" => [ + 0 => "annuleer resterende", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Opmerking: bepaalde afbeeldingen kunnen niet geüpload worden.", + ], + "learn more" => [ + 0 => "Meer informatie", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Zie het <a data-modal=\"simple\" data-target=\"failed-upload-result\">foutrapport</a> voor meer informatie!", + ], + "Register to get %s" => [ + 0 => "Registreer om %s te krijgen", + ], + "reset" => [ + 0 => "reset", + ], + "close" => [ + 0 => "sluiten", + ], + "Note" => [ + 0 => "Opmerking", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "We moeten de geüploade inhoud goedkeuren voordat deze gedeeld kan worden.", + ], + "copy" => [ + 0 => "Kopieër", + ], + "insert" => [ + 0 => "invoegen", + ], + "Remove" => [ + 0 => "Verwijder", + ], + "Title" => [ + 0 => "Titel", + ], + "optional" => [ + 0 => "optioneel", + ], + "Resize image" => [ + 0 => "Verander grootte foto", + ], + "Width" => [ + 0 => "Breedte", + ], + "Height" => [ + 0 => "Hoogte", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Opmerking: bewegende GIF foto's worden niet in grootte gewijzigd.", + ], + "Auto delete image" => [ + 0 => "Verwijder automatisch foto", + ], + "Sign up" => [ + 0 => "Registreer", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s om het automatisch verwijderen van foto's te kunnen aanpassen of uit te schakelen.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Markeer dit wanneer de inhoud onveilige inhoud bevat (NSFW)", + ], + "Flag as unsafe" => [ + 0 => "Markeer als onveilig (NSFW)", + ], + "Description" => [ + 0 => "Omschrijving", + ], + "Brief description of this image" => [ + 0 => "Omschrijving van deze afbeelding", + ], + "Add image URLs" => [ + 0 => "Afbeelding-URL's toevoegen", + ], + "Add the image URLs here" => [ + 0 => "Voeg hier de afbeelding-URL toe", + ], + "Create album" => [ + 0 => "Nieuw album", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "De geuploade gegevens worden verplaatst naar dit nieuw aangemaakte album.", + ], + "existing album" => [ + 0 => "Bestaand album", + ], + "You can also move the content to an %a." => [ + 0 => "U kunt de gegevens ook verplaatsten naar een %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "U moet %s of %l als u dit album later aan wilt passen.", + ], + "Move to album" => [ + 0 => "Verplaats naar album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Selecteer een bestaand album om de geüploade content naar te verplaatsen. U kunt ook <a class=\"modal-switch\" data-switch=\"move-new-album\">een nieuw album maken</a> en de inhoud daarheen verplaatsen.", + ], + "Error report" => [ + 0 => "Foutrapport", + ], + "Links" => [ + 0 => "Links", + ], + "Viewer links" => [ + 0 => "Kijker", + ], + "HTML Codes" => [ + 0 => "HTML codes", + ], + "HTML image" => [ + 0 => "HTML foto", + ], + "HTML full linked" => [ + 0 => "HTML groot met link", + ], + "HTML medium linked" => [ + 0 => "HTML medium met link", + ], + "HTML thumbnail linked" => [ + 0 => "HTML thumbnail met link", + ], + "BBCodes" => [ + 0 => "BB codes", + ], + "BBCode full" => [ + 0 => "BB code groot", + ], + "BBCode full linked" => [ + 0 => "BB code groot met link", + ], + "BBCode medium linked" => [ + 0 => "BB code medium met link", + ], + "BBCode thumbnail linked" => [ + 0 => "BB code thumbnails met link", + ], + "Markdown full" => [ + 0 => "Markdown groot", + ], + "Markdown full linked" => [ + 0 => "Markdown groot met link", + ], + "Markdown medium linked" => [ + 0 => "Markdown medium met link", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown thumbnail met link", + ], + "All these words" => [ + 0 => "Al deze woorden", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Voer de belangrijke woorden in: tri-colour rat terrier", + ], + "This exact word or phrase" => [ + 0 => "Precieze woord of zin", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Type dezelfde woorden in tussen aanhalingstekens: \"rat terrier\"", + ], + "None of these words" => [ + 0 => "Geen van deze woorden", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Voer een minteken in voor de woorden die u niet wilt: -rodent - Jack Russell\".", + ], + "Storage" => [ + 0 => "Opslag", + ], + "IP address" => [ + 0 => "IP adres", + ], + "Album name" => [ + 0 => "Album naam", + ], + "move to existing album" => [ + 0 => "verplaats naar bestaande album", + ], + "Album description" => [ + 0 => "Album omschrijving", + ], + "Brief description of this album" => [ + 0 => "Korte omschrijving van dit album", + ], + "Album privacy" => [ + 0 => "Album privacy", + ], + "Who can view this content" => [ + 0 => "Wie kan deze inhoud zien?", + ], + "Private (just me)" => [ + 0 => "Prive (alleen ik)", + ], + "Private (anyone with the link)" => [ + 0 => "Privé (iedereen met link)", + ], + "Private (password protected)" => [ + 0 => "Privé (wachtwoord beveiligd)", + ], + "Album password" => [ + 0 => "Album wachtwoord", + ], + "Name" => [ + 0 => "Naam", + ], + "Category name" => [ + 0 => "Categorie naam", + ], + "URL key" => [ + 0 => "URL sleutel", + ], + "Category URL key" => [ + 0 => "Categorie URL sleutel", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Alleen letters, cijfers en koppeltekens", + ], + "Brief description of this category" => [ + 0 => "Korte omschrijving van deze categorie", + ], + "Untitled image" => [ + 0 => "Naamloze afbeelding", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Markeer dit als het beeld niet veilig is voor het werk", + ], + "Flag not safe" => [ + 0 => "Vlag niet veilig", + ], + "Path" => [ + 0 => "Pad", + ], + "Local path (absolute)" => [ + 0 => "Lokaal pad (absoluut)", + ], + "Directory structure" => [ + 0 => "Mapstructuur", + ], + "Parse top level folders as users (username)" => [ + 0 => "Parse top level folders als gebruikers (gebruikersnaam)", + ], + "Parse top level folders as albums" => [ + 0 => "Parse top level mappen als album", + ], + "Don't parse folders" => [ + 0 => "Parseer geen mappen", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Bij het parseren van mappen op het hoogste niveau als gebruiker, worden mappen op het tweede niveau geparsed als gebruikersalbums. Het parseren van mappen op het hoogste niveau als albums voegt deze toe als gastalbums.", + ], + "Threads" => [ + 0 => "Threads", + ], + "Select number of threads" => [ + 0 => "Selecteer aantal threads", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Dit bepaalt hoe intensief en snel het importproces zal zijn. Gebruik niet meer dan %s threads op een gedeelde server.", + ], + "You can use wildcard * characters." => [ + 0 => "U kunt wildcard * karakters gebruiken.", + ], + "Expiration date" => [ + 0 => "Vervaldatum", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Voorbeeld", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Tot welke datum moet dit IP geblokkeerd worden? Leeg laten is oneindig.", + ], + "Message" => [ + 0 => "Bericht", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Tekstbericht, HTML of verwijs URL", + ], + "Existing album" => [ + 0 => "Bestaand album", + ], + "create new album" => [ + 0 => "maak nieuw album", + ], + "Storage name" => [ + 0 => "Opslagnaam", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Regio", + ], + "Storage region" => [ + 0 => "Opslagregio", + ], + "Storage bucket" => [ + 0 => "Opslagvoorraad", + ], + "Key" => [ + 0 => "Sleutel", + ], + "Storage key" => [ + 0 => "Opslagsleutel", + ], + "Secret" => [ + 0 => "Geheim", + ], + "Storage secret" => [ + 0 => "Opslag secret", + ], + "Private key" => [ + 0 => "Privé sleutel", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON sleutel", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "U hebt hiervoor een <a %s>service abonnement</a> nodig.", + ], + "Service name" => [ + 0 => "Service name", + ], + "Identity URL" => [ + 0 => "Identity URL", + ], + "Identity API endpoint" => [ + 0 => "Identity API endpoint", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API endpoint for OpenStack identity", + ], + "Username" => [ + 0 => "Gebruikersnaam", + ], + "Container" => [ + 0 => "Container", + ], + "Storage container" => [ + 0 => "Opslagcontainer", + ], + "Tenant id" => [ + 0 => "Tenant id", + ], + "Tenant id (account id)" => [ + 0 => "Tenant id (account id)", + ], + "Tenant name" => [ + 0 => "Tenant name", + ], + "Tenant name (account name)" => [ + 0 => "Tenant name (account name)", + ], + "Storage endpoint" => [ + 0 => "Opslageindpunt", + ], + "Server address" => [ + 0 => "Serveradres", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname of IP van de opslagserver", + ], + "Server path" => [ + 0 => "Serverpad", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Absoluut pad waar de bestanden worden opgeslagen in de context van de %p login. Gebruik %s voor root pad.", + ], + "Server login" => [ + 0 => "Server login", + ], + "Server password" => [ + 0 => "Server wachtwoord", + ], + "Local path" => [ + 0 => "Lokaal pad", + ], + "Local path where the files will be stored" => [ + 0 => "Lokaal pad waar de bestanden zullen worden opgeslagen", + ], + "Storage capacity" => [ + 0 => "Opslagcapaciteit", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Voorbeeld: 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Deze opslag zal worden uitgeschakeld als de capaciteit is bereikt. Laat leeg of vul o (nul) in voor geen limiet.", + ], + "Storage URL" => [ + 0 => "Opslag URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Het systeem zal de afbeeldingen uit deze opslag spiegelen naar deze URL.", + ], + "view more" => [ + 0 => "bekijk meer", + ], + "Load more" => [ + 0 => "Laad meer", + ], + "Select all" => [ + 0 => "Alles selecteren", + ], + "Clear" => [ + 0 => "Leegmaken", + ], + "Get embed codes" => [ + 0 => "Bekijk codes voor insluiten", + ], + "Assign category" => [ + 0 => "Categorie toewijzen", + ], + "Flag as safe" => [ + 0 => "Markeer als vellig", + ], + "Clear selection" => [ + 0 => "Selectie verwijderen", + ], + "Create new album" => [ + 0 => "Maak een nieuw album", + ], + "Create sub album" => [ + 0 => "Subalbum maken", + ], + "Share" => [ + 0 => "Delen", + ], + "Sign in with another account" => [ + 0 => "Met een ander account inloggen", + ], + "Continue with %label%" => [ + 0 => "Doorgaan met %label%", + ], + "Home" => [ + 0 => "Home", + ], + "There's nothing to show here." => [ + 0 => "Er is hier niets te zien", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Alle geselecteerde afbeeldingen worden toegewezen aan deze categorie.", + ], + "There is no categories." => [ + 0 => "Er zijn geen categorieën.", + ], + "Confirm flag content as safe" => [ + 0 => "Bevestig dat content veilig is", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Weet u zeker dat u deze inhoud als veilig wilt markeren?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Bevestig dat deze content onveilig is", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Weet u zeker dat u deze inhoud als onveilig wilt markeren?", + ], + "Confirm approval" => [ + 0 => "Bevestig goedkeuring", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "Wilt u echt alle geselecteerde inhoud verwijderen? Dit kan niet ongedaan worden gemaakt.", + ], + "Confirm deletion" => [ + 0 => "Bevestig verwijderen", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Wilt u deze inhoud echt verwijderen? Dit kan niet ongedaan gemaakt worden.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Wilt u echt alle geselecteerde inhoud verwijderen? Dit kan niet ongedaan worden gemaakt.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Wilt u deze selectie echt verwijderen? Dit kan niet ongedaan gemaakt worden.", + ], + "Guest" => [ + 0 => "Bezoeker", + ], + "Keyboard shortcuts" => [ + 0 => "Toetsenbord shortcuts", + ], + "Private album" => [ + 0 => "Privé-album", + ], + "Password protected" => [ + 0 => "Wachtwoord beschermd", + ], + "Uploaded by guest" => [ + 0 => "Toegevoegd door een bezoeker", + ], + "From %s" => [ + 0 => "Van %s", + ], + "Uploaded by private" => [ + 0 => "Toegevoegd door privé", + ], + "by %u" => [ + 0 => "door %u", + ], + "Toggle unsafe flag" => [ + 0 => "Selecteer onveilig", + ], + "That page doesn't exist" => [ + 0 => "Deze pagina is niet beschikbaar", + ], + "The requested page was not found." => [ + 0 => "De gevraagde pagina is niet gevonden", + ], + "The user has been deleted" => [ + 0 => "De gebruiker is verwijderd", + ], + "Your account is almost ready" => [ + 0 => "Uw account is bijna klaar voor gebruik", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Een e-mail werd verstuurd naar %s met instructies om uw account te activeren. De activatielink is slechts 48 uur geldig. Indien u deze niet heeft ontvangen, controleer dan uw spam-folder.", + ], + "Resend activation" => [ + 0 => "Activatie opnieuw verzenden", + ], + "You have successfully changed your account email to %s" => [ + 0 => "U heeft met succes uw e-mailadres aangepast naar %s", + ], + "Go to my profile" => [ + 0 => "Naar mijn profiel", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Er wordt een bevestigingslink naar dit e-mailadres gestuurd met de nodige gegevens om uw account te activeren.", + ], + "Your email address" => [ + 0 => "Uw e-mailadres", + ], + "Submit" => [ + 0 => "Versturen", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Een e-mail met instructies om uw wachtwoord te resetten is verstuurd naar het opgegeven e-mailadres. Indien u deze niet heeft ontvangen, controleer dan uw spam-folder.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Een eerdere e-mail is verstuurd met instructies om uw wachtwoord te resetten. Indien u deze niet heeft ontvangen, controleer dan uw spam-folder.", + ], + "Resend instructions" => [ + 0 => "Instructies opnieuw verzenden", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Voer uw gebruikersnaam of emailadres in om verder te gaan. Mogelijk dat u de spam map na moet kijken of whitelist %s", + ], + "Username or Email address" => [ + 0 => "Gebruikersnaam of e-mailadres", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Uw wachtwoord is aangepast. U kunt vanaf nu inloggen met uw nieuw wachtwoord.", + ], + "Login now" => [ + 0 => "Nu inloggen", + ], + "Enter your new password" => [ + 0 => "Voer een nieuw wachtwoord in", + ], + "%d characters min" => [ + 0 => "minimaal %d tekens", + ], + "Password strength" => [ + 0 => "Wachtwoord sterkte", + ], + "Re-enter your new password" => [ + 0 => "Wachtwoord nogmaals invoeren", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Een email is verzonden naar %s met instructies om uw account te activeren. Mocht u deze instructies niet ontvangen, kijk dan ook in de junk of spammail", + ], + "This content is private" => [ + 0 => "Deze inhoud is privé", + ], + "Sub album" => [ + 0 => "Subalbum", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Weet u zeker dat u dit album inclusief afbeeldingen wil verwijderen? Dit kan niet ongedaan gemaakt worden.", + ], + "Upload to album" => [ + 0 => "Upload naar album", + ], + "You like this" => [ + 0 => "U waardeert dit", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Lees en voldoen aan de volgende voorwaarden voordat u verder gaat:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Deze website bevat informatie, links en afbeeldingen van seksueel expliciet materiaal. Als u jonger bent dan de leeftijd van %s, als dergelijk materiaal u beledigt of als het illegaal is om dergelijk materiaal te bekijken in uw gemeenschap, ga dan niet verder.\n\nIk ben ten minste %s jaar en ik geloof dat als volwassene het mijn onvervreemdbaar recht is om seksueel expliciet materiaal te ontvangen en te bekijken. Ik wens seksueel expliciet materiaal te ontvangen en te bekijken.\n\nIk geloof dat seksuele handelingen tussen instemmende volwassenen niet beledigend zijn, noch obsceen. Het bekijken, lezen en downloaden van seksueel expliciete materiaal schend niet de normen van mijn gemeenschap, stad, staat of land.\n\nHet seksueel expliciet materiaal dat ik bekijk is voor mijn eigen persoonlijk gebruik en ik zal niet minderjarigen blootstellen aan het materiaal.\n\nIk ben als enige verantwoordelijk voor valse onthullingen of juridische gevolgen van het bekijken, lezen of downloaden van materiaal op deze site. Bovendien is deze website, noch haar gelieerde ondernemingen verantwoordelijk voor enige juridische gevolgen als gevolg van frauduleuze toegang tot of gebruik van deze website.\n\nDit toestemming scherm vormt een wettelijke overeenkomst tussen deze website en u en/of elk bedrijf waarin u een wettelijk of billijk belang heeft . Als enig deel van deze overeenkomst niet afdwingbaar wordt geacht door een bevoegde rechtbank, zal niet van invloed zijn op de afdwingbaarheid van de andere delen van de overeenkomst.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Middels klikken op 'Ik bevestig' verklaart u alle bovengenoemde voorwaarden als gelezen en begrepen.", + ], + "I Agree" => [ + 0 => "Ik bevestig", + ], + "documentation" => [ + 0 => "documentatie", + ], + "Learn about %s settings at our %d." => [ + 0 => "Meer informatie over %s instellingen op onze %d.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "Het verbindende IP wordt bepaald met behulp van de servervariabele %var%. Als het gedetecteerde IP niet overeenkomt met het uwe, betekent dit dat uw webserver onder een proxy staat en dat u uw server moet aanpassen om het echte verbindende IP in te stellen.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Voor Nginx moet u %nginx% gebruiken, voor Apache %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Zorg ervoor dat u dit probleem aanpakt, want het systeem vertrouwt op nauwkeurige IP-detecties om basisfunctionaliteiten te bieden en te beschermen tegen spam, flooding en brute force-aanvallen.", + ], + "Disk used" => [ + 0 => "Schijfverbruik", + ], + "Queued" => [ + 0 => "In de wachtrij", + ], + "Working" => [ + 0 => "Werken", + ], + "Paused" => [ + 0 => "Gepauzeerd", + ], + "Canceled" => [ + 0 => "Geannuleerd", + ], + "Completed" => [ + 0 => "Afgerond", + ], + "Top level folders as %s" => [ + 0 => "Top level mappen als %s", + ], + "Actions" => [ + 0 => "Acties", + ], + "Process" => [ + 0 => "Proces", + ], + "Pause" => [ + 0 => "Pauze", + ], + "Cancel" => [ + 0 => "Annuleer", + ], + "Process log" => [ + 0 => "Proceslogboek", + ], + "Errors" => [ + 0 => "Fouten", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Wilt u echt de import ID %s verwijderen?", + ], + "Reset" => [ + 0 => "Reset", + ], + "Resume" => [ + 0 => "Hervatten", + ], + "Status" => [ + 0 => "Status", + ], + "Run the following command to import content to Chevereto:" => [ + 0 => "Voer het volgende commando uit om inhoud naar Chevereto te importeren:", + ], + "Read the %s for more information about this feature." => [ + 0 => "Lees de %s voor meer informatie over deze functie.", + ], + "Add user" => [ + 0 => "Gebruiker toevoegen", + ], + "Role" => [ + 0 => "Rol", + ], + "Manager" => [ + 0 => "Manager", + ], + "Administrator" => [ + 0 => "Beheerder", + ], + "Email address" => [ + 0 => "E-mailadres", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Deze instelling is altijd uitgeschakeld bij persoonlijk gebruik van de website.", + ], + "Add category" => [ + 0 => "Categorie toevoegen", + ], + "Add IP ban" => [ + 0 => "IP ban toevoegen", + ], + "Add storage" => [ + 0 => "Opslag toevoegen", + ], + "Return to pages" => [ + 0 => "Ga terug naar pagina's", + ], + "Website name" => [ + 0 => "Website naam", + ], + "Website doctitle" => [ + 0 => "Website titel", + ], + "Website description" => [ + 0 => "Website omschrijving", + ], + "Automatic" => [ + 0 => "Automatisch", + ], + "Forced" => [ + 0 => "Geforceerd", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a gebruikt HTTPS-detectie aan de serverzijde (aanbevolen). %f zal HTTPS gebruiken ongeacht de configuratie van uw server. %d om helemaal geen HTTPS te gebruiken.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Dit regelt alleen het protocol dat in de URL's wordt gebruikt, het maakt van uw website geen geldige HTTPS-website, tenzij uw server is geconfigureerd voor ondersteuning en gebruik van HTTPS.", + ], + "Default time zone" => [ + 0 => "Standaard tijdzone", + ], + "Select region" => [ + 0 => "Selecteer regio", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Maakt het mogelijk om te zoeken op foto's, albums en gebruikers op basis van een bepaalde zoekopdracht.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Staat toe om te bladeren in publiek toegevoegde afbeeldingen. Het zet ook de categorieën aan.", + ], + "guests" => [ + 0 => "bezoekers", + ], + "Enables explore for guests." => [ + 0 => "Schakel verkennen in voor bezoekers.", + ], + "Enables to browse images randomly." => [ + 0 => "Sta toe om willekeurig afbeeldingen te bladeren.", + ], + "Likes" => [ + 0 => "Waarderingen", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Staat gebruikers toe om inhoud te waarderen en lijsten met 'Meest gewaardeerd' te maken.", + ], + "Followers allows users to follow each other." => [ + 0 => "Volgers staan gebruikers toe om elkaar te volgen.", + ], + "Website mode" => [ + 0 => "Websitemodus", + ], + "Community" => [ + 0 => "Community", + ], + "Personal" => [ + 0 => "Persoonlijk", + ], + "You can switch the website mode anytime." => [ + 0 => "U kunt de websitemodus altijd wijzigen.", + ], + "Personal mode target user" => [ + 0 => "Persoonlijke modus doelgebruiker", + ], + "User ID" => [ + 0 => "Gebruikers ID", + ], + "Your user id is: %s" => [ + 0 => "Uuw gebruikersnummer is: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Numeriek nummer van de doelgebruiker voor persoonlijke modus.", + ], + "Personal mode routing" => [ + 0 => "Persoonlijke mode route", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Persoonlijke route voor verwijzing naar /gebruikersnaam of /iets. Gebruik \"/\" om naar de homepage te verwijzen.", + ], + "Website privacy mode" => [ + 0 => "Website privé mode", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Privémodus zorgt ervoor dat alleen geregistreerde gebruikers de website kunnen gebruiken", + ], + "Content privacy mode" => [ + 0 => "Privacy-instellingen", + ], + "Default" => [ + 0 => "Standaard", + ], + "Force private (self)" => [ + 0 => "Forceer privé (alleen ik)", + ], + "Force private (anyone with the link)" => [ + 0 => "Forceer privé (iedereen met link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Geforceerde privacy-instellingen zullen gebruikersinstellingen vervangen", + ], + "Page title" => [ + 0 => "Titel pagina", + ], + "Page status" => [ + 0 => "Status pagina", + ], + "Active page" => [ + 0 => "Actieve pagina", + ], + "Inactive page (%s)" => [ + 0 => "Inactieve pagina (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Alleen actieve pagina's zijn toegankelijk.", + ], + "Type" => [ + 0 => "Type", + ], + "Terms of service" => [ + 0 => "Gebruikersvoorwaarden", + ], + "Privacy" => [ + 0 => "Privacy", + ], + "Contact" => [ + 0 => "Contact", + ], + "Extra page" => [ + 0 => "Extra pagina", + ], + "Internal page type" => [ + 0 => "Intern paginatype", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "U kunt meerdere extra pagina's hebben, maar slechts één van de andere speciale interne types.", + ], + "Page visibility" => [ + 0 => "Zichtbaarheid pagina", + ], + "Visible page" => [ + 0 => "Zichtbare pagina", + ], + "Hidden page" => [ + 0 => "Verborgen pagina", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Verborgen pagina's worden niet systeemmenu's getoond, maar iedereen met de link heeft toegang.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Alleen alfanumeriek, koppeltekens en slash", + ], + "File path" => [ + 0 => "Bedtandspad", + ], + "A %f file relative to %s" => [ + 0 => "Een %f bestand ten opzichte van %s", + ], + "Meta keywords" => [ + 0 => "Meta sleutelwoorden", + ], + "Meta description" => [ + 0 => "Meta omschrijving", + ], + "Source code" => [ + 0 => "Broncode", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Geen schrijfrechten in pad %s, gebruik een externe editor om dit bestand toe te voegen.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Geen schrijfrechten voor %s, gebruik een externe editor om de inhoud van dit bestand te wijzigen.", + ], + "Taken from: %s" => [ + 0 => "Genomen van: %s", + ], + "Link URL" => [ + 0 => "Link URL", + ], + "Link target attribute" => [ + 0 => "Link doelattribuut", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Selecteer %s om de pagina of link te openen in een nieuw scherm.", + ], + "Link rel attribute" => [ + 0 => "Link rel attribuut", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Alleen alfanumeriek, koppeltekens en spaties", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s attribuut", + ], + "Link icon" => [ + 0 => "Link icoon", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Controleer de referentie <a %s>referentie icoon</a> voor de volledige lijst met ondersteunde iconen.", + ], + "Sort order display" => [ + 0 => "Sorteervolgorde weergave", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Pagina sorteervolgorde weergave voor menu's en lijsten. Gebruik \"1\" voor de hoogste prioriteit.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Wilt u echt pagina ID %s verwijderen? Dit kan niet ongedaan worden gemaakt.", + ], + "Enabled image formats" => [ + 0 => "Ingeschakelde afbeeldingsformaten", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Niet geselecteerde bestandsformaten zijn niet toegestaan om te uploaden.", + ], + "Enable uploads" => [ + 0 => "Schakel uploads in", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Schakel dit in indien u het uploaden van afbeeldingen wilt toestaan​​. Deze instelling heeft geen invloed op beheerders.", + ], + "Upload user interface" => [ + 0 => "Gebruikersinterface uploaden", + ], + "On-page container" => [ + 0 => "Container op pagina", + ], + "route" => [ + 0 => "route", + ], + "Guest uploads" => [ + 0 => "Bezoeker uploads", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Schakel dit in om bezoeker uploads toe te staan", + ], + "Moderate uploads" => [ + 0 => "Modereer uploads", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Schakel dit in om inkomende uploads te modereren. De inhoud zal moderatie vereisen voor goedkeuring.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Insluitcodes inschakelen (uploader)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Selecteer dit om de insluitcodes te tonen als de upload gereed is.", + ], + "Upload threads" => [ + 0 => "Upload threads", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Aantal gelijktijdige uploads", + ], + "Redirect on single upload" => [ + 0 => "Doorverwijzing naar enkelvoudige upload", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Schakel dit in voor het doorverwijzen naar de pagina met het plaatje met een enkelvoudige upload.", + ], + "Enable duplicate uploads" => [ + 0 => "Sta dubbele uploads toe", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Schakel dit in indien u het uploaden van van dubbele afbeeldingen vanaf hetzelfde IP wilt toestaan binnen 24 uur​​. Deze instelling heeft geen invloed op beheerders.", + ], + "Enable expirable uploads" => [ + 0 => "Sta tijd gebonden uploads toe", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Schakel dit in om uploads met automatisch verwijderen toe te staan.", + ], + "Auto delete guest uploads" => [ + 0 => "Automatisch verwijderen van uploads van bezoekers", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Schakel dit in om automatisch afbeeldingen van bezoekers te verwijderen na een bepaalde tijd.", + ], + "Maximum image size" => [ + 0 => "Maximale afbeeldingsgrootte", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Afbeeldingen groter dan dit formaat worden automatisch verkleind. Gebruik nul (0) om geen limiet in te stellen.", + ], + "Image Exif data" => [ + 0 => "Foto Exif gegevens", + ], + "Keep" => [ + 0 => "Bewaar", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Kies de standaard waarde voor de <a %s>Exif data</a> van de afbeelding bij uploaden.", + ], + "Image Exif data (user setting)" => [ + 0 => "Foto Exif gegevens (gebruikers instelling)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Schakel dit in om iedere gebruiker toe te staan om aan te geven hoe afbeeldings EXIF gegevens worden behandeld.", + ], + "Maximum upload file size" => [ + 0 => "Maximale upload bestandsgrootte", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Maximum grootte toegestaan door de server is %s. Deze limiet is ingesteld via %u en %p (%f waarden).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "Hetzelfde als \"%s\" maar dan voor bezoekers.", + ], + "Image path" => [ + 0 => "Pad", + ], + "Relative to Chevereto root" => [ + 0 => "Relatief aan de hoofdmap van Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Waar wilt u de afbeeldingen opslaan? Relatief aan de Chevereto hoofdmap", + ], + "Storage mode" => [ + 0 => "Opslagwijze", + ], + "Datefolders" => [ + 0 => "Datummappen", + ], + "Direct" => [ + 0 => "Direct", + ], + "Datefolders creates %s structure" => [ + 0 => "Structuur van datummappen: %s", + ], + "File naming method" => [ + 0 => "Bestandsnaamlogica", + ], + "Original" => [ + 0 => "Orgineel", + ], + "Mix original + random" => [ + 0 => "Meng origineel en willekeurig", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Origineel\" probeert de echte bestandsnaam te behouden terwijl \"Willekeurig\" een gegenereerde naam krijgt. Met \"ID\" krijgt de afbeelding enkel het afbeelding ID.", + ], + "Thumb size" => [ + 0 => "Thumbnail formaat", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Thumbnails worden aangepast naar dit formaat.", + ], + "Medium image fixed dimension" => [ + 0 => "Medium afbeelding vaste dimensie", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Medium formaat afbeeldingen worden vastgezet op deze waarden. Bijvoorbeeld, als u 'breedte' selecteert zal die waarde worden vastgezet en zal de afbeeldingshoogte automatisch worden berekend.", + ], + "Medium image fixed size" => [ + 0 => "Medium afbeelding vaste grootte", + ], + "Width or height will be automatically calculated." => [ + 0 => "Breedte of hoogte wordt automatisch berekend.", + ], + "Watermarks" => [ + 0 => "Watermerken", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Schakel dit in om een ​​logo of wat anders in het uploadveld te plaatsen.", + ], + "Watermark user toggles" => [ + 0 => "Watermerk opties t.b.v. gebruikers", + ], + "Enable watermark on guest uploads" => [ + 0 => "Schakel watermerk in bij upload van bezoekers", + ], + "Enable watermark on user uploads" => [ + 0 => "Schakel watermerk in bij upload van gebruikers", + ], + "Enable watermark on admin uploads" => [ + 0 => "Schakel watermerk in bij upload van beheerders", + ], + "Watermark file toggles" => [ + 0 => "Watermerk opties t.b.v. bestanden", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Schakel watermerk in bij upload van GIF plaatjes", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Minimum grootte foto om watermerk toe te voegen", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Foto's kleiner dan dit krijgen geen watermerk. Gebruik nul (0) om geen minimum limiet grootte in te stellen.", + ], + "Watermark image" => [ + 0 => "Watermerk", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "U krijgt de beste resultaten met duidelijke logo's met druppelschaduw. U kunt een grote afbeelding gebruiken als de bestandsgrootte niet zo groot is (aanbevolen maximum is 16KB). Het moet een PNG zijn.", + ], + "Watermark position" => [ + 0 => "Positie watermerk", + ], + "left top" => [ + 0 => "links bovenaan", + ], + "left center" => [ + 0 => "links midden", + ], + "left bottom" => [ + 0 => "links onderaan", + ], + "center top" => [ + 0 => "midden bovenaan", + ], + "center center" => [ + 0 => "midden midden", + ], + "center bottom" => [ + 0 => "midden onderaan", + ], + "right top" => [ + 0 => "rechts bovenaan", + ], + "right center" => [ + 0 => "rechts midden", + ], + "right bottom" => [ + 0 => "rechts onderaan", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Relatieve positie van het watermerk. Eerst horizontaal uitlijnen en vervolgens verticaal uitlijnen.", + ], + "Watermark percentage" => [ + 0 => "Watermerk percentage", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Watermerk percentuele grootte ten opzichte van het doelbeeldgebied. Waarden 1 tot 100.", + ], + "Watermark margin" => [ + 0 => "Marge watermerk", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Marge tussen de rand van het watermerk en de afbeelding (in pixels).", + ], + "Watermark opacity" => [ + 0 => "Doorzichtigheid watermerk", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Doorzichtigheid van het watermerk: van 0 voor transparant tot 100 voor volledig zichtbaar.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Dashboard > Instellingen > Website", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Categorieën werken niet als de verkenner functie is uitgeschakeld. Om deze instelling aan te passen, ga naar %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Zeker weten dat categorie %s moet worden verwijderd? Dit kan niet ongedaan worden gemaakt.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Opmerking: verwijderen van een categorie heeft geen invloed op de plaatjes die bij de categorie horen.", + ], + "Edit category" => [ + 0 => "Wijzig categorie", + ], + "Expires" => [ + 0 => "Verloopt", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Zeker weten dat IP ban %s ongedaan moet worden gemaakt? Dit kan niet ongedaan worden gemaakt.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Verbannen IP adressen kunnen de gehele website niet meer gebruiken.", + ], + "Edit IP ban" => [ + 0 => "Wijzig IP ban", + ], + "Enable signups" => [ + 0 => "Schakel registraties in", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Schakel dit in om registraties toe te staan", + ], + "Enable user content delete" => [ + 0 => "Sta gebruikers toe hun inhoud te verwijderen", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Schakel dit in om gebruikers zelf hun eigen inhoud te verwijderen. Deze instelling heeft geen invloed op de beheerders.", + ], + "Minimum age required" => [ + 0 => "Vereiste minimum leeftijd", + ], + "Empty" => [ + 0 => "Leeg", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Laat leeg als er geen minimum leeftijd is vereist om de website te gebruiken.", + ], + "Notify on user signup" => [ + 0 => "Stuur kennisgeving bij registratie gebruiker", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Schakel dit in als je een email notificatie wilt ontvangen bij registratie van een nieuwe gebruiker.", + ], + "Username routing" => [ + 0 => "Gebruikersnaam routering", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Selecteer indien u %s/gebruikersnaam wilt gebruiken in plaats van %s/gebruiker/gebruikersnaam.", + ], + "Require email confirmation" => [ + 0 => "Verplicht email bevestiging", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Selecteer indien gebruikers hun emailadres moeten valideren bij lid worden.", + ], + "Require email for social signup" => [ + 0 => "Email verplicht voor registeren via sociaal netwerk", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Selecteer indien gebruikers welke een sociaal netwerk gebruiken een emailadres moeten instellen.", + ], + "User avatar max. filesize" => [ + 0 => "Maximale bestandsgrootte avatar gebruiker.", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Maximaal toegestane bestandsgrootte voor avatar gebruiker (maximaal toegestaan door server is %s)", + ], + "User background max. filesize" => [ + 0 => "Maximale bestandsgrootte achtergrond gebruiker", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Maximaal toegestane bestandsgrootte voor achtergrond gebruiker (maximaal toegestaan door server is %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Toont een toestemmingsformulier scherm voordat de toegang tot de website mogelijk is. Handig voor adult content websites waar minderjarigen niet toegestaan zijn.", + ], + "Enable consent screen" => [ + 0 => "Schakel toestemmingsformulier scherm in", + ], + "Consent screen cover image" => [ + 0 => "Toestemmingsformulier scherm afbeelding", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Blokkeer afbeelding uploads per IP wanneer het systeem merkt dat er een spamgolf bezig is op basis van het aantal uploads per periode. Deze instelling heeft geen invloed op beheerders.", + ], + "Notify to email" => [ + 0 => "Stuur meldingen naar email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Schakel dit in om een e-mail te ontvangen bij spam uploads", + ], + "Minute limit" => [ + 0 => "Minuutlimiet", + ], + "Hourly limit" => [ + 0 => "Uurlimiet", + ], + "Daily limit" => [ + 0 => "Dagelijks limiet", + ], + "Weekly limit" => [ + 0 => "Weeklimiet", + ], + "Monthly limit" => [ + 0 => "Maandlimiet", + ], + "Lock %s editing" => [ + 0 => "Blokkeer %s wijzigen", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "Schakel dit in om te voorkomen dat gebruikers de NSFW-vlag wijzigen. Indien ingeschakeld, zullen alleen admin en managers deze toestemming hebben.", + ], + "Show not safe content in listings" => [ + 0 => "Geef onveilige (NFSW) inhoud weer", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Schakel dit in als u onveilige inhoud wilt weergeven in lijsten. Deze instelling heeft geen invloed op beheerders en kan worden overschreven door gebruikersinstellingen.", + ], + "Blur NSFW content in listings" => [ + 0 => "Vervaag NSFW inhoud in lijstoverzicht", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Schakel dit in als u het vervaag effect wilt inschakelen in lijstoverzicht.", + ], + "Show banners in not safe content" => [ + 0 => "Geef banners weer bij onveilige (NFSW) inhoud", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Schakel dit in om banners weer te geven bij onveilige inhoud", + ], + "Show not safe content in random mode" => [ + 0 => "Toon onveilige (NSFW) inhoud in willekeurige modus.", + ], + "List items per page" => [ + 0 => "Items per pagina", + ], + "How many items should be displayed per page listing." => [ + 0 => "Hoeveel items moeten zichtbaar zijn per pagina ?", + ], + "List pagination mode" => [ + 0 => "Paginanummering", + ], + "Endless scrolling" => [ + 0 => "Oneindig scrollen", + ], + "Classic pagination" => [ + 0 => "Standaard paginanummering", + ], + "What pagination method should be used." => [ + 0 => "Wat voor paginanummering moet er gebruikt worden?", + ], + "Listing viewer" => [ + 0 => "Lijst viewer", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Schakel dit in om de lijst viewer te gebruiken wanneer er op een afbeelding wordt geklikt.", + ], + "Image listing size" => [ + 0 => "Afbeeldingen lijstgrootte", + ], + "Fluid" => [ + 0 => "Niet vast", + ], + "Fixed" => [ + 0 => "Vast", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Beide methodes gebruiken een vaste breedte maar de niet vaste methode gebruikt automatische hoogte.", + ], + "Album listing images requirement" => [ + 0 => "Album lijst afbeeldingen eis", + ], + "explore" => [ + 0 => "Verken", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Geef het minimum aantal afbeeldingen aan om albums weer te geven in verkenner.", + ], + "Listing columns number" => [ + 0 => "Toon aantal kolommen", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Hier kunt u instellen hoeveel kolommen er gebruikt moeten worden, gebaseerd op het gebruikte apparaat.", + ], + "Phone" => [ + 0 => "Telefoon", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Desktop (PC)", + ], + "Put your themes in the %s folder" => [ + 0 => "Plaats uw thema in de map %s", + ], + "Tone" => [ + 0 => "Kleur", + ], + "Light" => [ + 0 => "Licht", + ], + "Dark" => [ + 0 => "Donker", + ], + "Main color" => [ + 0 => "Hoofdkleur", + ], + "Hexadecimal color value" => [ + 0 => "Hexadecimale kleurwaarde", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Gebruik dit om de hoofdkleur van het thema te kiezen. Waarde moet in <a href=\"%s\" target=\"_blank\">hex formaat</a> zijn.", + ], + "Top bar button color" => [ + 0 => "Topbalk knop kleur", + ], + "Blue" => [ + 0 => "Blauw", + ], + "Green" => [ + 0 => "Groen", + ], + "Orange" => [ + 0 => "Oranje", + ], + "Red" => [ + 0 => "Rood", + ], + "Grey" => [ + 0 => "Grijs", + ], + "Black" => [ + 0 => "Zwart", + ], + "White" => [ + 0 => "Wit", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Kleur voor de knoppen in de bovenste balk, bijvoorbeeld voor 'Nieuw account'", + ], + "Enable vector logo" => [ + 0 => "Gebruik vectorieel logo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Gebruik vectorieel logo op retinaschermen", + ], + "Vector logo image" => [ + 0 => "Logo in vectorformaat", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Logo in vectorformaat (SVG)", + ], + "Raster logo image" => [ + 0 => "Logo in rasterformaat", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Bitmap-versie van uw logo. Bij voorkeur in .png formaat.", + ], + "Logo height" => [ + 0 => "Hoogte logo", + ], + "No value" => [ + 0 => "Geen waarde", + ], + "Use this to set the logo height if needed." => [ + 0 => "Gebruik dit om indien nodig de hoogte van het logo aan te geven.", + ], + "Favicon image" => [ + 0 => "Favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon. De afbeelding moet dezelfde breedte en hoogte hebben.", + ], + "Image load max. filesize" => [ + 0 => "Laden afbeelding max. grootte", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Afbeeldingen groter dan dit formaat worden voorzien van een knop om de afbeelding in volledig formaat te laden.", + ], + "Enable download button" => [ + 0 => "Schakel downloadknop in", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Schakel dit in om de downloadknop wilt tonen bij afbeeldingen.", + ], + "Enable right click on image" => [ + 0 => "Rechts klikken op afbeelding toestaan", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Selecteer dit om rechts klikken op de afbeeldingen viewer toe te staan.", + ], + "Enable show Exif data" => [ + 0 => "Toon Exif data", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Schakel dit in indien Exif data van de afbeelding getoond moet worden.", + ], + "Enable social share" => [ + 0 => "Aanzetten sociaal delen", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Selecteer dit om knoppen voor sociale netwerken te tonen om inhoud te delen.", + ], + "Enable embed codes (content)" => [ + 0 => "Insluitcodes inschakelen (inhoud)", + ], + "Everybody" => [ + 0 => "Iedereen", + ], + "Users only" => [ + 0 => "Alleen gebruikers", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Selecteer dit om de insluitcodes voor de inhoud te tonen.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Onveilige (NSFW) inhoud checkbox bij uploaden", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Schakel dit in om een checkbox te weergeven voor onveilige inhoud bij het uploaden", + ], + "Custom CSS code" => [ + 0 => "Eigen CSS code", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Zet uw aangepaste CSS-code hier. Het zal als <style> geplaatst worden net vóór de afsluitende </head>-tag.", + ], + "Custom JS code" => [ + 0 => "Eigen JS code", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Zet uw aangepaste JS-code hier. Het zal als <script> geplaatst worden net vóór de afsluitende </head>-tag.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Gebruik hier geen %s markup. Dit is voor gewone JS-code, niet voor HTML-scripttags. Als u hier scripttags gebruikt zal u u website breken.", + ], + "Style" => [ + 0 => "Stijl", + ], + "Landing page" => [ + 0 => "Beginpagina", + ], + "Split landing + images" => [ + 0 => "Opdelen beginpagina en afbeeldingen", + ], + "Route %s" => [ + 0 => "Route %s", + ], + "upload" => [ + 0 => "upload", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Selecteer de homepage stijl. Om het verder aan te passen, wijzig app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Omslagafbeelding", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Wilt u deze afbeelding echt verwijderen? Dit kan niet ongedaan gemaakt worden.", + ], + "Delete image" => [ + 0 => "Verwijder afbeelding", + ], + "Add new cover image" => [ + 0 => "Voeg een nieuwe omslagafbeelding toe.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Dit wordt toegevoegd aan de startpagina %s-tag. Laat het leeg om de standaardinhoud te gebruiken.", + ], + "Paragraph" => [ + 0 => "Paragraaf", + ], + "Call to action button color" => [ + 0 => "Oproep tot actie knop kleur", + ], + "Color of the homepage call to action button." => [ + 0 => "Kleur van de startpagina oproep tot actie knop.", + ], + "Call to action outline style button" => [ + 0 => "Oproep tot actie overzicht opmaak knop", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Schakel dit in om de overzichts opmaak voor de startpagina oproep tot actie knop te gebruiken.", + ], + "Call to action functionality" => [ + 0 => "Oproep tot actie functionaliteit", + ], + "Trigger uploader" => [ + 0 => "Selecteer uploader", + ], + "Open URL" => [ + 0 => "Open URL", + ], + "Call to action URL" => [ + 0 => "Oproep tot actie URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Voer een absolute of relatieve URL in", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Een relatieve URL zoals %r zal worden gekoppeld aan %l", + ], + "Call to action HTML" => [ + 0 => "Oproep tot actie HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Dit wordt toegevoegd aan de oproep tot actie <a>-tag. Laat het leeg om de standaardinhoud te gebruiken.", + ], + "User IDs" => [ + 0 => "Gebruikers ID's", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Een vergelijkende lijst van gebruikers-ID's om afbeeldingen op de homepage te tonen. Laat het leeg of nul om alle recente afbeeldingen weer te geven.", + ], + "Automatic updates check" => [ + 0 => "Controleer automatisch op updates", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Wanneer ingeschakeld controleert het systeem automatisch op nieuwe updates.", + ], + "Display available updates notification" => [ + 0 => "Toon melding voor beschikbare updates", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Schakel in om bovenaan de pagina een waarschuwing te krijgen als er een nieuwe systeemupdate is.", + ], + "Dump update query" => [ + 0 => "Dump update zoekopdracht", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Schakel dit in als u automatisch de juiste taal voor elke gebruiker wilt detecteren en instellen.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URL's", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Activeer deze optie als u SEO %s URL's wilt gebruiken.", + ], + "Maintenance" => [ + 0 => "Onderhoud", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Wanneer ingesteld is op de website een onderhoudsmelding te zien. Deze instelling is niet van toepassing voor beheerders.", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Dit is de unieke code die gebruikt wordt om numerieke ID te converteren naar alfanumeriek. Het werd gegenereerd bij de installatie.", + ], + "PHP error reporting" => [ + 0 => "PHP foutmelding rapportage", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Schakel dit in om fouten van PHP <a %s>error reporting()</a> weer te geven. Dit moet uitgeschakeld staan in een productieomgeving.", + ], + "Debug level" => [ + 0 => "Debug niveau", + ], + "None" => [ + 0 => "Geen", + ], + "Error log" => [ + 0 => "Error log", + ], + "Print errors without error log" => [ + 0 => "Toon errors zonder error log", + ], + "Print and log errors" => [ + 0 => "Toon en sla errors op", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Om het debug niveau in te stellen, kijk in de <A %s>debug documentatie</a>. Standaard niveau is \"Error log\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." => [ + 0 => "Routing maakt het mogelijk om standaard route binds on the fly aan te passen. Alleen alfanumerieke tekens, koppeltekens en onderstrepingstekens zijn toegestaan.", + ], + "Image routing" => [ + 0 => "Afbeelding routering", + ], + "Routing for %s" => [ + 0 => "Routering voor %s", + ], + "Album routing" => [ + 0 => "Album routering", + ], + "Hostname" => [ + 0 => "Hostnaam", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Hostnaam waarop sub-domein wildcards zullen worden toegevoegd.", + ], + "This setting may be overridden by %s." => [ + 0 => "Deze instelling kan met %s worden overschreven.", + ], + "Language subdomains" => [ + 0 => "Taal subdomeinen", + ], + "languages" => [ + 0 => "talen", + ], + "Enable to use %s for %t." => [ + 0 => "Inschakelen van %s voor %t.", + ], + "Username subdomains" => [ + 0 => "Gebruikersnaam subdomeinen", + ], + "user profiles" => [ + 0 => "Gebruikersprofielen", + ], + "Custom language strings" => [ + 0 => "Aangepaste taalreeksen", + ], + "Default language" => [ + 0 => "Standaardtaal", + ], + "Default base language to use." => [ + 0 => "Standaardtaal", + ], + "Auto language" => [ + 0 => "Automatische taalherkenning", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Schakel dit in om de taalselectie automatisch uit te voeren en in te stellen voor elke gebruiker.", + ], + "Language chooser" => [ + 0 => "Taalkeuze", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Schakel dit in als u taalkeuze toe wilt staan.", + ], + "Enabled languages" => [ + 0 => "Ingeschakelde talen", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Niet geselecteerde talen worden niet gebruikt op uw website.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Selecteer om HTTPS in of uit te schakelen", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Selecteer om deze opslag in of uit te schakelen", + ], + "Quota" => [ + 0 => "Quotum", + ], + "Active" => [ + 0 => "Actief", + ], + "Storage method" => [ + 0 => "Opslagwijze", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Standaard wordt lokale opslag gebruikt of wanneer er geen externe opslag actief is.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Indien hulp nodig is, bekijk de <a %s>opslag documentatie</a>.", + ], + "Edit storage" => [ + 0 => "Wijzig opslag", + ], + "From name" => [ + 0 => "Van naam", + ], + "Sender name for emails sent to users." => [ + 0 => "Naam afzender voor e-mails verstuurd naar gebruikers.", + ], + "From email address" => [ + 0 => "Van e-mailadres", + ], + "Sender email for emails sent to users." => [ + 0 => "Naam afzender voor e-mails verstuurd naar gebruikers.", + ], + "Incoming email address" => [ + 0 => "Inkomend e-mailadres", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Ontvanger voor contactformulier en systeem waarschuwingen.", + ], + "Email mode" => [ + 0 => "E-mail modus", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Hoe wilt u e-mails verzenden? SMTP wordt aangeraden.", + ], + "SMTP server and port" => [ + 0 => "SMTP server en -poort", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP gebruikersnaam", + ], + "SMTP password" => [ + 0 => "SMTP wachtwoord", + ], + "SMTP security" => [ + 0 => "SMTP beveiliging", + ], + "Unsecured" => [ + 0 => "Onbewaakt", + ], + "Decode ID" => [ + 0 => "Decodeer ID", + ], + "Encode ID" => [ + 0 => "Codeer ID", + ], + "Send test email" => [ + 0 => "Verstuur test e-mail", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Gebruik dit om te testen hoe e-mails worden afgeleverd. We adviseren u om %s te gebruiken.", + ], + "Export a user" => [ + 0 => "Exporteer een gebruiker", + ], + "Export user" => [ + 0 => "Exporteer gebruiker", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Hiermee kunt u de standaard persoonlijke gegevens van een gebruiker downloaden in JSON-formaat.", + ], + "Regenerate external storage stats" => [ + 0 => "Regenereren van externe opslagstatistieken", + ], + "Storage id" => [ + 0 => "Opslag id", + ], + "Regenerate" => [ + 0 => "Regenereer", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Hiermee wordt het aantal van alle beeldrecords die bij de externe opslag van het doel horen, opnieuw berekend.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Beeldrecords van de ene externe opslag naar de andere migreren", + ], + "Source storage id" => [ + 0 => "Bron opslag id", + ], + "Target storage id" => [ + 0 => "Doel opslag id", + ], + "Migrate" => [ + 0 => "Migreer", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Hiermee wordt alleen de database bijgewerkt. U moet de eigenlijke bestanden overbrengen naar de doelcontainer op uw eigenlijke opslagcontainer. URL-herschrijven wordt sterk aanbevolen. Gebruik nul (0) voor lokale opslag.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Maak een <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> aan.", + ], + "Facebook app id" => [ + 0 => "Facebook App ID", + ], + "Facebook app secret" => [ + 0 => "Facebook App Secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Maak een <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> aan.", + ], + "Twitter API key" => [ + 0 => "Twitter API sleutel", + ], + "Twitter API secret" => [ + 0 => "Twitter API geheim", + ], + "Twitter account" => [ + 0 => "Twitteraccount", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Maak een <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> aan.", + ], + "Google client id" => [ + 0 => "Google client ID", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Maak een <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> aan.", + ], + "VK client id" => [ + 0 => "VK gebruikers ID", + ], + "VK client secret" => [ + 0 => "VK gebruikers secret", + ], + "%s spam protection" => [ + 0 => "%s spam bescherming", + ], + "user generated content" => [ + 0 => "door de gebruiker gegenereerde inhoud", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Schakel dit in om %l te gebruiken om spam te blokkeren op %c.", + ], + "%s API key" => [ + 0 => "%s API sleutel", + ], + "user signup" => [ + 0 => "gebruikersregistratie", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Er is een <a href=\"%s\" target=\"_blank\">reCAPTCHA code</a> nodig om dit te kunnen gebruiken.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Houd er rekening mee dat elke reCAPTCHA-versie een eigen set sleutels nodig heeft. Vergeet niet om de sleutels bij te werken als u van versie verandert.", + ], + "%s site key" => [ + 0 => "%s site sleutel", + ], + "%s secret key" => [ + 0 => "%s geheime sleutel", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA drempel", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Hoeveel foute pogingen zijn nodig om te vragen om reCAPTCHA? Voer 0 (nul) in om er altijd om te vragen.", + ], + "Force %s on contact page" => [ + 0 => "Dwing %s op contactpagina", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Activeer dit om altijd %s te tonen op de contactpagina.", + ], + "Comments API" => [ + 0 => "Opmerkingen API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API werkt met %s.", + ], + "Disqus shortname" => [ + 0 => "Disqus korte naam", + ], + "%s public key" => [ + 0 => "%s publieke sleutel", + ], + "Comment code" => [ + 0 => "Opmerking code", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook of wat u maar wilt. Het zal worden gebruikt in de afbeelding viewer.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "Automatisch modereren van de inhoud met behulp van de %s service.", + ], + "Automatic approve" => [ + 0 => "Automatisch goedkeuren", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Schakel dit in om de inhoud die door deze dienst gemodereerd wordt automatisch goed te keuren.", + ], + "Block content" => [ + 0 => "Blokkeer inhoud", + ], + "Adult" => [ + 0 => "Volwassene", + ], + "Teen and adult" => [ + 0 => "Tiener en volwassene", + ], + "Flag NSFW" => [ + 0 => "Vlag NSFW", + ], + "Analytics code" => [ + 0 => "Google Analytics-code", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics of wat u maar wilt. Het zal worden toegevoegd aan de footer.", + ], + "API v1 key" => [ + 0 => "API v1 key", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Gebruik deze sleutel wanneer de <a %s>API v1</a> gebruikt wordt.", + ], + "Plugin route" => [ + 0 => "Plugin route", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Schakel dit in om de plugin instructies op %u te tonen. Een link naar deze instructies wordt toegevoegd aan het %s menu. Deze instelling is niet van toepassing voor beheerders.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Gebruik dit om een eigen URL in te schakelen voor %p. Let op dat het noodzakelijk is om handmatig %s toe te voegen in deze URL.", + ], + "Cookie law compliance" => [ + 0 => "Cookiewet naleving", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Schakel dit in om een bericht weer te geven die voldoet aan de eisen van de EU-cookie wetgeving. Opmerking: dit heeft u alleen nodig als uw website in de EU gehost wordt en u trackingcookies toevoegt.", + ], + "Save changes" => [ + 0 => "Wijzigingen opslaan", + ], + "Check the errors to proceed." => [ + 0 => "Controleer de fouten om verder te gaan", + ], + "Play GIF" => [ + 0 => "Speel GIF af", + ], + "Load 360° view" => [ + 0 => "Laad 360° beeld", + ], + "Load full resolution" => [ + 0 => "Laadt de volledige resolutie", + ], + "%s image" => [ + 0 => "%s afbeelding", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "Wilt u echt alle geselecteerde inhoud verwijderen? Dit kan niet ongedaan worden gemaakt.", + ], + "This is the album cover" => [ + 0 => "Dit is de albumomslag", + ], + "Cover" => [ + 0 => "Omslag", + ], + "Added to %a and categorized in %c" => [ + 0 => "Toegevoegd aan %a en gecategoriseerd in %c", + ], + "Added to %s" => [ + 0 => "Toegevoegd aan %s", + ], + "Uploaded to %s" => [ + 0 => "Geupload naar %s", + ], + "Uploaded %s" => [ + 0 => "Geüpload: %s", + ], + "Less Exif data" => [ + 0 => "Minder Exif data", + ], + "More Exif data" => [ + 0 => "Meer Exif data", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "Upload and share your images." => [ + 0 => "Upload en deel uw afbeeldingen", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Sleep en plak waar u wil en start het uploaden van de afbeeldingen direct. %s limiet. Directe afbeeldingen links, BB code en HTML thumbnails.", + ], + "Start uploading" => [ + 0 => "Start uploaden", + ], + "Sign up to unlock all the features" => [ + 0 => "Registreer om gebruik te maken van de mogelijkheden van deze website.", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Beheer uw inhoud, maak privé-albums, personaliseer uw profiel en nog veel meer.", + ], + "Sign in with your account" => [ + 0 => "Log in met uw account", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Nog geen account? <a href='%s'>Registreer</a> nu.", + ], + "Logged out" => [ + 0 => "Uitgelogd ", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "U bent nu uitgelogd van %s. Hopelijk tot snel.", + ], + "Go to homepage" => [ + 0 => "Naar de startpagina", + ], + "Website under maintenance" => [ + 0 => "Website is in onderhoud.", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "We hebben op dit moment gepland onderhoud aan de website. Kijk over een paar minuten nog eens.", + ], + "This content is password protected." => [ + 0 => "De inhoud is beschermd met een wachtwoord.", + ], + "Please enter your password to continue." => [ + 0 => "Voer het wachtwoord in om verder te gaan.", + ], + "Send" => [ + 0 => "Verzenden", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Voeg het uploaden van afbeeldingen toe aan uw website, blog of forum door onze upload plugin te installeren. Het biedt het uploaden van afbeeldingen naar elke website door een knop te plaatsen waarmee jouw gebruikers direct afbeeldingen kunnen uploaden naar onze service en het zal automatisch de codes verwerken die nodig zijn voor het invoegen. Alle functies zijn inbegrepen, zoals slepen en neerzetten, uploaden op afstand, beeldvergroting en nog veel meer.", + ], + "Supported software" => [ + 0 => "Ondersteunde software", + ], + "supported software" => [ + 0 => "ondersteunde software", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "De plugin werkt in elke website met een gebruiker aanpasbare inhoud en voor %sv, het zal een upload knop plaatsen die overeenkomt met de doel editor werkbalk zodat er geen extra aanpassing nodig is.", + ], + "Add it to your website" => [ + 0 => "Toevoegen aan uw website", + ], + "options" => [ + 0 => "opties", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Kopieer en plak de plugin code in uw website HTML-code (bij voorkeur in de kopsectie). Er zijn tal van %o om het beter op uw behoeften af te stemmen.", + ], + "Basic options" => [ + 0 => "Basis opties", + ], + "Color palette" => [ + 0 => "Kleurenpalet", + ], + "Button color scheme" => [ + 0 => "Knop kleurstelling", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Ingebedde codes die automatisch in het reactievak worden geplaatst", + ], + "Sibling selector" => [ + 0 => "Zuster keuzeschakelaar", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Keuzeschakelaar van het zuster element waar de knop naast geplaatst moet worden", + ], + "Sibling position" => [ + 0 => "Zusterpositie", + ], + "After" => [ + 0 => "Na", + ], + "Before" => [ + 0 => "Voor", + ], + "Position relative to sibling element" => [ + 0 => "Relatieve positie tot het zuster element", + ], + "Advanced options" => [ + 0 => "Geavanceerde opties", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "De plugin heeft een grote set extra opties die volledige aanpassing mogelijk maken. U kunt aangepaste HTML, CSS, eigen kleurenpalet, waarnemers en meer gebruiken. Controleer de %d en plugin bron om een beter beeld te krijgen van deze geavanceerde opties.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "U heeft geen toegang tot deze pagina of de link is verlopen.", + ], + "Search results" => [ + 0 => "Zoekresultaten", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Wilt u deze gebruiker echt verwijderen? Dit kan niet ongedaan gemaakt worden.", + ], + "Delete user" => [ + 0 => "Verwijder gebruiker", + ], + "Register date" => [ + 0 => "Registratiedatum", + ], + "Registration IP" => [ + 0 => "Registratie IP", + ], + "Valid" => [ + 0 => "Geldig", + ], + "Banned" => [ + 0 => "Geblokkeerd", + ], + "Awaiting email" => [ + 0 => "E-mail afwachten", + ], + "Awaiting confirmation" => [ + 0 => "Wachtend op bevestiging", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i tot %f tekens<br>Letters, nummers en \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Automatisch verwijderen uploads", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Deze instelling geldt standaard voor al uw geuploade afbeeldingen. U kunt dit overrulen bij iedere upload.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Behoud <a %s>Exif data</a> van afbeelding bij uploaden", + ], + "Newsletter" => [ + 0 => "Nieuwsbrief", + ], + "Send me emails with news about %s" => [ + 0 => "Stuur mij emails met nieuws over %s", + ], + "Content settings" => [ + 0 => "Instellingen inhoud", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Geef onveilige (NFSW) inhoud weer in overzichten (van anderen)", + ], + "Language" => [ + 0 => "Taal", + ], + "Timezone" => [ + 0 => "Tijdzone", + ], + "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." => [ + 0 => "Deze dienst wordt geleverd door %website_name%, wij zijn een onafhankelijke dienstverlener. Hartelijk dank voor uw voortdurende steun.", + ], + "At %website_name% we are proudly using and supporting %software%." => [ + 0 => "Bij %website_name% zijn we er trots op %software% te gebruiken en te ondersteunen.", + ], + "Current password" => [ + 0 => "Huidig wachtwoord", + ], + "Enter your current password" => [ + 0 => "Voer uw huidige wachtwoord in", + ], + "New password" => [ + 0 => "Nieuw wachtwoord", + ], + "Confirm new password" => [ + 0 => "Bevestig nieuw wachtwoord", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Voeg een wachtwoord toe om in te loggen met gebruikersnaam of email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Deze gebruiker heeft geen wachtwoord. Gebruik dit tekstveld om een wachtwoord aan te maken.", + ], + "Enter your password" => [ + 0 => "Voer uw wachtwoord in", + ], + "Confirm password" => [ + 0 => "Wachtwoord bevestigen", + ], + "Re-enter your password" => [ + 0 => "Wachtwoord opnieuw invoeren", + ], + "Upload avatar" => [ + 0 => "Upload avatar", + ], + "Make my profile and identity totally private" => [ + 0 => "Maak mijn profiel en identiteit geheim", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Schakel dit in om als anonieme gebruiker getoond te worden", + ], + "This is your real name, not your username." => [ + 0 => "Dit is uw echte naam, niet uw gebruikersnaam.", + ], + "http://yourwebsite.com" => [ + 0 => "http://uwwebsite.domein", + ], + "Bio" => [ + 0 => "Biografie", + ], + "Tell us a little bit about you" => [ + 0 => "Vertel meer over uzelf", + ], + "User has no connections." => [ + 0 => "Deze gebruiker heeft geen connecties.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Koppel uw account aan externe diensten om in te kunnen loggen en inhoud te kunnen delen.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Wilt u %s echt van dit account ontkoppelen?", + ], + "This account is connected to %s" => [ + 0 => "Dit account is gekoppeld aan %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Wilt u uw %s-account echt ontkoppelen?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "U wordt afgemeld en u zult niet meer kunnen inloggen via account %s.", + ], + "Your account is connected to %s" => [ + 0 => "Dit account is gekoppeld aan %s", + ], + "disconnect" => [ + 0 => "ontkoppelen", + ], + "Connect %s" => [ + 0 => "Verbind %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Voel u vrij om mijn gedeelde foto's en albums door te bladeren.", + ], + "Button" => [ + 0 => "Knop", + ], + "View all my images" => [ + 0 => "Bekijk al mijn foto's", + ], + "Login" => [ + 0 => "Inloggen", + ], + "Already have an account? %s now." => [ + 0 => "Heeft u reeds een account? %s nu.", + ], + "resend account activation" => [ + 0 => "activatie opnieuw verzenden", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Als u zich al hebt aangemeld, moet u misschien een verzoek indienen bij %s om uw account te activeren.", + ], + "You can also %s." => [ + 0 => "U kunt ook %s.", + ], + "I'm at least %s years old" => [ + 0 => "Ik ben minimaal %s jaar oud", + ], + "terms" => [ + 0 => "voorwaarden", + ], + "privacy policy" => [ + 0 => "privacybeleid", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Ik ga akkoord met de %terms_link en het %privacy_link", + ], + "Upload profile background" => [ + 0 => "Upload een achtergrondafbeelding", + ], + "Change background" => [ + 0 => "Verander achtergrond", + ], + "Upload new image" => [ + 0 => "Upload nieuwe afbeelding", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Uw achtergrondafbeelding zal worden verwijderd. Dit kan niet ongedaan gemaakt worden. Weet u zeker dat u uw achtergrondafbeelding wilt verwijderen?", + ], + "Delete background" => [ + 0 => "Verwijder achtergrond", + ], + "Follower" => [ + 0 => "Volger", + 1 => "Volgers", + ], + "Follow" => [ + 0 => "Volgen", + ], + "You have been forbidden to use this website." => [ + 0 => "U bent verbannen van deze website.", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "Page %s" => [ + 0 => "Pagina %s", + ], + "General questions/comments" => [ + 0 => "Algemene vragen en opmerkingen", + ], + "DMCA complaint" => [ + 0 => "DMCA klacht", + ], + "Invalid message" => [ + 0 => "Ongeldig bericht", + ], + "Invalid subject" => [ + 0 => "Ongeldig onderwerp", + ], + "Mail error" => [ + 0 => "Mail fout", + ], + "Message sent" => [ + 0 => "Bericht verzonden", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Bericht verzonden. We nemen zo spoedig mogelijk contact op.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Indien u een bericht wilt versturen, vul dan het formulier in.", + ], + "Your name" => [ + 0 => "Uw naam", + ], + "Subject" => [ + 0 => "Onderwerp", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "De wijzigingen gaan verloren als u verder gaat.", + ], + "Changes saved successfully." => [ + 0 => "De wijzigingen zijn opgeslagen.", + ], + "Go back to form" => [ + 0 => "Terug naar het formulier", + ], + "continue anyway" => [ + 0 => "toch doorgaan", + ], + "Saving" => [ + 0 => "Opslaan", + ], + "Sending" => [ + 0 => "Verzenden", + ], + "Confirm action" => [ + 0 => "Bevestig actie", + ], + "information" => [ + 0 => "informatie", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/pl.po.cache.php b/app/.cache/languages/pl.po.cache.php new file mode 100644 index 0000000..98354e6 --- /dev/null +++ b/app/.cache/languages/pl.po.cache.php @@ -0,0 +1,2308 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2019-02-19 21:59+0000', + 'PO-Revision-Date' => '2019-02-19 21:59+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'pl', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Błędny adres e-mail", + ], + "Invalid username" => [ + 0 => "Błędna nazwa użytkownika", + ], + "Invalid password" => [ + 0 => "Błędne hasło", + ], + "Invalid website mode" => [ + 0 => "Błędny tryb strony", + ], + "From email address" => [ + 0 => "Adres e-mail nadawcy", + ], + "Sender email for emails sent to users." => [ + 0 => "Adres e-mail dla wiadomości wysyłanych do użytkowników.", + ], + "Incoming email address" => [ + 0 => "Adres poczty przychodzącej", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Odbiorca wiadomości z formularza kontaktowego i ostrzeżeń systemowych.", + ], + "Website mode" => [ + 0 => "Tryb strony", + ], + "You can switch the website mode anytime." => [ + 0 => "Możesz przełączyć tryb strony w każdym momencie.", + ], + "Community" => [ + 0 => "Społeczność", + ], + "Personal" => [ + 0 => "Osobiste", + ], + "Update in progress" => [ + 0 => "Aktualizacja w toku", + ], + "Missing %s file" => [ + 0 => "Brak pliku %s", + ], + "Invalid license info" => [ + 0 => "Nieprawidłowa informacje licencji", + ], + "Invalid license key" => [ + 0 => "Nieprawidłowy klucz licencji", + ], + "Can't save file" => [ + 0 => "Nie można zapisać pliku", + ], + "Can't download %s" => [ + 0 => "Nie można pobrać pliku %s", + ], + "Can't extract %s" => [ + 0 => "Nie można rozpakować %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Nie można utworzyć katalogu %s - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Nie można zaktualizować pliku %s - %e", + ], + "Untitled" => [ + 0 => "Bez nazwy", + ], + "%s's images" => [ + 0 => "Grafiki użytkownika %s", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Uwaga: Ta zawartość jest prywatna, ale każda osoba posiadająca link może ją zobaczyć.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Uwaga: Ta zawartość jest chroniona hasłem. Pamiętaj podać hasło gdy udostępniasz link innym osobom.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Informacja: Ta zawartość jest prywatna. Zmień prywatność na \"publiczny\", aby udostępnić.", + ], + "Private" => [ + 0 => "Prywatna", + ], + "Public" => [ + 0 => "Publiczny", + ], + "Me" => [ + 0 => "Ja", + ], + "Link" => [ + 0 => "Odnośnik", + ], + "Password" => [ + 0 => "Hasło", + ], + "view" => [ + 0 => "wyświetlenie", + 1 => "wyświetlenia", + 2 => "wyświetleń", + ], + "After %n %t" => [ + 0 => "Po %n %t", + ], + "minute" => [ + 0 => "minuta", + 1 => "minuty", + 2 => "minut", + ], + "hour" => [ + 0 => "godzina", + 1 => "godziny", + 2 => "godzin", + ], + "day" => [ + 0 => "dzień", + 1 => "dni", + 2 => "dni", + ], + "week" => [ + 0 => "tydzień", + 1 => "tygodnie", + 2 => "tygodni", + ], + "month" => [ + 0 => "miesiąc", + 1 => "miesiące", + 2 => "miesięcy", + ], + "year" => [ + 0 => "rok", + 1 => "lata", + 2 => "lat", + ], + "Don't autodelete" => [ + 0 => "Nie usuwaj automatycznie", + ], + "Duplicated upload" => [ + 0 => "Duplikat", + ], + "Private upload" => [ + 0 => "Prywatny", + ], + "like" => [ + 0 => "polubienie", + 1 => "polubienia", + 2 => "polubień", + ], + "image" => [ + 0 => "grafika", + 1 => "grafiki", + 2 => "grafik", + ], + "Recent" => [ + 0 => "Ostatnie", + ], + "Trending" => [ + 0 => "Na czasie", + ], + "Top users" => [ + 0 => "Najlepsi użytkownicy", + ], + "Most recent" => [ + 0 => "Najnowsze", + ], + "Oldest" => [ + 0 => "Najstarsze", + ], + "Most viewed" => [ + 0 => "Najczęściej wyświetlane", + ], + "Popular" => [ + 0 => "Popularne", + ], + "Most liked" => [ + 0 => "Najbardziej lubiane", + ], + "Explore" => [ + 0 => "Eksploruj", + ], + "Animated" => [ + 0 => "Animowane", + ], + "Search" => [ + 0 => "Szukaj", + ], + "People" => [ + 0 => "Ludzie", + ], + "Image" => [ + 0 => "Grafika", + 1 => "Grafiki", + 2 => "Grafik", + ], + "Album" => [ + 0 => "album", + 1 => "albumy", + 2 => "albumów", + ], + "User" => [ + 0 => "Użytkownik", + 1 => "Użytkownicy", + 2 => "Użytkowników", + ], + "Can't create %s destination dir" => [ + 0 => "Nie można utworzyć katalogu docelowego %s", + ], + "Internal" => [ + 0 => "Wewnętrzny", + ], + "requires %s" => [ + 0 => "wymaga %s", + ], + "Unlimited" => [ + 0 => "Bez ograniczeń", + ], + "used" => [ + 0 => "użyte", + ], + "Private profile" => [ + 0 => "Profil prywatny", + ], + "second" => [ + 0 => "sekunda", + 1 => "sekundy", + 2 => "sekund", + ], + "%s ago" => [ + 0 => "%s temu", + ], + "moments ago" => [ + 0 => "chwilę temu", + ], + "Dashboard" => [ + 0 => "Panel kontrolny", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Baza danych systemu jest nieaktualna. Należy uruchomić narzędzie <a href=\"%s\">aktualizacji</a>.", + ], + "The release notes for this update are:" => [ + 0 => "Informacje o aktualizacji:", + ], + "view on %s" => [ + 0 => "zobacz na %s", + ], + "cookie policy" => [ + 0 => "polityka plików cookie", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Używamy własnych i zewnętrznych plików cookie w celu poprawy jakości przeglądania i naszych usług. Jeśli nadal korzystasz z naszej strony internetowej, oświadczasz, że akceptujesz %cookie_policy_link.", + ], + "I understand" => [ + 0 => "rozumiem", + ], + "You have been forbidden to use this website." => [ + 0 => "Dostęp do tej strony został zablokowany.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Zapraszam do przeglądania i odkrywania wszystkich moich udostępnionych zdjęć i albumów.", + ], + "View all my images" => [ + 0 => "Wszystkie moje grafiki", + ], + "Plugin" => [ + 0 => "Wtyczka", + ], + "That page doesn't exist" => [ + 0 => "Ta strona nie istnieje", + ], + "Forgot password?" => [ + 0 => "Nie pamiętasz hasła?", + ], + "Reset password" => [ + 0 => "Zresetuj hasło", + ], + "Resend account activation" => [ + 0 => "Wyślij ponownie wiadomość aktywacyjną", + ], + "Add your email address" => [ + 0 => "Dodaj swój adres -email", + ], + "Email changed" => [ + 0 => "Adres e-mail został zmieniony", + ], + "Invalid Username/Email" => [ + 0 => "Błędna nazwa użytkownika lub adres e-mail", + ], + "User doesn't have an email." => [ + 0 => "Użytkownik nie ma adresu e-mail.", + ], + "Request denied" => [ + 0 => "Żądanie odrzucone", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Aby używać tej funkcji konto musi zostać aktywowane", + ], + "Account already activated" => [ + 0 => "Konto już aktywowane", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Poczekaj 15 minut na wiadomość e-mail. Możesz spróbować ponownie później.", + ], + "Reset your password at %s" => [ + 0 => "Reset hasła na %s", + ], + "Confirmation required at %s" => [ + 0 => "Potwierdzenie wymagane na %s", + ], + "Welcome to %s" => [ + 0 => "Witamy w %s", + ], + "Passwords don't match" => [ + 0 => "Hasła nie pasują do siebie", + ], + "Email already being used" => [ + 0 => "Adres e-mail jest już w użyciu", + ], + "Check the errors in the form to continue." => [ + 0 => "Sprawdź błędy w formularzu, aby kontynuować", + ], + "Password required" => [ + 0 => "Hasło jest wymagane", + ], + "Share" => [ + 0 => "Udostępnij", + ], + "Embed codes" => [ + 0 => "Kody do osadzania", + ], + "Full info" => [ + 0 => "Pełne informacje", + ], + "Stats" => [ + 0 => "Statystyki", + ], + "Images" => [ + 0 => "Grafiki", + ], + "Albums" => [ + 0 => "Albumy", + ], + "Users" => [ + 0 => "Użytkownicy", + ], + "Settings" => [ + 0 => "Ustawienia", + ], + "Bulk importer" => [ + 0 => "Importuj masowo", + ], + "Chevereto version" => [ + 0 => "Wersja Chevereto", + ], + "install update" => [ + 0 => "zainstaluj aktualizację", + ], + "check for updates" => [ + 0 => "sprawdź aktualizacje", + ], + "Support" => [ + 0 => "Pomoc", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Potrzebujesz pomocy? Przejdź do %s, aby szybko ją otrzymać.", + ], + "PHP version" => [ + 0 => "Wersja PHP", + ], + "Server" => [ + 0 => "Serwer", + ], + "MySQL version" => [ + 0 => "Wersja MySQL", + ], + "MySQL server info" => [ + 0 => "Informacje o serwerze MySQL", + ], + "GD Library" => [ + 0 => "Biblioteka GD", + ], + "File uploads" => [ + 0 => "Wysyłka plików", + ], + "Enabled" => [ + 0 => "Włączona", + ], + "Disabled" => [ + 0 => "Wyłączona", + ], + "Max. upload file size" => [ + 0 => "Maksymalny rozmiar pliku ", + ], + "Max. post size" => [ + 0 => "Maksymalny rozmiar posta", + ], + "Max. execution time" => [ + 0 => "Maksymalny czas wykonywania", + ], + "%d second" => [ + 0 => "%d sekunda", + 1 => "%d sekundy", + 2 => "%d sekund", + ], + "Memory limit" => [ + 0 => "Limit pamięci", + ], + "Links" => [ + 0 => "Odnośniki", + ], + "Documentation" => [ + 0 => "Dokumentacja", + ], + "Changelog" => [ + 0 => "Historia zmian", + ], + "Request new features" => [ + 0 => "Poproś o nowe funkcje", + ], + "Bug tracking" => [ + 0 => "Śledzenie błędów", + ], + "Website" => [ + 0 => "Strona", + ], + "Content" => [ + 0 => "Treść", + ], + "Pages" => [ + 0 => "Strony", + ], + "Listings" => [ + 0 => "Listy", + ], + "Image upload" => [ + 0 => "Wysyłanie grafiki", + ], + "Categories" => [ + 0 => "Kategorie", + ], + "Flood protection" => [ + 0 => "Zabezpieczenie antyfloodowe", + ], + "Theme" => [ + 0 => "Styl", + ], + "Homepage" => [ + 0 => "Strona główna", + ], + "Banners" => [ + 0 => "Banery", + ], + "System" => [ + 0 => "System", + ], + "Routing" => [ + 0 => "Routing", + ], + "Languages" => [ + 0 => "Języki", + ], + "External storage" => [ + 0 => "Zewnętrza pamięć", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Sieci społecznościowe", + ], + "External services" => [ + 0 => "Usługi zewnętrzne", + ], + "IP bans" => [ + 0 => "Blokady IP", + ], + "Additional settings" => [ + 0 => "Dodatkowe ustawienia", + ], + "Tools" => [ + 0 => "Narzędzia", + ], + "Local" => [ + 0 => "Lokalne", + ], + "External" => [ + 0 => "Zewnętrzne", + ], + "All" => [ + 0 => "Wszystko", + ], + "search content" => [ + 0 => "wyszukaj zawartość", + ], + "Add page" => [ + 0 => "Dodaj stronę", + ], + "Edit page ID %s" => [ + 0 => "Edytuj identyfikator strony %s", + ], + "The page has been added successfully." => [ + 0 => "Strona została dodana pomyślnie.", + ], + "The page has been deleted." => [ + 0 => "Strona została usunięta.", + ], + "homepage" => [ + 0 => "strona główna", + ], + "Before pagination" => [ + 0 => "Przed stronicowaniem", + ], + "After pagination" => [ + 0 => "Za stronicowaniem", + ], + "Content (image and album)" => [ + 0 => "Treść (grafika i album)", + ], + "Before comments" => [ + 0 => "Przed komentarzami", + ], + "Image page" => [ + 0 => "Strona grafiki", + ], + "Expected banner size 728x90" => [ + 0 => "Oczekiwany rozmiar baneru 728x90", + ], + "Album page" => [ + 0 => "Strona albumu", + ], + "User profile page" => [ + 0 => "Strona profilu użytkownika", + ], + "Explore page" => [ + 0 => "Strona odkrywania", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Błędna nazwa strony", + ], + "Invalid language" => [ + 0 => "Błędny język", + ], + "Invalid timezone" => [ + 0 => "Błędna strefa czasowa", + ], + "Invalid value: %s" => [ + 0 => "Nieprawidłowa wartość: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Błędny tryb przechowywania plików", + ], + "Invalid upload filenaming" => [ + 0 => "Błędne nazewnictwo wysyłanych plików", + ], + "Invalid thumb width" => [ + 0 => "Błędna szerokość miniaturki", + ], + "Invalid thumb height" => [ + 0 => "Błędna wysokość miniaturki", + ], + "Invalid theme" => [ + 0 => "Błędny styl", + ], + "Invalid value" => [ + 0 => "Błędna wartość", + ], + "Invalid user id" => [ + 0 => "Błędny identyfikator użytkownika", + ], + "Invalid email mode" => [ + 0 => "Błędny tryb e-maili", + ], + "Invalid SMTP port" => [ + 0 => "Błędny port SMTP", + ], + "Invalid SMTP security" => [ + 0 => "Błędne zabezpieczenia SMTP", + ], + "Invalid website content privacy mode" => [ + 0 => "Błędny tryb prywatności", + ], + "Invalid title" => [ + 0 => "Błędny tytuł", + ], + "Invalid status" => [ + 0 => "Nieprawidłowy status", + ], + "Invalid type" => [ + 0 => "Błędny typ", + ], + "Invalid icon" => [ + 0 => "Błędna ikona", + ], + "Invalid file path" => [ + 0 => "Niepoprawna ścieżka pliku", + ], + "Invalid link URL" => [ + 0 => "Niepoprawny link URL", + ], + "Invalid URL" => [ + 0 => "Błędny URL", + ], + "Invalid upload image path" => [ + 0 => "Błędna ścieżka wysyłania grafik", + ], + "Max. allowed %s" => [ + 0 => "Maksymalny dozwolony %s", + ], + "Invalid SMTP server" => [ + 0 => "Błędny serwer SMTPs", + ], + "Invalid SMTP username" => [ + 0 => "Błędna nazwa użytkownika SMTP", + ], + "About" => [ + 0 => "Informacje", + ], + "Image ID" => [ + 0 => "Identyfikator grafiki", + ], + "Uploader IP" => [ + 0 => "Adres IP wysyłającego", + ], + "Ban IP" => [ + 0 => "Zablokuj IP", + ], + "IP already banned" => [ + 0 => "IP już zbanowany", + ], + "Upload date" => [ + 0 => "Data wysłania", + ], + "Direct links" => [ + 0 => "Odnośniki bezpośrednie", + ], + "Image link" => [ + 0 => "Odnośnik do obrazka", + ], + "Image URL" => [ + 0 => "Adres grafiki", + ], + "Thumbnail URL" => [ + 0 => "Odnośnik do miniaturki", + ], + "Medium URL" => [ + 0 => "Odnośnik do średniej grafiki", + ], + "Login needed" => [ + 0 => "Logowanie wymagane", + ], + "IP address already banned" => [ + 0 => "Adres IP jest już zablokowany", + ], + "Missing values" => [ + 0 => "Brakujące wartości", + ], + "Username already being used" => [ + 0 => "Nazwa użytkownika jest już używana", + ], + "%s has been disconnected." => [ + 0 => "%s został odłączony.", + ], + "This is just a test" => [ + 0 => "To tylko test", + ], + "%u liked your %t %c" => [ + 0 => "%u polubił Twój %t %c", + ], + "%u is now following you" => [ + 0 => "%u zaczął Cię śledzić", + ], + "Wrong Username/Email password combination" => [ + 0 => "Błędna kombinacja nazwy użytkownika lub adresu e-mail i hasła", + ], + "Sign in" => [ + 0 => "Zaloguj", + ], + "Logged out" => [ + 0 => "Wylogowano", + ], + "Upload images" => [ + 0 => "Wyślij obrazy", + ], + "Account" => [ + 0 => "Konto", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Połączone konta", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Wiadomość z instrukcjami aktywacji konta została wysłana na adres %s", + ], + "Invalid name" => [ + 0 => "Błędna nazwa", + ], + "Invalid website" => [ + 0 => "Błędna strona", + ], + "Wrong password" => [ + 0 => "Błędne hasło", + ], + "Use a new password" => [ + 0 => "Użyj nowego hasła", + ], + "Changes have been saved." => [ + 0 => "Zmiany zostały zapisane.", + ], + "Password has been changed" => [ + 0 => "Hasło zostało zmienione", + ], + "Password has been created." => [ + 0 => "Hasło zostało utworzone.", + ], + "Wrong Username/Email values" => [ + 0 => "Błędna nazwa użytkownika lub adres e-mail", + ], + "Settings for %s" => [ + 0 => "Ustawienia dla %s", + ], + "Create account" => [ + 0 => "Utwórz konto", + ], + "Upload" => [ + 0 => "Wyślij", + ], + "%s's Images" => [ + 0 => "Grafiki użytkownika %s", + ], + "%s's Albums" => [ + 0 => "Albumy użytkownika %s", + ], + "Results for" => [ + 0 => "Wyniki dla", + ], + "Liked by %s" => [ + 0 => "%s polubień", + ], + "Liked" => [ + 0 => "Polubień", + ], + "Discovery" => [ + 0 => "Odkrywaj", + ], + "Close" => [ + 0 => "Zamknij", + ], + "Advanced search" => [ + 0 => "Wyszukiwanie zaawansowane", + ], + "Random" => [ + 0 => "Losowa", + ], + "Notifications" => [ + 0 => "Powiadomienia", + ], + "loading" => [ + 0 => "ładowanie", + ], + "You don't have notifications" => [ + 0 => "Nie masz żadnych powiadomień", + ], + "My Profile" => [ + 0 => "Mój profil", + ], + "Sign out" => [ + 0 => "Wyloguj się", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Otrzymaliśmy prośbę zmiany adresu e-mail twojego konta <a href=\"%u\">%n</a> na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Aby zakończyć proces musisz <a href=\"%s\">aktywować swój e-mail</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Możesz również skopiować adres i wkleić go w swojej przeglądarce: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Jeśli tego nie chcesz, po prostu zignoruj tę wiadomość.", + ], + "This request was made from IP: %s" => [ + 0 => "Prośba została dodana z następującego adresu IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Otrzymaliśmy prośbę o rejestrację konta %n na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Aby zakończyć proces musisz <a href=\"%s\">aktywować swoje konto</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Otrzymaliśmy prośbę o reset hasła do twojego konta <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Aby zresetować hasło <a href=\"%s\">kliknij w ten odnośnik</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Cześć %n, witamy w %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Teraz, gdy Twoje konto jest gotowe, możesz cieszyć się wysyłaniem grafik, tworzeniem albumów i ustawianiem prywatności, a także odkrywaniem innych wspaniałych funkcji.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Tak przy okazji, tutaj jest Twoja własna wspaniała strona profilowa: <a href=\"%u\">%n</a>. Rozejrzyj się i ją spersonalizuj, jest Twoja!", + ], + "Thank you for joining" => [ + 0 => "Dziękujemy za dołączenie do nas", + ], + "This email was sent from %w %u" => [ + 0 => "Ta wiadomość e-mail została wysłana z %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Przeciągnij lub wklej obrazy tutaj", + ], + "Select the images to upload" => [ + 0 => "Wybierz grafikę do wysłania", + ], + "browse from your computer" => [ + 0 => "przejrzeć swój komputer", + ], + "add image URLs" => [ + 0 => "dodać adresy obrazów", + ], + "You can also %i or %u." => [ + 0 => "Możesz także %i lub %u.", + ], + "browse from your device" => [ + 0 => "przeglądaj ze swojego urządzenia", + ], + "take a picture" => [ + 0 => "zrób zdjęcie", + ], + "You can also %i, %c or %u." => [ + 0 => "Możesz także %i, %c lub %u.", + ], + "your computer" => [ + 0 => "twój komputer", + ], + "your device" => [ + 0 => "twoje urządzenie", + ], + "Uploading %q %o" => [ + 0 => "Wysyłanie %q %o", + ], + "complete" => [ + 0 => "zakończono", + ], + "Upload complete" => [ + 0 => "Wysyłanie zakończone", + ], + "create a new album" => [ + 0 => "utwórz nowy album", + ], + "move it to an existing album" => [ + 0 => "przenieś do istniejącego albumu", + ], + "create an account" => [ + 0 => "utwórz konto", + ], + "sign in" => [ + 0 => "zaloguj", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Wystąpiły błędy przez co system nie mógł przetworzyć żądania.", + ], + "Category" => [ + 0 => "Kategoria", + ], + "Select category" => [ + 0 => "Wybierz kategorię", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Oznacz tę pozycję jako tylko dla dorosłych", + ], + "Not family safe upload" => [ + 0 => "Treść tylko dla dorosłych", + ], + "Uploading" => [ + 0 => "Wysyłanie", + ], + "or" => [ + 0 => "lub", + ], + "cancel" => [ + 0 => "anuluj", + ], + "cancel remaining" => [ + 0 => "anuluj pozostałe", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Informacja: część grafik nie może zostać wysłana.", + ], + "learn more" => [ + 0 => "dowiedz się więcej", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Sprawdź <a data-modal=\"simple\" data-target=\"failed-upload-result\">raport błędu</a>, aby uzyskać więcej informacji.", + ], + "reset" => [ + 0 => "resetuj", + ], + "close" => [ + 0 => "zamknij", + ], + "copy" => [ + 0 => "kopiuj", + ], + "insert" => [ + 0 => "wstaw", + ], + "Edit" => [ + 0 => "Edytuj", + ], + "Remove" => [ + 0 => "Usuń", + ], + "Edit image" => [ + 0 => "Edytuj grafikę", + ], + "Title" => [ + 0 => "Tytuł", + ], + "optional" => [ + 0 => "opcjonalny", + ], + "Resize image" => [ + 0 => "Zmień rozmiar grafiki", + ], + "Width" => [ + 0 => "Szerokość", + ], + "Height" => [ + 0 => "Wysokość", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Uwaga: nie można zmienić rozmiaru animowanych GIFów", + ], + "Auto delete image" => [ + 0 => "Automatycznie usuń grafikę", + ], + "Sign up" => [ + 0 => "Zaloguj", + ], + "Mark this if the image is not family safe" => [ + 0 => "Zaznacz to, jeśli treść jest odpowiednia tylko dla dorosłych", + ], + "Flag as unsafe" => [ + 0 => "Ustaw ograniczenia wiekowe", + ], + "Description" => [ + 0 => "Opis", + ], + "Brief description of this image" => [ + 0 => "Krótki opis tej grafiki", + ], + "Add image URLs" => [ + 0 => "Dodaj adresy obrazów", + ], + "Add the image URLs here" => [ + 0 => "Dodaj tutaj adresy grafik", + ], + "Create album" => [ + 0 => "Utwórz album", + ], + "Move to album" => [ + 0 => "Przenieś do albumu", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Wybierz istniejący album do przeniesienia wysłanej zawartości. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść ją do niego.", + ], + "Error report" => [ + 0 => "Raport błędu", + ], + "album" => [ + 0 => "album", + 1 => "albumy", + 2 => "albumów", + ], + "Viewer links" => [ + 0 => "Odnośniki do przeglądarki", + ], + "HTML Codes" => [ + 0 => "Kody HTML", + ], + "HTML image" => [ + 0 => "obraz HTML", + ], + "HTML medium linked" => [ + 0 => "Kod HTML do średniej grafiki z odnośnikiem", + ], + "HTML thumbnail linked" => [ + 0 => "Kod HTML do miniaturki z odnośnikiem", + ], + "BBCodes" => [ + 0 => "BBCode", + ], + "BBCode medium linked" => [ + 0 => "BBCode do średniej grafiki z odnośnikiem", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode do miniaturki z odnośnikiem", + ], + "IP address" => [ + 0 => "Adres IP", + ], + "Album name" => [ + 0 => "Nazwa albumu", + ], + "move to existing album" => [ + 0 => "przenieś do istniejącego albumu", + ], + "Album description" => [ + 0 => "Opis albumu", + ], + "Brief description of this album" => [ + 0 => "Krótki opis tego albumu", + ], + "Album privacy" => [ + 0 => "Prywatność albumu", + ], + "Who can view this content" => [ + 0 => "Kto może wyświetlać tę zawartość", + ], + "Private (just me)" => [ + 0 => "Prywatny (tylko ja)", + ], + "Private (anyone with the link)" => [ + 0 => "Prywatny (każda osoba z linkiem)", + ], + "Private (password protected)" => [ + 0 => "Prywatny (chroniony hasłem)", + ], + "Album password" => [ + 0 => "Hasło albumu", + ], + "Name" => [ + 0 => "Imię", + ], + "Category name" => [ + 0 => "Nazwa kategorii", + ], + "URL key" => [ + 0 => "Klucz URL", + ], + "Category URL key" => [ + 0 => "Klucz URL kategorii", + ], + "Brief description of this category" => [ + 0 => "Krótki opis tej kategorii", + ], + "Untitled image" => [ + 0 => "Grafika bez nazwy", + ], + "Path" => [ + 0 => "Ścieżka", + ], + "Expiration date" => [ + 0 => "Data wygasania", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "RRRR-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Przykład", + ], + "Message" => [ + 0 => "Wiadomość", + ], + "Existing album" => [ + 0 => "Istniejący album", + ], + "create new album" => [ + 0 => "utwórz nowy album", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Region", + ], + "Key" => [ + 0 => "Klucz", + ], + "Private key" => [ + 0 => "Klucz prywatny", + ], + "Username" => [ + 0 => "Nazwa użytkownika", + ], + "Server path" => [ + 0 => "Ścieżka serwera", + ], + "Server password" => [ + 0 => "Hasło serwera", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Na przykład: 20 GB, 1 TB itp.", + ], + "view more" => [ + 0 => "wyświetl więcej", + ], + "Load more" => [ + 0 => "Załaduj więcej", + ], + "Select all" => [ + 0 => "Wybierz wszystkie", + ], + "Clear selection" => [ + 0 => "Wyczyść zaznaczenie", + ], + "Selection" => [ + 0 => "Wybór", + ], + "Action" => [ + 0 => "Akcja", + ], + "Assign category" => [ + 0 => "Przypisz kategorię", + ], + "Flag as safe" => [ + 0 => "Usuń ograniczenia wiekowe", + ], + "Delete" => [ + 0 => "Usuń", + ], + "Create new album" => [ + 0 => "Utwórz nowy album", + ], + "Sign in with another account" => [ + 0 => "Zaloguj się przy użyciu innego konta", + ], + "There's nothing to show here." => [ + 0 => "Nie ma tutaj nic do wyświetlenia.", + ], + "Edit image details" => [ + 0 => "Edytuj szczegóły grafiki", + ], + "Edit album details" => [ + 0 => "Edytuj szczegóły albumu", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Wysłane grafiki zostaną przeniesione do tego nowego albumu. Możesz również przenieść je do <a class=\"modal-switch\" data-switch=\"move-existing-album\">istniejącego albumu</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Wybierz istniejący album do przeniesienia grafiki. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść ją do niego.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Wybierz istniejący album do przeniesienia zawartości. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść zawartość do niego.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Wybierz istniejący album, aby przenieść grafiki. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść grafiki do niego.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Wszystkie wybrane grafiki zostaną przypisane do tej kategorii.", + ], + "There is no categories." => [ + 0 => "Brak kategorii.", + ], + "Confirm flag content as safe" => [ + 0 => "Potwierdź usunięcie ograniczeń wiekowych", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Czy naprawdę chcesz usunąć ograniczenia wiekowe tej zawartości?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Potwierdź ustawienie ograniczeń wiekowych", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Czy naprawdę chcesz ustawić ograniczenia wiekowe tej zawartości?", + ], + "Confirm deletion" => [ + 0 => "Potwierdź usunięcie", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Na pewno chcesz usunąć tę zawartość? Nie można tego cofnąć.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Na pewno chcesz usunąć całą wybraną zawartość? Nie można tego cofnąć.", + ], + "Guest" => [ + 0 => "Gość", + ], + "Like" => [ + 0 => "Lubię to", + ], + "From %s" => [ + 0 => "Od %s", + ], + "Select" => [ + 0 => "Wybierz", + ], + "Toggle unsafe flag" => [ + 0 => "Przełącz ustawienia wiekowe", + ], + "The requested page was not found." => [ + 0 => "Żądana strona nie została znaleziona.", + ], + "Search something else" => [ + 0 => "Wyszukaj coś innego", + ], + "The user has been deleted" => [ + 0 => "Użytkownik został usunięty", + ], + "The content has been deleted." => [ + 0 => "Zawartość została usunięta.", + ], + "Your account is almost ready" => [ + 0 => "Twoje konto jest niemal gotowe", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Na adres %s została wysłana wiadomość z instrukcjami aktywacji konta. Odnośnik jest ważny przez 48 godzin. Jeśli nie otrzymasz instrukcji sprawdź wiadomości w folderze ze spamem.", + ], + "Resend activation" => [ + 0 => "Wyślij ponownie e-mail aktywacyjny", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Pomyślnie zmieniono adres e-mail na %s", + ], + "Go to my profile" => [ + 0 => "Przejdź do mojego profilu", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Odnośnik potwierdzający zostanie wysłany na ten adres razem z instrukcjami aktywacji konta.", + ], + "Your email address" => [ + 0 => "Twój adres e-mail", + ], + "Submit" => [ + 0 => "Wyślij", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Wiadomość z instrukcjami resetowania hasła została wysłana na przypisany adres e-mail. Jeśli nie otrzymasz instrukcji sprawdź wiadomości w folderze ze spamem.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Poprzednia wiadomość z instrukcjami resetowania hasła została wysłana. Jeśli jej nie otrzymałeś sprawdź wiadomości w folderze ze spamem.", + ], + "Resend instructions" => [ + 0 => "Wyślij instrukcje ponownie", + ], + "Username or Email address" => [ + 0 => "Nazwa użytkownika lub adres e-mail", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Hasło zostało zmienione. Spróbuj zalogować się przy użyciu nowego hasła.", + ], + "Login now" => [ + 0 => "Zaloguj się teraz", + ], + "Enter your new password" => [ + 0 => "Wpisz swoje nowe hasło", + ], + "%d characters min" => [ + 0 => "minimum %d znaków", + ], + "Re-enter your new password" => [ + 0 => "Wpisz ponownie swoje nowe hasło", + ], + "This content is private" => [ + 0 => "Ta zawartość jest prywatna", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Na pewno chcesz usunąć ten album razem ze wszystkimi grafikami? Nie można tego cofnąć.", + ], + "Delete album" => [ + 0 => "Usuń album", + ], + "You like this" => [ + 0 => "Lubisz to", + ], + "Upload to album" => [ + 0 => "Wyślij do albumu", + ], + "Album link" => [ + 0 => "Odnośnik do albumu", + ], + "I Agree" => [ + 0 => "Zgadzam się", + ], + "documentation" => [ + 0 => "dokumentacja", + ], + "Disk used" => [ + 0 => "Zajęta powierzchnia dyskowa", + ], + "Status" => [ + 0 => "Status", + ], + "Add user" => [ + 0 => "Dodaj użytkownika", + ], + "Role" => [ + 0 => "Rola", + ], + "Administrator" => [ + 0 => "Administrator", + ], + "Email address" => [ + 0 => "Adres e-mail", + ], + "Add category" => [ + 0 => "Dodaj kategorię", + ], + "Add IP ban" => [ + 0 => "Dodaj blokadę IP", + ], + "Website name" => [ + 0 => "Nazwa strony", + ], + "Website doctitle" => [ + 0 => "Doctitle strony", + ], + "Website description" => [ + 0 => "Opis strony", + ], + "Default time zone" => [ + 0 => "Domyślna strefa czasowa", + ], + "Select region" => [ + 0 => "Wybierz region", + ], + "Likes" => [ + 0 => "Polubienia", + ], + "User ID" => [ + 0 => "Identyfikator użytkownika", + ], + "Your user id is: %s" => [ + 0 => "Twój identyfikator użytkownika: %s", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Tryb prywatny pozwoli na wyświetlanie strony tylko zarejestrowanym użytkownikom.", + ], + "Content privacy mode" => [ + 0 => "Z prywatną treścią", + ], + "Default" => [ + 0 => "Domyślna", + ], + "Page title" => [ + 0 => "Tytuł strony", + ], + "Page status" => [ + 0 => "Status strony", + ], + "Active page" => [ + 0 => "Aktywna strona", + ], + "Inactive page (%s)" => [ + 0 => "Nieaktywna strona (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Tylko aktywne strony będą dostępne.", + ], + "Type" => [ + 0 => "Rodzaj", + ], + "Privacy" => [ + 0 => "Prywatność", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "Page visibility" => [ + 0 => "Widoczność strony", + ], + "Visible page" => [ + 0 => "Widoczna strona", + ], + "Hidden page" => [ + 0 => "Ukryta strona", + ], + "File path" => [ + 0 => "Ścieżka do pliku", + ], + "Meta keywords" => [ + 0 => "Słowa kluczowe", + ], + "Source code" => [ + 0 => "Kod źródłowy", + ], + "Link URL" => [ + 0 => "Adres URL", + ], + "pages" => [ + 0 => "stron", + ], + "Enable uploads" => [ + 0 => "Włącz wysyłanie", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Włącz to, jeśli chcesz umożliwić wysyłanie grafik. To ustawienie nie ma wpływu na administratorów.", + ], + "Guest uploads" => [ + 0 => "Wysyłanie dla gości", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Włącz to, aby umożliwić wysyłanie dla osób niezarejestrowanych", + ], + "Maximum image size" => [ + 0 => "Maksymalny rozmiar obrazu", + ], + "Image Exif data" => [ + 0 => "Dane EXIF obrazu", + ], + "Keep" => [ + 0 => "Zachowaj", + ], + "Maximum upload file size" => [ + 0 => "Maksymalny rozmiar wysyłanego pliku", + ], + "Image path" => [ + 0 => "Ścieżka do grafiki", + ], + "Relative to Chevereto root" => [ + 0 => "Względna do głównego katalogu Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Gdzie przechowywać grafiki? Względnie do głównego katalogu Chevereto.", + ], + "Storage mode" => [ + 0 => "Tryb przechowywania", + ], + "Datefolders" => [ + 0 => "Foldery z datami", + ], + "Direct" => [ + 0 => "Bezposrednio", + ], + "Datefolders creates %s structure" => [ + 0 => "Foldery z datami tworzą strukturę %s", + ], + "File naming method" => [ + 0 => "Metoda nazewnictwa plików", + ], + "Original" => [ + 0 => "Oryginalna", + ], + "Thumb size" => [ + 0 => "Rozmiar miniaturki", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Miniaturki zostaną dopasowane do tego rozmiaru.", + ], + "Watermarks" => [ + 0 => "Znaki wodne", + ], + "Warning: Can't write in %s" => [ + 0 => "Uwaga: Nie można zapisać w %s.", + ], + "Watermark image" => [ + 0 => "Grafika znaku wodnego", + ], + "Watermark position" => [ + 0 => "Położenie znaku wodnego", + ], + "left top" => [ + 0 => "po lewej na górze", + ], + "left center" => [ + 0 => "po lewej na środku", + ], + "left bottom" => [ + 0 => "po lewej na dole", + ], + "center top" => [ + 0 => "na środku na górze", + ], + "center center" => [ + 0 => "na środku", + ], + "center bottom" => [ + 0 => "na środku na dole", + ], + "right top" => [ + 0 => "po prawej na górze", + ], + "right center" => [ + 0 => "po prawej na środku", + ], + "right bottom" => [ + 0 => "po prawej na dole", + ], + "Watermark margin" => [ + 0 => "Margines znaku wodnego", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margines od brzegu grafiki do znaku wodnego.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Pamiętaj: Usunięcie kategorii nie spowoduje usunięcia grafik do niej należących.", + ], + "Edit category" => [ + 0 => "Edytuj kategorię", + ], + "Expires" => [ + 0 => "Wygasa", + ], + "Edit IP ban" => [ + 0 => "Edytuj blokadę IP", + ], + "Enable signups" => [ + 0 => "Włącz rejestrację", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Włącz to, jeśli chcesz pozwolić użytkownikom na rejestrację.", + ], + "Empty" => [ + 0 => "Pusty", + ], + "Username routing" => [ + 0 => "Routing nazwy użytkownika", + ], + "Require email confirmation" => [ + 0 => "Wymagaj potwierdzenia adresu e-mail", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Włącz to, jeśli użytkownicy muszą potwierdzić swój adres e-mail po rejestracji.", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Zablokuj wysyłanie grafik z danego adresu IP po wykryciu podejrzanego zachowania bazując na liczbie plików wysłanych w danym czasie. To ustawienie nie dotyczy administratorów.", + ], + "Notify to email" => [ + 0 => "Powiadom adres", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Jeśli włączone, system wyśle wiadomość po wykryciu podejrzanego zachowania.", + ], + "Minute limit" => [ + 0 => "Limit minutowy", + ], + "Hourly limit" => [ + 0 => "Limit godzinowy", + ], + "Daily limit" => [ + 0 => "Limit dzienny", + ], + "Weekly limit" => [ + 0 => "Limit tygodniowy", + ], + "Monthly limit" => [ + 0 => "Limit miesięczny", + ], + "Show not safe content in listings" => [ + 0 => "Pokaż na listach zawartości tylko dla dorosłych", + ], + "How many items should be displayed per page listing." => [ + 0 => "Ilość pozycji wyświetlana na każdej stronie listy", + ], + "Endless scrolling" => [ + 0 => "Nieskończone przewijanie", + ], + "Classic pagination" => [ + 0 => "Klasyczne stronicowanie", + ], + "What pagination method should be used." => [ + 0 => "Metoda stronicowania, która ma być używana.", + ], + "Fluid" => [ + 0 => "Płynna", + ], + "Fixed" => [ + 0 => "Stała", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Obie metody używają stałej szerokości, ale metoda \"płynna\" używa automatycznej wysokości.", + ], + "Phone" => [ + 0 => "Telefon", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Komputer stacjonarny", + ], + "Put your themes in the %s folder" => [ + 0 => "Umieść swoje style w folderze %s", + ], + "Light" => [ + 0 => "Jasny", + ], + "Dark" => [ + 0 => "Ciemny", + ], + "Main color" => [ + 0 => "Główny kolor", + ], + "Hexadecimal color value" => [ + 0 => "Heksadecymalna wartość koloru", + ], + "Top bar color" => [ + 0 => "Kolor górnego paska", + ], + "Black" => [ + 0 => "Czarny", + ], + "White" => [ + 0 => "Biały", + ], + "Top bar button color" => [ + 0 => "Kolor przycisków górnego paska", + ], + "Blue" => [ + 0 => "Niebieski", + ], + "Green" => [ + 0 => "Zielony", + ], + "Orange" => [ + 0 => "Pomarańczowy", + ], + "Red" => [ + 0 => "Czerwony", + ], + "Grey" => [ + 0 => "Szary", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Kolor przycisków takich jak \"Załóż konto\".", + ], + "Enable vector logo" => [ + 0 => "Włącz logo wektorowe", + ], + "Vector logo image" => [ + 0 => "Logo wektorowe", + ], + "Logo height" => [ + 0 => "Wysokość logo", + ], + "No value" => [ + 0 => "Brak wartości", + ], + "Enable download button" => [ + 0 => "Włącz przycisk pobierania", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Włącz to, jeśli chcesz wyświetlać przycisk pobierania grafiki.", + ], + "Enable social share" => [ + 0 => "Włącz udostępnianie w sieciach społecznościowych.", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Włącz to, jeśli chcesz wyświetlać przyciski do udostępniania treści w sieciach społecznościowych.", + ], + "Custom CSS code" => [ + 0 => "Własny kod CSS", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Dodaj tutaj własny kod CSS. Zostanie on dodany jako <style> tuż przed znacznikiem zamykającym </head>.", + ], + "Custom JS code" => [ + 0 => "Własny kod JS", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Dodaj tutaj własny kod JS. Zostanie on dodany jako <script> tuż przed znacznikiem zamykającym </head>.", + ], + "Style" => [ + 0 => "Styl", + ], + "Cover image" => [ + 0 => "Okładka", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Na pewno chcesz usunąć tę grafikę? Nie można tego cofnąć.", + ], + "Delete image" => [ + 0 => "Usuń grafikę", + ], + "Paragraph" => [ + 0 => "Akapit", + ], + "Open URL" => [ + 0 => "Otwórz URL", + ], + "Automatic updates check" => [ + 0 => "Automatycznie sprawdź aktualizacje", + ], + "Maintenance" => [ + 0 => "Konserwacja", + ], + "Crypt salt" => [ + 0 => "Sól szyfrowania", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Jest to sól używana do konwersji identyfikatorów numerycznych na alfanumeryczne. Została ona wygenerowana przy instalacji.", + ], + "PHP error reporting" => [ + 0 => "Raportowanie błędów PHP", + ], + "Debug level" => [ + 0 => "Poziom debugowania", + ], + "None" => [ + 0 => "Brak", + ], + "Error log" => [ + 0 => "Dziennik błędów", + ], + "Image routing" => [ + 0 => "Routing grafiki", + ], + "Routing for %s" => [ + 0 => "Routing dla %s", + ], + "Album routing" => [ + 0 => "Routing albumu", + ], + "Default language" => [ + 0 => "Domyślny język", + ], + "Default base language to use." => [ + 0 => "Domyślny język podstawowy", + ], + "Auto language" => [ + 0 => "Automatyczny język", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Włącz to, jeśli chcesz automatycznie wykrywać i ustawiać język dla każdego użytkownika.", + ], + "Language chooser" => [ + 0 => "Wybór języka", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Włącz to, jeśli chcesz pozwolić na wybór języka.", + ], + "Enabled languages" => [ + 0 => "Włączone języki", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Niezaznaczone języki nie będą dostępne na stronie", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Przełącz to, aby włączyć lub wyłączyć HTTPS", + ], + "Quota" => [ + 0 => "Udział", + ], + "Active" => [ + 0 => "Aktywna", + ], + "Storage method" => [ + 0 => "Metoda przychowywania", + ], + "From name" => [ + 0 => "Nazwa nadawcy", + ], + "Sender name for emails sent to users." => [ + 0 => "Nazwa nadawcy wiadomości e-mail wysyłanych do użytkowników.", + ], + "Email mode" => [ + 0 => "Tryb e-mail", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Jak wysyłać wiadomości e-mail? Rekomendowane jest SMTP.", + ], + "SMTP server and port" => [ + 0 => "Serwer i port SMTP", + ], + "SMTP server" => [ + 0 => "Serwer SMTP", + ], + "SMTP username" => [ + 0 => "Nazwa użytkownika SMTP", + ], + "SMTP password" => [ + 0 => "Hasło SMTP", + ], + "SMTP security" => [ + 0 => "Bezpieczeństwo SMTP", + ], + "Unsecured" => [ + 0 => "Niezabezpieczony", + ], + "Send test email" => [ + 0 => "Wyślij testową wiadomość e-mail", + ], + "social networks" => [ + 0 => "sieci społecznościowe", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Potrzebujesz do tego <a href=\"https://developers.facebook.com/\" target=\"_blank\">aplikacji Facebook</a>.", + ], + "Facebook app id" => [ + 0 => "ID aplikacji Facebooka", + ], + "Facebook app secret" => [ + 0 => "\"Sekret\" aplikacji Facebooka", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Potrzebujesz do tego <a href=\"https://apps.twitter.com\" target=\"_blank\">aplikacji Twitter</a>.", + ], + "Twitter API key" => [ + 0 => "Klucz API Twittera", + ], + "Twitter API secret" => [ + 0 => "\"Sekret\" API Twittera", + ], + "Twitter account" => [ + 0 => "Konto na Twitterze", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Potrzebujesz do tego <a href=\"https://cloud.google.com/console\" target=\"_blank\">aplikacji Google</a>.", + ], + "Google client id" => [ + 0 => "ID klienta Google", + ], + "Google client secret" => [ + 0 => "\"Sekret\" klienta Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Potrzebujesz do tego <a href=\"http://vk.com/dev\" target=\"_blank\">aplikacji VK</a>.", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Potrzebujesz do tego <a href=\"%s\" target=\"_blank\">klucza reCAPTCHA</a>.", + ], + "reCAPTCHA threshold" => [ + 0 => "Próg reCAPTCHA", + ], + "Comment code" => [ + 0 => "Kod komentarzy", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook lub cokolwiek innego. Zostanie użyty w widoku grafiki.", + ], + "Analytics code" => [ + 0 => "Kod Analytics", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics lub cokolwiek innego. Zostanie dodany w stopce stylu.", + ], + "API v1 key" => [ + 0 => "Klucz API v1", + ], + "Cookie law compliance" => [ + 0 => "Zgodność z przepisami dotyczącymi plików cookie", + ], + "Save changes" => [ + 0 => "Zapisz zmiany", + ], + "Check the errors to proceed." => [ + 0 => "Sprawdź błędy, aby kontynuować.", + ], + "Play GIF" => [ + 0 => "Odtwórz GIF", + ], + "Load full resolution" => [ + 0 => "Załaduj w pełnej rozdzielczości", + ], + "Added to %a and categorized in %c" => [ + 0 => "Dodano do %a i przypisano do kategorii %c", + ], + "Added to %s" => [ + 0 => "Dodano do %s", + ], + "Uploaded to %s" => [ + 0 => "Wysłano do %s", + ], + "Uploaded %s" => [ + 0 => "Wysłano %s", + ], + "Less Exif data" => [ + 0 => "Mniej danych Exif", + ], + "More Exif data" => [ + 0 => "Więcej danych Exif", + ], + "Share image" => [ + 0 => "Udostępnij grafikę", + ], + "Album ID" => [ + 0 => "Identyfikator albumu", + ], + "In this album" => [ + 0 => "W tym albumie", + ], + "Upload and share your images." => [ + 0 => "Wyślij i udostępnij swoje grafiki", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Przeciągnij i upuść pliki w dowolnym miejscu aby zacząć przesyłać swoje zdjęcia. Limit %s. Bezpośrednie linki do obrazów, BBCode oraz miniaturki HTML.", + ], + "Start uploading" => [ + 0 => "Rozpocznij wysyłanie", + ], + "Sign up to unlock all the features" => [ + 0 => "Zarejestruj się, aby odblokować nowe funkcje", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Zarządzaj swoimi grafikami, twórz prywatne albumy, dostosowuj profil i wiele, wiele więcej.", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Nie masz konta? <a href='%s'>Zarejestruj się</a> teraz.", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Wylogowano pomyślnie, %s. Mamy nadzieję, że wrócisz tu wkrótce.", + ], + "Go to homepage" => [ + 0 => "Przejdź do strony głównej", + ], + "Website under maintenance" => [ + 0 => "Strona w trakcie konserwacji", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Wykonujemy zaplanowane prace konserwacyjne. Spróbuj ponownie za klika minut.", + ], + "This content is password protected." => [ + 0 => "Zawartość chroniona hasłem", + ], + "Please enter your password to continue." => [ + 0 => "Aby kontynuować podaj hasło", + ], + "Send" => [ + 0 => "Wyslij", + ], + "Supported software" => [ + 0 => "Obsługiwane oprogramowanie", + ], + "supported software" => [ + 0 => "obsługiwane oprogramowanie", + ], + "options" => [ + 0 => "opcje", + ], + "Basic options" => [ + 0 => "Opcje podstawowe", + ], + "Color palette" => [ + 0 => "Paleta kolorów", + ], + "After" => [ + 0 => "Po", + ], + "Before" => [ + 0 => "Przed", + ], + "Advanced options" => [ + 0 => "Opcje zaawansowane", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Nie masz uprawnień do dostępu do tej strony albo odnośnik już wygasł.", + ], + "Search results" => [ + 0 => "Wyniki wyszukiwania", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Na pewno chcesz usunąć tego użytkownika? Nie można tego cofnąć.", + ], + "Delete user" => [ + 0 => "Usuń użytkownika", + ], + "Register date" => [ + 0 => "Data rejestracji", + ], + "Registration IP" => [ + 0 => "Adres IP rejestracji", + ], + "Valid" => [ + 0 => "Poprawny", + ], + "Banned" => [ + 0 => "Zbanowany", + ], + "Awaiting email" => [ + 0 => "Oczekujący e-mail", + ], + "Awaiting confirmation" => [ + 0 => "Oczekujący na potwierdzenie", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "Od %i do %f znaków<br>Litery, liczby i \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Automatycznie usuń wysłane pliki", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Zachowaj <a %s>dane Exif</a> przy wysyłaniu", + ], + "Newsletter" => [ + 0 => "Biuletyn", + ], + "Send me emails with news about %s" => [ + 0 => "Wyślij mi wiadomości email z nowościami na %s", + ], + "Content settings" => [ + 0 => "Ustawienia zawartości", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Pokazuj na listach zawartości tylko dla dorosłych (od innych użytkowników)", + ], + "Language" => [ + 0 => "Język", + ], + "Timezone" => [ + 0 => "Strefa czasowa", + ], + "Current password" => [ + 0 => "Aktualne hasło", + ], + "Enter your current password" => [ + 0 => "Wpisz swoje aktualne hasło", + ], + "New password" => [ + 0 => "Nowe hasło", + ], + "Confirm new password" => [ + 0 => "Potwierdź nowe hasło", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Dodaj hasło, aby móc logować się przy użyciu nazwy użytkownika lub adresu e-mail.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Ten użytkownik nie ma żadnego hasła. Dodaj je w tym formularzu.", + ], + "Enter your password" => [ + 0 => "Wpisz swoje hasło", + ], + "Confirm password" => [ + 0 => "Potwierdź hasło", + ], + "Re-enter your password" => [ + 0 => "Wpisz ponownie swoje hasło", + ], + "Upload new image" => [ + 0 => "Wyślij nową grafikę", + ], + "Delete existing image" => [ + 0 => "Usuń istniejącą grafikę", + ], + "This is your real name, not your username." => [ + 0 => "To twoje prawdziwe imię, a nie nazwa użytkownika", + ], + "http://yourwebsite.com" => [ + 0 => "http://twojastrona.pl", + ], + "Tell us a little bit about you" => [ + 0 => "Opowiedz trochę o sobie", + ], + "User has no connections." => [ + 0 => "Użytkownik nie ma połączeń", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Połącz swoje konto z zewnętrznymi usługami, aby logować się i udostępniać zawartość", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Na pewno chcesz odłączyć %s od swojego konta?", + ], + "This account is connected to %s" => [ + 0 => "To konto jest połączone z %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Na pewno chcesz odłączyć swoje konto %s?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Zostaniesz wylogowany i nie będziesz mógł się zalogować przy użyciu konta %s.", + ], + "Your account is connected to %s" => [ + 0 => "Twoje konto jest połączone z %s", + ], + "disconnect" => [ + 0 => "odłącz", + ], + "Connect %s" => [ + 0 => "Połącz %s", + ], + "Button" => [ + 0 => "Przycisk", + ], + "I'm at least %s years old" => [ + 0 => "Mam co najmniej %s lat", + ], + "Upload profile background" => [ + 0 => "Wyślij tło profilu", + ], + "Change background" => [ + 0 => "Zmień tło", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Grafika tła profilu zostanie usunięta. Nie można tego cofnąć. Na pewno chcesz ją usunąć?", + ], + "Delete background" => [ + 0 => "Usuń tło", + ], + "Edit profile" => [ + 0 => "Edytuj profil", + ], + "Follower" => [ + 0 => "obserwujący", + 1 => "obserwujących", + 2 => "obserwujących", + ], + "Follow" => [ + 0 => "Obserwuj", + ], + "General questions/comments" => [ + 0 => "Ogólne pytania lub komentarze", + ], + "DMCA complaint" => [ + 0 => "Skarga DMCA", + ], + "Invalid message" => [ + 0 => "Błędna wiadomość", + ], + "Invalid subject" => [ + 0 => "Błędny temat", + ], + "Mail error" => [ + 0 => "Błąd poczty", + ], + "Message sent" => [ + 0 => "Wiadomość wysłana", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Wiadomość wysłana. Skontaktujemy się wkrótce.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Aby wysłać wiadomość wypełni poniższy formularz", + ], + "Your name" => [ + 0 => "Twoje imię", + ], + "Subject" => [ + 0 => "Temat", + ], + "Installed version is v%s" => [ + 0 => "Zainstalowana wersja: v%s", + ], + "Can't connect to %s" => [ + 0 => "Nie można połączyć się z %s", + ], + "Last available release is v%s" => [ + 0 => "Najnowsza wersja: v%s", + ], + "No update needed" => [ + 0 => "Aktualizacja niepotrzebna", + ], + "System files already up to date" => [ + 0 => "Pliki systemowe są już aktualne", + ], + "Starting v%s download" => [ + 0 => "Pobieranie v%s rozpoczęte", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Pobieranie v%s zakończone, kontynuacja do rozpakowywania", + ], + "Attempting to extract v%s" => [ + 0 => "Rozpakowywanie v%s rozpoczęte", + ], + "Extraction completed" => [ + 0 => "Rozpakowywanie zakończone", + ], + "Proceding to install the update" => [ + 0 => "Kontynuacja do instalacji aktualizacji", + ], + "Update failed" => [ + 0 => "Niepowodzenie aktualizacji", + ], + "You must enter the album name." => [ + 0 => "Musisz wpisać nazwę albumu", + ], + "Confirm" => [ + 0 => "Potwierdź", + ], + "Select existing album" => [ + 0 => "Wybierz istniejący album", + ], + "An error occurred. Please try again later." => [ + 0 => "Wystąpił błąd. Spróbuj ponownie później.", + ], + "Please select a valid image file type." => [ + 0 => "Wybierz poprawne rozszerzenie grafiki", + ], + "Please select a picture of at most %s size." => [ + 0 => "Wybierz grafikę o maksymalnym rozmiarze %s.", + ], + "Profile image updated." => [ + 0 => "Grafika profilowa została zaktualizowana.", + ], + "Profile background image updated." => [ + 0 => "Grafika tła profilu została zaktualizowana.", + ], + "Profile background image deleted." => [ + 0 => "Grafika tła profilu została usunięta.", + ], + "Error deleting profile background image." => [ + 0 => "Wystąpił błąd podczas usuwanie grafiki tła profilu.", + ], + "Update available v%s" => [ + 0 => "Dostępna aktualizacja v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Dla Twojego systemu dostępna jest aktualizacja. Możesz pobrać i zainstalować tę aktualizację automatycznie lub przejść do %s, aby pobrać plik.", + ], + "Update now" => [ + 0 => "Aktualizuj teraz", + ], + "This website is running latest %s version" => [ + 0 => "Masz najnowszą wersję %s", + ], + "File too big." => [ + 0 => "Plik jest zbyt duży.", + ], + "Invalid or unsupported file format." => [ + 0 => "Nieprawidłowy lub nieobsługiwany format pliku.", + ], + "Some files couldn't be added" => [ + 0 => "Część plików nie mogła zostać dodana", + ], + "Image edited successfully." => [ + 0 => "Grafika została edytowana pomyślnie.", + ], + "private" => [ + 0 => "prywatny", + ], + "Album edited successfully." => [ + 0 => "Album został edytowany pomyślnie.", + ], + "Invalid URL key." => [ + 0 => "Błędny klucz URL.", + ], + "Category URL key already being used." => [ + 0 => "Klucz URL kategorii jest już używany.", + ], + "Category successfully deleted." => [ + 0 => "Kategoria została pomyślnie usunięta.", + ], + "Category %s added." => [ + 0 => "Kategoria %s została dodana.", + ], + "Invalid expiration date." => [ + 0 => "Błędna data wygasania.", + ], + "IP %s already banned." => [ + 0 => "IP %s już zablokowany.", + ], + "IP %s banned." => [ + 0 => "IP %s zablokowany.", + ], + "IP ban successfully deleted." => [ + 0 => "Blokada IP usunięta", + ], + "Please fill all the required fields." => [ + 0 => "Wypełnij wszystkie wymagane pola.", + ], + "Invalid URL." => [ + 0 => "Błędny URL", + ], + "User added successfully." => [ + 0 => "Użytkownik został pomyślnie dodany.", + ], + "The content has been moved." => [ + 0 => "Zawartość została przeniesiona.", + ], + "Unselect" => [ + 0 => "Usuń wybór", + ], + "The content has been edited." => [ + 0 => "Zawartość została edytowana.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Jeśli kontynuujesz, wszystkie dokonane zmiany zostaną utracone.", + ], + "Changes saved successfully." => [ + 0 => "Zmiany zostały pomyślnie zapisane", + ], + "Go back to form" => [ + 0 => "Wróć do formularza", + ], + "continue anyway" => [ + 0 => "kontynuuj mimo wszystko", + ], + "Saving" => [ + 0 => "Zapisywanie", + ], + "Sending" => [ + 0 => "Wysyłanie", + ], + "Confirm action" => [ + 0 => "Potwierdź akcję", + ], + "information" => [ + 0 => "informacja", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/pt-BR.po.cache.php b/app/.cache/languages/pt-BR.po.cache.php new file mode 100644 index 0000000..4c5794b --- /dev/null +++ b/app/.cache/languages/pt-BR.po.cache.php @@ -0,0 +1,3402 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2019-12-12 15:27+0000', + 'PO-Revision-Date' => '2019-12-12 15:27+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'pt_BR', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "E-mail inválido", + ], + "Invalid username" => [ + 0 => "Nome de usuário inválido", + ], + "Invalid password" => [ + 0 => "Senha inválida", + ], + "Invalid website mode" => [ + 0 => "Modo do site inválido", + ], + "From email address" => [ + 0 => "A partir do endereço de e-mail", + ], + "Sender email for emails sent to users." => [ + 0 => "E-mail do remetente para os e-mails enviados aos usuários.", + ], + "Incoming email address" => [ + 0 => "Endereço do email de entrada", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Endereço para o formulário de contato e alertas do sistema.", + ], + "Website mode" => [ + 0 => "Modo do site", + ], + "You can switch the website mode anytime." => [ + 0 => "Você pode mudar a qualquer momento o modo do site.", + ], + "Community" => [ + 0 => "Comunidade", + ], + "Personal" => [ + 0 => "Pessoal", + ], + "Installed version is v%s" => [ + 0 => "A versão instalada é v%s", + ], + "Can't connect to %s" => [ + 0 => "Não foi possível conectar á %s", + ], + "Last available release is v%s" => [ + 0 => "Último lançamento disponível é v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Atualização necessária, prosseguindo para o download", + ], + "No update needed" => [ + 0 => "Não é necessário atualizar", + ], + "System files already up to date" => [ + 0 => "Os arquivos do sistema já estão atualizados", + ], + "Starting v%s download" => [ + 0 => "Começando a atualização para a versão %s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Versão %s já está baixada, prosseguindo para a extração", + ], + "Attempting to extract v%s" => [ + 0 => "Extraindo versão %s", + ], + "Extraction completed" => [ + 0 => "Extração concluída", + ], + "Proceding to install the update" => [ + 0 => "Prosseguindo para a instalação da atualização", + ], + "Update failed" => [ + 0 => "Atualização falhou", + ], + "Update in progress" => [ + 0 => "Atualização em progresso", + ], + "Missing %s file" => [ + 0 => "Faltando %s arquivo", + ], + "Invalid license info" => [ + 0 => "Informação da licença inválida", + ], + "Invalid license key" => [ + 0 => "Chave de licença inválida", + ], + "Can't save file" => [ + 0 => "Não foi possível salvar arquivo", + ], + "Can't download %s" => [ + 0 => "Não foi possível baixar %s", + ], + "Can't extract %s" => [ + 0 => "Não foi possível extrair %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Não foi possível criar %s diretório - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Não foi possível atualizar o arquivo %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Verifique os erros no formulário para continuar.", + ], + "You must enter the album name." => [ + 0 => "Você deve indicar o nome do álbum.", + ], + "Confirm" => [ + 0 => "Confirmar", + ], + "Select existing album" => [ + 0 => "Selecione um álbum existente", + ], + "An error occurred. Please try again later." => [ + 0 => "Ocorreu um erro. Por favor, tente novamente mais tarde.", + ], + "Please select a valid image file type." => [ + 0 => "Por favor, selecione um tipo de imagem válido.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Por favor selecione uma imagem com o máximo %s tamanho..", + ], + "Profile image updated." => [ + 0 => "Imagem do perfil atualizada.", + ], + "Profile background image updated." => [ + 0 => "Imagem de fundo atualizada.", + ], + "Profile background image deleted." => [ + 0 => "Imagem de fundo apagada.", + ], + "Error deleting profile background image." => [ + 0 => "Erro ao apagar imagem de fundo do perfil", + ], + "Passwords don't match" => [ + 0 => "As senhas não coincidem", + ], + "Update available v%s" => [ + 0 => "Atualização disponível v %s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Há uma atualização disponível para o seu sistema. Você pode fazer o download automático e instalar esta atualização ou ir para %s para proceder ao download do arquivo.", + ], + "The release notes for this update are:" => [ + 0 => "As notas de lançamento desta atualização são:", + ], + "Update now" => [ + 0 => "Atualizar agora", + ], + "or" => [ + 0 => "ou", + ], + "cancel" => [ + 0 => "Cancelar", + ], + "This website is running latest %s version" => [ + 0 => "O seu site está rodando a última versão do %s", + ], + "loading" => [ + 0 => "carregando", + ], + "Like" => [ + 0 => "Curtir", + ], + "Edit" => [ + 0 => "Editar", + ], + "Album" => [ + 0 => "Álbum", + 1 => "Álbuns", + ], + "Delete" => [ + 0 => "Apagar", + ], + "Close" => [ + 0 => "Fechar", + ], + "Previous" => [ + 0 => "Anterior", + ], + "Next" => [ + 0 => "Próximo", + ], + "Clipboard image" => [ + 0 => "Prancheta", + ], + "File too big." => [ + 0 => "Arquivo muito grande.", + ], + "Invalid or unsupported file format." => [ + 0 => "Formato de arquivo inválido ou não suportado.", + ], + "Some files couldn't be added" => [ + 0 => "Alguns arquivos não puderam ser adiccionados", + ], + "image" => [ + 0 => "imagem", + 1 => "imagens", + ], + "%s's Albums" => [ + 0 => "Álbuns de %s", + ], + "Image edited successfully." => [ + 0 => "Imagem editada com sucesso.", + ], + "private" => [ + 0 => "Privado", + ], + "Album edited successfully." => [ + 0 => "Álbum editado com sucesso.", + ], + "Invalid URL key." => [ + 0 => "Chave URL inválida.", + ], + "Category URL key already being used." => [ + 0 => "Chave de URL da categoria já está a ser usada.", + ], + "Category successfully deleted." => [ + 0 => "Categoria apagada com sucesso.", + ], + "Category %s added." => [ + 0 => "Categoria %s adicionada.", + ], + "Invalid expiration date." => [ + 0 => "Data de validade inválida.", + ], + "IP %s already banned." => [ + 0 => "O IP %s já se encontra banido.", + ], + "IP %s banned." => [ + 0 => "IP %s banido.", + ], + "IP ban successfully deleted." => [ + 0 => "Banimento de IP apagado com sucesso.", + ], + "Please fill all the required fields." => [ + 0 => "Por favor preencha todos os campos.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Valor para a capacidade de armazenamento inválido. Verifique se está a usar o formato correto.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "A capacidade de armazenamento não pode ser menor do que está sendo usada atualmente (%s).", + ], + "Invalid URL." => [ + 0 => "URL inválido.", + ], + "Storage successfully edited." => [ + 0 => "Armazenamento editado com sucesso,", + ], + "User added successfully." => [ + 0 => "Usuário adicionado com sucesso.", + ], + "The content has been deleted." => [ + 0 => "O conteúdo foi eliminado.", + ], + "The content has been moved." => [ + 0 => "O conteúdo foi movido.", + ], + "Select" => [ + 0 => "Selecionar", + ], + "Unselect" => [ + 0 => "Cancelar seleção", + ], + "The content has been edited." => [ + 0 => "O conteúdo foi editado.", + ], + "Untitled" => [ + 0 => "Sem título", + ], + "%s's images" => [ + 0 => "Imagens de %s", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Aviso: Esse conteúdo é privado, mas qualquer pessoa com o link pode ver.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Aviso: Esse conteúdo é protegido por senha, lembre-se de passar a senha para compartilhar o conteúdo.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Aviso: Este conteúdo é privado. Mude a privacidade para \"público\" para o compartilhar.", + ], + "Private" => [ + 0 => "Privado", + ], + "Public" => [ + 0 => "Público", + ], + "Me" => [ + 0 => "Eu", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Senha", + ], + "view" => [ + 0 => "visualização", + 1 => "visualizações", + ], + "After %n %t" => [ + 0 => "Depois de %n %t", + ], + "minute" => [ + 0 => "minuto", + 1 => "minutos", + ], + "hour" => [ + 0 => "hora", + 1 => "horas", + ], + "day" => [ + 0 => "dia", + 1 => "dias", + ], + "week" => [ + 0 => "semana", + 1 => "semanas", + ], + "month" => [ + 0 => "mês", + 1 => "meses", + ], + "year" => [ + 0 => "ano", + 1 => "anos", + ], + "Don't autodelete" => [ + 0 => "Desabilitar apagamento automático", + ], + "Duplicated upload" => [ + 0 => "Envio duplicado", + ], + "Private upload" => [ + 0 => "Envio privado", + ], + "like" => [ + 0 => "curtir", + 1 => "curtidas", + ], + "Recent" => [ + 0 => "Recentes", + ], + "Trending" => [ + 0 => "Tendências", + ], + "Top users" => [ + 0 => "Principais usuários", + ], + "Most recent" => [ + 0 => "Mais recentes", + ], + "Oldest" => [ + 0 => "Mais antigas", + ], + "Most viewed" => [ + 0 => "Mais vistas", + ], + "Popular" => [ + 0 => "Populares", + ], + "Most liked" => [ + 0 => "Mais curtidas", + ], + "Explore" => [ + 0 => "Galeria", + ], + "Animated" => [ + 0 => "Animadas", + ], + "Search" => [ + 0 => "Pesquisar", + ], + "People" => [ + 0 => "Pessoas", + ], + "Image" => [ + 0 => "Imagem", + 1 => "Imagens", + ], + "User" => [ + 0 => "Usuário", + 1 => "Usuários", + ], + "Can't create %s destination dir" => [ + 0 => "Não foi possível criar %s destino dir", + ], + "Can't open %s for writing" => [ + 0 => "Não foi possível abrir %s para escrita", + ], + "Internal" => [ + 0 => "Interno", + ], + "Can't insert storage." => [ + 0 => "Não foi possível inserir armazenamento.", + ], + "Can't update storage details." => [ + 0 => "Não foi possível atualizar dados de armazenamento.", + ], + "requires %s" => [ + 0 => "Requer %s", + ], + "Unlimited" => [ + 0 => "Ilimitado", + ], + "used" => [ + 0 => "usado", + ], + "Private profile" => [ + 0 => "Perfil privado", + ], + "second" => [ + 0 => "segundo", + 1 => "segundos", + ], + "%s ago" => [ + 0 => "a %s atrás", + ], + "moments ago" => [ + 0 => "a momentos atrás", + ], + "Dashboard" => [ + 0 => "Administração", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Existe uma atualização disponível para o seu sistema, Vá até %s para baixar e instalar a atualização.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "A base de dados do sistema está desatualizada. É necessário usar a ferramenta de <a href=\"%s\">atualização</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "O site está em modo de manutenção. Para reverter esta configuração vá até a página de <a href=\"%s\">Administração</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Você deve desligar as notificações de erro do PHP. Vá até as<a href='%s'> Configurações do sistema</a> para reverter essa configuração.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Você não mudou as configurações padrões do e-mail. Vá até as <a href='%s'>Configurações de e-mail</a> para arrumar.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Há uma atualização disponível para o seu site.", + ], + "admin dashboard" => [ + 0 => "Painel de administração", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Você pode aplicar essa atualização diretamente da sua %a ou baixa-lá da %s e assim instalar manualmente.", + ], + "view on %s" => [ + 0 => "ver no %s", + ], + "cookie policy" => [ + 0 => "política de cookies", + ], + "I understand" => [ + 0 => "Eu entendi", + ], + "You have been forbidden to use this website." => [ + 0 => "Você foi proibido de usar este site.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Sinta-se livre para navegar e descobrir todas minhas imagens e álbuns compartilhados.", + ], + "View all my images" => [ + 0 => "Visualize todas minhas imagens", + ], + "Plugin" => [ + 0 => "Plugin", + ], + "Request denied" => [ + 0 => "Pedido negado", + ], + "That page doesn't exist" => [ + 0 => "Esta página não existe", + ], + "Forgot password?" => [ + 0 => "Esqueceu sua senha?", + ], + "Reset password" => [ + 0 => "Redefinir senha", + ], + "Resend account activation" => [ + 0 => "Reenviar ativação da conta", + ], + "Add your email address" => [ + 0 => "Adicione o seu endereço de email", + ], + "Email changed" => [ + 0 => "E-mail alterado", + ], + "Invalid Username/Email" => [ + 0 => "Nome de usuário ou e-mail inválido", + ], + "User doesn't have an email." => [ + 0 => "O usuário não tem um e-mail.", + ], + "Account needs to be activated to use this feature" => [ + 0 => "A sua conta precisa ser ativada antes de poder usar este recurso", + ], + "Account already activated" => [ + 0 => "Conta já ativada", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Aguarde até 15 minutos para receber o e-mail. Você poderá tentar novamente mais tarde.", + ], + "Reset your password at %s" => [ + 0 => "Mude a sua senha em %s", + ], + "Confirmation required at %s" => [ + 0 => "Confirme sua conta na %s", + ], + "Welcome to %s" => [ + 0 => "Bem-vindo a %s", + ], + "Email already being used" => [ + 0 => "Esse e-mail já está sendo utilizado", + ], + "Password required" => [ + 0 => "É necessário uma senha", + ], + "Share" => [ + 0 => "Compartilhar", + ], + "Embed codes" => [ + 0 => "Códigos para incorporar", + ], + "Full info" => [ + 0 => "Informação completa", + ], + "%a album hosted in %w" => [ + 0 => "Álbum %a salvo em %w", + ], + "Stats" => [ + 0 => "Estatísticas", + ], + "Images" => [ + 0 => "Imagens", + ], + "Albums" => [ + 0 => "Álbuns", + ], + "Users" => [ + 0 => "Usuários", + ], + "Settings" => [ + 0 => "Configurações", + ], + "Bulk importer" => [ + 0 => "Importação em massa", + ], + "Chevereto version" => [ + 0 => "Versão", + ], + "install update" => [ + 0 => "Instalar atualização", + ], + "check for updates" => [ + 0 => "procurar atualizações", + ], + "Support" => [ + 0 => "Suporte", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Precisa de ajuda ? Vá até %s e você vai achar ajuda rapidamente.", + ], + "PHP version" => [ + 0 => "Versão do PHP", + ], + "Server" => [ + 0 => "Servidor", + ], + "MySQL version" => [ + 0 => "Versão do MySQL", + ], + "MySQL server info" => [ + 0 => "Informação do servidor MySQL", + ], + "GD Library" => [ + 0 => "Biblioteca GD", + ], + "File uploads" => [ + 0 => "Envios de arquivos", + ], + "Enabled" => [ + 0 => "Ativado", + ], + "Disabled" => [ + 0 => "Desativado", + ], + "Max. upload file size" => [ + 0 => "Tamanho máximo do arquivo", + ], + "Max. post size" => [ + 0 => "Tamanho maximo do envio", + ], + "Max. execution time" => [ + 0 => "Tempo máximo de execução", + ], + "%d second" => [ + 0 => "%d segundo", + 1 => "%d segundos", + ], + "Memory limit" => [ + 0 => "Limite de memória", + ], + "Links" => [ + 0 => "Links", + ], + "Documentation" => [ + 0 => "Documentação", + ], + "Changelog" => [ + 0 => "Log de mudanças", + ], + "Bug tracking" => [ + 0 => "Rastreamento de Bugs", + ], + "Website" => [ + 0 => "Site", + ], + "Content" => [ + 0 => "Conteúdo", + ], + "Pages" => [ + 0 => "Páginas", + ], + "Listings" => [ + 0 => "Resultados", + ], + "Image upload" => [ + 0 => "Envio de imagem", + ], + "Categories" => [ + 0 => "Categorias", + ], + "Consent screen" => [ + 0 => "Tela de conscientização", + ], + "Flood protection" => [ + 0 => "Proteção contra flood", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Página principal", + ], + "Banners" => [ + 0 => "Banners", + ], + "System" => [ + 0 => "Sistema", + ], + "Routing" => [ + 0 => "Rotas", + ], + "Languages" => [ + 0 => "Idiomas", + ], + "External storage" => [ + 0 => "Armazenamento externo ", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Redes sociais", + ], + "External services" => [ + 0 => "Serviços externos", + ], + "IP bans" => [ + 0 => "Banimentos por IP", + ], + "Additional settings" => [ + 0 => "Configurações adicionais", + ], + "Tools" => [ + 0 => "Ferramentas", + ], + "Can't delete all homepage cover images" => [ + 0 => "Não é possível apagar todos as imagens de capa da página inicial", + ], + "Homepage cover image deleted" => [ + 0 => "Imagem da capa apagada", + ], + "Local" => [ + 0 => "Local", + ], + "External" => [ + 0 => "Externo", + ], + "All" => [ + 0 => "Todas", + ], + "search content" => [ + 0 => "conteúdo de pesquisa", + ], + "Add page" => [ + 0 => "Adicionar página", + ], + "Edit page ID %s" => [ + 0 => "Editar página ID %s", + ], + "The page has been added successfully." => [ + 0 => "A página foi adicionada com sucesso.", + ], + "The page has been deleted." => [ + 0 => "A página foi removida.", + ], + "homepage" => [ + 0 => "página inicial", + ], + "Before main title (%s)" => [ + 0 => "Depois do título principal (%s)", + ], + "After call to action (%s)" => [ + 0 => "Depois da Call to action (%s)", + ], + "After cover (%s)" => [ + 0 => "Depois da capa (%s)", + ], + "After listing (%s)" => [ + 0 => "Depois dos resultados (%s)", + ], + "Before pagination" => [ + 0 => "Antes da paginação", + ], + "After pagination" => [ + 0 => "Depois da paginação", + ], + "Content (image and album)" => [ + 0 => "Conteúdo (imagem e álbum)", + ], + "Tab about column" => [ + 0 => "Guia sobre a coluna", + ], + "Before comments" => [ + 0 => "Antes dos comentários", + ], + "Image page" => [ + 0 => "Página da imagem", + ], + "Inside viewer top (image page)" => [ + 0 => "Vista interna superior (página da imagem)", + ], + "Expected banner size 728x90" => [ + 0 => "Tamanho do banner 728x90", + ], + "Inside viewer foot (image page)" => [ + 0 => "Vista interna do rodapé (página da imagem)", + ], + "After image viewer (image page)" => [ + 0 => "Após à visualização da imagem (página da imagem)", + ], + "Before header (image page)" => [ + 0 => "Antes do topo (página da imagem)", + ], + "After header (image page)" => [ + 0 => "Depois do topo (página da imagem)", + ], + "Footer (image page)" => [ + 0 => "Rodapé (página imagem)", + ], + "Album page" => [ + 0 => "Pagina do álbum", + ], + "Before header (album page)" => [ + 0 => "Antes do cabeçalho (página do álbum)", + ], + "After header (album page)" => [ + 0 => "Depois do cabeçalho (página do álbum)", + ], + "User profile page" => [ + 0 => "Página do perfil do usuário", + ], + "After top (user profile)" => [ + 0 => "Depois de topo (perfil do usuário)", + ], + "Before listing (user profile)" => [ + 0 => "Antes da paginação (perfil do usuário)", + ], + "Explore page" => [ + 0 => "Pagina de exploração", + ], + "After top (explore page)" => [ + 0 => "Depois do topo (página explorar)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Nome do site inválido", + ], + "Invalid language" => [ + 0 => "Idioma inválido", + ], + "Invalid timezone" => [ + 0 => "Fuso horário inválido", + ], + "Invalid value: %s" => [ + 0 => "Valor inválido: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Modo de armazenamento do envio inválido", + ], + "Invalid upload filenaming" => [ + 0 => "Nomeação do envio inválido", + ], + "Invalid thumb width" => [ + 0 => "Largura da miniatura inválida", + ], + "Invalid thumb height" => [ + 0 => "Altura da miniatura inválida", + ], + "Invalid medium size" => [ + 0 => "Tamanha médio inválido", + ], + "Invalid watermark percentage" => [ + 0 => "Percentual de marca d'água inválido", + ], + "Invalid watermark opacity" => [ + 0 => "Opacidade de marca d'água inválido", + ], + "Invalid theme" => [ + 0 => "Tema inválido", + ], + "Invalid value" => [ + 0 => "Valor inválido", + ], + "Invalid theme tone" => [ + 0 => "Tom de tema inválido", + ], + "Invalid theme main color" => [ + 0 => "Cor principal do tema inválida", + ], + "Invalid theme top bar color" => [ + 0 => "Cor do menu no topo inválida", + ], + "Invalid theme top bar button color" => [ + 0 => "Cor dos botões do menu no topo inválida", + ], + "Invalid theme image listing size" => [ + 0 => "Tamanho para os resultados do tema inválido", + ], + "Invalid user id" => [ + 0 => "ID de usuário Inválido", + ], + "Invalid email mode" => [ + 0 => "Modo de e-mail inválido", + ], + "Invalid SMTP port" => [ + 0 => "Porta SMTP inválida", + ], + "Invalid SMTP security" => [ + 0 => "Segurança inválida SMTP ", + ], + "Invalid personal mode user ID" => [ + 0 => "Inválido modo pessoal ID de usuário", + ], + "Invalid or reserved route" => [ + 0 => "Rota inválida ou reservada", + ], + "Invalid website privacy mode" => [ + 0 => "Modo de privacidade do site inválido", + ], + "Invalid website content privacy mode" => [ + 0 => "Modo de conteúdo do site privacidade inválido", + ], + "Invalid homepage style" => [ + 0 => "Estilo da página principal inválido", + ], + "Invalid homepage call to action button color" => [ + 0 => "Chamada da página inicial inválida para o botão do Call to action", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Chamada da página inicial inválida para a funcionalidade de ação", + ], + "Invalid title" => [ + 0 => "Título inválido", + ], + "Invalid status" => [ + 0 => "Status inválido", + ], + "Invalid type" => [ + 0 => "Tipo inválido", + ], + "Invalid visibility" => [ + 0 => "Visibilidade inválida", + ], + "Invalid internal type" => [ + 0 => "Tipo interno inválido", + ], + "Invalid target attribute" => [ + 0 => "Atributo de destino inválido", + ], + "Invalid rel attribute" => [ + 0 => "Atributo rel inválido", + ], + "Invalid icon" => [ + 0 => "Ícone inválido", + ], + "Invalid URL key" => [ + 0 => "Chave URL inválido", + ], + "Invalid file path" => [ + 0 => "Caminho de arquivo inválido", + ], + "Invalid link URL" => [ + 0 => "Link de URL inválido", + ], + "Invalid user minimum age" => [ + 0 => "Idade mínima inválida", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Apenas caracteres alfanuméricos, hífen e caracteres são permitidos", + ], + "Invalid URL" => [ + 0 => "URL inválido", + ], + "Routes can't be the same" => [ + 0 => "As rotas não podem ser iguais", + ], + "Invalid upload image path" => [ + 0 => "Caminho para o envio de imagens inválido", + ], + "Invalid call to action URL" => [ + 0 => "URL da Call to action inválido", + ], + "Max. allowed %s" => [ + 0 => "Máximo permitido %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Não foi possível mapear %m para uma pasta existente (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Não foi possível mapear %m para uma rota existente (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Não foi possível mapear %m para %r (colisão de usuário)", + ], + "Invalid SMTP server" => [ + 0 => "Servidor SMTP inválido", + ], + "Invalid SMTP username" => [ + 0 => "Nome de usuário SMTP inválido", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Esta chave de URL já está sendo usado por outra página (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Este caminho de arquivo já está sendo usado por outra página (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Não foi possível salvar o conteúdo da página: %s.", + ], + "Following" => [ + 0 => "Seguindo", + ], + "About" => [ + 0 => "Sobre", + ], + "Image ID" => [ + 0 => "ID da imagem", + ], + "Uploader IP" => [ + 0 => "IP do usuário que enviou", + ], + "Ban IP" => [ + 0 => "Banir IP", + ], + "IP already banned" => [ + 0 => "Esse IP já se encontra banido", + ], + "Upload date" => [ + 0 => "Data de envio", + ], + "Image %i in %a album" => [ + 0 => "Imagem %i no álbum %a", + ], + "Image %i in %c category" => [ + 0 => "Imagem %i na categoria %c", + ], + "Image %i hosted in %w" => [ + 0 => "Imagem %i salva em %w", + ], + "Direct links" => [ + 0 => "Links Diretos", + ], + "Image link" => [ + 0 => "Link da imagem", + ], + "Image URL" => [ + 0 => "URL da imagem", + ], + "Thumbnail URL" => [ + 0 => "URL Thumbnail", + ], + "Medium URL" => [ + 0 => "URL Médio", + ], + "Full image" => [ + 0 => "Imagem completa", + ], + "Full image (linked)" => [ + 0 => "Imagem completa (com link)", + ], + "Medium image (linked)" => [ + 0 => "Imagem média (com link)", + ], + "Thumbnail image (linked)" => [ + 0 => "Imagem miniatura (com link)", + ], + "Login needed" => [ + 0 => "É necessário iniciar sessão", + ], + "IP address already banned" => [ + 0 => "Endereço de IP já está banido", + ], + "Missing values" => [ + 0 => "Valores em falta", + ], + "Invalid role" => [ + 0 => "Papel inválido", + ], + "Username already being used" => [ + 0 => "Nome de usuário já está sendo utilizado", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Adicione uma senha ou outra conexão social antes de apagar %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Adicione um e-mail ou outra conexão social antes de apagar %s", + ], + "%s has been disconnected." => [ + 0 => "%s foi desconectado.", + ], + "Test email from %s @ %t" => [ + 0 => "Teste de e-mail %s @ %t", + ], + "This is just a test" => [ + 0 => "Este é apenas um teste", + ], + "Test email sent to %s." => [ + 0 => "E-mail enviado para teste %s.", + ], + "User %s followed" => [ + 0 => "O usuário %s foi seguido", + ], + "User %s unfollowed" => [ + 0 => "O usuário %s não é mais seguido", + ], + "Content liked" => [ + 0 => "Conteúdo curtido", + ], + "Content disliked" => [ + 0 => "Conteúdo não curtido", + ], + "%u liked your %t %c" => [ + 0 => "%u curtiu sua %t %c", + ], + "%u is now following you" => [ + 0 => "%u agora está seguindo você", + ], + "A private user" => [ + 0 => "Um usuário privado", + ], + "Wrong Username/Email password combination" => [ + 0 => "Nome de usuário errado ou combinação de senha - email", + ], + "Sign in" => [ + 0 => "Entrar", + ], + "Upload images" => [ + 0 => "Enviar imagens", + ], + "Upload plugin" => [ + 0 => "Plugin de Upload", + ], + "Image search results for %s" => [ + 0 => "Resultados de imagens contendo %s", + ], + "Album search results for %s" => [ + 0 => "Resultados de álbuns contendo %s", + ], + "User search results for %s" => [ + 0 => "Resultados de utilizadores contendo %s", + ], + "Account" => [ + 0 => "Conta", + ], + "Profile" => [ + 0 => "Perfil", + ], + "Linked accounts" => [ + 0 => "Contas vinculadas", + ], + "Invalid image expiration: %s" => [ + 0 => "Validade da imagem inválida: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Um email foi enviado para %s com instruções para ativar", + ], + "Invalid name" => [ + 0 => "Nome inválido", + ], + "Invalid website" => [ + 0 => "Página inválida", + ], + "Wrong password" => [ + 0 => "A senha está incorreta", + ], + "Use a new password" => [ + 0 => "Use uma nova senha", + ], + "Changes have been saved." => [ + 0 => "As alterações foram salvas.", + ], + "Password has been changed" => [ + 0 => "A senha foi alterada", + ], + "Password has been created." => [ + 0 => "A senha foi criada", + ], + "Wrong Username/Email values" => [ + 0 => "Nome de utilizador ou e-mail errado ", + ], + "Settings for %s" => [ + 0 => "Configurações para %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Você concorda com os termos e politicas de privacidade", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Você deve ter ao menos %s anos para usar o site.", + ], + "Create account" => [ + 0 => "Criar conta", + ], + "Upload" => [ + 0 => "Enviar", + ], + "%s's Images" => [ + 0 => "Imagens de %s", + ], + "Results for" => [ + 0 => "Resultados para", + ], + "Liked by %s" => [ + 0 => "Curtido por %s", + ], + "Liked" => [ + 0 => "Curtido", + ], + "Followers" => [ + 0 => "Seguidores", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) álbuns sobre %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) em %w", + ], + "Discovery" => [ + 0 => "Descubra", + ], + "Advanced search" => [ + 0 => "Pesquisa avançada", + ], + "Random" => [ + 0 => "Aleatório", + ], + "Notices (%s)" => [ + 0 => "Notificações (%s)", + ], + "Notifications" => [ + 0 => "Notificações", + ], + "You don't have notifications" => [ + 0 => "Você não tem nenhuma notificação", + ], + "My Profile" => [ + 0 => "Perfil", + ], + "Sign out" => [ + 0 => "Sair", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Recebemos uma pedido de alteração do e-mail associado a sua <a href=\"%u\">%n</a> conta no site %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Para completar o processo, você deve <a href=\"%s\">ativar aqui o seu e-mail</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Você pode também pode optar por copiar e colar a seguinte URL no seu navegador: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Se não pretendia fazer isto, ignore esta mensagem.", + ], + "This request was made from IP: %s" => [ + 0 => "Este pedido foi feito apartir do IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Recebemos o seu pedido para registar sua conta %n na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Para completar o processo, você deve <a href=\"%s\"> ativar a sua conta </a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Recebemos um pedido para redefinir a senha da sua conta na <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Para redefinir sua senha <a href=\"%s\">clique neste link</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Olá %n, seja bem-vindo a %w.", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Agora que a sua conta está ativada, você poderá desfrutar do envio de imagens, criar álbuns e definir a sua privacidade, bem como partilhar as suas imagens nos mais variados locais.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Aliás, aqui está a sua fantástica página de perfil: <a href=\"%u\">%n</a>. Vá até lá e edite-a a seu gosto. Ela é toda sua!", + ], + "Thank you for joining" => [ + 0 => "Obrigado por se juntar a nós", + ], + "This email was sent from %w %u" => [ + 0 => "Este e-mail foi enviado pelo sistema automático da %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Cole, araste ou solte aqui para enviar imagens", + ], + "Select the images to upload" => [ + 0 => "Selecionar as imagens para envio", + ], + "browse from your computer" => [ + 0 => "procurar no seu computador", + ], + "add image URLs" => [ + 0 => "adicionar imagens pela URL", + ], + "You can also %i or %u." => [ + 0 => "Você também pode %i ou %u.", + ], + "browse from your device" => [ + 0 => "procurar no seu computador", + ], + "take a picture" => [ + 0 => "tire uma foto", + ], + "You can also %i, %c or %u." => [ + 0 => "Você também pode %i, %c ou %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Edite ou redimensione qualquer imagem clicando na visualização da imagem", + ], + "Edit any image by touching the image preview" => [ + 0 => "Edite ou redimensione qualquer imagem tocando na visualização da imagem", + ], + "your computer" => [ + 0 => "seu computador", + ], + "You can add more images from %i or %u." => [ + 0 => "Você pode adicionar mais imagens de %i ou de %u.", + ], + "your device" => [ + 0 => "seu dispositivo", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Você pode continuar adicionando mais imagens de %i, %c ou %u.", + ], + "Uploading %q %o" => [ + 0 => "Enviando %q %o", + ], + "complete" => [ + 0 => "completo", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Suas imagens estão sendo enviadas, deve levar apenas alguns segundos para o envio ser totalmente concluído.", + ], + "Upload complete" => [ + 0 => "Envio completo", + ], + "Uploaded content added to %s." => [ + 0 => "Conteúdo enviado adicionado a %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Você pode %c com o conteúdo apenas enviado ou %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Você pode %c com o conteúdo acabado de ser enviado.", + ], + "create a new album" => [ + 0 => "criar um álbum novo", + ], + "move it to an existing album" => [ + 0 => "mover para um álbum existente", + ], + "create an account" => [ + 0 => "criar uma conta", + ], + "sign in" => [ + 0 => "entrar", + ], + "No %s have been uploaded" => [ + 0 => "Nenhum %s foi carregado", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Alguns erros ocorreram e o sistema não pode processar o seu pedido.", + ], + "Category" => [ + 0 => "Categoria", + ], + "Select category" => [ + 0 => "Selecione a categoria", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Marque esta opção se o envio é de conteúdo impróprio", + ], + "Not family safe upload" => [ + 0 => "Envio de conteúdo impróprio", + ], + "Uploading" => [ + 0 => "Enviando", + ], + "cancel remaining" => [ + 0 => "Cancelar restantes", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Nota: Algumas imagens não puderam ser enviadas.", + ], + "learn more" => [ + 0 => "Saber mais", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Verifique o <a data-modal=\"simple\" data-target=\"failed-upload-result\">relatório de erro</a> para mais informações.", + ], + "reset" => [ + 0 => "resetar", + ], + "close" => [ + 0 => "fechar", + ], + "copy" => [ + 0 => "copiar", + ], + "insert" => [ + 0 => "insira", + ], + "Remove" => [ + 0 => "Remover", + ], + "Edit image" => [ + 0 => "Modificar imagem", + ], + "Title" => [ + 0 => "Título", + ], + "optional" => [ + 0 => "Opcional", + ], + "Resize image" => [ + 0 => "Redimensionar imagem", + ], + "Width" => [ + 0 => "Largura", + ], + "Height" => [ + 0 => "Altura", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Nota: imagens GIF animadas não será redimensionada.", + ], + "Auto delete image" => [ + 0 => "Apagar imagem automaticamente", + ], + "Sign up" => [ + 0 => "Cadastrar", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s para poder personalizar ou desabilitar a exclusão automática da imagem.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Marque esta opção se a imagem é de conteúdo impróprio", + ], + "Flag as unsafe" => [ + 0 => "Marcar como inseguro", + ], + "Description" => [ + 0 => "Descrição", + ], + "Brief description of this image" => [ + 0 => "Breve descrição desta imagem", + ], + "Add image URLs" => [ + 0 => "Adicionar imagens pela URL", + ], + "Add the image URLs here" => [ + 0 => "Adicione os URLs de imagem aqui", + ], + "Create album" => [ + 0 => "Criar álbum", + ], + "existing album" => [ + 0 => "álbum existente", + ], + "Move to album" => [ + 0 => "Mover para o álbum", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Selecione um álbum existente para mover o conteúdo enviado. Você também pode <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover o conteúdo para lá.", + ], + "Error report" => [ + 0 => "Relatório de erro", + ], + "album" => [ + 0 => "álbum", + 1 => "álbuns", + ], + "Viewer links" => [ + 0 => "Ver links", + ], + "HTML Codes" => [ + 0 => "Códigos HTML", + ], + "HTML image" => [ + 0 => "Imagem HTML", + ], + "HTML full linked" => [ + 0 => "HTML completo", + ], + "HTML medium linked" => [ + 0 => "HTML médio", + ], + "HTML thumbnail linked" => [ + 0 => "HTML da miniatura", + ], + "BBCodes" => [ + 0 => "Códigos BB", + ], + "BBCode full" => [ + 0 => "BBCode completo", + ], + "BBCode full linked" => [ + 0 => "BBCode completo", + ], + "BBCode medium linked" => [ + 0 => "Código BBCode do tamanho médio", + ], + "BBCode thumbnail linked" => [ + 0 => "Código BBCode da miniatura", + ], + "All these words" => [ + 0 => "Todas estas palavras", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Introduza as palavras importantes: cachorro", + ], + "This exact word or phrase" => [ + 0 => "Esta palavra ou frase exata", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Introduza palavras exatas entre aspas: \"rato terrier\"", + ], + "None of these words" => [ + 0 => "Nenhuma destas palavras", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Coloque um sinal de subtracção antes das palavras que não lhe interessam: -roedor -\"Jack Russell\"", + ], + "Storage" => [ + 0 => "Armazenamento", + ], + "IP address" => [ + 0 => "Endereço de IP", + ], + "Album name" => [ + 0 => "Nome do álbum", + ], + "move to existing album" => [ + 0 => "mover para um álbum existente", + ], + "Album description" => [ + 0 => "Descrição do álbum", + ], + "Brief description of this album" => [ + 0 => "Breve descrição deste álbum", + ], + "Album privacy" => [ + 0 => "Privacidade do álbum", + ], + "Who can view this content" => [ + 0 => "Quem pode visualizar este conteúdo", + ], + "Private (just me)" => [ + 0 => "Privado (apenas eu)", + ], + "Private (anyone with the link)" => [ + 0 => "Privado (qualquer pessoa com o link)", + ], + "Private (password protected)" => [ + 0 => "Privado (protegido por senha)", + ], + "Album password" => [ + 0 => "Senha do álbum", + ], + "Name" => [ + 0 => "Nome", + ], + "Category name" => [ + 0 => "Nome da categoria", + ], + "URL key" => [ + 0 => "Chave URL", + ], + "Category URL key" => [ + 0 => "Chave URL da categoria", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Apenas letras, números ou hyfens", + ], + "Brief description of this category" => [ + 0 => "Breve descrição desta categoria", + ], + "Untitled image" => [ + 0 => "Imagem sem titulo", + ], + "Path" => [ + 0 => "Caminho", + ], + "Local path (absolute)" => [ + 0 => "Caminho Local (absoluto)", + ], + "Directory structure" => [ + 0 => "Estrutura do diretório", + ], + "Threads" => [ + 0 => "Threads", + ], + "Select number of threads" => [ + 0 => "Selecionar número de threads", + ], + "Expiration date" => [ + 0 => "Data de validade", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "AAAA-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Exemplo", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Até quando este endereço de IP ficará banido? Deixe em branco para permanente.", + ], + "Message" => [ + 0 => "Mensagem", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Mensagem de texto, HTML ou um redireccionamento URL", + ], + "Existing album" => [ + 0 => "Álbum existente", + ], + "create new album" => [ + 0 => "Criar novo álbum ", + ], + "Storage name" => [ + 0 => "Nome do alojamento", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Região", + ], + "Storage region" => [ + 0 => "Região de armazenamento", + ], + "Storage bucket" => [ + 0 => "Banco de alojamento", + ], + "Key" => [ + 0 => "Chave", + ], + "Storage key" => [ + 0 => "Chave do alojamento", + ], + "Secret" => [ + 0 => "Segredo", + ], + "Storage secret" => [ + 0 => "Segredo do alojamento", + ], + "Private key" => [ + 0 => "Chave privada", + ], + "Google Cloud JSON key" => [ + 0 => "Chave Google Cloud JSON", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Você vai precisar de um <a %s> conta de serviço </a> para isso.", + ], + "Service name" => [ + 0 => "Nome do serviço", + ], + "Identity URL" => [ + 0 => "URL identidade", + ], + "Identity API endpoint" => [ + 0 => "Endpoint API Indentificação", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Endpoint API para a identidade OpenStack", + ], + "Username" => [ + 0 => "Nome de usuário", + ], + "Container" => [ + 0 => "Recipiente", + ], + "Storage container" => [ + 0 => "Recipiente de armazenamento", + ], + "Tenant id" => [ + 0 => "ID Tenant", + ], + "Tenant id (account id)" => [ + 0 => "ID de Tenant (ID de conta)", + ], + "Tenant name" => [ + 0 => "Nome Tenant", + ], + "Tenant name (account name)" => [ + 0 => "Nome Tenant (nome da conta)", + ], + "Server address" => [ + 0 => "Endereço do Servidor", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname ou IP do servidor de alojamento", + ], + "Server path" => [ + 0 => "Caminho do servidor", + ], + "Server login" => [ + 0 => "Login do Servidor", + ], + "Server password" => [ + 0 => "Senha do servidor", + ], + "Local path" => [ + 0 => "Caminho Local", + ], + "Storage capacity" => [ + 0 => "Capacidade do armazenamento", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Exemplo: 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Este armazenamento será desligado quando atingir esta capacidade. Deixe em branco ou zero para ilimitado.", + ], + "Storage URL" => [ + 0 => "URL do armazenamento", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "O sistema irá mapear as imagens deste alojamento neste URL.", + ], + "view more" => [ + 0 => "ver mais", + ], + "Load more" => [ + 0 => "Carregar mais", + ], + "Select all" => [ + 0 => "Selecionar tudo", + ], + "Clear selection" => [ + 0 => "Limpar seleção", + ], + "Selection" => [ + 0 => "Seleção", + ], + "Action" => [ + 0 => "Ação", + ], + "Get embed codes" => [ + 0 => "Obter códigos para compartilhar", + ], + "Assign category" => [ + 0 => "Definir categoria", + ], + "Flag as safe" => [ + 0 => "Marcar como seguro", + ], + "Create new album" => [ + 0 => "Criar um álbum novo", + ], + "Sign in with another account" => [ + 0 => "Entre com outra conta", + ], + "Home" => [ + 0 => "Início", + ], + "There's nothing to show here." => [ + 0 => "Não há nada para ver aqui.", + ], + "Edit image details" => [ + 0 => "Editar os detalhes da imagem", + ], + "Edit album details" => [ + 0 => "Editar detalhes do álbum", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Todas as imagens serão transferidas para este álbum recém criado. Pode também mover as imagens para um <a class=\"modal-switch\" data-switch=\"move-existing-album\">álbum já existente</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Selecione um álbum existente para mover a imagem. Você pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover a imagem para lá.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Selecione um álbum existente para mover os álbuns. Você pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover todos os conteúdos do álbum para lá.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Selecione um álbum existente para mover as imagens. Você pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover a imagem para lá.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Todas as imagens selecionadas serão movidas para esta categoria.", + ], + "There is no categories." => [ + 0 => "Não existem categorias.", + ], + "Confirm flag content as safe" => [ + 0 => "Confirme que o conteúdo é seguro", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Quer mesmo confirmar isto como sendo conteúdo seguro?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Confirme o conteúdo como imprórpio", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Deseja mesmo denunciar este conteúdo como impróprio?", + ], + "Confirm deletion" => [ + 0 => "Confirme a eliminação", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Deseja mesmo remover este conteúdo? Isto não pode ser revertido.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Deseja mesmo remover todo o conteúdo seleccionado? Isto não pode ser revertido.", + ], + "Fullscreen" => [ + 0 => "Tela Cheia", + ], + "Exit fullscreen" => [ + 0 => "Sair de Tela Cheia", + ], + "Guest" => [ + 0 => "Convidado", + ], + "Keyboard shortcuts" => [ + 0 => "Atalhos de Teclado", + ], + "Uploaded by guest" => [ + 0 => "Enviado por um visitante", + ], + "From %s" => [ + 0 => "De %s", + ], + "Uploaded by private" => [ + 0 => "Envio privado", + ], + "by %u" => [ + 0 => "Enviado por %u", + ], + "Toggle unsafe flag" => [ + 0 => "Alterar para conteúdo imprópio", + ], + "The requested page was not found." => [ + 0 => "A página solicitada não foi encontrada.", + ], + "Search something else" => [ + 0 => "Procure por algo mais", + ], + "The user has been deleted" => [ + 0 => "O usuário foi apagado", + ], + "Your account is almost ready" => [ + 0 => "A sua conta está quase pronta", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Um e-mail para foi enviado para %s com as instruções para ativar a sua conta. O link de ativação só é válido por 48 horas. \nSe você não receber as instruções verifique a sua pasta de spam ou lixo.", + ], + "Resend activation" => [ + 0 => "Reenviar ativação", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Você alterou com sucesso a sua conta de e-mail para %s", + ], + "Go to my profile" => [ + 0 => "Ir para o meu perfil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Um link de confirmação será enviado para este e-mail com os detalhes para ativar sua conta.", + ], + "Your email address" => [ + 0 => "O seu endereço de email", + ], + "Submit" => [ + 0 => "Enviar", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Um e-mail com instruções para redefinir sua senha foi enviado para o endereço de e-mail da sua conta. Se você não receber as instruções verifique a sua pasta de spam ou lixeira.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Um email anterior foi enviado com instruções para redefinir a sua palavra passe. Se não recebeu as instruções verifique a sua pasta de correio não solicitado/spam/Lixo.", + ], + "Resend instructions" => [ + 0 => "Reenviar instruções", + ], + "Username or Email address" => [ + 0 => "Nome de usuário ou Endereço de e-mail", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "A sua senha foi alterada com sucesso. Agora você pode iniciar sessão com a sua nova senha.", + ], + "Login now" => [ + 0 => "Entrar agora", + ], + "Enter your new password" => [ + 0 => "Introduza sua nova senha", + ], + "%d characters min" => [ + 0 => "%d caracteres mínimos", + ], + "Password strength" => [ + 0 => "Força da Senha", + ], + "Re-enter your new password" => [ + 0 => "Digite novamente a sua nova senha", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Um e-mail para %s foi enviado com instruções para ativar sua conta. Se você não receber as instruções tente verificar os seus filtros de spam ou caixa de spam.", + ], + "This content is private" => [ + 0 => "Este conteúdo é privado", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Quer mesmo apagar este álbum e todas as suas imagens? Esta operação não poderá ser revertida.", + ], + "Delete album" => [ + 0 => "Apagar álbum", + ], + "You like this" => [ + 0 => "Você curtiu isso", + ], + "Upload to album" => [ + 0 => "Enviar para o álbum", + ], + "Album link" => [ + 0 => "Link do álbum", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Por favor, leia e compreenda as seguintes condições antes de você continuar:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Este site contém informações, links e imagens de material sexualmente explícito. Se você tem menos de %s anos, se tal material o ofende ou se é ilegal ver esse material na sua comunidade, por favor, não continue.\n\nTenho pelo menos %s anos de idade e acredito que, como adulto, é o meu direito inalienável de receber / ver material sexualmente explícito. Eu desejo receber / ver material sexualmente explícito.\n\nAcredito que os atos sexuais entre adultos consentâneos não são nem ofensivos nem obscenos. A visualização, leitura e download de materiais sexualmente explícitos não viola os padrões da minha comunidade, cidade, cidade, estado ou país.\n\nO material sexualmente explícito que estou vendo é para meu uso pessoal e não vou expor os menores ao material.\n\nEu sou o único responsável por quaisquer divulgações falsas ou ramificações legais de visualização, leitura ou download de qualquer material neste site. Além disso, este site nem suas afiliadas serão responsáveis ​​por quaisquer ramificações legais decorrentes da entrada ou uso fraudulento deste site.\n\nEsta tela de consentimento constitui um acordo legal entre este site e você e / ou qualquer negócio em que você tenha qualquer interesse legal ou equitativo. Se qualquer parte deste contrato for considerada inaplicável por um tribunal de jurisdição competente, não afetará a exequibilidade das outras partes do contrato.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Clicando em \"Eu aceito\" você declara que você leu e entendeu todas as condições mencionadas.", + ], + "I Agree" => [ + 0 => "Eu aceito", + ], + "documentation" => [ + 0 => "documentação", + ], + "Learn more about %s at our %d." => [ + 0 => "Aprenda mais sobre %s em nosso %d.", + ], + "Disk used" => [ + 0 => "Espaço usado", + ], + "Add import job" => [ + 0 => "Adicionar trabalho de importação", + ], + "Process import" => [ + 0 => "Processo de importação", + ], + "Actions" => [ + 0 => "Ações", + ], + "Process" => [ + 0 => "Processo", + ], + "Pause" => [ + 0 => "Pausar", + ], + "Cancel" => [ + 0 => "Cancelar", + ], + "Process log" => [ + 0 => "Log de Processamento", + ], + "Errors" => [ + 0 => "Erros", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Você tem certeza que quer remover a importação ID %s?", + ], + "Queued" => [ + 0 => "Fila", + ], + "Working" => [ + 0 => "Trabalhando", + ], + "Paused" => [ + 0 => "Pausado", + ], + "Canceled" => [ + 0 => "Cancelado", + ], + "Completed" => [ + 0 => "Completado", + ], + "Status" => [ + 0 => "Estado", + ], + "Add user" => [ + 0 => "Adicionar usuário", + ], + "Role" => [ + 0 => "Papel", + ], + "Manager" => [ + 0 => "Gerente", + ], + "Administrator" => [ + 0 => "Administrador", + ], + "Email address" => [ + 0 => "Endereço de email", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Esta configuração estará sempre desativada quando você utilizar o modo pessoal do site.", + ], + "Add category" => [ + 0 => "Adicionar categoria", + ], + "Add IP ban" => [ + 0 => "Adicionar banimento de IP", + ], + "Add storage" => [ + 0 => "Adicionar armazanamento", + ], + "Return to pages" => [ + 0 => "Retornar às páginas", + ], + "Website name" => [ + 0 => "Nome da página", + ], + "Website doctitle" => [ + 0 => "Subtítulo ", + ], + "Website description" => [ + 0 => "Descrição da página", + ], + "Automatic" => [ + 0 => "Automático", + ], + "Forced" => [ + 0 => "Forçado", + ], + "Default time zone" => [ + 0 => "Fuso horário padrão", + ], + "Select region" => [ + 0 => "Selecionar região", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Permitir a procura de imagens, álbuns e usuários baseado na determinada consulta de pesquisa.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Permite procurar imagens públicas enviadas. Também ativa as categorias.", + ], + "guests" => [ + 0 => "visitantes", + ], + "Enables explore for guests." => [ + 0 => "Habilitar exploração para os visitantes", + ], + "Enables to browse images randomly." => [ + 0 => "Ativar a procura de imagens randomicamente.", + ], + "Likes" => [ + 0 => "Curtidas", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Permite aos usuários curtir conteúdos e aparecer na lista de \"Mais curtidas\".", + ], + "Followers allows users to follow each other." => [ + 0 => "Seguidores permitem usuários a seguirem uns aos outros.", + ], + "Personal mode target user" => [ + 0 => "Modo pessoal de usuário de destino", + ], + "User ID" => [ + 0 => "ID de utilizador", + ], + "Your user id is: %s" => [ + 0 => "Seu ID de usuário é: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "ID numérico do usuário-alvo para o modo pessoal.", + ], + "Personal mode routing" => [ + 0 => "Roteamento modo Pessoal", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Rota personalizada para mapear / nome de usuário para / algo. Use \"/\" para mapear a homepage.", + ], + "Website privacy mode" => [ + 0 => "Modo de privacidade do site", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Modo privado fará com que o site só esteja disponível para usuários registados.", + ], + "Content privacy mode" => [ + 0 => "Modo de privacidade conteúdo", + ], + "Default" => [ + 0 => "Padrão", + ], + "Force private (self)" => [ + 0 => "Forçar privado (auto)", + ], + "Force private (anyone with the link)" => [ + 0 => "Forçar privado (qualquer pessoa com o link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Modos de privacidade forçadas substituirá preferência de privacidade de usuário.", + ], + "Page title" => [ + 0 => "Título da página", + ], + "Page status" => [ + 0 => "O status da página", + ], + "Active page" => [ + 0 => "Página ativa", + ], + "Inactive page (%s)" => [ + 0 => "Página Inativa (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Somente páginas ativas estarão acessíveis.", + ], + "Type" => [ + 0 => "Tipo", + ], + "Terms of service" => [ + 0 => "Termos de serviço", + ], + "Privacy" => [ + 0 => "Privacidade", + ], + "Contact" => [ + 0 => "Contato", + ], + "Page visibility" => [ + 0 => "Visibilidade página", + ], + "Visible page" => [ + 0 => "Página visível", + ], + "Hidden page" => [ + 0 => "Página escondida", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Páginas ocultas não serão mostradas em menus do sistema, mas qualquer pessoa pode acessar a ela com o link.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Apenas alfanuméricos, hífens e barra", + ], + "File path" => [ + 0 => "Caminho de arquivo", + ], + "A %f file relative to %s" => [ + 0 => "Um %f arquivo relativo para %s", + ], + "Meta keywords" => [ + 0 => "Meta palavras-chave", + ], + "Meta description" => [ + 0 => "Meta Descrição", + ], + "Source code" => [ + 0 => "Código fonte", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Sem permissão de escrita em %s caminho que você vai precisar adicionar este arquivo utilizando um editor externo.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Sem permissão de escrita em %s você precisará editar o conteúdo deste arquivo usando um editor externo.", + ], + "Taken from: %s" => [ + 0 => "Retirado de: %s", + ], + "Link URL" => [ + 0 => "URL do link", + ], + "Link target attribute" => [ + 0 => "Atributo destino do link", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Selecione %s para abrir a página ou link em uma nova janela.", + ], + "Link rel attribute" => [ + 0 => "Link rel atributo", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Apenas alfanuméricos, hífens e espaços em branco", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s atributo", + ], + "Link icon" => [ + 0 => "Link do ícone", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Verifique a <a %s> referência ícone </a> para a lista completa de ícones suportados.", + ], + "Sort order display" => [ + 0 => "Exibição da ordem de classificação", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Exibição ordem de classificação página para os menus e listas. Use \"1\" para prioridade.", + ], + "pages" => [ + 0 => "páginas", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Você realmente quer apagar a página com o ID %s ? Isso não pode ser desfeito.", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Imagens com formatos não marcados não serão aceitas para o envio.", + ], + "Enable uploads" => [ + 0 => "Ativar envios", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Ative esta opção se quiser permitir envios de imagens. Esta configuração não afeta administradores.", + ], + "Guest uploads" => [ + 0 => "Envios de visitantes", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Ative isto se quiser permitir que os usuários não registados façam envios.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Ativar códigos embed (usuário)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Ative isto para mostrar os códigos embed quando o envio terminar.", + ], + "Upload threads" => [ + 0 => "Linhas de envio", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Número de threads simultâneos de envio (envio paralelo)", + ], + "Redirect on single upload" => [ + 0 => "Redirecionar em caso de envio único", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Ative isto se você quiser que redirecione para a imagem logo após um envio único.", + ], + "Enable duplicate uploads" => [ + 0 => "Ativar envios duplicados", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Ative esta opção se quiser permitir envio duplicado do mesmo IP dentro de 24 horas. Essa configuração não afeta os administradores.", + ], + "Enable expirable uploads" => [ + 0 => "Ativar envios expiráveis", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Ative esta opção se você deseja permitir envios com uma opção de exclusão automática.", + ], + "Auto delete guest uploads" => [ + 0 => "Excluir automaticamente envio de visitantes", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Ative isso se desejar forçar os envios dos visitantes a serem excluídos automaticamente após certo tempo.", + ], + "Maximum image size" => [ + 0 => "Tamanho máximo da imagem", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "As imagens maiores que esse tamanho serão automaticamente reduzidas. Use zero (0) para não definir um limite.", + ], + "Image Exif data" => [ + 0 => "Dados EXIF da imagem", + ], + "Keep" => [ + 0 => "Manter", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Selecione a configuração padrão para os dados <a %s> EXIF </a> de uma imagem em um envio.", + ], + "Image Exif data (user setting)" => [ + 0 => "Dados EXIF da imagem (definição do usuário)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Habilite esta se você quiser permitir que cada usuário configure como imagem de dados EXIF ​​serão tratadas.", + ], + "Maximum upload file size" => [ + 0 => "Tamanho máximo do arquivo para envio", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "O tamanho máximo permitido pelo servidor é %s. Esse limite é limitado por %u e %p (valores %f).", + ], + "Image path" => [ + 0 => "Caminho da imagem", + ], + "Relative to Chevereto root" => [ + 0 => "Relativo ao root do Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Onde armazenar as imagens? Relativo ao root do Chevereto.", + ], + "Storage mode" => [ + 0 => "Modo de armazenamento", + ], + "Datefolders" => [ + 0 => "Pastas de dados", + ], + "Direct" => [ + 0 => "Direto", + ], + "Datefolders creates %s structure" => [ + 0 => "Datefolders cria %s estrutura", + ], + "File naming method" => [ + 0 => "Método de nomeação do arquivo", + ], + "Original" => [ + 0 => "Original", + ], + "Mix original + random" => [ + 0 => "Original Mix + aleatória", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Original\" irá tentar manter o nome da fonte de imagem enquanto \"AUTO\" vai gerar um nome aleatório. \"ID\" será o nome a imagem exatamente como o ID de imagem.", + ], + "Thumb size" => [ + 0 => "Tamanho da miniatura", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "As miniaturas serão ajustadas para este tamanho.", + ], + "Medium image fixed dimension" => [ + 0 => "Imagem média com dimensão fixa", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Imagens médias serão fixado a esta dimensão. Por exemplo, se você selecionar \"largura\" essa dimensão será fixa e a altura da imagem será automaticamente calculada.", + ], + "Medium image fixed size" => [ + 0 => "Imagem média de tamanho fixo", + ], + "Width or height will be automatically calculated." => [ + 0 => "Largura ou altura será calculado automaticamente.", + ], + "Watermarks" => [ + 0 => "Marcas d'água", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Ative para colocar uma marca de água em todos os envios de imagens.", + ], + "Warning: Can't write in %s" => [ + 0 => "Aviso: Não é possível escrever em %s", + ], + "Watermark user toggles" => [ + 0 => "Alterna a marca d'água do usuário", + ], + "Enable watermark on guest uploads" => [ + 0 => "Habilitar marca d'água em envios de visitantes", + ], + "Enable watermark on user uploads" => [ + 0 => "Habilitar marca d'água em envios de usuários", + ], + "Enable watermark on admin uploads" => [ + 0 => "Habilitar marca d'água em envios da administração", + ], + "Watermark file toggles" => [ + 0 => "Alterna arquivo marca d'água", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Habilitar marca d'água em uploads de imagem GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Tamanho mínimo de imagem necessária para aplicar marca d'água", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Imagens menores que isso não vai utilizar marca d'água. Use zero (0) para não definir um limite de tamanho mínimo da imagem.", + ], + "Watermark image" => [ + 0 => "Imagem de marca de água", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Você vai ter melhores resultados com logotipos simples com sombra. Você pode usar uma imagem grande, se o tamanho do arquivo não é tão grande (máximo recomendado. É 16KB). Deve ser um PNG.", + ], + "Watermark position" => [ + 0 => "Posição da marca de água", + ], + "left top" => [ + 0 => "Topo esquerdo", + ], + "left center" => [ + 0 => "Centro esquerda", + ], + "left bottom" => [ + 0 => "Canto inferior esquerdo", + ], + "center top" => [ + 0 => "Topo centro", + ], + "center center" => [ + 0 => "Centro", + ], + "center bottom" => [ + 0 => "Centro na parte inferior", + ], + "right top" => [ + 0 => "Topo direita", + ], + "right center" => [ + 0 => "Centro direita", + ], + "right bottom" => [ + 0 => "Inferior direito", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Posição relativa da imagem de marca de água. Primeiro alinhamento horizontal e depois alinhamento vertical.", + ], + "Watermark percentage" => [ + 0 => "Percentual marca d'água", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Marca d'água tamanho percentual em relação à área da imagem de destino. Valores de 1 a 100.", + ], + "Watermark margin" => [ + 0 => "Margem da marca de água", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margem da borda para a imagem de marca de água", + ], + "Watermark opacity" => [ + 0 => "Opacidade da marca de água", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Opacidade da marca de água na imagem final. Valores de 0 a 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Painel > Configurações > Site", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "As categorias não estão ativas, esta funcionalidade está desativada. Para reverter isso vá até %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Você quer realmente apagar a categoria %s? Esta operação não pode ser revertida.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Aviso: Apagar a categoria não apagará as imagens que ela contém.", + ], + "Edit category" => [ + 0 => "Editar categoria", + ], + "Expires" => [ + 0 => "Expira", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Quer mesmo remover o ban do IP %s? Esta operação não pode ser revertida.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Endereço de IP banido será proibido de usar todo o site.", + ], + "Edit IP ban" => [ + 0 => "Editar IP do ban", + ], + "Enable signups" => [ + 0 => "Ativar as inscrições", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Ative esta opção para permitir que os utilizadores possam registar-se.", + ], + "Enable user content delete" => [ + 0 => "Ativar códigos embed (conteúdo)", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Ative isto se você deseja permitir que os usuários deletem o próprio conteúdo. Esta opção não afeta administradores.", + ], + "Minimum age required" => [ + 0 => "Idade mínima", + ], + "Empty" => [ + 0 => "Vazio", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Deixa vazio para não requerer uma idade mínima para usar o site.", + ], + "Username routing" => [ + 0 => "Rota do nome de usuário", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Ative isto se desejar usar %s/nome_de_usuário em vez de %s/usuários/nome_de_usuário", + ], + "Require email confirmation" => [ + 0 => "Requerer confirmação de email", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Ative isto se desejar que os utilizadores necessitem de validar o e-mail quando criam conta.", + ], + "Require email for social signup" => [ + 0 => "Requerer confirmação de email quando criam conta através de uma rede social", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Ative isto se desejar que os utilizadores necessitem de validar o e-mail quando criam conta através de uma rede social.", + ], + "User avatar max. filesize" => [ + 0 => "Tamanho máximo do arquivo do avatar", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Tamanho máximo permitido para a imagem do avatar do usuário. (Máximo permitido pelo servidor é %s)", + ], + "User background max. filesize" => [ + 0 => "Tamanha da imagem de fundo do usuário", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Tamanho máximo permitido para a imagem de fundo do usuário. (Máximo permitido pelo servidor é %s)", + ], + "Enable consent screen" => [ + 0 => "Ativar tela de conscientização", + ], + "Consent screen cover image" => [ + 0 => "Plano de fundo da página de conscientização", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Bloquear envios de imagens por IP se o sistema de detectar um comportamento de inundação com base no número de envios por período de tempo. Esta configuração não afecta administradores.", + ], + "Notify to email" => [ + 0 => "Notificar para o e-mail", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Se habilitado, o sistema irá enviar um e-mail sobre incidentes de flood.", + ], + "Minute limit" => [ + 0 => "Limite por minuto", + ], + "Hourly limit" => [ + 0 => "Limite por hora", + ], + "Daily limit" => [ + 0 => "Limite por dia", + ], + "Weekly limit" => [ + 0 => "Limite por semana", + ], + "Monthly limit" => [ + 0 => "Limite por mês", + ], + "Show not safe content in listings" => [ + 0 => "Mostrar conteúdo não seguro em listas", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Habilite esta se você quer mostrar o conteúdo não seguro em listas. Essa configuração não afeta os administradores e podem ser substituídas pelas configurações próprios usuários.", + ], + "Blur NSFW content in listings" => [ + 0 => "Blur conteúdo NSFW em anúncios", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Habilitar se você deseja aplicar um efeito de blur nas imagens NSFW em listas.", + ], + "Show banners in not safe content" => [ + 0 => "Mostrar banners em conteúdo não seguro", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Ative esta opção se quiser mostrar banners em páginas de conteúdo não seguras.", + ], + "Show not safe content in random mode" => [ + 0 => "Mostrar conteúdo não seguro em modo aleatório", + ], + "List items per page" => [ + 0 => "itens da lista por página", + ], + "How many items should be displayed per page listing." => [ + 0 => "Quantos itens devem ser mostrador por página de listagem.", + ], + "List pagination mode" => [ + 0 => "Modo Lista de paginação", + ], + "Endless scrolling" => [ + 0 => "Rolagem Infinita", + ], + "Classic pagination" => [ + 0 => "Paginação clássica", + ], + "What pagination method should be used." => [ + 0 => "Qual método de paginação deve ser usado.", + ], + "Image listing size" => [ + 0 => "Tamanho listagem imagem", + ], + "Fluid" => [ + 0 => "Fluido", + ], + "Fixed" => [ + 0 => "Fixo", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Ambos os métodos utilizam uma largura fixa, mas método utiliza fluido alturas automáticas.", + ], + "explore" => [ + 0 => "explorar", + ], + "Listing columns number" => [ + 0 => "Número de colunas Listando", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Aqui você pode definir quantas colunas são usados ​​com base em cada dispositivo de destino.", + ], + "Phone" => [ + 0 => "Telefone", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablete", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Desktop", + ], + "theme editing" => [ + 0 => "edição do tema", + ], + "Put your themes in the %s folder" => [ + 0 => "Coloque seus temas na pasta %s", + ], + "Tone" => [ + 0 => "Tom", + ], + "Light" => [ + 0 => "Luz", + ], + "Dark" => [ + 0 => "Escuro", + ], + "Main color" => [ + 0 => "Cor principal", + ], + "Hexadecimal color value" => [ + 0 => "Valor da cor hexadecimal", + ], + "Top bar color" => [ + 0 => "Cor da barra superior", + ], + "Black" => [ + 0 => "Preto", + ], + "White" => [ + 0 => "Branco", + ], + "Top bar button color" => [ + 0 => "Cor do botão da barra superior", + ], + "Blue" => [ + 0 => "Azul", + ], + "Green" => [ + 0 => "Verde", + ], + "Orange" => [ + 0 => "Laranja", + ], + "Red" => [ + 0 => "Vermelho", + ], + "Grey" => [ + 0 => "Cinza", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Cor para botões da barra do topo como o \"Criar conta\".", + ], + "Enable vector logo" => [ + 0 => "Ativar logo em imagem vetorial", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Ativar logo vetor para o logótipo de alta qualidade em dispositivos com alta resolução.", + ], + "Vector logo image" => [ + 0 => "Imagem do logotipo Vetor", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Versão Vetor ou o seu logótipo em formato SVG.", + ], + "Raster logo image" => [ + 0 => "Imagem do logotipo raster", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Versão Bitmap ou teu logotipo. O formato PNG é recomendado.", + ], + "Logo height" => [ + 0 => "Tamanho da logo", + ], + "No value" => [ + 0 => "Sem valor", + ], + "Use this to set the logo height if needed." => [ + 0 => "Use isto para determinar o tamanho da logo, se for preciso", + ], + "Favicon image" => [ + 0 => "Imagem do favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Imagem Favicon. A imagem deve ter a mesma largura e altura.", + ], + "Enable download button" => [ + 0 => "Ativar botão de download", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Ative esta opção se quiser mostrar o botão de download da imagem.", + ], + "Enable right click on image" => [ + 0 => "Ativar clique com o botão direito na imagem", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Ative isto que você quiser habilitar o clique com o botão direito na página de visualização da imagem.", + ], + "Enable show Exif data" => [ + 0 => "Mostrar dados EXIF", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Ative isto se você quiser mostrar os dados EXIF da imagem", + ], + "Enable social share" => [ + 0 => "Ativar compartilhamento Social", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Ative isto se você quiser mostrar os botões de compartilhamento em redes sociais.", + ], + "Enable embed codes (content)" => [ + 0 => "Ativar códigos embed (conteúdo)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Ative isto se você quiser mostrar códigos embed para o conteúdo.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Caixa de conteúdo inseguro para o usuário", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Ative esta opção se quiser mostrar uma caixa de seleção para indicar upload de conteúdo não seguro.", + ], + "Custom CSS code" => [ + 0 => "Código CSS personalizado", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Coloca o teu código CSS personalizado aqui. Ele será colocado como <style> antes da tag </head>.", + ], + "Custom JS code" => [ + 0 => " Código personalizado JS", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Coloca o teu código JS personalizado aqui. Ele será colocado como <script> antes da tag </head>.", + ], + "Style" => [ + 0 => "Estilo", + ], + "Landing page" => [ + 0 => "Landing Page", + ], + "Route explore" => [ + 0 => "Explorador de rota", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Selecione o estilo da página inicial. Para customizar edite app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Imagem de capa", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Você realmente quer apagar esta imagem? Esta ação não pode ser revertida.", + ], + "Delete image" => [ + 0 => "Apagar imagem", + ], + "Add new cover image" => [ + 0 => "Adicionar nova imagem de capa", + ], + "Paragraph" => [ + 0 => "Paragrafo", + ], + "Call to action button color" => [ + 0 => "Cor do botão da chamada para ação", + ], + "Color of the homepage call to action button." => [ + 0 => "Cor do botão da chamada para ação da página inicial", + ], + "Call to action functionality" => [ + 0 => "Funcionalidade do botão da chamada para ação", + ], + "Open URL" => [ + 0 => "Abrir URL", + ], + "Call to action URL" => [ + 0 => "URL da chamada para ação", + ], + "Enter an absolute or relative URL" => [ + 0 => "Insira uma URL absoluta ou relativa", + ], + "Call to action HTML" => [ + 0 => "HTLM da chamada para ação", + ], + "User IDs" => [ + 0 => "IDs dos usuários", + ], + "banners" => [ + 0 => "banners", + ], + "Automatic updates check" => [ + 0 => "Verificação por atualizações automática", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Quando ativado o sistema irá procurar por atualizações automaticamente.", + ], + "Display available updates notification" => [ + 0 => "Mostrar notificações de novas atualizações", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Ative isto para mostrar um aviso no topo avisando você sobre as novas atualizações do sistema disponíveis.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URLs", + ], + "Minify code" => [ + 0 => "Código Minify", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Habilite se você deseja o auto minify CSS e código JS", + ], + "Maintenance" => [ + 0 => "Manutenção", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Quando ativo o site irá mostrar uma mensagem de manutenção. Esta configuração não afeta os administradores.", + ], + "Crypt salt" => [ + 0 => "Salto criptográfico", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "This is the salt used to convert numeric ID to alphanumeric. It was generated on install.", + ], + "PHP error reporting" => [ + 0 => "Reportar erro do PHP", + ], + "Debug level" => [ + 0 => "Nível de depuração", + ], + "None" => [ + 0 => "Nenhum", + ], + "Error log" => [ + 0 => "Registro de erros", + ], + "Print errors without error log" => [ + 0 => "Imprimir sem registro de erros", + ], + "Print and log errors" => [ + 0 => "Imprimir com registro de erros", + ], + "Image routing" => [ + 0 => "Rota da imagem", + ], + "Routing for %s" => [ + 0 => "Rota para %s", + ], + "Album routing" => [ + 0 => "Rota do álbum", + ], + "Language subdomains" => [ + 0 => "Idioma de subdomínios", + ], + "Custom language strings" => [ + 0 => "Cadeias de idiomas personalizáveis", + ], + "language strings" => [ + 0 => "Cadeias de idiomas", + ], + "Default language" => [ + 0 => "Idioma padrão", + ], + "Default base language to use." => [ + 0 => "Idioma base para usar como padrão.", + ], + "Auto language" => [ + 0 => "Idioma automático", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Ative isto para automaticamente detectar a língua do usuário e mudar para a mesma.", + ], + "Language chooser" => [ + 0 => "Selecionador de idioma", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Ative isto se você quiser ativar a seleção de línguas.", + ], + "Enabled languages" => [ + 0 => "Ativar diferentes línguas", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Línguas não marcadas não serão usadas no site.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Altere isto para ativar dos desativar o HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Altere isto para ativar ou desativar esse armazenamento", + ], + "Quota" => [ + 0 => "Cota", + ], + "Active" => [ + 0 => "Ativo", + ], + "Storage method" => [ + 0 => "Método de armazenamento", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "O armazenamento local é usado por padrão ou não há um armazenamento externo ativo.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Se você precisar de ajudar vá até a <a %s>documentação de armazenamento</a>.", + ], + "Edit storage" => [ + 0 => "Editar armazenamento", + ], + "From name" => [ + 0 => "Do nome", + ], + "Sender name for emails sent to users." => [ + 0 => "Nome do remetente dos e-mails enviados para os utilizadores.", + ], + "Email mode" => [ + 0 => "Modo de e-mail", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Como enviar e-mails? SMTP é recomedado.", + ], + "SMTP server and port" => [ + 0 => "Servidor SMTP e porta", + ], + "SMTP server" => [ + 0 => "Servidor SMTP", + ], + "SMTP username" => [ + 0 => "Nome de utilizador SMTP", + ], + "SMTP password" => [ + 0 => "Palavra passe SMTP", + ], + "SMTP security" => [ + 0 => "Segurança SMTP", + ], + "Unsecured" => [ + 0 => "Inseguro", + ], + "Decode ID" => [ + 0 => "Decode ID", + ], + "Encode ID" => [ + 0 => "Encode ID", + ], + "Send test email" => [ + 0 => "Enviar e-mail de teste", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Use esta ferramente para ver como os seus e-mails serão entregues. Nós recomendamos você usar %s.", + ], + "Export a user" => [ + 0 => "Exportar um usuário", + ], + "Export user" => [ + 0 => "Exportar usuário", + ], + "Regenerate" => [ + 0 => "Regenerar", + ], + "Migrate" => [ + 0 => "Migrar", + ], + "social networks" => [ + 0 => "redes sociais", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Você precisa de um <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> para este.", + ], + "Facebook app id" => [ + 0 => "Id app Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Chave secreta do aplicativo do Facebook", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Você precisa de um <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> para esta.", + ], + "Twitter API key" => [ + 0 => "Chave da API do Twitter", + ], + "Twitter API secret" => [ + 0 => "Segredo da API do Twitter", + ], + "Twitter account" => [ + 0 => "Conta Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Você precisa de um <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> para esta.", + ], + "Google client id" => [ + 0 => "ID de cliente do Google", + ], + "Google client secret" => [ + 0 => "Segredo do cliente Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Você precisa de um <a href=\"http://vk.com/dev\" target=\"_blank\">Aplicativo VK</a> para isso.", + ], + "VK client id" => [ + 0 => "ID do cliente VK", + ], + "VK client secret" => [ + 0 => "Segredo do cliente VK", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Você precisas de uma chave <a href=\"%s\" target=\"_blank\"> reCAPTCHA </a> para isto.", + ], + "%s site key" => [ + 0 => "%s chave local", + ], + "%s secret key" => [ + 0 => "%s chave secreta", + ], + "reCAPTCHA threshold" => [ + 0 => "Limite do reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Quantas tentativas falhadas são necessárias para pedir reCAPTCHA ? Use zero para sempre pedir o reCAPTCHA.", + ], + "Comments API" => [ + 0 => "Comentários da API", + ], + "Disqus API works with %s." => [ + 0 => "A API do Disqus funciona com %s", + ], + "Disqus shortname" => [ + 0 => "Nome no Disqus", + ], + "%s public key" => [ + 0 => "%s chave pública", + ], + "Comment code" => [ + 0 => "Código para comentários", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook ou qualquer coisa que você quiser. Será utilizado no modo de exibição de imagem.", + ], + "Analytics code" => [ + 0 => "Código do Analytics", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics ou qualquer coisa que você quiser. Será adicionado ao rodapé tema.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Para ver a documentação sobre a API vá até <a %s>API documentation</a>", + ], + "API v1 key" => [ + 0 => "Chave API v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Use esta chave quando estiver usando a <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Rota do plugin", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Ative para mostrar instruções do plugin no %u. Um link para as instruções será adicionado para o %s menu. Esta opção não afeta administradores.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Use isto para definir uma URL customizada para %p. Por favor, note que você precisa replicar manualmente %s nessa URL.", + ], + "Cookie law compliance" => [ + 0 => "Cumprimento da legislação de Cookies", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Ative esta opção para exibir uma mensagem que está em conformidade com os requisitos da lei dos Cookies da União Européia.\nNota: Você só precisa disto se o seu site estiver hospedado na União Européia e se você adicionar cookies de rastreamento.", + ], + "Save changes" => [ + 0 => "Salvar as alterações", + ], + "Check the errors to proceed." => [ + 0 => "Verifique os erros para continuar.", + ], + "Play GIF" => [ + 0 => "Abrir GIF", + ], + "Load full resolution" => [ + 0 => "Carregar visualização completa", + ], + "Added to %a and categorized in %c" => [ + 0 => "Adicionado a %a e categorizado em %c", + ], + "Added to %s" => [ + 0 => "Adicionar a %s", + ], + "Uploaded to %s" => [ + 0 => "Enviado para %s", + ], + "Uploaded %s" => [ + 0 => "Enviado %s", + ], + "Less Exif data" => [ + 0 => "Menos dados EXIF", + ], + "More Exif data" => [ + 0 => "Mais dados EXIF", + ], + "Share image" => [ + 0 => "Compartilhar imagem", + ], + "Album ID" => [ + 0 => "ID do álbum", + ], + "In this album" => [ + 0 => "Neste album", + ], + "Upload and share your images." => [ + 0 => "Envie e compartilhe as suas imagens.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Arraste e solte ou cole para começar a enviar suas imagens agora. Limite de %s. Links direto para a imagem, Códigos BB e miniaturas em HTML.", + ], + "Start uploading" => [ + 0 => "Começar a enviar", + ], + "Sign up to unlock all the features" => [ + 0 => "Registre-se para desbloquear todas as funcionalidades do site", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Gerencie suas imagens, crie álbuns privados, personalize seu perfil e muito mais.", + ], + "Sign in with your account" => [ + 0 => "Entre com sua conta", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Você não tem uma conta? <a href='%s'> Registre-se </a> agora.", + ], + "Logged out" => [ + 0 => "Você saiu", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Você saiu da sua conta. Esperamos vê-lo novamente em breve.", + ], + "Go to homepage" => [ + 0 => "Ir para página inicial", + ], + "Website under maintenance" => [ + 0 => "O site está em manutenção", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Estamos no momento em manutenção. Por favor, volte em alguns minutos.", + ], + "This content is password protected." => [ + 0 => "Este conteúdo é protegido por uma senha.", + ], + "Please enter your password to continue." => [ + 0 => "Por favor, digite sua senha para continuar.", + ], + "Send" => [ + 0 => "Enviar", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Adicione o upload da imagem ao seu site, blog ou fórum, instalando nosso plugin de upload. Ele fornece o upload de imagens para qualquer site, colocando um botão que permitirá que seus usuários enviem imagens diretamente para o nosso serviço e ele irá manipular automaticamente os códigos necessários para a inserção. Todos os recursos incluídos como arrastar e soltar, upload remoto, redimensionamento de imagem e muito mais.", + ], + "Supported software" => [ + 0 => "Software suportado", + ], + "supported software" => [ + 0 => "software suportado", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "O plugin funciona em qualquer site com conteúdo editável pelo usuário e para %sv, ele colocará um botão de upload que irá corresponder à barra de ferramentas do editor de destino para que não seja necessária nenhuma personalização adicional.", + ], + "Add it to your website" => [ + 0 => "Adicione-o ao seu site", + ], + "options" => [ + 0 => "opções", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Copie e cole o código do plugin no código HTML do seu site (de preferência dentro da seção principal). Há uma abundância de %o para adequá-lo melhor às suas necessidades.", + ], + "Basic options" => [ + 0 => "Opções básicas", + ], + "Color palette" => [ + 0 => "Paleta de cores", + ], + "Button color scheme" => [ + 0 => "Esquema de cores do botão", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Códigos de incorporação que serão inseridos automaticamente na caixa de editor", + ], + "Sibling selector" => [ + 0 => "Seletor Sibling", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Onde colocar o botão perto do elemento Sibling", + ], + "Sibling position" => [ + 0 => "Posição do Sibling", + ], + "After" => [ + 0 => "Depois", + ], + "Before" => [ + 0 => "Antes", + ], + "Position relative to sibling element" => [ + 0 => "Posição relativa ao elemento Sibling", + ], + "Advanced options" => [ + 0 => "Opções avançadas", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "O plugin possui um grande conjunto de opções adicionais que permitem a personalização completa. Você pode usar HTML, CSS, paleta de cores própria, configurar observadores e muito mais. Verifique o %d e a fonte do plugin para ter uma melhor ideia dessas opções avançadas.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Ou você não tem permissão para acessar esta página ou o link expirou.", + ], + "Search results" => [ + 0 => "Procurar resultados", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Você realmente deseja excluir este usuário? esta ação não pode ser desfeita.", + ], + "Delete user" => [ + 0 => "Apagar usuário", + ], + "Register date" => [ + 0 => "Data de registo", + ], + "Registration IP" => [ + 0 => "IP de registro", + ], + "Valid" => [ + 0 => "Válido", + ], + "Banned" => [ + 0 => "Banido", + ], + "Awaiting email" => [ + 0 => "Aguardando e-mail", + ], + "Awaiting confirmation" => [ + 0 => "Aguardando confirmação", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i para %f caracteres<br>Letras, números e \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Apagar automaticamente os envios", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Essa configuração será aplicada para todos os seus envios de imagens por padrão. Você poderá mudar essa configuração em cada envio.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Manter os dados <a %s>EXIF</a> no envio", + ], + "Newsletter" => [ + 0 => "Receber novidades", + ], + "Send me emails with news about %s" => [ + 0 => "Enviar e-mails com novidades sobre o %s", + ], + "Content settings" => [ + 0 => "Configurações do conteúdo", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Mostrar conteúdos impróprios nas listagens (de outros)", + ], + "Language" => [ + 0 => "Idioma", + ], + "Timezone" => [ + 0 => "Fuso horário", + ], + "Current password" => [ + 0 => "Senha atual", + ], + "Enter your current password" => [ + 0 => "Digite sua senha atual", + ], + "New password" => [ + 0 => "Nova senha", + ], + "Confirm new password" => [ + 0 => "Confirme sua nova senha", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Adicione uma senha para ser poder fazer login usando o seu nome de usuário ou e-mail.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Este usuário não tem uma senha. Adicione uma usando este formulário.", + ], + "Enter your password" => [ + 0 => "Digite a sua senha", + ], + "Confirm password" => [ + 0 => "Confirme sua senha", + ], + "Re-enter your password" => [ + 0 => "Digite novamente a sua senha", + ], + "Upload new image" => [ + 0 => "Carregar nova imagem", + ], + "Delete existing image" => [ + 0 => "Apagar a imagem existente", + ], + "Make my profile and identity totally private" => [ + 0 => "Tornar meu perfil e identidade totalmente privados", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Ative isto se você quiser atuar como um usuário anonimo", + ], + "This is your real name, not your username." => [ + 0 => "Este é o seu verdadeiro nome, não o seu nome de usuário.", + ], + "http://yourwebsite.com" => [ + 0 => "http://omeusite.com.br", + ], + "Bio" => [ + 0 => "Descrição", + ], + "Tell us a little bit about you" => [ + 0 => "Conte-nos um pouco mais sobre você", + ], + "User has no connections." => [ + 0 => "O usuário não tem conexões.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Vincular a sua conta para serviços externos para poder entrar e compartilhar conteúdo.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Você realmente deseja sair %s desta conta?", + ], + "This account is connected to %s" => [ + 0 => "Esta conta está conectada a %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Você realmente quer desligar o %s conta?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Você será desconectado e você não será capaz de acessar sua conta usando este %s conta.", + ], + "Your account is connected to %s" => [ + 0 => "Sua conta está conectada a %s", + ], + "disconnect" => [ + 0 => "Desconectar", + ], + "Connect %s" => [ + 0 => "Conectar ao %s", + ], + "Button" => [ + 0 => "Botão", + ], + "Login" => [ + 0 => "Login", + ], + "resend account activation" => [ + 0 => "re-enviar ativação da conta", + ], + "I'm at least %s years old" => [ + 0 => "Eu tenho ao menos %s anos", + ], + "terms" => [ + 0 => "termos", + ], + "privacy policy" => [ + 0 => "política de privacidade", + ], + "Upload profile background" => [ + 0 => "Carregar imagem de fundo do perfil", + ], + "Change background" => [ + 0 => "Alterar a imagem de fundo", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "A imagem de fundo do perfil será apagada. Isto não poderá ser desfeito. Você tem certeza que deseja fazer isso ?", + ], + "Delete background" => [ + 0 => "Apagar a imagem de fundo", + ], + "Edit profile" => [ + 0 => "Editar o perfil", + ], + "Follower" => [ + 0 => "Seguidor", + 1 => "Seguidores", + ], + "Follow" => [ + 0 => "Seguir", + ], + "General questions/comments" => [ + 0 => "Questões gerais ou comentários", + ], + "DMCA complaint" => [ + 0 => "Denúncia de DMCA", + ], + "Invalid message" => [ + 0 => "Mensagem inválida", + ], + "Invalid subject" => [ + 0 => "Assunto inválido", + ], + "Mail error" => [ + 0 => "Erro de correio", + ], + "Message sent" => [ + 0 => "Enviar mensagem", + ], + "Message sent. We will get in contact soon." => [ + 0 => "A mensagem foi enviada. Nós entraremos em contato em breve.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Se você quiser enviar uma mensagem preencha o formulário abaixo.", + ], + "Your name" => [ + 0 => "Seu nome", + ], + "Subject" => [ + 0 => "Assunto", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Todas as mudanças que fez serão perdidas se continuar.", + ], + "Changes saved successfully." => [ + 0 => "Alterações salvas com sucesso.", + ], + "Go back to form" => [ + 0 => "Voltar para o formulário", + ], + "continue anyway" => [ + 0 => "Continuar assim mesmo", + ], + "Saving" => [ + 0 => "Salvando", + ], + "Sending" => [ + 0 => "Enviando", + ], + "Confirm action" => [ + 0 => "Confirmar ação", + ], + "information" => [ + 0 => "Informação", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/pt.po.cache.php b/app/.cache/languages/pt.po.cache.php new file mode 100644 index 0000000..bb80e20 --- /dev/null +++ b/app/.cache/languages/pt.po.cache.php @@ -0,0 +1,2099 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:16+0000', + 'PO-Revision-Date' => '2020-09-02 17:16+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'pt', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "E-mail inválido", + ], + "Invalid username" => [ + 0 => "Nome de utilizador inválido", + ], + "Invalid password" => [ + 0 => "Senha inválida", + ], + "Invalid website mode" => [ + 0 => "Modo de website inválido", + ], + "From email address" => [ + 0 => "A partir do endereço de e-mail", + ], + "Sender email for emails sent to users." => [ + 0 => "E-mail do remetente para os e-mails enviados aos utilizadores.", + ], + "Incoming email address" => [ + 0 => "Endereço de email de entrada", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Destinatário para formulário de contacto e alertas do sistema.", + ], + "Website mode" => [ + 0 => "Modo do Site", + ], + "You can switch the website mode anytime." => [ + 0 => "Pode trocar o modo do site a qualquer altura.", + ], + "Community" => [ + 0 => "Comunidade", + ], + "Personal" => [ + 0 => "Pessoal", + ], + "Installed version is v%s" => [ + 0 => "Versão instalada é a v%s", + ], + "Can't connect to %s" => [ + 0 => "Não é possível ligar a %s", + ], + "Last available release is v%s" => [ + 0 => "Versão mais recente disponível é a v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Actualização necessária, a ir para o download", + ], + "No update needed" => [ + 0 => "Não é preciso actualizar", + ], + "System files already up to date" => [ + 0 => "Os ficheiros de sistema já estão actualizados", + ], + "Starting v%s download" => [ + 0 => "A iniciar o download da v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "v%s descarregada, a iniciar a extracção", + ], + "Attempting to extract v%s" => [ + 0 => "A tentar extrair a v%s", + ], + "Extraction completed" => [ + 0 => "Extracção completa", + ], + "Proceding to install the update" => [ + 0 => "A instalar a actualização", + ], + "Update failed" => [ + 0 => "Actualização falhou", + ], + "Update in progress" => [ + 0 => "Actualização em progresso", + ], + "Missing %s file" => [ + 0 => "Falta o ficheiro %s", + ], + "Invalid license info" => [ + 0 => "Informação de licença inválida", + ], + "Invalid license key" => [ + 0 => "Chave de licença inválida", + ], + "Can't save file" => [ + 0 => "Não é possível gravar o ficheiro", + ], + "Can't download %s" => [ + 0 => "Não é possível descarregar o %s", + ], + "Can't extract %s" => [ + 0 => "Não é possível extrair o %s", + ], + "Check the errors in the form to continue." => [ + 0 => "Verifique os erros no formulário para continuar.", + ], + "You must enter the album name." => [ + 0 => "Deve indicar o nome do álbum.", + ], + "Confirm" => [ + 0 => "Confirmar", + ], + "Select existing album" => [ + 0 => "Selecione um álbum existente", + ], + "An error occurred. Please try again later." => [ + 0 => "Ocorreu um erro. Por favor, tente novamente mais tarde.", + ], + "Please select a valid image file type." => [ + 0 => "Por favor, seleccione um tipo de ficheiro de imagem válido.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Por favor seleccione uma imagem com o máximo %s tamanho..", + ], + "Profile image updated." => [ + 0 => "Imagem de perfil actualizada.", + ], + "Profile background image updated." => [ + 0 => "Imagem de fundo actualizada.", + ], + "Profile background image deleted." => [ + 0 => "Imagem de fundo eliminada.", + ], + "Error deleting profile background image." => [ + 0 => "Erro apagar imagem de fundo do perfil", + ], + "Passwords don't match" => [ + 0 => "As senhas não coincidem", + ], + "Update available v%s" => [ + 0 => "Actualização disponível v%s", + ], + "Update now" => [ + 0 => "Actualizar agora", + ], + "or" => [ + 0 => "ou", + ], + "cancel" => [ + 0 => "Cancelar", + ], + "loading" => [ + 0 => "Carregando", + ], + "Like" => [ + 0 => "Gostar", + ], + "Edit" => [ + 0 => "Editar", + ], + "Album" => [ + 0 => "Álbum", + 1 => "Álbuns", + ], + "Delete" => [ + 0 => "Eliminar", + ], + "Close" => [ + 0 => "Fechar", + ], + "Previous" => [ + 0 => "Anterior", + ], + "Next" => [ + 0 => "Próximo", + ], + "Clipboard image" => [ + 0 => "Colocar imagem na área de transferência", + ], + "File too big." => [ + 0 => "Ficheiro muito grande.", + ], + "Invalid or unsupported file format." => [ + 0 => "Formato de ficheiro inválido ou não suportado.", + ], + "Some files couldn't be added" => [ + 0 => "Alguns arquivos não puderam ser adiccionados", + ], + "image" => [ + 0 => "imagem", + 1 => "imagens", + ], + "%s's Albums" => [ + 0 => "Álbuns de %s", + ], + "Image edited successfully." => [ + 0 => "Imagem editada com sucesso.", + ], + "private" => [ + 0 => "Privado", + ], + "Album edited successfully." => [ + 0 => "Álbum editado com sucesso.", + ], + "Invalid URL key." => [ + 0 => "Chave URL inválida.", + ], + "Category URL key already being used." => [ + 0 => "Chave de URL da categoria já está a ser usada.", + ], + "Category successfully deleted." => [ + 0 => "Categoria apagada com sucesso.", + ], + "Category %s added." => [ + 0 => "Categoria %s adicionada.", + ], + "Invalid expiration date." => [ + 0 => "Data de validade inválida.", + ], + "IP %s already banned." => [ + 0 => "O IP %s já se encontra banido.", + ], + "IP %s banned." => [ + 0 => "IP %s banido.", + ], + "IP ban successfully deleted." => [ + 0 => "Banimento de IP apagado com sucesso.", + ], + "Please fill all the required fields." => [ + 0 => "Por favor preencha todos os campos.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Valor para a capacidade de alojamento inválido. Verifique se está a usar o formato correcto.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "A capacidade do alojamento não pode ser menor que a que está a ser usada actualmente (%s).", + ], + "Invalid URL." => [ + 0 => "URL inválido.", + ], + "Storage successfully edited." => [ + 0 => "Alojamento editado com sucesso,", + ], + "User added successfully." => [ + 0 => "Utilizador adicionado com sucesso.", + ], + "The content has been deleted." => [ + 0 => "O conteúdo foi eliminado.", + ], + "The content has been moved." => [ + 0 => "O conteúdo foi movido.", + ], + "Select" => [ + 0 => "Seleccionar", + ], + "Unselect" => [ + 0 => "Cancelar selecção", + ], + "The content has been edited." => [ + 0 => "O conteúdo foi editado.", + ], + "Spam detected" => [ + 0 => "Spam detectado", + ], + "album" => [ + 0 => "álbum", + 1 => "álbuns", + ], + "Untitled" => [ + 0 => "Sem título", + ], + "%s's images" => [ + 0 => "Imagens de %s", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Nota: Este conteúdo é priovado mas quem tenha o link poderá vê-lo.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Nota: Este conteúdo é privado. Mude a privacidade para \"público\" para o partilhar.", + ], + "Private" => [ + 0 => "Privado", + ], + "Public" => [ + 0 => "Público", + ], + "Me" => [ + 0 => "Eu", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Senha", + ], + "view" => [ + 0 => "Vista", + 1 => "visualizações", + ], + "minute" => [ + 0 => "minuto", + 1 => "minutos", + ], + "hour" => [ + 0 => "hora", + 1 => "horas", + ], + "day" => [ + 0 => "dia", + 1 => "dias", + ], + "week" => [ + 0 => "semana", + 1 => "semanas", + ], + "month" => [ + 0 => "mês", + 1 => "meses", + ], + "year" => [ + 0 => "ano", + 1 => "anos", + ], + "Don't autodelete" => [ + 0 => "Não apagar automaticamente", + ], + "Duplicated upload" => [ + 0 => "Envio duplicado", + ], + "Private upload" => [ + 0 => "Envio privado", + ], + "like" => [ + 0 => "gosto", + 1 => "gostos", + ], + "Recent" => [ + 0 => "Recente", + ], + "Trending" => [ + 0 => "Popular agora", + ], + "Top users" => [ + 0 => "Top utilizadores", + ], + "Most recent" => [ + 0 => "Mais recentes", + ], + "Oldest" => [ + 0 => "Mais antigas", + ], + "Most viewed" => [ + 0 => "Mais vistas", + ], + "Popular" => [ + 0 => "Popular", + ], + "Most liked" => [ + 0 => "Com mais gostos", + ], + "Explore" => [ + 0 => "Explorar", + ], + "Animated" => [ + 0 => "Animadas", + ], + "Search" => [ + 0 => "Pesquisar", + ], + "People" => [ + 0 => "Pessoas", + ], + "Image" => [ + 0 => "imagem", + 1 => "imagens", + ], + "User" => [ + 0 => "Utilizador", + 1 => "Utilizadores", + ], + "Internal" => [ + 0 => "Interno", + ], + "Unlimited" => [ + 0 => "Ilimitado", + ], + "used" => [ + 0 => "usado", + ], + "Private profile" => [ + 0 => "Perfil privado", + ], + "second" => [ + 0 => "segundo", + 1 => "segundos", + ], + "%s ago" => [ + 0 => "%s atrás", + ], + "moments ago" => [ + 0 => "à momentos atrás", + ], + "Dashboard" => [ + 0 => "Administração", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "O sistema da base de dados está desactualizado. É necessário correr a ferramenta de <a href=\"%s\">actualização</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "O site encontrasse em modo de manutenção. Para reverter esta configuração dirija-se a página de <a href=\"%s\">Administração</a>.", + ], + "admin dashboard" => [ + 0 => "área de administração", + ], + "view on %s" => [ + 0 => "ver em %s", + ], + "cookie policy" => [ + 0 => "política de cookies", + ], + "I understand" => [ + 0 => "Percebi", + ], + "Forgot password?" => [ + 0 => "Esqueceu-se da senha?", + ], + "Reset password" => [ + 0 => "Redefinir senha", + ], + "Resend account activation" => [ + 0 => "Reenviar ativação de conta", + ], + "Add your email address" => [ + 0 => "Adicione o seu endereço de email", + ], + "Email changed" => [ + 0 => "E-mail alterado", + ], + "Invalid Username/Email" => [ + 0 => "Nome de usuário inválido / Email", + ], + "User doesn't have an email." => [ + 0 => "O utilizador não tem um e-mail.", + ], + "Request denied" => [ + 0 => "Pedido negado", + ], + "Account needs to be activated to use this feature" => [ + 0 => "A conta precisa ser ativada antes de poder usar este recurso", + ], + "Account already activated" => [ + 0 => "Conta activada", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Aguarde até 15 minutos pela recepção do e-mail. Poderá tentar novamente mais tarde.", + ], + "Reset your password at %s" => [ + 0 => "Restabeleça a sua senha em %s", + ], + "Confirmation required at %s" => [ + 0 => "Confirmação necessária no %s", + ], + "Welcome to %s" => [ + 0 => "Bem-vindo ao %s", + ], + "Email already being used" => [ + 0 => "Esse e-mail já está a ser utilizado", + ], + "Password required" => [ + 0 => "É preciso senha", + ], + "Share" => [ + 0 => "Partilhar", + ], + "Embed codes" => [ + 0 => "Códigos para Incorporar", + ], + "Full info" => [ + 0 => "Informação completa", + ], + "%a album hosted in %w" => [ + 0 => "Álbum %a alojado em %w", + ], + "Stats" => [ + 0 => "Estatísticas", + ], + "Images" => [ + 0 => "Imagens", + ], + "Albums" => [ + 0 => "Álbuns", + ], + "Users" => [ + 0 => "Utilizadores", + ], + "Settings" => [ + 0 => "Configurações", + ], + "Bulk importer" => [ + 0 => "Importador em massa", + ], + "Chevereto version" => [ + 0 => "Versão Chevereto", + ], + "install update" => [ + 0 => "Instalar actualização", + ], + "check for updates" => [ + 0 => "procurar por actualizações", + ], + "Support" => [ + 0 => "Suport", + ], + "PHP version" => [ + 0 => "Versão do PHP", + ], + "Server" => [ + 0 => "Servidor", + ], + "MySQL version" => [ + 0 => "Versão do MySQL", + ], + "MySQL server info" => [ + 0 => "Informação do servidor MySQL", + ], + "GD Library" => [ + 0 => "Biblioteca GD", + ], + "File uploads" => [ + 0 => "Envios de ficheiros", + ], + "Enabled" => [ + 0 => "Ativado", + ], + "Disabled" => [ + 0 => "Desactivado", + ], + "Max. post size" => [ + 0 => "Max. post size", + ], + "Max. execution time" => [ + 0 => "Tempo máximo de execução", + ], + "%d second" => [ + 0 => "%d segundo", + 1 => "%d segundos", + ], + "Memory limit" => [ + 0 => "Limite de memória", + ], + "Rebuild stats" => [ + 0 => "Estatísticas de reconstrução", + ], + "Not your IP?" => [ + 0 => "Não é o seu IP?", + ], + "Links" => [ + 0 => "Links", + ], + "Collaboration" => [ + 0 => "Colaboração", + ], + "Documentation" => [ + 0 => "Documentação", + ], + "Website" => [ + 0 => "Site", + ], + "Content" => [ + 0 => "Conteúdo", + ], + "Pages" => [ + 0 => "Páginas", + ], + "Listings" => [ + 0 => "Resultados", + ], + "Image upload" => [ + 0 => "Envio de imagem", + ], + "Categories" => [ + 0 => "Categorias", + ], + "Flood protection" => [ + 0 => "Protecção contra as inundações", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Página principal", + ], + "Banners" => [ + 0 => "Banners", + ], + "System" => [ + 0 => "Sistema", + ], + "Languages" => [ + 0 => "Idiomas", + ], + "External storage" => [ + 0 => "Alojamento externo", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Redes sociais", + ], + "External services" => [ + 0 => "Serviços externos", + ], + "IP bans" => [ + 0 => "Banimentos por IP", + ], + "Local" => [ + 0 => "Local", + ], + "External" => [ + 0 => "Externo", + ], + "All" => [ + 0 => "Todas", + ], + "search content" => [ + 0 => "conteúdo de pesquisa", + ], + "Before pagination" => [ + 0 => "Antes de paginação", + ], + "After pagination" => [ + 0 => "Depois de paginação", + ], + "Content (image and album)" => [ + 0 => "Content (image and album)", + ], + "Tab about column" => [ + 0 => "Tab about column", + ], + "Before comments" => [ + 0 => "Antes dos comentários", + ], + "Image page" => [ + 0 => "Página da imagem", + ], + "Inside viewer top (image page)" => [ + 0 => "Topo da página para visualizar a imagem", + ], + "Inside viewer foot (image page)" => [ + 0 => "Inside viewer foot (image page)", + ], + "After image viewer (image page)" => [ + 0 => "After image viewer (image page)", + ], + "Before header (image page)" => [ + 0 => "Before header (image page)", + ], + "After header (image page)" => [ + 0 => "After header (image page)", + ], + "Footer (image page)" => [ + 0 => "Rodapé (página imagem)", + ], + "Album page" => [ + 0 => "Página album", + ], + "Before header (album page)" => [ + 0 => "Antes do cabeçalho (página do álbum)", + ], + "After header (album page)" => [ + 0 => "Depois do cabeçalho (página do álbum)", + ], + "User profile page" => [ + 0 => "Página de perfil do utilizador", + ], + "After top (user profile)" => [ + 0 => "Depois de topo (perfil do utlizador)", + ], + "Before listing (user profile)" => [ + 0 => "Before listing (user profile)", + ], + "Explore page" => [ + 0 => "Explore page", + ], + "After top (explore page)" => [ + 0 => "Depois do topo (página explorar)", + ], + "Invalid website name" => [ + 0 => "Nome da página inválido", + ], + "Invalid language" => [ + 0 => "Idioma inválido", + ], + "Invalid timezone" => [ + 0 => "Fuso horário inválido", + ], + "Invalid upload storage mode" => [ + 0 => "Invalid upload storage mode", + ], + "Invalid upload filenaming" => [ + 0 => "Invalid upload filenaming", + ], + "Invalid thumb width" => [ + 0 => "largura da miniatura inválida", + ], + "Invalid thumb height" => [ + 0 => "Altura da miniatura inválida", + ], + "Invalid theme" => [ + 0 => "Tema inválido", + ], + "Invalid value" => [ + 0 => "Valor inválido", + ], + "Invalid theme tone" => [ + 0 => "Tom de tema inválido", + ], + "Invalid theme main color" => [ + 0 => "Cor principal do tema inválida", + ], + "Invalid theme top bar button color" => [ + 0 => "Cor dos botões do menu no topo inválida", + ], + "Invalid theme image listing size" => [ + 0 => "Tamanho para os resultados do tema inválido", + ], + "Invalid user id" => [ + 0 => "ID de usuário Inválido", + ], + "Invalid email mode" => [ + 0 => "Modo de e-mail inválido", + ], + "Invalid SMTP port" => [ + 0 => "Porta SMTP inválida", + ], + "Invalid SMTP security" => [ + 0 => "Segurança inválida SMTP ", + ], + "Invalid website content privacy mode" => [ + 0 => "modo de conteúdo do site privacidade inválido", + ], + "Invalid homepage style" => [ + 0 => "Estilo da página principal inválido", + ], + "Invalid URL" => [ + 0 => "URL inválido", + ], + "Invalid upload image path" => [ + 0 => "Caminho para o envio de imagens inválido", + ], + "Max. allowed %s" => [ + 0 => "Máximo permitido %s", + ], + "Invalid SMTP server" => [ + 0 => "Servidor SMTP inválido", + ], + "Invalid SMTP username" => [ + 0 => "Nome de usuário SMTP inválido", + ], + "About" => [ + 0 => "Sobre", + ], + "Image ID" => [ + 0 => "ID da imagem", + ], + "Uploader IP" => [ + 0 => "IP do uploader", + ], + "Ban IP" => [ + 0 => "Banir IP", + ], + "IP already banned" => [ + 0 => "Esse IP já se encontra banido", + ], + "Upload date" => [ + 0 => "Data de carregamento", + ], + "Image %i in %a album" => [ + 0 => "Imagem %i no álbum %a", + ], + "Image %i in %c category" => [ + 0 => "Imagem %i na categoria %c", + ], + "Image %i hosted in %w" => [ + 0 => "Imagem %i alojada em %w", + ], + "Direct links" => [ + 0 => "Links Diretos", + ], + "Image link" => [ + 0 => "Link da imagem", + ], + "Image URL" => [ + 0 => "URL da imagem", + ], + "Thumbnail URL" => [ + 0 => "URL Thumbnail", + ], + "Medium URL" => [ + 0 => "URL Médio", + ], + "Login needed" => [ + 0 => "Necessário iniciar sessão", + ], + "IP address already banned" => [ + 0 => "Endereço de IP já banido", + ], + "Missing values" => [ + 0 => "Valores em falta", + ], + "Invalid role" => [ + 0 => "Papel inválido", + ], + "Username already being used" => [ + 0 => "Nome de utilizador já está a ser utilizado", + ], + "%s has been disconnected." => [ + 0 => "%s foi desconectado.", + ], + "Wrong Username/Email password combination" => [ + 0 => "Nome de utilizador errado / combinação de senha - email", + ], + "Sign in" => [ + 0 => "Iniciar sessão", + ], + "Image search results for %s" => [ + 0 => "Resultados de imagens contendo %s", + ], + "Album search results for %s" => [ + 0 => "Resultados de álbuns contendo %s", + ], + "User search results for %s" => [ + 0 => "Resultados de utilizadores contendo %s", + ], + "Account" => [ + 0 => "Conta", + ], + "Profile" => [ + 0 => "Perfil", + ], + "Linked accounts" => [ + 0 => "Contas vinculadas", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Um email foi enviado para %s com instruções para ativar", + ], + "Invalid name" => [ + 0 => "Nome inválido", + ], + "Invalid website" => [ + 0 => "Página inválida", + ], + "Wrong password" => [ + 0 => "Senha errada", + ], + "Use a new password" => [ + 0 => "Use uma nova senha", + ], + "Changes have been saved." => [ + 0 => "As alterações foram guardadas.", + ], + "Password has been changed" => [ + 0 => "A senha foi alterada", + ], + "Password has been created." => [ + 0 => "A senha foi criada", + ], + "Wrong Username/Email values" => [ + 0 => "Nome de utilizador/e-mail errado ", + ], + "Settings for %s" => [ + 0 => "Configurações para %s", + ], + "Create account" => [ + 0 => "Criar conta", + ], + "Upload" => [ + 0 => "Enviar", + ], + "%s's Images" => [ + 0 => "Imagens de %s", + ], + "Results for" => [ + 0 => "Resultados para", + ], + "Advanced search" => [ + 0 => "Pesquisa avançada", + ], + "Random" => [ + 0 => "Aleatório", + ], + "Notices (%s)" => [ + 0 => "Notificações (%s)", + ], + "My Profile" => [ + 0 => "O meu perfil", + ], + "Sign out" => [ + 0 => "Terminar sessão", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Recebemos uma pedido de alteração do e-mail associado a sua <a href=\"%u\">%n</a> conta no site %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Para completar o processo, deve <a href=\"%s\">ativar aqui o seu e-mail</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Poderá também optar por copiar e colar o seguinte URL no seu browser: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Se não pretendia isto, ignore esta mensagem.", + ], + "This request was made from IP: %s" => [ + 0 => "Este pedido foi feito apartir do IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Recebemos um pedido para registar a conta %n no site %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Para completar o processo, deverá <a href=\"%s\"> ativar a sua conta </a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Recebemos um pedido para redefinir a senha da sua conta <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Para redefinir sua senha <a href=\"%s\">Clique neste link</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Olá %n, bem-vindo ao %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Agora que a sua conta está activada, poderá desfrutar do envio de imagens, criar álbuns e definir a sua privacidade, bem como partilhar as suas imagens nos mais variados locais.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Aliás, aqui está a sua fantástica página de perfil: <a href=\"%u\">%n</a>. Vá até la e edite-a a seu gosto. É toda sua!", + ], + "Thank you for joining" => [ + 0 => "Obrigado por se juntar a nós", + ], + "This email was sent from %w %u" => [ + 0 => "Este e-mail foi enviado por %w %u", + ], + "Select the images to upload" => [ + 0 => "Selecionar as imagens para envio", + ], + "complete" => [ + 0 => "completo", + ], + "Upload complete" => [ + 0 => "Envio completo", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Alguns erros ocorreram e o sistema não pode processar o seu pedido.", + ], + "Category" => [ + 0 => "Categoria", + ], + "Select category" => [ + 0 => "Seleccione a categoria", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Marque esta opção se o envio é de conteúdo impróprio", + ], + "Not family safe upload" => [ + 0 => "Envio de conteúdo impróprio", + ], + "Uploading" => [ + 0 => "A enviar", + ], + "cancel remaining" => [ + 0 => "Cancelar restantes", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Nota: Algumas imagens não puderam ser enviadas.", + ], + "learn more" => [ + 0 => "Saber mais", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Verifique o <a data-modal=\"simple\" data-target=\"failed-upload-result\">relatório de erro</a> para mais informações.", + ], + "close" => [ + 0 => "fechar", + ], + "Title" => [ + 0 => "Titulo", + ], + "optional" => [ + 0 => "Opcional", + ], + "Mark this if the image is not family safe" => [ + 0 => "Marque esta opção se a imagem é de conteúdo impróprio", + ], + "Flag as unsafe" => [ + 0 => "Assinalar como inseguro", + ], + "Description" => [ + 0 => "Descrição", + ], + "Brief description of this image" => [ + 0 => "Breve descrição desta imagem", + ], + "Add image URLs" => [ + 0 => "Adicionar URLs de imagem", + ], + "Add the image URLs here" => [ + 0 => "Adicione os URLs de imagem aqui", + ], + "Create album" => [ + 0 => "Criar álbum", + ], + "Move to album" => [ + 0 => "Mover para o álbum", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Selecione um álbum existente para mover o conteúdo enviado. Pode <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover o conteúdo para lá.", + ], + "Error report" => [ + 0 => "Relatório de erro", + ], + "Viewer links" => [ + 0 => "Ver links", + ], + "HTML Codes" => [ + 0 => "Códigos HTML", + ], + "HTML medium linked" => [ + 0 => "HTML médio", + ], + "HTML thumbnail linked" => [ + 0 => "HTML da miniatura", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode medium linked" => [ + 0 => "Código BBCode do tamanho médio", + ], + "BBCode thumbnail linked" => [ + 0 => "Código BBCode da miniatura", + ], + "All these words" => [ + 0 => "Todas estas palavras", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Introduza as palavras importantes: tri-color rato terrier", + ], + "This exact word or phrase" => [ + 0 => "Esta palavra ou frase exacta", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Introduza palavras exactas entre aspas: \"rato terrier\"", + ], + "None of these words" => [ + 0 => "Nenhuma destas palavras", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Coloque um sinal de subtracção antes das palavras que não lhe interessam: -roedor -\"Jack Russell\"", + ], + "Storage" => [ + 0 => "Alojamento", + ], + "IP address" => [ + 0 => "Endereço de IP", + ], + "Album name" => [ + 0 => "Nome do álbum", + ], + "move to existing album" => [ + 0 => "mover para um álbum existente", + ], + "Album description" => [ + 0 => "Descrição do álbum", + ], + "Brief description of this album" => [ + 0 => "Breve descrição deste álbum", + ], + "Who can view this content" => [ + 0 => "Quem pode visualizar este conteúdo", + ], + "Private (just me)" => [ + 0 => "Privado (apenas eu)", + ], + "Private (anyone with the link)" => [ + 0 => "Privado (qualquer pessoa com o link)", + ], + "Name" => [ + 0 => "Nome", + ], + "Category name" => [ + 0 => "Nome da categoria", + ], + "URL key" => [ + 0 => "Chave URL", + ], + "Category URL key" => [ + 0 => "Chave URL da categoria", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Apenas letras, números ou hyfens", + ], + "Brief description of this category" => [ + 0 => "Breve descrição desta categoria", + ], + "Untitled image" => [ + 0 => "Imagem sem titulo", + ], + "Path" => [ + 0 => "Caminho", + ], + "Expiration date" => [ + 0 => "Data de validade", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "AAAA-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Exemplo", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Até quando este endereço de IP ficará banido? Deixe em branco para permanente.", + ], + "Message" => [ + 0 => "Mensagem", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Mensagem de texto, HTML ou um redireccionamento URL", + ], + "Existing album" => [ + 0 => "Álbum existente", + ], + "create new album" => [ + 0 => "Criar novo álbum ", + ], + "Storage name" => [ + 0 => "Nome do alojamento", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Região", + ], + "Storage bucket" => [ + 0 => "Banco de alojamento", + ], + "Key" => [ + 0 => "Chave", + ], + "Storage key" => [ + 0 => "Chave do alojamento", + ], + "Secret" => [ + 0 => "Segredo", + ], + "Storage secret" => [ + 0 => "Segredo do alojamento", + ], + "Username" => [ + 0 => "Nome de utilizador", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname ou IP do servidor de alojamento", + ], + "Server path" => [ + 0 => "Caminho do servidor", + ], + "Server password" => [ + 0 => "Senha do servidor", + ], + "Storage capacity" => [ + 0 => "Capacidade do alojamento", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Exemplo: 20 GB, 1 TB, etc.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Este alojamento será desligado quando atingir esta capacidade. Deixe em branco ou zero para ilimitado.", + ], + "Storage URL" => [ + 0 => "URL do alojamento", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "O sistema irá mapear as imagens deste alojamento neste URL.", + ], + "view more" => [ + 0 => "ver mais", + ], + "Load more" => [ + 0 => "Carregar mais", + ], + "Select all" => [ + 0 => "Seleccionar tudo", + ], + "Clear selection" => [ + 0 => "Limpar selecção", + ], + "Selection" => [ + 0 => "Selecção", + ], + "Action" => [ + 0 => "Acção", + ], + "Get embed codes" => [ + 0 => "Obter códigos para partilha", + ], + "Assign category" => [ + 0 => "Definir categoria", + ], + "Flag as safe" => [ + 0 => "Assinalar como seguro", + ], + "Sign in with another account" => [ + 0 => "Entre com outra conta", + ], + "There's nothing to show here." => [ + 0 => "Não há nada para ver aqui.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Todas as imagens serão transferidas para este álbum recém criado. Pode também mover as imagens para um <a class=\"modal-switch\" data-switch=\"move-existing-album\">álbum já existente</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Selecione um álbum existente para mover a imagem. Pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover a imagem para lá.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Selecione um álbum existente para mover as imagens. Pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover as imagens para ali.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Todas as imagens seleccionadas serão movidas para esta categoria.", + ], + "There is no categories." => [ + 0 => "Não existem categorias.", + ], + "Confirm flag content as safe" => [ + 0 => "Confirme que o conteúdo é seguro", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Quer mesmo confirmar isto como sendo conteúdo seguro?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Confirme o conteúdo como imprórpio", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Deseja mesmo denunciar este conteúdo como impróprio?", + ], + "Confirm deletion" => [ + 0 => "Confirme a eliminação", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Deseja mesmo remover este conteúdo? Isto não pode ser revertido.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Deseja mesmo remover todo o conteúdo seleccionado? Isto não pode ser revertido.", + ], + "Guest" => [ + 0 => "Convidado", + ], + "From %s" => [ + 0 => "De %s", + ], + "Toggle unsafe flag" => [ + 0 => "Alterar para conteúdo imprópio", + ], + "That page doesn't exist" => [ + 0 => "Esta página não existe", + ], + "The requested page was not found." => [ + 0 => "A página solicitada não foi encontrada.", + ], + "Search something else" => [ + 0 => "Search something else", + ], + "The user has been deleted" => [ + 0 => "O utilizador foi eliminado", + ], + "Your account is almost ready" => [ + 0 => "A sua conta está quase pronta", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Um e-mail para foi enviado para %s com as instruções para activar a sua conta. O link de activação só é válido por 48 horas. Se não receber as instruções verifique a sua pasta de correio não solicitado/spam/Lixo.", + ], + "Resend activation" => [ + 0 => "Reenviar ativação", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Alrerou com sucesso a sua conta de e-mail para %s", + ], + "Go to my profile" => [ + 0 => "Ir para o meu perfil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Um link de confirmação será enviado para este e-mail com os detalhes para ativar sua conta.", + ], + "Your email address" => [ + 0 => "O seu endereço de email", + ], + "Submit" => [ + 0 => "Submeter", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Um e-mail com instruções para redefinir sua senha foi enviado para o endereço de e-mail de registo. Se não receber as instruções verifique a sua pasta de correio não solicitado/spam/Lixo.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Um email anterior foi enviado com instruções para redefinir a sua palavra passe. Se não recebeu as instruções verifique a sua pasta de correio não solicitado/spam/Lixo.", + ], + "Resend instructions" => [ + 0 => "Reenviar instruções", + ], + "Username or Email address" => [ + 0 => "Nome de usuário ou Endereço de e-mail", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "A sua palavra passe foi alterada, Agora pode iniciar sessão com a sua nova senha.", + ], + "Login now" => [ + 0 => "Entrar agora", + ], + "Enter your new password" => [ + 0 => "introduza a nova senha", + ], + "%d characters min" => [ + 0 => "%d caracteres mínimos", + ], + "Re-enter your new password" => [ + 0 => "Re-digite a nova senha", + ], + "This content is private" => [ + 0 => "Este conteúdo é privado", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Quer mesmo apagar este álbum e todas as suas imagens? Esta operação não poderá ser revertida.", + ], + "Album link" => [ + 0 => "Link do álbum", + ], + "Disk used" => [ + 0 => "Espaço usado", + ], + "Status" => [ + 0 => "Estado", + ], + "Add user" => [ + 0 => "Adicionar usuário", + ], + "Role" => [ + 0 => "Papel", + ], + "Administrator" => [ + 0 => "Administrador", + ], + "Email address" => [ + 0 => "Endereço de email", + ], + "Add category" => [ + 0 => "Adicionar categoria", + ], + "Add IP ban" => [ + 0 => "Adicionar banimento de IP", + ], + "Add storage" => [ + 0 => "Adicionar alojamento", + ], + "Website name" => [ + 0 => "Nome da página", + ], + "Website doctitle" => [ + 0 => "Subtítulo ", + ], + "Website description" => [ + 0 => "Descrição da página", + ], + "Default time zone" => [ + 0 => "Fuso horário padrão", + ], + "Select region" => [ + 0 => "Seleccionar região", + ], + "User ID" => [ + 0 => "ID de utilizador", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Modo privado fará com que o site só esteja disponível para usuários registados.", + ], + "Content privacy mode" => [ + 0 => "Modo de privacidade conteúdo", + ], + "Default" => [ + 0 => "Padrão", + ], + "Force private (self)" => [ + 0 => "Forçar privado (auto)", + ], + "Force private (anyone with the link)" => [ + 0 => "Forçar privado (qualquer pessoa com o link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Modos de privacidade forçadas substituirá preferência de privacidade de usuário.", + ], + "Enable uploads" => [ + 0 => "Activar envios", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Active esta opção se quiser permitir envios de imagens. Esta configuração não afecta administradores.", + ], + "Guest uploads" => [ + 0 => "Envios de visitantes", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Ative isto se quiser permitir que os utilizadores não registados façam envios.", + ], + "Image path" => [ + 0 => "Caminho da imagem", + ], + "Relative to Chevereto root" => [ + 0 => "Relativo ao root do Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Onde alojar as imagens? Relativo ao root do Chevereto.", + ], + "Storage mode" => [ + 0 => "Modo de armazenamento", + ], + "Datefolders" => [ + 0 => "Datefolders", + ], + "Direct" => [ + 0 => "Directo", + ], + "Datefolders creates %s structure" => [ + 0 => "Datefolders cria %s estrutura", + ], + "File naming method" => [ + 0 => "Método de nomeação do arquivo", + ], + "Original" => [ + 0 => "Original", + ], + "Thumb size" => [ + 0 => "Tamanho da miniatura", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "As miniaturas serão ajustadas para este tamanho.", + ], + "Watermarks" => [ + 0 => "Marcas de água", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Active para colocar uma marca de água em todos os envios de imagens.", + ], + "Warning: Can't write in %s" => [ + 0 => "Aviso: Não é possível escrever em %s", + ], + "Watermark image" => [ + 0 => "Imagem de marca de água", + ], + "Watermark position" => [ + 0 => "Posição da marca de água", + ], + "left top" => [ + 0 => "Topo esquerdo", + ], + "left center" => [ + 0 => "Centro esquerda", + ], + "left bottom" => [ + 0 => "Canto inferior esquerdo", + ], + "center top" => [ + 0 => "Topo centro", + ], + "center center" => [ + 0 => "Centro", + ], + "center bottom" => [ + 0 => "Centro na parte inferior", + ], + "right top" => [ + 0 => "Topo direita", + ], + "right center" => [ + 0 => "Centro direita", + ], + "right bottom" => [ + 0 => "Inferior direito", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Posição relativa da imagem de marca de água. Primeiro alinhamento horizontal e depois alinhamento vertical.", + ], + "Watermark margin" => [ + 0 => "Margem da marca de água", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margem da borda para a imagem de marca de água", + ], + "Watermark opacity" => [ + 0 => "Opacidade da marca de água", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Opacidade da marca de água na imagem final. Valores de 0 a 100.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Quer realmente apagar a categoria %s? Esta operação não pode ser revertida.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Nota: Apagar a categoria não apagará as imagens que ela contém.", + ], + "Edit category" => [ + 0 => "Editar categoria", + ], + "Expires" => [ + 0 => "Expira", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Quer mesmo remover o ban do IP %s? Esta operação não pode ser revertida.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Endereço de IP banido será proibido de usar todo o site.", + ], + "Edit IP ban" => [ + 0 => "Editar IP do ban", + ], + "Enable signups" => [ + 0 => "Activar as inscrições", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Active esta opção para permitir que os utilizadores possam registar-se.", + ], + "Username routing" => [ + 0 => "Routing de nome de utilizador", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Active isto se desejar usar %s/nome_de_utilizador em vez de %s/utilizador/nome_de_utilizador", + ], + "Require email confirmation" => [ + 0 => "Requerer confirmação de email", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Active isto se desejar que os utilizadores necessitem de validar o email quando criam conta.", + ], + "Require email for social signup" => [ + 0 => "Requerer confirmação de email quando criam conta através de uma rede social", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Active isto se desejar que os utilizadores necessitem de validar o email quando criam conta através de uma rede social.", + ], + "User avatar max. filesize" => [ + 0 => "Tamanho máximo do ficheiro de avatar", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Tamanho máximo do ficheiro para o avatar do utilizador. (O tamanho máximo permitido pelo servidor é %s)", + ], + "User background max. filesize" => [ + 0 => "Tamanho máximo para o fundo do utilizador", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Bloquear envios de imagens por IP se o sistema de detectar um comportamento de inundação com base no número de envios por período de tempo. Esta configuração não afecta administradores.", + ], + "Notify to email" => [ + 0 => "Notificar para o e-mail", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Se habilitado, o sistema irá enviar um e-mail sobre incidentes de flood.", + ], + "Minute limit" => [ + 0 => "Limite por minuto", + ], + "Hourly limit" => [ + 0 => "Limite por hora", + ], + "Daily limit" => [ + 0 => "Limite por dia", + ], + "Weekly limit" => [ + 0 => "Limite por semana", + ], + "Monthly limit" => [ + 0 => "Limite por mês", + ], + "Show not safe content in listings" => [ + 0 => "Mostrar conteúdo não seguro em listas", + ], + "Show banners in not safe content" => [ + 0 => "Mostrar banners em conteúdo não seguro", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Ative esta opção se quiser mostrar banners em páginas de conteúdo não seguras.", + ], + "List items per page" => [ + 0 => "itens da lista por página", + ], + "How many items should be displayed per page listing." => [ + 0 => "Quantos itens devem ser mostrador por página de listagem.", + ], + "List pagination mode" => [ + 0 => "Modo Lista de paginação", + ], + "Endless scrolling" => [ + 0 => "Rolagem Infinita", + ], + "Classic pagination" => [ + 0 => "Paginação clássica", + ], + "What pagination method should be used." => [ + 0 => "Qual método de paginação deve ser usado.", + ], + "Fluid" => [ + 0 => "Fluído", + ], + "Fixed" => [ + 0 => "Fixo", + ], + "Phone" => [ + 0 => "Telefone", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Portátil", + ], + "Desktop" => [ + 0 => "Computador", + ], + "Put your themes in the %s folder" => [ + 0 => "Coloque seus temas na pasta %s", + ], + "Tone" => [ + 0 => "Tom", + ], + "Light" => [ + 0 => "Claro", + ], + "Dark" => [ + 0 => "Escuro", + ], + "Main color" => [ + 0 => "Cor principal", + ], + "Hexadecimal color value" => [ + 0 => "Valor hexadecimal da cor", + ], + "Top bar button color" => [ + 0 => "Cor dos botões na barra do topo", + ], + "Blue" => [ + 0 => "Azul", + ], + "Green" => [ + 0 => "Verde", + ], + "Orange" => [ + 0 => "Laranja", + ], + "Red" => [ + 0 => "Vermelho", + ], + "Grey" => [ + 0 => "Cinzento", + ], + "Black" => [ + 0 => "Preto", + ], + "White" => [ + 0 => "Branco", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Cor dos botões na barra do topo como o botão de \"Criar conta\"", + ], + "Enable vector logo" => [ + 0 => "Activar logo em imagem vectorial", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Activar logo vector para o logótipo de alta qualidade em dispositivos com alta resolução.", + ], + "Vector logo image" => [ + 0 => "Imagem do logotipo Vetor", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Versão Vector ou o seu logótipo em formato SVG.", + ], + "Raster logo image" => [ + 0 => "Imagem do logotipo raster", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Versão Bitmap ou teu logotipo. O formato PNG é recomendado.", + ], + "Logo height" => [ + 0 => "Altura do logo", + ], + "No value" => [ + 0 => "Sem valor", + ], + "Use this to set the logo height if needed." => [ + 0 => "Utilize este quadro para definir a altura do logo, caso seja necessário.", + ], + "Favicon image" => [ + 0 => "Imagem do favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Imagem Favicon. A imagem deve ter a mesma largura e altura.", + ], + "Enable download button" => [ + 0 => "Ativar botão de download", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Active esta opção se quiser mostrar o botão de download da imagem.", + ], + "Enable right click on image" => [ + 0 => "Activar clique direito sobre a imagem", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Active isto se desejar activar a função de clicar com o botão direito do rato sobre a imagem na página de visualização das imagens", + ], + "Enable social share" => [ + 0 => "Activar partilhas sociais", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Active isto se desejar activar os botões das redes sociais de modo a poder partilhar as suas imagens", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Não é seguro checkbox conteúdo em Uploader", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Ative esta opção se quiser mostrar uma caixa de seleção para indicar upload de conteúdo não seguro.", + ], + "Custom CSS code" => [ + 0 => "Código CSS personalizado", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Coloca o teu código CSS personalizado aqui. Ele será colocado como <style> antes da tag </head>.", + ], + "Custom JS code" => [ + 0 => " Código personalizado JS", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Coloca o teu código JS personalizado aqui. Ele será colocado como <script> antes da tag </head>.", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Você realmente quer eliminar esta imagem? Esta acção não pode ser revertida.", + ], + "Delete image" => [ + 0 => "Apagar imagem", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "This is the salt used to convert numeric ID to alphanumeric. It was generated on install.", + ], + "Default language" => [ + 0 => "Idioma padrão", + ], + "Default base language to use." => [ + 0 => "Idioma base para usar como padrão.", + ], + "Auto language" => [ + 0 => "Idioma automático", + ], + "Language chooser" => [ + 0 => "Selecção de Idioma", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Active isto se desejar que os utilizadores possam escolher o seu próprio Idioma", + ], + "Enabled languages" => [ + 0 => "Activar Idiomas", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Idiomas não selecionados não serão usados no seu website.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Use isto para activar ou desactivar o HTTPS", + ], + "Quota" => [ + 0 => "Cota", + ], + "Active" => [ + 0 => "Activo", + ], + "From name" => [ + 0 => "Do nome", + ], + "Sender name for emails sent to users." => [ + 0 => "Nome do remetente dos e-mails enviados para os utilizadores.", + ], + "Email mode" => [ + 0 => "Modo de e-mail", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Como enviar e-mails? SMTP é recomedado.", + ], + "SMTP server and port" => [ + 0 => "Servidor SMTP e porta", + ], + "SMTP server" => [ + 0 => "Servidor SMTP", + ], + "SMTP username" => [ + 0 => "Nome de utilizador SMTP", + ], + "SMTP password" => [ + 0 => "Palavra passe SMTP", + ], + "SMTP security" => [ + 0 => "Segurança SMTP", + ], + "Unsecured" => [ + 0 => "Inseguro", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Você precisa de um <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> para este.", + ], + "Facebook app id" => [ + 0 => "Id app Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Tu precisas de um <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> para esta.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Conta Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Você precisa de um <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> para esta.", + ], + "Google client id" => [ + 0 => "ID de cliente do Google", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "VK client id" => [ + 0 => "ID do cliente VK", + ], + "VK client secret" => [ + 0 => "Segredo do cliente VK", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Você precisas de uma chave <a href=\"%s\" target=\"_blank\"> reCAPTCHA </a> para isto.", + ], + "reCAPTCHA threshold" => [ + 0 => "limiar reCAPTCHA", + ], + "Comment code" => [ + 0 => "Código para comentários", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook ou qualquer coisa que você quiser. Será utilizado no modo de exibição de imagem.", + ], + "Analytics code" => [ + 0 => "Código do Analytics", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics ou qualquer coisa que você quiser. Será adicionado ao rodapé tema.", + ], + "API v1 key" => [ + 0 => "Chave API v1", + ], + "Save changes" => [ + 0 => "Salvar as alterações", + ], + "Check the errors to proceed." => [ + 0 => "Verifique os erros para continuar.", + ], + "Added to %s" => [ + 0 => "Adicionar a %s", + ], + "Uploaded %s" => [ + 0 => "Uploaded %s", + ], + "Share image" => [ + 0 => "Partilhar imagem", + ], + "Album ID" => [ + 0 => "ID do álbum", + ], + "In this album" => [ + 0 => "Neste album", + ], + "Upload and share your images." => [ + 0 => "Envie e compartilhe as suas imagens.", + ], + "Sign up to unlock all the features" => [ + 0 => "Registre-se agora Grátis", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Gerencie suas imagens, crie álbuns privados, personalize seu perfil e muito mais.", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Não tem uma conta? <a href='%s'> Registe-se </a> agora.", + ], + "Logged out" => [ + 0 => "Desligado", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Terminou sessão %s. Esperamos vê-lo em breve.", + ], + "Go to homepage" => [ + 0 => "Ir para página inicial", + ], + "Website under maintenance" => [ + 0 => "Website sob manutenção", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Estamos a efectuar as manutenções necessárias no website . Por favor, volte mais tarde.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Ou não têm permissão para acessar esta página ou o link expirou.", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Deseja realmente excluir este utilizador? Esta acção não pode ser revertida.", + ], + "Delete user" => [ + 0 => "Apagar utilizador", + ], + "Register date" => [ + 0 => "Data de registo", + ], + "Valid" => [ + 0 => "Válido", + ], + "Banned" => [ + 0 => "Banido", + ], + "Awaiting email" => [ + 0 => "Aguardando e-mail", + ], + "Awaiting confirmation" => [ + 0 => "Aguardando confirmação", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "Caractéres de %i a %f<br>Letras, números e \"_\"", + ], + "Newsletter" => [ + 0 => "Subscrição", + ], + "Send me emails with news about %s" => [ + 0 => "Enviem-me emails de notícias sobre o %s", + ], + "Content settings" => [ + 0 => "Configurações de conteúdo", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Mostrar conteúdo marcado como impróprio nas listas (de outros)", + ], + "Language" => [ + 0 => "Idioma", + ], + "Timezone" => [ + 0 => "Fuso horário", + ], + "Current password" => [ + 0 => "Palavra passe actual", + ], + "Enter your current password" => [ + 0 => "Digite a sua palavra passe atual", + ], + "New password" => [ + 0 => "Nova palavra passe", + ], + "Confirm new password" => [ + 0 => "Confirmar nova palavra passe", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Adicionar uma palavra passe para ser capaz de fazer login usando o seu nome de utilizador ou e-mail.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Este utilizador não têm uma palavra passe definida. Adicionar uma usando este formulário.", + ], + "Enter your password" => [ + 0 => "Digite sua senha", + ], + "Confirm password" => [ + 0 => "Confirme a nova senha", + ], + "Re-enter your password" => [ + 0 => "Re-digite a sua palavra passe", + ], + "Upload new image" => [ + 0 => "Carregar nova imagem", + ], + "Delete existing image" => [ + 0 => "Apagar a imagem existente", + ], + "This is your real name, not your username." => [ + 0 => "Este é o seu verdadeiro nome, não o seu nome de utilizador.", + ], + "http://yourwebsite.com" => [ + 0 => "http://omeusite.pt", + ], + "Bio" => [ + 0 => "Bio", + ], + "Tell us a little bit about you" => [ + 0 => "Conte-nos um pouco sobre si", + ], + "User has no connections." => [ + 0 => "O utilizador não tem conexões.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Deseja realmente desconectar %s desta conta?", + ], + "This account is connected to %s" => [ + 0 => "Esta conta está ligada a %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Deseja realmente desligar o %s da sua conta?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Será desconectado e não será capaz de acessar a sua conta usando este %s conta.", + ], + "Your account is connected to %s" => [ + 0 => "A sua conta está ligada a %s", + ], + "disconnect" => [ + 0 => "Desligar", + ], + "Connect %s" => [ + 0 => "Conectar %s", + ], + "Upload profile background" => [ + 0 => "Carregar fundo de perfil", + ], + "Change background" => [ + 0 => "Alterar a imagem de fundo", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "A imagem de fundo de perfil será apagada. Esta acção não pode ser revertida. Têm a certeza que quer apagar esta imagem de fundo de perfil?", + ], + "Delete background" => [ + 0 => "Apagar a imagem de fundo", + ], + "You have been forbidden to use this website." => [ + 0 => "Foi proibido de usar este site.", + ], + "General questions/comments" => [ + 0 => "Questões gerais / comentários", + ], + "DMCA complaint" => [ + 0 => "Denúncia de DMCA", + ], + "Invalid message" => [ + 0 => "Mensagem inválida", + ], + "Invalid subject" => [ + 0 => "Assunto inválido", + ], + "Mail error" => [ + 0 => "Erro de correio", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Todas as mudanças que fez serão perdidas se continuar.", + ], + "Changes saved successfully." => [ + 0 => "Alterações guardadas com sucesso.", + ], + "Go back to form" => [ + 0 => "Voltar para o formulário", + ], + "continue anyway" => [ + 0 => "Continuar assim mesmo", + ], + "Saving" => [ + 0 => "A guardar", + ], + "Sending" => [ + 0 => "A enviar", + ], + "Confirm action" => [ + 0 => "Confirmar acção", + ], + "information" => [ + 0 => "Informação", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/ru.po.cache.php b/app/.cache/languages/ru.po.cache.php new file mode 100644 index 0000000..a544981 --- /dev/null +++ b/app/.cache/languages/ru.po.cache.php @@ -0,0 +1,3703 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:16+0000', + 'PO-Revision-Date' => '2020-09-02 17:16+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'ru', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Неверный e-mail адрес", + ], + "Invalid username" => [ + 0 => "Неверное имя пользователя", + ], + "Invalid password" => [ + 0 => "Неверный пароль", + ], + "Invalid website mode" => [ + 0 => "Неверный режим работы сайта", + ], + "From email address" => [ + 0 => "E-mail отправителя", + ], + "Sender email for emails sent to users." => [ + 0 => "E-mail отправителя для рассылки сообщений пользователям.", + ], + "Incoming email address" => [ + 0 => "E-mail для входящих сообщений", + ], + "Recipient for contact form and system alerts." => [ + 0 => "E-mail для формы обратной связи и системных уведомлений.", + ], + "Website mode" => [ + 0 => "Режим работы сайта", + ], + "You can switch the website mode anytime." => [ + 0 => "Вы можете сменить режим работы сайта в любое время.", + ], + "Community" => [ + 0 => "Сообщество", + ], + "Personal" => [ + 0 => "Частный", + ], + "Installed version is v%s" => [ + 0 => "У Вас установлена версия - v%s", + ], + "Can't connect to %s" => [ + 0 => "Невозможно подкючиться к %s", + ], + "Last available release is v%s" => [ + 0 => "Последняя доступная версия - v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Доступно обновление, приступаю к загрузке", + ], + "No update needed" => [ + 0 => "Обновления отсутствуют", + ], + "System files already up to date" => [ + 0 => "Системные файлы уже находятся в актуальном состоянии", + ], + "Starting v%s download" => [ + 0 => "Запускаю загрузку версии v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Версия v%s загружена, приступаю к распаковке", + ], + "Attempting to extract v%s" => [ + 0 => "Выполняю распаковку v%s", + ], + "Extraction completed" => [ + 0 => "Распаковка выполнена", + ], + "Proceding to install the update" => [ + 0 => "Приступаю к установке обновления", + ], + "Update failed" => [ + 0 => "Ошибка обновления", + ], + "Update in progress" => [ + 0 => "Выполняется обновление", + ], + "Missing %s file" => [ + 0 => "Отсутствует файл %s", + ], + "Invalid license info" => [ + 0 => "Неверные данные лицензии", + ], + "Invalid license key" => [ + 0 => "Неверный лицензионный ключ", + ], + "Can't save file" => [ + 0 => "Невозможно сохранить файл", + ], + "Can't download %s" => [ + 0 => "Невозможно загрузить %s", + ], + "Can't extract %s" => [ + 0 => "Невозможно распаковать %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Невозможно создать %s директорию - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Невозможно обновить %s файл - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Перед тем как продолжить, проверьте правильность заполнения формы.", + ], + "You must enter the album name." => [ + 0 => "Вы должны ввести название альбома.", + ], + "Confirm" => [ + 0 => "Подтвердить", + ], + "Select existing album" => [ + 0 => "Выберите существующий альбом", + ], + "An error occurred. Please try again later." => [ + 0 => "В процессе выполнения произошла ошибка. Пожалуйста попробуйте позже.", + ], + "Please select a valid image file type." => [ + 0 => "Пожалуйста выберите правильный формат изображения.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Пожалуйста выберите изображение не более %s размером.", + ], + "Profile image updated." => [ + 0 => "Изображение профиля обновлено.", + ], + "Profile background image updated." => [ + 0 => "Фон профиля обновлен.", + ], + "Profile background image deleted." => [ + 0 => "Фон профиля удален.", + ], + "Error deleting profile background image." => [ + 0 => "При удалении фона профиля возникла ошибка.", + ], + "Passwords don't match" => [ + 0 => "Пароли не совпадают", + ], + "Update available v%s" => [ + 0 => "Доступное обновление до v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Для Вашей системы доступно обновление. Вы можете автоматически загрузить и установить его, или перейти на %s для загрузки файла.", + ], + "The release notes for this update are:" => [ + 0 => "Список изменений для данного обновления:", + ], + "Update now" => [ + 0 => "Обновить", + ], + "or" => [ + 0 => "или", + ], + "cancel" => [ + 0 => "отменить", + ], + "This website is running latest %s version" => [ + 0 => "Вы используете последнюю версию Chevereto - %s", + ], + "loading" => [ + 0 => "загрузка", + ], + "Toggle select" => [ + 0 => "выбранное", + ], + "Like" => [ + 0 => "Нравится", + ], + "Toggle flag" => [ + 0 => "Переключить", + ], + "Edit" => [ + 0 => "Редактировать", + ], + "Album" => [ + 0 => "Альбом", + 1 => "Альбомы", + 2 => "Альбомов", + ], + "Delete" => [ + 0 => "Удалить", + ], + "Close" => [ + 0 => "Закрыть", + ], + "Previous" => [ + 0 => "Предыдущая", + ], + "Next" => [ + 0 => "Следующая", + ], + "Clipboard image" => [ + 0 => "Изображение из буфера обмена", + ], + "File too big." => [ + 0 => "Файл слишком большой.", + ], + "Invalid or unsupported file format." => [ + 0 => "Неверный или не поддерживаемый формат файла.", + ], + "Some files couldn't be added" => [ + 0 => "Некоторые файлы не были добавлены.", + ], + "image" => [ + 0 => "изображение", + 1 => "изображения", + 2 => "изображений", + ], + "%s's Albums" => [ + 0 => "Альбомы %s", + ], + "Image edited successfully." => [ + 0 => "Изображение успешно отредактировано.", + ], + "private" => [ + 0 => "скрытое", + ], + "Album edited successfully." => [ + 0 => "Альбом успешно отредактирован.", + ], + "Invalid URL key." => [ + 0 => "Неверный URL ключ.", + ], + "Category URL key already being used." => [ + 0 => "Такой URL-ключ уже используется.", + ], + "Category successfully deleted." => [ + 0 => "Категория удалена.", + ], + "Category %s added." => [ + 0 => "Категория %s добавлена.", + ], + "Invalid expiration date." => [ + 0 => "Неверный срок действия.", + ], + "IP %s already banned." => [ + 0 => "IP-адрес %s уже заблокирован", + ], + "IP %s banned." => [ + 0 => "IP-адрес %s заблокирован", + ], + "IP ban successfully deleted." => [ + 0 => "IP-адрес разблокирован.", + ], + "Please fill all the required fields." => [ + 0 => "Пожалуйста заполните все необходимые поля.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Неверное значение доступного дискового пространства. Убедитесь, что вы используете допустимый формат.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Доступное дисковое пространство не может быть меньше использованного в данный момент (%s).", + ], + "Invalid URL." => [ + 0 => "Неверный адрес.", + ], + "Storage successfully edited." => [ + 0 => "Хранилище изменено.", + ], + "User added successfully." => [ + 0 => "Пользователь добавлен.", + ], + "The content has been deleted." => [ + 0 => "Содержимое удалено.", + ], + "The content has been moved." => [ + 0 => "Содержимое перемещено.", + ], + "Select" => [ + 0 => "Выделить", + ], + "Unselect" => [ + 0 => "Снять выделение", + ], + "The content has been edited." => [ + 0 => "Содержимое отредактировано.", + ], + "Select number of threads" => [ + 0 => "Выберите количество потоков", + ], + "Spam detected" => [ + 0 => "Обнаружен спам", + ], + "album" => [ + 0 => "альбом", + 1 => "альбома", + 2 => "альбомов", + ], + "Untitled" => [ + 0 => "Безымянный", + ], + "%s's images" => [ + 0 => "изображения %s", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Внимание: Это скрытое содержимое, но любой, кто знает ссылку сможет его увидеть.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Внимание: Это содержимое защищено паролем. Не забудьте сообщить пароль.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Внимание: Это скрытое содержимое. Чтобы поделиться им, измените настройки видимости на \"Публичное\".", + ], + "Private" => [ + 0 => "Частный", + ], + "Public" => [ + 0 => "Публичный", + ], + "Me" => [ + 0 => "Я", + ], + "Link" => [ + 0 => "Ссылка", + ], + "Password" => [ + 0 => "Пароль", + ], + "view" => [ + 0 => "просмотр", + 1 => "просмотра", + 2 => "просмотров", + ], + "After %n %t" => [ + 0 => "Через %n %t", + ], + "minute" => [ + 0 => "минута", + 1 => "минуты", + 2 => "минут", + ], + "hour" => [ + 0 => "час", + 1 => "часа", + 2 => "часов", + ], + "day" => [ + 0 => "день", + 1 => "дня", + 2 => "дней", + ], + "week" => [ + 0 => "неделя", + 1 => "недели", + 2 => "недель", + ], + "month" => [ + 0 => "месяц", + 1 => "месяца", + 2 => "месяцев", + ], + "year" => [ + 0 => "год", + 1 => "года", + 2 => "лет", + ], + "Don't autodelete" => [ + 0 => "Никогда не удалять", + ], + "Duplicated upload" => [ + 0 => "Повторяющаяся загрузка", + ], + "Private upload" => [ + 0 => "Скрытая загрузка", + ], + "like" => [ + 0 => "понравилось", + 1 => "понравилось", + 2 => "понравилось", + ], + "Recent" => [ + 0 => "Новые", + ], + "Trending" => [ + 0 => "В тренде", + ], + "Top users" => [ + 0 => "Самые активные", + ], + "Most recent" => [ + 0 => "Новые", + ], + "Oldest" => [ + 0 => "Старые", + ], + "Most viewed" => [ + 0 => "Популярные", + ], + "Popular" => [ + 0 => "Популярные", + ], + "Most liked" => [ + 0 => "Избранные", + ], + "Explore" => [ + 0 => "Обзор", + ], + "Animated" => [ + 0 => "Анимации", + ], + "Search" => [ + 0 => "Поиск", + ], + "People" => [ + 0 => "Люди", + ], + "Image" => [ + 0 => "Изображение", + 1 => "Изображения", + 2 => "Изображений", + ], + "User" => [ + 0 => "Пользователь", + 1 => "Пользователи", + 2 => "Пользователей", + ], + "Can't create %s destination dir" => [ + 0 => "Невозможно создать каталог %s", + ], + "Can't open %s for writing" => [ + 0 => "Невозможно открыть %s для записи", + ], + "Internal" => [ + 0 => "Внутреннее", + ], + "Can't insert storage." => [ + 0 => "Невозможно добавить хранилище.", + ], + "Can't update storage details." => [ + 0 => "Невозможно получить подробную информацию о хранилище.", + ], + "requires %s" => [ + 0 => "требует %s", + ], + "Unlimited" => [ + 0 => "Без лимита", + ], + "used" => [ + 0 => "использовано", + ], + "Private profile" => [ + 0 => "Скрытый профиль", + ], + "second" => [ + 0 => "секунда", + 1 => "секунды", + 2 => "секунд", + ], + "%s ago" => [ + 0 => "%s назад", + ], + "moments ago" => [ + 0 => "минут назад", + ], + "Dashboard" => [ + 0 => "Панель управления", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Для вашей системы доступно обновление. Перейдите на %s, чтобы загрузить и установить его.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "База данных системы устарела. Пожалуйста запустите <a href=\"%s\">службу обновления</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Сайт находится в режиме технического обслуживания. Чтобы выйти из этого режима, перейдите в <a href=\"%s\">Панель управления</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Вы должны отключить отображение ошибок PHP при выходе из пробного режима. Перейдите в <a href='%s'>Настройки системы</a>, чтобы применить эту настройку.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Вы не изменили настройки email по-умолчанию. Перейдите в <a href='%s'>Настройки Email</a>, чтобы исправить это.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Для вашего Chevereto доступно обновление.", + ], + "admin dashboard" => [ + 0 => "панель управления", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Вы можете обновить систему через %a или скачать архив с %s и установить обновление вручную.", + ], + "view on %s" => [ + 0 => "посмотреть на %s", + ], + "cookie policy" => [ + 0 => "политикой использования cookie", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Мы используем cookie-файлы, чтобы сделать наши ваше прибывание на сайте максимально комфортным. Работая с этим сайтом, вы даете свое согласие с нашей %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Хорошо", + ], + "Forgot password?" => [ + 0 => "Забыли пароль?", + ], + "Reset password" => [ + 0 => "Сбросить пароль", + ], + "Resend account activation" => [ + 0 => "Повторить отправку ссылки для активации", + ], + "Add your email address" => [ + 0 => "Добавить адрес электронной почты", + ], + "Email changed" => [ + 0 => "Адрес электронной почты изменен", + ], + "%s says you are a robot" => [ + 0 => "%s сообщает, что Вы робот", + ], + "Invalid Username/Email" => [ + 0 => "Неверное Имя пользователя/E-mail", + ], + "User doesn't have an email." => [ + 0 => "Для этого пользователя не задан адрес электронной почты.", + ], + "Request denied" => [ + 0 => "В запросе отказано", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Для использования этой функции, аккаунт должен быть активирован", + ], + "Account already activated" => [ + 0 => "Аккаунт уже активирован", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Подождите сообщение хотя бы 15 минут. После этого попробуйте ещё раз.", + ], + "Reset your password at %s" => [ + 0 => "Сброс пароля на %s", + ], + "Confirmation required at %s" => [ + 0 => "Подтверждение регистрации на %s", + ], + "Welcome to %s" => [ + 0 => "Добро пожаловать на %s", + ], + "Email already being used" => [ + 0 => "E-mail уже используется", + ], + "Password required" => [ + 0 => "Требуется указать пароль", + ], + "Share" => [ + 0 => "Поделиться", + ], + "Embed codes" => [ + 0 => "Коды для встраивания", + ], + "Full info" => [ + 0 => "Подробная информация", + ], + "%a album hosted in %w" => [ + 0 => "Альбом %a расположенный в %w", + ], + "Stats" => [ + 0 => "Статистика", + ], + "Images" => [ + 0 => "Изображения", + ], + "Albums" => [ + 0 => "Альбомы", + ], + "Users" => [ + 0 => "Пользователи", + ], + "Settings" => [ + 0 => "Настройки", + ], + "Bulk importer" => [ + 0 => "Пакетный импорт", + ], + "Chevereto version" => [ + 0 => "Версия Chevereto", + ], + "install update" => [ + 0 => "установить обновление", + ], + "check for updates" => [ + 0 => "проверить обновления", + ], + "Support" => [ + 0 => "Поддержка", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Нужна помощь? Посетите %s и мы быстро поможем вам.", + ], + "PHP version" => [ + 0 => "Версия PHP", + ], + "Server" => [ + 0 => "Сервер", + ], + "MySQL version" => [ + 0 => "Версия MySQL", + ], + "MySQL server info" => [ + 0 => "Информация о сервере MySQL", + ], + "GD Library" => [ + 0 => "Библиотека GD", + ], + "File uploads" => [ + 0 => "Загрузка файлов", + ], + "Enabled" => [ + 0 => "Вкл.", + ], + "Disabled" => [ + 0 => "Выкл.", + ], + "Max. upload file size" => [ + 0 => "Макс. размер файла", + ], + "Max. post size" => [ + 0 => "Макс. размер POST-запроса", + ], + "Max. execution time" => [ + 0 => "Макс. время выполнения", + ], + "%d second" => [ + 0 => "%d секунда", + 1 => "%d секунды", + 2 => "%d секунд", + ], + "Memory limit" => [ + 0 => "Ограничение памяти", + ], + "Links" => [ + 0 => "Ссылки", + ], + "Collaboration" => [ + 0 => "Команда", + ], + "Documentation" => [ + 0 => "Документация", + ], + "Changelog" => [ + 0 => "Список изменений", + ], + "Bug tracking" => [ + 0 => "Баг трекер", + ], + "Website" => [ + 0 => "Сайт", + ], + "Content" => [ + 0 => "Содержимое", + ], + "Pages" => [ + 0 => "Страницы", + ], + "Listings" => [ + 0 => "Списки", + ], + "Image upload" => [ + 0 => "Загрузка и хранение", + ], + "Categories" => [ + 0 => "Категории", + ], + "Consent screen" => [ + 0 => "Возрастной ценз", + ], + "Flood protection" => [ + 0 => "Защита от флуда", + ], + "Theme" => [ + 0 => "Тема", + ], + "Homepage" => [ + 0 => "Главная страница", + ], + "Banners" => [ + 0 => "Баннеры", + ], + "System" => [ + 0 => "Система", + ], + "Routing" => [ + 0 => "Маршрутизация", + ], + "Languages" => [ + 0 => "Языки", + ], + "External storage" => [ + 0 => "Внешнее хранилище", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Социальные сети", + ], + "External services" => [ + 0 => "Сторонние сервисы", + ], + "IP bans" => [ + 0 => "Блокировка по IP", + ], + "Additional settings" => [ + 0 => "Другое", + ], + "Tools" => [ + 0 => "Инструменты", + ], + "Can't delete all homepage cover images" => [ + 0 => "Невозможно удалить все обложки сайта.", + ], + "Homepage cover image deleted" => [ + 0 => "Изображение обложки удалено", + ], + "Local" => [ + 0 => "Локальное", + ], + "External" => [ + 0 => "Внешнее", + ], + "All" => [ + 0 => "Все", + ], + "search content" => [ + 0 => "поиск содержимого", + ], + "Add page" => [ + 0 => "Добавить страницу", + ], + "Edit page ID %s" => [ + 0 => "Редактировать ID страницы %s", + ], + "The page has been added successfully." => [ + 0 => "Страница успешно создана.", + ], + "The page has been deleted." => [ + 0 => "Страница удалена.", + ], + "homepage" => [ + 0 => "главная страница", + ], + "Before main title (%s)" => [ + 0 => "Перед главным заголовком (%s)", + ], + "After call to action (%s)" => [ + 0 => "После кнопки призыва к действию (%s)", + ], + "After cover (%s)" => [ + 0 => "После обложки (%s)", + ], + "After listing (%s)" => [ + 0 => "После списка изображений (%s)", + ], + "Before pagination" => [ + 0 => "Перед разделителем страниц", + ], + "After pagination" => [ + 0 => "После разделителя страниц", + ], + "Content (image and album)" => [ + 0 => "Содержимое (изображения и альбомы)", + ], + "Tab about column" => [ + 0 => "В информации об изображении", + ], + "Before comments" => [ + 0 => "Перед комментариями", + ], + "Image page" => [ + 0 => "Страница изображения", + ], + "Inside viewer top (image page)" => [ + 0 => "В заголовке просмотрщика (страница изображения)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Внизу просмотрщика (страница изображения)", + ], + "After image viewer (image page)" => [ + 0 => "После изображения (страница изображения)", + ], + "Before header (image page)" => [ + 0 => "Перед заголовком (страница изображения)", + ], + "After header (image page)" => [ + 0 => "После заголовка (страница изображения)", + ], + "Footer (image page)" => [ + 0 => "Нижний колонтитул (страница изображения)", + ], + "Album page" => [ + 0 => "Страница альбома", + ], + "Before header (album page)" => [ + 0 => "Перед заголовком (страница альбома)", + ], + "After header (album page)" => [ + 0 => "После заголовка (страница альбома)", + ], + "User profile page" => [ + 0 => "Профиль пользователя", + ], + "After top (user profile)" => [ + 0 => "После заголовка (профиль пользователя)", + ], + "Before listing (user profile)" => [ + 0 => "Перед списком изображений (профиль пользователя)", + ], + "Explore page" => [ + 0 => "Страница Обзор", + ], + "After top (explore page)" => [ + 0 => "После заголовка (страница обзор)", + ], + "NSFW" => [ + 0 => "Небезопасное", + ], + "Invalid website name" => [ + 0 => "Неверное название сайта", + ], + "Invalid language" => [ + 0 => "Неверный язык", + ], + "Invalid timezone" => [ + 0 => "Неверный часовой пояс", + ], + "Invalid value: %s" => [ + 0 => "Неверное значение: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Неверный способ хранения файлов.", + ], + "Invalid upload filenaming" => [ + 0 => "Неверный метод хранения имен файлов", + ], + "Invalid thumb width" => [ + 0 => "Неверная ширина миниатюры", + ], + "Invalid thumb height" => [ + 0 => "Неверная высота миниатюры", + ], + "Invalid medium size" => [ + 0 => "Неверный средний размер изображения", + ], + "Invalid watermark percentage" => [ + 0 => "Неверный относительный размер водяного знака", + ], + "Invalid watermark opacity" => [ + 0 => "Неверное значение непрозрачности водяных знаков", + ], + "Invalid theme" => [ + 0 => "Неверный стиль", + ], + "Invalid value" => [ + 0 => "Неверное значение", + ], + "Invalid theme tone" => [ + 0 => "Неверный стиль темы", + ], + "Invalid theme main color" => [ + 0 => "Неверный цвет темы", + ], + "Invalid theme top bar button color" => [ + 0 => "Неверный цвет кнопок панели", + ], + "Invalid theme image listing size" => [ + 0 => "Неверный размер изображения для списков", + ], + "Invalid user id" => [ + 0 => "Неправильный id пользователя", + ], + "Invalid email mode" => [ + 0 => "Неверный режим электронной почты", + ], + "Invalid SMTP port" => [ + 0 => "Неверный SMTP порт", + ], + "Invalid SMTP security" => [ + 0 => "Неверные настройки безопасности SMTP сервера", + ], + "Invalid personal mode user ID" => [ + 0 => "Неверный ID пользователя частного режима", + ], + "Invalid or reserved route" => [ + 0 => "Неверный или зарезервированный маршрут", + ], + "Invalid website privacy mode" => [ + 0 => "Неверный режим видимости сайта", + ], + "Invalid website content privacy mode" => [ + 0 => "Неверный режим видимости содержимого", + ], + "Invalid homepage style" => [ + 0 => "Неверный стиль главной страницы", + ], + "Invalid homepage call to action button color" => [ + 0 => "Неверный цвет кнопки на главной", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Неверное действие кнопки на главной", + ], + "Invalid title" => [ + 0 => "Неверный заголовок", + ], + "Invalid status" => [ + 0 => "Неверный статус", + ], + "Invalid type" => [ + 0 => "Неверный тип", + ], + "Invalid visibility" => [ + 0 => "Неверная видимость", + ], + "Invalid internal type" => [ + 0 => "Неверный тип", + ], + "Invalid target attribute" => [ + 0 => "Неверный аттрибут target", + ], + "Invalid rel attribute" => [ + 0 => "Неверный аттрибут rel", + ], + "Invalid icon" => [ + 0 => "Неверная иконка", + ], + "Invalid URL key" => [ + 0 => "Неверный URL-ключ", + ], + "Invalid file path" => [ + 0 => "Неверный путь к файлу", + ], + "Invalid link URL" => [ + 0 => "Неверный адрес ссылки", + ], + "Invalid user minimum age" => [ + 0 => "Неверно указан минимальный возраст пользователя", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Только цифры, латинские буквы, дефис и нижнее подчеркивание", + ], + "Invalid URL" => [ + 0 => "Неверный URL", + ], + "Routes can't be the same" => [ + 0 => "Маршрут должен быть уникальным", + ], + "Invalid upload image path" => [ + 0 => "Неверная папка загрузки изображений", + ], + "Invalid call to action URL" => [ + 0 => "Неверный URL кнопки", + ], + "Max. allowed %s" => [ + 0 => "Макс. разрешено %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "Не могу создать %m для существующей папки (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "Не могу создать %m для существующего маршрута (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "Не могу создать %m для %r (существует пользователь с таким именем)", + ], + "Invalid SMTP server" => [ + 0 => "Неверный SMTP сервер", + ], + "Invalid SMTP username" => [ + 0 => "Неверное SMTP имя", + ], + "Invalid key" => [ + 0 => "Неверный ключ", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Этот URL-ключ уже используется для другой страницы (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Этот файл уже используется для другой страницы (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Невозможно сохранить содержимое страницы: %s.", + ], + "Following" => [ + 0 => "Подписан", + ], + "About" => [ + 0 => "Информация", + ], + "Image ID" => [ + 0 => "ID изображения", + ], + "Uploader IP" => [ + 0 => "IP автора", + ], + "Ban IP" => [ + 0 => "Заблокировать", + ], + "IP already banned" => [ + 0 => "IP-адрес уже заблокирован", + ], + "Upload date" => [ + 0 => "Дата загрузки", + ], + "Image %i in %a album" => [ + 0 => "Изображение %i в альбоме %a", + ], + "Image %i in %c category" => [ + 0 => "Изображение %i в категории %c", + ], + "Image %i hosted in %w" => [ + 0 => "Изображение %i расположенное в %w", + ], + "Direct links" => [ + 0 => "Прямые ссылки", + ], + "Image link" => [ + 0 => "Оригинал", + ], + "Image URL" => [ + 0 => "Прямая ссылка", + ], + "Thumbnail URL" => [ + 0 => "Миниатюра", + ], + "Medium URL" => [ + 0 => "Средний размер", + ], + "Full image" => [ + 0 => "Код изображения в полном размере", + ], + "Full image (linked)" => [ + 0 => "Код изображения оригинальный размер со ссылкой", + ], + "Medium image (linked)" => [ + 0 => "Код среднего размера со ссылкой", + ], + "Thumbnail image (linked)" => [ + 0 => "Код миниатюры со ссылкой", + ], + "Login needed" => [ + 0 => "Необходим вход", + ], + "IP address already banned" => [ + 0 => "IP-адрес уже заблокирован", + ], + "Missing values" => [ + 0 => "Пропущенные значения", + ], + "Invalid role" => [ + 0 => "Неверная роль", + ], + "Username already being used" => [ + 0 => "Пользователь с таким именем уже существует.", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Перед удалением %s, добавьте пароль или привяжите другую учетную запись", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Перед удалением %s, добавьте email или привяжите другую учетную запись", + ], + "%s has been disconnected." => [ + 0 => "%s отключен.", + ], + "Test email from %s @ %t" => [ + 0 => "Тестовое сообщение от %s @ %t", + ], + "This is just a test" => [ + 0 => "Это просто тест", + ], + "Test email sent to %s." => [ + 0 => "Тестовое сообщение отправлено на %s.", + ], + "Downloading %s data" => [ + 0 => "Загружаю данные %s", + ], + "User %s followed" => [ + 0 => "Вы подписались на загрузки пользователя %s", + ], + "User %s unfollowed" => [ + 0 => "Вы отписались от загрузок пользователя %s", + ], + "Content liked" => [ + 0 => "Содержимое понравилось", + ], + "Content disliked" => [ + 0 => "Содержимое не понравилось", + ], + "%u liked your %t %c" => [ + 0 => "Пользователю %u понравилось %t %c", + ], + "%u is now following you" => [ + 0 => "%u подписался на Вашу ленту", + ], + "A private user" => [ + 0 => "Скрытый пользователь", + ], + "Wrong Username/Email password combination" => [ + 0 => "Неверное имя пользователя или пароль", + ], + "Sign in" => [ + 0 => "Войти", + ], + "Upload images" => [ + 0 => "Загрузить изображения", + ], + "Upload plugin" => [ + 0 => "Загрузить плагин", + ], + "Image search results for %s" => [ + 0 => "Результаты поиска изображений по запросу %s", + ], + "Album search results for %s" => [ + 0 => "Результаты поиска альбомов по запросу %s", + ], + "User search results for %s" => [ + 0 => "Результаты поиска пользователей по запросу %s", + ], + "Account" => [ + 0 => "Аккаунт", + ], + "Profile" => [ + 0 => "Профиль", + ], + "Linked accounts" => [ + 0 => "Сервисы", + ], + "Invalid image expiration: %s" => [ + 0 => "Неверный срок хранения изображения: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "На %s было отправлено сообщение с инструкциями по активации", + ], + "Invalid name" => [ + 0 => "Неверное имя", + ], + "Invalid website" => [ + 0 => "Неправильний веб-сайт", + ], + "Wrong password" => [ + 0 => "Неверный пароль", + ], + "Use a new password" => [ + 0 => "Используйте новый пароль", + ], + "Changes have been saved." => [ + 0 => "Изменения сохранены.", + ], + "Password has been changed" => [ + 0 => "Пароль успешно изменен", + ], + "Password has been created." => [ + 0 => "Пароль успешно создан.", + ], + "Wrong Username/Email values" => [ + 0 => "Неверное Имя пользователя/Email", + ], + "Settings for %s" => [ + 0 => "Настройки %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Вы должны согласится с правилами и политикой конфиденциальности", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Для использования данного сайта вам должно быть как минимум %s лет.", + ], + "Create account" => [ + 0 => "Зарегистрироваться", + ], + "Upload" => [ + 0 => "Загрузка", + ], + "%s's Images" => [ + 0 => "Изображения %s", + ], + "Results for" => [ + 0 => "Результаты для", + ], + "Liked by %s" => [ + 0 => "Понравилось %s", + ], + "Liked" => [ + 0 => "Понравилось", + ], + "Followers" => [ + 0 => "Подписчиков", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) альбомов на %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) на %w", + ], + "Discovery" => [ + 0 => "Подборки", + ], + "Advanced search" => [ + 0 => "Расширенный поиск", + ], + "Random" => [ + 0 => "Случайное", + ], + "Notices (%s)" => [ + 0 => "Уведомления (%s)", + ], + "Notifications" => [ + 0 => "Уведомления", + ], + "You don't have notifications" => [ + 0 => "У Вас нет новых уведомлений", + ], + "My Profile" => [ + 0 => "Мой профиль", + ], + "Sign out" => [ + 0 => "Выйти", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Здравствуйте! Мы получили запрос на смену адреса электронной почты для Вашего аккаунта <a href=\"%u\">%n</a> на %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Чтобы завершить регистрацию, вы должны <a href=\"%s\">активировать свой Email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Вы также можете скопировать этот адрес и вставить в адресную строку вашего браузера: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Если вы не делали этого запроса, просто проигнорируйте это письмо.", + ], + "This request was made from IP: %s" => [ + 0 => "IP-адрес, с которого был сделан запрос: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Здравствуйте! Мы получили запрос на регистрацию аккаунта %n на %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Чтобы завершить регистрацию, вы должны <a href=\"%s\">активировать свой аккаунт</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Здравствуйте! Мы получили запрос на сброс пароля для Вашего аккаунта <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Чтобы сбросить пароль, <a href=\"%s\">пройдите по этой ссылке</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Привет %n! Добро пожаловать на %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Теперь когда регистрация завершена, вы можете наслаждаться загрузкой изображений, созданием альбомов, изменением настроек видимости содержимого, а также многими другими преимуществами.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Кстати, ваша личная страница расположена по адресу: <a href=\"%u\">%n</a>. Вы можете настроить её по своему вкусу. Она ваша!", + ], + "Thank you for joining" => [ + 0 => "Спасибо за то, что вы с нами", + ], + "This email was sent from %w %u" => [ + 0 => "Это сообщение было отправлено с %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Перетащите или вставьте изображения для начала загрузки", + ], + "Select the images to upload" => [ + 0 => "Выберите изображения для загрузки", + ], + "browse from your computer" => [ + 0 => "обзор изображений с компьютера", + ], + "add image URLs" => [ + 0 => "добавить ссылки на изображения", + ], + "You can also %i or %u." => [ + 0 => "Вы также можете %i или %u.\n", + ], + "browse from your device" => [ + 0 => "обзор изображений с устройства", + ], + "take a picture" => [ + 0 => "сделать фото", + ], + "You can also %i, %c or %u." => [ + 0 => "Вы также можете %i, %c или %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Нажмите на миниатюру, чтобы отредактировать изображение или изменить его размер", + ], + "Edit any image by touching the image preview" => [ + 0 => "Отредактируйте изображение касанием окна предпросмотра.", + ], + "your computer" => [ + 0 => "вашего компьютера", + ], + "You can add more images from %i or %u." => [ + 0 => "Вы можете добавить изображения с %i или %u.", + ], + "your device" => [ + 0 => "вашего устройства", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "Вы можете добавить изображения с %i, %c или %u.", + ], + "Uploading %q %o" => [ + 0 => "Загружается %q %o", + ], + "complete" => [ + 0 => "завершено", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Загружается очередь изображений. Это может занять некоторое время.", + ], + "Upload complete" => [ + 0 => "Загрузка завершена", + ], + "Uploaded content added to %s." => [ + 0 => "Загруженное содержимое добавлено к альбому %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Вы можете %c с загруженным содержимым или %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Вы можете %c с загруженным содержимым.", + ], + "create a new album" => [ + 0 => "создать новый альбом", + ], + "move it to an existing album" => [ + 0 => "переместить его в существующий", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Вы должны %s или %l, чтобы сохранить это содержимое в свой аккаунт.", + ], + "create an account" => [ + 0 => "создать аккаунт", + ], + "sign in" => [ + 0 => "войти", + ], + "No %s have been uploaded" => [ + 0 => "Не было загружено ни одного %s.", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "В процессе обработки вашего запроса произошла ошибка.", + ], + "Category" => [ + 0 => "Категория", + ], + "Select category" => [ + 0 => "Выберите категорию", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Пометить это изображение как неподходящее для семейного просмотра", + ], + "Not family safe upload" => [ + 0 => "Небезопасное содержимое", + ], + "Uploading" => [ + 0 => "Загружается", + ], + "cancel remaining" => [ + 0 => "отменить оставшиеся", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Внимание: Некоторые изображения не были загружены.", + ], + "learn more" => [ + 0 => "подробнее", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Проверьте <a data-modal=\"simple\" data-target=\"failed-upload-result\">отчет об ошибках</a> для получения более подробной информации.", + ], + "Register to get %s" => [ + 0 => "Зарегистрируйтесь, чтобы получить %s", + ], + "reset" => [ + 0 => "сброс", + ], + "close" => [ + 0 => "закрыть", + ], + "copy" => [ + 0 => "копировать", + ], + "insert" => [ + 0 => "вставить", + ], + "Remove" => [ + 0 => "Удалить", + ], + "Title" => [ + 0 => "Заголовок", + ], + "optional" => [ + 0 => "необязательно", + ], + "Resize image" => [ + 0 => "Изменить размер изображения", + ], + "Width" => [ + 0 => "Ширина", + ], + "Height" => [ + 0 => "Высота", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Внимание: Размер анимированных изображений в формате GIF не будет изменен.", + ], + "Auto delete image" => [ + 0 => "Автоудаление изображений", + ], + "Sign up" => [ + 0 => "Зарегистрируйтесь", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s, чтобы получить дополнительные возможности или отключить автоматическое удаление изображений.", + ], + "Mark this if the image is not family safe" => [ + 0 => "Пометить это изображение как небезопасное", + ], + "Flag as unsafe" => [ + 0 => "Небезопасное", + ], + "Description" => [ + 0 => "Описание", + ], + "Brief description of this image" => [ + 0 => "Краткое описание изображения", + ], + "Add image URLs" => [ + 0 => "Добавьте ссылки на изображения", + ], + "Add the image URLs here" => [ + 0 => "Добавьте сюда ссылки на изображения", + ], + "Create album" => [ + 0 => "Создать альбом", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Загруженный контент будет перемещен в новый альбом", + ], + "existing album" => [ + 0 => "существующий альбом", + ], + "You can also move the content to an %a." => [ + 0 => "Вы можете также переместить содержимое в виде %a.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Вы должны %s или %l, если хотите отредактировать этот альбом позже.", + ], + "Move to album" => [ + 0 => "Переместить в альбом", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Выберите существующий альбом для перемещения загруженного содержимого. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> и переместить содержимое в него.", + ], + "Error report" => [ + 0 => "Отчет об ошибках", + ], + "Viewer links" => [ + 0 => "Ссылки на просмотр", + ], + "HTML Codes" => [ + 0 => "HTML-коды", + ], + "HTML image" => [ + 0 => "HTML-код изображения", + ], + "HTML full linked" => [ + 0 => "HTML-код полноразмерного со ссылкой", + ], + "HTML medium linked" => [ + 0 => "HTML-код среднего размера со ссылкой", + ], + "HTML thumbnail linked" => [ + 0 => "HTML-код миниатюры со ссылкой", + ], + "BBCodes" => [ + 0 => "BB-коды", + ], + "BBCode full" => [ + 0 => "BB-код полноразмерного", + ], + "BBCode full linked" => [ + 0 => "BB-код полноразмерного со ссылкой", + ], + "BBCode medium linked" => [ + 0 => "BB-код среднего размера со ссылкой", + ], + "BBCode thumbnail linked" => [ + 0 => "BB-код миниатюры со ссылкой", + ], + "Markdown full" => [ + 0 => "Markdown-разметка полноразмерного", + ], + "Markdown full linked" => [ + 0 => "Markdown-разметка полноразмерного со ссылкой", + ], + "Markdown medium linked" => [ + 0 => "Markdown-разметка среднего размера со ссылкой", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown-разметка миниатюры со ссылкой", + ], + "All these words" => [ + 0 => "Со словами", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Введите ключевые слова: русский черный терьер", + ], + "This exact word or phrase" => [ + 0 => "Со словосочетанием", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Заключите словосочетание в кавычки: \"черный терьер\"", + ], + "None of these words" => [ + 0 => "Без слов", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Поставьте знак минуса перед словами: -цвет -\"русский той\"", + ], + "Storage" => [ + 0 => "Хранилище", + ], + "IP address" => [ + 0 => "IP-адрес", + ], + "Album name" => [ + 0 => "Название альбома", + ], + "move to existing album" => [ + 0 => "переместить в существующий", + ], + "Album description" => [ + 0 => "Описание альбома", + ], + "Brief description of this album" => [ + 0 => "Краткое описание этого альбома", + ], + "Album privacy" => [ + 0 => "Защита альбома", + ], + "Who can view this content" => [ + 0 => "Кто может просматривать это содержимое", + ], + "Private (just me)" => [ + 0 => "Скрытое (только я)", + ], + "Private (anyone with the link)" => [ + 0 => "Скрытое (только по ссылке)", + ], + "Private (password protected)" => [ + 0 => "Скрытое (с паролем)", + ], + "Album password" => [ + 0 => "Пароль альбома", + ], + "Name" => [ + 0 => "Имя", + ], + "Category name" => [ + 0 => "Название категории", + ], + "URL key" => [ + 0 => "Ключ для URL-адреса", + ], + "Category URL key" => [ + 0 => "Ключ для URL-адреса категории", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Только буквы, цифры и дефисы", + ], + "Brief description of this category" => [ + 0 => "Краткое описание этой категории", + ], + "Untitled image" => [ + 0 => "Безымянное", + ], + "Path" => [ + 0 => "Путь", + ], + "Local path (absolute)" => [ + 0 => "Локальный путь (абсолютный)", + ], + "Directory structure" => [ + 0 => "Структура папок", + ], + "Parse top level folders as users (username)" => [ + 0 => "Обрабатывать имена папок как пользователей (логины)", + ], + "Parse top level folders as albums" => [ + 0 => "Обрабатывать имена папок как альбомы", + ], + "Don't parse folders" => [ + 0 => "Не обрабатывать имена папок", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "При обработке папок верхнего уровня, как имени пользователя, папки второго уровня будут обработаны, как альбомы. Обработка папок верхнего уровня как альбомы, включает в том числе и альбомы гостей.", + ], + "Threads" => [ + 0 => "Потоки", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Определяет насколько быстрым и ресурсоемким будет процесс импорта. Не используйте больше %s потоков на совместном хостинге.", + ], + "You can use wildcard * characters." => [ + 0 => "Вы можете использовать символы * для задания маски.", + ], + "Expiration date" => [ + 0 => "Срок блокировки", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "ГГГГ-ММ-ДД ЧЧ:ММ:СС", + ], + "Example" => [ + 0 => "Пример", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Срок блокировки этого IP-адреса. Для бессрочной блокировки оставьте это поле пустым.", + ], + "Message" => [ + 0 => "Сообщение", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Текстовое сообщение, HTML-код или ссылка для переадресации", + ], + "Existing album" => [ + 0 => "Существующий альбом", + ], + "create new album" => [ + 0 => "создать новый альбом", + ], + "Storage name" => [ + 0 => "Название хранилища", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Регион", + ], + "Storage region" => [ + 0 => "Регион", + ], + "Storage bucket" => [ + 0 => "Корзина хранилища", + ], + "Key" => [ + 0 => "Ключ", + ], + "Storage key" => [ + 0 => "Ключ хранилища", + ], + "Secret" => [ + 0 => "Секретный ключ", + ], + "Storage secret" => [ + 0 => "Секретный ключ хранилища", + ], + "Private key" => [ + 0 => "Закрытый ключ", + ], + "Google Cloud JSON key" => [ + 0 => "JSON-ключ Google Cloud", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Для использования этой возможности, вам понадобится <a %s>аккаунт</a>.", + ], + "Service name" => [ + 0 => "Название службы", + ], + "Identity URL" => [ + 0 => "Адрес профиля", + ], + "Identity API endpoint" => [ + 0 => "Конечная точка API", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Конечная точка API для пользователя OpenStack", + ], + "Username" => [ + 0 => "Имя пользователя", + ], + "Container" => [ + 0 => "Контейнер", + ], + "Storage container" => [ + 0 => "Контейнер хранилища", + ], + "Tenant id" => [ + 0 => "ID клиента", + ], + "Tenant id (account id)" => [ + 0 => "ID клиента(аккаунта)", + ], + "Tenant name" => [ + 0 => "Имя клиента", + ], + "Tenant name (account name)" => [ + 0 => "Имя клиента(аккаунта)", + ], + "Storage endpoint" => [ + 0 => "Адрес хранилища", + ], + "Server address" => [ + 0 => "Адрес сервера", + ], + "Hostname or IP of the storage server" => [ + 0 => "Адрес или IP сервера", + ], + "Server path" => [ + 0 => "Путь", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Абсолютный путь к хранилищу файлов для пользователя %p. Используйте %s для корневой директории.", + ], + "Server login" => [ + 0 => "Логин сервера", + ], + "Server password" => [ + 0 => "Пароль", + ], + "Local path" => [ + 0 => "Локальный путь", + ], + "Local path where the files will be stored" => [ + 0 => "Локальный путь, где будут храниться файлы", + ], + "Storage capacity" => [ + 0 => "Доступное пространство", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Например 20 GB, 1 TB и т. п.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Хранилище будет оключено при достижении этого лимита. Оставьте поле пустым или укажите ноль для отключения лимита.", + ], + "Storage URL" => [ + 0 => "Адрес хранилища", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Система будет использовать данный адрес при формировании ссылок на изображения из этого хранилища.", + ], + "view more" => [ + 0 => "показать ещё", + ], + "Load more" => [ + 0 => "Загрузить ещё", + ], + "Select all" => [ + 0 => "Выделить все", + ], + "Clear selection" => [ + 0 => "Снять выделение", + ], + "Selection" => [ + 0 => "С выделенными", + ], + "Action" => [ + 0 => "Действие", + ], + "Get embed codes" => [ + 0 => "Получить коды для встраивания", + ], + "Assign category" => [ + 0 => "Присвоить категорию", + ], + "Flag as safe" => [ + 0 => "Безопасное", + ], + "Create new album" => [ + 0 => "Создать альбом", + ], + "Sign in with another account" => [ + 0 => "Войти через", + ], + "Continue with %label%" => [ + 0 => "Продолжить с %label%", + ], + "Home" => [ + 0 => "Главная", + ], + "There's nothing to show here." => [ + 0 => "Нет элементов для отображения.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Все изображения будут помещены в этот новый альбом. Вы также можете переместить изображения в <a class=\"modal-switch\" data-switch=\"move-existing-album\">существующий альбом</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Выберите существующий альбом, чтобы переместить изображение. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> и переместить изображение в него.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Выберите существующий альбом в который будет перемещено содержимое. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> для этого содержимого.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Выберите существующий альбом, чтобы переместить изображения. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> и переместить изображения в него.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Выбранные изображения будут перемещены в данную категорию.", + ], + "There is no categories." => [ + 0 => "Категории не заданы.", + ], + "Confirm flag content as safe" => [ + 0 => "Подтвердить пометку содержимого как безопасное", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Вы действительно хотите пометить это содержимое как безопасное?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Подтвердить пометку содержимого как небезопасное", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Вы действительно хотите пометить это содержимое как небезопасное?", + ], + "Confirm deletion" => [ + 0 => "Подтвердите удаление", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Вы действительно хотите удалить данное содержимое? Это действие необратимо.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Вы действительно хотите удалить выделенное содержимое? Это действие необратимо.", + ], + "Fullscreen" => [ + 0 => "Полный экран", + ], + "Exit fullscreen" => [ + 0 => "Выход из режима полного экрана", + ], + "Guest" => [ + 0 => "Гость", + ], + "Keyboard shortcuts" => [ + 0 => "Горячие клавиши", + ], + "Private album" => [ + 0 => "Скрытый альбом", + ], + "Password protected" => [ + 0 => "Защищенный паролем", + ], + "Uploaded by guest" => [ + 0 => "Загружено гостем", + ], + "From %s" => [ + 0 => "Из альбома %s", + ], + "Uploaded by private" => [ + 0 => "Загружено анонимом", + ], + "by %u" => [ + 0 => "от %u", + ], + "Toggle unsafe flag" => [ + 0 => "Включить отметку о небезопасном содержимом", + ], + "That page doesn't exist" => [ + 0 => "Эта страница не существует", + ], + "The requested page was not found." => [ + 0 => "Запрошеная страница не найдена", + ], + "Search something else" => [ + 0 => "Найти что-нибудь ещё", + ], + "The user has been deleted" => [ + 0 => "Пользователь удален", + ], + "Your account is almost ready" => [ + 0 => "Ваша учетная запись почти готова", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Инструкции по активации вашего аккаунта были отправлены на %s. Ссылка для активации действительна в течение 48 часов. Если вы не получили сообщение проверьте папку Спам.", + ], + "Resend activation" => [ + 0 => "Выслать письмо с активацией аккаунта еще раз", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Вы успешно поменяли адрес электронной почты на %s", + ], + "Go to my profile" => [ + 0 => "Перейти в мой профиль", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "На ваш адрес будет отправлена ссылка для активации аккаунта.", + ], + "Your email address" => [ + 0 => "Ваш адрес электронной почты", + ], + "Submit" => [ + 0 => "Отправить", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Инструкции по сбросу пароля были оправлены на ваш адрес. Если вы их не получили, проверьте папку Спам.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Вам уже было отправлено сообщение с инструкциями по сбросу пароля. Если вы не получили сообщения, проверьте папку Спам.", + ], + "Resend instructions" => [ + 0 => "Повторить отправку инструкций", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Чтобы продолжить, введите имя пользователя или e-mail. Не забудьте проверить папку со спамом %s", + ], + "Username or Email address" => [ + 0 => "Имя пользователя или Email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Пароль успешно изменен. Вы можете войти используя ваш новый пароль.", + ], + "Login now" => [ + 0 => "Войти сейчас", + ], + "Enter your new password" => [ + 0 => "Введите ваш новый пароль", + ], + "%d characters min" => [ + 0 => "мин. %d символов", + ], + "Password strength" => [ + 0 => "Надежность пароля", + ], + "Re-enter your new password" => [ + 0 => "Повторите новый пароль", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Инструкции по активации вашей учетной записи были отправлены на %s. Если вы не получили сообщение, проверьте папку Спам.", + ], + "This content is private" => [ + 0 => "Скрытое содержимое", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Вы действительно хотите удалить этот альбом со всеми изображениями? Это действие необратимо.", + ], + "You like this" => [ + 0 => "Вам это нравится", + ], + "Upload to album" => [ + 0 => "Загрузить в альбом", + ], + "Album link" => [ + 0 => "Ссылка на альбом", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Прежде чем продолжить, прочтите и согласитесь с условиями ниже:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Этот сайт содержит информацию, ссылки и изображения откровенного сексуального характера. Если Вам еще не исполнилось %s лет, подобный материал запрещен в вашей стране или Вы считаете такой материал оскорбительным, пожалуйста, покиньте сайт.\n\nЯ подтверждаю, что мне исполнилось %s лет и считаю своим правом возможность просматривать материал откровенного сексуального характера.\n\nЯ не считаю добровольный половой акт между партнерами, достигшими совершеннолетия, оскорбительным или непристойным. Просмотр, чтение или загрузка материалов, откровенного сексуального характера не нарушает законы и порядки моего сообщества, города, области или страны.\n\nПросматриваемый мной материал откровенного сексуального характера, предназначен для личного пользования и не предназначен для демонстрации лицам, не достигшим совершеннолетия.\n\nЯ полностью отвечаю за все правовые последствия просмотра, чтения или загрузки материалов с данного сайта. Ни данный сайт, ни его партнеры не будут нести ответственность за неправомерное использование материалов данного сайта.\n\nЭтот документ служит соглашением между данным сайтом и конечным пользователем. В случае если одна из частей данного соглашения признается недействительной в суде, другие части соглашения не теряют юридическую силу.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Нажимая на кнопку \"Я согласен\" вы подтверждаете, что прочитали и поняли все условия, указанные выше.", + ], + "I Agree" => [ + 0 => "Я согласен", + ], + "documentation" => [ + 0 => "документации", + ], + "Learn more about %s at our %d." => [ + 0 => "Узнайте больше о %s в %d.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Для Nginx необходимо использовать %nginx%. Для Apache, %apache%.", + ], + "Disk used" => [ + 0 => "Использовано места на диске", + ], + "Automatic importing" => [ + 0 => "Автоматический импорт", + ], + "Reset to clear stats and logs." => [ + 0 => "Сброс, для очистки статистики и журналов.", + ], + "Queued" => [ + 0 => "В очереди", + ], + "Working" => [ + 0 => "Обрабатывается", + ], + "Paused" => [ + 0 => "Приостановлено", + ], + "Canceled" => [ + 0 => "Отменено", + ], + "Completed" => [ + 0 => "Завершено", + ], + "Actions" => [ + 0 => "Действия", + ], + "Reset" => [ + 0 => "Сброс", + ], + "Pause" => [ + 0 => "Пауза", + ], + "Process log" => [ + 0 => "Журнал импорта", + ], + "Errors" => [ + 0 => "Ошибки", + ], + "Status" => [ + 0 => "Статус", + ], + "Add import job" => [ + 0 => "Добавить задачу импорта", + ], + "Process import" => [ + 0 => "Импорт", + ], + "Top level folders as %s" => [ + 0 => "Папки верхнего уровня как %s", + ], + "Process" => [ + 0 => "Процесс", + ], + "Cancel" => [ + 0 => "Отмена", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "Вы действительно хотите удалить задачу с ID %s?", + ], + "Manual importing" => [ + 0 => "Ручной импорт", + ], + "Parser" => [ + 0 => "Парсер", + ], + "Add user" => [ + 0 => "Добавить пользователя", + ], + "Role" => [ + 0 => "Роль", + ], + "Manager" => [ + 0 => "Менеджер", + ], + "Administrator" => [ + 0 => "Администратор", + ], + "Email address" => [ + 0 => "Адрес электронной почты", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Данная настройка всегда выключена, если вы используете персональный режим.", + ], + "Add category" => [ + 0 => "Добавить категорию", + ], + "Add IP ban" => [ + 0 => "Заблокировать IP-адрес", + ], + "Add storage" => [ + 0 => "Добавить хранилище", + ], + "Return to pages" => [ + 0 => "Вернутся к страницам", + ], + "Website name" => [ + 0 => "Название сайта", + ], + "Website doctitle" => [ + 0 => "Заголовок сайта", + ], + "Website description" => [ + 0 => "Описание сайта", + ], + "Powered by" => [ + 0 => "Работает на", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "Включите, чтобы показывать кнопки соцсетей.", + ], + "Automatic" => [ + 0 => "Автоматически", + ], + "Forced" => [ + 0 => "Принудительный", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a будет использовать обнаружение HTTPS на стороне сервера (рекомендовано). %f будет использовать HTTPS независимо от настроек сервера. %d полностью отключает использование HTTPS.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Эта настройка влияет только на ссылки. Её включение не сделает ваш сайт доступным по HTTPS, без соответствующих настроек веб-сервера.", + ], + "Default time zone" => [ + 0 => "Часовой пояс по-умолчанию", + ], + "Select region" => [ + 0 => "Выберите регион", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Позволяет производить поиск изображений, альбомов и пользователей на основании заданного поискового запроса.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Позволяет просмотр публичных изображений и категорий.", + ], + "guests" => [ + 0 => "гости", + ], + "Enables explore for guests." => [ + 0 => "Включает обозреватель для гостей.", + ], + "Enables to browse images randomly." => [ + 0 => "Позволяет просмотр случайных изображений.", + ], + "Likes" => [ + 0 => "Понравилось", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Позволяет пользователям отмечать контент, как понравившийся и формирует список \"Самые популярные\".", + ], + "Followers allows users to follow each other." => [ + 0 => "Система подписки позволяет пользователям подписываться на контент друг друга.", + ], + "Personal mode target user" => [ + 0 => "Пользователь в частном режиме", + ], + "User ID" => [ + 0 => "ID пользователя", + ], + "Your user id is: %s" => [ + 0 => "Ваш ID пользователя: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Числовой ID пользователя в частном режиме.", + ], + "Personal mode routing" => [ + 0 => "Маршрутизация в частном режиме", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Собственный маршрут для переадресации запросов вида /имя_пользователя на /новый_адрес. Используйте \"/\" для перехода на главную страницу.", + ], + "Website privacy mode" => [ + 0 => "Режим видимости сайта", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Частный сайт будет доступен только для зарегистрированных пользователей.", + ], + "Content privacy mode" => [ + 0 => "Режим видимости содержимого", + ], + "Default" => [ + 0 => "По-умолчанию", + ], + "Force private (self)" => [ + 0 => "Скрытые (только владелец)", + ], + "Force private (anyone with the link)" => [ + 0 => "Скрытые (только по ссылке)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "При включении принудительных режимов видимости, указанные пользователями значения будут проигнорированы.", + ], + "Page title" => [ + 0 => "Заголовок страницы", + ], + "Page status" => [ + 0 => "Статус страницы", + ], + "Active page" => [ + 0 => "Активная", + ], + "Inactive page (%s)" => [ + 0 => "Неактивная (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Только активные страницы будут доступны пользователям", + ], + "Type" => [ + 0 => "Тип", + ], + "Terms of service" => [ + 0 => "Правила", + ], + "Privacy" => [ + 0 => "Анонимность", + ], + "Contact" => [ + 0 => "Обратная связь", + ], + "Extra page" => [ + 0 => "Дополнительная страница", + ], + "Internal page type" => [ + 0 => "Тип страницы", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Вы можете добавить не более одной страницы каждого типа.", + ], + "Page visibility" => [ + 0 => "Видимость страницы", + ], + "Visible page" => [ + 0 => "Видимая", + ], + "Hidden page" => [ + 0 => "Скрытая", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Скрытые страницы не видны в меню, но будут доступны по прямой ссылке.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Только цифры, латинские буквы, дефис и нижнее подчеркивание", + ], + "File path" => [ + 0 => "Путь к файлу", + ], + "A %f file relative to %s" => [ + 0 => "Файл %f относительно %s", + ], + "Meta keywords" => [ + 0 => "Ключевые слова", + ], + "Meta description" => [ + 0 => "Описание", + ], + "Source code" => [ + 0 => "Исходный код", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Недостаточно привелегий для записи в %s. Вам необходимо создать этот файл с помощью стороннего редактора.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Недостаточно привелегий для записи в %s. Вам необходимо изменить содержимое этого файла с помощью стороннего редактора.", + ], + "Taken from: %s" => [ + 0 => "Взято из: %s", + ], + "Link URL" => [ + 0 => "Адрес ссылки", + ], + "Link target attribute" => [ + 0 => "Аттрибут target для ссылки", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Выберите %s чтобы открывать страницу или ссылку в новом окне.", + ], + "Link rel attribute" => [ + 0 => "Аттрибут rel для ссылки", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Только цифры, буквы, дефисы и пробелы", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "Аттрибут %s для HTML-тэга &lt;a&gt;", + ], + "Link icon" => [ + 0 => "Изображение ссылки", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Проверьте список поддерживаемых форматов в <a %s>документации по иконкам</a>.", + ], + "Sort order display" => [ + 0 => "Порядок при сортировке", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Порядок отображения в меню и списках. Используйте \"1\" как вершину списка.", + ], + "pages" => [ + 0 => "страницы", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Вы действительно хотите удалить страницу с ID %s? Это действие необратимо.", + ], + "Enabled image formats" => [ + 0 => "Включенные форматы файлов", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "Только отмеченные форматы будут доступны для загрузки.", + ], + "Enable uploads" => [ + 0 => "Включить загрузку", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Включите, если вы хотите разрешить загрузку изображений. Эта настройка не влияет на администраторов.", + ], + "Upload user interface" => [ + 0 => "Загрузить интерфейс пользователя", + ], + "On-page container" => [ + 0 => "Контейнер страницы", + ], + "route" => [ + 0 => "маршрут", + ], + "Guest uploads" => [ + 0 => "Гостевые загрузки", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Включите, если хотите позволить загружать изображения незарегистрированным пользователям.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Коды для встраивания (в загрузчике)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Включите эту настройку, если вы хотите показывать коды для встраивания по завершении загрузки.", + ], + "Upload threads" => [ + 0 => "Потоки загрузки", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Количество одновременных (параллельных) загрузок", + ], + "Redirect on single upload" => [ + 0 => "Переадресация при одиночной загрузке", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Включите, если вы хотите выполнять переадресацию на страницу просмотра, при загрузке одного изображения.", + ], + "Enable duplicate uploads" => [ + 0 => "Разрешить повторные загрузки", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "Включите, если хотите разрешить загрузки одинакового содержимого с одного IP-адреса, в течение 24 часов. Эта настройка не влияет на администраторов.", + ], + "Enable expirable uploads" => [ + 0 => "Включить временные загрузки", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Включите, чтобы разрешить загрузки с указанием срока хранения.", + ], + "Auto delete guest uploads" => [ + 0 => "Автоматически удалять гостевые загрузки", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Включите, чтобы автоматически удалять гостевые загрузки через заданный интервал времени.", + ], + "Maximum image size" => [ + 0 => "Максимальный размер изображения", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Изображения, размер которых, больше данного лимита, будут автоматически уменьшены. Чтобы не ограничивать максимальный размер изображения, укажите значение ноль(0).", + ], + "Image Exif data" => [ + 0 => "Данные Exif", + ], + "Keep" => [ + 0 => "Сохранять", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Выберите настройку по-умолчанию для обработки <a %s>данных Exif</a> при загрузке.", + ], + "Image Exif data (user setting)" => [ + 0 => "Данные Exif (пользовательская настройка)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Включите, чтобы разрешить каждому пользователю задавать способ обработки данных Exif.", + ], + "Maximum upload file size" => [ + 0 => "Максимальный размер файла", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Ограничение сервера - %s. Это ограничение обусловлено %u и %p (значения %f).", + ], + "Same as \"%s\" but for guests." => [ + 0 => "То же, что и \"%s\" но для гостей.", + ], + "Image path" => [ + 0 => "Путь к изображениям", + ], + "Relative to Chevereto root" => [ + 0 => "Относительно пути к Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Где хранить изображения? Относительно пути к Chevereto.", + ], + "Storage mode" => [ + 0 => "Режим хранения", + ], + "Datefolders" => [ + 0 => "По датам", + ], + "Direct" => [ + 0 => "В одной папке", + ], + "Datefolders creates %s structure" => [ + 0 => "Режим \"По датам\" создает структуру вида %s", + ], + "File naming method" => [ + 0 => "Формат имени файла", + ], + "Original" => [ + 0 => "Исходный", + ], + "Mix original + random" => [ + 0 => "Дополнять исходное имя случайными символами", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Исходный\" попытается сохранить изначальное имя файла, \"Случайный\" создаст случайное имя, а \"ID\" - использует ID изображения в качестве имени файла.", + ], + "Thumb size" => [ + 0 => "Размер миниатюры", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Миниатюра будет ограничена этим размером.", + ], + "Medium image fixed dimension" => [ + 0 => "Фиксированная сторона среднего", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Изображения среднего размера будут приведены к этой стороне. Например, если вы укажите значение \"ширина\", эта сторона будет зафиксирована, а высота будет рассчитана автоматически.", + ], + "Medium image fixed size" => [ + 0 => "Фиксированный размер среднего", + ], + "Width or height will be automatically calculated." => [ + 0 => "Ширина или высота будут рассчитаны автоматически.", + ], + "Watermarks" => [ + 0 => "Водяные знаки", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Включите, чтобы поместить логотип или любое другое изображение на все загрузки.", + ], + "Warning: Can't write in %s" => [ + 0 => "Внимание: Не могу записать в %s", + ], + "Watermark user toggles" => [ + 0 => "Условия добавления водяных знаков для пользователей", + ], + "Enable watermark on guest uploads" => [ + 0 => "Добавлять водяные знаки к гостевым загрузкам", + ], + "Enable watermark on user uploads" => [ + 0 => "Добавлять водяные знаки к пользовательским загрузкам", + ], + "Enable watermark on admin uploads" => [ + 0 => "Добавлять водяные знаки к администраторским загрузкам", + ], + "Watermark file toggles" => [ + 0 => "Условия добавления водяных знаков для файлов", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Включить добавление водяных знаков к изображениям в формате GIF", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Минимальный размер изображения для добавления водяных знаков", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Водяные знаки не будут добавляться к изображениям, размер которых меньше указанного значения. Чтобы добавлять водяные знаки ко всем изображениям, независимо от размера, укажите значение ноль(0).", + ], + "Watermark image" => [ + 0 => "Изображение водяного знака", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Для достижения наилучшего результата, используйте простые логотипы с тенью. Вы можете использовать изображения большого размера с небольшим размером файла (рекомендуемый размер файла: не более 16КБ). Изображение должно быть в формате PNG.", + ], + "Watermark position" => [ + 0 => "Положение водяного знака", + ], + "left top" => [ + 0 => "слева сверху", + ], + "left center" => [ + 0 => "слева по центру", + ], + "left bottom" => [ + 0 => "слева снизу", + ], + "center top" => [ + 0 => "по центру сверху", + ], + "center center" => [ + 0 => "по центру", + ], + "center bottom" => [ + 0 => "по центру снизу", + ], + "right top" => [ + 0 => "справа сверху", + ], + "right center" => [ + 0 => "справа по центру", + ], + "right bottom" => [ + 0 => "справа снизу", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Относительное положение водяного знака. Первым указано положение по горизонтали, вторым по вертикали.", + ], + "Watermark percentage" => [ + 0 => "Относительный размер водяного знака", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Размер водяного знака, в процентах, относительно размера загружаемого изображения. Укажите значение от 1 до 100.", + ], + "Watermark margin" => [ + 0 => "Поля водяного знака", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Поля от границы изображения до водяного знака.", + ], + "Watermark opacity" => [ + 0 => "Прозрачность водяного знака", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Прозрачность водяного знака при наложении на изображение. Должно быть в диапазоне от 0 до 100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Панель управления > Настройки > Сайт", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Категории не будут работать при отключенном обзоре изображений. Чтобы отменить эту настройку перейдите на %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Вы действительно хотите удалить категорию %s? Это действие необратимо.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Внимание: Удаление категории не повлечет за собой удаление изображений.", + ], + "Edit category" => [ + 0 => "Изменить категорию", + ], + "Expires" => [ + 0 => "Истекает", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Вы действительно хотите разблокировать IP-адрес %s? Это действие необратимо.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Пользователям, чьи IP-адреса заблокированы, будет недоступен весь сайт.", + ], + "Edit IP ban" => [ + 0 => "Редактировать", + ], + "Enable signups" => [ + 0 => "Включить регистрацию", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Включите, чтобы разрешить регистрацию пользователей.", + ], + "Enable user content delete" => [ + 0 => "Разрешить пользователям удаление содержимого", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Включите, чтобы позволить пользователям удалять свое содержимое. Эта настройка не влияет на администраторов.", + ], + "Minimum age required" => [ + 0 => "Минимальный возраст посетителя", + ], + "Empty" => [ + 0 => "Пусто", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Оставьте поле пустым, если ваш сайт не предполагает возрастного ограничения.", + ], + "Notify on user signup" => [ + 0 => "Уведомлять о новых пользователях", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Включите, чтобы получать email-уведомления о новых пользователях.", + ], + "Username routing" => [ + 0 => "Адресация пользователей", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Включите, если вы хотите использовать адреса профилей вида %s/имя_пользователя вместо %s/user/имя_пользователя.", + ], + "Require email confirmation" => [ + 0 => "Требовать подтверждение электронной почты", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Включите, чтобы требовать подтверждение адреса электронной почты при регистрации.", + ], + "Require email for social signup" => [ + 0 => "Требовать email-адрес при регистрации через социальную сеть", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Включите, если вы хотите, чтобы пользователям, регистрирующимся через социальные сети, необходимо было указывать email-адрес.", + ], + "User avatar max. filesize" => [ + 0 => "Максимальный размер аватара", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Максимально допустимый размер файла для аватара пользователя. (Ограничение сервера: %s)", + ], + "User background max. filesize" => [ + 0 => "Максимальный размер фона профиля", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Максимально допустимый размер файла для фона профиля пользователя. (Ограничение сервера: %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Показывает экран возрастного ограничения перед посещением сайта. Полезно сайтам \"для взрослых\", куда не стоит пускать несовершеннолетних.", + ], + "Enable consent screen" => [ + 0 => "Включить экран возрастного ценза", + ], + "Consent screen cover image" => [ + 0 => "Обложка экрана возрастного ценза", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Блокировать загрузку изображений по IP, если на основании количества загрузок, система обнаружит подозрение на флуд. Эта настройка не влияет на администраторов.", + ], + "Notify to email" => [ + 0 => "Уведомить по электронной почте", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "При включении этой настройки, система будет уведомлять о флуд-атаках по почте.", + ], + "Minute limit" => [ + 0 => "Загрузок в минуту", + ], + "Hourly limit" => [ + 0 => "Загрузок в час", + ], + "Daily limit" => [ + 0 => "Загрузок в день", + ], + "Weekly limit" => [ + 0 => "Загрузок в неделю", + ], + "Monthly limit" => [ + 0 => "Загрузок в месяц", + ], + "Show not safe content in listings" => [ + 0 => "Показывать небезопасное содержимое", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Включите, чтобы отображать небезопасное содержимое. Эта настройка не влияет на администраторов и может быть переопределена пользователем.", + ], + "Blur NSFW content in listings" => [ + 0 => "Размытие небезопасных изображений в списках", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Включите, чтобы применять эффект размытия к небезопасным изображениям.", + ], + "Show banners in not safe content" => [ + 0 => "Показывать баннеры на страницах с небезопасным содержимым.", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Включите, если вы хотите показывать баннеры на страницах с небезопасным содержимым.", + ], + "Show not safe content in random mode" => [ + 0 => "Показывать небезопасное содержимое в режиме случайного изображения", + ], + "List items per page" => [ + 0 => "Элементов на страницу", + ], + "How many items should be displayed per page listing." => [ + 0 => "Сколько изображений отображать на одну страницу.", + ], + "List pagination mode" => [ + 0 => "Режим разбиения на страницы", + ], + "Endless scrolling" => [ + 0 => "Бесконечная прокрутка", + ], + "Classic pagination" => [ + 0 => "Нумерованные страницы", + ], + "What pagination method should be used." => [ + 0 => "Какой способ разбиения на станицы использовать.", + ], + "Listing viewer" => [ + 0 => "Карусель", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Включите, чтобы использовать карусель для просмотра изображений.", + ], + "Image listing size" => [ + 0 => "Размер миниатюр в списке", + ], + "Fluid" => [ + 0 => "Адаптивный", + ], + "Fixed" => [ + 0 => "Фиксированный", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Оба метода используют фиксированную ширину, но в адаптивном методе, высота вычисляется с сохранением пропорций изображения.", + ], + "Album listing images requirement" => [ + 0 => "Требования к альбомам для карусели", + ], + "explore" => [ + 0 => "обзор", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Устанавливает минимальное число изображений, необходимое для показа альбомов в обозревателе.", + ], + "Listing columns number" => [ + 0 => "Количество столбцов в списках изображений", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Здесь можно указать количество столбцов для каждого устройства.", + ], + "Phone" => [ + 0 => "Телефон", + ], + "Phablet" => [ + 0 => "Фаблет", + ], + "Tablet" => [ + 0 => "Планшет", + ], + "Laptop" => [ + 0 => "Ноутбук", + ], + "Desktop" => [ + 0 => "ПК", + ], + "theme editing" => [ + 0 => "редактирование темы", + ], + "Put your themes in the %s folder" => [ + 0 => "Поместите свои темы в папку %s", + ], + "Tone" => [ + 0 => "Стиль", + ], + "Light" => [ + 0 => "Светлый", + ], + "Dark" => [ + 0 => "Темный", + ], + "Main color" => [ + 0 => "Основной цвет", + ], + "Hexadecimal color value" => [ + 0 => "Шестнадцатеричный код цвета", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Используйте это поле, чтобы указать основной цвет темы. Значение должно быть указано в <a href=\"%s\" target=\"_blank\">шестнадцатеричном формате</a>.", + ], + "Top bar button color" => [ + 0 => "Цвет кнопок верхней панели", + ], + "Blue" => [ + 0 => "Синий", + ], + "Green" => [ + 0 => "Зеленый", + ], + "Orange" => [ + 0 => "Оранжевый", + ], + "Red" => [ + 0 => "Красный", + ], + "Grey" => [ + 0 => "Серый", + ], + "Black" => [ + 0 => "Черный", + ], + "White" => [ + 0 => "Белый", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Цвет кнопок на верхней панели, таких как \"Зарегистрироваться\".", + ], + "Enable vector logo" => [ + 0 => "Включить векторный логотип", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Включите векторный логотип для повышения качества изображения на дисплеях с большой плотностью пикселей.", + ], + "Vector logo image" => [ + 0 => "Векторный логотип", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Векторный логотип вашего сайта в формате SVG.", + ], + "Raster logo image" => [ + 0 => "Растровый логотип", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Растровый логотип вашего сайта. Рекомендуется использовать формат PNG.", + ], + "Logo height" => [ + 0 => "Высота логотипа", + ], + "No value" => [ + 0 => "Нет значения", + ], + "Use this to set the logo height if needed." => [ + 0 => "Используйте это поле, если необходимо указать высоту логотипа.", + ], + "Favicon image" => [ + 0 => "Иконка сайта", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Иконка вашего сайта. Ширина и высота данного изображения должны быть одинаковы.", + ], + "Image load max. filesize" => [ + 0 => "Макс. размер файла в просмотре", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "При просмотре изображений большего размера, будет отображаться кнопка загрузки полной версии.", + ], + "Enable download button" => [ + 0 => "Включить кнопку загрузки", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Включите, чтобы показывать кнопку загрузки изображения.", + ], + "Enable right click on image" => [ + 0 => "Разрешить нажатие правой кнопкой мыши на изображении", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Включите, если вы хотите разрешить показ меню браузера при нажатии правой кнопки мыши на изображений.", + ], + "Enable show Exif data" => [ + 0 => "Показывать Exif", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Включите, чтобы показывать данные Exif для изображений.", + ], + "Enable social share" => [ + 0 => "Включить опцию \"поделиться\"", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Включите эту настройку, чтобы показывать кнопки социальных сетей.", + ], + "Enable embed codes (content)" => [ + 0 => "Коды для встраивания (в просмотре)", + ], + "Everybody" => [ + 0 => "Все пользователи", + ], + "Users only" => [ + 0 => "Только зарегистрированные", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Включите эту настройку, если вы хотите показывать коды для встраивания в просмотре изображений.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Показывать в загрузчике настройку для небезопасного содержимого", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Включите, чтобы дать пользователям возможность указывать безопасность изображения при загрузке.", + ], + "Custom CSS code" => [ + 0 => "Дополнительный CSS", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Вставьте сюда ваш собственный CSS код. Он будет вставлен с помощью тега <style> перед закрывающим тегом </head>.", + ], + "Custom JS code" => [ + 0 => "Дополнительный JS", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Вставьте сюда ваш собственный JS код. Он будет вставлен с помощью тега <script> перед закрывающим тегом </head>.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Это поле предназначено для JS-кода. Не используйте в нем %s разметку. Использование разметки в этом поле, приведет к нарушению работы сайта.", + ], + "Style" => [ + 0 => "Стиль", + ], + "Landing page" => [ + 0 => "Целевая страница", + ], + "Split landing + images" => [ + 0 => "Целевая страница + изображения", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Выберите стиль отображения главной страницы. Для получения больших возможностей, Вы можете отредактировать файл app/themes/%s/views/index.php.", + ], + "Cover image" => [ + 0 => "Обложка", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Вы действительно хотите удалить данное избражение? Это действие необратимо.", + ], + "Delete image" => [ + 0 => "Удалить", + ], + "Add new cover image" => [ + 0 => "Добавить новую обложку", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Векторный логотип вашего сайта в формате SVG (только для домашней страницы).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Растровый логотип вашего сайта (только для домашней страницы). Рекомендуется использовать формат PNG.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Это содержимое будет добавлено в %s тэг на главной странице. Чтобы использовать значение по-умолчанию, оставьте это поле пустым.", + ], + "Paragraph" => [ + 0 => "Текст", + ], + "Call to action button color" => [ + 0 => "Цвет кнопки на главной", + ], + "Color of the homepage call to action button." => [ + 0 => "Цвет кнопки вызова действия на главной странице.", + ], + "Call to action outline style button" => [ + 0 => "Контурная кнопка на главной", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Включите, чтобы отображать кнопку на главной странице в виде контура.", + ], + "Call to action functionality" => [ + 0 => "Действие кнопки на главной", + ], + "Trigger uploader" => [ + 0 => "Отобразить загрузчик", + ], + "Open URL" => [ + 0 => "Перейти по адресу", + ], + "Call to action URL" => [ + 0 => "URL кнопки", + ], + "Enter an absolute or relative URL" => [ + 0 => "Введите абсолютный или относительный адрес", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Относительные адреса, наподобие %r, будут переадресованы на %l", + ], + "Call to action HTML" => [ + 0 => "HTML-код кнопки", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Этот адрес будет указан в тэге <a> кнопки на главной странице. Чтобы использовать адрес по-умолчанию, оставьте это поле пустым.", + ], + "User IDs" => [ + 0 => "ID пользователей", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Список числовых идентификаторов пользователей (через запятую), изображения которых, будут показываться на главной странице. Оставьте поле пустым или укажите ноль, чтобы показывать все новые изображения.", + ], + "banners" => [ + 0 => "баннеры", + ], + "Automatic updates check" => [ + 0 => "Автоматическая проверка обновлений", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Если включить данную настройку, то система будет автоматически проверять обновления", + ], + "Display available updates notification" => [ + 0 => "Показывать уведомление об обновлении", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Включите, чтобы показывать уведомления об обновлении в верхней части экрана.", + ], + "Dump update query" => [ + 0 => "Просмотреть текст запроса", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URLs", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "Включите этот параметр, если вы хотите использовать SEO %s URL-адреса.", + ], + "Minify code" => [ + 0 => "Сжимать код", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Включите, чтобы автоматически сжимать CSS и JS код.", + ], + "Maintenance" => [ + 0 => "Обслуживание", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "При включении, отображает на сайте сообщение о техническом обслуживании. Эта настройка не влияет на администраторов.", + ], + "Crypt salt" => [ + 0 => "Криптографическая соль", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Эта соль используется для преобразования цифровых ID в буквенные. Она была создана при установке.", + ], + "PHP error reporting" => [ + 0 => "Отчеты об ошибках PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Включите, если вы хотите выводить ошибки, сгенерированные функцией <a %s>error_reporting()</a>. Эта настройка должна быть выключена на общедоступных сайтах.", + ], + "Debug level" => [ + 0 => "Уровень отладки", + ], + "None" => [ + 0 => "Выкл.", + ], + "Error log" => [ + 0 => "Записывать в журнал", + ], + "Print errors without error log" => [ + 0 => "Выводить ошибки без записи в журнал", + ], + "Print and log errors" => [ + 0 => "Выводить ошибки с записью в журнал", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Подробнее об уровнях отладки можно узнать в <a %s>документации</a>. Значение по-умолчанию: \"Записывать в журнал\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "Маршрутизация позволяет изменять адреса ресурсов. В качестве имени маршрута можно использовать только цифры, латинские буквы, дефис и нижнее подчеркивание. Посмотрите нашу %s если вы хотите изменить маршрут или добавить новый.", + ], + "Image routing" => [ + 0 => "Маршрутизация изображений", + ], + "Routing for %s" => [ + 0 => "Маршрутизация для %s", + ], + "Album routing" => [ + 0 => "Маршрутизация альбомов", + ], + "Hostname" => [ + 0 => "Имя узла", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Имя узла к которому будут добавлены субдомены.", + ], + "This setting may be overridden by %s." => [ + 0 => "Эта настройка может быть переопределена %s.", + ], + "Language subdomains" => [ + 0 => "Локальные поддомены", + ], + "languages" => [ + 0 => "языки", + ], + "Enable to use %s for %t." => [ + 0 => "Включите, чтобы использовать %s для %t.", + ], + "Username subdomains" => [ + 0 => "Пользовательские поддомены", + ], + "user profiles" => [ + 0 => "профили пользователя", + ], + "Custom language strings" => [ + 0 => "Дополнительные строки перевода", + ], + "language strings" => [ + 0 => "переводе", + ], + "Default language" => [ + 0 => "Язык по-умолчанию", + ], + "Default base language to use." => [ + 0 => "Используемый по-умолчанию язык.", + ], + "Auto language" => [ + 0 => "Автоматический выбор языка", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Включите, чтобы автоматически определять язык пользователя.", + ], + "Language chooser" => [ + 0 => "Меню выбора языка", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Включите, чтобы предоставить пользователям возможность выбирать язык.", + ], + "Enabled languages" => [ + 0 => "Доступные языки", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Не отмеченные здесь языки, не будут использоваться на сайте.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Измените эту настройку чтобы включить или отключить HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Измените эту настройку чтобы включить или отключить это хранилище", + ], + "Quota" => [ + 0 => "Квота", + ], + "Active" => [ + 0 => "Активное", + ], + "Storage method" => [ + 0 => "Тип хранилища", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Локальное хранилище используется по-умолчанию или при отсутствии активных внешних хранилищ.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Если вам нужна помощь, обратитесь к <a %s>документации</a>.", + ], + "Edit storage" => [ + 0 => "Изменить", + ], + "From name" => [ + 0 => "Отправитель", + ], + "Sender name for emails sent to users." => [ + 0 => "Имя отправителя для рассылки сообщений пользователям.", + ], + "Email mode" => [ + 0 => "Режим электронной почты", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Как отправлять сообщения? Рекомендуется использовать SMTP.", + ], + "SMTP server and port" => [ + 0 => "SMTP сервер и порт", + ], + "SMTP server" => [ + 0 => "SMTP сервер", + ], + "SMTP username" => [ + 0 => "Имя пользователя SMTP", + ], + "SMTP password" => [ + 0 => "Пароль SMTP", + ], + "SMTP security" => [ + 0 => "Безопасность SMTP", + ], + "Unsecured" => [ + 0 => "Небезопасный", + ], + "Decode ID" => [ + 0 => "Декодировать ID", + ], + "Encode ID" => [ + 0 => "Закодировать ID", + ], + "Send test email" => [ + 0 => "Отправить тестовое сообщение", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Используйте эту форму для проверки доставки сообщений. Мы рекомендуем Вам использовать %s.", + ], + "Export a user" => [ + 0 => "Экспортировать пользователя", + ], + "Export user" => [ + 0 => "Экспортировать пользователя", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Это позволит Вам скачать информацию о пользователе в формате JSON.", + ], + "Regenerate external storage stats" => [ + 0 => "Регенерация статистики внешнего хранилища", + ], + "Storage id" => [ + 0 => "ID хранилища", + ], + "Regenerate" => [ + 0 => "Регенерировать", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "При этом будет пересчитана сумма всех записей изображений, связанных с целевым внешним хранилищем.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Перенос записей изображений из одного внешнего хранилища в другое", + ], + "Source storage id" => [ + 0 => "Идентификатор хранилища источника", + ], + "Target storage id" => [ + 0 => "Идентификатор целевого хранилища", + ], + "Migrate" => [ + 0 => "Мигрировать", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Обновляет только базу данных. Вы должны вручную переместить файлы в новое место. Используйте ноль(0) для указания локального хранилища.", + ], + "social networks" => [ + 0 => "социальные сети", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Для этого вам необходимы <a href=\"https://developers.facebook.com/\" target=\"_blank\">инструменты разработчика Facebook</a>.", + ], + "Facebook app id" => [ + 0 => "ID Facebook app", + ], + "Facebook app secret" => [ + 0 => "Секретный ключ Facebook app", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Для этого вам необходимы <a href=\"https://apps.twitter.com\" target=\"_blank\">инструменты разработчика Twitter</a>.", + ], + "Twitter API key" => [ + 0 => "Ключ Twitter API", + ], + "Twitter API secret" => [ + 0 => "Секретный ключ Twitter API", + ], + "Twitter account" => [ + 0 => "Аккаунт в Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Для этого вам необходимы <a href=\"https://cloud.google.com/console\" target=\"_blank\">инструменты разработчика Google</a>.", + ], + "Google client id" => [ + 0 => "ID клиента Google", + ], + "Google client secret" => [ + 0 => "Секретный ключ Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Для этого вам необходимы <a href=\"http://vk.com/dev\" target=\"_blank\">инструменты разработчика ВКонтакте</a>.", + ], + "VK client id" => [ + 0 => "ID клиента ВКонтакте", + ], + "VK client secret" => [ + 0 => "Секретный ключ клиента ВКонтакте", + ], + "%s spam protection" => [ + 0 => "защита от спама %s", + ], + "user generated content" => [ + 0 => "загрузках пользователей", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "Включите, чтобы использовать %i, для блокирования спама на %c.", + ], + "%s API key" => [ + 0 => "Ключ API %s", + ], + "user signup" => [ + 0 => "регистрация", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Для этого вам необходим <a href=\"%s\" target=\"_blank\">ключ reCAPTCHA</a>.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Каждая версия reCAPTCHA требует отдельных ключей. Пожалуйста, не забудьте обновить ключи при смене версии.", + ], + "%s site key" => [ + 0 => "%s ключ сайта", + ], + "%s secret key" => [ + 0 => "%s секретный ключ", + ], + "reCAPTCHA threshold" => [ + 0 => "Порог срабатывания reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Через сколько неудачных попыток показывать reCAPTCHA? Укажите ноль(0), чтобы всегда показывать reCAPTCHA.", + ], + "Force %s on contact page" => [ + 0 => "Принудительная %s на странице обратной связи", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Включите, чтобы всегда показывать %s на странице обратной связи.", + ], + "Comments API" => [ + 0 => "API системы комментариев", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API работает с %s.", + ], + "Disqus shortname" => [ + 0 => "Идентификатор Disqus", + ], + "%s public key" => [ + 0 => "%s публичный ключ", + ], + "Comment code" => [ + 0 => "Код для системы комментариев", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook или любая система на ваш выбор. Она будет использована при просмотре изображения.", + ], + "Analytics code" => [ + 0 => "Код для сбора статистики", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics или система сбора статистики на ваш выбор. Этот код будет добавлен в \"подвал\" темы.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Чтобы получить подробную информацию об API, обратитесь к <a %s>документации</a>", + ], + "API v1 key" => [ + 0 => "Ключ API v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Используйте этот ключ с <a %s>API v1</a>.", + ], + "Plugin route" => [ + 0 => "Маршрут плагина", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "Включите, чтобы показывать инструкцию по использованию плагина в %u. Ссылка на них будет добавлена в меню %s. Эта настройка не влияет на администраторов.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "Установите собственный адрес для %p. Вам необходимо будет вручную указать в этом адресе %s.", + ], + "Cookie law compliance" => [ + 0 => "Соответствие закону Евросоюза о cookies", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Включите, чтобы отображать информационное сообщение об использовании cookies, в соответствии с законом Евросоюза о cookies. Примечание: Вы обязаны включать эту опцию только в том случае случае, если сайт расположен в ЕС и вы используете cookies для отслеживания посетителей.", + ], + "Save changes" => [ + 0 => "Сохранить изменения", + ], + "Check the errors to proceed." => [ + 0 => "Перед тем как продолжить, проверьте правильность заполнения.", + ], + "Play GIF" => [ + 0 => "Воспроизвести GIF", + ], + "Load full resolution" => [ + 0 => "Загрузить полную версию", + ], + "Added to %a and categorized in %c" => [ + 0 => "Добавлено к %a в категорию %c", + ], + "Added to %s" => [ + 0 => "Добавлено к %s", + ], + "Uploaded to %s" => [ + 0 => "Загружено в %s", + ], + "Uploaded %s" => [ + 0 => "Загружено %s", + ], + "Less Exif data" => [ + 0 => "Свернуть Exif", + ], + "More Exif data" => [ + 0 => "Развернуть Exif", + ], + "Share image" => [ + 0 => "Поделиться", + ], + "Album ID" => [ + 0 => "ID альбома", + ], + "In this album" => [ + 0 => "В этом альбоме", + ], + "Upload and share your images." => [ + 0 => "Загружайте и делитесь изображениями.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Начните загружать изображения простым перетаскиванием в любое место окна прямо сейчас. Ограничение на размер изображения %s. После загрузки, Вам будут доступны прямые ссылки, BB-коды и миниатюры.", + ], + "Start uploading" => [ + 0 => "Начать загрузку", + ], + "Sign up to unlock all the features" => [ + 0 => "Зарегистрируйтесь, чтобы получить больше возможностей.", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Управляйте аккаунтом, создавайте альбомы, изменяйте свой профиль и многое другое.", + ], + "Sign in with your account" => [ + 0 => "Войдите в свою учетную запись", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "У вас ещё нет аккаунта? <a href='%s'>Зарегистрируйтесь</a> сейчас!", + ], + "Logged out" => [ + 0 => "Выход из системы", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Успешный выход из системы. До скорых встреч на %s.", + ], + "Go to homepage" => [ + 0 => "На главную", + ], + "Website under maintenance" => [ + 0 => "Сайт находится в режиме технического обслуживания.", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Мы выполняем запланированные задачи по обслуживанию сайта. Попробуйте зайти позже.", + ], + "This content is password protected." => [ + 0 => "Содержимое защищено паролем", + ], + "Please enter your password to continue." => [ + 0 => "Пожалуйста, введите пароль и нажмите Enter.", + ], + "Send" => [ + 0 => "Отправить", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Добавьте возможность загружать изображение на ваш сайт, блог или форум установив наш плагин. Он предоставляет возможность загружать изображение путем установки кнопки, которая позволит вашим пользователям напрямую загружать изображения на наш сервис и автоматически предоставит коды для вставки. Плагин включает все возможности, такие как загрузка через перетаскивание, удаленная загрузка, изменение размера изображений и другие.", + ], + "Supported software" => [ + 0 => "Поддерживаемое ПО", + ], + "supported software" => [ + 0 => "поддерживаемое ПО", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Плагин работает на любом сайте с редактируемым содержимым и для %s, он размещает кнопку рядом с панелью управления редактором, что позволит избежать необходимости внесения дополнительных изменений.", + ], + "Add it to your website" => [ + 0 => "Добавить на сайт", + ], + "options" => [ + 0 => "настройки", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Вставьте код плагина в HTML-код вашего сайта (желательно в раздел head). Плагин имеет множество %o для лучшей интеграции с вашим сайтом.", + ], + "Basic options" => [ + 0 => "Основные настройки", + ], + "Color palette" => [ + 0 => "Палитра цветов", + ], + "Button color scheme" => [ + 0 => "Цветовая схема кнопки", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Коды для встраивания, которые будут автоматически вставлены в редактор", + ], + "Sibling selector" => [ + 0 => "Селектор элемента", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Селектор элемента, рядом с котором будет размещена кнопка", + ], + "Sibling position" => [ + 0 => "Позиция элемента", + ], + "After" => [ + 0 => "После", + ], + "Before" => [ + 0 => "Перед", + ], + "Position relative to sibling element" => [ + 0 => "Позиция относительно элемента", + ], + "Advanced options" => [ + 0 => "Дополнительные настройки", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Плагин имеет большое число дополнительных настроек позволяющих осуществить бесшовную интеграцию с вашим проектом. Вы можете задать собственный HTML, CSS, собственную палитру цветов, устанавливать наблюдатели за изменениями и многое другое. Более подробную информацию об этих дополнительных настройках вы можете посмотреть в исходном коде плагина или в %d.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "У вас нет прав на доступ к данной странице или ссылка устарела.", + ], + "Search results" => [ + 0 => "Результаты поиска", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Вы действительно хотите удалить данного пользователя? Это действие необратимо.", + ], + "Delete user" => [ + 0 => "Удалить", + ], + "Register date" => [ + 0 => "Дата регистрации", + ], + "Registration IP" => [ + 0 => "IP-адрес при регистрации", + ], + "Valid" => [ + 0 => "Подтвержденный", + ], + "Banned" => [ + 0 => "Заблокирован", + ], + "Awaiting email" => [ + 0 => "Ожидает сообщения", + ], + "Awaiting confirmation" => [ + 0 => "Ожидает подтверждения", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "от %i до %f знаков<br>Буквы, цифры и \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Автоматически удалять загрузки", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Эта настройка по-умолчанию будет примется ко всем загрузкам. Вы можете выбрать другое значение при каждой загрузке.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Сохранять <a %s>данные Exif</a> при загрузке", + ], + "Newsletter" => [ + 0 => "Рассылка", + ], + "Send me emails with news about %s" => [ + 0 => "Отправлять мне информацию и новости %s", + ], + "Content settings" => [ + 0 => "Настройки содержимого", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Показывать небезопасное содержимое (загруженное другими пользователями) в списках", + ], + "Language" => [ + 0 => "Язык", + ], + "Timezone" => [ + 0 => "Часовой пояс", + ], + "Current password" => [ + 0 => "Текущий пароль", + ], + "Enter your current password" => [ + 0 => "Введите ваш текущий пароль", + ], + "New password" => [ + 0 => "Новый пароль", + ], + "Confirm new password" => [ + 0 => "Подтвердите пароль", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Добавьте пароль, чтобы иметь возможность входить с использованием имени пользователя или адреса электронной почты.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "У этого пользователя не установлен пароль. Добавьте его через эту форму.", + ], + "Enter your password" => [ + 0 => "Введите ваш пароль", + ], + "Confirm password" => [ + 0 => "Подтвердите пароль", + ], + "Re-enter your password" => [ + 0 => "Повторите пароль", + ], + "Upload new image" => [ + 0 => "Загрузить изображение", + ], + "Delete existing image" => [ + 0 => "Удалить", + ], + "Make my profile and identity totally private" => [ + 0 => "Сделать мой профиль полностью закрытым", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Включите, если вы хотите быть анонимным пользователем", + ], + "This is your real name, not your username." => [ + 0 => "Это ваше настоящее имя, а не имя пользователя.", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.ru", + ], + "Bio" => [ + 0 => "О себе", + ], + "Tell us a little bit about you" => [ + 0 => "Расскажите нам немного о себе", + ], + "User has no connections." => [ + 0 => "У пользователя нет связей с другими аккаунтами.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Вы действительно хотите отвязать %s от этого аккаунта?", + ], + "This account is connected to %s" => [ + 0 => "Этот аккаунт связан с %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Вы действительно хотите отвязать ваш аккаунт %s?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Будет выполнен выход из системы и вы больше не сможете входить через аккаунт %s.", + ], + "Your account is connected to %s" => [ + 0 => "Ваш аккаунт связан с %s", + ], + "disconnect" => [ + 0 => "отвязать", + ], + "Connect %s" => [ + 0 => "Связать с %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Чувствуйте себя как дома и наслаждайтесь моими изображениями и альбомами.", + ], + "Button" => [ + 0 => "Кнопка", + ], + "View all my images" => [ + 0 => "Показать мои изображения", + ], + "Login" => [ + 0 => "Вход", + ], + "Already have an account? %s now." => [ + 0 => "Уже есть аккаунт? %s сейчас.", + ], + "resend account activation" => [ + 0 => "Повторить отправку сообщения для активации аккаунта", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Если вы уже зарегистрировались, возможно Вам необходимо обратиться к %s , чтобы активировать аккаунт.", + ], + "You can also %s." => [ + 0 => "Вы также можете %s.", + ], + "I'm at least %s years old" => [ + 0 => "Мне %s лет или больше.", + ], + "terms" => [ + 0 => "правила", + ], + "privacy policy" => [ + 0 => "политики конфиденциальности", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Я согласен с %terms_link и %privacy_link", + ], + "Upload profile background" => [ + 0 => "Загрузить фон профиля", + ], + "Change background" => [ + 0 => "Изменить фон", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Фон профиля будет удален. Это действие необратимо. Вы действительно хотите удалить фон профиля?", + ], + "Delete background" => [ + 0 => "Удалить фон", + ], + "Follower" => [ + 0 => "Подписчик", + 1 => "Подписчика", + 2 => "Подписчиков", + ], + "Follow" => [ + 0 => "Подписаться", + ], + "You have been forbidden to use this website." => [ + 0 => "Вам запрещено использовать этот сайт.", + ], + "Plugin" => [ + 0 => "Плагин", + ], + "Page %s" => [ + 0 => "Страница %s", + ], + "General questions/comments" => [ + 0 => "Общие вопросы/комментарии", + ], + "DMCA complaint" => [ + 0 => "DMCA жалоба", + ], + "Invalid message" => [ + 0 => "Неверное сообщение", + ], + "Invalid subject" => [ + 0 => "Неверная тема", + ], + "Mail error" => [ + 0 => "Ошибка электронной почты", + ], + "Message sent" => [ + 0 => "Сообщение отправлено", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Сообщение успешно отправлено. Мы ответим на него в кратчайшие сроки.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Заполните форму, если Вы хотите отправить сообщение.", + ], + "Your name" => [ + 0 => "Ваше имя", + ], + "Subject" => [ + 0 => "Тема", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Если вы продолжите, все сделаные вами изменения будут потеряны.", + ], + "Changes saved successfully." => [ + 0 => "Изменения успешно сохранены.", + ], + "Go back to form" => [ + 0 => "Вернуться к форме", + ], + "continue anyway" => [ + 0 => "все равно продолжить", + ], + "Saving" => [ + 0 => "Сохранение", + ], + "Sending" => [ + 0 => "Отправка", + ], + "Confirm action" => [ + 0 => "Подтвердите действие", + ], + "information" => [ + 0 => "информация", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/sk.po.cache.php b/app/.cache/languages/sk.po.cache.php new file mode 100644 index 0000000..2806862 --- /dev/null +++ b/app/.cache/languages/sk.po.cache.php @@ -0,0 +1,2594 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2015-05-28 17:49+0000', + 'PO-Revision-Date' => '2015-05-28 17:49+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'sk', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Neplatný e-mail", + ], + "Invalid username" => [ + 0 => "Neplatné užívateľské meno", + ], + "Invalid password" => [ + 0 => "Neplatné heslo", + ], + "Invalid website mode" => [ + 0 => "Neplatný režim stránky", + ], + "From email address" => [ + 0 => "Z e-mailovej adresy", + ], + "Sender email for emails sent to users." => [ + 0 => "E-mail odosielateľa uvedený v e-mailoch odoslaných užívateľom.", + ], + "Incoming email address" => [ + 0 => "Príchodzia e-mailová adresa", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Príjemca pre kontaktovanie v prípade systémových varovaní.", + ], + "Website mode" => [ + 0 => "Mód webu", + ], + "You can switch the website mode anytime." => [ + 0 => "Vždy môžeš zmeniť mód webstránky.", + ], + "Community" => [ + 0 => "Skupina", + ], + "Personal" => [ + 0 => "Súkromné", + ], + "Untitled" => [ + 0 => "Nepomenované", + ], + "%s's images" => [ + 0 => "%s obrázky", + ], + "Duplicated upload" => [ + 0 => "Duplicitný záznam", + ], + "Private upload" => [ + 0 => "Súkromné nahrávánie", + ], + "view" => [ + 0 => "zobrazenie", + 1 => "zobrazenia", + 2 => "zobrazenia", + 3 => "zobrazenia", + ], + "image" => [ + 0 => "obrázok", + 1 => "obrázkov", + 2 => "obrázkov", + 3 => "obrázky", + ], + "Can't verify storage credentials." => [ + 0 => "Nemôžeme overiť vaše prihlasovacie údaje.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Veľkosť úložiska nemôže byť menšia ako tá, ktorú používáte teraz (%s).", + ], + "Unlimited" => [ + 0 => "Neobmedzené", + ], + "used" => [ + 0 => "využívané", + ], + "year" => [ + 0 => "rok", + 1 => "rokov", + 2 => "rokov", + 3 => "roky", + ], + "month" => [ + 0 => "mesiac", + 1 => "mesiacov", + 2 => "mesiacov", + 3 => "mesiacov", + ], + "week" => [ + 0 => "týždeň", + 1 => "týždňov", + 2 => "týždňov", + 3 => "týždňov", + ], + "day" => [ + 0 => "deň", + 1 => "dní", + 2 => "dní", + 3 => "dní", + ], + "hour" => [ + 0 => "hodina", + 1 => "hodín", + 2 => "hodín", + 3 => "hodín", + ], + "minute" => [ + 0 => "minúta", + 1 => "minút", + 2 => "minút", + 3 => "minút", + ], + "second" => [ + 0 => "sekunda", + 1 => "sekúnd", + 2 => "sekúnd", + 3 => "sekúnd", + ], + "%s ago" => [ + 0 => "pred %s", + ], + "moments ago" => [ + 0 => "pred pár okamžikmi", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Databázový systém je zastaralý. Potrebujete spustiť <a href=\"%s\">aktualizačný</a> nástroj.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Na stránke prebieha údržba. Na ukončenie údržby potrebujete ísť do <a href=\"%s\">Administrácia > Nastavenia</a>.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Dashboard > Settings > Email</a> to fix this." => [ + 0 => "Nezmenil ste si nastavenie predvoleného e-mailu. Choďte do <a href='%s'>Administrácia > Nastavenia > E-mail</a> pre zmenu.", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this cookie policy." => [ + 0 => "Používame vlastné a treťostranné cookies na vylepšenie prezerania a našich služieb. Ak budete pokračovať používať našu stránku, rozumiete používaniu týchto cookies.", + ], + "You have been forbidden to use this website." => [ + 0 => "Bol vám zamedzený prístup na stránku.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Prezri si a objav všetky moje zdielané obrázky a albumy.", + ], + "View all my images" => [ + 0 => "Zobraz všetky moje obrázky", + ], + "That page doesn't exist" => [ + 0 => "Táto stránka neexistuje", + ], + "Forgot password?" => [ + 0 => "Zabudnuté heslo?", + ], + "Reset password" => [ + 0 => "Resetovať heslo", + ], + "Resend account activation" => [ + 0 => "Znovu zaslať aktivačné informácie", + ], + "Add your email address" => [ + 0 => "Pridajte vašu e-mailovú adresu.", + ], + "Email changed" => [ + 0 => "E-mail zmenený", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "Kód reCAPTCHA nebol opísaný správne.", + ], + "Invalid Username/Email" => [ + 0 => "Neplatné uživateľské meno alebo e-mail.", + ], + "User doesn't have an email." => [ + 0 => "Užívateľ nemá žiadnu e-mailovú adresu.", + ], + "Request denied" => [ + 0 => "Požiadavka zamietnutá", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Pre použitie tejto funkcie si musíte svoj účet najprv aktivovať.", + ], + "Account already activated" => [ + 0 => "Účet bol už aktivovaný", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Skúste to prosím neskôr. E-mail by mal doraziť do 15 minút.", + ], + "Reset your password at %s" => [ + 0 => "Resetujte si svoje heslo na %s", + ], + "Confirmation required at %s" => [ + 0 => "Je vyžadovaný súhlas na %s", + ], + "Welcome to %s" => [ + 0 => "Vitajte na %s", + ], + "Passwords don't match" => [ + 0 => "Heslá sa nezhodujú", + ], + "Email already being used" => [ + 0 => "E-mailová adresa už v systéme existuje", + ], + "Check the errors in the form to continue." => [ + 0 => "Aby ste mohli pokračovať, skontrolujte chyby vo formulári.", + ], + "Most recent" => [ + 0 => "Najnovšie", + ], + "Oldest" => [ + 0 => "Najstaršie", + ], + "Most viewed" => [ + 0 => "Najsledovanejšie", + ], + "Share" => [ + 0 => "Zdielať", + ], + "Full info" => [ + 0 => "Kompletné informácie", + ], + "%a album hosted in %w" => [ + 0 => "%a album hosťovaný na %w", + ], + "Stats" => [ + 0 => "Štatistiky", + ], + "Images" => [ + 0 => "Obrázky", + ], + "Albums" => [ + 0 => "Albumy", + ], + "Users" => [ + 0 => "Užívatelia", + ], + "Settings" => [ + 0 => "Nastavenia", + ], + "Chevereto version" => [ + 0 => "Verzia chevereta", + ], + "update" => [ + 0 => "aktualizácia", + ], + "check for updates" => [ + 0 => "Skontrolovať aktualizácie", + ], + "PHP version" => [ + 0 => "PHP verzia", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL verzia", + ], + "MySQL server info" => [ + 0 => "Informácie o MySQL servere", + ], + "GD Library" => [ + 0 => "GDL knihovňa", + ], + "File uploads" => [ + 0 => "Nahraných súborov", + ], + "Enabled" => [ + 0 => "Zapnuté", + ], + "Disabled" => [ + 0 => "Vypnuté", + ], + "Max. upload size" => [ + 0 => "Max. veľkosť nahrávania", + ], + "Max. post size" => [ + 0 => "Max. veľkosť zasielania", + ], + "Max. execution time" => [ + 0 => "Max. čas požiadavky", + ], + "%d second" => [ + 0 => "%d sekunda", + 1 => "%d sekúnd", + 2 => "%d sekúnd", + 3 => "%d sekúnd", + ], + "Memory limit" => [ + 0 => "Limit pamäte", + ], + "Website" => [ + 0 => "Webová stránka", + ], + "Content" => [ + 0 => "Obsah", + ], + "Listings" => [ + 0 => "Výpis", + ], + "Image upload" => [ + 0 => "Nahrávánie obrázkov", + ], + "Categories" => [ + 0 => "Kategórie", + ], + "Flood protection" => [ + 0 => "Ochrana proti zahlteniu", + ], + "Theme" => [ + 0 => "Téma", + ], + "Homepage" => [ + 0 => "Domovská stránka", + ], + "Banners" => [ + 0 => "Banery", + ], + "System" => [ + 0 => "Systém", + ], + "Languages" => [ + 0 => "Jazyky", + ], + "External storage" => [ + 0 => "Externé úložisko", + ], + "Email" => [ + 0 => "E-mail", + ], + "Social networks" => [ + 0 => "Sociálne siete", + ], + "External services" => [ + 0 => "Externé služby", + ], + "IP bans" => [ + 0 => "IP bany", + ], + "Additional settings" => [ + 0 => "Ďalšie nastavenia", + ], + "Local" => [ + 0 => "Miestne", + ], + "External" => [ + 0 => "Externé", + ], + "All" => [ + 0 => "Všetky", + ], + "search content" => [ + 0 => "vyhľadať obsah", + ], + "Invalid website name" => [ + 0 => "Neplatné meno webovej stránky", + ], + "Invalid language" => [ + 0 => "Neplatný jazyk", + ], + "Invalid timezone" => [ + 0 => "Neplatná časová zóna", + ], + "Invalid value" => [ + 0 => "Neplatná hodnota", + ], + "Invalid upload storage mode" => [ + 0 => "Neplatný spôsob nahrávania do úložiska", + ], + "Invalid upload filenaming" => [ + 0 => "Neplatné pomenovanie nahrávaných súborov", + ], + "Invalid thumb width" => [ + 0 => "Nesprávna šířka miniatúry", + ], + "Invalid thumb height" => [ + 0 => "Nesprávna výška miniatúry", + ], + "Invalid medium width" => [ + 0 => "Nesprávna šírka strednej zmenšeniny", + ], + "Invalid theme" => [ + 0 => "Nesprávna téma", + ], + "Invalid theme tone" => [ + 0 => "Neplatný tón témy", + ], + "Invalid theme main color" => [ + 0 => "Neplatná základná farba témy", + ], + "Invalid theme top bar color" => [ + 0 => "Neplatná farba horného menu", + ], + "Invalid theme top bar button color" => [ + 0 => "Neplatná farba tlačidla v hornom menu", + ], + "Invalid theme image listing size" => [ + 0 => "Neplatná veľkosť náhľadového obrázku témy", + ], + "Invalid user id" => [ + 0 => "Neplatné ID užívateľa", + ], + "Invalid email mode" => [ + 0 => "Nesprávny e-mailový mód", + ], + "Invalid SMTP port" => [ + 0 => "Nesprávny SMTP port", + ], + "Invalid SMTP security" => [ + 0 => "Neplatné zabezpečenie SMTP", + ], + "Invalid personal mode user ID" => [ + 0 => "Neplatné ID užívateľa v súkromnom móde", + ], + "Invalid or reserved route" => [ + 0 => "Neplatná alebo rezervovaná cesta", + ], + "Invalid website privacy mode" => [ + 0 => "Neplatný režim súkromia stránky", + ], + "Invalid website content privacy mode" => [ + 0 => "Neplatný režim bezpečnosti stránky", + ], + "Invalid homepage style" => [ + 0 => "Neplatný štýl domovskej stránky", + ], + "Invalid homepage call to action button color" => [ + 0 => "Neplatná farba tlačidla akcie domovskej stránky", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Neplatná funkcia tlačidla akcie domovskej stránky", + ], + "Invalid upload image path" => [ + 0 => "Neplatná cesta nahrávaného obrázka", + ], + "Invalid call to action URL" => [ + 0 => "Nesprávna URL akcie", + ], + "Max. allowed %s" => [ + 0 => "Max. povolené %s", + ], + "Invalid SMTP server" => [ + 0 => "Nesprávny SMTP server", + ], + "Invalid SMTP username" => [ + 0 => "Nesprávne SMTP užívateľské meno", + ], + "Invalid URL" => [ + 0 => "Neplatná URL", + ], + "Top users" => [ + 0 => "Top užívatelia", + ], + "Dashboard" => [ + 0 => "Administrácia", + ], + "Explore" => [ + 0 => "Preskúmať", + ], + "About" => [ + 0 => "O ...", + ], + "Embed codes" => [ + 0 => "Kódy na vloženie", + ], + "Image ID" => [ + 0 => "ID obrázka", + ], + "Uploader IP" => [ + 0 => "IP adresa autora", + ], + "Ban IP" => [ + 0 => "IP bany", + ], + "IP already banned" => [ + 0 => "IP je už banovaná", + ], + "Upload date" => [ + 0 => "Dátum nahrávania", + ], + "%s images" => [ + 0 => "%s obrázkov", + ], + "Image %i in %a album" => [ + 0 => "Obrázok %i v %a albume", + ], + "Image %i in %c category" => [ + 0 => "Obrázok %i v %c kategórii", + ], + "Image %i hosted in %w" => [ + 0 => "Obrázok %i hosťovaný na %w", + ], + "Login needed" => [ + 0 => "Vyžadované prihlásenie", + ], + "IP address already banned" => [ + 0 => "IP adresa je už banovaná", + ], + "Missing values" => [ + 0 => "Chýbajú hodnoty", + ], + "Invalid role" => [ + 0 => "Neplatná úloha", + ], + "Username already being used" => [ + 0 => "Užívateľské meno je obsadené", + ], + "%s has been disconnected." => [ + 0 => "%s bol odpojený.", + ], + "Wrong Username/Email password combination" => [ + 0 => "Nesprávna kombinácia prihlasovacieho mena alebo e-mailu a hesla", + ], + "Sign in" => [ + 0 => "Prihlásiť", + ], + "Logged out" => [ + 0 => "Odhlásené", + ], + "Image search results for %s" => [ + 0 => "Výsledky vyhľadávania obrázku pre %s", + ], + "Album search results for %s" => [ + 0 => "Výsledky vyhľadávania albumu pre %s", + ], + "User search results for %s" => [ + 0 => "Výsledky vyhľadávania užívateľa pre %s", + ], + "Search" => [ + 0 => "Hľadať", + ], + "Account" => [ + 0 => "Účet", + ], + "Profile" => [ + 0 => "Profil", + ], + "Password" => [ + 0 => "Heslo", + ], + "Linked accounts" => [ + 0 => "Prepojené účty", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "E-mail s inštrukciami aktivácie bol odoslaný na %s", + ], + "Invalid name" => [ + 0 => "Neplatné meno", + ], + "Invalid website" => [ + 0 => "Neplatná webová stránka", + ], + "Wrong password" => [ + 0 => "Neplatné heslo", + ], + "Use a new password" => [ + 0 => "Použijte nové heslo", + ], + "Changes have been saved." => [ + 0 => "Zmeny boly uložené.", + ], + "Password has been changed" => [ + 0 => "Heslo bolo zmenené", + ], + "Password has been created." => [ + 0 => "Heslo bolo vytvorené.", + ], + "Wrong Username/Email values" => [ + 0 => "Nesprávne hodnoty prihlasovacieho mena alebo e-mailu", + ], + "Settings for %s" => [ + 0 => "Nastavenia pre %s", + ], + "Create account" => [ + 0 => "Vytvoriť účet", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albumy na %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) na %w", + ], + "%s's Images" => [ + 0 => "%s Obrázky", + ], + "%s's Albums" => [ + 0 => "%s Albumy", + ], + "Close" => [ + 0 => "Zavrieť", + ], + "Advanced search" => [ + 0 => "Pokročilé vyhľadávanie", + ], + "Random" => [ + 0 => "Náhodne", + ], + "Notices (%s)" => [ + 0 => "Oznamy (%s)", + ], + "Upload" => [ + 0 => "Nahrať", + ], + "Sign in with another account" => [ + 0 => "Prihlásiť sa s iným účtom", + ], + "or" => [ + 0 => "alebo", + ], + "Username or Email address" => [ + 0 => "Užívateľské meno alebo e-mailová adresa", + ], + "Keep me logged in" => [ + 0 => "Zostať prihlásený/a", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Nemáte účet? <a href='%s'>Registrujte sa</a>.", + ], + "Sign up with another account" => [ + 0 => "Zaregistrovať sa iným účtom", + ], + "Email address" => [ + 0 => "E-mailová adresa", + ], + "Username" => [ + 0 => "Užívateľské meno", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "Registráciou vyjadrujete súhlas s našimi <a href=\"%s\">Podmienkami používania</a>", + ], + "My Profile" => [ + 0 => "Môj profil", + ], + "Sign out" => [ + 0 => "Odhlásiť", + ], + "Terms of service" => [ + 0 => "Podmienky používania", + ], + "Privacy" => [ + 0 => "Súkromie", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Zaznamenali sme pokus o zmenu e-mailu vašeho <a href=\"%u\">%n</a> účtu na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Pre dokončenie musíte <a href=\"%s\">aktivovať váš e-mail.</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternatívne môžete skopírovať a vložiť URL adresu priamo do adresného riadku vašeho prehliadača: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Ak ste žiadosť o zmenu neodosielali, stačí keď budete túto správu ignorovať.", + ], + "This request was made from IP: %s" => [ + 0 => "Táto požiadavka bola vytvorená z IP adresy: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Obdržali sme žiadosť o registráciu %n účtu na %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Pre dokončenie musíte <a href=\"%s\">aktivovať váš účet</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Obdržali sme žiadosť o reset hesla k vašemu <a href=\"%u\">%n</a> účtu.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Pre resetovanie hesla <a href=\"%s\">kliknite na tento odkaz</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Ahoj %n, vitaj na %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Teraz keď je váš účet konečne pripravený k používaniu, môžete si naplno užívať nahrávanie obrázkov, vytváranie albumov, nastavovať ich súkromie a veľa ďalších vlastností, ktoré určite skoro objavíte!", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Mimochodom, tu sa nachádza vaša výnimočná profilová stránka: <a href=\"%u\">%n</a>. Vstúpte a prenstavte si ju podľa prianí!.", + ], + "Thank you for joining" => [ + 0 => "Ďakujeme, že ste sa k nám pridali", + ], + "This email was sent from %w %u" => [ + 0 => "Tento e-mail bol odoslaný od %w %u", + ], + "General questions/comments" => [ + 0 => "Základné dotazy a komentáre", + ], + "DMCA complaint" => [ + 0 => "Nahlásiť porušenie autorského zákona", + ], + "Invalid message" => [ + 0 => "Neplatná správa", + ], + "Invalid subject" => [ + 0 => "Neplatný predmet", + ], + "Invalid reCAPTCHA" => [ + 0 => "Nesprávne opísaný kód reCAPTCHA", + ], + "Mail error" => [ + 0 => "Chyba e-mailu", + ], + "Message sent" => [ + 0 => "Správa odoslaná", + ], + "We will be in touch soon." => [ + 0 => "Čoskoro dovidenia.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Ak chcete odoslať správu, vyplňte prosím formulár nižšie.", + ], + "Name" => [ + 0 => "Meno", + ], + "Your name" => [ + 0 => "Vaše meno", + ], + "Your email address" => [ + 0 => "Vaša e-mailová adresa", + ], + "Subject" => [ + 0 => "Predmet", + ], + "Message" => [ + 0 => "Správa", + ], + "Send message" => [ + 0 => "Odoslať správu", + ], + "cancel" => [ + 0 => "zrušiť", + ], + "Drag and drop images here to upload" => [ + 0 => "Obrázky potiahnite sem.", + ], + "Select the images to upload" => [ + 0 => "Zvoľte obrázky na nahratie", + ], + "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "Obrázky môžete tiež <a data-trigger=\"anywhere-upload-input\">vybrať z vašeho zariadenia</a> alebo <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">zadať internetovú adresu URL</a>.", + ], + "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." => [ + 0 => "Môžete sa tiež <a data-trigger=\"anywhere-upload-input-camera\">odfotiť</a>.", + ], + "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" => [ + 0 => "Nahrávam <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">obrázkov</span>", + ], + "complete" => [ + 0 => "hotovo", + ], + "The queue is being uploaded. It will take just a few seconds to complete." => [ + 0 => "Obrázky sa práve nahrávajú. Bude to trvať iba pár sekúnd.", + ], + "Upload complete" => [ + 0 => "Nahrávanie dokončené", + ], + "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." => [ + 0 => "Obsah bol pridaný do <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">verejného zoznamu</a>. Môžete <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">vytvoriť album</a> alebo <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">presunúť <span data-text=\"queue-objects\">obrázky</span></a> do iného albumu.", + ], + "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." => [ + 0 => "Môžete si tiež <a href=\"%s\">vytvoriť účet</a> alebo sa <a href=\"%l\">prihlásiť</a>. Pomocou tohoto si budete môcť uchovávať a spravovať vaše budúce nahrané obrázky pod svojim účtom.", + ], + "No <span data-text=\"queue-objects\">images</span> have been uploaded" => [ + 0 => "Žiadne <span data-text=\"queue-objects\">obrázky</span> neboli nahrané", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Bohužiaľ sa vyskytli nejaké chyby a server nemohol dokončiť vaše požiadavky.", + ], + "Select category" => [ + 0 => "Vyberte kategóriu", + ], + "Change upload privacy" => [ + 0 => "Zmeniť súkromie", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Označte ak nahrávaný súbor nieje vhodný pre deti a mladistvých.", + ], + "Not family safe upload" => [ + 0 => "Obrázok nieje vhodný pre deti a mladistvých", + ], + "Uploading" => [ + 0 => "Nahrávam", + ], + "cancel remaining" => [ + 0 => "zrušiť zostávajúce", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Upozornenie: Niekteré obrázky nejde nahrať.", + ], + "learn more" => [ + 0 => "dozvedieť sa viac", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Skontrolujte <a data-modal=\"simple\" data-target=\"failed-upload-result\">chybovú správu</a>, kde sa dozviete viac informácií.", + ], + "max" => [ + 0 => "max", + ], + "close" => [ + 0 => "zavrieť", + ], + "Add image URLs" => [ + 0 => "Pridať URL obrázka", + ], + "Add the image URLs here" => [ + 0 => "Pridajte URL obrázka tu", + ], + "Create album" => [ + 0 => "Vytvoriť album", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Nahrané obrázky budú presunuté do tohoto novo vytvoreného albumu. Samozrejme, môžete presunúť obrázky i do <a class=\"modal-switch\" data-switch=\"move-existing-album\">existujúceho albumu</a>.", + ], + "Move to album" => [ + 0 => "Presunúť do albumu", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Vyberte existujúci album na nahranie obrázkov. Samozrejme, môžete tiež <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť album</a> a nahrať obrázky do neho.", + ], + "Error report" => [ + 0 => "Chybová správa", + ], + "album" => [ + 0 => "album", + 1 => "albumy", + 2 => "albumy", + 3 => "albumy", + ], + "Links" => [ + 0 => "Odkazy", + ], + "Viewer links" => [ + 0 => "Odkaz s náhľadom", + ], + "Direct links" => [ + 0 => "Priamy odkaz", + ], + "HTML Codes" => [ + 0 => "HTML kódy", + ], + "HTML image" => [ + 0 => "HTML obrázok", + ], + "HTML full linked" => [ + 0 => "HTML linka plný náhľad", + ], + "HTML medium linked" => [ + 0 => "stredne veľký obrázok s odkazom na originál", + ], + "HTML thumbnail linked" => [ + 0 => "miniatúra obrázku s odkazom na originál", + ], + "BBCodes" => [ + 0 => "do fóra (BBCode)", + ], + "BBCode full" => [ + 0 => "BBkód plný náhľad", + ], + "BBCode full linked" => [ + 0 => "BBkód linka plný náhľad", + ], + "BBCode medium linked" => [ + 0 => "Kód do fóra so strednou zmenšeninou obrázku a odkazom.", + ], + "BBCode thumbnail linked" => [ + 0 => "miniatúra obrázku s odkazom na originál", + ], + "All these words" => [ + 0 => "Všetky tieto slová", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Zadajte popisné slová: červený trpaslík", + ], + "This exact word or phrase" => [ + 0 => "Presné slovo alebo fráza", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Zadajte presný výraz do úvodzoviek: \"červený trpaslík\"", + ], + "None of these words" => [ + 0 => "Žiadne zo slov", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Zadajte znak mínus pred slová, ktoré si neželáte: -seriál -\"chladná hviezda\"", + ], + "Category" => [ + 0 => "Kategória", + ], + "Storage" => [ + 0 => "Úložisko", + ], + "Uploader IP address" => [ + 0 => "IP adresa autora", + ], + "Album name" => [ + 0 => "Meno albumu", + ], + "Untitled album" => [ + 0 => "Nepomenovaný album", + ], + "move to existing album" => [ + 0 => "presunúť do existujúceho albumu", + ], + "Album description" => [ + 0 => "Popis albumu", + ], + "optional" => [ + 0 => "voliteľné", + ], + "Brief description of this album" => [ + 0 => "Stručný popis tohoto albumu", + ], + "Album Privacy" => [ + 0 => "Súkromné albumy", + ], + "Who can view this content" => [ + 0 => "Kto môže zobraziť tento obsah", + ], + "Public" => [ + 0 => "Verejné", + ], + "Private (just me)" => [ + 0 => "Súkromné (iba ja)", + ], + "Private (anyone with the link)" => [ + 0 => "Súkromné (pre každého s linkou)", + ], + "No category" => [ + 0 => "Žiadna kategória", + ], + "Category name" => [ + 0 => "Meno kategórie", + ], + "URL key" => [ + 0 => "URL kľúč", + ], + "Category URL key" => [ + 0 => "URL kľúč kategórie", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Iba písmena, čísla a pomlčky", + ], + "Description" => [ + 0 => "Popis", + ], + "Brief description of this category" => [ + 0 => "Stručný popis tejto kategórie", + ], + "Title" => [ + 0 => "Titulok", + ], + "Untitled image" => [ + 0 => "Nepomenovaný obrázok", + ], + "Mark this if the image is not family safe" => [ + 0 => "Označte ak obrázok nieje vhodný pre deti a mladistvých.", + ], + "Flag as unsafe" => [ + 0 => "Označiť ako nevhodné", + ], + "Brief description of this image" => [ + 0 => "Stručný popis obrázku", + ], + "IP address" => [ + 0 => "IP adresa", + ], + "Expiration date" => [ + 0 => "Dátum expirácie", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "RRRR-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Príklad", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Do ktorého dňa bude IP adresa banovaná? Ponechajte prázdne pre instatný ban.", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Textová správa, HTML alebo presmerovanie na URL", + ], + "Existing album" => [ + 0 => "Existujúci album", + ], + "Album" => [ + 0 => "Album", + 1 => "Albumov", + 2 => "Albumov", + 3 => "Albumy", + ], + "private" => [ + 0 => "súkromný", + ], + "create new album" => [ + 0 => "Vytvoriť nový album", + ], + "Storage name" => [ + 0 => "Meno úložiska", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Región", + ], + "Storage bucket" => [ + 0 => "Bucket úložiska", + ], + "Key" => [ + 0 => "Kľúč", + ], + "Storage key" => [ + 0 => "Kľúč úložiska", + ], + "Secret" => [ + 0 => "Šifra", + ], + "Storage secret" => [ + 0 => "Šifra úložiska", + ], + "Client email" => [ + 0 => "Klientský e-mail", + ], + "Google Cloud client email" => [ + 0 => "Google cloud klientský e-mail", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Potrebuješ <a %s>konto služby</a> pre toto.", + ], + "Private key" => [ + 0 => "Súkromný kľúč", + ], + "Google Cloud JSON key" => [ + 0 => "Google cloud kľúč JSON", + ], + "Identity URL" => [ + 0 => "URL identita", + ], + "Identity API endpoint" => [ + 0 => "API identity koncová cesta", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API koncová cesta pre OpenStack identitu", + ], + "Storage region" => [ + 0 => "Oblasť ukladania", + ], + "Container" => [ + 0 => "Kontajner", + ], + "Storage container" => [ + 0 => "Kontajner úložiska", + ], + "Tenant id" => [ + 0 => "Tenant ID", + ], + "Tenant id (account id)" => [ + 0 => "Tenant ID (ID konta)", + ], + "Tenant name" => [ + 0 => "Tenant meno", + ], + "Tenant name (account name)" => [ + 0 => "Tenant meno (meno konta)", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname alebo IP servera s úložiskom", + ], + "Path" => [ + 0 => "Cesta", + ], + "Server path" => [ + 0 => "Serverová cesta", + ], + "Server path where the files will be stored" => [ + 0 => "Serverová cesta, kde sa budú ukladať súbory", + ], + "Server username" => [ + 0 => "Serverové uživateľské meno", + ], + "Server password" => [ + 0 => "Serverové heslo", + ], + "Storage capacity" => [ + 0 => "Kapacita úložiska", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Príklad: 20 GB, 1 TB, atp.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Toto úložisko prestane byť používané akonáhle bude dosiahnutá zvolená kapacita. Ponechajte prázdné alebo nastavte 0, ak nechcete nastaviť kapacitu.", + ], + "Storage URL" => [ + 0 => "URL úložisko", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Sytém namapuje obrázky v úložisku na túto URL.", + ], + "view more" => [ + 0 => "zobraziť viac", + ], + "Load more" => [ + 0 => "Načítať viac", + ], + "Previous" => [ + 0 => "Predchádzajúci", + ], + "Next" => [ + 0 => "Ďalší", + ], + "Select all" => [ + 0 => "Vybrať všetko", + ], + "Clear selection" => [ + 0 => "Zrušiť výber", + ], + "Selection" => [ + 0 => "Výber", + ], + "Action" => [ + 0 => "Akcia", + ], + "Get embed codes" => [ + 0 => "Zobraziť kódy na vloženie", + ], + "Assign category" => [ + 0 => "Priradiť kategóriu", + ], + "Flag as safe" => [ + 0 => "Označiť ako bezpečné", + ], + "Delete" => [ + 0 => "Zmazať", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "Aby ste mohli používať všetky funkcie, musíte byť prihlásený/á. Ak ešte nemáte svoj účet, môžete sa <a href=\"%s\">registrovať</a> práve teraz.", + ], + "forgot?" => [ + 0 => "zabudnúť?", + ], + "Link" => [ + 0 => "Odkaz", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Poznámka: Tento obsah je súkromý. Pre umožnenie zdielania je potrebné zmeniť súkromie na \"verejné\".", + ], + "There's nothing to show here." => [ + 0 => "Nenachádza sa tu nič na zobrazenie.", + ], + "Edit image details" => [ + 0 => "Upraviť detaily obrázku", + ], + "Edit album details" => [ + 0 => "Uprav informácie o albume", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Všetky obrázky budú presunuté do novo vytvoreného albmu. Samozrejme, môžete obrázky tiež presunúť do <a class=\"modal-switch\" data-switch=\"move-existing-album\">existujúceho albumu</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Vyberte existujúci album na presun obrázkov. Samozrejme, tiež môžete <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť nový album</a> a obrázky presunúť do neho.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Vyberte existujúci album na premiestnenie obsahu súčasného albumu. Samozrejme, tiež môžete <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť nový album</a> a obsah súčastného albumu premiestniť tam.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Vyberte existujúci album na presun obrázkov. Samozrejme tiež môžete <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť nový album</a> a obrázky presunúť do neho.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Všetky vybrané obrázky budú zaradené do tejto kategórie.", + ], + "There is no categories." => [ + 0 => "Niesu tu kategórie.", + ], + "Confirm flag content as safe" => [ + 0 => "Potvrďte, že obrázok je bezpečný", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Naozaj si prajete tento obsah označiť ako bezpečný?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Potvrďte, že obrázok nieje vhodný", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Naozaj si prajete tento obsah označiť ako nevhodný?", + ], + "Confirm deletion" => [ + 0 => "Potvrďte odstránenie", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Naozaj chcete odstrániť tento obsah? Nevratná akcia!", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Naozaj si prajete odstrániť vybraný obsah? Nevratná akcia!", + ], + "Uploaded by guest to Public" => [ + 0 => "Nahrané hosťom do Verejných", + ], + "From %s" => [ + 0 => "Od %s", + ], + "From %a by %u" => [ + 0 => "Od %a %u", + ], + "Select" => [ + 0 => "Vybrať", + ], + "Edit" => [ + 0 => "Uprav", + ], + "Toggle unsafe flag" => [ + 0 => "Prepni medzi vhodnosťou obashu", + ], + "The requested page was not found." => [ + 0 => "Požadovaná stránka nenájdená.", + ], + "Search something else" => [ + 0 => "Hľadajte niečo iného", + ], + "The user has been deleted" => [ + 0 => "Užívateľ bol zmazaný", + ], + "The content has been deleted." => [ + 0 => "Obsah bol zmazaný.", + ], + "Your account is almost ready" => [ + 0 => "Váš účet je takmer pripravený", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "E-mail pre %s bol práve odoslaný. E-mail obsahuje inštrukcie o tom ako aktivovať váš účet. Aktiváciu je možné vykonať do 48 hodín. Ak e-mailovú správu neobdržíte, potom prosím skontrolujte váš adresár so spamom.", + ], + "Go to homepage" => [ + 0 => "Ísť na úvodnú stránku", + ], + "Resend activation" => [ + 0 => "Znovu odoslať aktiváciu", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Úspešne ste zmenili e-mail k vašemu účtu na %s", + ], + "Go to my profile" => [ + 0 => "Ísť na môj profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Odkaz na potvrdenie bude zaslaný na e-mail spolu s detailami k aktivácii účtu.", + ], + "Add email" => [ + 0 => "Pridať e-mail", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "E-mail s inštrukciami ako resetovať vaše heslo bol práve odeslaný na e-mailovú adresu, ktorú ste uviedli pri registrácii. Ak ste e-mail s inštrukciami neobdržali, potom prosím skontrolujte váš adresár so spamom či ostatnú filtrovanú poštu.", + ], + "Resend instructions" => [ + 0 => "Zaslať inštrukcie znova", + ], + "An error occurred. Please try again later." => [ + 0 => "Došlo k chybe. Prosím, skúste opakovať akciu neskôr.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "E-mail s inštrukciami k resetovaniu vašeho hesla sme už odoslali. Ak vám nedorazil, potom si prosím skontrolujte váš adresár so spamom.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "Vložte vaše prihlasovacie meno alebo e-mailovú adresu, ktorú ste uviedli behom registrácie.", + ], + "Submit" => [ + 0 => "Odoslať", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Vaše heslo bolo úspešne zmenené. Teraz sa môžete prihlásiť s vašim novým heslom.", + ], + "Login now" => [ + 0 => "Prihlásiť sa", + ], + "Enter the new password that you want to use." => [ + 0 => "Vložte nové heslo, ktoré chcete používať.", + ], + "New Password" => [ + 0 => "Nové Heslo", + ], + "%d characters min" => [ + 0 => "%d znakov minimálne", + ], + "Enter your new password" => [ + 0 => "Vložte vaše nové heslo", + ], + "Confirm password" => [ + 0 => "Potvrďte heslo", + ], + "Re-enter your new password" => [ + 0 => "Znovu vyplňte nové heslo", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Bol vám zaslaný e-mail na %s s inštrukciami na aktiváciu vašeho konta. Ak ste neobdržali takýto e-mail, skontrolujte si spam.", + ], + "Enter the username or email address that you used to create your account to continue." => [ + 0 => "Zadajte užívateľské meno alebo e-mail, ktorý ste zadali pri registrácii.", + ], + "This content is private" => [ + 0 => "Tento obsah je súkromný", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Naozaj si prajete odstrániť tento album a všetky obrázky do neho zaradené? Nevratná akcia!", + ], + "Delete album" => [ + 0 => "Zmazať album", + ], + "Album link" => [ + 0 => "Link albumu", + ], + "Image" => [ + 0 => "Obrázok", + 1 => "Obrázkov", + 2 => "Obrázkov", + 3 => "Obrázky", + ], + "User" => [ + 0 => "Užívateľ", + 1 => "Uživateľov", + 2 => "Uživateľov", + 3 => "Užívatelia", + ], + "Disk used" => [ + 0 => "Využitie disku", + ], + "Add user" => [ + 0 => "Pridať užívateľa", + ], + "Role" => [ + 0 => "Úloha", + ], + "Administrator" => [ + 0 => "Administrátor", + ], + "Add category" => [ + 0 => "Pridať kategóriu", + ], + "Add IP ban" => [ + 0 => "Pridať IP ban", + ], + "Add storage" => [ + 0 => "Pridať úložisko", + ], + "Website name" => [ + 0 => "Názov webu", + ], + "Website doctitle" => [ + 0 => "Nadpis webovej stránky", + ], + "Website description" => [ + 0 => "Popis webu", + ], + "Website keywords" => [ + 0 => "Kľúčové slová stránky", + ], + "Default time zone" => [ + 0 => "Východzie časové pásmo", + ], + "Select region" => [ + 0 => "Vyberte región", + ], + "Enable this if you want to allow the search feature." => [ + 0 => "Povoľte toto, ak chcete umožniť funkciu hladania.", + ], + "Enable this if you want to allow the explore page." => [ + 0 => "Povoľte toto, ak chcete umožniť prehliadanie stránky.", + ], + "Enable this if you want to allow the random feature." => [ + 0 => "Povoľte toto, ak chcete umožniť funkciu náhodného zobrazovania.", + ], + "Personal mode target user" => [ + 0 => "Súkromný mód cieľového užívateľa", + ], + "User ID" => [ + 0 => "Užívateľské ID", + ], + "Your user id is: %s" => [ + 0 => "Vaše užívateľské ID je: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Číselné ID cieľového užívateľa pre súkromný mód.", + ], + "Personal mode routing" => [ + 0 => "Smerovanie súkromného módu", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Vlastné smerovanie na zmenu z /username na /something. Používaj \"/\" na smerovanie do domovskej stránky.", + ], + "Website privacy mode" => [ + 0 => "Súkromný mód webu", + ], + "Private" => [ + 0 => "Súkromný", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Súkromný režim spôsobí, že stránka bude dostupná iba registrovaným užívateľom.", + ], + "Content privacy mode" => [ + 0 => "Obsah súkromného módu", + ], + "Default" => [ + 0 => "Východzí", + ], + "Force private (self)" => [ + 0 => "Vynútiť súkromie (iba ja)", + ], + "Force private (anyone with the link)" => [ + 0 => "Vynútiť súkromie (ktokoľvek má link)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Vynútenie súkromia ovplyvní i to, čo mal užívateľ nastavené.", + ], + "Enable uploads" => [ + 0 => "Povoliť nahrávanie", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Povoľte toto, ak chcete umožniť nahrávanie. Toto nastavenie nemá vplyv na administrátorov.", + ], + "Guest uploads" => [ + 0 => "Nahrané hosťom", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Povoľte toto, ak chcete umožniť neregistrovaným uživateľom nahrávanie.", + ], + "This setting is disabled when personal mode is active." => [ + 0 => "Toto nastavenie je deaktivované, ak súkromný mód je aktívny.", + ], + "Max. filesize" => [ + 0 => "Max. veľkosť súboru", + ], + "Max. allowed filesize. (Max allowed by server is %s)" => [ + 0 => "Maximálne povolená veľkosť súboru. (Maximálna povolená veľkosť na servere je %s)", + ], + "Image path" => [ + 0 => "Cesta k obrázku", + ], + "Relative to Chevereto root" => [ + 0 => "Relatívna cesta k Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Kde ukladať obrázky? Relatívne k chevereto rootu.", + ], + "Storage mode" => [ + 0 => "Režim ukladania", + ], + "Datefolders" => [ + 0 => "Adresáre podľa dáta", + ], + "Direct" => [ + 0 => "Priamy", + ], + "Datefolders creates %s structure" => [ + 0 => "Adresár podľa dáta vytvorí %s štruktúru", + ], + "File naming method" => [ + 0 => "Spôsob pomenovania súborov", + ], + "Original" => [ + 0 => "Originálne", + ], + "Mixed" => [ + 0 => "Zmiešané", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." => [ + 0 => "Voľba \"originál\" sa pokúsi ponechať pôvodné meno zdrojového súboru, zatiaľčo \"náhodne\" bude generovať náhodné meno. \"Mix\" znamená kombináciu oboch vyššie uvedených metód.", + ], + "Thumb size" => [ + 0 => "Veľkosť miniatúry", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Miniatúry budú nastavené na túto veľkosť", + ], + "Medium size" => [ + 0 => "Veľkosť stredných zmenšenín", + ], + "Height will be automatic calculated." => [ + 0 => "Výška bude automaticky vypočítana", + ], + "Watermarks" => [ + 0 => "Vodoznaky", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Povoľte toto, ak chcete vložiť logo alebo čokoľvek iného do nahrávania obrázkov.", + ], + "Warning: Can't write in %s" => [ + 0 => "Výstraha: Nemôžem zapisovať do %s", + ], + "Watermark guest images" => [ + 0 => "Vodoznak obrázku návštevníka", + ], + "Enable this if you want to watermark guest uploads." => [ + 0 => "Povoľte toto, ak chcete umiestniť vodoznak na návštevníkové obrázky", + ], + "Watermark user images" => [ + 0 => "Vodoznak obrázku registrovaného užívateľa", + ], + "Enable this if you want to watermark user uploads." => [ + 0 => "Povoľte toto, ak chcete umiestniť vodoznak na obrázky registrovaného užívateľa.", + ], + "Watermark admin images" => [ + 0 => "Vodoznak obrázku administrátora", + ], + "Enable this if you want to watermark admin user uploads." => [ + 0 => "Povoľte toto, ak chcete umiestniť vodoznak na obrázky administrátora.", + ], + "Watermark image" => [ + 0 => "Súbor s vodoznakom", + ], + "Watermark image to use. Must be a PNG." => [ + 0 => "Súbor s vodoznakom. Musí byť vo formáte PNG.", + ], + "Watermark position" => [ + 0 => "Pozícia vodoznaku", + ], + "left top" => [ + 0 => "vpravo hore", + ], + "left center" => [ + 0 => "vľavo uprostred", + ], + "left bottom" => [ + 0 => "vľavo dole", + ], + "center top" => [ + 0 => "v strede hore", + ], + "center center" => [ + 0 => "v strede", + ], + "center bottom" => [ + 0 => "v strede dole", + ], + "right top" => [ + 0 => "vpravo hore", + ], + "right center" => [ + 0 => "vpravo v strede", + ], + "right bottom" => [ + 0 => "vpravo dole", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Relatívna pozícia vodoznaku. Prvá hodnota je horizontálna, druhá vertikálna.", + ], + "Watermark margin" => [ + 0 => "Odsadenie vodoznaku", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Odsadenie od okraju obrázka po vodoznak.", + ], + "Watermark opacity" => [ + 0 => "Priehľadnosť vodoznaku", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Priehľadnosť vodoznaku vzhľadom k obrázku. Hodnoty od 0 do 100.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Naozaj chcete odstrániť túto %s kategóriu? Nevratná akcia!", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Upozornenie: Odstránenie kategórie nespôsobí odstránenie obrázkov do nej zaradených.", + ], + "Edit category" => [ + 0 => "Uprav kategóriu", + ], + "Expires" => [ + 0 => "Vyprší", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Naozaj chcete odstrániť ban z IP %s? Toto je nevratný proces.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Zabanované IP adresy budú mať odoprený prístup na celú túto stránku.", + ], + "Edit IP ban" => [ + 0 => "Upraviť IP ban", + ], + "Enable signups" => [ + 0 => "Povoliť registrácie", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Povoľte toto, ak chcete povoliť užívateľom registrácie.", + ], + "Username routing" => [ + 0 => "Smerovanie užívateľského mena", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Povoľte toto, ak chcete používať URL vo formáte %s/uzivatelskemeno namiesto %s/uzivatel/username.", + ], + "Logged user logo link" => [ + 0 => "Link loga prihláseného užívateľa", + ], + "User profile" => [ + 0 => "Užívateľský profil", + ], + "Configure the link used in the logo when user is logged in." => [ + 0 => "Nastavte link používaný v logu, keď je užívateľ prihlásený.", + ], + "Require email confirmation" => [ + 0 => "Je vyžadované potvrdenie e-mailu", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Povoľte, ak užívatelia musia potvrdiť svoju e-mailovú adresu počas registrácie.", + ], + "Require email for social signup" => [ + 0 => "K prihláseniu cez sociálnu sieť je vyžadovaný e-mail", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Povoľte, ak užívatelia využívajíci k registrácii sociálne siete, musia tiež potvrdiť svoju e-mailovú adresu.", + ], + "User avatar max. filesize" => [ + 0 => "Max. veľkosť avatara užívateľa", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Max. povolená veľkosť pre užívateľského avatara. (Max hodnota servera je %s)", + ], + "User background max. filesize" => [ + 0 => "Max. veľkosť pozadia užívateľa", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Max. povolená veľkosť užívateľského pozadia. (Max hodnota servera je %s)", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Zablokovať nahrávanie obrázkov pre zvolenú IP adresu a ochrana proti preťaženiu na základe maximálneho počtu nahraných souborov za časový úsek. Toto nastavenie neovplyvňuje administrátorov.", + ], + "Notify to email" => [ + 0 => "Upozorniť na e-mail", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Ak je zapnuté, potom vás systém o pokuse o preťaženie varuje e-mailom.", + ], + "Minute limit" => [ + 0 => "Minútový limit", + ], + "Hourly limit" => [ + 0 => "Hodinový limit", + ], + "Daily limit" => [ + 0 => "Denný limit", + ], + "Weekly limit" => [ + 0 => "Týždenný limit", + ], + "Monthly limit" => [ + 0 => "Mesačný limit", + ], + "Show not safe content in listings" => [ + 0 => "V zozname publikovať i nevhodný obsah", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Povoľte toto, ak chcete zobraziť nevhodné obrázky v zozname. Toto nastavenie neplatí pre administrátorov a môže byť zmenené užívateľským nastavením.", + ], + "Blur NSFW content in listings" => [ + 0 => "Rozostri NSFW obsah v záznamoch", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Povoľte toto ak chcete použiť rozostrenie na NSFW obrázky v záznamoch.", + ], + "Show banners in not safe content" => [ + 0 => "Zobraziť banery v nevhodnom obsahu", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Povoľte toto, ak chcete zobrazovať banery i medzi nevhodným obsahom.", + ], + "Show not safe content in random mode" => [ + 0 => "V náhodnom móde publikovať i nevhodný obsah", + ], + "List items per page" => [ + 0 => "Počet obrázkov na stránku", + ], + "How many items should be displayed per page listing." => [ + 0 => "Koľko položiek môže byť zobrazených na jednej stránke výpisu.", + ], + "List pagination mode" => [ + 0 => "Listovacie stránkovanie", + ], + "Endless scrolling" => [ + 0 => "Nekonečné skrolovanie", + ], + "Classic pagination" => [ + 0 => "Klasické stránkovanie", + ], + "What pagination method should be used." => [ + 0 => "Aký spôsob stránkovania má byť použitý?", + ], + "Image listing size" => [ + 0 => "Veľkosť náhľadu", + ], + "Fluid" => [ + 0 => "Plynulý", + ], + "Fixed" => [ + 0 => "Pevný", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Obe metódy používajú pevnú šírku, ale plynulá využíva premennú výšku.", + ], + "Listing columns number" => [ + 0 => "Počet riadkov zoznamu", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Tu môžete nastaviť počet riadkov pre každý typ zariadenia.", + ], + "Phone" => [ + 0 => "Mobil", + ], + "Phablet" => [ + 0 => "Smartfón", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Počítač", + ], + "Put your themes in the %s folder" => [ + 0 => "Vlož svoju tému do adresára %s", + ], + "Tone" => [ + 0 => "Tón", + ], + "Light" => [ + 0 => "Svetlý", + ], + "Dark" => [ + 0 => "Tmavý", + ], + "Main color" => [ + 0 => "Základná farba", + ], + "Hexadecimal color value" => [ + 0 => "Hexadecimálna hodnota farby", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Použite toto na nastavenie základnej farby témy. Hodnota musí byť v <a href=\"%s\" target=\"_blank\">hex formáte</a>.", + ], + "Top bar color" => [ + 0 => "Farba horného menu", + ], + "Black" => [ + 0 => "Čierna", + ], + "White" => [ + 0 => "Biela", + ], + "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." => [ + 0 => "Ak nastavíte \"bielu\", horné menu a všetky čierne odtiene budú zmenené na biele tóny.", + ], + "Top bar button color" => [ + 0 => "Farba tlačidla v hornom menu", + ], + "Blue" => [ + 0 => "Modrá", + ], + "Green" => [ + 0 => "Zelená", + ], + "Orange" => [ + 0 => "Oranžová", + ], + "Red" => [ + 0 => "Červená", + ], + "Grey" => [ + 0 => "Šedá", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Farba pre tlačidlá v hornom menu, ako napríklad \"Vytvoriť konto\".", + ], + "Enable vector logo" => [ + 0 => "Zapnúť vektorové logo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Zapnúť vektorové logo pre vysokú kvalitu na HD displejoch.", + ], + "Vector logo image" => [ + 0 => "Súbor s vektorovým logom", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Vektorová verzia loga vašej webovej stránky vo formáte SVG.", + ], + "Raster logo image" => [ + 0 => "Súbor s rastrovým logom", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Rastrová verzia loga vašej webovej stránky, najlepšie vo formáte PNG.", + ], + "Logo height" => [ + 0 => "Výška loga", + ], + "No value" => [ + 0 => "Žiadna hodnota", + ], + "Use this to set the logo height if needed." => [ + 0 => "Toto použijte pre natavenie výšky loga, ak je to potrebné.", + ], + "Favicon image" => [ + 0 => "Favicon ikona", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon musí mať rovnakú šířku a výšku.", + ], + "Enable download button" => [ + 0 => "Aktivovať tlačítko Stiahnuť", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Povoľte toto, ak chcete užívateľom nechať zobrazovať tlačítko na stiahnutie.", + ], + "Enable right click on image" => [ + 0 => "Povoliť pravý klik na obrázok", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Povoľ toto, ak si želáš povolenie pravého kliku na obrázok v zobrazení obrázku.", + ], + "Enable show Exif data" => [ + 0 => "Povoliť zobrazenie Exif údajov", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Povoľ toto, ak chceš zobrazovať Exif údaje.", + ], + "Enable social share" => [ + 0 => "Povoliť zdielanie cez sociálne siete", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Povoľte toto, ak chcete povoliť zobrazovanie tlačítiek sociálnych sietí u obsahu (zdielanie, lajkovanie...)", + ], + "Enable embed codes (content)" => [ + 0 => "Povoliť vkladacie odkazy (obsah)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Povoľte toto, ak chcete v obsahu zobrazovať vkladacie obsahy.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Povoliť vkladacie odkazy (v nahrávaciom nástroji)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Povoľte toto, ak chcete umožniť zobrazovanie vkladacích odkazov akonáhle bude obrázok úspešne nahraný.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Nepovoliť voľbu nevhodného obsahu v nahrávaní", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Povoľte toto, ak chcete užívateľom dovoliť nastavovanie nevhodného obsahu.", + ], + "Custom CSS code" => [ + 0 => "Vlastný CSS kód", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Vložte váš vlastný CSS kód sem. Bude umiestnený ako <style> tesne pred koncom hlavičky (</head>) html kódu.", + ], + "Custom JS code" => [ + 0 => "Vlastný JS kód", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Vložte váš vlastný JS kód sem. Bude umiestnený ako <script> tesne pred koncom hlavičky (</head>) html kódu.", + ], + "Style" => [ + 0 => "Štýl", + ], + "Landing page" => [ + 0 => "Prístupová stránka", + ], + "Split landing + images" => [ + 0 => "Rozdeliť uvítacia stránka + obrázky", + ], + "Route explore" => [ + 0 => "Preskúmať cestu", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Nastavte štýl domovskej stránky. Pre nastavenie pozmente app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Obrázok pokrytia", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Vektorová verzia loga vašej webovej stránky vo formáte SVG (iba pre domovskú stránku).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Rastrová verzia loga vašej webovej stránky (iba pre domovskú stránku), najlepšie vo formáte PNG.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Toto bude vložené dovnútra tagu domovskej stránky %s. Ponechajte prázdne pre základný obsah.", + ], + "Paragraph" => [ + 0 => "Pragraf", + ], + "Call to action button color" => [ + 0 => "Farba tlačidla akcie", + ], + "Color of the homepage call to action button." => [ + 0 => "Farba tlačidla akcie pre domovskú stránku", + ], + "Call to action outline style button" => [ + 0 => "Štýl pre tlačidlo akcie", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Povoľte toto, ak si želáte použiť štýl na tlačidlo akcie na domovskej stránke.", + ], + "Call to action functionality" => [ + 0 => "Funkcia tlačidla akcie", + ], + "Trigger uploader" => [ + 0 => "Spúšťač nahrávania", + ], + "Open URL" => [ + 0 => "Otvoriť URL", + ], + "Call to action URL" => [ + 0 => "Volanie akcie URL", + ], + "Enter an absolute or relative URL" => [ + 0 => "Zadajte absolútnu alebo relatívnu URL", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Relatívna URL ako %r bude premapovaná na %l", + ], + "Call to action HTML" => [ + 0 => "HTML akcie", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Toto bude vložené dovnútra tagu <a>. Ponechajte prázdne pre základný obsah.", + ], + "User IDs" => [ + 0 => "ID užívateľa", + ], + "Comma-separated list of target user IDs to show images on homepage. Leave it blank or zero to display all recent images." => [ + 0 => "Zoznam oddelený čiarkou ID cielených užívateľov pre zobrazenie na domovskej stránke. Ponechajte prázdne alebo zadajte nulu, ak chcete zobraziť všetky posledné obrázky.", + ], + "Here you can set the codes for the predefined ad spaces." => [ + 0 => "Tu môžete nastaviť kódy pre preddefinované pozície reklám.", + ], + "Before cover (homepage)" => [ + 0 => "Pred coverom (titulka).", + ], + "After cover (homepage)" => [ + 0 => "Za coverom (titulka).", + ], + "After listing (homepage)" => [ + 0 => "Za výpisom (titulka)", + ], + "Before pagination" => [ + 0 => "Pred stránkovaním", + ], + "After pagination" => [ + 0 => "Za stránkováním", + ], + "Content (image and album)" => [ + 0 => "Obsah (obrázok a album)", + ], + "Tab about column" => [ + 0 => "Tabuľka so stĺpcom \"O ...\"", + ], + "Before comments" => [ + 0 => "Pred komentármi", + ], + "Image page" => [ + 0 => "Stránka s obrázkom", + ], + "Inside viewer top (image page)" => [ + 0 => "Vovnútri prehliadača nahore (stránka s obrázkom)", + ], + "Expected banner size 728x90" => [ + 0 => "Očakávaná veľkosť banera je 728×90px", + ], + "Inside viewer foot (image page)" => [ + 0 => "Vovnútri prehliadača dole (stránka s obrázkom)", + ], + "After image viewer (image page)" => [ + 0 => "Za prehliadačom obrázku (stránka s obrázkom)", + ], + "Before header (image page)" => [ + 0 => "Pred hlavičkou (stránka s obrázkom)", + ], + "After header (image page)" => [ + 0 => "Za hlavičkou (stránka s obrázkom)", + ], + "Footer (image page)" => [ + 0 => "Pätička (stránka s obrázkom)", + ], + "Album page" => [ + 0 => "Stránka s albumom", + ], + "Before header (album page)" => [ + 0 => "Pred hlavičkou (stránka s albumom)", + ], + "After header (album page)" => [ + 0 => "za hlavičkou (stránka s albumom)", + ], + "User profile page" => [ + 0 => "Stránka s užívateľským profilom", + ], + "After top (user profile)" => [ + 0 => "Za hlavičkou (stránka s uživateľským profilom)", + ], + "Before listing (user profile)" => [ + 0 => "Pred výpisom (stránka s užívateľským profilom)", + ], + "Explore page" => [ + 0 => "Preskúmať stránku", + ], + "After top (explore page)" => [ + 0 => "Za hlavičkou (stránka prechádzania)", + ], + "Crypt salt" => [ + 0 => "Kryptografická soľ", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Toto je \"salt\" (kryptografická soľ) používaná k prevodu číselného ID na alfanumerický. Bol vygenerovaný počas inštalácie.", + ], + "Minify code" => [ + 0 => "Kód minify", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Povoľte toto, ak chcete automaticky minify CSS a JS kód.", + ], + "Maintenance" => [ + 0 => "Údržba", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Ak je toto povolené, užívateľom sa zobrazí hlásenie údržby systému. Toto nemá vplyv na administrátorov.", + ], + "PHP error reporting" => [ + 0 => "PHP chybové hlásenia", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Povoľte toto, ak si želáte vypísať chyby generované PHP <a %s>error_reporting()</a>. Toto bude deaktivované v prevádzke.", + ], + "Debug level" => [ + 0 => "Úroveň debugovania", + ], + "None" => [ + 0 => "Žiaden", + ], + "Error log" => [ + 0 => "Error log", + ], + "Print errors without error log" => [ + 0 => "Vypíš chyby bez error logu", + ], + "Print and log errors" => [ + 0 => "Vypíš a loguj chyby", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Pre nastavenie úrovne debugovania, si prezri <a %s>dokumentáciu debugovania</a>. Základná úroveň je \"Error log\" (1).", + ], + "Default language" => [ + 0 => "Východzí jazyk", + ], + "Default base language to use." => [ + 0 => "Východzí jazyk na používanie.", + ], + "Auto language" => [ + 0 => "Jazyk automaticky", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Povoľte toto, ak chcete automaticky zistiť a nastaviť jazyk pre každého užívateľa.", + ], + "Language chooser" => [ + 0 => "Voľba jazyka", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Povoľte toto, ak chcete povolit voľbu jazyka.", + ], + "Enabled languages" => [ + 0 => "Povolené jazyky", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Neoznačené jazyky nebudú použité na vašej stránke.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Prepnite pre zapnutie HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Prepnite pre povolenie alebo zakázanie tohoto úložiska.", + ], + "Quota" => [ + 0 => "Kvóta", + ], + "Active" => [ + 0 => "Aktívne", + ], + "Storage method" => [ + 0 => "Spôsob ukladania", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Vo východziom stave je natavené miestne ukladanie. Používa sa i keď nieje aktívne žiadne externé úložisko.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Ak potrebujete pomoc, prezrite si <a %s>dokumentáciu úložiska</a>.", + ], + "Edit storage" => [ + 0 => "Upraviť úložisko", + ], + "From name" => [ + 0 => "Z mena", + ], + "Sender name for emails sent to users." => [ + 0 => "Meno odesielateľa uvedeného v e-mailoch odoslaných užívateľom.", + ], + "Email mode" => [ + 0 => "Režim e-mailu", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Spôsob odesielania e-mailov. Doporučená metóda SMTP.", + ], + "SMTP server and port" => [ + 0 => "SMTP server a port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "Užívateľské meno na SMTP server", + ], + "SMTP password" => [ + 0 => "Heslo na SMTP server", + ], + "SMTP security" => [ + 0 => "SMTP zabezpečenie", + ], + "Unsecured" => [ + 0 => "Nezabezpečené", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Potrebujete <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> pre toto.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Potrebujete <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> pre toto.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter account", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Potrebujete <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> pre toto.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Potrebujete <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> pre toto.", + ], + "VK client id" => [ + 0 => "VK client id", + ], + "VK client secret" => [ + 0 => "VK client secret", + ], + "CDN allows you to offload static content to several edge servers making your website faster. If you don't have a CDN provider you should try %s." => [ + 0 => "CDN umožňuje rýchlejšie načítanie obsahu pomocou používania čiastočne statického obsahu na niektorých edgeServeroch. Ak nemáte CDN poskytovateľa, mali by ste to skúsiť %s.", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Potrebujete <a href=\"%s\" target=\"_blank\">reCAPTCHA kľúč</a>.", + ], + "reCAPTCHA public key" => [ + 0 => "reCAPTCHA verejný kľúč", + ], + "reCAPTCHA private key" => [ + 0 => "reCAPTCHA súkromný kľúč", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA prah", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Koľko neplatných pokusov je potrebných na požadovanie reCAPTCHA? Použite nula (0) na stále zobrazovanie reCAPTCHA.", + ], + "Comment code" => [ + 0 => "Kód komentáru", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook alebo čokoľvek iného. Bude použité v zobrazení obrázku.", + ], + "Analytics code" => [ + 0 => "Kód analytics.", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics alebo čokoľvek iného. Bude pridané do pätičky.", + ], + "Cloudflare is auto detected using %s." => [ + 0 => "Cloudflare detekovalo použitie %s.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Pre dokumentáciu o API, prezrite si <a %s>dokumentáciu API</a>", + ], + "API v1 key" => [ + 0 => "API v1 kľúč", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Použite tento kľúč, keď používate <a %s>API v1</a>.", + ], + "Cookie law compliance" => [ + 0 => "Dodržanie cookie politiky", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Povoľte toto na zobrazenie správy, ktorá informuje o EU vyžadovania cookie. Poznámka: Potrebujete toto iba ak, je vaša stránka umiestnená v EU a ak používate cookie na sledovanie.", + ], + "Save changes" => [ + 0 => "Uložiť zmeny", + ], + "Check the errors to proceed." => [ + 0 => "Pred pokračovaním skontrolujte chyby", + ], + "Guest" => [ + 0 => "Hosť", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Naozaj chcete obrázok vymazať? Nevratná akcia!", + ], + "Delete image" => [ + 0 => "Zmazať obrázok", + ], + "Added to %a and categorized in %c" => [ + 0 => "Pridané do %a a zakategorizované v %c", + ], + "Added to %s" => [ + 0 => "Pridané do %s", + ], + "Uploaded to %s" => [ + 0 => "Nahrané do %s", + ], + "Uploaded %s" => [ + 0 => "Nahrané %s", + ], + "Less Exif data" => [ + 0 => "Skry Exif dáta", + ], + "More Exif data" => [ + 0 => "Zobraz Exif dáta", + ], + "Share image" => [ + 0 => "Zdielať obrázok", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "In this album" => [ + 0 => "V tomto albume", + ], + "Image links" => [ + 0 => "Odkazy obrázkov", + ], + "Image URL" => [ + 0 => "URL obrázka", + ], + "Image link" => [ + 0 => "Odkaz obrázka", + ], + "Thumbnail URL" => [ + 0 => "URL miniatúry", + ], + "Medium URL" => [ + 0 => "URL stredná zmenšenina", + ], + "Image embed codes" => [ + 0 => "Kódy na vloženie obrázkov", + ], + "Linked image" => [ + 0 => "Odkazovaný obrázok", + ], + "Linked medium" => [ + 0 => "Odkazovaný obrázok (stredná veľkosť)", + ], + "Linked thumbnail" => [ + 0 => "Odkazovaná miniatúra", + ], + "Upload and share your images." => [ + 0 => "Nahrajte a zdielajte obrázky.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Presuňte obrázky hockde na stránku a nahrávajte už teraz. %s limit. Priame odkazy na obrázky, BB-kód a HTML zmenšeniny.", + ], + "Start uploading" => [ + 0 => "Nahraj teraz", + ], + "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." => [ + 0 => "Vyplňte túto časť nahrávania obrázkov do %s účtu.<br> Cieľ môžete editovať v administrácii webu.", + ], + "Sign up to unlock all the features" => [ + 0 => "Zaregistrujte sa pre sprístupnenie všetkých funkcií", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Spravujte váš obsah, vytvárajte súkromé albumy, inovujte váš profil a veľa iného..", + ], + "Enter your password" => [ + 0 => "Vložte vaše heslo", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Odhlásenie z webu %s prebehlo úspešne. Čoskoro dovidenia.", + ], + "Website under maintenance" => [ + 0 => "Na stránke prebieha údržba", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Máme plánovanú údržbu systému. Prosím, vráťte sa sem o niekoľko minút.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Nemáte oprávnenie k prehliadaniu tejto stránky alebo odkaz z ktorého ste sa sem dostali už expiroval.", + ], + "Results for" => [ + 0 => "Výsledky pre", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Naozaj chcete odstrániť tohoto užívateľa? Nevratná akcia!", + ], + "Delete user" => [ + 0 => "Odstrániť užívateľa", + ], + "Register date" => [ + 0 => "Dátum registrácie", + ], + "Status" => [ + 0 => "Stav", + ], + "Valid" => [ + 0 => "Platný", + ], + "Banned" => [ + 0 => "Zabanovaný", + ], + "Awaiting email" => [ + 0 => "Čaká sa na e-mail", + ], + "Awaiting confirmation" => [ + 0 => "Čaká sa na potvrdenie", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i do %f znakov<br>Písmena, čísla a \"_\"", + ], + "Newsletter" => [ + 0 => "Novinky", + ], + "Send me emails with news about %s" => [ + 0 => "Zašlite mi e-maily s novinkami o %s", + ], + "Content settings" => [ + 0 => "Nastavenie obsahu", + ], + "Check this if you want to see not family safe content. This setting doesn't affect your content" => [ + 0 => "Označte toto, ak chcete vidieť aj obrázky nevhodné pre deti a mladistvých. Toto nastavenie neovplyvní váš obsah.", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Zobraz obsah nevhodný pre deti a mladistvých v zozname (od ostatných)", + ], + "Language" => [ + 0 => "Jazyk", + ], + "Timezone" => [ + 0 => "Časová zóna", + ], + "Current password" => [ + 0 => "Súčasné heslo", + ], + "Enter your current password" => [ + 0 => "Vložte svoje súčasné heslo", + ], + "New password" => [ + 0 => "Nové heslo", + ], + "Confirm new password" => [ + 0 => "Potvrdiť nové heslo", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "K tomu, aby ste boli schopní sa prihlásiť uživatelským menom alebo e-mailom, je potrebné pridať heslo.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Tento užívateľ nemá uložené žiadne heslo. Heslo pridajte týmto formulárom.", + ], + "Re-enter your password" => [ + 0 => "Znovu vyplňte heslo", + ], + "loading" => [ + 0 => "načítanie", + ], + "Upload new image" => [ + 0 => "Nahrať nový súbor", + ], + "Delete existing image" => [ + 0 => "Zmazať existujúci obrázok", + ], + "This is your real name, not your username." => [ + 0 => "Toto je vaše ozajstné meno, nie užívateľské.", + ], + "http://yourwebsite.com" => [ + 0 => "http://vasastranka.com", + ], + "Bio" => [ + 0 => "Bio", + ], + "Tell us a little bit about you" => [ + 0 => "Povedzte niečo o sebe", + ], + "User has no connections." => [ + 0 => "Užívateľ nemá žiadne prepojenie.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Prepojte váš účet s externými službami pre prihlásenie a zdielanie obsahu.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Naozaj sa chcete odpojiť %s od tohoto účtu?", + ], + "This account is connected to %s" => [ + 0 => "Tento účet je prepojený s %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Naozaj chcete odpojiť váš %s účet?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Budete odhlásený/á a už sa nebudete môcť prihlásiť ku svojemu účtu prostredníctvom tohoto %s účtu.", + ], + "Your account is connected to %s" => [ + 0 => "Váš účet je prepojený s %s", + ], + "disconnect" => [ + 0 => "odpojiť", + ], + "Connect %s" => [ + 0 => "Prepojiť %s", + ], + "Button" => [ + 0 => "Tlačidlo", + ], + "resend account activation" => [ + 0 => "znovupreposlať aktiváciu konta", + ], + "If you have already signed up maybe you need to request to %s" => [ + 0 => "Ak ste sa už zaregistrovali, možnože chcete prejsť sem %s", + ], + "Upload profile background" => [ + 0 => "Nahrať pozadie profilu", + ], + "Change background" => [ + 0 => "Zmeniť pozadie", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Profilový obrázok pozadia bude odstránený. Túto akciu nejde vrátiť. Naozaj si prajete pokračovať?", + ], + "Delete background" => [ + 0 => "Odstrániť pozadie", + ], + "Edit profile" => [ + 0 => "Upraviť profil", + ], + "You must enter the album name." => [ + 0 => "Musíte vložiť názov albumu.", + ], + "Confirm" => [ + 0 => "Potvrdiť", + ], + "Select existing album" => [ + 0 => "Vyberte existujúci album", + ], + "Please select a valid image file type." => [ + 0 => "Prosím, vyberte prípustné typy obrázkov.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Prosím, vyberte obrázok s maximálnov %s veľkosťou.", + ], + "Profile image updated." => [ + 0 => "Profilový obrázok bol aktualizovaný.", + ], + "Profile background image updated." => [ + 0 => "Pozadie profilu bolo aktualizované.", + ], + "Profile background image deleted." => [ + 0 => "Profilové pozadie bolo odstranené.", + ], + "Error deleting profile background image." => [ + 0 => "Nastala chyba pri odstraňovaní obrázku profilového pozadia.", + ], + "Update available (%s)" => [ + 0 => "K dispozíci je aktualizácia (%s)", + ], + "There is an update available for your system. Go to %s to proceed to download the file." => [ + 0 => "Pre váš systém je dostupná aktualizácia. Prejdite na %s a pokračujte stiahnutím súboru.", + ], + "The release notes for the update available are:" => [ + 0 => "Poznámky vydané k novej aktualizácii sú:", + ], + "Your website is running the latest version of Chevereto." => [ + 0 => "Vaša stránka beží na aktuálnej verzii Chevereta.", + ], + "File too big." => [ + 0 => "Súbor je príliš veľký.", + ], + "Some files couldn't be added" => [ + 0 => "Niektoré súbory nebolo možné pridať", + ], + "Image edited successfully." => [ + 0 => "Obrázok bol úspešne upravený.", + ], + "Album edited successfully." => [ + 0 => "Album úspešne upravený.", + ], + "Invalid URL key." => [ + 0 => "Neplatný kľúč URL.", + ], + "Category URL key already being used." => [ + 0 => "URL kľúč kategórie sa už používa.", + ], + "Category successfully deleted." => [ + 0 => "Kategória bola úspešne odstránená.", + ], + "Category %s added." => [ + 0 => "Pridaná %s kategória.", + ], + "Invalid expiration date." => [ + 0 => "Neplatný dátum expirácie.", + ], + "IP %s already banned." => [ + 0 => "IP %s je už zabanovaná.", + ], + "IP %s banned." => [ + 0 => "IP %s zabanovaná.", + ], + "IP ban successfully deleted." => [ + 0 => "IP ban úspešne odstránený.", + ], + "Please fill all the required fields." => [ + 0 => "Prosím, vyplňte všetky požadované polia.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Neplatná veľkosť úložiska. Prosím overte, že je v správnom formáte.", + ], + "Invalid URL." => [ + 0 => "Neplatná URL.", + ], + "Storage successfully edited." => [ + 0 => "Úložisko bolo úspešne upravené.", + ], + "User added successfully." => [ + 0 => "Užívateľ bol pridaný úspešne.", + ], + "The content has been moved." => [ + 0 => "Obsah bol presunutý.", + ], + "Unselect" => [ + 0 => "Odobrať", + ], + "The content has been edited." => [ + 0 => "Obsah bol upravený.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Všetky zmeny, které ste vykonal(a), budú stratené ak budete pokračovať.", + ], + "Changes saved successfully." => [ + 0 => "Zmeny boli úspešne uložené.", + ], + "Go back to form" => [ + 0 => "Vrátiť sa späť na formulár", + ], + "continue anyway" => [ + 0 => "ajtak pokračovať", + ], + "Saving" => [ + 0 => "Ukladanie", + ], + "Sending" => [ + 0 => "Odosielanie", + ], + "Confirm action" => [ + 0 => "Potvrdiť akciu", + ], + "information" => [ + 0 => "informácia", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/sr-RS.po.cache.php b/app/.cache/languages/sr-RS.po.cache.php new file mode 100644 index 0000000..7ee0e12 --- /dev/null +++ b/app/.cache/languages/sr-RS.po.cache.php @@ -0,0 +1,1777 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2015-04-13 17:55+0000', + 'PO-Revision-Date' => '2015-04-13 17:55+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'sr_RS', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Neispravan email", + ], + "Invalid username" => [ + 0 => "Pogrešno korisničko ime", + ], + "Invalid password" => [ + 0 => "Pogrešna lozinka", + ], + "From email address" => [ + 0 => "Sa email adresee", + ], + "Sender email for emails sent to users." => [ + 0 => "Email pošiljaoca za emailove poslate korisnicima.", + ], + "Incoming email address" => [ + 0 => "Dolazeća email adresa", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Email adresa za sistemske i kontakt emailove.", + ], + "Untitled" => [ + 0 => "Bez naslova", + ], + "%s's images" => [ + 0 => "%s slike", + ], + "Private upload" => [ + 0 => "Privatni upload", + ], + "view" => [ + 0 => "pregled", + 1 => "pregleda", + 2 => "pregleda", + ], + "image" => [ + 0 => "slika", + 1 => "slika", + 2 => "slika", + ], + "year" => [ + 0 => "godina", + 1 => "godina", + 2 => "godina", + ], + "month" => [ + 0 => "mesec", + 1 => "meseci", + 2 => "meseci", + ], + "week" => [ + 0 => "sedmica", + 1 => "sedmica", + 2 => "sedmica", + ], + "day" => [ + 0 => "dan", + 1 => "dana", + 2 => "dana", + ], + "hour" => [ + 0 => "sat", + 1 => "sati", + 2 => "sati", + ], + "minute" => [ + 0 => "minuta", + 1 => "minuta", + 2 => "minuta", + ], + "second" => [ + 0 => "sekunda", + 1 => "sekundi", + 2 => "sekundi", + ], + "%s ago" => [ + 0 => "pre %s", + ], + "moments ago" => [ + 0 => "upravo", + ], + "That page doesn't exist" => [ + 0 => "Ova strana ne postoji", + ], + "Reset password" => [ + 0 => "Resetuj lozinku", + ], + "Resend account activation" => [ + 0 => "Pošalji aktivacijski link", + ], + "Add your email address" => [ + 0 => "Dodajte vašu email adresu", + ], + "Email changed" => [ + 0 => "Email promena", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "reCAPTCHA nije upisana tačno", + ], + "Invalid Username/Email" => [ + 0 => "Neispravno korisničko ime/lozinka", + ], + "User doesn't have an email." => [ + 0 => "Korisnik nema email", + ], + "Request denied" => [ + 0 => "Zahtev odbijen", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Nalog treba biti aktiviran da biste koristili ovu mogućnost", + ], + "Account already activated" => [ + 0 => "Nalog je već aktivan", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Dopustite do 15 minuta da email stigne. Možete probati ponovo kasnije", + ], + "Reset your password at %s" => [ + 0 => "Resetujte vašu lozinku na %s", + ], + "Confirmation required at %s" => [ + 0 => "Potvrda neophodna na %s", + ], + "Welcome to %s" => [ + 0 => "Dobrodošli %s", + ], + "Passwords don't match" => [ + 0 => "Šifre se ne poklapaju", + ], + "Email already being used" => [ + 0 => "Email je već u upotrebi", + ], + "Check the errors in the form to continue." => [ + 0 => "Proverite greške u formi kako biste nastavili.", + ], + "Most recent" => [ + 0 => "Najnovije", + ], + "Oldest" => [ + 0 => "Najstarije", + ], + "Most viewed" => [ + 0 => "Najviše pregleda", + ], + "Share" => [ + 0 => "Podeli", + ], + "Full info" => [ + 0 => "Detaljnije informacije", + ], + "Stats" => [ + 0 => "Statistika", + ], + "Albums" => [ + 0 => "Albumi", + ], + "Users" => [ + 0 => "Korisnici", + ], + "Settings" => [ + 0 => "Podešavanja", + ], + "Chevereto version" => [ + 0 => "Verzija Chevereto-a", + ], + "update" => [ + 0 => "ažuriranje", + ], + "PHP version" => [ + 0 => "Verzija PHP-a", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL verzija", + ], + "MySQL server info" => [ + 0 => "MySQL informacije o serveru", + ], + "GD Library" => [ + 0 => "GD Bibilioteka", + ], + "File uploads" => [ + 0 => "Fajl otpremanja", + ], + "Enabled" => [ + 0 => "Omogućeno", + ], + "Disabled" => [ + 0 => "Onemogućeno", + ], + "Max. upload size" => [ + 0 => "Maksimalna veličina otpremanja", + ], + "Max. post size" => [ + 0 => "Maksimalna veličina objave", + ], + "Max. execution time" => [ + 0 => "Maksimalno vreme izvršavanja", + ], + "%d second" => [ + 0 => "%d sekunda", + 1 => "%d sekundi", + 2 => "%d sekundi", + ], + "Memory limit" => [ + 0 => "Ograničenje memorije", + ], + "Website" => [ + 0 => "Web sajt", + ], + "Content" => [ + 0 => "Sadržaj", + ], + "Listings" => [ + 0 => "Listings", + ], + "Image upload" => [ + 0 => "Upload slika", + ], + "Categories" => [ + 0 => "Kategorije", + ], + "Flood protection" => [ + 0 => "Zaštita od poplava", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Početna", + ], + "Banners" => [ + 0 => "Baneri", + ], + "System" => [ + 0 => "Sistem", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Socijalne mreže", + ], + "External services" => [ + 0 => "Spoljni servisi", + ], + "All" => [ + 0 => "Sve", + ], + "search content" => [ + 0 => "pretraži sadržaj", + ], + "Invalid website name" => [ + 0 => "Neispravno ime web sajta", + ], + "Invalid language" => [ + 0 => "Neispravan jezik", + ], + "Invalid timezone" => [ + 0 => "Neispravna vremenska zona", + ], + "Invalid value" => [ + 0 => "Neispravna vrednost", + ], + "Invalid upload storage mode" => [ + 0 => "Režim skladištenja uploada slika", + ], + "Invalid upload filenaming" => [ + 0 => "Neispravno imenovanje uploada", + ], + "Invalid thumb width" => [ + 0 => "Neispravna veličina sličice", + ], + "Invalid thumb height" => [ + 0 => "Pogrešna visina slike za pregled", + ], + "Invalid medium width" => [ + 0 => "Pogrešna srednja širina", + ], + "Invalid theme" => [ + 0 => "Neispravna tema", + ], + "Invalid theme tone" => [ + 0 => "Pogrešna vrsta teme", + ], + "Invalid theme image listing size" => [ + 0 => "Pogrešna veličina slike za listanje u temi", + ], + "Invalid user id" => [ + 0 => "Pogrešan korisnički ID", + ], + "Invalid email mode" => [ + 0 => "Neispravan email mod", + ], + "Invalid SMTP port" => [ + 0 => "Neispravan SMTP port", + ], + "Invalid SMTP security" => [ + 0 => "Pogrešna SMTP sigurnost", + ], + "Invalid website mode" => [ + 0 => "Neispravan mod sajta", + ], + "Invalid website content privacy mode" => [ + 0 => "Neispravan mod privatnosti sadržaja sajta", + ], + "Invalid upload image path" => [ + 0 => "Neispravna putanja za upload slika", + ], + "Max. allowed %s" => [ + 0 => "Max. dopušteno %s", + ], + "Invalid SMTP server" => [ + 0 => "Neispravan SMTP server", + ], + "Invalid SMTP username" => [ + 0 => "Neispravno SMTP korisničko ime", + ], + "Invalid URL" => [ + 0 => "Pogrešan URL", + ], + "Top users" => [ + 0 => "Top članovi", + ], + "Dashboard" => [ + 0 => "Panel", + ], + "Explore" => [ + 0 => "Istraži", + ], + "About" => [ + 0 => "O nama", + ], + "Embed codes" => [ + 0 => "Kodovi", + ], + "Image ID" => [ + 0 => "ID slike", + ], + "Uploader IP" => [ + 0 => "IP Uploadera", + ], + "Upload date" => [ + 0 => "Datum uploada", + ], + "%s images" => [ + 0 => "%s slike", + ], + "Login needed" => [ + 0 => "Neophodna prijava", + ], + "Missing values" => [ + 0 => "Nedostaju vrijednosti", + ], + "Invalid role" => [ + 0 => "Pogrešna uloga", + ], + "Username already being used" => [ + 0 => "Korisničko ime je zauzeto", + ], + "%s has been disconnected." => [ + 0 => "%s je diskonektovan.", + ], + "Wrong Username/Email password combination" => [ + 0 => "Pogrešena kombinacija korisničkog imena/email i lozinke", + ], + "Sign in" => [ + 0 => "Prijavi se", + ], + "Logged out" => [ + 0 => "Odjavi se", + ], + "Search" => [ + 0 => "Pretraga", + ], + "Account" => [ + 0 => "Nalog", + ], + "Profile" => [ + 0 => "Profil", + ], + "Password" => [ + 0 => "Lozinka", + ], + "Linked accounts" => [ + 0 => "Povezani nalozi", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Email je poslat na %s sa uputstvom za aktivaciju ovog email naloga", + ], + "Invalid name" => [ + 0 => "Pogrešno ime", + ], + "Invalid website" => [ + 0 => "Pogrešan vebsajt", + ], + "Wrong password" => [ + 0 => "Pogrešna lozinka", + ], + "Use a new password" => [ + 0 => "Koristi novu lozinku", + ], + "Changes have been saved." => [ + 0 => "Promene su sačuvane", + ], + "Password has been changed" => [ + 0 => "Lozinka je promenjena", + ], + "Password has been created." => [ + 0 => "Lozinka je kreirana", + ], + "Wrong Username/Email values" => [ + 0 => "Pogrešno korisničko ime ili email", + ], + "Settings for %s" => [ + 0 => "Podešavanja za %s", + ], + "Create account" => [ + 0 => "Napravi nalog", + ], + "%s's Images" => [ + 0 => "%s's Slike", + ], + "%s's Albums" => [ + 0 => "%s's Albume", + ], + "Random" => [ + 0 => "Nasumično", + ], + "Upload" => [ + 0 => "Upload", + ], + "Sign in with another account" => [ + 0 => "Prijavite se sa drugim nalogom", + ], + "or" => [ + 0 => "ili", + ], + "Username or Email address" => [ + 0 => "Korisničko ime ili Email adresa", + ], + "Keep me logged in" => [ + 0 => "Ostavi me prijavljenog", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Nemate nalog? <a href='%s'>Registrujte se</a> odmah.", + ], + "Sign up with another account" => [ + 0 => "Registrujte se sa drugim nalogom", + ], + "Email address" => [ + 0 => "Email adresa", + ], + "Username" => [ + 0 => "Korisničko ime", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "Registracijom se slažete sa našim <a href=\"%s\">Uslovima korišćenja</a>", + ], + "My Profile" => [ + 0 => "Moj Profil", + ], + "Sign out" => [ + 0 => "Odjavi se", + ], + "Terms of service" => [ + 0 => "Uslovi korišćenja", + ], + "Privacy" => [ + 0 => "Politika privatnosti", + ], + "Contact" => [ + 0 => "Kontakt", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Primi smo zahtev za promenu email adrese <a href=\"%u\">%n</a> na %w", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Da dovršite proces morate <a href=\"%s\">aktivirati vaš email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativno možete kopirati i preneti URL u vaš browser <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Ako niste hteli ovo, samo ignorirajte ovu poruku", + ], + "This request was made from IP: %s" => [ + 0 => "Zahtev je urađen sa IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Primi smo zathev za registraciju %n naloga na%w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Da dovršite proces morate <a href=\"%s\">aktivirati vaš nalog</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Primi smo zahtev za reset vaše lozinke za vaš <a href=\"%u\">%n</a> nalog.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Da resetujte lozinku <a href=\"%s\">pratite ovaj link</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Ćao %n, dobrodošli na %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Sada kada imate nalog spremni ste da uživate upload-ujući slike, kreirati albume i još mnogo toga.", + ], + "Thank you for joining" => [ + 0 => "Hvala vam što ste se pridružili", + ], + "This email was sent from %w %u" => [ + 0 => "Email je poslan sa %w %u", + ], + "General questions/comments" => [ + 0 => "Generalna pitanja/komentari", + ], + "DMCA complaint" => [ + 0 => "DMCA žalba", + ], + "Invalid message" => [ + 0 => "Neispravna poruka", + ], + "Invalid subject" => [ + 0 => "Neispravan naslov", + ], + "Invalid reCAPTCHA" => [ + 0 => "Neispravan reCAPTCHA", + ], + "Mail error" => [ + 0 => "Greška email-a", + ], + "Message sent" => [ + 0 => "Poruka poslata", + ], + "We will be in touch soon." => [ + 0 => "Uskoro ćemo vas kontaktirati", + ], + "If you want to send a message fill the form below." => [ + 0 => "Ako želite da pošaljete poruku, popunite formular ispod.", + ], + "Name" => [ + 0 => "Ime", + ], + "Your name" => [ + 0 => "Vaše ime", + ], + "Your email address" => [ + 0 => "Vaša email adresa", + ], + "Subject" => [ + 0 => "Naslov", + ], + "Message" => [ + 0 => "Poruka", + ], + "Send message" => [ + 0 => "Pošalji poruku", + ], + "cancel" => [ + 0 => "otkaži", + ], + "Drag and drop images here to upload" => [ + 0 => "Prevuci i pusti slike ovde za upload", + ], + "Select the images to upload" => [ + 0 => "Izaberite slike za upload", + ], + "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." => [ + 0 => "Možete takođe <a data-trigger=\"anywhere-upload-input\">potražiti slike na vašem računaru</a> ili <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">dodajte URL slike</a>.", + ], + "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." => [ + 0 => "Možete takođte <a data-trigger=\"anywhere-upload-input-camera\">da slika</a>.", + ], + "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" => [ + 0 => "Upload <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">slika</span>", + ], + "The queue is being uploaded. It will take just a few seconds to complete." => [ + 0 => "Upload slika koje čekaju u redu je u toku. Još nekoliko sekundi do kraja.", + ], + "Upload complete" => [ + 0 => "Upload je završen", + ], + "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." => [ + 0 => "Sadržaj dodat u <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">javni pregled</a>. Možete <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">kreirati album</a> ili <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">premestiti <span data-text=\"queue-objects\">slike</span></a> u postojeći album.", + ], + "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." => [ + 0 => "Možete <a href=\"%s\">kreirati nalog</a> ili <a href=\"%l\">prijaviti</a> da sačuvate buduće uploade na nalog.", + ], + "No <span data-text=\"queue-objects\">images</span> have been uploaded" => [ + 0 => "Nema uploadovanih <span data-text=\"queue-objects\">slika</span>", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Došlo je do greške i sistem ne može da obradi vaš zahtev.", + ], + "Select category" => [ + 0 => "Izaberi kategoriju", + ], + "Change upload privacy" => [ + 0 => "Promeni privatnost uploada", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Označi ovo ako je upload neprikladnog sadržaja", + ], + "Not family safe upload" => [ + 0 => "Upload neprikladnog sadržaja", + ], + "Uploading" => [ + 0 => "Uploadovanje", + ], + "cancel remaining" => [ + 0 => "otkaži preostalo", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Napomena: Neke slike nije moguće uploadovati", + ], + "learn more" => [ + 0 => "saznaj više", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Proveri <a data-modal=\"simple\" data-target=\"failed-upload-result\">izveštaj o greškama</a> za više informacija.", + ], + "max" => [ + 0 => "maksimalno", + ], + "close" => [ + 0 => "zatvori", + ], + "Add image URLs" => [ + 0 => "Dodaj URL adrese slika", + ], + "Add the image URLs here" => [ + 0 => "Dodaj URL slika ovde", + ], + "Create album" => [ + 0 => "Napravi album", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Uploadovani sadržaj biće premešten u novi album. Takođe možete premestiti sadržaj u <a class=\"modal-switch\" data-switch=\"move-existing-album\">postojeći album</a>.", + ], + "Move to album" => [ + 0 => "Premestu u album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Označi postojeći album kako bi premestio upload sadržaj. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">napraviti novi album</a> i premestiti sadržaj tamo.", + ], + "Error report" => [ + 0 => "Izveštaj o greškama", + ], + "album" => [ + 0 => "album", + 1 => "albuma", + 2 => "albumi", + ], + "Links" => [ + 0 => "Linkovi", + ], + "Viewer links" => [ + 0 => "Linkovi za pregled", + ], + "Direct links" => [ + 0 => "Direktni linkovi", + ], + "HTML Codes" => [ + 0 => "HTML kodovi", + ], + "HTML embed" => [ + 0 => "HTML ugradnja", + ], + "HTML original linked" => [ + 0 => "HTML originalno linkovano", + ], + "HTML medium linked" => [ + 0 => "HTML srednji link", + ], + "HTML thumbnail linked" => [ + 0 => "HTML link slike za pregled", + ], + "BBCodes" => [ + 0 => "BBKodovi", + ], + "BBCode embed" => [ + 0 => "BBKod ugradnja", + ], + "BBCode original linked" => [ + 0 => "BBKod originalno linkovano", + ], + "BBCode medium linked" => [ + 0 => "BBCode medij linkovan", + ], + "BBCode thumbnail linked" => [ + 0 => "BBKod linkovana slika za pregled", + ], + "Category" => [ + 0 => "Kategorija", + ], + "Album name" => [ + 0 => "Ime albuma", + ], + "Untitled album" => [ + 0 => "Neimenovani album", + ], + "move to existing album" => [ + 0 => "premesti u postojeći album", + ], + "Album description" => [ + 0 => "Opis albuma", + ], + "optional" => [ + 0 => "opcionalno", + ], + "Brief description of this album" => [ + 0 => "Kratak opis ovog albuma", + ], + "Album Privacy" => [ + 0 => "Privatnost albuma", + ], + "Who can view this content" => [ + 0 => "Ko može videti sadržaj", + ], + "Public" => [ + 0 => "Javno", + ], + "Private (just me)" => [ + 0 => "Privatno (samo ja)", + ], + "Private (anyone with the link)" => [ + 0 => "Privatno (samo sa linkom)", + ], + "No category" => [ + 0 => "Nema kategorije", + ], + "Category name" => [ + 0 => "Naziv kategorije", + ], + "URL key" => [ + 0 => "URL ključ", + ], + "Category URL key" => [ + 0 => "URL ključ kategorije", + ], + "Description" => [ + 0 => "Opis", + ], + "Brief description of this category" => [ + 0 => "Kratak opis ove kategorije", + ], + "Mark this if the image is not family safe" => [ + 0 => "Označi ovo ukoliko je slika neprikladnog sadržaja", + ], + "Flag as unsafe" => [ + 0 => "Označi kao neprikladno", + ], + "Brief description of this image" => [ + 0 => "Kratak opis ove slike", + ], + "Existing album" => [ + 0 => "Postojeći album", + ], + "private" => [ + 0 => "privatno", + ], + "create new album" => [ + 0 => "kreiraj novu album", + ], + "view more" => [ + 0 => "pogledaj više", + ], + "Load more" => [ + 0 => "Učitaj više", + ], + "Previous" => [ + 0 => "Prethodno", + ], + "Next" => [ + 0 => "Sledeće", + ], + "Select all" => [ + 0 => "Označi sve", + ], + "Selection" => [ + 0 => "Izbor", + ], + "Action" => [ + 0 => "Radnja", + ], + "Get embed codes" => [ + 0 => "Preuzmi kodove", + ], + "Flag as safe" => [ + 0 => "Označi kao provereno", + ], + "Delete" => [ + 0 => "Obriši", + ], + "Clear selection" => [ + 0 => "Poništi označeno", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "Da biste koristili sve ove mogućnosti morate biti prijavljeni. Ukoliko nemate nalog možete se <a href=\"%s\">registrovati</a> odmah.", + ], + "forgot?" => [ + 0 => "zaboravili?", + ], + "Link" => [ + 0 => "Link", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Napomena: Ovaj sadržaj je privatan. Promenite privatnost u \"javno\" da biste podelili.", + ], + "There's nothing to show here." => [ + 0 => "Nema šta ovde da se pokaže.", + ], + "Edit image details" => [ + 0 => "Izmeni detalje slike", + ], + "Edit album details" => [ + 0 => "Izmeni detalje albuma", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Sve ove slike biće premeštene u novi napravljeni album. Takođe možete premestiti slike u <a class=\"modal-switch\" data-switch=\"move-existing-album\">postojeći album</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Označite postojeći album kako biste premestili sliku. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">napraviti novi album</a> i premestiti sliku tamo.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Izaberite postojeći album da prebacite sadržaj albuma. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">kreirati novi album</a> i prebaciti saržaj tu.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Označite postojeći album kako biste premestili slike. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">napraviti novi album</a> i premestiti slike tamo.", + ], + "Confirm flag content as safe" => [ + 0 => "Potvrdi oznaku oznaku sadržaja kao proverenu", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Da li zaista hoćete da označite ovaj sadržaj kao proveren?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Potvrdi oznaku sadržaja kao neproverenu", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Da li zaista hoćete da označite ovaj sadržaj kao neproveren?", + ], + "Confirm deletion" => [ + 0 => "Potvrdite brisanje", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Da li ste sigurni da želite da ukolnite ovaj sadržaj? Ovo je trajno.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Da li ste sigurni da želite da ukolnite ceo ovaj označeni sadržaj? Ovo je trajno.", + ], + "Uploaded by guest to Public" => [ + 0 => "Uploaduj kao gost za javnost", + ], + "From %s" => [ + 0 => "Od %s", + ], + "From %a by %u" => [ + 0 => "Od %a po %u", + ], + "Select" => [ + 0 => "Izaberi", + ], + "Edit" => [ + 0 => "Izmeni", + ], + "The requested page was not found." => [ + 0 => "Tražena strana nije nađena", + ], + "Search something else" => [ + 0 => "Potražite nešta drugo", + ], + "The user has been deleted" => [ + 0 => "Korisnik je obrisan", + ], + "The content has been deleted." => [ + 0 => "Sadržaj je obrisan", + ], + "Your account is almost ready" => [ + 0 => "Vaš nalog je skoro spreman", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Email je poslan na %s sa uputstvima za aktiviranje naloga. Aktivacijski link je valjan 48 sati.", + ], + "Go to homepage" => [ + 0 => "Idi na naslovnu", + ], + "Resend activation" => [ + 0 => "Pošalji ponovo aktivaciju", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Uspešno ste promenili email naloga u %s", + ], + "Go to my profile" => [ + 0 => "Idi na moj profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Potvrdni link će biti poslan sa detaljima kako aktivirati nalog", + ], + "Add email" => [ + 0 => "Dodaj email", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Email sa instrukcijama za resetovanje lozinke je poslat na vaš email koji ste koristili prilikom registracije. Ako niste primili email proverite vaše foldere za Junk/Spam.", + ], + "Resend instructions" => [ + 0 => "Ponovo pošalji instrukcije", + ], + "An error occurred. Please try again later." => [ + 0 => "Došlo je do greške. Molimo pokušajte ponovo kasnije.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Prethodni email je poslan sa instrukcijama za reset, ako ga niste dobili proverite vaš folder za email smeće.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "Upišite vaše korisničko ime ili email adresu koju ste koristili prilikom pravljenja naloga.", + ], + "Submit" => [ + 0 => "Pošalji", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Vaša lozinkia je promenjenea. Možete se sada probati prijaviti sa novom lozinkom", + ], + "Login now" => [ + 0 => "Prijavi se sada", + ], + "Enter the new password that you want to use." => [ + 0 => "Upišite novu lozinku koju želite da koristite.", + ], + "New Password" => [ + 0 => "Nova lozinka", + ], + "%d characters min" => [ + 0 => "min znakova %d", + ], + "Enter your new password" => [ + 0 => "Upišite vašu novu lozinku", + ], + "Confirm password" => [ + 0 => "Potvrdite novu lozinku", + ], + "Re-enter your new password" => [ + 0 => "Ponovite novu lozinku", + ], + "An email to %s has been sent with instructions to activate your account.n\\If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Email za %s je poslat sa instrukcijama kako aktivirati vaš nalog.n\\Ako niste primili email proverite vaše foldere za Junk/Spam.", + ], + "Enter the email address that you used to create your account to continue." => [ + 0 => "Da nastavite, upišite email adresu koju ste koristili prilikom otvaranja naloga.", + ], + "This content is private" => [ + 0 => "Sadžaj je privatan", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Dali stvarno želite obrisati ovaj album i sve slike? Ovo je nepovratno", + ], + "Delete album" => [ + 0 => "Obriši album", + ], + "Album link" => [ + 0 => "Link albuma", + ], + "Image" => [ + 0 => "slika", + 1 => "slika", + 2 => "slika", + ], + "User" => [ + 0 => "Član", + 1 => "Članova", + 2 => "Članova", + ], + "Disk used" => [ + 0 => "Iskorišćenost prostora", + ], + "Add user" => [ + 0 => "Dodaj korisnika", + ], + "Role" => [ + 0 => "Uloga", + ], + "Administrator" => [ + 0 => "Administrator", + ], + "Add category" => [ + 0 => "Dodaj kategoriju", + ], + "Website name" => [ + 0 => "Naziv vebsajta", + ], + "Website doctitle" => [ + 0 => "Podnaslov vebsajta", + ], + "Website description" => [ + 0 => "Opis vebsajta", + ], + "Website keywords" => [ + 0 => "Ključne riječi websajta", + ], + "Default time zone" => [ + 0 => "Podrazumevana vremenska zona", + ], + "Select region" => [ + 0 => "Izaberi region", + ], + "Enable this if you want to allow the explore page." => [ + 0 => "Aktivirate ovo ako želite omogućiti ISTRAŽI stranicu", + ], + "Website mode" => [ + 0 => "Mod sajta", + ], + "Private" => [ + 0 => "Privatno", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Privatni mod će sajt prikazivati samo registrovanim korisnicima.", + ], + "Content privacy mode" => [ + 0 => "Privatni mod sadržaja", + ], + "Default" => [ + 0 => "Podrazumevani", + ], + "Force private (self)" => [ + 0 => "Forsiraj privatni (za sebe)", + ], + "Force private (anyone with the link)" => [ + 0 => "Forsiraj privatni (za sve sa linkom)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Forsirani privatni mod će zaobići korisnički izabranu privatnost", + ], + "Enable uploads" => [ + 0 => "Uključi upload", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Aktivirajte ovu opciju ako želite da omogućite uplaod. Ovo podešavanje ne utiče na administratore", + ], + "Guest uploads" => [ + 0 => "Upload za goste", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Omogućite ovo ako želite da gosti uploaduju slike.", + ], + "Max. filesize" => [ + 0 => "Maksimalna veličina", + ], + "Max. allowed filesize. (Max allowed by server is %s)" => [ + 0 => "Maksimalna dopuštena veličina (maksimalno dopušteno od strane servera %s)", + ], + "Image path" => [ + 0 => "Putanja slike", + ], + "Relative to Chevereto root" => [ + 0 => "Relativna prema Chevereto bazi", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Gdje želite sačuvati slike? Relativno to Chevereto glavnom folderu", + ], + "Storage mode" => [ + 0 => "Mod čuvanja", + ], + "Datefolders" => [ + 0 => "Vremenski naziv foldera", + ], + "Direct" => [ + 0 => "Direktno", + ], + "Datefolders creates %s structure" => [ + 0 => "Vremenski nazivi foldera kreiraju strukturu %s", + ], + "File naming method" => [ + 0 => "Metoda označavanja naziva fajla", + ], + "Original" => [ + 0 => "Izvorno", + ], + "Mixed" => [ + 0 => "Izmešano", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." => [ + 0 => "\"Orginalno\" će probati da zadrži ime slike dok će \"Nasumično\" kreirati nasumično ime. \"Miješano\" je kombinacije ove dve metode.", + ], + "Thumb size" => [ + 0 => "Veličina slike za pregled", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Slike za pregled biće fiksirane na ovu veličinu.", + ], + "Medium size" => [ + 0 => "Srednja veličina", + ], + "Height will be automatic calculated." => [ + 0 => "Visina će automatski biti izračunata.", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Aktivirajte ovo ako želite dodati logo ili bilo šta drugo na stranici uploada", + ], + "Warning: Can't write in %s" => [ + 0 => "Upozorenje. Nemoguć upis u %s", + ], + "Watermark image" => [ + 0 => "Vodeni žig", + ], + "Watermark image to use. Must be a PNG." => [ + 0 => "Slika vodenog žiga za korištenje. Mora biti PNG", + ], + "Watermark position" => [ + 0 => "Pozicija vodenog žiga", + ], + "left top" => [ + 0 => "levo vrh", + ], + "left center" => [ + 0 => "levo centar", + ], + "left bottom" => [ + 0 => "levo dno", + ], + "center top" => [ + 0 => "centar vrh", + ], + "center center" => [ + 0 => "centar centar", + ], + "center bottom" => [ + 0 => "centar dno", + ], + "right top" => [ + 0 => "desno vrh", + ], + "right center" => [ + 0 => "desno centar", + ], + "right bottom" => [ + 0 => "desno dno", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Relativna pozicija slike vodenog žiga. Prvo horizontalno poravnanje a zatim vertikalno", + ], + "Watermark margin" => [ + 0 => "Margina vodenog žiga", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Margina od granica slike do slike vodenog žiga", + ], + "Watermark opacity" => [ + 0 => "Providnost vodenog žiga", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Providnost vodenog žiga na finalnoj slici. Može biti od 0 do 100", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Napomena: Brisanjem kategorije se ne brišu i slike koje pripadaju toj kategoriji.", + ], + "Edit category" => [ + 0 => "Izmeni kategoriju", + ], + "Enable signups" => [ + 0 => "Aktiviraj registracije", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Aktivirate ovo ako želite dopustiti registracije", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Blokira upload slika po IP adresi ako sistem primjeti veliki upload slika odjednom", + ], + "Notify to email" => [ + 0 => "Obavesti putem email-a", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Ako je aktivno sistem će poslati obavest o velikom broju pokušaja uploada slika", + ], + "Minute limit" => [ + 0 => "Limit po minuti", + ], + "Hourly limit" => [ + 0 => "Limit po satu", + ], + "Daily limit" => [ + 0 => "Dnevni limit", + ], + "Weekly limit" => [ + 0 => "Sedmični limit", + ], + "Monthly limit" => [ + 0 => "Mesečni limit", + ], + "Show not safe content in listings" => [ + 0 => "Prikaži nesigurne sadržaje u pregledu", + ], + "Show banners in not safe content" => [ + 0 => "Prikaži banere u neprikladnim sadržajima", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Omogućite ovu opciju ukoliko želite da prikažete banere na stranama sa neprikladnim sadržajem.", + ], + "Show not safe content in random mode" => [ + 0 => "Prikaži neprikladan sadržaj u nasumičnom modu", + ], + "List items per page" => [ + 0 => "Prikaži sadržaje po stranici", + ], + "How many items should be displayed per page listing." => [ + 0 => "Koliko sadržaja treba da bude prikazano po stranici", + ], + "List pagination mode" => [ + 0 => "Izlistaj mod paginacije", + ], + "Endless scrolling" => [ + 0 => "Beskonačno skrulovanje", + ], + "Classic pagination" => [ + 0 => "Klasična paginacija", + ], + "What pagination method should be used." => [ + 0 => "Koja metoda paginacije treba da se koristi", + ], + "Image listing size" => [ + 0 => "Veličina slike za listanje", + ], + "Fluid" => [ + 0 => "Fluidno", + ], + "Fixed" => [ + 0 => "Fiksno", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Obe metode koriste fiksnu širinu međutim fluidna metoda koristi automatski proračunatu visinu.", + ], + "Put your themes in the %s folder" => [ + 0 => "Dodajte vašu temu u %s folder", + ], + "Tone" => [ + 0 => "Vrsta", + ], + "Light" => [ + 0 => "Svetla", + ], + "Dark" => [ + 0 => "Tamna", + ], + "Enable vector logo" => [ + 0 => "Aktiviraj vektorski logo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Aktiviratje vektor logo za visoko kvalitetni logo za uređjate velike rezolucije i broja piksela", + ], + "Vector logo image" => [ + 0 => "Slika vektorskog loga", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Vektorska verzija na vašem sajtu loga u SVG formatu", + ], + "Raster logo image" => [ + 0 => "Raster slika loga", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Bitmap verzija vašeg loga. PNG format je preporučen", + ], + "Favicon image" => [ + 0 => "Favicon slika", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicion slika. Slika mora imati visinu i širinu.", + ], + "Enable download button" => [ + 0 => "Aktiviraj download dugme", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Aktivirajte ovo ako želite omogućiti download slika.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Polje za potvrdu neprikladnog sadržaja prilikom uploada", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Omogućite ovo ukoliko želite da prikažete polje za potvrdu neprikladnog sadržaja prilikom uploada.", + ], + "Custom CSS code" => [ + 0 => "Poseban CSS kod", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Dodajte vaš CSS kod, biće ubačen između <style>odmah prije </head> taga.", + ], + "Custom JS code" => [ + 0 => "Poseban JS kod", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Dodajte vaš JS kod, biće ubačen između <script>odmah prije </head> taga.", + ], + "Here you can set the codes for the predefined ad spaces." => [ + 0 => "Ovde možete ubaciti kodove za predefinirate oglasne prostore", + ], + "Before cover (homepage)" => [ + 0 => "Before cover (početna)", + ], + "After cover (homepage)" => [ + 0 => "After cover (početna)", + ], + "After listing (homepage)" => [ + 0 => "After listing (početna)", + ], + "Before pagination" => [ + 0 => "Pre paginacije", + ], + "After pagination" => [ + 0 => "Posle paginacije", + ], + "Content (image and album)" => [ + 0 => "Sadržaj (slika i album)", + ], + "Tab about column" => [ + 0 => "Tab about column", + ], + "Before comments" => [ + 0 => "Pre komentara", + ], + "Image page" => [ + 0 => "Stranica slike", + ], + "Inside viewer top (image page)" => [ + 0 => "Inside viewer top (image page)", + ], + "Expected banner size 728x90" => [ + 0 => "Očekivana veličina banera 728x90", + ], + "Inside viewer foot (image page)" => [ + 0 => "Inside viewer foot (image page)", + ], + "After image viewer (image page)" => [ + 0 => "After image viewer (image page)", + ], + "Before header (image page)" => [ + 0 => "Before header (image page)", + ], + "After header (image page)" => [ + 0 => "After header (image page)", + ], + "Footer (image page)" => [ + 0 => "Footer (image page)", + ], + "Album page" => [ + 0 => "Album page", + ], + "Before header (album page)" => [ + 0 => "Before header (album page)", + ], + "After header (album page)" => [ + 0 => "After header (album page)", + ], + "User profile page" => [ + 0 => "User profile page", + ], + "After top (user profile)" => [ + 0 => "After top (user profile)", + ], + "Before listing (user profile)" => [ + 0 => "Before listing (user profile)", + ], + "Explore page" => [ + 0 => "Explore page", + ], + "After top (explore page)" => [ + 0 => "After top (explore page)", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Ovo se koristi da konvertuje numerički ID u alfanumerički. Generisan je pri instalaciji.", + ], + "Error reporting" => [ + 0 => "Izveštaj o grešakama", + ], + "Enable this if you need to debug PHP errors." => [ + 0 => "Omogućite ovo ukoliko vam trebaju izveštaji o PHP greškama.", + ], + "Default language" => [ + 0 => "Podrazumevani jezik", + ], + "Default base language to use." => [ + 0 => "Podrazumevani osnovni jezik za korišćenje", + ], + "Auto language" => [ + 0 => "Automatski jezik", + ], + "From name" => [ + 0 => "Od", + ], + "Sender name for emails sent to users." => [ + 0 => "Ime pošiljaoca za emailove poslate korisnicima.", + ], + "Email mode" => [ + 0 => "Email mod", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Kako poslati emailove? SMTP je preporučeno.", + ], + "SMTP server and port" => [ + 0 => "SMTP server i port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP korisničko ime", + ], + "SMTP password" => [ + 0 => "SMTP lozinka", + ], + "SMTP security" => [ + 0 => "SMTP sigurnost", + ], + "Unsecured" => [ + 0 => "Bez sigurnosti", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Treba vam <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook aplikacija</a> za ovo.", + ], + "Facebook app id" => [ + 0 => "Facebook identifikacioni ključ", + ], + "Facebook app secret" => [ + 0 => "Facebook tajni ključ", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Treba vam <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter aplikacija</a> za ovo.", + ], + "Twitter API key" => [ + 0 => "Twitter API ključ", + ], + "Twitter API secret" => [ + 0 => "Twitter API tajna", + ], + "Twitter account" => [ + 0 => "Twitter nalog", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Treba vam <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google aplikacija</a> za ovo.", + ], + "Google client id" => [ + 0 => "Google ID klijenta", + ], + "Google client secret" => [ + 0 => "Google klijent tajna", + ], + "CDN allows you to offload static content to several edge servers making your website faster. If you don't have a CDN provider you should try %s." => [ + 0 => "CDN ti omogućava brže učitavanje stranica sa statičnim sadržajem putem drugih servera. Ukoliko nemaš nalog kod CDN provajdera, trebalo bi da probaš %s.", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Za ovo trabate <a href=\"%s\" target=\"_blank\">reCAPTCHA ključ</a>", + ], + "reCAPTCHA public key" => [ + 0 => "reCAPTCHA javni ključ", + ], + "reCAPTCHA private key" => [ + 0 => "reCAPTCHA privatni ključ", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA prag", + ], + "Comment code" => [ + 0 => "Kod za komentare", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook ili šta god vam treba. Biće korišćeno prilikom pregleda slika.", + ], + "Analytics code" => [ + 0 => "Kod za statistiku", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analitika ili šta god hoćete. Biće dodato u podnožju teme.", + ], + "Enable this if you are using Cloudflare." => [ + 0 => "Omogućite ovo ako koristite Cloudflare.", + ], + "For documentation about the API check <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" => [ + 0 => "Dokumentacija vezana za API proveru <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>", + ], + "API v1 key" => [ + 0 => "API v1 ključ", + ], + "Use this key when using the API v1. <a href=\"https://chevereto.com/docs/api-v1\">Learn more</a>." => [ + 0 => "Koristite ovaj ključ kada koristite API v1. <a href=\"https://chevereto.com/docs/api-v1\">Saznaj više</a>.", + ], + "Save changes" => [ + 0 => "Sačuvaj promene", + ], + "Check the errors to proceed." => [ + 0 => "Proverite greške da biste nastavili", + ], + "Guest" => [ + 0 => "Gost", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Da li zaista želite da obrišete ovu sliku? Ovo je trajno.", + ], + "Delete image" => [ + 0 => "Obriši sliku", + ], + "Added to %a and categorized in %c" => [ + 0 => "Dodato u %a i kategorisano u %c", + ], + "Added to %s" => [ + 0 => "Dodato u %s", + ], + "Uploaded to %s" => [ + 0 => "Uploadovano u %s", + ], + "Uploaded %s" => [ + 0 => "Uploadovano %s", + ], + "Share image" => [ + 0 => "Podeli sliku", + ], + "Album ID" => [ + 0 => "ID albuma", + ], + "In this album" => [ + 0 => "u ovom albumu", + ], + "Image links" => [ + 0 => "Linkovi slike", + ], + "Image URL" => [ + 0 => "URL slike", + ], + "Image link" => [ + 0 => "Link slike", + ], + "Thumbnail URL" => [ + 0 => "URL slike za pregled", + ], + "Medium URL" => [ + 0 => "Srednji URL", + ], + "Image embed codes" => [ + 0 => "Kodovi slike", + ], + "Linked image" => [ + 0 => "Linked image", + ], + "Linked medium" => [ + 0 => "Linked medium", + ], + "Linked thumbnail" => [ + 0 => "Linked thumbnail", + ], + "Upload and share your images." => [ + 0 => "Uploadujte i podelite vaše slike", + ], + "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." => [ + 0 => "Ispunite ovu sekciju uploadom slika na %s nalog.<br>Možete izmeniti ciljani korisnički ID u podešavanjama u Panelu..", + ], + "Sign up to unlock all the features" => [ + 0 => "Registrujte se da otključate sve mogućnosti", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Uređujte vaš sadržaj, kreirajte privatne albume, uređujte vaš profil i više", + ], + "Enter your password" => [ + 0 => "Upišite lozinku", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Odjavljeni ste sa %s. Nadamo se da ćemo vas videti uskoro.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Nemate ovlašćenje za pristup ovoj strani ili je link istekao.", + ], + "Results for" => [ + 0 => "Rezultati za", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Dali stvarno želite obrisati ovoga korisnika? Ovo je nepovratno", + ], + "Delete user" => [ + 0 => "Obriši korisnika", + ], + "User ID" => [ + 0 => "ID korisnika", + ], + "Register date" => [ + 0 => "Datum registracije", + ], + "Status" => [ + 0 => "Status", + ], + "Valid" => [ + 0 => "Validnost", + ], + "Banned" => [ + 0 => "Banovan", + ], + "Awaiting email" => [ + 0 => "Čekanja email-a", + ], + "Awaiting confirmation" => [ + 0 => "Čekanje potvrde", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i za %f znakova<br>Slova, brojevi i \"_\"", + ], + "Language" => [ + 0 => "Jezik", + ], + "Timezone" => [ + 0 => "Vremenska zona", + ], + "Current password" => [ + 0 => "Trenutna lozinka", + ], + "Enter your current password" => [ + 0 => "Unesite vašu lozinku", + ], + "New password" => [ + 0 => "Nova lozinka", + ], + "Confirm new password" => [ + 0 => "Potvrdite novu lozinku", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Dodajte lozinku da biste se mogli prijaviti koristeći vaše korisničko ime ili email.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Ovaj korisnik nema lozinku. Dodajte jednu koristeći ovaj formular.", + ], + "Re-enter your password" => [ + 0 => "Ponovite vašu lozinku", + ], + "loading" => [ + 0 => "učitavanje", + ], + "Upload new image" => [ + 0 => "Uploaduj novu sliku", + ], + "Delete existing image" => [ + 0 => "Obrišite postojeće slike", + ], + "This is your real name, not your username." => [ + 0 => "Ovo je vaše pravo ime, ne korisničko ime", + ], + "http://yourwebsite.com" => [ + 0 => "http://vassajt.com", + ], + "User has no connections." => [ + 0 => "Korisnik nema veza.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Link do vašeg naloga kod drugih provajdera da biste se mogli prijaviti i deliti sadržaj.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Dali stvarno želite da se diskonektujete sa ovog naloga %s?", + ], + "This account is connected to %s" => [ + 0 => "Ovaj nalog je povezan sa %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Dali stvarno želite da se diskonektujete vaš nalog %s?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Bićete odjavljeni i neće se moći prijaviti više koristeći ovaj nalog %s", + ], + "Your account is connected to %s" => [ + 0 => "Vaš nalog je povezan sa %s", + ], + "disconnect" => [ + 0 => "diskonektu", + ], + "Connect %s" => [ + 0 => "Poveži %s", + ], + "Upload profile background" => [ + 0 => "Dodaj pozadinu profila", + ], + "Change background" => [ + 0 => "Promeni pozadinu", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Pozadinska profilna slika će biti obrisana. Ovo je nepovratno. Dali sigurno želite obrisati?", + ], + "Delete background" => [ + 0 => "Obriši pozadinu", + ], + "Edit profile" => [ + 0 => "Izmeni profil", + ], + "You must enter the album name." => [ + 0 => "Morate uneti ime albuma.", + ], + "Confirm" => [ + 0 => "Potvrid", + ], + "Select existing album" => [ + 0 => "Izaberite postojeći album", + ], + "Please select a valid image file type." => [ + 0 => "Molimo odaberite validan format slike.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Molimo označite sliku od najviše veličine od %s.", + ], + "Profile image updated." => [ + 0 => "Profilna slika ažurirana.", + ], + "Profile background image updated." => [ + 0 => "Slika pozadine profila ažurirana.", + ], + "Profile background image deleted." => [ + 0 => "Slika pozadine profila obrisana.", + ], + "Error deleting profile background image." => [ + 0 => "Došlo je do greške tokom brisanja slike pozadine profila.", + ], + "File too big." => [ + 0 => "Fajl je prevelik.", + ], + "Some files couldn't be added" => [ + 0 => "Neki fajlovi nisu mogli da se dodaju", + ], + "Image edited successfully." => [ + 0 => "Slika izmenjena uspešno.", + ], + "Album edited successfully." => [ + 0 => "Album izmenjen uspešno.", + ], + "The content has been moved." => [ + 0 => "Sadržaj je premešten.", + ], + "Unselect" => [ + 0 => "Odselektuj", + ], + "The content has been edited." => [ + 0 => "Sadržaj je izmenjen.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Sve promene koje ste uradili biće izgubljene ako nastavite", + ], + "Changes saved successfully." => [ + 0 => "Promene su uspešno sačuvane", + ], + "Go back to form" => [ + 0 => "Idi nazad na formular", + ], + "continue anyway" => [ + 0 => "svedno nastavi", + ], + "Saving" => [ + 0 => "Čuvanje", + ], + "Sending" => [ + 0 => "Slanje", + ], + "Confirm action" => [ + 0 => "Potvrdi radnju", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/sv.po.cache.php b/app/.cache/languages/sv.po.cache.php new file mode 100644 index 0000000..01abb05 --- /dev/null +++ b/app/.cache/languages/sv.po.cache.php @@ -0,0 +1,1526 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2017-07-10 19:51+0000', + 'PO-Revision-Date' => '2017-07-10 19:51+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'sv', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n != 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Felaktig e-postadress", + ], + "Invalid username" => [ + 0 => "Felaktigt användarnamn", + ], + "Invalid password" => [ + 0 => "Felaktigt lösenord", + ], + "Invalid website mode" => [ + 0 => "Okänt webbplatsläge", + ], + "From email address" => [ + 0 => "Avsändarens email", + ], + "Sender email for emails sent to users." => [ + 0 => "Avsändarens e-postadress som skickas till användare", + ], + "Incoming email address" => [ + 0 => "Inkommande e-post", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Mottagare för kontaktformuläret samt systemmeddelanden", + ], + "Website mode" => [ + 0 => "Webbplatsläge", + ], + "You can switch the website mode anytime." => [ + 0 => "Du kan byta hemsidans läge närsomhelst.", + ], + "Community" => [ + 0 => "Gemenskap", + ], + "Personal" => [ + 0 => "Personligt", + ], + "Update in progress" => [ + 0 => "Uppdatering pågår", + ], + "An error occurred. Please try again later." => [ + 0 => "Något gick fel, vänligen prova igen senare.", + ], + "Missing %s file" => [ + 0 => "Saknad %s fil", + ], + "Invalid license info" => [ + 0 => "Ogiltig licensinformation", + ], + "Invalid license key" => [ + 0 => "Ogiltig licensnyckel", + ], + "Can't save file" => [ + 0 => "Kan inte spara fil", + ], + "Can't download %s" => [ + 0 => "Kan inte ladda ned %s", + ], + "Can't extract %s" => [ + 0 => "Kan inte extrahera %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Kan inte skapa %s register - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Kan inte uppdatera %s fil - %e", + ], + "Untitled" => [ + 0 => "Namnlös", + ], + "%s's images" => [ + 0 => "%s's bilder", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Notera: Detta innehåll är privat men kan ses av alla som har länken.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Notera: Detta innehåll är lösenordsskyddat. Kom ihåg att dela lösenordet med andra om du vill att de ska kunna se det.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Notera: Detta innehåll är privat, ändra sekretess till \"publikt\" för att dela.", + ], + "Private" => [ + 0 => "Privat", + ], + "Public" => [ + 0 => "Publikt", + ], + "Me" => [ + 0 => "Jag", + ], + "Link" => [ + 0 => "Länk", + ], + "Password" => [ + 0 => "Lösenord", + ], + "view" => [ + 0 => "visning", + 1 => "visningar", + ], + "After %n %t" => [ + 0 => "Efter %n %t", + ], + "Don't autodelete" => [ + 0 => "Radera inte automatiskt", + ], + "minute" => [ + 0 => "minut", + 1 => "minuter", + ], + "hour" => [ + 0 => "timme", + 1 => "timmar", + ], + "day" => [ + 0 => "dag", + 1 => "dagar", + ], + "Duplicated upload" => [ + 0 => "Duplicerad uppladdning", + ], + "Error storing file in external storage server" => [ + 0 => "Fel vid lagring av fil i extern lagringsserver", + ], + "External storage has failed" => [ + 0 => "Extern lagring misslyckad", + ], + "Private upload" => [ + 0 => "Privat uppladdning", + ], + "Upload switched to local storage" => [ + 0 => "Uppladdning flyttad till lokalt lagringsutrymme", + ], + "like" => [ + 0 => "Gilla", + 1 => "gillar", + ], + "image" => [ + 0 => "bild", + 1 => "bilder", + ], + "Recent" => [ + 0 => "Nyliga", + ], + "Trending" => [ + 0 => "Trendar", + ], + "Popular" => [ + 0 => "Populärt", + ], + "Top users" => [ + 0 => "Aktivaste användarna", + ], + "Most recent" => [ + 0 => "Nyast", + ], + "Oldest" => [ + 0 => "Äldst", + ], + "Most viewed" => [ + 0 => "Flest visningar", + ], + "Most liked" => [ + 0 => "Mest gillad", + ], + "Explore" => [ + 0 => "Bläddra", + ], + "Animated" => [ + 0 => "GIFar", + ], + "Search" => [ + 0 => "Sök", + ], + "People" => [ + 0 => "Gillar", + ], + "Image" => [ + 0 => "Bild", + 1 => "Bilder", + ], + "Album" => [ + 0 => "Album", + 1 => "Album", + ], + "User" => [ + 0 => "Användare", + 1 => "Användare", + ], + "year" => [ + 0 => "år", + 1 => "år", + ], + "month" => [ + 0 => "månad", + 1 => "månader", + ], + "week" => [ + 0 => "vecka", + 1 => "veckor", + ], + "second" => [ + 0 => "sekund", + 1 => "sekunder", + ], + "%s ago" => [ + 0 => "%s sedan", + ], + "moments ago" => [ + 0 => "alldeles nyss", + ], + "Dashboard" => [ + 0 => "Kontrollpanel", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Hemsidan är i underhållsläge. För att ångra denna inställning, gå till <a href=\"%s\">Instrumentpanel > Inställningar</a>.", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Välkommen att se och upptäcka alla mina delade bilder och album.", + ], + "That page doesn't exist" => [ + 0 => "Sidan existerar inte", + ], + "Forgot password?" => [ + 0 => "Glömt lösenord?", + ], + "Reset password" => [ + 0 => "Återställ lösenord", + ], + "Resend account activation" => [ + 0 => "Skicka aktiveringsmeddelande igen", + ], + "Add your email address" => [ + 0 => "Lägg till din e-postadress", + ], + "Email changed" => [ + 0 => "E-postadress ändrad", + ], + "The reCAPTCHA wasn't entered correctly" => [ + 0 => "Felaktig reCAPTCHA", + ], + "Invalid Username/Email" => [ + 0 => "Ogiltigt användarnamn/e-postadress", + ], + "User doesn't have an email." => [ + 0 => "Användaren har ingen e-postadress.", + ], + "Request denied" => [ + 0 => "Begäran nekad", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Kontot måste vara aktiverat för att göra detta", + ], + "Account already activated" => [ + 0 => "Kontot är redan aktiverat", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Det kan ta upp till 15 minuter för e-postmeddelandet att skickas.", + ], + "Reset your password at %s" => [ + 0 => "Återställ ditt lösenord på %s", + ], + "Confirmation required at %s" => [ + 0 => "Bekräftelse krävs på %s", + ], + "Welcome to %s" => [ + 0 => "Välkommen till %s", + ], + "Passwords don't match" => [ + 0 => "Lösenorden matchar inte", + ], + "Email already being used" => [ + 0 => "Denna e-post används redan av en annan användare.", + ], + "Check the errors in the form to continue." => [ + 0 => "Kontrollera felen innan du går vidare.", + ], + "Share" => [ + 0 => "Dela", + ], + "Embed codes" => [ + 0 => "Inbäddningskoder", + ], + "Full info" => [ + 0 => "Full info", + ], + "Stats" => [ + 0 => "Statistik", + ], + "Albums" => [ + 0 => "Album", + ], + "Users" => [ + 0 => "Användare", + ], + "Settings" => [ + 0 => "Inställningar", + ], + "Chevereto version" => [ + 0 => "Chevereto version", + ], + "PHP version" => [ + 0 => "PHP version", + ], + "Server" => [ + 0 => "Server", + ], + "MySQL version" => [ + 0 => "MySQL version", + ], + "MySQL server info" => [ + 0 => "MySQL server info", + ], + "GD Library" => [ + 0 => "GD Bibliotek", + ], + "File uploads" => [ + 0 => "Filuppladdningar", + ], + "Enabled" => [ + 0 => "Aktiverat", + ], + "Disabled" => [ + 0 => "Inaktiverat", + ], + "Max. post size" => [ + 0 => "Max. poststorlek", + ], + "Max. execution time" => [ + 0 => "Max. execution time", + ], + "%d second" => [ + 0 => "%d sekund", + 1 => "%d sekunder", + ], + "Memory limit" => [ + 0 => "Minnesgräns", + ], + "Links" => [ + 0 => "Länkar", + ], + "Website" => [ + 0 => "Hemsida", + ], + "Content" => [ + 0 => "Innehåll", + ], + "Image upload" => [ + 0 => "Bilduppladdning", + ], + "Categories" => [ + 0 => "Kategorier", + ], + "Flood protection" => [ + 0 => "Antiflood", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Hemsida", + ], + "Banners" => [ + 0 => "Banners", + ], + "System" => [ + 0 => "System", + ], + "Email" => [ + 0 => "E-post", + ], + "Social networks" => [ + 0 => "Sociala nätverk", + ], + "External services" => [ + 0 => "Externa tjänster", + ], + "All" => [ + 0 => "Alla", + ], + "search content" => [ + 0 => "Sök innehåll", + ], + "Before comments" => [ + 0 => "Före kommentarer", + ], + "Image page" => [ + 0 => "Bild sida", + ], + "Album page" => [ + 0 => "Album sida", + ], + "User profile page" => [ + 0 => "Användarprofil sida", + ], + "Invalid website name" => [ + 0 => "Ogiltigt namn på hemsidan", + ], + "Invalid language" => [ + 0 => "Ogiltigt språk", + ], + "Invalid timezone" => [ + 0 => "Ogiltig tidszon", + ], + "Invalid upload storage mode" => [ + 0 => "Ogiltig uppladdning till lagringsläge", + ], + "Invalid upload filenaming" => [ + 0 => "Ogiltig uppladdning filnamn", + ], + "Invalid thumb width" => [ + 0 => "Ogiltig bredd på miniatyrbild", + ], + "Invalid thumb height" => [ + 0 => "Ogiltig tumnagelhöjd", + ], + "Invalid theme" => [ + 0 => "Ogiltigt tema", + ], + "Invalid value" => [ + 0 => "Ogiltigt värde", + ], + "Invalid user id" => [ + 0 => "Okänd användar ID", + ], + "Invalid email mode" => [ + 0 => "Invalid email mode", + ], + "Invalid SMTP port" => [ + 0 => "Felaktig SMTP port", + ], + "Invalid SMTP security" => [ + 0 => "Fel SMTP-säkerhet", + ], + "Invalid website content privacy mode" => [ + 0 => "Ogiltig webbplatsinnehåll privat läge", + ], + "Invalid upload image path" => [ + 0 => "Ogiltlig sökväg för bilduppladdning", + ], + "Max. allowed %s" => [ + 0 => "Max tillåtna %s", + ], + "Invalid SMTP server" => [ + 0 => "Felaktig SMTP server", + ], + "Invalid SMTP username" => [ + 0 => "Felaktigt SMTP användarnamn", + ], + "About" => [ + 0 => "Om", + ], + "Image ID" => [ + 0 => "Bild ID", + ], + "Uploader IP" => [ + 0 => "Uppladdarens IP", + ], + "Upload date" => [ + 0 => "Uppladdad datum", + ], + "%s images" => [ + 0 => "%s bilder", + ], + "Direct links" => [ + 0 => "Direktlänkar", + ], + "Image URL" => [ + 0 => "Direktlänk", + ], + "Image link" => [ + 0 => "Bildlänk", + ], + "Thumbnail URL" => [ + 0 => "Liten miniatyrbild", + ], + "Medium URL" => [ + 0 => "Medelstor miniatyrbild", + ], + "Login needed" => [ + 0 => "Inloggning krävs", + ], + "Missing values" => [ + 0 => "Värden saknas", + ], + "Invalid role" => [ + 0 => "Ogitlig roll", + ], + "Username already being used" => [ + 0 => "Användarnamn används redan", + ], + "%s has been disconnected." => [ + 0 => "%s har ", + ], + "Wrong Username/Email password combination" => [ + 0 => "Felaktigt användarnamn/lösenord", + ], + "Sign in" => [ + 0 => "Logga in", + ], + "Logged out" => [ + 0 => "Utloggad", + ], + "General questions/comments" => [ + 0 => "General questions/comments", + ], + "DMCA complaint" => [ + 0 => "DMCA", + ], + "Invalid name" => [ + 0 => "Ogiltigt namn", + ], + "Invalid message" => [ + 0 => "Ogiltigt meddelande", + ], + "Invalid subject" => [ + 0 => "Ogiltigt ämne", + ], + "Invalid reCAPTCHA" => [ + 0 => "Ogiltig reCAPTCHA", + ], + "Mail error" => [ + 0 => "E-postfel", + ], + "Account" => [ + 0 => "Konto", + ], + "Profile" => [ + 0 => "Profil", + ], + "Linked accounts" => [ + 0 => "Länkade konton", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Ett email har skickats till %s med instruktioner.", + ], + "Invalid website" => [ + 0 => "Ogiltig hemsida", + ], + "Wrong password" => [ + 0 => "Felaktigt lösenord", + ], + "Use a new password" => [ + 0 => "Använd ett nytt lösenord", + ], + "Changes have been saved." => [ + 0 => "Ändringarna har sparats.", + ], + "Password has been changed" => [ + 0 => "Lösenordet har ändrats", + ], + "Password has been created." => [ + 0 => "Lösenordet har skapats", + ], + "Wrong Username/Email values" => [ + 0 => "Felaktigt användarnamn/e-post", + ], + "Settings for %s" => [ + 0 => "Inställningar för %s", + ], + "Create account" => [ + 0 => "Skapa konto", + ], + "%s's Images" => [ + 0 => "%s's Bilder", + ], + "%s's Albums" => [ + 0 => "%s's Album", + ], + "Results for" => [ + 0 => "Resultat för", + ], + "Random" => [ + 0 => "Slumpvald", + ], + "Upload" => [ + 0 => "Ladda upp", + ], + "Sign in with another account" => [ + 0 => "Logga in med ett annat konto", + ], + "or" => [ + 0 => "eller", + ], + "Username or Email address" => [ + 0 => "Användarnamn eller e-postadress", + ], + "Keep me logged in" => [ + 0 => "Kom ihåg mig", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Har du inget konto? <a href='%s'>Skaffa ett</a> nu.", + ], + "Sign up with another account" => [ + 0 => "Registrera med ett annat konto", + ], + "Email address" => [ + 0 => "E-postadress", + ], + "Username" => [ + 0 => "Användarnamn", + ], + "By signing up you agree to our <a href=\"%s\">Terms of service</a>" => [ + 0 => "Genom att registrera dig accepterar du våra <a href=\"%s\">villkor</a>", + ], + "loading" => [ + 0 => "laddar", + ], + "My Profile" => [ + 0 => "Min profil", + ], + "Sign out" => [ + 0 => "Logga ut", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "För att slutföra processen måste du <a href=\"%s\">bekräfta din email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternativt kan du kopiera och klistra in adressen i webbläsaren: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Om detta inte stämmer kan du ignorera detta mail.", + ], + "This request was made from IP: %s" => [ + 0 => "Begäran gjordes från IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Du (förhoppningsvis) vill registrera kontot %n hos %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "För att slutföra registreringen måste du <a href=\"%s\">aktivera ditt konto</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Vi har mottagit en begäran om att återställa lösenordet för kontot <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "För att återställa lösenordet, <a href=\"%s\">klicka här</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Hej %n, välkommen till %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Kul att du registrerade dig! Du kan nu ladda upp bilder, skapa album och dela (eller inte dela) med dina nära och kära!", + ], + "Thank you for joining" => [ + 0 => "Tack för att du registrerade dig", + ], + "This email was sent from %w %u" => [ + 0 => "Detta mail skickades från %w %u", + ], + "Select the images to upload" => [ + 0 => "Välj bilder att ladda upp", + ], + "Upload complete" => [ + 0 => "Uppladdning klar", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Det blev ett fel och systemet kunde inte hantera din begärda åtgärd.", + ], + "Category" => [ + 0 => "Kategori", + ], + "Select category" => [ + 0 => "Välj kategori", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Markera denna om uppladdningen inte är familjesäker", + ], + "Not family safe upload" => [ + 0 => "Inte familje säker uppladdning", + ], + "Uploading" => [ + 0 => "Laddar upp", + ], + "cancel" => [ + 0 => "avbryt", + ], + "cancel remaining" => [ + 0 => "avbryt kvarvarande", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Notis: Vissa bilder kunde inte laddas upp", + ], + "learn more" => [ + 0 => "läs mer", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Kolla <a data-modal=\"simple\" data-target=\"failed-upload-result\">felrapporteringen</a> för mer information.", + ], + "max" => [ + 0 => "max", + ], + "close" => [ + 0 => "stäng", + ], + "Edit" => [ + 0 => "Redigera", + ], + "optional" => [ + 0 => "valfritt", + ], + "Flag as unsafe" => [ + 0 => "Markera som osäkert", + ], + "Description" => [ + 0 => "Beskrivning", + ], + "Brief description of this image" => [ + 0 => "Kort beskrivning av bilden", + ], + "Add image URLs" => [ + 0 => "Lägg till URL till bild", + ], + "Add the image URLs here" => [ + 0 => "Lägg till URL till bild här", + ], + "Create album" => [ + 0 => "Skapa album", + ], + "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Allt uppladdat innehåll kommer att flyttas till detta nya album. Du kan också flytta innehållet till ett <a class=\"modal-switch\" data-switch=\"move-existing-album\">existerande album</a>.", + ], + "Move to album" => [ + 0 => "Flytta till album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Välj ett existerande album för att flytta innehållet. Du kan också <a class=\"modal-switch\" data-switch=\"move-new-album\">skapa ett nytt album</a> och flytta allt innehåll dit.", + ], + "Error report" => [ + 0 => "Felrapport", + ], + "album" => [ + 0 => "album", + 1 => "album", + ], + "Viewer links" => [ + 0 => "Kortlänkar", + ], + "HTML Codes" => [ + 0 => "HTML-kod", + ], + "HTML medium linked" => [ + 0 => "HTML-länk mediumstor", + ], + "HTML thumbnail linked" => [ + 0 => "HTML-länk miniatyrbild", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode medium linked" => [ + 0 => "BBCode mellanstor link", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode länk miniatyrbild", + ], + "Album name" => [ + 0 => "Albumnamn", + ], + "move to existing album" => [ + 0 => "flytta till befintligt album", + ], + "Album description" => [ + 0 => "Album beskrivning", + ], + "Who can view this content" => [ + 0 => "Vem kan se detta innehåll", + ], + "Private (just me)" => [ + 0 => "Privat (bara jag)", + ], + "Name" => [ + 0 => "Namn", + ], + "Category name" => [ + 0 => "Kategori namn", + ], + "URL key" => [ + 0 => "URL nyckel", + ], + "Category URL key" => [ + 0 => "Kategori URL nyckel", + ], + "Message" => [ + 0 => "Meddelande", + ], + "Existing album" => [ + 0 => "Existerande album", + ], + "create new album" => [ + 0 => "Skapa nytt album", + ], + "view more" => [ + 0 => "se mer", + ], + "Load more" => [ + 0 => "Ladda mer", + ], + "Select all" => [ + 0 => "Välj alla", + ], + "Clear selection" => [ + 0 => "Plocka bort val", + ], + "Action" => [ + 0 => "Funktion", + ], + "Flag as safe" => [ + 0 => "Markera som säker uppladdning", + ], + "Delete" => [ + 0 => "Radera", + ], + "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." => [ + 0 => "För att använda alla funktioner på denna webbplats måste du logga in. Om du inte har ett konto kan du <a href=\"%s\">skapa ett nu</a>.", + ], + "There's nothing to show here." => [ + 0 => "Finns inget att visa här", + ], + "Edit image details" => [ + 0 => "Ändra bilddetaljer", + ], + "Edit album details" => [ + 0 => "Ändra albumdetaljer", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Alla bilder kommer att flyttas till detta nya album. Du kan också flytta bilderna till <a class=\"modal-switch\" data-switch=\"move-existing-album\">ett existerande album</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Välj ett redan existerande album att flytta bilderna till. Du kan också <a class=\"modal-switch\" data-switch=\"move-new-album\">skapa ett nytt album</a> och flytta bilderna dit.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Välj ett redan existerande album att flytta bilderna till. Du kan också <a class=\"modal-switch\" data-switch=\"move-new-album\">skapa ett nytt album</a> och flytta bilderna dit.", + ], + "Confirm deletion" => [ + 0 => "Bekräfta radering", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Vill du verkligen radera detta innehåll? Detta kan inte ångras.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Vill du verkligen radera dessa valda delar? Detta kan inte ångras.", + ], + "From %s" => [ + 0 => "Från %s", + ], + "Select" => [ + 0 => "Markera", + ], + "The requested page was not found." => [ + 0 => "Den begärda sidan kunde inte hittas", + ], + "Search something else" => [ + 0 => "Sök efter något annat", + ], + "The user has been deleted" => [ + 0 => "Användaren har raderats", + ], + "The content has been deleted." => [ + 0 => "Innehållet har raderats.", + ], + "Your account is almost ready" => [ + 0 => "Ditt konto är nästan klart", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Ett e-postmeddelande har skickats till %s med instruktioner för hur du aktiverar ditt konto. Länken i e-postmeddelandet är giltig i 48 timmar. Glöm inte att kolla skräpmappen.", + ], + "Go to homepage" => [ + 0 => "Gå till startsidan", + ], + "Resend activation" => [ + 0 => "Skicka aktivering igen", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Du har ändrat din e-post till %s", + ], + "Go to my profile" => [ + 0 => "Gå till min profil", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "En aktiveringslänk kommer skickas till mailen.", + ], + "Your email address" => [ + 0 => "Din e-postadress", + ], + "Add email" => [ + 0 => "Lägg till e-postadress", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Ett e-postmeddelande med instruktioner om hur du byter lösenord har skickats till angiven e-postadress. Om du inte få meddelandet direkt kolla så att det inte har fastnat i något spamfilter.", + ], + "Resend instructions" => [ + 0 => "Skicka instruktioner igen", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters.", + ], + "Enter your username or the email address that you used to create your account." => [ + 0 => "Ange ditt användarnamn eller e-postadress så skickar vi dina uppgifter.", + ], + "Submit" => [ + 0 => "Skicka", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Ditt lösenord har ändrats. Du kan nu logga in.", + ], + "Login now" => [ + 0 => "Logga in nu", + ], + "Enter the new password that you want to use." => [ + 0 => "Ange det nya lösenordet du vill använda.", + ], + "New Password" => [ + 0 => "Nytt lösenord", + ], + "%d characters min" => [ + 0 => "%d characters min", + ], + "Enter your new password" => [ + 0 => "Ange ditt nya lösenord", + ], + "Confirm password" => [ + 0 => "Bekräfta lösenord", + ], + "Re-enter your new password" => [ + 0 => "Skriv in lösenordet igen", + ], + "This content is private" => [ + 0 => "Detta innehåll är privat", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Vill du verkligen radera albumet och alla dess bilder? Detta kan inte ångras.", + ], + "Delete album" => [ + 0 => "Radera album", + ], + "Album link" => [ + 0 => "Länk till album", + ], + "Disk used" => [ + 0 => "Använt utrymme", + ], + "Add user" => [ + 0 => "Lägg till användare", + ], + "Role" => [ + 0 => "Roll", + ], + "Administrator" => [ + 0 => "Administratör", + ], + "Add category" => [ + 0 => "Lägg till kategori", + ], + "Website name" => [ + 0 => "Hemsidans namn", + ], + "Website doctitle" => [ + 0 => "Hemsidans doctitle", + ], + "Website description" => [ + 0 => "Hemsidans beskrivning", + ], + "Website keywords" => [ + 0 => "Nyckelord för sidan", + ], + "Default time zone" => [ + 0 => "Standard tidszon", + ], + "Select region" => [ + 0 => "Välj region", + ], + "User ID" => [ + 0 => "Användar-ID", + ], + "Content privacy mode" => [ + 0 => "Innehåll privat läge", + ], + "Default" => [ + 0 => "Standard", + ], + "Force private (self)" => [ + 0 => "Tvinga privat (själv)", + ], + "Force private (anyone with the link)" => [ + 0 => "Tvinga privat (Alla med en länk)", + ], + "Enable uploads" => [ + 0 => "Aktivera uppladdningar", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Tillåt uppladdning av bilder. Detta påverkar inte administratörer.", + ], + "Guest uploads" => [ + 0 => "Gästuppladdningar", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Aktivera detta om du vill tillåta icke registrerade användare att ladda upp.", + ], + "Image path" => [ + 0 => "Sökväg för bild", + ], + "Relative to Chevereto root" => [ + 0 => "Relative to Chevereto root", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Var ska bilderna lagras?", + ], + "Storage mode" => [ + 0 => "Lagringsläge", + ], + "Datefolders" => [ + 0 => "Datummappar", + ], + "Direct" => [ + 0 => "Direkt", + ], + "Datefolders creates %s structure" => [ + 0 => "Datummappar skapar %s struktur", + ], + "File naming method" => [ + 0 => "Metod för att namnge bilder", + ], + "Original" => [ + 0 => "Original", + ], + "Thumb size" => [ + 0 => "Storlek på miniatyrbild", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Miniatyrbilder kommer att fastställas till den här storleken.", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Aktivera denna för att lägga till en logotyp eller vad du vill i bilduppladdning.", + ], + "Warning: Can't write in %s" => [ + 0 => "Varning: Kan inte skriva till %s", + ], + "Watermark image" => [ + 0 => "Vattenmärkningsbild", + ], + "Watermark position" => [ + 0 => "Position för vattenmärkning", + ], + "left top" => [ + 0 => "vänster övre", + ], + "left center" => [ + 0 => "vänster center", + ], + "left bottom" => [ + 0 => "vänster nedre", + ], + "center top" => [ + 0 => "center övre", + ], + "center center" => [ + 0 => "center center", + ], + "center bottom" => [ + 0 => "center nedre", + ], + "right top" => [ + 0 => "höger övre", + ], + "right center" => [ + 0 => "höger center", + ], + "right bottom" => [ + 0 => "höger nedre", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Relativ position av vattenmärkning. Först är vågrätt och sen lodrätt led", + ], + "Watermark margin" => [ + 0 => "Marginal av vattenmärkning", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Marginal från ramen i bilden till vattenmärkning", + ], + "Watermark opacity" => [ + 0 => "Opacitet av vattenmärkning", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Opacitet av vattenmärkning i den slutliga bilden. Värden från 0 till 100.", + ], + "Edit category" => [ + 0 => "Ändra kategori", + ], + "Enable signups" => [ + 0 => "Aktivera registreringar", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Aktivera om du vill tillåta användare att registrera sig.", + ], + "Require email confirmation" => [ + 0 => "Kräv epost validering", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators.", + ], + "Notify to email" => [ + 0 => "Notify to email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "If enabled the system will send an email on flood incidents.", + ], + "Minute limit" => [ + 0 => "Minutgräns", + ], + "Hourly limit" => [ + 0 => "Timgräns", + ], + "Daily limit" => [ + 0 => "Dagsgräns", + ], + "Weekly limit" => [ + 0 => "Veckogräns", + ], + "Monthly limit" => [ + 0 => "Månadsgräns", + ], + "List items per page" => [ + 0 => "Lista objekt per sida", + ], + "How many items should be displayed per page listing." => [ + 0 => "Hur många poster ska visas per sida.", + ], + "List pagination mode" => [ + 0 => "Lista paginering läge", + ], + "Endless scrolling" => [ + 0 => "Oändlig skrollning", + ], + "Classic pagination" => [ + 0 => "Klassisk paginering", + ], + "What pagination method should be used." => [ + 0 => "Vilken paginerings metod ska användas.", + ], + "Fluid" => [ + 0 => "Flytande", + ], + "Fixed" => [ + 0 => "Fixerad", + ], + "Put your themes in the %s folder" => [ + 0 => "Lägg dina teman i %s mappen", + ], + "Enable vector logo" => [ + 0 => "Aktivera vektor logotyp", + ], + "Vector logo image" => [ + 0 => "Logotyp i vektor format", + ], + "Favicon image" => [ + 0 => "Favicon bild", + ], + "Enable download button" => [ + 0 => "Aktivera nerladdningsknapp", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Aktivera om du vill visa bild nerladdningsknappen", + ], + "Custom CSS code" => [ + 0 => "Anpassad CSS kod", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Sätt in din anpassade CSS kod här. Den kommer att läggas till inom <style> precis före </head> taggen.", + ], + "Custom JS code" => [ + 0 => "Anpassad JS kod", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Sätt in din anpassade JS kod här. Den kommer att läggas till inom <script> precis före </head> taggen.", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Vill du verkligen radera bilden? Kan ej ångras.", + ], + "Delete image" => [ + 0 => "Radera bild", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "This is the salt used to convert numeric ID to alphanumeric. It was generated on install.", + ], + "Default language" => [ + 0 => "Standardspråk", + ], + "Default base language to use." => [ + 0 => "Standardspråk att använda", + ], + "Auto language" => [ + 0 => "Sätt språk automatiskt", + ], + "From name" => [ + 0 => "Avsändarens namn", + ], + "Sender name for emails sent to users." => [ + 0 => "Avsändarens namn för e-post skickat till användare", + ], + "Email mode" => [ + 0 => "E-postläge", + ], + "How to send emails? SMTP recommended." => [ + 0 => "How to send emails? SMTP recommended.", + ], + "SMTP server and port" => [ + 0 => "SMTP server och port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP användarnamn", + ], + "SMTP password" => [ + 0 => "SMTP lösenord", + ], + "SMTP security" => [ + 0 => "SMTP säkerhet", + ], + "Unsecured" => [ + 0 => "Osäker", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Du behöver en <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> för detta.", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Du behöver <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> för detta.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter konto", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Du behöver <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> för detta.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "Comment code" => [ + 0 => "Comment code", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook eller det du vill kommer att användas i bildvyn.", + ], + "Analytics code" => [ + 0 => "Analytics code", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics eller det du vill använda kommer att läggas till i footern på temat.", + ], + "API v1 key" => [ + 0 => "API nyckel v1", + ], + "Save changes" => [ + 0 => "Spara ändringar", + ], + "Check the errors to proceed." => [ + 0 => "Undersök felen innan du fortsätter.", + ], + "Guest" => [ + 0 => "Gäst", + ], + "Added to %s" => [ + 0 => "Tillagt i %s", + ], + "Uploaded to %s" => [ + 0 => "Uppladdad till %s", + ], + "Uploaded %s" => [ + 0 => "Uppladdad %s", + ], + "Share image" => [ + 0 => "Dela bild", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "In this album" => [ + 0 => "I detta album", + ], + "Upload and share your images." => [ + 0 => "Ladda upp och dela dina bilder.", + ], + "Sign up to unlock all the features" => [ + 0 => "Registrera dig för att låsa upp alla funktioner", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Hantera ditt innehåll, skapa privata album, anpassa din profil och mer.", + ], + "Enter your password" => [ + 0 => "Ange ditt lösenord", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Du har loggats ut från %s. På återseende!", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Du har inte tillåtelse att besöka denna sida, alternativt har länken dött.", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Vill du verkligen radera denna användare? Går ej att ångra.", + ], + "Delete user" => [ + 0 => "Radera användare", + ], + "Register date" => [ + 0 => "Blev medlem", + ], + "Status" => [ + 0 => "Status", + ], + "Valid" => [ + 0 => "Aktiv", + ], + "Banned" => [ + 0 => "Bannad", + ], + "Awaiting email" => [ + 0 => "Väntar e-post", + ], + "Awaiting confirmation" => [ + 0 => "Väntar på aktivering", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i till %f tecken<br>Bokstäver, siffror och \"_\"", + ], + "Language" => [ + 0 => "Språk", + ], + "Timezone" => [ + 0 => "Tidszon", + ], + "Current password" => [ + 0 => "Nuvarande lösenord", + ], + "Enter your current password" => [ + 0 => "Ange ditt nuvarande lösenord", + ], + "New password" => [ + 0 => "Nytt lösenord", + ], + "Confirm new password" => [ + 0 => "Bekräfta nytt lösenord", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Lägg till ett lösenord för att kunna logga in med ditt användarnamn eller e-post.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Denna användare har inget lösenord. Ange ett med detta formulär.", + ], + "Re-enter your password" => [ + 0 => "Ange ditt lösenord igen", + ], + "Upload new image" => [ + 0 => "Ladda upp ny bild", + ], + "Delete existing image" => [ + 0 => "Radera existerande bild", + ], + "This is your real name, not your username." => [ + 0 => "Detta är ditt riktiga namn, inte ditt användarnamn.", + ], + "http://yourwebsite.com" => [ + 0 => "http://minsida.se", + ], + "User has no connections." => [ + 0 => "Användaren har inga anslutningar.", + ], + "Link your account to external services to be able to login and share content." => [ + 0 => "Länka ditt konto till de externa tjänsterna för att logga in och dela innehållet.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Vill du verkligen koppla bort %s från detta konto?", + ], + "This account is connected to %s" => [ + 0 => "Detta konto är anslutet till %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Vill du verkligen koppla bort ditt %s konto?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Du kommer att loggas ut och du kommer inte att kunna logga in med %s kontot.", + ], + "Your account is connected to %s" => [ + 0 => "Ditt konto är kopplat till %s", + ], + "disconnect" => [ + 0 => "stäng av", + ], + "Connect %s" => [ + 0 => "Anslut %s", + ], + "Upload profile background" => [ + 0 => "Ladda upp profilbakgrund", + ], + "Change background" => [ + 0 => "Ändra bakgrund", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Bakgrundsbilden kommer att raderas. Detta kan inte bli ogjort. Är du säker på att du vill radera bakgrundsbilden?", + ], + "Delete background" => [ + 0 => "Radera bakgrund", + ], + "Edit profile" => [ + 0 => "Redigera profil", + ], + "You must enter the album name." => [ + 0 => "Du måste ange ett namn på albumet.", + ], + "Confirm" => [ + 0 => "Bekräfta", + ], + "Select existing album" => [ + 0 => "Välj befintligt album", + ], + "Please select a valid image file type." => [ + 0 => "Vänligen välj en giltig filtyp för bilder.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Bilden får inte vara större än %s.", + ], + "Profile image updated." => [ + 0 => "Profilbild uppdaterad.", + ], + "Profile background image updated." => [ + 0 => "Profilbakgrund uppdaterad.", + ], + "Profile background image deleted." => [ + 0 => "Profilbakgrund raderad.", + ], + "Error deleting profile background image." => [ + 0 => "Fel, kunde inte radera profilbakgrunden.", + ], + "File too big." => [ + 0 => "Filen är för stor.", + ], + "Some files couldn't be added" => [ + 0 => "Vissa filer kunde inte läggas till", + ], + "Image edited successfully." => [ + 0 => "Bilden har ändrats.", + ], + "private" => [ + 0 => "privat", + ], + "Album edited successfully." => [ + 0 => "Albumet har ändrats.", + ], + "The content has been moved." => [ + 0 => "Innehållet har flyttats.", + ], + "Unselect" => [ + 0 => "Avmarkera", + ], + "The content has been edited." => [ + 0 => "Innehållet har ändrats.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Alla ändringar kommer försvinna.", + ], + "Changes saved successfully." => [ + 0 => "Ändringarna sparades.", + ], + "Go back to form" => [ + 0 => "Gå tillbaka till formulär", + ], + "continue anyway" => [ + 0 => "Fortsätt ändå", + ], + "Saving" => [ + 0 => "Sparar", + ], + "Sending" => [ + 0 => "Skickar", + ], + "Confirm action" => [ + 0 => "Bekräfta", + ], + "information" => [ + 0 => "Information", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/th.po.cache.php b/app/.cache/languages/th.po.cache.php new file mode 100644 index 0000000..0ebf50f --- /dev/null +++ b/app/.cache/languages/th.po.cache.php @@ -0,0 +1,3416 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:16+0000', + 'PO-Revision-Date' => '2020-09-02 17:16+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'th', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "อีเมลผิดพลาด", + ], + "Invalid username" => [ + 0 => "ยูสเซอร์เนมผิดพลาด", + ], + "Invalid password" => [ + 0 => "พาสเวิร์ดผิดพลาด", + ], + "Invalid website mode" => [ + 0 => "โหมดของเว็บไซด์ผิดพลาด", + ], + "From email address" => [ + 0 => "จากอีเมล", + ], + "Sender email for emails sent to users." => [ + 0 => "อีเมลของผู้ส่ง สำหรับส่งไปยังผู้ใช้", + ], + "Incoming email address" => [ + 0 => "อีเมลขาเข้า", + ], + "Recipient for contact form and system alerts." => [ + 0 => "ผู้รับแบบฟอร์มการติดต่อและระบบจะแจ้งเตือน", + ], + "Website mode" => [ + 0 => "โหมดเว็บไซต์", + ], + "You can switch the website mode anytime." => [ + 0 => "คุณสามารถสลับไปยังโหมดเว็บไซต์ได้ตลอดเวลา", + ], + "Community" => [ + 0 => "ชุมชน", + ], + "Personal" => [ + 0 => "ส่วนบุคคล", + ], + "Installed version is v%s" => [ + 0 => "รุ่นที่ติดตั้งคือ v%s", + ], + "Can't connect to %s" => [ + 0 => "ไม่สามารถเชื่อมต่อกับ %s", + ], + "Last available release is v%s" => [ + 0 => "รุ่นที่เผยแพร่ครั้งล่าสุดคือ v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "ต้องอัปเดตดำเนินการต่อในการดาวน์โหลด", + ], + "No update needed" => [ + 0 => "ไม่จำเป็นต้องอัพเดต", + ], + "System files already up to date" => [ + 0 => "ไฟล์ระบบอัปเดตแล้ว", + ], + "Starting v%s download" => [ + 0 => "กำลังเริ่มดาวน์โหลด v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "ดาวน์โหลด v%s, แล้วดำเนินการต่อในการสกัด", + ], + "Attempting to extract v%s" => [ + 0 => "กำลังพยายามดึง v%s", + ], + "Extraction completed" => [ + 0 => "การสกัดเสร็จสิ้นแล้ว", + ], + "Proceding to install the update" => [ + 0 => "ขั้นตอนการติดตั้งการปรับปรุง", + ], + "Update failed" => [ + 0 => "การอัพเดทล้มเหลว", + ], + "Update in progress" => [ + 0 => "ความคืบหน้าอัปเดต", + ], + "Missing %s file" => [ + 0 => "ไฟล์ %s หายไป", + ], + "Invalid license info" => [ + 0 => "ข้อมูลใบอนุญาตไม่ถูกต้อง", + ], + "Invalid license key" => [ + 0 => "คีย์ใบอนุญาตไม่ถูกต้อง", + ], + "Can't save file" => [ + 0 => "ไม่สามารถบันทึกไฟล์", + ], + "Can't download %s" => [ + 0 => "ดาวน์โหลด %s ไม่ได้", + ], + "Can't extract %s" => [ + 0 => "ไม่สามารถแยก %s", + ], + "Can't create %s directory - %e" => [ + 0 => "ไม่สามารถสร้าง %s ไดเรกทอรี - %e", + ], + "Can't update %s file - %e" => [ + 0 => "ไม่สามารถอัปเดต %s ไฟล์ - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "เช็คคำผิดในฟอร์มและทำอีกครั้ง", + ], + "You must enter the album name." => [ + 0 => "คุณต้องป้อนชื่ออัลบั้ม", + ], + "Confirm" => [ + 0 => "ยืนยัน", + ], + "Select existing album" => [ + 0 => "เลือกอัลบั้มที่มีอยู่", + ], + "An error occurred. Please try again later." => [ + 0 => "เกิดข้อผิดพลาด. กรุณาลองใหม่อีกครั้งในภายหลัง.", + ], + "Please select a valid image file type." => [ + 0 => "กรุณาเลือกประเภทของไฟล์ภาพที่ถูกต้อง", + ], + "Please select a picture of at most %s size." => [ + 0 => "โปรดเลือกรูปภาพขนาดไม่ใหญ่กว่า %s", + ], + "Profile image updated." => [ + 0 => "เปลี่ยนภาพโปรไฟล์", + ], + "Profile background image updated." => [ + 0 => "อัปเดตภาพพื้นหลังของโปรไฟล์แล้ว", + ], + "Profile background image deleted." => [ + 0 => "ลบภาพพื้นหลังโปรไฟล์แล้ว", + ], + "Error deleting profile background image." => [ + 0 => "เกิดข้อผิดพลาดในการลบภาพพื้นหลังโปรไฟล์", + ], + "Passwords don't match" => [ + 0 => "รหัสผ่านไม่ตรงกัน", + ], + "Update available v%s" => [ + 0 => "อัปเดต v%s ที่พร้อมใช้งาน", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "มีการอัปเดตสำหรับระบบของคุณ คุณสามารถดาวน์โหลดและติดตั้งโปรแกรมปรับปรุงนี้โดยอัตโนมัติหรือไปที่ %s เพื่อดำเนินการดาวน์โหลดไฟล์ต่อ", + ], + "The release notes for this update are:" => [ + 0 => "บันทึกรุ่นสำหรับการปรับปรุงนี้:", + ], + "Update now" => [ + 0 => "อัปเดตเดี๋ยวนี้", + ], + "or" => [ + 0 => "หรือ", + ], + "cancel" => [ + 0 => "ยกเลิก", + ], + "This website is running latest %s version" => [ + 0 => "เว็บไซต์นี้กำลังเรียกใช้เวอร์ชัน %s ล่าสุด", + ], + "loading" => [ + 0 => "โหลด", + ], + "Toggle select" => [ + 0 => "สลับการเลือก", + ], + "Like" => [ + 0 => "ถูกใจ", + ], + "Toggle flag" => [ + 0 => "สลับสถานะ", + ], + "Edit" => [ + 0 => "แก้ไข", + ], + "Album" => [ + 0 => "อัลบั้ม", + ], + "Delete" => [ + 0 => "ลบ", + ], + "Close" => [ + 0 => "ปิด", + ], + "Previous" => [ + 0 => "ก่อนหน้า", + ], + "Next" => [ + 0 => "ถัดไป", + ], + "Clipboard image" => [ + 0 => "ภาพคลิปบอร์ด", + ], + "File too big." => [ + 0 => "ไฟล์ใหญ่เกินไป", + ], + "Invalid or unsupported file format." => [ + 0 => "รูปแบบไฟล์ที่ไม่ถูกต้องหรือไม่สนับสนุน", + ], + "Some files couldn't be added" => [ + 0 => "ไฟล์บางไฟล์ไม่สามารถเพิ่มได้", + ], + "image" => [ + 0 => "รูป", + ], + "%s's Albums" => [ + 0 => "อัลบั้มของ %s", + ], + "Image edited successfully." => [ + 0 => "แก้ไขภาพที่ประสบความสำเร็จ", + ], + "private" => [ + 0 => "ส่วนตัว", + ], + "Album edited successfully." => [ + 0 => "อัลบั้มประสบความสำเร็จในการแก้ไข", + ], + "Invalid URL key." => [ + 0 => "คีย์ URL ไม่ถูกต้อง", + ], + "Category URL key already being used." => [ + 0 => "มีการใช้คีย์ URL นี้อยู่แล้ว", + ], + "Category successfully deleted." => [ + 0 => "ลบหมวดหมู่สำเร็จแล้ว", + ], + "Category %s added." => [ + 0 => "เพิ่มประเภท %s แล้ว", + ], + "Invalid expiration date." => [ + 0 => "วันหมดอายุไม่ถูกต้อง", + ], + "IP %s already banned." => [ + 0 => "ไอพี %s นี้โดนแบนอยู่แล้ว", + ], + "IP %s banned." => [ + 0 => "ไอพี %s โดนแบน", + ], + "IP ban successfully deleted." => [ + 0 => "ลบ IP เรียบร้อยแล้ว", + ], + "Please fill all the required fields." => [ + 0 => "โปรดกรอกข้อมูลในฟิลด์ที่จำเป็นทั้งหมด", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "ค่าความสามารถจัดเก็บไม่ถูกต้อง ให้แน่ใจว่าจะใช้รูปแบบที่ถูกต้อง", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "พื้นที่จัดเก็บไม่สามารถกำหนดให้ต่ำกว่า การใช้งานในปัจจุบันได้ (%s)", + ], + "Invalid URL." => [ + 0 => "URL ไม่ถูกต้อง.", + ], + "Storage successfully edited." => [ + 0 => "ประสบความสำเร็จในการจัดเก็บข้อมูลการแก้ไข", + ], + "User added successfully." => [ + 0 => "เพิ่มผู้ใช้สำเร็จแล้ว", + ], + "The content has been deleted." => [ + 0 => "ลบเนื้อหาแล้ว", + ], + "The content has been moved." => [ + 0 => "ย้ายเนื้อหาไปแล้ว", + ], + "Select" => [ + 0 => "เลือก", + ], + "Unselect" => [ + 0 => "ยกเลิกการเลือก", + ], + "The content has been edited." => [ + 0 => "เนื้อหาที่ได้รับการแก้ไข", + ], + "album" => [ + 0 => "อัลบั้ม", + ], + "Untitled" => [ + 0 => "ไม่มีชื่อ", + ], + "%s's images" => [ + 0 => "%s รูป", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "หมายเหตุ: เนื้อหานี้เป็นส่วนตัว แต่ทุกคนที่มีการเชื่อมโยงจะสามารถเห็นได้", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "หมายเหตุ: เนื้อหานี้มีรหัสผ่านป้องกัน อย่าลืมส่งรหัสผ่านเนื้อหาที่จะแบ่งปัน", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "หมายเหตุ: เนื้อหานี้มีความเป็นส่วนตัว เปลี่ยนความเป็นส่วนตัวเป็น \"สาธารณะ\" เพื่อที่จะแบ่งปัน", + ], + "Private" => [ + 0 => "ส่วนตัว", + ], + "Public" => [ + 0 => "สาธารณะ", + ], + "Me" => [ + 0 => "ฉัน", + ], + "Link" => [ + 0 => "ลิงก์", + ], + "Password" => [ + 0 => "รหัสผ่าน", + ], + "view" => [ + 0 => "จำนวนคนดู", + ], + "After %n %t" => [ + 0 => "หลังจาก %n %t", + ], + "minute" => [ + 0 => "นาที", + ], + "hour" => [ + 0 => "ชั่วโมง", + ], + "day" => [ + 0 => "วัน", + ], + "week" => [ + 0 => "อาทิตย์", + ], + "month" => [ + 0 => "เดือน", + ], + "year" => [ + 0 => "ปี", + ], + "Don't autodelete" => [ + 0 => "ไม่ต้องลบออโต้", + ], + "Duplicated upload" => [ + 0 => "การอัพโหลดซ้ำ", + ], + "Private upload" => [ + 0 => "อัพโหลดแบบ ส่วนตัว", + ], + "like" => [ + 0 => "ถูกใจ", + ], + "Recent" => [ + 0 => "เมื่อเร็ว ๆ นี้", + ], + "Trending" => [ + 0 => "ได้รับความนิยม", + ], + "Top users" => [ + 0 => "ผู้ใช้งานสูงสุด", + ], + "Most recent" => [ + 0 => "ผู้ชมเพิ่งเข้ามากที่สุด", + ], + "Oldest" => [ + 0 => "เก่าที่สุด", + ], + "Most viewed" => [ + 0 => "ผู้ชมมากที่สุด", + ], + "Popular" => [ + 0 => "เป็นที่นิยม", + ], + "Most liked" => [ + 0 => "ถูกใจมากที่สุด", + ], + "Explore" => [ + 0 => "รวมภาพ", + ], + "Animated" => [ + 0 => "เคลื่อนไหว", + ], + "Search" => [ + 0 => "ค้นหา", + ], + "People" => [ + 0 => "คน", + ], + "Image" => [ + 0 => "รูป", + ], + "User" => [ + 0 => "ผู้ใช้งาน", + ], + "Can't create %s destination dir" => [ + 0 => "สร้างโฟลเดอร์ %s ปลายทางไม่ได้", + ], + "Can't open %s for writing" => [ + 0 => "เปิด %s สำหรับการเขียนไม่ได้", + ], + "Internal" => [ + 0 => "ภายใน", + ], + "Can't insert storage." => [ + 0 => "ไม่สามารถแทรกการจัดเก็บข้อมูล", + ], + "Can't update storage details." => [ + 0 => "ไม่สามารถอัปเดตรายละเอียดการจัดเก็บข้อมูล", + ], + "requires %s" => [ + 0 => "ต้องมี %s", + ], + "Unlimited" => [ + 0 => "ไม่จำกัด", + ], + "used" => [ + 0 => "ใช้แล้ว", + ], + "Private profile" => [ + 0 => "รายละเอียดส่วนตัว", + ], + "second" => [ + 0 => "วินาที", + ], + "%s ago" => [ + 0 => "%s ก่อนหน้านี้", + ], + "moments ago" => [ + 0 => "เดือนที่แล้ว", + ], + "Dashboard" => [ + 0 => "แผงควบคุม", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "มีการอัปเดตพร้อมใช้งานสำหรับระบบของคุณ ไปที่ %s เพื่อดาวน์โหลดและติดตั้งโปรแกรมปรับปรุงนี้", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "ระบบฐานข้อมูลล้าสมัยแล้ว คุณจำเป็นต้องใช้เครื่องมือในการ <a href=\"%s\">อัปเดต</a>", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "เว็บไซต์อยู่ในโหมดการบำรุงรักษา เปลี่ยนการตั้งค่านี้ได้ที่ <a href=\"%s\"> แดชบอร์ด > การตั้งค่า</a>", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "คุณควรจะปิดการใช้งานข้อผิดพลาด PHP รายงานสำหรับระบบการผลิต ไปที่ <a href='%s'>การตั้งค่าระบบ</a> ที่จะเปลี่ยนการตั้งค่านี้", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "คุณไม่ได้เปลี่ยนการตั้งค่าอีเมลเริ่มต้น ไปที่ <a href='%s'>การตั้งค่าอีเมล์</a> เพื่อแก้ไขปัญหานี้", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "มีการอัปเดตพร้อมใช้งานสำหรับ Chevereto เว็บไซต์ของคุณ", + ], + "admin dashboard" => [ + 0 => "แผงควบคุมของผู้ดูแลระบบ", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "คุณสามารถใช้การปรับปรุงนี้โดยตรงจาก %a ของคุณหรือดาวน์โหลดได้จาก %s แล้วติดตั้งด้วยตนเอง", + ], + "view on %s" => [ + 0 => "ดูได้ที่ %s", + ], + "cookie policy" => [ + 0 => "นโยบายคุกกี้", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "เราใช้คุกกี้ของเราเองและของบุคคลที่สามเพื่อปรับปรุงประสบการณ์การท่องเว็บและบริการของเรา หากคุณใช้เว็บไซต์ของเราต่อไปถือว่าคุณยอมรับสิ่งนี้ %cookie_policy_link", + ], + "I understand" => [ + 0 => "ฉันเข้าใจ", + ], + "Forgot password?" => [ + 0 => "ลืมรหัสผ่าน?", + ], + "Reset password" => [ + 0 => "ตั้งรหัสผ่านใหม่", + ], + "Resend account activation" => [ + 0 => "ส่งรหัสปลดล็อคใหม่", + ], + "Add your email address" => [ + 0 => "เพิ่มที่อยู่อีเมลของคุณ", + ], + "Email changed" => [ + 0 => "เปลี่ยนอีเมลแล้ว", + ], + "%s says you are a robot" => [ + 0 => "%s บอกว่าคุณเป็นเป็นโรบอท", + ], + "Invalid Username/Email" => [ + 0 => "ยูสเซอร์หรือพาสเวิร์ดผิด", + ], + "User doesn't have an email." => [ + 0 => "ผู้ใช้ไม่ได้อีเมล", + ], + "Request denied" => [ + 0 => "คำขอไม่สามารถเข้าถึงได้", + ], + "Account needs to be activated to use this feature" => [ + 0 => "บัญชีผู้ใช้ต้องทำการปลดล็อคเพื่อใช้งานส่วนนี้", + ], + "Account already activated" => [ + 0 => "บัญชีได้ถูกทำการปลดล็อคไปแล้ว", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "อนุญาตให้ถึง 15 นาทีสำหรับอีเมล คุณสามารถลองอีกครั้งในภายหลัง", + ], + "Reset your password at %s" => [ + 0 => "ตั้งรหัสผ่านใหม่ %s", + ], + "Confirmation required at %s" => [ + 0 => "ยืนยันจำเป็นต้องใช้ %s", + ], + "Welcome to %s" => [ + 0 => "ยินดีต้อนรับ %s", + ], + "Email already being used" => [ + 0 => "อีเมลโดนใช้ไปแล้ว", + ], + "Password required" => [ + 0 => "ต้องใช้รหัสผ่าน", + ], + "Share" => [ + 0 => "แชร์", + ], + "Embed codes" => [ + 0 => "แนบโค๊ด", + ], + "Full info" => [ + 0 => "ข้อมูลแบบสมบูรณ์", + ], + "%a album hosted in %w" => [ + 0 => "%a อัลบั้มที่โฮสต์อยู่ใน %w", + ], + "Stats" => [ + 0 => "สถิติ", + ], + "Images" => [ + 0 => "รูป", + ], + "Albums" => [ + 0 => "อัลบั้ม", + ], + "Users" => [ + 0 => "ผู้ใช้งาน", + ], + "Settings" => [ + 0 => "ตั้งค่า", + ], + "Bulk importer" => [ + 0 => "คุณนำเข้ามากเกินไป", + ], + "Chevereto version" => [ + 0 => "เวอร์ชั่นของ Chevereto", + ], + "install update" => [ + 0 => "ติดตั้งโปรแกรมปรับปรุง", + ], + "check for updates" => [ + 0 => "เช็คเพื่ออัพเดท", + ], + "Support" => [ + 0 => "สนับสนุน", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "ต้องการความช่วยเหลือ? ไปที่ %s และคุณจะได้รับความช่วยเหลือได้อย่างรวดเร็ว", + ], + "PHP version" => [ + 0 => "PHP เวอร์ชั่น", + ], + "Server" => [ + 0 => "เซิฟเวอร์", + ], + "MySQL version" => [ + 0 => "MySQL เวอร์ชั่น", + ], + "MySQL server info" => [ + 0 => "ข้อมูลของ MySQL เซิฟเวอร์", + ], + "GD Library" => [ + 0 => "ไลบรารี GD", + ], + "File uploads" => [ + 0 => "ไฟล์สำหรับอัพโหลด", + ], + "Enabled" => [ + 0 => "เปิดใช้งาน", + ], + "Disabled" => [ + 0 => "ไม่เปิดใช้งาน", + ], + "Max. upload file size" => [ + 0 => "อัพโหลดขนาดไฟล์สูงสุด", + ], + "Max. post size" => [ + 0 => "ขนาดโพสต์สูงสุด", + ], + "Max. execution time" => [ + 0 => "เวลาดำเนินการ มากที่สุด", + ], + "%d second" => [ + 0 => "%d วินาที", + ], + "Memory limit" => [ + 0 => "ขีดจำกัดของหน่วยความจำ", + ], + "Links" => [ + 0 => "ลิงค์", + ], + "Documentation" => [ + 0 => "เอกสาร", + ], + "Changelog" => [ + 0 => "การเปลี่ยนแปลง", + ], + "Bug tracking" => [ + 0 => "การติดตามข้อผิดพลาด", + ], + "Website" => [ + 0 => "เว็บไซด์", + ], + "Content" => [ + 0 => "เนื่้อหา", + ], + "Pages" => [ + 0 => "หน้า", + ], + "Listings" => [ + 0 => "รายการ", + ], + "Image upload" => [ + 0 => "อัพโหลดรูป", + ], + "Categories" => [ + 0 => "หมวดหมู่", + ], + "Consent screen" => [ + 0 => "หน้าจอได้รับความยินยอม", + ], + "Flood protection" => [ + 0 => "ป้องกันการฟลัด", + ], + "Theme" => [ + 0 => "ธีม", + ], + "Homepage" => [ + 0 => "หน้าแรก", + ], + "Banners" => [ + 0 => "แบนเนอร์", + ], + "System" => [ + 0 => "ระบบ", + ], + "Routing" => [ + 0 => "กำหนดเส้นทาง", + ], + "Languages" => [ + 0 => "ภาษา", + ], + "External storage" => [ + 0 => "หน่วยความจำภายนอก", + ], + "Email" => [ + 0 => "อีเมล", + ], + "Social networks" => [ + 0 => "เครือข่ายทางสังคม", + ], + "External services" => [ + 0 => "บริการภายนอก", + ], + "IP bans" => [ + 0 => "ไอพี แบน", + ], + "Additional settings" => [ + 0 => "ตั้งค่าเพิ่มเติม", + ], + "Tools" => [ + 0 => "เครื่องมือ", + ], + "Can't delete all homepage cover images" => [ + 0 => "ไม่สามารถลบภาพหน้าปกหน้าแรก", + ], + "Homepage cover image deleted" => [ + 0 => "ลบภาพปกหน้าแรก", + ], + "Local" => [ + 0 => "ภายใน", + ], + "External" => [ + 0 => "ภายนอก", + ], + "All" => [ + 0 => "ทั้งหมด", + ], + "search content" => [ + 0 => "ค้นหา เนื้อหา", + ], + "Add page" => [ + 0 => "เพิ่มหน้า", + ], + "Edit page ID %s" => [ + 0 => "แก้ไขหน้าไอดี %s", + ], + "The page has been added successfully." => [ + 0 => "หน้านี้ถูกเพิ่มเรียบร้อยแล้ว", + ], + "The page has been deleted." => [ + 0 => "หน้านี้ถูกลบเรียบร้อยแล้ว", + ], + "homepage" => [ + 0 => "หน้าแรก", + ], + "Before main title (%s)" => [ + 0 => "ก่อนชื่อเรื่องหลัก (%s)", + ], + "After call to action (%s)" => [ + 0 => "หลังจากเรียกร้องให้ดำเนินการ (%s)", + ], + "After cover (%s)" => [ + 0 => "หลังจากหน้าปก (%s)", + ], + "After listing (%s)" => [ + 0 => "หลังจากรายการ (%s)", + ], + "Before pagination" => [ + 0 => "ก่อนเลขหน้า", + ], + "After pagination" => [ + 0 => "หลังเลขหน้า", + ], + "Content (image and album)" => [ + 0 => "เนื้อหา (ภาพและอัลบั้ม)", + ], + "Tab about column" => [ + 0 => "แท็บเกี่ยวกับคอลัมน์", + ], + "Before comments" => [ + 0 => "ก่อนแสดงความคิดเห็น", + ], + "Image page" => [ + 0 => "หน้าภาพ", + ], + "Inside viewer top (image page)" => [ + 0 => "ด้านบนภายใน (หน้าภาพ)", + ], + "Inside viewer foot (image page)" => [ + 0 => "ด้านท้ายของผู้ชมภายใน (หน้าภาพ)", + ], + "After image viewer (image page)" => [ + 0 => "หลังจากดูภาพ (หน้าภาพ)", + ], + "Before header (image page)" => [ + 0 => "ก่อนส่วนหัว (หน้าภาพ)", + ], + "After header (image page)" => [ + 0 => "หลังจากที่ส่วนหัว (หน้าภาพ)", + ], + "Footer (image page)" => [ + 0 => "ส่วนท้าย (หน้าภาพ)", + ], + "Album page" => [ + 0 => "หน้าอัลบั้ม", + ], + "Before header (album page)" => [ + 0 => "ก่อนส่วนหัว (หน้าอัลบั้ม)", + ], + "After header (album page)" => [ + 0 => "หลังจากที่ส่วนหัว (หน้าอัลบั้ม)", + ], + "User profile page" => [ + 0 => "หน้าโปรไฟล์ของผู้ใช้", + ], + "After top (user profile)" => [ + 0 => "หลังจากด้านบน (หน้าโปรไฟล์)", + ], + "Before listing (user profile)" => [ + 0 => "ก่อนที่รายการ (หน้าโปรไฟล์)", + ], + "Explore page" => [ + 0 => "หน้ารวมภาพ", + ], + "After top (explore page)" => [ + 0 => "หลังจากด้านบน (หน้ารวมภาพ)", + ], + "NSFW" => [ + 0 => "ไม่ปลอดภัย/ไม่เหมาะสม อาจมีเนื้อหาที่ลามกอนาจาร", + ], + "Invalid website name" => [ + 0 => "ชื่อเว็บไซด์ผิดพลาด", + ], + "Invalid language" => [ + 0 => "ภาษาผิดพลาด", + ], + "Invalid timezone" => [ + 0 => "ไทม์โซนเวลาผิดพลาด", + ], + "Invalid value: %s" => [ + 0 => "ค่าไม่ถูกต้อง: %s", + ], + "Invalid upload storage mode" => [ + 0 => "โหมดอัพโหลดข้อมูลไม่ถูกต้อง", + ], + "Invalid upload filenaming" => [ + 0 => "อัพโหลชื่อไฟล์ไม่ถูกต้อง", + ], + "Invalid thumb width" => [ + 0 => "ความกว้างของภาพขนาดย่อไม่ถูกต้อง", + ], + "Invalid thumb height" => [ + 0 => "ความสูงของภาพขนาดย่อไม่ถูกต้อง", + ], + "Invalid medium size" => [ + 0 => "ขนาดกลางไม่ถูกต้อง", + ], + "Invalid watermark percentage" => [ + 0 => "เปอร์เซ็นต์ลายน้ำไม่ถูกต้อง", + ], + "Invalid watermark opacity" => [ + 0 => "ความทึบของลายน้ำไม่ถูกต้อง", + ], + "Invalid theme" => [ + 0 => "ธีมผิดพลาด", + ], + "Invalid value" => [ + 0 => "ค่าไม่ถูกต้อง", + ], + "Invalid theme tone" => [ + 0 => "เสียงรูปแบบไม่ถูกต้อง", + ], + "Invalid theme main color" => [ + 0 => "ธีมสีหลักไม่ถูกต้อง", + ], + "Invalid theme top bar button color" => [ + 0 => "รูปแบบแถบด้านบนปุ่มสีไม่ถูกต้อง", + ], + "Invalid theme image listing size" => [ + 0 => "รูปแบบขนาดรายการภาพไม่ถูกต้อง", + ], + "Invalid user id" => [ + 0 => "ชื่อผู้ใช้งานผิดพลาด", + ], + "Invalid email mode" => [ + 0 => "โหมดอีเมลผิดพลาด", + ], + "Invalid SMTP port" => [ + 0 => "SMTP port ไม่ถูกต้อง", + ], + "Invalid SMTP security" => [ + 0 => "SMTP security ไม่ถูกต้อง", + ], + "Invalid personal mode user ID" => [ + 0 => "ID ผู้ใช้โหมดส่วนบุคคลที่ไม่ถูกต้อง", + ], + "Invalid or reserved route" => [ + 0 => "ห้ามใช้หรือเส้นทางไม่ถูกต้อง", + ], + "Invalid website privacy mode" => [ + 0 => "ความเป็นส่วนตัว", + ], + "Invalid website content privacy mode" => [ + 0 => "ความเป็นส่วนตัวเนื้อหา", + ], + "Invalid homepage style" => [ + 0 => "สไตล์หน้าแรกไม่ถูกต้อง", + ], + "Invalid homepage call to action button color" => [ + 0 => "การกระทำสีปุ่มเรียกหน้าแรกไม่ถูกต้อง", + ], + "Invalid homepage call to action functionality" => [ + 0 => "การกระทำเรียกหน้าแรกของฟังก์ชั่นไม่ถูกต้อง", + ], + "Invalid title" => [ + 0 => "ชื่อเรื่องไม่ถูกต้อง", + ], + "Invalid status" => [ + 0 => "สถานะที่ไม่ถูกต้อง", + ], + "Invalid type" => [ + 0 => "ประเภทไม่ถูกต้อง", + ], + "Invalid visibility" => [ + 0 => "การแสดงผลที่ไม่ถูกต้อง", + ], + "Invalid internal type" => [ + 0 => "ไฟล์ไม่ถูกกับประเภทที่ต้องการ", + ], + "Invalid target attribute" => [ + 0 => "แอตทริบิวต์เป้าหมายไม่ถูกต้อง", + ], + "Invalid rel attribute" => [ + 0 => "แอตทริบิวต์ rel ไม่ถูกต้อง", + ], + "Invalid icon" => [ + 0 => "ไอคอนไม่ถูกต้อง", + ], + "Invalid URL key" => [ + 0 => "คีย์ URL ไม่ถูกต้อง", + ], + "Invalid file path" => [ + 0 => "เส้นทางของไฟล์ไม่ถูกต้อง", + ], + "Invalid link URL" => [ + 0 => "URL ของลิงก์ไม่ถูกต้อง", + ], + "Invalid user minimum age" => [ + 0 => "อายุขั้นต่ำของผู้ใช้ไม่ถูกต้อง", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "อนุญาตเฉพาะตัวอักษรผสมตัวเลขและ( _ )เท่านั้น", + ], + "Invalid URL" => [ + 0 => "ลิงค์ผู้ใช้งานผิดพลาด", + ], + "Routes can't be the same" => [ + 0 => "เส้นทางต้องไม่เหมือนกัน", + ], + "Invalid upload image path" => [ + 0 => "พาร์ทของรูปที่อัพโหลดผิดพลาด", + ], + "Invalid call to action URL" => [ + 0 => "การดำเนินการเรียก URL ไม่ถูกต้อง", + ], + "Max. allowed %s" => [ + 0 => "ที่ได้รับอนุญาตมากสุด %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "ไม่สามารถแม็ป %m ไปยังโฟลเดอร์ (%f) ที่มีอยู่", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "ไม่สามารถแม็ป %m ไปยังเส้นทาง (%r) ที่มีอยู่ได้", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "ไม่สามารถแม็ป %m ไปยัง %r (username ซ้ำ)", + ], + "Invalid SMTP server" => [ + 0 => "SMTP server ไม่ถูกต้อง", + ], + "Invalid SMTP username" => [ + 0 => "SMTP username ไม่ถูกต้อง", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "คีย์ URL นี้ถูกใช้โดยหน้าอื่น (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "พาธของไฟล์นี้ถูกใช้โดยหน้าอื่นอยู่แล้ว (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "ไม่สามารถบันทึกเนื้อหาของหน้า: %s.", + ], + "Following" => [ + 0 => "ที่เราติดตาม", + ], + "About" => [ + 0 => "เกี่ยวกับ", + ], + "Image ID" => [ + 0 => "ไอดีรูปภาพ", + ], + "Uploader IP" => [ + 0 => "ที่อยู่ IP ของผู้อัพโหลด", + ], + "Ban IP" => [ + 0 => "แบนไอพี", + ], + "IP already banned" => [ + 0 => "ไอพีนี้โดนแบนอยู่แล้ว", + ], + "Upload date" => [ + 0 => "วันที่อัพโหลด", + ], + "Image %i in %a album" => [ + 0 => "รูป %i ในอัลบั้ม %a", + ], + "Image %i in %c category" => [ + 0 => "รูปภาพ %i ในหมวดหมู่ %c", + ], + "Image %i hosted in %w" => [ + 0 => "รูปภาพ %i ของ %w", + ], + "Direct links" => [ + 0 => "ลิงค์ตรง", + ], + "Image link" => [ + 0 => "ลิงก์รูปภาพ", + ], + "Image URL" => [ + 0 => "URL รูปภาพ", + ], + "Thumbnail URL" => [ + 0 => "URL ขนาดย่อ", + ], + "Medium URL" => [ + 0 => "URL ขนาดกลาง", + ], + "Full image" => [ + 0 => "ภาพเต็ม", + ], + "Full image (linked)" => [ + 0 => "ภาพเต็ม (ลิงก์)", + ], + "Medium image (linked)" => [ + 0 => "รูปภาพขนาดกลาง (ลิงก์)", + ], + "Thumbnail image (linked)" => [ + 0 => "ภาพขนาดย่อ (ลิงก์)", + ], + "Login needed" => [ + 0 => "ต้องการการล็อคอิน", + ], + "IP address already banned" => [ + 0 => "ไอพีนี้โดนแบนแล้ว", + ], + "Missing values" => [ + 0 => "ไม่มีค่า", + ], + "Invalid role" => [ + 0 => "หน้าที่ไม่ถูกต้อง", + ], + "Username already being used" => [ + 0 => "ชื่อผู้ใช้งานนี้ได้โดนใช้งานไปแล้ว", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "เพิ่มรหัสผ่านหรือการเชื่อมต่อทางสังคมอื่นก่อนที่จะลบ %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "เพิ่มอีเมลหรือการเชื่อมต่อทางสังคมอื่นก่อนที่จะลบ %s", + ], + "%s has been disconnected." => [ + 0 => "%s ถูกตัดการเชื่อมต่อแล้ว", + ], + "Test email from %s @ %t" => [ + 0 => "ทดสอบอีเมลจาก %s @ %t", + ], + "This is just a test" => [ + 0 => "นี่เป็นเพียงการทดสอบเท่านั้น", + ], + "Test email sent to %s." => [ + 0 => "ทดสอบอีเมลที่ส่งไปยัง %s.", + ], + "Downloading %s data" => [ + 0 => "กำลังดาวน์โหลดข้อมูล %s", + ], + "User %s followed" => [ + 0 => "ผู้ใช้ %s ติดตาม", + ], + "User %s unfollowed" => [ + 0 => "ผู้ใช้ %s เลิกติดตาม", + ], + "Content liked" => [ + 0 => "เนื้อหาที่ถูกใจ", + ], + "Content disliked" => [ + 0 => "เนื้อหาที่ไม่ถูกใจ", + ], + "%u liked your %t %c" => [ + 0 => "%u ที่คุณถูกใจ %t %c", + ], + "%u is now following you" => [ + 0 => "%u ตอนนี้ติดตามคุณอยู่", + ], + "A private user" => [ + 0 => "ผู้ใช้ส่วนตัว", + ], + "Wrong Username/Email password combination" => [ + 0 => "ชื่อผู้ใช้ที่ไม่ถูกต้อง / รหัสผ่านอีเมล์ไม่ถูกต้อง", + ], + "Sign in" => [ + 0 => "เข้าสู่ระบบ", + ], + "Upload images" => [ + 0 => "อัพโหลดรูปภาพ", + ], + "Upload plugin" => [ + 0 => "อัพโหลดปลั๊กอิน", + ], + "Image search results for %s" => [ + 0 => "ผลการค้นหาภาพสำหรับ %s", + ], + "Album search results for %s" => [ + 0 => "ผลการค้นหาอัลบั้มสำหรับ %s", + ], + "User search results for %s" => [ + 0 => "ผลการค้นหาของผู้ใช้สำหรับ %s", + ], + "Account" => [ + 0 => "บัญชี", + ], + "Profile" => [ + 0 => "ข้อมูลส่วนตัว", + ], + "Linked accounts" => [ + 0 => "เชื่อมต่อบัญชี", + ], + "Invalid image expiration: %s" => [ + 0 => "การหมดอายุของรูปภาพไม่ถูกต้อง: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "อีเมลถูกส่งไปยัง %s พร้อมด้วยคำแนะนำเพื่อเปิดใช้อีเมลนี้", + ], + "Invalid name" => [ + 0 => "ชื่อไม่ถูกต้อง", + ], + "Invalid website" => [ + 0 => "เว็บไซต์ไม่ถูกต้อง", + ], + "Wrong password" => [ + 0 => "รหัสผ่านที่ไม่ถูกต้อง", + ], + "Use a new password" => [ + 0 => "โปรดใช้รหัสผ่านใหม่", + ], + "Changes have been saved." => [ + 0 => "การเปลี่ยนแปลงได้ถูกบันทึกแล้ว", + ], + "Password has been changed" => [ + 0 => "เปลี่ยนแปลง Password เรียบร้อย", + ], + "Password has been created." => [ + 0 => "รหัสผ่านได้ถูกตั้งแล้ว", + ], + "Wrong Username/Email values" => [ + 0 => "Username หรือ Email ไม่ถูกต้อง", + ], + "Settings for %s" => [ + 0 => "การตั้งค่าสำหรับ %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "คุณต้องยอมรับข้อกำหนดและนโยบายความเป็นส่วน", + ], + "You must be at least %s years old to use this website." => [ + 0 => "คุณต้องมีอายุอย่างน้อย %s ปีจึงจะสามารถใช้งานเว็บไซต์นี้ได้", + ], + "Create account" => [ + 0 => "สมัครสมาชิก", + ], + "Upload" => [ + 0 => "อัพโหลด", + ], + "%s's Images" => [ + 0 => "%s รูปทั้งหมด", + ], + "Results for" => [ + 0 => "ผลการค้นหาสำหรับ", + ], + "Liked by %s" => [ + 0 => "ถูกใจโดย %s", + ], + "Liked" => [ + 0 => "ถูกใจ", + ], + "Followers" => [ + 0 => "ผู้ติดตาม", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) อัลบั้มใน %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) ใน %w", + ], + "Discovery" => [ + 0 => "สิ่งที่ค้นพบ", + ], + "Advanced search" => [ + 0 => "การค้นหาแบบละเอียด", + ], + "Random" => [ + 0 => "สุ่ม", + ], + "Notices (%s)" => [ + 0 => "คำชี้แจง %s", + ], + "Notifications" => [ + 0 => "การแจ้งเตือน", + ], + "You don't have notifications" => [ + 0 => "คุณไม่มีการแจ้งเตือน", + ], + "My Profile" => [ + 0 => "โปรไฟล์ของฉัน", + ], + "Sign out" => [ + 0 => "ออกจากระบบ", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "เราได้รับคำขอที่จะเปลี่ยนอีเมลของคุณ <a href=\"%u\">%n</a> บัญชีของคุณ %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "ถ้าจะให้เสร็จสิ้นกระบวนการคุณต้อง <a href=\"%s\">ยืนยันอีเมล์ของท่าน</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "หรือคุณสามารถคัดลอกและวาง URL ลงในเบราว์เซอร์ของคุณ: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "ถ้าคุณไม่ได้ตั้งไม่ต้องสนใจข้อความนี้", + ], + "This request was made from IP: %s" => [ + 0 => "คำขอนี้ถูกสร้างขึ้นจาก IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "เราได้รับการร้องขอในการลงทะเบียน %n บัญชีที่ %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "ให้เสร็จสิ้นกระบวนการที่คุณต้อง <a href=\"%s\"> เปิดใช้งานบัญชีของคุณ </a>", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "เราได้รับคำขอเพื่อรีเซ็ตรหัสผ่านสำหรับ <a href=\"%u\">%n</a> บัญชีของคุณ.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "ถ้าต้องการรีเซ็ตรหัสผ่านของคุณ <a href=\"%s\">โปรดคลิกที่ลิ้งค์นี้</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "สวัสดี %n, ยินดีต้อนรับสู่ %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "ตอนนี้บัญชีคุณพร้อมแล้ว คุณสามารถเพลิดเพลินกับการอัพโหลดรูปของคุณ สร้างอัลบั้ม และ ตั้งค่าความเป็นส่วนตัวของเนื้อหาของคุณ และอีกมากมายที่เจ๋งๆที่คุณจะสามารถสำรวจได้จากที่นี่ !", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "ยังไงซะ, นี่คือหน้าโปรไฟล์ที่น่าสนใจของตัวเองมาก: <a href=\"%u\">%n</a>. ไปข้างหน้าและปรับแต่ง, มันเป็นของคุณ!", + ], + "Thank you for joining" => [ + 0 => "ขอบคุณสำหรับการเข้าร่วม", + ], + "This email was sent from %w %u" => [ + 0 => "อีเมลนี้จะถูกส่งมาจาก %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "ลากและวางภาพที่นี่เพื่ออัพโหลด", + ], + "Select the images to upload" => [ + 0 => "เลือกรูปภาพเพื่ออัพโหลด", + ], + "browse from your computer" => [ + 0 => "เรียกดูจากคอมพิวเตอร์ของคุณ", + ], + "add image URLs" => [ + 0 => "เพิ่ม URL ภาพ", + ], + "You can also %i or %u." => [ + 0 => "นอกจากนี้คุณยังสามารถ %i หรือ %u.", + ], + "browse from your device" => [ + 0 => "เรียกดูจากอุปกรณ์ของคุณ", + ], + "take a picture" => [ + 0 => "ถ่ายภาพ", + ], + "You can also %i, %c or %u." => [ + 0 => "นอกจากนี้คุณยังสามารถ %i, %c หรือ %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "แก้ไขหรือปรับขนาดภาพโดยคลิกที่ภาพตัวอย่าง", + ], + "Edit any image by touching the image preview" => [ + 0 => "แก้ไขภาพโดยแตะภาพตัวอย่าง", + ], + "your computer" => [ + 0 => "คอมพิวเตอร์ของคุณ", + ], + "You can add more images from %i or %u." => [ + 0 => "คุณสามารถเพิ่มภาพจาก %i หรือ %u ได้", + ], + "your device" => [ + 0 => "อุปกรณ์ของคุณ", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "คุณสามารถเพิ่มภาพจาก %i, %c หรือ %u ได้", + ], + "Uploading %q %o" => [ + 0 => "อัพโหลด %q %o", + ], + "complete" => [ + 0 => "สมบูรณ์", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "คิวกำลังถูกอัพโหลดจะใช้เวลาเพียงไม่กี่วินาทีในการดำเนินการ", + ], + "Upload complete" => [ + 0 => "อัพโหลดเสร็จสิ้น", + ], + "Uploaded content added to %s." => [ + 0 => "อัพโหลดเนื้อหาไปที่ %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "คุณสามารถ %c ได้ด้วยเนื้อหาที่เพิ่งอัพโหลดหรือ %m", + ], + "You can %c with the content just uploaded." => [ + 0 => "คุณสามารถ %c ได้ด้วยเนื้อหาที่เพิ่งอัพโหลด", + ], + "create a new album" => [ + 0 => "สร้างอัลบั้มใหม่", + ], + "move it to an existing album" => [ + 0 => "ย้ายไปยังอัลบั้มที่มีอยู่", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "คุณต้อง %s หรือ %l เพื่อบันทึกเนื้อหานี้ไว้ในบัญชีของคุณ", + ], + "create an account" => [ + 0 => "สร้างบัญชี", + ], + "sign in" => [ + 0 => "ลงชื่อเข้าใช้", + ], + "No %s have been uploaded" => [ + 0 => "ไม่มี %s ถูกอัพโหลด", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "ข้อผิดพลาดที่เกิดขึ้นในบางครั้ง ซึ่งระบบไม่สามารถดำเนินการตามคำขอของคุณได้", + ], + "Category" => [ + 0 => "หมวดหมู่", + ], + "Select category" => [ + 0 => "เลือกหมวดหมู่", + ], + "Mark this if the upload is not family safe" => [ + 0 => "เลือก ถ้าอัพโหลดนี้ไม่ปลอดภัยสำหรับครอบครัว", + ], + "Not family safe upload" => [ + 0 => "ไม่ปลอดภัยสำหรับครอบครัว", + ], + "Uploading" => [ + 0 => "กำลังอัพโหลด...", + ], + "cancel remaining" => [ + 0 => "ยกเลิกที่เหลือ", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "ข้อควรจำ:รูปไม่สามารถอัพโหลดได้", + ], + "learn more" => [ + 0 => "เรียนรู้เพิ่ม", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "ตรวจสอบ <a data-modal=\"simple\" data-target=\"failed-upload-result\">การรายงานข้อผิดพลาด</a> สำหรับข้อมูลเพิ่มเติม", + ], + "Register to get %s" => [ + 0 => "ลงทะเบียนเพื่อรับ %s", + ], + "reset" => [ + 0 => "รีเซ็ต", + ], + "close" => [ + 0 => "ปิด", + ], + "copy" => [ + 0 => "คัดลอก", + ], + "insert" => [ + 0 => "แทรก", + ], + "Remove" => [ + 0 => "ลบ", + ], + "Title" => [ + 0 => "หัวข้อ", + ], + "optional" => [ + 0 => "ทางเลือก", + ], + "Resize image" => [ + 0 => "ปรับขนาดรูปภาพ", + ], + "Width" => [ + 0 => "ความกว้าง", + ], + "Height" => [ + 0 => "ความสูง", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "หมายเหตุ: ภาพ .GIF เคลื่อนไหวจะไม่ได้รับการปรับขนาด", + ], + "Auto delete image" => [ + 0 => "ลบภาพอัตโนมัติ", + ], + "Sign up" => [ + 0 => "รับสมัคร", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s เพื่อให้สามารถปรับแต่งหรือปิดใช้งานการลบภาพอัตโนมัติ", + ], + "Mark this if the image is not family safe" => [ + 0 => "เลือกว่ารูปนี้ไม่เหมาะสำหรับครอบครัว", + ], + "Flag as unsafe" => [ + 0 => "ปักหมุดว่าไม่ปลอดภัย", + ], + "Description" => [ + 0 => "รายละเอียด", + ], + "Brief description of this image" => [ + 0 => "อธิบายสั้นๆเกี่ยวกับรูปนี้", + ], + "Add image URLs" => [ + 0 => "เพิ่ม URLs ของรูป", + ], + "Add the image URLs here" => [ + 0 => "ใส่ URLs ของรูปตรงนี้", + ], + "Create album" => [ + 0 => "สร้างอัลบั้ม", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "เนื้อหาที่อัปโหลดจะถูกย้ายไปที่อัลบั้มที่สร้างขึ้นใหม่", + ], + "existing album" => [ + 0 => "อัลบั้มที่มีอยู่", + ], + "You can also move the content to an %a." => [ + 0 => "คุณสามารถย้ายเนื้อหาไปยัง %a ได้เช่นกัน", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "คุณต้อง %s หรือ %l ถ้าคุณต้องการแก้ไขอัลบั้มนี้ในภายหลัง", + ], + "Move to album" => [ + 0 => "ย้ายไปสู่อัลบั้ม", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "เลือกอัลบั้มที่มีอยู่เพื่อย้ายเนื้อหาที่อัพโหลด นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a> และย้ายเนื้อหาไปที่นั่น", + ], + "Error report" => [ + 0 => "รายงานข้อผิดพลาด", + ], + "Viewer links" => [ + 0 => "ผู้ชมลิ้งค์", + ], + "HTML Codes" => [ + 0 => "รหัส html", + ], + "HTML image" => [ + 0 => "HTML ภาพ", + ], + "HTML full linked" => [ + 0 => "HTML ลิงก์ภาพขนาดเต็ม", + ], + "HTML medium linked" => [ + 0 => "HTML ลิงก์ภาพขนาดกลาง", + ], + "HTML thumbnail linked" => [ + 0 => "HTML ลิงก์ภาพขนาดย่อ", + ], + "BBCodes" => [ + 0 => "บีบีโค้ด", + ], + "BBCode full" => [ + 0 => "บีบีโค้ด เต็ม", + ], + "BBCode full linked" => [ + 0 => "บีบีโค้ด ภาพขนาดเต็ม", + ], + "BBCode medium linked" => [ + 0 => "บีบีโค้ด ภาพขนาดกลาง", + ], + "BBCode thumbnail linked" => [ + 0 => "บีบีโค้ด ภาพขนาดย่อ", + ], + "Markdown full" => [ + 0 => "Markdown เต็ม", + ], + "Markdown full linked" => [ + 0 => "Markdown ภาพขนาดเต็ม", + ], + "Markdown medium linked" => [ + 0 => "Markdown ภาพขนาดกลาง", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown ภาพขนาดย่อ", + ], + "All these words" => [ + 0 => "คำเหล่านี้ทั้งหมด", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "พิมพ์คำที่สำคัญ: แจ็ค รัสเซลล์ เทอร์เรีย สามสี", + ], + "This exact word or phrase" => [ + 0 => "คำนี้หรือวลี", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "ใส่คำที่แน่นอนในเครื่องหมายคำพูด: \"หนู Terrier\"", + ], + "None of these words" => [ + 0 => "ไม่มีคำพูดเหล่านี้", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "ใส่เครื่องหมายลบก่อนคำที่คุณไม่ต้องการ: -สัตว์ฟันแทะ- \"แจ๊ครัสเซล\"", + ], + "Storage" => [ + 0 => "เนื้อที่", + ], + "IP address" => [ + 0 => "ที่อยู่ของ IP", + ], + "Album name" => [ + 0 => "ชื่ออัลบั้ม", + ], + "move to existing album" => [ + 0 => "ย้ายไปสู่อัลบั้มที่มีอยู่แล้ว", + ], + "Album description" => [ + 0 => "รายละเอียดของอัลบั้ม", + ], + "Brief description of this album" => [ + 0 => "อธิบายสั้นๆเกี่ยวกับอัลบั้มนี้", + ], + "Album privacy" => [ + 0 => "อัลบั้มความเป็นส่วนตัวหรือสาธารณะ", + ], + "Who can view this content" => [ + 0 => "ใครสามารถดูเนื้อหานี้ได้บ้าง", + ], + "Private (just me)" => [ + 0 => "ส่วนตัว", + ], + "Private (anyone with the link)" => [ + 0 => "ส่วนตัว (สำหรับผู้มีลิงค์)", + ], + "Private (password protected)" => [ + 0 => "ส่วนตัว (ป้องกันด้วยรหัสผ่าน)", + ], + "Album password" => [ + 0 => "รหัสผ่านอัลบั้ม", + ], + "Name" => [ + 0 => "ชื่อ", + ], + "Category name" => [ + 0 => "หมวดหมู่ชื่อ", + ], + "URL key" => [ + 0 => "คีย์ URL", + ], + "Category URL key" => [ + 0 => "คีย์ URL หมวดหมู่", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "ตัวอักษร ตัวเลขและอักขระพิเศษ", + ], + "Brief description of this category" => [ + 0 => "อธิบายสั้นๆเกี่ยวกับอัลบั้มนี้", + ], + "Untitled image" => [ + 0 => "รูปไม่มีชื่อ", + ], + "Path" => [ + 0 => "เส้นทาง", + ], + "Local path (absolute)" => [ + 0 => "ตำแหน่งที่แน้นอน", + ], + "Directory structure" => [ + 0 => "โครงสร้างไดเรกทอรี", + ], + "Parse top level folders as users (username)" => [ + 0 => "แยกโฟลเดอร์ในระดับผู้ใช้", + ], + "You can use wildcard * characters." => [ + 0 => "คุณสามารถใช้อักขระตัว * ได้", + ], + "Expiration date" => [ + 0 => "วันหมดอายุ", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "ปี-เดือน-วัน ชั่วโมง:นาที:วินาที", + ], + "Example" => [ + 0 => "ตัวอย่าง", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "IP นี้จะถูกห้ามจนกว่าจะถึงวันที่? ปล่อยให้มันว่างเปล่าไม่มีวันหมดอายุ", + ], + "Message" => [ + 0 => "ข้อความ", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "ข้อความ, HTML หรือ URL การเปลี่ยนเส้นทาง", + ], + "Existing album" => [ + 0 => "อัลบั้มที่มีอยู่", + ], + "create new album" => [ + 0 => "สร้างอัลบั้มใหม่", + ], + "Storage name" => [ + 0 => "ชื่อของพื้นที่เก็บข้อมูล", + ], + "API" => [ + 0 => "เอพีไอ", + ], + "Region" => [ + 0 => "สัญชาติ", + ], + "Storage region" => [ + 0 => "พื้นที่จัดเก็บของภูมิภาค", + ], + "Storage bucket" => [ + 0 => "ขนาดพื้นที่จัดเก็บ", + ], + "Key" => [ + 0 => "คีย์", + ], + "Storage key" => [ + 0 => "คีย์ที่เก็บข้อมูล", + ], + "Secret" => [ + 0 => "ลับสุดยอด", + ], + "Storage secret" => [ + 0 => "การเก็บรักษาความลับ", + ], + "Private key" => [ + 0 => "คีย์ส่วนตัว", + ], + "Google Cloud JSON key" => [ + 0 => "คีย์ Google Cloud JSON", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "คุณต้องมี <a %s>บัญชีบริการ</a> สำหรับข้อมูลนี้", + ], + "Service name" => [ + 0 => "ชื่อบริการ", + ], + "Identity URL" => [ + 0 => "URL ข้อมูลประจำตัว", + ], + "Identity API endpoint" => [ + 0 => "API ข้อมูลประจำตัวปลายทาง", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API ปลายทางข้อมูลประจำตัว OpenStack", + ], + "Username" => [ + 0 => "ผู้ใช้งาน", + ], + "Container" => [ + 0 => "ที่จัดเก็บ", + ], + "Storage container" => [ + 0 => "พื้นที่จัดเก็บ", + ], + "Tenant id" => [ + 0 => "Id ผู้เช่า", + ], + "Tenant id (account id)" => [ + 0 => "Id ผู้เช่า (Id บัญชี)", + ], + "Tenant name" => [ + 0 => "ชื่อผู้เช่า", + ], + "Tenant name (account name)" => [ + 0 => "ชื่อผู้เช่า (ชื่อบัญชี)", + ], + "Hostname or IP of the storage server" => [ + 0 => "ชื่อโฮสต์หรือ IP ของเซิร์ฟเวอร์ที่เก็บข้อมูล", + ], + "Server path" => [ + 0 => "เส้นทางของเซิร์ฟเวอร์", + ], + "Server password" => [ + 0 => "รหัสผ่านของเซิร์ฟเวอร์", + ], + "Local path" => [ + 0 => "ตำแหน่งที่ตั้งภายใน", + ], + "Local path where the files will be stored" => [ + 0 => "ตำแหน่งที่ตั้งภายในที่จะเก็บไฟล์ไว้", + ], + "Storage capacity" => [ + 0 => "ความจุ", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "ตัวอย่าง: 20 GB, 1 TB เป็นต้น", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "พื้นที่เก็บข้อมูลนี้จะถูกปิดใช้งานเมื่อถึงขีดความสามารถนี้ ปล่อยให้ว่างหรือศูนย์ไม่จำกัด", + ], + "Storage URL" => [ + 0 => "URL ที่จัดเก็บ", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "ระบบจะแม็ปภาพของที่เก็บข้อมูลนี้กับ URL นี้", + ], + "view more" => [ + 0 => "ดูเพิ่มเติม", + ], + "Load more" => [ + 0 => "โหลดเพิ่มเติม", + ], + "Select all" => [ + 0 => "เลือกทั้งหมด", + ], + "Clear selection" => [ + 0 => "ล้างทั้งหมด", + ], + "Selection" => [ + 0 => "เลือก", + ], + "Action" => [ + 0 => "การดำเนินการ", + ], + "Get embed codes" => [ + 0 => "รับรหัสโค๊ด", + ], + "Assign category" => [ + 0 => "กำหนดหมวดหมู่", + ], + "Flag as safe" => [ + 0 => "ตั้งค่าสถานะให้ปลอดภัย", + ], + "Create new album" => [ + 0 => "สร้างอัลบั้มใหม่", + ], + "Sign in with another account" => [ + 0 => "ล็อคอินโดยใช้บัญชีอื่น", + ], + "Home" => [ + 0 => "หน้าแรก", + ], + "There's nothing to show here." => [ + 0 => "ไม่มีอะไรที่จะแสดงที่นี่", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "ภาพทั้งหมดจะถูกย้ายไปที่อัลบั้มที่สร้างขึ้นใหม่นี้ นอกจากนี้คุณยังสามารถย้ายภาพไปที่ <a class=\"modal-switch\" data-switch=\"move-existing-album\">อัลบั้มที่มีอยู่</a>", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "เลือกอัลบั้มที่มีอยู่เพื่อย้ายภาพ นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a>และย้ายภาพที่มี", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "เลือกอัลบั้มที่มีอยู่เพื่อย้ายเนื้อหาในอัลบั้ม นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a> และย้ายเนื้อหาในอัลบั้ม", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "เลือกอัลบั้มที่มีอยู่เพื่อย้ายภาพ นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a>และย้ายภาพที่มี", + ], + "All the selected images will be assigned to this category." => [ + 0 => "ภาพที่เลือกทั้งหมดจะถูกกำหนดให้กับหมวดหมู่นี้", + ], + "There is no categories." => [ + 0 => "ไม่มีหมวดหมู่", + ], + "Confirm flag content as safe" => [ + 0 => "ยืนยันป้ายชื่อของเนื้อหาว่าปลอดภัย", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "คุณต้องการติดป้ายชื่อทำเครื่องหมายเนื้อหานี้ว่าปลอดภัยหรือไม่?", + ], + "Confirm flag content as unsafe" => [ + 0 => "ยืนยันป้ายชื่อของเนื้อหาว่าไม่ปลอดภัย", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "คุณต้องการติดป้ายชื่อทำเครื่องหมายเนื้อหานี้ว่าไม่ปลอดภัยหรือไม่?", + ], + "Confirm deletion" => [ + 0 => "ยืนยันการลบ", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "คุณต้องการลบเนื้อหานี้หรือไม่? ไม่สามารถเลิกทำได้", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "คุณต้องการลบเนื้อหาที่เลือกทั้งหมดหรือไม่? ไม่สามารถเลิกทำได้", + ], + "Fullscreen" => [ + 0 => "เต็มหน้าจอ", + ], + "Exit fullscreen" => [ + 0 => "ออกจากโหมดเต็มหน้าจอ", + ], + "Guest" => [ + 0 => "บุคคลทั่วไป", + ], + "Keyboard shortcuts" => [ + 0 => "แป้นพิมพ์ลัด", + ], + "Uploaded by guest" => [ + 0 => "อัปโหลดโดย บุคคลทั่วไป", + ], + "From %s" => [ + 0 => "จาก %s", + ], + "Uploaded by private" => [ + 0 => "อัพโหลดแบบส่วนตัว", + ], + "by %u" => [ + 0 => "โดย %u", + ], + "Toggle unsafe flag" => [ + 0 => "สลับสถานะที่ไม่ปลอดภัย", + ], + "That page doesn't exist" => [ + 0 => "ไม่สามารถใช้งานหน้าเว็บไซต์นี้ได้", + ], + "The requested page was not found." => [ + 0 => "ไม่พบหน้าที่คุณค้นหา", + ], + "Search something else" => [ + 0 => "ค้นหาอะไร", + ], + "The user has been deleted" => [ + 0 => "บัญชีผู้ใช้ถูกลบออกจากระบบ", + ], + "Your account is almost ready" => [ + 0 => "บัญชีของคุณเกือบจะพร้อมแล้ว", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "ส่งอีเมลไปยัง %s ได้รับการส่งไปพร้อมกับคำแนะนำในการเปิดใช้งานบัญชีของคุณ การเชื่อมโยงการเปิดใช้งานจะใช้ได้เฉพาะสำหรับ 48 ชั่วโมง ถ้าคุณไม่ได้รับคำแนะนำให้ลองตรวจสอบขยะหรือสแปมตัวกรองของคุณ", + ], + "Resend activation" => [ + 0 => "ยืนยันการใช้งานอีกครั้ง", + ], + "You have successfully changed your account email to %s" => [ + 0 => "คุณได้เปลี่ยนอีเมลบัญชีของคุณไปที่ %s", + ], + "Go to my profile" => [ + 0 => "ไปที่หน้าโปรไฟล์", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "ลิงค์ยืนยันจะถูกส่งไปยังอีเมลนี้มีรายละเอียดเพื่อเปิดใช้งานบัญชีของคุณ", + ], + "Your email address" => [ + 0 => "ที่อยู่อีเมลของคุณ", + ], + "Submit" => [ + 0 => "ยืนยัน", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "อีเมลที่มีคำแนะนำในการรีเซ็ตรหัสผ่านของคุณได้ถูกส่งไปยังที่อยู่อีเมลที่ลงทะเบียน ถ้าคุณไม่ได้รับคำแนะนำลองตรวจสอบตัวกรองขยะหรือสแปมของคุณ", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "อีเมลก่อนหน้านี้ได้รับการส่งไปพร้อมกับคำแนะนำในการรีเซ็ตรหัสผ่านของคุณ หากคุณไม่ได้รับคำแนะนำลองตรวจสอบตัวกรองขยะหรือสแปมของคุณ", + ], + "Resend instructions" => [ + 0 => "ส่งคำแนะนำใหม่", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "กรอกชื่อผู้ใช้หรืออีเมลของคุณเพื่อดำเนินการต่อ คุณอาจต้องตรวจสอบโฟลเดอร์สแปมหรือรายการที่อนุญาต %s ของคุณ", + ], + "Username or Email address" => [ + 0 => "บัญชีผู้ใช้หรือที่อยู่อีเมล", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "รหัสผ่านของคุณมีการเปลี่ยนแปลง ตอนนี้คุณสามารถลองเข้าสู่ระบบโดยใช้รหัสผ่านใหม่", + ], + "Login now" => [ + 0 => "เข้าสู่ระบบเดี๋ยวนี้", + ], + "Enter your new password" => [ + 0 => "กรอกรหัสผ่านใหม่ของคุณ", + ], + "%d characters min" => [ + 0 => "ตัวอักษรอย่างน้อย %d ตัว", + ], + "Password strength" => [ + 0 => "ความปลอดภัยรหัสผ่าน", + ], + "Re-enter your new password" => [ + 0 => "ป้อนรหัสผ่านใหม่", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "ส่งอีเมลไปยัง %s พร้อมคำแนะนำเพื่อเปิดใช้งานบัญชีของคุณ หากคุณไม่ได้รับคำแนะนำลองตรวจสอบตัวกรองขยะหรือสแปมของคุณ", + ], + "This content is private" => [ + 0 => "นี่เป็นเนื้อหาส่วนตัว", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "คุณต้องการที่จะลบอัลบั้มนี้และทุกภาพของตนหรือไม่?", + ], + "You like this" => [ + 0 => "คุณถูกใจสิ่งนี้", + ], + "Upload to album" => [ + 0 => "อัพโหลดไปยังอัลบั้ม", + ], + "Album link" => [ + 0 => "ลิงก์อัลบั้ม", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "โปรดอ่านและปฏิบัติตามเงื่อนไขดังต่อไปนี้ก่อนที่คุณจะดำเนินการต่อ:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "เว็บไซต์นี้มีอาจมีข้อมูลการเชื่อมโยงและภาพของเนื้อหาทางเพศที่โจ่งแจ้ง ถ้าคุณอายุต่ำกว่า %s, ถ้าเนื้อหาดังกล่าวขัดต่อคุณหรือหากดูเนื้อหาดังกล่าวในชุมชนของคุณอย่างผิดกฎหมายโปรดอย่าดำเนินการต่อ.\n\nฉัน %s ปีและฉันเชื่อว่าในฐานะที่เป็นผู้ใหญ่มันเป็นสิทธิที่จะได้รับ / ดูเนื้อหาที่ไม่เหมาะสมทางเพศ ฉันต้องการรับ / ดูเนื้อหาที่มีเนื้อหาทางเพศที่โจ่งแจ้ง.\n\nผมเชื่อว่าการกระทำทางเพศระหว่างผู้ใหญ่ที่ยินยอมจะไม่เป็นที่รังเกียจและหยาบคาย การดูการอ่านและการดาวน์โหลดเนื้อหาที่มีเนื้อหาทางเพศไม่เป็นการละเมิดมาตรฐานของชุมชนเมืองเมืองรัฐหรือประเทศของฉัน.\n\nเนื้อหาที่โจ่งแจ้งทางเพศที่ฉันดูคือการใช้ส่วนตัวของฉันเองและฉันจะไม่เปิดเผยเนื้อหาดังกล่าวแก่ผู้เยาว์.\n\nฉันเป็นผู้รับผิดชอบต่อการเปิดเผยข้อมูลที่ผิดพลาดหรือข้อ จำกัด ทางกฎหมายในการดูอ่านหรือดาวน์โหลดเนื้อหาใด ๆ ในไซต์นี้ นอกจากนี้เว็บไซต์นี้หรือ บริษัท ในเครือจะไม่รับผิดชอบต่อผลกระทบทางกฎหมายใด ๆ ที่เกิดจากการเข้าหรือใช้งานเว็บไซต์นี้โดยฉ้อฉล.\n\nหน้าจอความยินยอมนี้ถือเป็นข้อตกลงทางกฎหมายระหว่างเว็บไซต์นี้กับคุณและ / หรือธุรกิจใด ๆ ที่คุณมีส่วนได้เสียตามกฎหมายหรือเป็นธรรม หากส่วนใดส่วนหนึ่งของข้อตกลงนี้ถือว่าไม่สามารถบังคับได้โดยศาลที่มีเขตอำนาจศาลจะไม่ส่งผลกระทบต่อการบังคับใช้ส่วนอื่น ๆ ของข้อตกลง.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "เมื่อคลิกที่ \"ฉันยอมรับ\" คุณได้ประกาศว่าคุณได้อ่านและเข้าใจเงื่อนไขทั้งหมดที่กล่าวมาแล้วข้างต้น", + ], + "I Agree" => [ + 0 => "ฉันเห็นด้วย", + ], + "documentation" => [ + 0 => "เอกสาร", + ], + "Learn more about %s at our %d." => [ + 0 => "เรียนรู้เพิ่มเติมเกี่ยวกับ %s ที่ %d ของเรา", + ], + "Disk used" => [ + 0 => "พื้นที่ใช้ไป", + ], + "Status" => [ + 0 => "สถานะ", + ], + "Add user" => [ + 0 => "เพิ่มผู้ใช้งาน", + ], + "Role" => [ + 0 => "หน้าที่", + ], + "Administrator" => [ + 0 => "ผู้ดูแล", + ], + "Email address" => [ + 0 => "ที่อยู่อีเมล", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "การตั้งค่านี้มักใช้เมื่อใช้โหมดเว็บไซต์ส่วนตัว", + ], + "Add category" => [ + 0 => "เพิ่มหมวดหมู่", + ], + "Add IP ban" => [ + 0 => "เพิ่มไอพีที่ต้องการระงับ", + ], + "Add storage" => [ + 0 => "เพิ่มที่จัดเก็บ", + ], + "Return to pages" => [ + 0 => "กลับไปที่หน้าเว็บ", + ], + "Website name" => [ + 0 => "ชื่อเว็บไซต์", + ], + "Website doctitle" => [ + 0 => "ชื่อสารบรรณ เว็บไซต์", + ], + "Website description" => [ + 0 => "คำอธิบายเว็บไซต์", + ], + "Default time zone" => [ + 0 => "เขตเวลาเริ่มต้น", + ], + "Select region" => [ + 0 => "เลือกภูมิภาค", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "จะช่วยให้การค้นหาภาพอัลบั้มและผู้ใช้ตามคำค้นหาที่กำหนด", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "เปิดการค้นหาภาพที่อัพโหลดแบบสาธารณะ รวมถึงในในหมวดหมู่", + ], + "guests" => [ + 0 => "ผู้มาเยือน", + ], + "Enables explore for guests." => [ + 0 => "ช่วยให้การสำรวจสำหรับผู้มาเยือน", + ], + "Enables to browse images randomly." => [ + 0 => "ช่วยให้การเรียกดูภาพแบบสุ่ม", + ], + "Likes" => [ + 0 => "ถูกใจ", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "ช่วยให้ผู้ใช้ชอบเนื้อหาและเติม \"ส่วนใหญ่ถูกใจ\" รายการ", + ], + "Followers allows users to follow each other." => [ + 0 => "ช่วยให้ผู้ติดตามปฏิบัติตามคนอื่น ๆ", + ], + "Personal mode target user" => [ + 0 => "โหมดผู้ใช้ตั้งเป็นส่วนบุคคล", + ], + "User ID" => [ + 0 => "ID ผู้ใช้งาน", + ], + "Your user id is: %s" => [ + 0 => "ไอดีผู้ใช้ของคุณ: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "ตัวเลข ID ของผู้ใช้เป้าหมายสำหรับโหมดส่วนตัว", + ], + "Personal mode routing" => [ + 0 => "การกำหนดเส้นทางโหมดส่วนบุคคล", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "เส้นทางที่กำหนดเองเพื่อ map / ชื่อผู้ใช้ไปยัง / บางสิ่งบางอย่าง ใช้ \"/\" เพื่อทำแผนที่ไว้ในหน้าแรก", + ], + "Website privacy mode" => [ + 0 => "ความเป็นส่วนตัวของเว็บไซต์", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "โหมดส่วนตัวจะทำให้เว็บไซต์ที่มีเฉพาะสำหรับผู้ใช้ที่ลงทะเบียน", + ], + "Content privacy mode" => [ + 0 => "ความเป็นส่วนตัวเนื้อหา", + ], + "Default" => [ + 0 => "ค่าเริ่มต้น", + ], + "Force private (self)" => [ + 0 => "บังคับให้ส่วนตัว (ตัวเอง)", + ], + "Force private (anyone with the link)" => [ + 0 => "บังคับให้ส่วนตัว (ทุกคนที่มีการเชื่อมโยง)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "โหมดบังคับความเป็นส่วนตัวจะแทนที่ความเป็นส่วนตัวของผู้ใช้ที่เลือก", + ], + "Page title" => [ + 0 => "ชื่อหน้า", + ], + "Page status" => [ + 0 => "หน้าสถานะ", + ], + "Active page" => [ + 0 => "หน้าเว็บที่ใช้งานอยู่", + ], + "Inactive page (%s)" => [ + 0 => "หน้าเว็บที่ไม่ใช้งาน (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "คุณสามารถเข้าถึงหน้าเว็บที่ใช้งานได้เท่านั้น", + ], + "Type" => [ + 0 => "ชนิด", + ], + "Privacy" => [ + 0 => "ความเป็นส่วนตัว", + ], + "Contact" => [ + 0 => "ติดต่อ", + ], + "Page visibility" => [ + 0 => "การเปิดเผยหน้าเว็บ", + ], + "Visible page" => [ + 0 => "หน้าเว็บที่มองเห็นได้", + ], + "Hidden page" => [ + 0 => "หน้าซ่อน", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "หน้าเว็บที่ซ่อนจะไม่แสดงในเมนูระบบ แต่ทุกคนสามารถเข้าถึงได้โดยใช้ลิงก์", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "เฉพาะตัวอักขระทั้งหมด, (-) และ (/)", + ], + "File path" => [ + 0 => "เส้นทางของไฟล์", + ], + "A %f file relative to %s" => [ + 0 => "ไฟล์ %f เทียบกับ %s", + ], + "Meta keywords" => [ + 0 => "คำหลัก Meta", + ], + "Meta description" => [ + 0 => "รายละเอียด Meta", + ], + "Source code" => [ + 0 => "คำสั่งหรือโค๊ด", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "ไม่มีสิทธิ์ในการเขียนในเส้นทาง %s ที่คุณจะต้องเพิ่มไฟล์นี้โดยใช้ตัวแก้ไขภายนอก", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "ไม่มีสิทธิ์เขียนใน %s คุณจะต้องแก้ไขเนื้อหาของไฟล์นี้โดยใช้ตัวแก้ไขภายนอก", + ], + "Taken from: %s" => [ + 0 => "นำมาจาก:%s", + ], + "Link URL" => [ + 0 => "ลิงก์ URL", + ], + "Link target attribute" => [ + 0 => "ลิงก์แอตทริบิวต์เป้าหมาย", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "เลือก %s เพื่อเปิดเพจหรือลิงค์ในหน้าต่างใหม่", + ], + "Link rel attribute" => [ + 0 => "ลิงก์แอตทริบิวต์ rel", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "เฉพาะตัวอักขระทั้งหมด, (-) และ (เว้นว่าง)", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s แอตทริบิวต์", + ], + "Link icon" => [ + 0 => "ลิงก์ไอคอน", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "ตรวจสอบ <a %s>การอ้างอิงไอคอน</a> สำหรับรายการไอคอนที่สนับสนุนทั้งหมด", + ], + "Sort order display" => [ + 0 => "เรียงลำดับการแสดงผล", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "การเรียงลำดับหน้าเว็บสำหรับเมนูและรายชื่อ ใช้ \"1\" สำหรับความสำคัญสูงสุด", + ], + "pages" => [ + 0 => "หน้า", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "คุณต้องการลบ ID หน้า %s? ไม่สามารถเลิกทำได้", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "รูปแบบรูปภาพที่ไม่ได้ตรวจสอบจะไม่ได้รับอนุญาตให้อัพโหลด", + ], + "Enable uploads" => [ + 0 => "เปิดใช้งานการอัพโหลด", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะยอมให้การอัพโหลดภาพ การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้บริหาร", + ], + "Guest uploads" => [ + 0 => "บุคคลทั่วไป อัพโหลด", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้ผู้ที่ไม่ได้ลงทะเบียนในการอัพโหลด", + ], + "Enable embed codes (uploader)" => [ + 0 => "เปิดใช้โค้ดสำหรับฝัง (ผู้อัพโหลด)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "เปิดใช้งานนี้หากคุณต้องการแสดงรหัสฝังเมื่ออัพโหลดเสร็จสิ้น", + ], + "Upload threads" => [ + 0 => "อัพโหลดหัวข้อ", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "จำนวนเธรดการอัพโหลดพร้อมกัน (การอัพโหลดแบบขนาน)", + ], + "Redirect on single upload" => [ + 0 => "เปลี่ยนเส้นทางในการอัพโหลดเดียว", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะเปลี่ยนเส้นทางไปยังหน้าภาพอัพโหลดเดียว", + ], + "Enable duplicate uploads" => [ + 0 => "เปิดใช้งานอัพโหลดที่ซ้ำกัน", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้อัปโหลดซ้ำกันจาก IP เดียวกันภายใน 24 ชั่วโมง การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้บริหาร", + ], + "Enable expirable uploads" => [ + 0 => "เปิดใช้งานอัพโหลด หมดอายุ", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้อัพโหลดที่มีตัวเลือกลบอัตโนมัติ", + ], + "Auto delete guest uploads" => [ + 0 => "ลบผู้เข้าชมที่อัพโหลดโดยอัตโนมัติ", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการบังคับให้การอัพโหลดจากผู้เข้าชมจะถูกลบโดยอัตโนมัติหลังจากผ่านไประยะเวลาหนึ่ง", + ], + "Maximum image size" => [ + 0 => "ขนาดภาพสูงสุด", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "รูปภาพที่ใหญ่กว่าขนาดนี้จะถูกลดขนาดลงโดยอัตโนมัติ ใช้ศูนย์ (0) เพื่อไม่กำหนดลิมิต", + ], + "Image Exif data" => [ + 0 => "ข้อมูลภาพ EXIF", + ], + "Keep" => [ + 0 => "เก็บ", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "เลือกการตั้งค่าเริ่มต้นสำหรับภาพ <a %s>ค่าต่างๆ ของรูปภาพ</a> อัพโหลด", + ], + "Image Exif data (user setting)" => [ + 0 => "ข้อมูลภาพ Exif (การตั้งค่าของผู้ใช้)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้ผู้ใช้แต่ละคนในการกำหนดค่าว่าภาพข้อมูล EXIF จะถูกจัดการ", + ], + "Maximum upload file size" => [ + 0 => "ขนาดไฟล์อัพโหลดสูงสุด", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "ขนาดสูงสุดที่อนุญาตโดยเซิร์ฟเวอร์คือ %s ขีดจำกัดนี้ จำกัดโดย %u และ %p (ค่า %f )", + ], + "Same as \"%s\" but for guests." => [ + 0 => "เช่นเดียวกับ \"%s\" แต่สำหรับผู้เข้าชม", + ], + "Image path" => [ + 0 => "เส้นทางภาพ", + ], + "Relative to Chevereto root" => [ + 0 => "เทียบกับราก Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "เก็บภาพไว้ที่ไหน? เทียบกับราก Chevereto", + ], + "Storage mode" => [ + 0 => "โหมดที่เก็บข้อมูล", + ], + "Datefolders" => [ + 0 => "วันที่โฟลเดอร์", + ], + "Direct" => [ + 0 => "โดยตรง", + ], + "Datefolders creates %s structure" => [ + 0 => "วันที่โฟลเดอร์สร้างโครงสร้าง %s", + ], + "File naming method" => [ + 0 => "วิธีตั้งชื่อไฟล์", + ], + "Original" => [ + 0 => "ดั้งเดิม", + ], + "Mix original + random" => [ + 0 => "ผสมต้นฉบับ + สุ่ม", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"ต้นฉบับ\" จะพยายามที่จะให้ชื่อแหล่งภาพขณะที่ \"สุ่ม\" จะสร้างชื่อแบบสุ่ม \"id\" จะตั้งชื่อภาพเช่นเดียวกับรหัสภาพ", + ], + "Thumb size" => [ + 0 => "ขนาด Thumb", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "ภาพขนาดย่อจะคงที่ขนาดนี้", + ], + "Medium image fixed dimension" => [ + 0 => "ขนาดคงที่ของภาพขนาดกลาง", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "รูปภาพขนาดกลางจะถูกกำหนดไว้ในมิติข้อมูลนี้ ตัวอย่างเช่นหากคุณเลือก \"width\" มิติข้อมูลจะได้รับการแก้ไขและความสูงของภาพจะได้รับการคำนวณโดยอัตโนมัติ", + ], + "Medium image fixed size" => [ + 0 => "ขนาดภาพปานกลาง", + ], + "Width or height will be automatically calculated." => [ + 0 => "ความกว้างหรือความสูงจะถูกคำนวณโดยอัตโนมัติ", + ], + "Watermarks" => [ + 0 => "ลายน้ำ", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "เปิดใช้งานได้โดยใส่โลโก้หรือสิ่งที่คุณต้องการในการอัพโหลดภาพ", + ], + "Warning: Can't write in %s" => [ + 0 => "คำเตือน: ไม่สามารถเขียนได้ %s", + ], + "Watermark user toggles" => [ + 0 => "สลับการใช้ลายน้ำ", + ], + "Enable watermark on guest uploads" => [ + 0 => "เปิดใช้งานลายน้ำอัพโหลดภาพของบุคคลทั่วไป", + ], + "Enable watermark on user uploads" => [ + 0 => "เปิดใช้งาน watermark สำหรับสมาชิก", + ], + "Enable watermark on admin uploads" => [ + 0 => "เปิดใช้งาน watermark ในโหมดผู้ดูแล", + ], + "Watermark file toggles" => [ + 0 => "สลับการใช้ลายน้ำ", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "เปิดใช้งานลายน้ำบนภาพเคลื่อนไหว", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "ขนาดของภาพขั้นต่ำที่จำเป็นในการใช้ลายน้ำ", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "ภาพที่มีขนาดเล็กกว่านี้จะไม่ถูกใส่ลายน้ำดิจิตอล ใส่ศูนย์ (0) จะไม่กำหนดขั้นต่ำขนาดภาพ", + ], + "Watermark image" => [ + 0 => "รูปลายน้ำ", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "คุณจะได้รับผลลัพธ์ที่ดีที่สุด และสามารถใช้ภาพที่มีขนาดใหญ่ถ้าขนาดของไฟล์ไม่ใหญ่ (แนะนำสูงสุด. เป็น 16KB) ต้องเป็น PNG", + ], + "Watermark position" => [ + 0 => "ตำแหน่งลายน้ำ", + ], + "left top" => [ + 0 => "ด้านบนซ้าย", + ], + "left center" => [ + 0 => "ซ้ายตรงกลาง", + ], + "left bottom" => [ + 0 => "ด้านล่างซ้าย", + ], + "center top" => [ + 0 => "กลางด้านบน", + ], + "center center" => [ + 0 => "ศูนย์กลาง", + ], + "center bottom" => [ + 0 => "กลางล่าง", + ], + "right top" => [ + 0 => "ด้านบนขวา", + ], + "right center" => [ + 0 => "ขวากลาง", + ], + "right bottom" => [ + 0 => "ล่างขวา", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "ตำแหน่งสัมพัทธ์ของภาพลายน้ำ จัดแนวแนวนอนครั้งแรกในแนวตั้ง", + ], + "Watermark percentage" => [ + 0 => "เปอร์เซ็นต์ลายน้ำ", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "ขนาดลายน้ำที่เกี่ยวข้องกับพื้นที่เป้าหมาย ค่า 1 ถึง 100", + ], + "Watermark margin" => [ + 0 => "ขอบของลายน้ำ", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "ขอบจากเส้นขอบของภาพไปยังรูปลายน้ำ", + ], + "Watermark opacity" => [ + 0 => "ความทึบของลายน้ำ", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "ความทึบของลายน้ำในภาพลายน้ำสุดท้าย ค่า 0 ถึง 100", + ], + "Dashboard > Settings > Website" => [ + 0 => "หน้าแดชบอร์ด> การตั้งค่า> เว็บไซต์", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "หมวดหมู่จะไม่ทำงานเมื่อคุณลักษณะหน้ารวมภาพถูกปิด ย้อนกลับการตั้งค่านี้ไป %s", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "คุณต้องการลบหมวด %s หรือไม่? ไม่สามารถเลิกทำได้", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "หมายเหตุ: การลบหมวดหมู่จะไม่ลบรูปภาพที่อยู่ในหมวดหมู่นั้น", + ], + "Edit category" => [ + 0 => "แก้ไขหมวดหมู่", + ], + "Expires" => [ + 0 => "หมดอายุ", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "คุณต้องการลบแบนไป IP %s หรือไม่? ไม่สามารถเลิกทำได้", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "ที่อยู่ IP โดนแบนจะถูกห้ามไม่ให้ใช้เว็บไซต์ทั้งหมด ..", + ], + "Edit IP ban" => [ + 0 => "ห้ามแก้ไข IP", + ], + "Enable signups" => [ + 0 => "เปิดใช้งานการลงชื่อสมัครเข้าใช้", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะช่วยให้ผู้ใช้การลงชื่อสมัครใช้", + ], + "Enable user content delete" => [ + 0 => "เปิดใช้การลบเนื้อหาผู้ใช้", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการอนุญาตให้ผู้ใช้ลบเนื้อหาของตนเอง การตั้งค่านี้ไม่มีผลกับผู้ดูแลระบบ", + ], + "Minimum age required" => [ + 0 => "อายุขั้นต่ำที่จำเป็น", + ], + "Empty" => [ + 0 => "ว่างเปล่า", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "ปล่อยให้มันว่างเปล่าเพื่อไม่จำเป็นต้องมีอายุขั้นต่ำในการใช้เว็บไซต์", + ], + "Notify on user signup" => [ + 0 => "แจ้งเมื่อลงชื่อสมัครใช้ของผู้ใช้", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการรับการแจ้งเตือนทางอีเมลสำหรับการลงทะเบียนผู้ใช้ใหม่แต่ละราย", + ], + "Username routing" => [ + 0 => "ชื่อผู้ใช้กำหนดเส้นทาง", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะใช้ URL %s/ ชื่อผู้ใช้ URL ที่แทน %s/ ผู้ใช้ / ชื่อผู้ใช้", + ], + "Require email confirmation" => [ + 0 => "จำเป็นต้องมีการยืนยันทางอีเมล", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "เปิดใช้งานนี้หากผู้ใช้จะต้องตรวจสอบที่อยู่อีเมลของพวกเขาที่ลงทะเบียน", + ], + "Require email for social signup" => [ + 0 => "ต้องใช้อีเมลสำหรับ social signup", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "เปิดใช้งานหากผู้ใช้ที่ใช้เครือข่ายสังคมในการลงทะเบียนต้องระบุที่อยู่อีเมล", + ], + "User avatar max. filesize" => [ + 0 => "จำนวนมากสุดของขนาดไฟล์ Avatar ผู้ใช้", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "แม็กซ์. อนุญาตให้มีขนาดไฟล์สำหรับอวาตาร์ของผู้ใช้ (สูงสุดที่อนุญาตโดยเซิร์ฟเวอร์คือ %s)", + ], + "User background max. filesize" => [ + 0 => "พื้นหลังของผู้ใช้สูงสุด. ขนาดไฟล์", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "แม็กซ์. อนุญาตให้มีขนาดไฟล์สำหรับภาพพื้นหลังของผู้ใช้ (สูงสุดที่อนุญาตโดยเซิร์ฟเวอร์คือ %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "แสดงหน้าจอความยินยอมก่อนเข้าถึงเว็บไซต์ เป็นประโยชน์สำหรับเว็บไซต์เนื้อหาสำหรับผู้ใหญ่ที่ผู้เยาว์ไม่ควรได้รับอนุญาต", + ], + "Enable consent screen" => [ + 0 => "เปิดใช้งานหน้าจอความยินยอม", + ], + "Consent screen cover image" => [ + 0 => "ภาพปกหน้าจอความยินยอม", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "การอัพโหลดภาพที่ถูกบล็อกโดย IP ถ้าระบบทราบพฤติกรรมของการฟลัดขึ้นอยู่กับจำนวนของการอัพโหลดต่อช่วงเวลา การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้ดูแล", + ], + "Notify to email" => [ + 0 => "แจ้งไปยังอีเมล", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "หากเปิดใช้งานระบบจะส่งอีเมลในเหตุการณ์ฟลัด", + ], + "Minute limit" => [ + 0 => "ขีดจำกัด นาที", + ], + "Hourly limit" => [ + 0 => "ขีดจำกัด รายชั่วโมง", + ], + "Daily limit" => [ + 0 => "ขีดจำกัด รายวัน", + ], + "Weekly limit" => [ + 0 => "ขีดจำกัด รายสัปดาห์", + ], + "Monthly limit" => [ + 0 => "ขีดจำกัด รายเดือน", + ], + "Show not safe content in listings" => [ + 0 => "แสดงเนื้อหาที่ไม่ปลอดภัยในรายชื่อ", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะแสดงเนื้อหาที่ไม่ปลอดภัยในรายการ การตั้งค่านี้ไม่ส่งผลกระทบต่อดูแลเว็บและสามารถแทนที่โดยการตั้งค่าของผู้ใช้เอง", + ], + "Blur NSFW content in listings" => [ + 0 => "เบลอเนื้อหา NSFW ในรายการ", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการใช้เอฟเฟ็กต์ภาพเบลอบนภาพ NSFW ในรายการ", + ], + "Show banners in not safe content" => [ + 0 => "แสดงแบนเนอร์ด้วยเนื้อหาที่ไม่ปลอดภัย", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงแบนเนอร์ในหน้าเนื้อหาที่ไม่ปลอดภัย", + ], + "Show not safe content in random mode" => [ + 0 => "แสดงเนื้อหาที่ไม่ปลอดภัยในโหมดสุ่ม", + ], + "List items per page" => [ + 0 => "รายการต่อหนึ่งหน้า", + ], + "How many items should be displayed per page listing." => [ + 0 => "จำนวนรายการที่ควรจะแสดงรายชื่อหน้าต่อ", + ], + "List pagination mode" => [ + 0 => "โหมดการแบ่งหน้ารายการ", + ], + "Endless scrolling" => [ + 0 => "เลื่อนไม่สิ้นสุด", + ], + "Classic pagination" => [ + 0 => "การแบ่งลำดับแบบคลาสสิก", + ], + "What pagination method should be used." => [ + 0 => "การแบ่งหน้าควรจะใช้อะไร", + ], + "Listing viewer" => [ + 0 => "ผู้ดูรายการ", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้เพื่อใช้โปรแกรมดูรายชื่อเมื่อคลิกที่รูปภาพ", + ], + "Image listing size" => [ + 0 => "ขนาดรายการภาพ", + ], + "Fluid" => [ + 0 => "ที่ไหลได้", + ], + "Fixed" => [ + 0 => "ปรับปรุงแล้ว", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "ทั้งสองวิธีใช้ความกว้างคงที่ แต่ความสูงอัตโนมัติ", + ], + "Album listing images requirement" => [ + 0 => "ความต้องการภาพอัลบั้ม", + ], + "explore" => [ + 0 => "สำรวจ", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "ตั้งจำนวนภาพขั้นต่ำที่ต้องการเพื่อแสดงอัลบั้มในการสำรวจ", + ], + "Listing columns number" => [ + 0 => "จำนวนรายการคอลัมน์", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "ที่นี่คุณสามารถกำหนดจำนวนคอลัมน์ที่มีการใช้ขึ้นอยู่กับอุปกรณ์เป้าหมาย", + ], + "Phone" => [ + 0 => "โทรศัพท์", + ], + "Phablet" => [ + 0 => "แฟบเล็ต", + ], + "Tablet" => [ + 0 => "แท็บเล็ต", + ], + "Laptop" => [ + 0 => "แล็ปท็อป", + ], + "Desktop" => [ + 0 => "เดสก์ทอป", + ], + "theme editing" => [ + 0 => "การแก้ไขชุดรูปแบบ", + ], + "Put your themes in the %s folder" => [ + 0 => "วางรูปแบบของคุณในโฟลเดอร์ %s", + ], + "Tone" => [ + 0 => "โทน", + ], + "Light" => [ + 0 => "สว่าง", + ], + "Dark" => [ + 0 => "มืด", + ], + "Main color" => [ + 0 => "สีหลัก", + ], + "Hexadecimal color value" => [ + 0 => "ค่าสีฐานสิบหก", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "ใช้ปุ่มนี้เพื่อกำหนดสีของธีมหลัก ค่าต้องอยู่ใน <a href=\"%s\" target=\"_blank\">รูปแบบ hex</a>", + ], + "Top bar button color" => [ + 0 => "สีปุ่มแถบด้านบน", + ], + "Blue" => [ + 0 => "สีน้ำเงิน", + ], + "Green" => [ + 0 => "สีเขียว", + ], + "Orange" => [ + 0 => "ส้ม", + ], + "Red" => [ + 0 => "สีแดง", + ], + "Grey" => [ + 0 => "สีเทา", + ], + "Black" => [ + 0 => "ดำ", + ], + "White" => [ + 0 => "สีขาว", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "สีสำหรับปุ่มแถบด้านบนเช่นปุ่ม \"สมัครสมาชิก\"", + ], + "Enable vector logo" => [ + 0 => "เปิดใช้งานโลโก้เวกเตอร์", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "เปิดใช้งานโลโก้เวกเตอร์สำหรับโลโก้ที่มีคุณภาพสูงในอุปกรณ์ที่มีความหนาแน่นของพิกเซลสูง", + ], + "Vector logo image" => [ + 0 => "ภาพโลโก้เวกเตอร์", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "รุ่นเวกเตอร์หรือโลโก้เว็บไซต์ของคุณในรูปแบบ SVG", + ], + "Raster logo image" => [ + 0 => "ภาพโลโก้ Raster", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "รุ่นของ Bitmap หรือโลโก้เว็บไซต์ของคุณ ขอแนะนำรูปแบบ PNG", + ], + "Logo height" => [ + 0 => "ความสูงของโลโก้", + ], + "No value" => [ + 0 => "ไม่มีค่า", + ], + "Use this to set the logo height if needed." => [ + 0 => "ใช้ตัวเลือกนี้เพื่อกำหนดความสูงของโลโก้หากจำเป็น", + ], + "Favicon image" => [ + 0 => "ภาพ Favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "ภาพ Favicon รูปภาพต้องมีความกว้างและความสูงเท่ากัน", + ], + "Image load max. filesize" => [ + 0 => "รูปภาพโหลดสูงสุด ขนาดไฟล์", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "รูปภาพที่ใหญ่กว่าขนาดนี้จะแสดงปุ่มเพื่อโหลดภาพความละเอียดเต็มรูปแบบ", + ], + "Enable download button" => [ + 0 => "เปิดใช้ปุ่มดาวน์โหลด", + ], + "Enable this if you want to show the image download button." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงปุ่มดาวน์โหลดรูปภาพ", + ], + "Enable right click on image" => [ + 0 => "เปิดใช้งานคลิกขวาที่รูปภาพ", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการให้คลิกขวาที่หน้าโปรแกรมดูรูปภาพ", + ], + "Enable show Exif data" => [ + 0 => "เปิดใช้งานข้อมูล Exif ที่แสดง", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะแสดงภาพข้อมูล EXIF", + ], + "Enable social share" => [ + 0 => "เปิดใช้งานการแบ่งปันทางสังคม", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงปุ่มเครือข่ายสังคมเพื่อแชร์เนื้อหา", + ], + "Enable embed codes (content)" => [ + 0 => "เปิดใช้โค้ดสำหรับฝัง (เนื้อหา)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "เปิดใช้งานนี้หากคุณต้องการแสดงโค้ดฝังสำหรับเนื้อหา", + ], + "Not safe content checkbox in uploader" => [ + 0 => "ช่องทำเครื่องหมายเนื้อหาที่ไม่ปลอดภัยในโปรแกรมอัพโหลด", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงช่องทำเครื่องหมายเพื่อระบุว่าไม่อัปโหลดเนื้อหาที่ปลอดภัย", + ], + "Custom CSS code" => [ + 0 => "โค้ด CSS ที่กำหนดเอง", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "ใส่โค้ด CSS ที่กำหนดเองของคุณที่นี่ มันจะถูกวางไว้เป็น <style> ก่อนปิด </head>", + ], + "Custom JS code" => [ + 0 => "โค้ด JS แบบกำหนดเอง", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "ใส่รหัส JS ที่กำหนดเองของคุณที่นี่ มันจะถูกวางไว้เป็น <script> ก่อนปิด </head>", + ], + "Style" => [ + 0 => "Style", + ], + "Landing page" => [ + 0 => "หน้า Landing Page", + ], + "Split landing + images" => [ + 0 => "แบ่งภาพ + ภาพ", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "เลือกรูปแบบหน้าแรก หากต้องการปรับแต่งเพิ่มเติมให้แก้ไข app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "ภาพหน้าปก", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "คุณต้องการที่จะลบภาพนี้หรือไม่?", + ], + "Delete image" => [ + 0 => "ลบรูปภาพ", + ], + "Add new cover image" => [ + 0 => "เพิ่มภาพหน้าปกใหม่", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "รุ่นเวกเตอร์หรือโลโก้เว็บไซต์ของคุณในรูปแบบ SVG (เฉพาะสำหรับหน้าแรก)", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "รุ่น Bitmap หรือโลโก้เว็บไซต์ของคุณ (เฉพาะสำหรับหน้าแรก) ขอแนะนำรูปแบบ PNG", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "ซึ่งจะถูกเพิ่มลงในแท็ก %s ของหน้าแรก เว้นว่างไว้เพื่อใช้เนื้อหาเริ่มต้น", + ], + "Paragraph" => [ + 0 => "ย่อหน้า", + ], + "Call to action button color" => [ + 0 => "สีของปุ่มเรียกร้องให้ดำเนินการ", + ], + "Color of the homepage call to action button." => [ + 0 => "สีของปุ่มเรียกร้องให้ดำเนินการในหน้าแรก", + ], + "Call to action outline style button" => [ + 0 => "ปุ่มสไตล์การเรียกร้องให้ดำเนินการ", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "เปิดใช้งานรูปแบบนี้เพื่อใช้สไตล์เค้าร่างสำหรับปุ่มเรียกร้องให้ดำเนินการในหน้าแรก", + ], + "Call to action functionality" => [ + 0 => "ฟังก์ชันการเรียกร้องให้ดำเนินการ", + ], + "Trigger uploader" => [ + 0 => "เรียกใช้โปรแกรมอัพโหลด", + ], + "Open URL" => [ + 0 => "เปิด URL", + ], + "Call to action URL" => [ + 0 => "URL เรียกร้องให้ดำเนินการ", + ], + "Enter an absolute or relative URL" => [ + 0 => "ป้อน URL แบบสัมบูรณ์หรือสัมพัทธ์", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "URL ที่คนรู้จักถูกใจ %r จะถูกแมปไปยัง %l", + ], + "Call to action HTML" => [ + 0 => "HTML เรียกร้องให้ดำเนินการ", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "ซึ่งจะถูกเพิ่มลงในแท็ก <a> การเรียกร้องให้ดำเนินการ เว้นว่างไว้เพื่อใช้เนื้อหาเริ่มต้น", + ], + "User IDs" => [ + 0 => "ผู้ใช้งาน IDs", + ], + "banners" => [ + 0 => "แบนเนอร์", + ], + "Automatic updates check" => [ + 0 => "ตรวจสอบการอัปเดตอัตโนมัติ", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "เมื่อเปิดใช้งานระบบจะตรวจหาการอัปเดตใหม่โดยอัตโนมัติ", + ], + "Display available updates notification" => [ + 0 => "แสดงการแจ้งเตือนการอัปเดตที่พร้อมใช้งาน", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้เพื่อแสดงการแจ้งเตือนด้านบนเพื่อเตือนคุณเกี่ยวกับการอัปเดตระบบใหม่ที่พร้อมใช้งาน", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URLs", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "เปิดใช้งานนี้ หากคุณต้องการใช้ SEO %s URLs", + ], + "Minify code" => [ + 0 => "ย่อรหัส", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "เปิดใช้งานนี้หากคุณต้องการลดขนาดโค้ด CSS และ JS โดยอัตโนมัติ", + ], + "Maintenance" => [ + 0 => "ซ่อมบำรุง", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "เมื่อเปิดใช้งานเว็บไซต์จะแสดงข้อความการบำรุงรักษา การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้ดูแล", + ], + "Crypt salt" => [ + 0 => "เข้ารหัส salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "นี่คือเครื่องมือที่ใช้ในการแปลงรหัสตัวเลขเป็นตัวอักษรและตัวเลข มันถูกสร้างขึ้นเมื่อติดตั้ง", + ], + "PHP error reporting" => [ + 0 => "การรายงานข้อผิดพลาด PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการพิมพ์ข้อผิดพลาดที่เกิดขึ้นจาก PHP <a %s>error_reporting()</a> ควรปิดใช้งานในการผลิต", + ], + "Debug level" => [ + 0 => "ระดับดีบัก", + ], + "None" => [ + 0 => "ไม่มี", + ], + "Error log" => [ + 0 => "บันทึกข้อผิดพลาด", + ], + "Print errors without error log" => [ + 0 => "พิมพ์ข้อผิดพลาดโดยไม่บันทึกข้อผิดพลาด", + ], + "Print and log errors" => [ + 0 => "ข้อผิดพลาดในการพิมพ์และบันทึก", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "ในการกำหนดค่าระดับตรวจแก้จุดบกพร่องให้ตรวจสอบ <a %s>เอกสารการแก้ปัญหา</a> ระดับค่าเริ่มต้นคือ \"บันทึกข้อผิดพลาด\" (1)", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "การกำหนดเส้นทางช่วยให้คุณสามารถกำหนดค่าการเชื่อมโยงเส้นทางดีฟอลต์ได้ทันที อนุญาตเฉพาะตัวอักษรผสมตัวเลขและยัติภังค์เท่านั้น ตรวจสอบ %s ของเราถ้าคุณต้องการแทนที่หรือเพิ่มเส้นทางใหม่", + ], + "Image routing" => [ + 0 => "การกำหนดเส้นทางรูปภาพ", + ], + "Routing for %s" => [ + 0 => "กำหนดเส้นทางสำหรับ %s", + ], + "Album routing" => [ + 0 => "การกำหนดเส้นทางอัลบั้ม", + ], + "Custom language strings" => [ + 0 => "สตริงภาษาที่กำหนดเอง", + ], + "language strings" => [ + 0 => "สตริงภาษา", + ], + "Default language" => [ + 0 => "ภาษาเริ่มต้น", + ], + "Default base language to use." => [ + 0 => "ภาษาพื้นฐานที่จะใช้", + ], + "Auto language" => [ + 0 => "เลือกภาษาอัตโนมัติ", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการตรวจหาและตั้งค่าภาษาที่ถูกต้องสำหรับผู้ใช้แต่ละรายโดยอัตโนมัติ", + ], + "Language chooser" => [ + 0 => "ตัวเลือกภาษา", + ], + "Enable this if you want to allow language selection." => [ + 0 => "เปิดใช้งานนี้หากคุณต้องการอนุญาตการเลือกภาษา", + ], + "Enabled languages" => [ + 0 => "เปิดใช้งานภาษา", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "ระบบจะไม่ใช้ภาษาที่ไม่ได้รับการตรวจสอบในเว็บไซต์ของคุณ", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "เปิดใช้งานเพื่อเปิดหรือปิดใช้งาน HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "สลับเพื่อเปิดหรือปิดการจัดเก็บข้อมูลนี้", + ], + "Quota" => [ + 0 => "อ้างอิง", + ], + "Active" => [ + 0 => "ใช้งาน", + ], + "Storage method" => [ + 0 => "วิธีการเก็บข้อมูล", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "พื้นที่จัดเก็บข้อมูลภายในจะถูกใช้เป็นค่าเริ่มต้นหรือเมื่อไม่มีการใช้ที่เก็บข้อมูลภายนอก.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "หากต้องการความช่วยเหลือโปรดตรวจสอบ <a %s>เอกสารข้อมูลการจัดเก็บ</a>", + ], + "Edit storage" => [ + 0 => "แก้ไขการจัดเก็บข้อมูล", + ], + "From name" => [ + 0 => "จากชื่อ", + ], + "Sender name for emails sent to users." => [ + 0 => "ชื่อผู้ส่งสำหรับอีเมลที่ส่งถึงผู้ใช้", + ], + "Email mode" => [ + 0 => "โหมดอีเมล", + ], + "How to send emails? SMTP recommended." => [ + 0 => "วิธีการส่งอีเมล? แนะนำ SMTP", + ], + "SMTP server and port" => [ + 0 => "เซิร์ฟเวอร์ SMTP และพอร์ต", + ], + "SMTP server" => [ + 0 => "เซิร์ฟเวอร์ SMTP", + ], + "SMTP username" => [ + 0 => "ชื่อผู้ใช้ SMTP", + ], + "SMTP password" => [ + 0 => "รหัสผ่าน SMTP", + ], + "SMTP security" => [ + 0 => "การรักษาความปลอดภัย SMTP", + ], + "Unsecured" => [ + 0 => "ไม่มั่นคง", + ], + "Decode ID" => [ + 0 => "ถอดรหัส ID", + ], + "Encode ID" => [ + 0 => "เข้ารหัส ID", + ], + "Send test email" => [ + 0 => "ทดสอบส่งเมล", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "ใช้วิธีนี้เพื่อทดสอบว่ามีการส่งอีเมลของคุณอย่างไร เราขอแนะนำให้คุณใช้ %s", + ], + "Export a user" => [ + 0 => "ส่งออกผู้ใช้", + ], + "Export user" => [ + 0 => "ส่งออกผู้ใช้", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "ซึ่งจะช่วยให้คุณสามารถดาวน์โหลดข้อมูลส่วนบุคคลมาตรฐานของผู้ใช้ในรูปแบบ JSON ได้", + ], + "Regenerate external storage stats" => [ + 0 => "สร้างสถิติการจัดเก็บข้อมูลภายนอกใหม่", + ], + "Storage id" => [ + 0 => "ไอดีที่เก็บข้อมูล", + ], + "Regenerate" => [ + 0 => "สร้างใหม่", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "การคำนวณนี้จะเป็นการคำนวณผลรวมของรูปภาพทั้งหมดที่ได้เชื่อมโยงกับเป้าหมายพื้นที่เก็บข้อมูลภายนอก", + ], + "Migrate image records from one external storage to another" => [ + 0 => "ย้ายข้อมูลระเบียนภาพจากที่จัดเก็บข้อมูลภายนอกหนึ่งไปยังอีกที่หนึ่ง", + ], + "Source storage id" => [ + 0 => "ต้นทางไอดีที่เก็บข้อมูล", + ], + "Target storage id" => [ + 0 => "ปลายทางไอดีที่เก็บข้อมูล", + ], + "social networks" => [ + 0 => "สังคมออนไลน์", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "คุณต้องมี <a href=\"https://developers.facebook.com/\" target=\"_blank\">แอป Facebook</a> สำหรับข้อมูล", + ], + "Facebook app id" => [ + 0 => "Facebook แอพไอดี", + ], + "Facebook app secret" => [ + 0 => "Facebook แอพซีเคร็ท", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "คุณต้องมี <a href=\"https://apps.twitter.com\" target=\"_blank\">แอป Twitter</a> สำหรับข้อมูล", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "บัญชี Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "คุณต้องมี <a href=\"https://cloud.google.com/console\" target=\"_blank\">แอป Google</a> สำหรับข้อมูล", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "คุณต้องมี <a href=\"http://vk.com/dev\" target=\"_blank\">แอป VK</a> สำหรับข้อมูล", + ], + "VK client id" => [ + 0 => "VK client id", + ], + "VK client secret" => [ + 0 => "VK client secret", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "คุณต้องมี <a href=\"%s\" target=\"_blank\">คีย์ reCAPTCHA</a> สำหรับข้อมูล", + ], + "%s site key" => [ + 0 => "%s site key", + ], + "%s secret key" => [ + 0 => "%s secret key", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "ต้องมีกี่ครั้งที่ล้มเหลวในการขอ reCAPTCHA? ใช้ศูนย์ (0) เพื่อแสดง reCAPTCHA เสมอ", + ], + "%s public key" => [ + 0 => "รหัสการเข้าถึง | %s ", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "ไม่อนุญาต, Facebook หรือสิ่งที่คุณต้องการ จะใช้ในมุมมองภาพ", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics หรือสิ่งที่คุณต้องการ จะถูกเพิ่มลงในส่วนท้ายของรูปแบบ", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "สำหรับเอกสารเกี่ยวกับ API ให้ตรวจสอบ <a %s>เอกสาร API</a>", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "ใช้คีย์นี้เมื่อใช้ <a %s>API v1</a>", + ], + "Plugin route" => [ + 0 => "เส้นทางปลั๊กอิน", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้เพื่อแสดงคำแนะนำปลั๊กอินที่ %u. ลิงก์ไปยังคำแนะนำเหล่านี้จะถูกเพิ่มลงในเมนู %s การตั้งค่านี้ไม่มีผลกับผู้ดูแลระบบ", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "ใช้ตัวเลือกนี้เพื่อกำหนด URL ที่กำหนดเองสำหรับ %p. โปรดทราบว่าคุณต้องจำลอง %s ใน URL นี้ด้วยตนเอง", + ], + "Cookie law compliance" => [ + 0 => "การปฏิบัติตามกฎหมายคุกกี้", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "เปิดใช้งานคุณลักษณะนี้เพื่อแสดงข้อความที่สอดคล้องกับข้อกำหนดของกฎหมายคุกกี้ของสหภาพยุโรป หมายเหตุ: คุณจำเป็นต้องทำเช่นนี้หากเว็บไซต์ของคุณเป็นโฮสต์ในสหภาพยุโรปและหากคุณเพิ่มคุกกี้ติดตาม", + ], + "Save changes" => [ + 0 => "บันทึกการเปลี่ยนแปลง", + ], + "Check the errors to proceed." => [ + 0 => "ตรวจสอบข้อผิดพลาดเพื่อดำเนินการต่อ", + ], + "Play GIF" => [ + 0 => "เล่น GIF", + ], + "Load full resolution" => [ + 0 => "โหลดความละเอียดเต็มรูปแบบ", + ], + "Added to %a and categorized in %c" => [ + 0 => "เพิ่มไปยัง %a และจัดหมวดหมู่เป็น %c", + ], + "Added to %s" => [ + 0 => "เพิ่มไปยัง %s", + ], + "Uploaded to %s" => [ + 0 => "อัพโหลดไปยัง %s", + ], + "Uploaded %s" => [ + 0 => "อัปโหลดแล้ว %s", + ], + "Less Exif data" => [ + 0 => "Exif ข้อมูลน้อยลง", + ], + "More Exif data" => [ + 0 => "ข้อมูล Exif เพิ่มเติม", + ], + "Share image" => [ + 0 => "แบ่งปันรูป", + ], + "Album ID" => [ + 0 => "อัลบั้ม ID", + ], + "In this album" => [ + 0 => "ในอัลบั้มนี้", + ], + "Upload and share your images." => [ + 0 => "อัพโหลดและแชร์รูปภาพของคุณ", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "ลากหรือวางเพื่อเริ่มต้นการอัพโหลด.ขนาดขีดจำกัด %s . การเชื่อมโยงภาพโดยตรง BBCode และภาพขนาดย่อของ HTML.", + ], + "Start uploading" => [ + 0 => "เริ่มการอัพโหลด", + ], + "Sign up to unlock all the features" => [ + 0 => "ลงชื่อสมัครใช้เพื่อปลดล็อกคุณลักษณะทั้งหมด", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "จัดการเนื้อหาของคุณสร้างอัลบั้มส่วนตัว, ปรับแต่งโปรไฟล์ของคุณและอื่น ๆ อีกมากมาย", + ], + "Sign in with your account" => [ + 0 => "เข้าสู่ระบบด้วยบัญชีของคุณ", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "ไม่ได้มีบัญชีอยู่แล้ว? <a href='%s'>ลงทะเบียน</a>ในขณะนี้", + ], + "Logged out" => [ + 0 => "ออกจากระบบ", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "คุณได้ออกจากระบบ %s หวังว่าจะได้พบคุณเร็ว ๆ นี้.", + ], + "Go to homepage" => [ + 0 => "ไปที่หน้าแรก", + ], + "Website under maintenance" => [ + 0 => "เว็บไซต์ภายใต้การบำรุงรักษา", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "เรากำลังดำเนินการบำรุงรักษาตามกำหนดเวลาในเว็บไซต์ โปรดกลับมาในอีกสักครู่", + ], + "This content is password protected." => [ + 0 => "เนื้อหานี้ได้รับการป้องกันด้วยรหัสผ่าน", + ], + "Please enter your password to continue." => [ + 0 => "โปรดป้อนรหัสผ่านของคุณเพื่อดำเนินการต่อ", + ], + "Send" => [ + 0 => "ส่ง", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "เพิ่มการอัพโหลดรูปภาพไปยังเว็บไซต์บล็อกหรือฟอรัมโดยการติดตั้งปลั๊กอินอัพโหลดของเรา ให้ภาพอัพโหลดไปยังเว็บไซต์ใด ๆ โดยการวางปุ่มที่จะช่วยให้ผู้ใช้ของคุณโดยตรงอัพโหลดภาพไปยังบริการของเราและมันจะจัดการกับรหัสที่จำเป็นสำหรับการแทรก คุณลักษณะทั้งหมดที่รวมไว้เช่นการลากและวางการอัพโหลดระยะไกลการปรับขนาดภาพและอื่น ๆ", + ], + "Supported software" => [ + 0 => "ซอฟต์แวร์ที่สนับสนุน", + ], + "supported software" => [ + 0 => "ซอฟต์แวร์ที่สนับสนุน", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "ปลั๊กอินทำงานได้ในเว็บไซต์ใด ๆ ที่มีเนื้อหาที่ผู้ใช้สามารถแก้ไขได้และสำหรับ %sv, จะวางปุ่มอัปโหลดที่จะตรงกับแถบเครื่องมือตัวแก้ไขเป้าหมายเพื่อไม่จำเป็นต้องปรับแต่งเป็นพิเศษ", + ], + "Add it to your website" => [ + 0 => "เพิ่มเว็บไซต์ของคุณ", + ], + "options" => [ + 0 => "ตัวเลือก", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "คัดลอกและวางโค้ดปลั๊กอินลงในโค้ด HTML ของเว็บไซต์ของคุณ (โดยเฉพาะภายในส่วนหัว) มีมากมาย %o เพื่อให้พอดีกับความต้องการของคุณ", + ], + "Basic options" => [ + 0 => "ตัวเลือกพื้นฐาน", + ], + "Color palette" => [ + 0 => "จานสี", + ], + "Button color scheme" => [ + 0 => "โทนสีของปุ่ม", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "ฝังโค้ดที่จะแทรกอัตโนมัติในกล่องแก้ไข", + ], + "Sibling selector" => [ + 0 => "ตัวเลือกพี่น้อง", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "ตัวเลือกองค์ประกอบพี่น้องที่จะวางปุ่มไว้ข้างๆ", + ], + "Sibling position" => [ + 0 => "ตำแหน่งพี่น้อง", + ], + "After" => [ + 0 => "หลัง", + ], + "Before" => [ + 0 => "ก่อน", + ], + "Position relative to sibling element" => [ + 0 => "ตำแหน่งเทียบกับองค์ประกอบพี่น้อง", + ], + "Advanced options" => [ + 0 => "ตัวเลือกขั้นสูง", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "ปลั๊กอินมีชุดตัวเลือกเพิ่มเติมมากมายที่อนุญาตให้มีการปรับแต่งแบบเต็มรูปแบบได้ คุณสามารถใช้ HTML, CSS, จานสีของผู้สังเกตการณ์และอื่น ๆ ตรวจสอบ %d และแหล่งของปลั๊กอินเพื่อให้ทราบถึงตัวเลือกขั้นสูงเหล่านี้", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "คุณไม่มีสิทธิ์เข้าถึงหน้านี้หรือลิงก์หมดอายุแล้ว", + ], + "Search results" => [ + 0 => "ผลการค้นหา", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "คุณต้องการที่จะลบผู้ใช้นี้หรือไม่?", + ], + "Delete user" => [ + 0 => "ลบผู้ใช้", + ], + "Register date" => [ + 0 => "วันที่ลงทะเบียน", + ], + "Registration IP" => [ + 0 => "IP ที่ลงทะเบียน", + ], + "Valid" => [ + 0 => "ยินยอม", + ], + "Banned" => [ + 0 => "ห้าม", + ], + "Awaiting email" => [ + 0 => "รออีเมล", + ], + "Awaiting confirmation" => [ + 0 => "รอการยืนยัน", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i ถึง %f ตัวอักษร<br>ตัวอักษร, ตัวเลขและ \"_\"", + ], + "Auto delete uploads" => [ + 0 => "ลบอัตโนมัติการอัพโหลด", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "ตั้งค่านี้จะนำไปใช้กับการอัปโหลดภาพของคุณโดยค่าเริ่มต้น คุณสามารถแทนที่การตั้งค่านี้ในแต่ละอัปโหลด", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "เก็บภาพ <a %s>ข้อมูล EXIF</a> ในอัปโหลด", + ], + "Newsletter" => [ + 0 => "จดหมายข่าว", + ], + "Send me emails with news about %s" => [ + 0 => "ส่งอีเมลหาฉันถ้ามีข่าวใหม่ๆ %s", + ], + "Content settings" => [ + 0 => "การตั้งค่าเนื้อหา", + ], + "Show not safe content in listings (from others)" => [ + 0 => "แสดงเนื้อหาที่ไม่ปลอดภัยในรายการ (จากคนอื่น ๆ )", + ], + "Language" => [ + 0 => "ภาษา", + ], + "Timezone" => [ + 0 => "เขตเวลา", + ], + "Current password" => [ + 0 => "รหัสผ่านปัจจุบัน", + ], + "Enter your current password" => [ + 0 => "ป้อนรหัสผ่านปัจจุบันของคุณ", + ], + "New password" => [ + 0 => "รหัสผ่านใหม่", + ], + "Confirm new password" => [ + 0 => "ยืนยันรหัสผ่านใหม่", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "เพิ่มรหัสผ่านเพื่อให้สามารถเข้าสู่ระบบได้โดยใช้ชื่อผู้ใช้หรืออีเมลของคุณ", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "ผู้ใช้รายนี้ไม่มีรหัสผ่าน. เพิ่มข้อมูลโดยใช้แบบฟอร์มนี้", + ], + "Enter your password" => [ + 0 => "ป้อนรหัสผ่านของคุณ", + ], + "Confirm password" => [ + 0 => "ยืนยันรหัสผ่านใหม่ของคุณ", + ], + "Re-enter your password" => [ + 0 => "ป้อนรหัสผ่านของคุณอีกครั้ง", + ], + "Upload new image" => [ + 0 => "อัพโหลดรูปภาพ", + ], + "Delete existing image" => [ + 0 => "ลบภาพที่มีอยู่", + ], + "Make my profile and identity totally private" => [ + 0 => "ให้รายละเอียดและตัวตนของฉันส่วนตัวทั้งหมด", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "เปิดใช้งานนี้ถ้าคุณต้องการที่จะทำหน้าที่เหมือนเป็นผู้ใช้ที่ไม่ระบุชื่อ", + ], + "This is your real name, not your username." => [ + 0 => "นี่คือชื่อจริงของคุณ", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "คำอธิบาย", + ], + "Tell us a little bit about you" => [ + 0 => "บอกเรานิด ๆ หน่อย ๆ เกี่ยวกับคุณ", + ], + "User has no connections." => [ + 0 => "ผู้ใช้ไม่มีการเชื่อมต่อ", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "คุณต้องการตัดการเชื่อมต่อ %s จากบัญชีนี้หรือไม่?", + ], + "This account is connected to %s" => [ + 0 => "บัญชีนี้เชื่อมต่อกับ %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "คุณต้องการยกเลิกการเชื่อมต่อบัญชี %s ของคุณหรือไม่?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "คุณจะออกจากระบบและคุณจะไม่สามารถเข้าสู่บัญชีของคุณโดยใช้บัญชี %s นี้ได้", + ], + "Your account is connected to %s" => [ + 0 => "บัญชีของคุณเชื่อมต่อกับ %s", + ], + "disconnect" => [ + 0 => "ตัตเชื่อมต่อ", + ], + "Connect %s" => [ + 0 => "เชื่อมต่อ %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "อย่าลังเลที่จะเรียกดูและค้นพบภาพร่วมกันทั้งหมดของภาพและอัลบั้มฉัน", + ], + "Button" => [ + 0 => "ปุ่ม", + ], + "View all my images" => [ + 0 => "ดูภาพทั้งหมดของฉัน", + ], + "Login" => [ + 0 => "เข้าสู่ระบบ", + ], + "resend account activation" => [ + 0 => "ส่งการเปิดใช้งานบัญชี", + ], + "I'm at least %s years old" => [ + 0 => "อายุอย่างน้อยที่สุดฉัน %s ปี", + ], + "terms" => [ + 0 => "เงื่อนไข", + ], + "privacy policy" => [ + 0 => "นโยบายความเป็นส่วนตัว", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "ฉันยอมรับ %terms_link และ %privacy_link", + ], + "Upload profile background" => [ + 0 => "อัพโหลดรูปภาพพื้นหลังโปรไฟล์ของคุณ", + ], + "Change background" => [ + 0 => "เปลี่ยนพื้นหลัง", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "ภาพพื้นหลังโปรไฟล์จะถูกลบ. ไม่สามารถเลิกทำได้ คุณแน่ใจหรือไม่ว่าต้องการลบภาพพื้นหลังโปรไฟล์?", + ], + "Delete background" => [ + 0 => "ลบพื้นหลัง", + ], + "Follower" => [ + 0 => "ผู้ติดตาม", + ], + "Follow" => [ + 0 => "ติดตาม", + ], + "You have been forbidden to use this website." => [ + 0 => "คุณถูกห้ามการใช้งานเว็บไซต์นี้", + ], + "Plugin" => [ + 0 => "ปลั๊กอิน", + ], + "General questions/comments" => [ + 0 => "คำถามทั่วไป/แสดงความคิดเห็น", + ], + "DMCA complaint" => [ + 0 => "ร้องเรียน DMCA", + ], + "Invalid message" => [ + 0 => "ข้อความผิดพลาด", + ], + "Invalid subject" => [ + 0 => "หัวข้อผิดพลาด", + ], + "Mail error" => [ + 0 => "เมลผิดพลาด", + ], + "Message sent" => [ + 0 => "ส่งข้อความ", + ], + "Message sent. We will get in contact soon." => [ + 0 => "ส่งข้อความแล้ว. เราจะติดต่อกลับในเร็ว ๆ นี้", + ], + "If you want to send a message fill the form below." => [ + 0 => "หากคุณต้องการที่จะส่งข้อความกรอกแบบฟอร์มด้านล่าง", + ], + "Your name" => [ + 0 => "ชื่อของคุณ", + ], + "Subject" => [ + 0 => "เรื่อง", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "การเปลี่ยนแปลงทั้งหมดที่คุณทำจะหายไปหากคุณดำเนินการต่อ", + ], + "Changes saved successfully." => [ + 0 => "บันทึกการเปลี่ยนแปลงเรียบร้อยแล้ว", + ], + "Go back to form" => [ + 0 => "กลับไปที่แบบฟอร์ม", + ], + "continue anyway" => [ + 0 => "ดำเนินการต่อ", + ], + "Saving" => [ + 0 => "กำลังบันทึก", + ], + "Sending" => [ + 0 => "กำลังส่ง", + ], + "Confirm action" => [ + 0 => "ยืนยันการดำเนินการ", + ], + "information" => [ + 0 => "ข้อมูล", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/tr.po.cache.php b/app/.cache/languages/tr.po.cache.php new file mode 100644 index 0000000..3bcca04 --- /dev/null +++ b/app/.cache/languages/tr.po.cache.php @@ -0,0 +1,3834 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:14+0000', + 'PO-Revision-Date' => '2020-09-02 17:14+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'tr', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=2; plural=(n > 1);', +); +$translation_plural = array ( + 'nplurals' => 2, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Geçersiz Mail Adresi. Lütfen Kontrol Ediniz.", + ], + "Invalid username" => [ + 0 => "Geçersiz Kullanıcı Adı", + ], + "Invalid password" => [ + 0 => "Geçersiz Şifre. Lütfen kontrol ederek tekrar deneyiniz.", + ], + "Invalid website mode" => [ + 0 => "Geçersiz website modu.", + ], + "From email address" => [ + 0 => "Gönderen e-posta adresi", + ], + "Sender email for emails sent to users." => [ + 0 => "E-Posta gönderilecek kullanıcıların mail adres veya adreslerini belirtiniz.", + ], + "Incoming email address" => [ + 0 => "Gelen e-posta adresi", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Hatalar ve sistem uyarıları için iletişim formu", + ], + "Website mode" => [ + 0 => "Website modu", + ], + "You can switch the website mode anytime." => [ + 0 => "Web sayfası modunu dilediğiniz zaman değiştirebilirsiniz.", + ], + "Community" => [ + 0 => "Topluluk", + ], + "Personal" => [ + 0 => "Kişisel", + ], + "Installed version is v%s" => [ + 0 => "Yüklü sürüm % s", + ], + "Can't connect to %s" => [ + 0 => "%s'ye bağlanılamıyor", + ], + "Last available release is v%s" => [ + 0 => "Son kullanılabilir sürüm % s", + ], + "Update needed, proceeding to download" => [ + 0 => "Güncelleme gerekli, indirme işlemi devam ediyor", + ], + "No update needed" => [ + 0 => "Güncelleme gerekli değil", + ], + "System files already up to date" => [ + 0 => "Sistem dosyaları zaten güncel", + ], + "Starting v%s download" => [ + 0 => "V % s indiriliyor", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "İndirilen %s çıkarma işlemine devam ediliyor", + ], + "Attempting to extract v%s" => [ + 0 => "%s dosyalar çıkarılmayı deneniyor", + ], + "Extraction completed" => [ + 0 => "Ekstraksiyon tamamlandı", + ], + "Proceding to install the update" => [ + 0 => "Güncellemeyi yüklemek için prosedür", + ], + "Update failed" => [ + 0 => "Güncelleme başarısız oldu", + ], + "Update in progress" => [ + 0 => "Güncelleme devam ediyor", + ], + "Missing %s file" => [ + 0 => "%s dosyası eksik", + ], + "Invalid license info" => [ + 0 => "Geçersiz lisans bilgisi", + ], + "Invalid license key" => [ + 0 => "Geçersiz lisans anahtarı", + ], + "Can't save file" => [ + 0 => "Dosya kaydedilemedi", + ], + "Can't download %s" => [ + 0 => "%s dosyası indirilemiyor", + ], + "Can't extract %s" => [ + 0 => "%s çıkartılamıyor", + ], + "Can't create %s directory - %e" => [ + 0 => "%s dizini oluşturulamıyor - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Dosya %s güncellenemedi - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Lütfen devam etmek için hataları kontrol ediniz.", + ], + "You must enter the album name." => [ + 0 => "Albüm ismi girmelisiniz.", + ], + "Confirm" => [ + 0 => "Onayla", + ], + "The content has been approved." => [ + 0 => "İçerik onaylandı.", + ], + "Select existing album" => [ + 0 => "Mevcut olan albümü seçin", + ], + "An error occurred. Please try again later." => [ + 0 => "Bir hata oluştu. Lütfen daha sonra tekrar deneyin.", + ], + "Please select a valid image file type." => [ + 0 => "Lütfen geçerli bir dosya türü seçiniz.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Lütfen en fazla %s boyutunda bir resim seçiniz.", + ], + "Profile image updated." => [ + 0 => "Profil resmini güncelledi.", + ], + "Profile background image updated." => [ + 0 => "Profil arka plan görüntüsü güncellendi.", + ], + "Profile background image deleted." => [ + 0 => "Profil arka plan resim silindi.", + ], + "Error deleting profile background image." => [ + 0 => "Profil arka plan resmi silinirken hata oluştu", + ], + "Passwords don't match" => [ + 0 => "Şifreleriniz eşleşmiyor", + ], + "Update available v%s" => [ + 0 => "Mevcut v % s güncellemesi", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Sisteminiz için bir güncelleme var. Bu güncellemeyi otomatik olarak indirebilir ve yükleyebilir veya dosyayı indirmeye devam etmek için % s öğesine gidebilirsiniz .", + ], + "The release notes for this update are:" => [ + 0 => "Güncelleme için sürüm notları", + ], + "Update now" => [ + 0 => "Şimdi güncelle", + ], + "or" => [ + 0 => "veya", + ], + "cancel" => [ + 0 => "İptal Et", + ], + "This website is running latest %s version" => [ + 0 => "Bu web sitesi en son %s sürümünü çalıştırıyor", + ], + "loading" => [ + 0 => "Yükleniyor...", + ], + "Toggle select" => [ + 0 => "Seçimi değiştir", + ], + "Like" => [ + 0 => "Beğen", + ], + "Toggle flag" => [ + 0 => "Geçiş bayrağı", + ], + "Edit" => [ + 0 => "Düzenle", + ], + "Album" => [ + 0 => "Albüm", + 1 => "Albümler", + ], + "Approve" => [ + 0 => "Onayla", + ], + "Delete" => [ + 0 => "Sil", + ], + "Close" => [ + 0 => "Çıkış", + ], + "Previous" => [ + 0 => "Önceki", + ], + "Next" => [ + 0 => "Sonraki", + ], + "Clipboard image" => [ + 0 => "Pano resmi", + ], + "File too big." => [ + 0 => "Dosya çok büyük.", + ], + "Invalid or unsupported file format." => [ + 0 => "Geçersiz veya desteklenmeyen dosya formatı.", + ], + "Some files couldn't be added" => [ + 0 => "Bazı dosyalar eklenemedi", + ], + "image" => [ + 0 => "resim", + 1 => "resimler", + ], + "%s's Albums" => [ + 0 => "%s Albümleri", + ], + "Image edited successfully." => [ + 0 => "Resim başarıyla düzenlendi.", + ], + "private" => [ + 0 => "Gizli", + ], + "Album edited successfully." => [ + 0 => "Albüm başarıyla düzenlendi.", + ], + "Invalid URL key." => [ + 0 => "Geçersiz URL key", + ], + "Category URL key already being used." => [ + 0 => "Kategori URL anahtarı zaten kullanılıyor.", + ], + "Category successfully deleted." => [ + 0 => "Kategori başarıyla silindi.", + ], + "Category %s added." => [ + 0 => "Kategori %s eklendi.", + ], + "Invalid expiration date." => [ + 0 => "Geçersiz son kullanma tarihi.", + ], + "IP %s already banned." => [ + 0 => "İP %s zaten yasaklandı.", + ], + "IP %s banned." => [ + 0 => "İP % yasaklandı.", + ], + "IP ban successfully deleted." => [ + 0 => "IP yasağı başarıyla silindi.", + ], + "Please fill all the required fields." => [ + 0 => "Lütfen tüm gerekli alanları doldurun.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Geçersiz depolama kapasitesi değeri. Geçerli bir format kullandığınızdan emin olun.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Depolama kapasitesi bundan daha düşük olamaz. (%s).", + ], + "Invalid URL." => [ + 0 => "Geçersiz URL.", + ], + "Storage successfully edited." => [ + 0 => "Depolama başarıyla düzenlenmiştir.", + ], + "User added successfully." => [ + 0 => "Kullanıcı başarıyla eklendi.", + ], + "The content has been deleted." => [ + 0 => "İçerik başarıyla silindi.", + ], + "The content has been moved." => [ + 0 => "İçerik taşındı.", + ], + "Select" => [ + 0 => "Seçiniz", + ], + "Unselect" => [ + 0 => "Seçimleri Sıfırla", + ], + "The content has been edited." => [ + 0 => "İçerik düzenlendi.", + ], + "Import job ID %s added successfully, you can process the import now" => [ + 0 => "%s alma iş kimliği başarıyla eklendi, içe aktarmayı şimdi işleyebilirsiniz", + ], + "Select number of threads" => [ + 0 => "Konu sayısını seçin", + ], + "Import job ID %s is being processed now" => [ + 0 => "%s içe aktarma işi kimliği şu anda işleniyor", + ], + "Import ID %s removed" => [ + 0 => "%s ithalat kimliği kaldırıldı", + ], + "Spam detected" => [ + 0 => "Spam tespit edildi", + ], + "album" => [ + 0 => "albüm", + 1 => "albümler", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Taşkın tespit edildi. %time% Zaman başına yalnızca %limit% %content% yükleyebilirsiniz", + ], + "Untitled" => [ + 0 => "Başlıksız / isimsiz", + ], + "%s's images" => [ + 0 => "%s'in resimleri", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Not: Bu içerik özeldir ama linke sahip olan birisi içeriği görüntüleyebilir.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Not: Bu içerik şifre korumalıdır. İçerigi paylaşmak için şifreyide paylaşmanız gerekir.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Not: Bu içerik özeldir. Paylaşmak için gizlilik ayarlarını değiştirin", + ], + "Private" => [ + 0 => "Özel", + ], + "Public" => [ + 0 => "Genel", + ], + "Me" => [ + 0 => "Ben", + ], + "Link" => [ + 0 => "Link", + ], + "Password" => [ + 0 => "Şifre", + ], + "view" => [ + 0 => "görüntüleme", + 1 => "görüntülemeler", + ], + "After %n %t" => [ + 0 => "Sonra %n %t", + ], + "minute" => [ + 0 => "dakika", + 1 => "dakika", + ], + "hour" => [ + 0 => "saat", + 1 => "saat", + ], + "day" => [ + 0 => "gün", + 1 => "gün", + ], + "week" => [ + 0 => "hafta", + 1 => "hafta", + ], + "month" => [ + 0 => "ay", + 1 => "ay", + ], + "year" => [ + 0 => "yıl", + 1 => "yıl", + ], + "Don't autodelete" => [ + 0 => "Otomatik silme", + ], + "Duplicated upload" => [ + 0 => "Çift yüklendi", + ], + "Private upload" => [ + 0 => "Gizli yükleme", + ], + "like" => [ + 0 => "beğen", + 1 => "beğeniler", + ], + "Recent" => [ + 0 => "Son yüklenen", + ], + "Trending" => [ + 0 => "Trend olanlar", + ], + "Top users" => [ + 0 => "En iyi kullanıcılar", + ], + "Most recent" => [ + 0 => "Yeni yüklenen resimler", + ], + "Oldest" => [ + 0 => "Eskiler", + ], + "Most viewed" => [ + 0 => "En çok görüntülenen resimler", + ], + "Popular" => [ + 0 => "Popüler", + ], + "Most liked" => [ + 0 => "Çok beğenilen", + ], + "Explore" => [ + 0 => "Araştır (keşfet)", + ], + "Animated" => [ + 0 => "Hareketli", + ], + "Search" => [ + 0 => "Arama", + ], + "People" => [ + 0 => "İnsan", + ], + "Image" => [ + 0 => "Resim", + 1 => "Resimler", + ], + "User" => [ + 0 => "Üye", + 1 => "Üyeler", + ], + "adult" => [ + 0 => "yetişkin", + ], + "teen" => [ + 0 => "genç", + ], + "Content of type %s is forbidden" => [ + 0 => "%s türü içerikler yasaktır.", + ], + "Can't create %s destination dir" => [ + 0 => "%s Hedef dizin oluşturulamıyor", + ], + "Can't open %s for writing" => [ + 0 => "%s yazı için açılamaz", + ], + "Internal" => [ + 0 => "Intern", + ], + "Can't insert storage." => [ + 0 => "Depolama eklenemiyor.", + ], + "Can't update storage details." => [ + 0 => "Depolama detayları güncellenemiyor.", + ], + "requires %s" => [ + 0 => "gerektirir %s", + ], + "Unlimited" => [ + 0 => "Sınırsız", + ], + "used" => [ + 0 => "Eski", + ], + "Private profile" => [ + 0 => "Özel profil", + ], + "second" => [ + 0 => "saniye", + 1 => "saniye", + ], + "%s ago" => [ + 0 => "%s önce", + ], + "moments ago" => [ + 0 => "dakika önce", + ], + "Dashboard" => [ + 0 => "Yönetim Paneli", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Sisteminiz için bir güncelleme var. Güncellemeyi indirmek ve yüklemek için %s gidin.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Veritabanı güncel değil. Güncelleme <a href=\"%s\">update</a> yazılımını çalıştırın.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Website bakım modunda. Geri almak için şuraya gidin <a href=\"%s\">Panel> Ayarları</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "PHP hata bildirimi canlı sistemlerde devre dışı bırakılmalıdır. Bu ayarı değiştirmek için <a href='%s'> sistem ayarlarına </a> gidin.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Varsayılan posta ayarlarını ayarlamadınız. Bunu düzeltmek için <a href='%s'>e-posta ayarlarına</a> gidininiz.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Chevereto tabanlı web siteniz için bir güncelleme var.", + ], + "admin dashboard" => [ + 0 => "yönetici paneli", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Bu güncellemeyi doğrudan %a 'dan başlayabilir veya manuel olarak indirebilir ve %s 'den yükleyebilirsiniz.", + ], + "view on %s" => [ + 0 => "%s üzerinde izle", + ], + "cookie policy" => [ + 0 => "Çerez politikası", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Tarama deneyiminizi ve hizmetlerimizi geliştirmek için kendi ve üçüncü taraf çerezleri kullanıyoruz. Web sitemizi kullanmaya devam ederseniz, bu %cookie_policy_link'i kabul ettiğinizi anlıyoruz.", + ], + "I understand" => [ + 0 => "Anlıyorum", + ], + "Forgot password?" => [ + 0 => "Şifremi unuttum?", + ], + "Reset password" => [ + 0 => "Şifrenizi sıfırlayın", + ], + "Resend account activation" => [ + 0 => "Hesap etkinleştirme kodunu tekrar gönder", + ], + "Add your email address" => [ + 0 => "E-posta adresinizi ekleyin", + ], + "Email changed" => [ + 0 => "E-posta adresiniz değiştirildi", + ], + "%s says you are a robot" => [ + 0 => "%s senin bir robot olduğunu söylüyor", + ], + "Invalid Username/Email" => [ + 0 => "Geçersiz kullanıcı adı / e-posta adresi", + ], + "User doesn't have an email." => [ + 0 => "Kullanıcının e-posta hesabı yok.", + ], + "Request denied" => [ + 0 => "İstek reddedildi", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Bu hesabın kullanılması için etkinleştirilmesi gereklidir. Lütfen mail adresinizi kontrol ederek hesabınızı etkinleştiriniz.", + ], + "Account already activated" => [ + 0 => "Hesap zaten aktif", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Mail için lütfen 15 dakika bekleyip tekrar kontrol ediniz.", + ], + "Reset your password at %s" => [ + 0 => "%s şifrenizi sıfırlayınız", + ], + "Confirmation required at %s" => [ + 0 => "%s onaylanması gerekli", + ], + "Welcome to %s" => [ + 0 => "Hoşgeldin %s", + ], + "Email already being used" => [ + 0 => "Bu mail adresi kullanılmaktadır.", + ], + "Password required" => [ + 0 => "Şifre gerekli", + ], + "Share" => [ + 0 => "Paylaş", + ], + "Embed codes" => [ + 0 => "Embed (Paylaşım) Kodları", + ], + "Full info" => [ + 0 => "Geniş bilgi", + ], + "%a album hosted in %w" => [ + 0 => "%a oranında bir albüm saklanır", + ], + "Stats" => [ + 0 => "İstatistikler", + ], + "Images" => [ + 0 => "Resimler", + ], + "Albums" => [ + 0 => "Albümler", + ], + "Users" => [ + 0 => "Kullanıcılar", + ], + "Settings" => [ + 0 => "Ayarlar", + ], + "Bulk importer" => [ + 0 => "Eylem çağrısı", + ], + "Chevereto version" => [ + 0 => "Chevereto versiyon", + ], + "install update" => [ + 0 => "Güncelleme yükleniyor", + ], + "check for updates" => [ + 0 => "gücelleştirmeleri kontrol et", + ], + "Support" => [ + 0 => "Destek", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Yardıma mı ihtiyacınız var? %s adresine gidin ve hızlı bir şekilde yardım alın.", + ], + "PHP version" => [ + 0 => "PHP versiyon", + ], + "Server" => [ + 0 => "Sunucu", + ], + "MySQL version" => [ + 0 => "MySQL versiyon", + ], + "MySQL server info" => [ + 0 => "MySQL sunucusu bilgisi", + ], + "GD Library" => [ + 0 => "GD Kütüphanesi", + ], + "File uploads" => [ + 0 => "Dosya yüklemeleri", + ], + "Enabled" => [ + 0 => "Açık", + ], + "Disabled" => [ + 0 => "Kapalı", + ], + "Max. upload file size" => [ + 0 => "Maksimum yükleme dosyası boyutu", + ], + "Max. post size" => [ + 0 => "Maksimum mesaj boyutu", + ], + "Max. execution time" => [ + 0 => "Maksimum yürütme zamanı", + ], + "%d second" => [ + 0 => "%d saniye", + 1 => "%d saniyeler", + ], + "Memory limit" => [ + 0 => "Hafıza boyutu", + ], + "Rebuild stats" => [ + 0 => "İstatistikleri yeniden oluştur", + ], + "Connecting IP" => [ + 0 => "IP Bağlantısı", + ], + "Not your IP?" => [ + 0 => "IP adresiniz değil mi?", + ], + "Links" => [ + 0 => "Linkler", + ], + "Collaboration" => [ + 0 => "İşbirliği", + ], + "Documentation" => [ + 0 => "Belgeleme", + ], + "Changelog" => [ + 0 => "Değişiklikler", + ], + "Bug tracking" => [ + 0 => "Hata izleme", + ], + "Website" => [ + 0 => "Site adresi", + ], + "Content" => [ + 0 => "İçerik", + ], + "Pages" => [ + 0 => "Sayfalar", + ], + "Listings" => [ + 0 => "Listeler", + ], + "Image upload" => [ + 0 => "Resim Yükle", + ], + "Categories" => [ + 0 => "Kategoriler", + ], + "Consent screen" => [ + 0 => "Onay mesajı", + ], + "Flood protection" => [ + 0 => "Koruma", + ], + "Theme" => [ + 0 => "Tema", + ], + "Homepage" => [ + 0 => "Anasayfa", + ], + "Banners" => [ + 0 => "Bannerler", + ], + "System" => [ + 0 => "Sistem", + ], + "Routing" => [ + 0 => "Yönlendirme", + ], + "Languages" => [ + 0 => "Dil", + ], + "External storage" => [ + 0 => "Harici depolama", + ], + "Email" => [ + 0 => "Mail", + ], + "Social networks" => [ + 0 => "Sosyal ağlar", + ], + "External services" => [ + 0 => "Dış hizmetler (harici servis)", + ], + "IP bans" => [ + 0 => "İp banlama", + ], + "Additional settings" => [ + 0 => "İlave ayarlar", + ], + "Tools" => [ + 0 => "Araçlar", + ], + "Can't delete all homepage cover images" => [ + 0 => "Tüm başlık resimleri silinemez", + ], + "Homepage cover image deleted" => [ + 0 => "Kapak resmi silinmiş", + ], + "Local" => [ + 0 => "Yerel", + ], + "External" => [ + 0 => "Harici", + ], + "All" => [ + 0 => "Hepsi", + ], + "search content" => [ + 0 => "İçerik Arama", + ], + "Add page" => [ + 0 => "Sayfa ekle", + ], + "Edit page ID %s" => [ + 0 => "Sayfa kimliğini düzenle %s", + ], + "The page has been added successfully." => [ + 0 => "Sayfa başarıyla eklendi.", + ], + "The page has been deleted." => [ + 0 => "Sayfa silindi.", + ], + "homepage" => [ + 0 => "Web sitesi", + ], + "Before main title (%s)" => [ + 0 => "Ana başlıktan önce (%s)", + ], + "After call to action (%s)" => [ + 0 => "Call to Action\" (%s) tarafindan", + ], + "After cover (%s)" => [ + 0 => "Kapak resmine göre (%s)", + ], + "After listing (%s)" => [ + 0 => "Listeleme göre (%s)", + ], + "Before pagination" => [ + 0 => "Sayfa numaralandırmadan önce", + ], + "After pagination" => [ + 0 => "Sayfa numaralandırıldıktan sonra", + ], + "Content (image and album)" => [ + 0 => "İçerik (görüntü ve albüm)", + ], + "Tab about column" => [ + 0 => "Görüntü detaylarına ek olarak", + ], + "Before comments" => [ + 0 => "Yorumlardan önce", + ], + "Image page" => [ + 0 => "Resim sayfası", + ], + "Inside viewer top (image page)" => [ + 0 => "İç izleyici üst (resim sayfası)", + ], + "Inside viewer foot (image page)" => [ + 0 => "İç izleyici ayak (resim sayfası)", + ], + "After image viewer (image page)" => [ + 0 => "Resim görüntüleyici (görüntü sayfası) sonra", + ], + "Before header (image page)" => [ + 0 => "Başlıktan önce (resim sayfası)", + ], + "After header (image page)" => [ + 0 => "Başlığından sonra (resim sayfası)", + ], + "Footer (image page)" => [ + 0 => "Alt (görüntü sayfası)", + ], + "Album page" => [ + 0 => "Albüm sayfası", + ], + "Before header (album page)" => [ + 0 => "Başlıktan önce (albüm sayfası)", + ], + "After header (album page)" => [ + 0 => "Başlığından sonra (albüm sayfası)", + ], + "User profile page" => [ + 0 => "Kullanıcı Profil Sayfası", + ], + "After top (user profile)" => [ + 0 => "Üst sonra (kullanıcı profili)", + ], + "Before listing (user profile)" => [ + 0 => "Listeleme önce (kullanıcı profili)", + ], + "Explore page" => [ + 0 => "Sayfayı keşfedin", + ], + "After top (explore page)" => [ + 0 => "Üst sonra (sayfa keşfetmek)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Geçersiz website adresi", + ], + "Invalid language" => [ + 0 => "Geçersiz dil dosyası", + ], + "Invalid timezone" => [ + 0 => "Geçersiz zaman dilimi", + ], + "Invalid value: %s" => [ + 0 => "Geçersiz değer: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Geçersiz resim yükleme modu", + ], + "Invalid upload filenaming" => [ + 0 => "Geçersiz resim isimleri", + ], + "Invalid thumb width" => [ + 0 => "Geçersiz küçük resim genişliği", + ], + "Invalid thumb height" => [ + 0 => "Geçersiz küçük (trumb) resim yüksekliği", + ], + "Invalid medium size" => [ + 0 => "Geçersiz medya boyutu", + ], + "Invalid watermark percentage" => [ + 0 => "Watermark yüzdesi geçersiz", + ], + "Invalid watermark opacity" => [ + 0 => "Opaklık değeri geçersiz", + ], + "Invalid theme" => [ + 0 => "Geçersiz Tema ! Lütfen Ayarlarınızı Kontrol Ediniz.", + ], + "Invalid value" => [ + 0 => "Geçersiz değer", + ], + "Invalid theme tone" => [ + 0 => "Geçersiz tema tonu.", + ], + "Invalid theme main color" => [ + 0 => "Temanın geçersiz ana rengi", + ], + "Invalid theme top bar button color" => [ + 0 => "Tema ana çubuğu düğmelerinin geçersiz rengi", + ], + "Invalid theme image listing size" => [ + 0 => "Geçersiz tema listeleme boyutu.", + ], + "Invalid user id" => [ + 0 => "Geçersiz Kullanıcı ID", + ], + "Invalid email mode" => [ + 0 => "Geçersiz e-posta modu", + ], + "Invalid SMTP port" => [ + 0 => "Geçersiz SMTP portu", + ], + "Invalid SMTP security" => [ + 0 => "Geçersiz SMTP", + ], + "Invalid personal mode user ID" => [ + 0 => "Özel mod için geçersiz kullanıcı kimliği", + ], + "Invalid or reserved route" => [ + 0 => "Geçersiz veya ayrılmış rota", + ], + "Invalid website privacy mode" => [ + 0 => "Web sitesinin geçersiz gizlilik modu", + ], + "Invalid website content privacy mode" => [ + 0 => "Geçersiz website içerik gizlilik modu.", + ], + "Invalid homepage style" => [ + 0 => "Geçersiz stil", + ], + "Invalid homepage call to action button color" => [ + 0 => "\"Call to Action\" düğmesinin geçersiz rengi", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Geçersiz \"Call to Action\" işlevi", + ], + "Invalid title" => [ + 0 => "Geçersiz başlık", + ], + "Invalid status" => [ + 0 => "Geçersiz durum", + ], + "Invalid type" => [ + 0 => "Geçersiz tür", + ], + "Invalid visibility" => [ + 0 => "Geçersiz görünürlük", + ], + "Invalid internal type" => [ + 0 => "Geçersiz dahili tür", + ], + "Invalid target attribute" => [ + 0 => "Geçersiz hedefler özelliği", + ], + "Invalid rel attribute" => [ + 0 => "Geçersiz rel-Attribut", + ], + "Invalid icon" => [ + 0 => "Geçersiz simge", + ], + "Invalid URL key" => [ + 0 => "Geçersiz URL anahtarı", + ], + "Invalid file path" => [ + 0 => "Geçersiz dosya yolu", + ], + "Invalid link URL" => [ + 0 => "Geçersiz bağlantı URL'si", + ], + "Invalid user minimum age" => [ + 0 => "Kullanıcı için geçersiz yaş", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Yalnızca alfasayısal karakterler, kısa çizgiler ve alt çizgiler girilebilir", + ], + "Invalid URL" => [ + 0 => "Geçersiz URL", + ], + "Routes can't be the same" => [ + 0 => "Yollar aynı olmamalı", + ], + "Invalid upload image path" => [ + 0 => "Geçersiz resim yükleme yolu", + ], + "Invalid call to action URL" => [ + 0 => "Geçersiz \"Call to Action\" URL'si", + ], + "Max. allowed %s" => [ + 0 => "Maksimum izin verilen %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "%m mevcut klasörle eşlenemez (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "%m mevcut yolla eşlenemez (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "%m,%r ile eşleştirilemez (kullanıcı adı çarpışması)", + ], + "Invalid SMTP server" => [ + 0 => "Geçersiz SMTP server ayarı", + ], + "Invalid SMTP username" => [ + 0 => "Geçersiz SMTP kullanıcı adı", + ], + "Invalid key" => [ + 0 => "Geçersiz anahtar", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Bu URL anahtarı zaten başka bir sayfa için kullanılıyor (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Bu dosya yolu zaten başka bir sayfa için kullanılıyor (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Sayfa içeriği kaydedilemiyor: %s.", + ], + "Following" => [ + 0 => "Takip", + ], + "About" => [ + 0 => "Hakkımızda", + ], + "Image ID" => [ + 0 => "Resim ID", + ], + "Uploader IP" => [ + 0 => "Resim yükleyenin IP adresi", + ], + "Ban IP" => [ + 0 => "IP'yi yasakla", + ], + "IP already banned" => [ + 0 => "IP zaten yasaklı", + ], + "Upload date" => [ + 0 => "Yükleme Zamanı", + ], + "Image %i in %a album" => [ + 0 => "Resim %i - %a bir albümde", + ], + "Image %i in %c category" => [ + 0 => "Resim %i - %c kategorisinde", + ], + "Image %i hosted in %w" => [ + 0 => "Resim %i kaydedildi %w", + ], + "Direct links" => [ + 0 => "Direk linkler", + ], + "Image link" => [ + 0 => "Resim link", + ], + "Image URL" => [ + 0 => "Resim URL Adresi", + ], + "Thumbnail URL" => [ + 0 => "Küçük Resim URL", + ], + "Medium URL" => [ + 0 => "Resim URL", + ], + "Full image" => [ + 0 => "Tam boyut", + ], + "Full image (linked)" => [ + 0 => "Tam görünüm (bağlantılı)", + ], + "Medium image (linked)" => [ + 0 => "Orta resim (bağlantılı)", + ], + "Thumbnail image (linked)" => [ + 0 => "Küçük resim (bağlantılı)", + ], + "Login needed" => [ + 0 => "İşlem yapmak için giriş yapınız", + ], + "IP address already banned" => [ + 0 => "İP adresi zaten yasaklandı.", + ], + "Missing values" => [ + 0 => "Eksik değerler", + ], + "Invalid role" => [ + 0 => "Geçersiz rol", + ], + "Username already being used" => [ + 0 => "Kullanıcı adı zaten kullanıyor.", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "%s’i silmeden önce bir şifre veya sosyal medya bağlantısı ekleyin.", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Lütfen %s'i silmeden önce bir e-posta adresi veya başka bir sosyal medya bağlantısı ekleyin.", + ], + "%s has been disconnected." => [ + 0 => "%s bağlantısı kesildi", + ], + "Test email from %s @ %t" => [ + 0 => "E-postayı test %s @ %t", + ], + "This is just a test" => [ + 0 => "Bu sadece bir test.", + ], + "Test email sent to %s." => [ + 0 => "Test e-postası %s adresine gönderildi.", + ], + "Downloading %s data" => [ + 0 => "%s veri indiriliyor", + ], + "User %s followed" => [ + 0 => "%s kullanıcısı takip ediliyor.", + ], + "User %s unfollowed" => [ + 0 => "%s kullanıcısı artık takip edilmiyor.", + ], + "Content liked" => [ + 0 => "Içeriğinizi beğendin", + ], + "Content disliked" => [ + 0 => "Artık içeriği beğenmiyorsun", + ], + "%u liked your %t %c" => [ + 0 => "%u kişi %t %c beğendi", + ], + "%u is now following you" => [ + 0 => "%u seni takip ediyor", + ], + "A private user" => [ + 0 => "Özel kullanıcı", + ], + "Wrong Username/Email password combination" => [ + 0 => "Geçersiz kullanıcı adı ve şifre ! lütfen kullanıcı adı ve şifre ayarlarınızı kontrol ederek tekrar giriş yapınız. ", + ], + "Sign in" => [ + 0 => "Giriş Yap", + ], + "Moderate" => [ + 0 => "Denetlemek", + ], + "Upload images" => [ + 0 => "Resim yükle", + ], + "Upload plugin" => [ + 0 => "Upload-Plugin", + ], + "Image search results for %s" => [ + 0 => "%s için resim arama sonuçları", + ], + "Album search results for %s" => [ + 0 => "%s için albüm arama sonuçları", + ], + "User search results for %s" => [ + 0 => "%s için kullanıcı arama sonuçları", + ], + "Account" => [ + 0 => "Hesabım", + ], + "Profile" => [ + 0 => "Kullanıcı Profili", + ], + "Linked accounts" => [ + 0 => "Bağlı hesaplar", + ], + "Invalid image expiration: %s" => [ + 0 => "Geçersiz son kullanma tarihi: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Lütfen %s Adresinize Gönderilen Aktivasyon Kodunu Onaylamanız Gerekmektedir. Aksi Takdirde Üyelik İşleminiz Onaylanmayacaktır.", + ], + "Invalid name" => [ + 0 => "Geçersiz İsim (Ad) ! lütfen kontrol ediniz.", + ], + "Invalid website" => [ + 0 => "Geçersiz website adresi ! lütfen kontrol ediniz.", + ], + "Wrong password" => [ + 0 => "Geçersiz şifre ! lütfen şifrenizi kontrol ediniz.", + ], + "Use a new password" => [ + 0 => "Şifrenizi mi unuttunuz ? yeni şifre oluşturmak için tıklayınız", + ], + "Changes have been saved." => [ + 0 => "Değişiklikler başarıyla kaydedildi.", + ], + "Password has been changed" => [ + 0 => "Şifreniz başarılı bir şekilde değiştirildi. Yeni şifre ile giriş yapabilirsiniz.", + ], + "Password has been created." => [ + 0 => "Parola oluşturuldu.", + ], + "Wrong Username/Email values" => [ + 0 => "Geçersiz kullanıcı adı / e-posta adresi ! lütfen kullanıcı adı ve/veya e-posta adresini kontrol ediniz.", + ], + "Settings for %s" => [ + 0 => "%s Ayarları", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Şartları ve gizlilik politikasını kabul etmeniz gerekiyor", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Bu siteyi kullanabilmeniz için en az %s yaşında olmanız gereklidir.", + ], + "Create account" => [ + 0 => "Hesap Oluştur", + ], + "Upload" => [ + 0 => "Resim Yükle", + ], + "%s's Images" => [ + 0 => "%s Resimleri", + ], + "Results for" => [ + 0 => "Sonuçlar", + ], + "Liked by %s" => [ + 0 => "%s tarafından beğenildi", + ], + "Liked" => [ + 0 => "Beğen", + ], + "Followers" => [ + 0 => "Takipciler", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albümler %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) on %w", + ], + "Discovery" => [ + 0 => "Keşfet", + ], + "Advanced search" => [ + 0 => "Gelişmiş arama", + ], + "Random" => [ + 0 => "Rastgele", + ], + "Notices (%s)" => [ + 0 => "Bildirimler (%s)", + ], + "Lights" => [ + 0 => "Gündüz/Gece", + ], + "Notifications" => [ + 0 => "Bildirimler", + ], + "You don't have notifications" => [ + 0 => "Bildirim yok :(", + ], + "My Profile" => [ + 0 => "Profilim", + ], + "Sign out" => [ + 0 => "Çıkış yap", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "%w adresinden <a href=\"%u\">%n</a> hesabınizin e-posta adresinizin değiştirmek için bir istek geldi.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Işleminizi tamamlamak için, <a href=\"%s\"> e-posta adresinizi onaylamanız gerekiyor. </a>", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Alternatif olarak linki kopyalayıp tarayıcınıza yapıştırınız. <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Böyle bir şey yapmadıysanız bu mesajı yoksayın.", + ], + "This request was made from IP: %s" => [ + 0 => "Bu istek %s IP den yapıldı.", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Hesabı %n kaydettirmek için %w bir istek aldık.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "İşlemi tamamlamak için <a href=\"%s\">hesabını etkinleştir</a>'e tıklayın.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "<a href=\"%u\">%n</a> hesabı için şifre sıfırlama talebi aldık.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "şifreni tazelemek için <a href=\"%s\">bu linki takip et</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Merhaba %n, %w hoşgeldin.", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Hesabınız hazır. Şimdi resim yüklemenin ve daha bir çok özelliğin keyfini çıkarabilirisiniz.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Bu arada bu sizin profil sayfanız: <a href=\"%u\">%n</a>. İstediğiniz gibi düzenleyebilirsiniz.", + ], + "Thank you for joining" => [ + 0 => "Katıldığınız için teşekkür ederiz.", + ], + "This email was sent from %w %u" => [ + 0 => "Bu email %w %u tarafından gönderilmiştir", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Yüklemek istediğiniz resimleri sürükleyip bırakın", + ], + "Select the images to upload" => [ + 0 => "Yüklemek istediğiniz resmi seçin.", + ], + "browse from your computer" => [ + 0 => "bilgisayardan seç", + ], + "add image URLs" => [ + 0 => "Resim URL'leri", + ], + "You can also %i or %u." => [ + 0 => "%i veya %u da kullanabilirsiniz.", + ], + "browse from your device" => [ + 0 => "Cihazınızı arayın", + ], + "take a picture" => [ + 0 => "Fotoğraf çekiniz", + ], + "You can also %i, %c or %u." => [ + 0 => "Ayrıca %i, %c veya %u da olabilir.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Önizlemeyi tıklayarak bir resmi düzenleyin veya ölçeklendirin", + ], + "Edit any image by touching the image preview" => [ + 0 => "Önizleme dokunarak bir görüntüyü düzenlenleyin", + ], + "your computer" => [ + 0 => "Bilgisayarınız", + ], + "You can add more images from %i or %u." => [ + 0 => "%i veya %u ’dan daha fazla resim ekleyebilirsiniz.", + ], + "your device" => [ + 0 => "Cihazınız", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "%i, %c veya %u ’dan daha fazla resim ekleyebilirsiniz.", + ], + "Uploading %q %o" => [ + 0 => "%q %o yükleniyor", + ], + "complete" => [ + 0 => "tamamlandı", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Sıra işlenir, bu birkaç saniye sürer.", + ], + "Upload complete" => [ + 0 => "Yükleme Tamamlandı", + ], + "Uploaded content added to %s." => [ + 0 => "Yüklenen resimler %s öğesine eklendi.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "Yeni yüklenen içerikle %c veya %m yapabilirsiniz.", + ], + "You can %c with the content just uploaded." => [ + 0 => "Yeni yüklenen içerikle %c yapabilirsiniz.", + ], + "create a new album" => [ + 0 => "Yeni albüm oluştur", + ], + "move it to an existing album" => [ + 0 => "Mevcut albüme kaydır", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "Bu içeriği hesabınıza kaydetmek için %s veya %l gerekir.", + ], + "create an account" => [ + 0 => "Hesap oluştur", + ], + "sign in" => [ + 0 => "Giriş", + ], + "No %s have been uploaded" => [ + 0 => "%s yüklenmedi", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Hata! Lütfen işlemlerini tekrar deneyiniz", + ], + "Category" => [ + 0 => "Kategori", + ], + "Select category" => [ + 0 => "Kategori seçin", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Yükleyeceğiniz resim Aile için uygun değilse bu işareti seç", + ], + "Not family safe upload" => [ + 0 => "Aile için güvenli bir yükleme değil", + ], + "Uploading" => [ + 0 => "Yükleniyor", + ], + "cancel remaining" => [ + 0 => "Yüklemeyi iptal et", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Not : Bazı resimler yüklenemedi.", + ], + "learn more" => [ + 0 => "Daha fazla bilgi", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Daha fazla bilgi için <a data-modal=\"simple\" data-target=\"failed-upload-result\">hata raporunu</a> kontrol ediniz.", + ], + "Register to get %s" => [ + 0 => "%s almak için kayıt olun", + ], + "reset" => [ + 0 => "Dönüştür", + ], + "close" => [ + 0 => "kapat", + ], + "Note" => [ + 0 => "Not", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "Paylaşmadan önce yüklenen içeriği onaylamamız gerekir.", + ], + "copy" => [ + 0 => "Kopyala", + ], + "insert" => [ + 0 => "Ekle", + ], + "Remove" => [ + 0 => "Kaldır", + ], + "Title" => [ + 0 => "Başlık", + ], + "optional" => [ + 0 => "Opsiyonel", + ], + "Resize image" => [ + 0 => "Resmi yeniden boyutlandır", + ], + "Width" => [ + 0 => "Genişlik", + ], + "Height" => [ + 0 => "Yükseklik", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Not: Hareket içeren GIF görüntülerin boyutlarını değiştiremezsiniz.", + ], + "Auto delete image" => [ + 0 => "Resimlerin otomatik olarak silinmesi", + ], + "Sign up" => [ + 0 => "Kayıt ol", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s görüntü otomatik silme özelliğini özelleştirebilme veya devre dışı bırakabilme.", + ], + "Mark this if the image is not family safe" => [ + 0 => "İçeriğin aile için güvenli olup olmadığını seçin", + ], + "Flag as unsafe" => [ + 0 => "Güvenli değil olarak işaretle", + ], + "Description" => [ + 0 => "Tanımlar", + ], + "Brief description of this image" => [ + 0 => "Resmin kısa açılaması", + ], + "Add image URLs" => [ + 0 => "URL ile Resim Yükle", + ], + "Add the image URLs here" => [ + 0 => "URL ile resmi buradan yükleyin", + ], + "Create album" => [ + 0 => "Yeni albüm oluştur", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "Yüklenen içerik bu yeni oluşturulan albüme taşınacak.", + ], + "existing album" => [ + 0 => "mevcut albüm", + ], + "You can also move the content to an %a." => [ + 0 => "İçeriği ayrıca %a ya da taşıyabilirsiniz.", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "Bu albümü daha sonra düzenlemek isterseniz %s veya %l gerekir.", + ], + "Move to album" => [ + 0 => "Resimleri albüme taşı", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Yüklenen resimleri taşımak için bir albüm seçiniz. İsterseniz <a class=\"modal-switch\" data-switch=\"move-new-album\">yeni bir albüm</a> oluşturarak resimlerinizi yeni albüme taşıyabilirsiniz.", + ], + "Error report" => [ + 0 => "Hata raporu", + ], + "Viewer links" => [ + 0 => "Görüntülenen bağlantılar", + ], + "HTML Codes" => [ + 0 => "HTML Kodları", + ], + "HTML image" => [ + 0 => "HTML (tam görünüm)", + ], + "HTML full linked" => [ + 0 => "HTML (tam görünüm bağlantısı)", + ], + "HTML medium linked" => [ + 0 => "HTML Standart resim link", + ], + "HTML thumbnail linked" => [ + 0 => "HTML küçük resim link", + ], + "BBCodes" => [ + 0 => "BBKodları", + ], + "BBCode full" => [ + 0 => "BBCode (tam görünüm)", + ], + "BBCode full linked" => [ + 0 => "BBCode (tam görünüm bağlantısı)", + ], + "BBCode medium linked" => [ + 0 => "BB Standart resim link", + ], + "BBCode thumbnail linked" => [ + 0 => "BB küçük resim link", + ], + "Markdown full" => [ + 0 => "Markdown dolu", + ], + "Markdown full linked" => [ + 0 => "Markdown tam bağlantılı", + ], + "Markdown medium linked" => [ + 0 => "Markdown orta bağlantılı", + ], + "Markdown thumbnail linked" => [ + 0 => "İşaretleme küçük resmi bağlantılı", + ], + "All these words" => [ + 0 => "Tüm bu kelimeler", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Önemli olan kelimeleri giriniz: üç renkli sıçan terieri.", + ], + "This exact word or phrase" => [ + 0 => "Bu kelime veya cümle", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Tırnak arasına kesin kelimeler koymak: \"osmanlı imparatorluğu\"", + ], + "None of these words" => [ + 0 => "Bu kelimelerden hiçbiri değil", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "İstemediğiniz kelimelerin hemen önünde bir eksi işareti koyun: -rodent - \"Jack Russell\"", + ], + "Storage" => [ + 0 => "Depolama", + ], + "IP address" => [ + 0 => "İP adresi", + ], + "Album name" => [ + 0 => "Albüm ismi", + ], + "move to existing album" => [ + 0 => "mevcut albümü taşı", + ], + "Album description" => [ + 0 => "Albüm bilgileri", + ], + "Brief description of this album" => [ + 0 => "Albüm hakkında kısa tanım", + ], + "Album privacy" => [ + 0 => "Albüm gizliliği", + ], + "Who can view this content" => [ + 0 => "Bu içeriği kimler görüntüleyebilir ?", + ], + "Private (just me)" => [ + 0 => "Özel ve gizli (sadece ben)", + ], + "Private (anyone with the link)" => [ + 0 => "Özel (bağlantıya sahip herkes görebilir)", + ], + "Private (password protected)" => [ + 0 => "Özel (şifre korumalı)", + ], + "Album password" => [ + 0 => "Albüm şifre", + ], + "Name" => [ + 0 => "İsim (Ad)", + ], + "Category name" => [ + 0 => "Kategori ismi", + ], + "URL key" => [ + 0 => "URL anahtarı", + ], + "Category URL key" => [ + 0 => "Kategori URL anahtarı", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Sadece harfler, rakamlar ve tire", + ], + "Brief description of this category" => [ + 0 => "Kategori hakkında kısa tanım", + ], + "Untitled image" => [ + 0 => "İsimsiz resim", + ], + "Mark this if the image is not safe for work" => [ + 0 => "Görüntü aile için güvenli değilse işaretleyin.", + ], + "Flag not safe" => [ + 0 => "Güvenli değil olarak işaretle.", + ], + "Path" => [ + 0 => "Yol", + ], + "Local path (absolute)" => [ + 0 => "Yerel yol (mutlak)", + ], + "Directory structure" => [ + 0 => "Dizin yapısı", + ], + "Parse top level folders as users (username)" => [ + 0 => "Üst düzey klasörleri kullanıcı olarak ayrıştır (kullanıcı adı)", + ], + "Parse top level folders as albums" => [ + 0 => "Üst düzey klasörleri albüm olarak ayrıştır", + ], + "Don't parse folders" => [ + 0 => "Klasörleri ayrıştırma", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "Üst düzey klasörleri kullanıcı olarak ayrıştırırken, ikinci düzey klasörler kullanıcı albümü olarak ayrıştırılır. Üst düzey klasörleri albüm olarak ayrıştırmak, bunları konuk albümleri olarak ekler.", + ], + "Threads" => [ + 0 => "Konular", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "Bu, ithalat işleminin ne kadar yoğun ve hızlı olacağını belirler. Paylaşılan bir sunucuda %s den fazla iş parçacığı kullanmayın.", + ], + "You can use wildcard * characters." => [ + 0 => "Joker karakterler kullanabilirsiniz (*).", + ], + "Expiration date" => [ + 0 => "Son kullanma tarihi", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-AA-GG SS:DD:SS", + ], + "Example" => [ + 0 => "Örnek", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "IP adresi ne zamana kadar engellenmeli? Hiçbir giriş son kullanma tarihi belirtmez.", + ], + "Message" => [ + 0 => "Mesajınız", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Kısa mesaj, HTML veya yönlendirme URL'si", + ], + "Existing album" => [ + 0 => "Mevcut Albüm", + ], + "create new album" => [ + 0 => "Yeni Albüm Oluştur", + ], + "Storage name" => [ + 0 => "Depolayıcı ismi", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Bölge", + ], + "Storage region" => [ + 0 => "Depolama bölgesi", + ], + "Storage bucket" => [ + 0 => "Depolama kova", + ], + "Key" => [ + 0 => "Anahtar", + ], + "Storage key" => [ + 0 => "Depolama anahtarı", + ], + "Secret" => [ + 0 => "Gizli", + ], + "Storage secret" => [ + 0 => "Depolama gizli", + ], + "Private key" => [ + 0 => "Özel anahtar", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON anahtarı", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Bu özellik için bir <a %s> hesabına </a> ihtiyacınız var.", + ], + "Service name" => [ + 0 => "Hizmet adı", + ], + "Identity URL" => [ + 0 => "Kimlik URL", + ], + "Identity API endpoint" => [ + 0 => "Kimlik API son nokta", + ], + "API endpoint for OpenStack identity" => [ + 0 => "OpenStack kimliği için API son noktası", + ], + "Username" => [ + 0 => "Kullanıcı adı", + ], + "Container" => [ + 0 => "konteyner", + ], + "Storage container" => [ + 0 => "Depolama-Container", + ], + "Tenant id" => [ + 0 => "Kiracı kimliği", + ], + "Tenant id (account id)" => [ + 0 => "Kiracı kimliği (hesap kimliği)", + ], + "Tenant name" => [ + 0 => "Kiracının adı", + ], + "Tenant name (account name)" => [ + 0 => "Kiracı adı (hesap adı)", + ], + "Storage endpoint" => [ + 0 => "Depolama bitiş noktası", + ], + "Server address" => [ + 0 => "Sunucu adresi", + ], + "Hostname or IP of the storage server" => [ + 0 => "Depolama sunucusunun adı veya ip adresi", + ], + "Server path" => [ + 0 => "Sunucu yolu", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "Dosyaların %p oturum açma bağlamında saklanacağı mutlak yol. Kök yolu için %s kullanın.", + ], + "Server login" => [ + 0 => "Sunucu girişi", + ], + "Server password" => [ + 0 => "Sunucu şirfesi", + ], + "Local path" => [ + 0 => "Yerel yol", + ], + "Local path where the files will be stored" => [ + 0 => "Dosyaların depolanacağı yerel yol", + ], + "Storage capacity" => [ + 0 => "Depolama kapasitesi", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Örnek: 20 GB, 1 TB, vs.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Bu kapasiteye ulaştığında bu depolama devre dışı bırakılacak. Boş bırakın veya limitsiz için sıfır yazın.", + ], + "Storage URL" => [ + 0 => "Depolama URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Sistem bu mağazadaki dosyaları bu URL ile eşler.", + ], + "view more" => [ + 0 => "Daha fazlası", + ], + "Load more" => [ + 0 => "Daha fazla yükle", + ], + "Select all" => [ + 0 => "Hepsini Seç", + ], + "Clear selection" => [ + 0 => "Seçimi temizle", + ], + "Selection" => [ + 0 => "Seç", + ], + "Action" => [ + 0 => "Eylem", + ], + "Get embed codes" => [ + 0 => "Embed kodları alın", + ], + "Assign category" => [ + 0 => "Kategori atama", + ], + "Flag as safe" => [ + 0 => "Güvenli olarak işaretle", + ], + "Create new album" => [ + 0 => "Yeni albüm oluştur", + ], + "Sign in with another account" => [ + 0 => "Başka bir hesap ile oturum açın", + ], + "Continue with %label%" => [ + 0 => "%label% ile devam et", + ], + "Home" => [ + 0 => "Anasayfa", + ], + "There's nothing to show here." => [ + 0 => "Burada gösterilecek birşey yok.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Resimleriniz yeni oluşturulacak bir albüme taşınacaktır. İsterseniz resimlerinizi <a class=\"modal-switch\" data-switch=\"move-existing-album\">mevcut albümlerden</a>.birisine taşıyabilirsiniz.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Yüklenen resimleri taşımak için bir albüm seçiniz. İsterseniz <a class=\"modal-switch\" data-switch=\"move-new-album\">yeni bir albüm</a> oluşturarak resimlerinizi yeni albüme taşıyabilirsiniz.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Lütfen albüm içeriklerini taşımak için varolan bir albüm seçiniz. Ayrıca <a class=\"modal-switch\" data-switch=\"move-new-album\">Buradan</a> yeni albüm yaratarak içeriklerinizi taşıyabilirsiniz.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Yüklenen resimleri taşımak için bir albüm seçiniz. İsterseniz <a class=\"modal-switch\" data-switch=\"move-new-album\">yeni bir albüm</a> oluşturarak resimlerinizi yeni albüme taşıyabilirsiniz.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Seçilen tüm görüntüler bu kategoriye tahsis edilecektir.", + ], + "There is no categories." => [ + 0 => "Kategori yok.", + ], + "Confirm flag content as safe" => [ + 0 => "İşaretli içeriği güvenli olarak onaylayın", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Bu içeriği gerçekten güvenli olarak işaretlemek istiyor musunuz?", + ], + "Confirm flag content as unsafe" => [ + 0 => "İşaretli içeriği rahatsız edici olarak onaylayın", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Bu içeriği gerçekten rahatsız edici olarak işaretlemek istiyor musunuz?", + ], + "Confirm approval" => [ + 0 => "Onayı onayla", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "Seçilen tüm içeriği gerçekten kaldırmak istiyor musunuz? Bu geri alınamaz.", + ], + "Confirm deletion" => [ + 0 => "Silmek istediğinizden emin misiniz.", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Resim veya resimleri silmek istediğinizden eminmisiniz. Resimler geri dönüşümü olmaksızın silinecektir.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "Seçilen tüm içeriği gerçekten kaldırmak istiyor musunuz? Bu geri alınamaz.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Seçili resimleri silmek istediğinizden eminmisiniz ?. Resimler geri dönüşümü olmaksızın silinecektir.", + ], + "Fullscreen" => [ + 0 => "Tam ekran", + ], + "Exit fullscreen" => [ + 0 => "Tam ekrandan çık", + ], + "Guest" => [ + 0 => "Misafir Kullanıcı", + ], + "Keyboard shortcuts" => [ + 0 => "Klavye Kısayol", + ], + "Private album" => [ + 0 => "Özel albüm", + ], + "Password protected" => [ + 0 => "Şifre korumalı", + ], + "Uploaded by guest" => [ + 0 => "Bir misafir tarafından yüklendi", + ], + "From %s" => [ + 0 => "Yükleyen %s", + ], + "Uploaded by private" => [ + 0 => "Özel olarak yüklendi", + ], + "by %u" => [ + 0 => "%u'dan", + ], + "Toggle unsafe flag" => [ + 0 => "Güvensiz işaretini tersine dönüştür", + ], + "That page doesn't exist" => [ + 0 => "Aradığınız sayfa bulunmamaktadır.", + ], + "The requested page was not found." => [ + 0 => "Aradığınız sayfa bulunmamaktadır. Lütfen kontrol ederek tekrar deneyiniz.", + ], + "Search something else" => [ + 0 => "Başka bir şey ara", + ], + "The user has been deleted" => [ + 0 => "Geçersiz veya silinmiş kullanıcı. Lütfen bilgilerinizi kontrol ederek tekrar deneyiniz.", + ], + "Your account is almost ready" => [ + 0 => "Hesabınız nerdeyse hazır. Lütfen e-posta adresinize gelen aktivasyon işlemini gerçekleştiriniz.", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "%s hesabınızı etkinleştirmek için mail gönderildi. Aktivasyon işlemi 48 saat için geçerlidir. Mail almadığınızı düşünüyorsanız lütfen spam veya önemsiz kutularını kontrol ediniz. ", + ], + "Resend activation" => [ + 0 => "Aktivasyon e-postasını tekrar gönder", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Değiştirmiş olduğunuz e-posta adresi %s. Yanlışlık olduğunu veya hatalı olduğunu düşünüyorsanız ayarlarını kontrol ediniz veya bize ulaşınız.", + ], + "Go to my profile" => [ + 0 => "Profilime geri dön", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Onay linki ve hesapla ilgili bilgiler mail olarak gönderilecektir.", + ], + "Your email address" => [ + 0 => "E-posta adresi", + ], + "Submit" => [ + 0 => "Gönder", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Şifrenizi sıfırlamak için gerekli bilgiler kayıtlı mail adresinize gönderildi. Bazı mail sunucularında mailler \"Spam, Önemsiz, Gereksiz mail\" kutularını düşebilmektedir. Kontrol etmeyi unutmayınız.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Önceki gönderilen eposta içerisinde şifrenizi sıfırlama talimatı bulunmaktaydı.Şayet talimatı almadıysanız eposta spam veya önemsiz klasörlerine kontrol ediniz.", + ], + "Resend instructions" => [ + 0 => "Tekrar gönder", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "Şifrenizi sıfırlamak için kullanıcı adınızı veya e-posta adresinizi yazın. %s adresinden e-posta gelecektir.", + ], + "Username or Email address" => [ + 0 => "Kullanıcı adınız veya e-posta adresiniz", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Şifreniz başarıyla değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz.", + ], + "Login now" => [ + 0 => "Giriş Yap", + ], + "Enter your new password" => [ + 0 => "Yeni Şifrenizi Yazınız", + ], + "%d characters min" => [ + 0 => "en az %d karakter", + ], + "Password strength" => [ + 0 => "Şifre güvenlik seviyesi", + ], + "Re-enter your new password" => [ + 0 => "Lütfen yeni şifrenizi tekrardan yazınız.", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Kullanıcı hesabını etkinleştirme talimatları ile %s adresine bir e-posta gönderildi. Talimatlara sahip bir e-posta almadıysanız, lütfen spam filtrenizi kontrol edininiz.", + ], + "This content is private" => [ + 0 => "Özel içerik !", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Gerçekten bu albümü ve içindekileri silmek istiyormusun? Bu işlemin geri dönüşü yok.", + ], + "You like this" => [ + 0 => "Bunu beğendiniz", + ], + "Upload to album" => [ + 0 => "Albüme yükle", + ], + "Album link" => [ + 0 => "Albüm link adresi", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Devam etmeden önce lütfen aşağıdaki koşulları okuyun ve onaylayın:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Bu web sitesi cinsel açıdan uygunsuz materyaller içeren bilgiler, bağlantılar ve resimler içermektedir. Eğer %s yıldan daha az iseniz, gösterilen materyallere herhangi bir şekilde katılmamalısınız ya da ülkenizde gösterilen materyaller yasa dışı ise, lütfen bu sayfadan çıkınız.\n\nEn az %s yaşındayım ve bir yetişkin olarak cinsel taciz edici materyalleri görmeye hakkım olduğuna inanıyorum. Cinsel olarak saldırgan materyalleri görmek veya almak istiyorum.\n\nYetişkin cinsel eylemlerinin ne müstehcen ne de saldırgan olduğu kanaatindeyim. Cinsel olarak müstehcen materyalleri görüntülemek, okumak ve indirmek, topluluklarım, şehri, eyaleti veya ülkemi yasaları ihlal etmemektedir.\n\nCinsel olarak rahatsız edici materyaller sadece kişisel kullanımım içindir ve malzemeyi küçüklere teslim etmeyeceğim.\n\nBu sitedeki materyalin görüntülenmesi, okunması ve indirilmesi sonucu ortaya çıkabilecek herhangi bir izinsiz yayın veya hukuki sonuçtan şahsen sorumluyum. Ayrıca, bu sitenin operatörü veya bu sitenin diğer herhangi bir ortakları, bu siteyi ziyaret ettiğim veya bu siteyi kullanmamdan kaynaklanan herhangi bir yasal sonuçtan sorumlu değildir.\n\nBu rıza bildirimi, kullanıcı ile bu web sitesinin operatörü arasında yasal olarak bağlayıcı bir anlaşma teşkil eder. Bu anlaşmanın herhangi bir kısmı yasal olarak geçersiz olursa, diğer tüm bileşenler etkilenmez.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "\"Kabul ediyorum\" u tıklayarak, yukarıdaki koşulları okuduğunuzu ve anladığınızı beyan etmiş olursunuz.", + ], + "I Agree" => [ + 0 => "Kabul ediyorum", + ], + "documentation" => [ + 0 => "Belgeleme", + ], + "Learn more about %s at our %d." => [ + 0 => "%s hakkında %d hakkında daha fazla bilgi edinin.", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "Bağlanan IP, %var%. sunucu değişkeni kullanılarak belirlenir. Algılanan IP sizinkiyle eşleşmezse, web sunucunuzun bir proxy altında olduğu ve gerçek bağlantı IP'sini ayarlamak için sunucunuzu ayarlamanız gerektiği anlamına gelir.", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "Nginx için %nginx%. kullanmalısınız. Apache için %apache%.", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "Sistem, temel işlevler sağlamak ve spam, sel ve kaba kuvvet saldırılarına karşı koruma sağlamak için doğru IP algılamalarına bağlı olduğundan bu sorunu çözdüğünüzden emin olun.", + ], + "Disk used" => [ + 0 => "Kullanılan disk alanı", + ], + "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." => [ + 0 => "Bu araç, içe aktarmak istediğiniz içeriğin bulunduğu bir sistem yolunu işaretleyerek web sitenize toplu içerik eklemenize olanak tanır. Klasör tabanlı bir yapı kullanarak kullanıcıların, albümlerin ve görüntülerin eklenmesini destekler.", + ], + "Automatic importing" => [ + 0 => "Otomatik içe aktarma", + ], + "The system automatically parses any content by a continuous observation of the %path% path." => [ + 0 => "Sistem, %path% yolunu sürekli gözlemleyerek herhangi bir içeriği otomatik olarak ayrıştırır.", + ], + "Completed jobs will be automatically re-started after %n %m." => [ + 0 => "Tamamlanan işler %n %m sonra otomatik olarak yeniden başlatılacak.", + ], + "Reset to clear stats and logs." => [ + 0 => "İstatistikleri ve günlükleri temizlemek için sıfırlayın.", + ], + "Queued" => [ + 0 => "Sıraya alındı", + ], + "Working" => [ + 0 => "Çalışma", + ], + "Paused" => [ + 0 => "Durduruldu", + ], + "Canceled" => [ + 0 => "İptal edildi", + ], + "Completed" => [ + 0 => "Tamamlanan", + ], + "Actions" => [ + 0 => "Eylemler", + ], + "Reset" => [ + 0 => "Sıfırla", + ], + "Pause" => [ + 0 => "Duraklat", + ], + "Resume" => [ + 0 => "Devam et", + ], + "Process log" => [ + 0 => "İşlem günlüğü", + ], + "Errors" => [ + 0 => "Hatalar", + ], + "Status" => [ + 0 => "Durumu", + ], + "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." => [ + 0 => "Sistem, içe aktarmayı sürekli olarak işlemek için zamanlanmış bir komutla çalışır. Bir crontab girişi gerektirir.", + ], + "You can run the command in parallel by changing the integer value of %s%." => [ + 0 => "%s% tam sayı değerini değiştirerek komutu paralel olarak çalıştırabilirsiniz.", + ], + "All file-system permissions must be granted for the crontab user at %path%" => [ + 0 => "%path% yolundaki crontab kullanıcısı için tüm dosya sistemi izinleri verilmelidir", + ], + "Add import job" => [ + 0 => "İçe aktarma işi ekle", + ], + "Process import" => [ + 0 => "İşlem içe aktarma", + ], + "Top level folders as %s" => [ + 0 => "%s olarak en üst düzey klasörler", + ], + "Process" => [ + 0 => "Süreç", + ], + "Cancel" => [ + 0 => "İptal et", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "%s alma kimliğini gerçekten kaldırmak istiyor musunuz?", + ], + "Manual importing" => [ + 0 => "Manuel içe aktarma", + ], + "The system will parse the contents of any available filesystem path." => [ + 0 => "Sistem, kullanılabilir herhangi bir dosya sistemi yolunun içeriğini ayrıştırır.", + ], + "These processes must be manually created and handled with the web browser tab open." => [ + 0 => "Bu işlemler web tarayıcısı sekmesi açıkken manuel olarak oluşturulmalı ve ele alınmalıdır.", + ], + "Parser" => [ + 0 => "Ayrıştırıcı", + ], + "Add user" => [ + 0 => "Kullanıcı ekle", + ], + "Role" => [ + 0 => "Rolü", + ], + "Manager" => [ + 0 => "Yönetici", + ], + "Administrator" => [ + 0 => "Yönetici", + ], + "Email address" => [ + 0 => "E-posta adresi", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "Özel mod etkinse bu ayar her zaman devre dışı bırakılır.", + ], + "Add category" => [ + 0 => "Kategori ekle", + ], + "Add IP ban" => [ + 0 => "İP yasağı ekle", + ], + "Add storage" => [ + 0 => "Depolama ekle", + ], + "Return to pages" => [ + 0 => "Sayfalara dön", + ], + "Website name" => [ + 0 => "Site adını yazınız.", + ], + "Website doctitle" => [ + 0 => "Sitenizin başlığını yazınız.", + ], + "Website description" => [ + 0 => "Sitenizin açıklamasını yazınız.", + ], + "Powered by" => [ + 0 => "Powered by", + ], + "Enable this if you want to show a \"%s\" link at the footer." => [ + 0 => "İçeriği paylaşacak sosyal ağ düğmelerini göstermek istiyorsanız bunu etkinleştirin.", + ], + "Automatic" => [ + 0 => "Otomatik", + ], + "Forced" => [ + 0 => "Zorunlu", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a sunucu tarafında HTTPS algılamayı kullanacaktır (önerilir). %f sunucunuzun kurulumundan bağımsız olarak HTTPS kullanacaktır. %d HTTPS kullanmamak için.", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "Bu, yalnızca URL’lerde kullanılan protokolü kontrol eder, sunucunuz HTTPS’yi destekleyecek ve kullanacak şekilde yapılandırılmadıkça web sitenizi geçerli bir HTTPS web sitesine dönüştürmez.", + ], + "Default time zone" => [ + 0 => "Varsayılan Zaman Dilimi", + ], + "Select region" => [ + 0 => "Bölge Seçiniz.", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "Verilen arama sorgusuna göre resim, albüm ve kullanıcı aramanızı sağlar.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "Herkese açık görsellere göz atmayı sağlar. Kategoriler de aktive edilir.", + ], + "guests" => [ + 0 => "Ziyaretçi", + ], + "Enables explore for guests." => [ + 0 => "Ziyaretçiler için \"Discover\" modunu aktifleştirin.", + ], + "Enables to browse images randomly." => [ + 0 => "Görüntülerin rasgele taranmasını sağlar.", + ], + "Likes" => [ + 0 => "Beğeniler", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "Kullanıcıların içeriği sevmesini ve en popüler içeriği görüntülemesini sağlar.", + ], + "Followers allows users to follow each other." => [ + 0 => "\"Takipçiler\" işlevi diğer kullanıcıların içeriğini takip etmeyi mümkün kılar.", + ], + "Personal mode target user" => [ + 0 => "Kişisel mod hedef kullanıcı", + ], + "User ID" => [ + 0 => "Kullanıcı ID", + ], + "Your user id is: %s" => [ + 0 => "Kullanıcı kimliğiniz: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Kişisel mod için hedef kullanıcının sayısal kimliği.", + ], + "Personal mode routing" => [ + 0 => "Kişisel mod yönlendirmesi", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Haritaya / kullanıcı adına / özel şeye özel yol. Ana sayfaya eşlemek için \"/\" kullanın.", + ], + "Website privacy mode" => [ + 0 => "Web sitesi gizlilik modu", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Özel mod, web sitesini yalnızca kayıtlı kullanıcılar tarafından kullanılabilir duruma getirir.", + ], + "Content privacy mode" => [ + 0 => "İçerik gizlilik modu", + ], + "Default" => [ + 0 => "Varsayılan", + ], + "Force private (self)" => [ + 0 => "Özel kişiyi zorla (öz)", + ], + "Force private (anyone with the link)" => [ + 0 => "Özel olarak zorla (bağlantıya sahip olan herkes)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "Zorla gizlilik modları, kullanıcının seçtiği gizliliği geçersiz kılar.", + ], + "Page title" => [ + 0 => "Sayfa başlığı", + ], + "Page status" => [ + 0 => "Sayfa durumu", + ], + "Active page" => [ + 0 => "Aktif sayfa", + ], + "Inactive page (%s)" => [ + 0 => "Etkin olmayan sayfa (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Sadece aktif sayfalar erişilebilir olacaktır.", + ], + "Type" => [ + 0 => "Tip", + ], + "Terms of service" => [ + 0 => "Kullanım şartları", + ], + "Privacy" => [ + 0 => "Gizlilik", + ], + "Contact" => [ + 0 => "İletişim", + ], + "Extra page" => [ + 0 => "Ekstra sayfa", + ], + "Internal page type" => [ + 0 => "Dahili sayfa tipi", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "Birden fazla ekstra sayfanız olabilir, ancak diğer özel dahili türlerden yalnızca birini kullanabilirsiniz.", + ], + "Page visibility" => [ + 0 => "Sayfa görünürlüğü", + ], + "Visible page" => [ + 0 => "Görünür sayfa", + ], + "Hidden page" => [ + 0 => "Gizli sayfa", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Gizli sayfalar sistem menülerinde gösterilmez, ancak herhangi biri buna link üzerinden erişebilir.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Sadece alfanümerik, tire ve eğik çizgi", + ], + "File path" => [ + 0 => "Dosya yolu", + ], + "A %f file relative to %s" => [ + 0 => "%s ile ilişkili bir %f dosya", + ], + "Meta keywords" => [ + 0 => "Anahtar Kelimeler", + ], + "Meta description" => [ + 0 => "Meta açıklaması", + ], + "Source code" => [ + 0 => "Kaynak kodu", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "%s yolunda yazma izni yok, bu dosyayı harici bir editör kullanarak eklemeniz gerekir.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "%s içindeki yazma izniniz yok, bu dosyanın içeriğini harici bir editör kullanarak düzenlemeniz gerekecek.", + ], + "Taken from: %s" => [ + 0 => "Alındığı kaynak: %s", + ], + "Link URL" => [ + 0 => "Bağlantı URL", + ], + "Link target attribute" => [ + 0 => "Bağlantı hedefi özelliği", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Sayfayı açmak veya yeni pencerede bağlantı kurmak için %s seçeneğini seçin.", + ], + "Link rel attribute" => [ + 0 => "Bağlantı rel özelliği", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Sadece alfanümerikler, kısa çizgiler ve boşluklar", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s özelliği", + ], + "Link icon" => [ + 0 => "Bağlantı simgesi", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Desteklenen simgelerin tam listesi için <a %s>simge referansını</a> kontrol edin.", + ], + "Sort order display" => [ + 0 => "Sipariş ekranını sırala", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Menüler ve listeler için sayfa sıralama düzeni göstergesi. Öncelik için \"1\" kullanın.", + ], + "pages" => [ + 0 => "sayfalar", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "%s sayfa kimliğini gerçekten silmek istiyor musunuz? Bu işlem geri alınamaz.", + ], + "Enabled image formats" => [ + 0 => "Etkin görüntü formatları", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "İşaretlenmemiş resim formatlarının yüklenmesine izin verilmiyor.", + ], + "Enable uploads" => [ + 0 => "Desteklenen Formatlar", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Resim yükleme izin vermek için bunu etkinleştirin. Bu ayar, yöneticilerin etkilemez.", + ], + "Upload user interface" => [ + 0 => "Kullanıcı arayüzünü yükle", + ], + "On-page container" => [ + 0 => "Sayfa içi konteyner", + ], + "route" => [ + 0 => "rota", + ], + "Guest uploads" => [ + 0 => "Misafirlerin Yüklediği Resimler", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Misafir Kullanıcıların Resim Yüklemesini İstiyorsanız Bunu Etkinleştirmeniz Gerekmektedir. ", + ], + "Moderate uploads" => [ + 0 => "Yüklemeleri denetle", + ], + "Guests" => [ + 0 => "Ziyaretçiler", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "Gelen yüklemeleri denetlemek için bunu etkinleştirin. Hedef içerik, onay için denetim gerektirecektir.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Katıştırma kodlarını etkinleştir (yükleyici)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Yükleme tamamlandığında katıştırma kodlarını göstermek istiyorsanız bunu etkinleştirin.", + ], + "Upload threads" => [ + 0 => "Konuları yükle", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "Eşzamanlı yükleme iş parçacığı sayısı (paralel yükleme)", + ], + "Redirect on single upload" => [ + 0 => "Tek yüklemede yönlendir", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "Tekli yüklemede resim sayfasına yönlendirmek istiyorsanız bunu etkinleştirin.", + ], + "Enable duplicate uploads" => [ + 0 => "Çift yüklemeleri etkinleştir", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "24 saat içinde aynı IP'den yinelenen yüklemelere izin vermek istiyorsanız bunu etkinleştirin. Bu ayar yöneticileri etkilemez.", + ], + "Enable expirable uploads" => [ + 0 => "Süresi aşılabilir yüklemeleri etkinleştir", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Otomatik silme seçeneğiyle yüklemelere izin vermek istiyorsanız bunu etkinleştirin.", + ], + "Auto delete guest uploads" => [ + 0 => "Misafir yüklemelerini otomatik sil", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "Misafir yüklemelerini belirli bir süre sonra otomatik olarak silinmeye zorlamak istiyorsanız bunu etkinleştirin.", + ], + "Maximum image size" => [ + 0 => "Maksimum görüntü boyutu", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "Bu boyuttan daha büyük resimler otomatik olarak küçültülür. Limit koymamak için sıfır (0) kullanın.", + ], + "Image Exif data" => [ + 0 => "Görüntü Exif verileri", + ], + "Keep" => [ + 0 => "Tut", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Yükleme sırasında resim <a %s>Exif verileri</a> için varsayılan ayarı seçin.", + ], + "Image Exif data (user setting)" => [ + 0 => "Görüntü Exif verileri (kullanıcı ayarı)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Her bir kullanıcının Exif verilerinin nasıl işleneceğini görüntülemesine izin vermek istiyorsanız bunu etkinleştirin.", + ], + "Maximum upload file size" => [ + 0 => "Maksimam dosya yükleme boyutu", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "Sunucunun izin verdiği maksimum boyut %s Bu limit %u ve %p (%f değerleri) ile sınırlandırılmıştır.", + ], + "Same as \"%s\" but for guests." => [ + 0 => "\"%s\" ile aynı, ancak misafirler için.", + ], + "Image path" => [ + 0 => "Resim Yolu", + ], + "Relative to Chevereto root" => [ + 0 => "Chevereto Root (Ana Dizin) Yolu", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Resimleri depolama yeri neresidir ?. Chevereto root dosyasına göre", + ], + "Storage mode" => [ + 0 => "Saklama (Depolama) Modu", + ], + "Datefolders" => [ + 0 => "Klasör Tarihleri", + ], + "Direct" => [ + 0 => "Doğrudan (Direk)", + ], + "Datefolders creates %s structure" => [ + 0 => "Klasör Tarihlerinin %s Yapısı", + ], + "File naming method" => [ + 0 => "Dosya İsimlendirme Yöntemi", + ], + "Original" => [ + 0 => "Orijinal İsmi", + ], + "Mix original + random" => [ + 0 => "Orijinali + rastgele karıştır", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Orijinal\", resim kaynağı adını korumaya çalışacak, \"Rastgele\" ise rasgele bir isim oluşturacaktır. \"ID\" resme tıpkı resim kimliği gibi ad verir.", + ], + "Thumb size" => [ + 0 => "Küçük resim boyutu", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Resimlere eklenecek trumbnails (küçük logo) boyutunu.", + ], + "Medium image fixed dimension" => [ + 0 => "Orta görüntü sabit boyut", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Orta boyutlu görüntüler bu boyuta sabitlenir. Örneğin, \"genişlik\" i seçerseniz, bu boyut sabitlenir ve görüntü yüksekliği otomatik olarak hesaplanır.", + ], + "Medium image fixed size" => [ + 0 => "Orta görüntü sabit boyut", + ], + "Width or height will be automatically calculated." => [ + 0 => "Genişlik veya yükseklik otomatik olarak hesaplanacaktır.", + ], + "Watermarks" => [ + 0 => "Filigranlar", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Görüntü yüklemelerinde logo veya istediğiniz herhangi bir şeyi koymak için bunu etkinleştirin.", + ], + "Warning: Can't write in %s" => [ + 0 => "Uyarı: %s yazılamıyor", + ], + "Watermark user toggles" => [ + 0 => "Filigran kullanıcısı geçiş yapar", + ], + "Enable watermark on guest uploads" => [ + 0 => "Konukların yüklemelerine watermark uygulanmasını etkinleştir", + ], + "Enable watermark on user uploads" => [ + 0 => "kullanıcıların yüklemelerine watermark uygulanmasını etkinleştir", + ], + "Enable watermark on admin uploads" => [ + 0 => "admin yüklemelerine watermark uygulanmasını etkinleştir", + ], + "Watermark file toggles" => [ + 0 => "Filigran dosyası geçiş yapar", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "GIF resimler için de watermark'ı etkinleştir", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Minimum resim boyutundan küçük resimlere watermark uygulanamaz.", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Resim bundan küçükse watermark uygulanmayacaktır. Minimum resim boyutu sınırlaması istemiyorsanız (0) giriniz.", + ], + "Watermark image" => [ + 0 => "Filigran resmi", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Gölge logolu düz logolarda en iyi sonuçları alacaksınız. Dosya boyutu o kadar büyük değilse büyük bir resim kullanabilirsiniz (önerilen maksimum 16 KB'dir). PNG olmalı.", + ], + "Watermark position" => [ + 0 => "Filigran konumu", + ], + "left top" => [ + 0 => "Sol üst", + ], + "left center" => [ + 0 => "Sol orta", + ], + "left bottom" => [ + 0 => "Sol alt", + ], + "center top" => [ + 0 => "Üst orta", + ], + "center center" => [ + 0 => "Orta merkez", + ], + "center bottom" => [ + 0 => "Alt orta", + ], + "right top" => [ + 0 => "Sağ üst", + ], + "right center" => [ + 0 => "Sağ orta", + ], + "right bottom" => [ + 0 => "Sağ alt", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Filigran görüntüsünün göreceli konumu. İlk önce yatay hizalamayı dikey hizalayın.", + ], + "Watermark percentage" => [ + 0 => "Filigran yüzdesi", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Hedef görüntü alanına göre filigran yüzde büyüklüğü. 1 ila 100 arasındaki değerler.", + ], + "Watermark margin" => [ + 0 => "Filigran kenar", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Görüntünün sınırından filigran görüntüsüne kenar boşluğu.", + ], + "Watermark opacity" => [ + 0 => "Filigran şeffaglığı", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Filigranın son filigran görüntüsündeki opaklığı. 0 ila 100 arasındaki değerler.", + ], + "Dashboard > Settings > Website" => [ + 0 => "Kontrol Paneli> Ayarlar> Web sitesi", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "Gezgin özelliği kapatıldığında kategoriler çalışmayacak. Bu ayarı geri almak için %s konumuna gidin.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "%s kategorisini gerçekten silmek istiyor musunuz? Bu işlem geri alınamaz.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Not: Bir kategoriyi silmek, o kategoriye ait görüntüleri silmez.", + ], + "Edit category" => [ + 0 => "Kategori düzenle", + ], + "Expires" => [ + 0 => "Sona ermek", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Gerçekten %s IP'sindeki yasağı kaldırmak istiyor musunuz? Bu işlem geri alınamaz.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Yasaklı IP adresinin tüm siteyi kullanması yasaktır.", + ], + "Edit IP ban" => [ + 0 => "Banlı İP düzenleme", + ], + "Enable signups" => [ + 0 => "Üyelik kayıtları açık kalsın", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Kullanıcıların kayıt için izin vermek istiyorsanız bunu etkinleştirin.", + ], + "Enable user content delete" => [ + 0 => "Kullanıcı içeriğini sil'i etkinleştir", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "Kullanıcıların kendi içeriklerini silmelerine izin vermek istiyorsanız bunu etkinleştirin. Bu ayar yöneticileri etkilemez.", + ], + "Minimum age required" => [ + 0 => "Minimum yaş gerekli", + ], + "Empty" => [ + 0 => "Boş", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "Web sitesini kullanmak için minimum yaş gerektirmemesi için boş bırakın.", + ], + "Notify on user signup" => [ + 0 => "Kullanıcı kaydında bildir", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "Her yeni kullanıcı kaydı için bir e-posta bildirimi almak istiyorsanız bunu etkinleştirin.", + ], + "Username routing" => [ + 0 => "Kullanıcı adı yönlendirme", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "%s/username yerine %s/user/username URL’lerini kullanmak istiyorsanız bunu etkinleştirin..", + ], + "Require email confirmation" => [ + 0 => "E-posta onayı iste", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Bunu işaretlerseniz kullanıcılar e-posta adresini doğrulaması gerekecektir.", + ], + "Require email for social signup" => [ + 0 => "Sosyal kaydolma için e-posta iste", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Kayıt olmak için sosyal ağları kullanan kullanıcıların bir e-posta adresi sağlamaları gerekiyorsa bunu etkinleştirin.", + ], + "User avatar max. filesize" => [ + 0 => "Kullanıcı avatar'ı için max. dosya boyutu", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Maks. kullanıcı avatarı resmi için izin verilen dosya boyutu. (Sunucu tarafından izin verilen maksimum %s)", + ], + "User background max. filesize" => [ + 0 => "Kullanıcı arka plan resmi max. dosya boyutu", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Maks. kullanıcı arka planı görüntüsü için izin verilen dosya boyutu. (Sunucu tarafından izin verilen maksimum %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "Web sitesine erişmeden önce bir onay ekranı gösterir. Küçüklere izin verilmemesi gereken yetişkinlere yönelik web siteleri için kullanışlıdır.", + ], + "Enable consent screen" => [ + 0 => "Onay ekranını etkinleştir", + ], + "Consent screen cover image" => [ + 0 => "Onay ekranı kapak resmi", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "IP başına yüklenecek resim sayısını ve periyodunu belirtiniz.", + ], + "Notify to email" => [ + 0 => "Durumu Mail Olarak Bildir", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "Eğer etkinleştirilmişse taşma (flood) durumlarında sistem bir mail gönderecektir.", + ], + "Minute limit" => [ + 0 => "Dakikada Resim Yükleme Sınırı", + ], + "Hourly limit" => [ + 0 => "Saatte Resim Yükleme Sınırı", + ], + "Daily limit" => [ + 0 => "Günlük Resim Yükleme Sınırı", + ], + "Weekly limit" => [ + 0 => "Haftalık Resim Yükleme Sınırı", + ], + "Monthly limit" => [ + 0 => "Aylık Resim Yükleme Sınırı", + ], + "Lock %s editing" => [ + 0 => "%s düzenlemesini kilitle", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "Gelen yüklemeleri denetlemek için bunu etkinleştirin. Hedef içerik, onay için denetim gerektirecektir.", + ], + "Show not safe content in listings" => [ + 0 => "Listelerde güvenli olmayan içeriği göster", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Listelerde güvenli içerik olmadığını göstermek istiyorsanız bunu etkinleştirin. Bu ayar yöneticileri etkilemez ve kullanıcının kendi ayarları tarafından geçersiz kılınabilir.", + ], + "Blur NSFW content in listings" => [ + 0 => "Bulanıklaştırılmış güvenli olmayan (NSFW) içerik.", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Eğer sakıncalı bulduğunuz için görüntünün bulanıklaştırılmasını istiyorsanız bunu etkinleştirin.", + ], + "Show banners in not safe content" => [ + 0 => "Bannerları güvenli olmayan içerikte göster", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Banner'ları güvensiz içerik sayfalarında göstermek istiyorsanız bunu etkinleştirin.", + ], + "Show not safe content in random mode" => [ + 0 => "Rasgele modda güvenli içerik gösterme", + ], + "List items per page" => [ + 0 => "Sayfa başına Liste öğeleri", + ], + "How many items should be displayed per page listing." => [ + 0 => "Listede Kaç Adet Resim Sergilemek İstiyorsanız Belirtiniz", + ], + "List pagination mode" => [ + 0 => "Liste sayfalama modu", + ], + "Endless scrolling" => [ + 0 => "Sonsuz kaydırma", + ], + "Classic pagination" => [ + 0 => "Klasik sayfalama", + ], + "What pagination method should be used." => [ + 0 => "Hangi sayfalama yöntemi kullanılmalıdır.", + ], + "Listing viewer" => [ + 0 => "Liste görüntüleyicisi", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "Bir görüntüye tıklarken liste görüntüleyiciyi kullanmak için bunu etkinleştirin.", + ], + "Image listing size" => [ + 0 => "Görüntü listeleme boyutu", + ], + "Fluid" => [ + 0 => "Akışkan", + ], + "Fixed" => [ + 0 => "Çözüldü", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Her iki metod da genişliği sabit tutar ancak fluid (akışkan) metod yüksekliği otomatik ayarlar.", + ], + "Album listing images requirement" => [ + 0 => "Albüm listeleme görüntüleri gereksinimi", + ], + "explore" => [ + 0 => "keşfetmek", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "Albümleri keşifte göstermek için gereken minimum resim sayısını ayarlar.", + ], + "Listing columns number" => [ + 0 => "Sütun numarası listeleniyor", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Burada, her bir hedef cihaza göre kaç tane sütun kullanılacağını belirleyebilirsiniz.", + ], + "Phone" => [ + 0 => "Telefon", + ], + "Phablet" => [ + 0 => "Phablet", + ], + "Tablet" => [ + 0 => "Tablet", + ], + "Laptop" => [ + 0 => "Laptop", + ], + "Desktop" => [ + 0 => "Masaüstü", + ], + "theme editing" => [ + 0 => "tema düzenleme", + ], + "Put your themes in the %s folder" => [ + 0 => "Tema Klasörü %s", + ], + "Tone" => [ + 0 => "Ton", + ], + "Light" => [ + 0 => "Hafif (beyaz)", + ], + "Dark" => [ + 0 => "Koyu (siyah)", + ], + "Main color" => [ + 0 => "Ana renk", + ], + "Hexadecimal color value" => [ + 0 => "Heksadesimal renk değeri", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Ana tema rengi olarak bunu kullan. Değer<a href=\"%s\" target=\"_blank\">heksadesimal formatta</a> olmalı.", + ], + "Top bar button color" => [ + 0 => "Üst çubuk düğme (button) rengi", + ], + "Blue" => [ + 0 => "Mavi", + ], + "Green" => [ + 0 => "Yeşil", + ], + "Orange" => [ + 0 => "Turuncu", + ], + "Red" => [ + 0 => "Kırmızı", + ], + "Grey" => [ + 0 => "Gri", + ], + "Black" => [ + 0 => "Geri", + ], + "White" => [ + 0 => "Beyaz", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "\"Hesap oluştur\" düğmesi gibi en üstteki çubuk düğmeleri için renk.", + ], + "Enable vector logo" => [ + 0 => "Vektorel logo acik", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Yüksek piksel yoğunluğuna sahip cihazlarda yüksek kaliteli logo için vektör logosunu etkinleştirin.", + ], + "Vector logo image" => [ + 0 => "Vektör logosu resmi", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "SVG formatında web sitenizin logosunun vektör versiyonu.", + ], + "Raster logo image" => [ + 0 => "Raster logo resmi", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Bitmap sürümü veya web sitenizin logosu. PNG formatı olması önerilir.", + ], + "Logo height" => [ + 0 => "Logo yüksekliği", + ], + "No value" => [ + 0 => "Değersiz", + ], + "Use this to set the logo height if needed." => [ + 0 => "Gerekirse logo yüksekliğini ayarlamak için bunu kullanın.", + ], + "Favicon image" => [ + 0 => "Favicon resmi", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Favicon görüntü. Görüntü aynı genişliğe ve yüksekliğe sahip olmalıdır.", + ], + "Image load max. filesize" => [ + 0 => "Görüntü yükü maks. Dosya boyutu", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "Bu boyuttan büyük görüntüler tam çözünürlüklü görüntüyü yüklemek için bir düğme gösterecektir.", + ], + "Enable download button" => [ + 0 => "İndirme butonu açık.", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Görüntü indirme düğmesini göstermek istiyorsanız bunu etkinleştirin.", + ], + "Enable right click on image" => [ + 0 => "Resmin üzerinde sağ tıklamayı etkinleştir", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Resim görüntüleme sayfasında sağ tıklanmasına izin vermek istiyorsanız bunu etkinleştirin.", + ], + "Enable show Exif data" => [ + 0 => "Exif verilerini göstermeyi etkinleştir", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Görüntü Exif verilerini göstermek istiyorsanız bunu etkinleştirin.", + ], + "Enable social share" => [ + 0 => "Sosyal paylaşma etkinleştir", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Eğer içerik paylaşmak için sosyal ağ düğmelerini göstermek istiyorsanız bunu etkinleştirin.", + ], + "Enable embed codes (content)" => [ + 0 => " Embed kodları etkinleştirme (içerik)", + ], + "Everybody" => [ + 0 => "Herkes", + ], + "Users only" => [ + 0 => "Yalnızca kullanıcılar", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "İçerik için embed kodları göstermek istiyorsanız bunu etkinleştirin.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Yükleyicide güvenli içerik değil onay kutusu", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Güvenli içerik yüklemesi olmadığını belirten bir onay kutusu göstermek istiyorsanız bunu etkinleştirin.", + ], + "Custom CSS code" => [ + 0 => "Özel CSS kodu", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Özel CSS kodunuzu buraya yerleştirin. Kapanışı </head> etiketinden hemen önce <style> olarak yerleştirilir.", + ], + "Custom JS code" => [ + 0 => "Özel JS kodu", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Özel JS kodunuzu buraya yerleştirin. Kapanış </head> etiketinden hemen önce <script> olarak yerleştirilecektir.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "Burada %s işaretlemesi kullanmayın. Bu, HTML komut dosyası etiketleri için değil, düz JS kodu içindir. Burada script etiketleri kullanıyorsanız, web sitenizi kıracaksınız.", + ], + "Style" => [ + 0 => "Stil", + ], + "Landing page" => [ + 0 => "Açılış sayfası", + ], + "Split landing + images" => [ + 0 => "Bölünmüş iniş + görüntüleri", + ], + "Route %s" => [ + 0 => "%s yolu", + ], + "upload" => [ + 0 => "yükle", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Ana sayfa stilini seçin. Daha fazla düzenlemek için app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Kapak resmi", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Bu resmi silmek istediğinizden emin misiniz ?. Resim geri dönüşümü olmaksızın silinecektir.", + ], + "Delete image" => [ + 0 => "Resmi Sil", + ], + "Add new cover image" => [ + 0 => "Yeni kapak resmi ekle", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Web sitenizin logosunun SVG formatındaki vektör versiyonu (sadece ana sayfa için).", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Bitmap sürümü veya web sitenizin logosu (sadece ana sayfa için). PNG formatı önerilir.", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Bu %s ana sayfasının içine eklenecek. Varsayılan içerikleri kullanmak için boş bırakın.", + ], + "Paragraph" => [ + 0 => "Paragraf", + ], + "Call to action button color" => [ + 0 => "Harekete geçme düğmesinin rengi", + ], + "Color of the homepage call to action button." => [ + 0 => "Ana sayfanın rengi harekete geçirici düğmeyi işaretler.", + ], + "Call to action outline style button" => [ + 0 => "Eylem anahat stili düğmesini ara", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Ana sayfa harekete geçirme düğmesinin anahat stilini kullanmak için bunu etkinleştirin.", + ], + "Call to action functionality" => [ + 0 => "Eylem işlevine çağrı", + ], + "Trigger uploader" => [ + 0 => "Tetikleyici yükleme", + ], + "Open URL" => [ + 0 => "Link aç", + ], + "Call to action URL" => [ + 0 => "Eylem URL'sine ara", + ], + "Enter an absolute or relative URL" => [ + 0 => "Mutlak veya göreceli bir URL girin", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "%r gibi göreceli bir URL %l ile eşlenir", + ], + "Call to action HTML" => [ + 0 => "Eylem HTML’yi çağırın", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Bu, harekete geçirme ifadesine <a> etiketi eklenir. Varsayılan içerikleri kullanmak için boş bırakın.", + ], + "User IDs" => [ + 0 => "Kullanıcı Kimlikleri", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "Ana sayfada görüntüleri göstermek için hedef kullanıcı kimliklerinin virgülle ayrılmış listesi. Tüm son resimleri görüntülemek için boş veya sıfır bırakın.", + ], + "banners" => [ + 0 => "banner'lar", + ], + "Automatic updates check" => [ + 0 => "Otomatik güncellemeler kontrolü", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "Etkinleştirildiğinde, sistem otomatik olarak yeni güncellemeleri kontrol eder.", + ], + "Display available updates notification" => [ + 0 => "Mevcut güncellemeler bildirimini görüntüle", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "Yeni mevcut sistem güncellemeleri hakkında sizi uyaran bir uyarı göstermek için bunu etkinleştirin.", + ], + "Dump update query" => [ + 0 => "Güncelleme sorgusunu döküm", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "Her kullanıcı için doğru dili otomatik olarak algılayıp ayarlamak istiyorsanız bunu etkinleştirin.", + ], + "SEO %s URLs" => [ + 0 => "SEO %s URL'ler", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "SEO %s URL'lerini kullanmak istiyorsanız bunu etkinleştirin..", + ], + "Minify code" => [ + 0 => "Kodu küçült", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "CSS ve JS kodunu otomatik olarak küçültmek istiyorsanız bunu etkinleştirin.", + ], + "Maintenance" => [ + 0 => "Bakım", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "Etkinleştirildiğinde website bakım mesajı gösterecektir. Bu ayar, yöneticileri etkilemez.", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Kullanıcı İD Kimlik Numarasıdır. Bu İD üzerinden işlemler yapılacaktır.", + ], + "PHP error reporting" => [ + 0 => "PHP hata raporlama", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "PHP <a %s>error_reporting()</a>. T tarafından oluşturulan hataları yazdırmak istiyorsanız bunu etkinleştirin. Bu üretimde devre dışı bırakılmalıdır.", + ], + "Debug level" => [ + 0 => "Hata ayıklama düzeyi", + ], + "None" => [ + 0 => "Yok", + ], + "Error log" => [ + 0 => "Hata günlüğü", + ], + "Print errors without error log" => [ + 0 => "Hata günlüğü olmadan hataları yazdır", + ], + "Print and log errors" => [ + 0 => "Hataları yazdırma ve kaydetme", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Hata ayıklama seviyesini yapılandırmak için <a %s>hata ayıklama belgelerini</a>. kontrol edin. Varsayılan seviye \"Hata günlüğü\" (1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." => [ + 0 => "Yönlendirme, anında varsayılan rota ciltlemelerini özelleştirmenizi sağlar. Yalnızca alfanümerik, kısa çizgi ve alt çizgi karakterlerine izin verilir. Yeni yollar eklemek veya geçersiz kılmak istiyorsanız %s değerimize göz atın.", + ], + "Image routing" => [ + 0 => "Görüntü yönlendirme", + ], + "Routing for %s" => [ + 0 => "%s için yönlendirme", + ], + "Album routing" => [ + 0 => "Albüm yönlendirmesi", + ], + "Hostname" => [ + 0 => "Hostadı", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "Alt alan adı karakterlerinin ekleneceği ana bilgisayar adı.", + ], + "This setting may be overridden by %s." => [ + 0 => "Bu ayar %s tarafından geçersiz kılınabilir.", + ], + "Language subdomains" => [ + 0 => "Dil alt alanları", + ], + "languages" => [ + 0 => "diller", + ], + "Enable to use %s for %t." => [ + 0 => "%t. %s kullanımı etkinleştirir.", + ], + "Username subdomains" => [ + 0 => "Kullanıcı adı alt alanları", + ], + "user profiles" => [ + 0 => "Kullanıcı profilleri", + ], + "Custom language strings" => [ + 0 => "Özel dil dizeleri", + ], + "language strings" => [ + 0 => "Dil dizileri", + ], + "Default language" => [ + 0 => "Varsayılan dil ayarını seçiniz.", + ], + "Default base language to use." => [ + 0 => "Varsayılan temel dil ayarını belirtiniz.", + ], + "Auto language" => [ + 0 => "Otomatik dil seçimi", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Her kullanıcı için doğru dili otomatik olarak algılamak ve ayarlamak istiyorsanız bunu etkinleştirin.", + ], + "Language chooser" => [ + 0 => "Dil seçicisi", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Dil seçimine izin vermek istiyorsanız bunu etkinleştirin.", + ], + "Enabled languages" => [ + 0 => "Etkin diller", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "İşaretlenmeyen diller web sitenizde kullanılmaz.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "HTTPS'yi etkinleştirmek veya devre dışı bırakmak için bunu değiştirin", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Bu depolamayı etkinleştirmek veya devre dışı bırakmak için bunu değiştirin", + ], + "Quota" => [ + 0 => "Kota", + ], + "Active" => [ + 0 => "Aktif", + ], + "Storage method" => [ + 0 => "Depolama yöntemi", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Yerel depolama varsayılan olarak veya harici depolama etkin olmadığında kullanılır.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Yardıma ihtiyacınız olursa <a %s>depolama belgelerini</a> kontrol edin..", + ], + "Edit storage" => [ + 0 => "Depolamayı düzenle", + ], + "From name" => [ + 0 => "İsminiz (Adınız)", + ], + "Sender name for emails sent to users." => [ + 0 => "Email gönderilecek kullanıcıların isim veya isimlerini yazınız..", + ], + "Email mode" => [ + 0 => "E-posta modu", + ], + "How to send emails? SMTP recommended." => [ + 0 => "E-postalar nasıl gönderilecek? SMTP önerilir.", + ], + "SMTP server and port" => [ + 0 => "SMTP server adresi ve port numarası", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP Kullanıcı Adı", + ], + "SMTP password" => [ + 0 => "SMTP Şifre", + ], + "SMTP security" => [ + 0 => "SMTP Güvenliğini", + ], + "Unsecured" => [ + 0 => "Güvensiz", + ], + "Decode ID" => [ + 0 => "Kod çözme ID", + ], + "Encode ID" => [ + 0 => "Kodlama ID", + ], + "Send test email" => [ + 0 => "Test e-postası gönder", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "E-postalarınızın nasıl teslim edildiğini test etmek için bunu kullanın. %s kullanmanızı tavsiye ederiz.", + ], + "Export a user" => [ + 0 => "Bir kullanıcıyı dışa aktar", + ], + "Export user" => [ + 0 => "Kullanıcıyı dışa aktar", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "Bu, kullanıcının standart kişisel bilgilerini JSON formatında indirmenize izin verecektir.", + ], + "Regenerate external storage stats" => [ + 0 => "Harici depolama istatistiklerini yeniden oluşturun", + ], + "Storage id" => [ + 0 => "Depolama kimliği", + ], + "Regenerate" => [ + 0 => "Tekrar Üret", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "Bu, hedef harici depolama birimiyle ilişkili tüm görüntü kayıtlarının toplamını yeniden hesaplar.", + ], + "Migrate image records from one external storage to another" => [ + 0 => "Görüntü kayıtlarını bir harici depolama biriminden diğerine geçirme", + ], + "Source storage id" => [ + 0 => "Kaynak depolama kimliği", + ], + "Target storage id" => [ + 0 => "Hedef depolama kimliği", + ], + "Migrate" => [ + 0 => "Göç", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "Bu sadece veritabanını günceller. Gerçek dosyaları hedef depolama kabına kendiniz aktarmanız gerekir. URL yeniden yazma şiddetle tavsiye edilir. Yerel depolama için sıfır (0) kullanın.", + ], + "social networks" => [ + 0 => "sosyal ağlar", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Bu modu kullanmak için Facebook uygulaması gerekmektedir. Örnek olarak <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app </a>", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret kodu", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Bu modu kullanmak için Twitter uygulaması gerekmektedir. Örnek olarak <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a>", + ], + "Twitter API key" => [ + 0 => "Twitter API anahtarı", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret kodu", + ], + "Twitter account" => [ + 0 => "Twitter hesabı", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Bu modu kullanmak için Google uygulaması gerekmektedir. Örnek olarak <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret kodu", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Bunun için bir <a href=\"http://vk.com/dev\" target=\"_blank\">VK uygulamasına</a> ihtiyacınız var.", + ], + "VK client id" => [ + 0 => "VK müşteri kimliği", + ], + "VK client secret" => [ + 0 => "VK client secret", + ], + "%s spam protection" => [ + 0 => "%s spam koruması", + ], + "user generated content" => [ + 0 => "kullanıcı tarafından oluşturulan içerik", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "%c üzerindeki spam'ı engellemek için %l kullanmak için bunu etkinleştirin.", + ], + "%s API key" => [ + 0 => "%s API anahtarı", + ], + "user signup" => [ + 0 => "kullanıcı kaydı", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Bunun için bir <a href=\"%s\" target=\"_blank\">reCAPTCHA anahtarına</a> ihtiyacınız var.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "Her reCAPTCHA sürümünün kendi anahtar kümesini gerektirdiğini lütfen unutmayın. Sürümleri değiştirirseniz anahtarları güncellemeyi unutmayın.", + ], + "%s site key" => [ + 0 => "%s site key", + ], + "%s secret key" => [ + 0 => "%s secret key", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "ReCAPTCHA'yı istemek için kaç başarısız girişimde bulunulmalı? ReCAPTCHA'yı her zaman göstermek için sıfır (0) kullanın.", + ], + "Force %s on contact page" => [ + 0 => "Kişi sayfasını %s zorla", + ], + "Enable this to always show %s on contact page." => [ + 0 => "Kişi sayfasında her zaman %s göstermek için bunu etkinleştirin.", + ], + "Comments API" => [ + 0 => "Yorumlar API'si", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API %s ile çalışır.", + ], + "Disqus shortname" => [ + 0 => "Disqus shortname", + ], + "%s public key" => [ + 0 => "%s public key", + ], + "Comment code" => [ + 0 => "Kodun İçeriği", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook veya başka bir yerden görüntü almak istiyorum. Alınacak görüntü profilde gösterilecektir.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "%s hizmetini kullanarak içeriği otomatik olarak denetleyin.", + ], + "Automatic approve" => [ + 0 => "Otomatik onay", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "Bu hizmet tarafından denetlenen içeriği otomatik olarak onaylamak için bunu etkinleştirin.", + ], + "Block content" => [ + 0 => "İçeriği engelle", + ], + "Adult" => [ + 0 => "Yetişkin", + ], + "Teen and adult" => [ + 0 => "Genç ve yetişkin", + ], + "Flag NSFW" => [ + 0 => "NSFW olarak işaretle.", + ], + "Analytics code" => [ + 0 => "Google Analytics kodunuzu giriniz.", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google analitik kodununun özelliklerini sayfanın altında göstermek istiyormusunuz?", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "API ile ilgili belgeler için <a %s>API belgelerine</a> bakın.", + ], + "API v1 key" => [ + 0 => "API v1 key", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "<a %s>API v1</a> kullanırken bu anahtarı kullanın.", + ], + "Plugin route" => [ + 0 => "Eklenti yolu", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "%u. konumundaki eklenti talimatlarını görüntülemek için bunu etkinleştirin. Bu talimatlara bir bağlantı %s menüsüne eklenecektir. Bu ayar yöneticileri etkilemez.", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "%p. için özel bir URL belirlemek için bunu kullanın. Lütfen bu URL’de %s yi manuel olarak çoğaltmanız gerektiğini unutmayın.", + ], + "Cookie law compliance" => [ + 0 => "Çerez yasalarına uyum", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Bunu, AB Çerez Yasası şartlarına uygun bir mesaj görüntülemek için etkinleştirin. Not: Buna yalnızca web siteniz AB’de sunuluyorsa ve izleme çerezleri eklerseniz buna ihtiyacınız olur.", + ], + "Save changes" => [ + 0 => "Değişiklikleri Kaydet", + ], + "Check the errors to proceed." => [ + 0 => "Hataları denetlemek için devam edin.", + ], + "Play GIF" => [ + 0 => "GIF Oynat", + ], + "Load full resolution" => [ + 0 => "Tam çözünürlük yükle", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "Seçilen tüm içeriği gerçekten kaldırmak istiyor musunuz? Bu geri alınamaz.", + ], + "Added to %a and categorized in %c" => [ + 0 => "%a ya eklendi ve %c olarak kategorize edildi", + ], + "Added to %s" => [ + 0 => "Eklenecek Resimler %s", + ], + "Uploaded to %s" => [ + 0 => "%s adresine yüklendi", + ], + "Uploaded %s" => [ + 0 => "Yüklenen resim %s", + ], + "Less Exif data" => [ + 0 => "Daha az Exif verisi", + ], + "More Exif data" => [ + 0 => "Exif verileri", + ], + "Share image" => [ + 0 => "Paylaşılan Resim", + ], + "Album ID" => [ + 0 => "Albüm No", + ], + "In this album" => [ + 0 => "Albümü", + ], + "Upload and share your images." => [ + 0 => "Resimlerinizi yükleyin veya paylaşin.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Resimleri yüklemek için sürükle ve bırak seçeneği ile. %s kadar yükleyebilir. Doğrudan linkler, BBcode veya Html küçük resimler seçeneği ile paylaşabilirsiniz.", + ], + "Start uploading" => [ + 0 => "Yüklemeye Başla", + ], + "Sign up to unlock all the features" => [ + 0 => "Tüm özellikleri kullanmak icin kayıt olunuz", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Hesabınızı yönetin, özel albüm oluşturun, profilinizi özelleştirin ve daha fazlasi.", + ], + "Sign in with your account" => [ + 0 => "Hesabınızla giriş yapın", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Hesabınız yok mu? <a href='%s'>Hesap aç</a>", + ], + "Logged out" => [ + 0 => "Çıkış ", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "%s. Sizi en kısa sürede tekrardan görmek dileğiyle", + ], + "Go to homepage" => [ + 0 => "Ana Sayfaya Dön", + ], + "Website under maintenance" => [ + 0 => "Web sitesi bakım altında", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Web sitesinde zamanlanmış bakım işlemleri gerçekleştiriyoruz. Lütfen birkaç dakika sonra tekrar gelin.", + ], + "This content is password protected." => [ + 0 => "Bu içerik şifre korumalıdır.", + ], + "Please enter your password to continue." => [ + 0 => "Devam etmek için lütfen şifrenizi girin.", + ], + "Send" => [ + 0 => "Gönder", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "Yükleme eklentimizi yükleyerek web sitenize, blogunuza veya forumunuza resim yükleme ekleyin. Kullanıcılarınızın görüntüleri doğrudan servisimize yüklemelerine izin verecek bir düğme yerleştirerek herhangi bir web sitesine görüntü yükleme olanağı sağlar ve yerleştirme için gereken kodları otomatik olarak yönetir. Sürükle ve bırak, uzaktan yükleme, görüntü yeniden boyutlandırma ve daha fazlası gibi tüm özellikler.", + ], + "Supported software" => [ + 0 => "Desteklenen yazılım", + ], + "supported software" => [ + 0 => "desteklenen yazılım", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "Eklenti, kullanıcı tarafından düzenlenebilir içeriğe sahip herhangi bir web sitesinde çalışır ve %s için, hedef düzenleyici araç çubuğuna uyan bir yükleme butonu yerleştirir, böylece fazladan özelleştirme gerekmez.", + ], + "Add it to your website" => [ + 0 => "Web sitene ekle", + ], + "options" => [ + 0 => "seçenekler", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "Eklenti kodunu kopyalayıp web sitenizin HTML kodunda ( head kodu bölümünden sonra ) yapıştırın. İhtiyaçlarınıza daha iyi uyması için %o bol miktarda ekleyin.", + ], + "Basic options" => [ + 0 => "Temel seçenekler", + ], + "Color palette" => [ + 0 => "Renk paleti", + ], + "Button color scheme" => [ + 0 => "Düğme rengi şeması", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "Editör kutusuna otomatik olarak eklenecek kodları gömün", + ], + "Sibling selector" => [ + 0 => "Kardeş seçimi", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Kardeş eleman seçici, düğmenin yanına nereye yerleştirileceğini belirtin", + ], + "Sibling position" => [ + 0 => "Kardeş konumu", + ], + "After" => [ + 0 => "Sonra", + ], + "Before" => [ + 0 => "Önce", + ], + "Position relative to sibling element" => [ + 0 => "Kardeş elemanına göre konumlandırma", + ], + "Advanced options" => [ + 0 => "Gelişmiş seçenekler", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "Eklenti, tam özelleştirmeye izin veren geniş bir ek seçenek grubuna sahiptir. Özel HTML, CSS, kendi renk paleti kullanabilir, gözlemcileri ayarlayabilir ve daha fazlasını yapabilirsiniz. Bu gelişmiş seçenekler hakkında daha iyi bir fikir edinmek için %d ve eklenti kaynağını kontrol edin.", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Bu bağlantıya erişmek veya işlem yapmak için geçerli süreniz dolmuştur. Tekrar deneyiniz.", + ], + "Search results" => [ + 0 => "Arama sonuçları", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Bu kullanıcıyı gerçekten silmek istiyor musunuz ? Bu işlem geri alınamaz !", + ], + "Delete user" => [ + 0 => "Kullanıcıyı Sil", + ], + "Register date" => [ + 0 => "Kayıt Zamanı", + ], + "Registration IP" => [ + 0 => "Kayıt IP'si", + ], + "Valid" => [ + 0 => "Geçerli", + ], + "Banned" => [ + 0 => "Yasaklanmış", + ], + "Awaiting email" => [ + 0 => "Mail Bekleniyor.", + ], + "Awaiting confirmation" => [ + 0 => "Onay Bekleniyor", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i - %f karakterleri<br>Harfler, rekamlar ve \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Yüklemeleri otomatik sil", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Bu ayar, varsayılan olarak tüm resim yüklemeleriniz için geçerli olacaktır. Her yüklemede bu ayarı geçersiz kılabilirsiniz.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Yüklemede <a %s>Exif verileri</a> görüntüsünü sakla", + ], + "Newsletter" => [ + 0 => "Bülten", + ], + "Send me emails with news about %s" => [ + 0 => "Bana %s hakkındaki haberleri içeren e-postaları gönder", + ], + "Content settings" => [ + 0 => "İçerik ayarları", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Listelerde güvenli olmayan içeriği göster (diğerlerinden)", + ], + "Language" => [ + 0 => "Dil", + ], + "Timezone" => [ + 0 => "Saat Dilimi", + ], + "Current password" => [ + 0 => "Şifrenizi Yazınız", + ], + "Enter your current password" => [ + 0 => "Lütfen kullandığınız şifreyi yazınız", + ], + "New password" => [ + 0 => "Yeni Şifrenizi Yazınız", + ], + "Confirm new password" => [ + 0 => "Yeni Şifrenizi Tekrar Yazınız.", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Kullanıcı adınız veya e-postanız ile giriş yapabilmek için lütfen bir parola belirleyin.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Belirttiğiniz kullanıcı mevcut değildir. Lütfen yeni bir kullanıcı kaydı yapınız.", + ], + "Enter your password" => [ + 0 => "Şifrenizi Yazınız.", + ], + "Confirm password" => [ + 0 => "Şifrenizi Tekrardan Yazınız.", + ], + "Re-enter your password" => [ + 0 => "Şifrenizi Tekrar Yazınız.", + ], + "Upload new image" => [ + 0 => "Yeni Resim Yükle", + ], + "Delete existing image" => [ + 0 => "Kullandığınız resimlerden silmek istermisiniz ?", + ], + "Make my profile and identity totally private" => [ + 0 => "Profilimi ve kimliğimi tamamen özel yap", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Adsız bir kullanıcı gibi gözüküyor devam istiyorsanız bunu etkinleştirin", + ], + "This is your real name, not your username." => [ + 0 => "Bu isimde bir kullanıcı adı bulunamadı.", + ], + "http://yourwebsite.com" => [ + 0 => "http://sizinsiteniz.com", + ], + "Bio" => [ + 0 => "Biografi", + ], + "Tell us a little bit about you" => [ + 0 => "Bize biraz kendinizden bahsedin", + ], + "User has no connections." => [ + 0 => "Kullanıcının bağlantısı yok.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "Giriş yapabilmek ve içerik paylaşmak için hesabınızı harici hizmetlere bağlayın.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "%s kullanıcısının bağlantısını kesmek istediğinizden eminmisiniz ?", + ], + "This account is connected to %s" => [ + 0 => "Bu kullanıcı %s ile bağlanır.", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "%s kullanıcısı ile bağlantıyı kesmek istediğinizden eminmisiniz ?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Siz giriş yaptığınızda %s kullanıcıların hesabınıza girişi mümkün olmayacaktır.", + ], + "Your account is connected to %s" => [ + 0 => "Hesabınız %s bağlanır.", + ], + "disconnect" => [ + 0 => "Bağlantıyı Kes", + ], + "Connect %s" => [ + 0 => "Bağlan %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Tüm paylaşılan resimlerimi ve albümleri göz atın ve keşfedin", + ], + "Button" => [ + 0 => "Buton", + ], + "View all my images" => [ + 0 => "Bütün resimlerimi göster", + ], + "Login" => [ + 0 => "Giriş", + ], + "Already have an account? %s now." => [ + 0 => "Hesabınız var mı? %s yapın şimdi.", + ], + "resend account activation" => [ + 0 => "hesap aktivasyonunu tekrar gönder", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "Daha önce kaydolduysanız, hesabınızı etkinleştirmek için %s isteğinde bulunmanız gerekebilir.", + ], + "You can also %s." => [ + 0 => "Hesabınız etkin değilse, %s.", + ], + "I'm at least %s years old" => [ + 0 => "En az %s yaşındayım", + ], + "terms" => [ + 0 => "şartlar", + ], + "privacy policy" => [ + 0 => "gizlilik politikası", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "%terms_link ve %privacy_link’i kabul ediyorum", + ], + "Upload profile background" => [ + 0 => "Profilinizin arka planına resim yüklemek ister misiniz ?", + ], + "Change background" => [ + 0 => "Arka planı değiştir.", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Profilinizin arkaplan resmi silinecektir. Bu işlem geri alınamaz. Silmek istediğinize emin misiniz?", + ], + "Delete background" => [ + 0 => "Arka Planı Sil", + ], + "Follower" => [ + 0 => "takipçi", + 1 => "İzleyiciler", + ], + "Follow" => [ + 0 => "Takip et", + ], + "You have been forbidden to use this website." => [ + 0 => "Bu siteyi kullanmanız yasaklanmıştır.", + ], + "Plugin" => [ + 0 => "Eklenti", + ], + "Page %s" => [ + 0 => "%s sayfası", + ], + "General questions/comments" => [ + 0 => "Genel sorular/yorumlar", + ], + "DMCA complaint" => [ + 0 => "DMCA şikayet", + ], + "Invalid message" => [ + 0 => "Geçersiz mesaj (ileti). Lütfen geçerli bir mesaj yazınız.", + ], + "Invalid subject" => [ + 0 => "Geçersiz konu. Lütfen geçerli bir konu yazınız.", + ], + "Mail error" => [ + 0 => "Hatalı (geçersiz) mail adresi.", + ], + "Message sent" => [ + 0 => "Mesaj gönderildi", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Mesajınız gönderildi. Yakında iletişime geçeceğiz.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Mesaj göndermek istiyorsanız aşağıdaki formu doldurunuz.", + ], + "Your name" => [ + 0 => "Adınız", + ], + "Subject" => [ + 0 => "konu", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Devam etmeniz durumunda yaptığınız değişiklikler kabul edilmeyecektir", + ], + "Changes saved successfully." => [ + 0 => "Değişiklikler başarıyla kaydedildi.", + ], + "Go back to form" => [ + 0 => "Form'a geri dön", + ], + "continue anyway" => [ + 0 => "Devam etmek istediğinizden emin misiniz ?", + ], + "Saving" => [ + 0 => "Kaydet", + ], + "Sending" => [ + 0 => "Gönder", + ], + "Confirm action" => [ + 0 => "Eylemi onayla", + ], + "information" => [ + 0 => "bilgi", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/uk.po.cache.php b/app/.cache/languages/uk.po.cache.php new file mode 100644 index 0000000..2d34a97 --- /dev/null +++ b/app/.cache/languages/uk.po.cache.php @@ -0,0 +1,2940 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:16+0000', + 'PO-Revision-Date' => '2020-09-02 17:16+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'uk', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);', +); +$translation_plural = array ( + 'nplurals' => 3, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Неправильна адреса електронної пошти", + ], + "Invalid username" => [ + 0 => "Неправильне ім'я користувача", + ], + "Invalid password" => [ + 0 => "Неправильний пароль", + ], + "Invalid website mode" => [ + 0 => "Неправильний режим веб-сайту", + ], + "From email address" => [ + 0 => "Адреса відправника", + ], + "Sender email for emails sent to users." => [ + 0 => "Адреса відправника для розсилки повідомлень користувачам.", + ], + "Incoming email address" => [ + 0 => "Адреса для вхідних повідомлень", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Адреса для форми зворотного зв'язку і системних повідомлень.", + ], + "Website mode" => [ + 0 => "Режим роботи сайту", + ], + "You can switch the website mode anytime." => [ + 0 => "Ви можете перемкнути режим веб-сайту в будь-який час.", + ], + "Community" => [ + 0 => "Спільнота", + ], + "Personal" => [ + 0 => "Особистий", + ], + "Installed version is v%s" => [ + 0 => "Встановлена версія v%s", + ], + "Can't connect to %s" => [ + 0 => "Неможливо приєднатись до %s", + ], + "Last available release is v%s" => [ + 0 => "Останній доступний реліз v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Потрібне оновлення, почати завантаження", + ], + "No update needed" => [ + 0 => "Оновлення не потрібне", + ], + "System files already up to date" => [ + 0 => "Системні файли вже оновлені", + ], + "Starting v%s download" => [ + 0 => "Почати завантаження v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Завантажено v%s, почати роспакування", + ], + "Attempting to extract v%s" => [ + 0 => "Спроба розпакувати v%s", + ], + "Extraction completed" => [ + 0 => "Розпакування завершено", + ], + "Proceding to install the update" => [ + 0 => "Почати інсталяцію оновлення", + ], + "Update failed" => [ + 0 => "Оновлення зірвано", + ], + "Update in progress" => [ + 0 => "Оновлення в процесі", + ], + "Missing %s file" => [ + 0 => "Відсутній %s файл", + ], + "Invalid license info" => [ + 0 => "Неправильна інформація про ліцензію", + ], + "Invalid license key" => [ + 0 => "Неправильний ключ ліцензії", + ], + "Can't save file" => [ + 0 => "Неможливо зберегти файл", + ], + "Can't download %s" => [ + 0 => "Неможливо завантажити %s", + ], + "Can't extract %s" => [ + 0 => "Неможливо витягнути %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Неможливо створити %s директорію - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Неможливо оновити %s файл - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Перед продовженням перевірте форму на наявність помилок", + ], + "You must enter the album name." => [ + 0 => "Ви повинні ввести назву альбому.", + ], + "Confirm" => [ + 0 => "Підтвердити", + ], + "Select existing album" => [ + 0 => "Виберіть існуючий альбом", + ], + "An error occurred. Please try again later." => [ + 0 => "У процесі виконання сталася помилка. Будь ласка спробуйте пізніше.", + ], + "Please select a valid image file type." => [ + 0 => "Будь ласка виберіть правильний формат зображення.", + ], + "Please select a picture of at most %s size." => [ + 0 => "Будь ласка, виберіть зображення не більше %s розміром.", + ], + "Profile image updated." => [ + 0 => "Зображення профілю оновлено.", + ], + "Profile background image updated." => [ + 0 => "Фон профілю оновлений.", + ], + "Profile background image deleted." => [ + 0 => "Фон профілю видалений.", + ], + "Error deleting profile background image." => [ + 0 => "При видаленні фону профілю виникла помилка.", + ], + "Passwords don't match" => [ + 0 => "Паролі не збігаються", + ], + "Update available v%s" => [ + 0 => "Поновлення доступне v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Є поновлення для вашої системи. Ви можете автоматично скачати і встановити його або піти до %s для того щоб скачати його вручну.", + ], + "The release notes for this update are:" => [ + 0 => "Нотатки про випуск для цього оновлення:", + ], + "Update now" => [ + 0 => "Оновити зараз", + ], + "or" => [ + 0 => "або", + ], + "cancel" => [ + 0 => "скасувати", + ], + "loading" => [ + 0 => "Завантаження", + ], + "Like" => [ + 0 => "Сподобалось", + ], + "Edit" => [ + 0 => "Редагувати", + ], + "Album" => [ + 0 => "Альбом", + 1 => "Альбоми", + 2 => "Альбомів", + ], + "Delete" => [ + 0 => "Видалити", + ], + "Close" => [ + 0 => "Закрити", + ], + "Previous" => [ + 0 => "Попередня", + ], + "Next" => [ + 0 => "Наступна", + ], + "Clipboard image" => [ + 0 => "Зображення у буфері обміну", + ], + "File too big." => [ + 0 => "Файл занадто великий.", + ], + "Invalid or unsupported file format." => [ + 0 => "Невірний або підтримуваний формат файлу.", + ], + "Some files couldn't be added" => [ + 0 => "Деякі файли не були додані.", + ], + "image" => [ + 0 => "зображення", + 1 => "зображень", + 2 => "зображень", + ], + "%s's Albums" => [ + 0 => "%s Альбомів", + ], + "Image edited successfully." => [ + 0 => "Зображення успішно змінене.", + ], + "private" => [ + 0 => "приховане", + ], + "Album edited successfully." => [ + 0 => "Альбом успішно відредагований.", + ], + "Invalid URL key." => [ + 0 => "Невірний URL ключ.", + ], + "Category URL key already being used." => [ + 0 => "Такий URL ключ вже використовується.", + ], + "Category successfully deleted." => [ + 0 => "Категорія вилучена.", + ], + "Category %s added." => [ + 0 => "Категорія %s додана.", + ], + "Invalid expiration date." => [ + 0 => "Неправильна дата закінчення терміну дії.", + ], + "IP %s already banned." => [ + 0 => "IP адреса %s вже заблокована", + ], + "IP %s banned." => [ + 0 => "IP %s вже заблокована.", + ], + "IP ban successfully deleted." => [ + 0 => "Блокування IP адреси успішно видалено.", + ], + "Please fill all the required fields." => [ + 0 => "Будь ласка заповніть всі необхідні поля.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Невірне значення доступного дискового простору. Переконайтеся, що ви використовуєте допустимий формат.", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Ємність не може бути нижчою, ніж його поточне використання (%s).", + ], + "Invalid URL." => [ + 0 => "Неправильна адреса.", + ], + "Storage successfully edited." => [ + 0 => "Сховище змінено.", + ], + "User added successfully." => [ + 0 => "Користувач доданий.", + ], + "The content has been deleted." => [ + 0 => "Вміст видалено.", + ], + "The content has been moved." => [ + 0 => "Вміст переміщено.", + ], + "Select" => [ + 0 => "Виділити", + ], + "Unselect" => [ + 0 => "Зняти виділення", + ], + "The content has been edited." => [ + 0 => "Вміст змінено.", + ], + "Spam detected" => [ + 0 => "Виявлено спам", + ], + "album" => [ + 0 => "альбом", + 1 => "альбомів", + 2 => "альбомів", + ], + "Untitled" => [ + 0 => "Безіменний", + ], + "%s's images" => [ + 0 => "%s зображень", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Примітка. Цей вміст є приватним, але кожен, хто має посилання, зможе це бачити.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Примітка. Цей вміст захищений паролем. Не забувайте передавати пароль для доступу до вмісту.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Примітка. Цей вміст є приватним. Змініть конфіденційність на «публічний», щоб поділитися.", + ], + "Private" => [ + 0 => "Приватний", + ], + "Public" => [ + 0 => "Публічне", + ], + "Me" => [ + 0 => "Я", + ], + "Link" => [ + 0 => "Посилання", + ], + "Password" => [ + 0 => "Пароль", + ], + "view" => [ + 0 => "перегляд", + 1 => "перегляда", + 2 => "переглядів", + ], + "After %n %t" => [ + 0 => "Після %n %t", + ], + "minute" => [ + 0 => "хвилина", + 1 => "хвилин", + 2 => "хвилин", + ], + "hour" => [ + 0 => "година", + 1 => "годин", + 2 => "годин", + ], + "day" => [ + 0 => "день", + 1 => "днів", + 2 => "днів", + ], + "week" => [ + 0 => "тиждень", + 1 => "тижнів", + 2 => "тижнів", + ], + "month" => [ + 0 => "місяць", + 1 => "місяців", + 2 => "місяців", + ], + "year" => [ + 0 => "рік", + 1 => "років", + 2 => "років", + ], + "Don't autodelete" => [ + 0 => "Не видаляти автоматично", + ], + "Duplicated upload" => [ + 0 => "Подвійне завантаження", + ], + "Private upload" => [ + 0 => "Приватне завантаження", + ], + "like" => [ + 0 => "Подобається", + ], + "Recent" => [ + 0 => "Недавні", + ], + "Trending" => [ + 0 => "Популярні", + ], + "Top users" => [ + 0 => "Топ користувачів", + ], + "Most recent" => [ + 0 => "Нові", + ], + "Oldest" => [ + 0 => "Старі", + ], + "Most viewed" => [ + 0 => "Найпопулярніші", + ], + "Popular" => [ + 0 => "Популярні", + ], + "Most liked" => [ + 0 => "Найбільш сподобались", + ], + "Explore" => [ + 0 => "Огляд", + ], + "Search" => [ + 0 => "Пошук", + ], + "People" => [ + 0 => "Люди", + ], + "Image" => [ + 0 => "Зображення", + 1 => "Зображень", + 2 => "Зображень", + ], + "User" => [ + 0 => "Користувача", + 1 => "Користувачів", + 2 => "Користувачів", + ], + "Can't create %s destination dir" => [ + 0 => "Неможливо створити %s папку у призначеному місці", + ], + "Can't open %s for writing" => [ + 0 => "Неможливо відкрити %s для запису", + ], + "Internal" => [ + 0 => "Внутрішній", + ], + "Can't insert storage." => [ + 0 => "Неможливо додати сховище", + ], + "Can't update storage details." => [ + 0 => "Неможливо оновити дані сховища", + ], + "requires %s" => [ + 0 => "вимагається %s", + ], + "Unlimited" => [ + 0 => "Необмежений", + ], + "used" => [ + 0 => "використано", + ], + "Private profile" => [ + 0 => "Прихований профіль", + ], + "second" => [ + 0 => "секунда", + 1 => "секунд", + 2 => "секунд", + ], + "%s ago" => [ + 0 => "%s тому", + ], + "moments ago" => [ + 0 => "хвилин тому", + ], + "Dashboard" => [ + 0 => "Панель керування", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Доступне оновлення для вашої системи. Перейдіть до %s, щоб завантажити та встановити це оновлення.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Системна база даних застаріла. Вам необхідно запустити <a href=\"%s\">систему поновлення</a>", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Сайт перебуває в режимі обслуговування. Щоб змінити параметри перейдіть у <a href=\"%s\">Панель управління> Налаштування</a>", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Вам потрібно вимкнути показ помилок PHP. Для цього перейдіть у <a href='%s'>Налаштування</a> для зміни.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Ви не змінили налаштування електронної пошти за замовчуванням. Перейдіть у <a href='%s'>Налаштування Email</a> для зміни.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Існує оновлення для вашого веб-сайту на основі Chevereto.", + ], + "admin dashboard" => [ + 0 => "панель адміністратора", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Ви можете застосувати це оновлення безпосередньо зі свого %a або завантажити його з %s, і потім встановити його вручну.", + ], + "view on %s" => [ + 0 => "перегляд на %s", + ], + "I understand" => [ + 0 => "Я розумію", + ], + "Forgot password?" => [ + 0 => "Забули пароль?", + ], + "Reset password" => [ + 0 => "Скинути пароль", + ], + "Resend account activation" => [ + 0 => "Повторити відправку посилання для активації", + ], + "Add your email address" => [ + 0 => "Додати адресу електронної пошти", + ], + "Email changed" => [ + 0 => "Адреса електронної пошти змінена", + ], + "Invalid Username/Email" => [ + 0 => "Неправильне ім'я користувача або email", + ], + "User doesn't have an email." => [ + 0 => "Для цього користувача не задано адресу електронної пошти.", + ], + "Request denied" => [ + 0 => "У запиті відмовлено", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Для використання цієї функції, акаунт повинен бути активований", + ], + "Account already activated" => [ + 0 => "Акаунт вже активований", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Зачекайте повідомлення хоча б 15 хвилин. Після цього спробуйте ще раз.", + ], + "Reset your password at %s" => [ + 0 => "Скинути пароль на %s", + ], + "Confirmation required at %s" => [ + 0 => "Підтвердження реєстрації на %s", + ], + "Welcome to %s" => [ + 0 => "Ласкаво просимо на %s", + ], + "Email already being used" => [ + 0 => "Адреса вже використовується", + ], + "Password required" => [ + 0 => "Пароль обов'язковий", + ], + "Share" => [ + 0 => "Поділитися", + ], + "Embed codes" => [ + 0 => "Коди для вбудовування", + ], + "Full info" => [ + 0 => "Детальна інформація", + ], + "%a album hosted in %w" => [ + 0 => "%a альбом розміщений в %w", + ], + "Stats" => [ + 0 => "Статистика", + ], + "Images" => [ + 0 => "Зображення", + ], + "Albums" => [ + 0 => "Альбоми", + ], + "Users" => [ + 0 => "Користувачі", + ], + "Settings" => [ + 0 => "Налаштування", + ], + "Chevereto version" => [ + 0 => "Версія Chevereto", + ], + "install update" => [ + 0 => "Інсталювати оновлення", + ], + "check for updates" => [ + 0 => "перевірити оновлення", + ], + "Support" => [ + 0 => "Підтримка", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Потрібна допомога? Перейдіть до %s, і ви швидко отримаєте допомогу.", + ], + "PHP version" => [ + 0 => "Версія PHP", + ], + "Server" => [ + 0 => "Сервер", + ], + "MySQL version" => [ + 0 => "Версія MySQL", + ], + "MySQL server info" => [ + 0 => "Інформація про сервер MySQL", + ], + "GD Library" => [ + 0 => "Бібліотека GD", + ], + "File uploads" => [ + 0 => "Завантаження файлів", + ], + "Enabled" => [ + 0 => "Увімк.", + ], + "Disabled" => [ + 0 => "Вимк.", + ], + "Max. upload file size" => [ + 0 => "Макс. розмір файлу що завантажується", + ], + "Max. post size" => [ + 0 => "Макс. розмір POST-запиту", + ], + "Max. execution time" => [ + 0 => "Макс. час виконання", + ], + "%d second" => [ + 0 => "%d секунд", + 1 => "%d секунди", + 2 => "%d секунди", + ], + "Memory limit" => [ + 0 => "Обмеження пам'яті", + ], + "Not your IP?" => [ + 0 => "Не ваш IP?", + ], + "Links" => [ + 0 => "Посилання", + ], + "Documentation" => [ + 0 => "Документація", + ], + "Changelog" => [ + 0 => "Список змін", + ], + "Bug tracking" => [ + 0 => "Простежування помилок", + ], + "Website" => [ + 0 => "Сайт", + ], + "Content" => [ + 0 => "Зміст", + ], + "Pages" => [ + 0 => "Сторінки", + ], + "Listings" => [ + 0 => "Списки", + ], + "Image upload" => [ + 0 => "Завантаження зображення", + ], + "Categories" => [ + 0 => "Категорії", + ], + "Consent screen" => [ + 0 => "Екран угоди", + ], + "Flood protection" => [ + 0 => "Захист від флуду", + ], + "Theme" => [ + 0 => "Тема", + ], + "Homepage" => [ + 0 => "Головна сторінка", + ], + "Banners" => [ + 0 => "Банери", + ], + "System" => [ + 0 => "Система", + ], + "Routing" => [ + 0 => "Маршрутизація", + ], + "Languages" => [ + 0 => "Мови", + ], + "External storage" => [ + 0 => "Зовнішнє сховище", + ], + "Email" => [ + 0 => "Електронна пошта", + ], + "Social networks" => [ + 0 => "Соціальні мережі", + ], + "External services" => [ + 0 => "Сторонні сервіси", + ], + "IP bans" => [ + 0 => "IP блокування", + ], + "Additional settings" => [ + 0 => "Додаткові налаштування", + ], + "Tools" => [ + 0 => "Інструменти", + ], + "Can't delete all homepage cover images" => [ + 0 => "Не вдалося видалити всі зображення обкладинки домашньої сторінки", + ], + "Homepage cover image deleted" => [ + 0 => "Зображення обкладинки домашньої сторінки видалено", + ], + "Local" => [ + 0 => "Локальне", + ], + "External" => [ + 0 => "Зовнішнє", + ], + "All" => [ + 0 => "Всі", + ], + "search content" => [ + 0 => "пошук вмісту", + ], + "Add page" => [ + 0 => "Додати сторінку", + ], + "Edit page ID %s" => [ + 0 => "Відредагувати сторінку ID %s", + ], + "The page has been added successfully." => [ + 0 => "Ця сторінка була успішно додана", + ], + "The page has been deleted." => [ + 0 => "Ця сторінка видалена", + ], + "homepage" => [ + 0 => "домашня сторінка", + ], + "Before main title (%s)" => [ + 0 => "Перед основним заголовком (%s)", + ], + "After call to action (%s)" => [ + 0 => "Після заклику до дії (%s)", + ], + "Before pagination" => [ + 0 => "Перед роздільником сторінок", + ], + "After pagination" => [ + 0 => "Після роздільник сторінок", + ], + "Content (image and album)" => [ + 0 => "Вміст (зображення та альбоми)", + ], + "Tab about column" => [ + 0 => "Вкладка про зображення", + ], + "Before comments" => [ + 0 => "Перед коментарями", + ], + "Image page" => [ + 0 => "Сторінка зображення", + ], + "Inside viewer top (image page)" => [ + 0 => "У заголовку переглядача (сторінка зображення)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Внизу переглядача (сторінка зображення)", + ], + "After image viewer (image page)" => [ + 0 => "Після зображення (сторінка зображення)", + ], + "Before header (image page)" => [ + 0 => "Перед заголовком (сторінка зображення)", + ], + "After header (image page)" => [ + 0 => "Після заголовка (сторінка зображення)", + ], + "Footer (image page)" => [ + 0 => "Нижній колонтитул (сторінка зображення)", + ], + "Album page" => [ + 0 => "Сторінка альбому", + ], + "Before header (album page)" => [ + 0 => "Перед заголовком (сторінка альбому)", + ], + "After header (album page)" => [ + 0 => "Після заголовка (сторінка альбому)", + ], + "User profile page" => [ + 0 => "Профіль користувача", + ], + "After top (user profile)" => [ + 0 => "Після заголовка (профіль користувача)", + ], + "Before listing (user profile)" => [ + 0 => "Перед списком зображень (профіль користувача)", + ], + "Explore page" => [ + 0 => "Сторінка Огляд", + ], + "After top (explore page)" => [ + 0 => "Після заголовка (сторінка огляд)", + ], + "NSFW" => [ + 0 => "NSFW", + ], + "Invalid website name" => [ + 0 => "Некоректна назва сайту", + ], + "Invalid language" => [ + 0 => "Неправильна мова", + ], + "Invalid timezone" => [ + 0 => "Неправильний часовий пояс", + ], + "Invalid value: %s" => [ + 0 => "Некоректне значення: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Неправильний спосіб зберігання файлів.", + ], + "Invalid upload filenaming" => [ + 0 => "Неправильний метод зберігання імен файлів", + ], + "Invalid thumb width" => [ + 0 => "Неправильна ширина мініатюри", + ], + "Invalid thumb height" => [ + 0 => "Неправильна висота мініатюри", + ], + "Invalid medium size" => [ + 0 => "Неправильний середній розмір", + ], + "Invalid watermark percentage" => [ + 0 => "Неправильний відсоток водяного знаку", + ], + "Invalid watermark opacity" => [ + 0 => "Неправильна прозорість водяного знаку", + ], + "Invalid theme" => [ + 0 => "Неправильний стиль", + ], + "Invalid value" => [ + 0 => "Некоректне значення", + ], + "Invalid theme tone" => [ + 0 => "Неправильний стиль теми", + ], + "Invalid theme main color" => [ + 0 => "Неправильний основний колір теми", + ], + "Invalid theme top bar button color" => [ + 0 => "Неправильний колір кнопки верхньої панелі теми", + ], + "Invalid theme image listing size" => [ + 0 => "Неправильний розмір зображення для списків", + ], + "Invalid user id" => [ + 0 => "Неправильний ідентифікатор користувача", + ], + "Invalid email mode" => [ + 0 => "Неправильний режим електронної пошти", + ], + "Invalid SMTP port" => [ + 0 => "Неправильний SMTP порт", + ], + "Invalid SMTP security" => [ + 0 => "Неправильні налаштування безпеки SMTP сервера", + ], + "Invalid personal mode user ID" => [ + 0 => "Неправильний персональний режим користувача з ідентифікатором", + ], + "Invalid or reserved route" => [ + 0 => "Неправильний або зарезервований шлях", + ], + "Invalid website privacy mode" => [ + 0 => "Неправильний режим конфіденційності сайту", + ], + "Invalid website content privacy mode" => [ + 0 => "Неправильний режим видимості вмісту", + ], + "Invalid homepage style" => [ + 0 => "Неправильний стиль домашньої сторінки", + ], + "Invalid homepage call to action button color" => [ + 0 => "Неправильний колір кнопки виклику домашньої сторінки", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Неправильний виклик дії", + ], + "Invalid title" => [ + 0 => "Неправильна назва", + ], + "Invalid status" => [ + 0 => "Неправильний статус", + ], + "Invalid type" => [ + 0 => "Неправильний тип", + ], + "Invalid visibility" => [ + 0 => "Неправильна видимість", + ], + "Invalid target attribute" => [ + 0 => "Неправильний атрибут target", + ], + "Invalid rel attribute" => [ + 0 => "Неправильний атрибут rel", + ], + "Invalid icon" => [ + 0 => "Неправильнf іконка", + ], + "Invalid URL key" => [ + 0 => "Неправильний ключ посилання", + ], + "Invalid file path" => [ + 0 => "Неправильний шлях до файлу", + ], + "Invalid link URL" => [ + 0 => "Неправильне посилання URL", + ], + "Invalid user minimum age" => [ + 0 => "Неправильний мінімальний вік користувача", + ], + "Invalid URL" => [ + 0 => "Неправильне посилання", + ], + "Invalid upload image path" => [ + 0 => "Неправильна папка завантаження зображень", + ], + "Invalid call to action URL" => [ + 0 => "Неправильна дія для посилання", + ], + "Max. allowed %s" => [ + 0 => "Макс. дозволено %s", + ], + "Invalid SMTP server" => [ + 0 => "Неправильний SMTP сервер", + ], + "Invalid SMTP username" => [ + 0 => "Неправильне SMTP ім'я", + ], + "Invalid key" => [ + 0 => "Неправильний ключ", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "Це посилання вже використовується іншою сторінкою (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Цей шлях вже використовується іншою сторінкою (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "Не можливо зберегти вміст сторінки: %s.", + ], + "Following" => [ + 0 => "Слідувати", + ], + "About" => [ + 0 => "Інформація", + ], + "Image ID" => [ + 0 => "ID зображення", + ], + "Uploader IP" => [ + 0 => "IP автора", + ], + "Ban IP" => [ + 0 => "Блокування IP", + ], + "IP already banned" => [ + 0 => "IP адреса вже заблокована", + ], + "Upload date" => [ + 0 => "Дата завантаження", + ], + "Image %i in %a album" => [ + 0 => "Картинка %i в %a альбомі", + ], + "Image %i in %c category" => [ + 0 => "Картинка %i в %c категорії", + ], + "Image %i hosted in %w" => [ + 0 => "Картинка %i розміщена в %w", + ], + "Direct links" => [ + 0 => "Прямі посилання", + ], + "Image link" => [ + 0 => "Посилання ", + ], + "Image URL" => [ + 0 => "Пряме посилання", + ], + "Thumbnail URL" => [ + 0 => "Мініатюра", + ], + "Medium URL" => [ + 0 => "Середній розмір", + ], + "Full image" => [ + 0 => "Повне зображення", + ], + "Full image (linked)" => [ + 0 => "Повне зображення (посилання)", + ], + "Medium image (linked)" => [ + 0 => "Середнє зображення (посилання)", + ], + "Thumbnail image (linked)" => [ + 0 => "Мініатюрне зображення (посилання)", + ], + "Login needed" => [ + 0 => "Необхідний вхід", + ], + "IP address already banned" => [ + 0 => "IP адреса вже заблокована", + ], + "Missing values" => [ + 0 => "Відсутні значення", + ], + "Invalid role" => [ + 0 => "Неправильна роль", + ], + "Username already being used" => [ + 0 => "Користувач з таким ім'ям вже існує.", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Додайте пароль або інакше соц. підключення перед видаленням %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Додати електронну пошту або інше соц. підключення перед видаленням %s", + ], + "%s has been disconnected." => [ + 0 => "%s вимкнено.", + ], + "Test email from %s @ %t" => [ + 0 => "Тестовий лист від %s @ %t", + ], + "This is just a test" => [ + 0 => "Це всього лише тестове повідомлення", + ], + "Test email sent to %s." => [ + 0 => "Тестове повідомлення надіслано %s.", + ], + "User %s followed" => [ + 0 => "Користувач %s стежить", + ], + "User %s unfollowed" => [ + 0 => "Користувач %s не стежить", + ], + "Content liked" => [ + 0 => "Вміст сподобався", + ], + "Content disliked" => [ + 0 => "Вміст не сподобався", + ], + "%u liked your %t %c" => [ + 0 => "%u сподобалася ваша %t %c", + ], + "%u is now following you" => [ + 0 => "%u тепер стежить за вами", + ], + "Wrong Username/Email password combination" => [ + 0 => "Неправильне ім'я користувача або пароль", + ], + "Sign in" => [ + 0 => "Вхід", + ], + "Upload images" => [ + 0 => "Завантажити зображення", + ], + "Upload plugin" => [ + 0 => "Завантажити плагін", + ], + "Image search results for %s" => [ + 0 => "Результат пошуку картинки для %s", + ], + "Album search results for %s" => [ + 0 => "Результат пошуку альбома для %s", + ], + "User search results for %s" => [ + 0 => "Результат пошуку користувача для %s", + ], + "Account" => [ + 0 => "Акаунт", + ], + "Profile" => [ + 0 => "Профіль", + ], + "Linked accounts" => [ + 0 => "Пов'язані акаунти", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "На %s було надіслано повідомлення з інструкціями щодо активації", + ], + "Invalid name" => [ + 0 => "Неправильне ім'я", + ], + "Invalid website" => [ + 0 => "Неправильний веб-сайт", + ], + "Wrong password" => [ + 0 => "Неправильний пароль", + ], + "Use a new password" => [ + 0 => "Використайте новий пароль", + ], + "Changes have been saved." => [ + 0 => "Зміни збережені.", + ], + "Password has been changed" => [ + 0 => "Пароль успішно змінений", + ], + "Password has been created." => [ + 0 => "Пароль успішно створений.", + ], + "Wrong Username/Email values" => [ + 0 => "Неправильне ім'я користувача або email", + ], + "Settings for %s" => [ + 0 => "Налаштування %s", + ], + "Create account" => [ + 0 => "Створити обліковий запис", + ], + "Upload" => [ + 0 => "Завантаження", + ], + "%s's Images" => [ + 0 => "%s Зображень", + ], + "Results for" => [ + 0 => "Результати для", + ], + "Liked by %s" => [ + 0 => "Сподобалось %s", + ], + "Liked" => [ + 0 => "Сподобалось", + ], + "Followers" => [ + 0 => "Стежать", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) альбомів в %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) в %w", + ], + "Advanced search" => [ + 0 => "Розширений пошук", + ], + "Random" => [ + 0 => "Випадкове", + ], + "Notices (%s)" => [ + 0 => "Повідомлення (%s)", + ], + "Notifications" => [ + 0 => "Повідомлення", + ], + "You don't have notifications" => [ + 0 => "У Вас немає повідомлень", + ], + "My Profile" => [ + 0 => "Мій профіль", + ], + "Sign out" => [ + 0 => "Вийти", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Ми отримали запит на зміну адреси електронної пошти для вашого облікового запису <a href=\"%u\">%n</a> на %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Щоб завершити процес, ви повинні <a href=\"%s\">активувати</a> свою електронну пошту .", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Також ви можете скопіювати цю адресу і вставити її у вікно браузера: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Якщо ви не робили цього, просто ігноруйте це повідомлення.", + ], + "This request was made from IP: %s" => [ + 0 => "IP-адресу, з якої було зроблено запит:%s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Ми отримали запит на реєстрацію акаунта %n на %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Щоб завершити цю дію ви повинні <a href=\"%s\">активувати свій акаунт</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Ми отримали запит на скидання пароля вашого акаунта <a href=\"%u\">%n</a>.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Щоб скинути пароль, <a href=\"%s\">перейдіть за цим посиланням</a>", + ], + "Hi %n, welcome to %w" => [ + 0 => "Привіт, %n. Ласкаво просимо на %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Тепер, коли реєстрація завершена, ви можете насолоджуватися завантаженням зображень, створенням альбомів, зміною налаштувань видимості вмісту, а також багатьма іншими перевагами.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "До речі, ваша особиста сторінка розташована за адресою: <a href=\"%u\">%n</a>. Ви можете налаштувати її за своїм смаком. Вона ваша!", + ], + "Thank you for joining" => [ + 0 => "Спасибі за те, що ви з нами", + ], + "This email was sent from %w %u" => [ + 0 => "Це повідомлення було надіслане з %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Перетягніть або вставте зображення тут для відвантаження", + ], + "Select the images to upload" => [ + 0 => "Виберіть зображення для відвантаження", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Відредагувати або змінити розмір будь-якого зображення натиснувши на попередній перегляд", + ], + "Edit any image by touching the image preview" => [ + 0 => "Відредагувати будь-яке зображення натиснувши на попередній перегляд", + ], + "complete" => [ + 0 => "завершено", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Завантажується черга зображень. Це може зайняти деякий час.", + ], + "Upload complete" => [ + 0 => "Завантаження завершено", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "У процесі обробки запиту сталася помилка.", + ], + "Category" => [ + 0 => "Категорія", + ], + "Select category" => [ + 0 => "Виберіть категорію", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Помітити це зображення як невідповідне для сімейного перегляду", + ], + "Not family safe upload" => [ + 0 => "Небезпечний вміст", + ], + "Uploading" => [ + 0 => "Завантажується", + ], + "cancel remaining" => [ + 0 => "скасувати решту", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Увага: Деякі зображення не були завантажені.", + ], + "learn more" => [ + 0 => "детальніше", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Перевірте <a data-modal=\"simple\" data-target=\"failed-upload-result\">звіт про помилки</a> для отримання більш докладної інформації.", + ], + "reset" => [ + 0 => "скинути", + ], + "close" => [ + 0 => "закрити", + ], + "copy" => [ + 0 => "копіювати", + ], + "insert" => [ + 0 => "вставити", + ], + "Remove" => [ + 0 => "Видалити", + ], + "Title" => [ + 0 => "Заголовок", + ], + "optional" => [ + 0 => "Не обов'язково", + ], + "Resize image" => [ + 0 => "Змінити розмір зображення", + ], + "Width" => [ + 0 => "Ширина", + ], + "Height" => [ + 0 => "Висота", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Примітка: Анімовані GIF зображення не можуть міняти розмір", + ], + "Auto delete image" => [ + 0 => "Автоматичне видалення зображення", + ], + "Mark this if the image is not family safe" => [ + 0 => "Помітити це зображення як небезпечне", + ], + "Flag as unsafe" => [ + 0 => "Помітити як небезпечне", + ], + "Description" => [ + 0 => "Опис", + ], + "Brief description of this image" => [ + 0 => "Короткий опис зображення", + ], + "Add image URLs" => [ + 0 => "Додайте посилання на зображення", + ], + "Add the image URLs here" => [ + 0 => "Додайте сюди посилання на зображення", + ], + "Create album" => [ + 0 => "створити альбом", + ], + "existing album" => [ + 0 => "існуючий альбом", + ], + "Move to album" => [ + 0 => "Перемістити до альбому", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Виберіть існуючий альбом для переміщення завантаженого вмісту. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> і перемістити вміст в нього.", + ], + "Error report" => [ + 0 => "Звіт про помилки", + ], + "Viewer links" => [ + 0 => "Посилання на перегляд", + ], + "HTML Codes" => [ + 0 => "HTML коди", + ], + "HTML image" => [ + 0 => "HTML зображення", + ], + "HTML full linked" => [ + 0 => "HTML код оригіналу з посиланням", + ], + "HTML medium linked" => [ + 0 => "HTML середнього розміру з посиланням", + ], + "HTML thumbnail linked" => [ + 0 => "HTML код мініатюри з посиланням", + ], + "BBCodes" => [ + 0 => "BB-коди", + ], + "BBCode full" => [ + 0 => "BB-код оригіналу з посиланням", + ], + "BBCode full linked" => [ + 0 => "BB-код оригіналу з посиланням", + ], + "BBCode medium linked" => [ + 0 => "BB-код середнього розміру з посиланням", + ], + "BBCode thumbnail linked" => [ + 0 => "BB-код мініатюри з посиланням", + ], + "Markdown full" => [ + 0 => "Розмітка повна", + ], + "Markdown full linked" => [ + 0 => "Розмітка повна посилання", + ], + "Markdown medium linked" => [ + 0 => "Розмітка середня посилання", + ], + "Markdown thumbnail linked" => [ + 0 => "Розмітка мініатюрами посилання", + ], + "All these words" => [ + 0 => "Зі словами", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "Введіть ключові слова: слава україні героям слава", + ], + "This exact word or phrase" => [ + 0 => "Зі словосполученням", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "Укладіть словосполучення в лапки: \"слава україні\"", + ], + "None of these words" => [ + 0 => "Без слів", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "Поставте знак мінуса перед словами: -колір - \"український той\"", + ], + "Storage" => [ + 0 => "Сховище", + ], + "IP address" => [ + 0 => "IP адреса", + ], + "Album name" => [ + 0 => "Назва альбому", + ], + "move to existing album" => [ + 0 => "перемістити в існуючий", + ], + "Album description" => [ + 0 => "Опис альбому", + ], + "Brief description of this album" => [ + 0 => "Короткий опис цього альбому", + ], + "Album privacy" => [ + 0 => "Видимість альбому", + ], + "Who can view this content" => [ + 0 => "Хто може переглядати цей контент", + ], + "Private (just me)" => [ + 0 => "Приховане (тільки я)", + ], + "Private (anyone with the link)" => [ + 0 => "Приховане (тільки за посиланням)", + ], + "Private (password protected)" => [ + 0 => "Приватний (виявлено пароль)", + ], + "Name" => [ + 0 => "Ім'я", + ], + "Category name" => [ + 0 => "Назва категорії", + ], + "URL key" => [ + 0 => "Ключ для посилання", + ], + "Category URL key" => [ + 0 => "Ключ для посилання категорії", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "Тільки букви, цифри та дефіси", + ], + "Brief description of this category" => [ + 0 => "Короткий опис цьої категорії", + ], + "Untitled image" => [ + 0 => "Безіменне", + ], + "Path" => [ + 0 => "Шлях", + ], + "Expiration date" => [ + 0 => "Дата закінчення", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS", + ], + "Example" => [ + 0 => "Приклад", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "До якого часу ця IP-адреса буде заблокована? Залиште його порожнім для безтермінового блокування.", + ], + "Message" => [ + 0 => "Повідомлення", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Текстове повідомлення, HTML або перенаправлення URL", + ], + "Existing album" => [ + 0 => "Існуючий альбом", + ], + "create new album" => [ + 0 => "створити новий альбом", + ], + "Storage name" => [ + 0 => "Назва сховища", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Регіон", + ], + "Storage region" => [ + 0 => "Регіон сховища", + ], + "Storage bucket" => [ + 0 => "Корзина сховища", + ], + "Key" => [ + 0 => "Ключ", + ], + "Storage key" => [ + 0 => "Ключ сховища", + ], + "Secret" => [ + 0 => "Секретний ключ", + ], + "Storage secret" => [ + 0 => "Секретний ключ сховища", + ], + "Private key" => [ + 0 => "Приватний ключ", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON ключ", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Вам потрібно <a %s>обліковий запис служби</a> для цього", + ], + "Identity URL" => [ + 0 => "Ідентичне посилання", + ], + "Identity API endpoint" => [ + 0 => "Ідентична кінцева точка API", + ], + "API endpoint for OpenStack identity" => [ + 0 => "Кінцева точка API для ідентифікації в OpenStack", + ], + "Username" => [ + 0 => "Ім'я користувача", + ], + "Container" => [ + 0 => "Контейнер", + ], + "Storage container" => [ + 0 => "Сховище контейнера", + ], + "Tenant id" => [ + 0 => "Орендар ID", + ], + "Tenant id (account id)" => [ + 0 => "Орендар ID (акаунт ID)", + ], + "Tenant name" => [ + 0 => "Ім'я орендара", + ], + "Tenant name (account name)" => [ + 0 => "Орендар ім'я (ім'я облікового запису)", + ], + "Hostname or IP of the storage server" => [ + 0 => "Адреса або IP сервера", + ], + "Server path" => [ + 0 => "Шлях", + ], + "Server password" => [ + 0 => "Пароль", + ], + "Storage capacity" => [ + 0 => "Доступний простір", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Наприклад 20 GB, 1 TB і т. д.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Сховище буде відключився при досягненні цього ліміту. Залиште поле порожнім або вкажіть нуль для відключення ліміту.", + ], + "Storage URL" => [ + 0 => "Адреса сховища", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Система буде використовувати дану адресу при формуванні посилань на зображення з цього сховища.", + ], + "view more" => [ + 0 => "показати ще", + ], + "Load more" => [ + 0 => "Завантажити ще", + ], + "Select all" => [ + 0 => "виділити все", + ], + "Clear selection" => [ + 0 => "Зняти виділення", + ], + "Selection" => [ + 0 => "З виділеними", + ], + "Action" => [ + 0 => "Дія", + ], + "Get embed codes" => [ + 0 => "Отримати коди для вбудовування", + ], + "Assign category" => [ + 0 => "Присвоїти категорію", + ], + "Flag as safe" => [ + 0 => "Помітити як безпечне", + ], + "Sign in with another account" => [ + 0 => "Увійти через", + ], + "There's nothing to show here." => [ + 0 => "Немає елементів для відображення.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Всі зображення будуть поміщені в цей новий альбом. Ви також можете перемістити зображення в <a class=\"modal-switch\" data-switch=\"move-existing-album\">існуючий альбом</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Виберіть існуючий альбом, щоб перемістити зображення. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> і перемістити зображення в нього.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Виберіть існуючий альбом в який буде переміщено вміст. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> для цього вмісту.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Виберіть існуючий альбом, щоб перемістити зображення. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> і перемістити зображення в нього.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Вибрані зображення будуть переміщені в дану категорію.", + ], + "There is no categories." => [ + 0 => "Категорії не задані.", + ], + "Confirm flag content as safe" => [ + 0 => "Підтвердити позначку вмісту як безпечний", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Ви дійсно хочете помітити це вміст як безпечний?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Підтвердити позначку вмісту як небезпечний", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Ви дійсно хочете помітити це вміст як небезпечний?", + ], + "Confirm deletion" => [ + 0 => "Підтвердіть видалення", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити даний вміст? Ця дія є незворотня.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити всі виділені зображення? Ця дія є незворотня.", + ], + "Guest" => [ + 0 => "Гість", + ], + "Private album" => [ + 0 => "Приватний альбом", + ], + "From %s" => [ + 0 => "З альбому %s", + ], + "by %u" => [ + 0 => "by %u", + ], + "Toggle unsafe flag" => [ + 0 => "Переключити в небезпечне", + ], + "That page doesn't exist" => [ + 0 => "Такої сторінки не існує", + ], + "The requested page was not found." => [ + 0 => "Сторінку не знайдено", + ], + "Search something else" => [ + 0 => "Знайти щось ще", + ], + "The user has been deleted" => [ + 0 => "Користувач видалений", + ], + "Your account is almost ready" => [ + 0 => "Ваш обліковий запис майже готовий", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Інструкції з активації вашого аккаунта були відправлені на %s. Посилання для активації дійсне протягом 48 годин. Якщо ви не отримали повідомлення перевірте папку Спам.", + ], + "Resend activation" => [ + 0 => "Повторити відправку посилання для активації", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Ви успішно поміняли адресу електронної пошти на %s", + ], + "Go to my profile" => [ + 0 => "Перейти на мою сторінку", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "На вашу адресу буде надіслане посилання для активації облікового запису.", + ], + "Your email address" => [ + 0 => "Ваша адреса електронної пошти", + ], + "Submit" => [ + 0 => "Надіслати", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Інструкції по скиданню паролю були надіслані на вашу адресу. Якщо ви їх не отримали, перевірте папку Спам.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Вам вже було надіслано повідомлення з інструкціями щодо скидання пароля. Якщо ви не отримали повідомлення, перевірте папку Спам.", + ], + "Resend instructions" => [ + 0 => "Повторити відправку інструкцій", + ], + "Username or Email address" => [ + 0 => "Ім'я користувача або Email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Пароль успішно змінений. Ви можете увійти використовуючи ваш новий пароль.", + ], + "Login now" => [ + 0 => "Увійти зараз", + ], + "Enter your new password" => [ + 0 => "Введіть ваш новий пароль", + ], + "%d characters min" => [ + 0 => "мін. %d символів", + ], + "Re-enter your new password" => [ + 0 => "Підтвердіть новий пароль", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Інструкції по активації облікового запису були відправлені на %s . Якщо ви не отримали повідомлення, перевірте папку Спам.", + ], + "This content is private" => [ + 0 => "Цей контент приватний", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити цей альбом з усіма зображеннями? Ця дія є незворотньою.", + ], + "You like this" => [ + 0 => "Вам подобається це", + ], + "Album link" => [ + 0 => "Посилання на альбом", + ], + "I Agree" => [ + 0 => "Я погоджуюся", + ], + "Disk used" => [ + 0 => "Використано місця на диску", + ], + "Working" => [ + 0 => "Працює", + ], + "Paused" => [ + 0 => "Призупинено", + ], + "Canceled" => [ + 0 => "Скасовано", + ], + "Completed" => [ + 0 => "Завершено", + ], + "Actions" => [ + 0 => "Дії", + ], + "Reset" => [ + 0 => "Скинути", + ], + "Resume" => [ + 0 => "Відновити", + ], + "Errors" => [ + 0 => "Помилки", + ], + "Status" => [ + 0 => "Статус", + ], + "Cancel" => [ + 0 => "Скасувати", + ], + "Add user" => [ + 0 => "Додати користувача", + ], + "Role" => [ + 0 => "Роль", + ], + "Administrator" => [ + 0 => "Адміністратор", + ], + "Email address" => [ + 0 => "Адреса електронної пошти", + ], + "Add category" => [ + 0 => "Додати категорію", + ], + "Add IP ban" => [ + 0 => "Додати блокування по IP", + ], + "Add storage" => [ + 0 => "Додати сховище", + ], + "Return to pages" => [ + 0 => "Повернутись до сторінок", + ], + "Website name" => [ + 0 => "Назва сайту", + ], + "Website doctitle" => [ + 0 => "Заголовок сайту", + ], + "Website description" => [ + 0 => "Опис сайту", + ], + "Default time zone" => [ + 0 => "Часовий пояс за замовчуванням", + ], + "Select region" => [ + 0 => "Оберіть регіон", + ], + "guests" => [ + 0 => "гості", + ], + "Likes" => [ + 0 => "Вподобання", + ], + "Personal mode target user" => [ + 0 => "Особистий режим цільового користувача", + ], + "User ID" => [ + 0 => "ID користувача", + ], + "Your user id is: %s" => [ + 0 => "Ваш id користувача: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "Цифровий ідентифікатор цільового користувача для особистого режиму.", + ], + "Personal mode routing" => [ + 0 => "Особистий режим направлення", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "Звичайне перенаправлення з /ім'я-користувача в /кудась. Використовуйте \"/\" для направлення на домашню сторінку.", + ], + "Website privacy mode" => [ + 0 => "Режим конфіденційності сайту", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Приватний сайт буде доступний тільки для зареєстрованих користувачів.", + ], + "Content privacy mode" => [ + 0 => "Режим видимості вмісту", + ], + "Default" => [ + 0 => "За замовчуванням", + ], + "Force private (self)" => [ + 0 => "Приховані (тільки власник)", + ], + "Force private (anyone with the link)" => [ + 0 => "Приховані (тільки за посиланням)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "При включенні примусових режимів видимості, зазначені користувачами значення будуть проігноровані.", + ], + "Page title" => [ + 0 => "Заголовок сторінки", + ], + "Page status" => [ + 0 => "Статус сторінки", + ], + "Active page" => [ + 0 => "Активна сторінка", + ], + "Inactive page (%s)" => [ + 0 => "Не активна сторінка (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "Тільки активні сторінки будуть доступні", + ], + "Type" => [ + 0 => "Тип", + ], + "Page visibility" => [ + 0 => "Видимість сторінки", + ], + "Visible page" => [ + 0 => "Видима сторінка", + ], + "Hidden page" => [ + 0 => "Схована сторінка", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "Схована сторінка не буде відображатись у головному меню, але кожен зможе зайти на неї по посиланню", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "Тільки латинські букви і цифри, дефіс і коса риска", + ], + "File path" => [ + 0 => "Шлях до файлу", + ], + "A %f file relative to %s" => [ + 0 => "%f файл по відношенню до %s", + ], + "Meta keywords" => [ + 0 => "Мета ключові слова", + ], + "Meta description" => [ + 0 => "Мета опис", + ], + "Source code" => [ + 0 => "Код сторінки", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "Немає прав на запис в %s шляху, вам потрібно додати цей файл іншим редактором", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "Немає прав на запис в %s, вам потрібно відредагувати файл в зовнішньому редакторі", + ], + "Taken from: %s" => [ + 0 => "Взято з: %s", + ], + "Link URL" => [ + 0 => "Посилання URL", + ], + "Link target attribute" => [ + 0 => "Посилання атрибут", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "Виберіть %s щоб відкривати сторінку у новому вікні", + ], + "Link rel attribute" => [ + 0 => "Атрибут rel посилання", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "Тільки латинські букви і цифри, дефіси та пропуски", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt;%s атрибути", + ], + "Link icon" => [ + 0 => "Посилання на іконку", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "Перевірте <a %s>настройки іконки</a>", + ], + "Sort order display" => [ + 0 => "Порядок сортування", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "Порядок сортування сторінок для меню. Використовуйте \"1\" для вищого пріоритету", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити сторінку з ID %s? Це не можливо буде відмінити.", + ], + "Enable uploads" => [ + 0 => "Включити завантаження", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Увімкніть цю опцію, якщо ви хочете дозволити завантаження зображень. Цей параметр не впливає на адміністраторів.", + ], + "Guest uploads" => [ + 0 => "Гостьові завантаження", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Увімкніть цю опцію, якщо хочете дозволити завантажувати зображення незареєстрованим користувачам.", + ], + "Enable embed codes (uploader)" => [ + 0 => "Коди для вбудовування (у завантажувачі)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "Ввімкніть цю опцію, якщо ви хочете показувати коди для вбудовування після завершення завантаження.", + ], + "Enable expirable uploads" => [ + 0 => "Включити автовидалення для завантажень", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "Включіть це якщо ви хочете щоб були завантаження з автоматичним видалення зображень", + ], + "Image Exif data" => [ + 0 => "Exif дані зображення", + ], + "Keep" => [ + 0 => "Тримати", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "Виберіть налаштування для зображення <a %s>Exif дані</a> при загрузці", + ], + "Image Exif data (user setting)" => [ + 0 => "Exif дані зображення (налаштування)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "Включити, якщо ви хочете, щоб кожен користувач для налаштування зображення даних Exif були оброблені.", + ], + "Image path" => [ + 0 => "Шлях до зображень", + ], + "Relative to Chevereto root" => [ + 0 => "Відносно шляху до Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Де зберігати зображення? Щодо шляху до Chevereto.", + ], + "Storage mode" => [ + 0 => "Режим зберігання", + ], + "Datefolders" => [ + 0 => "Папки по датах", + ], + "Direct" => [ + 0 => "Прямий", + ], + "Datefolders creates %s structure" => [ + 0 => "\"Папки по датах\" створює структуру виду %s", + ], + "File naming method" => [ + 0 => "Назви файлів", + ], + "Original" => [ + 0 => "Оригінал", + ], + "Mix original + random" => [ + 0 => "Змішане оригінал + випадкове", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"Оригінал\" намагатиметься зберегти ім'я джерела зображення, а \"Випадкова\" буде генерувати випадкове ім'я. \"ID\" назве зображення так само, як зображення ID.", + ], + "Thumb size" => [ + 0 => "Розмір мініатюри", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Мініатюра буде обмежена цим розміром.", + ], + "Medium image fixed dimension" => [ + 0 => "Середній розмір зображення фіксований", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "Середні зображення будуть фіксовані до цього розміру. Для прикладу, якщо ви вибираєте \"ширина\", то розмір буде фіксованим і висота зображення будуть автоматично розраховані.", + ], + "Medium image fixed size" => [ + 0 => "Середнє зображення фіксованого розміру", + ], + "Width or height will be automatically calculated." => [ + 0 => "Ширина або висота будуть автоматично розраховані", + ], + "Watermarks" => [ + 0 => "Водяні знаки", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Увімкніть, щоб помістити логотип або будь-яке інше зображення на всі завантаження.", + ], + "Warning: Can't write in %s" => [ + 0 => "Увага: Не можу записати в %s", + ], + "Watermark user toggles" => [ + 0 => "Перемикач водяного знаку користувача", + ], + "Enable watermark on guest uploads" => [ + 0 => "Включити водяний знак для гостьових загрузок", + ], + "Enable watermark on user uploads" => [ + 0 => "Включити водяний знак для загрузок користувачів", + ], + "Enable watermark on admin uploads" => [ + 0 => "Включити водяний знак для загрузок адміністратора", + ], + "Watermark file toggles" => [ + 0 => "Перемикач водяних знаків", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "Включити водяний знак на GIF зображенні при загрузці", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "Мінімальний розмір файлу потрібний для встановлення водяного знаку", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "Зображення меньше за ... не буде ставитись водяний знак. Використовуйте 0 для того щоб не встановлювати мінімальний розмір зображення", + ], + "Watermark image" => [ + 0 => "Зображення захисного знаку", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "Ви отримаєте кращі результати з простих логотипів з тінню. Ви можете використовувати збільшене зображення, якщо розмір файлу не такий великий (рекомендується макс. 16KB). Повинно бути PNG.", + ], + "Watermark position" => [ + 0 => "Положення захисного знаку", + ], + "left top" => [ + 0 => "зліва зверху", + ], + "left center" => [ + 0 => "зліва по центру", + ], + "left bottom" => [ + 0 => "зліва знизу", + ], + "center top" => [ + 0 => "по центру зверху", + ], + "center center" => [ + 0 => "по центру", + ], + "center bottom" => [ + 0 => "по центру знизу", + ], + "right top" => [ + 0 => "праворуч зверху", + ], + "right center" => [ + 0 => "праворуч по центру", + ], + "right bottom" => [ + 0 => "праворуч знизу", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "Відносне положення захисного знаку. Першим вказано положення по горизонталі, другий по вертикалі.", + ], + "Watermark percentage" => [ + 0 => "Відсоток водяного знаку", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "Відношення розміру водяного знаку по відношенню до розміру картинки. Від 1 до 100.", + ], + "Watermark margin" => [ + 0 => "Поля захисного знаку", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Поля від кордону зображення до захисного знаку.", + ], + "Watermark opacity" => [ + 0 => "Прозорість захисного знаку", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "Прозорість захисного знаку при накладенні на зображення. Повинно бути в діапазоні від 0 до 100.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити категорію %s? Ця дія незворотня", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Замітка: Видалення категорії не спричинить за собою видалення зображень.", + ], + "Edit category" => [ + 0 => "Змінити категорію", + ], + "Expires" => [ + 0 => "Закінчення", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "Ви дійсно хочете зняти блокування IP %s ? Це не може бути скасовано.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "Заблокованій IP-адресі буде заборонено використовувати весь веб-сайт.", + ], + "Edit IP ban" => [ + 0 => "Редагувати блокування IP", + ], + "Enable signups" => [ + 0 => "Включити реєстрацію", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Увімкніть, щоб дозволити реєстрацію користувачів.", + ], + "Username routing" => [ + 0 => "Адресація користувачів", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Ввімкніть цю опцію, якщо ви хочете використовувати адреси профілів виду %s/ім'я_користувача замість %s/user/ім'я_користувача", + ], + "Require email confirmation" => [ + 0 => "Вимагати підтвердження електронної пошти", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Ввімкніть цю опцію, щоб вимагати підтвердження адреси електронної пошти при реєстрації.", + ], + "Require email for social signup" => [ + 0 => "Вимагати Email-адресу при реєстрації через соціальну мережу", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Ввімкніть цю опцію, якщо ви хочете, щоб користувачам, які реєструються через соціальні мережі, необхідно було вказувати адресу електронної пошти.", + ], + "User avatar max. filesize" => [ + 0 => "Аватар користувача макс. розмір файлу", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "Максимально дозволений розмір файлу для аватару користувача. (Макс. дозволено на сервері %s)", + ], + "User background max. filesize" => [ + 0 => "Фонове зображення сторінки користувача макс. розмір файлу", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "Максимально дозволений розмір файлу для фонового зображення сторінки користувача. (Макс. дозволено на сервері %s)", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Блокувати завантаження зображень по IP, якщо на підставі кількості завантажень, система виявить підозру на флуд. Цей параметр не впливає на адміністраторів.", + ], + "Notify to email" => [ + 0 => "Повідомити електронною поштою", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "При включенні цієї опції, система буде повідомляти про флуд-атаках поштою.", + ], + "Minute limit" => [ + 0 => "Завантаження за хвилину", + ], + "Hourly limit" => [ + 0 => "Завантаження за годину", + ], + "Daily limit" => [ + 0 => "Завантаження за день", + ], + "Weekly limit" => [ + 0 => "Завантаження за тиждень", + ], + "Monthly limit" => [ + 0 => "Завантаження за місяць", + ], + "Show not safe content in listings" => [ + 0 => "Показувати небезпечний зміст", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "Увімкніть, щоб відображати небезпечний зміст. Ця установка не впливає на адміністраторів і може бути скасована користувачем з власних настройок", + ], + "Blur NSFW content in listings" => [ + 0 => "Робити не чітким NSFW контент в списку", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "Включіть це, якщо хочете використовувати розмите зображення для NSFW контенту в списку", + ], + "Show banners in not safe content" => [ + 0 => "Показувати банери на сторінках з небезпечним змістом.", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "Увімкніть, якщо ви хочете показувати банери на сторінках з небезпечним змістом.", + ], + "Show not safe content in random mode" => [ + 0 => "Показувати небезпечне зміст в режимі випадкового зображення", + ], + "List items per page" => [ + 0 => "Елементів на сторінку", + ], + "How many items should be displayed per page listing." => [ + 0 => "Скільки зображень відображати на сторінку.", + ], + "List pagination mode" => [ + 0 => "Режим розбиття на сторінки", + ], + "Endless scrolling" => [ + 0 => "Нескінченна прокрутка", + ], + "Classic pagination" => [ + 0 => "Нумеровані сторінки", + ], + "What pagination method should be used." => [ + 0 => "Який спосіб розбиття на сторінки використовувати.", + ], + "Image listing size" => [ + 0 => "Розмір мініатюр в списку", + ], + "Fluid" => [ + 0 => "Адаптивний", + ], + "Fixed" => [ + 0 => "Фіксований", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "Обидва методи використовують фіксовану ширину, але в адаптивному методі, висота обчислюється із збереженням пропорцій зображення.", + ], + "Listing columns number" => [ + 0 => "Кількість колонок", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "Тут ви можете встановити, скільки стовпців використовуються на основі кожного цільового пристрою.", + ], + "Phone" => [ + 0 => "Телефон", + ], + "Phablet" => [ + 0 => "Фаблет", + ], + "Tablet" => [ + 0 => "Планшет", + ], + "Laptop" => [ + 0 => "Ноутбук", + ], + "Desktop" => [ + 0 => "ПК", + ], + "Put your themes in the %s folder" => [ + 0 => "Помістіть свої теми в папку %s", + ], + "Tone" => [ + 0 => "Стиль", + ], + "Light" => [ + 0 => "Світлий", + ], + "Dark" => [ + 0 => "Темний", + ], + "Main color" => [ + 0 => "Основний колір", + ], + "Hexadecimal color value" => [ + 0 => "Шістнадцяткове значення кольору", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "Використовуйте це, щоб встановити основну колірну тему. Значення має бути в <a href=\"%s\" target=\"_blank\">Hex форматі</a>.", + ], + "Top bar button color" => [ + 0 => "Колір кнопки верхньої панелі", + ], + "Blue" => [ + 0 => "Синій", + ], + "Green" => [ + 0 => "Зелений", + ], + "Orange" => [ + 0 => "Помаранчевий", + ], + "Red" => [ + 0 => "Червоний", + ], + "Grey" => [ + 0 => "Сірий", + ], + "Black" => [ + 0 => "Чорний", + ], + "White" => [ + 0 => "Білий", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "Колір кнопки \"Створити обліковий запис\" у верхній панелі кнопок .", + ], + "Enable vector logo" => [ + 0 => "Увімкнути векторний логотип", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Увімкніть векторний логотип для підвищення якості зображення на дисплеях з великою щільністю пікселів.", + ], + "Vector logo image" => [ + 0 => "Векторний логотип", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "Векторний логотип вашого сайту у форматі SVG.", + ], + "Raster logo image" => [ + 0 => "Растровий логотип", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Растровий логотип вашого сайту. Рекомендується використовувати формат PNG.", + ], + "Logo height" => [ + 0 => "Висота логотипу", + ], + "No value" => [ + 0 => "Немає значення", + ], + "Use this to set the logo height if needed." => [ + 0 => "Використовуйте це поле, якщо необхідно вказати висоту логотипу.", + ], + "Favicon image" => [ + 0 => "Іконка сайту", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Іконка вашого сайту. Ширина і висота даного зображення повинні бути однакові.", + ], + "Enable download button" => [ + 0 => "Включити кнопку завантаження", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Увімкніть, щоб показувати кнопку завантаження зображення.", + ], + "Enable right click on image" => [ + 0 => "Включити меню правої клавіши миші на зображенні", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "Включіть це, якщо Ви хочете дозволити меню правої клавіши миші", + ], + "Enable show Exif data" => [ + 0 => "Включити показ Exif даних", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "Включіть це, якщо ви хочете показувати Exif дані.", + ], + "Enable social share" => [ + 0 => "Увімкнути опцію \"поділитися\"", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Ввімкніть цю опцію, щоб показувати кнопки соціальних мереж.", + ], + "Enable embed codes (content)" => [ + 0 => "Коди для вбудовування (в перегляді)", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Ввімкніть цю опцію, якщо ви хочете показувати коди для вбудовування в перегляді зображень.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "Показувати у завантажувачі настройку для небезпечного змісту", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "Увімкніть, щоб дати користувачам можливість вказувати безпеку зображення при завантаженні.", + ], + "Custom CSS code" => [ + 0 => "Власний CSS", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Вставте сюди ваш власний CSS код. Він буде вставлений за допомогою тега <style> перед закриваючим тегом </head>", + ], + "Custom JS code" => [ + 0 => "Власний JS", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Вставте сюди ваш власний JS код. Він буде вставлений за допомогою тега <script> перед закриваючим тегом </head>", + ], + "Style" => [ + 0 => "Стиль", + ], + "Landing page" => [ + 0 => "Стартова сторінка", + ], + "Split landing + images" => [ + 0 => "Стартова сторінка + зображення", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "Виберіть стиль головної сторінки. Щоб налаштувати його відредагуйте app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "Зображення обкладинки", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити дане зображення? Ця дія є незворотньою", + ], + "Delete image" => [ + 0 => "Видалити зображення", + ], + "Vector version or your website logo in SVG format (only for homepage)." => [ + 0 => "Векторна версія логотипу вашого сайту у SVG форматі (тільки для домашньої сторінки)", + ], + "Bitmap version or your website logo (only for homepage). PNG format is recommended." => [ + 0 => "Растрова версія логотипу вашого сайту у PNG форматі (тільки для домашньої сторінки)", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "Це буде додано в середину домашньої сторінки %s як тег. Залиште поле пустим, якщо ви хочете використати дані по-замовчуванню", + ], + "Paragraph" => [ + 0 => "Пункт", + ], + "Call to action button color" => [ + 0 => "Колір кнопки дії", + ], + "Color of the homepage call to action button." => [ + 0 => "Колір кнопки переходу на домашню сторінку", + ], + "Call to action outline style button" => [ + 0 => "Контур кнопки для дії", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "Включіть це, щоб використовувати стиль обведення кнопки загрузки на стартовій сторінці.", + ], + "Call to action functionality" => [ + 0 => "Заклик до дії", + ], + "Trigger uploader" => [ + 0 => "Трігери завантаження", + ], + "Open URL" => [ + 0 => "Відкрити посилання", + ], + "Call to action URL" => [ + 0 => "Дія для посилання", + ], + "Enter an absolute or relative URL" => [ + 0 => "Введіть абсолютне або відносне посилання", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "Відносне посилання як %r буде відображено в %l", + ], + "Call to action HTML" => [ + 0 => "Дія для HTML", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "Це буде додано в дію для тега <a>. Залиште це поле порожнім, щоб використовувати вміст за замовчуванням.", + ], + "User IDs" => [ + 0 => "ID користувача", + ], + "Minify code" => [ + 0 => "Мінімізувати код", + ], + "Enable this if you want to auto minify CSS and JS code." => [ + 0 => "Включіть це, якщо ви хочете автоматично мінімізувати CSS та JS код.", + ], + "Maintenance" => [ + 0 => "Обслуговування", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "При включенні, відображає на сайті повідомлення про технічне обслуговування. Ця установка не впливає на адміністраторів.", + ], + "Crypt salt" => [ + 0 => "Криптографічна сіль", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Ця сіль використовується для перетворення цифрових ID в літерні. Вона була створена при установці.", + ], + "PHP error reporting" => [ + 0 => "Звіти про помилки PHP", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "Увімкніть це, якщо ви хочете щоб показувало помилки PHP <a %s>error_reporting()</a>. По замовчуванню це відключено.", + ], + "Debug level" => [ + 0 => "Рівень налагодження", + ], + "None" => [ + 0 => "Ні", + ], + "Error log" => [ + 0 => "Журнал помилок", + ], + "Print errors without error log" => [ + 0 => "Друк помилок без журналу помилок", + ], + "Print and log errors" => [ + 0 => "Друк і журнал помилок", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "Щоб налаштувати рівень налагодження перевірте <a %s>документацію по налагодженню</a>. Рівень за замовчуванням є \"Журнал помилок\" (1).", + ], + "Default language" => [ + 0 => "Мова за замовчуванням", + ], + "Default base language to use." => [ + 0 => "Використовується за замовчуванням мова.", + ], + "Auto language" => [ + 0 => "Автоматичний вибір мови", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "Включити це, якщо ви хочете, щоб автоматично виявлялась і встановлювалась правильна мова для кожного користувача.", + ], + "Language chooser" => [ + 0 => "Вибір мови", + ], + "Enable this if you want to allow language selection." => [ + 0 => "Ввімкніть це, якщо хочете дозволити вибір мови", + ], + "Enabled languages" => [ + 0 => "Дозволені мови", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "Не відзначені мови не будуть використовуватись на вашому сайті.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "Змініть цю настройку щоб включити або відключити HTTPS", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "Змініть цю настройку щоб включити або відключити це сховище", + ], + "Quota" => [ + 0 => "Квота", + ], + "Active" => [ + 0 => "Активне", + ], + "Storage method" => [ + 0 => "Тип сховища", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "Локальне сховище використовується за замовчуванням або за відсутності активних зовнішніх сховищ.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "Якщо вам потрібна допомога зверніться до <a %s>документації</a>.", + ], + "Edit storage" => [ + 0 => "Змінити", + ], + "From name" => [ + 0 => "Відправник", + ], + "Sender name for emails sent to users." => [ + 0 => "Ім'я відправника для розсилки повідомлень користувачам.", + ], + "Email mode" => [ + 0 => "Режим електронної пошти", + ], + "How to send emails? SMTP recommended." => [ + 0 => "Як відправляти повідомлення? Рекомендується використовувати SMTP.", + ], + "SMTP server and port" => [ + 0 => "SMTP сервер та порт", + ], + "SMTP server" => [ + 0 => "SMTP сервер", + ], + "SMTP username" => [ + 0 => "Ім'я користувача SMTP", + ], + "SMTP password" => [ + 0 => "Пароль SMTP", + ], + "SMTP security" => [ + 0 => "Безпека SMTP", + ], + "Unsecured" => [ + 0 => "Небезпечний", + ], + "Send test email" => [ + 0 => "Надіслати тестове повідомлення", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "Використовуйте це тестове повідомлення для перевірки доставки пошти, Ми рекомендуємо використовувати %s.", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Для цього вам необхідні <a href=\"https://developers.facebook.com/\" target=\"_blank\"> інструменти розробника Facebook</a>.", + ], + "Facebook app id" => [ + 0 => "ID Facebook app", + ], + "Facebook app secret" => [ + 0 => "Секрет Facebook app", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "Для цього вам необхідні <a href=\"https://apps.twitter.com\" target=\"_blank\">інструменти розробника Twitter</a>.", + ], + "Twitter API key" => [ + 0 => "Ключ Twitter API", + ], + "Twitter API secret" => [ + 0 => "Секрет Twitter API", + ], + "Twitter account" => [ + 0 => "Акаунт в Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Для цього вам необхідні <a href=\"https://cloud.google.com/console\" target=\"_blank\"> інструменти розробника Google</a>.", + ], + "Google client id" => [ + 0 => "ID клиента Google", + ], + "Google client secret" => [ + 0 => "Секрет клієнта Google", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "Для цього вам необхідні <a href=\"http://vk.com/dev\" target=\"_blank\">інструменти розробника ВКонтакті</a>.", + ], + "VK client id" => [ + 0 => "Для ID клієнта ВКонтакті", + ], + "VK client secret" => [ + 0 => "Секретний ключ клієнта ВКонтакті", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Для цього вам необхідний <a href=\"%s\" target=\"_blank\">ключ reCAPTCHA</a>.", + ], + "reCAPTCHA threshold" => [ + 0 => "Поріг спрацьовування reCAPTCHA", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "Після скількох невдалих спроб потрібно використовувати reCAPTCHA ? Використовуйте нуль (0), щоб завжди показувати reCAPTCHA.", + ], + "Comment code" => [ + 0 => "Код для системи коментарів", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook або будь-яка система на ваш вибір. Вона буде використана при перегляді зображення.", + ], + "Analytics code" => [ + 0 => "Код для збору статистики", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics або система збору статистики на ваш вибір. Цей код буде додано до \"підвал\" теми.", + ], + "For documentation about the API check the <a %s>API documentation</a>" => [ + 0 => "Документація по API доступна за адресою <a %s>API документація</a>", + ], + "API v1 key" => [ + 0 => "Ключ API v1", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "Використовуйте цей ключ для <a %s>API v1</a>.", + ], + "Cookie law compliance" => [ + 0 => "Дотримання правил куків", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "Цей параметр використовується для відображення повідомлення, що відповідає вимогам законодавства ЄС про куки. Примітка: Вам потрібно тільки це, якщо ваш сайт розміщений в ЄС, і якщо ви додали відстеження куків.", + ], + "Save changes" => [ + 0 => "Зберегти зміни", + ], + "Check the errors to proceed." => [ + 0 => "Перед тим як продовжити, перевірте правильність заповнення.", + ], + "Added to %a and categorized in %c" => [ + 0 => "Додано до %a в категорію %c", + ], + "Added to %s" => [ + 0 => "Додано до %s", + ], + "Uploaded to %s" => [ + 0 => "Завантажені в %s", + ], + "Uploaded %s" => [ + 0 => "Завантажено %s", + ], + "Less Exif data" => [ + 0 => "Менше даних Exif", + ], + "More Exif data" => [ + 0 => "Більше даних Exif", + ], + "Share image" => [ + 0 => "Поділитися", + ], + "Album ID" => [ + 0 => "ID альбома", + ], + "In this album" => [ + 0 => "У цьому альбомі", + ], + "Upload and share your images." => [ + 0 => "Завантажуйте і діліться зображеннями.", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "Перетягніть зображення яке Ви хочете загрузити в будь-яке місце і почніть завантажувати свої картинки. %s обмеження на один файл. Прямі посилання зображення, BBCode і HTML мініатюри.", + ], + "Start uploading" => [ + 0 => "Почати завантаження", + ], + "Sign up to unlock all the features" => [ + 0 => "Зареєструватися, щоб отримати більше можливостей.", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Керуйте аккаунтом, створюйте альбоми, змінюйте свій профіль і багато іншого.", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "У вас ще немає акаунта? <a href='%s'>Зареєструйтесь</a> зараз.", + ], + "Logged out" => [ + 0 => "Вийти", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Успішний вихід з системи. До нових зустрічей на %s.", + ], + "Go to homepage" => [ + 0 => "Головна", + ], + "Website under maintenance" => [ + 0 => "Сайт на обслуговуванні", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "Ми виконуємо планові роботи з технічного обслуговування на веб-сайті. Будь ласка, поверніться до нас трошки пізніше", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "У вас немає прав на доступ до даної сторінки або посилання застаріло.", + ], + "Search results" => [ + 0 => "Результати пошуку", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Ви дійсно хочете видалити даного користувача? Ця дія є незворотньою.", + ], + "Delete user" => [ + 0 => "Видалити користувача", + ], + "Register date" => [ + 0 => "Дата реєстрації", + ], + "Registration IP" => [ + 0 => "IP при реєстрації", + ], + "Valid" => [ + 0 => "Підтверджений", + ], + "Banned" => [ + 0 => "Забанений", + ], + "Awaiting email" => [ + 0 => "Чекає повідомлення", + ], + "Awaiting confirmation" => [ + 0 => "В черзі", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "від %i до %f знаків<br>Букви, цифри і \"_\"", + ], + "Auto delete uploads" => [ + 0 => "Автоматичне видалення завантажень", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "Ця установка буде діяти у всіх ваших завантаження зображень за замовчуванням. Ви можете перевизначити цей параметр на кожне завантаження.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "Залишити налаштування для зображення <a %s>Exif дані</a> при загрузці", + ], + "Newsletter" => [ + 0 => "Інформаційна розсилка", + ], + "Send me emails with news about %s" => [ + 0 => "Посилати мені листи з новинами про %s", + ], + "Content settings" => [ + 0 => "Налаштування контенту", + ], + "Show not safe content in listings (from others)" => [ + 0 => "Показувати небезпечний зміст (від інших)", + ], + "Language" => [ + 0 => "Мова", + ], + "Timezone" => [ + 0 => "Часовий пояс", + ], + "Current password" => [ + 0 => "Поточний пароль", + ], + "Enter your current password" => [ + 0 => "Введіть ваш поточний пароль", + ], + "New password" => [ + 0 => "Новий пароль", + ], + "Confirm new password" => [ + 0 => "Повторіть новий пароль", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Додайте пароль, щоб мати можливість входити з використанням імені користувача або адреси електронної", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "У цього користувача не встановлений пароль. Додайте його через дану форму.", + ], + "Enter your password" => [ + 0 => "Введите ваш пароль", + ], + "Confirm password" => [ + 0 => "Підтвердіть пароль", + ], + "Re-enter your password" => [ + 0 => "Повторіть пароль", + ], + "Upload new image" => [ + 0 => "Завантажити зображення", + ], + "Delete existing image" => [ + 0 => "Видалити", + ], + "This is your real name, not your username." => [ + 0 => "Це ваше справжнє ім'я, а не ім'я користувача.", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "Біографія", + ], + "Tell us a little bit about you" => [ + 0 => "Розкажіть нам трошки про себе", + ], + "User has no connections." => [ + 0 => "У користувача немає зв'язків з іншими акаунтами.", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Ви дійсно хочете відв'язати %s від цього аккаунта?", + ], + "This account is connected to %s" => [ + 0 => "Цей акаунт пов'язаний з %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Ви дійсно хочете відв'язати ваш аккаунт %s?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Буде виконаний вихід із системи і ви більше не зможете входити через акаунт %s.", + ], + "Your account is connected to %s" => [ + 0 => "Ваш аккаунт пов'язаний з %s", + ], + "disconnect" => [ + 0 => "відв'язати", + ], + "Connect %s" => [ + 0 => "Пов'язати %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Не соромтеся, щоб переглянути всі мої завантажені зображення та альбоми.", + ], + "Button" => [ + 0 => "Кнопка", + ], + "View all my images" => [ + 0 => "Переглянути всі мої зображення", + ], + "resend account activation" => [ + 0 => "Повторити відправку посилання для активації", + ], + "Upload profile background" => [ + 0 => "Завантажити фон профілю", + ], + "Change background" => [ + 0 => "Змінити фон", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "Фон профілю буде видалений. Ви дійсно хочете видалити фон профілю?", + ], + "Delete background" => [ + 0 => "Видалити фон", + ], + "Follower" => [ + 0 => "Послідовник", + ], + "Follow" => [ + 0 => "Слідкувати", + ], + "You have been forbidden to use this website." => [ + 0 => "Вам заборонено користуватися цим сайтом.", + ], + "Plugin" => [ + 0 => "Плаґін", + ], + "General questions/comments" => [ + 0 => "Загальні питання / коментарі", + ], + "DMCA complaint" => [ + 0 => "DMCA скарга", + ], + "Invalid message" => [ + 0 => "Неправильне повідомлення", + ], + "Invalid subject" => [ + 0 => "Неправильна тема", + ], + "Mail error" => [ + 0 => "Помилка електронної пошти", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Повідомлення надіслано. Ми зв'яжемося найближчим часом.", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Якщо ви продовжите, всі зроблені вами зміни будуть втрачені.", + ], + "Changes saved successfully." => [ + 0 => "Зміни успішно збережені.", + ], + "Go back to form" => [ + 0 => "Повернуться до форми", + ], + "continue anyway" => [ + 0 => "все одно продовжити", + ], + "Saving" => [ + 0 => "збереження", + ], + "Sending" => [ + 0 => "Відправка", + ], + "Confirm action" => [ + 0 => "Підтвердіть дію", + ], + "information" => [ + 0 => "інформація", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/vi.po.cache.php b/app/.cache/languages/vi.po.cache.php new file mode 100644 index 0000000..430e4bb --- /dev/null +++ b/app/.cache/languages/vi.po.cache.php @@ -0,0 +1,2360 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2020-09-02 17:16+0000', + 'PO-Revision-Date' => '2020-09-02 17:16+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'vi', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "Email không hợp lệ", + ], + "Invalid username" => [ + 0 => "Sai tên tài khoản", + ], + "Invalid password" => [ + 0 => "Sai mật khẩu", + ], + "Invalid website mode" => [ + 0 => "Chế độ website bị sai", + ], + "From email address" => [ + 0 => "Địa chỉ email gửi", + ], + "Sender email for emails sent to users." => [ + 0 => "Email người gửi để gửi email đến người dùng", + ], + "Incoming email address" => [ + 0 => "Có thư tới", + ], + "Recipient for contact form and system alerts." => [ + 0 => "Email để nhận cho đơn liên lạc và báo động hệ thống", + ], + "Website mode" => [ + 0 => "Chế độ website", + ], + "You can switch the website mode anytime." => [ + 0 => "Bạn có thể đổi chế độ website bất cứ lúc nào.", + ], + "Community" => [ + 0 => "Cộng đồng", + ], + "Personal" => [ + 0 => "Cá nhân", + ], + "Installed version is v%s" => [ + 0 => "Phiên bản đã cài là v%s", + ], + "Can't connect to %s" => [ + 0 => "Không thể kết nối tới %s\n", + ], + "Last available release is v%s" => [ + 0 => "Phiên bản hiện tại v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "Cập nhật cần thiết, tiến hành tải xuống\n", + ], + "No update needed" => [ + 0 => "Không có cập nhật\n", + ], + "System files already up to date" => [ + 0 => "Các file hệ thống đã cập nhật", + ], + "Starting v%s download" => [ + 0 => "Bắt đầu tải xuống v%s ", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "Đã tải xuống v%s, đang tiến hành giải nén", + ], + "Attempting to extract v%s" => [ + 0 => "Đang giải nén v%s\n", + ], + "Extraction completed" => [ + 0 => "Giải nén thành công", + ], + "Proceding to install the update" => [ + 0 => "Tiến hành cài đặt bản cập nhật", + ], + "Update failed" => [ + 0 => "Cập nhật thất bại", + ], + "Update in progress" => [ + 0 => "Đang tiến hành cập nhật", + ], + "Missing %s file" => [ + 0 => "Thiếu file %s", + ], + "Invalid license info" => [ + 0 => "Thông tin bản quyền không hợp lệ", + ], + "Invalid license key" => [ + 0 => "Mã key bản quyền không hợp lệ", + ], + "Can't save file" => [ + 0 => "Không thể lưu tệp", + ], + "Can't download %s" => [ + 0 => "Không thể tải xuống %s", + ], + "Can't extract %s" => [ + 0 => "Không thể trích xuất %s", + ], + "Can't create %s directory - %e" => [ + 0 => "Không thể tạo thư mục %s - %e", + ], + "Can't update %s file - %e" => [ + 0 => "Không thể cập nhật file %s - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "Kiểm tra lỗi trong biểu mẫu để tiếp tục.", + ], + "You must enter the album name." => [ + 0 => "Bạn phải đặt tên album.", + ], + "Confirm" => [ + 0 => "Xác nhận", + ], + "Select existing album" => [ + 0 => "Chọn album sẵn có", + ], + "An error occurred. Please try again later." => [ + 0 => "Có lỗi xảy ra, hãy quay lại sau.", + ], + "Please select a valid image file type." => [ + 0 => "Hãy chọn loại ảnh phù hợp", + ], + "Please select a picture of at most %s size." => [ + 0 => "Hãy chọn dung lượng ảnh tối đa %s", + ], + "Profile image updated." => [ + 0 => "Hình đại diện đã cập nhật", + ], + "Profile background image updated." => [ + 0 => "Hình nền cá nhân đã cập nhật.", + ], + "Profile background image deleted." => [ + 0 => "Hình nền cá nhân đã xóa.", + ], + "Error deleting profile background image." => [ + 0 => "Xóa hình nền bị lỗi.", + ], + "Passwords don't match" => [ + 0 => "Mật khẩu không khớp", + ], + "Update available v%s" => [ + 0 => "Cập nhật có sẵn v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "Có bản cập nhật mới cho hệ thống của bạn. Bạn có thể tự động tải xuống và cài đặt bản cập nhật này hoặc truy cập %s để tải file xuống", + ], + "The release notes for this update are:" => [ + 0 => "Chú ý cho bản cập nhật này là:", + ], + "Update now" => [ + 0 => "Cập nhật ngay", + ], + "or" => [ + 0 => "hoặc", + ], + "cancel" => [ + 0 => "hủy", + ], + "This website is running latest %s version" => [ + 0 => "Website này đang chạy phiên bản %s mới nhất", + ], + "loading" => [ + 0 => "đang tải", + ], + "Toggle select" => [ + 0 => "Chọn chuyển đổi", + ], + "Like" => [ + 0 => "Thích", + ], + "Edit" => [ + 0 => "Sửa", + ], + "Album" => [ + 0 => "Albums", + ], + "Delete" => [ + 0 => "Xóa", + ], + "Close" => [ + 0 => "Đóng", + ], + "Previous" => [ + 0 => "Trước", + ], + "Next" => [ + 0 => "Tiếp", + ], + "Clipboard image" => [ + 0 => "Lưu tạm ảnh", + ], + "File too big." => [ + 0 => "Hình quá lớn", + ], + "Invalid or unsupported file format." => [ + 0 => "Định dạng tệp không hợp lệ hoặc không được hỗ trợ.", + ], + "Some files couldn't be added" => [ + 0 => "Một số tệp không thêm được.", + ], + "image" => [ + 0 => "ảnh", + ], + "%s's Albums" => [ + 0 => "Album của %s", + ], + "Image edited successfully." => [ + 0 => "Sửa ảnh thành công.", + ], + "private" => [ + 0 => "riêng tư", + ], + "Album edited successfully." => [ + 0 => "Sửa album thành công.", + ], + "Invalid URL key." => [ + 0 => "Khóa URL không hợp lệ.", + ], + "Category URL key already being used." => [ + 0 => "Khóa URL của danh mục đã được sử dụng.", + ], + "Category successfully deleted." => [ + 0 => "Danh mục đã xóa thành công ", + ], + "Category %s added." => [ + 0 => "Danh mục %s đã thêm.", + ], + "Invalid expiration date." => [ + 0 => "Ngày hết hạn không hợp lệ.\n", + ], + "IP %s already banned." => [ + 0 => "IP %s đã bị cấm.", + ], + "IP %s banned." => [ + 0 => "IP %s bị cấm.", + ], + "IP ban successfully deleted." => [ + 0 => "Bỏ cấm IP thành công.", + ], + "Please fill all the required fields." => [ + 0 => "Vui lòng điền vào tất cả các vùng bắt buộc.", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "Sức chứa dung lượng lưu trữ không hợp lệ. Hãy đảm bảo sử dụng định dạng hợp lệ.\n", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "Dung lượng lưu trữ không thể thấp hơn hiện tại đang sử dụng (%s)", + ], + "Invalid URL." => [ + 0 => "URL không hợp lệ.", + ], + "Storage successfully edited." => [ + 0 => "Đã chỉnh sửa kho lưu trữ thành công.", + ], + "User added successfully." => [ + 0 => "Thêm người dùng thành công.", + ], + "The content has been deleted." => [ + 0 => "Nội dung đã bị xóa", + ], + "The content has been moved." => [ + 0 => "Nội dung đã được di chuyển.", + ], + "Select" => [ + 0 => "Chọn", + ], + "Unselect" => [ + 0 => "Bỏ chọn", + ], + "The content has been edited." => [ + 0 => "Nội dung đã được chỉnh sửa.", + ], + "Spam detected" => [ + 0 => "Phát hiện Spam", + ], + "album" => [ + 0 => "album", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "Phát hiện spam. Bạn chỉ có thể tải lên %limit% %content% trong %time%", + ], + "Untitled" => [ + 0 => "Chưa đặt tên", + ], + "%s's images" => [ + 0 => "Ảnh của %s", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "Lưu ý: Nội dung này là riêng tư, nhưng bất kỳ ai có địa chỉ liên kết đều sẽ có thể vào xem.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "Lưu ý: Nội dung này được bảo vệ bằng mật khẩu. Hãy nhớ cho mật khẩu của nội dung khi chia sẻ.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "Nội dung này ở chế độ riêng tư. Đổi sang chế độ \"công khai\" để chia sẻ.", + ], + "Private" => [ + 0 => "Riêng tư", + ], + "Public" => [ + 0 => "Công cộng", + ], + "Me" => [ + 0 => "Tôi", + ], + "Link" => [ + 0 => "Liên kết", + ], + "Password" => [ + 0 => "Mật khẩu", + ], + "view" => [ + 0 => "lượt xem", + ], + "After %n %t" => [ + 0 => "Sau %n %t", + ], + "minute" => [ + 0 => "phút", + ], + "hour" => [ + 0 => "giờ", + ], + "day" => [ + 0 => "ngày", + ], + "week" => [ + 0 => "tuần", + ], + "month" => [ + 0 => "tháng", + ], + "year" => [ + 0 => "năm", + ], + "Don't autodelete" => [ + 0 => "Đừng tự động xoá", + ], + "Duplicated upload" => [ + 0 => "Upload trùng", + ], + "Private upload" => [ + 0 => "Đăng ảnh bí mật", + ], + "like" => [ + 0 => "thích", + ], + "Recent" => [ + 0 => "Gần đây", + ], + "Trending" => [ + 0 => "Xu hướng", + ], + "Top users" => [ + 0 => "Top người dùng", + ], + "Most recent" => [ + 0 => "Gần đây nhất", + ], + "Oldest" => [ + 0 => "Cũ nhất", + ], + "Most viewed" => [ + 0 => "Xem nhiều nhất", + ], + "Popular" => [ + 0 => "Phổ biến", + ], + "Most liked" => [ + 0 => "Được thích nhiều nhất", + ], + "Explore" => [ + 0 => "Khám phá ảnh", + ], + "Animated" => [ + 0 => "Ảnh động", + ], + "Search" => [ + 0 => "Tìm kiếm", + ], + "People" => [ + 0 => "Mọi người", + ], + "Image" => [ + 0 => "Ảnh", + ], + "User" => [ + 0 => "Người dùng", + ], + "Can't create %s destination dir" => [ + 0 => "Không thể tạo %s đường dẫn đích", + ], + "Can't open %s for writing" => [ + 0 => "Không thể mở %s để sửa", + ], + "Internal" => [ + 0 => "Nội bộ", + ], + "Can't insert storage." => [ + 0 => "Không thể chèn vào kho lưu trữ.", + ], + "Can't update storage details." => [ + 0 => "Không thể cập nhật chi tiết kho lưu trữ.", + ], + "requires %s" => [ + 0 => "đòi hỏi %s\n", + ], + "Unlimited" => [ + 0 => "Không giới hạn", + ], + "used" => [ + 0 => "đã dùng", + ], + "Private profile" => [ + 0 => "Hồ sơ bí mật", + ], + "second" => [ + 0 => "giây", + ], + "%s ago" => [ + 0 => "cách đây %s", + ], + "moments ago" => [ + 0 => "mới đây", + ], + "Dashboard" => [ + 0 => "Bảng chính", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "Đã có sẵn bản cập nhật cho hệ thống của bạn. Đi tới %s để tải xuống và cài đặt bản cập nhật này.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "Hệ thống dữ liệu đã cũ. Bạn cần phải chạy công cụ <a href=\"%s\">cập nhật</a>.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "Website đang bảo trì. Để tắt chế độ này vui lòng vào <a href=\"%s\">Dashboard > Settings</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "Bạn nên tắt báo cáo lỗi PHP . Truy cập <a href='%s'> Cài đặt hệ thống</a> để hoàn tác cài đặt này.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "Bạn chưa thay đổi cài đặt email mặc định. Truy cập <a href='%s'>Cài đặt Email </a> để khắc phục sự cố này.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Đã có sẵn bản cập nhật cho trang Chevereto của bạn.", + ], + "admin dashboard" => [ + 0 => "bảng điều khiển ", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "Bạn có thể áp dụng cập nhật này trực tiếp từ %a của bạn hoặc tải nó từ %s và sau đó tự cài đặt nó.", + ], + "view on %s" => [ + 0 => "xem trên %s\n", + ], + "cookie policy" => [ + 0 => "chính sách cookie", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "Chúng tôi sử dụng cookie của mình và các bên thứ ba để tối ưu hoá trải nghiệm người dùng của bạn cũng như các dịch vụ của mình. Nếu bạn tiếp tục truy cập website, đồng nghĩa với việc bạn hiểu và chấp nhận %cookie_policy_link.", + ], + "I understand" => [ + 0 => "Tôi hiểu", + ], + "Forgot password?" => [ + 0 => "Quên mật khẩu?", + ], + "Reset password" => [ + 0 => "Tạo lại mật khẩu", + ], + "Resend account activation" => [ + 0 => "Gửi lại mã kích hoạt", + ], + "Add your email address" => [ + 0 => "Thêm email của bạn", + ], + "Email changed" => [ + 0 => "Email đã đổi", + ], + "%s says you are a robot" => [ + 0 => "%s cho rằng bạn là robot", + ], + "Invalid Username/Email" => [ + 0 => "Sai Tên / Email", + ], + "User doesn't have an email." => [ + 0 => "Người dùng chưa có email", + ], + "Request denied" => [ + 0 => "Yêu cầu bị từ chối", + ], + "Account needs to be activated to use this feature" => [ + 0 => "Phải kích hoạt tài khoản để dùng tính năng này", + ], + "Account already activated" => [ + 0 => "Tài khoản đã kích hoạt", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "Hãy đợi email trong vòng 15 phút. Hoặc bạn có thể thử lại sau.", + ], + "Reset your password at %s" => [ + 0 => "Tạo lại mật khẩu lúc %s", + ], + "Confirmation required at %s" => [ + 0 => "Xác nhận yêu cầu lúc %s", + ], + "Welcome to %s" => [ + 0 => "Chào mừng %s", + ], + "Email already being used" => [ + 0 => "Email đã sử dụng", + ], + "Password required" => [ + 0 => "Yêu cầu mật khẩu", + ], + "Share" => [ + 0 => "Chia sẻ", + ], + "Embed codes" => [ + 0 => "Mã nhúng", + ], + "Full info" => [ + 0 => "Thông tin đầy đủ", + ], + "%a album hosted in %w" => [ + 0 => "%a album được chia sẻ tại %w", + ], + "Stats" => [ + 0 => "Thống kê", + ], + "Images" => [ + 0 => "Ảnh", + ], + "Albums" => [ + 0 => "Albums", + ], + "Users" => [ + 0 => "Người dùng", + ], + "Settings" => [ + 0 => "Cài đặt", + ], + "Bulk importer" => [ + 0 => "Công cụ import số lượng lớn", + ], + "Chevereto version" => [ + 0 => "Phiên bản Chevereto", + ], + "install update" => [ + 0 => "cài đặt cập nhật", + ], + "check for updates" => [ + 0 => "kiểm tra cập nhật", + ], + "Support" => [ + 0 => "Hỗ trợ", + ], + "Need help? Go to %s and you will get help quickly." => [ + 0 => "Cần giúp đỡ? Đi tới %s và bạn sẽ nhận được trợ giúp nhanh chóng.", + ], + "PHP version" => [ + 0 => "Phiên bản PHP", + ], + "Server" => [ + 0 => "Máy chủ", + ], + "MySQL version" => [ + 0 => "Phiên bản MySQL", + ], + "MySQL server info" => [ + 0 => "Thông tin MySQL server", + ], + "GD Library" => [ + 0 => "Thư viện GD", + ], + "File uploads" => [ + 0 => "Ảnh upload", + ], + "Enabled" => [ + 0 => "Đã bật", + ], + "Disabled" => [ + 0 => "Đã tắt", + ], + "Max. upload file size" => [ + 0 => "Tập tin tải lên tối đa", + ], + "Max. post size" => [ + 0 => "Dung lượng đăng tối đa", + ], + "Max. execution time" => [ + 0 => "Thời gian thi hành tối đa", + ], + "%d second" => [ + 0 => "%d giây", + ], + "Memory limit" => [ + 0 => "Giới hạn bộ nhớ", + ], + "Links" => [ + 0 => "Đường dẫn", + ], + "Documentation" => [ + 0 => "Tài liệu", + ], + "Changelog" => [ + 0 => "Nhật ký thay đổi", + ], + "Bug tracking" => [ + 0 => "Theo dõi lỗi", + ], + "Website" => [ + 0 => "Website", + ], + "Content" => [ + 0 => "Nội dung", + ], + "Pages" => [ + 0 => "Trang", + ], + "Listings" => [ + 0 => "Danh sách", + ], + "Image upload" => [ + 0 => "Hình upload", + ], + "Categories" => [ + 0 => "Chuyên mục", + ], + "Consent screen" => [ + 0 => "Màn hình ban đầu", + ], + "Flood protection" => [ + 0 => "Flood protection", + ], + "Theme" => [ + 0 => "Giao diện", + ], + "Homepage" => [ + 0 => "Trang chủ", + ], + "Banners" => [ + 0 => "Banners", + ], + "System" => [ + 0 => "Hệ thống", + ], + "Routing" => [ + 0 => "Routing", + ], + "Languages" => [ + 0 => "Ngôn ngữ", + ], + "External storage" => [ + 0 => "Nguồn lưu trữ ngoài", + ], + "Email" => [ + 0 => "Email", + ], + "Social networks" => [ + 0 => "Mạng xã hội", + ], + "External services" => [ + 0 => "Dịch vụ bên ngoài", + ], + "IP bans" => [ + 0 => "Chặn IP", + ], + "Additional settings" => [ + 0 => "Thiết lập khác", + ], + "Tools" => [ + 0 => "Công cụ", + ], + "Can't delete all homepage cover images" => [ + 0 => "Không thể xoá tất cả ảnh trang chủ", + ], + "Homepage cover image deleted" => [ + 0 => "Ảnh đại diện trang chủ đã được xoá", + ], + "Local" => [ + 0 => "Local", + ], + "External" => [ + 0 => "Bên ngoài", + ], + "All" => [ + 0 => "Tất cả", + ], + "search content" => [ + 0 => "nội dung tìm kiếm", + ], + "Add page" => [ + 0 => "Thêm trang", + ], + "Edit page ID %s" => [ + 0 => "Chỉnh sửa page ID %s", + ], + "The page has been added successfully." => [ + 0 => "Trang được thêm vào thành công", + ], + "The page has been deleted." => [ + 0 => "Trang đã được xoá", + ], + "homepage" => [ + 0 => "trang chủ", + ], + "Before main title (%s)" => [ + 0 => "Trước tiêu đề chính (%s)", + ], + "After call to action (%s)" => [ + 0 => "Sau nút CTA (%s)", + ], + "After cover (%s)" => [ + 0 => "Sau ảnh (%s)", + ], + "After listing (%s)" => [ + 0 => "Sau danh sách (%s)", + ], + "Before pagination" => [ + 0 => "Trước phân trang", + ], + "After pagination" => [ + 0 => "Phía sau phân trang", + ], + "Content (image and album)" => [ + 0 => "Nội dung (trong xem ảnh và album)", + ], + "Tab about column" => [ + 0 => "Tab cột giới thiệu", + ], + "Before comments" => [ + 0 => "Phía dưới bình luận", + ], + "Image page" => [ + 0 => "Tranh hình ảnh", + ], + "Inside viewer top (image page)" => [ + 0 => "Trong phần trên của trình duyệt ảnh (trang xem ảnh)", + ], + "Inside viewer foot (image page)" => [ + 0 => "Trong phần chân của trình duyệt ảnh (trang xem ảnh)", + ], + "Before header (image page)" => [ + 0 => "Trước đầu trang (trang ảnh)", + ], + "Album page" => [ + 0 => "Trang album", + ], + "User profile page" => [ + 0 => "Trang thông tin thành viên", + ], + "Explore page" => [ + 0 => "Trang khám phá", + ], + "NSFW" => [ + 0 => "Ảnh nhạy cảm", + ], + "Invalid website name" => [ + 0 => "Tên web bị sai", + ], + "Invalid language" => [ + 0 => "Sai ngôn ngữ", + ], + "Invalid timezone" => [ + 0 => "Sai múi giờ", + ], + "Invalid value: %s" => [ + 0 => "Giá trị không hợp lệ: %s", + ], + "Invalid upload storage mode" => [ + 0 => "Sai chế độ lưu trữ", + ], + "Invalid upload filenaming" => [ + 0 => "Đặt tên upload sai", + ], + "Invalid thumb width" => [ + 0 => "Chiều rộng thumb bị sai", + ], + "Invalid thumb height" => [ + 0 => "Chiều cao thumb bị sai", + ], + "Invalid medium size" => [ + 0 => "Kích thước trung bình không hợp lệ", + ], + "Invalid watermark percentage" => [ + 0 => "Phần trăm vị trí của ảnh đóng dấu không hợp lệ", + ], + "Invalid watermark opacity" => [ + 0 => "Chỉ số trong suốt của ảnh đóng dấu không hợp lệ", + ], + "Invalid theme" => [ + 0 => "Sai theme", + ], + "Invalid value" => [ + 0 => "Sai giá trị", + ], + "Invalid theme tone" => [ + 0 => "sai tông màu", + ], + "Invalid theme main color" => [ + 0 => "sai màu chính", + ], + "Invalid theme top bar button color" => [ + 0 => "Sai màu nút trên topbar", + ], + "Invalid theme image listing size" => [ + 0 => "sai size của danh sách hình ảnh", + ], + "Invalid user id" => [ + 0 => "User ID không tồn tại", + ], + "Invalid email mode" => [ + 0 => "Sai chế độ email", + ], + "Invalid SMTP port" => [ + 0 => "Sai cổng SMTP", + ], + "Invalid SMTP security" => [ + 0 => "Sai bảo mật SMTP", + ], + "Invalid personal mode user ID" => [ + 0 => "ID người dùng chế độ cá nhân không hợp lệ", + ], + "Invalid website privacy mode" => [ + 0 => "Chế độ bảo mật website không hợp lệ", + ], + "Invalid website content privacy mode" => [ + 0 => "sai chết độ riêng tư", + ], + "Invalid homepage style" => [ + 0 => "sai style trang chủ", + ], + "Invalid homepage call to action button color" => [ + 0 => "Sai màu của nút nhấp trên trang chủ", + ], + "Invalid homepage call to action functionality" => [ + 0 => "Hàm gọi hành động trên homepage không hợp lệ", + ], + "Invalid title" => [ + 0 => "Tiêu đề không hợp lệ", + ], + "Invalid type" => [ + 0 => "nhập không hợp lệ", + ], + "Invalid visibility" => [ + 0 => "Hiển thị không hợp lệ", + ], + "Invalid rel attribute" => [ + 0 => "Thuộc tính rel không hợp lệ", + ], + "Invalid icon" => [ + 0 => "icon không hợp lệ", + ], + "Invalid URL key" => [ + 0 => "URL key không hợp lệ", + ], + "Invalid file path" => [ + 0 => "Đường dẫn file không hợp lệ", + ], + "Invalid link URL" => [ + 0 => "URL liên kết không hợp lệ", + ], + "Invalid user minimum age" => [ + 0 => "Độ tuổi tối thiểu của người dùng không hợp lệ", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "Chỉ chữ cái a-z, dấu gạch dưới và kí tự gạch ngang được chấp nhận", + ], + "Invalid URL" => [ + 0 => "Sai URL", + ], + "Invalid upload image path" => [ + 0 => "Sai đường dẫn ảnh upload", + ], + "Invalid call to action URL" => [ + 0 => "Địa chỉ đường dẫn của nút CTA không chính xác", + ], + "Max. allowed %s" => [ + 0 => "Cho phép tối đa %s", + ], + "Invalid SMTP server" => [ + 0 => "Sai máy chủ SMTP", + ], + "Invalid SMTP username" => [ + 0 => "Sai tên người dùng SMTP", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "URL key này đã được một trang khác sử dụng (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "Đường dẫn file này đã được một trang khác sử dụng (ID %s)", + ], + "About" => [ + 0 => "Giới thiệu", + ], + "Image ID" => [ + 0 => "ID ảnh", + ], + "Uploader IP" => [ + 0 => "IP người up", + ], + "Ban IP" => [ + 0 => "ban IP", + ], + "IP already banned" => [ + 0 => "Những IP đã ban", + ], + "Upload date" => [ + 0 => "Ngày tải lên", + ], + "Image %i in %a album" => [ + 0 => "ảnh %i trong %a album", + ], + "Image %i in %c category" => [ + 0 => "Ảnh %i trong %c chuyên mục", + ], + "Image %i hosted in %w" => [ + 0 => "Ảnh %i lưu trữ tại %w", + ], + "Direct links" => [ + 0 => "Link trực tiếp", + ], + "Image link" => [ + 0 => "Link ảnh", + ], + "Image URL" => [ + 0 => "URL ảnh", + ], + "Thumbnail URL" => [ + 0 => "URL ảnh thumbnail", + ], + "Medium URL" => [ + 0 => "URL ảnh trung bình", + ], + "Full image" => [ + 0 => "Ảnh gốc", + ], + "Full image (linked)" => [ + 0 => "Ảnh gốc (có liên kết)", + ], + "Medium image (linked)" => [ + 0 => "Ảnh cỡ vừa (có liên kết)", + ], + "Thumbnail image (linked)" => [ + 0 => "Ảnh thu nhỏ (có liên kết)", + ], + "Login needed" => [ + 0 => "Cần đăng nhập", + ], + "IP address already banned" => [ + 0 => "Địa chỉ IP đã bị cấm", + ], + "Missing values" => [ + 0 => "Thiếu dữ liệu", + ], + "Username already being used" => [ + 0 => "Tên tài khoản đã có người sử dụng", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "Nhập mật khẩu hoặc kết nối mạng xã hội khác trước khi xoá %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "Nhập email hoặc kết nối mạng xã hội khác trước khi xoá %s", + ], + "%s has been disconnected." => [ + 0 => "%s đã bị ngắt", + ], + "Test email from %s @ %t" => [ + 0 => "Email kiểm tra từ %s @ %t", + ], + "This is just a test" => [ + 0 => "Đây chỉ là nội dung kiểm tra", + ], + "Test email sent to %s." => [ + 0 => "Email kiểm tra đã gửi đến %s.", + ], + "Downloading %s data" => [ + 0 => "Đang tải %s dữ liệu", + ], + "User %s followed" => [ + 0 => "Người dùng %s quan tâm", + ], + "User %s unfollowed" => [ + 0 => "Người dùng %s bỏ theo dõi", + ], + "Content liked" => [ + 0 => "Đã like", + ], + "Content disliked" => [ + 0 => "Đã disliked", + ], + "%u liked your %t %c" => [ + 0 => "%u đã thích %t %c của bạn", + ], + "%u is now following you" => [ + 0 => "%u quan tâm ảnh của bạn", + ], + "A private user" => [ + 0 => "Người dùng RIêng tư", + ], + "Wrong Username/Email password combination" => [ + 0 => "Tên người dùng hoặc mật khẩu bị sai", + ], + "Sign in" => [ + 0 => "Đăng nhập", + ], + "Upload images" => [ + 0 => "Upload ảnh", + ], + "Upload plugin" => [ + 0 => "Upload plugin", + ], + "Image search results for %s" => [ + 0 => "Kết quả tìm kiếm hình ảnh cho truy vấn: %s", + ], + "Album search results for %s" => [ + 0 => "Kết quả tìm kiếm Album cho truy vấn: %s", + ], + "User search results for %s" => [ + 0 => "Kết quả tìm kiếm người dùng cho truy vấn: %s", + ], + "Account" => [ + 0 => "Tài khoản", + ], + "Profile" => [ + 0 => "Hồ sơ cá nhân", + ], + "Linked accounts" => [ + 0 => "Các tài khoản liên kết", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "Một email đã được gửi đến %s với hướng dẫn kích hoạt", + ], + "Invalid name" => [ + 0 => "Sai tên", + ], + "Invalid website" => [ + 0 => "Sai trang web", + ], + "Wrong password" => [ + 0 => "Sai mật khẩu", + ], + "Use a new password" => [ + 0 => "Cần dùng mật khẩu mới", + ], + "Changes have been saved." => [ + 0 => "Đã lưu thay đổi", + ], + "Password has been changed" => [ + 0 => "Đã đổi mật khẩu", + ], + "Password has been created." => [ + 0 => "Đã tạo mật khẩu", + ], + "Wrong Username/Email values" => [ + 0 => "Tên người dùng/Email không chính xác", + ], + "Settings for %s" => [ + 0 => "Thiết lập cho %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "Bạn phải đồng ý với các điều khoản và chính sách bảo mật", + ], + "You must be at least %s years old to use this website." => [ + 0 => "Bạn phải có ít nhất %s tuổi để sử dụng website này", + ], + "Create account" => [ + 0 => "Đăng kí", + ], + "Upload" => [ + 0 => "Upload", + ], + "%s's Images" => [ + 0 => "Ảnh của %s", + ], + "Results for" => [ + 0 => "Kết quả cho", + ], + "Liked by %s" => [ + 0 => "Được thích bởi %s", + ], + "Liked" => [ + 0 => "Đã thích", + ], + "Followers" => [ + 0 => "Người quan tâm", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) albums trên %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) trên %w", + ], + "Discovery" => [ + 0 => "Khám phá", + ], + "Advanced search" => [ + 0 => "Tìm kiếm nâng cao", + ], + "Random" => [ + 0 => "Hình ngẫu nhiên", + ], + "Notices (%s)" => [ + 0 => "Thông báo (%s)", + ], + "Notifications" => [ + 0 => "Thông báo", + ], + "You don't have notifications" => [ + 0 => "Bạn chưa có thông báo nào", + ], + "My Profile" => [ + 0 => "Thông tin cá nhân", + ], + "Sign out" => [ + 0 => "Thoát", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "Chúng tôi nhận được yêu cầu thay đổi email <a href=\"%u\">%n</a> tài khoản của bạn tại %w.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "Để hoàn tất vui lòng <a href=\"%s\">kích hoạt email</a>.", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "Hoặc bạn có thê copy đoạn URL sau và dán vào thanh địa chỉ của trình duyệt để kích hoạt: <a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "Nếu bạn không có ý định này, chỉ cần bỏ qua thông báo này.", + ], + "This request was made from IP: %s" => [ + 0 => "Yêu cầu này xuất phát từ IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "Chúng tôi nhận được yêu cầu tạo tài khoản %n tại %w.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "Để hoàn tất vui lòng <a href=\"%s\">kích hoạt tài khoản</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "Chúng tôi nhận được yêu cầu khôi phục mật khẩu cho tài khoản <a href=\"%u\">%n</a> của bạn.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "Để reset lại mật khẩu xin vui lòng <a href=\"%s\">click vào link này</a>.", + ], + "Hi %n, welcome to %w" => [ + 0 => "Xin chào %n, rất vui khi bạn đến với %w", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "Tài khoản của bạn đã được kích hoạt thành công. Hãy bắt đầu upload ảnh của bạn, tạo album, set chế độ riêng tư hoặc công cộng cho hình ảnh của bạn và hàng đống chức năng khác đang chờ bạn khám phá.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "Nhân tiện, đây là trang cá nhân tuyệt vời của bạn: <a href=\"%u\">%n</a>. Hãy tiếp tục tùy chỉnh, nó là của bạn !.", + ], + "Thank you for joining" => [ + 0 => "Cảm ơn bạn đã tham gia với chúng tôi.", + ], + "This email was sent from %w %u" => [ + 0 => "Email này được gửi từ %w %u", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "Kéo thả hoặc paste (Ctrl + V) ảnh vào đây để upload", + ], + "Select the images to upload" => [ + 0 => "Chọn ảnh để upload", + ], + "browse from your computer" => [ + 0 => "tải lên từ máy tính", + ], + "add image URLs" => [ + 0 => "thêm địa chỉ ảnh", + ], + "You can also %i or %u." => [ + 0 => "Bạn có thể %i hoặc %u.", + ], + "browse from your device" => [ + 0 => "tải từ thiết bị", + ], + "take a picture" => [ + 0 => "chụp ảnh", + ], + "You can also %i, %c or %u." => [ + 0 => "Bạn còn có thể %i, %c hoặc %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "Sửa hoặc chỉnh cỡ bất kì ảnh nào bởi nhấp vào xem thử", + ], + "Edit any image by touching the image preview" => [ + 0 => "Sửa bất kì ảnh nào bởi chạm vào xem thử", + ], + "your computer" => [ + 0 => "máy tính của bạn", + ], + "You can add more images from %i or %u." => [ + 0 => "Bạn có thể thêm nhiều ảnh nữa từ %i hoặc %u.", + ], + "your device" => [ + 0 => "thiết bị của bạn", + ], + "Uploading %q %o" => [ + 0 => "Đang tải lên %q %o", + ], + "complete" => [ + 0 => "Hoàn tất", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "Danh sách đang được tải lên, nó có thể mất đôi chút thời gian để hoàn thành.", + ], + "Upload complete" => [ + 0 => "Upload xong rồi!", + ], + "Uploaded content added to %s." => [ + 0 => "Đã tải nội dung lên %s.", + ], + "create a new album" => [ + 0 => "tạo album mới", + ], + "move it to an existing album" => [ + 0 => "chuyển nó đến album đã có sẵn", + ], + "create an account" => [ + 0 => "tạo tài khoản", + ], + "sign in" => [ + 0 => "đăng nhập", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "Có lỗi xảy ra, hệ thống không thể xử lý yêu cầu vừa rồi của bạn.", + ], + "Category" => [ + 0 => "Danh sách", + ], + "Select category" => [ + 0 => "Chọn danh sách", + ], + "Mark this if the upload is not family safe" => [ + 0 => "Stick chọn cái này nếu tải lên là ảnh 18+. Không sẽ bị xoá không thương tiếc mà không cần báo trước nhé!!!", + ], + "Not family safe upload" => [ + 0 => "Đây là hình ảnh nhạy cảm hoặc18+", + ], + "Uploading" => [ + 0 => "Đang đăng", + ], + "cancel remaining" => [ + 0 => "Ngưng upload những ảnh còn lại", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "Lưu ý: Một số ảnh không được upload.", + ], + "learn more" => [ + 0 => "xem tiếp", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "Chọn <a data-modal=\"simple\" data-target=\"failed-upload-result\">thông báo lỗi</a> để biết thêm chi tiết.", + ], + "reset" => [ + 0 => "reset", + ], + "close" => [ + 0 => "đóng", + ], + "copy" => [ + 0 => "sao chép", + ], + "insert" => [ + 0 => "chèn", + ], + "Title" => [ + 0 => "Tiêu đề", + ], + "optional" => [ + 0 => "không bắt buộc", + ], + "Resize image" => [ + 0 => "Chỉnh kích thước ảnh", + ], + "Width" => [ + 0 => "Bề rộng", + ], + "Height" => [ + 0 => "Chiều cao", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "Lưu ý: Ảnh động dạng gif sẽ không được resize.", + ], + "Auto delete image" => [ + 0 => "Tự động xoá ảnh", + ], + "Sign up" => [ + 0 => "Đăng ký", + ], + "Mark this if the image is not family safe" => [ + 0 => "Stick chọn cái này nếu tải lên là ảnh 18+. Không sẽ bị xoá không thương tiếc mà không cần báo trước nhé!!!", + ], + "Flag as unsafe" => [ + 0 => "Đánh dấu 18+", + ], + "Description" => [ + 0 => "Chú thích", + ], + "Brief description of this image" => [ + 0 => "Mô tả ảnh", + ], + "Add image URLs" => [ + 0 => "Thêm URLs ảnh", + ], + "Add the image URLs here" => [ + 0 => "Thêm URLs ảnh vào đây", + ], + "Create album" => [ + 0 => "Tạo Album", + ], + "Move to album" => [ + 0 => "Chuyển vào Album", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "Chọn Album sẵn có để chuyển ảnh vào. Hoặc có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo Album mới</a> rồi chuyển hình ảnh vừa upload vào.", + ], + "Error report" => [ + 0 => "Thông báo lỗi", + ], + "Viewer links" => [ + 0 => "Link người xem", + ], + "HTML Codes" => [ + 0 => "Mã HTML", + ], + "HTML medium linked" => [ + 0 => "HTML medium linked", + ], + "HTML thumbnail linked" => [ + 0 => "HTML thumbnail linked", + ], + "BBCodes" => [ + 0 => "BBCodes", + ], + "BBCode full" => [ + 0 => "Nhúng diễn đàn BBCode", + ], + "BBCode full linked" => [ + 0 => "Nhúng diễn đàn BBCode kèm liên kết", + ], + "BBCode medium linked" => [ + 0 => "BBCode medium linked", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode thumbnail linked", + ], + "Storage" => [ + 0 => "Lưu trữ", + ], + "IP address" => [ + 0 => "Địa chỉ IP", + ], + "Album name" => [ + 0 => "Tên Album", + ], + "move to existing album" => [ + 0 => "chuyển vào Album sẵn có", + ], + "Album description" => [ + 0 => "Chú thích cho album", + ], + "Brief description of this album" => [ + 0 => "Mô tả tóm tắt của album này", + ], + "Who can view this content" => [ + 0 => "Ai xem được nội dung này", + ], + "Private (just me)" => [ + 0 => "Riêng tư (chỉ bạn thấy)", + ], + "Private (anyone with the link)" => [ + 0 => "Riêng tư (Có link sẽ xem được)", + ], + "Name" => [ + 0 => "Tên", + ], + "Category name" => [ + 0 => "Tên của danh sách", + ], + "URL key" => [ + 0 => "Từ khóa URL", + ], + "Category URL key" => [ + 0 => "Từ khóa URL của danh sách", + ], + "Brief description of this category" => [ + 0 => "Mô tả tóm tắt của danh sách này", + ], + "Path" => [ + 0 => "Đường dẫn", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "Đến ngày nào sẽ cấm IP này? để trống nếu muốn không thời hạn", + ], + "Message" => [ + 0 => "Nội dung", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "Tin nhắn Text, HTML hoặc URL chuyển hướng", + ], + "Existing album" => [ + 0 => "Album hiện có", + ], + "create new album" => [ + 0 => "tạo album mới", + ], + "Storage name" => [ + 0 => "Tên bộ nhớ", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "Khu vực", + ], + "Storage region" => [ + 0 => "Storage region", + ], + "Storage bucket" => [ + 0 => "Storage bucket\n", + ], + "Key" => [ + 0 => "Key", + ], + "Storage key" => [ + 0 => "Storage key", + ], + "Secret" => [ + 0 => "Secret", + ], + "Storage secret" => [ + 0 => "Storage secret", + ], + "Private key" => [ + 0 => "Private key", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON key", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "Bạn cần một <a %s>service account</a> cho việc này", + ], + "Service name" => [ + 0 => "Service name", + ], + "Identity URL" => [ + 0 => "Identity URL", + ], + "Identity API endpoint" => [ + 0 => "Identity API endpoint", + ], + "API endpoint for OpenStack identity" => [ + 0 => "API endpoint for OpenStack identity", + ], + "Username" => [ + 0 => "Tên tài khoản", + ], + "Container" => [ + 0 => "Container", + ], + "Storage container" => [ + 0 => "Storage container", + ], + "Tenant id" => [ + 0 => "Tenant id", + ], + "Tenant id (account id)" => [ + 0 => "Tenant id (account id)", + ], + "Tenant name" => [ + 0 => "Tenant name", + ], + "Tenant name (account name)" => [ + 0 => "Tenant name (account name)", + ], + "Hostname or IP of the storage server" => [ + 0 => "Hostname or IP of the storage server", + ], + "Server path" => [ + 0 => "Đường dẫn Server", + ], + "Server password" => [ + 0 => "Server password", + ], + "Storage capacity" => [ + 0 => "Storage capacity", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "Ví dụ: 20 GB, 1 TB, v.v.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "Bộ nhớ sẽ bị disabled khi nó đạt đến dung lượng này. Để trống hoặc điền 0 nếu không giới hạn.", + ], + "Storage URL" => [ + 0 => "Storage URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "Hệ thống sẽ sử dụng địa chỉ này khi tạo link đến hình ảnh từ storage này.", + ], + "view more" => [ + 0 => "xem thêm", + ], + "Load more" => [ + 0 => "Hiện thêm", + ], + "Select all" => [ + 0 => "Chọn tất cả", + ], + "Clear selection" => [ + 0 => "Bỏ chọn", + ], + "Selection" => [ + 0 => "Lựa chọn", + ], + "Action" => [ + 0 => "Hành động", + ], + "Get embed codes" => [ + 0 => "Tạo mã nhúng", + ], + "Flag as safe" => [ + 0 => "Ảnh an toàn", + ], + "Create new album" => [ + 0 => "Tạo album mới", + ], + "Sign in with another account" => [ + 0 => "Đăng nhập với tài khoản khác", + ], + "There's nothing to show here." => [ + 0 => "Không có gì để hiện.", + ], + "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." => [ + 0 => "Hình đã chuyển đến album mới tạo. Bạn cố thể chuyển hình đến <a class=\"modal-switch\" data-switch=\"move-existing-album\">album hiện có</a>.", + ], + "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." => [ + 0 => "Chọn album để chuyển hình đến đó. Bạn có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo album mới</a> và chuyển hình đến đó.", + ], + "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." => [ + 0 => "Chọn album để chuyển nội dung. Bạn còn có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo album mới</a> và chuyển hình đến đó.", + ], + "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." => [ + 0 => "Chọn album để chuyển hình đến đó. Bạn có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo album mới</a> và chuyển hình đến đó.", + ], + "All the selected images will be assigned to this category." => [ + 0 => "Tất cả hình ảnh được chọn sẽ được gán cho danh mục này.", + ], + "There is no categories." => [ + 0 => "Không có danh mục nào.", + ], + "Confirm flag content as safe" => [ + 0 => "Xác nhận đánh dấu hình ảnh an toàn", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "Chắc chán muốn đánh dấu hình ảnh an toàn?", + ], + "Confirm flag content as unsafe" => [ + 0 => "Xác nhận đánh dấu hình ảnh 18+", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "Chắc chán muốn đánh dấu hình ảnh 18+?", + ], + "Confirm deletion" => [ + 0 => "Xác nhận xóa", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "Bạn có thực sự muốn xóa nội dung này? Việc này không thể hoàn tác.", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "Bạn có thực sự muốn xóa các nội dụng được chọn? Việc này không thể hoàn tác.", + ], + "Fullscreen" => [ + 0 => "Full screen", + ], + "Exit fullscreen" => [ + 0 => "Thoát full screen\n", + ], + "Guest" => [ + 0 => "Khách", + ], + "Keyboard shortcuts" => [ + 0 => "Phím tắt", + ], + "Uploaded by guest" => [ + 0 => "Upload by khách", + ], + "From %s" => [ + 0 => "Từ %s", + ], + "Uploaded by private" => [ + 0 => "Upload by ẩn danh", + ], + "by %u" => [ + 0 => "bởi %u", + ], + "Toggle unsafe flag" => [ + 0 => "Bật kiểm tra nội dung không an toàn", + ], + "That page doesn't exist" => [ + 0 => "404: Trng này không tồn tại", + ], + "The requested page was not found." => [ + 0 => "Không tìm thấy trang yêu cầu", + ], + "Search something else" => [ + 0 => "Tìm hình khác", + ], + "The user has been deleted" => [ + 0 => "Người dùng đã bị xóa", + ], + "Your account is almost ready" => [ + 0 => "Tài khoản bạn đã sẵn sàng", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Một email đến %s đã gửi. Link kích hoạt chỉ tồn tại trong 48 tiếng. Kiểm tra trong Spam nếu không có.", + ], + "Resend activation" => [ + 0 => "Gửi kích hoạt lại", + ], + "You have successfully changed your account email to %s" => [ + 0 => "Chuyển thành công email sang %s", + ], + "Go to my profile" => [ + 0 => "Đi tới trang cá nhân", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "Đã gửi email link kích hoạt tài khoản.", + ], + "Your email address" => [ + 0 => "Địa chỉ email của bạn", + ], + "Submit" => [ + 0 => "Gửi", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Chúng tôi đã gửi 1 email chứa mã reset và hướng dẫn cách reset lại mật khẩu đến địa chỉ email đăng ký tài khoản. Nếu không nhận được email nào trong vòng 10 phút, hãy kiểm tra lại hộp thư rác và Spam", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "Chúng tôi đã gửi email chứa mã reset mật khẩu và hướng dẫn. Nếu không nhận được email nào trong vòng 10 phút, hãy kiểm tra lại hộp thư rác và Spam", + ], + "Resend instructions" => [ + 0 => "Gửi lại hướng dẫn", + ], + "Username or Email address" => [ + 0 => "Tên người dùng hoặc Email", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "Mật khẩu của bạn đã đổi thành công. Từ giờ bạn có thể đăng nhập bằng mật khẩu mới.", + ], + "Login now" => [ + 0 => "Đăng nhập", + ], + "Enter your new password" => [ + 0 => "Nhập mật khẩu mới của bạn", + ], + "%d characters min" => [ + 0 => "tối thiểu phải %d ký tự", + ], + "Re-enter your new password" => [ + 0 => "Nhập lại mật khẩu mới", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "Email đã gửi đến %s kèm theo hướng dẫn để kích hoạt tài khoản của bạn. Nếu bạn không nhận được hướng dẫn, hãy thử kiểm tra thư mục spam của bạn.", + ], + "This content is private" => [ + 0 => "Nội dung này được bảo mật", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "Bạn có muốn xoá tất cả hình ảnh album? Không phục hồi được nhé.", + ], + "You like this" => [ + 0 => "Bạn đã like", + ], + "Upload to album" => [ + 0 => "Tải lên album", + ], + "Album link" => [ + 0 => "Album link", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "Vui lòng đọc và chấp nhận với các điều khoản sau trước khi tiếp tục:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "Website này bao gồm các thông tin, liên kết và hình ảnh giới hạn độ tuổi. Nếu bạn dưới %s tuổi, hoặc nếu bạn cảm thấy các nội dung này không phù hợp hay là bất hợp pháp tại cộng đồng của mình, vui lòng không tiếp tục truy cập.\n\nTrong trường hợp bạn trên %s tuổi, và với tư cách là một người trưởng thành như một quyền lợi chính đáng và hợp pháp, bạn mong muốn được tiếp cận các nội dung này một cách tự nguyện.\n\nNgoài ra, bạn tin rằng hành vi tình dục giữa người lớn là hành vi không gây phản cảm hay khó chịu. Việc xem, đọc và tải các nội dung tình dục này không vi phạm các tiêu chuẩn của cộng đồng, khu vực, thành phố hay quốc gia sở tại nơi bạn phải chịu trách nhiệm pháp luật.\n\nBạn cũng phải cam kết sử dụng các tài liệu giới hạn độ tuổi trong website này chỉ cho bản thân, không phát tán và đặc biệt là chia sẻ với trẻ vị thành viên.\n\nMột khi bạn truy cập website và sử dụng các tính năng của website, bao gồm cả việc lưu trữ và chia sẻ, bạn đồng ý rằng bạn chịu trách nhiệm về mọi thông tin tiết lộ sai hoặc các quy định pháp lý về đọc, xem hoặc tải xuống bất kì tài liệu nào trong trang web này.\n\nMàn hình xác nhận này được coi như thoả thuận hợp pháp giữa website này và bạn hoặc bất kì tổ chức nào mà bạn có lợi ích hợp pháp liên quan. Nếu bất kì phần nào của thoả thuận này được coi là không thể thi hành bởi Toà án có thẩm quyền thì nó sẽ không ảnh hưởng tới các phần thực thi khác của thoả thuận này.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "Bằng việc đánh dấu \"Tôi đồng ý\", bạn xác nhận rằng bạn đã đọc và hiểu tất cả quy định ở trên.", + ], + "I Agree" => [ + 0 => "Tôi đồng ý", + ], + "Disk used" => [ + 0 => "Dung lượng đã sử dụng", + ], + "Status" => [ + 0 => "Tình trạng", + ], + "Add user" => [ + 0 => "Thêm tài khoản", + ], + "Role" => [ + 0 => "Quyền", + ], + "Administrator" => [ + 0 => "Administrator", + ], + "Email address" => [ + 0 => "Địa chỉ email", + ], + "Add category" => [ + 0 => "Thêm danh sách", + ], + "Website name" => [ + 0 => "Tên trang web", + ], + "Website doctitle" => [ + 0 => "Tên website", + ], + "Website description" => [ + 0 => "Mô tả website", + ], + "Default time zone" => [ + 0 => "Múi giờ mặc định", + ], + "Select region" => [ + 0 => "Chọn vùng", + ], + "User ID" => [ + 0 => "User ID", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "Trang web sẽ chỉ hoạt động đối với thành viên trong chế độ riêng tư", + ], + "Content privacy mode" => [ + 0 => "Chế độ riêng tư", + ], + "Default" => [ + 0 => "Mặc định", + ], + "Force private (self)" => [ + 0 => "Bắt buộc bí mật (bản thân)", + ], + "Force private (anyone with the link)" => [ + 0 => "Bắt buộc bí mất (bất cứ ai có link)", + ], + "Contact" => [ + 0 => "Liên hệ", + ], + "pages" => [ + 0 => "các trang", + ], + "Enable uploads" => [ + 0 => "Bật upload", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "Bật nếu bạn cho phép upload. Không ảnh hưởng đến ban quản trị.", + ], + "Guest uploads" => [ + 0 => "Khách upload", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "Bật nếu muốn cho phép người dùng chưa đăng ký có thể upload.", + ], + "Image path" => [ + 0 => "Đường dẫn ảnh", + ], + "Relative to Chevereto root" => [ + 0 => "Đến thư mục gốc của Chevereto", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "Muốn lưu hình? Đến thư mục gốc của Chevereto", + ], + "Storage mode" => [ + 0 => "Chế độ lưu trữ", + ], + "Datefolders" => [ + 0 => "Thư mục theo ngày", + ], + "Direct" => [ + 0 => "Trực tiếp", + ], + "Datefolders creates %s structure" => [ + 0 => "Datefolders creates %s structure", + ], + "File naming method" => [ + 0 => "File naming method", + ], + "Original" => [ + 0 => "Gốc", + ], + "Thumb size" => [ + 0 => "Kích thước ảnh nhỏ", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "Ảnh nhỏ sẽ được giữ nguyên ở kích thước này", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "Chọn cái này để bỏ logo hoặc bất cứ thứ gì bạn muốn lên ảnh được upload", + ], + "Warning: Can't write in %s" => [ + 0 => "Thông báo: Không thể ghi trong %s", + ], + "Watermark image" => [ + 0 => "Hình đóng dấu", + ], + "Watermark position" => [ + 0 => "Vị trí hình đóng dấu", + ], + "left top" => [ + 0 => "trái - trên", + ], + "left center" => [ + 0 => "trái - giữa", + ], + "left bottom" => [ + 0 => "trái - dưới", + ], + "center top" => [ + 0 => "giữa - trên", + ], + "center center" => [ + 0 => "giữa - giữa", + ], + "center bottom" => [ + 0 => "giữa - dưới", + ], + "right top" => [ + 0 => "phải - trên", + ], + "right center" => [ + 0 => "phải - giữa", + ], + "right bottom" => [ + 0 => "phải - dưới", + ], + "Watermark margin" => [ + 0 => "Khoảng cách watermark", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "Khoảng cách từ bìa ảnh đến ảnh watermark", + ], + "Watermark opacity" => [ + 0 => "Độ mờ của watermark", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "Bạn có thực sự muốn xóa mục %s? Hành động này không thể quay lại được.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "Hình ảnh sẽ không bị xóa nếu bạn xóa danh sách", + ], + "Edit category" => [ + 0 => "Chỉnh sửa danh sách", + ], + "Enable signups" => [ + 0 => "Cho phép đăng ký", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "Mở chức năng này để cho phép người dùng đăng ký", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "Chọn cái này để sử dụng địa chỉ %s/tên-tài-khoản thay vì %s/tài-khoản/tên-tài-khoản", + ], + "Require email confirmation" => [ + 0 => "Yêu cầu xác nhận email", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "Chọn cái này để bắt buộc người dùng xác nhận email khi đăng kí", + ], + "Require email for social signup" => [ + 0 => "Yêu cầu email cho đăng kí qua mạng xã hội", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "Chọn cái này để bắt buộc người đăng kí dùng mạng xã hội phải xác nhận email", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators.", + ], + "Notify to email" => [ + 0 => "Thông báo tới email", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "If enabled the system will send an email on flood incidents.", + ], + "Minute limit" => [ + 0 => "Minute limit", + ], + "Hourly limit" => [ + 0 => "Hourly limit", + ], + "Daily limit" => [ + 0 => "Daily limit", + ], + "Weekly limit" => [ + 0 => "Weekly limit", + ], + "Monthly limit" => [ + 0 => "Monthly limit", + ], + "Show not safe content in listings" => [ + 0 => "Hiển thị hình ảnh 18+ trong danh sách", + ], + "Show banners in not safe content" => [ + 0 => "Hiển thị banner trong hình ảnh 18+", + ], + "Show not safe content in random mode" => [ + 0 => "Hiển thị ảnh 18+ trong chế độ ngẫu nhiên", + ], + "List items per page" => [ + 0 => "Số ảnh trên mỗi trang", + ], + "How many items should be displayed per page listing." => [ + 0 => "Số lượng hình ảnh hiển thị mỗi trang liệt kê", + ], + "List pagination mode" => [ + 0 => "Chế độ phân trang", + ], + "Endless scrolling" => [ + 0 => "Tự động tải vĩnh cửu", + ], + "Classic pagination" => [ + 0 => "Phân trang bình thường", + ], + "What pagination method should be used." => [ + 0 => "Chọn chế độ phân trang", + ], + "Put your themes in the %s folder" => [ + 0 => "Đặt giao diện của bạn tại thư mục %s", + ], + "Tone" => [ + 0 => "Màu sắc", + ], + "Light" => [ + 0 => "Sáng", + ], + "Dark" => [ + 0 => "Tối", + ], + "Enable vector logo" => [ + 0 => "Bật vector logo", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "Bật vector logo cho chất lượng hiển thị tốt trên màn hình độ phân giải cao", + ], + "Vector logo image" => [ + 0 => "Logo vector", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "Logo định dạng Bitmap. Nên sử dụng ảnh PNG", + ], + "No value" => [ + 0 => "Không có giá trị", + ], + "Favicon image" => [ + 0 => "Hình favicon", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "Hình favicon. Chiều cao và chiều rộng phải bằng nhau", + ], + "Enable download button" => [ + 0 => "Mở nút download", + ], + "Enable this if you want to show the image download button." => [ + 0 => "Mở chức năng này để hiển thị nút download ảnh.", + ], + "Enable social share" => [ + 0 => "Mở chức năng chia sẻ mạng xã hội", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "Mở chức năng hiện nút chia sẻ mạng xã hội", + ], + "Enable embed codes (content)" => [ + 0 => "Mở mã nhúng", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "Mở chức năng hiện mã nhúng cho nội dung", + ], + "Custom CSS code" => [ + 0 => "Mã CSS tùy chỉnh", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "Thêm tùy chỉnh CSS ở đây. Sẽ được thêm vào thẻ <style> và trước </head>", + ], + "Custom JS code" => [ + 0 => "Mã JS tùy chỉnh", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "Thêm tùy chỉnh JS ở đây. Sẽ được thêm vào thẻ <script> và trước </head>", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "Bạn có thực sự muốn xóa ảnh này? Xóa rồi không hồi lại được đâu nha!", + ], + "Delete image" => [ + 0 => "Xóa ảnh", + ], + "Crypt salt" => [ + 0 => "Crypt salt", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "Đây là mã salt dùng để chuyển đổi chữ số của ID sang dạng chữ cái. Mã này được tạo khi cài đặt.", + ], + "Default language" => [ + 0 => "Ngôn ngữ mặc định", + ], + "Default base language to use." => [ + 0 => "Ngôn ngữ sử dụng", + ], + "Auto language" => [ + 0 => "Ngôn ngữ tự động", + ], + "From name" => [ + 0 => "From name", + ], + "Sender name for emails sent to users." => [ + 0 => "Sender name for emails sent to users.", + ], + "Email mode" => [ + 0 => "Email mode", + ], + "How to send emails? SMTP recommended." => [ + 0 => "How to send emails? SMTP recommended.", + ], + "SMTP server and port" => [ + 0 => "SMTP server and port", + ], + "SMTP server" => [ + 0 => "SMTP server", + ], + "SMTP username" => [ + 0 => "SMTP username", + ], + "SMTP password" => [ + 0 => "SMTP password", + ], + "SMTP security" => [ + 0 => "Chế độ bảo mật của SMTP", + ], + "Unsecured" => [ + 0 => "Unsecured", + ], + "Decode ID" => [ + 0 => "Decode ID", + ], + "Encode ID" => [ + 0 => "Encode ID", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "Bạn cần <a href=\"https://developers.facebook.com/\" target=\"_blank\">Ứng Dụng Facebook</a> cho việc này.", + ], + "Facebook app id" => [ + 0 => "ID ứng dụng Facebook", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this.", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Tài khoản Twitter", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "Bạn cần có <a href=\"https://cloud.google.com/console\" target=\"_blank\">Ứng Dụng Google</a> cho việc này.", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "Bạn cần 1 <a href=\"%s\" target=\"_blank\">khóa reCAPTCHA</a> cho nó.", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "Comment code" => [ + 0 => "Comment code", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "Disqus, Facebook or anything you want. It will be used in image view.", + ], + "Analytics code" => [ + 0 => "Analytics code", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics hoặc bất cứ mã thống kê nào khác.", + ], + "Save changes" => [ + 0 => "Lưu thay đổi", + ], + "Check the errors to proceed." => [ + 0 => "Check the errors to proceed.", + ], + "Added to %s" => [ + 0 => "Hoàn thành thêm vào %s", + ], + "Uploaded %s" => [ + 0 => "Đã up lên %s", + ], + "Share image" => [ + 0 => "Chia sẻ ảnh này", + ], + "Album ID" => [ + 0 => "Album ID", + ], + "In this album" => [ + 0 => "Trong tập ảnh này", + ], + "Upload and share your images." => [ + 0 => "Đăng và chia sẻ những bức ảnh của bạn", + ], + "Sign up to unlock all the features" => [ + 0 => "Đăng ký để sử dụng mọi chức năng của website", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "Quản lý hình ảnh, tạo album riêng tư, tùy chỉnh trang hồ sơ và hơn thế nữa", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "Chưa có tài khoản? <a href='%s'>Đăng ký </a> ngay!", + ], + "Logged out" => [ + 0 => "Đã đăng xuất", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "Bạn đã thoát khỏi tài khoản %s. Hẹn gặp lại sau!", + ], + "Go to homepage" => [ + 0 => "Về trang chủ", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "Bạn không có quyền truy cập trang này hoặc trang này đã bị vô hiệu.", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "Bạn có chắc là muốn xóa tài khoản này? Không hoàn lại được đâu nhé!", + ], + "Delete user" => [ + 0 => "Xóa tài khoản", + ], + "Register date" => [ + 0 => "Ngày đăng ký", + ], + "Valid" => [ + 0 => "Hoạt động", + ], + "Banned" => [ + 0 => "Banned", + ], + "Awaiting email" => [ + 0 => "Chờ email", + ], + "Awaiting confirmation" => [ + 0 => "Chờ xác nhận", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "từ %i đến %f ký tự<br>Chữ, số và \"_\"", + ], + "Language" => [ + 0 => "Ngôn ngữ", + ], + "Timezone" => [ + 0 => "Múi giờ", + ], + "Current password" => [ + 0 => "Mật khẩu hiện tại", + ], + "Enter your current password" => [ + 0 => "Nhập mật khẩu hiện tại", + ], + "New password" => [ + 0 => "Mật khẩu mới", + ], + "Confirm new password" => [ + 0 => "Xác nhận lại mật khẩu mới", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "Thêm mật khẩu để có thể đăng nhập bằng Tài khoản hoặc bằng Email", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "Người dùng này chưa nhập mật khẩu. Hãy thêm mật khẩu bằng mẫu bên dưới", + ], + "Enter your password" => [ + 0 => "Nhập mật khẩu của bạn", + ], + "Confirm password" => [ + 0 => "Xác nhận lại mật khẩu", + ], + "Re-enter your password" => [ + 0 => "Nhập lại mật khẩu mới", + ], + "Upload new image" => [ + 0 => "Tải lên ảnh mới", + ], + "Delete existing image" => [ + 0 => "Xóa ảnh có sẵn", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "Bật tính năng này nếu bạn muốn sử dụng ẩn danh", + ], + "This is your real name, not your username." => [ + 0 => "Đây là tên thật của bạn chứ không phải tên Tài khoản đăng nhập đâu nha.", + ], + "http://yourwebsite.com" => [ + 0 => "http://trang-web-của-bạn.com", + ], + "Bio" => [ + 0 => "Tiểu sử", + ], + "Tell us a little bit about you" => [ + 0 => "Cho chúng tôi biết một chút về bạn", + ], + "User has no connections." => [ + 0 => "Người dùng chưa có kết nối đến mạng xã hội", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "Bạn có chắc là muốn xóa liên kết đến %s của tài khoản", + ], + "This account is connected to %s" => [ + 0 => "Tài khoản này hiện đang kết nối đến %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "Bạn có chắc là muốn xóa liên kết đến tài khoản %s", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "Bạn sẽ bị đăng xuất và bạn sẽ không thể đăng nhập lại bằng tài khoản %s", + ], + "Your account is connected to %s" => [ + 0 => "Tài khoản của bạn hiện đang kết nối đến %s", + ], + "disconnect" => [ + 0 => "ngắt kết nối", + ], + "Connect %s" => [ + 0 => "Kết nối %s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "Cứ thoải mái khám phá tất cả ảnh và album tôi đã chia sẻ công khai.", + ], + "Button" => [ + 0 => "Nút", + ], + "View all my images" => [ + 0 => "Xem tất cả ảnh của tôi", + ], + "resend account activation" => [ + 0 => "gửi lại email kích hoạt tài khoản", + ], + "I'm at least %s years old" => [ + 0 => "Tôi ít nhất %s tuổi", + ], + "terms" => [ + 0 => "quy định", + ], + "privacy policy" => [ + 0 => "chính sách bảo mật", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "Tôi đồng ý với %terms_link và %privacy_link", + ], + "Upload profile background" => [ + 0 => "Tải lên hình nền cho trang cá nhân", + ], + "Change background" => [ + 0 => "Đổi hình nền", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "ẢNh bìa hồ sơ sẽ bị xóa. Không thể hoàn tác thao tác này. Bạn có chắc chắn muốn xóa ảnh bìa cá nhân không?", + ], + "Delete background" => [ + 0 => "Xóa hình nền", + ], + "Follower" => [ + 0 => "Người theo dõi", + ], + "Follow" => [ + 0 => "Theo dõi", + ], + "You have been forbidden to use this website." => [ + 0 => "Bạn bị bắt buộc dùng website này", + ], + "Plugin" => [ + 0 => "Plugin\n", + ], + "General questions/comments" => [ + 0 => "Hỏi đáp, thắc mắc, kiến nghị", + ], + "DMCA complaint" => [ + 0 => "Khiếu nại bản quyền hình ảnh", + ], + "Invalid message" => [ + 0 => "Tin nhắn không hợp lệ", + ], + "Invalid subject" => [ + 0 => "Tiêu đề không hợp lệ", + ], + "Mail error" => [ + 0 => "Lỗi mail", + ], + "Message sent" => [ + 0 => "Tin nhắn đã gửi", + ], + "Message sent. We will get in contact soon." => [ + 0 => "Nội dung đã được gửi thành công. Chúng tôi sẽ liên lạc lại với bạn sớm nhất có thể.", + ], + "If you want to send a message fill the form below." => [ + 0 => "Nếu bạn muốn gửi một tin nhắn hãy điền vào mẫu dưới đây.\n", + ], + "Your name" => [ + 0 => "Tên bạn", + ], + "Subject" => [ + 0 => "Chủ đề", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "Nếu tiếp tục các thay đổi sẽ mất", + ], + "Changes saved successfully." => [ + 0 => "Các thay đổi được lưu thành công.", + ], + "Go back to form" => [ + 0 => "Quay trở lại biểu mẫu", + ], + "continue anyway" => [ + 0 => "vẫn tiếp tục", + ], + "Saving" => [ + 0 => "Đang lưu", + ], + "Sending" => [ + 0 => "Đang gửi", + ], + "Confirm action" => [ + 0 => "Xác nhận hành động", + ], + "information" => [ + 0 => "thông tin", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/zh-CN.po.cache.php b/app/.cache/languages/zh-CN.po.cache.php new file mode 100644 index 0000000..94b2706 --- /dev/null +++ b/app/.cache/languages/zh-CN.po.cache.php @@ -0,0 +1,3722 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-19 15:47+0000', + 'PO-Revision-Date' => '2021-06-19 15:47+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'zh_CN', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "无效的电子邮箱", + ], + "Invalid username" => [ + 0 => "无效的用户名", + ], + "Invalid password" => [ + 0 => "无效的密码", + ], + "Installed version is v%s" => [ + 0 => "当前版本为v%s", + ], + "Can't connect to %s" => [ + 0 => "无法连接到%s", + ], + "Last available release is v%s" => [ + 0 => "最新的可用版本为v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "需要更新,请继续下载", + ], + "No update needed" => [ + 0 => "不需要更新", + ], + "System files already up to date" => [ + 0 => "系统文件已经是最新的", + ], + "Starting v%s download" => [ + 0 => "开始下载v%s", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "已下载v%s, 继续解压", + ], + "Attempting to extract v%s" => [ + 0 => "尝试解压v%s", + ], + "Extraction completed" => [ + 0 => "解压完成", + ], + "Proceding to install the update" => [ + 0 => "正在安装这个更新", + ], + "Update failed" => [ + 0 => "更新失败", + ], + "Update in progress" => [ + 0 => "正在更新", + ], + "Missing %s file" => [ + 0 => "缺少 %s 文件", + ], + "Invalid license info" => [ + 0 => "无效的许可证信息", + ], + "Can't save file" => [ + 0 => "无法保存文件", + ], + "Can't extract %s" => [ + 0 => "无法解压 %s", + ], + "Can't create %s directory - %e" => [ + 0 => "无法创建 %s 目录 - %e", + ], + "Can't update %s file - %e" => [ + 0 => "无法更新 %s 文件 - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "继续前请检查表单中的错误.", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "注意: 此内容是私密的,但任何人通过链接将能够看到它。", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "注意: 此内容已使用密码保护,请通过密码来分享。", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "注意: 此内容是私密的。若要分享,请更改隐私设置为“公开”。", + ], + "You must enter the album name." => [ + 0 => "您必须输入相册名称.", + ], + "Confirm" => [ + 0 => "确认", + ], + "The content has been approved." => [ + 0 => "内容已获批准。", + ], + "Select existing album" => [ + 0 => "选择现有的相册", + ], + "An error occurred. Please try again later." => [ + 0 => "发生错误。请稍后再试。", + ], + "Please select a valid image file type." => [ + 0 => "请选择一个有效的图像文件类型。", + ], + "Please select a picture of at most %s size." => [ + 0 => "请选择最大 %s 的图像。", + ], + "Profile image updated." => [ + 0 => "个人信息已更新。", + ], + "Profile background image updated." => [ + 0 => "个人信息背景图片已更新。", + ], + "Profile background image deleted." => [ + 0 => "个人信息背景图片已删除。", + ], + "Error deleting profile background image." => [ + 0 => "删除个人信息的背景图片时出错。", + ], + "Passwords don't match" => [ + 0 => "密码错误", + ], + "Update available v%s" => [ + 0 => "有可用更新v%s", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "有系统可用的更新。您可以自动下载并安装此更新或者前往 %s 继续下载该更新文件。", + ], + "The release notes for this update are:" => [ + 0 => "本次更新的发行说明:", + ], + "system requirements" => [ + 0 => "系统要求", + ], + "I confirm that this server meets the %s for this update" => [ + 0 => "我确认此服务器满足此次更新的 %s", + ], + "Update now" => [ + 0 => "现在更新", + ], + "This website is running latest %s version" => [ + 0 => "此网站正在运行最新版%s", + ], + "Please review the system requirements before proceeding" => [ + 0 => "请在继续之前查看系统要求", + ], + "loading" => [ + 0 => "正在加载", + ], + "Toggle select" => [ + 0 => "选中/取消选中", + ], + "Like" => [ + 0 => "喜欢", + ], + "Toggle flag" => [ + 0 => "标记或取消标记", + ], + "Edit" => [ + 0 => "编辑", + ], + "Album" => [ + 0 => "相册", + ], + "Approve" => [ + 0 => "批准", + ], + "Delete" => [ + 0 => "删除", + ], + "Close" => [ + 0 => "关闭", + ], + "Previous" => [ + 0 => "上一页", + ], + "Next" => [ + 0 => "下一页", + ], + "Clipboard image" => [ + 0 => "剪贴板图像", + ], + "File too big." => [ + 0 => "文件过大。", + ], + "Invalid or unsupported file format." => [ + 0 => "无效或不支持的文件格式。", + ], + "Some files couldn't be added" => [ + 0 => "有些文件无法添加", + ], + "image" => [ + 0 => "图片", + ], + "%s's Albums" => [ + 0 => "%s 的相册", + ], + "Image edited successfully." => [ + 0 => "图片编辑成功。", + ], + "private" => [ + 0 => "私密", + ], + "Album edited successfully." => [ + 0 => "相册编辑成功。", + ], + "Invalid URL key." => [ + 0 => "无效的 URL Key。", + ], + "Category URL key already being used." => [ + 0 => "此分类的 URL key 已被占用。", + ], + "Category successfully deleted." => [ + 0 => "当前分类删除成功。", + ], + "Category %s added." => [ + 0 => "类别 %s 已增加。", + ], + "Invalid expiration date." => [ + 0 => "无效的截止日期。", + ], + "IP %s already banned." => [ + 0 => "IP %s 已经被禁止访问。", + ], + "IP %s banned." => [ + 0 => "成功封禁IP %s。", + ], + "IP ban successfully deleted." => [ + 0 => "IP 已从屏蔽列表中删除。", + ], + "Please fill all the required fields." => [ + 0 => "请填写所有必填字段。", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "无效的存储容量值。请务必使用一个有效的格式。", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "存储容量不能少于当前的使用情况(%s)。", + ], + "Invalid URL." => [ + 0 => "无效的 URL。", + ], + "Storage successfully edited." => [ + 0 => "储存编辑成功。", + ], + "User added successfully." => [ + 0 => "分类添加成功。", + ], + "The content has been deleted." => [ + 0 => "该图片已经被删除。", + ], + "The content has been moved." => [ + 0 => "该图片已经被移动。", + ], + "Select" => [ + 0 => "选择", + ], + "Unselect" => [ + 0 => "取消选择", + ], + "The content has been edited." => [ + 0 => "该内容已被编辑。", + ], + "Import ID %s removed" => [ + 0 => "导入任务 ID %s 已删除", + ], + "Spam detected" => [ + 0 => "垃圾邮件检测", + ], + "album" => [ + 0 => "相册", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "检测到泛洪。 您只能每 %time% 上传 %limit% %content%", + ], + "Untitled" => [ + 0 => "无标题", + ], + "%s's images" => [ + 0 => "%s 的图片", + ], + "Private" => [ + 0 => "仅注册用户", + ], + "Public" => [ + 0 => "访客开放", + ], + "Me" => [ + 0 => "我", + ], + "Link" => [ + 0 => "链接", + ], + "Password" => [ + 0 => "密码", + ], + "view" => [ + 0 => "次浏览", + ], + "After %n %t" => [ + 0 => "经过 %n %t", + ], + "minute" => [ + 0 => "分钟", + ], + "hour" => [ + 0 => "小时", + ], + "day" => [ + 0 => "天", + ], + "week" => [ + 0 => "周", + ], + "month" => [ + 0 => "月", + ], + "year" => [ + 0 => "年", + ], + "Don't autodelete" => [ + 0 => "不自动删除", + ], + "Can't open %s for writing" => [ + 0 => "无法打开 %s 写入", + ], + "Duplicated upload" => [ + 0 => "重复上传", + ], + "Private upload" => [ + 0 => "私密(只有本人可见)", + ], + "like" => [ + 0 => "喜欢", + ], + "Recent" => [ + 0 => "最新", + ], + "Trending" => [ + 0 => "热门", + ], + "Top users" => [ + 0 => "所有用户", + ], + "Most recent" => [ + 0 => "最新的", + ], + "Oldest" => [ + 0 => "最旧的", + ], + "Most viewed" => [ + 0 => "最热门的", + ], + "Popular" => [ + 0 => "最爱", + ], + "Most liked" => [ + 0 => "最喜欢的", + ], + "Explore" => [ + 0 => "探索", + ], + "Animated" => [ + 0 => "动图", + ], + "Search" => [ + 0 => "搜索", + ], + "People" => [ + 0 => "人", + ], + "Image" => [ + 0 => "图片", + ], + "User" => [ + 0 => "用户", + ], + "adult" => [ + 0 => "成人", + ], + "teen" => [ + 0 => "青少年", + ], + "Content of type %s is forbidden" => [ + 0 => "禁止上传 %s 内容", + ], + "Can't create %s destination dir" => [ + 0 => "无法创建 %s 目标目录", + ], + "Internal" => [ + 0 => "内部", + ], + "Unlimited" => [ + 0 => "无限制", + ], + "used" => [ + 0 => "已使用", + ], + "Private profile" => [ + 0 => "私隐设置", + ], + "second" => [ + 0 => "秒", + ], + "%s ago" => [ + 0 => "%s 前", + ], + "moments ago" => [ + 0 => "刚刚", + ], + "Dashboard" => [ + 0 => "仪表盘", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "您的系统有一个可用更新. 转到 %s 下载并安装此更新.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "系统数据库已经过时. 您需要运行 <a href=\"%s\">更新</a> 工具.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "网站处于维护模式. 恢复设置 <a href=\"%s\">仪表盘 > 设置</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "您应该在生产环境中禁用PHP错误报告. 转到<a href='%s'>系统设置</a>恢复此设置.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "您没有改变默认的电子邮件设置. 转到<a href='%s'>电子邮件设置</a>以解决此问题.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Chevereto有可用更新", + ], + "admin dashboard" => [ + 0 => "管理仪表盘", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "您可以直接从 %a 安装此更新或从 %s 下载, 然后手动安装更新.", + ], + "view on %s" => [ + 0 => "%s 已查看", + ], + "cookie policy" => [ + 0 => "cookie 政策", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "我们使用我们自己的和第三方的 cookie 来改善您的浏览体验和我们的服务。如果您继续使用我们的网站,即表示您接受此 %cookie_policy_link。", + ], + "I understand" => [ + 0 => "\"我\"明白了", + ], + "Forgot password?" => [ + 0 => "忘记密码?", + ], + "Reset password" => [ + 0 => "重置密码", + ], + "Resend account activation" => [ + 0 => "重新激活帐户", + ], + "Add your email address" => [ + 0 => "添加您的电子邮件地址", + ], + "Email changed" => [ + 0 => "该电子邮件已修改", + ], + "%s says you are a robot" => [ + 0 => "%s 说您是一个机器人", + ], + "Invalid Username/Email" => [ + 0 => "无效的用户名或电子邮件", + ], + "User doesn't have an email." => [ + 0 => "用户没有设置电子邮件.", + ], + "Request denied" => [ + 0 => "请求被拒绝", + ], + "Account needs to be activated to use this feature" => [ + 0 => "帐号需要激活才能使用此功能", + ], + "Account already activated" => [ + 0 => "帐户已经被激活", + ], + "Account banned" => [ + 0 => "帐号被禁止", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "已超过15分钟内发送电子邮件次数. 您可以稍后再试.", + ], + "Reset your password at %s" => [ + 0 => "在 %s 重置您的密码", + ], + "Confirmation required at %s" => [ + 0 => "您在 %s 注册的账号已经准备好, 激活后可立即使用.", + ], + "Welcome to %s" => [ + 0 => "欢迎来到 %s", + ], + "Email already being used" => [ + 0 => "该电子邮箱已经被使用", + ], + "Password required" => [ + 0 => "需要密码", + ], + "Embed codes" => [ + 0 => "嵌入代码", + ], + "Sub albums" => [ + 0 => "子相册", + ], + "Info" => [ + 0 => "详细", + ], + "%a album hosted in %w" => [ + 0 => "%a 相册托管在 %w", + ], + "Stats" => [ + 0 => "统计", + ], + "Images" => [ + 0 => "图片", + ], + "Albums" => [ + 0 => "相册", + ], + "Users" => [ + 0 => "用户", + ], + "Settings" => [ + 0 => "设置", + ], + "Bulk importer" => [ + 0 => "批量导入", + ], + "install update" => [ + 0 => "安装更新", + ], + "check for updates" => [ + 0 => "检查更新", + ], + "Contributing" => [ + 0 => "贡献", + ], + "Support" => [ + 0 => "客服支持", + ], + "Bug tracking" => [ + 0 => "错误跟踪", + ], + "Documentation" => [ + 0 => "文档", + ], + "PHP version" => [ + 0 => "PHP版本", + ], + "Server" => [ + 0 => "服务器", + ], + "MySQL version" => [ + 0 => "MySQL数据库版本", + ], + "MySQL server info" => [ + 0 => "MySQL数据库服务器信息", + ], + "Graphics Library" => [ + 0 => "图形库", + ], + "File uploads" => [ + 0 => "文件上传", + ], + "Enabled" => [ + 0 => "启用", + ], + "Disabled" => [ + 0 => "禁用", + ], + "Max. upload file size" => [ + 0 => "最大的文件上传", + ], + "Max. post size" => [ + 0 => "最大的执行大小", + ], + "Max. execution time" => [ + 0 => "最大的执行时间", + ], + "%d second" => [ + 0 => "%d 秒", + ], + "Memory limit" => [ + 0 => "内存限制", + ], + "Rebuild stats" => [ + 0 => "重建统计信息", + ], + "Connecting IP" => [ + 0 => "正在连接的IP", + ], + "Not your IP?" => [ + 0 => "这不是我的IP?", + ], + "Website" => [ + 0 => "网站", + ], + "Content" => [ + 0 => "内容", + ], + "Pages" => [ + 0 => "页面", + ], + "Listings" => [ + 0 => "页面列表", + ], + "Image upload" => [ + 0 => "图片上传", + ], + "Categories" => [ + 0 => "分类", + ], + "Consent screen" => [ + 0 => "内容警告", + ], + "Flood protection" => [ + 0 => "防洪保护", + ], + "Theme" => [ + 0 => "主题", + ], + "Homepage" => [ + 0 => "主页", + ], + "Banners" => [ + 0 => "横幅广告", + ], + "System" => [ + 0 => "系统", + ], + "Routing" => [ + 0 => "路径", + ], + "Languages" => [ + 0 => "语言", + ], + "External storage" => [ + 0 => "外部存储", + ], + "Email" => [ + 0 => "电子邮件", + ], + "Social networks" => [ + 0 => "社交网络", + ], + "External services" => [ + 0 => "外部服务", + ], + "IP bans" => [ + 0 => "IP屏蔽", + ], + "Additional settings" => [ + 0 => "其他设置", + ], + "Tools" => [ + 0 => "工具", + ], + "Can't delete all homepage cover images" => [ + 0 => "不能删除所有的首页封面图片", + ], + "Homepage cover image deleted" => [ + 0 => "删除首页封面图片", + ], + "Local" => [ + 0 => "本地", + ], + "External" => [ + 0 => "外部", + ], + "All" => [ + 0 => "所有", + ], + "search content" => [ + 0 => "搜索内容", + ], + "Add page" => [ + 0 => "添加页面", + ], + "Edit page ID %s" => [ + 0 => "编辑页面ID %s", + ], + "The page has been added successfully." => [ + 0 => "该页面已成功添加.", + ], + "The page has been deleted." => [ + 0 => "该页面已被删除.", + ], + "homepage" => [ + 0 => "主页", + ], + "Before main title (%s)" => [ + 0 => "之前的主标题(%s)", + ], + "After call to action (%s)" => [ + 0 => "呼吁行动后(%s)", + ], + "After cover (%s)" => [ + 0 => "封面后(%s)", + ], + "After listing (%s)" => [ + 0 => "列表下方(%s)", + ], + "Before pagination" => [ + 0 => "分页前", + ], + "After pagination" => [ + 0 => "分页后", + ], + "Content (image and album)" => [ + 0 => "内容(图像和相册)", + ], + "Tab about column" => [ + 0 => "标签相关", + ], + "Before comments" => [ + 0 => "评论前", + ], + "Image page" => [ + 0 => "图像页面", + ], + "Inside viewer top (image page)" => [ + 0 => "内部图像浏览器顶部(图像页)", + ], + "Inside viewer foot (image page)" => [ + 0 => "内部图像浏览器底部(图像页)", + ], + "After image viewer (image page)" => [ + 0 => "图像浏览器后(图像页)", + ], + "Before header (image page)" => [ + 0 => "图像信息前(图像页)", + ], + "After header (image page)" => [ + 0 => "图像信息前(图像页)", + ], + "Footer (image page)" => [ + 0 => "页脚(图像页)", + ], + "Album page" => [ + 0 => "相册页面", + ], + "Before header (album page)" => [ + 0 => "头前(相册页面)", + ], + "After header (album page)" => [ + 0 => "头后(相册页面)", + ], + "User profile page" => [ + 0 => "个人信息页", + ], + "After top (user profile)" => [ + 0 => "头前(个人信息页)", + ], + "Before listing (user profile)" => [ + 0 => "列表(个人信息页)", + ], + "Explore page" => [ + 0 => "探索页", + ], + "After top (explore page)" => [ + 0 => "头前(探索页)", + ], + "NSFW" => [ + 0 => "不安全(NSFW)", + ], + "Invalid website name" => [ + 0 => "无效的网站名称", + ], + "Invalid language" => [ + 0 => "无效的语言", + ], + "Invalid timezone" => [ + 0 => "无效的时区", + ], + "Invalid value: %s" => [ + 0 => "无效的值:%s", + ], + "Invalid upload storage mode" => [ + 0 => "无效的上传存储模式", + ], + "Invalid upload filenaming" => [ + 0 => "无效的上传文件名", + ], + "Invalid thumb width" => [ + 0 => "无效的缩略图宽度", + ], + "Invalid thumb height" => [ + 0 => "无效的缩略图高度", + ], + "Invalid medium size" => [ + 0 => "无效的中等图片大小", + ], + "Invalid watermark percentage" => [ + 0 => "无效的水印百分比", + ], + "Invalid watermark opacity" => [ + 0 => "无效的水印不透明度", + ], + "Invalid theme" => [ + 0 => "无效的主题", + ], + "Invalid value" => [ + 0 => "无效的值", + ], + "Invalid theme tone" => [ + 0 => "无效的主题色调", + ], + "Invalid theme main color" => [ + 0 => "无效的主题主要颜色", + ], + "Invalid theme top bar button color" => [ + 0 => "无效的主题顶部菜单栏按钮颜色", + ], + "Invalid theme image listing size" => [ + 0 => "无效的主题图片列表样式", + ], + "Invalid user id" => [ + 0 => "无效的用户ID", + ], + "Invalid email mode" => [ + 0 => "无效的电子邮件地址", + ], + "Invalid SMTP port" => [ + 0 => "无效的SMTP端口", + ], + "Invalid SMTP security" => [ + 0 => "无效的SMTP安全模式", + ], + "Invalid website mode" => [ + 0 => "无效的网站模式", + ], + "Invalid personal mode user ID" => [ + 0 => "无效的个人模式用户ID", + ], + "Invalid or reserved route" => [ + 0 => "无效的路由或已保留", + ], + "Invalid website privacy mode" => [ + 0 => "无效的网站隐私模式", + ], + "Invalid website content privacy mode" => [ + 0 => "无效的网站内容隐私模式", + ], + "Invalid homepage style" => [ + 0 => "无效的主页风格", + ], + "Invalid homepage call to action button color" => [ + 0 => "无效的按钮颜色", + ], + "Invalid homepage call to action functionality" => [ + 0 => "无效的主页\"开始上传\"按钮功能", + ], + "Invalid title" => [ + 0 => "无效标题", + ], + "Invalid status" => [ + 0 => "无效的状态", + ], + "Invalid type" => [ + 0 => "无效的类型", + ], + "Invalid visibility" => [ + 0 => "无效的可见度", + ], + "Invalid internal type" => [ + 0 => "内部类型无效", + ], + "Invalid target attribute" => [ + 0 => "无效的目标属性", + ], + "Invalid rel attribute" => [ + 0 => "无效的rel属性", + ], + "Invalid icon" => [ + 0 => "无效的图标", + ], + "Invalid URL key" => [ + 0 => "无效的链接值", + ], + "Invalid file path" => [ + 0 => "无效的文件路径", + ], + "Invalid link URL" => [ + 0 => "无效的链接网址", + ], + "Invalid user minimum age" => [ + 0 => "无效的用户最低年龄", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "只允许字母, 连字符和下划线字符是允许的", + ], + "Invalid URL" => [ + 0 => "无效URL", + ], + "Routes can't be the same" => [ + 0 => "路径不能是相同的", + ], + "Invalid upload image path" => [ + 0 => "无效的图像上传路径", + ], + "Invalid call to action URL" => [ + 0 => "无效的主页\"开始上传\"按钮网址", + ], + "Max. allowed %s" => [ + 0 => "超过最大允许的 %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "无法将 %m 映射到现有文件夹 (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "无法将 %m 映射到现有路由 (%r)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "无法将 %m 映射到 %r(用户名冲突)", + ], + "Invalid SMTP server" => [ + 0 => "无效的SMTP服务器", + ], + "Invalid SMTP username" => [ + 0 => "无效的SMTP用户名", + ], + "Invalid key" => [ + 0 => "无效的密钥", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "此链接值已被另一个页面使用 (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "此文件路径已被另一个页面使用 (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "无法保存页面内容: %s.", + ], + "Following" => [ + 0 => "已关注", + ], + "About" => [ + 0 => "关于", + ], + "Image ID" => [ + 0 => "图片ID", + ], + "Uploader IP" => [ + 0 => "上传者IP", + ], + "Ban IP" => [ + 0 => "屏蔽IP", + ], + "IP already banned" => [ + 0 => "IP已被屏蔽", + ], + "Upload date" => [ + 0 => "上传时间", + ], + "Image %i in %a album" => [ + 0 => "图片 %i 在 %a 相册", + ], + "Image %i in %c category" => [ + 0 => "图片 %i 在 %c 分类", + ], + "Image %i hosted in %w" => [ + 0 => "图片 %i 托管在 %w", + ], + "Direct links" => [ + 0 => "直接(源文件)链接", + ], + "Image link" => [ + 0 => "图片链接", + ], + "Image URL" => [ + 0 => "图片URL链接", + ], + "Thumbnail URL" => [ + 0 => "缩略图URL链接", + ], + "Medium URL" => [ + 0 => "中等图片大小的URL链接", + ], + "Full image" => [ + 0 => "完整图片", + ], + "Full image (linked)" => [ + 0 => "完整图片(链接)", + ], + "Medium image (linked)" => [ + 0 => "中等图片(链接)", + ], + "Thumbnail image (linked)" => [ + 0 => "缩略图(链接)", + ], + "Login needed" => [ + 0 => "需要登录", + ], + "IP address already banned" => [ + 0 => "IP地址已被禁止", + ], + "Missing values" => [ + 0 => "遗漏值", + ], + "Invalid role" => [ + 0 => "无效的角色", + ], + "Username already being used" => [ + 0 => "用户名已被使用", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "添加一个密码或其他社交连接之前删除 %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "添加一个电子邮件或其他社交连接之前删除 %s", + ], + "%s has been disconnected." => [ + 0 => "%s 已断开.", + ], + "Test email from %s @ %t" => [ + 0 => "测试邮件来自 %s @ %t", + ], + "This is just a test" => [ + 0 => "这只是一个测试", + ], + "Test email sent to %s." => [ + 0 => "测试邮件发送到 %s.", + ], + "Downloading %s data" => [ + 0 => "正在下载 %s 数据", + ], + "User %s followed" => [ + 0 => "用户 %s 已关注", + ], + "User %s unfollowed" => [ + 0 => "用户 %s 取消关注", + ], + "Album cover altered" => [ + 0 => "相册封面更改了", + ], + "Content liked" => [ + 0 => "喜欢的内容", + ], + "Content disliked" => [ + 0 => "不喜欢的内容", + ], + "%u liked your %t %c" => [ + 0 => "%u 喜欢您的 %t %c", + ], + "%u is now following you" => [ + 0 => "%u 关注了您", + ], + "A private user" => [ + 0 => "私人用户", + ], + "Wrong Username/Email password combination" => [ + 0 => "错误的用户名或密码", + ], + "Sign in" => [ + 0 => "登录", + ], + "Moderate" => [ + 0 => "审核", + ], + "Upload images" => [ + 0 => "上传图片", + ], + "Upload plugin" => [ + 0 => "上传插件", + ], + "Image search results for %s" => [ + 0 => "图片搜索结果 %s", + ], + "Album search results for %s" => [ + 0 => "相册搜索结果 %s", + ], + "User search results for %s" => [ + 0 => "用户搜索结果 %s", + ], + "Account" => [ + 0 => "账户", + ], + "Profile" => [ + 0 => "个人资料", + ], + "Linked accounts" => [ + 0 => "关联账户", + ], + "Powered by" => [ + 0 => "Powered by", + ], + "Invalid image expiration: %s" => [ + 0 => "无效的图片失效: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "一封电子邮件已发送至 %s,其中包含激活此电子邮件的说明", + ], + "Invalid name" => [ + 0 => "无效的名称", + ], + "Invalid website" => [ + 0 => "无效的网站", + ], + "Wrong password" => [ + 0 => "密码错误", + ], + "Use a new password" => [ + 0 => "使用新的密码", + ], + "Changes have been saved." => [ + 0 => "更改已保存.", + ], + "Password has been changed" => [ + 0 => "密码已更改", + ], + "Password has been created." => [ + 0 => "密码已创建.", + ], + "Wrong Username/Email values" => [ + 0 => "错误的用户名或邮箱", + ], + "Settings for %s" => [ + 0 => "设置为 %s", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "您必须同意我们的服务条款和隐私政策", + ], + "You must be at least %s years old to use this website." => [ + 0 => "您必须年满 %s 周岁才能继续访问这个网站.", + ], + "Create account" => [ + 0 => "注册账户", + ], + "Upload" => [ + 0 => "上传", + ], + "%s's Images" => [ + 0 => "%s 的图片", + ], + "Results for" => [ + 0 => "结果", + ], + "Liked by %s" => [ + 0 => "%s 的喜欢", + ], + "Liked" => [ + 0 => "喜欢", + ], + "Followers" => [ + 0 => "粉丝", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) 相册在 %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) 在 %w", + ], + "Discovery" => [ + 0 => "发现", + ], + "Random" => [ + 0 => "随机", + ], + "Advanced search" => [ + 0 => "高级搜索", + ], + "Notices (%s)" => [ + 0 => "通知 (%s)", + ], + "Notifications" => [ + 0 => "通知", + ], + "You don't have notifications" => [ + 0 => "您没有任何通知", + ], + "My Profile" => [ + 0 => "我的图片", + ], + "Lights" => [ + 0 => "灯光", + ], + "Sign out" => [ + 0 => "注销", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "我们收到了在 %w 更改 <a href=\"%u\">%n</a> 帐户电子邮件的要求.", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "要完成此过程, 您必须 <a href=\"%s\">激活您的电子邮件</a> .", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "另外, 您可以复制并粘贴网址到浏览器:<a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "如果您不打算注册或不是您注册的, 请忽略此消息.", + ], + "This request was made from IP: %s" => [ + 0 => "请求注册用户的IP: %s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "您好, 我们收到了您在 %w 注册 %n 帐户的要求.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "要完成此过程, 您必须<a href=\"%s\">激活您的帐户</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "我们收到的请求重置密码为您的 <a href=\"%u\">%n</a> 帐户.", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "要重置您的密码 <a href=\"%s\">请点击此链接</a> .", + ], + "Hi %n, welcome to %w" => [ + 0 => "您好 %n, 欢迎光临 %w .", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "现在, 您的帐户已准备就绪, 您可以上传您的图片, 创建相册并设置您的内容的私密性, 以及许多很酷的事情, 您会发现和享受.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "By the way, 这里是您自己的个人资料页: <a href=\"%u\">%n</a>. 来吧, 定制您的个人主页!", + ], + "Thank you for joining" => [ + 0 => "感谢您的加入", + ], + "This email was sent from %w %u" => [ + 0 => "这封电子邮件是由 %w %u 发送", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "拖放或粘贴图像在这里上传", + ], + "Select the images to upload" => [ + 0 => "选择需要上传的图片", + ], + "browse from your computer" => [ + 0 => "浏览您的计算机", + ], + "add image URLs" => [ + 0 => "添加图像的URL", + ], + "You can also %i or %u." => [ + 0 => "您也可以%i或者%u。", + ], + "browse from your device" => [ + 0 => "浏览您的计算机", + ], + "take a picture" => [ + 0 => "拍照", + ], + "You can also %i, %c or %u." => [ + 0 => "您也可以%i,%c或者%u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "通过点击图像预览来编辑或调整任意图像的大小", + ], + "Edit any image by touching the image preview" => [ + 0 => "通过点击图像预览来调整任意图像", + ], + "your computer" => [ + 0 => "您的计算机", + ], + "You can add more images from %i or %u." => [ + 0 => "您可以从%i或者%u添加更多的图片.", + ], + "your device" => [ + 0 => "您的设备", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "您可以从%i,%c或者%u添加更多的图片.", + ], + "Uploading %q %o" => [ + 0 => "上传 %q %o", + ], + "complete" => [ + 0 => "完成", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "队列上传中. 顷刻间便能完成.", + ], + "Upload complete" => [ + 0 => "上传完毕", + ], + "Uploaded content added to %s." => [ + 0 => "图片已经添加到 %s.", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "您可以将刚刚上传的图片 %c或 %m.", + ], + "You can %c with the content just uploaded." => [ + 0 => "您可以将刚刚上传的图片 %c.", + ], + "create a new album" => [ + 0 => "创建相册", + ], + "move it to an existing album" => [ + 0 => "移动到现有的相册", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "您必须 %s 或 %l 才能将此内容保存到您的帐户中。", + ], + "create an account" => [ + 0 => "注册账户", + ], + "sign in" => [ + 0 => "登录", + ], + "No %s have been uploaded" => [ + 0 => "没有 %s被上传", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "发生错误, 系统无法处理您的请求.", + ], + "Category" => [ + 0 => "分类", + ], + "Select category" => [ + 0 => "选择类别", + ], + "Mark this if the upload is not family safe" => [ + 0 => "标记这个上传内容为不健康", + ], + "Not family safe upload" => [ + 0 => "标记为不健康", + ], + "Uploading" => [ + 0 => "上传", + ], + "or" => [ + 0 => "或", + ], + "cancel" => [ + 0 => "取消", + ], + "cancel remaining" => [ + 0 => "取消剩下的", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "注意: 一些图像不能上传.", + ], + "learn more" => [ + 0 => "了解更多", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "检查 <a data-modal=\"simple\" data-target=\"failed-upload-result\">错误报告</a> 更多信息.", + ], + "Register to get %s" => [ + 0 => "注册之后可上传大小:%s", + ], + "reset" => [ + 0 => "重置", + ], + "close" => [ + 0 => "关闭", + ], + "Note" => [ + 0 => "通知", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "我们必须对上传的内容进行严格审核,只有审核通过后的内容才能进行分享。", + ], + "copy" => [ + 0 => "复制", + ], + "insert" => [ + 0 => "插入", + ], + "Remove" => [ + 0 => "删除", + ], + "Title" => [ + 0 => "标题", + ], + "optional" => [ + 0 => "可选的", + ], + "Resize image" => [ + 0 => "调整图像大小", + ], + "Width" => [ + 0 => "宽度", + ], + "Height" => [ + 0 => "高度", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "注意: 动画GIF图像将不会被调整.", + ], + "Auto delete image" => [ + 0 => "自动删除图片", + ], + "Sign up" => [ + 0 => "注册", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s以自定义或防止图片被自动删除", + ], + "Mark this if the image is not family safe" => [ + 0 => "标记这个图像为不健康", + ], + "Flag as unsafe" => [ + 0 => "标记为不安全", + ], + "Description" => [ + 0 => "描述", + ], + "Brief description of this image" => [ + 0 => "这张图片的简略描述", + ], + "Add image URLs" => [ + 0 => "增加图片的URL", + ], + "Add the image URLs here" => [ + 0 => "添加图片到这里", + ], + "Create album" => [ + 0 => "创建相册", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "上传的内容将被移动到新创建的相册。", + ], + "existing album" => [ + 0 => "目前的相册", + ], + "You can also move the content to an %a." => [ + 0 => "您还可以将内容移动到 %a 。", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "如果您想稍后编辑此相册,则必须为 %s 或 %l。", + ], + "Move to album" => [ + 0 => "移动相册", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "选择现有相册以移动上传的内容。您还可以<a class=\"modal-switch\" data-switch=\"move-new-album\">创建新相册</a>并将内容移动到那里。", + ], + "Error report" => [ + 0 => "错误报告", + ], + "Links" => [ + 0 => "链接", + ], + "Viewer links" => [ + 0 => "查看链接", + ], + "HTML Codes" => [ + 0 => "HTML代码", + ], + "HTML image" => [ + 0 => "HTML图像", + ], + "HTML full linked" => [ + 0 => "HTML详细链接", + ], + "HTML medium linked" => [ + 0 => "HTML中等大小图片链接", + ], + "HTML thumbnail linked" => [ + 0 => "HTML缩略图链接", + ], + "BBCodes" => [ + 0 => "BBCode代码", + ], + "BBCode full" => [ + 0 => "BBCode详细", + ], + "BBCode full linked" => [ + 0 => "BBCode详细链接", + ], + "BBCode medium linked" => [ + 0 => "中等大小的图片的BBCode链接", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode 缩略图链接", + ], + "Markdown full" => [ + 0 => "Markdown 详细信息", + ], + "Markdown full linked" => [ + 0 => "Markdown 详细链接", + ], + "Markdown medium linked" => [ + 0 => "Markdown 中等大小图片链接", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown 缩略图链接", + ], + "All these words" => [ + 0 => "搜索全部关键字内容", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "按此格式码关键字: 风景 人物 摄影", + ], + "This exact word or phrase" => [ + 0 => "精确搜索关键字(若关键字带空格请加双引号)", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "按此格式码关键字: \"风景 人物\"", + ], + "None of these words" => [ + 0 => "排除的关键字(若关键字带空格请加双引号)", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "在关键字前加减号: -邓丽欣 -\"王 祖男\"", + ], + "Storage" => [ + 0 => "存储", + ], + "IP address" => [ + 0 => "IP地址", + ], + "Album name" => [ + 0 => "相册名称", + ], + "move to existing album" => [ + 0 => "移动到现有的相册", + ], + "Album description" => [ + 0 => "相册描述", + ], + "Brief description of this album" => [ + 0 => "简要的描述一下这个相册", + ], + "Album privacy" => [ + 0 => "相册加密", + ], + "Who can view this content" => [ + 0 => "谁可以看到", + ], + "Private (just me)" => [ + 0 => "加密(只有我)", + ], + "Private (anyone with the link)" => [ + 0 => "加密(通过相册链接可见)", + ], + "Private (password protected)" => [ + 0 => "加密(密码访问, 包括您)", + ], + "Album password" => [ + 0 => "相册密码", + ], + "Name" => [ + 0 => "名称", + ], + "Category name" => [ + 0 => "类别名称", + ], + "URL key" => [ + 0 => "链接 key", + ], + "Category URL key" => [ + 0 => "分类 URL key", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "只允许字母, 数字和字符", + ], + "Brief description of this category" => [ + 0 => "简要描述这一类别", + ], + "Untitled image" => [ + 0 => "无标题图像", + ], + "Mark this if the image is not safe for work" => [ + 0 => "如果图像不安全(NSFW),请在此标记。", + ], + "Flag not safe" => [ + 0 => "标记不安全", + ], + "Path" => [ + 0 => "路径", + ], + "Local path (absolute)" => [ + 0 => "本地路径(绝对)", + ], + "Directory structure" => [ + 0 => "目录结构", + ], + "Parse top level folders as users (username)" => [ + 0 => "将顶级文件夹解析为用户(用户名)", + ], + "Parse top level folders as albums" => [ + 0 => "将顶级文件夹解析为相册", + ], + "Don't parse folders" => [ + 0 => "不要解析文件夹", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "将顶级文件夹解析为用户时,第二级文件夹将被解析为用户相册。 将顶级文件夹解析为相册会将这些文件夹添加为访客相册。", + ], + "Threads" => [ + 0 => "线程", + ], + "Select number of threads" => [ + 0 => "选择线程数", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "这决定了导入过程的密集程度和速度。不要在共享服务器上使用超过 %s 的线程。", + ], + "You can use wildcard * characters." => [ + 0 => "您可以使用通配符 * 符号.", + ], + "Expiration date" => [ + 0 => "截止日期", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS(例如: 2015-02-09 18:00:00)", + ], + "Example" => [ + 0 => "例如", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "禁止IP到此日期? 留空则永久禁止.", + ], + "Message" => [ + 0 => "消息", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "文本消息, HTML或重定向URL", + ], + "Existing album" => [ + 0 => "现有的相册", + ], + "create new album" => [ + 0 => "新建相册", + ], + "Storage name" => [ + 0 => "存储名称", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "区域", + ], + "Storage region" => [ + 0 => "存储区域", + ], + "Storage bucket" => [ + 0 => "储存桶", + ], + "Key" => [ + 0 => "访问密钥 ID", + ], + "Storage key" => [ + 0 => "储存钥匙", + ], + "Secret" => [ + 0 => "私有访问密钥", + ], + "Storage secret" => [ + 0 => "存储秘密", + ], + "Private key" => [ + 0 => "私钥(Private key)", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON key", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "您需要一个 <a %s>服务帐户</a> .", + ], + "Service name" => [ + 0 => "服务名称", + ], + "Identity URL" => [ + 0 => "身份网址", + ], + "Identity API endpoint" => [ + 0 => "身份API端点", + ], + "API endpoint for OpenStack identity" => [ + 0 => "对于OpenStack的身份API端点", + ], + "Username" => [ + 0 => "用户名", + ], + "Container" => [ + 0 => "容器", + ], + "Storage container" => [ + 0 => "存储容器", + ], + "Tenant id" => [ + 0 => "Tenant id", + ], + "Tenant id (account id)" => [ + 0 => "Tenant id(用户id)", + ], + "Tenant name" => [ + 0 => "Tenant name", + ], + "Tenant name (account name)" => [ + 0 => "Tenant name(用户名)", + ], + "Storage endpoint" => [ + 0 => "存储端点", + ], + "Server address" => [ + 0 => "服务器地址", + ], + "Hostname or IP of the storage server" => [ + 0 => "存储服务器主机名或IP", + ], + "Server path" => [ + 0 => "服务器路径", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "绝对路径存储在 %p 登录中,使用 %s 将其设置为根路径。", + ], + "Server login" => [ + 0 => "服务器登录", + ], + "Server password" => [ + 0 => "服务器密码", + ], + "Local path" => [ + 0 => "本地路径", + ], + "Local path where the files will be stored" => [ + 0 => "将存储文件的本地路径", + ], + "Storage capacity" => [ + 0 => "存储容量", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "例如: 20 GB, 1 TB, 等.", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "存储达到该值时将被禁用. 留空则不限制.", + ], + "Storage URL" => [ + 0 => "存储URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "该系统将存储的图像映射到该URL.", + ], + "view more" => [ + 0 => "查看更多", + ], + "Load more" => [ + 0 => "加载更多", + ], + "Select all" => [ + 0 => "选择所有", + ], + "Clear" => [ + 0 => "清除", + ], + "Get embed codes" => [ + 0 => "获取嵌入代码", + ], + "Assign category" => [ + 0 => "添加分类", + ], + "Flag as safe" => [ + 0 => "标记为安全", + ], + "Clear selection" => [ + 0 => "清除所选的", + ], + "Create new album" => [ + 0 => "新建相册", + ], + "Create sub album" => [ + 0 => "创建子相册", + ], + "Share" => [ + 0 => "分享", + ], + "Sign in with another account" => [ + 0 => "登录您的帐户", + ], + "Continue with %label%" => [ + 0 => "用 %label% 账号登录", + ], + "Home" => [ + 0 => "首页", + ], + "There's nothing to show here." => [ + 0 => "没有要显示的内容", + ], + "All the selected images will be assigned to this category." => [ + 0 => "所有选择的图像将会分配给此分类.", + ], + "There is no categories." => [ + 0 => "没有此分类.", + ], + "Confirm flag content as safe" => [ + 0 => "确认标记内容为安全", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "您真的要标记这个内容为安全的?", + ], + "Confirm flag content as unsafe" => [ + 0 => "确认标记内容为不安全", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "您真的要标记这个内容为不安全?", + ], + "Confirm approval" => [ + 0 => "确认批准", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "您确定要执行这个操作吗?这是个无法挽回的操作", + ], + "Confirm deletion" => [ + 0 => "确认删除", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "您真的想删除此内容? 一旦删除将无法恢复.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "您确定要执行这个操作吗?这是个无法挽回的操作", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "您真的想删除所选内容? 一旦删除将无法恢复.", + ], + "Guest" => [ + 0 => "访客", + ], + "Keyboard shortcuts" => [ + 0 => "键盘快捷键", + ], + "Private album" => [ + 0 => "私人相册", + ], + "Password protected" => [ + 0 => "密码保护", + ], + "Uploaded by guest" => [ + 0 => "来自访客", + ], + "From %s" => [ + 0 => "来自 %s", + ], + "Uploaded by private" => [ + 0 => "由私人上传", + ], + "by %u" => [ + 0 => "来自 %u", + ], + "Toggle unsafe flag" => [ + 0 => "切换不安全标记", + ], + "That page doesn't exist" => [ + 0 => "该页面不存在", + ], + "The requested page was not found." => [ + 0 => "所请求的页面不存在", + ], + "The user has been deleted" => [ + 0 => "用户已被删除", + ], + "Your account is almost ready" => [ + 0 => "您的账号已经准备好", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "已向 %s 发送了一封电子邮件,其中包含激活您帐户的说明。激活链接仅在 48 小时内有效。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。", + ], + "Resend activation" => [ + 0 => "重新激活", + ], + "You have successfully changed your account email to %s" => [ + 0 => "您已成功改变了您的帐户的电子邮件 %s", + ], + "Go to my profile" => [ + 0 => "去我的图片", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "确认链接将被发送到这个邮箱, 详情请登录邮箱并激活您的帐户.", + ], + "Your email address" => [ + 0 => "您的电子邮件地址", + ], + "Submit" => [ + 0 => "提交", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "一封包含重置密码说明的电子邮件已发送到注册的电子邮件地址。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "之前的电子邮件已发送,其中包含重置密码的说明。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。", + ], + "Resend instructions" => [ + 0 => "重新发送", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "输入您的用户名或者电子邮箱地址后提交,您可能需要检查垃圾邮件文件夹或将 %s 添加到白名单", + ], + "Username or Email address" => [ + 0 => "用户名或电子邮件地址", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "您的密码已被更改. 现在, 您可以尝试使用您的新密码登录.", + ], + "Login now" => [ + 0 => "现在登录", + ], + "Enter your new password" => [ + 0 => "请输入您的新密码", + ], + "%d characters min" => [ + 0 => "最少 %d 个字符", + ], + "Password strength" => [ + 0 => "密码强度", + ], + "Re-enter your new password" => [ + 0 => "请再次输入新的密码", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "已向 %s 发送了一封电子邮件,其中包含激活您帐户的说明。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。", + ], + "This content is private" => [ + 0 => "此内容是私有的", + ], + "Sub album" => [ + 0 => "子相册", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "您真的要删除此相册及其所有图片吗?这是无法撤消的。", + ], + "Upload to album" => [ + 0 => "上传到相册", + ], + "You like this" => [ + 0 => "您喜欢它", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "请阅读并遵守以下条件, 然后再继续:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "本网站所包含的信息, 链接和色情内容的图像. 如果您是 %s 岁以下, 如果这种材料冒犯您, 或者如果在您的地区查看这些材料是违法的, 请不要继续访问.\n\n我已年满 %s 周岁, 我相信, 作为一个成年人, 这是我收到/浏览色情材料不可剥夺的权利. 我希望接收/观看色情材料.\n\n我相信, 同意的成年人之间的性行为既不进攻也不色情. 的露骨色情内容的浏览, 阅读和下载不违反我的地区, 镇, 市, 州或国家标准.\n\n我已观看的色情材料仅是我个人的使用, 我不会传播未成年人的材料.\n\n我为任何虚假信息或浏览, 阅读或在本网站下载任何材料的法律后果承担全部责任. 此外, 该网站及其分支机构将负责从欺诈性进入或使用本网站所产生的任何法律后果.\n\n此同意画面构成了这个网站, 您或您有任何法律或衡平法权益的任何商业之间的法律协议. 如果本协议的任何部分被视为无效由有管辖权的法院不得影响该协议的其他部分的可执行性.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "通过点击\"我同意\", 您可声明自己已阅读并理解上述的所有条件.", + ], + "I Agree" => [ + 0 => "我同意", + ], + "documentation" => [ + 0 => "文档", + ], + "Learn about %s settings at our %d." => [ + 0 => "在我们的 %d 了解 %s 设置。", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "连接IP是通过服务器变量 %var% 来确定的。如果检测到的IP与您的不一致,说明您的Web服务器是在代理服务器下,您需要调整您的服务器来设置真正的连接IP。", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "对于Nginx,您必须使用 %nginx% ;对于Apache,使用 %apache% 。", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "请确保解决此问题,因为系统依靠准确的IP检测来提供基本功能,并能防止垃圾邮件、洪水攻击和暴力破解攻击。", + ], + "Disk used" => [ + 0 => "已用大小", + ], + "Queued" => [ + 0 => "排队", + ], + "Working" => [ + 0 => "工作", + ], + "Paused" => [ + 0 => "已暂停", + ], + "Canceled" => [ + 0 => "取消", + ], + "Completed" => [ + 0 => "已完成", + ], + "Top level folders as %s" => [ + 0 => "顶级文件夹为 %s", + ], + "Actions" => [ + 0 => "操作", + ], + "Process" => [ + 0 => "处理", + ], + "Pause" => [ + 0 => "暂停", + ], + "Cancel" => [ + 0 => "取消", + ], + "Process log" => [ + 0 => "进程日志", + ], + "Errors" => [ + 0 => "错误", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "您真的要要删除导入ID:%s ?", + ], + "Reset" => [ + 0 => "重置", + ], + "Resume" => [ + 0 => "恢复", + ], + "Status" => [ + 0 => "状态", + ], + "Run the following command to import content to Chevereto:" => [ + 0 => "运行以下命令将内容导入 Chevereto:", + ], + "Read the %s for more information about this feature." => [ + 0 => "阅读 %s 以了解有关此功能的更多信息。", + ], + "Add user" => [ + 0 => "添加用户", + ], + "Role" => [ + 0 => "角色", + ], + "Manager" => [ + 0 => "管理", + ], + "Administrator" => [ + 0 => "管理员", + ], + "Email address" => [ + 0 => "Email地址", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "开启个人网站模式时, 该设置始终禁用.", + ], + "Add category" => [ + 0 => "添加类别", + ], + "Add IP ban" => [ + 0 => "添加IP", + ], + "Add storage" => [ + 0 => "添加存储", + ], + "Return to pages" => [ + 0 => "返回页面", + ], + "Website name" => [ + 0 => "网站名称", + ], + "Website doctitle" => [ + 0 => "网站标题", + ], + "Website description" => [ + 0 => "网站描述", + ], + "Automatic" => [ + 0 => "自动", + ], + "Forced" => [ + 0 => "强制", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a 将在服务器端检测并自动使用HTTPS(推荐), %f 无论您的服务器如何设置,都将使用HTTPS, %d 禁用且完全不使用HTTPS。", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "这仅控制URL中使用的协议,除非您的服务器配置为支持和使用HTTPS,否则它不会将您的网站变为有效的HTTPS网站。", + ], + "Default time zone" => [ + 0 => "默认时区", + ], + "Select region" => [ + 0 => "选择区域", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "可以按特定的内容查询图片, 相册, 和用户.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "启用探索图库功能, 允许查看所有用户上传的图片(不含私隐),并可以按分类查看.", + ], + "guests" => [ + 0 => "游客", + ], + "Enables explore for guests." => [ + 0 => "为游客启用探索.", + ], + "Enables to browse images randomly." => [ + 0 => "启用随机浏览图片.", + ], + "Likes" => [ + 0 => "喜欢", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "允许用户使用喜欢LIKE功能, 并显示用户已喜欢列表.", + ], + "Followers allows users to follow each other." => [ + 0 => "关注者允许用户互相关注.", + ], + "Website mode" => [ + 0 => "网站模式", + ], + "Community" => [ + 0 => "社区", + ], + "Personal" => [ + 0 => "个人", + ], + "You can switch the website mode anytime." => [ + 0 => "您可以随时切换网站模式。", + ], + "Personal mode target user" => [ + 0 => "个人模式的目标用户", + ], + "User ID" => [ + 0 => "用户ID", + ], + "Your user id is: %s" => [ + 0 => "您的用户ID是: %s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "个人模式的数值是目标用户的ID.", + ], + "Personal mode routing" => [ + 0 => "个人模式链接格式", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "定制的链接格式 /username 到 /something. 使用 “/” 映射到主页。", + ], + "Website privacy mode" => [ + 0 => "网站的隐私模式", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "启用私密模式后仅对注册用户开放使用.", + ], + "Content privacy mode" => [ + 0 => "隐私模式", + ], + "Default" => [ + 0 => "默认", + ], + "Force private (self)" => [ + 0 => "全局隐私(只有用户本人可见)", + ], + "Force private (anyone with the link)" => [ + 0 => "全局隐私(所有人通过链接可见)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "全局隐私模式将覆盖用户选择的隐私.", + ], + "Page title" => [ + 0 => "页面标题", + ], + "Page status" => [ + 0 => "页面状态", + ], + "Active page" => [ + 0 => "活动页面", + ], + "Inactive page (%s)" => [ + 0 => "无效页面(%s)", + ], + "Only active pages will be accessible." => [ + 0 => "只有活动页面可以访问.", + ], + "Type" => [ + 0 => "类型", + ], + "Terms of service" => [ + 0 => "服务条款", + ], + "Privacy" => [ + 0 => "隐私", + ], + "Contact" => [ + 0 => "联系", + ], + "Extra page" => [ + 0 => "额外页面", + ], + "Internal page type" => [ + 0 => "内部页面类型", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "您可以有多个额外页面,但只有一个内部页面类型。", + ], + "Page visibility" => [ + 0 => "页面可见度", + ], + "Visible page" => [ + 0 => "可见页面", + ], + "Hidden page" => [ + 0 => "隐藏页面", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "隐藏页将不被显示在系统的菜单, 但任何人都可以通过链接访问它.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "只允许字母数字, 连接符和正斜杠.", + ], + "File path" => [ + 0 => "文件路径", + ], + "A %f file relative to %s" => [ + 0 => "%f 文件相对于 %s", + ], + "Meta keywords" => [ + 0 => "Meta元数据关键字", + ], + "Meta description" => [ + 0 => "Meta元数据描述", + ], + "Source code" => [ + 0 => "源代码", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "在 %s 路径没有写入权限, 您将需要使用外部编辑器添加文件.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "在 %s 没有写入权限, 您将需要使用外部编辑器添加内容.", + ], + "Taken from: %s" => [ + 0 => "摘自: %s", + ], + "Link URL" => [ + 0 => "链接网址", + ], + "Link target attribute" => [ + 0 => "链接目标属性", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "选择 %s 在新窗口中打开网页或链接.", + ], + "Link rel attribute" => [ + 0 => "链接rel属性", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "只允许字母数字, 连接符和空格.", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s 的属性", + ], + "Link icon" => [ + 0 => "链接图标", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "检查 <a %s>图标参考</a> 获得支持图标的完整列表.", + ], + "Sort order display" => [ + 0 => "排序顺序显示", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "菜单和列表页面排序顺序显示. 使用\"1\"为最优先的.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "您真的要删除的页面ID %s? 这将不能撤消.", + ], + "Enabled image formats" => [ + 0 => "启用的图像格式", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "不允许上传未经检查的图片格式.", + ], + "Enable uploads" => [ + 0 => "启用上传", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "启用图片上传(如果您想允许图片上传请启用). 此设置不会影响管理员.", + ], + "Upload user interface" => [ + 0 => "上传用户界面", + ], + "On-page container" => [ + 0 => "页面容器", + ], + "route" => [ + 0 => "路由", + ], + "Guest uploads" => [ + 0 => "访客(不需注册)上传", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "启用它则允许未注册的用户上传图片", + ], + "Moderate uploads" => [ + 0 => "上传审核", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "启用后,需要对上传内容进行审核。目标内容被通过审核后才会予以展示。", + ], + "Enable embed codes (uploader)" => [ + 0 => "启用嵌入代码(上传者)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "如果您想图片上传完成后显示嵌入代码请启用这个功能.", + ], + "Upload threads" => [ + 0 => "上传线程", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "最大同时上传的线程数(并行上传)", + ], + "Redirect on single upload" => [ + 0 => "单张图片上传跳转", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "启用后上传单张图片后跳转到该图片的图片页面.", + ], + "Enable duplicate uploads" => [ + 0 => "启用重复上传", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "启用它, 则允许24小时内来自同一个IP的重复上传. 这个设置不会影响管理员.", + ], + "Enable expirable uploads" => [ + 0 => "启用可过期上传", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "如果您想允许上传与自动删除选项启用它.", + ], + "Auto delete guest uploads" => [ + 0 => "自动删除访客图片", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "如果要强制访客上传的图片在某段时间后自动删除,请启用此功能.", + ], + "Maximum image size" => [ + 0 => "最大图片大小", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "大于此尺寸的图片将自动缩小尺寸.默认(0)则不设置限制.", + ], + "Image Exif data" => [ + 0 => "图像的Exif数据", + ], + "Keep" => [ + 0 => "保留", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "选择默认的图片 <a %s>Exif数据</a> 上传.", + ], + "Image Exif data (user setting)" => [ + 0 => "图像的Exif数据(用户设定)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "启用它, 如果您允许每个用户设置是否删除图像的Exif数据.", + ], + "Maximum upload file size" => [ + 0 => "最大上传文件大小(MB)", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "服务器最大允许上传%s.因为参数%u和%p(文件:%f)", + ], + "Same as \"%s\" but for guests." => [ + 0 => "跟\"%s\"一样,限制游客上传的最大文件大小.", + ], + "Image path" => [ + 0 => "图像路径", + ], + "Relative to Chevereto root" => [ + 0 => "相对于Chevereto的root", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "在哪里存储图像? 相对于Chevereto根目录.", + ], + "Storage mode" => [ + 0 => "存储方式", + ], + "Datefolders" => [ + 0 => "日期文件夹", + ], + "Direct" => [ + 0 => "默认格式", + ], + "Datefolders creates %s structure" => [ + 0 => "日期文件夹创建 %s 结构", + ], + "File naming method" => [ + 0 => "文件的命名格式", + ], + "Original" => [ + 0 => "原始的", + ], + "Mix original + random" => [ + 0 => "原始的 + 随机", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"原始的\"会尽量保持图像源名称, 而\"随机\"则生成一个随机名称. \"ID\"则使用生成的图像ID来命名.", + ], + "Thumb size" => [ + 0 => "缩略图大小", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "固定大小的缩略图", + ], + "Medium image fixed dimension" => [ + 0 => "中等图片尺寸固定", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "中等图像将被固定至此分辨率. 例如, 如果您选择\"宽度\", 这方面将是固定的, 图像的高度将自动计算.", + ], + "Medium image fixed size" => [ + 0 => "中等图片大小固定", + ], + "Width or height will be automatically calculated." => [ + 0 => "宽度或高度将自动计算.", + ], + "Watermarks" => [ + 0 => "水印", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "启用它, 把您想要一个水印添加到任何上传的图像(仅对启用后的上传有效).", + ], + "Watermark user toggles" => [ + 0 => "水印用户切换", + ], + "Enable watermark on guest uploads" => [ + 0 => "启用访客上传水印", + ], + "Enable watermark on user uploads" => [ + 0 => "启用用户上传水印", + ], + "Enable watermark on admin uploads" => [ + 0 => "启用管理员上传水印", + ], + "Watermark file toggles" => [ + 0 => "水印文件切换", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "启用GIF图片上传水印", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "应用水印需要最小图像尺寸", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "小于这个像素比的图像不会被加上水印. 使用零(0),则不设置最低图像大小限制.", + ], + "Watermark image" => [ + 0 => "水印图像", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "您想获得最佳的普通的标志与阴影效果. 您可以使用一个大的图像, 如果文件大小并不大(建议最多为16KB). 必须是PNG.", + ], + "Watermark position" => [ + 0 => "水印位置", + ], + "left top" => [ + 0 => "左上", + ], + "left center" => [ + 0 => "左中", + ], + "left bottom" => [ + 0 => "左下", + ], + "center top" => [ + 0 => "中上", + ], + "center center" => [ + 0 => "居中", + ], + "center bottom" => [ + 0 => "中下", + ], + "right top" => [ + 0 => "右上", + ], + "right center" => [ + 0 => "右中", + ], + "right bottom" => [ + 0 => "右下", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "水印图像的相对位置. 首先水平对齐, 然后垂直对齐.", + ], + "Watermark percentage" => [ + 0 => "水印占图像比例", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "水印占对象图像的百分比. 值1到100.", + ], + "Watermark margin" => [ + 0 => "水印填充边距", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "水印填充边距大小, 从水印图像边框开始计算.", + ], + "Watermark opacity" => [ + 0 => "水印透明度", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "水印的不透明度设置, 值由0到100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "仪表盘 > 设置 > 网站", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "当关闭图库功能时, 图片分类将不能正常工作. 恢复此设置前往 %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "您真的要删除%s类别? 这不能被撤销.", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "注意: 删除分类不会删除属于该类别中的图像.", + ], + "Edit category" => [ + 0 => "编辑类别", + ], + "Expires" => [ + 0 => "到期", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "您真的想要删除该已禁止的IP %s ? 这将是无法撤销的.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "被禁止的IP地址将禁止使用整个网站.", + ], + "Edit IP ban" => [ + 0 => "编辑IP屏蔽列表", + ], + "Enable signups" => [ + 0 => "开放注册", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "启用它代表您允许用户自行注册账号.", + ], + "Enable user content delete" => [ + 0 => "用户内容删除", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "如果要允许用户删除自己的内容,请启用此功能。 此设置不会影响管理员。", + ], + "Minimum age required" => [ + 0 => "最低年龄要求", + ], + "Empty" => [ + 0 => "空", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "留空则表示不设置最低年龄, 对所有年龄都有效.", + ], + "Notify on user signup" => [ + 0 => "用户注册通知", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "启用之后,如果有人注册就会给您发送邮件通知.", + ], + "Username routing" => [ + 0 => "用户名链接结构", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "启用它选项, 则使用(%s/用户名)的URL结构, 而不是(%s/user/用户名)的URL结构.", + ], + "Require email confirmation" => [ + 0 => "需要电子邮件确认", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "启用此选项, 用户必须验证注册电子邮件地址.", + ], + "Require email for social signup" => [ + 0 => "需要电子邮件社交注册", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "启用此选项, 使用社交网络注册的用户必须提供一个电子邮件地址.", + ], + "User avatar max. filesize" => [ + 0 => "最大的用户头像大小", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "最大允许用户头像的文件大小.(由服务器最大允许 %s)", + ], + "User background max. filesize" => [ + 0 => "最大的背景图片大小", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "最大允许背景图片的文件大小.(由服务器最大允许 %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "在访问网站之前显示屏幕的一个同意. 对于成人内容的网站,不应该让未成年人浏览.", + ], + "Enable consent screen" => [ + 0 => "启用网站内容警告", + ], + "Consent screen cover image" => [ + 0 => "内容警告背景图片", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "通过IP封锁图片上传, 如果系统发现根据每个时间段上传数量洪水的行为. 此设置不会影响管理员.", + ], + "Notify to email" => [ + 0 => "以电子邮件通知", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "发现洪水攻击后系统自动发送电子邮件.", + ], + "Minute limit" => [ + 0 => "每分钟的限额", + ], + "Hourly limit" => [ + 0 => "每小时的限额", + ], + "Daily limit" => [ + 0 => "每日的限额", + ], + "Weekly limit" => [ + 0 => "每周的限额", + ], + "Monthly limit" => [ + 0 => "每月的限额", + ], + "Lock %s editing" => [ + 0 => "锁定 %s 编辑", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "启用此功能可防止用户更改NSFW标志。启用后,只有管理员和管理有此权限。", + ], + "Show not safe content in listings" => [ + 0 => "在列表中显示不安全内容(NSFW)", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "如果您想在列表中显示不安全的内容(NSFW),请启用此功能。此设置不影响管理员,可由用户自己的设置覆盖。", + ], + "Blur NSFW content in listings" => [ + 0 => "在列表中模糊显示NSFW内容", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "如果您想对列表中的NSFW图片应用高斯模糊效果,请启用此功能。", + ], + "Show banners in not safe content" => [ + 0 => "在不安全的内容中显示横幅广告", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "如果您想在不安全的内容页面中显示横幅广告,请启用此功能。", + ], + "Show not safe content in random mode" => [ + 0 => "在随机模式显示标记为不安全内容", + ], + "List items per page" => [ + 0 => "每页列表项目", + ], + "How many items should be displayed per page listing." => [ + 0 => "每页显示多少项目", + ], + "List pagination mode" => [ + 0 => "列表分页模式", + ], + "Endless scrolling" => [ + 0 => "瀑布流模式", + ], + "Classic pagination" => [ + 0 => "经典分页模式", + ], + "What pagination method should be used." => [ + 0 => "应该用什么分页模式.", + ], + "Listing viewer" => [ + 0 => "列表预览", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "启用之后,您在探索页面点击图片之后会有预览界面.", + ], + "Image listing size" => [ + 0 => "图片列表样式", + ], + "Fluid" => [ + 0 => "自动", + ], + "Fixed" => [ + 0 => "固定", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "首页图片列表样式. 这两种方法都使用固定宽度, 但“自动”的方法是使用自动图片的高度.", + ], + "Album listing images requirement" => [ + 0 => "相册被列出所需图片数量", + ], + "explore" => [ + 0 => "探索", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "设置探索页中可以被展示出的相册所需的最少图像数量.", + ], + "Listing columns number" => [ + 0 => "页面显示列数", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "在这里您可以设置针对不同的设备显示多少列, 以优化各设备的显示体验.", + ], + "Phone" => [ + 0 => "手机", + ], + "Phablet" => [ + 0 => "大屏手机", + ], + "Tablet" => [ + 0 => "平板电脑", + ], + "Laptop" => [ + 0 => "笔记本电脑", + ], + "Desktop" => [ + 0 => "桌面台式电脑", + ], + "Put your themes in the %s folder" => [ + 0 => "把您的主题上传到 %s 文件夹", + ], + "Tone" => [ + 0 => "色调", + ], + "Light" => [ + 0 => "白", + ], + "Dark" => [ + 0 => "黑", + ], + "Main color" => [ + 0 => "主要颜色", + ], + "Hexadecimal color value" => [ + 0 => "十六进制颜色值", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "使用此设置的主要主题颜色. 值必须是 <a href=\"%s\" target=\"_blank\">十六进制</a> 格式.", + ], + "Top bar button color" => [ + 0 => "顶部菜单栏按钮颜色", + ], + "Blue" => [ + 0 => "蓝", + ], + "Green" => [ + 0 => "绿", + ], + "Orange" => [ + 0 => "橙", + ], + "Red" => [ + 0 => "红", + ], + "Grey" => [ + 0 => "灰", + ], + "Black" => [ + 0 => "黑", + ], + "White" => [ + 0 => "白", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "顶栏的颜色按钮为\"创建帐户\"按钮.", + ], + "Enable vector logo" => [ + 0 => "启用矢量Logo(SVG)", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "在高像素密度的设备启用矢量标志为高品质的标志.", + ], + "Vector logo image" => [ + 0 => "矢量Logo图像", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "SVG格式的矢量版本Logo.", + ], + "Raster logo image" => [ + 0 => "光栅Logo图像", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "PNG格式的位图版本Logo.", + ], + "Logo height" => [ + 0 => "Logo高度", + ], + "No value" => [ + 0 => "没有值", + ], + "Use this to set the logo height if needed." => [ + 0 => "启用此选项, 以设置标志的高度.", + ], + "Favicon image" => [ + 0 => "网站图标", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "网站图标. 所上传图像必须具有相同的宽度和高度.", + ], + "Image load max. filesize" => [ + 0 => "最大文件大小", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "图片大小大于该值时将显示一个按钮以加载原图图.", + ], + "Enable download button" => [ + 0 => "启用下载按钮", + ], + "Enable this if you want to show the image download button." => [ + 0 => "启用此代表在图片页显示原图下载按钮.", + ], + "Enable right click on image" => [ + 0 => "启用右键点击图片", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "启用此则允许在图片页使用鼠标右键功能.", + ], + "Enable show Exif data" => [ + 0 => "启用显示Exif数据", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "如果您想要显示图像的Exif数据, 启用此项.", + ], + "Enable social share" => [ + 0 => "启用社会网站分享", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "启用此选项, 以启用社交网站分享功能.", + ], + "Enable embed codes (content)" => [ + 0 => "启用嵌入代码(内容)", + ], + "Everybody" => [ + 0 => "任何人", + ], + "Users only" => [ + 0 => "仅限用户", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "启用此选项, 以内容嵌入代码.", + ], + "Not safe content checkbox in uploader" => [ + 0 => "在上传时显示\"标记不安全内容\"复选框", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "如果您想在上传页面显示一个复选框来标记\"不安全的内容(NSFW)\",请启用此功能。", + ], + "Custom CSS code" => [ + 0 => "自定义CSS代码", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "把您的自定义CSS代码在这里. 它会被放在 <style> 标签 </head> 前的位置.", + ], + "Custom JS code" => [ + 0 => "自定义JS代码", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "把您的自定义JS代码在这里. 它会被放在 <script> 标签 </head> 前的位置.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "不要在这里使用 %s 标签。 这适用于纯JS代码,不适用于HTML脚本标签。 如果您在此处使用脚本标签,则会破坏您的网站。", + ], + "Style" => [ + 0 => "样式", + ], + "Landing page" => [ + 0 => "仅显示上传按钮", + ], + "Split landing + images" => [ + 0 => "上传按钮 + 最新图片", + ], + "Route %s" => [ + 0 => "路径 %s", + ], + "upload" => [ + 0 => "上传", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "选择主页风格. 详细定制主页编辑此 app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "封面图片", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "您真的需要删除这张图片? 这将无法恢复.", + ], + "Delete image" => [ + 0 => "删除图片", + ], + "Add new cover image" => [ + 0 => "添加新的封面图片", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "这将被添加在主页 %s 标记. 保持空白以使用默认内容.", + ], + "Paragraph" => [ + 0 => "段落", + ], + "Call to action button color" => [ + 0 => "“开始上传”按钮的颜色", + ], + "Color of the homepage call to action button." => [ + 0 => "请选择“开始上传”按钮的颜色.", + ], + "Call to action outline style button" => [ + 0 => "主页“开始上传”按钮的背景透明", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "启用它, 则“开始上传”按钮的背景颜色改为透明样式.", + ], + "Call to action functionality" => [ + 0 => "按钮功能", + ], + "Trigger uploader" => [ + 0 => "触发上传", + ], + "Open URL" => [ + 0 => "打开网址", + ], + "Call to action URL" => [ + 0 => "按钮网址", + ], + "Enter an absolute or relative URL" => [ + 0 => "输入一个绝对或相对URL网址", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "这样一个相对URL网址 %r 将映射到 %l", + ], + "Call to action HTML" => [ + 0 => "按钮HTML代码", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "这将被添加在按钮 <a> 标记. 保持空白以使用默认内容.", + ], + "User IDs" => [ + 0 => "用户 ID", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "指定的用户ID显示在主页最新图片上, 多个用户用逗号分隔. 留空则显示所有全站最新的图片.", + ], + "Automatic updates check" => [ + 0 => "自动更新检查", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "启用时, 系统将自动检查新更新.", + ], + "Display available updates notification" => [ + 0 => "显示可用的更新通知", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "启用此则显示一个通知, 提示您关于新的可用系统更新.", + ], + "Dump update query" => [ + 0 => "转储更新查询", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "启用此选项,可以为每个用户自动检测和设置正确的语言。", + ], + "SEO %s URLs" => [ + 0 => "%s URL地址SEO优化", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "如果要使用%s地址SEO优化,请启用此选项。", + ], + "Maintenance" => [ + 0 => "维护模式", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "当启用该设置网站将重定向到维修页面. 此设置不影响管理员。", + ], + "Crypt salt" => [ + 0 => "Crypt salt 特殊码", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "此ID为系统的一个特殊码, 相当于V2.x的“__CHV_CRYPT_SALT__”值, 本设置仅在安装或升级时才用到, 一经使用请勿修改.", + ], + "PHP error reporting" => [ + 0 => "PHP错误报告", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "启用PHP <a %s>error_reporting()</a> 函数,以便显示PHP错误报告, 建议在生产环境中禁用。", + ], + "Debug level" => [ + 0 => "调试级别", + ], + "None" => [ + 0 => "无", + ], + "Error log" => [ + 0 => "错误日志", + ], + "Print errors without error log" => [ + 0 => "没有错误日志列出错误", + ], + "Print and log errors" => [ + 0 => "列出错误日志", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "要配置调试级别请查看<a %s>调试文档</a>. 默认级别为\"错误日志\"(1).", + ], + "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." => [ + 0 => "路径允许您自定义默认路径。只允许使用字母数字、连字符和下划线字符。", + ], + "Image routing" => [ + 0 => "图像页面路径", + ], + "Routing for %s" => [ + 0 => "对于路径 %s", + ], + "Album routing" => [ + 0 => "相册路径", + ], + "Hostname" => [ + 0 => "主机名", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "将添加子域通配符的主机名。", + ], + "This setting may be overridden by %s." => [ + 0 => "此设置可能被%s覆盖。", + ], + "Language subdomains" => [ + 0 => "语言子域", + ], + "languages" => [ + 0 => "语言", + ], + "Enable to use %s for %t." => [ + 0 => "启用 %s 用于 %t。", + ], + "Username subdomains" => [ + 0 => "用户名子域名", + ], + "user profiles" => [ + 0 => "用户资料", + ], + "Custom language strings" => [ + 0 => "自定义语言字符串", + ], + "Default language" => [ + 0 => "默认语言", + ], + "Default base language to use." => [ + 0 => "默认基本语言", + ], + "Auto language" => [ + 0 => "自动选择语言", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "启用它, 如果您想自动检测并为每个用户设置正确的语言.", + ], + "Language chooser" => [ + 0 => "语言选择器", + ], + "Enable this if you want to allow language selection." => [ + 0 => "启用这个如果您想允许用户选择语言.", + ], + "Enabled languages" => [ + 0 => "启用语言", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "未选中的语言将不会在自己的网站中使用.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "切换此启用或禁用HTTPS链接", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "切换此启用或禁用此存储", + ], + "Quota" => [ + 0 => "配额", + ], + "Active" => [ + 0 => "活动", + ], + "Storage method" => [ + 0 => "存储方法", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "默认情况下使用本地存储, 或在外部存储没有处于激活状态.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "如果您需要帮助, 请查看<a %s>存储文档</a>.", + ], + "Edit storage" => [ + 0 => "编辑存储", + ], + "From name" => [ + 0 => "发送名称", + ], + "Sender name for emails sent to users." => [ + 0 => "接收到邮件显示的发送人名称", + ], + "From email address" => [ + 0 => "发件人的电子邮箱地址", + ], + "Sender email for emails sent to users." => [ + 0 => "在收件人处显示的发件人邮箱", + ], + "Incoming email address" => [ + 0 => "收信电子邮箱地址", + ], + "Recipient for contact form and system alerts." => [ + 0 => "联系表单和系统警告的收件人", + ], + "Email mode" => [ + 0 => "发送邮件的方式", + ], + "How to send emails? SMTP recommended." => [ + 0 => "如何发送邮件? 推荐使用SMTP.", + ], + "SMTP server and port" => [ + 0 => "SMTP服务器与端口", + ], + "SMTP server" => [ + 0 => "SMTP服务器", + ], + "SMTP username" => [ + 0 => "SMTP用户名", + ], + "SMTP password" => [ + 0 => "SMTP密码", + ], + "SMTP security" => [ + 0 => "SMTP安全", + ], + "Unsecured" => [ + 0 => "不使用任何安全模式", + ], + "Decode ID" => [ + 0 => "解码 ID", + ], + "Encode ID" => [ + 0 => "编码 ID", + ], + "Send test email" => [ + 0 => "发送测试邮件", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "使用此来测试您的电子邮件是否已发送. 我们建议您使用 %s.", + ], + "Export a user" => [ + 0 => "导出用户(1个)", + ], + "Export user" => [ + 0 => "导出", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "这将让用户信息保存到 .Json 格式的文件中并下载", + ], + "Regenerate external storage stats" => [ + 0 => "重新生成外部存储统计信息", + ], + "Storage id" => [ + 0 => "存储 id", + ], + "Regenerate" => [ + 0 => "重建", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "这将重新计算与目标外部存储相关联的所有图像记录的总和。", + ], + "Migrate image records from one external storage to another" => [ + 0 => "将图像记录从一个外部存储迁移到另一个外部存储", + ], + "Source storage id" => [ + 0 => "源存储 id", + ], + "Target storage id" => [ + 0 => "目标存储 id", + ], + "Migrate" => [ + 0 => "迁移", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "这只会更新数据库。 您必须自己将实际文件传输到目标存储容器。 强烈建议进行URL重写。 使用零(0)进行本地存储。", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "完成此您需要一个 <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> ", + ], + "Facebook app id" => [ + 0 => "Facebook app 应用 id", + ], + "Facebook app secret" => [ + 0 => "Facebook app 应用 secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "完成此您需要一个 <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app </a>", + ], + "Twitter API key" => [ + 0 => "Twitter API 应用密匙", + ], + "Twitter API secret" => [ + 0 => "Twitter API 应用 secret", + ], + "Twitter account" => [ + 0 => "Twitter账号", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "完成此您需要一个<a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>", + ], + "Google client id" => [ + 0 => "Google 客户端 id", + ], + "Google client secret" => [ + 0 => "Google 客户端 secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "完成此您需要一个 <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a>", + ], + "VK client id" => [ + 0 => "VK 客户端 id", + ], + "VK client secret" => [ + 0 => "VK 客户端秘钥", + ], + "%s spam protection" => [ + 0 => "%s 垃圾邮件保护", + ], + "user generated content" => [ + 0 => "用户生成内容", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "启用 %l 来阻止 %c 中的垃圾邮件。", + ], + "%s API key" => [ + 0 => "%s API 密钥", + ], + "user signup" => [ + 0 => "用户注册", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "您需要一个 <a href=\"%s\" target=\"_blank\">验证码Key</a> 来完成此项设置.", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "请注意,每个reCAPTCHA版本都有一组对应的密钥。 如果您更改了版本,请不要忘记更新密钥。", + ], + "%s site key" => [ + 0 => "%s 站点密钥", + ], + "%s secret key" => [ + 0 => "%s 密钥", + ], + "reCAPTCHA threshold" => [ + 0 => "验证码阈值", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "登陆失败多少次后显示验证码? 键入\"0\"零则始终显示验证码.", + ], + "Force %s on contact page" => [ + 0 => "在联系页面强制开启 %s", + ], + "Enable this to always show %s on contact page." => [ + 0 => "启用此选项可始终在联系人页面上显示 %s 。", + ], + "Comments API" => [ + 0 => "评论 API", + ], + "Disqus API works with %s." => [ + 0 => "Disqus API 适用于 %s.", + ], + "Disqus shortname" => [ + 0 => "Disqus 短名称", + ], + "%s public key" => [ + 0 => "%s 公共密钥", + ], + "Comment code" => [ + 0 => "评论社会化代码", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "DISQUS, Facebook或其他. 它将在图像视图中使用.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "使用 %s 服务来自动审核上传的图片。", + ], + "Automatic approve" => [ + 0 => "自动审核", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "启用此功能可自动审核本服务管理的所有内容。", + ], + "Block content" => [ + 0 => "屏蔽内容", + ], + "Adult" => [ + 0 => "成人", + ], + "Teen and adult" => [ + 0 => "儿童和成人", + ], + "Flag NSFW" => [ + 0 => "标记 NSFW", + ], + "Analytics code" => [ + 0 => "Analytics(分析)代码", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "谷歌Analytics(分析)或其他. 它将被添加到主题页脚.", + ], + "API v1 key" => [ + 0 => "API v1 密钥", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "使用<a %s>API V1</a>时使用此值.", + ], + "Plugin route" => [ + 0 => "上传插件", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "启用此功能可在%u页面显示插件说明。这些说明的链接将添加到%s菜单中。此设置不会影响管理员。", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "使用它来设置%p的自定义URL。请注意,您需要手动复制此URL中的%s。", + ], + "Cookie law compliance" => [ + 0 => "Cookie的法律法规", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "启用它, 显示一条消息, 符合欧盟的Cookie法律的要求. 注意: 您只需要这个, 如果您的网站托管在欧盟, 如果您添加跟踪Cookie.", + ], + "Save changes" => [ + 0 => "保存修改", + ], + "Check the errors to proceed." => [ + 0 => "请检查错误并继续.", + ], + "Play GIF" => [ + 0 => "播放 GIF", + ], + "Load 360° view" => [ + 0 => "加载 360° 视图", + ], + "Load full resolution" => [ + 0 => "加载原图", + ], + "%s image" => [ + 0 => "%s 图片", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "您真的要删除所有选定的内容吗?这是无法撤消的。", + ], + "This is the album cover" => [ + 0 => "这是相册的封面", + ], + "Cover" => [ + 0 => "封面", + ], + "Added to %a and categorized in %c" => [ + 0 => "加入 %a 和标记上 %c", + ], + "Added to %s" => [ + 0 => "加入 %s", + ], + "Uploaded to %s" => [ + 0 => "上传到 %s", + ], + "Uploaded %s" => [ + 0 => "已上传 %s", + ], + "Less Exif data" => [ + 0 => "关闭详细Exif数据", + ], + "More Exif data" => [ + 0 => "打开详细Exif数据", + ], + "Album ID" => [ + 0 => "相册ID", + ], + "Upload and share your images." => [ + 0 => "上传与分享您的照片", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "任意拖放图片到这里, 即开始上传您的图片. 最大 %s 图片大小. 直接的源图片链接, BBCode代码和HTML缩略图显示.", + ], + "Start uploading" => [ + 0 => "开始上传", + ], + "Sign up to unlock all the features" => [ + 0 => "注册即可解锁并体验所有的功能", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "管理您的内容, 建立您的个人相册, 自定义您的个人资料, 展示您的个人主页和更多.", + ], + "Sign in with your account" => [ + 0 => "使用您的帐户登录", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "没有账号? <a href='%s'>马上注册</a>.", + ], + "Logged out" => [ + 0 => "注销", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "您已退出 %s , 希望很快再见到您.", + ], + "Go to homepage" => [ + 0 => "转到主页", + ], + "Website under maintenance" => [ + 0 => "网站正在维护中", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "我们正在网站上执行定期维护任务。请过几分钟回来。", + ], + "This content is password protected." => [ + 0 => "此内容已被密码保护.", + ], + "Please enter your password to continue." => [ + 0 => "请输入您的密码以继续浏览.", + ], + "Send" => [ + 0 => "发送", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "通过安装我们的上传插件,将图像上传到您的网站,博客或论坛。 它提供图像上传到任何网站,放置一个按钮,将允许您的用户直接上传图像到我们的服务,它将自动处理插入所需的代码。 所有功能包括拖放,远程上传,图像调整大小等。", + ], + "Supported software" => [ + 0 => "支持的项目", + ], + "supported software" => [ + 0 => "支持的项目", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "该插件适用于具有用户可编辑内容的任何网站,对于%sv,它将放置一个与目标编辑器工具栏匹配的上传按钮,因此不需要额外的自定义。", + ], + "Add it to your website" => [ + 0 => "将其添加到您的网站", + ], + "options" => [ + 0 => "选项", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "将插件代码复制并粘贴到您的网站HTML代码中(最好在head内)。 这里有更多%o来使其更好的满足您的需求。", + ], + "Basic options" => [ + 0 => "基本选项", + ], + "Color palette" => [ + 0 => "调色板", + ], + "Button color scheme" => [ + 0 => "按钮配色方案", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "嵌入代码将自动插入到编辑框中", + ], + "Sibling selector" => [ + 0 => "Sibling选择器", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Sibling元素选择器的旁边放置按钮", + ], + "Sibling position" => [ + 0 => "Sibling顺序", + ], + "After" => [ + 0 => "先", + ], + "Before" => [ + 0 => "后", + ], + "Position relative to sibling element" => [ + 0 => "相对于sibling元素的位置", + ], + "Advanced options" => [ + 0 => "高级选项", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "该插件具有大量附加选项,允许完全自定义。 您可以使用自定义HTML,CSS,自己的调色板,设置监控服务等。 查找%d和插件源以更好地了解这些高级选项。", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "您没有权限访问此网页或链接已过期.", + ], + "Search results" => [ + 0 => "搜索结果", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "您真的要删除这个用户? 这将不能恢复.", + ], + "Delete user" => [ + 0 => "删除用户", + ], + "Register date" => [ + 0 => "注册日期", + ], + "Registration IP" => [ + 0 => "注册IP", + ], + "Valid" => [ + 0 => "有效的", + ], + "Banned" => [ + 0 => "禁止", + ], + "Awaiting email" => [ + 0 => "等待设置电子邮件", + ], + "Awaiting confirmation" => [ + 0 => "等待确认", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i 到 %f 个字符<br>字母, 数字 和 \"_\" 符号", + ], + "Auto delete uploads" => [ + 0 => "自动删除上传内容", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "默认情况下,此设置将应用于您上传的所有图像。您可以在每次上传时覆盖此设置。", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "在上传时, 保留图像的<a %s>Exif数据</a>", + ], + "Newsletter" => [ + 0 => "新闻稿", + ], + "Send me emails with news about %s" => [ + 0 => "与 %s 的消息的电子邮件发送给我", + ], + "Content settings" => [ + 0 => "内容设置", + ], + "Show not safe content in listings (from others)" => [ + 0 => "在列表中显示不安全内容(来自其他人) ", + ], + "Language" => [ + 0 => "语言", + ], + "Timezone" => [ + 0 => "时区", + ], + "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." => [ + 0 => "此服务由 %website_name% 提供,我们是独立的服务提供商。非常感谢您一直以来的支持。", + ], + "At %website_name% we are proudly using and supporting %software%." => [ + 0 => "在 %website_name%,我们自豪地使用和支持 %software%。", + ], + "Current password" => [ + 0 => "当前的密码", + ], + "Enter your current password" => [ + 0 => "请输入您当前的密码", + ], + "New password" => [ + 0 => "新密码", + ], + "Confirm new password" => [ + 0 => "请输入新的密码", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "添加一个密码才能使用您的用户名或电子邮件地址登录.", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "这个用户没有输入密码. 新增一个使用这种形式.", + ], + "Enter your password" => [ + 0 => "请输入您的密码", + ], + "Confirm password" => [ + 0 => "请再次输入新密码确认", + ], + "Re-enter your password" => [ + 0 => "请再次输入您的密码", + ], + "Upload avatar" => [ + 0 => "上传头像", + ], + "Make my profile and identity totally private" => [ + 0 => "让我的个人资料和身份仅自己可见", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "如果您想把自己变成像匿名用户请启用它", + ], + "This is your real name, not your username." => [ + 0 => "这是您的个性昵称. 不是您的用户名.", + ], + "http://yourwebsite.com" => [ + 0 => "http://YourWebsite.com(您的网站地址)", + ], + "Bio" => [ + 0 => "个人介绍", + ], + "Tell us a little bit about you" => [ + 0 => "告诉我们一点关于您的信息", + ], + "User has no connections." => [ + 0 => "用户没有连接.", + ], + "Link your account to external services to be able to login here." => [ + 0 => "将您的帐户连接到外部服务,以便能够快捷登录和分享内容。", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "您真的想从这个帐户断开 %s 吗?", + ], + "This account is connected to %s" => [ + 0 => "此帐户连接到 %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "您真的要断开您的 %s 帐户?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "您将被注销, 而您将无法使用此 %s 的帐户登录到您的帐户.", + ], + "Your account is connected to %s" => [ + 0 => "您的帐户已连接到 %s", + ], + "disconnect" => [ + 0 => "断开", + ], + "Connect %s" => [ + 0 => "绑定 %s 账号", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "随意浏览, 发现我所有的图片和相册共享.", + ], + "Button" => [ + 0 => "按钮", + ], + "View all my images" => [ + 0 => "查看我的所有图片", + ], + "Login" => [ + 0 => "登录", + ], + "Already have an account? %s now." => [ + 0 => "已经有账户了? %s 现在。", + ], + "resend account activation" => [ + 0 => "重新激活帐户", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "如果您已经注册,您可能需要请求 %s 来激活您的帐户。", + ], + "You can also %s." => [ + 0 => "您也可以 %s.", + ], + "I'm at least %s years old" => [ + 0 => "我已年满 %s 周岁", + ], + "terms" => [ + 0 => "服务条款", + ], + "privacy policy" => [ + 0 => "隐私政策", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "我同意 %terms_link 和 %privacy_link", + ], + "Upload profile background" => [ + 0 => "上传背景图片", + ], + "Change background" => [ + 0 => "更新背景图片", + ], + "Upload new image" => [ + 0 => "上传新的图片", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "该个人信息的背景图像将被删除. 这将不能恢复. 您确定要删除个人信息的背景图片?", + ], + "Delete background" => [ + 0 => "删除背景图片", + ], + "Follower" => [ + 0 => "粉丝", + ], + "Follow" => [ + 0 => "关注", + ], + "You have been forbidden to use this website." => [ + 0 => "您已经被禁止使用本网站.", + ], + "Plugin" => [ + 0 => "插件", + ], + "Page %s" => [ + 0 => "第 %s 页", + ], + "General questions/comments" => [ + 0 => "一般问题/意见", + ], + "DMCA complaint" => [ + 0 => "DMCA(数字千年版权)投诉", + ], + "Invalid message" => [ + 0 => "无效的消息", + ], + "Invalid subject" => [ + 0 => "无效的主题", + ], + "Mail error" => [ + 0 => "邮件错误", + ], + "Message sent" => [ + 0 => "发送消息", + ], + "Message sent. We will get in contact soon." => [ + 0 => "消息已发送. 我们将很快和您取得了联系.", + ], + "If you want to send a message fill the form below." => [ + 0 => "如果您想发送一个消息, 请填写下面表格.", + ], + "Your name" => [ + 0 => "您的名字", + ], + "Subject" => [ + 0 => "主题", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "如果您继续您所做的所有更改将丢失.", + ], + "Changes saved successfully." => [ + 0 => "成功保存更改.", + ], + "Go back to form" => [ + 0 => "返回表格", + ], + "continue anyway" => [ + 0 => "继续?", + ], + "Saving" => [ + 0 => "保存", + ], + "Sending" => [ + 0 => "发送中", + ], + "Confirm action" => [ + 0 => "操作确认", + ], + "information" => [ + 0 => "信息", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/languages/zh-TW.po.cache.php b/app/.cache/languages/zh-TW.po.cache.php new file mode 100644 index 0000000..985e191 --- /dev/null +++ b/app/.cache/languages/zh-TW.po.cache.php @@ -0,0 +1,3653 @@ +<?php +$translation_header = array ( + 'Project-Id-Version' => 'VERSION', + 'POT-Creation-Date' => '2021-06-09 16:33+0000', + 'PO-Revision-Date' => '2021-06-09 16:33+0000', + 'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>', + 'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>', + 'Language' => 'zh_TW', + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8', + 'Content-Transfer-Encoding' => '8bit', + 'Plural-Forms' => 'nplurals=1; plural=0;', +); +$translation_plural = array ( + 'nplurals' => 1, + 'function' => '($n != 1)', +); +$translation_table = [ + "Invalid email" => [ + 0 => "無效的電子信箱", + ], + "Invalid username" => [ + 0 => "無效的用戶名", + ], + "Invalid password" => [ + 0 => "無效的密碼", + ], + "Installed version is v%s" => [ + 0 => "已安裝的版本為 v%s", + ], + "Can't connect to %s" => [ + 0 => "無法連接到 %s", + ], + "Last available release is v%s" => [ + 0 => "最新的發布版本為 v%s", + ], + "Update needed, proceeding to download" => [ + 0 => "需要更新, 請繼續下載", + ], + "No update needed" => [ + 0 => "目前沒有更新", + ], + "System files already up to date" => [ + 0 => "系統檔案已是最新版本", + ], + "Starting v%s download" => [ + 0 => "開始 v%s 下載", + ], + "Downloaded v%s, proceeding to extraction" => [ + 0 => "下載 v%s 中, 程序正在匯出", + ], + "Attempting to extract v%s" => [ + 0 => "嘗試解壓 v%s", + ], + "Extraction completed" => [ + 0 => "匯出已完成", + ], + "Proceding to install the update" => [ + 0 => "正在安裝此更新", + ], + "Update failed" => [ + 0 => "更新已失敗", + ], + "Update in progress" => [ + 0 => "正在更新", + ], + "Missing %s file" => [ + 0 => "缺少 %s 文件", + ], + "Invalid license info" => [ + 0 => "無效的許可證信息", + ], + "Can't save file" => [ + 0 => "無法保存文件", + ], + "Can't extract %s" => [ + 0 => "無法解壓%s", + ], + "Can't create %s directory - %e" => [ + 0 => "無法建立 %s 的資料夾 - %e", + ], + "Can't update %s file - %e" => [ + 0 => "無法更新 %s 檔案 - %e", + ], + "Check the errors in the form to continue." => [ + 0 => "請檢查表單中的錯誤以繼續", + ], + "Note: This content is private but anyone with the link will be able to see this." => [ + 0 => "筆記: 此內容是加密的, 但任何人擁有超連結時將能夠看見他.", + ], + "Note: This content is password protected. Remember to pass the content password to share." => [ + 0 => "筆記: 此內容已使用密碼保護, 記得將密碼通過分享來使用.", + ], + "Note: This content is private. Change privacy to \"public\" to share." => [ + 0 => "注意:此內容是私密的。更改隱私為“公共”分享。", + ], + "You must enter the album name." => [ + 0 => "您必須輸入相簿名稱", + ], + "Confirm" => [ + 0 => "確認", + ], + "The content has been approved." => [ + 0 => "該內容已被批准", + ], + "Select existing album" => [ + 0 => "選擇現有的相簿", + ], + "An error occurred. Please try again later." => [ + 0 => "發生錯誤. 請稍後再試.", + ], + "Please select a valid image file type." => [ + 0 => "請選擇一個有效的圖片格式", + ], + "Please select a picture of at most %s size." => [ + 0 => "請選擇最大允許 %s 大小的圖像.", + ], + "Profile image updated." => [ + 0 => "個人頭像已更新", + ], + "Profile background image updated." => [ + 0 => "個人主頁背景已更新", + ], + "Profile background image deleted." => [ + 0 => "個人主頁背景已刪除", + ], + "Error deleting profile background image." => [ + 0 => "在刪除個人主頁背景時發生錯誤", + ], + "Passwords don't match" => [ + 0 => "密碼不合", + ], + "Update available v%s" => [ + 0 => "更新 v%s 已開放", + ], + "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." => [ + 0 => "有可用的系統更新. 您可以自動下載並安裝此更新或者前往 %s 繼續下載該更新檔案.", + ], + "The release notes for this update are:" => [ + 0 => "本次發布的主要更新說明:", + ], + "Update now" => [ + 0 => "立刻更新", + ], + "This website is running latest %s version" => [ + 0 => "網站正在使用最新的%s版本", + ], + "loading" => [ + 0 => "載入中", + ], + "Toggle select" => [ + 0 => "切換選擇", + ], + "Like" => [ + 0 => "喜歡", + ], + "Toggle flag" => [ + 0 => "切換標誌", + ], + "Edit" => [ + 0 => "編輯", + ], + "Album" => [ + 0 => "相簿", + ], + "Approve" => [ + 0 => "批准", + ], + "Delete" => [ + 0 => "刪除", + ], + "Close" => [ + 0 => "關閉", + ], + "Previous" => [ + 0 => "前一個", + ], + "Next" => [ + 0 => "下一個", + ], + "Clipboard image" => [ + 0 => "剪貼板圖像", + ], + "File too big." => [ + 0 => "文件超出允許上傳的大小", + ], + "Invalid or unsupported file format." => [ + 0 => "無效或是不支援的檔案格式.", + ], + "Some files couldn't be added" => [ + 0 => "有些文件無法加入", + ], + "image" => [ + 0 => "圖片", + ], + "%s's Albums" => [ + 0 => "%s 的相簿", + ], + "Image edited successfully." => [ + 0 => "圖片編輯成功", + ], + "private" => [ + 0 => "私密", + ], + "Album edited successfully." => [ + 0 => "相簿編輯成功.", + ], + "Invalid URL key." => [ + 0 => "無效的URL key", + ], + "Category URL key already being used." => [ + 0 => "此分類URL已被使用", + ], + "Category successfully deleted." => [ + 0 => "分類成功刪除", + ], + "Category %s added." => [ + 0 => "分類 %s 已增加.", + ], + "Invalid expiration date." => [ + 0 => "無效的有效期限", + ], + "IP %s already banned." => [ + 0 => "IP %s 已經被禁止訪問", + ], + "IP %s banned." => [ + 0 => "IP %s 禁止訪問", + ], + "IP ban successfully deleted." => [ + 0 => "IP已從阻擋列表中刪除", + ], + "Please fill all the required fields." => [ + 0 => "請填寫所有必填字段", + ], + "Invalid storage capacity value. Make sure to use a valid format." => [ + 0 => "無效的儲存容量值. 請務必使用一個有效的格式", + ], + "Storage capacity can't be lower than its current usage (%s)." => [ + 0 => "儲存空間不能少於當前的使用情形(%s).", + ], + "Invalid URL." => [ + 0 => "無效URL", + ], + "Storage successfully edited." => [ + 0 => "儲存空間編輯成功", + ], + "User added successfully." => [ + 0 => "成功新增用戶", + ], + "The content has been deleted." => [ + 0 => "該內容已被刪除", + ], + "The content has been moved." => [ + 0 => "該內容已被移動", + ], + "Select" => [ + 0 => "選擇", + ], + "Unselect" => [ + 0 => "未選取", + ], + "The content has been edited." => [ + 0 => "該內容已被編輯", + ], + "Import ID %s removed" => [ + 0 => "已刪除ID %s 的導入作業", + ], + "Spam detected" => [ + 0 => "檢測到SPAM", + ], + "album" => [ + 0 => "相簿", + ], + "Flooding detected. You can only upload %limit% %content% per %time%" => [ + 0 => "檢測到短時間內大量圖片上傳。 您只能每%time%上傳%limit%%content%", + ], + "Untitled" => [ + 0 => "未命名標題", + ], + "%s's images" => [ + 0 => "%s的圖片", + ], + "Private" => [ + 0 => "私密", + ], + "Public" => [ + 0 => "公開", + ], + "Me" => [ + 0 => "我", + ], + "Link" => [ + 0 => "連結", + ], + "Password" => [ + 0 => "密碼", + ], + "view" => [ + 0 => "瀏覽次數", + ], + "After %n %t" => [ + 0 => "經過 %n %t", + ], + "minute" => [ + 0 => "分鐘", + ], + "hour" => [ + 0 => "小時", + ], + "day" => [ + 0 => "天", + ], + "week" => [ + 0 => "週", + ], + "month" => [ + 0 => "月", + ], + "year" => [ + 0 => "年", + ], + "Don't autodelete" => [ + 0 => "不要自動刪除", + ], + "Can't open %s for writing" => [ + 0 => "無法打開 %s 寫入", + ], + "Duplicated upload" => [ + 0 => "重複的上傳", + ], + "Private upload" => [ + 0 => "私人上傳", + ], + "like" => [ + 0 => "喜歡", + ], + "Recent" => [ + 0 => "最新", + ], + "Trending" => [ + 0 => "最熱門", + ], + "Top users" => [ + 0 => "排名高的用戶", + ], + "Most recent" => [ + 0 => "最新的", + ], + "Oldest" => [ + 0 => "最舊的", + ], + "Most viewed" => [ + 0 => "最熱門的", + ], + "Popular" => [ + 0 => "最喜歡", + ], + "Most liked" => [ + 0 => "最喜歡的", + ], + "Explore" => [ + 0 => "探索", + ], + "Animated" => [ + 0 => "動圖", + ], + "Search" => [ + 0 => "搜尋", + ], + "People" => [ + 0 => "人", + ], + "Image" => [ + 0 => "圖片", + ], + "User" => [ + 0 => "使用者", + ], + "adult" => [ + 0 => "成人", + ], + "teen" => [ + 0 => "青年", + ], + "Content of type %s is forbidden" => [ + 0 => "%s 內容是被禁止的", + ], + "Can't create %s destination dir" => [ + 0 => "無法創建 %s 目標目錄", + ], + "Internal" => [ + 0 => "內部", + ], + "Unlimited" => [ + 0 => "無限的", + ], + "used" => [ + 0 => "已用", + ], + "Private profile" => [ + 0 => "私人檔案", + ], + "second" => [ + 0 => "秒", + ], + "%s ago" => [ + 0 => "%s 以前", + ], + "moments ago" => [ + 0 => "剛剛", + ], + "Dashboard" => [ + 0 => "主控台", + ], + "There is an update available for your system. Go to %s to download and install this update." => [ + 0 => "您的系統有一個可用更新. 前往 %s 下載並安裝此更新.", + ], + "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." => [ + 0 => "系統資料庫已經過時. 你需要運行 <a href=\"%s\">更新</a> 工具.", + ], + "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." => [ + 0 => "網站處於維護模式. 欲恢復設置請前往 <a href=\"%s\">主控台 > 設定</a>.", + ], + "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." => [ + 0 => "您應該禁用PHP錯誤報告在生產環境. 轉到 <a href='%s'>系統設定</a> 恢復此設置.", + ], + "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." => [ + 0 => "你沒有改變預設的電子郵件設定. 轉到 <a href='%s'>電子郵件設定</a> 以解決此問題.", + ], + "There is an update available for your Chevereto based website." => [ + 0 => "Chevereto 基礎網站有可用的更新", + ], + "admin dashboard" => [ + 0 => "管理員主控台", + ], + "You can apply this update directly from your %a or download it from %s and then manually install it." => [ + 0 => "您可以直接從 %a 安裝此更新或從 %s 下載, 然後手動安裝更新.", + ], + "view on %s" => [ + 0 => "%s 已查看", + ], + "cookie policy" => [ + 0 => "cookie 政策", + ], + "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." => [ + 0 => "我們使用了第三方cookie來改善您的瀏覽體驗和服務。如果您繼續使用我們的網站,則你需要理解並接受這個Cookie政策%cookie_policy_link。", + ], + "I understand" => [ + 0 => "我明白", + ], + "Forgot password?" => [ + 0 => "忘記密碼?", + ], + "Reset password" => [ + 0 => "重設密碼", + ], + "Resend account activation" => [ + 0 => "重寄一封帳號確認信", + ], + "Add your email address" => [ + 0 => "增加您的電子郵件", + ], + "Email changed" => [ + 0 => "電子郵件已修改", + ], + "%s says you are a robot" => [ + 0 => "%s 認為你是機器人", + ], + "Invalid Username/Email" => [ + 0 => "無效的帳號或電子郵件", + ], + "User doesn't have an email." => [ + 0 => "使用者沒有設置電子郵件", + ], + "Request denied" => [ + 0 => "請求被否定", + ], + "Account needs to be activated to use this feature" => [ + 0 => "要使用這項功能,帳號需要被啟用", + ], + "Account already activated" => [ + 0 => "帳號已經被啟用", + ], + "Allow up to 15 minutes for the email. You can try again later." => [ + 0 => "已超過15分鐘內發送電子郵件次數,您可以稍後再試", + ], + "Reset your password at %s" => [ + 0 => "在 %s 後重設您的密碼", + ], + "Confirmation required at %s" => [ + 0 => "您在 %s 註冊的帳號已經準備好,啟用後可立即使用.", + ], + "Welcome to %s" => [ + 0 => "歡迎到%s", + ], + "Email already being used" => [ + 0 => "此電子郵件已被使用", + ], + "Password required" => [ + 0 => "需要密碼", + ], + "Embed codes" => [ + 0 => "嵌入代碼", + ], + "%a album hosted in %w" => [ + 0 => "%a 相簿儲存在 %w", + ], + "Stats" => [ + 0 => "統計", + ], + "Images" => [ + 0 => "圖片", + ], + "Albums" => [ + 0 => "相簿", + ], + "Users" => [ + 0 => "使用者", + ], + "Settings" => [ + 0 => "設定", + ], + "Bulk importer" => [ + 0 => "批量導入工具", + ], + "install update" => [ + 0 => "安裝更新", + ], + "check for updates" => [ + 0 => "檢查更新", + ], + "Support" => [ + 0 => "支援", + ], + "Bug tracking" => [ + 0 => "錯誤跟踪", + ], + "Documentation" => [ + 0 => "文件", + ], + "PHP version" => [ + 0 => "PHP版本", + ], + "Server" => [ + 0 => "伺服器", + ], + "MySQL version" => [ + 0 => "MySQL版本", + ], + "MySQL server info" => [ + 0 => "MySQL伺服器資訊", + ], + "File uploads" => [ + 0 => "檔案上傳", + ], + "Enabled" => [ + 0 => "啟用", + ], + "Disabled" => [ + 0 => "禁用", + ], + "Max. upload file size" => [ + 0 => "最大上傳檔案大小", + ], + "Max. post size" => [ + 0 => "最大的傳送大小", + ], + "Max. execution time" => [ + 0 => "最大執行時間", + ], + "%d second" => [ + 0 => "%d 秒", + ], + "Memory limit" => [ + 0 => "記憶體限制", + ], + "Rebuild stats" => [ + 0 => "重建統計", + ], + "Connecting IP" => [ + 0 => "連接中的IP", + ], + "Not your IP?" => [ + 0 => "不是您的IP ?", + ], + "Website" => [ + 0 => "網站名稱", + ], + "Content" => [ + 0 => "內容", + ], + "Pages" => [ + 0 => "頁面", + ], + "Listings" => [ + 0 => "佇列", + ], + "Image upload" => [ + 0 => "圖片上傳", + ], + "Categories" => [ + 0 => "分類", + ], + "Consent screen" => [ + 0 => "內容警告", + ], + "Flood protection" => [ + 0 => "流量攻擊防護", + ], + "Theme" => [ + 0 => "主題", + ], + "Homepage" => [ + 0 => "首頁", + ], + "Banners" => [ + 0 => "廣告", + ], + "System" => [ + 0 => "系統", + ], + "Routing" => [ + 0 => "路徑", + ], + "Languages" => [ + 0 => "語言", + ], + "External storage" => [ + 0 => "外部儲存空間", + ], + "Email" => [ + 0 => "電子郵件", + ], + "Social networks" => [ + 0 => "社群網站", + ], + "External services" => [ + 0 => "外部服務", + ], + "IP bans" => [ + 0 => "封鎖IP", + ], + "Additional settings" => [ + 0 => "其他設置", + ], + "Tools" => [ + 0 => "工具", + ], + "Can't delete all homepage cover images" => [ + 0 => "不能刪除所有的首頁封面圖像", + ], + "Homepage cover image deleted" => [ + 0 => "首頁封面圖像已刪除", + ], + "Local" => [ + 0 => "本地", + ], + "External" => [ + 0 => "外部", + ], + "All" => [ + 0 => "全部", + ], + "search content" => [ + 0 => "內容搜尋", + ], + "Add page" => [ + 0 => "添加頁面", + ], + "Edit page ID %s" => [ + 0 => "編輯頁面ID %s", + ], + "The page has been added successfully." => [ + 0 => "該頁面已成功添加.", + ], + "The page has been deleted." => [ + 0 => "該頁面已被刪除.", + ], + "homepage" => [ + 0 => "首頁", + ], + "Before main title (%s)" => [ + 0 => "在主標題前 %s", + ], + "After call to action (%s)" => [ + 0 => "在按鈕後 %s", + ], + "After cover (%s)" => [ + 0 => "在封面後 %s", + ], + "After listing (%s)" => [ + 0 => "在列表後 %s", + ], + "Before pagination" => [ + 0 => "分頁前", + ], + "After pagination" => [ + 0 => "分頁後", + ], + "Content (image and album)" => [ + 0 => "內容(圖片和相簿)", + ], + "Tab about column" => [ + 0 => "相關標籤", + ], + "Before comments" => [ + 0 => "留言前", + ], + "Image page" => [ + 0 => "圖片頁面", + ], + "Inside viewer top (image page)" => [ + 0 => "內部圖像瀏覽器頂部(圖像頁)", + ], + "Inside viewer foot (image page)" => [ + 0 => "內部圖像瀏覽器底部(圖像頁)", + ], + "After image viewer (image page)" => [ + 0 => "圖像瀏覽器後(圖像頁)", + ], + "Before header (image page)" => [ + 0 => "頭前(圖像頁)", + ], + "After header (image page)" => [ + 0 => "頭後(圖像頁)", + ], + "Footer (image page)" => [ + 0 => "頁尾(圖像頁)", + ], + "Album page" => [ + 0 => "相簿頁面", + ], + "Before header (album page)" => [ + 0 => "頭前(相簿頁)", + ], + "After header (album page)" => [ + 0 => "頭後(相簿頁)", + ], + "User profile page" => [ + 0 => "個人主頁", + ], + "After top (user profile)" => [ + 0 => "頭後(個人主頁)", + ], + "Before listing (user profile)" => [ + 0 => "列表前(個人主頁)", + ], + "Explore page" => [ + 0 => "探索頁面", + ], + "After top (explore page)" => [ + 0 => "頭後(探索頁面)", + ], + "NSFW" => [ + 0 => "非闔家皆宜", + ], + "Invalid website name" => [ + 0 => "無效的網站名稱", + ], + "Invalid language" => [ + 0 => "無效的語言", + ], + "Invalid timezone" => [ + 0 => "無效的時區", + ], + "Invalid value: %s" => [ + 0 => "無效的值: %s", + ], + "Invalid upload storage mode" => [ + 0 => "無效的上傳儲存空間模式", + ], + "Invalid upload filenaming" => [ + 0 => "無效的上傳檔名", + ], + "Invalid thumb width" => [ + 0 => "無效的縮圖寬度", + ], + "Invalid thumb height" => [ + 0 => "無效的縮圖高度", + ], + "Invalid medium size" => [ + 0 => "無效的中等圖像大小", + ], + "Invalid watermark percentage" => [ + 0 => "無效的水印百分比", + ], + "Invalid watermark opacity" => [ + 0 => "無效的水印不透明度", + ], + "Invalid theme" => [ + 0 => "無效的主題", + ], + "Invalid value" => [ + 0 => "無效的值", + ], + "Invalid theme tone" => [ + 0 => "無效的主題色調", + ], + "Invalid theme main color" => [ + 0 => "無效的主題主要顏色", + ], + "Invalid theme top bar button color" => [ + 0 => "無效的主題頂部欄按鈕顏色", + ], + "Invalid theme image listing size" => [ + 0 => "無效的主題圖片佇列大小", + ], + "Invalid user id" => [ + 0 => "無效的使用者編號", + ], + "Invalid email mode" => [ + 0 => "無效的電子郵件方式", + ], + "Invalid SMTP port" => [ + 0 => "無效的SMTP端口", + ], + "Invalid SMTP security" => [ + 0 => "無效的SMTP安全", + ], + "Invalid website mode" => [ + 0 => "無效的網站模式", + ], + "Invalid personal mode user ID" => [ + 0 => "無效的個人模式使用者ID", + ], + "Invalid or reserved route" => [ + 0 => "無效的路徑", + ], + "Invalid website privacy mode" => [ + 0 => "無效的網站隱私模式", + ], + "Invalid website content privacy mode" => [ + 0 => "無效的網站內容隱私權設定", + ], + "Invalid homepage style" => [ + 0 => "無效的主頁風格", + ], + "Invalid homepage call to action button color" => [ + 0 => "無效的按鈕顏色", + ], + "Invalid homepage call to action functionality" => [ + 0 => "無效的主頁「開始上傳」按鈕功能", + ], + "Invalid title" => [ + 0 => "無效標題", + ], + "Invalid status" => [ + 0 => "無效狀態", + ], + "Invalid type" => [ + 0 => "無效的類型", + ], + "Invalid visibility" => [ + 0 => "无效的可见度", + ], + "Invalid internal type" => [ + 0 => "內部類型無效", + ], + "Invalid target attribute" => [ + 0 => "無效的目標屬性", + ], + "Invalid rel attribute" => [ + 0 => "無效的rel屬性", + ], + "Invalid icon" => [ + 0 => "無效的圖標", + ], + "Invalid URL key" => [ + 0 => "無效的鏈接值", + ], + "Invalid file path" => [ + 0 => "無效的文件路徑", + ], + "Invalid link URL" => [ + 0 => "無效的鏈接網址", + ], + "Invalid user minimum age" => [ + 0 => "無效的使用者最低年齡", + ], + "Only alphanumeric, hyphen and underscore characters are allowed" => [ + 0 => "僅允許字母, 連字符號和下劃線符號是允許的", + ], + "Invalid URL" => [ + 0 => "無效URL", + ], + "Routes can't be the same" => [ + 0 => "路徑是不能相同的", + ], + "Invalid upload image path" => [ + 0 => "無效的圖像上傳路徑", + ], + "Invalid call to action URL" => [ + 0 => "無效的主頁「開始上傳」按鈕網址", + ], + "Max. allowed %s" => [ + 0 => "超過最大允許的 %s", + ], + "Can't map %m to an existing folder (%f)" => [ + 0 => "無法映射 %m 到現有的檔案夾 (%f)", + ], + "Can't map %m to an existing route (%r)" => [ + 0 => "無法映射 %m 到現有的路徑 (%f)", + ], + "Can't map %m to %r (username collision)" => [ + 0 => "無法映射 %m 至 %r (使用者名稱衝突)", + ], + "Invalid SMTP server" => [ + 0 => "無效的SMTP服務器", + ], + "Invalid SMTP username" => [ + 0 => "無效的SMTP用戶名", + ], + "Invalid key" => [ + 0 => "無效的密鑰", + ], + "This URL key is already being used by another page (ID %s)" => [ + 0 => "此鏈接值已被另壹個頁面使用 (ID %s)", + ], + "This file path is already being used by another page (ID %s)" => [ + 0 => "此文件路徑已被另壹個頁面使用 (ID %s)", + ], + "Can't save page contents: %s." => [ + 0 => "无法保存页面内容: %s", + ], + "Following" => [ + 0 => "關註", + ], + "About" => [ + 0 => "關於", + ], + "Image ID" => [ + 0 => "圖片ID", + ], + "Uploader IP" => [ + 0 => "上傳者IP", + ], + "Ban IP" => [ + 0 => "阻擋IP", + ], + "IP already banned" => [ + 0 => "IP已被阻擋", + ], + "Upload date" => [ + 0 => "上傳時間", + ], + "Image %i in %a album" => [ + 0 => "圖片 %i 在 %a 相簿", + ], + "Image %i in %c category" => [ + 0 => "圖片 %i 在 %c 分類", + ], + "Image %i hosted in %w" => [ + 0 => "圖片 %i 儲存在 %w", + ], + "Direct links" => [ + 0 => "直連URL", + ], + "Image link" => [ + 0 => "圖片連結", + ], + "Image URL" => [ + 0 => "圖片URL", + ], + "Thumbnail URL" => [ + 0 => "縮圖URL", + ], + "Medium URL" => [ + 0 => "中型圖片URL", + ], + "Full image" => [ + 0 => "全等圖像", + ], + "Full image (linked)" => [ + 0 => "全等圖像 (關聯)", + ], + "Medium image (linked)" => [ + 0 => "中等圖像 (關聯)", + ], + "Thumbnail image (linked)" => [ + 0 => "縮圖圖像 (關聯)", + ], + "Login needed" => [ + 0 => "需要登入", + ], + "IP address already banned" => [ + 0 => "IP位置已經被禁止訪問", + ], + "Missing values" => [ + 0 => "遺失的值", + ], + "Invalid role" => [ + 0 => "無效的角色", + ], + "Username already being used" => [ + 0 => "該使用者名稱已經被使用", + ], + "Add a password or another social connection before deleting %s" => [ + 0 => "增加一個密碼或者是在以往社群連接時刪除 %s", + ], + "Add an email or another social connection before deleting %s" => [ + 0 => "增加一個電子郵件或者是在以往社群連接時刪除 %s", + ], + "%s has been disconnected." => [ + 0 => "%s 已經離線", + ], + "Test email from %s @ %t" => [ + 0 => "測試郵件來自 %s @ %t", + ], + "This is just a test" => [ + 0 => "這只是壹個測試", + ], + "Test email sent to %s." => [ + 0 => "測試電子郵件發送到 %s.", + ], + "Downloading %s data" => [ + 0 => "正在下載 %s 數據", + ], + "User %s followed" => [ + 0 => "使用者 %s 已跟隨", + ], + "User %s unfollowed" => [ + 0 => "使用者 %s 取消跟隨", + ], + "Content liked" => [ + 0 => "喜歡的內容", + ], + "Content disliked" => [ + 0 => "不喜歡的內容", + ], + "%u liked your %t %c" => [ + 0 => "%u 喜歡你的 %t %c", + ], + "%u is now following you" => [ + 0 => "%u 關註了你", + ], + "A private user" => [ + 0 => "私人用戶", + ], + "Wrong Username/Email password combination" => [ + 0 => "錯誤的用戶名或密碼", + ], + "Sign in" => [ + 0 => "登入", + ], + "Moderate" => [ + 0 => "審核", + ], + "Upload images" => [ + 0 => "上傳圖片", + ], + "Upload plugin" => [ + 0 => "上載插件", + ], + "Image search results for %s" => [ + 0 => "圖片搜尋結果: %s", + ], + "Album search results for %s" => [ + 0 => "相簿搜尋結果: %s", + ], + "User search results for %s" => [ + 0 => "使用者搜尋結果: %s", + ], + "Account" => [ + 0 => "帳戶", + ], + "Profile" => [ + 0 => "個人資料", + ], + "Linked accounts" => [ + 0 => "連結的帳號", + ], + "Powered by" => [ + 0 => "加持自", + ], + "Invalid image expiration: %s" => [ + 0 => "無效的有效期限: %s", + ], + "An email has been sent to %s with instructions to activate this email" => [ + 0 => "這封郵件已發送至 %s 請登入信箱並啟用", + ], + "Invalid name" => [ + 0 => "無效的名稱", + ], + "Invalid website" => [ + 0 => "無效的網站", + ], + "Wrong password" => [ + 0 => "密碼錯誤", + ], + "Use a new password" => [ + 0 => "使用新的密碼", + ], + "Changes have been saved." => [ + 0 => "已儲存改變", + ], + "Password has been changed" => [ + 0 => "密碼已更改", + ], + "Password has been created." => [ + 0 => "密碼已經建立", + ], + "Wrong Username/Email values" => [ + 0 => "錯誤的用戶名或電子郵件", + ], + "Settings for %s" => [ + 0 => "%s 的設定", + ], + "You must agree to the terms and privacy policy" => [ + 0 => "您必須同意條款和隱私政策", + ], + "You must be at least %s years old to use this website." => [ + 0 => "您必須年滿 %s 歲才能繼續使用網站.", + ], + "Create account" => [ + 0 => "註冊帳戶", + ], + "Upload" => [ + 0 => "上傳", + ], + "%s's Images" => [ + 0 => "%s 的圖片", + ], + "Results for" => [ + 0 => "結果", + ], + "Liked by %s" => [ + 0 => "來自 %s 的喜歡", + ], + "Liked" => [ + 0 => "已喜歡", + ], + "Followers" => [ + 0 => "粉絲", + ], + "%n (%u) albums on %w" => [ + 0 => "%n (%u) 相簿在 %w", + ], + "%n (%u) on %w" => [ + 0 => "%n (%u) 在 %w", + ], + "Discovery" => [ + 0 => "探索", + ], + "Random" => [ + 0 => "隨機", + ], + "Advanced search" => [ + 0 => "進階搜尋", + ], + "Notices (%s)" => [ + 0 => "通知 (%s)", + ], + "Notifications" => [ + 0 => "通知", + ], + "You don't have notifications" => [ + 0 => "您沒有任何通知", + ], + "My Profile" => [ + 0 => "我的頁面", + ], + "Lights" => [ + 0 => "燈光", + ], + "Sign out" => [ + 0 => "登出", + ], + "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." => [ + 0 => "我們收到了在 %w 更改 <a href=\"%u\">%n</a> 帳戶電子郵件的要求", + ], + "To complete the process you must <a href=\"%s\">activate your email</a>." => [ + 0 => "要完成此過程, 您必須 <a href=\"%s\">啟用您的電子郵件</a> .", + ], + "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" => [ + 0 => "另外, 您可以複製並貼上網址到瀏覽器:<a href=\"%s\">%s</a>", + ], + "If you didn't intend this just ignore this message." => [ + 0 => "如果您不打算註冊或不是您註冊的, 請忽略此訊息", + ], + "This request was made from IP: %s" => [ + 0 => "請求來自IP:%s", + ], + "We received a request to register the %n account at %w." => [ + 0 => "您好, 我們收到了您在 %w 註冊 %n 帳戶的要求.", + ], + "To complete the process you must <a href=\"%s\">activate your account</a>." => [ + 0 => "要完成此過程, 您必須<a href=\"%s\">啟用您的帳戶</a>.", + ], + "We received a request to reset the password for your <a href=\"%u\">%n</a> account." => [ + 0 => "我們收到為您重置密碼 <a href=\"%u\">%n</a> 帳戶的請求", + ], + "To reset your password <a href=\"%s\">follow this link</a>." => [ + 0 => "要重設您的密碼 <a href=\"%s\">請點擊此連結</a> .", + ], + "Hi %n, welcome to %w" => [ + 0 => "您好 %n, 歡迎來到 %w .", + ], + "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." => [ + 0 => "現在, 您的帳戶已準備就緒, 您可以上傳你的圖片, 建立相簿並設訂您的內容的隱私, 以及許多很酷的事情, 你會探索和盡情享受.", + ], + "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." => [ + 0 => "此外, 這裡是你自己的個人資料頁: <a href=\"%u\">%n</a>. 來定製你的個人主頁吧,!", + ], + "Thank you for joining" => [ + 0 => "感謝您的加入", + ], + "This email was sent from %w %u" => [ + 0 => "這封電子郵件是由 %w %u 發送", + ], + "Drag and drop or paste images here to upload" => [ + 0 => "拖拉或是直接貼上圖像在此進行上傳", + ], + "Select the images to upload" => [ + 0 => "選擇需要上傳的圖片", + ], + "browse from your computer" => [ + 0 => "從電腦內選擇", + ], + "add image URLs" => [ + 0 => "加入圖片連結", + ], + "You can also %i or %u." => [ + 0 => "你可以從%i或%u", + ], + "browse from your device" => [ + 0 => "從您的設備瀏覽", + ], + "take a picture" => [ + 0 => "截圖", + ], + "You can also %i, %c or %u." => [ + 0 => "你也可以 %i, %c 或者 %u.", + ], + "Edit or resize any image by clicking the image preview" => [ + 0 => "編輯或通過點擊圖像預覽調整圖像大小", + ], + "Edit any image by touching the image preview" => [ + 0 => "通過點擊圖像預覽來調整任意圖像", + ], + "your computer" => [ + 0 => "你的電腦", + ], + "You can add more images from %i or %u." => [ + 0 => "您可以從 %i 或 %u 添加更多圖像.", + ], + "your device" => [ + 0 => "你的裝置", + ], + "You can add more images from %i, %c or %u." => [ + 0 => "您可以從 %i, %c 或%u添加更多圖像.", + ], + "Uploading %q %o" => [ + 0 => "上傳中 %q %o", + ], + "complete" => [ + 0 => "完成", + ], + "The queue is being uploaded, it should take just a few seconds to complete." => [ + 0 => "佇列上傳中. 需要一點時間來完成", + ], + "Upload complete" => [ + 0 => "上傳完成", + ], + "Uploaded content added to %s." => [ + 0 => "上傳的內容已經添加到%s", + ], + "You can %c with the content just uploaded or %m." => [ + 0 => "您已經可以使用剛剛上傳的%c或是%m", + ], + "You can %c with the content just uploaded." => [ + 0 => "您已經可以使用剛剛上傳的%c", + ], + "create a new album" => [ + 0 => "建立新相簿", + ], + "move it to an existing album" => [ + 0 => "移動到現有的相簿", + ], + "You must %s or %l to save this content into your account." => [ + 0 => "您必須 %s 或 %l 才能將此內容保存到您的帳戶中。", + ], + "create an account" => [ + 0 => "建立新帳號", + ], + "sign in" => [ + 0 => "登入", + ], + "No %s have been uploaded" => [ + 0 => "沒有%s已經上傳", + ], + "Some errors have occured and the system couldn't process your request." => [ + 0 => "發生錯誤, 系統無法處理您的請求.", + ], + "Category" => [ + 0 => "分類", + ], + "Select category" => [ + 0 => "選擇類別", + ], + "Mark this if the upload is not family safe" => [ + 0 => "標記這個上傳內容為非闔家皆宜", + ], + "Not family safe upload" => [ + 0 => "非闔家皆宜的上傳", + ], + "Uploading" => [ + 0 => "上傳中", + ], + "or" => [ + 0 => "或", + ], + "cancel" => [ + 0 => "取消", + ], + "cancel remaining" => [ + 0 => "取消剩下的", + ], + "Note: Some images couldn't be uploaded." => [ + 0 => "注意: 部分圖片無法上傳.", + ], + "learn more" => [ + 0 => "了解更多", + ], + "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [ + 0 => "檢查 <a data-modal=\"simple\" data-target=\"failed-upload-result\">錯誤報告</a> 來了解更多訊息.", + ], + "Register to get %s" => [ + 0 => "註冊之後可上傳大小:%s", + ], + "reset" => [ + 0 => "重置", + ], + "close" => [ + 0 => "關閉", + ], + "Note" => [ + 0 => "注意", + ], + "We must approve the uploaded content before being able to share." => [ + 0 => "我們必須先批准上傳的內容,然後才能共享。", + ], + "copy" => [ + 0 => "複製", + ], + "insert" => [ + 0 => "插入", + ], + "Remove" => [ + 0 => "移除", + ], + "Title" => [ + 0 => "標題", + ], + "optional" => [ + 0 => "選擇性的", + ], + "Resize image" => [ + 0 => "變更圖片大小", + ], + "Width" => [ + 0 => "寬度", + ], + "Height" => [ + 0 => "高度", + ], + "Note: Animated GIF images won't be resized." => [ + 0 => "筆記: 動畫 GIF 圖像不會被調整大小.", + ], + "Auto delete image" => [ + 0 => "自動刪除圖像", + ], + "Sign up" => [ + 0 => "註冊", + ], + "%s to be able to customize or disable image auto delete." => [ + 0 => "%s能夠自訂是否使用自動刪除圖片", + ], + "Mark this if the image is not family safe" => [ + 0 => "標記這個圖片為非闔家皆宜內容", + ], + "Flag as unsafe" => [ + 0 => "標記為不安全", + ], + "Description" => [ + 0 => "描述", + ], + "Brief description of this image" => [ + 0 => "簡短的圖片敘述", + ], + "Add image URLs" => [ + 0 => "加入圖片URL", + ], + "Add the image URLs here" => [ + 0 => "在此加入圖片URL", + ], + "Create album" => [ + 0 => "建立相簿", + ], + "The uploaded content will be moved to this newly created album." => [ + 0 => "上傳的內容將被移動到此新創建的相冊。", + ], + "existing album" => [ + 0 => "現有相冊", + ], + "You can also move the content to an %a." => [ + 0 => "您還可以將內容移動到%a", + ], + "You must %s or %l if you want to edit this album later on." => [ + 0 => "如果你想稍後編輯此相冊,則必須為 %s 或 %l。", + ], + "Move to album" => [ + 0 => "移動到相簿", + ], + "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." => [ + 0 => "選擇一個現有的相簿儲存將要上傳的圖片. 你也可以<a class=\"modal-switch\" data-switch=\"move-new-album\">建立一個新的相簿</a> 和移動圖片.", + ], + "Error report" => [ + 0 => "錯誤報告", + ], + "Links" => [ + 0 => "連結", + ], + "Viewer links" => [ + 0 => "觀看者連結", + ], + "HTML Codes" => [ + 0 => "HTML代碼", + ], + "HTML image" => [ + 0 => "HTML圖片", + ], + "HTML full linked" => [ + 0 => "HTML完整大小連結", + ], + "HTML medium linked" => [ + 0 => "HTML中等圖片連結", + ], + "HTML thumbnail linked" => [ + 0 => "HTML縮圖連結", + ], + "BBCodes" => [ + 0 => "BBCode代碼", + ], + "BBCode full" => [ + 0 => "BBCode完整大小", + ], + "BBCode full linked" => [ + 0 => "BBCode完整大小連結", + ], + "BBCode medium linked" => [ + 0 => "BBCode中等圖片連結", + ], + "BBCode thumbnail linked" => [ + 0 => "BBCode縮圖連結", + ], + "Markdown full" => [ + 0 => "Markdown 詳細訊息", + ], + "Markdown full linked" => [ + 0 => "Markdown 詳細連結", + ], + "Markdown medium linked" => [ + 0 => "Markdown 中等大小圖像連結", + ], + "Markdown thumbnail linked" => [ + 0 => "Markdown 縮圖連結", + ], + "All these words" => [ + 0 => "全部關鍵字", + ], + "Type the important words: tri-colour rat terrier" => [ + 0 => "輸入關鍵字: 風景 人物 攝影", + ], + "This exact word or phrase" => [ + 0 => "精確搜索關鍵字(若關鍵字帶空格請加雙引號)", + ], + "Put exact words in quotes: \"rat terrier\"" => [ + 0 => "按此格式輸入關鍵字: \"風景 人物\"", + ], + "None of these words" => [ + 0 => "排除的關鍵字(若關鍵字帶空格請加雙引號)", + ], + "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" => [ + 0 => "在不需要的關鍵字前加減號: -鄧麗欣 -\"王 祖男\"", + ], + "Storage" => [ + 0 => "儲存空間", + ], + "IP address" => [ + 0 => "IP位置", + ], + "Album name" => [ + 0 => "相簿名稱", + ], + "move to existing album" => [ + 0 => "移動到現有的相簿", + ], + "Album description" => [ + 0 => "相簿描述", + ], + "Brief description of this album" => [ + 0 => "簡短的相簿敘述", + ], + "Album privacy" => [ + 0 => "相簿隱私", + ], + "Who can view this content" => [ + 0 => "誰可以看到", + ], + "Private (just me)" => [ + 0 => "私密(只有我)", + ], + "Private (anyone with the link)" => [ + 0 => "私密(任何知道連結的人)", + ], + "Private (password protected)" => [ + 0 => "私人 (密碼保護)", + ], + "Album password" => [ + 0 => "相簿密碼", + ], + "Name" => [ + 0 => "名字", + ], + "Category name" => [ + 0 => "分類名稱", + ], + "URL key" => [ + 0 => "連結key", + ], + "Category URL key" => [ + 0 => "分類連結key", + ], + "Only letters, numbers, and hyphens" => [ + 0 => "只有字母, 數字和片語", + ], + "Brief description of this category" => [ + 0 => "簡短的類別敘述", + ], + "Untitled image" => [ + 0 => "未命名圖片", + ], + "Mark this if the image is not safe for work" => [ + 0 => "如果圖像不安全,請標記此標記", + ], + "Flag not safe" => [ + 0 => "標記為不安全", + ], + "Path" => [ + 0 => "路徑", + ], + "Local path (absolute)" => [ + 0 => "絕對路徑", + ], + "Directory structure" => [ + 0 => "目錄結構", + ], + "Parse top level folders as users (username)" => [ + 0 => "將頂級文件夾解析為用戶(用戶名)", + ], + "Parse top level folders as albums" => [ + 0 => "將頂級文件夾解析為相冊", + ], + "Don't parse folders" => [ + 0 => "不解析文件夾", + ], + "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." => [ + 0 => "當將頂級文件夾解析為用戶時,第二級文件夾將被解析為用戶相冊。 將頂級文件夾解析為相冊會將其添加為來賓相冊。", + ], + "Threads" => [ + 0 => "主題", + ], + "Select number of threads" => [ + 0 => "選擇線程數", + ], + "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." => [ + 0 => "這決定了導入過程的強度和速度。 在共享服務器上使用的線程不要超過 %s 個。", + ], + "You can use wildcard * characters." => [ + 0 => "您可以使用通配符*字符.", + ], + "Expiration date" => [ + 0 => "到期日", + ], + "YYYY-MM-DD HH:MM:SS" => [ + 0 => "YYYY-MM-DD HH:MM:SS (例如: 2015-02-09 18:00:00)", + ], + "Example" => [ + 0 => "範例", + ], + "Until which date this IP address will be banned? Leave it empty for no expiration." => [ + 0 => "阻擋此IP到多久? 留空則永久禁止", + ], + "Message" => [ + 0 => "訊息", + ], + "Text message, HTML or a redirect URL" => [ + 0 => "文字訊息, HTML或重導向至URL", + ], + "Existing album" => [ + 0 => "現有的相簿", + ], + "create new album" => [ + 0 => "建立新的相簿", + ], + "Storage name" => [ + 0 => "儲存空間名稱", + ], + "API" => [ + 0 => "API", + ], + "Region" => [ + 0 => "地區", + ], + "Storage region" => [ + 0 => "儲存空間區域", + ], + "Storage bucket" => [ + 0 => "儲存bucket", + ], + "Key" => [ + 0 => "金鑰", + ], + "Storage key" => [ + 0 => "儲存金鑰", + ], + "Secret" => [ + 0 => "Secret", + ], + "Storage secret" => [ + 0 => "儲存空間秘密", + ], + "Private key" => [ + 0 => "私密金鑰", + ], + "Google Cloud JSON key" => [ + 0 => "Google Cloud JSON key", + ], + "You will need a <a %s>service account</a> for this." => [ + 0 => "您需要一個 <a %s>服務帳戶</a> ", + ], + "Service name" => [ + 0 => "服務名稱", + ], + "Identity URL" => [ + 0 => "Identity URL", + ], + "Identity API endpoint" => [ + 0 => "Identity API endpoint", + ], + "API endpoint for OpenStack identity" => [ + 0 => "OpenStack identity 的 API endpoint ", + ], + "Username" => [ + 0 => "使用者名稱", + ], + "Container" => [ + 0 => "儲存器", + ], + "Storage container" => [ + 0 => "儲存器", + ], + "Tenant id" => [ + 0 => "Tenant id", + ], + "Tenant id (account id)" => [ + 0 => "Tenant id (account id)", + ], + "Tenant name" => [ + 0 => "Tenant name", + ], + "Tenant name (account name)" => [ + 0 => "Tenant name (account name)", + ], + "Storage endpoint" => [ + 0 => "存儲端點", + ], + "Server address" => [ + 0 => "服務器地址", + ], + "Hostname or IP of the storage server" => [ + 0 => "儲存服務器主機名或IP", + ], + "Server path" => [ + 0 => "伺服器路徑", + ], + "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." => [ + 0 => "絕對路徑存儲在 %p 登錄中,使用 %s 將其設置為根路徑。", + ], + "Server login" => [ + 0 => "伺服器登錄", + ], + "Server password" => [ + 0 => "伺服器密碼", + ], + "Local path" => [ + 0 => "本地路徑", + ], + "Local path where the files will be stored" => [ + 0 => "文件存儲的本地路徑", + ], + "Storage capacity" => [ + 0 => "儲存容量", + ], + "Example: 20 GB, 1 TB, etc." => [ + 0 => "例如: 20 GB, 1 TB ...等等", + ], + "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." => [ + 0 => "儲存達到該容量時將被禁用. 留空則不限制.", + ], + "Storage URL" => [ + 0 => "儲存空間URL", + ], + "The system will map the images of this storage to this URL." => [ + 0 => "該系統將儲存空間的圖片映射到該URL.", + ], + "view more" => [ + 0 => "查看更多", + ], + "Load more" => [ + 0 => "載入更多", + ], + "Select all" => [ + 0 => "選擇全部", + ], + "Get embed codes" => [ + 0 => "獲取嵌入代碼", + ], + "Assign category" => [ + 0 => "指派分類", + ], + "Flag as safe" => [ + 0 => "標記為安全", + ], + "Clear selection" => [ + 0 => "清除選擇", + ], + "Create new album" => [ + 0 => "建立新的相簿", + ], + "Share" => [ + 0 => "分享", + ], + "Sign in with another account" => [ + 0 => "登入其他帳號", + ], + "Continue with %label%" => [ + 0 => "用 %label% 賬號登錄", + ], + "Home" => [ + 0 => "主頁", + ], + "There's nothing to show here." => [ + 0 => "沒有顯示的內容", + ], + "All the selected images will be assigned to this category." => [ + 0 => "所有選擇的圖片將會分配給此分類.", + ], + "There is no categories." => [ + 0 => "沒有分類.", + ], + "Confirm flag content as safe" => [ + 0 => "確認標記為安全內容", + ], + "Do you really want to flag this content as safe?" => [ + 0 => "你真的要標記這個內容為安全的?", + ], + "Confirm flag content as unsafe" => [ + 0 => "確定標記為不安全的內容", + ], + "Do you really want to flag this content as unsafe?" => [ + 0 => "你真的要標記這個內容為不安全?", + ], + "Confirm approval" => [ + 0 => "確認批准", + ], + "Do you really want to approve this content? This can't be undone." => [ + 0 => "您真的要刪除所有選定的內容嗎? 這是無法撤消的。", + ], + "Confirm deletion" => [ + 0 => "確認刪除", + ], + "Do you really want to remove this content? This can't be undone." => [ + 0 => "你真的想刪除此內容? 一旦刪除將無法恢復.", + ], + "Do you really want to approve all the selected content? This can't be undone." => [ + 0 => "您真的要刪除所有選定的內容嗎? 這是無法撤消的。", + ], + "Do you really want to remove all the selected content? This can't be undone." => [ + 0 => "你真的想刪除所選內容? 一旦刪除將無法恢復.", + ], + "Guest" => [ + 0 => "訪客", + ], + "Keyboard shortcuts" => [ + 0 => "鍵盤快捷鍵", + ], + "Private album" => [ + 0 => "私人相簿", + ], + "Password protected" => [ + 0 => "密碼保護", + ], + "Uploaded by guest" => [ + 0 => "由訪客上傳", + ], + "From %s" => [ + 0 => "來自 %s", + ], + "Uploaded by private" => [ + 0 => "由私人上傳", + ], + "by %u" => [ + 0 => "by %u", + ], + "Toggle unsafe flag" => [ + 0 => "切換不安全標記", + ], + "That page doesn't exist" => [ + 0 => "該網頁不存在", + ], + "The requested page was not found." => [ + 0 => "所請求的頁面不存在", + ], + "The user has been deleted" => [ + 0 => "該使用者已被刪除", + ], + "Your account is almost ready" => [ + 0 => "您的帳戶已經準備好", + ], + "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "啟用的電子郵件已發送到您的帳戶 %s. 啟用連結只適用於48小時以內. 如果您沒有收到請檢查您的垃圾郵件或垃圾郵件過濾器.", + ], + "Resend activation" => [ + 0 => "重新啟用", + ], + "You have successfully changed your account email to %s" => [ + 0 => "您已成功改變了您的帳戶的電子郵件 %s", + ], + "Go to my profile" => [ + 0 => "前往我的頁面", + ], + "A confirmation link will be sent to this email with details to activate your account." => [ + 0 => "確認連結將被發送到這個郵箱, 詳情請登入信箱並啟用您的帳戶.", + ], + "Your email address" => [ + 0 => "您的電子郵件", + ], + "Submit" => [ + 0 => "送出", + ], + "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "一封關於重新設定密碼的郵件已發送到您的郵箱. 如果你收不到請檢查你的垃圾郵件.", + ], + "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." => [ + 0 => "剛才的電子郵件已發送和說明重置您的密碼. 如果您沒有收到郵件, 請嘗試檢查您的垃圾郵件或垃圾郵件過濾器", + ], + "Resend instructions" => [ + 0 => "重新發送", + ], + "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" => [ + 0 => "輸入您的用戶名或電子郵件地址以繼續。 您可能需要檢查垃圾郵件文件夾或將 %s 列入白名單", + ], + "Username or Email address" => [ + 0 => "使用者名稱或電子郵件地址", + ], + "Your password has been changed. You can now try logging in using your new password." => [ + 0 => "您的密碼已被更改. 現在, 您可以嘗試使用您的新密碼登入.", + ], + "Login now" => [ + 0 => "現在登入", + ], + "Enter your new password" => [ + 0 => "輸入新密碼", + ], + "%d characters min" => [ + 0 => "最少 %d 個字元", + ], + "Password strength" => [ + 0 => "密碼強度", + ], + "Re-enter your new password" => [ + 0 => "重新輸入新密碼", + ], + "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." => [ + 0 => "一封啟用郵件已經發送至您的郵箱 %s . n\\ 如果你收不到請檢查你的垃圾郵件.", + ], + "This content is private" => [ + 0 => "此內容是私人的", + ], + "Do you really want to delete this album and all of its images? This can't be undone." => [ + 0 => "你真的想刪除所選相簿和所有內容? 一旦刪除將無法恢復.", + ], + "Upload to album" => [ + 0 => "上傳至相簿", + ], + "You like this" => [ + 0 => "您喜歡這個", + ], + "Please read and comply with the following conditions before you continue:" => [ + 0 => "請閱讀並遵守以下條款, 然後再繼續:", + ], + "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." => [ + 0 => "本網站所包含的訊息, 超連結和色情內容的圖像. 如果您是 %s 歲以下, 如果這種素材冒犯您, 或者如果在你的地區查看這些素材是違法的, 請不要繼續瀏覽.\n\n我已年滿 %s 歲, 我相信, 作為一個成年人, 這是我收到/瀏覽色情素材不可剝奪的權利. 我希望接收/觀看色情素材.\n\n我相信, 同意成年人之間的性行為既不進攻也不色情. 露骨色情內容的瀏覽, 閱讀和下載不違反我的地區, 鎮, 市, 州或國家標準.\n\n我已觀看的色情素材僅是我個人的使用, 我不會傳播未成年人的素材.\n\n我為任何虛假訊息或瀏覽, 閱讀或在本網站下載任何素材的法律後果承擔全部責任. 此外, 該網站及其分支機構將負責從欺詐性進入或使用本網站所產生的任何法律後果.\n\n此同意畫面構成了這個網站, 你和/或您有任何法律或衡平法權益的任何商業之間的法律協議. 如果本協議的任何部分被視為無效由有管轄權的法院不得影響該協議的其他部分的可執行性.", + ], + "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." => [ + 0 => "點擊 \"我同意\" 後您可申明自己已閱讀並理解上述的所有條件.", + ], + "I Agree" => [ + 0 => "我同意", + ], + "documentation" => [ + 0 => "文件", + ], + "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." => [ + 0 => "使用服務器變量 %var% 獲取真實IP。如果檢測到的IP與您的不匹配,這意味著您的Web服務器在代理下,您需要調整您的服務器設置,以便獲取真實IP。使用服務器變量 %var% 獲取真實IP。如果檢測到的IP與您的不匹配,這意味著您的Web服務器在代理下,您需要調整您的服務器設置,以便獲取真實IP。", + ], + "For Nginx, you must use %nginx%. For Apache, %apache%." => [ + 0 => "對於nginx,您必須使用 %nginx% ;對於Apache,%apache% 。", + ], + "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." => [ + 0 => "由於系統依賴準確的IP檢測來提供基本功能並防止SPAM、泛濫式圖片上傳及暴力破解,因此請確保您已解決此問題。", + ], + "Disk used" => [ + 0 => "已用大小", + ], + "Queued" => [ + 0 => "已排定", + ], + "Working" => [ + 0 => "工作中", + ], + "Paused" => [ + 0 => "已暫停", + ], + "Canceled" => [ + 0 => "取消", + ], + "Completed" => [ + 0 => "已完成", + ], + "Top level folders as %s" => [ + 0 => "頂級文件夾為 %s", + ], + "Actions" => [ + 0 => "動作", + ], + "Process" => [ + 0 => "處理", + ], + "Pause" => [ + 0 => "暫停", + ], + "Cancel" => [ + 0 => "取消", + ], + "Process log" => [ + 0 => "流程日誌", + ], + "Errors" => [ + 0 => "錯誤", + ], + "Do you really want to remove the import ID %s?" => [ + 0 => "您是否真的要刪除導入ID %s ?", + ], + "Reset" => [ + 0 => "重置", + ], + "Resume" => [ + 0 => "恢復", + ], + "Status" => [ + 0 => "狀態", + ], + "Add user" => [ + 0 => "新增使用者", + ], + "Role" => [ + 0 => "規則", + ], + "Manager" => [ + 0 => "管理程式", + ], + "Administrator" => [ + 0 => "管理員", + ], + "Email address" => [ + 0 => "電子郵件地址", + ], + "This setting is always diabled when using personal website mode." => [ + 0 => "個人網站模式被開啟時, 該設置始終禁用.", + ], + "Add category" => [ + 0 => "新增分類", + ], + "Add IP ban" => [ + 0 => "新增阻擋IP", + ], + "Add storage" => [ + 0 => "增加儲存空間", + ], + "Return to pages" => [ + 0 => "返回頁面", + ], + "Website name" => [ + 0 => "網站名稱", + ], + "Website doctitle" => [ + 0 => "網站標題", + ], + "Website description" => [ + 0 => "網站描述", + ], + "Automatic" => [ + 0 => "自動", + ], + "Forced" => [ + 0 => "強制", + ], + "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." => [ + 0 => "%a 將在服務器端檢測並自動使用HTTPS(推薦), %f 無論您的服務器如何設置,都將使用HTTPS, %d 禁用且完全不使用HTTPS。", + ], + "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." => [ + 0 => "這僅控制URL中使用的協議,除非將服務器配置為支持和使用HTTPS,否則它不會將您的網站變成有效的HTTPS網站。", + ], + "Default time zone" => [ + 0 => "預設時區", + ], + "Select region" => [ + 0 => "選擇地區", + ], + "Allows to search images, albums and users based on a given search query." => [ + 0 => "可以按特定的內容查詢圖像, 相簿, 和用戶.", + ], + "Enables to browse public uploaded images. It also enables categories." => [ + 0 => "啟用探索圖庫功能, 允許查看所有用戶上傳的圖像(不含隱私), 並可以按分類查看.", + ], + "guests" => [ + 0 => "訪客", + ], + "Enables explore for guests." => [ + 0 => "為遊客啟用探索.", + ], + "Enables to browse images randomly." => [ + 0 => "啟用隨機圖像瀏覽", + ], + "Likes" => [ + 0 => "喜歡", + ], + "Allows users to like content and populate \"Most liked\" listings." => [ + 0 => "允許用戶使用喜歡功能, 並顯示用戶已喜歡列表.", + ], + "Followers allows users to follow each other." => [ + 0 => "跟隨者允許使用者互相跟隨", + ], + "Website mode" => [ + 0 => "網站模式", + ], + "Community" => [ + 0 => "社群", + ], + "Personal" => [ + 0 => "個人", + ], + "You can switch the website mode anytime." => [ + 0 => "你可以隨時切換網站模式", + ], + "Personal mode target user" => [ + 0 => "個人模式的目標對象", + ], + "User ID" => [ + 0 => "使用者ID", + ], + "Your user id is: %s" => [ + 0 => "您的使用者ID為:%s", + ], + "Numeric ID of the target user for personal mode." => [ + 0 => "個人模式的數值是目標用戶的ID.", + ], + "Personal mode routing" => [ + 0 => "個人模式連結格式", + ], + "Custom route to map /username to /something. Use \"/\" to map to homepage." => [ + 0 => "定製的鏈接格式 /username 到 /something. 使用 「/」 映射到主頁。", + ], + "Website privacy mode" => [ + 0 => "網站隱私模式", + ], + "Private mode will make the website only available for registered users." => [ + 0 => "啟用私密模式後僅對註冊用戶開放使用.", + ], + "Content privacy mode" => [ + 0 => "內容隱私模式", + ], + "Default" => [ + 0 => "預設", + ], + "Force private (self)" => [ + 0 => "私密(只有本人可見)", + ], + "Force private (anyone with the link)" => [ + 0 => "私密(任何知道連結的人)", + ], + "Forced privacy modes will override user selected privacy." => [ + 0 => "全局隱私模式將覆蓋用戶選擇的隱私.", + ], + "Page title" => [ + 0 => "頁面標題", + ], + "Page status" => [ + 0 => "頁面狀態", + ], + "Active page" => [ + 0 => "活動頁面", + ], + "Inactive page (%s)" => [ + 0 => "無效頁面 (%s)", + ], + "Only active pages will be accessible." => [ + 0 => "僅活動頁面可以瀏覽", + ], + "Type" => [ + 0 => "類型", + ], + "Terms of service" => [ + 0 => "服務條款", + ], + "Privacy" => [ + 0 => "隱私", + ], + "Contact" => [ + 0 => "聯繫", + ], + "Extra page" => [ + 0 => "額外頁面", + ], + "Internal page type" => [ + 0 => "內部頁面類型", + ], + "You can have multiple extra pages, but only one of the other special internal types." => [ + 0 => "您可以有多個額外的頁面,但只能是其他特殊內部類型之一。", + ], + "Page visibility" => [ + 0 => "頁面可見度", + ], + "Visible page" => [ + 0 => "可見頁面", + ], + "Hidden page" => [ + 0 => "隱藏頁面", + ], + "Hidden pages won't be show in system menus, but anyone can access to it with the link." => [ + 0 => "隱藏頁面將不會顯示在系統的選單, 但任何人擁有連結時可以瀏覽.", + ], + "Only alphanumerics, hyphens and forward slash" => [ + 0 => "只有字母, 數字和片語", + ], + "File path" => [ + 0 => "檔案路徑", + ], + "A %f file relative to %s" => [ + 0 => "%f 檔案相對於 %s", + ], + "Meta keywords" => [ + 0 => "中介關鍵字", + ], + "Meta description" => [ + 0 => "中介說明", + ], + "Source code" => [ + 0 => "原始碼", + ], + "No write permission in %s path you will need to add this file using an external editor." => [ + 0 => "在 %s 路徑沒有寫入權限, 您將需要使用外部編輯器新增檔案.", + ], + "No write permission in %s you will need to edit the contents of this file using an external editor." => [ + 0 => "在 %s 沒有寫入權限, 您將需要使用外部編輯器新增內容.", + ], + "Taken from: %s" => [ + 0 => "摘自: %s", + ], + "Link URL" => [ + 0 => "超連結", + ], + "Link target attribute" => [ + 0 => "連結目標屬性", + ], + "Select %s to open the page or link in a new window." => [ + 0 => "選擇 %s 來打開新頁面或是新視窗", + ], + "Link rel attribute" => [ + 0 => "連結 rel 屬性", + ], + "Only alphanumerics, hyphens and whitespaces" => [ + 0 => "只有字母, 連字符號和空格", + ], + "HTML &lt;a&gt; %s attribute" => [ + 0 => "HTML &lt;a&gt; %s 屬性", + ], + "Link icon" => [ + 0 => "連結圖標", + ], + "Check the <a %s>icon reference</a> for the complete list of supported icons." => [ + 0 => "檢查 <a %s>圖標參考</a> 獲得支援圖標的完整列表.", + ], + "Sort order display" => [ + 0 => "排序順序顯示", + ], + "Page sort order display for menus and listings. Use \"1\" for top priority." => [ + 0 => "選單和列表頁面排序順序顯示. 使用\"1\"為最優先的.", + ], + "Do you really want to delete the page ID %s? This can't be undone." => [ + 0 => "你真的要刪除頁面 ID %s ? 這動作不能被復原", + ], + "Enabled image formats" => [ + 0 => "啟用的圖像格式", + ], + "Unchecked image formats won't be allowed to be uploaded." => [ + 0 => "不允許上傳未經檢查的圖片格式。", + ], + "Enable uploads" => [ + 0 => "啟動上傳", + ], + "Enable this if you want to allow image uploads. This setting doesn't affect administrators." => [ + 0 => "啟用圖片上傳(如果你想允許圖片上傳請啟用). 此設置不會影響管理員.", + ], + "Upload user interface" => [ + 0 => "上載使用者介面", + ], + "On-page container" => [ + 0 => "相同頁面中的上傳工具", + ], + "route" => [ + 0 => "路由", + ], + "Guest uploads" => [ + 0 => "訪客上傳", + ], + "Enable this if you want to allow non registered users to upload." => [ + 0 => "允許非註冊用戶上傳", + ], + "Moderate uploads" => [ + 0 => "審核上載", + ], + "Enable this to moderate incoming uploads. Target content will require moderation for approval." => [ + 0 => "啟用此選項可審核傳入的上載。 目標內容需要經過審核才能獲得批准。", + ], + "Enable embed codes (uploader)" => [ + 0 => "啟用嵌入代碼(上傳者)", + ], + "Enable this if you want to show embed codes when upload gets completed." => [ + 0 => "如果你想圖片上傳完成後顯示嵌入代碼請啟用這個功能.", + ], + "Upload threads" => [ + 0 => "上傳序列", + ], + "Number of simultaneous upload threads (parallel uploads)" => [ + 0 => "同時上傳連線數量(並行上傳)", + ], + "Redirect on single upload" => [ + 0 => "跳轉單張上傳", + ], + "Enable this if you want to redirect to image page on single upload." => [ + 0 => "啟用後上傳單張圖片後跳轉到該圖像的頁面.", + ], + "Enable duplicate uploads" => [ + 0 => "啟用重複上傳", + ], + "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." => [ + 0 => "啟用它, 則允許24小時內來自同一個IP的重複上傳. 這個設置不會影響管理員.", + ], + "Enable expirable uploads" => [ + 0 => "啟用限時上傳", + ], + "Enable this if you want to allow uploads with an automatic delete option." => [ + 0 => "如果您想允許上傳與自動刪除選項請啟用它.", + ], + "Auto delete guest uploads" => [ + 0 => "自動刪除訪客上傳", + ], + "Enable this if you want to force guest uploads to be auto deleted after certain time." => [ + 0 => "開啟後可再一定時間後自動刪除訪客上傳的圖片", + ], + "Maximum image size" => [ + 0 => "最大圖片大小", + ], + "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." => [ + 0 => "大於此尺寸的圖片將自動縮小尺寸,使用(0)則不設置限制", + ], + "Image Exif data" => [ + 0 => "圖像Exif資料", + ], + "Keep" => [ + 0 => "保留", + ], + "Select the default setting for image <a %s>Exif data</a> on upload." => [ + 0 => "選擇預設的圖像 <a %s>Exif資料</a> 上傳.", + ], + "Image Exif data (user setting)" => [ + 0 => "圖像Exif資料 (使用者設置)", + ], + "Enable this if you want to allow each user to configure how image Exif data will be handled." => [ + 0 => "啟用它, 如果您允許每個用戶設置是否刪除圖像的Exif資料.", + ], + "Maximum upload file size" => [ + 0 => "最大上傳大小", + ], + "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." => [ + 0 => "主機限制最大上傳大小是%s這個限制是因為%u以及%p(%f的數值)", + ], + "Same as \"%s\" but for guests." => [ + 0 => "跟\"%s\"一樣,遊客允許上傳大小.", + ], + "Image path" => [ + 0 => "圖片路徑", + ], + "Relative to Chevereto root" => [ + 0 => "相對於Chevereto根目錄", + ], + "Where to store the images? Relative to Chevereto root." => [ + 0 => "圖片儲存的位置? 相對於Chevereto根目錄", + ], + "Storage mode" => [ + 0 => "儲存空間模式", + ], + "Datefolders" => [ + 0 => "利用時間建立資料夾", + ], + "Direct" => [ + 0 => "直接儲存", + ], + "Datefolders creates %s structure" => [ + 0 => "時間建立資料夾 %s 建立結構", + ], + "File naming method" => [ + 0 => "檔案命名方式", + ], + "Original" => [ + 0 => "原始", + ], + "Mix original + random" => [ + 0 => "原始 + 隨機", + ], + "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." => [ + 0 => "\"原始的\"會盡量保持圖像原始名稱, 而\"隨機\"則產生一個隨機名稱. \"ID\"則使用圖像ID來產生命名.", + ], + "Thumb size" => [ + 0 => "縮圖大小", + ], + "Thumbnails will be fixed to this size." => [ + 0 => "縮圖將會被固定在此大小", + ], + "Medium image fixed dimension" => [ + 0 => "中等圖像固定尺寸", + ], + "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." => [ + 0 => "中等圖像將被固定至此分辨率. 例如, 如果您選擇\"寬度\", 這方面將是固定的, 圖像的高度將自動計算.", + ], + "Medium image fixed size" => [ + 0 => "中等圖像固定大小", + ], + "Width or height will be automatically calculated." => [ + 0 => "寬度或是高度將自動計算.", + ], + "Watermarks" => [ + 0 => "浮水印", + ], + "Enable this to put a logo or anything you want in image uploads." => [ + 0 => "開啟此選項將會套用浮水印於圖片上傳", + ], + "Watermark user toggles" => [ + 0 => "浮水印使用者切換", + ], + "Enable watermark on guest uploads" => [ + 0 => "啟用訪客上傳浮水印", + ], + "Enable watermark on user uploads" => [ + 0 => "啟用使用者上傳浮水印", + ], + "Enable watermark on admin uploads" => [ + 0 => "啟用管理員上傳浮水印", + ], + "Watermark file toggles" => [ + 0 => "浮水印檔案切換", + ], + "Enable watermark on GIF image uploads" => [ + 0 => "啟用 GIF 圖像的浮水印", + ], + "Minimum image size needed to apply watermark" => [ + 0 => "應用浮水印的最小圖像大小", + ], + "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." => [ + 0 => "小於這個像素比的圖像不會被加上浮水印. 使用零(0), 則不設置最低圖像大小限制.", + ], + "Watermark image" => [ + 0 => "浮水印圖片", + ], + "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." => [ + 0 => "您想獲得最佳的標誌與陰影效果. 您可以使用一個大的圖像, 如果檔案大小並不大(建議最多為16KB). 必須是PNG.", + ], + "Watermark position" => [ + 0 => "浮水印位置", + ], + "left top" => [ + 0 => "左上", + ], + "left center" => [ + 0 => "左側中間", + ], + "left bottom" => [ + 0 => "左側底端", + ], + "center top" => [ + 0 => "中間最上", + ], + "center center" => [ + 0 => "圖片正中", + ], + "center bottom" => [ + 0 => "中間底部", + ], + "right top" => [ + 0 => "右上", + ], + "right center" => [ + 0 => "右側正中", + ], + "right bottom" => [ + 0 => "右側底端", + ], + "Relative position of the watermark image. First horizontal align then vertical align." => [ + 0 => "浮水印圖像的相對位置. 首先水平對齊, 然後垂直對齊.", + ], + "Watermark percentage" => [ + 0 => "浮水印佔圖像比例", + ], + "Watermark percentual size relative to the target image area. Values 1 to 100." => [ + 0 => "浮水印佔目標圖像的百分比. 值為1到100.", + ], + "Watermark margin" => [ + 0 => "浮水印填充邊距", + ], + "Margin from the border of the image to the watermark image." => [ + 0 => "填充邊距大小, 從浮水印圖像邊框開始計算.", + ], + "Watermark opacity" => [ + 0 => "浮水印透明度", + ], + "Opacity of the watermark in the final watermarked image. Values 0 to 100." => [ + 0 => "浮水印的不透明度設置, 值由0到100.", + ], + "Dashboard > Settings > Website" => [ + 0 => "主控台 > 設定 > 網站", + ], + "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." => [ + 0 => "當關閉圖庫功能時, 圖片分類將不能正常工作. 恢復此設置請前往 %s.", + ], + "Do you really want to delete the %s category? This can't be undone." => [ + 0 => "你真的要刪除 %s 類別? 這動作不能被復原", + ], + "Note: Deleting a category doesn't delete the images that belongs to that category." => [ + 0 => "注意: 刪除分類不會刪除屬於該類別中的圖像.", + ], + "Edit category" => [ + 0 => "編輯分類", + ], + "Expires" => [ + 0 => "到期", + ], + "Do you really want to remove the ban to the IP %s? This can't be undone." => [ + 0 => "你真的想要刪除該已禁止的IP: %s ? 這將是無法撤銷的.", + ], + "Banned IP address will be forbidden to use the entire website." => [ + 0 => "被禁止的IP地址將禁止使用整個網站.", + ], + "Edit IP ban" => [ + 0 => "編輯阻擋的IP", + ], + "Enable signups" => [ + 0 => "開放註冊", + ], + "Enable this if you want to allow users to signup." => [ + 0 => "啟用此代表您允許用戶自行註冊賬號.", + ], + "Enable user content delete" => [ + 0 => "啟用用戶內容刪除", + ], + "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." => [ + 0 => "如果要允許用戶刪除自己的內容,請啟用此選項。 此設置不會影響管理員。", + ], + "Minimum age required" => [ + 0 => "最低年齡要求", + ], + "Empty" => [ + 0 => "空", + ], + "Leave it empty to don't require a minimum age to use the website." => [ + 0 => "留空則表示不設置最低年齡, 對所有年齡都有效.", + ], + "Notify on user signup" => [ + 0 => "用户注册通知", + ], + "Enable this if you want to get an email notification for each new user signup." => [ + 0 => "如果要為每個新用戶註冊獲取電子郵件通知,請啟用此選項。", + ], + "Username routing" => [ + 0 => "用戶名連結結構", + ], + "Enable this if you want to use %s/username URLs instead of %s/user/username." => [ + 0 => "啟用此選項, 則使用(%s/用戶名)的URL結構, 而不是(%s/用戶/用戶名)的URL結構.", + ], + "Require email confirmation" => [ + 0 => "需要電子郵件確認", + ], + "Enable this if users must validate their email address on sign up." => [ + 0 => "啟用此選項, 用戶必須驗證註冊電子郵件地址.", + ], + "Require email for social signup" => [ + 0 => "需要電子郵件社交註冊", + ], + "Enable this if users using social networks to register must provide an email address." => [ + 0 => "啟用此選項, 使用社交網絡註冊的用戶必須提供一個電子郵件地址.", + ], + "User avatar max. filesize" => [ + 0 => "最大的用戶頭像大小", + ], + "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" => [ + 0 => "最大允許用戶頭像的檔案大小. (伺服器最大允許: %s)", + ], + "User background max. filesize" => [ + 0 => "最大的背景圖片大小", + ], + "Max. allowed filesize for user background image. (Max allowed by server is %s)" => [ + 0 => "最大允許背景圖片的檔案大小. (伺服器最大允許: %s)", + ], + "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." => [ + 0 => "在瀏覽網站之前顯示螢幕的一個同意. 對於成人內容的網站,不應該讓未成年人瀏覽.", + ], + "Enable consent screen" => [ + 0 => "啟用內容警告", + ], + "Consent screen cover image" => [ + 0 => "警告封面圖像內容", + ], + "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." => [ + 0 => "通過IP封鎖圖片上傳, 如果系統發現根據每個時間段上傳數量暴增的行為. 此設置不會影響管理員.", + ], + "Notify to email" => [ + 0 => "以電子郵件通知", + ], + "If enabled the system will send an email on flood incidents." => [ + 0 => "發現流量攻擊後系統自動發送電子郵件.", + ], + "Minute limit" => [ + 0 => "每分鐘的限額", + ], + "Hourly limit" => [ + 0 => "每小時的限額", + ], + "Daily limit" => [ + 0 => "每天的限額", + ], + "Weekly limit" => [ + 0 => "每周的限額", + ], + "Monthly limit" => [ + 0 => "每月的限額", + ], + "Lock %s editing" => [ + 0 => "鎖定%s編輯", + ], + "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." => [ + 0 => "啟用此選項可防止用戶更改NSFW標誌。 啟用後,只有管理員和管理員才具有此權限。", + ], + "Show not safe content in listings" => [ + 0 => "在列表中顯示非安全內容", + ], + "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." => [ + 0 => "如果要在列表中顯示不安全內容請啟用此功能. 此設置不會影響管理員, 並且可以由用戶自己的設置覆蓋.", + ], + "Blur NSFW content in listings" => [ + 0 => "模糊非闔家皆宜(標記為不安全)的內容顯示在列表", + ], + "Enable this if you want to apply a blur effect on the NSFW images in listings." => [ + 0 => "如果您想為非闔家皆宜圖像列表開啟模糊效果,請啟用它.", + ], + "Show banners in not safe content" => [ + 0 => "在不安全的內容顯示廣告橫幅", + ], + "Enable this if you want to show banners in not safe content pages." => [ + 0 => "如果你想顯示在不安全的內容頁面的橫幅請啟用這個功能.", + ], + "Show not safe content in random mode" => [ + 0 => "在隨機模式顯示標記為不安全內容", + ], + "List items per page" => [ + 0 => "每頁列出清單數目", + ], + "How many items should be displayed per page listing." => [ + 0 => "設定每頁的顯示數目", + ], + "List pagination mode" => [ + 0 => "列表分頁模式", + ], + "Endless scrolling" => [ + 0 => "瀑布流模式(無限載入)", + ], + "Classic pagination" => [ + 0 => "經典分頁模式", + ], + "What pagination method should be used." => [ + 0 => "選擇使用什麼分頁模式.", + ], + "Listing viewer" => [ + 0 => "列表預覽", + ], + "Enable this to use the listing viewer when clicking on an image." => [ + 0 => "啟用之後,你在探索頁麵點擊圖片之後會有預覽界面.", + ], + "Image listing size" => [ + 0 => "圖片列表大小樣式", + ], + "Fluid" => [ + 0 => "浮動", + ], + "Fixed" => [ + 0 => "固定", + ], + "Both methods use a fixed width but fluid method uses automatic heights." => [ + 0 => "首頁圖片列表樣式. 這兩種方法都使用固定寬度, 但“自動”的方法是使用自動圖片的高度.", + ], + "Album listing images requirement" => [ + 0 => "相冊被列出所需圖片數量", + ], + "explore" => [ + 0 => "探索", + ], + "Sets the minimum image count needed to show albums in explore." => [ + 0 => "設置在探索中顯示相冊所需的最小圖像數。", + ], + "Listing columns number" => [ + 0 => "頁面顯示列數", + ], + "Here you can set how many columns are used based on each target device." => [ + 0 => "在這裡你可以設置針對不同的裝置顯示多少列, 以優化各裝置的顯示體驗.", + ], + "Phone" => [ + 0 => "手機", + ], + "Phablet" => [ + 0 => "大螢幕手機", + ], + "Tablet" => [ + 0 => "平板", + ], + "Laptop" => [ + 0 => "筆電", + ], + "Desktop" => [ + 0 => "桌電", + ], + "Put your themes in the %s folder" => [ + 0 => "把你的主題上傳到 %s 資料夾", + ], + "Tone" => [ + 0 => "色調", + ], + "Light" => [ + 0 => "亮", + ], + "Dark" => [ + 0 => "暗", + ], + "Main color" => [ + 0 => "主要色彩", + ], + "Hexadecimal color value" => [ + 0 => "十六進制顏色值(HEX)", + ], + "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." => [ + 0 => "設定主要主題顏色. 值必須是 <a href=\"%s\" target=\"_blank\">十六進制</a> 格式.", + ], + "Top bar button color" => [ + 0 => "頂部欄按鈕顏色", + ], + "Blue" => [ + 0 => "藍", + ], + "Green" => [ + 0 => "綠", + ], + "Orange" => [ + 0 => "橘", + ], + "Red" => [ + 0 => "紅", + ], + "Grey" => [ + 0 => "灰", + ], + "Black" => [ + 0 => "黑", + ], + "White" => [ + 0 => "白", + ], + "Color for the top bar buttons like the \"Create account\" button." => [ + 0 => "頂欄的顏色按鈕為\"建立帳戶\"按鈕.", + ], + "Enable vector logo" => [ + 0 => "啟用向量Logo(SVG)", + ], + "Enable vector logo for high quality logo in devices with high pixel density." => [ + 0 => "在高解析度的設備啟用向量logo為高品質的標誌.", + ], + "Vector logo image" => [ + 0 => "向量logo圖片", + ], + "Vector version or your website logo in SVG format." => [ + 0 => "SVG格式的向量版本Logo.", + ], + "Raster logo image" => [ + 0 => "點陣圖Logo圖片", + ], + "Bitmap version or your website logo. PNG format is recommended." => [ + 0 => "PNG格式的點陣圖版本Logo.", + ], + "Logo height" => [ + 0 => "Logo 高度", + ], + "No value" => [ + 0 => "未設定值", + ], + "Use this to set the logo height if needed." => [ + 0 => "啟用此選項, 以設置 logo 的高度.", + ], + "Favicon image" => [ + 0 => "Favicon 圖樣", + ], + "Favicon image. Image must have same width and height." => [ + 0 => "所上傳圖像必須具有相同的寬度和高度.", + ], + "Image load max. filesize" => [ + 0 => "最大可載入圖片檔案大小", + ], + "Images greater than this size will show a button to load full resolution image." => [ + 0 => "大於此尺寸的圖片將顯示一個按鈕以加載最大解析度", + ], + "Enable download button" => [ + 0 => "啟用下載按鈕", + ], + "Enable this if you want to show the image download button." => [ + 0 => "啟用此代表在圖片頁顯示原圖下載按鈕.", + ], + "Enable right click on image" => [ + 0 => "啟用圖片右鍵點擊", + ], + "Enable this if you want to allow right click on image viewer page." => [ + 0 => "啟用此則允許在圖片頁使用鼠標右鍵功能.", + ], + "Enable show Exif data" => [ + 0 => "啟用顯示Exif數據", + ], + "Enable this if you want to show image Exif data." => [ + 0 => "如果您想要顯示圖像的Exif數據, 啟用此項.", + ], + "Enable social share" => [ + 0 => "啟用社群網站分享", + ], + "Enable this if you want to show social network buttons to share content." => [ + 0 => "啟用此選項, 以啟用社群網站分享功能.", + ], + "Enable embed codes (content)" => [ + 0 => "啟用嵌入代碼(內容)", + ], + "Everybody" => [ + 0 => "任何人", + ], + "Users only" => [ + 0 => "用戶限定", + ], + "Enable this if you want to show embed codes for the content." => [ + 0 => "啟用此選項, 允許用戶取得嵌入代碼 .", + ], + "Not safe content checkbox in uploader" => [ + 0 => "上傳時顯示\"非安全內容\"的選項", + ], + "Enable this if you want to show a checkbox to indicate not safe content upload." => [ + 0 => "如果你想顯示一個複選框, 表示非安全內容上傳請啟用這個功能.", + ], + "Custom CSS code" => [ + 0 => "自訂CSS代碼", + ], + "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." => [ + 0 => "把你的自訂CSS代碼在這裡. 它會被放在 <style> 標籤 </head> 前的位置.", + ], + "Custom JS code" => [ + 0 => "自訂JS代碼", + ], + "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." => [ + 0 => "把你的自訂JS代碼在這裡. 它會被放在 <script> 標籤 </head> 前的位置.", + ], + "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." => [ + 0 => "不要在這裡使用 %s 標記。 這適用於普通的JS代碼,不適用於HTML script標籤。 如果您在此處使用script標籤,則會破壞您的網站。", + ], + "Style" => [ + 0 => "样式", + ], + "Landing page" => [ + 0 => "到達頁面", + ], + "Split landing + images" => [ + 0 => "上傳按鈕 + 最新圖片", + ], + "Route %s" => [ + 0 => "路由%s", + ], + "upload" => [ + 0 => "上傳", + ], + "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" => [ + 0 => "選擇主頁風格. 詳細定製主頁請編輯此頁 app/themes/%s/views/index.php", + ], + "Cover image" => [ + 0 => "封面圖片", + ], + "Do you really want to delete this image? This can't be undone." => [ + 0 => "您真的需要刪除這張圖片? 這將無法恢復.", + ], + "Delete image" => [ + 0 => "刪除照片", + ], + "Add new cover image" => [ + 0 => "新增新的封面圖像", + ], + "This will be added inside the homepage %s tag. Leave it blank to use the default contents." => [ + 0 => "這將被建立在主頁 %s 標記. 保持空白以使用預設內容.", + ], + "Paragraph" => [ + 0 => "段落", + ], + "Call to action button color" => [ + 0 => "「開始上傳」按鈕的顏色", + ], + "Color of the homepage call to action button." => [ + 0 => "請選擇「開始上傳」按鈕的顏色.", + ], + "Call to action outline style button" => [ + 0 => "主頁「開始上傳」使用透明按鈕", + ], + "Enable this to use outline style for the homepage call to action button." => [ + 0 => "啟用此, 則「開始上傳」按鈕的背景顏色改為透明樣式.", + ], + "Call to action functionality" => [ + 0 => "按鈕功能", + ], + "Trigger uploader" => [ + 0 => "觸發上傳", + ], + "Open URL" => [ + 0 => "打開網址", + ], + "Call to action URL" => [ + 0 => "按鈕網址", + ], + "Enter an absolute or relative URL" => [ + 0 => "輸入一個絕對或相對URL網址", + ], + "A relative URL like %r will be mapped to %l" => [ + 0 => "這樣一個相對URL網址 %r 將映射到 %l", + ], + "Call to action HTML" => [ + 0 => "按鈕HTML代碼", + ], + "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." => [ + 0 => "這將被建立在按鈕 <a> 標記. 保持空白以使用預設內容.", + ], + "User IDs" => [ + 0 => "用户IDs", + ], + "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." => [ + 0 => "用逗號分隔的目標用戶ID列表,以在首頁上顯示圖像。 保留為空白或零以顯示所有最近的圖像。", + ], + "Automatic updates check" => [ + 0 => "自動檢查升級", + ], + "When enabled the system will automatically check for new updates." => [ + 0 => "啟用時,系統將自動檢查新更新。", + ], + "Display available updates notification" => [ + 0 => "顯示可用的更新通知", + ], + "Enable this to show a notice on top warning you about new available system updates." => [ + 0 => "啟用此則顯示一個通知, 提示您關於新的可用系統更新.", + ], + "Dump update query" => [ + 0 => "轉儲更新查詢", + ], + "Enable this if you want to dump the update query to run it manually." => [ + 0 => "如果要自動檢測並為每個用戶設置正確的語言,請啟用此選項。", + ], + "SEO %s URLs" => [ + 0 => "SEO %s 的網址", + ], + "Enable this if you want to use SEO %s URLs." => [ + 0 => "如果要使用SEO %s URL,請啟用此選項。", + ], + "Maintenance" => [ + 0 => "維護模式", + ], + "When enabled the website will show a maintenance message. This setting doesn't affect administrators." => [ + 0 => "當啟用該設置網站將重定向到維修頁面. 此設置不影響管理員。", + ], + "Crypt salt" => [ + 0 => "Crypt salt 特殊碼", + ], + "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [ + 0 => "此ID為系統的一個特殊碼, 相當於V2.x的「__CHV_CRYPT_SALT__」值, 本設置僅在安裝或升級時才用到, 一經使用請勿修改.", + ], + "PHP error reporting" => [ + 0 => "顯示PHP 錯誤回報", + ], + "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." => [ + 0 => "允許顯示PHP錯誤回報 <a %s>error_reporting()</a> ,再發表產品後不應該開啟此選項", + ], + "Debug level" => [ + 0 => "除錯層級", + ], + "None" => [ + 0 => "無", + ], + "Error log" => [ + 0 => "寫入錯誤記錄", + ], + "Print errors without error log" => [ + 0 => "列出錯誤記錄但不寫入紀錄", + ], + "Print and log errors" => [ + 0 => "列出錯誤記錄且寫入紀錄", + ], + "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." => [ + 0 => "欲設定除錯層級請查看<a %s>除錯設定文件</a>,預設模式為 \"寫入錯誤記錄\"", + ], + "Image routing" => [ + 0 => "圖像路徑", + ], + "Routing for %s" => [ + 0 => "路徑 %s", + ], + "Album routing" => [ + 0 => "相簿路徑", + ], + "Hostname" => [ + 0 => "主機名", + ], + "Hostname on which sub-domain wildcards will be added." => [ + 0 => "將在其上添加子域通配符的主機名。", + ], + "This setting may be overridden by %s." => [ + 0 => "此設置可能被 %s 覆蓋。", + ], + "Language subdomains" => [ + 0 => "語言子域名", + ], + "languages" => [ + 0 => "語言", + ], + "Enable to use %s for %t." => [ + 0 => "啟用將 %s 用於 %t 。", + ], + "Username subdomains" => [ + 0 => "用戶子域名", + ], + "user profiles" => [ + 0 => "用戶資料", + ], + "Custom language strings" => [ + 0 => "其他語言字串", + ], + "Default language" => [ + 0 => "預設語言", + ], + "Default base language to use." => [ + 0 => "預設基本語言", + ], + "Auto language" => [ + 0 => "自動偵測語言", + ], + "Enable this if you want to automatically detect and set the right language for each user." => [ + 0 => "啟用這個如果你想自動檢測並為每個用戶設置正確的語言.", + ], + "Language chooser" => [ + 0 => "用戶選擇語言", + ], + "Enable this if you want to allow language selection." => [ + 0 => "啟用這個如果你想允許用戶選擇語言.", + ], + "Enabled languages" => [ + 0 => "啟用多語言", + ], + "Unchecked languages won't be used in your website." => [ + 0 => "未選中的語言將不會在自己的網站中使用.", + ], + "Toggle this to enable or disable HTTPS" => [ + 0 => "切換此啟用或禁用HTTPS鏈接", + ], + "Toggle this to enable or disable this storage" => [ + 0 => "切換此啟用或禁用此儲存空間", + ], + "Quota" => [ + 0 => "配額", + ], + "Active" => [ + 0 => "啟用", + ], + "Storage method" => [ + 0 => "儲存空間方式", + ], + "Local storage is used by default or when no external storage is active." => [ + 0 => "預設情況下使用本地儲存空間, 或在外部儲存空間處於非啟用狀態.", + ], + "If you need help check the <a %s>storage documentation</a>." => [ + 0 => "如果您需要協助,請查看<a %s>儲存空間設定指南</a>", + ], + "Edit storage" => [ + 0 => "編輯儲存空間", + ], + "From name" => [ + 0 => "發送名稱", + ], + "Sender name for emails sent to users." => [ + 0 => "接收到郵件顯示的發送人名稱", + ], + "From email address" => [ + 0 => "發件人的電子郵件地址", + ], + "Sender email for emails sent to users." => [ + 0 => "發信給用戶的電郵來源地址", + ], + "Incoming email address" => [ + 0 => "接收郵件的電郵地址", + ], + "Recipient for contact form and system alerts." => [ + 0 => "\"聯絡我們\"和\"系統通知\"的收件者", + ], + "Email mode" => [ + 0 => "發送郵件的方式", + ], + "How to send emails? SMTP recommended." => [ + 0 => "如何發送郵件? 推薦使用SMTP.", + ], + "SMTP server and port" => [ + 0 => "SMTP伺服器與端口", + ], + "SMTP server" => [ + 0 => "SMTP伺服器", + ], + "SMTP username" => [ + 0 => "SMTP用戶名", + ], + "SMTP password" => [ + 0 => "SMTP密碼", + ], + "SMTP security" => [ + 0 => "SMTP安全", + ], + "Unsecured" => [ + 0 => "非安全", + ], + "Decode ID" => [ + 0 => "解碼 ID", + ], + "Encode ID" => [ + 0 => "編碼 ID", + ], + "Send test email" => [ + 0 => "寄出測試郵件", + ], + "Use this to test how your emails are being delivered. We recommend you to use %s." => [ + 0 => "使用這個來測試您的電子郵件是否已寄出. 我們建議您使用 %s.", + ], + "Export a user" => [ + 0 => "導出用戶(1個)", + ], + "Export user" => [ + 0 => "導出", + ], + "This will allow you to download a user's standard personal information in JSON format." => [ + 0 => "這將讓用戶信息保存到 .Json 格式的文件中並下載", + ], + "Regenerate external storage stats" => [ + 0 => "重新生成外部存儲統計信息", + ], + "Storage id" => [ + 0 => "儲存編號", + ], + "Regenerate" => [ + 0 => "重新生成", + ], + "This will re-calculate the sum of all the image records associated to the target external storage." => [ + 0 => "這將重新計算與目標外部存儲關聯的所有圖像記錄的總和。", + ], + "Migrate image records from one external storage to another" => [ + 0 => "將圖像記錄從一個外部存儲遷移到另一個", + ], + "Source storage id" => [ + 0 => "來源存儲ID", + ], + "Target storage id" => [ + 0 => "目標存儲ID", + ], + "Migrate" => [ + 0 => "遷移", + ], + "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." => [ + 0 => "這只會更新數據庫。 您必須自行將實際文件傳輸到目標存儲容器。 強烈建議使用URL rewriting。 使用零(0)進行本地存儲。", + ], + "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." => [ + 0 => "你需要一個<a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a>", + ], + "Facebook app id" => [ + 0 => "Facebook app id", + ], + "Facebook app secret" => [ + 0 => "Facebook app secret", + ], + "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." => [ + 0 => "你需要一個<a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a>", + ], + "Twitter API key" => [ + 0 => "Twitter API key", + ], + "Twitter API secret" => [ + 0 => "Twitter API secret", + ], + "Twitter account" => [ + 0 => "Twitter帳戶", + ], + "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." => [ + 0 => "你需要一個<a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>", + ], + "Google client id" => [ + 0 => "Google client id", + ], + "Google client secret" => [ + 0 => "Google client secret", + ], + "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." => [ + 0 => "你需要一個<a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a>", + ], + "VK client id" => [ + 0 => "VK client id", + ], + "VK client secret" => [ + 0 => "VK client secret", + ], + "%s spam protection" => [ + 0 => "%s SPAM防護", + ], + "user generated content" => [ + 0 => "用戶生成的內容", + ], + "Enable this to use %l to block spam on %c." => [ + 0 => "啟用它以使用 %l 阻止%c 上的SPAM。", + ], + "%s API key" => [ + 0 => "%s API密鑰", + ], + "user signup" => [ + 0 => "用戶註冊", + ], + "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." => [ + 0 => "你需要一個 <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a>", + ], + "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." => [ + 0 => "請注意,每個reCAPTCHA版本都需要其自己的密鑰組合。 如果更改版本,請不要忘記更新密鑰。", + ], + "%s site key" => [ + 0 => "%s 網站鑰匙", + ], + "%s secret key" => [ + 0 => "%s 秘密鑰匙", + ], + "reCAPTCHA threshold" => [ + 0 => "reCAPTCHA threshold", + ], + "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." => [ + 0 => "登入失敗多少次後顯示驗證碼? 鍵入\"0\"零則始終顯示驗證碼.", + ], + "Force %s on contact page" => [ + 0 => "在聯繫頁面強制開啟 %s", + ], + "Enable this to always show %s on contact page." => [ + 0 => "啟用此選項可始終在聯繫頁面上顯示 %s 。", + ], + "Comments API" => [ + 0 => "評論 API", + ], + "Disqus API works with %s." => [ + 0 => "與 %s 工作的Disqus API", + ], + "Disqus shortname" => [ + 0 => "Disqus 短名", + ], + "%s public key" => [ + 0 => "%s 公開鑰匙", + ], + "Comment code" => [ + 0 => "社群評論代碼", + ], + "Disqus, Facebook or anything you want. It will be used in image view." => [ + 0 => "DISQUS, Facebook或其他. 它將在圖片頁面中使用.", + ], + "Automatically moderate the content using the %s service." => [ + 0 => "使用%s服務自動審核內容。", + ], + "Automatic approve" => [ + 0 => "自動批准", + ], + "Enable this to automatically approve content moderated by this service." => [ + 0 => "啟用此選項可自動批准此服務審核的內容。", + ], + "Block content" => [ + 0 => "封鎖內容", + ], + "Adult" => [ + 0 => "成人", + ], + "Teen and adult" => [ + 0 => "青年和成人", + ], + "Flag NSFW" => [ + 0 => "標記為NSFW", + ], + "Analytics code" => [ + 0 => "Analytics(分析)代碼", + ], + "Google Analytics or anything you want. It will be added to the theme footer." => [ + 0 => "Google Analytics(分析)或其他. 它將被添加到主題頁尾.", + ], + "API v1 key" => [ + 0 => "API v1 key", + ], + "Use this key when using the <a %s>API v1</a>." => [ + 0 => "欲使用 <a %s>API v1</a>請用這個金鑰", + ], + "Plugin route" => [ + 0 => "上傳插件", + ], + "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." => [ + 0 => "啟用此選項可在%u顯示插件說明。 這些說明的鏈接將添加到%s菜單中。 此設置不會影響管理員。", + ], + "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." => [ + 0 => "使用此選項可為%p設置自定義URL。 請注意,您需要在此URL中手動複製%s。", + ], + "Cookie law compliance" => [ + 0 => "Cookie的法規", + ], + "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." => [ + 0 => "啟用它以顯示一條消息來符合歐盟的Cookie法規. 注意: 假如您的網站託管在歐盟又需要增加Cookie跟蹤, 您必須啟用它.", + ], + "Save changes" => [ + 0 => "儲存變更", + ], + "Check the errors to proceed." => [ + 0 => "請檢查錯誤後繼續", + ], + "Play GIF" => [ + 0 => "播放 GIF", + ], + "Load full resolution" => [ + 0 => "讀取全等解像度", + ], + "Do you really want to approve this image? The image will go public if you approve it." => [ + 0 => "您真的要刪除所有選定的內容嗎? 這是無法撤消的。", + ], + "Added to %a and categorized in %c" => [ + 0 => "加入 %a 和分類至 %c", + ], + "Added to %s" => [ + 0 => "加入 %s", + ], + "Uploaded to %s" => [ + 0 => "上傳至%s", + ], + "Uploaded %s" => [ + 0 => "已上傳至%s", + ], + "Less Exif data" => [ + 0 => "更少的Exif數據", + ], + "More Exif data" => [ + 0 => "更多的Exif數據", + ], + "Album ID" => [ + 0 => "相簿ID", + ], + "Upload and share your images." => [ + 0 => "上傳並分享你的照片", + ], + "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [ + 0 => "拖放在您任何想要的地方進行圖像上傳. %s 的圖片大小限制, 直接的圖片連結, BBCode代碼, HTML代碼, 縮圖.", + ], + "Start uploading" => [ + 0 => "開始上傳", + ], + "Sign up to unlock all the features" => [ + 0 => "註冊即可啟用所有的功能", + ], + "Manage your content, create private albums, customize your profile and more." => [ + 0 => "管理您的內容, 建立您的個人相簿, 自訂您的個人資料, 展示您的個人主頁和更多", + ], + "Sign in with your account" => [ + 0 => "使用您的帳戶登錄", + ], + "Don't have an account? <a href='%s'>Sign up</a> now." => [ + 0 => "沒有帳號? <a href='%s'>馬上註冊</a>.", + ], + "Logged out" => [ + 0 => "登出", + ], + "You have been logged off %s. Hope to see you soon." => [ + 0 => "您已登出 %s , 希望很快再見到您", + ], + "Go to homepage" => [ + 0 => "轉到主頁", + ], + "Website under maintenance" => [ + 0 => "網站正在維護中", + ], + "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." => [ + 0 => "我們在進行例行的網站維護任務. 請稍後再回來", + ], + "This content is password protected." => [ + 0 => "此內容已被密碼保護.", + ], + "Please enter your password to continue." => [ + 0 => "請輸入您的密碼進行下一步.", + ], + "Send" => [ + 0 => "寄出", + ], + "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." => [ + 0 => "通過安裝我們的上傳插件,將圖片上傳到您的網站,博客或論壇。 它通過放置一個按鈕,允許您的用戶直接將圖像上傳到我們的服務,並將自動處理插入所需的代碼,從而將圖像上傳到任何網站。 所有功能包括拖放,遠程上傳,圖像大小調整等。", + ], + "Supported software" => [ + 0 => "支持的軟件", + ], + "supported software" => [ + 0 => "支持的軟件", + ], + "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." => [ + 0 => "該插件適用於任何具有用戶可編輯內容的網站,對於%sv,它將放置一個與目標編輯器工具欄匹配的上傳按鈕,因此無需額外的自定義。", + ], + "Add it to your website" => [ + 0 => "將其添加到您的網站", + ], + "options" => [ + 0 => "選項", + ], + "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." => [ + 0 => "將插件代碼複製並粘貼到您的網站HTML代碼中(最好在head內)。 有足夠的%o使它更適合您的需求。", + ], + "Basic options" => [ + 0 => "基本選項", + ], + "Color palette" => [ + 0 => "調色板", + ], + "Button color scheme" => [ + 0 => "按鈕配色方案", + ], + "Embed codes that will be auto-inserted in editor box" => [ + 0 => "嵌入代碼將自動插入到編輯框中", + ], + "Sibling selector" => [ + 0 => "Sibling 選擇器", + ], + "Sibling element selector where to place the button next to" => [ + 0 => "Sibling元素選擇器的旁邊放置按鈕", + ], + "Sibling position" => [ + 0 => "Sibling順序", + ], + "After" => [ + 0 => "後", + ], + "Before" => [ + 0 => "先", + ], + "Position relative to sibling element" => [ + 0 => "相對於sibling元素的位置", + ], + "Advanced options" => [ + 0 => "高級選項", + ], + "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." => [ + 0 => "該插件有一大堆附加選項,可以完全自定義。 您可以使用自定義HTML,CSS,自己的調色板,設置监控服务等。 檢查%d和插件源以更好地了解這些高級選項。", + ], + "You either don't have permission to access this page or the link has expired." => [ + 0 => "您沒有權限訪問此網頁或連結已過期", + ], + "Search results" => [ + 0 => "搜尋結果", + ], + "Do you really want to delete this user? This can't be undone." => [ + 0 => "你真的要刪除這個用戶? 此操作不能恢復", + ], + "Delete user" => [ + 0 => "刪除用戶", + ], + "Register date" => [ + 0 => "註冊日期", + ], + "Registration IP" => [ + 0 => "註冊 IP", + ], + "Valid" => [ + 0 => "有效", + ], + "Banned" => [ + 0 => "禁止訪問", + ], + "Awaiting email" => [ + 0 => "等待啟用", + ], + "Awaiting confirmation" => [ + 0 => "等待確認", + ], + "%i to %f characters<br>Letters, numbers and \"_\"" => [ + 0 => "%i 到 %f 個字元<br>字母, 數字 和 \"_\" 符號", + ], + "Auto delete uploads" => [ + 0 => "自動刪除上傳", + ], + "This setting will apply to all your image uploads by default. You can override this setting on each upload." => [ + 0 => "該設置將適用於在預設情況下所有的圖片上傳. 您可以使每個上傳應用此設置.", + ], + "Keep image <a %s>Exif data</a> on upload" => [ + 0 => "在上傳時保留圖像的 <a %s>Exif資料</a>", + ], + "Newsletter" => [ + 0 => "電子報", + ], + "Send me emails with news about %s" => [ + 0 => "寄給我與 %s 的消息的電子郵件", + ], + "Content settings" => [ + 0 => "內容設定", + ], + "Show not safe content in listings (from others)" => [ + 0 => "在列表中顯示不安全內容(來自其他人) ", + ], + "Language" => [ + 0 => "語言", + ], + "Timezone" => [ + 0 => "時區", + ], + "Current password" => [ + 0 => "目前的密碼", + ], + "Enter your current password" => [ + 0 => "請輸入目前的密碼", + ], + "New password" => [ + 0 => "新密碼", + ], + "Confirm new password" => [ + 0 => "確認新密碼", + ], + "Add a password to be able to login using your username or email." => [ + 0 => "新增一個密碼才能使用您的用戶名或電子郵件地址登入", + ], + "This user doesn't have a password. Add one using this form." => [ + 0 => "這個用戶沒有輸入密碼. 新增一個密碼使用這種形式登入", + ], + "Enter your password" => [ + 0 => "請輸入您的密碼", + ], + "Confirm password" => [ + 0 => "確認密碼", + ], + "Re-enter your password" => [ + 0 => "請再輸入您的密碼", + ], + "Make my profile and identity totally private" => [ + 0 => "僅自己可見我的個人資料", + ], + "Enable this if you want to act like an anonymous user" => [ + 0 => "如果您想把自己變成匿名使用者請啟用他", + ], + "This is your real name, not your username." => [ + 0 => "這是你的個性暱稱. 不是你的用戶名", + ], + "http://yourwebsite.com" => [ + 0 => "http://yourwebsite.com", + ], + "Bio" => [ + 0 => "個人簡介", + ], + "Tell us a little bit about you" => [ + 0 => "告訴我們一點關於你的資訊", + ], + "User has no connections." => [ + 0 => "用戶沒有任何連結", + ], + "Link your account to external services to be able to login here." => [ + 0 => "將您的帳戶鏈接到外部服務,以便能夠登錄和共享內容。", + ], + "Do you really want to disconnect %s from this account?" => [ + 0 => "你真的想從這個帳戶斷開 %s 嗎?", + ], + "This account is connected to %s" => [ + 0 => "此帳戶連接到 %s", + ], + "Do you really want to disconnect your %s account?" => [ + 0 => "你真的要斷開您的 %s 帳戶?", + ], + "You will be logged out and you won't be able to login to your account using this %s account." => [ + 0 => "您將被登出, 而您將無法使用此 %s 的帳戶登入到您的帳戶.", + ], + "Your account is connected to %s" => [ + 0 => "您的帳戶已連接到 %s", + ], + "disconnect" => [ + 0 => "斷開", + ], + "Connect %s" => [ + 0 => "連結%s", + ], + "Feel free to browse and discover all my shared images and albums." => [ + 0 => "隨意瀏覽, 探索我所有分享的圖片和相冊", + ], + "Button" => [ + 0 => "按鈕", + ], + "View all my images" => [ + 0 => "查看我所有的圖片", + ], + "Login" => [ + 0 => "登錄", + ], + "Already have an account? %s now." => [ + 0 => "已有帳號? 立即 %s。", + ], + "resend account activation" => [ + 0 => "重寄帳號驗證", + ], + "If you have already signed up maybe you need to request to %s to activate your account." => [ + 0 => "如果您已經註冊,則可能需要請求 %s 以激活您的帳戶。", + ], + "You can also %s." => [ + 0 => "您也可以 %s 。", + ], + "I'm at least %s years old" => [ + 0 => "我已年滿 %s 歲", + ], + "terms" => [ + 0 => "條款", + ], + "privacy policy" => [ + 0 => "隱私政策", + ], + "I agree to the %terms_link and %privacy_link" => [ + 0 => "我同意%terms_link和%privacy_link", + ], + "Upload profile background" => [ + 0 => "上傳背景圖片", + ], + "Change background" => [ + 0 => "更新背景圖片", + ], + "Upload new image" => [ + 0 => "上傳新圖片", + ], + "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" => [ + 0 => "該個人主頁的背景圖片將被刪除. 這將不能恢復. 您確定要刪除個人主頁的背景圖片嗎?", + ], + "Delete background" => [ + 0 => "刪除背景", + ], + "Follower" => [ + 0 => "粉絲", + ], + "Follow" => [ + 0 => "跟隨", + ], + "You have been forbidden to use this website." => [ + 0 => "你被禁止進入這個網站", + ], + "Plugin" => [ + 0 => "插件", + ], + "Page %s" => [ + 0 => "第 %s 頁", + ], + "General questions/comments" => [ + 0 => "一般問題/意見", + ], + "DMCA complaint" => [ + 0 => "DMCA檢舉", + ], + "Invalid message" => [ + 0 => "無效的訊息", + ], + "Invalid subject" => [ + 0 => "無效的主題", + ], + "Mail error" => [ + 0 => "電子郵件錯誤", + ], + "Message sent" => [ + 0 => "訊息發送", + ], + "Message sent. We will get in contact soon." => [ + 0 => "訊息已寄出. 我們很快地與您聯絡.", + ], + "If you want to send a message fill the form below." => [ + 0 => "如果您想發出一個訊息, 請填寫下面的表格.", + ], + "Your name" => [ + 0 => "您的名字", + ], + "Subject" => [ + 0 => "主題", + ], + "All the changes that you have made will be lost if you continue." => [ + 0 => "如果你繼續你所做的所有更改將消失", + ], + "Changes saved successfully." => [ + 0 => "儲存成功", + ], + "Go back to form" => [ + 0 => "回到表單", + ], + "continue anyway" => [ + 0 => "繼續", + ], + "Saving" => [ + 0 => "儲存中", + ], + "Sending" => [ + 0 => "傳送中", + ], + "Confirm action" => [ + 0 => "確認操作", + ], + "information" => [ + 0 => "資訊", + ], +]; +?> \ No newline at end of file diff --git a/app/.cache/vendor/b2-legacy/.gitkeep b/app/.cache/vendor/b2-legacy/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/.htaccess b/app/.htaccess new file mode 100644 index 0000000..a7a56f7 --- /dev/null +++ b/app/.htaccess @@ -0,0 +1 @@ +Require all denied \ No newline at end of file diff --git a/app/.psysh.php b/app/.psysh.php new file mode 100644 index 0000000..e3e29ff --- /dev/null +++ b/app/.psysh.php @@ -0,0 +1,43 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\loaderHandler; + +define('ACCESS', 'web'); +define('REPL', true); +require __DIR__ . '/legacy/load/loader.php'; +include loaderHandler( + _cookie: [], + _env: $_ENV, + _files: [], + _get: [], + _post: [], + _request: [], + _server: [], + _session: [ + 'G_auth_token' => str_repeat('a', 40), + ], +); + +return [ + 'startupMessage' => + <<<EOM + __ __ + ____/ / ___ _ _____ _______ / /____ + / __/ _ \/ -_) |/ / -_) __/ -_) __/ _ \\ + \__/_//_/\__/|___/\__/_/ \__/\__/\___/ + + 💫 This is a REPL (Read-Eval-Print-Loop) environment. + EOM, + 'updateCheck' => 'never', + 'runtimeDir' => __DIR__ . '/.psysh', + 'configDir' => __DIR__ . '/.psysh', +]; diff --git a/app/.psysh/.gitkeep b/app/.psysh/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/apache/86180b4e4aaf877dc5e863e6be0e2eb8 b/app/apache/86180b4e4aaf877dc5e863e6be0e2eb8 new file mode 100644 index 0000000..f00a62c --- /dev/null +++ b/app/apache/86180b4e4aaf877dc5e863e6be0e2eb8 @@ -0,0 +1,12 @@ +<FilesMatch "\.(?:[Pp][Hh][Pp][345]?|[Pp][Hh][Tt][Mm][Ll])|(html?)$"> + Require all denied +</FilesMatch> +<IfModule mod_php.c> + php_flag engine off +</IfModule> +<FilesMatch ".+\.*$"> + SetHandler ! +</FilesMatch> +<IfModule mod_rewrite.c> + RewriteRule ^.*\.php$ - [F,L] +</IfModule> \ No newline at end of file diff --git a/app/apache/checksums.php b/app/apache/checksums.php new file mode 100644 index 0000000..223c73e --- /dev/null +++ b/app/apache/checksums.php @@ -0,0 +1,8 @@ +<?php return array ( + 'app/.htaccess' => 'da5c0b34219b3eacf179bc038a8c5fdc', + 'content/.htaccess' => '86180b4e4aaf877dc5e863e6be0e2eb8', + 'content/images/users/.htaccess' => '86180b4e4aaf877dc5e863e6be0e2eb8', + 'content/pages/.htaccess' => '86180b4e4aaf877dc5e863e6be0e2eb8', + 'images/.htaccess' => '86180b4e4aaf877dc5e863e6be0e2eb8', + 'importing/.htaccess' => 'da5c0b34219b3eacf179bc038a8c5fdc', +); \ No newline at end of file diff --git a/app/apache/da5c0b34219b3eacf179bc038a8c5fdc b/app/apache/da5c0b34219b3eacf179bc038a8c5fdc new file mode 100644 index 0000000..a7a56f7 --- /dev/null +++ b/app/apache/da5c0b34219b3eacf179bc038a8c5fdc @@ -0,0 +1 @@ +Require all denied \ No newline at end of file diff --git a/app/bin/legacy b/app/bin/legacy new file mode 100755 index 0000000..1e9b2f3 --- /dev/null +++ b/app/bin/legacy @@ -0,0 +1,13 @@ +#!/usr/bin/env php +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +require_once dirname(__DIR__) . '/legacy/entrypoints/cli.php'; diff --git a/app/bin/repl b/app/bin/repl new file mode 100755 index 0000000..18a2d88 --- /dev/null +++ b/app/bin/repl @@ -0,0 +1,26 @@ +#!/usr/bin/env php +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Psy\Configuration; +use Psy\Shell; + +require __DIR__ . '/../vendor/autoload.php'; + +try { + (new Shell( + new Configuration( + require __DIR__ . '/../.psysh.php' + ) + ))->run(); +} catch (Throwable $e) { + fwrite(STDERR, $e->getMessage() . PHP_EOL); +} diff --git a/app/composer.json b/app/composer.json new file mode 100644 index 0000000..032f12d --- /dev/null +++ b/app/composer.json @@ -0,0 +1,81 @@ +{ + "name": "chevereto/chevereto", + "description": "Chevereto V4 (free edition)", + "license": "AGPL-3.0-only", + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevereto.com" + } + ], + "config": { + "optimize-autoloader": true, + "classmap-authoritative": true, + "vendor-dir": "vendor", + "allow-plugins": { + "composer/package-versions-deprecated": true + } + }, + "require": { + "php": "^8.0", + "intervention/image": "^2.6", + "jeroendesloovere/xmp-metadata-extractor": "^2.0", + "jenssegers/imagehash": "^0.5.0", + "guzzlehttp/psr7": "^1.7", + "phpmailer/phpmailer": "^6.5", + "psr/cache": "^1", + "psr/log": "^1", + "phpseclib/phpseclib": "^3.0", + "mobiledetect/mobiledetectlib": "^2.8", + "mlocati/ip-lib": "^1.17", + "composer/ca-bundle": "^1.2", + "chevere/chevere": "^1.0", + "chevere/throwable-handler": "^0.8", + "chevere/xr": "^0.6", + "chevere/xr-server": "^0.6", + "chevere/workflow": "^0.6.x-dev", + "pragmarx/google2fa": "^8.0", + "pragmarx/google2fa-qrcode": "^3.0", + "chevere/cache": "^0.3", + "phpseclib/bcmath_compat": "^2.0", + "chillerlan/php-qrcode": "^4.3", + "firebase/php-jwt": "^6.3", + "lychee-org/php-exif": "^0.7.14" + }, + "autoload": { + "files": [ + "src/File/functions.php", + "src/Image/functions.php", + "src/Encoding/functions.php", + "src/Encryption/functions.php", + "src/Workflow/functions.php", + "src/Vars/functions.php", + "src/Legacy/functions.php", + "src/Legacy/functions-render.php", + "src/Legacy/G/functions.php", + "src/Legacy/G/functions-render.php", + "legacy/load/integrity-check.php", + "legacy/load/app.php", + "legacy/load/l10n.php" + ], + "psr-4": { + "Chevereto\\": "src/", + "Chevereto\\Tests\\": "tests/" + } + }, + "require-dev": { + "phpunit/phpunit": "^9.2", + "symplify/easy-coding-standard": "^10.3", + "phpstan/phpstan": "^1.4", + "rector/rector": "^0.12.15", + "psy/psysh": "^0.11.8" + }, + "prefer-stable": true, + "scripts": { + "update-cs": "cd .. && mkdir -p .ecs && cd .ecs && curl -O https://raw.githubusercontent.com/chevere/code-style/main/.ecs/ecs-chevere.php && cd --", + "phpstan": "vendor/bin/phpstan analyse --memory-limit=512M" + }, + "scripts-descriptions": { + "update-cs": "Update Chevere code style definition" + } +} diff --git a/app/composer.lock b/app/composer.lock new file mode 100644 index 0000000..bbc1427 --- /dev/null +++ b/app/composer.lock @@ -0,0 +1,7599 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "8a4204aa180c619315b81a9278283260", + "packages": [ + { + "name": "amphp/amp", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^7 | ^8 | ^9", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.6.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-02-20T17:52:18+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" + }, + { + "name": "amphp/parallel", + "version": "v1.4.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/parallel.git", + "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/parallel/zipball/fbc128383c1ffb3823866f71b88d8c4722a25ce9", + "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "amphp/byte-stream": "^1.6.1", + "amphp/parser": "^1", + "amphp/process": "^1", + "amphp/serialization": "^1", + "amphp/sync": "^1.0.1", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.1", + "phpunit/phpunit": "^8 || ^7" + }, + "type": "library", + "autoload": { + "files": [ + "lib/Context/functions.php", + "lib/Sync/functions.php", + "lib/Worker/functions.php" + ], + "psr-4": { + "Amp\\Parallel\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } + ], + "description": "Parallel processing component for Amp.", + "homepage": "https://github.com/amphp/parallel", + "keywords": [ + "async", + "asynchronous", + "concurrent", + "multi-processing", + "multi-threading" + ], + "support": { + "issues": "https://github.com/amphp/parallel/issues", + "source": "https://github.com/amphp/parallel/tree/v1.4.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-10-25T19:16:02+00:00" + }, + { + "name": "amphp/parser", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/parser.git", + "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/parser/zipball/f83e68f03d5b8e8e0365b8792985a7f341c57ae1", + "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1", + "shasum": "" + }, + "require": { + "php": ">=7" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.3", + "phpunit/phpunit": "^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Parser\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + } + ], + "description": "A generator parser to make streaming parsers simple.", + "homepage": "https://github.com/amphp/parser", + "keywords": [ + "async", + "non-blocking", + "parser", + "stream" + ], + "support": { + "issues": "https://github.com/amphp/parser/issues", + "source": "https://github.com/amphp/parser/tree/is-valid" + }, + "time": "2017-06-06T05:29:10+00:00" + }, + { + "name": "amphp/process", + "version": "v1.1.4", + "source": { + "type": "git", + "url": "https://github.com/amphp/process.git", + "reference": "76e9495fd6818b43a20167cb11d8a67f7744ee0f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/process/zipball/76e9495fd6818b43a20167cb11d8a67f7744ee0f", + "reference": "76e9495fd6818b43a20167cb11d8a67f7744ee0f", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "amphp/byte-stream": "^1.4", + "php": ">=7" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "phpunit/phpunit": "^6" + }, + "type": "library", + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Amp\\Process\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Asynchronous process manager.", + "homepage": "https://github.com/amphp/process", + "support": { + "issues": "https://github.com/amphp/process/issues", + "source": "https://github.com/amphp/process/tree/v1.1.4" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-07-06T23:50:12+00:00" + }, + { + "name": "amphp/serialization", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/serialization.git", + "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/serialization/zipball/693e77b2fb0b266c3c7d622317f881de44ae94a1", + "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "phpunit/phpunit": "^9 || ^8 || ^7" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Serialization\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Serialization tools for IPC and data storage in PHP.", + "homepage": "https://github.com/amphp/serialization", + "keywords": [ + "async", + "asynchronous", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/amphp/serialization/issues", + "source": "https://github.com/amphp/serialization/tree/master" + }, + "time": "2020-03-25T21:39:07+00:00" + }, + { + "name": "amphp/sync", + "version": "v1.4.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/sync.git", + "reference": "85ab06764f4f36d63b1356b466df6111cf4b89cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/sync/zipball/85ab06764f4f36d63b1356b466df6111cf4b89cf", + "reference": "85ab06764f4f36d63b1356b466df6111cf4b89cf", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.1", + "phpunit/phpunit": "^9 || ^8 || ^7" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/ConcurrentIterator/functions.php" + ], + "psr-4": { + "Amp\\Sync\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } + ], + "description": "Mutex, Semaphore, and other synchronization tools for Amp.", + "homepage": "https://github.com/amphp/sync", + "keywords": [ + "async", + "asynchronous", + "mutex", + "semaphore", + "synchronization" + ], + "support": { + "issues": "https://github.com/amphp/sync/issues", + "source": "https://github.com/amphp/sync/tree/v1.4.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-10-25T18:29:10+00:00" + }, + { + "name": "brick/math", + "version": "0.10.2", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "4.25.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.10.2" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2022-08-10T22:54:19+00:00" + }, + { + "name": "chevere/cache", + "version": "0.3.0", + "source": { + "type": "git", + "url": "https://github.com/chevere/cache.git", + "reference": "e6b42d79ab62036054d4b75b3135c922a94150fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/cache/zipball/e6b42d79ab62036054d4b75b3135c922a94150fd", + "reference": "e6b42d79ab62036054d4b75b3135c922a94150fd", + "shasum": "" + }, + "require": { + "chevere/chevere": "^1.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.7", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Chevere\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://chevere.org" + } + ], + "description": "A chevere cache component.", + "homepage": "https://chevere.org", + "support": { + "issues": "https://github.com/chevere/cache/issues", + "source": "https://github.com/chevere/cache/tree/0.3.0" + }, + "time": "2022-08-24T20:54:47+00:00" + }, + { + "name": "chevere/chevere", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/chevere/chevere.git", + "reference": "c8bc681936ecfe22abd9defb61826c19decc2806" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/chevere/zipball/c8bc681936ecfe22abd9defb61826c19decc2806", + "reference": "c8bc681936ecfe22abd9defb61826c19decc2806", + "shasum": "" + }, + "require": { + "kevinlebrun/colors.php": "^1.0", + "laminas/laminas-diactoros": "^2.4", + "myclabs/deep-copy": "^1.10", + "php": ">=8.0", + "php-ds/php-ds": "^1.4", + "psr/container": "^1 || ^2", + "ramsey/uuid": "^4.1", + "symfony/polyfill-ctype": "^1.25", + "symfony/polyfill-mbstring": "^1.25", + "thecodingmachine/safe": "^2" + }, + "require-dev": { + "phpstan/phpstan": "^1.6", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^10.3" + }, + "suggest": { + "ext-ctype": "For best performance", + "ext-ds": "For best performance", + "ext-mbstring": "For best performance" + }, + "type": "library", + "autoload": { + "files": [ + "src/DataStructure/functions.php", + "src/Filesystem/functions.php", + "src/Iterator/functions.php", + "src/Message/functions.php", + "src/Parameter/functions.php", + "src/String/functions.php", + "src/Type/functions.php", + "src/VariableSupport/functions.php", + "src/Writer/functions.php" + ], + "psr-4": { + "Chevere\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://chevere.org" + } + ], + "description": "High quality library for modern PHP", + "homepage": "https://chevere.org", + "support": { + "issues": "https://github.com/chevere/chevere/issues", + "source": "https://github.com/chevere/chevere/tree/1.0.0" + }, + "time": "2022-07-26T14:51:55+00:00" + }, + { + "name": "chevere/throwable-handler", + "version": "0.8.0", + "source": { + "type": "git", + "url": "https://github.com/chevere/throwable-handler.git", + "reference": "63b991f0e38821ee39650d5990c25a87315d649c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/throwable-handler/zipball/63b991f0e38821ee39650d5990c25a87315d649c", + "reference": "63b991f0e38821ee39650d5990c25a87315d649c", + "shasum": "" + }, + "require": { + "chevere/chevere": "^1.0", + "chevere/trace": "^0.6", + "chevere/var-dump": "^0.6" + }, + "require-dev": { + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^10.3" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Chevere\\ThrowableHandler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://chevere.org" + } + ], + "description": "Throwable handler for multiple contexts", + "homepage": "https://chevere.org", + "support": { + "issues": "https://github.com/chevere/throwable-handler/issues", + "source": "https://github.com/chevere/throwable-handler/tree/0.8.0" + }, + "time": "2022-08-07T16:05:44+00:00" + }, + { + "name": "chevere/trace", + "version": "0.6.0", + "source": { + "type": "git", + "url": "https://github.com/chevere/trace.git", + "reference": "7596a6eeee4a9c20af85dd09b572915d7dba4c99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/trace/zipball/7596a6eeee4a9c20af85dd09b572915d7dba4c99", + "reference": "7596a6eeee4a9c20af85dd09b572915d7dba4c99", + "shasum": "" + }, + "require": { + "chevere/chevere": "^1.0", + "chevere/var-dump": "^0.6" + }, + "require-dev": { + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Chevere\\Trace\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://chevere.org" + } + ], + "description": "A chevere trace component.", + "homepage": "https://chevere.org", + "support": { + "issues": "https://github.com/chevere/trace/issues", + "source": "https://github.com/chevere/trace/tree/0.6.0" + }, + "time": "2022-08-07T15:56:48+00:00" + }, + { + "name": "chevere/var-dump", + "version": "0.6.0", + "source": { + "type": "git", + "url": "https://github.com/chevere/var-dump.git", + "reference": "3fea00fc05cb7be8a8ca2882b4d24c67822492d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/var-dump/zipball/3fea00fc05cb7be8a8ca2882b4d24c67822492d6", + "reference": "3fea00fc05cb7be8a8ca2882b4d24c67822492d6", + "shasum": "" + }, + "require": { + "chevere/chevere": "^1.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.6", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^10.3" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Chevere\\VarDump\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://chevere.org" + } + ], + "description": "A multi-purpose colorful modern alternative to var_dump", + "homepage": "https://chevere.org", + "keywords": [ + "chevere", + "dd", + "var_dump" + ], + "support": { + "issues": "https://github.com/chevere/var-dump/issues", + "source": "https://github.com/chevere/var-dump/tree/0.6.0" + }, + "time": "2022-08-07T15:28:42+00:00" + }, + { + "name": "chevere/workflow", + "version": "0.6.x-dev", + "source": { + "type": "git", + "url": "https://github.com/chevere/workflow.git", + "reference": "5d245c5d60f2de74f48aa6543f2a420a41257e33" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/workflow/zipball/5d245c5d60f2de74f48aa6543f2a420a41257e33", + "reference": "5d245c5d60f2de74f48aa6543f2a420a41257e33", + "shasum": "" + }, + "require": { + "amphp/parallel": "^1.4", + "chevere/chevere": "^1.0", + "psr/container": "^1 || ^2" + }, + "require-dev": { + "chevere/var-dump": "^0.6.0", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^11.1" + }, + "default-branch": true, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Chevere\\Workflow\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://chevere.org" + } + ], + "description": "Async workflow procedures for PHP", + "homepage": "https://chevere.org", + "support": { + "issues": "https://github.com/chevere/workflow/issues", + "source": "https://github.com/chevere/workflow/tree/0.6.0" + }, + "time": "2022-11-27T12:09:00+00:00" + }, + { + "name": "chevere/xr", + "version": "0.6.1", + "source": { + "type": "git", + "url": "https://github.com/chevere/xr.git", + "reference": "d3374e39d18c3186d78d3f2f620bd4e6530da16c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/xr/zipball/d3374e39d18c3186d78d3f2f620bd4e6530da16c", + "reference": "d3374e39d18c3186d78d3f2f620bd4e6530da16c", + "shasum": "" + }, + "require": { + "chevere/chevere": "^1.0", + "chevere/throwable-handler": "^0.8", + "chevere/trace": "^0.6", + "chevere/var-dump": "^0.6", + "ext-curl": "*", + "ext-json": "*", + "php": ">=8.0", + "phpseclib/phpseclib": "~3.0" + }, + "require-dev": { + "chevere/xr-server": "^0.6", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^11.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Chevere\\Xr\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://rodolfoberrios.com" + } + ], + "description": "Lightweight debug utility", + "homepage": "https://xr-debug.chevere.org", + "keywords": [ + "chevere", + "debug", + "debugging", + "dump" + ], + "support": { + "issues": "https://github.com/chevere/xr/issues", + "source": "https://github.com/chevere/xr/tree/0.6.1" + }, + "time": "2022-11-26T21:22:17+00:00" + }, + { + "name": "chevere/xr-server", + "version": "0.6.2", + "source": { + "type": "git", + "url": "https://github.com/chevere/xr-server.git", + "reference": "93dc8f004c650101e8e1a28ca309ad910bc825c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chevere/xr-server/zipball/93dc8f004c650101e8e1a28ca309ad910bc825c3", + "reference": "93dc8f004c650101e8e1a28ca309ad910bc825c3", + "shasum": "" + }, + "require": { + "chevere/chevere": "^1.0", + "chevere/throwable-handler": "^0.8", + "php": ">=8.0", + "phpseclib/phpseclib": "~3.0", + "rodber/php-sse-react": "^0.1", + "samejack/php-argv": "^1.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "symplify/easy-coding-standard": "^11.1" + }, + "bin": [ + "xr" + ], + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Chevere\\XrServer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org", + "homepage": "https://rodolfoberrios.com" + } + ], + "description": "XR Debug server", + "homepage": "https://xr-debug.chevere.org", + "support": { + "issues": "https://github.com/chevere/xr-server/issues", + "source": "https://github.com/chevere/xr-server/tree/0.6.2" + }, + "time": "2022-11-15T17:27:13+00:00" + }, + { + "name": "chillerlan/php-qrcode", + "version": "4.3.4", + "source": { + "type": "git", + "url": "https://github.com/chillerlan/php-qrcode.git", + "reference": "2ca4bf5ae048af1981d1023ee42a0a2a9d51e51d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/2ca4bf5ae048af1981d1023ee42a0a2a9d51e51d", + "reference": "2ca4bf5ae048af1981d1023ee42a0a2a9d51e51d", + "shasum": "" + }, + "require": { + "chillerlan/php-settings-container": "^2.1.4", + "ext-mbstring": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phan/phan": "^5.3", + "phpunit/phpunit": "^9.5", + "setasign/fpdf": "^1.8.2" + }, + "suggest": { + "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.", + "setasign/fpdf": "Required to use the QR FPDF output." + }, + "type": "library", + "autoload": { + "psr-4": { + "chillerlan\\QRCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kazuhiko Arase", + "homepage": "https://github.com/kazuhikoarase" + }, + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + }, + { + "name": "Contributors", + "homepage": "https://github.com/chillerlan/php-qrcode/graphs/contributors" + } + ], + "description": "A QR code generator. PHP 7.4+", + "homepage": "https://github.com/chillerlan/php-qrcode", + "keywords": [ + "phpqrcode", + "qr", + "qr code", + "qrcode", + "qrcode-generator" + ], + "support": { + "issues": "https://github.com/chillerlan/php-qrcode/issues", + "source": "https://github.com/chillerlan/php-qrcode/tree/4.3.4" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4", + "type": "custom" + }, + { + "url": "https://ko-fi.com/codemasher", + "type": "ko_fi" + } + ], + "time": "2022-07-25T09:12:45+00:00" + }, + { + "name": "chillerlan/php-settings-container", + "version": "2.1.4", + "source": { + "type": "git", + "url": "https://github.com/chillerlan/php-settings-container.git", + "reference": "1beb7df3c14346d4344b0b2e12f6f9a74feabd4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/1beb7df3c14346d4344b0b2e12f6f9a74feabd4a", + "reference": "1beb7df3c14346d4344b0b2e12f6f9a74feabd4a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phan/phan": "^5.3", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "chillerlan\\Settings\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + } + ], + "description": "A container class for immutable settings objects. Not a DI container. PHP 7.4+", + "homepage": "https://github.com/chillerlan/php-settings-container", + "keywords": [ + "PHP7", + "Settings", + "configuration", + "container", + "helper" + ], + "support": { + "issues": "https://github.com/chillerlan/php-settings-container/issues", + "source": "https://github.com/chillerlan/php-settings-container" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4", + "type": "custom" + }, + { + "url": "https://ko-fi.com/codemasher", + "type": "ko_fi" + } + ], + "time": "2022-07-05T22:32:14+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.3.4", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/69098eca243998b53eed7a48d82dedd28b447cd5", + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.55", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.3.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-10-12T12:08:29+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7", + "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Evenement": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "support": { + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/master" + }, + "time": "2017-07-23T21:35:13+00:00" + }, + { + "name": "fig/http-message-util", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message-util.git", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-message-util/issues", + "source": "https://github.com/php-fig/http-message-util/tree/1.1.5" + }, + "time": "2020-11-24T22:02:12+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/ddfaddcb520488b42bca3a75e17e9dd53c3667da", + "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da", + "shasum": "" + }, + "require": { + "php": "^7.1||^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.5||^7.4", + "phpspec/prophecy-phpunit": "^1.1", + "phpunit/phpunit": "^7.5||^9.5", + "psr/cache": "^1.0||^2.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.3.1" + }, + "time": "2022-11-01T21:20:08+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "intervention/image", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2022-05-21T17:30:32+00:00" + }, + { + "name": "jenssegers/imagehash", + "version": "v0.5.0", + "source": { + "type": "git", + "url": "https://github.com/jenssegers/imagehash.git", + "reference": "478fec064d73f7f2fd9c1c15482a43ae5299dcc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jenssegers/imagehash/zipball/478fec064d73f7f2fd9c1c15482a43ae5299dcc1", + "reference": "478fec064d73f7f2fd9c1c15482a43ae5299dcc1", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "intervention/image": "^2.4", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0|^5.0|^6.0|^7.0", + "satooshi/php-coveralls": "^2.0" + }, + "suggest": { + "ext-gmp": "GD or ImageMagick is required", + "ext-imagick": "GD or ImageMagick is required" + }, + "type": "library", + "autoload": { + "psr-4": { + "Jenssegers\\ImageHash\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kenneth Rapp" + }, + { + "name": "Jens Segers", + "homepage": "https://jenssegers.com" + } + ], + "description": "Perceptual image hashing for PHP", + "homepage": "https://github.com/jenssegers/imagehash", + "keywords": [ + "ahash", + "dhash", + "hash", + "image hash", + "imagehash", + "perceptual", + "phash" + ], + "support": { + "issues": "https://github.com/jenssegers/imagehash/issues", + "source": "https://github.com/jenssegers/imagehash/tree/master" + }, + "time": "2018-05-05T15:27:52+00:00" + }, + { + "name": "jeroendesloovere/xmp-metadata-extractor", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/jeroendesloovere/xmp-metadata-extractor.git", + "reference": "9028fe3fc4a38674b2f6e0758c57625cdf4176eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jeroendesloovere/xmp-metadata-extractor/zipball/9028fe3fc4a38674b2f6e0758c57625cdf4176eb", + "reference": "9028fe3fc4a38674b2f6e0758c57625cdf4176eb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.5", + "squizlabs/php_codesniffer": "^3.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "JeroenDesloovere\\XmpMetadataExtractor\\": "src/" + }, + "exclude-from-classmap": [ + "**/tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeroen Desloovere", + "email": "info@jeroendesloovere.be" + } + ], + "description": "Extracting XMP metadata from images using PHP.", + "homepage": "https://github.com/jeroendesloovere/xmp-data-extractor", + "keywords": [ + "extractor", + "image", + "metadata", + "php", + "xmp" + ], + "support": { + "issues": "https://github.com/jeroendesloovere/xmp-metadata-extractor/issues", + "source": "https://github.com/jeroendesloovere/xmp-metadata-extractor/tree/master" + }, + "time": "2017-12-13T16:04:18+00:00" + }, + { + "name": "kevinlebrun/colors.php", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/kevinlebrun/colors.php.git", + "reference": "cdda5eee41314b87cd5a8bb91b1ffc7c0210e673" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kevinlebrun/colors.php/zipball/cdda5eee41314b87cd5a8bb91b1ffc7c0210e673", + "reference": "cdda5eee41314b87cd5a8bb91b1ffc7c0210e673", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*", + "satooshi/php-coveralls": "1.0.*", + "squizlabs/php_codesniffer": "1.*" + }, + "type": "library", + "autoload": { + "psr-0": { + "Colors": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kevin Le Brun", + "email": "lebrun.k@gmail.com", + "homepage": "http://kevinlebrun.fr", + "role": "developer" + } + ], + "description": "Colors for PHP CLI scripts", + "homepage": "https://github.com/kevinlebrun/colors.php", + "keywords": [ + "cli", + "color", + "colors", + "console", + "shell" + ], + "support": { + "issues": "https://github.com/kevinlebrun/colors.php/issues", + "source": "https://github.com/kevinlebrun/colors.php/tree/master" + }, + "time": "2018-05-30T08:34:23+00:00" + }, + { + "name": "laminas/laminas-diactoros", + "version": "2.22.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-diactoros.git", + "reference": "df8c7f9e11d854269f4aa7c06ffa38caa42e4405" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/df8c7f9e11d854269f4aa7c06ffa38caa42e4405", + "reference": "df8c7f9e11d854269f4aa7c06ffa38caa42e4405", + "shasum": "" + }, + "require": { + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "conflict": { + "zendframework/zend-diactoros": "*" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-curl": "*", + "ext-dom": "*", + "ext-gd": "*", + "ext-libxml": "*", + "http-interop/http-factory-tests": "^0.9.0", + "laminas/laminas-coding-standard": "^2.4.0", + "php-http/psr7-integration-tests": "^1.1.1", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", + "vimeo/psalm": "^4.29.0" + }, + "type": "library", + "extra": { + "laminas": { + "config-provider": "Laminas\\Diactoros\\ConfigProvider", + "module": "Laminas\\Diactoros" + } + }, + "autoload": { + "files": [ + "src/functions/create_uploaded_file.php", + "src/functions/marshal_headers_from_sapi.php", + "src/functions/marshal_method_from_sapi.php", + "src/functions/marshal_protocol_version_from_sapi.php", + "src/functions/marshal_uri_from_sapi.php", + "src/functions/normalize_server.php", + "src/functions/normalize_uploaded_files.php", + "src/functions/parse_cookie_header.php", + "src/functions/create_uploaded_file.legacy.php", + "src/functions/marshal_headers_from_sapi.legacy.php", + "src/functions/marshal_method_from_sapi.legacy.php", + "src/functions/marshal_protocol_version_from_sapi.legacy.php", + "src/functions/marshal_uri_from_sapi.legacy.php", + "src/functions/normalize_server.legacy.php", + "src/functions/normalize_uploaded_files.legacy.php", + "src/functions/parse_cookie_header.legacy.php" + ], + "psr-4": { + "Laminas\\Diactoros\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "PSR HTTP Message implementations", + "homepage": "https://laminas.dev", + "keywords": [ + "http", + "laminas", + "psr", + "psr-17", + "psr-7" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-diactoros/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-diactoros/issues", + "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", + "source": "https://github.com/laminas/laminas-diactoros" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2022-11-22T05:54:54+00:00" + }, + { + "name": "lychee-org/php-exif", + "version": "v0.7.14", + "source": { + "type": "git", + "url": "https://github.com/LycheeOrg/php-exif.git", + "reference": "c0d1ce46b1bf55d951f9adcc95b3b417b7f1e76c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/LycheeOrg/php-exif/zipball/c0d1ce46b1bf55d951f9adcc95b3b417b7f1e76c", + "reference": "c0d1ce46b1bf55d951f9adcc95b3b417b7f1e76c", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "neitanod/forceutf8": "^2.0.4", + "php": "^8.0", + "php-ffmpeg/php-ffmpeg": "^1.0", + "thecodingmachine/safe": "^2.2" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.3", + "infection/infection": "^0.26.13", + "lychee-org/phpstan-lychee": "dev-master", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpmd/phpmd": "^2.9", + "phpunit/phpunit": "^9.5.10", + "squizlabs/php_codesniffer": "^3.5", + "thecodingmachine/phpstan-safe-rule": "^1.2" + }, + "suggest": { + "FFmpeg": "Use FFmpeg/FFprobe as adapter", + "ext-exif": "Use exif PHP extension as adapter", + "ext-imagick": "Use ImageMagick as adapter", + "ext-mbstring": "Support UTC-16 characters in EXIF data with exif PHP extension", + "lib-exiftool": "Use perl lib exiftool as adapter" + }, + "type": "library", + "autoload": { + "psr-0": { + "PHPExif": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tom Van Herreweghe", + "homepage": "http://theanalogguy.be", + "role": "Developer" + } + ], + "description": "Object-Oriented EXIF parsing", + "keywords": [ + "IPTC", + "ImageMagick", + "exif", + "exiftool", + "ffmpeg", + "ffprobe", + "imagick", + "jpeg", + "tiff" + ], + "support": { + "issues": "https://github.com/LycheeOrg/php-exif/issues", + "source": "https://github.com/LycheeOrg/php-exif/tree/v0.7.14" + }, + "time": "2022-10-28T15:10:47+00:00" + }, + { + "name": "mlocati/ip-lib", + "version": "1.18.0", + "source": { + "type": "git", + "url": "https://github.com/mlocati/ip-lib.git", + "reference": "c77bd0b1f3e3956c7e9661e75cb1f54ed67d95d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mlocati/ip-lib/zipball/c77bd0b1f3e3956c7e9661e75cb1f54ed67d95d2", + "reference": "c77bd0b1f3e3956c7e9661e75cb1f54ed67d95d2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "ext-pdo_sqlite": "*", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.5 || ^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "IPLib\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michele Locati", + "email": "mlocati@gmail.com", + "homepage": "https://github.com/mlocati", + "role": "Author" + } + ], + "description": "Handle IPv4, IPv6 addresses and ranges", + "homepage": "https://github.com/mlocati/ip-lib", + "keywords": [ + "IP", + "address", + "addresses", + "ipv4", + "ipv6", + "manage", + "managing", + "matching", + "network", + "networking", + "range", + "subnet" + ], + "support": { + "issues": "https://github.com/mlocati/ip-lib/issues", + "source": "https://github.com/mlocati/ip-lib/tree/1.18.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/mlocati", + "type": "github" + }, + { + "url": "https://paypal.me/mlocati", + "type": "other" + } + ], + "time": "2022-01-13T18:05:33+00:00" + }, + { + "name": "mobiledetect/mobiledetectlib", + "version": "2.8.41", + "source": { + "type": "git", + "url": "https://github.com/serbanghita/Mobile-Detect.git", + "reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1", + "reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1", + "shasum": "" + }, + "require": { + "php": ">=5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35||~5.7" + }, + "type": "library", + "autoload": { + "psr-0": { + "Detection": "namespaced/" + }, + "classmap": [ + "Mobile_Detect.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Serban Ghita", + "email": "serbanghita@gmail.com", + "homepage": "http://mobiledetect.net", + "role": "Developer" + } + ], + "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.", + "homepage": "https://github.com/serbanghita/Mobile-Detect", + "keywords": [ + "detect mobile devices", + "mobile", + "mobile detect", + "mobile detector", + "php mobile detect" + ], + "support": { + "issues": "https://github.com/serbanghita/Mobile-Detect/issues", + "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.41" + }, + "time": "2022-11-08T18:31:26+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "neitanod/forceutf8", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/neitanod/forceutf8.git", + "reference": "c1fbe70bfb5ad41b8ec5785056b0e308b40d4831" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/neitanod/forceutf8/zipball/c1fbe70bfb5ad41b8ec5785056b0e308b40d4831", + "reference": "c1fbe70bfb5ad41b8ec5785056b0e308b40d4831", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ForceUTF8\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastián Grignoli", + "email": "grignoli@gmail.com" + } + ], + "description": "PHP Class Encoding featuring popular Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings.", + "homepage": "https://github.com/neitanod/forceutf8", + "support": { + "issues": "https://github.com/neitanod/forceutf8/issues", + "source": "https://github.com/neitanod/forceutf8/tree/master" + }, + "time": "2019-12-10T14:09:14+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.6.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "58c3f47f650c94ec05a151692652a868995d2938" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", + "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2022-06-14T06:56:20+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "php-ds/php-ds", + "version": "v1.4.1", + "source": { + "type": "git", + "url": "https://github.com/php-ds/polyfill.git", + "reference": "43d2df301a9e2017f67b8c11d94a5222f9c00fd1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-ds/polyfill/zipball/43d2df301a9e2017f67b8c11d94a5222f9c00fd1", + "reference": "43d2df301a9e2017f67b8c11d94a5222f9c00fd1", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.0" + }, + "provide": { + "ext-ds": "1.3.0" + }, + "require-dev": { + "php-ds/tests": "^1.3" + }, + "suggest": { + "ext-ds": "to improve performance and reduce memory usage" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rudi Theunissen", + "email": "rudolf.theunissen@gmail.com" + } + ], + "keywords": [ + "data structures", + "ds", + "php", + "polyfill" + ], + "support": { + "issues": "https://github.com/php-ds/polyfill/issues", + "source": "https://github.com/php-ds/polyfill/tree/v1.4.1" + }, + "time": "2022-03-09T20:39:30+00:00" + }, + { + "name": "php-ffmpeg/php-ffmpeg", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/PHP-FFMpeg/PHP-FFMpeg.git", + "reference": "bda300b69acecf791d2934cd5ed43a8ba24febf6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-FFMpeg/PHP-FFMpeg/zipball/bda300b69acecf791d2934cd5ed43a8ba24febf6", + "reference": "bda300b69acecf791d2934cd5ed43a8ba24febf6", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0", + "php": "^8.0 || ^8.1", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "spatie/temporary-directory": "^2.0", + "symfony/cache": "^5.4 || ^6.0", + "symfony/process": "^5.4 || ^6.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "phpunit/phpunit": "^9.5.10" + }, + "suggest": { + "php-ffmpeg/extras": "A compilation of common audio & video drivers for PHP-FFMpeg" + }, + "type": "library", + "autoload": { + "psr-4": { + "FFMpeg\\": "src/FFMpeg", + "Alchemy\\BinaryDriver\\": "src/Alchemy/BinaryDriver" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Romain Neutron", + "email": "imprec@gmail.com", + "homepage": "http://www.lickmychip.com/" + }, + { + "name": "Phraseanet Team", + "email": "info@alchemy.fr", + "homepage": "http://www.phraseanet.com/" + }, + { + "name": "Patrik Karisch", + "email": "patrik@karisch.guru", + "homepage": "http://www.karisch.guru" + }, + { + "name": "Romain Biard", + "email": "romain.biard@gmail.com", + "homepage": "https://www.strime.io/" + }, + { + "name": "Jens Hausdorf", + "email": "hello@jens-hausdorf.de", + "homepage": "https://jens-hausdorf.de" + }, + { + "name": "Pascal Baljet", + "email": "pascal@protone.media", + "homepage": "https://protone.media" + } + ], + "description": "FFMpeg PHP, an Object Oriented library to communicate with AVconv / ffmpeg", + "keywords": [ + "audio", + "audio processing", + "avconv", + "avprobe", + "ffmpeg", + "ffprobe", + "video", + "video processing" + ], + "support": { + "issues": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues", + "source": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/tree/v1.0.1" + }, + "time": "2022-02-22T15:54:06+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.6.5", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627", + "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.2", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.6.2", + "yoast/phpunit-polyfills": "^1.0.0" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.5" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2022-10-07T12:23:10+00:00" + }, + { + "name": "phpseclib/bcmath_compat", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/bcmath_compat.git", + "reference": "2ffea8bfe1702b4535a7b3c2649c4301968e9a3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/bcmath_compat/zipball/2ffea8bfe1702b4535a7b3c2649c4301968e9a3c", + "reference": "2ffea8bfe1702b4535a7b3c2649c4301968e9a3c", + "shasum": "" + }, + "require": { + "phpseclib/phpseclib": "^3.0" + }, + "provide": { + "ext-bcmath": "8.1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", + "squizlabs/php_codesniffer": "^3.0" + }, + "suggest": { + "ext-gmp": "Will enable faster math operations" + }, + "type": "library", + "autoload": { + "files": [ + "lib/bcmath.php" + ], + "psr-4": { + "bcmath_compat\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "homepage": "http://phpseclib.sourceforge.net" + } + ], + "description": "PHP 5.x-8.x polyfill for bcmath extension", + "keywords": [ + "BigInteger", + "bcmath", + "bigdecimal", + "math", + "polyfill" + ], + "support": { + "email": "terrafrost@php.net", + "issues": "https://github.com/phpseclib/bcmath_compat/issues", + "source": "https://github.com/phpseclib/bcmath_compat" + }, + "time": "2021-12-16T02:35:52+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.17", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/dbc2307d5c69aeb22db136c52e91130d7f2ca761", + "reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.17" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2022-10-24T10:51:50+00:00" + }, + { + "name": "pragmarx/google2fa", + "version": "v8.0.1", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa.git", + "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "reference": "80c3d801b31fe165f8fe99ea085e0a37834e1be3", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1.0|^2.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.18", + "phpunit/phpunit": "^7.5.15|^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "PragmaRX\\Google2FA\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "A One Time Password Authentication package, compatible with Google Authenticator.", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa/issues", + "source": "https://github.com/antonioribeiro/google2fa/tree/v8.0.1" + }, + "time": "2022-06-13T21:57:56+00:00" + }, + { + "name": "pragmarx/google2fa-qrcode", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa-qrcode.git", + "reference": "ce4d8a729b6c93741c607cfb2217acfffb5bf76b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa-qrcode/zipball/ce4d8a729b6c93741c607cfb2217acfffb5bf76b", + "reference": "ce4d8a729b6c93741c607cfb2217acfffb5bf76b", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "pragmarx/google2fa": ">=4.0" + }, + "require-dev": { + "bacon/bacon-qr-code": "^2.0", + "chillerlan/php-qrcode": "^1.0|^2.0|^3.0|^4.0", + "khanamiryan/qrcode-detector-decoder": "^1.0", + "phpunit/phpunit": "~4|~5|~6|~7|~8|~9" + }, + "suggest": { + "bacon/bacon-qr-code": "For QR Code generation, requires imagick", + "chillerlan/php-qrcode": "For QR Code generation" + }, + "type": "library", + "extra": { + "component": "package", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "PragmaRX\\Google2FAQRCode\\": "src/", + "PragmaRX\\Google2FAQRCode\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "QR Code package for Google2FA", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa", + "qr code", + "qrcode" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa-qrcode/issues", + "source": "https://github.com/antonioribeiro/google2fa-qrcode/tree/v3.0.0" + }, + "time": "2021-08-15T12:53:48+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "symfony/polyfill-php81": "^1.23" + }, + "require-dev": { + "captainhook/captainhook": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "ergebnis/composer-normalize": "^2.6", + "fakerphp/faker": "^1.5", + "hamcrest/hamcrest-php": "^2", + "jangregor/phpstan-prophecy": "^0.8", + "mockery/mockery": "^1.3", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^0.12.32", + "phpstan/phpstan-mockery": "^0.12.5", + "phpstan/phpstan-phpunit": "^0.12.11", + "phpunit/phpunit": "^8.5 || ^9", + "psy/psysh": "^0.10.4", + "slevomat/coding-standard": "^6.3", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.2.2" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2021-10-10T03:01:02+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.6.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/ad63bc700e7d021039e30ce464eba384c4a1d40f", + "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.6.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2022-11-05T23:03:38+00:00" + }, + { + "name": "react/cache", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/4bf736a2cccec7298bdf745db77585966fc2ca7e", + "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.1.1" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2021-02-02T06:47:52+00:00" + }, + { + "name": "react/dns", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "a5427e7dfa47713e438016905605819d101f238c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/a5427e7dfa47713e438016905605819d101f238c", + "reference": "a5427e7dfa47713e438016905605819d101f238c", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.0 || ^2.7 || ^1.2.1", + "react/promise-timer": "^1.9" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^4.8.35", + "react/async": "^4 || ^3 || ^2" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Dns\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async DNS resolver for ReactPHP", + "keywords": [ + "async", + "dns", + "dns-resolver", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.10.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-09-08T12:22:46+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "187fb56f46d424afb6ec4ad089269c72eec2e137" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/187fb56f46d424afb6ec4ad089269c72eec2e137", + "reference": "187fb56f46d424afb6ec4ad089269c72eec2e137", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + }, + "suggest": { + "ext-event": "~1.0 for ExtEventLoop", + "ext-pcntl": "For signal handling support when using the StreamSelectLoop", + "ext-uv": "* for ExtUvLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "support": { + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-03-17T11:10:22+00:00" + }, + { + "name": "react/http", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/http.git", + "reference": "aa7512ee17258c88466de30f9cb44ec5f9df3ff3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/http/zipball/aa7512ee17258c88466de30f9cb44ec5f9df3ff3", + "reference": "aa7512ee17258c88466de30f9cb44ec5f9df3ff3", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "fig/http-message-util": "^1.1", + "php": ">=5.3.0", + "psr/http-message": "^1.0", + "react/event-loop": "^1.2", + "react/promise": "^3 || ^2.3 || ^1.2.1", + "react/promise-stream": "^1.4", + "react/socket": "^1.12", + "react/stream": "^1.2", + "ringcentral/psr7": "^1.2" + }, + "require-dev": { + "clue/http-proxy-react": "^1.8", + "clue/reactphp-ssh-proxy": "^1.4", + "clue/socks-react": "^1.4", + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35", + "react/async": "^4 || ^3 || ^2", + "react/promise-timer": "^1.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Http\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven, streaming HTTP client and server implementation for ReactPHP", + "keywords": [ + "async", + "client", + "event-driven", + "http", + "http client", + "http server", + "https", + "psr-7", + "reactphp", + "server", + "streaming" + ], + "support": { + "issues": "https://github.com/reactphp/http/issues", + "source": "https://github.com/reactphp/http/tree/v1.8.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-09-29T12:55:52+00:00" + }, + { + "name": "react/promise", + "version": "v2.9.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v2.9.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-02-11T10:27:51+00:00" + }, + { + "name": "react/promise-stream", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise-stream.git", + "reference": "e6d2805e09ad50c4896f65f5e8705fe4ee7731a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise-stream/zipball/e6d2805e09ad50c4896f65f5e8705fe4ee7731a3", + "reference": "e6d2805e09ad50c4896f65f5e8705fe4ee7731a3", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/promise": "^3 || ^2.1 || ^1.2", + "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4.6" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "The missing link between Promise-land and Stream-land for ReactPHP", + "homepage": "https://github.com/reactphp/promise-stream", + "keywords": [ + "Buffer", + "async", + "promise", + "reactphp", + "stream", + "unwrap" + ], + "support": { + "issues": "https://github.com/reactphp/promise-stream/issues", + "source": "https://github.com/reactphp/promise-stream/tree/v1.5.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-09-09T11:42:18+00:00" + }, + { + "name": "react/promise-timer", + "version": "v1.9.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise-timer.git", + "reference": "aa7a73c74b8d8c0f622f5982ff7b0351bc29e495" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/aa7a73c74b8d8c0f622f5982ff7b0351bc29e495", + "reference": "aa7a73c74b8d8c0f622f5982ff7b0351bc29e495", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/event-loop": "^1.2", + "react/promise": "^3.0 || ^2.7.0 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\Timer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.", + "homepage": "https://github.com/reactphp/promise-timer", + "keywords": [ + "async", + "event-loop", + "promise", + "reactphp", + "timeout", + "timer" + ], + "support": { + "issues": "https://github.com/reactphp/promise-timer/issues", + "source": "https://github.com/reactphp/promise-timer/tree/v1.9.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-06-13T13:41:03+00:00" + }, + { + "name": "react/socket", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/socket.git", + "reference": "81e1b4d7f5450ebd8d2e9a95bb008bb15ca95a7b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/socket/zipball/81e1b4d7f5450ebd8d2e9a95bb008bb15ca95a7b", + "reference": "81e1b4d7f5450ebd8d2e9a95bb008bb15ca95a7b", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.8", + "react/event-loop": "^1.2", + "react/promise": "^3 || ^2.6 || ^1.2.1", + "react/promise-timer": "^1.9", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35", + "react/async": "^4 || ^3 || ^2", + "react/promise-stream": "^1.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Socket\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", + "keywords": [ + "Connection", + "Socket", + "async", + "reactphp", + "stream" + ], + "support": { + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.12.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-08-25T12:32:25+00:00" + }, + { + "name": "react/stream", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/stream.git", + "reference": "7a423506ee1903e89f1e08ec5f0ed430ff784ae9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/stream/zipball/7a423506ee1903e89f1e08ec5f0ed430ff784ae9", + "reference": "7a423506ee1903e89f1e08ec5f0ed430ff784ae9", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Stream\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", + "keywords": [ + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" + ], + "support": { + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2021-07-11T12:37:55+00:00" + }, + { + "name": "ringcentral/psr7", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/ringcentral/psr7.git", + "reference": "360faaec4b563958b673fb52bbe94e37f14bc686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ringcentral/psr7/zipball/360faaec4b563958b673fb52bbe94e37f14bc686", + "reference": "360faaec4b563958b673fb52bbe94e37f14bc686", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "RingCentral\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "PSR-7 message implementation", + "keywords": [ + "http", + "message", + "stream", + "uri" + ], + "support": { + "source": "https://github.com/ringcentral/psr7/tree/master" + }, + "time": "2018-05-29T20:21:04+00:00" + }, + { + "name": "rodber/php-sse-react", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/rodber/php-sse-react.git", + "reference": "a7b1f3e003ab2fb37fd2c29c0bbc2741781b4729" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rodber/php-sse-react/zipball/a7b1f3e003ab2fb37fd2c29c0bbc2741781b4729", + "reference": "a7b1f3e003ab2fb37fd2c29c0bbc2741781b4729", + "shasum": "" + }, + "require": { + "php": ">=7.4", + "react/event-loop": "^1.2", + "react/http": "^1.5", + "react/stream": "^1.2" + }, + "require-dev": { + "clue/redis-react": "^2.5", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\React\\Sse\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@lueck.tv" + }, + { + "name": "Rodolfo Berrios", + "email": "rodolfo@chevere.org" + } + ], + "description": "Streaming, async HTML5 Server-Sent Events server (aka. SSE or EventSource)", + "homepage": "https://github.com/rodber/php-sse-react", + "keywords": [ + "Server-Sent Events", + "async", + "event-driven", + "eventsource", + "reactphp", + "sse" + ], + "support": { + "source": "https://github.com/rodber/php-sse-react/tree/0.1.0" + }, + "time": "2022-02-03T11:16:17+00:00" + }, + { + "name": "samejack/php-argv", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/samejack/php-argv.git", + "reference": "0551f0f7fd38a5e9dcb316d5cc9028cdd62b21ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/samejack/php-argv/zipball/0551f0f7fd38a5e9dcb316d5cc9028cdd62b21ac", + "reference": "0551f0f7fd38a5e9dcb316d5cc9028cdd62b21ac", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "*@stable", + "phpunit/phpunit": "~4.8|~5.7", + "squizlabs/php_codesniffer": "*@stable" + }, + "type": "library", + "autoload": { + "psr-4": { + "samejack\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "SJ", + "email": "sj@toright.com", + "homepage": "http://blog.toright.com", + "role": "Developer" + } + ], + "description": "PHP CLI arguments parse.", + "homepage": "https://github.com/samejack/php-argv", + "keywords": [ + "cli", + "php" + ], + "support": { + "issues": "https://github.com/samejack/php-argv/issues", + "source": "https://github.com/samejack/php-argv/tree/1.0.3" + }, + "time": "2020-07-15T12:28:03+00:00" + }, + { + "name": "spatie/temporary-directory", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "e2818d871783d520b319c2d38dc37c10ecdcde20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/e2818d871783d520b319c2d38dc37c10ecdcde20", + "reference": "e2818d871783d520b319c2d38dc37c10ecdcde20", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], + "support": { + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.1.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-08-23T07:15:15+00:00" + }, + { + "name": "symfony/cache", + "version": "v5.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "60e87188abbacd29ccde44d69c5392a33e888e98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/60e87188abbacd29ccde44d69c5392a33e888e98", + "reference": "60e87188abbacd29ccde44d69c5392a33e888e98", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.13.1|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v5.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-27T07:55:40+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v6.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "a6506e99cfad7059b1ab5cab395854a0a0c21292" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/a6506e99cfad7059b1ab5cab395854a0a0c21292", + "reference": "a6506e99cfad7059b1ab5cab395854a0a0c21292", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.1.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T17:24:16+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:18:58+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v6.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b49350f45cebbba6e5286485264b912f2bcfc9ef", + "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v6.1.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-04T16:01:56+00:00" + }, + { + "name": "thecodingmachine/safe", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "e788f3d09dcd36f806350aedb77eac348fafadd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/e788f3d09dcd36f806350aedb77eac348fafadd3", + "reference": "e788f3d09dcd36f806350aedb77eac348fafadd3", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.2", + "thecodingmachine/phpstan-strict-rules": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "files": [ + "deprecated/apc.php", + "deprecated/array.php", + "deprecated/datetime.php", + "deprecated/libevent.php", + "deprecated/misc.php", + "deprecated/password.php", + "deprecated/mssql.php", + "deprecated/stats.php", + "deprecated/strings.php", + "lib/special_cases.php", + "deprecated/mysqli.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v2.4.0" + }, + "time": "2022-10-07T14:02:17+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" + }, + "time": "2022-11-12T15:38:23+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "1.9.2", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d6fdf01c53978b6429f1393ba4afeca39cc68afa", + "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/1.9.2" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], + "time": "2022-11-10T09:56:11+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.19", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c77b56b63e3d2031bd8997fcec43c1925ae46559", + "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.19" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-11-18T07:47:47+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.11.9", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "1acec99d6684a54ff92f8b548a4e41b566963778" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778", + "reference": "1acec99d6684a54ff92f8b548a4e41b566963778", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^4.0 || ^3.1", + "php": "^8.0 || ^7.0.8", + "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.11.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.11.9" + }, + "time": "2022-11-06T15:29:46+00:00" + }, + { + "name": "rector/rector", + "version": "0.12.23", + "source": { + "type": "git", + "url": "https://github.com/rectorphp/rector.git", + "reference": "690b31768b322db886b35845f8452025eba2cacb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/690b31768b322db886b35845f8452025eba2cacb", + "reference": "690b31768b322db886b35845f8452025eba2cacb", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "phpstan/phpstan": "^1.6" + }, + "conflict": { + "phpstan/phpdoc-parser": "<1.2", + "rector/rector-cakephp": "*", + "rector/rector-doctrine": "*", + "rector/rector-laravel": "*", + "rector/rector-nette": "*", + "rector/rector-phpoffice": "*", + "rector/rector-phpunit": "*", + "rector/rector-prefixed": "*", + "rector/rector-symfony": "*" + }, + "bin": [ + "bin/rector" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.12-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Instant Upgrade and Automated Refactoring of any PHP code", + "support": { + "issues": "https://github.com/rectorphp/rector/issues", + "source": "https://github.com/rectorphp/rector/tree/0.12.23" + }, + "funding": [ + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2022-05-01T15:50:16+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "symfony/console", + "version": "v6.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "a71863ea74f444d93c768deb3e314e1f750cf20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/a71863ea74f444d93c768deb3e314e1f750cf20d", + "reference": "a71863ea74f444d93c768deb3e314e1f750cf20d", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.1.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-25T18:59:16+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/string", + "version": "v6.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "823f143370880efcbdfa2dbca946b3358c4707e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5", + "reference": "823f143370880efcbdfa2dbca946b3358c4707e5", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.1.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-10T09:34:31+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.1.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0f0adde127f24548e23cbde83bcaeadc491c551f", + "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.1.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-07T08:04:03+00:00" + }, + { + "name": "symplify/easy-coding-standard", + "version": "10.3.3", + "source": { + "type": "git", + "url": "https://github.com/symplify/easy-coding-standard.git", + "reference": "c93878b3c052321231519b6540e227380f90be17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/c93878b3c052321231519b6540e227380f90be17", + "reference": "c93878b3c052321231519b6540e227380f90be17", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "conflict": { + "friendsofphp/php-cs-fixer": "<3.0", + "squizlabs/php_codesniffer": "<3.6" + }, + "bin": [ + "bin/ecs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.3-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Prefixed scoped version of ECS package", + "support": { + "source": "https://github.com/symplify/easy-coding-standard/tree/10.3.3" + }, + "funding": [ + { + "url": "https://www.paypal.me/rectorphp", + "type": "custom" + }, + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2022-06-13T14:03:37+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "chevere/workflow": 20 + }, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/app/configurator.php b/app/configurator.php new file mode 100644 index 0000000..454e458 --- /dev/null +++ b/app/configurator.php @@ -0,0 +1,59 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Config\AssetConfig; +use Chevereto\Config\Config; +use Chevereto\Config\EnabledConfig; +use Chevereto\Config\HostConfig; +use Chevereto\Config\LimitConfig; +use Chevereto\Config\SystemConfig; +use function Chevereto\Vars\env; + +new Config( + asset: new AssetConfig( + accountId: env()['CHEVERETO_ASSET_STORAGE_ACCOUNT_ID'], + accountName: env()['CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME'], + bucket: env()['CHEVERETO_ASSET_STORAGE_BUCKET'], + key: env()['CHEVERETO_ASSET_STORAGE_KEY'], + name: env()['CHEVERETO_ASSET_STORAGE_NAME'], + region: env()['CHEVERETO_ASSET_STORAGE_REGION'], + secret: env()['CHEVERETO_ASSET_STORAGE_SECRET'], + server: env()['CHEVERETO_ASSET_STORAGE_SERVER'], + service: env()['CHEVERETO_ASSET_STORAGE_SERVICE'], + type: env()['CHEVERETO_ASSET_STORAGE_TYPE'], + url: env()['CHEVERETO_ASSET_STORAGE_URL'], + ), + enabled: new EnabledConfig( + phpPages: (bool) env()['CHEVERETO_ENABLE_PHP_PAGES'], + updateCli: (bool) env()['CHEVERETO_ENABLE_UPDATE_CLI'], + updateHttp: false, + htaccessCheck: (bool) env()['CHEVERETO_ENABLE_HTACCESS_CHECK'] + ), + host: new HostConfig( + hostnamePath: env()['CHEVERETO_HOSTNAME_PATH'], + hostname: env()['CHEVERETO_HOSTNAME'], + isHttps: (bool) env()['CHEVERETO_HTTPS'], + ), + system: new SystemConfig( + debugLevel: (int) env()['CHEVERETO_DEBUG_LEVEL'], + errorLog: env()['CHEVERETO_ERROR_LOG'], + imageFormatsAvailable: json_decode( + env()['CHEVERETO_IMAGE_FORMATS_AVAILABLE'], + true + ), + imageLibrary: env()['CHEVERETO_IMAGE_LIBRARY'], + sessionSaveHandler: env()['CHEVERETO_SESSION_SAVE_HANDLER'], + sessionSavePath: env()['CHEVERETO_SESSION_SAVE_PATH'], + ), + limit: new LimitConfig( + invalidRequestsPerDay: 25 + ) +); diff --git a/app/env-default.php b/app/env-default.php new file mode 100644 index 0000000..35f24cd --- /dev/null +++ b/app/env-default.php @@ -0,0 +1,90 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + 'CHEVERETO_ASSET_STORAGE_ACCOUNT_ID' => '', + 'CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME' => '', + 'CHEVERETO_ASSET_STORAGE_BUCKET' => '', + 'CHEVERETO_ASSET_STORAGE_KEY' => '', + 'CHEVERETO_ASSET_STORAGE_NAME' => 'assets', + 'CHEVERETO_ASSET_STORAGE_REGION' => '', + 'CHEVERETO_ASSET_STORAGE_SECRET' => '', + 'CHEVERETO_ASSET_STORAGE_SERVER' => '', + 'CHEVERETO_ASSET_STORAGE_SERVICE' => '', + 'CHEVERETO_ASSET_STORAGE_TYPE' => 'local', + 'CHEVERETO_ASSET_STORAGE_URL' => '', + 'CHEVERETO_CONTEXT' => '', + 'CHEVERETO_DB_DRIVER' => 'mysql', + 'CHEVERETO_DB_HOST' => 'localhost', + 'CHEVERETO_DB_NAME' => '', + 'CHEVERETO_DB_PASS' => '', + 'CHEVERETO_DB_PDO_ATTRS' => '[]', + 'CHEVERETO_DB_PORT' => '3306', + 'CHEVERETO_DB_TABLE_PREFIX' => 'chv_', + 'CHEVERETO_DB_USER' => '', + 'CHEVERETO_DEBUG_LEVEL' => '1', + 'CHEVERETO_ENABLE_API_GUEST' => '1', + 'CHEVERETO_ENABLE_BANNERS' => '1', + 'CHEVERETO_ENABLE_BULK_IMPORTER' => '1', + 'CHEVERETO_ENABLE_CAPTCHA' => '1', + 'CHEVERETO_ENABLE_CDN' => '1', + 'CHEVERETO_ENABLE_CHECK_UPDATES' => '1', + 'CHEVERETO_ENABLE_CONSENT_SCREEN' => '1', + 'CHEVERETO_ENABLE_COOKIE_COMPLIANCE' => '1', + 'CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES' => '1', + 'CHEVERETO_ENABLE_EXTERNAL_SERVICES' => '1', + 'CHEVERETO_ENABLE_EXTERNAL_STORAGE' => '1', + 'CHEVERETO_ENABLE_FAVICON' => '1', + 'CHEVERETO_ENABLE_FOLLOWERS' => '1', + 'CHEVERETO_ENABLE_HTACCESS_CHECK' => '0', + 'CHEVERETO_ENABLE_IP_BANS' => '1', + 'CHEVERETO_ENABLE_LANGUAGE_CHOOSER' => '1', + 'CHEVERETO_ENABLE_LIKES' => '1', + 'CHEVERETO_ENABLE_LOCAL_STORAGE' => '1', + 'CHEVERETO_ENABLE_LOGIN_PROVIDERS' => '1', + 'CHEVERETO_ENABLE_LOGO' => '1', + 'CHEVERETO_ENABLE_MODERATION' => '1', + 'CHEVERETO_ENABLE_NOTIFICATIONS' => '1', + 'CHEVERETO_ENABLE_PAGES' => '1', + 'CHEVERETO_ENABLE_PHP_PAGES' => '0', + 'CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE' => '0', + 'CHEVERETO_ENABLE_ROUTING' => '1', + 'CHEVERETO_ENABLE_SERVICE_AKISMET' => '1', + 'CHEVERETO_ENABLE_SERVICE_MODERATECONTENT' => '1', + 'CHEVERETO_ENABLE_SERVICE_PROJECTARACHNID' => '1', + 'CHEVERETO_ENABLE_SERVICE_STOPFORUMSPAM' => '1', + 'CHEVERETO_ENABLE_STOPWORDS' => '1', + 'CHEVERETO_ENABLE_UPDATE_CLI' => '1', + 'CHEVERETO_ENABLE_UPDATE_HTTP' => '1', + 'CHEVERETO_ENABLE_UPLOAD_FLOOD_PROTECTION' => '1', + 'CHEVERETO_ENABLE_UPLOAD_PLUGIN' => '1', + 'CHEVERETO_ENABLE_UPLOAD_WATERMARK' => '1', + 'CHEVERETO_ENABLE_USERS' => '1', + 'CHEVERETO_ENCRYPTION_KEY' => '', + 'CHEVERETO_ERROR_LOG' => 'php://stderr', + 'CHEVERETO_HEADER_CLIENT_IP' => '', + 'CHEVERETO_HOSTNAME_PATH' => '/', + 'CHEVERETO_HOSTNAME' => 'localhost', + 'CHEVERETO_HTTPS' => '1', + 'CHEVERETO_IMAGE_FORMATS_AVAILABLE' => '["JPEG","PNG","BMP","GIF","WEBP"]', + 'CHEVERETO_IMAGE_LIBRARY' => 'imagick', + 'CHEVERETO_MAX_ALBUMS' => '0', + 'CHEVERETO_MAX_EXECUTION_TIME_SECONDS' => '30', + 'CHEVERETO_MAX_IMAGES' => '0', + 'CHEVERETO_MAX_MEMORY_SIZE' => '512M', + 'CHEVERETO_MAX_POST_SIZE' => '64M', + 'CHEVERETO_MAX_UPLOAD_SIZE' => '64M', + 'CHEVERETO_MAX_USER_ALBUMS_LIST' => '300', + 'CHEVERETO_MAX_USERS' => '0', + 'CHEVERETO_SERVICING' => 'server', + 'CHEVERETO_SESSION_SAVE_HANDLER' => 'files', + 'CHEVERETO_SESSION_SAVE_PATH' => '/tmp', +]; diff --git a/app/languages/ar.po b/app/languages/ar.po new file mode 100644 index 0000000..5b77a13 --- /dev/null +++ b/app/languages/ar.po @@ -0,0 +1,4955 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2017-06-21 18:28+0000\n" +"PO-Revision-Date: 2017-06-21 18:28+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "البريد الالكتروني غير صحيح" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "إسم المستخدم غير صحيح" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "كلمة المرور غير صحيحة" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "وضع الموقع غير صالح" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "من البريد الإلكتروني" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "مرسل البريد الإلكترونى للرسائل الموجهة للمستخدمين." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "البريد الإلكتروني الوارد" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "المستقبل لنظام الإشعارات ونموذج الإتصال." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "وضع الموقع" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "يمكنك تغير وضع الموقع في اي وقت" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "المجتمع" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "شخصي" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "جاري التحديث" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "حدث خطأ ما. يرجى المحاولة مرة أخرى." + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "الملف %s مفقود" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "معلومات الترخيص غير صالحة" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "مفتاح الترخيص غير صالح" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "لا يمكن حفظ الملف\n" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "لا يمكن تحميل %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "لا يمكن استخراج %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "لا يمكن انشاء %s دليل - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "لا يمكن تحديث %s ملف - %e" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "بدون عنوان" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s صور" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "ملاحظة: هذا المحتوى خاص ولكن أي شخص لديه الرابط سيكون قادرا على رؤيته." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "ملاحظة: هذا المحتوى محمي . تذكر ان تجتاز كلمة المرور لهذا المحتوى لمشاركته." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "تنبيه : هذا المحتوى خاص. عدل خيارات الخصوصية إلى \"عام\" لأجل مشاركته." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "خاص" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "عام" + +msgid "Me" +msgstr "أنا" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "رابط" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "كلمة المرور" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "" +msgstr[1] "مشاهدة" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "مشاهدات" + +msgid "After %n %t" +msgstr "بعد %n %t" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "لا تقم بالحذف التلقائي" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "خانة فارغة" +msgstr[1] "دقيقة" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "دقائق" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "خانة فارغة" +msgstr[1] "ساعة" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "ساعات" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "خانة فارغة" +msgstr[1] "يوم" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "أيام" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "رفع مكرر" + +msgid "Error storing file in external storage server" +msgstr "خطأ في تخزين الملف في خادم التخزين الخارجي" + +msgid "External storage has failed" +msgstr "فشل التخزين الخارجي" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "رفع خاص" + +msgid "Upload switched to local storage" +msgstr "تحول التحميل الي التخزين المحلي" + +#, php-format +msgid "System has switched to local storage due to not enough disk capacity (%c) in the external storage server(s). The image %s has been allocated to local storage." +msgstr "تم تحويل النظام إلى التخزين المحلى لعدم كفاية مساحة القرص (%c) فى مشغلات التخزين الخارجى. تم وضع الصورة %s فى المخزن المحلى" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "" +msgstr[1] "إعجاب" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "إعجاب" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "خانة فارغة" +msgstr[1] "صورة" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "صور" + +msgid "Recent" +msgstr "الأحدث" + +msgid "Trending" +msgstr "الأكثر رواجا" + +msgid "Popular" +msgstr "الأكثر شعبية" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "الأعضاء الأكثر نشاطا" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "الأحدث" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "الأقدم" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "الأكثر مشاهدة" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "الأكثر إعجابا" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr " تصفح" + +msgid "Animated" +msgstr "الصور المتحركة" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr " بحث" + +msgid "People" +msgstr "اشخاص" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "خانة فارغة" +msgstr[1] "صورة" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "صور" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "" +msgstr[1] "ألبوم" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "الألبومات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "" +msgstr[1] "مستخدم" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "مستخدمين" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "لايمكن إنشاء وجهة دليل %s" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "لا يمكن فتح %s للكتابة" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "داخلي" + +msgid "Can't insert storage." +msgstr "لا يمكن إدراج التخزين" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "سعة التخزين المستخدمة لا يمكن أن تكون أقل من الاستخدام الحالى (%s)." + +msgid "Can't update storage details." +msgstr "لا يمكن تحديث تفاصيل التخزين." + +#, php-format +msgid "requires %s" +msgstr "يتطلب %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "غير محدود" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "مستخدم" + +msgid "Private profile" +msgstr "ملف شخصي خاص" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "سنة" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "سنوات" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "شهر" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "أشهر" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "خانة فارغة" +msgstr[1] "إسبوع" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "أسابيع" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "خانة فارغة" +msgstr[1] "ثانية" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "ثواني" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s مضى" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "لحظات مضت" + +msgid "System notification" +msgstr "إعلام النظام" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "لوحة التحكم" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "هناك تحديث متاح لنظامك. إذهب إلى %s لتحميل و تثبيت هذا التحديث" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "قاعدة بيانات النظام قديمة. تحتاج الى تشغيل <a href=\"%s\"> أداة التحديث </a>" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "الموقع في طور الصيانة. للتراجع عن هذا الإعداد اذهب الى <a href=\"%s\"> لوحة التحكم > الإعدادات </a>" + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "يجب ان تعطل خاصية تقارير الأخطاء ل php لبيئة الإنتاج. اذهب إلى <a href='%s'>إعدادات النظام</a> لتبديل هذا الإعداد." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "لم تغير أعدادات البريد الإلكترونى الأفتراضية. إذهب إلى <a href='%s'>إعدادات البريد الإلكترونى</a> لتصليح هذا" + +msgid "There is an update available for your Chevereto based website." +msgstr "هذا تحديث متاح لموقعك القائم على Chevereto" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "ملاحظات الإصدار لهذا التحديث هى:" + +msgid "admin dashboard" +msgstr "لوحة تحكم الادمن" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "يمكن تطبيق هذا التحديث مباشر من %a الخاص بك أو تحميله من %s ثم تثبيته يدويا." + +#, php-format +msgid "Chevereto update available (v%s)" +msgstr "تحديث Chevereto المتاح (v%s)" + +#, php-format +msgid "view on %s" +msgstr "مشاهدة على %s" + +#: ../../../app/lib/functions.render.php:303 +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this cookie policy." +msgstr "نحن نستخدم ملفات تعريف الارتباط الخاصة بنا وأيضا ملفات تعريف طرف ثالث لتحسين تجربة التصفح الخاص بك في خدماتنا. إذا كنت لا تزال تستخدم موقعنا من المفهوم أن تقبل سياسة الكوكيز." + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "تم منعك من استخدام هذا الموقع." + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "لا تتردد في تصفح واكتشاف كل الصور وألبومات المشاركة بواسطتى." + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "عرض جميع الصور الخاصة بي" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "هذه الصفحة غير موجودة" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "نسيت كلمة السر ؟" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "إعادة تعيين كلمة المرور" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "إعادة إرسال تفعيل الحساب" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "إضافة بريدك الإلكتروني" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "تم تغيير البريد الإلكتروني" + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:140 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "لم يتم كتابة حروف التحقق بشكل صحيح" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "إسم المستخدم/البريد الإلكتروني غير صالح" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "المستخدم لا يتوفر لديه بريد إلكتروني." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "الطلب مرفوض" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "يتطلب تفعيل الحساب لإستخدام هذه الخاصية" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "سبق وأن تم تفعيل الحساب" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "الرجاء الإنتظار 15 دقيقة لتلقى البريد الإلكترونى، ومن ثم يمكنك المحاولة من جديد." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "إعادة تعيين كلمة المرور في %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "التأكيد مطلوب في %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "أهلاً بك في %s" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "كلمة المرور غير متطابقة" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "البريد الإلكتروني مستخدم مسبقا‘" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "إفحص الخطأ أولاً حتى تتمكن من المتابعة." + +msgid "Password required" +msgstr "كلمة السر مطلوبة" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "مشاركة" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "إضافة اكواد" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "المعلومات الكاملة" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a الألبوم مستضاف فى %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "إحصائيات" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "صور" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "الألبومات" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "الأعضاء" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "الإعدادات" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "نسخة Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "ثبت التحديث" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "التحقق من التحديث" + +msgid "Support" +msgstr "الدعم" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "تحتاج المساعدة؟ اذهب الى %s وسوف تحصل على المساعدة بسرعة." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "نسخة PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "الخادم" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "نسخة MYSQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "بيانات خادم MYSQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "مكتبة GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "الملفات المرفوعة" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "مفعل" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "معطل" + +msgid "Max. upload file size" +msgstr "الحد الاقصى. حجم ملف التحميل" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "الحجم الأقصى للتخزين" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "الحد الأقصى لوقت التنفيذ" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "خانة فارغة" +msgstr[1] "%d ثانية" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "%d ثواني" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "حدود الذاكرة" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "روابط" + +msgid "Documentation" +msgstr "المستندات" + +msgid "Changelog" +msgstr "سجل التغيير" + +msgid "Request new features" +msgstr "طلب ميزات جديدة" + +msgid "Bug tracking" +msgstr "تتبع الأخطاء" + +msgid "Blog" +msgstr "المدونة" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "الموقع" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "المحتوى" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "الصفحات" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "عناصر العرض" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "رفع الصور" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "الفئات" + +msgid "Consent screen" +msgstr "شاشة الموافقة" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "حماية من التدفق الإلكتروني" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "التصميم" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "الرئيسية" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "البانرات" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "النظام" + +msgid "Routing" +msgstr "التوجيه" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "اللغات" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "تخزين خارجي" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "البريد الإلكتروني" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "شبكات التواصل الإجتماعي" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "خدمات خارجية" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "حظر IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "إعدادات اخرى" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "الأدوات" + +msgid "Can't delete all homepage cover images" +msgstr "لايمكن حذف صور غلاف الصفحة الرئيسية" + +msgid "Homepage cover image deleted" +msgstr "تم حذف صورة غلاف الصفحة الرئيسية" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "محلي" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "خارجي" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "الكل" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "بحث المحتوى" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "اضف صفحة" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "تعديل معرف الصفحة %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "تم اضافة الصفحة بنجاح" + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "تم مسح الصفحة" + +msgid "homepage" +msgstr "الصفحة الرئيسية" + +#, php-format +msgid "Before main title (%s)" +msgstr "قبل العنوان الرئيسي (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "بعد إتخاذ إجراء (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "بعد الغلاف (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "بعد القائمة (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "قبل ترقيم الصفحات" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "بعد ترقيم الصفحات" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "المحتوى (الصور والألبوم)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "تبويب عن العامود" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "قبل التعليقات" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "صفحة الصورة" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "أعلى مستعرض الصور (صفحة الصورة)" + +#: ../../../app/routes/route.dashboard.php:413 +#: ../../../app/routes/route.dashboard.php:417 +msgid "Expected banner size 728x90" +msgstr "مساحة (أبعاد) البنر 728x90" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "بداخل ذيل مستعرض الصور (صفحة الصورة)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "بعد مستعرض الصور (صفحة الصورة)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "قبل رأس الصفحة (صفحة الصورة)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "بعد رأس الصفحة (صفحة الصورة)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "ذيل الصفحة (صفحة الصورة)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "صفحة الألبوم" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "قبل رأس الصفحة (صفة الألبوم)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "بعد رأس الصفحة (صفحة الألبوم)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "صفحة ملف المستخدم" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "أعلى الصفحة (صفحة المستخدم)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "قبل عرض الصور (صفحة المستخدم)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "تصفح الصفحة" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "بعد أعلى الصفحة (صفحة الإستعراض)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "محتوى غير آمن" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "إسم الموقع غير صالح" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "اللغة غير صالحة" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "التوقيت غير صالح" + +#, php-format +msgid "Invalid value: %s" +msgstr "قيمة غير صالحة: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "وضع التخزين الخاص بالتحميل غير صالح" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "اسم الملف المرفوع غير صالح" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "عرض الصورة المصغرة غير صالح" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "ارتفاع الصورة المصغرة غير صحيح" + +msgid "Invalid medium size" +msgstr "متوسط الحجم غير ضالح" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "علامة مائية غير صالحة" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "وضوح العلامة المائية غير صالح" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "سمة غير صحيحة" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "القيمة غير صالح" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "اسلوب غير صحيح" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "اللون الرئيسي للسمة غير صالح" + +#: ../../../app/routes/route.dashboard.php:632 +msgid "Invalid theme top bar color" +msgstr "لون الشريط العلوي للسمة غير صالح" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "لون الزر في الشريط العلوي غير ضالح " + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "حجم عرض الصور في الاستايل غير صحيح" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "رقم العضوية غير صالح" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "بريد إلكتروني غير صحيح" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "منفذ خاطئ لـ STMP" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "درجة أمان SMTP غير صالحة" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "هوية مستخدم للوضع الشخصى غير صالحة" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "طريق غير صالح او محجوز" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "وضع خصوصية للموقع غير صالح" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "محتوى وضع خصوصية محتوى الموقع غير صالح" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "طراز صفحة رئيسية غير صالح" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "لون زر الإجراء فى الصفحة الرئيسية غير صالح" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "وظيفة إجراء للصفحة الرئيسية غير صالحة" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "عنوان خاطئ" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "حالة خاطئة" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "نوع خاطئ" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "خيار رؤية غير صالح" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "خاصية هدف غير صالحة" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "خاصية مرتبطة غير صالحة" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "أيقونة غير صالحة" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "مفتاح رابط غير صالح" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "مسار ملف غير صالح" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "رابط غير صحيح" + +msgid "Invalid user minimum age" +msgstr "سن أدنى للمستخدم غير صحيح" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "مسموح فقط بالأبجدية الرقمية, الواصلات والرموز التحتية" + +msgid "Routes can't be the same" +msgstr "لايمكن أن يكون الطريق متطابقا" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "مسار تحميل الصورة غير صحيح" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "رابط إجراء غير صحيح" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "الحد الأقصى المسموح %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "لايمكن ترسيم %m للمجلد القائم (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "لايمكن ترسيم %m للطريق القائم (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "لايمكن ترسيم %m إلى %r (تعارض المستخدمين)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "سيرفر STMP غير صحيح" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "اسم العضوية الخاص بـ SMTP غير صحيح" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "عنوان URL خاطئ" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "عنوان URL مستخدم من قبل صفحة اخرى (معرف %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "مسار الملف مستخدم من قبل صفحة اخرى (معرف %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "لا يمكن حفظ محتوى الصفحة: %s" + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "متابع" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "عن" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "رقم هوية الصورة" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "الأيبي للرافع" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "احظر عنوان الـIP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "عنوان الـIP محظور بالفعل" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "تاريخ الرفع" + +#: ../../../app/routes/route.image.php:177 +#, php-format +msgid "%s images" +msgstr "%s صور" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "الصورة %i في الألبوم %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "الصورة %i في الفئة %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "الصورة %i مستضافة في %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "روابط مباشرة" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "رابط الصورة" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "رابط الصورة" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "رابط الصورة المصغرة" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "رابط الصورة المتوسطة" + +msgid "Full image" +msgstr "الصورة كاملة" + +msgid "Full image (linked)" +msgstr "الصورة كاملة (رابط)" + +msgid "Medium image (linked)" +msgstr "الصورة المتوسطة (رابط)" + +msgid "Thumbnail image (linked)" +msgstr "الصورة المصغيرة (رابط)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "تسجيل الدخول ضروري" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "عنوان الـIP محظور بالفعل" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "قيمة غير صالحة" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "الوظيفة غير صالحة" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "اسم المستخدم مأخوذ بالفعل" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "اضف كلمة سر أو اتصال اجتماعى أخر قبل حذف%s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "اضف بريدا إليكترونيا أو اتصال اجتماعى أخر قبل حذف %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "تم قطع الإتصال بـ %s ." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "بريد الكتروني تجريبي من %s@%t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "هذه فقط تجربة" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "بريد الكتروني تجريبي ارسل الى %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "تم متابعة المستخدم %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "تم إلغاء متابعة المستخدم %s" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "محتوى تم الإعجاب به" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "محتوى تم إلغاء الإعجاب به" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u أعجب ب %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u الأن يتابعك" + +msgid "A private user" +msgstr "مستخدم خاص" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "بريد إلكتروني\\اسم مستخدم أو كلمة مرور خاطئة" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "تسجيل الدخول" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "تسجيل الخروج" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "أسئلة عامة / تعليقات" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "شكوى DMCA" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "اسم خاطئ" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "رسالة غير صالحة" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "عنوان غير صالح" + +#: ../../../app/routes/route.page.php:85 +#: ../../../content/pages/default/contact.php:33 +msgid "Invalid reCAPTCHA" +msgstr "reCAPTCHA غير صالحة" + +#: ../../../app/routes/route.page.php:90 +#, php-format +msgid "Can't submit the form: %s" +msgstr "لايمكن تقديم النموذج: %s" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "تم الارسال. سوف نتصل بك قريبا ." + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "خطأ في البريد الإلكتروني" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "نتائج البحث عن صورة لـ%s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "نتائج بحث الألأبومات لـ %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "نتائج بحث المستخدمين لـ%s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "الحساب" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "الملف الشخصي" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "الحسابات المرتبطة" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "تاريخ إنتهاء الصورة غير صالح: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "تم إرسال رسالة إلى %s تحتوي على طريقة تفعيل هذا البريد الإلكتروني" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "عنوان الموقع إلكتروني خاطئ" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "كلمة مرور خاطئة" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "استخدم كلمة مرور جديدة" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "تم حفظ الاعدادات." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "تم تعديل كلمة المرور بنجاح" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "تم إنشاء كلمة السر بنجاح." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "بريد إلكتروني أو كلمة مرور خاطئة" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "التهيئة لـ %s" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "يجب ان تكون %s سنة لتستخدم هذا الموقع" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "إنشاء حساب" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s صور" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s البوم" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "النتائج لـ" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "اعجب بواسطة ٪s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "اعجاب" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "المتابعون" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) البومات على %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) على %w" + +msgid "Discovery" +msgstr "اكتشاف" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "إغلاق" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "بحث متقدم" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "عشوائي" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "الملاحظات (%s)" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "رفع" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "تسجيل الدخول بحساب آخر" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "أو" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "اسم المستخدم أو البريد الإلكتروني" + +#: ../../../app/themes/Peafowl/header.php:294 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "تذكر دخولي" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "لا يوجد لديك حساب؟ <a href='%s'>سجل الآن</a>." + +#: ../../../app/themes/Peafowl/header.php:328 +msgid "Sign up with another account" +msgstr "الإشتراك بحساب آخر" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "البريد الإلكتروني" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "إسم المستخدم" + +#, php-format +msgid "I'm at least %s years old" +msgstr "انا بعمر %s سنة على الأقل" + +#: ../../../app/themes/Peafowl/header.php:341 +#: ../../../app/themes/Peafowl/views/signup.php:65 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "بمجرد إشتراكك ستكون قد وافقت على <a href=\"%s\">شروط الخدمة</a>" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "الإشعارات" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "جاري التحميل" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "لا يوجد لديك اشعارات" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "ملفي الشخصي" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "تسجيل الخروج" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "لقد وصلنا طلب لتغيير البريد الإلكتروني <a href=\"%u\">%n</a> لحسابك في %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "لمتابعة الإجراء يستوجب عليك <a href=\"%s\">تفعيل بريدك الإلكتروني </a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "كخيار ثاني ، يمكنك نسخ ولصق الرابط التالي في متصفحك حتى تتمكن من تفعيل بريدك الإلكتروني <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "إذا لم تقم بتنفيذ هذا الإجراء ، برجاء تجاهل هذه الرسالة." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "هذا الإجراء تم تنفيذه بواسطة الأي بي التالي : %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "لقد تلقينا طلب تسجيل %n الحساب فى %w ." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "لإنهاء العمليه يرجى <a href=\"%s\">تفعيل عضوية حسابك </a>" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "لقد تلقينا طلب لتغيير كلمة المرور <a href=\"%u\">%n</a> لحسابك" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "لإعادة تعيين كلمة المرور الخاصة بك <a href=\"%s\">اضغط هنا</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "مرحبا %n مرحبا بك في %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "الآن وبعد أن قمت بانشاء حساب خاص بك بامكانك الاستمتاع برفع الصور الخاصة بك واضافة ألبومات وتعديدل الخصوصية حسب ما تريد." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "بالمناسبة, هاهى صفحتك الشخصية الرائعة: <a href=\"%u\">%n</a> . هيا قم بتخصيصها حسب ماتحب, فهى ملك لك خصيصا!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "شكراً لانضمامك" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "تم ارسال البريد من %u %w" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "اسحب و أسقط أو ألصق الصور هنا للتحميل" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "إختر الصور المراد رفعها" + +msgid "browse from your computer" +msgstr "تصفح من جهاز الكمبيوتر الخاص بك" + +msgid "add image URLs" +msgstr "أضف رابط صورة" + +msgid "You can also %i or %u." +msgstr "يمكنك أيضاً %i أو %u." + +msgid "take a picture" +msgstr "التقط صورة" + +msgid "Edit or resize any image by clicking the image preview" +msgstr "تعديل أو تغيير حجم أي صورة من خلال النقر على معاينة الصورة" + +msgid "Edit or resize any image by touching the image preview" +msgstr "تعديل أو تغيير حجم أي صورة من خلال اللمس على معاينة الصورة" + +msgid "your computer" +msgstr "جهاز الكمبيوتر الخاص بك" + +msgid "image URLs" +msgstr "روابط الصور" + +msgid "You can keep adding more images from %i or from %u." +msgstr "يمكنك الاستمرار في إضافة المزيد من الصور من %i أو من %u" + +msgid "your device" +msgstr "جهازك" + +msgid "Uploading %q %o" +msgstr "يتم تحميل %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "أكتمل" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "يجري الآن تحميل القائمة، سوف يستغرق عدة ثواني للإنتهاء." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "تم الرفع" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "تمت إضافة المحتوى الذي تم تحميله إلى %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "يمكنك %c فقط مع المحتوى الذي تم تحميله أو %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "يمكنك %c مع المحتوى الذي تم تحميله للتو." + +msgid "create a new album" +msgstr "إنشاء ألبوم جديد." + +msgid "move it to an existing album" +msgstr "نقله إلى ألبوم موجود" + +msgid "create an account" +msgstr "إنشاء حساب" + +msgid "sign in" +msgstr "تسجيل الدخول" + +msgid "You can %s or %l to save this content into your account." +msgstr "يمكنك %s أو %l لحفظ هذا المحتوى في حسابك." + +#, php-format +msgid "No %s have been uploaded" +msgstr "لا %s تم تحميلها" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "حدث خطأ ما والنظام لا يستطيع الاستجابة لطلبك." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "فئة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "تحديد الفئات" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "قم بتعليم المحتوى على أنه غير مناسب للأسرة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "محتوى غير مناسب للأسرة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "جاري الرفع" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "إلغاء" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "إلغاء ما تبقى" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "ملاحظة : بعض الصور لم يتم رفعها بنجاح." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "إعرف المزيد" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "تحقق من <a data-modal=\"simple\" data-target=\"failed-upload-result\"> تقرير الخطأ</a>للمزيد من المعلومات" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:89 +msgid "max" +msgstr "أقصى" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "إغلاق" + +msgid "copy" +msgstr "نسخ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "تعديل" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "حذف" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "تعديل الصورة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "عنوان" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "خياري" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "تغيير حجم الصورة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "عرض" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "ارتفاع" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "ملاحظة: لن يتم تغيير حجم الصور المتحركة ." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "حذف تلقائي للصورة" + +msgid "Sign up" +msgstr "تسجيل" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s لتتمكن من تخصيص أو تعطيل الحذف التلقائي للصورة." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "الاشارة على هذه الصورة في حال كانت غير آمنة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "علامة لمحتوى غير آمن" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "الوصف" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "وصف مختصر عن الصورة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "إضافة روابط الصورة" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "إضافة روابط الصورة هنا" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "إنشاء ألبوم" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:224 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "سيتم نقل المحتويات التي يتم تحميلها إلى هذا الألبوم تم إنشاؤه حديثا. يمكنك أيضا نقل المحتوى إلى <a class=\"modal-switch\" data-switch=\"move-existing-album\"> الالبوم القائم</a>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "نقل إلى الألبوم" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "اختر الألبوم لنقل المحتوى الذي تم تحميله. يمكنك أيضا <a class=\"modal-switch\" data-switch=\"move-new-album\"> إنشاء ألبوم جديد</a>ونقل المحتوى هناك" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "تقرير الأخطاء" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "خانة فارغة" +msgstr[1] "ألبوم" +msgstr[2] "خانة فارغة" +msgstr[3] "خانة فارغة" +msgstr[4] "خانة فارغة" +msgstr[5] "ألبومات" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "روابط المشاهد" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "رمز HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "صورة HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML مرتبط بالكامل" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "رابط HTML للصورة المتوسطة" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "رابط HTML للصورة الصغيرة" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "رمز بي بي" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode الكامل" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "كود BB مرتبط بالكامل" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "رابط كود BB المتوسط" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "رمز بي بي للصورة المصغرة" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "تخفيض كامل" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "رابط التخفيض بالكامل" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "رابط التخفيض المتوسط" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "ربط صورة التخفيض المصغرة" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "كل الكلمات" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "اكتب الكلمات المهمة: ثلاثية الألوان" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "نفس الكلمة او العبارة" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "ضع الكلمات بالضبط في الاقتباس : \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "أيا من هذه الكلمات" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "وضع علامة الطرح قبل الكلمات التي لا تريد:-rodent -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "المخزن" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "عنوان IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "اسم الألبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "نقل إلى الألبوم القائم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "وصف الألبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "وصف موجز لهذا الألبوم" + +msgid "Album privacy" +msgstr "خصوصية الألبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "من سيشاهد هذا المحتوى" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "خاص (أنا فقط)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "خاص (أي شخص مع الرابط)" + +msgid "Private (password protected)" +msgstr "خاص ( محمى بكلمة سر )" + +msgid "Album password" +msgstr "كلمة سر الألبوم" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "الإسم" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "اسم الفئة" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "مفتاح الرابط" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "مفتاح رابط الفئة" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "فقط الحروف، الأرقام، و الوصلات" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "وصف موجز لهذه الفئة" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "صورة غير معنونة" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "تاريخ انتهاء الصلاحية" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "سنة-شهر-يوم ساعة-دقيقة-ثانية" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "مثال" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "حتى أى تاريخ سيمنع عنوان الأى بى هذا؟ اتركه فارغا لإلغاء تاريخ الصلاحية." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "الرسالة" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "رسالة نصية, html أو رابط إعادة توجيه" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "المجلد القائم" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "إنشاء ألبوم جديد" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "اسم التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "المعرف API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "منطقة" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "مكان التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "مفتاح" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "مفتاح التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "سري" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "التخزين السري" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:73 +msgid "Client email" +msgstr "البريد الإلكتروني للعميل" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:74 +msgid "Google Cloud client email" +msgstr "البريد الأكتروني لمستخدم جوجل كلاود" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "انت تحتاج الى <a %s>حساب خدمة</a> لهذا" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "مفتاح خاص" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "مفتاح JSON لجوجل كلاود" + +msgid "Service name" +msgstr "اسم الخدمة" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "رابط الهوية" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "نقطة نهاية هوية API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "نقطة نهاية API لهوية أوبن ستاك " + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "منطقة التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "حاوية" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "حاوية التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "هوية المستأجر" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "هوية المستأجر ( هوية الحساب )" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "اسم المستأجر" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "اسم المستأجر ( اسم الحساب ) " + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "اسم المضيف أو IP لخادم التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "مسار" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "مسار الخادم" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path where the files will be stored" +msgstr "مسار الخادم المعتمد حيث سيتم تخزين ملفات" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:123 +msgid "Server username" +msgstr "اسم مستخدم الخادم" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "كلمة مرور الخادم" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "مساحة التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "مثال : 20 GB, 1 TB ..." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "سيتم تعطيل هذا التخزين عندما يصل إلى أقصى قدراته. أتركه فارغ أو \"0\" للامحدود." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL التخزين" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "سيقوم النظام بترسيم صور هذا التخزين لهذا الرابط." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "شاهد المزيد" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "عرض المزيد" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "تحديد الكل" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "مسح المحدد" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "إختيار" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "إجراء" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "أحصل على كود العرض" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "عين فئة" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "علم بأنه محتوى آمن" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "حذف" + +msgid "Create new album" +msgstr "إنشاء ألبوم جديد" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "حتى تتمكن من إستخدام جميع المميزات يجب عليك تسجيل الدخول. إذا لم يكن لديك حساب <a href=\"%s\">اشترك</a>الان" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "لا يوجد شيء لإظهاره هنا." + +msgid "Upload images" +msgstr "تحميل الصور" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "تعديل بيانات الصورة" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "تعديل معلومات الألبوم" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "جميع الصور سوف يتم نقلها إلى أحدث ألبوم تم إنشاؤه ، كما يمكنك نقل الصور إلى <a class=\"modal-switch\" data-switch=\"move-existing-album\"> الألبومات الحالية </a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "إختر الألبوم الذي ترغب نقل الصور فيه ، كما يمكنك <a class=\"modal-switch\" data-switch=\"move-new-album\">إنشاء ألبوم جديد </a> ونقل الصور فيه" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "حدد ألبوم من القائمة لنقل محتوياته. يمكنك أيضا <a class=\"modal-switch\" data-switch=\"move-new-album\"> إنشاء ألبوم جديد </a> ونقل محتويات الألبوم المحدد مسبقا إلى هناك." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "إختر الألبوم الذي ترغب نقل الصور فيه ، كما يمكنك <a class=\"modal-switch\" data-switch=\"move-new-album\">إنشاء ألبوم جديد </a> ونقل الصور فيه" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "سيتم تعيين جميع الصور المختارة لهذه الفئة." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "لايوجد فئات." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "قم بالتأكيد بأن المحتوى آمن" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "هل أنت متأكد من أن المحتوى آمن ؟" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "تأكيد بأن المحتوى غير آمن" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "هل تريد حقا الإشارة الى هذا المحتوى بأنه غير آمن ؟" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "تأكيد الحذف" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "هل أنت متأكد من رغبتك في مسح هذا المحتوى ؟ لا يمكن التراجع عن هذا الإجراء." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "هل أنت متأكد من رغبتك في مسح المحتويات المختارة ؟ لا يمكنك التراجع عن هذا الإجراء" + +msgid "Uploaded by guest" +msgstr "مرفوع بواسطة ضيف" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "من %s" + +msgid "Uploaded by private" +msgstr "مرفوع بواسطة خاص" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "بواسطة %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "إختيار" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "تبديل العلم الغير أمن " + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "الصفحة المطلوبة غير موجودة." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "إبحث في شئ آخر" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "تم حذف المستخدم بنجاح" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "تم حذف المحتوى." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "حسابك جاهز تقريبا" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "تم ارسال بريد الكتروني الى %s مع تعليمات لتفعيل حسابك. رابط التفعيل صالح فقط لمدة 48 ساعة. إذا لم تتلقى التعليمات في صندوق الوارد حاول البحث عنه في مجلد البريد الغير مرغوب." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "إذهب إلى الصفحة الرئيسية" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "إعادة إرسال التفعيل" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "لقد قمت بنجاج بتغيير البريد الإلكتروني الخاص بحسابك إلى %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "إذهب إلى ملفي الشخصي" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "سوف يتم إرسال رسالة تأكيد إلى هذا البريد يحتوي على تعليمات لتفعيل الحساب." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "بريدك الإلكتروني" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:26 +msgid "Add email" +msgstr "إضافة بريد إلكتروني" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "تم إرسال رسالة بريد إلكتروني مع تعليمات لإعادة تعيين كلمة المرور الخاصة بك إلى عنوان البريد الإلكتروني المسجل. إذا لم تتلقى تلك التعليمات في صندوق بريدك الوارد قم بالبحث عن الرسالة في صندوق مرشحات البريد المزعج." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "إعادة إرسال التعليمات" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "تم ارسال بريد الكتروني مع معلومات اعادة تعين كلمة المرور. اذا لم تستلم البريد برجاء مراجعة جميع المجلدات في بريدك من الممكن ان تكون في مرشحات البريد المزعج." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "إدخل البريد الإلكتروني أو اسم العضوية التي قمت بتزويدهما أثناء الإشتراك." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "تقديم" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "تم تغيير كلمة السر.. تستطيع الان الدخول باستخدام كلمة السر الجديدة." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "سجل دخولك" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "إدخل كلمة المرور الجديدة التي تود إستخدامها." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "كلمة المرور الجديدة" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d كحد ادنى من الحروف" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "إدخل كلمة المرور الجديدة" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "تأكيد كلمة المرور" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "إعادة إدخال كلمة المرور" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "تم إرسال رسالة بالبريد الالكتروني إلى٪s مع تعليمات لتفعيل حسابك. إذا لم تتلقى تعليمات, يرجى التحقق من البريد غير المرغوب فيه أو مرشحات البريد المزعج." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:19 +msgid "Enter the username or email address that you used to create your account to continue." +msgstr "أدخل اسم المستخدم أو عنوان البريد الإلكتروني الذي استخدمته لإنشاء حسابك للمتابعة." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "هذا المحتوى خاص" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "هل حقا تريد حذف هذا الألبوم وكافة الصور الموجودة بداخله ؟ لا يمكن التراجع." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "حذف الألبوم" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "انت معحب بهذا" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "إعجاب" + +msgid "Upload to album" +msgstr "تحميل إلى الألبوم" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "رابط الألبوم" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "يرجى قراءة والالتزام بالشروط التالية قبل المتابعة:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "هذا الموقع يحتوى على معلومات, روابط وصور ذات محتوى للبالغين. إذا كنت تحت سن %s. أو إذا كانت المحتوى يؤذيك أو من الغير قانونى مشاهدته فى مجتمعك, رجاء عدم الاستمرار. \n\nانا عمرى على الأقل %s وأعتقد بصفتى شخصا بالغا ان من حقى تلقى \\ مشاهدة محتوى البالغين . واريد ان اتلقى\\ اشاهد ذلك المحتوى. \n\nاعتقد أن الممارسة الجنسية بالتراضى بين البالغين ليست مسيئة أو فاضحة . و المشاهدة, القرائة أو تحميل المحتوى الصريح لاينتهك معايير المجتمع الخاص بى, المدينة أو الولاية أو الدولة . \n\nالمحتوى الجنسى الصريح الذى أقوم بمشاهدته هو لاستخدامى الشخصى ولن أقوم بعرضه على الصغار .\n\nانا المسؤول الوحيد عن أى عواقب قانونية تتبع مشاهدة , قرائة او تحميل أى محتوى على هذا الموقع. وعلاوة على ذلك فإن الموقع وأى من الكيانات التابعة له لن تتحمل أية مسؤولية بخصوص أآ عواقب قانونية تنشأ من الدخول المزور أو استخدام هذا الموقع. \n\nشاشة الموافقة هذة تشكل اتفاقية قانونية بين هذا الموقع وبينك و \\ أو أى اعمال لديك فيها مصلحة قانونية. إذا اعتبر أى جزء من تلك الاتفاقية غير قابل للتنفيذ من قبل محكمة مختصة . فلايجب ان تؤثر على قابلية تنفيذ أى من الأجزاء الأخرى من الاتفاقية." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "عن طريق النقر \"أوافق\" أنت تعلن أنك قد قرأت وفهمت كل الشروط المذكورة." + +msgid "I Agree" +msgstr "أنا موافق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "القرص المستخدم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "إضافة عضو" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "الصلاحية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "المتحكم الرئيسي" + +msgid "This setting is always diabled when using personal website mode." +msgstr "دائما تعطيل هذا الإعداد عند استخدام وضع موقع شخصي." + +msgid "documentation" +msgstr "التوثيق" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "تعلم أكثر عن %s على %d الخاص بنا." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "اضافة فئة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "إضافة حظر IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "إضافة التخزين" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "العودة إلى صفحات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "اسم الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "عنوان الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "وصف الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +msgid "Website keywords" +msgstr "كلمات الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "المنطقة الزمنية الافتراضية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "اختر المنطقة" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "يسمح للبحث في الصور والألبومات والمستخدمين استنادا إلى استعلام بحث معين." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "تمكين التصفح للصور العامة التي تم تحميلها . كما أنها تمكن الفئات." + +msgid "Enables to browse images randomly." +msgstr "تمكين لتصفح الصور بشكل عشوائي." + +msgid "Likes" +msgstr "الإعجابات" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "السماح للمستخدمين بالإعجاب بالمحتوى و نشر \" القوائم الأكثر إعجابا \"" + +msgid "Followers allows users to follow each other." +msgstr "يسمح المتابعون للمستخدمين بمتابعة بعضهم البعض." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "وضع المستخدم الشخصى " + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "رقم العضو" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "رقم الهوية الخاص بك هو: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "الهوية الرقمية للمستخدم المستهدف للوضع الشخصى." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "توجيه الوضع الشخصى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "توجيه مخصص لترسيم / المستخدم إلى / شيئ ما. استخدم \" /\" لترسيم الصفحة الشخصية. " + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "وضع خصوصية الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "الوضع الخاص سيجعل الموقع يظهر فقط للاعضاء المسجلين." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "وضع المحتوى الخاص" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "الإفتراضي" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "إجبار الوضع الخاص (الذاتي)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "إجبار الوضع الخاص (أي شخص لديه الرابط)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "الوضع الخاص يجبر على تجاوز خيار المستخدم في اختيار الخصوصية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "عنوان الصفحة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "حالة الصفحة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "الصفحة النشطة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "صفحة غير نشطة (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "يمكن الوصول فقط للصفحات النشطة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "اكتب" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "إمكانية رؤية الصفحة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "صفحة مرئية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "صفحة مخفية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "لن تظهر الصفحات المخفية فى قوائم النظام, لكن يمكن لأى كان الوصول إليها عبر الرابط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "مسموح فقط فالأبجدية الرقمية والواصلات والخطوط المائلة إلى الأمام" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "مسار الملف" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "هناك ملف %f مرتبط بـ %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "الكلمات المفتاحية الوصفية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "وصف الميتا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "الكود المصدرى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "لايوجد اذن كتابة فى مسار %s يجب أن تضيف هذا الملف باستخدام أداة تحرير خارجية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "لايوجد اذن كتابة فى مسار %s يجب أن تعدل محتوى هذا الملف باستخدام أداة تحرير خارجية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "مأخوذ من: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "رابط الصفحة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "خاصية هدف الرابط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "اختر %s لفتح الصفحة أو الرابط فى نافذة جديدة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "خاصية ارتباط الرابط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "مسموح فقط بالأبجدية الرقمية والواصلات والمسافات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "خاصية &lt;a&gt; %s HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "أيقونة الرابط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "اختر <a %s> مرجعية الأيقونات </a> للقائمة الكاملة للأيقونات المدعومة " + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "ترتيب العرض" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "ترتيب العرض فى الصفحة للقوائم . استخدم \"1\" للأولوية الأعلى" + +msgid "pages" +msgstr "صفحات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "هل تريد حذف هوية الصورة %s ؟ لايمكن التراجع عن هذا الإجراء" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "تنسيقات الصور غير المحددة لن يسمح بتحميلها." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "تفعيل الرفع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "قم بتفعيل هذه الخاصية إذا أردت فتح ميزة الرفع ، هذه الخاصية لا تؤثر على المديرين." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "تحميلات الزوار" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "فعل هذا الخيار إن كنت تريد السماح لغير المسجلين برفع الصور." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "تفعيل تضمين الرموز (رافع)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "قم بتفعيل هذا الخيار إذا كنت تريد أن تظهرالرموز المضمنة بعد انتهاء التحميل." + +msgid "Upload threads" +msgstr "Upload threads" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "عدد سلاسل التحميل المتزامنة (التحميل المتوازي)" + +msgid "Redirect on single upload" +msgstr "إعادة التوجيه عند الرفع المفرد" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "قم بتفعيل هذا لإعادة التوجيه للصفحة الرئيسية عند الرفع المفرد." + +msgid "Enable duplicate uploads" +msgstr "تفعيل الرفع المزدوج" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "تفعيل هذا إذا اردت السماح بالرفع المزدوج من نفس الأى بى فى خلال 24 ساعة. هذا الإعداد لايؤثر على الإداريين." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "تمكين المرفوعات القابلة للانتهاء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "تفعيل هذا إذا اردت أن تسمح برفوعات ذات خاصية المسح التلقائى." + +msgid "Auto delete guest uploads" +msgstr "حذف تحميلات الضيف تلقائيا" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "تمكين هذا إذا كنت ترغب في حذف تحميلات الضيوف بعد وقت معين." + +msgid "Maximum image size" +msgstr "الحد الأقصى لحجم الصورة" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "سيتم تصغير حجم الصور التي تزيد عن هذا الحجم تلقائيا. استخدم صفر (0) لتجاهل هذا." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "بيانات وصف الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "الاحتفاظ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "اختر الإعدادات الافتراضية <a %s> لبيانات وصف الصورة </a> عند الرفع." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "بيانات وصف الصورة ( إعداد المستخدم )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "تفعيل هذا إذا اردت ان تسمح لكل مستخدم بضبط كيفية إدارة بيانات الصورة الوصفية." + +msgid "Maximum upload file size" +msgstr "الحد الأقصى لحجم ملف التحميل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "مسار الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "متعلق بـ Chevereto root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "اين يتم حفظ الصور؟ المرتبطة ب Chevereto root." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "وضع التخزين" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "ملفات التواريخ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "مباشر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "انشاء تاريخ الملفات %s الهيكلية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "طريقة تسمية الملف" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "الأصلي" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "خلط الأصلى + العشوائى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\" الأصلى\" سيحاول الحفاظ على اسم الصورة من المصدر فى حين \" العشوائى\" سينتج اسما عشوائيا. \" الهوية\" ستسمى الصورة بمثل هوية الصورة." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "حجم الصورة المصغرة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "الصورة المصغرة سوف يتم تثبيتها لهذا الحجم." + +msgid "Medium image fixed dimension" +msgstr "ابعاد ثابتة للصورة المتوسطة" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "ستثبت الصور متوسطة الحج إلى هذة الأبعاد. على سبيل المثال, إذا اخترت \"العرض\" سيتم تثبيت هذا البعد ويتم حساب الارتفاع تلقائيا" + +msgid "Medium image fixed size" +msgstr "حجم ثابت للصورة المتوسطة" + +msgid "Width or height will be automatically calculated." +msgstr "سيتم حساب العرض والارتفاع تلقائيا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "علامات مائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "تفعيل هذا الخيار يسمح بوضع شعار أو أي شيء تريده في رفع الصور." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "تحذير: لا يمكن الكتابة في %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "تبديلات علامات المستخدم المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "تفعيل العلامات المائية على مرفوعات الضيوف" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "تفعيل العلامات المائية على مرفوعات المستخدمين" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "تفعيل العلامة المائية على مرفوعات المديرين" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "تبديلات ملف العلامة المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "تفعيل العلامة المائية على مرفوعات صور بصيغة GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "ادنى حجم مطلوب لتطبيق العلامة المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "الصور الأصغر من الحد الادنى لن تكون ذات علامة مائية . استخدم صفر (0) حتى لا يتم ضبط حدا ادنى للحجم." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "صورة بعلامة مائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "ستحصل على أفضل النتائج بالشعارات الواضحة مع إضافة ظل. يمكنك استخدام صور كبيرة إذا لم يكن حجم الملف كبيرا ( الحد الأقصى الموصى به هو 16كب). ويجب ان تكون فى صيغة PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "موقع العلامة المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "يسار/فوق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "يسار/وسط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "يسار/أسفل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "وسط/فوق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "وسط/وسط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "وسط/أسفل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "يمين/فوق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "يمين/وسط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "يمين/أسفل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "مكان وضع الصورة المائية. محاذاة أفقية أولاَ ثم محاذاة عمودية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "نسبة العلامة المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "حجم العلامة المائية التناسبى مع مساحة الصورة. القيم من 1 إلى 100" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "هامش العلامة المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "تحديد الهامش من حدود الصورة لتظهر الصورة المائية عليها." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "درجة الوضوح للعلامة المائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "درجة وضوح العلامة المائية في الصورة النهائية. القيم 0 إلى 100." + +msgid "Dashboard > Settings > Website" +msgstr "لوحة التحكم>الإعدادات>الموقع" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "لن تعمل الفئات عند إغلاق ميزة التصفح. لتبديل هذا الإعداد اذهب إلى %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "هل انت متأكد من حذف مساحة %s التخزين هذه؟ لايمكن التراجع بعد الحذف." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "ملاحظة: حذف الفئة لا يحذف الصور الموجودة بداخل هذه الفئة." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "تعديل الفئة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "انتهاء الصلاحية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "هل تريد حذف المنع من الأى بى %s ؟ هذا الإجراء لايمكن التراجع عنه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "الأى بى الممنوع سيحرم من استخدام الموقع بالكامل." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "تعديل منع الأى بى " + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "تفعيل التسجيل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "قم بتنشيط هذا الخيار إذا كنت ترغب في تفعيل ميزة التسجيل." + +msgid "Minimum age required" +msgstr "السن الأدنى مطلوب" + +msgid "Empty" +msgstr "فارغ" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "اتركه فارغا حتى لايطلب عمرا أدنى لاستخدام الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "تحويل اسم المستخدم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "تفعيل هذا الإختيار إذا أردت إعتماد %s رابط اسم المستخدم بدلامن %s إسم المستخدم." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "تحتاج إلى تأكيد البريد الإلكتروني" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "فعل هذا الإختيار إذا أردت من المستخدمين التحقق من صحة عنوان البريد الإلكتروني الخاصة بهم على قبل الاشتراك." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "طلب البريد الإلكتروني للتسجيل بإستخدام الشبكات الاجتماعية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "تمكين هذا الإختيار إذا أردت من المستخدمين إستخدام الشبكات الاجتماعية للتسجيل وتوفير عنوان البريد الإلكتروني الخاصة بهم." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "صورة المستخدم أقصى حجم للملف" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "أقصى حجم ملف مسموح به لصورة الأفاتار. ( الحد الأقصى المسموح به على الخادم هو %s )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "أقصى حجم لصورة خلفية المستخدم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "أقصى حجم ملف لصورة خلفية المستخدم. ( أقصى حجم مسموح فى الخادم هو %s )" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "إظهار شاشة موافقة قبل الدخول إلى الموقع. فهى مفيدة بالنسبة لمواقع البالغين حيث لايسمح للصغار الدخول." + +msgid "Enable consent screen" +msgstr "تفعيل شاشة الموافقة" + +msgid "Consent screen cover image" +msgstr "صورة غلاف شاشة الموافقة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "هذا الخيار سوف يقوم بحجب الأي بي للمستخدم الذي يقوم برفع صور خلال وقت أكثر من الحد المسموح به ، هذا الخيار لا يؤثر على مدير الموقع." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "الإشعار عبر البريد الإلكتروني" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "إذا تم تنشيط هذا الخيار سوف يقوم النظام بإرسال رسالة تحذيرية إلى البريد الإلكتروني." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "الحد دقيقة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "الحد ساعة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "الحد يوم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "الحد أسبوع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "الحد شهر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "إستعرض المحتويات الغير آمنة في القوائم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "تفعيل هذا عندما تريد إظهار قوائم المحتوى الغير آمن. هذا النوع من الضبط لايؤثر على الإداريين ويمكن تخطيه بواسطة إعدادات المستخدم." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "طمس المحتوى الغير أمن NSFW فى القوائم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "تفعيل هذا إذا اردت أن تطبق تأثير الطمس على صور المحتوى الغير آمن فى القوائم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "أستعرض البانر في المحتويات الغير آمنة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "تمكين هذا الخيار إذا كنت تريد أن يظهر البانر في صفحات ذات المحتوى الغير آمن." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "اظهار المحتوى الغير آمن في الوضع العشوائي" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "العناصر القائمة لكل صفحة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "كم عدد العناصر التي ستظهر في كل صفحة من القائمة." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "نسق ترقيم الصفحات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "تمرير لانهائي" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "ترقيم تقليدي" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "أي نسق ترغب في إستعراضه في ترقيم الصفحات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "حجم عرض الصور" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "سلس" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "محدد" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "كلتا الطريقتين تستخدم عرض ثابت ولكن يستخدم الأسلوب السلس ارتفاع تلقائي." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "عرض رقم العامود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "هنا يمكنك ضبط عدد العواميد المستخدمة بناء على كل جهاز مستهدف" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "الهاتف" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "الهاتف اللوحى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "الجهاز اللوحى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "الحاسب الشخصى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "الحاسب المكتبى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "ضع السمات الخاصة بك في هذا %s المجلد" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "اسلوب" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "فاتح" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "غامق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "اللون الرئيسى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "قيمة اللون بنظام الهكسا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "استخدم هذا لضبط لون السمة الرئيسي. يجب ان تكون القيمة <a href=\"%s\" target=\"_blank\"> بنظام الهكسا</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Top bar color" +msgstr "لون الشريط العلوى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "أسود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "أبيض" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1210 +msgid "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." +msgstr "إذا تم ضبط هذا على \" الأبيض\" فإن الشريط العلوى وكل الأساليب السوداء ستتغير إلى الأساليب البيضاء؟" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "لون زر الشريط العلوى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "أزرق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "أخضر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "برتقالى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "أحمر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "رمادى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "لون أزرار الشريط العلوى مثل زر\" إنشاء حساب\" " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "تفعيل الشعار الفيكتور" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "الموافقة على الشعارعالي الجودة في الأجهزة ذات كثافة بيكسل عالية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "شعار الفيكتور للصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "الصور من نوع Vector امتدادها SVG ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "الشعار النقطي للصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "الصور من نوع Bitmap او شعار موقعك. يوصى بامتداد PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "إرتفاع الشعار" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "لا يوجد قيمة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "إستخدام هذا لتعيين ارتفاع الشعار إذا لزم الأمر." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "أيقونة الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "صورة الشعار بجنب الرابط (Favicon) يجب أن تكون بنفس الطول والعرض." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "تفعيل أيقونة التحميل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "قم بتنشيط هذا الخيار إذا كنت ترغب في إظهار أيقونة تحميل الصورة." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "تمكين الضغطة اليمنى على الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "تمكين هذا إذا اردت السماح بالضغطة اليمنى على صفحة مشاهدة الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "تمكين إظهار بيانات الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "تمكين هذا إذا اردت أن تظهر بيانات الصورة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "تفعيل خاصية المشاركة الإجتماعية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "قم بتفعيل هذا الخيار إذا كنت تريد أن تظهر أزرار الشبكات الاجتماعية لمشاركة المحتوى." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "تفعيل تضمين الرموز (المحتوى)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "قم بتفعيل هذا الخيار إذا كنت تريد أن تظهررموز المحتوى." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "قم بالاشارة على المربع عند الرفع اذا كان محتوى الصور غير آمن" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "تمكين هذا الخيار إذا كنت تريد أن يظهر مربع للإشارة إلى ان المحتوى غير آمن عند رفع الصور." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "اضافة CSS مخصص" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "ضع التعليمات البرمجية CSS المخصصة هنا. سيتم وضعها في الداخل <style> قبل علامة القفيل </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "كود JS مخصص" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "ضع التعليمات البرمجية JS المخصصة هنا. سيتم وضعها في الداخل <script> قبل علامة القفيل </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "الشكل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "صفحة البداية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "فصل صفحة البداية + الصور" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +msgid "Route explore" +msgstr "استكشاف الطريق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "اختر شكل الصفحة الرئيسية .لتخصيصها بشكل أكبر قد بتعديل app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "صورة الغلاف" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "هل أنت متأكد من رغبتك في حذف هذه الصورة ؟ لا يمكن التراجع عن هذه العملية." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "حذف الصورة" + +msgid "Add new cover image" +msgstr "إضافة صورة غلاف جديدة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "إصدار الفيكتور أو شعار الموقع فى صيغة svg (فقط للصفحة الرئيسية) " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "إصدار البيتماب أو شعار الموقع ( فقط للصفحة الرئيسية ) يوصى باستخدام صيغة .PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "سيتم إضافة هذا فى وسم الصفحة الرئيسية %s . اتركها فارغة لاستخدام المحتويات الافتراضية. " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "فقرة نصية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "لون زر الإجراء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "لون زر الإجراء فى الصفحة الرئيسية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "شكل تحديد زر الإجراء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "تفعيل هذا لاستخدام شكل التحديد لزر الإجراء فى الصفحة الرئيسية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "وظيفة زر الإجراء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "رافع المشغل " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "فتح الرابط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "رابط الإجراء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "إدخال رابط مطلق أو مرتبط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "الروابط المرتبطة مثل %r ستكون مرسة إلى %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "html للإجراء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "سيضاف هذا إلى داخل وسم <a> الإجراء . اتركها فارغة لاستخدام المحتوى الافتراضى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "هويات المستخدم " + +msgid "Comma-separated list of target user IDs to show images on homepage. Leave it empty to display all recent images." +msgstr "قائمة مفصولة بفصلة لهويات المستخدمين لإظهار الصور على الصفحة الرئيسية . اتركها فارغة لعرض كل الصور الحديثة ." + +msgid "Display available updates notification" +msgstr "عرض إشعارات التحديثات المتاحة." + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "تمكين هذا لعرض ملحوظة فى الأعلى تنبه على التحديثات الجديدة المتاحة للنظام ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "رمز التصغير" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "تمكين هذا إذار اردت أن تصغر تلقائيا كود CSS و JS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "الصيانة " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "عند التمكين , يقوم الموقع بإظهار رسالة الصيانة . هذا الإعداد لايؤثر على الإداريين فى الموقع" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "التشفير المتقدم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "التشفير المتقدم سيتم إستخدامه لتحويل المعرف الرقمي إلى الأبجدية الرقمية. تم إنشاؤها على التثبيت." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "خطأ تقرير PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "قم بتمكين هذا إذا اردت أن تطبع الأخطاء المتولدة من PHP <a %s>error_reporting()</a>. ينبغى ان يتم تعطيل تلك الخاصية للحماية." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "مستوى تصحيح الأخطاء" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "لايوجد" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "قائمة الخطأ " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "اطبع الأخطاء دون قائمة الخطأ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "اطبع وادخل الأخطاء." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "لضبط مستوى تصحيح الخطأ اختر <a %s> توثيق تصحيح الخطأ </a>. المستوى الافتراضى هو \" قائمة الخطأ\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "التوجيه يسمح لك بتخصيص مسارات افتراضية سريعا. يسمح فقط بالأبجدية الرقمية, والواصلة والرموز السفلية فقط. الق نظرة على %s الخاص بنا إذا اردت تخطى أو إضافة طرق جديدة ." + +msgid "Image routing" +msgstr "توجيه الصور" + +#, php-format +msgid "Routing for %s" +msgstr "التوجيه لـ%s" + +msgid "Album routing" +msgstr "توجيه الألبوم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "اللغة الإفتراضية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "اللغة الأساسية الافتراضية المستخدمة" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "لغة تلقائية" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "تمكين هذا إذا اردت أن تتحقق تلقائيا وتضبط اللغة الصحيحة لكل مستخدم." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "اختيار اللغة " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "تفعيل هذا إذا اردت السماح باختيار اللغات." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "تفعيل اللغات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "اللغات الغير مختارة لن تستخدم فى موقعك." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "قم بتبديل هذا الخيار إذا أردت إعتماد أو إلغاء HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "قم بتبديل هذا الخيار إذا أردت إعتماد أو إلغاء مساحة التخزين هذه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "الحد الأقصى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "مفعَل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "طريقة التخزين" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "يستخدم التخزين المحلي افتراضيا أوعند عدم وجود تخزين خارجي نشط." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "إذا احتجت للمساعدة الف نظرة على <a %s> توثيق التخزين </a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "تعديل التخزين" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "إسم المرسل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "إسم المرسل يظهر عند إرسال رسائل بريدية إلى الأعضاء." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "وضع البريد الإلكتروني" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "ما هي الطريقة المراد استخدامها لارسال البريد الالكتروني؟ يفضل استخدام SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "خادم ومنفذ SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "سيرفر SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "اسم مستخدم SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "كلمة سر SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "حماية SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "غير محمي" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "‘رسال بريد اليكترونى تجريبى" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "test@somedomain.com" +msgstr "test@somedomain.com" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "استخدم هذا لإظهار رسائل البريد المستلمة. ننصح باستخدام %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "تحتاج إلى <a href=\"https://developers.facebook.com/\" target=\"_blank\"> برنامج الفيسبوك </a> من أجل هذا." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "رمز التعريف لتطبيق الفيسبوك" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "الرمز السري لتطبيق الفيسبوك" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "تحتاج إلى <a href=\"https://apps.twitter.com\" target=\"_blank\">تطبيق تويتر</a> لذلك ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "مفتاح الـ API للتويتر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "رمز الـ API للتويتر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "حساب تويتر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "تحتاج إلى <a href=\"https://cloud.google.com/console\" target=\"_blank\">تطبيق جوجل</a> لذلك ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "رمز التعريف لعميل جوجل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "الرمز السري لعميل جوجل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "تحتاج إلى <a href=\"http://vk.com/dev\" target=\"_blank\"> تطبيق VK </a> لهذا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "رقم هوية مستخدم VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "الرمز السري لمستخدم VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "تحتاج <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> لتفعيل هذا الخيار." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "بداية reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "ما هي عدد المحاولات الفاشلة التى يعدها يطلب مكون reCAPTCHA ؟ استخدم صفر (0) دائما لإظهار reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "كود التعليق" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "ديسكاس، الفيسبوك أو أي شيء تريده. سيتم استخدامه في عرض الصورة." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "كود التحليل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "كود تحليل جوجل أو أي شئ تريده ، سوف يتم إضافته في ذيل التصميم." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "للتوثيق عن API تحقق من <a %s> توثيق API </a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "مفتاح API V1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "استخدم هذا المفتاح عند استخدام <a %s>API v1</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "الخضوع لقانون ملفات تعريف الارتباط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "تفعيل هذا لعرض رسالة تتفق مع متطلبات قانون الاتحاد الأوروبى لملفات تعريف الارتباط \" الكوكيز\" . لاحظ: تحتاج لهذا فقط إذا تم استضافة موقعك الإلكترونى فى الاتحاد الإوروبى إذا اردت ان تضيف تتبعا لتلك الملفات " + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "حفظ التغييرات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "تحقق من الأخطاء لاكمال العملية." + +msgid "Play GIF" +msgstr "تشغيل GIF" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "زائر" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "مضاف الى %a ومصنف في %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "مضاف إلى %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "الرفع الى %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "مرفوع %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "بيانات صورة أقل" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "بيانات صورة أكثر" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "مشاركة الصورة" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "رقم الألبوم" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "في هذا الألبوم" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "ارفع و شارك صورك" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "اسحب و أسقط فى أى مكان هنا وأبداء فى تحميل صورك الآن . بحد أقصى %s . روابط مباشرة للصور, كود BB و صور HTML مصغرة." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "بدء الرفع" + +#: ../../../app/themes/Peafowl/views/index.php:63 +#, php-format +msgid "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." +msgstr "قم بملء هذا القسم الخاص برفع الصور لحساب %s <br> بإمكانك تعديل المستخدم المستهدف من صفحة إعدادات لوحة التحكم." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "قم بالتسجيل لتفعيل جميع المميزات" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "إدارة المحتوى الخاص بك، إنشاء ألبومات خاصة، قم بتخصيص وتنسيق ملف العضوية الخاص بك وأكثر من ذلك." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "إدخل كلمة المرور" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "لقد تم تسجيل خروجك من %s نأمل أن نراك قريبا." + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "الموقع تحت الصيانة" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "نقوم بأداء صيانة دورية على الموقع. من فضلك عاود المحاولة فى خلال دقائق" + +msgid "This content is password protected." +msgstr "هذا المحتوى محمى بكلمة سر" + +msgid "Please enter your password to continue." +msgstr "رجاء إدخال كلمةالسر الخاصة بك للمتابعة" + +msgid "Send" +msgstr "إرسال" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "إما إنك لا تملك صلاحية الدخول لهذه الصفحة أو أن صلاحية الرابط قد إنتهت." + +msgid "Search results" +msgstr "البحث فى النتائج" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "هل حقا تريد حذف هذا المستخدم؟ لا يمكن التراجع." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "حذف المستخدم" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "تاريخ التسجيل" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "رقم أى بى التسجيل" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "الحالة" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "صالح" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "محجوب" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "بانتظار البريد الإلكتروني" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "بإنتظار التفعيل" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i إلى %f صفات <br> احرف, ارقام و \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "حذف المرفوعات تلقائيا" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "هذا الإعداد سيطبق على كل عمليات رفع الصور بشكل افتراضى. يمكنك تخطى هذا الإعداد فى كل عملية رفع." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "الاحتفاظ <a %s> بيانات الصورة </a> عند الرفع" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "نشرة الأخبار " + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "ارسل لى رسائل اليكترونية بأخبار عن %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "إعدادات المحتوى" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "اظهر المحتوى الغير آمن فى القوائم ( من الآخرين) " + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "اللغة" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "المنطقة الزمنية" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "كلمة المرور الحالية" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "إدخل كلمة المرور الحالية" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "كلمة مرور جديدة" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "تأكيد كلمة المرور" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "يجب عليك اضافة كلمة مرور" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "هذا المستخدم ليس لديه كلمة مرور ، يمكنك إضافة كلمة المرور بإستخدام هذا النموذج" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "إعادة إدخال كلمة المرور" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "رفع صورة جديدة" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "حذف الصورة القائمة" + +msgid "Privacy" +msgstr "الخصوصية" + +msgid "Make my profile and identity totally private" +msgstr "جعل صورتى الشخصية والهوية مخصوصة بالكامل" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "تفعيل هذا إذا اردت التصرف كمستخدم مجهول" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "هذا هو إسمك الحقيقي وليس إسم العضوية." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "سيرة ذاتية" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "اخبرنا قليلا عن نفسك" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "العضو ليس لديه اتصالات" + +#: ../../../app/themes/Peafowl/views/settings.php:391 +msgid "Link your account to external services to be able to login and share content." +msgstr "أربط حسابك بخدمات خارجية بحيث يمكنك مشاركة المحتويات بواسطتها." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "هل انت متأكد من رغبتك في إيقاف الإتصال بـ %s من هذا الحساب ؟" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "هذا الحساب مرتبط بـ %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "هل انت متأكد من رغبتك في إيقاف الإتصال لـ %s بحسابك ؟" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "سوف يتم تسجيل خروجك من %s ولن تتمكن من الدخول بهذا الحساب من جديد." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "حسابك مرتبط بـ %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "قطع الإتصال" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "متصل بـ %s" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "زر" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "إعادة ارسال تنشيط الحساب" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +#, php-format +msgid "If you have already signed up maybe you need to request to %s" +msgstr "لو كنت سجلت بالفعل قد تحتاج لطب من %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "رفع خلفية للملف الشخصي" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "تعديل الخلفية" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "سوف يتم حذف صورة خلفية الملف الشخصي ، لن تتمكن من التراجع عن هذا الإجراء ، هل أنت متأكد من رغبتك في حذف خلفية الملف الشخصي ؟" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "حذف الخلفية" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "تعديل الملف" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "" +msgstr[1] "متابع" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "المتابعون" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "متابعة" + +msgid "Message sent" +msgstr "تم إرسال الرسالة " + +msgid "Contact" +msgstr "اتصل بنا" + +msgid "If you want to send a message fill the form below." +msgstr "إذا كنت ترغب في إرسال رسالة ، قم بإدخال البيانات فى النموذج أدناه." + +msgid "Your name" +msgstr "إسمك" + +msgid "Subject" +msgstr "العنوان" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "النسخة المثبتة هى %s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "لايمكن الاتصال بـ %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "أخر اصدار متاح هو %s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "التحديث مطلوب. الذ" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "لايوجد تحديث مطلوب" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "ملفات النظامم محدثة بالفعل" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "بدء %s التحميل" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "تم تحميل %s , الذهاب للإستخراج" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "محاولة استخراج %s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "تم الاستخراج" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "إتمام عملية تثبيت التحديثات" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "فشل التحديث" + +#: ../../../app/lib/chevereto.js:592 ../../../app/lib/chevereto.min.js:36 +msgid "Please provide a valid email address" +msgstr "يرجى تقديم عنوان بريد إلكتروني صالح" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "يجب كتابة اسم الالبوم." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "تأكيد" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "إختر الألبوم القائم" + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "الرجاء إختيار صورة من النوع المسموح." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "الرجاء إختيار صورة بحجم لا يتجاوز %s ." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "تم تحديث صورة الملف الشخصي." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "تم تحديث خلفية الملف الشخصي." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "تم حذف خلفية الملف الشخصي." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "خطأ فى حذف صورة خلفية الملف الشخصي." + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "التحديثات المتاحة %s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "هناك تحديث متاح للنظام الخاص بك. يمكنك تحميل وتثبيت ذلك التحديث تلقائيا أو اذهب إلى %s للاستمرار فى تحميل الملف" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "تحديث الان" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "صورة الحافظة" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "الملف كبير." + +msgid "Invalid or unsupported file format." +msgstr "نوع ملف غير صالح أو غير معتمد ." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "بعض الملفات لم يتم اضافتها" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "تم تعديل الصورة بنجاح." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "خاص" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "تم تعديل الالبوم بنجاح." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "مفتاح URL غير صالح." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "فئة مفتاح URL اللتي يتم إستخدامها." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "تم حذف الفئة بنجاح." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "تم إضافة الفئة %s" + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "تاريخ انتهاء الصلاحية خاطئ ." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "الأى بى %s تم منعه بالفعل" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "الأى بى %s تم منعه ." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "حذف حظر IP بنجاح" + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "يرجى تعبئة جميع الحقول المطلوبة." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "قيمة سعة التخزين غير صالحة. تأكد من استخدام صيغة صالحة." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL غير متوفر." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "تم تعديل التخزين بنجاح." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "تم إضافة المستخدم بنجاح." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "تم نقل المحتوى." + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "إلغاء الإختيار" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "تم تعديل المحتوى." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "كل التغييرات التي قمت بها سوف يتم إلغاؤها في حالة المتابعة." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "تم حفظ التغييرات بنجاح." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "العودة إلى النموذج" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "متابعة على أي حال" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "جاري الحفظ" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "جاري الإرسال" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "تأكيد الإجراء" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "معلومات" + diff --git a/app/languages/bg-BG.po b/app/languages/bg-BG.po new file mode 100644 index 0000000..aa5f035 --- /dev/null +++ b/app/languages/bg-BG.po @@ -0,0 +1,5338 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-04-16 20:33+0000\n" +"PO-Revision-Date: 2020-04-16 20:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: bg_BG\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Невалиден имейл" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Невалидно потребителско име" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Невалидна парола" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Невалиден режим на сайта" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "От имейл адрес" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Имейл, от който потребителите ще получават имейлите" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Имейл за входяща поща" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Получател на форма за контакт и системни сигнали." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Режим на уебсайта" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Можете да превключвате по всяко време режима на уебсайта" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Общество" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Лично" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Инсталирана версия : %s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Не може да се свърже с %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Последната налична версия е v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Необходима е актуализация" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Не е необходима актуализация" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Системните файлове вече са актуализирани" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Сваляне на версия : v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Свалена версия : v%s започва се разархивиране" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Опит за екстракт v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Екстрахирането завърши" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Започване на актуализация" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Неуспешна актуализация" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "В моментът се извършва актуализация" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Липсва %s файл" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Невалиден лиценз" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Невалиден лиценз" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Файлът не може да бъде запазен" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Неуспешно сваляне на %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Неуспешно извличане на %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Неуспешно създаване на %s директория - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Неуспешно обновяване на %s файл - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Проверете грешките във формата, за да продължите." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Нужно е да въведете името на албума." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Потвърди" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Изберете съществуващ албум" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Възникна грешка. Моля, опитайте по-късно." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Моля изберете валиден файлов формат." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Моля изберете снимка с максимален размер %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Профилната снимка е обновена" + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Фоновата снимка е обновена успешно." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Фоновата снимка е изтрита успешно." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Грешка при изтриване на фоновата снимка." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Паролите не съвпадат" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Наличен е ъпдейт v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Има налично обновление за системата ви. Можете автоматично да свалите и инсталирате ъпдейта или да отидете до %s, за да продължите със свалянето на файла." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Бележките за тази актуализация са:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Актуализирайте сега" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "или" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "отмени" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Уебсайтът използва последна %s версия" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "зареждане" + +msgid "Toggle select" +msgstr "Отбележи селекция" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Харесай" + +msgid "Toggle flag" +msgstr "Отбележи флаг" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Редактирай" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Албум" +msgstr[1] "Албуми" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Изтрий" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Затвори" + +msgid "Previous" +msgstr "Предишна" + +msgid "Next" +msgstr "Следваща" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Снимка от клипборда" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Файлът е прекалено голям" + +msgid "Invalid or unsupported file format." +msgstr "Невалиден или формат, който не се поддържа." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Някои файлове не бяха добвени" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "снимка" +msgstr[1] "снимки" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s Албуми" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Снимката е редактирана успешно." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "скрито" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Албумът е редактиран успешно." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Невалиден URL ключ." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "URL на категорията вече се използва." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Категорията е успешно изтрита." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Категория %s е добавена." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Невалидна дата за изтичане." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s вече има бан." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "Успешен бан на IP %s." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Бан по IP успешно премахнат." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Моля попълнете всички задължителни полета." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Невалидна стойност за съхранение. Моля проверете дали използвате правилно форматиране." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Обем на паметта не може да бъде по-ниска от сегашната му използвана памет (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Невалиден URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Хранилището е редактирано успешно" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Потребителят е добавен успешно" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Съдържанието е изтрито" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Съдържанието е преместено" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Избери" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Размаркирай" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Съдържанието е редактирано" + +msgid "Select number of threads" +msgstr "Изберете брой теми" + +msgid "Spam detected" +msgstr "Засечено е спам" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "албум" +msgstr[1] "албуми" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Достигнахте лимита можете да качвате само %limit% %content% за %time%." + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Неозаглавен" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Изображенията на %s" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Бележка: Това съдържание е скрито, но всеки с точен линк може да го види." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Бележка: Това съдържание е защитено с парола. Не забравяйте да изпратите на получателя паролата." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Това съдържание е скрито. Променете поверителността на \"публично\", ако желаете да го споделите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Скрито" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Публично" + +msgid "Me" +msgstr "Аз" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Връзка" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Парола" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "преглед" +msgstr[1] "прегледа" + +msgid "After %n %t" +msgstr "След %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "минута" +msgstr[1] "минути" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "час" +msgstr[1] "часа" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "ден" +msgstr[1] "дни" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "седмица" +msgstr[1] "седмици" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "месец" +msgstr[1] "месеца" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "година" +msgstr[1] "години" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Да не се изтрива автоматично" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Дублирано качване" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Скрито качване" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Харесване" +msgstr[1] "Харесвания" + +msgid "Recent" +msgstr "Последни" + +msgid "Trending" +msgstr "Популярни" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Топ потребители" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Най-нови" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Най-стари" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Най-гледани" + +msgid "Popular" +msgstr "Популярни" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Най-харесвани" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Разгледай" + +msgid "Animated" +msgstr "Анимирани" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Търси" + +msgid "People" +msgstr "Хора" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Снимка" +msgstr[1] "Снимки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Потребител" +msgstr[1] "Потребители" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Неуспешно създаване на %s директория" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Не можете да отворите %s за писане" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Вътрешен" + +msgid "Can't insert storage." +msgstr "Неуспешно вмъкване на хранилище." + +msgid "Can't update storage details." +msgstr "Неуспешно обновлени на детайли за хранилището." + +#, php-format +msgid "requires %s" +msgstr "изисква %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Неограничено" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "употребяван" + +msgid "Private profile" +msgstr "Скрит профил" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "секунда" +msgstr[1] "секунди" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "Преди %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "преди моменти" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Табло" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Налично е обновление за вашата система. Отидете до %s, за да свалите и инсталирате обновлението." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Система за база данни е остаряла. Вие трябва да стартирате инструмента за <a href=\"%s\"> актуализация</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Уебсайта е в режим на поддръжка. За да възстановите настройката отида да <a href=\"%s\"> Табло > Настройки</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Нужно е да изключите PHP докладването на грешки за готовия сайт. Отидете на <a href='%s'>Системни настройки</a>, за да върнете тази настройка." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Не сте променили email настройките по подразбиране. Отидете до <a href='%s'>Email настройки</a>, за да поправите това." + +msgid "There is an update available for your Chevereto based website." +msgstr "Наличен е ъпдейт за вашия Chevereto базиран уебсайт." + +msgid "admin dashboard" +msgstr "администраторско табло" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Можете да приложите този ъпдейт от вашия %a или да го свалите от %s и след това ръчно да го инсталирате." + +#, php-format +msgid "view on %s" +msgstr "вижте на %s" + +msgid "cookie policy" +msgstr "политика за бисквитките" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Ние използваме наши ни на трети страни бисквитки, за да подобрим вашия престой и нашите услуги. Ако продължите да използвате нашия сайт, вие се съгласявате с %cookie_policy_link" + +msgid "I understand" +msgstr "Разбирам" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Забравена парола?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Промени паролата" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Повторно изпращане на активация на профила" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Добавете своя имейл адрес" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Имейлът е променен" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s ви засича че сте робот" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Невалидно потребителско име / имейл" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Потребителят не разполага с имейл." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Искането е отказано" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "За да използвате тази функция е нужно да активирате вашият профил" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Профилът вече е активиран" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "След като изчакате 15 минути за имейла. Можете да опитате отново по-късно." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Променете паролата си в %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Нужно е потвърждение в %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Добре дошли в %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Този имейл вече се използва" + +msgid "Password required" +msgstr "Изисква парола" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Сподели" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Кодове за вграждане" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Пълна информация" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Албум %a се хоства в %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Статистика" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Изображения" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Албуми" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Потребители" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Настройки" + +msgid "Bulk importer" +msgstr "Основен вносител" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Версия на Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "инсталирайте актуализация" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "провери за актуализации" + +msgid "Support" +msgstr "Поддръжка" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Имате нужда от помощ? Отидете на %s и ще получите бързо помощ" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP версия" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Сървър" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL версия" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL сървър информация" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD библиотека" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Качени файлове" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Включено" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Изключено" + +msgid "Max. upload file size" +msgstr "Максимален размер за качване" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Максимален размер на публикацията" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Максимално време за изпълнение" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d секунда" +msgstr[1] "%d секунди" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Ограничение на паметта" + +msgid "Connecting IP" +msgstr "Свързване IP" + +msgid "Not your IP?" +msgstr "Не е ващо IP?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Връзки" + +msgid "Collaboration" +msgstr "Сътрудничество" + +msgid "Documentation" +msgstr "Документация" + +msgid "Changelog" +msgstr "Промени" + +msgid "Bug tracking" +msgstr "Бъгове" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Уебсайт" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Съдържание" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Страници" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Списъци" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Качване на изображение" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Категории" + +msgid "Consent screen" +msgstr "Екран за съгласие" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Защита от флууд" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Тема" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Начална страница" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Банери" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Система" + +msgid "Routing" +msgstr "Насочване" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Езици" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Външно съхранение" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Имейл" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Социални мрежи" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Външни услуги" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Бан по IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Допълнителни настройки" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Инструменти" + +msgid "Can't delete all homepage cover images" +msgstr "Не могат да бъдат изтрити всички изображения на корицата на началната страница" + +msgid "Homepage cover image deleted" +msgstr "Изображението на корицата е изтрита" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "локално" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Външно" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Всичко" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "търсене на съдържание" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Добавяне на страница" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Редактиране на страницата %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Страницата е добавена успешно." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Страницата е изтрита." + +msgid "homepage" +msgstr "начална страница" + +#, php-format +msgid "Before main title (%s)" +msgstr "Преди основното заглавие %s" + +#, php-format +msgid "After call to action (%s)" +msgstr "След призив за действие (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "След покриване %s" + +#, php-format +msgid "After listing (%s)" +msgstr "След изброяване %s" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Преди номериране" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "След номериране" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Съдържание (изображение и албум)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Раздел за колоната" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Преди коментари" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Страница с изображения" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "отгоре (страница с изображения)" + +#: ../../../app/routes/route.dashboard.php:413 +#: ../../../app/routes/route.dashboard.php:417 +msgid "Expected banner size 728x90" +msgstr "Очакван размер на банера 728x90" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Долна част (страница с изображения)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "След преглед на изображения (страница с изображение)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Преди заглавието (изображения)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "След заглавието (изображения)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Долна част (изображения)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Албум страница" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Преди заглавието (албум)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "След заглавието (албум)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Потребителска страница" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "След горна част (Потребителска страница)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Преди публикациите (потребителски профил)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Разгледайте страницата" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "След началото" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NFSW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Невалиден уебсайт" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Невалиден език" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Невалидна часова зона" + +#, php-format +msgid "Invalid value: %s" +msgstr "Невалидна стойност %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Невалиден режим на съхранение при качване" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Невалидно именуване на файл за качване" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Невалидна ширина на миниатюра" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Невалидна височина на миниатюра" + +msgid "Invalid medium size" +msgstr "Невалиден среден размер" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Невалиден процент на воден знак" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Невалидна непрозрачност на водния знак" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Невалидна тема" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Невалидна стойност" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Невалиден тон на темата" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Невалиден основен цвят на темата" + +#: ../../../app/routes/route.dashboard.php:632 +msgid "Invalid theme top bar color" +msgstr "Невалиден цвят на горната лента" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Невалиден цвят на бутона на горната лента" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Невалиден размер на списъка с изображение" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Невалиден ID номер на потребителя" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Невалиден режим на имейл" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Грешно въведен SMTP порт" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Невалидна сигурност на SMTP" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Невалиден идентификационен номер на потребител в личен режим" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Невалиден или резервиран път" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Невалиден режим на поверителност на уебсайта" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Невалиден режим на поверителност на съдържанието на уебсайта" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Невалиден стил на началната страница" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Невалидна страница призив за действие цветен бутон" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Невалидна страница призив за действие функционалност" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Невалидно заглавие" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Невалидно състояние" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Невалиден тип" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Невалидна видимост" + +msgid "Invalid internal type" +msgstr "Невалиден вътрешен тип" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Невалиден целеви атрибут" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Невалиден атрибут rel" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Невалидна икона" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Невалиден ключ за URL адрес" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Невалиден път към файла" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Невалиден URL адрес на връзката" + +msgid "Invalid user minimum age" +msgstr "Невалидна минимална възраст на потребителя" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Разрешени са само буквено-цифрови, тире и подчертаващи символи" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Невалиден адрес" + +msgid "Routes can't be the same" +msgstr "Маршрутите не могат да бъдат еднакви" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Грешен \"път\" до изображението" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Невалиден призив за действие URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Максимално разрешени %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Не може да се картографира %m в съществуваща папка (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Не може да се картографира %m до съществуващ маршрут (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Не може да се картографира %m до %r (сблъсък на потребителско име)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Грешно въведен SMTP сървър" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Грешно въведен SMTP потребител" + +msgid "Invalid key" +msgstr "Невалиден ключ" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Този ключ за URL адрес вече се използва от друга страница (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Този път към файла вече се използва от друга страница (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Съдържанието на страницата не може да бъде запазено %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Следва" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Относно" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "изображение ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP на потребителя" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Бан IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP-то вече е баннат" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Дата на качване" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Изображение %i в %a албум" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Изображение %i в %c категория" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Изображение %i хоствано в %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Директни връзки" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Връзка към изображението" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL адрес на изображението" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL адрес на миниатюра" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Среден URL адрес" + +msgid "Full image" +msgstr "Пълно изображение" + +msgid "Full image (linked)" +msgstr "Пълно изображение (с връзка)" + +msgid "Medium image (linked)" +msgstr "Средно изображение (с връзка)" + +msgid "Thumbnail image (linked)" +msgstr "Изображение на миниатюра (с връзка)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Необходимо е да влезнете" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP адресът вече е баннат" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Липсващи стойности" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Невалидна роля" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Потребителското име вече се използва" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Добавете парола или друга социална връзка, преди да изтриете %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Добавете имейл или друга социална връзка, преди да изтриете %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s е изключен." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Тест имейл от %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Това е просто тест" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Тестов имейл изпратен до %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Изтегляне на %s данни" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Потребителят %s последва" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Потребителят %s спря да следва" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Харесали съдържание" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Не харесали съдържание" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u хареса %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u сега ви следва" + +msgid "A private user" +msgstr "Скрит потребител" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Грешно потребителско име или парола" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Вход" + +msgid "Upload images" +msgstr "Качване на изображения" + +msgid "Upload plugin" +msgstr "Качване на плъгин" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Резултати от търсенето на изображения за %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Резултати от търсенето на албуми за %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Резултати от потребителско търсене за %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Акаунт" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Профил" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Свързани акаунти" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Невалиден срок на изображението %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Email беше изпратен до %s с инструкции за активация" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Невалидно име" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Невалиден уебсайт" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Грешна парола" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Използвай нова парола" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Промените са запазени" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Паролата бе сменена" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Паролата бе създадена" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Грешно въведени Потребителско име/Email данни" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Настройки за %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Трябва да се съгласите с условията и политиката за поверителност" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Трябва да имате поне %s години, за да използвате този уебсайт." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Създай акаунт" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Качи" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Изображенията на: %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Резултати за" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Харесвано от %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Хареса" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Последователи" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n %u албуми на %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) на %w" + +msgid "Discovery" +msgstr "Откритие" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Подробно търсене" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Произволен" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Известия %s" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Известия" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Нямате известия" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Моят профил" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Изход" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Получихме заявка за промяна на имейла на вашия <a href=\"%u\">%n</a> акаунт в %w" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "За да завършите процеса, трябва <a href=\"%s\">активирате вашия имейл</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Като алтернатива можете да копирате и поставите URL адреса в браузъра си: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Ако не сте възнамерявали това, просто игнорирайте това съобщение." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Тази заявка беше направена от IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Получихме заявка за регистриране на %n акаунт на %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "За да завършите процеса, трябва<a href=\"%s\">активирате вашия акаунт</a>" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Получихме заявка за нулиране на паролата за вашия <a href=\"%u\">%n</a> акаунт" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "За да нулирате паролата си <a href=\"%s\"> следвайте тази връзка</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Здравейте, %n, добре дошли в %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Сега, когато акаунтът ви е готов, можете да се насладите на качването на вашите изображения, създаването на албуми и настройката на поверителността на съдържанието ви, както и на още много готини неща, които ще откриете." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Това е вашата прекрасна страница на профила: <a href=\"%u\">%n</a>. Давайте напред и персонализирайте я по ваш вкус!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Благодарим ви, че се присъединихте към нас" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Този имейл беше изпратен от %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Плъзнете и пуснете или поставете изображенията тук, за да ги качите" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Изберете изображенията за качване" + +msgid "browse from your computer" +msgstr "Изберете от вашия компютър" + +msgid "add image URLs" +msgstr "добавете URL адреси на изображения" + +msgid "You can also %i or %u." +msgstr "Можете също %i или %u" + +msgid "browse from your device" +msgstr "Изберете от вашето устройство" + +msgid "take a picture" +msgstr "направи снимка" + +msgid "You can also %i, %c or %u." +msgstr "Можете също %i, %c или %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Редактирайте или променете размерите на всяко изображение, като щракнете варху визуализацията на изображението" + +msgid "Edit any image by touching the image preview" +msgstr "Редактирайте всяко изображение, като докоснете визуализацията на изображението" + +msgid "your computer" +msgstr "вашия компютър" + +msgid "You can add more images from %i or %u." +msgstr "Можете да добавите още изображения от %i или %u." + +msgid "your device" +msgstr "вашето устройство" + +msgid "You can add more images from %i, %c or %u." +msgstr "Можете да добавите още изображения от %i, %c или %u." + +msgid "Uploading %q %o" +msgstr "Качване %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "Завършено" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Опашката се качва, ще отнеме само няколко секунди." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Качването завърши" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Каченото съдържание е добавено към %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Можете да %c с току-що каченото съдържание или %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Можете да %c с току-що каченото съдържание." + +msgid "create a new album" +msgstr "създайте нов албум" + +msgid "move it to an existing album" +msgstr "преместете го в съществуващ албум" + +msgid "You must %s or %l to save this content into your account." +msgstr "Трябва да %s или %l да запазите това съдържание във вашия акаунт." + +msgid "create an account" +msgstr "създайте акаунт" + +msgid "sign in" +msgstr "Вход" + +#, php-format +msgid "No %s have been uploaded" +msgstr "%s не са качени" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Възникнаха някои грешки и системата не можа да обработи вашата заявка." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Категория" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Изберете категория" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Маркирайте това ако изображението не е подходящо за всички възрасти." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Не е подходящо за всички възрасти" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Качване" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Отменете останалите" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Забележка: Някои изображения не могат да бъдат качени." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Научете повече" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Проверете <a data-modal=\"simple\" data-target=\"failed-upload-result\">доклад за грешка</a> за повече информация." + +#, php-format +msgid "Register to get %s" +msgstr "Регистрирайте се, за да получите %s" + +msgid "reset" +msgstr "Нулирай" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "затвори" + +msgid "copy" +msgstr "Копирай" + +msgid "insert" +msgstr "Вмъкни" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Премахни" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Редактиране на изображението" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Заглавие" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "По избор" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Намаляване на изображението" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Широчина" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Височина" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Забележка: Анимираните GIF изображения няма да бъдат намалени." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Автоматично изтриване на изображението" + +msgid "Sign up" +msgstr "Регистрирайте се" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s за да можете да персонализирате или деактивирате автоматичното изтриване на изображението." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Маркирайте това, ако изображението не е подходящо за всички възрасти" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Маркирайте кат не е подходящо за деца" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Описание" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Кратко описание на изображението" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Добавете URL адреси на изображения" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Добавете URL адреси на изображения тук" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Създай албум" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Каченото съдържание ще бъде преместено в този новосъздаден албум." + +msgid "existing album" +msgstr "съществуващ албум" + +msgid "You can also move the content to an %a." +msgstr "Можете също да преместите съдържанието в %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Трябва да %s или %l, ако искате да редактирате този албум по-късно." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Премести в албум" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Изберете съществуващ албум, за да преместите каченото съдържание. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\"> да създадете нов албум</a> и да преместете съдържанието там." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Доклад за грешка" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Връзки за зрители" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML кодове" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML изображение" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML пълна връзка" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "Среден HTML код с връзка" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "Свързана HTML картинка" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "ББКодове" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "Пълен ббкод" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "ББКод напълно свързан" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Средно свързан ББКод" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Свързана миниатюра на ББКод" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Пълен маркдаун" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "напълно свързан маркдаун" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Средно свързан маркдаун" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Свързана миниатюра" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Всички тези думи" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Въведете важните думи: tri-colour rat terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Тази точна дума или фраза" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Поставете точни думи в кавички: \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Нито една от тези думи" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Поставете знак минус точно преди думи, които не искате: -rodent -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP адрес" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Име на албума" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "премести в съществуващ албум" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Описание на албума" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Кратко описание албума" + +msgid "Album privacy" +msgstr "Поверителност на албума" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Кой може да вижда това съдържание" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Скрито (само аз)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Скрито (всеки с връзката)" + +msgid "Private (password protected)" +msgstr "Скрито (защитен с парола)" + +msgid "Album password" +msgstr "Парола за албума" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Име" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Име на категорията" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL ключ" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "URL ключ за категорията" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Само букви, цифри и тирета" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Кратко описание на категорията" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Изображение без заглавие" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Път" + +msgid "Local path (absolute)" +msgstr "Локален път" + +msgid "Directory structure" +msgstr "Структура на директория" + +msgid "Parse top level folders as users (username)" +msgstr "Анализиране на папките на най-високо ниво като потребители (потребителско име)" + +msgid "Parse top level folders as albums" +msgstr "Анализиране на папките на най-високо ниво като албуми" + +msgid "Don't parse folders" +msgstr "Не анализирайте папки" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Когато анализирате папките от първо ниво като потребители, папките от второ ниво ще бъдат анализирани като потребителски албуми. Разбирането на папки от най-високо ниво като албуми ги добавя като албуми за гости." + +msgid "Threads" +msgstr "Теми" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Това определя колко интензивен и бърз ще бъде процесът на импортиране. Не използвайте повече от %s теми на споделен сървър." + +msgid "You can use wildcard * characters." +msgstr "Можете да използвате символи *." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Срок на годност" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "ГГГГ-ММ-ДД ЧЧ:ММ:СС" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Пример" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "До коя дата този IP адрес ще бъде забранен? Оставете празно без изтичане." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Съобщение" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Текстово съобщение, HTML или URL адрес за пренасочване" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Съществуващ албум" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "създайте нов албум" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Име на съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API-сървър" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Област" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Регион за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Кофа за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Ключ за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Тайна" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Тайната за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Таен ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Ключ на Google Cloud JSON" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "За това ще ви е необходим <a %s>акаунт за услуга </a>." + +msgid "Service name" +msgstr "Име на услугата" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Идентификационен URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Крайна точка на API за идентичност" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Крайна точка на API за идентичност на OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Потребителско име" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Контейнер" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Контейнер за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID на наемателя" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID на наемателя (ID на акаунта)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Име на наемателя" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Име на наемателя (име на акаунта)" + +msgid "Storage endpoint" +msgstr "Крайна точка на съхранение" + +msgid "Server address" +msgstr "Адрес на сървър" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Име на хост или IP на сървъра за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Път към сървъра" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Абсолютен път, към файловете които ще бъдат съхранявани в контекста на %p вход. Използвайте %s за root път." + +msgid "Server login" +msgstr "Вход в сървъра" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Парола на сървъра" + +msgid "Local path" +msgstr "Местен път" + +msgid "Local path where the files will be stored" +msgstr "Локален път, където ще се съхраняват файловете" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Капацитет за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Пример: 20 GB, 1 TB и т.н." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Това съхранение ще бъде деактивирано, когато достигне този капацитет. Оставете празно или нулево без ограничение." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL адрес за съхранение" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Системата ще картографира изображенията от това хранилище към този URL адрес." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "Виж повече" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Зареди още" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Маркирай всичко" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Изчистване на селекцията" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Селекция" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Действие" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Вземете кодове за вграждане" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Присвойте категория" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Маркирай като безопасно" + +msgid "Create new album" +msgstr "Създайте нов албум" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Влезте с друг акаунт" + +msgid "Continue with %label%" +msgstr "Продължете с %label%" + +msgid "Home" +msgstr "Начало" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Тук няма какво да се покаже." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Редактиране на подробности за изображението" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Редактирай албум" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Всички изображения ще бъдат преместени в този новосъздаден албум. Можете също да преместите изображенията в <a class=\"modal-switch\" data-switch=\"move-existing-album\">съществуващ албум</a>" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Изберете съществуващ албум, за да преместите изображението. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\">да създадете нов албум</a> и да преместите изображението там." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Изберете съществуващ албум, за да преместите съдържанието на албума. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\">създадете нов албум</a> и да преместите изображението там." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Изберете съществуващ албум, за да преместите изображението. Можете също <a class=\"modal-switch\" data-switch=\"move-new-album\">създадете нов албум</a> и да преместите изображенията там." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Всички избрани изображения ще бъдат назначени към тази категория." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Няма категории." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Потвърдете съдържанието като безопасно" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Наистина ли искате да маркирате това съдържание като безопасно?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Потвърдете съдържанието като опасно" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Наистина ли искате да маркирате това съдържание като опасно?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Потвърждаване на изтриването" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Наистина ли искате да премахнете това съдържание? Това не може да бъде отменено." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Наистина ли искате да премахнете цялото избрано съдържание? Това не може да бъде отменено." + +msgid "Fullscreen" +msgstr "Цял екран" + +msgid "Exit fullscreen" +msgstr "Изход от цял екран" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Гост" + +msgid "Keyboard shortcuts" +msgstr "Комбинация от клавиши" + +msgid "Private album" +msgstr "Скрит албум" + +msgid "Password protected" +msgstr "Защитен с парола" + +msgid "Uploaded by guest" +msgstr "Качено от гост" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "От %s" + +msgid "Uploaded by private" +msgstr "Качено от скрит" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "от %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Превключвайте опасен флаг" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Страницата не съществува" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Страницата не бе открита" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Потърси нещо друго" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Потребителят бе изтрит" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Вашият акаунт е почти завършен" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Изпратен е имейл до %s с инструкции за активиране на вашия акаунт. Връзката е валидна 48 часа. Ако не получите инструкциите, проверите спам кутията." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Изпрати отново активацията" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Успешно променихте имейла на профила си на %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Отиди в моя профил" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "На този имейл ще получите писмо за активация на вашия акаунт." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Вашият имейл адрес" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Изпрати" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "На вашият email са изпратени инструкции как да промените своята парола. Ако не получите писмото, то проверете в папките за спам" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Изпратен е имейл с инструкции за нова парола. Ако не сте получили инструкциите, проверете спам кутията." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Изпрати отново инструкции" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Въведете вашето потребителско име или имейл адрес, за да продължите. Може да се наложи да проверите папката си със спам или белия списък %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Потребителско име или имейл адрес" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Вашата парола е променена. Вече можете да влизате използвайки новата парола" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Влезте сега" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Въведете новата парола" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d минимални символи" + +msgid "Password strength" +msgstr "Сигурност на паролата" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Въведете отново новата парола" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Изпратен е имейл до %s с инструкциите за активиране на вашия акаунт. Ако не сте получили инструкциите моля проверете спам кутията." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Това съдържание е скрито" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Наистина ли искате да изтриете този албум и всичките му изображения? Това не може да бъде отменено." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Изтрий албум" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Вие харесвате това" + +msgid "Upload to album" +msgstr "Качване в албума" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Връзка към албум" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Моля, прочетете и спазвайте следните условия, преди да продължите:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Този уебсайт съдържа информация, връзки и изображения на материали, които са явно сексуално представени. Ако сте на възраст под %s, ако такъв материал ви обижда или ако е незаконно да гледате такива материали във вашата общност, моля, не продължавайте.\n\nАз съм на поне %s години и вярвам, че като възрастен е неотменимото ми право да получавам / разглеждам сексуално изрични материали. Искам да получавам / разглеждам сексуално изрични материали.\n\nСчитам, че сексуалните актове между възрастните не са нито обидни, нито нецензурни. Преглеждането, четенето и изтеглянето на сексуално категорични материали не нарушава стандартите на моята общност, град, щат или държава.\n\nСексуално изричният материал, който разглеждам, е за моя лична употреба и няма да излагам непълнолетни на материала.\n\nАз съм единствено отговорен за неверни разкрития или правни последици от гледане, четене или изтегляне на всякакви материали в този сайт. Освен това този уебсайт, нито неговите партньори, ще носят отговорност за правни последствия, произтичащи от измамно влизане или използване на този уебсайт.\n\nТози екран за съгласие представлява правно споразумение между този уебсайт и вас и / или всеки бизнес, в който имате правен или справедлив интерес. Ако някоя част от това споразумение бъде счетена за неприложима от компетентен съд, това не засяга изпълняемостта на другите части от споразумението." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "С кликване варху „Съгласен съм“ декларирате, че сте прочели и разбрали всички условия, посочени по-горе." + +msgid "I Agree" +msgstr "Съгласен съм" + +msgid "documentation" +msgstr "Документация" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "Научете повече за %s на нашия %d." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "Свързващият се IP адрес се определя чрез променлива на сървъра %var%. Ако откритият IP адрес не съвпада с вашия, това означава, че вашият уеб сървър е под прокси и трябва да настроите вашия сървър, за да настроите реалното се свързващо IP." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "За Nginx трябва да използвате %nginx%. За Apache, %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Уверете се, че се справяте с този проблем, тъй като системата разчита на точни IP открития, за да осигури основни функционалности и да се предпази от спам, флууд и BruteForce атаки." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Използвано дисково пространство" + +msgid "Queued" +msgstr "На опашка" + +msgid "Working" +msgstr "Работещ" + +msgid "Paused" +msgstr "На пауза" + +msgid "Canceled" +msgstr "Отменен" + +msgid "Completed" +msgstr "Завършен" + +msgid "Actions" +msgstr "Дейности" + +msgid "Pause" +msgstr "Пауза" + +msgid "Process log" +msgstr "Дневник на процес логовете" + +msgid "Errors" +msgstr "Грешки" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Статус" + +msgid "Add import job" +msgstr "Добавете задание за импортиране" + +#, php-format +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure. You can learn more about the folder structure, adding metadata, and all about this tool in our %d." +msgstr "Този инструмент позволява масово добавяне на съдържание към уебсайта ви, като посочва системен път със съдържанието, което искате да импортирате. Той поддържа добавянето на потребители, албуми и изображения, използвайки структура, базирана на папки. Можете да научите повече за структурата на папките, добавяне на метаданни и всичко за този инструмент в нашия %d." + +msgid "Process import" +msgstr "Процес на импортиране" + +#, php-format +msgid "Top level folders as %s" +msgstr "Папки на най-високо ниво като %s" + +msgid "Process" +msgstr "Процес" + +msgid "Cancel" +msgstr "Отмени" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Наистина ли искате да премахнете ID за импортиране %s?" + +msgid "Parser" +msgstr "Синтактичен анализ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Добавяне на потребител" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Роля" + +msgid "Manager" +msgstr "Мениджър" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Администратор" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Имейл адрес" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Тази настройка винаги е деактивирана при използване на личен уебсайт режим." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Добавяне на категория" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Добавете бан по IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Добавете място за съхранение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Върнете се на страниците" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Име на уебсайт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Заглавие на уебсайт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Описание на уебсайтa" + +msgid "Powered by" +msgstr "Осъществено от" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "Активирайте това, ако искате да се показват бутони за споделяне в социалните мрежи." + +msgid "Automatic" +msgstr "Автоматичен" + +msgid "Forced" +msgstr "Принуден" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a ще използва HTTPS откриване от страна на сървъра (препоръчително). %f ще използва HTTPS независимо от настройката на вашия сървър. %d изобщо да не използвате HTTPS." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Това контролира само протокола, използван в URL адресите, няма да превърне вашия уебсайт в валиден HTTPS уебсайт, освен ако вашият сървър не е конфигуриран да поддържа и използва HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Часова зона по подразбиране" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Избери регион" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Позволява да търсите изображения, албуми и потребители въз основа на дадена заявка за търсене." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Разрешава да разглеждате публично качени изображения. Също така дава възможност за категории." + +msgid "guests" +msgstr "Гости" + +msgid "Enables explore for guests." +msgstr "Позволява откриване за гостите." + +msgid "Enables to browse images randomly." +msgstr "Позволява да разглеждането изображения произволно." + +msgid "Likes" +msgstr "Харесвания" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Позволява на потребителите да харесват съдържание и да попълват списъци с „Най-харесвани“." + +msgid "Followers allows users to follow each other." +msgstr "Последователите позволяват на потребителите да следват един друг." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Личен режим на целевия потребител" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Потребителско ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Вашето потребитеслко ID е: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Числов идентификатор на целевия потребител за личен режим." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Личен режим на маршрутизиране" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Персонализиран маршрут за карта / потребителско име до / нещо. Използвайте \"/\", за да насочите към началната страница." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Режим на поверителност на уебсайта" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Скрития режим ще направи уебсайта достъпен само за регистрирани потребители." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Режим на поверителност на съдържанието" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "По подразбиране" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Принудително скрито (самостоятелно)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Принудително скрито (всеки с връзката)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Принудителните режими на поверителност ще отменят избраната от потребителите поверителност." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Заглавие на страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Състояние на страницата" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Активна страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Неактивна страница (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Ще бъдат достъпни само активни страници." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Тип" + +msgid "Terms of service" +msgstr "Условия за ползване" + +msgid "Privacy" +msgstr "Поверителност" + +msgid "Contact" +msgstr "Контакти" + +msgid "Extra page" +msgstr "Допълнителна страница" + +msgid "Internal page type" +msgstr "Тип вътрешна страница" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Можете да имате няколко допълнителни страници, но само една от другите специални вътрешни типове." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Видимост на страницата" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Видима страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Скрита страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Скритите страници няма да се показват в системните менюта, но всеки може да получи достъп до нея с връзката." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Само буквено-цифрови, тирета и наклонена черта" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Пътят на файла" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Файл %f спрямо %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Мета ключови думи" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Мета Описание" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Изходен код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Без разрешение за писане в %s, ще трябва да добавите този файл с помощта на външен редактор." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Без разрешение за писане в %s ще трябва да редактирате съдържанието на този файл с помощта на външен редактор." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Взето от: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "URL адрес на връзката" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Атрибут на целевата връзка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Изберете %s, за да отворите страницата или връзката в нов прозорец." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Атрибут за връзка на връзката" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Само буквено-цифрови знаци, тирета и празни места" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s атрибут" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Икона на връзката" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Проверете <a %s> справочната икона</a> за пълния списък на поддържаните икони." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Ред на сортиране" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Показване на подредбата на страници за менюта и списъци. Използвайте \"1\" за основен приоритет." + +msgid "pages" +msgstr "страници" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Наистина ли искате да изтриете ID на страницата %s? Това не може да бъде отменено." + +msgid "Enabled image formats" +msgstr "Активирани формати на изображения" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Нерегистрирани формати на изображения няма да бъдат разрешени за качване." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Активиране на качванията" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Активирайте това, ако искате да разрешите качване на изображения. Тази настройка не засяга администраторите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Качени от Гости" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Разреши на нерегистрирани потребители да качват снимки" + +msgid "Upload user interface" +msgstr "Качване на потребителски интерфейс" + +msgid "On-page container" +msgstr "Контейнер на страница" + +msgid "route" +msgstr "Път" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Активиране на вградени кодове (за качване)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Активирайте това, ако искате да покажете вградени кодове, когато качването приключи." + +msgid "Upload threads" +msgstr "Бързина на качването" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Бързина за едновременно качване (паралелни качвания)" + +msgid "Redirect on single upload" +msgstr "Пренасочване към единично качване" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Активирайте това, ако искате да пренасочите към страницата с изображения при едно качване." + +msgid "Enable duplicate uploads" +msgstr "Активиране на дубликати" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Активирайте това, ако искате да разрешите дублиращи качвания от един и същ IP адрес в рамките на 24 часа. Тази настройка не засяга администраторите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Активиране на сваляне на изображения с дата на изтичане." + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Активирайте това, ако искате да разрешите качването с опция за автоматично изтриване." + +msgid "Auto delete guest uploads" +msgstr "Автоматично изтриване на качвания на гости" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Активирайте това, ако искате да принудите качванията на гостите да бъдат автоматично изтрити след определено време." + +msgid "Maximum image size" +msgstr "Максимален размер на изображението" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Изображенията, по-големи от този размер, ще бъдат автоматично намалени. Използвайте нула (0), за да не задавате ограничение." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Изображение Exif данни" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Пази" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Изберете настройката по подразбиране за изображение на <a %s>Exif данни</a> при качване." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Данни за изображение на Exif (настройка на потребителя)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Активирайте това, ако искате да разрешите на всеки потребител да конфигурира как ще се обработват данни Exif с изображения." + +msgid "Maximum upload file size" +msgstr "Максимален размер на файла за качване" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Максималният размер, разрешен от сървъра, е %s. Тази граница е ограничена от %u и %p (%f стойности)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Същото като \"%s\", но за гостите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Местоположение на снимката" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Относително за chevereto root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Къде да съхранявате изображенията? Относително chevereto root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Режим на съхранение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Папки с дата" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Директен" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Папките с дата създават %s структура" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Метод за преименуване на файловете" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Запази оригинала" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Смесете оригинални + произволни" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "„оригинал“ ще се опита да запази името на източника на изображение, докато „случайно“ ще генерира произволно име. „ID“ ще назове изображението точно като идентификатора на изображението." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Размер на миниатюра" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Миниатюрите ще бъдат преоразмерени до този размер" + +msgid "Medium image fixed dimension" +msgstr "Фиксиран размер на средно изображение" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Изображенията с фиксиран размер на средния размер dimMedium ще бъдат фиксирани към това измерение. Например, ако изберете \"ширина\", този размер ще бъде фиксиран и височината на изображението ще бъде автоматично изчислена" + +msgid "Medium image fixed size" +msgstr "Фиксиран размер на средно изображение" + +msgid "Width or height will be automatically calculated." +msgstr "Ширината или височината ще се изчисляват автоматично." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Водни знаци" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Активирайте това, за да поставите лого или всичко, което искате в качването на изображения." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Предупреждение: Не може да пишете в: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Превключватели на водния знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Активиране на воден знак при качвания от гости" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Активиране на воден знак при качвания от потребители" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Активиране на воден знак при качвания от администратор" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Файлове с воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Активиране на воден знак при качване на GIF изображения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Минимален размер на изображението, необходим за прилагане на воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Изображенията по-малки от минималното изискване няма да садържат воден знак. Използвайте нула (0), за да не задавате ограничение за минимален размер на изображението." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Изображение на воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Ще получите най-добри резултати с обикновени логота с капка сянка. Можете да използвате голямо изображение, ако размерът на файла не е толкова голям (препоръчително макс. Е 16 KB). Трябва да е PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Позиция на воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "ляв връх" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "ляв център" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "ляво дъно" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "централна горна част" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "център център" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "център дъно" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "десен връх" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "десен център" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "дясно дъно" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Относително положение на изображението на водния знак. Първо хоризонтално подравняване, след това вертикално подравняване." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Процент воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Процентна големина на воден знак спрямо целевата област на изображението. Стойности от 1 до 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Марж на воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Поле от границата на изображението до изображението на воден знак." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Непрозрачност на воден знак" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Непрозрачност на водния знак в крайното изображение с воден знак. Стойности от 0 до 100." + +msgid "Dashboard > Settings > Website" +msgstr "Табло за управление> Настройки> Уебсайт" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Категориите няма да работят, когато функцията на Explorer е изключена. За да върнете тази настройка, отидете на %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Наистина ли искате да изтриете %s категория? Това не може да бъде отменено." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Забележка: Изтриването на категория не изтрива изображенията, които принадлежат към тази категория." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Редактиране на категория" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Изтича" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Наистина ли искате да премахнете забраната на IP %s? Това не може да бъде отменено." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Забранен IP адрес ще бъде забранен за използване на целия уебсайт." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Редактиране на IP забрана" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Активиране на регистрациите" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Активирайте това, ако искате да разрешите на потребителите да се регистрират." + +msgid "Enable user content delete" +msgstr "Активиране на изтриването на потребителското съдържание" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Активирайте това, ако искате да разрешите на потребителите да изтриват собственото си съдържание. Тази настройка не засяга администраторите." + +msgid "Minimum age required" +msgstr "Необходима минимална възраст" + +msgid "Empty" +msgstr "Празен" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Оставете празно, за да не изисква минимална възраст за използване на уебсайта." + +msgid "Notify on user signup" +msgstr "Уведомете при регистрация от потребителя" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Активирайте това, ако искате да получавате известие по имейл за всяка нова регистрация на потребител." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Маршрутизиране на потребителско име" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Активирайте това, ако искате да използвате URL адреси %s / потребителско име вместо %s / потребител / потребителско име." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Изисква на потвърждение на имейл адреса" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Активирайте това, ако потребителите трябва да потвърдят имейл адреса си при регистрация." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Изисквайте имейл за социална регистрация" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Активирайте това, ако потребителите, използващи социални мрежи за регистриране, трябва да предоставят имейл адрес." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Потребителски аватар макс. размер на файла" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Макс. разрешен размер на файла за изображението на аватара на потребителя. (Макс. Разрешен от сървъра е %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Потребителски фон макс. размер на файла" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Макс. разрешен размер на файла за потребителско фоново изображение. (Макс. Разрешен от сървъра е %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Показва екран за съгласие преди да влезете в уебсайта. Полезно за уебсайтове за съдържание за възрастни, където непълнолетни не трябва да бъдат допускани." + +msgid "Enable consent screen" +msgstr "Активиране на екрана за съгласие" + +msgid "Consent screen cover image" +msgstr "Съгласие изображение на корицата на екрана" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Блокирайте качването на изображения от IP, ако системата забележи поведение на флууд въз основа на броя качвания за период от време. Тази настройка не засяга администраторите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Уведоми чрез email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Ако е активирана, системата ще изпрати имейл за инциденти с флууд." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Минутен лимит" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Часови лимит" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Дневен лимит" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Седмичен лимит" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Месечен лимит" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Показване на не безопасно съдържание в списъците" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Активирайте това, ако искате да показвате не безопасно съдържание в списъците. Тази настройка не засяга администраторите и може да бъде отменена от собствените настройки на потребителя." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Размиване на NSFW съдържание в списъците" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Активирайте това, ако искате да приложите ефект на размазване върху NSFW изображенията в списъците." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Показване на банери в не безопасно съдържание" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Активирайте това, ако искате да показвате банери на страници с не безопасно съдържание." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Показване на не безопасно съдържание в произволен режим" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Списък с елементи на страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Колко елемента ще се покажа на една страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Списък на режим на страници" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Безкрайно превъртане" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Класическа страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Какъв метод на страници трябва да се използва." + +msgid "Listing viewer" +msgstr "Визуализатор на списъци" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Активирайте това, за да използвате програмата за преглед на списъци, когато щракнете върху изображение." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Размер на списък с изображения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Течен" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Фиксирана" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "И двата метода използват фиксирана ширина, но течния метод използва автоматични височини." + +msgid "Album listing images requirement" +msgstr "Изискване за изображения в албума" + +msgid "explore" +msgstr "Разгледай" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Задава минималния брой изображения, необходим за показване на албуми в проучване." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Номер на колоните в списъка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Тук можете да зададете колко колони да се използват въз основа на всяко целево устройство." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Телефон" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Фаблет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Таблет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Лаптоп" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Работен плот" + +msgid "theme editing" +msgstr "редактиране на теми" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Сложи темите си в папка %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Тон" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Светъл" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Тъмен" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Основен цвят" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Шестнадесетична стойност на цвета" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Използвайте това, за да зададете основния цвят на темата. Стойността трябва да бъде в <a href=\"%s\" target=\"_blank\">шестнадесетичен формат</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Top bar color" +msgstr "Цвят на горната лента" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Черно" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "бял" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1210 +msgid "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." +msgstr "Ако зададете това на \"бяло\" горната лента и всички черни тонове ще бъдат променени на бели тонове." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Цвят на бутона на горната лента" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Син" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Зелен" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Оранжев" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Червен" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Сив" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Цвят за бутоните в горната лента като бутона „Създаване на акаунт“." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Активиране на векторното лого" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Активирайте векторното лого за висококачествено лого в устройства с висока плътност на пикселите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Векторно лого изображение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Векторна версия или логото на вашия уебсайт във SVG формат." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Растерно лого изображение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Версия на bitmap или логото на вашия уебсайт. PNG форматът се препоръчва." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Височина на логото" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Без стойност" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Използвайте това, за да зададете височината на логото, ако е необходимо." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon изображение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon изображение. Изображението трябва да има еднаква ширина и височина." + +msgid "Image load max. filesize" +msgstr "Максимално зареждане на изображението размер на файла" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Изображенията по-големи от този размер ще покажат бутон за зареждане на изображение с пълна разделителна способност." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Активиране на бутона за изтегляне" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Активирайте това, ако искате да покажете бутона за изтегляне на изображението." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Активиране на десния бутон върху изображението" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Активирайте това, ако искате да разрешите десен бутон върху страницата за преглед на изображения." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Активиране на показване на Exif данни" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Активирайте това, ако искате да покажете изображения Exif данни." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Активирайте социалното споделяне" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Активирайте това, ако искате да виждате бутони за за споделяне в социалните мрежи." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Активиране на вградени кодове (съдържание)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Активирайте това, ако искате да покажете вградени кодове за съдържанието." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Отметка за не безопасно качване на съдържание" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Активирайте това, ако искате да покажете отметка, че съдържанието е не безопасно." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Персонализиран CSS код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Поставете тук своя персонализиран CSS код. Той ще бъде поставен като <style> точно преди затварянето на </head> маркера." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Персонализиран JS код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Поставете тук своя персонализиран JS код. Той ще бъде поставен като <style> точно преди затварянето на </head> маркера." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Не използвай %s маркиране тук. Това е за обикновен JS код, а не за HTML скриптове. Ако тук използвате тагове за скриптове, ще нарушите вашия уебсайт." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Стил" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Целева страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Разделяне + изображения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +msgid "Route explore" +msgstr "Проучване на маршрут" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Изберете стила на началната страница. За да го персонализирате допълнително, редактирайте app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Изображение на корицата" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Наистина ли искате да изтриете това изображение? Това не може да бъде отменено." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Изтриване на изображението" + +msgid "Add new cover image" +msgstr "Добавете ново изображение на корицата" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Векторна версия или логото на вашия уебсайт във SVG формат (само за начална страница)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Версия на bitmap или логото на вашия уебсайт (само за начална страница). PNG форматът се препоръчва." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Това ще бъде добавено в маркера %s на началната страница. Оставете празно, за да използвате съдържанието по подразбиране." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Параграф" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Призив към действие цветен бутон" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Цвят на бутона за призоваване към действие на началната страница." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Бутон контур стил" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Активирайте това, за да използвате стила на контура на началната страница." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Призив към действие функционалност" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Задействащо устройство за задействане" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Отваряне на URL адрес" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL адрес на призив за действие" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Въведете абсолютен или относителен URL адрес" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Относителен URL адрес като %r ще бъде картографиран на %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML за призоваване към действие" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Това ще бъде добавено в <a> маркера за призив към действие. Оставете празно, за да използвате съдържанието по подразбиране." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Потребителски ID-та" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Списък на разделени със запетая ID-та на целеви потребители, за да се показват изображения на началната страница. Оставете празно или нулево, за да се показват всички скорошни изображения." + +msgid "banners" +msgstr "банери" + +msgid "Automatic updates check" +msgstr "Автоматични проверки за актуализации" + +msgid "When enabled the system will automatically check for new updates." +msgstr "При активиране системата автоматично ще проверява за нови актуализации." + +msgid "Display available updates notification" +msgstr "Показване на наличните известия за актуализации" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Активирайте това, за да се показват известия отгоре, да ви предупреждава за нови налични системни актуализации." + +msgid "Dump update query" +msgstr "Dump актуализация на заявката" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Активирайте това, ако искате автоматично да откриете и зададете правилния език за всеки потребител." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URL адреси" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Активирайте това, ако искате да използвате SEO %s URL адреси." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Минимизиране на кода" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Активирайте това, ако искате автоматично да минимизирате CSS и JS код." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Поддръжка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Когато е активиран, уебсайтът ще покаже съобщение за поддръжка. Тази настройка не засяга администраторите." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Криптер" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Този криптер се използва за преобразуване на числовия идентификатор в буквено-цифрова стойност. Той е генериран при инсталация." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Отчитане на грешки в PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Активирайте това, ако искате да отпечатате грешки, генерирани от PHP <a %s>error_reporting()</a>. Това трябва да бъде деактивирано в производството." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Ниво на грешки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Нито един" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Дневник на грешки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Грешки при печат без журнал за грешки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Грешки при печат и регистрация" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "За да конфигурирате ниво на грешка, проверете <a %s> документацията за отстраняване на грешки </a>. Нивото по подразбиране е \"Регистър на грешките\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "Маршрутизацията ви позволява да персонализирате връзки по подразбиране по маршрута в движение. Разрешени са само буквено-цифрови, тире и подчертаващи символи. Вижте нашите %s, ако искате да замените или добавите нови маршрути." + +msgid "Image routing" +msgstr "Маршрутизиране на изображения" + +#, php-format +msgid "Routing for %s" +msgstr "Маршрут за %s" + +msgid "Album routing" +msgstr "Маршрутизиране на албуми" + +msgid "Hostname" +msgstr "Име на хост" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Име на хост, върху който ще бъдат добавени подметки." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Тази настройка може да бъде отменена с %s." + +msgid "Language subdomains" +msgstr "Езикови поддомейни" + +msgid "languages" +msgstr "езици" + +msgid "Enable to use %s for %t." +msgstr "Активиране за използване на %s за %t." + +msgid "Username subdomains" +msgstr "Потребителско име поддомейни" + +msgid "user profiles" +msgstr "потребителски профили" + +msgid "Custom language strings" +msgstr "Персонализирани езикови низове" + +msgid "language strings" +msgstr "езикови низове" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Език по подразбиране" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Да се използва език по подразбиране" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Автоматичен избор на език" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Активирайте това, ако искате автоматично да откриете и зададете правилния език за всеки потребител." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Избор на език" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Активирайте това, ако искате да разрешите избор на език." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Активирани езици" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Неописаните езици няма да се използват във вашия уебсайт." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Превключете това, за да активирате или деактивирате HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Превключете това, за да активирате или деактивирате това хранилище" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Квота" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Активен" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Метод на съхранение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Локалното хранилище се използва по подразбиране или когато няма активно външно хранилище." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Ако имате нужда от помощ, проверете <a %s> документацията за съхранение </a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Редактиране на хранилището" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "От име" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Име, от което потребителите ще се получават email-ите" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Режим на имейл" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Как да изпращам имейли? SMTP се препоръчва." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP сървър и порт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP сървър" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP потребител" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP парола" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP защита" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Незащитено" + +msgid "Decode ID" +msgstr "ID за декодиране" + +msgid "Encode ID" +msgstr "ID за енкодинг" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Изпратете тестов имейл" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Използвайте това, за да проверите как се доставят вашите имейли. Препоръчваме ви да използвате %s." + +msgid "Export a user" +msgstr "Експортиране на потребител" + +msgid "Export user" +msgstr "Експортиране на потребителя" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Това ще ви позволи да изтеглите стандартна лична информация на потребителя във формат JSON." + +msgid "Regenerate external storage stats" +msgstr "Възстановете статистиката за външно съхранение" + +msgid "Storage id" +msgstr "Идент. № за съхранение" + +msgid "Regenerate" +msgstr "Повторно генериране" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Това ще пресметне сумата от всички записи на изображения, свързани с целевото външно хранилище." + +msgid "Migrate image records from one external storage to another" +msgstr "Мигрирайте записи на изображения от една външна памет към друга" + +msgid "Source storage id" +msgstr "Идент. № за съхранение" + +msgid "Target storage id" +msgstr "Идентификационен номер за съхранение" + +msgid "Migrate" +msgstr "Мигриране" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Това актуализира само базата данни. Трябва сами да прехвърлите действителните файлове в целевия контейнер за съхранение. Препоръчва се пренаписване на URL адреси. Използвайте нула (0) за локално съхранение." + +msgid "social networks" +msgstr "социални мрежи" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Необходимо е <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook приложение</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID на фейсбук апликацията" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Секретен код на фейсбук апликацията" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Необходимо е <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter приложение</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "API Ключ на Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Секретен код на Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter акаунт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Необходимо е <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google приложение</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Идент. № на клиента на Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Секретен код на Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "За това се нуждаете от <a href=\"http://vk.com/dev\" target=\"_blank\">VK приложение</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK клиентски номер" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Секретен код на VK" + +#, php-format +msgid "%s spam protection" +msgstr "%s защита срещу спам" + +msgid "user generated content" +msgstr "генерираното от потребителите съдържание" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Активирайте това, за да използвате %l за блокиране на спам на %c." + +#, php-format +msgid "%s API key" +msgstr "%s API ключ" + +msgid "user signup" +msgstr "регистрация на потребител" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "За това се нуждаете от <a href=\"%s\" target=\"_blank\">reCAPTCHA ключ</a>." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Моля, обърнете внимание, че всяка версия на reCAPTCHA изисква собствен набор от ключове. Не забравяйте да актуализирате ключовете, ако промените версиите." + +#, php-format +msgid "%s site key" +msgstr "%s ключ на сайта" + +#, php-format +msgid "%s secret key" +msgstr "%s секретен код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA праг" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Колко неуспешни опита са необходими, за да се поиска reCAPTCHA? Използвайте нула (0), за да показвате винаги reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Принуди %s на страницата за контакти" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Активирайте това, за да се показва винаги %s на страницата за контакти." + +msgid "Comments API" +msgstr "API за коментари" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API работи с %s." + +msgid "Disqus shortname" +msgstr "Disqus кратко име" + +#, php-format +msgid "%s public key" +msgstr "%s публичен ключ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Код за коментар" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook или всичко, което искате. Те ще бъдат използвани при изглед на изображение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Код на Google Анализ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics или всичко, което искате. Те ще бъдат добавени към долната част на темата." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "За документация на API проверете <a %s>документацията за API</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Ключ API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Използвайте този ключ, когато използвате <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Плъгин маршрут" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Активирайте това за показване на инструкции за плъгини на %u. Връзките към тези инструкции ще бъдат добавени към менюто %s. Тази настройка не засяга администраторите." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Използвайте това, за да зададете персонализиран URL адрес за %p. Моля, обърнете внимание, че трябва ръчно да копирате %s в този URL адрес." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Спазване на закона за бисквитките" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Активирайте това, за да се покаже съобщение, което отговаря на изискванията на законодателството на ЕС за бисквитките. Забележка: Това ви трябва само ако уебсайтът ви се хоства в ЕС и ако добавите бисквитки за проследяване." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Запази промените" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Провери за грешки, за да продължиш" + +msgid "Play GIF" +msgstr "Старт GIF" + +msgid "Load full resolution" +msgstr "Заредете пълна резолюция" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Добавено към %a и категоризирано в %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Добавено към %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Качено в %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Качено %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "По-малко данни от Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Повече данни от Exif" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Споделете изображение" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID на албума" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "В този албум" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Качвайте и споделяйте вашите изображения." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Плъзнете и пуснете навсякъде, където искате и започнете да качвате изображенията си сега. %s ограничение. Директни връзки към изображения, миниатюри на BBCode и HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Започнете да качвате" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Регистрирайте се, за да отключите всички функции" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Управлявайте съдържанието си, създавайте частни албуми, персонализирайте потребителския си профил и др." + +msgid "Sign in with your account" +msgstr "Влезте с вашия акаунт" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Нямате акаунт? <a href='%s'> Регистрирайте се</a> сега." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Излязохте" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Вие излязохте успешно, %s очакваме ви отново скоро време." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Начална страница" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Уеб Сайта е временно спрян" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Изпълняваме планирани задачи по сайта, Моля пробвайте отново след няколко минути." + +msgid "This content is password protected." +msgstr "Това съдържание е защитено с парола." + +msgid "Please enter your password to continue." +msgstr "Моля, въведете паролата си, за да продължите." + +msgid "Send" +msgstr "Изпрати" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Качване на изображения към вашия уебсайт, блог или форум е възможно след като инсталирате нашия плъгин за качване.Тои осигурява качване на изображения във всеки уебсайт чрез поставяне на бутон, който ще позволи на потребителите директно да качват изображения в нашия сайт и автоматично ще обработи кодовете, необходими за вмъкване на изображения.Всички включени функции като плъзгане и пускане, отдалечено качване, поправяне на размери на изображения и други." + +msgid "Supported software" +msgstr "Поддържан софтуер" + +msgid "supported software" +msgstr "поддържан софтуер" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Плъгинът работи във всеки уебсайт със съдържание, редактирано от потребителя и за %sv ще постави бутон за качване, който ще съответства на лентата с инструменти на целевия редактор, така че не е необходимо допълнително персонализиране." + +msgid "Add it to your website" +msgstr "Добавете го към вашия уебсайт" + +msgid "options" +msgstr "настроики" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Копирайте и поставете кода на приставката в HTML кода на уебсайта си (за предпочитане вътре в head). Има достатъчно %o, за да го приспособите по-добре към вашите нужди." + +msgid "Basic options" +msgstr "Основни опции" + +msgid "Color palette" +msgstr "Цветова палитра" + +msgid "Button color scheme" +msgstr "Цветова схема на бутон" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Вградени кодове, които ще бъдат автоматично вмъкнати в редакторското поле" + +msgid "Sibling selector" +msgstr "Селектор" + +msgid "Sibling element selector where to place the button next to" +msgstr "Селектор на близките елементи където да поставите бутона до" + +msgid "Sibling position" +msgstr "Селектор" + +msgid "After" +msgstr "След" + +msgid "Before" +msgstr "Преди" + +msgid "Position relative to sibling element" +msgstr "Позиция спрямо елемента" + +msgid "Advanced options" +msgstr "Разширени опции" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Плъгинът разполага с голям избор от допълнителни опции, които позволяват пълна персонализация. Можете да използвате персонализиран HTML, CSS, собствена цветова палитра, да зададете наблюдатели и други. Проверете %d и източника на приставки, за да получите по-добра представа за тези разширени опции." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Или нямате разрешение за достъп до тази страница или връзката е изтекла." + +msgid "Search results" +msgstr "Резултати от търсенето" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Наистина ли искате да изтриете този потребител? Това не може да бъде отменено." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Изтриване на потребител" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Дата на регистрация" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Регистрирано IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Валиден" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Баннат" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Чакащ имейл" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Очаква потвърждение" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i до %f символи<br>букви и цифри" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Автоматично изтриване на качванията" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Тази настройка ще се прилага по подразбиране за всички ваши качвания на изображения. Можете да отмените тази настройка при всяко качване." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Запазване на <a %s>Exif данни</a> при качване" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Бюлетин" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Изпращайте ми имейли с новини относно %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Настройки на съдържанието" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Показване на не безопасно съдържание в списъци (от други)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Език" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Часова зона" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Текуща парола" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Въведете текущата си парола" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Нова парола" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Потвърждение на новата парола" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Добавете парола, за да можете да влезете с вашето потребителско име или имейл." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Този потребител няма парола. Добавете такава, като използвате този формуляр." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Въведете вашата парола" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Потвърдете вашата парола" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Въведете отново вашата парола" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Качи ново изображение" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Изтриване на съществуващо изображение" + +msgid "Make my profile and identity totally private" +msgstr "Направи ми профила и самоличноста скрито" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Активирайте това, ако искате да сте като анонимен потребител" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Това е вашето истинско име, а не вашето потребителско име." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://вашиятуебсайт.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Биография" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Разкажете ни малко за вас" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Потребителят няма връзки." + +msgid "Link your account to external services to be able to login here." +msgstr "Свържете акаунта си с външни услуги, за да можете да влизате и споделяте съдържание." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Сигурни ли сте че искате да излезете %s от този акаунт?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Този акаунт е свързан към %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Сигурни ли сте че искате да прекъснете %s вашия акаунт?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Вие ще излезете и няма да можете да влезете отново във вашия акаунт използвайки %s този акаунт" + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Вашият акаунт е свързан към %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "Прекъсване" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Свързване %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Чувствайте се свободни да разгледате всички мои споделени снимки и албуми." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Бутон" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Виж всички мои снимки" + +msgid "Login" +msgstr "Влез" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Вече имате акаунт? %s" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "Повторно изпращане на активация на профила" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Ако вече сте се регистрирали, може би трябва да изисквате %s, за да активирате акаунта си." + +#, php-format +msgid "You can also %s." +msgstr "Можете също да %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Аз съм поне на %s години" + +msgid "terms" +msgstr "условия" + +msgid "privacy policy" +msgstr "политика за поверителност" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Съгласен съм с %terms_link и %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Качване на фонова снимка за профила" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Смени фона" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Фоновото изображение на профила ще бъде изтрито. Това не може да бъде отменено. Сигурни ли сте, че искате да изтриете фоновото изображение на профила?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Изтриване на фона" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Редактиране на профила" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Последовател" +msgstr[1] "Последователи" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Последвай" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Забранено вие да използвате този сайт." + +msgid "Plugin" +msgstr "Плъгин" + +#, php-format +msgid "Page %s" +msgstr "Страница %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Общи въпроси / коментари" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Жалба DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Невалидно съобщение" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Невалиден предмет" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Грешка в пощата" + +msgid "Message sent" +msgstr "Съобщението е изпратено" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Съобщението е изпратено. Ще се свържем скоро с вас." + +msgid "If you want to send a message fill the form below." +msgstr "Ако искате да изпратите съобщение, попълнете формата по-долу." + +msgid "Your name" +msgstr "Вашето име" + +msgid "Subject" +msgstr "Предмет" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Всички промени, които сте направили, няма да бъдат запазени, ако продължите." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Промените са запазени успешно." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Върнете се обратно до формата" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "продължете въпреки това" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Запазване" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Изпращане" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Потвърдете действието" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "Информация" + diff --git a/app/languages/cs.po b/app/languages/cs.po new file mode 100644 index 0000000..8124336 --- /dev/null +++ b/app/languages/cs.po @@ -0,0 +1,5356 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-09-23 13:05+0000\n" +"PO-Revision-Date: 2021-09-23 13:05+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" + +msgid "You can also %i." +msgstr "Můžete také %i." + +msgid "You can also %i or %c." +msgstr "Můžete také %i nebo %c." + +msgid "You can add more images from %i." +msgstr "Můžete přidat další obrázky z %i." + +msgid "You can add more images from %i or %c." +msgstr "Můžete přidat další obrázky z %i nebo %c." + +msgid "Enable this if you want to allow image upload from URLs." +msgstr "Zapněte tuto volbu, pokud chcete povolit nahrávání obrázků. Toto nastavení nemá vliv na administrátory." + +msgid "Note that enabling this will expose your server IP." +msgstr "Pamatujte na to, že povolením této možnosti odhalíte IP adresu svého serveru." + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Neplatný e-mail" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Neplatné uživatelské jméno" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Neplatné heslo" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Instalovaná verze je v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Nelze se připojit k %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Poslední dostupná verze je v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Je nutná aktualizace, přecházím ke stažení" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Aktualizace není nutná" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Systémové soubory jsou již aktuální" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Začínám stahovat v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Verze v%s je stažena, přecházím k rozbalování" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Pokouším se rozbalit verzi v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Rozbalování bylo dokončeno" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Přecházím k instalaci aktualizace" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Aktualizace selhala" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Probíhá aktualizace" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Chybějící %s soubor" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Neplatná informace o licenci" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Soubor nelze uložit" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Nelze rozbalit %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Nelze vytvořit %s adresář - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Nelze aktualizovat %s soubor - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Aby jste mohli pokračovat, zkontrolujte chyby ve formuláři." + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Poznámka: Tento obsah je soukromý, ale kdokoli s odkazem jej bude moci zobrazit." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Poznámka: Tento obsah je chráněn heslem. Pokud jej hodláte sdílet, nezapomeňte sdělit příjemci i heslo." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Poznámka: Tento obsah je soukromý. Pro umožnění sdílení je potřeba změnit soukromí na \"veřejné\"." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Musíte zadat název alba." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Potvrdit" + +msgid "The content has been approved." +msgstr "Obsah byl schválen." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Vyberte stávající album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Došlo k chybě. Prosím zkuste opakovat akci později." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Prosím vyberte přípustné typy souborů obrázků." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Prosím vyberte obrázek s největší %s velikostí." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profilový obrázek byl aktualizován." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Pozadí profilu bylo aktualizováno." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Pozadí profilu bylo odstraněno." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Nastala chyba při odstraňování obrázku pozadí profilu." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Hesla se neshodují" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Je dostupná aktualizace v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Je k dispozici aktualizace pro váš systém. Můžete ji automaticky stáhnout a instalovat, nebo běžte na %s a stáhněte si instalační soubor." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Poznámky k verzi této aktualizace:" + +msgid "system requirements" +msgstr "požadavky na systém" + +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "Potvrzuji, že tento server splňuje %s pro tuto aktualizaci" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Aktualizovat nyní" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Tato webová stránka používá nejnovější verzi %s" + +msgid "Please review the system requirements before proceeding" +msgstr "Než budete pokračovat, zkontrolujte systémové požadavky" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "načítání" + +msgid "Toggle select" +msgstr "Označit vybraný obrázek" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Líbí se" + +msgid "Toggle flag" +msgstr "Označit štítkem" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Uprav" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Alb" +msgstr[2] "Alb" +msgstr[3] "Alba" + +msgid "Approve" +msgstr "Schválit" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Smazat" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Zavřít" + +msgid "Previous" +msgstr "Předchozí" + +msgid "Next" +msgstr "Další" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Kopírovat obrázek do schránky" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Soubor je příliš velký." + +msgid "Invalid or unsupported file format." +msgstr "Neplatný nebo nepodporovaný formát souboru." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Některé soubory nemohly být přidány." + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "obrázek" +msgstr[1] "obrázků" +msgstr[2] "obrázků" +msgstr[3] "obrázky" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s Alb" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Obrázek byl úspěšně upraven." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "soukromý" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album úspěšně upraveno." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Neplatný klíč URL." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "URL klíč kategorie se již používá." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategorie byla úspěšně odstraněna." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Kategorie %s byla přidána." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Neplatné datum ukončení platnosti." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s je již zakázána." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s je zakázána." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP zákaz byl úspěšně odstraněn." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Prosím vyplňte všechny požadované kolonky." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Neplatná velikost úložiště. Prosím ověřte, že je ve správném formátu." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Velikost úložiště nemůže být menší než ta, kterou používáte nyní (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Neplatné URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Úložiště bylo úspěšně upraveno." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Uživatel byl úspěšně přidán." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Obsah byl smazán." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Obsah byl přesunut." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Vybrat" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Odebrat" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Obsah byl upraven." + +#, javascript-format +msgid "Import ID %s removed" +msgstr "Import ID %s byl odstraněn" + +msgid "Spam detected" +msgstr "Byl detekován spam" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "alba" +msgstr[2] "alba" +msgstr[3] "alba" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Bylo zjištěno zahlcení. Můžete nahrát pouze %limit% %content% za %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Nepojmenováno" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s obrázků" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Soukromý" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Veřejné" + +msgid "Me" +msgstr "Já" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Odkaz" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Heslo" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "zobrazení" +msgstr[1] "zobrazení" +msgstr[2] "zobrazení" +msgstr[3] "zobrazení" + +msgid "After %n %t" +msgstr "Po %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuta" +msgstr[1] "minut" +msgstr[2] "minut" +msgstr[3] "minuty" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hodina" +msgstr[1] "hodin" +msgstr[2] "hodin" +msgstr[3] "hodiny" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "den" +msgstr[1] "dnů" +msgstr[2] "dnů" +msgstr[3] "dny" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "týden" +msgstr[1] "týdnů" +msgstr[2] "týdnů" +msgstr[3] "týdny" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "měsíc" +msgstr[1] "měsíců" +msgstr[2] "měsíců" +msgstr[3] "měsíce" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "rok" +msgstr[1] "let" +msgstr[2] "let" +msgstr[3] "let" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Automaticky nemazat" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Nelze otevřít %s pro zápis" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplicitně nahráno" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Soukromé nahrávání" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "líbí se" +msgstr[1] "se líbí" +msgstr[2] "se líbí" +msgstr[3] "líbí se" + +msgid "Recent" +msgstr "Nedávné" + +msgid "Trending" +msgstr "Trendy" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top uživatelé" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Nejnovější" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Nejstarší" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Nejprohlíženější" + +msgid "Popular" +msgstr "Populární" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Nejoblíbenější" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Prozkoumat" + +msgid "Animated" +msgstr "Animované" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Hledat" + +msgid "People" +msgstr "Lidé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Obrázek" +msgstr[1] "Obrázků" +msgstr[2] "Obrázků" +msgstr[3] "Obrázky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Uřivatel" +msgstr[1] "Uživatelů" +msgstr[2] "Uživatelů" +msgstr[3] "Uživatelé" + +msgid "adult" +msgstr "dospělý" + +msgid "teen" +msgstr "dospívající" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "Obsah typu %s je zakázán" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Nelze vytvořit %s cílový adresář" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interní" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Neomezeno" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "využíváno" + +msgid "Private profile" +msgstr "Soukromý profil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekunda" +msgstr[1] "sekund" +msgstr[2] "sekund" +msgstr[3] "sekundy" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "před %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "před několika okamžiky" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Administrace" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Je k dispozici nová aktualizace pro Váš systém. Klikněte na následující odkaz %s pro stažení a instalaci této aktualizace." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Systémová databáze je zastaralá. Je potřeba spustit <a href=\"%s\">aktualizační</a> nástroj." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Webová stránka se nachází v režimu údržby. Pro změnu tohoto nastavení jděte do <a href=\"%s\">Administrace > Nastavení</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Měl by jste vypnout zobrazování PHP chyb pro přehlednější prostředí. Jděte na <a href='%s'>Systémové nastavení</a> pro změnu tohoto nastavení." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Dosud jste nezměnili výchozí nastavení e-mailu. Pro změnu tohoto nastavení jděte do <a href='%s'>Nastavení e-mailu</a>." + +msgid "There is an update available for your Chevereto based website." +msgstr "Je zde dostupná aktualizace pro vaši Chevereto webovou stránku." + +msgid "admin dashboard" +msgstr "Nástěnka admina" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Tuto aktualizaci můžete nainstalovat automaticky přímo ze svého %a nebo si ji stáhnout z %s a nainstalovat manuálně." + +#, php-format +msgid "view on %s" +msgstr "zobrazit na %s" + +msgid "cookie policy" +msgstr "zásady cookie" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Používáme naše vlastní cookies a cookies třetích stran, abychom zlepšili vaše zážitky z prohlížení a s používáním našich služeb. Pokud budete pokračovat v používání našich webových stránek, souhlasíte a přijímáte naše %cookie_policy_link." + +msgid "I understand" +msgstr "Rozumím" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Zapoměli jste heslo?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Obnovit heslo" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Znovu zaslat aktivační informace" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Přidejte vaši e-mailovou adresu." + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mail změněn" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s říká, že jste robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Neplatné uživatelské jméno nebo e-mail." + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Uživatel nemá žádnou e-mailovou adresu." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Požadavek byl zamítnut" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Pro použití této funkce si musíte svůj účet nejprve aktivovat." + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Účet již byl aktivován" + +msgid "Account banned" +msgstr "Účet zakázán" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Zkuste to prosím později. E-mail by měl dorazit do 15 minut." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Resetujte si své heslo na %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Je vyžadován souhlas na %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Vítejte do %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "E-mailová adresa již v systému existuje" + +msgid "Password required" +msgstr "Je vyžadováno heslo" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Kódy pro vložení" + +msgid "Sub albums" +msgstr "Podřízená alba" + +msgid "Info" +msgstr "info" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album hostováno v %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistiky" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Obrázky" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Alba" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Uživatelé" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Nastavení" + +msgid "Bulk importer" +msgstr "Hromadný import" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Instalovat aktualizaci" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "Zkontrolovat aktualizace" + +msgid "Contributing" +msgstr "Přispívání" + +msgid "Support" +msgstr "Podpora" + +msgid "Bug tracking" +msgstr "Nachlášení chyb" + +msgid "Documentation" +msgstr "Dokumentace" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP verze" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL verze" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Informace o MySQL serveru" + +msgid "Graphics Library" +msgstr "Grafická knihovna" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Nahraných souborů" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Zapnuto" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Vypnuto" + +msgid "Max. upload file size" +msgstr "Max. velikost nahrávaného souboru" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Max. velikost nahrávání (post size)" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Max. čas požadavků (exec, time)" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekund" +msgstr[2] "%d sekund" +msgstr[3] "%d sekundy" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Limit paměti (mem. limit)" + +msgid "Rebuild stats" +msgstr "Znovu sestavit statistiky" + +msgid "Connecting IP" +msgstr "Připojení IP" + +msgid "Not your IP?" +msgstr "Není vaše IP?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Webová stránka" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Obsah" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Stránky" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Výpisy" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Nahrávání obrázků" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorie" + +msgid "Consent screen" +msgstr "Schvalovací obrazovka" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Ochrana proti záplavě (flood)" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Šablona (theme)" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Domovská stránka" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Bannery" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Systém" + +msgid "Routing" +msgstr "Směrování" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Jazyky" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Externí úložiště" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sociální sítě" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Externí služby" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP bany" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Doplňková nastavení" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Nástroje" + +msgid "Can't delete all homepage cover images" +msgstr "Nelze odstranit všechny obrázky pozadí domovské stránky" + +msgid "Homepage cover image deleted" +msgstr "Obrázek pozadí domovské stránky byl odstraněn" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Místní" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Externí" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Vše" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "vyhledat obsah" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Přidat stránku" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Upravit stránku ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Stránka byla úspěšně přidána." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Stránka byla odstraněna." + +msgid "homepage" +msgstr "domovská stránka" + +#, php-format +msgid "Before main title (%s)" +msgstr "Před hlavním názvem (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Po \"call to action\" (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Po titulním obrázku (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Po výpisu (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Před stránkováním" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Za stránkováním" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Obsah (obrázek a album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Tabulka se sloupcem \"O ...\"" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Před komentáři" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Stránka s obrázkem" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Uvnitř prohlížeče nahoře (stránka s obrázkem)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Uvnitř prohlížeče dole (stránka s obrázkem)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Za prohlížečem obrázku (stránka s obrázkem)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Před hlavičkou (stránka s obrázkem)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Za hlavičkou (stránka s obrázkem)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Patička (stránka s obrázkem)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Stránka s albem" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Před hlavičkou (stránka s albem)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Za hlavičkou (stránka s albem)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Stránka s uživatelským profilem" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Za hlavičkou (stránka s uživatelským profilem)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Před výpisem (stránka s uživatelským profilem)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Prozkoumat stránku" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Za hlavičkou (stránka procházení)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NFSW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Neplatné jméno webové stránky" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Neplatný jazyk" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Neplatná časová zóna" + +#, php-format +msgid "Invalid value: %s" +msgstr "Neplatná hodnota: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Neplatný způsob nahrávání do úložiště" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Neplatné pojmenování nahrávaných souborů" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Neplatná šířka miniatury" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Špatná výška miniatury" + +msgid "Invalid medium size" +msgstr "Neplatná střední velikost" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Neplatná procentuální hodnota vodoznaku" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Chybná neprůhlednost vodoznaku" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Špatná šablona (téma)" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Neplatná hodnota" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Neplatný tón šablony." + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Chybná barva hlavní šablony" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Neplatná barva vrchního baru tématu." + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Neplatná velikost náhledového obrázku šablony" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Neplatné ID uživatele" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Špatný e-mailový mod" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Špatný SMTP port" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Neplatné zabezpečení SMTP" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Neplatný režim stránky" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Neplatné osobní uživatelské ID." + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Neplatná nebo vyhrazená trasa" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Neplatný režim soukromí stránky" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Neplatný režim bezpečnosti stránky" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Neplatný styl domovské stránky" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Neplatný příkaz tlačítka akce." + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Neplatný příkaz." + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Neplatný název" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Neplatný stav" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Neplatný typ" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Neplatná viditelnost" + +msgid "Invalid internal type" +msgstr "Neplatný interní typ" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Neplatný cílový atribut" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Neplatný rel atribut" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Neplatná ikona" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Neplatná URL adresa klíče" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Neplatná cesta souboru" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Neplatná URL adresa odkazu" + +msgid "Invalid user minimum age" +msgstr "Neplatný minimální věk uživatele" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Povoleny jsou pouze alfanumerické znaky, pomlčka a podtržítko" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Neplatná URL adresa" + +msgid "Routes can't be the same" +msgstr "Cesty nemůžou být stejné" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Neplatná cesta nahrávaného obrázku" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Neplatné výzva k akci URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Max. povoleno %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "%m nelze namapovat do existující složky (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Nelze namapovat %m na existující trasu (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "%m nelze namapovat k %r (kolize uživatelského jména)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Špatný SMTP server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Špatné SMTP uživatelské jméno" + +msgid "Invalid key" +msgstr "Neplatný klíč" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Tato URL adresa klíče je již používána jinou stránkou (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Tato cesta souboru je již používána jinou stránkou (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Nelze uložit obsah stránky: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Sledující" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "O webu" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID obrázku" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP adresa autora" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Zakázat IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP je již zakázána" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Datum nahrání" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Obrázek %i v %a albu" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Obrázek %i v %c kategorii" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Obrázek %i hostován v %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Přímé odkazy" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Odkaz obrázku" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL obrázku" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL miniatury" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL střední zmenšeniny" + +msgid "Full image" +msgstr "Plná velikost obrázku" + +msgid "Full image (linked)" +msgstr "Plná velikost obrázku (odkazy pro vložení)" + +msgid "Medium image (linked)" +msgstr "Střední velikost obrázku (odkazy pro vložení)" + +msgid "Thumbnail image (linked)" +msgstr "Miniatura obrázku (odkazy pro vložení)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Vyžadováno přihlášení" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP adresa je již zabanována" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Chybí hodnoty" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Neplatná úloha" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Uživatelské jméno je obsazené" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Přidat heslo nebo jiné sociální připojení před smazáním %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Přidat e-mail nebo jiné sociální připojení před smazáním %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s byl odpojen." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Testovací email z %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Toto je pouze testovací zpráva." + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Testovací email byl odeslán na %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Stahování dat %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Uživatel %s začal sledovat" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Uživatel %s přestal sledovat" + +msgid "Album cover altered" +msgstr "Obal alba změněn" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Obsah se líbí" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Obsah se nelíbí" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u se líbí váš %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u vás nyní sleduje" + +msgid "A private user" +msgstr "Soukromý uživatel" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Špatná kombinace přihlašovacího jména nebo e-mailu a hesla" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Přihlásit se" + +msgid "Moderate" +msgstr "Moderovat" + +msgid "Upload images" +msgstr "Nahrát obrázky" + +msgid "Upload plugin" +msgstr "Plugin pro nahrávání" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Výsledky vyhledávání obrázku pro výraz %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Výsledky vyhledávání alba pro výraz %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Výsledky vyhledávání uživatele pro výraz %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Účet" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Propojené účty" + +msgid "Powered by" +msgstr "Běží na systému" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Chybná doba platnosti obrázku: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Email byl odeslán %s s instrukcemi pro aktivaci tohoto emailu" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Neplatné jméno" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Neplatná webová stránka" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Neplatné heslo" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Použijte nové heslo" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Změny byly uloženy." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Heslo bylo změněno" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Heslo bylo vytvořeno." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Špatné hodnoty přihlašovacího jména nebo e-mailu" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Nastavení pro %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Musíte souhlasit s podmínkami a zásadami ochrany osobních údajů" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Pro možnost používat tuto webovou stránku vám musí být alespoň %s let." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Vytvořit účet" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Nahrát" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s Obrázků" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Výsledky pro" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Co se líbí %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Líbí se mi" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Sledující" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) alb v %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) v %w" + +msgid "Discovery" +msgstr "Objevit" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Náhodně" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Pokročilé vyhledávání" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Oznámení (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Oznámení" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Nemáte žádná oznámení" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Můj profil" + +msgid "Lights" +msgstr "Světla" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Odhlásit se" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Zaznamenali jsme pokus o změnu e-mailu vašeho <a href=\"%u\">%n</a> účtu na %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Pro dokončení musíte <a href=\"%s\">aktivovat váš e-mail.</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativně můžete zkopírovat a vložit URL adresu přímo do adresního řádku vašeho prohlížeče: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Pokud jste žádost o změnu neodesílali, stačí když budete tuto zprávu ignorovat." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Tento požadavek byl vytvořen z IP adresy: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Obdrželi jsme žádost o registraci %n účtu na %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Pro dokončení musíte <a href=\"%s\">aktivovat váš účet</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Obdrželi jsme žádost o reset hesla k vašemu <a href=\"%u\">%n</a> účtu." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Pro resetování hesla <a href=\"%s\">přejděte na tento odkaz</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Dobrý den %n, vítejte na %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Nyní, když je váš účet konečně připraven k používání, si můžete naplno užívat nahrávání obrázků, vytváření alb, nastavovat jejich soukromí a spousty dalších vlastností, které jistě brzy objevíte!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Mimochodem, zde je stránka s vaším úžasným profilem: <a href=\"%u\">%n</a>. Tak neváhejte a upravte si ji podle vašich představ. Je to jenom na vás!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Děkujeme, že jste se k nám přidali" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Tento e-mail byl odeslán od %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Chytněte a přetáhněte nebo vložte obrázky sem pro nahrání" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Zvolte obrázky k nahrání" + +msgid "browse from your computer" +msgstr "vybrat z vašeho počítače" + +msgid "add image URLs" +msgstr "přidat URL adresy obrázků" + +msgid "You can also %i or %u." +msgstr "Můžeš také %i nebo %u." + +msgid "browse from your device" +msgstr "procházet z vašeho zařízení" + +msgid "take a picture" +msgstr "pořídit fotku" + +msgid "You can also %i, %c or %u." +msgstr "Můžete také %i, %c nebo %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Upravte nebo změňte velikost libovolného obrázku kliknutím na náhled obrázku" + +msgid "Edit any image by touching the image preview" +msgstr "Upravte jakýkoli snímek tím, že se dotknete náhledu obrázku" + +msgid "your computer" +msgstr "vašeho počítače" + +msgid "You can add more images from %i or %u." +msgstr "Můžete přidat další obrázky z %i nebo %u." + +msgid "your device" +msgstr "vašeho zařízení" + +msgid "You can add more images from %i, %c or %u." +msgstr "Můžete přidat další obrázky z %i, %c nebo %u." + +msgid "Uploading %q %o" +msgstr "Nahrávání %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "kompletní" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Fronta se nahrává. Proces nahrávání by měl trvat jen několik sekund." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Nahrávání dokončeno" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Nahraný obsah byl přidán do %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Můžete %c s právě nahraným obsahem nebo %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Můžete %c s právě nahraným obsahem." + +msgid "create a new album" +msgstr "vytvořit nové album" + +msgid "move it to an existing album" +msgstr "přesunout do již existujícího alba" + +msgid "You must %s or %l to save this content into your account." +msgstr "Musíte se %s nebo %l pro uložení tohoto obsahu do svého účtu." + +msgid "create an account" +msgstr "vytvořit účet" + +msgid "sign in" +msgstr "přihlásit se" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Žádné %s nebyly nahrány" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Bohužel se vyskytly nějaké chyby a server nemohl dokončit vaše požadavky." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Vyberte kategorii" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Zatrhněte pokud obrázek není vhodný pro děti a mladistvé." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Obrázek není vhodný pro děti a mladistvé." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Nahrávám" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "nebo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "zrušit" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "zrušit zbývající" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Upozornění: Některé obrázky nelze nahrát." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "dozvědět se více" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Zkontrolujte <a data-modal=\"simple\" data-target=\"failed-upload-result\">chybovou zprávu</a> kde se dozvíte více informací." + +#, php-format +msgid "Register to get %s" +msgstr "Zaregistrujte se pro získání %s" + +msgid "reset" +msgstr "resetovat" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "zavřít" + +msgid "Note" +msgstr "Poznámka" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Než budeme moci sdílet, musíme schválit nahraný obsah." + +msgid "copy" +msgstr "kopírovat" + +msgid "insert" +msgstr "vložit" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Odstranit" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Název" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "volitelné" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Změnit velikost obrázku" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Šířka" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Výška" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Poznámka: Animované GIF obrázky se nezmění." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Automatické smazání obrázku" + +msgid "Sign up" +msgstr "Přihlásit se" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s pro zapnutí nebo vypnutí automatického mazání obrázků" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Zatrhněte pokud obrázek není vhodný pro děti a mladistvé." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Označit jako nevhodné." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Popis" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Stručný popis obrázku" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Přidat URL obrázku" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Přidejte URL obrázku zde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Vytvořit album" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Nahraný obsah bude přesunut do tohoto nově vytvořeného alba." + +msgid "existing album" +msgstr "existujícího alba" + +msgid "You can also move the content to an %a." +msgstr "Obsah můžete také přesunout do %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Pokud chcete album později upravit, musíte se nejdříve %s nebo %l." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Přesunout do alba" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Vyberte existující album k nahrání obrázků. Samozřejmě můžete také <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvořit album</a> a nahrát obrázky do něj." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Chybová zpráva" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Odkazy" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Odkaz s náhledem" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML kódy" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML obrázku" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "plná velikost obrázku s odkazem na originál" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "středně velký obrázek s odkazem na originál" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "miniatura obrázku s odkazem na originál" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "do fóra (BBCode)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBKód plné velikosti obrázku" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "Plný odkaz do diskuzního fóra." + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Kód do fóra se střední zmenšeninou obrázku a odkazem." + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "miniatura obrázku s odkazem na originál" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown kód plné velikosti obrázku" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown kód plné velikosti obrázku s odkazem" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown kód střední velikosti velikosti obrázku" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown kód náhledu obrázku s odkazem" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Všechna tato slova" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Zadejte důležitá slova: tri-colour rat terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Toto konkrétní slovo či frázi" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Zadejte přesná slova v uvozovkách: \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Žádné z těchto slov" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Vložte znaménko mínus před slova, která nechcete povolit: -rodent - \"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP adresa" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Název alba" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "přesunout do existujicího alba" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Popis alba" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Stručný popis tohoto alba" + +msgid "Album privacy" +msgstr "Soukromí alba" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Kdo může zobrazit tento obsah" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Soukromé (pouze já)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Soukromé (kdokoliv komu dáte link)" + +msgid "Private (password protected)" +msgstr "Soukromé (chráněno heslem)" + +msgid "Album password" +msgstr "Heslo alba" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Jméno" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Jméno kategorie" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL klíč" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "URL klíč kategorie" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Pouze písmena, čísla a pomlčky" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Stručný popis této kategorie" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Obrázek bez názvu" + +msgid "Mark this if the image is not safe for work" +msgstr "Označit tento obrázek, pokud není vhodný a bezpečný" + +msgid "Flag not safe" +msgstr "Označeno jako \"nevhodné\"" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Cesta" + +msgid "Local path (absolute)" +msgstr "Lokální cesta (absolutní)" + +msgid "Directory structure" +msgstr "Adresářová struktura" + +msgid "Parse top level folders as users (username)" +msgstr "Přiřadit složky nejvyšší úrovně jako uživatele (uživatelské jméno)" + +msgid "Parse top level folders as albums" +msgstr "Přiřadit složky nejvyšší úrovně jako alba" + +msgid "Don't parse folders" +msgstr "Nepřiřazovat složky" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Při přiřazení složek nejvyšší úrovně jako uživatelé budou složky druhé úrovně přiřazeny jako uživatelské alba. Přiřazení složek nejvyšší úrovně jako alba přidává tyto složky jako alba pro návštěvníky." + +msgid "Threads" +msgstr "Vlákna" + +msgid "Select number of threads" +msgstr "Vyberte počet vláken" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Toto určuje, jak intenzivní a rychlý bude proces importu. Na sdíleném serveru nepoužívejte více než %s vláken." + +msgid "You can use wildcard * characters." +msgstr "Můžete použít zástupné znaky *." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Datum platnosti" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "RRRR-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Příklad" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Do kdy bude tato IP zakázána? Zanechte pole prázdné pro trvalý zákaz." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Zpráva" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Textová zpráva, HTML nebo přesměrovat URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Stávající album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Vytvořit nové album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Jméno úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Region úložiště (Storage region)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Bucket úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Klíč" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Klíč úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Secret úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Soukromý klíč" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON klíč" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Pro toto potřebujete <a %s>service account</a>." + +msgid "Service name" +msgstr "Název služby" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Adresa URL Identity (Identity URL)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Koncový bod API Identity (Identity API endpoint)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Koncový bod API OpenStack identity (API endpoint for OpenStack identity)" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Uživatelské jméno" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Kontejner (Container)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Kontejner úložiště (Storage container)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID Nájemce (Tenant id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID účtu nájemce (Tenant id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Jméno nájemce (Tenant name)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "uživatelský účet" + +msgid "Storage endpoint" +msgstr "Koncový bod úložiště" + +msgid "Server address" +msgstr "Adresa serveru" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname nebo IP serveru s úložištěm." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Serverová cesta" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Absolutní cesta, kde budou soubory uloženy v souvislosti s přihlášením %p. Pro kořenovou (root) cestu použijte %s." + +msgid "Server login" +msgstr "Přihlášení k serveru" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Serverové heslo" + +msgid "Local path" +msgstr "Místní cesta" + +msgid "Local path where the files will be stored" +msgstr "Místní cesta, kde budou soubory uloženy" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Kapacita úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Příklad: 20 GB, 1 TB, atp." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Toto úložiště přestane být používáno jakmile bude dosaženo zvolené kapacity. Ponechte prázdné nebo nastavte 0 pokud nechcete nastavit kapacitu." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL úložiště" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Sytém namapuje obrázky v úložišti na tuto URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "zobrazit více" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Načíst více" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Vybrat vše" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Zobrazit kódy pro vložení" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Přiřadit kategorii" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Označit jako bezpečné" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Zrušit výběr" + +msgid "Create new album" +msgstr "Vytvořit nové album" + +msgid "Create sub album" +msgstr "Vytvořit podřízené album" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Sdílet" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Přihlásit se pomocí jiného účtu" + +msgid "Continue with %label%" +msgstr "Pokračovat s %label%" + +msgid "Home" +msgstr "Domů" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Zde se nenachází nic k zobrazení." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Všechny vybrané obrázky budou zařazeny do této kategorie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Nejsou zde žádné kategorie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Potvrďte, že obrázek je bezpečný" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Opravdu si přejete tento obsah označit jako bezpečný?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Potvrďte, že obrázek není bezpečný" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Opravdu si přejete tento obsah označit jako nebezpečný?" + +msgid "Confirm approval" +msgstr "Potvrďte souhlas" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "Opravdu chcete odstranit veškerý vybraný obsah? Toto nelze vrátit zpět." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Potvrďte odstranění" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Opravdu chcete odstranit tento obsah? (Nelze vrátit zpět)" + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Opravdu chcete odstranit veškerý vybraný obsah? Toto nelze vrátit zpět." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Opravdu si přejete odstranit vybraný obsah? (Nelze vrátit zpět)" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Host" + +msgid "Keyboard shortcuts" +msgstr "Klávesové zkratky" + +msgid "Private album" +msgstr "Soukromé album" + +msgid "Password protected" +msgstr "Chráněno heslem" + +msgid "Uploaded by guest" +msgstr "Nahráno návštěvníkem" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Od %s" + +msgid "Uploaded by private" +msgstr "Nahráno soukromě" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "od %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Označit obrázek jako nevhodný" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Tato stránka neexistuje" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Požadovaná stránka nebyla nalezena." + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Uživatel byl smazán" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Váš účet je téměř připraven" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "E-mail pro %s byl právě odeslán. E-mail obsahuje instrukce o tom jak aktivovat váš účet. Aktivaci je možné provést do 48 hodin. Pokud e-mailovou zprávu neobdržíte, pak prosím zkontrolujte vaši složku se spamem." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Znovu odeslat aktivaci" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Úspěšně jste změnili e-mail k vašemu účtu na %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Jdi na můj profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Odkaz k potvrzení bude zaslán na e-mail spolu s detaily k aktivaci účtu." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Vaše e-mailová adresa" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Odeslat" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "E-mail s instrukcemi jak resetovat vaše heslo byl právě odeslán na e-mailovou adresu, kterou jste uvedli při registraci. Pokud jste e-mail s instrukcemi neobdrželi, pak prosím zkontrolujte vaši složku se spamem či ostatní filtrovanou poštu." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "E-mail s instrukcemi k resetování vašeho hesla jsme již odeslali. Pokud vám nedorazil pak si prosím zkontrolujte vaši složku se spamem." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Zaslat instrukce znova." + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Chcete-li pokračovat, zadejte své uživatelské jméno nebo e-mailovou adresu. Možná budete muset zkontrolovat složku spamu nebo whitelist %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Uživatelské jméno nebo e-mailová adresa" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Vaše heslo bylo úspěšně změněno. Nyní se můžete přihlásit s vašim novým heslem." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Přihlásit se" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Vložte vaše nové heslo" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d znaků minimálně" + +msgid "Password strength" +msgstr "Síla hesla" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Znovu vyplňte nové heslo" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Na adresu %s byl zaslán email s instrukcemi pro aktivaci Vašeho účtu. Pokud jste neobdrželi žádné instrukce, zkontrolujte prosím Vaši nevyžádanou poštu nebo spamové filtry." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Tento obsah je soukromý" + +msgid "Sub album" +msgstr "Podřízené album" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Opravdu si přejete odstranit toto album a všechny obrázky do něj zařazené? (Tuto akci nelze vrátit)" + +msgid "Upload to album" +msgstr "Nahrát do alba" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Toto se vám líbí" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Přečtěte si a souhlaste s těmito podmínkami, než budete moci pokračovat:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Tato webová stránka obsahuje informace, odkazy a obrázky se sexuálním materiálem. Pokud jste mladší %s let, jestli Vás tento materiál uráží, nebo jestli je zobrazení tohoto materiálu nezákonné ve Vaší komunitě, prosím nepokračujte dál.\n\nJe mi alespoň %s let a věřím, že jako dospělý je to mé nezadatelné právo získávat/prohlížet sexuálně explicitní materiál. Přeji si získávat/zobrazovat sexuálně explicitní materiály.\n\nDomnívám se, že sexuální akty mezi dospělými nejsou nezákonné ani obscénní. Prohlížení, čtení a stahování sexuálně explicitních materiálů neporušuje standardy mé komunity, města, státu nebo země.\n\nSexuálně explicitní materiál si prohlížím pro mou osobní potřebu a nebudu tomuto materiálu vystavovat děti a mladistvé.\n\nJsem sám osobně zodpovědný(á) za poskytnutí nepravdivých informací nebo za jakékoli právní následky za prohlížení, čtení nebo stahování jakéhokoliv materiálu z této webové stránky. Navíc tyto webové stránky ani její pobočky nebudou zodpovědny za případné právní následky vyplývající z podvodného přístupu nebo používání této webové stránky.\n\nTato obrazovka představuje souhlas a právní dohodu mezi těmito webovými stránkami a Vámi a / nebo jakýkoliv podnikem, ve kterém můžete mít jakýkoli právní nebo soukromý zájem. Pokud bude některá část této smlouvy považována za nevymahatelnou prostřednictvím příslušného soudu, nebude to mít vliv na vymahatelnost ostatních částí této dohody." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Kliknutím na \"Souhlasím \" prohlašujete, že jste si přečetli a pochopili všechny výše uvedené podmínky." + +msgid "I Agree" +msgstr "Souhlasím" + +msgid "documentation" +msgstr "dokumentace" + +#, php-format +msgid "Learn about %s settings at our %d." +msgstr "Přečtěte si další informace o nastavení %s na našem %d." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "Připojovací IP adresa je určena pomocí proměnné serveru %var%. Pokud zjištěná IP neodpovídá vaší, znamená to, že váš webový server je za proxy a je potřeba vyladit váš server pro nastavení skutečné spojující IP." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Pro Nginx musíte použít %nginx%. Pro Apache, %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Ujistěte se, že tento problém řešíte, protože systém spoléhá na přesné detekce IP, aby poskytoval základní funkce a chránil před spamem, záplavami a útoky brutální silou." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Využití disku" + +msgid "Queued" +msgstr "Ve frontě" + +msgid "Working" +msgstr "Spuštěno" + +msgid "Paused" +msgstr "Pozastaveno" + +msgid "Canceled" +msgstr "Zrušeno" + +msgid "Completed" +msgstr "Dokončeno" + +#, php-format +msgid "Top level folders as %s" +msgstr "Složky nejvyšší úrovně jako %s" + +msgid "Actions" +msgstr "Akce" + +msgid "Process" +msgstr "Proces" + +msgid "Pause" +msgstr "Pauza" + +msgid "Cancel" +msgstr "Zrušit" + +msgid "Process log" +msgstr "Protokol procesu" + +msgid "Errors" +msgstr "Chyby" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Opravdu chcete odstranit import ID %s?" + +msgid "Reset" +msgstr "Resetovat" + +msgid "Resume" +msgstr "Pokračovat" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Stav" + +msgid "Run the following command to import content to Chevereto:" +msgstr "Spuštěním následujícího příkazu importujte obsah do Chevereto:" + +#, php-format +msgid "Read the %s for more information about this feature." +msgstr "Přečtěte si %s pro více informací o této funkci." + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Přidat uživatele" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Úloha" + +msgid "Manager" +msgstr "Správce" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrátor" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-mailová adresa" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Toto nastavení je vždy zakázáno při použití režimu osobní webové stránky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Přidat kategorii" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Přidat zakázanou IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Přidat úložiště" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Návrat na stránky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Název webu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Nadpis webové stránky (title)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Popis webu" + +msgid "Automatic" +msgstr "Automaticky" + +msgid "Forced" +msgstr "Vynucené" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a použije detekci HTTPS na straně serveru (doporučeno). %f bude používat protokol HTTPS bez ohledu na nastavení vašeho serveru. %d nepoužije protokol HTTPS vůbec." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Tímto se řídí pouze protokol používaný v URL adresách, nebude to vaše webové stránky přeměňovat na platné HTTPS webové stránky, pokud nebude váš server nakonfigurován pro podporu a použití protokolu HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Výchozí časové pásmo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Vyber region" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Umožňuje vyhledávat obrázky, alba a uživatele na základě daného vyhledávacího dotazu." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Umožňuje procházet veřejně nahrané obrázky. Také umožňuje procházet veřejné kategorie." + +msgid "guests" +msgstr "hosté" + +msgid "Enables explore for guests." +msgstr "Umožňuje procházet veřejně nahrané obrázky i neregistrovaným uživatelům." + +msgid "Enables to browse images randomly." +msgstr "Umožňuje prohlížet obrázky v náhodném pořadí." + +msgid "Likes" +msgstr "Líbí se" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Umožňuje uživatelům \"lajkovat\" obsah a šířit výpisy \"Nejoblíbenějších\"." + +msgid "Followers allows users to follow each other." +msgstr "Odběratelé uživatelům umožňují se navzájem sledovat." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Režim webové stránky" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Komunita" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Osobní" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Režim webové stránky můžete kdykoliv přepnout." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Cílový uživatel osobního režimu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Uživatelské ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Vaše uživatelské id je: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Číselné ID cílového uživatele pro osobním režim." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Routování osobního režimu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Vlastní cesta pro namapování /uživatelskéjméno na /cokoliv. Použijte \"/\" pro namapování na domovskou stránku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Režim soukromí webu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Soukromý režim způsobí, že stránka bude dostupná pouze registrovaným uživatelům." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Obsah soukromého módu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Výchozí" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Vynutit soukromí (jen já)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Vynutit soukromí (kdokoliv kdo má link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Vynucení soukromí ovlivní i to co měl uživatel nastaveno." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Název stránky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Stav stránky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktivní stránka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Neaktivní stránka (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Pouze aktivní stránky budou přístupné." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Typ" + +msgid "Terms of service" +msgstr "Podmínky používání služby" + +msgid "Privacy" +msgstr "Soukromí" + +msgid "Contact" +msgstr "Kontakt" + +msgid "Extra page" +msgstr "Zvláštní stránka" + +msgid "Internal page type" +msgstr "Typ interní stránky" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Můžete mít několik dalších stránek, ale pouze jeden z dalších speciálních interních typů." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Viditelnost stránky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Viditelná stránka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Skrytá stránka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Skryté stránky se nebudou zobrazovat v systémových nabídkách, ale každý k nim může přistupovat pomocí odkazu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Pouze alfanumerické znaky, pomlčky a lomítko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Cesta k souboru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "%f soubor relativní k %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta klíčová slova" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta popis" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Zdrojový kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Nemáte oprávnění k zápisu pro cestu %s. Budete muset přidat tento soubor v externím editoru." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Nemáte oprávnění k zápisu v %s. Budete muset upravit obsah tohoto souboru pomocí externího editoru." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Převzato z: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "URL odkazu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Atribut cíle odkazu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Zvolte %s pro otevření stránky nebo odkazu v novém okně." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "\"REL\" atribut odkazu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Pouze alfanumerické znaky, pomlčky a prázné mezery" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s atributy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Odkaz na ikonu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Zkontrolujte <a %s>referenční ikonu</a> pro kompletní seznam podporovaných ikon." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Pořadí řazení zobrazení" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Pořadí zobrazení stránky pro menu a výpisy. Použijte \"1\" pro nejvyšší prioritu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Opravdu chcete smazat stránku ID %s? Tato akce nelze vrátit zpátky." + +msgid "Enabled image formats" +msgstr "Povolené formáty obrázků" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Nezaškrtnuté formáty obrázkových souborů nebudou moci být nahrány." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Povolit nahrávání" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Povolte pokud chcete umožnit nahrávání. Toto nastavení nemá vliv na administrátory" + +msgid "Upload user interface" +msgstr "Rozhraní uživatelského nahrávání" + +msgid "On-page container" +msgstr "On-page kontejner" + +msgid "route" +msgstr "trasa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Nahráno hostem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Povol pokud chceš umožnit neregistrovaným uživatelům nahrávání." + +msgid "Moderate uploads" +msgstr "Moderovat nahrávání" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Povolte tuto funkci pro moderování příchozích nahrávek. Cílový obsah bude ke schválení vyžadovat moderování." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Povolit vkládací odkazy (v nahrávacím nástroji)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Povolte pokud chcete umožnit zobrazování vkládacích odkazů jakmile bude obrázek úspěšné nahraný." + +msgid "Upload threads" +msgstr "Počet vláken pro nahrávání" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Počet vláken použitých při nahrávání (souběžné nahrávání více souborů)" + +msgid "Redirect on single upload" +msgstr "Přesměrování na jednotlivé nahrání" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Povolte tuto funkci, pokud chcete přesměrovat na stránku s obrázky při jednotlivém nahrávání." + +msgid "Enable duplicate uploads" +msgstr "Povolit duplicitní nahrávání" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Zapněte tuto funkci, pokud chcete povolit duplicitní nahrávání obrázků ze stejné IP adresy v rámci 24 hodin. Toto nastavení nemá vliv na administrátory." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Povolit časové omezení pro nahrané soubory" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Aktivujte tuto funkci, pokud chcete povolit nahrávání s volbou automatického mazání." + +msgid "Auto delete guest uploads" +msgstr "Automatické mazání návštěvnických uploadů" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Při povolení budou automatické mazány návštěvnické uploady po určitém čase." + +msgid "Maximum image size" +msgstr "Maximální velikost obrázku" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Obrázky větší, než je tato velikost budou automaticky zmenšeny. Zadejte nulu (0) pokud chcete zachovat původní velikost obrázku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Exif data obrázku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Zachovat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Zvolit výchozí nastavení pro <a %s>Exif data</a> obrázku při nahrávání." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Exif data obrázku (uživ. nastavení)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Povolte, pokud chcete, aby měl každý uživatel možnost nastavit, jak bude nakládáno s EXIF daty obrázku." + +msgid "Maximum upload file size" +msgstr "Maximální velikost nahrávaného souboru" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Maximální velikost povolená serverem je %s. Tato velikost je limitována %u a %p (%f hodnoty)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Stejné jako \"%s\" ale platné pouze pro neregistrované uživatele." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Cesta k obrázku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativně k Chvereto root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Kde ukládat obrázky? Relativní k chevereto rootu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Režim ukládání" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Složky podle data" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Přímý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Složka podle data vytvoří %s strukturu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Metoda pojmenování souborů" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Originální" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Mix originál + náhodné" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Originál\" se bude snažit zachovat název zdrojového obrázku, zatímco \"náhodné \" bude generovat náhodné jméno. \"ID\" název bude stejný, jako ID obrázku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Velikost miniatury" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "MIniatury budou nastaveny na tuto velikost" + +msgid "Medium image fixed dimension" +msgstr "Střední velikost obrázku - pevný rozměr" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Střední velikost obrázku bude mít tyto rozměry. Například, pokud zvolíte \"šířku\", tento rozměr bude opraven a výška obrázku bude automaticky vypočítána." + +msgid "Medium image fixed size" +msgstr "Střední velikost obrázku - pevná velikost" + +msgid "Width or height will be automatically calculated." +msgstr "Šířka nebo výška bude automaticky vypočítána." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Vodoznaky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Aktivuj pokud chceš vložit logo nebo cokoliv jiného do nahrávaných obrázků." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Přepínač vodoznaku uživatele" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Povolit vodoznak pro soubory nahrané hostem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Povolit vodoznak pro soubory nahrané uživatelem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Povolit vodoznak pro soubory nahrané administrátorem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Přepínač vodoznaku souboru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Povolit vodoznak při nahrávání GIF obrázků" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Minimální potřebná velikost obrázku pro vložení vodoznaku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Do obrázků menších, než je tato hodnota nebude možno vložit vodoznak. Pokud zadáte nulu (0) , nebude stanoven žádný minimální limit velikosti obrázku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Soubor s vodoznakem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Nejlepší výsledky dosáhnete s hladkými logy s vrženým stínem. Můžete použít i velký obrázek ale pouze v případě, že velikost souboru není příliž velká (doporučená velikost je max.16 kb ). Soubor musí být ve formátu png." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Pozice vodoznaku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "vpravo nahoře" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "vlevo uprostřed" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "vlevo dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "uprostřed nahoře" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "uprostřed" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "uprostřed dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "vpravo nahoře" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "vpravo uprostřed" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "vpravo dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Relativní pozice vodoznaku. První hodnota je horizontální, druhá vertikální" + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Procentuální velikost vodoznaku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Procentuální velikost vodoznaku v poměru k ploše cílového obrázku. Hodnoty od 1 do 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Odsazení vodoznaku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Odsazení od okraje obrázku po vodoznak." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Průhlednost vodoznaku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Průhlednost vodoznaku vzhledem k obrázku. Hodnoty od 0 do 100." + +msgid "Dashboard > Settings > Website" +msgstr "Administrace > Nastavení > Webová stránka" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Kategorie nebudou fungovat, pokud je tato funkce průzkumníka vypnuta. Pro změnu tohoto nastavení běžte do %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Opravdu chcete odstranit tuto %s kategorii? (Tuto akci nelze vrátit zpět)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Upozornění: Odstranění kategorie nezpůsobí odstranění obrázků do ní zařazených." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Uprav kategorii" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Vyprší" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Opravdu chcete odstranit zákaz pro tuto IP %s? Tato akce nelze vrátit zpět." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Zakázaným IP adresám bude znemožněn přístup na celý tento web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Upravit IP zákaz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Povolit registrace" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Povolte, pokud chcete povolit uživatelům registraci." + +msgid "Enable user content delete" +msgstr "Povolit smazání obsahu uživatele" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Zapněte tuto funkci, pokud chcete uživatelům povolit smazat vlastní obsah. Toto nastavení nemá vliv na správce." + +msgid "Minimum age required" +msgstr "Požadavek na minimální věk" + +msgid "Empty" +msgstr "Prázdné" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Zanechte pole prázdné, pokud nevyžadujete minimální věk uživatele pro používání této webové stránky." + +msgid "Notify on user signup" +msgstr "Upozornit na registraci uživatele" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Povolte to, pokud chcete dostat e-mailové upozornění pro každou novou registraci uživatele." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Routování uživatelského jména" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Povolte pokud chcete používat URL ve formátu %s/uzivatelskejmeno namísto %s/uzivatel/username." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Je vyžadováno potvrzení e-mailu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Povolte pokud uživatelé musí potvrdit svou e-mailovou schránku během registrace." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "K přihlášení přes sociální síť je vyžadován e-mail." + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Povolte pokud uživatelé, využívající k registraci sociální sítě, budou muset také poskytnou svou e-mailovou adresu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Max. velikost souboru avatara" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Max. povolená velikost souboru obrázku avatara. (Max. velikost povolená serverem je %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Max. velikost souboru uživatelského pozadí" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Max. povolená velikost souboru obrázku pozadí. (Max. velikost povolená serverem je %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Zobrazuje schvalovací obrazovku před přístupem na tyto webové stránky. Toto je užitečné pro webové stránky s obsahem pro dospělé, který by neměl být přístupný nezletilím." + +msgid "Enable consent screen" +msgstr "Zapnout schvalovací obrazovku" + +msgid "Consent screen cover image" +msgstr "Obrázek schvalovací obrazovky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Zablokovat nahrávání obrázku pro zvolenou IP adresu a obrana proti záplavě na základě maximálního počtu nahraných souborů za časový úsek. Toto nastavení neovlivňuje administrátory." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Upozornit na e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Pokud je zapnuté, pak vás systém o pokusu o záplavu varuje e-mailem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minutový limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Hodinový limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Denní limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Týdenní limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Měsíční limit" + +#, php-format +msgid "Lock %s editing" +msgstr "Zamknout úpravy %s" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "Povolte tuto funkci, aby uživatelé nemohli změnit příznak NSFW. Pokud je funkce povolena, toto oprávnění budou mít pouze administrátoři a správci." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "V galerii vypisovat i nevhodný obsah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Povolte tuto možnost, pokud chcete zobrazit obsah, který není bezpečný v seznamech. Toto nastavení neovlivní správci a lze přepsat vlastním nastavením uživatele." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Rozostření NSFW obsahu v seznamech" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Povolte tuto možnost, pokud chcete použít efekt rozostření NSFW obrázků v seznamech." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Zobrazit bannery v nevhodném obsahu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Nastavte pokud chcete zobrazovat bannery i mezi nevhodným obsahem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Zobraz nevhodný obsah v náhodném pořadí" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Počet obrázků na stránku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Kolik položek může být zobrazeno na jedné stránce výpisu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Listovací stránkování" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Nekonečné skrolování" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klasické stránkování" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Jaká metoda stránkování má být použita?" + +msgid "Listing viewer" +msgstr "Prohlížeč seznamu obrázků" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Povolte to, chcete-li kliknutím na obrázek otevřít prohlížeč seznamu obrázků." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Velikost náhledu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Plynulý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Pevný" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Obě metody používají pevnou šířku, ale plynulá využívá proměnnou výšku." + +msgid "Album listing images requirement" +msgstr "Požadavek na seznam obrázků v albu" + +msgid "explore" +msgstr "průzkumník" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Nastavte minimální počet obrázků potřebných pro zobrazení alb v průzkumníkovi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Počet sloupců výpisu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Zde můžete nastavit, kolik sloupců se použije na základě každého cílového zařízení." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Notebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Počítač" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Vlož svoje téma (šablonu) do složky %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Tón" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Světlý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Tmavý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Hlavní barva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Hexadecimální hodnota barvy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Použijte pro nastavení barvy hlavní šablony. Hodnota musí být v <a href=\"%s\" target=\"_blank\">hex formátu</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Barva tlačítka horního baru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Modrá" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Zelená" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Oranžová" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Červená" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Šedá" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Černá" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Bílá" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Barva tlačítek na horní liště, např. jako je tlačítko \"Vytvořit účet\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Zapnout vektorové logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Zapnout vektorové logo pro vysokou kvalitu na HD displejích." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Soubor s vektorovým logem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Vektorová verze loga vaší webové stránky ve formátu SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Soubor s rastrovým logem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Rastrová verze loga vaší webové stránky, nejlépe ve formátu PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Výška loga." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Žádná hodnota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Toto použijte pro natavení výšky loga pokud je to potřeba." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon (ikonka webu)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon musí mít stejnou šířku a výšku." + +msgid "Image load max. filesize" +msgstr "Max. velikost obrázku" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "U obrázků větších, než je tento rozměr, se zobrazí tlačítko pro načtení obrázku v plném rozlišení" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Aktivovat tlačítko Stáhnout" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Povolte, pokud chcete uživatelům nechat zobrazovat tlačítko \"Stáhnout\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Povolit pravý klik myši na obrázku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Aktivujte tuto možnost, pokud chcete povolit kliknutí pravým tlačítkem myši na stránce prohlížeče obrázků." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Povolit zobrazení EXIF dat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Povolte tuto možnost, pokud chcete zobrazovat EXIF data obrázku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Povolit sdílení přes sociální sítě." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Zapněte pokud chcete povolit zobrazování tlačítek sociálních sítí u obsahu (sdílení, lajkování...)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Povolit vkládací odkazy (obsah)" + +msgid "Everybody" +msgstr "Všichni" + +msgid "Users only" +msgstr "Pouze uživatelé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Povolte pokud chcete v obsahu zobrazovat vkládací obsahy." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Zaškrtávací políčko s volbou nevhodného obsahu v nahrávacím rozhraní" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Zapněte pokud chcete uživatelům dovolit nastavování nevhodného obsahu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Vlastní CSS kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Vložte váš vlastní CSS kód zde. Bude umístěný jako <style> těsně před koncem hlavičky (</head>) html kódu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Vlastní JS kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Vložte váš vlastní JS kód zde. Bude umístěný jako <script> těsně před koncem hlavičky (</head>) html kódu." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Zde nepoužívejte značku %s. Toto je pro jednoduchý kód JS, ne pro značky skriptů HTML. Používáte-li zde značky skriptů, narušíte své webové stránky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Styl" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Vstupní stránka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Split landing + obrázky" + +#, php-format +msgid "Route %s" +msgstr "Trasa %s" + +msgid "upload" +msgstr "nahrát" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Vyberte styl domovské obrazovky. Pro přispůsobení stylu jej upravte v app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Titulní obrázek" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Opravdu chcete obrázek vymazat? Tuto akci nelze vzít zpět." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Smazat obrázek" + +msgid "Add new cover image" +msgstr "Přidat nový titulní obrázek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Toto bude přidáno dovnitř %s tagu domovské stránky. Ponechte pole prázdné pro použití výchozího obsahu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Odstavec" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Barva tlačítka \"Call to action\"" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Barva tlačítka s výzvou k akci na domovské stránce." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "okraje tlačítek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Zapněte, pokud chcete aktivovat rámeček kolem tlačítka akce na titulce" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Funkce tlačítka Call to action" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Spouštění nahrávání" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Otevřít URL adresu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Výzva k akci URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Zadat absolutní nebo relativní URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Relativní URL jako %r bude namapována na %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Výzva k akci HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Toto bude přidáno uvnitř výzvy k akci <a> tagu. Zanechte prázdné pro použití výchozího obsahu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "ID uživatele(ů)" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Seznam ID cílových uživatelů oddělených čárkami pro zobrazení jejich obrázků na domovské stránce. Chcete-li zobrazit všechny poslední obrázky, ponechte pole prázdné nebo zadejte nulu." + +msgid "Automatic updates check" +msgstr "Automatická kontrola aktualizací" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Když je tato volba povolena, umožňuje systému automaticky kontrolovat nové aktualizace." + +msgid "Display available updates notification" +msgstr "Zobrazení oznámení o dostupné aktualizaci Chevereta" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Povolte, pokud chcete zobrazit oznámení při dostupné aktualizaci Chevereta." + +msgid "Dump update query" +msgstr "Dotaz na aktualizaci výpisu" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Aktivujte tuto možnost, pokud chcete automaticky zjistit a nastavit správný jazyk pro každého uživatele." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO URL adresy pro %s" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Povolte tuto možnost, pokud chcete používat SEO URL adresy pro %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Mód údržby" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Při aktivaci se na webové stránce se zobrazí hlášení o údržbě. Toto nastavení nemá vliv na administrátory." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Kryptografická sůl" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Toto je \"salt\" (kryptografická sůl) používaný k převodu číselného ID na alfanumerický. Byl vygenerován během instalace." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Hlášení chyb PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Povolte, pokud chcete tisknout chyby generované PHP <a %s>error_reporting()</a>. Toto by mělo být ve výchozím nastavení vypnuto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Úroveň ladění" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Není" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Protokol chyb" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Vytisknout chyby bez protokolu chyb" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Vytisknout a protokolovat chyby" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Pro nastavení úrovně ladění si prohlédněte <a %s>debug documentation</a>. Výchozí hodnota je \"Error log\" (1)." + +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." +msgstr "Směrování umožňuje přizpůsobit výchozí vazby trasy za běhu. Povoleny jsou pouze alfanumerické znaky, spojovníky a znak podtržítka." + +msgid "Image routing" +msgstr "Směrování obrázku" + +#, php-format +msgid "Routing for %s" +msgstr "Směrování pro %s" + +msgid "Album routing" +msgstr "Směrování alba" + +msgid "Hostname" +msgstr "Název hostitele" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Název hostitele, ke kterému budou přidány zástupné znaky subdomény." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Toto nastavení může být přepsáno pomocí %s." + +msgid "Language subdomains" +msgstr "Jazykové subdomény" + +msgid "languages" +msgstr "jazyky" + +msgid "Enable to use %s for %t." +msgstr "Povolit použití %s pro %t." + +msgid "Username subdomains" +msgstr "Subdomény uživatelského jména" + +msgid "user profiles" +msgstr "uživatelských profilů" + +msgid "Custom language strings" +msgstr "Vlastní jazykové řetězce" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Výchozí jazyk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Výchozí jazyk pro použití" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Jazyk automaticky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Povolte, pokud chcete, aby se automaticky detekovat a nastavil správný jazyk pro každého uživatele." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Výběr jazyka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Povolte tuto možnost, pokud chcete povolit výběr jazyka." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Povolené jazyky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Nezaškrtnuté jazyky nebudou použity na vašich webových stránkách." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Přepněte pro zapnutí HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Přepněte pro povolení nebo zakázání tohoto úložiště." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kvóta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktivní" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Metoda ukládání" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Ve výchozím stavu je nataveno místní ukládání. Používá se i pokud není aktivní žádné externí uložiště." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Pokud potřebujete pomoc, zkontrolujte <a %s>dokumentaci úložiště</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Upravit úložiště." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Od jména" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Jméno odesílatele uvedeného v e-mailech odeslaných uživatelům." + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Z e-mailové adresy" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "E-mail odesílatele uvedený v e-mailech odeslaných uživatelům." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Příchozí e-mailová adresa" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Příjemce pro kontaktování v případě systémových varování." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Režim e-mailu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Způsob odesílání e-mailů. Doporučena metoda SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server a port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Uživatelské jméno na SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Heslo na SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP zabezpečení" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Nezabezpečeno" + +msgid "Decode ID" +msgstr "ID dekódování" + +msgid "Encode ID" +msgstr "ID kódování" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Odeslat testovací email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Pomocí této funkce lze otestovat, jak jsou vaše e-maily doručovány. Doporučujeme použít %s." + +msgid "Export a user" +msgstr "Exportujte uživatele" + +msgid "Export user" +msgstr "Exportovat uživatele" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "To vám umožní stahovat standardní osobní údaje uživatele ve formátu JSON." + +msgid "Regenerate external storage stats" +msgstr "Regenerovat statistiky externího úložiště" + +msgid "Storage id" +msgstr "ID úložiště" + +msgid "Regenerate" +msgstr "Regenerovat" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Tím se přepočítá součet všech záznamů obrázků přidružených k cílovému externímu úložišti." + +msgid "Migrate image records from one external storage to another" +msgstr "Migrujte záznamy obrázků z jednoho externího úložiště do jiného" + +msgid "Source storage id" +msgstr "ID zdrojového úložiště" + +msgid "Target storage id" +msgstr "ID cílového úložiště" + +msgid "Migrate" +msgstr "Migrovat" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Toto pouze aktualizuje databázi. Musíte přenést skutečné soubory do cílového úložného kontejneru. Přepis URL je důrazně doporučen. Použijte nulu (0) pro místní úložiště." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Potřebujete <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook aplikaci</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID Facebook aplikace" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Potřebujete <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> pro toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API klíč" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter účet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Potřebujete <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> pro toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client (klientské) id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Potřebujete <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> pro toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK client secret" + +#, php-format +msgid "%s spam protection" +msgstr "Ochrana proti spamu %s" + +msgid "user generated content" +msgstr "uživatelem vytvořený obsah" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Povolte tuto možnost, chcete-li pomocí %s blokovat spam na %c." + +#, php-format +msgid "%s API key" +msgstr "API klíč %s" + +msgid "user signup" +msgstr "registrace uživatele" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Potřebujete <a href=\"%s\" target=\"_blank\">reCAPTCHA klíč</a>." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Vezměte prosím na vědomí, že každá verze reCAPTCHA vyžaduje vlastní sadu klíčů. Nezapomeňte aktualizovat klíče, pokud měníte verze." + +#, php-format +msgid "%s site key" +msgstr "%s kód stránky" + +#, php-format +msgid "%s secret key" +msgstr "%s tajný kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold (práh)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Kolik neúspěšných pokusů je zapotřebí k vyžadování reCAPTCHA? Zadejte nula (0), aby se reCAPTCHA zobrazovala vždy." + +#, php-format +msgid "Force %s on contact page" +msgstr "Vynutit %s na kontaktní stránce" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Aktivací této funkce se bude %s vždy zobrazovat na kontaktní stránce." + +msgid "Comments API" +msgstr "API komentářů" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API pracuje s %s." + +msgid "Disqus shortname" +msgstr "Vaše krátké jméno na Disqus" + +#, php-format +msgid "%s public key" +msgstr "%s veřejný kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kód komentáře" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook nebo cokoliv jiného. Bude použito v zobrazení obrázku." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "Automaticky moderujte obsah pomocí služby %s." + +msgid "Automatic approve" +msgstr "Automatické schválení" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Povolte tuto funkci pro automatické schválení obsahu moderovaného touto službou." + +msgid "Block content" +msgstr "Blokovat obsah" + +msgid "Adult" +msgstr "Dospělí" + +msgid "Teen and adult" +msgstr "Dospívající i dospělí" + +msgid "Flag NSFW" +msgstr "Příznak NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Kód analytics." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics nebo cokoliv jiného. Bude přidáno do patičky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 klíč" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Použít tento klíč při použití <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Směrování Pluginu" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Toto aktivujte, aby jste zobrazili instrukce pluginu na %u. Odkaz na tyto pokyny bude přidán do nabídky %s.Toto nastavení nemá vliv na administrátory." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Toto použijte pro nastavení vlastní URL adresy pro %p. Upozorňujeme, že musíte v této URL adrese ručně zkopírovat %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Vyžádání EU cookie politiky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Povolením této možnosti se zobrazí zpráva, která splňuje požadavky kladené na cookie právních předpisů EU. Poznámka: Toto nastavení budete potřebovat pouze, pokud jsou vaše webové stránky umístěny v EU, a pokud přidáte tracking cookies." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Uložit změny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Před pokračováním zkontrolujte chyby" + +msgid "Play GIF" +msgstr "Přehrát GIF" + +msgid "Load 360° view" +msgstr "Načíst 360° pohled" + +msgid "Load full resolution" +msgstr "Načíst v plném rozlišení" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "Opravdu chcete odstranit veškerý vybraný obsah? Toto nelze vrátit zpět." + +msgid "This is the album cover" +msgstr "Toto je obal alba" + +msgid "Cover" +msgstr "Obal" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Přidáno do alba %a a zařazeno do kategorie %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Přidáno do alba %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Nahráno do alba %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Nahráno %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Méně EXIF dat" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Více EXIF dat" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Nahrajte a sdílejte obrázky." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Chyťte a přetáhněte obrázky kamkoli budete chtít a začněte ihned nahrávat. Maximální velikost souboru je %s. \nZískáte přímé odkazy, BB-kód, HTML náhledy a vaše obrázky můžete snadno sdílet na mnoha sociálních sítích." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Začít nahrávat" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Zaregistrujte se pro zpřístupnění všech funkcí" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Spravujte váš obsah, vytvářejte soukromá alba, nastavujte váš profil a spoustu dalšího." + +msgid "Sign in with your account" +msgstr "Přihlaste se pomocí svého účtu" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Nemáte účet? <a href='%s'>Registrujte se</a>." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Odhlášeno" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Odhlášení z webu %s proběhlo úspěšně. Brzy na shledanou." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Jít na úvodní stránku" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Na webové stránce probíhá údržba" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Snažíme se co nejdříve dokončit plánované úkoly údržby na naší webové stránce. Vraťte se prosím za pár minut." + +msgid "This content is password protected." +msgstr "Tento obsah je chráněn heslem." + +msgid "Please enter your password to continue." +msgstr "Pro pokračování zadejte prosím vaše heslo." + +msgid "Send" +msgstr "Odeslat" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Přidejte funkci nahrávání obrázků na své webové stránky, blog nebo fórum nainstalováním pluginu pro nahrávání. Tato funkce poskytuje možnost nahrávání obrázků z libovolné webové stránky tím, že zde umístí tlačítko, které umožní vašim uživatelům přímo odesílat obrázky do naší služby a automaticky zpracuje a vytvoří kódy potřebné pro vkládání. Všechny funkce zahrnují například funkci přetáhni a pusť, vzdálené nahrávání, změnu velikosti obrázků a další." + +msgid "Supported software" +msgstr "Podporovaný software" + +msgid "supported software" +msgstr "podporovaný software" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Plugin funguje na libovolné webové stránce s uživatelsky upravitelným obsahem a pro %sv, umístí tlačítko pro nahrání, které bude odpovídat panelu nástrojů pro cílový editor, takže není potřeba další přizpůsobení." + +msgid "Add it to your website" +msgstr "Přidejte je na své webové stránky" + +msgid "options" +msgstr "možnosti" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Zkopírujte a vložte kód pluginu do kódu HTML vašich stránek (nejlépe v sekci hlavičky webu). Existuje spousta %o, aby to lépe vyhovovalo vašim potřebám." + +msgid "Basic options" +msgstr "Základní možnosti" + +msgid "Color palette" +msgstr "Paleta barev" + +msgid "Button color scheme" +msgstr "Barevné schéma tlačítka" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Kódy pro sdílení, které budou automaticky vloženy do pole editoru" + +msgid "Sibling selector" +msgstr "Sibling selektor" + +msgid "Sibling element selector where to place the button next to" +msgstr "Sibling selektor vedle kterého se má umístit tlačítko" + +msgid "Sibling position" +msgstr "Pozice Siblingu" + +msgid "After" +msgstr "Po" + +msgid "Before" +msgstr "Před" + +msgid "Position relative to sibling element" +msgstr "Relativní pozice vedle Siblingu" + +msgid "Advanced options" +msgstr "Pokročilé možnosti" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Plugin má velkou sadu dalších možností, které umožňují úplné přizpůsobení. Můžete použít vlastní HTML, CSS, vlastní paletu barev, nastavit pozorovatele a další. Zkontrolujte %d a zdroj pluginu, abyste získali lepší představu o těchto pokročilých možnostech." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Nemáte oprávnění k prohlížení této stránky nebo odkaz ze kterého jste se zde dostali již expiroval." + +msgid "Search results" +msgstr "Výsledky vyhledávání" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Opravdu chcete odstranit tohoto uživatele? Tuto akci nelze vzít zpět." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Odstranit uživatele" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Datum registrace" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP při registraci" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Platný" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Zabanovaný" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Čeká se na e-mail" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Čeká se na potvrzení" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i do %f znaků<br>Písmena, čísla a \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Automaticky smazat nahrané obrázky" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Toto nastavení se bude vztahovat na všechny vaše nahrávané obrázky jako výchozí nastavení. Můžete přepsat toto nastavení při každém nahrávání." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Zachovat <a %s>Exif data</a> obrázku po nahrání" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Informační Bulletin" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Zasílat mi e-maily o novinkách z %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Nastavení obsahu" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Zobrazit závadný obsah v seznamech (od ostatních)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Jazyk" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Časová zóna" + +msgid "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." +msgstr "Tuto službu poskytuje %website_name%, jsme nezávislým poskytovatelem služeb. Mnohokrát děkujeme za vaši trvalou podporu." + +msgid "At %website_name% we are proudly using and supporting %software%." +msgstr "Jsme hrdí, že na naší webové stránce %website_name% používáme a podporujeme %software%." + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Současné heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Vložte své současné heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nové heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Potvrdit nové heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "K tomu aby jste byli schopni se přihlásit uživatelským jménem nebo e-mailem je zapotřebí přidat heslo." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Tento uživatel nemá uložené žádné heslo. Heslo přidejte tímto formulářem." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Vložte vaše heslo" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Potvrďte heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Napište heslo znovu" + +msgid "Upload avatar" +msgstr "Nahrát avatar" + +msgid "Make my profile and identity totally private" +msgstr "Zachovat můj profil a identitu zcela soukromou" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Povolte, pokud chcete působit jako anonymní uživatel" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Toto je vaše opravdové jméno, ne uživatelské." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://vašewebovástránka.cz" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Životopis" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Řekněte nám něco o vás..." + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Uživatel nemá žádné propojení." + +msgid "Link your account to external services to be able to login here." +msgstr "Propojte svůj účet s externími službami, abyste se mohli přihlásit a sdílet obsah." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Opravdu se chcete odpojit %s od tohoto účtu?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Tento účet je propojen s %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Opravdu chcete odpojit váš %s účet?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Budete odhlášen(a) a již se nebudete moci přihlásit ke svému účtu prostřednictvím tohoto %s účtu." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Váš účet je propojen s %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "odpojit" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Propojit %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Neváhejte a prohlédněte si všechny mé sdílené obrázky a alba." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Tlačítko" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Zobrazit všechny mé obrázky" + +msgid "Login" +msgstr "Přihlásit se" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Máte již účet? %s nyní." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "znovu poslat aktivaci účtu" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Pokud jste se již zaregistrovali, možná budete muset požádat %s o aktivaci Vašeho účtu." + +#, php-format +msgid "You can also %s." +msgstr "Můžete také %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Je mi minimálně %s let." + +msgid "terms" +msgstr "Podmínky" + +msgid "privacy policy" +msgstr "Zásady ochrany osobních údajů" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Souhlasím s %terms_link a %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Nahrát pozadí profilu" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Změnit pozadí" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Nahrát nový soubor" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Profilový obrázek pozadí bude odstraněn. Tuto akci nelze vrátit. Opravdu si přejete pokračovat?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Odstranit pozadí" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Sledující" +msgstr[1] "Sledujících" +msgstr[2] "Sledujících" +msgstr[3] "Sledující" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Sledovat" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Máte zakázáno používat tuto webovou stránku." + +msgid "Plugin" +msgstr "Plugin" + +#, php-format +msgid "Page %s" +msgstr "Stránka %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Obecné dotazy a komentáře" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Nahlásit porušení autorského zákona" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Neplatná zpráva" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Neplatný předmět" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Chyba e-mailu." + +msgid "Message sent" +msgstr "Zpráva byla odeslána" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Zpráva byla odeslána. Budeme Vás brzy kontaktovat." + +msgid "If you want to send a message fill the form below." +msgstr "Chcete-li poslat zprávu, vyplňte níže uvedený formulář." + +msgid "Your name" +msgstr "Vaše jméno" + +msgid "Subject" +msgstr "Předmět zprávy" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Všechny změny, které jste provedl(a), budou ztraceny" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Změny byly úspěšně uloženy." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Vrátit se zpět na formulář" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "přesto pokračovat" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Ukládání" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Odesílání" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Potvrdit akci" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informace" + diff --git a/app/languages/da.po b/app/languages/da.po new file mode 100644 index 0000000..62928bb --- /dev/null +++ b/app/languages/da.po @@ -0,0 +1,3259 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-04-16 20:33+0000\n" +"PO-Revision-Date: 2020-04-16 20:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Ugyldig email" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Ugyldigt brugernavn" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Ugyldigt kodeord" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Ugyldigt website mode" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Fra email" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Sender email for emails til brugerne" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Indgående email addresse" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Modtager for kontakt formularen og system opdateringer" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Website mode" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Du kan ændre hjemmesidens tilstand når som helst." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Fællesskab" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Personlig" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Kan ikke oprette forbindelse til %s" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Opdatering i gang" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Mangler %s fil" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Ugyldig licensinformation" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Ugyldig licensnøgle" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Kan ikke gemme filen" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Kan ikke downloade %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Kan ikke udtrække %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Kan ikke oprette %s katolog - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Kan ikke opdatere %s fil - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Kontroller fejlene i formularen for at fortsætte." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Indtast venligst albummets navn." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Bekræft" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Vælg eksisterende album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Der er sket en fejl. Venligt prøv igen senere." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Venligst vælg en godkendt filtype." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Venligst vælg en fil der ikke er større end %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profilbillede opdateret." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Profil bagrundsbillede opdateret." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Profil bagrundsbillede slettet." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Der er sket en fejl, og din profils bagrundsbillede er ikke blevet slettet." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Adgangskoderne matcher ikke" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Udgivelsesnote til denne opdatering:" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "eller" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "annuller" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Indlæser" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Synes godt om" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Rediger" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albummer" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Slet" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Luk" + +msgid "Previous" +msgstr "Tidligere" + +msgid "Next" +msgstr "Næste" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Billede udklipsholder" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Filen er for stor." + +msgid "Invalid or unsupported file format." +msgstr "Ugyldigt eller ikke understøttet filformat." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Nogle filer kunne ikke tilføjes." + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "billede" +msgstr[1] "billeder" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s's Albummer" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Billede redigeret succesfuldt." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "Privat" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album redigeret succesfuldt." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Ugyldig URL nøgle." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Kategori URL nøgle bruges allerede." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Ugyldig udløbsdato." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s er bannet." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Lagerkapacitet kan ikke være lavere end den aktuelle brug (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Ugyldig URL." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Indholdet er blevet slettet." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Indholdet er blevet flyttet." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Vælgt" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Fravælg" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Indholdet er blevet redigeret." + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albums" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Unavngivet" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s's billeder" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Bemærk: Dette indhold er privat, men alle med linket vil kunne se dette." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Bemærk: Dette indhold er beskyttet med adgangskode. Husk at sende indholdsadgangskoden for at dele." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Bemærk: Dette indhold er privat. Ændre privatindstillinger til \"offentlig\" for at dele" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privat" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Offentlig" + +msgid "Me" +msgstr "Mig" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Kodeord" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "visning" +msgstr[1] "visninger" + +msgid "After %n %t" +msgstr "Efter %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minut" +msgstr[1] "minutter" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "time" +msgstr[1] "timer" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dag" +msgstr[1] "dage" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "uge" +msgstr[1] "uger" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "måned" +msgstr[1] "måneder" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "år" +msgstr[1] "år" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Må ikke auto slette" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplikeret upload" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privat upload" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "synes godt om" +msgstr[1] "synes godt om" + +msgid "Recent" +msgstr "Nylig" + +msgid "Trending" +msgstr "Trending" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top brugere" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Seneste" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Ældste" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Mest sete" + +msgid "Popular" +msgstr "Populær" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Mest synes godt om" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Udforsk" + +msgid "Animated" +msgstr "Animeret" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Søg" + +msgid "People" +msgstr "Folk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Billede" +msgstr[1] "Billeder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Bruger" +msgstr[1] "Brugere" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Kan ikke oprette %s destinationsdir" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Kan ikke åbne %s til skrivning" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Internt" + +msgid "Can't insert storage." +msgstr "Kan ikke indsætte lager." + +msgid "Can't update storage details." +msgstr "Kan ikke opdatere lageroplysninger." + +#, php-format +msgid "requires %s" +msgstr "kræver %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Ubegrænset" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "brugt" + +msgid "Private profile" +msgstr "Privat profil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekund" +msgstr[1] "sekunder" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s siden" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "Få øjeblikke siden" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Administrator" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Der er en opdatering til rådighed for dit system. Gå til %s for at downloade og installere denne opdatering." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Systemdatabasen er forældet. Du skal køre <a href=\"%s\">opdaterings</a> værktøjet." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Hjemmesiden er i vedligeholdelsestilstand. For at vende tilbage til denne indstilling, skal du gå til <a href=\"%s\">Administrator> Indstillinger</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Du skal deaktivere PHP fejlrapportering for produktionsmiljø. Gå til <a href='%s'>Systemindstillinger</a> for at vende tilbage til denne indstilling." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Du har ikke ændret standard e-mail indstillinger. Gå til <a href='%s'>Email indstillinger</a> for at rette op på dette." + +msgid "There is an update available for your Chevereto based website." +msgstr "Der er en opdatering tilgængelig til din Chevereto baserede hjemmeside." + +msgid "admin dashboard" +msgstr "admin startside" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Du kan anvende denne opdatering direkte fra din %a eller downloade den fra %s og derefter installere den manuelt." + +#, php-format +msgid "view on %s" +msgstr "visning på %s" + +msgid "cookie policy" +msgstr "cookie politik" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Vi bruger vores egne og tredjeparts cookies til at forbedre din browseroplevelse og vores tjenester. Hvis du fortsætter med at bruge vores hjemmeside, forstås det, at du accepterer %cookie_policy_link." + +msgid "I understand" +msgstr "Jeg forstår" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Glemt adgangskode?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Nulstil adgangskode" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Gensend aktiveringskode" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Tilføj din email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Email opdateret" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Ugyldig Brugernavn eller Email" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Denne bruger har ingen e-mail." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Anmodning afvist" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Din konto skal aktiveres før du kan bruge denne funktion" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Denne konto er allerede aktiveret" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Vent venligst op til 15 minutter før du prøver igen. Du kan prøve igen senere." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Nulstil din adgangskode til %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Bekræftelse påkrævet til %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Velkommen til %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Denne email er allerede taget i brug" + +msgid "Password required" +msgstr "Adgangskode kræves" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Del" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Del kode" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Fuld info" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album hostet i %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistik" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Billeder" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albums" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Brugere" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Indstillinger" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto version" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "installer opdatering" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "tjek for opdateringer" + +msgid "Support" +msgstr "Support" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Brug for hjælp? Gå til %s, og du får hurtigt hjælp." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP version" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL version" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL server info" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD Library" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Fil uploads" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Aktiveret" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Deaktiveret" + +msgid "Max. upload file size" +msgstr "Maks. upload filstørrelse" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maks. post størrelse" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maks. eksekveringstid" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekunder" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Hukommelses grænse" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Links" + +msgid "Documentation" +msgstr "Dokumentation" + +msgid "Changelog" +msgstr "Seneste nyt" + +msgid "Bug tracking" +msgstr "Fejlfinding" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Hjemmeside" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Indhold" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Sider" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Lister" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Billede upload" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorier" + +msgid "Consent screen" +msgstr "Samtykke skærm" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Flood beskyttelse" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Startside" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Reklamer" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "System" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Sprog" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Eksternt lager" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sociale netværk" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Eksterne tjenester" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP ban" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Yderligere indstillinger" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Værktøj" + +msgid "Can't delete all homepage cover images" +msgstr "Kan ikke slette alle baggrundsbilleder fra startsiden" + +msgid "Homepage cover image deleted" +msgstr "Baggrundsbillede slettet fra startsiden" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokal" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Eksternt" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Alle" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "søg indhold" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Tilføj side" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Rediger side ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Denne side er korrekt tilføjet" + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Denne side er slettet" + +msgid "homepage" +msgstr "startside" + +#, php-format +msgid "Before main title (%s)" +msgstr "Før hovedtitel (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Efter opfordring til handling (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Efter cover (%s)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Ugyldig hjemmeside navn" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Ugyldigt sprog" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Ugyldig tidszone" + +#, php-format +msgid "Invalid value: %s" +msgstr "Ugyldig værdi: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Ugyldig upload lagertilstand" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Ugyldig upload filnavngivning" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Ugyldig minaturebillede bredde" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Ugyldig miniature højde" + +msgid "Invalid medium size" +msgstr "Ugyldig mellemstørrelse" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Ugyldig vandmærke procent" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Ugyldig vandmærke opacity" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Ugyldig tema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Ugyldig værdi" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Ugyldig tema tone" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Ugyldig bruger id" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Ugyldig email indstilling" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Ugyldig SMTP port" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Ugyldig SMTP sikkerhed" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Ugyldig hjemmeside style" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Ugyldig hjemmeside call to action knap farve" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Ugyldig hjemmeside call to action funktion" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Ugyldig titel" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Ugyldig status" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Ugyldig type" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Ugyldig synlighed" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Ugyldig URL" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Ugyldig billede upload sti" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maks tilladt %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Ugyldig SMTP server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Ugyldig SMTP brugernavn" + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Følger" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Om" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Billede ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Uploader IP" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Upload dato" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Billede %i i %a album" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Billede %i i %c kategori" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Billede %i hostet i %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direkte links" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Billede link" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Billede URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Miniature URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Mellem URL" + +msgid "Full image" +msgstr "Fuld billede" + +msgid "Full image (linked)" +msgstr "Fuld billede (linked)" + +msgid "Medium image (linked)" +msgstr "Mellem billede (linked)" + +msgid "Thumbnail image (linked)" +msgstr "Miniature billede (linked)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Login påkrævet" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Mangler værdier" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Brugernavn er allerede brugt" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Tilføj en adgangskode eller en anden social forbindelse, før du sletter %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Tilføj en e-mail eller en anden social forbindelse, før du sletter %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s er blevet afbrudt." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Bruger %s fulgt" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Bruger %s følges ikke" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Synes godt om indhold" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Synes godt om fjernet på indhold" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u synes godt om dit %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u følger dig nu" + +msgid "A private user" +msgstr "En privat bruger" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Forkert Brugernavn eller Email adgangskode kombination" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Log ind" + +msgid "Upload images" +msgstr "Upload billeder" + +msgid "Upload plugin" +msgstr "Upload plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Billede søgeresultater for %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Album søgeresultater for %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Bruger søgeresultater for %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Konto" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Tilknyttet kontoer" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Ugyldig billedudløb: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "En email er blevet sendt til %s med instruktioner for at aktivere denne email" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Ugyldigt navn" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Ugyldig hjemmeside" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Forkert adgangskode" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Brug en ny adgangskode" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Ændringerne er blevet gemt." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Adgangskoden er blevet ændret" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Adgangskoden er blevet oprettet." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Forkert Brugernavn eller Email" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Indstillinger for %s" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Du skal være mindst %s år gammel for at kunne bruge denne hjemmeside." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Opret en bruger" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Upload" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s's Billeder" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultater for" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Synes godt om af %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Synes godt om" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Følgere" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albums på %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) på %w" + +msgid "Discovery" +msgstr "Opdagelse" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Avanceret søgning" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Tilfældig" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Meddelelser (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Notifikationer" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Du har ingen notifikationer :(" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Min Profil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Log ud" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Vi har modtaget en anmodning om at ændre e-mailen til din <a href=\"%u\">%n</a> konto på %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "For at fuldføre processen skal du <a href=\"%s\">aktivér din email</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativt kan du kopiere og indsætte webadressen i din browser: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Hvis du ikke har til hensigt, ignorerer du bare denne meddelelse." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Denne anmodning blev foretaget fra IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Vi har modtaget en anmodning om at registrere %n konto på %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "For at fuldføre processen skal du <a href=\"%s\">aktivér din konto</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Vi har modtaget en anmodning om at nulstille adgangskoden til din <a href=\"%u\">%n</a> konto." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "For at nulstille din adgangskode <a href=\"%s\">følg dette link</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hej %n, velkommen til %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Nu hvor din konto er klar, kan du nyde at uploade dine billeder, oprette album og indstille privatlivets fred for dit indhold samt mange flere seje ting, du vil opdage." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Forresten, her har du din helt egen fantastisk profilside: <a href=\"%u\">%n</a>. Gå videre og tilpas det, det er din!. :)" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Tak for tilmelding" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Denne email blev sendt fra %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Træk og slip eller indsæt billeder her for at uploade" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Vælg de billeder, der skal uploades" + +msgid "browse from your computer" +msgstr "vælge fra din computer" + +msgid "add image URLs" +msgstr "tilføje billede webadresser" + +msgid "You can also %i or %u." +msgstr "Du kan også %i eller %u." + +msgid "browse from your device" +msgstr "gennemse fra din enhed" + +msgid "take a picture" +msgstr "tag et billede" + +msgid "You can also %i, %c or %u." +msgstr "Du kan også %i, %c eller %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Rediger eller skalere et billede ved at klikke på billedeksemplet" + +msgid "Edit any image by touching the image preview" +msgstr "Rediger et billede ved at trykke på billedeksemplet" + +msgid "your computer" +msgstr "din computer" + +msgid "You can add more images from %i or %u." +msgstr "Du kan tilføje flere billeder fra %i eller %u." + +msgid "your device" +msgstr "din enhed" + +msgid "You can add more images from %i, %c or %u." +msgstr "Du kan tilføje flere billeder fra %i, %c eller %u." + +msgid "Uploading %q %o" +msgstr "Uploader %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "færdig" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Køen bliver uploadet, det tager kun få sekunder at fuldføre." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Upload gennemført" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Uploadet indhold tilføjet til %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Du kan %c med indholdet lige uploadet eller %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Du kan %c med indholdet lige uploadet." + +msgid "create a new album" +msgstr "opret et nyt album" + +msgid "move it to an existing album" +msgstr "flyt det til et eksisterende album" + +msgid "create an account" +msgstr "opret en konto" + +msgid "sign in" +msgstr "log ind" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Ingen %s er blevet uploadet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Der er sket nogle fejl og systemet kunne og behandle deres amodning." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Vælg kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Markér dette hvis billedet ikke er familievenlig" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Ikke familievenlig billede" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Uploader" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Annullere resterende" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Bemærk: Nogle billeder kunne ikke uploades." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "se mere" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Check <a data-modal=\"simple\" data-target=\"failed-upload-result\">fejl rapporten</a> for mere information." + +#, php-format +msgid "Register to get %s" +msgstr "Tilmeld dig for at få %s" + +msgid "reset" +msgstr "nulstil" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "luk" + +msgid "copy" +msgstr "kopier" + +msgid "insert" +msgstr "indsæt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Fjern" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Rediger billede" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Titel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "valgfri" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Ændre størrelsen på billedet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Bredde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Højde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Bemærk: Animerede GIF billeder kan ikke skaleres" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Automatisk slet billede" + +msgid "Sign up" +msgstr "Tilmeld" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s 5 for at kunne tilpasse eller deaktivere automatisk sletning af billede." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Markér dette, hvis billedet ikke er familievenligt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Markér som usikker" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Beskrivelse" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Kort beskrivelse af dette billede" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Tilføg billede URLs" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Tilføj billede URLs her" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Opret album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Flyt til album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Vælg et eksisterende album for at flytte indholdet. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">lave et nyt album</a> of flytte indholdet dertil." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Fejl rapport" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Viewer links" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML koder" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML billede" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML fuld link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML medium linked" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML miniature linked" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBKoder" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode fuld" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode fuld link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode medium link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBKode miniature linked" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Alle disse ord" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Album navn" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Albumbeskrivelse" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Kort beskrivelse af dette album" + +msgid "Album privacy" +msgstr "Albums privatliv" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Hvem kan se dette indhold" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privat (Kun mig)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privat (alle med linket)" + +msgid "Private (password protected)" +msgstr "Privat (adgangskode beskyttet)" + +msgid "Album password" +msgstr "Album adgangskode" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Navn" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategori navn" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL nøgle" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategori URL nøgle" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Kun bogstaver, tal og bindestreger" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Kort beskrivelse af denne kategori" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Unavngivet billede" + +msgid "You can use wildcard * characters." +msgstr "Du kan bruge wildcard * tegn." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Udløbsdato" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Eksempel" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Besked" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Eksisterende album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "opret nyt album" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Brugernavn" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "Se mere" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Indlæs mere" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Vælg alt" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Nulstil valg" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Få integrer koder" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Marker som sikker" + +msgid "Create new album" +msgstr "Opret nyt album" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Log ind med en anden konto" + +msgid "Home" +msgstr "Hjem" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Der er ikke noget at se her." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Rediger billede detaljer" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Rediger albummets detaljer" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Alle billederne vil blive flyttet til denne nye album. Du kan også flytte alle billederne til en <a class=\"modal-switch\" data-switch=\"move-existing-album\">eksisterende album</a>" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Vælg et eksisterende album for at flytte billedet. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">lave et nyt album</a> og flytte billedet dertil." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Vælg et eksisterende album for at flytte billederne. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">lave et nyt album</a> og flytte billederne detil." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Der er ingen kategorier." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Bekræft marker indhold som sikker" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Vil du virkelig gerne markere indholdet som sikkert?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Bekræft marker indhold som usikre" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Vil du virkelig gerne markere indholdet som usikkert?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Bekræft sletning" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Vil du virkelig gerne slette indholdet? Dette kan ikke fortrydes." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Vil du virkelig gerne slette alt det valgte indhold? Det kan ikke fortrydes.." + +msgid "Fullscreen" +msgstr "Fuld skærm" + +msgid "Exit fullscreen" +msgstr "Luk fuld skærm" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Gæst" + +msgid "Keyboard shortcuts" +msgstr "Tastaturgenveje" + +msgid "Uploaded by guest" +msgstr "Uploadet af gæst" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Fra %s" + +msgid "Uploaded by private" +msgstr "Uploadet af privat" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "af %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Skift usikre flag" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Denne side findes ikke" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Den anmodet side er ikke blevet fundet" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Søg noget andet" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Brugeren er blevet slettet" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Din bruger er næsten klar" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "En email er blevet sendt til %s med instrukser til hvordan du skal aktivere din bruger. Aktivationslinket er kun gyldig de næste 48 timer. Hvis du ikke modtager nogle instrusker anbefaler vi at du prøver at checke din junk eller spam filtrer." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Gensend aktivering" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Du har successfuldt opdateret din kontos email til %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Go til min profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Et bekræftelselink vil blive sendt til denne e-mail med detaljer for at aktivere din konto." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Din email addresse" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Indsend" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "En email med instruktioner til hvordan du nulstiller deres kodeord er blevet sendt til det registreret email addresse. Hvis du ikke modtager instrukserne, skal du checke din junk og spam filtrer." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "En email er blevet sendt til %s med instrukser til hvordan du skal aktivere din konto.n\\Hvis du modtager instrukserne, check din junk og spam filtrer." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Gensend instrukser" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Brugernavn eller Email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Dit kodeord er blevet ændret. Du kan logge ind med dit nye kodeord." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Log ind nu" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Indtast dit nye kordord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d tegn min" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Genindtast dit nye kodeord." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "En email til %s er blevet sendt med instruktioner for at aktivere din konto. Hvis du ikke modtager vejledningen, skal du prøve at kontrollere dine junk eller spamfiltre." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Indholdet er privat" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Er du sikker på du vil slette dette album og alle dets billeder? Dette kan ikke fortrydes." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Slet album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Du kan lide dette" + +msgid "Upload to album" +msgstr "Upload til album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Album link" + +msgid "I Agree" +msgstr "Jeg er enig" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Plads brugt" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rolle" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Email addresse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Tilføj kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Sidens navn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Sidens doctitle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Sidens beskrivelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Standard tidszone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Vælg region" + +msgid "guests" +msgstr "gæster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Bruger ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Privat tilstand vil gøre at hjemmesiden kun er tilgængelig for registrerede brugere." + +msgid "Privacy" +msgstr "Privatliv" + +msgid "Contact" +msgstr "Kontakt" + +msgid "pages" +msgstr "sider" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Gæste uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Aktiver dette hvis du vil tillade ikke registrerede bruger at uploade." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Billede Exif data" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Behold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Billede sti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativt til Chevereto root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Hvor skal billederne gemmes? Relativt til Cheverto root." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Lagertilstand" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datomapper" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direkte" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datofolder skaber %s struktur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Fil navngivnings metode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Miniature størrelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Miniaturene vil blive fastsat til denne størerlse" + +msgid "Dashboard > Settings > Website" +msgstr "Dashboard > Indstillinger > Hjemmeside" + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Bemærk: Sletning af en kategori sletter ikke de billeder, som hører til denne kategori." + +msgid "Minimum age required" +msgstr "Mindste alder kræves" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Bloker billede upload per IP hvis systemet opdager suspekt opførelser baseret på det tilladt antal uploads per time. Denne indstilling har ikke indflydelse på administratorer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Anmeld til email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Hvis aktiveret vil system sende en email i tilfælde af suspekt opførelse (DDoS)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Grænse per minut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Grænse per time" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Grænse per dag" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Grænse per uge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Grænse per uge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Hvor mange elementer der skal vises per side." + +msgid "explore" +msgstr "udforsk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Put dine temaer i %s folderen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Coverbillede" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Vil du virkelig slette dette billeder? Du kan ikke fortryde dette." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Slet billede" + +msgid "Add new cover image" +msgstr "Tilføj nyt coverbillede" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Vektor version eller dit website logo i SVG format (kun til hjemmeside)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Bitmap version eller dit website logo (kun til hjemmesiden). PNG format anbefales." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Dette vil blive tilføjet inde i hjemmesiden %s tag. Lad det være tomt for at bruge standardindhold." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Afsnit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Krypter salten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Denne salt anvendes til at konvertere numeriske ID til alfanumeriske. Det blev genereret ved installationen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Ingen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Standardsprog" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Standardsprog der skal bruges." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automatiske sprog" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Fra navn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Afsender navn for e-mails sendt til brugerne." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Email tilstand" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Hvordan vil du sende emails? SMTP anbefalet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server og port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP brugernavn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP kodeord" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP sikkerhed" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Usikret" + +msgid "social networks" +msgstr "sociale netværk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Du har brug for en <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for dette." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Du skal bruge en <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for det." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter konto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Du har brug for en <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for dette." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "google klient ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google klient secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kommentar kode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook - hvadend du vil. Dette vil blive brugt i billede visning." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics kode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics eller hvad end du vil. Det vil blive tilføjet til temaets footer." + +msgid "Plugin route" +msgstr "Plugin rute" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Aktivér dette for at vise plugin instruktioner på %u. Et link til disse instruktioner tilføjes til menuen %s. Denne indstilling påvirker ikke administratorer." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Brug dette til at angive en brugerdefineret URL for %p. Bemærk venligst, at du skal manuelt replikere %s i denne webadresse." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Gem ændringer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Se fejlene før de fortsætter." + +msgid "Play GIF" +msgstr "Afspil GIF" + +msgid "Load full resolution" +msgstr "Indlæs billedet i fuld opløsning" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Tilføjet til %a og kategoriseret i %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Tilføjet til %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Uploadet til %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Uploaded %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Skjul Exif data" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Vis Exif data" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Del billede" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "I dette album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Upload og del dine billeder." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Træk og slip hvor som helst du vil, og start upload af dine billeder nu. %s grænse. Direkte billede links, BBCode og HTML thumbnails." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Start upload" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Tilmeld dig for at låse op for alle funktioner" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Administrer dit indhold, opret privat album, tilpas din profil og meget mere." + +msgid "Sign in with your account" +msgstr "Log ind med din konto" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Har du ikke en konto? <a href='%s'>Opret</a> nu." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Logget ud" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Du er blevet logget ud %s. Vi håber vi ser dig snart igen." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Gå til hjemmesiden" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Hjemmesiden er under vedligeholdelse" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Vi udfører planlagte vedligeholdelsesopgaver på hjemmesiden. Venligst kom tilbage igen senere." + +msgid "This content is password protected." +msgstr "Dette indhold er beskyttet med adgangskode." + +msgid "Please enter your password to continue." +msgstr "Indtast venligst dit adgangskode for at fortsætte." + +msgid "Send" +msgstr "Send" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Tilføj billede upload til dit websted, blog eller forum ved at installere vores upload plugin. Det giver billede uploading service til enhver hjemmeside ved at placere en knap, der gør det muligt for dine brugere at uploade billeder direkte til vores server, og det vil automatisk håndtere de koder, der er nødvendige for indsættelse. Alle funktioner inkluderet som træk og slip, fjernopload, billede skalering og meget mere." + +msgid "Supported software" +msgstr "Understøttet software" + +msgid "supported software" +msgstr "understøttet software" + +msgid "Add it to your website" +msgstr "Tilføj det til din hjemmeside" + +msgid "options" +msgstr "muligheder" + +msgid "After" +msgstr "Efter" + +msgid "Before" +msgstr "Før" + +msgid "Advanced options" +msgstr "Avancerede indstillinger" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Enten har du ikke tilladelse til at tilgå denne side, eller er siden udløbet." + +msgid "Search results" +msgstr "Søgeresultater" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Vil du virkelig gerne slette denne bruger? Dette kan ikke fortrydes." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Slet bruger" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Registrerings dato" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Registrerings IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Gyldig" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Bandlyst" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Afventer email" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Afventer konfimering" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Slet automatisk uploads" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Denne indstilling gælder som standard for alle dine billede uploadere. Du kan tilsidesætte denne indstilling på hver upload." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Gem billede <a %s>Exif data</a> under upload" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Nyhedsbrev" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Send mig e-mails med nyheder om %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Indholdsindstillinger" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Vis ikke sikkert indhold i fortegnelser (fra andre)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Sprog" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Tidszone" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Nuværende kodeord" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Indtast dit nuværende kodeord" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nyt kodeord" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Bekræft deres nye kodeord" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Tilføj et kodeord for at kunne login med dit brugernavn eller dit email." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Denne bruger har ikke et kodeord. Tilføj et med denne formel." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Indtast dit kodeord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Bekræft kodeord" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Genindtast dit kodeord" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Upload nyt billede" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Slet eksisterende billede" + +msgid "Make my profile and identity totally private" +msgstr "Gør min profil og identitet helt privat" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Aktivér dette, hvis du vil fungere som en anonym bruger" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Dette er dit rigtige navn, ikke deres brugernavn." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://dinhjemmeside.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Om mig" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Fortæl os lidt om dig selv" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Brugeren har ikke nogen forbindelser" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Vil du virkelig afbryde %s fra denne konto?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Denne konto er forbundet med %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Vil du virkelig fjerne tilknytningen til din %s konto?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Du vil blive logget ud, og du vil ikke kunne logge ind med din %s konto." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Din konto er tilknyttet til %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "Afbryd forbindelse" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Forbind %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Du er velkommen til at gennemse og opdage alle mine delte billeder og albums." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Knap" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Vis alle mine billeder" + +msgid "Login" +msgstr "Log på" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Har du allerede en bruger? %s nu." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "gensend konto aktivering" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Hvis du allerede har tilmeldt dig, skal du anmode om at %s for at aktiveret din konto." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Jeg er mindst %s år gammel" + +msgid "terms" +msgstr "betingelser" + +msgid "privacy policy" +msgstr "Fortrolighedspolitik" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Jeg er enig i %terms_link and %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Upload profil baggrundsbillede" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Ændre baggrund" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Dette baggrundsbillede vil blive slette. Dette kan ikke fortrydes. Er du sikker på at du vil slette dit profils baggrundsbillede?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Slet baggrund" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Rediger profil" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Følger" +msgstr[1] "Følgere" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Følg" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Du er bannet at bruge denne hjemmeside." + +msgid "Plugin" +msgstr "Plugin" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Generelt spørgsmål/kommentarer" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA klager" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Ugyldig besked" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Ugyldig emne" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Mail fejl" + +msgid "Message sent" +msgstr "Besked sendt" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Besked sendt. Vi kontakter dig hurtigst muligt." + +msgid "If you want to send a message fill the form below." +msgstr "Hvis du vil kontakte os, skal du udfylde formularen herunder." + +msgid "Your name" +msgstr "Dit navn" + +msgid "Subject" +msgstr "Emne" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Alle ændringerne du har lavet vil gå tabt" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Ændringerne er blevet gemt" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Gå tilbage til formularen" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "fortsæt alligevel" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Gemmer" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Sender" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Bekræft handling" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "information" + diff --git a/app/languages/de.po b/app/languages/de.po new file mode 100644 index 0000000..53dc0fa --- /dev/null +++ b/app/languages/de.po @@ -0,0 +1,5440 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-01-20 12:54+0000\n" +"PO-Revision-Date: 2021-01-20 12:54+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Ungültige E-Mail-Adresse" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Ungültiger Benutzername" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Ungültiges Passwort" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Ungültiger Modus der Internetseite" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Absender E-Mail-Adresse" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Absenderadresse für E-Mail-Kontakt mit Benutzern." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Eintreffende E-Mail Adresse" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Empfänger E-Mail-Adresse für Kontaktanfragen und Systemmeldungen." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Modus der Internetseite" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Sie können den Modus der Internetseite jederzeit wechseln." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Community" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Privat-Modus" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Installierte Version: v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Es kann keine Verbindung zu %s aufgebaut werden" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "v%s ist die aktuellste verfügbare Version" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Update notwendig, Download wird ausgeführt" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Kein Update notwendig" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "System-Dateien sind bereit zum Update" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Starte Download der Version v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s wurde heruntergeladen, Entpacken wird fortgeführt" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Versuche v%s zu entpacken" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Entpacken abgeschlossen" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Installation des Updates wird fortgeführt" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Update fehlgeschlagen" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Update in Arbeit..." + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Datei %s fehlt" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Ungültige Lizenz-Information" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Ungültiger Lizenz-Schlüssel" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Speichern nicht möglich" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "%s kann nicht heruntergeladen werden" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "%s kann nicht entpackt werden" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Verzeichnis %s kann nicht erstellt werden - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Datei %s kann nicht aktualisiert werden - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Beachten Sie die angezeigten Fehler im Formular, bevor Sie fortfahren." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Sie müssen einen Namen für das Album eingeben." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Bestätigen" + +msgid "The content has been approved." +msgstr "Dieser Inhalt wurde freigeschaltet." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Wähle ein bestehendes Album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Bitte wählen Sie ein gültiges Dateiformat." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Bitte wählen Sie ein Bild mit höchstens %s Dateigröße." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profilbild aktualisiert." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Hintergrundbild aktualisiert." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Hintergrundbild gelöscht." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Fehler beim Löschen des Hintergrundbildes." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Passwörter stimmen nicht überein" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Update v%s verfügbar" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Es steht ein Update für Ihr System zur Verfügung. Sie können das Update automatisch herutnerladen und installieren oder unter %s einen manuellen Download der Datei starten." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Release-Notes für das Update:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Jetzt updaten" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "oder" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "Abbrechen" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Die Internetseite läuft mit der aktuellsten %s Version." + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Laden" + +msgid "Toggle select" +msgstr "Markieren umschalten" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Like" + +msgid "Toggle flag" +msgstr "Jugendfrei-Markierung umschalten" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Bearbeiten" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Alben" + +msgid "Approve" +msgstr "Freischalten" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Löschen" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Schließen" + +msgid "Previous" +msgstr "Voherige" + +msgid "Next" +msgstr "Nächste" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Bild in Zwischenablage" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Die Datei ist zu groß." + +msgid "Invalid or unsupported file format." +msgstr "Ungültiges oder nicht unterstütztes Dateiformat." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Einige Dateien konnten nicht hinzugefügt werden" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "Bild" +msgstr[1] "Bilder" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%ss Alben" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Das Bild wurde erfolgreich bearbeitet." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "Privat" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Das Album wurde erfolgreich bearbeitet." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Ungültiger URL-Schlüssel." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Der URL-Schlüssel der Kategorie wird bereits verwendet." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategorie wurde gelöscht." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Kategorie \"%s\" hinzugefügt." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Ungültiges Ablaufdatum." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP-Adresse %s wurde bereits gesperrt." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP-Adresse %s gesperrt." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP-Bann wurde erfolgreich gelöscht." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Bitte füllen Sie alle notwendigen Felder aus." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Ungültiger Wert für die Speicherkapazität. Bitte geben Sie einen gültigen Wert an." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Die Speicherkapazität darf den aktuellen Verbrauch nicht unterschreiten (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Ungültige URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Datenspeicher erfolgreich bearbeitet." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Benutzer wurde hinzugefügt." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Der Inhalt wurde gelöscht." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Der Inhalt wurde verschoben." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Markieren" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Demarkieren" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Der Inhalt wurde bearbeitet." + +#, javascript-format +msgid "Import job ID %s added successfully, you can process the import now" +msgstr "Import mit der Job-ID %s wurde erfolgreich hinzugefügt. Sie können den Import nun verarbeiten." + +msgid "Select number of threads" +msgstr "Anzahl der Threads auswählen" + +#, javascript-format +msgid "Import job ID %s is being processed now" +msgstr "Import mit der Job-ID %s wird verarbeitet" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "Import mit der ID %s entfernt" + +msgid "Spam detected" +msgstr "Spam entdeckt" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "Album" +msgstr[1] "Alben" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Spam erkannt. Sie können nur %limit% %content% in %time% hochladen." + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Unbenannt" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%ss Bilder" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Hinweis: Dieser Inhalt ist privat, kann aber dennoch direkt über den Link aufgerufen werden." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Hinweis: Dieser Inhalt ist durch ein Passwort geschützt. Denken Sie daran, das Passwort ebenfalls weiterzugeben." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Hinweis: Dieser Inhalt ist privat. Ändern Sie die Einstellung auf \"Öffentlich\" um den Inhalt zu teilen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privat" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Öffentlich (Alle)" + +msgid "Me" +msgstr "Ich" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Passwort" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "Aufruf" +msgstr[1] "Aufrufe" + +msgid "After %n %t" +msgstr "Nach %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "Minute" +msgstr[1] "Minuten" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "Stunde" +msgstr[1] "Stunden" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "Tag" +msgstr[1] "Tagen" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "Woche" +msgstr[1] "Wochen" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "Monat" +msgstr[1] "Monaten" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "Jahr" +msgstr[1] "Jahren" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Auto-Löschen deaktivieren" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Doppelt hochgeladen" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privater Upload" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Like" +msgstr[1] "Likes" + +msgid "Recent" +msgstr "Aktuell" + +msgid "Trending" +msgstr "Im Trend" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top-Benutzer" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Neueste" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Älteste" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Meistgesehen" + +msgid "Popular" +msgstr "Beliebt" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Beliebt" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Entdecken" + +msgid "Animated" +msgstr "Animiert" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Suche" + +msgid "People" +msgstr "Menschen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Bild" +msgstr[1] "Bilder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Benutzer" +msgstr[1] "Benutzer" + +msgid "adult" +msgstr "Adult" + +msgid "teen" +msgstr "Teen" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "Inhalte des Typs %s sind verboten" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "%s Zielverzeichnis kann nicht erstellt werden" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "%s kann nicht zum Schreiben geöffnet werden" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Intern" + +msgid "Can't insert storage." +msgstr "Datenspeicher kann nicht eingefügt werden." + +msgid "Can't update storage details." +msgstr "Details zum Datenspeicher können nicht aktualisiert werden." + +#, php-format +msgid "requires %s" +msgstr "Benötigt %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Unlimitiert" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "benutzt" + +msgid "Private profile" +msgstr "Privates Profil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "Sekunde" +msgstr[1] "Sekunden" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "Vor %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "Vor wenigen Momenten" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Dashboard" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Es ist ein Update für Ihr System zur Verfügung. Gehen Sie auf %s zum Herunterladen und Installieren des Updates." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Systemdatenbank ist veraltet. Starten sie das <a href=\"%s\">Update-Tool</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Die Internetseite befindet sich im Wartungsmodus. Um den Modus zu beenden, rufen Sie die <a href=\"%s\">Dashboard-Einstellungen</a> auf." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Die PHP-Fehlerberichterstattung sollte bei Live-Systemen deaktiviert werden. Gehen Sie in die <a href='%s'>Systemeinstellungen</a> um diese Einstellung zu ändern." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Sie haben die Standard-Mail-Einstellungen nicht angepasst. Gehen Sie zu den <a href='%s'>E-Mail-Einstellungen</a> um dies zu beheben." + +msgid "There is an update available for your Chevereto based website." +msgstr "Es gibt ein Update für Ihre auf Chevereto basierende Internetseite." + +msgid "admin dashboard" +msgstr "Admin-Dashboard" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Sie können dieses Update direkt aus Ihrem %a starten oder es manuell von %s herunterladen und installieren." + +#, php-format +msgid "view on %s" +msgstr "Auf %s ansehen" + +msgid "cookie policy" +msgstr "Cookie-Policy" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Wir nutzen eigene Cookies und Cookies von Drittanbietern um den Nutzungskomfort unserer Internetseite zu verbessern. Wenn Sie diese Internetseite weiter nutzen, erklären Sie sich mit unserer %cookie_policy_link einverstanden." + +msgid "I understand" +msgstr "Ich stimme zu" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Passwort vergessen?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Passwort zurücksetzen" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Aktivierungs-Link erneut senden" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "E-Mail-Adresse hinzufügen" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-Mail-Adresse geändert" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s sagt Sie sind ein Robot." + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Ungültiger Benutzername / E-Mail" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Für diesen Benutzer wurde keine E-Mail-Adresse hinterlegt." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Anfrage verweigert" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Ihr Konto muss zunächst aktiviert werden, um diese Funktion nutzen zu können" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Das Konto wurde bereits aktiviert" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Es kann bis zu 15 Minuten dauern, bis die E-Mail Ihr Postfach erreicht. Versuchen Sie es später noch einmal." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Passwort bei %s zurücksetzen" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Bestätigung für %s benötigt" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Willkommen bei %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Diese E-Mail wird bereits verwendet" + +msgid "Password required" +msgstr "Passwort erforderlich" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Teilen" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Embed-Codes" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Alle Informationen" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album ist in %w gespeichert" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistik" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Bilder" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Alben" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Benutzer" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Einstellungen" + +msgid "Bulk importer" +msgstr "Bulk-Import" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto-Version" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Installiere Update" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "Suche nach Aktualisierungen" + +msgid "Support" +msgstr "Support" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Benötigen Sie Hilfe? Gehen Sie auf %s und Ihnen wird schnellstmöglich geholfen." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP-Version" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL-Version" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL Server-Info" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD-Bibliothek" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Datei-Uploads" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Aktiviert" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Deaktiviert" + +msgid "Max. upload file size" +msgstr "Maximale Upload-Dateigröße" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maximaler POST-Wert" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maximale Ausführungszeit" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d Sekunde" +msgstr[1] "%d Sekunden" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "PHP-Speicherlimit" + +msgid "Rebuild stats" +msgstr "Statistiken berechnen" + +msgid "Connecting IP" +msgstr "Verbundene IP" + +msgid "Not your IP?" +msgstr "Nicht Ihre IP-Adresse?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Links" + +msgid "Collaboration" +msgstr "Zusammenarbeit" + +msgid "Documentation" +msgstr "Dokumentation" + +msgid "Changelog" +msgstr "Changelog" + +msgid "Bug tracking" +msgstr "Bug-Tracking" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Internetseite" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Inhalt" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Seiten" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Listen" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Bild-Upload" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorien" + +msgid "Consent screen" +msgstr "Zustimmungsmitteilung" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Flood-Schutz" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Theme" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Startseite" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Werbung" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "System" + +msgid "Routing" +msgstr "Routing" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Sprachen" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Externe Datenspeicherung" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-Mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Soziale Netzwerke" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Externe Dienste" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP-Sperren" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Erweiterte Einstellungen" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Werkzeuge" + +msgid "Can't delete all homepage cover images" +msgstr "Es können nicht alle Titelbilder gelöscht werden" + +msgid "Homepage cover image deleted" +msgstr "Titelbild gelöscht" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokal" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Extern" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Alle" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "Durchsuche Inhalt" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Seite hinzufügen" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Bearbeite Seiten-ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Die Seite wurde erfolgreich hinzugefügt." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Die Seite wurde gelöscht." + +msgid "homepage" +msgstr "Internetseite" + +#, php-format +msgid "Before main title (%s)" +msgstr "Vor Haupttitel (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Nach \"Call to Action\" (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Nach Titelbild (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Nach Auflistung (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Vor Seitennummerierung" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Nach Seitennummerierung" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Inhalt (Bild- und Albenansicht)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Neben Bilddetails" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Vor Kommentare" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Bildansicht" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "In Bildansicht-Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "In Bildansicht-Fußzeile" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Nach Bildansicht" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Vor Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Nach Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Fußzeile" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Albumansicht" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Vor Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Nach Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Profilseite" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Nach Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Vor Auflistung" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Entdecken-Seite" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Nach Kopfzeile" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Ungültiger Name der Internetseite" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Ungültige Sprache" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Ungültige Zeitzone" + +#, php-format +msgid "Invalid value: %s" +msgstr "Ungültiger Wert: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Ungültige Speichermethode" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Ungültige Upload-Dateibenennung" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Ungültige Vorschaubildbreite" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Ungültige Vorschaubildhöhe" + +msgid "Invalid medium size" +msgstr "Ungültige Medium-Größe" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Ungültiges Wasserzeichen-Größenverhältnis" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Ungültige Wasserzeichen-Transparenz" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Ungültiges Theme" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Ungültiger Wert" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Ungültiger Theme-Farbton" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Ungültige Hauptfarbe des Themes" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Ungültige Farbe der Theme-Hauptleisten-Buttons" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Ungültige Bildergröße für die Listung im Theme" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Ungültige User-ID" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Ungültiger E-Mail-Modus" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Ungültiger SMTP-Port" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Ungültige SMTP-Sicherheitseinstellung." + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Ungültige Benutzer-ID für den Privat-Modus" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Ungültige oder reservierte Route" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Ungültiger Datenschutzmodus der Internetseite" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Ungültiger Datenschutzmodus für den Inhalt der Internetseite" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Ungültiger Style" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Ungültige Farbe des \"Call to Action\"-Buttons" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Ungültige \"Call to Action\"-Funktionsweise" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Ungültiger Titel" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Ungültiger Status" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Ungültiger Typ" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Ungültige Sichtbarkeit" + +msgid "Invalid internal type" +msgstr "Ungültiger interner Seitentyp" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Ungültige Zieleigenschaft" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Ungültiges rel-Attribut" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Ungültiges Icon" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Ungültiger URL-Schlüssel" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Ungültiger Dateipfad" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Ungültige Link-URL" + +msgid "Invalid user minimum age" +msgstr "Ungültiges Mindestalter für den Benutzer" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Nur alphanumerische Zeichen, Bindestrich und Unterstriche sind erlaubt" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Ungültige URL" + +msgid "Routes can't be the same" +msgstr "Die Pfade dürfen nicht gleich sein" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Ungültiger Bild-Upload-Pfad" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Ungültige \"Call to Action\"-URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maximal erlaubte %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "%m kann nicht auf den bestehenden Ordner (%f) gemappt werden" + +msgid "Can't map %m to an existing route (%r)" +msgstr "%m kann nicht auf den existierenden Pfad (%r) gemappt werden" + +msgid "Can't map %m to %r (username collision)" +msgstr "%m kann nicht auf %r gemappt werden (Benutzernamen-Kollision)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Ungültiger SMTP-Server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Ungültiger SMTP-Benutzername" + +msgid "Invalid key" +msgstr "Ungültiger Schlüssel" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Dieser URL-Schlüssel wird bereits für eine andere Seite genutzt (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Dieser Dateipfad wird bereits für eine andere Seite genutzt (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Seiteninhalt kann nicht gespeichert werden: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Folgen" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Über" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Bild-ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Uploader-IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "IP-Adresse sperren" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP-Adresse wurde bereits gesperrt" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Upload-Datum" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Bild %i in %a Album" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Bild %i in %c Kategorie" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Bild %i gespeichert in %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direkt-Link" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Betrachter-URL" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Originalbild-URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Vorschaubild-URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Medium-Bild-URL" + +msgid "Full image" +msgstr "Vollansicht" + +msgid "Full image (linked)" +msgstr "Vollansicht (Verlinkt)" + +msgid "Medium image (linked)" +msgstr "Medium-Bild (Verlinkt)" + +msgid "Thumbnail image (linked)" +msgstr "Vorschaubild (Verlinkt)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Anmeldung notwendig" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP-Adresse wurde bereits gesperrt" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Fehlende Werte" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Ungültiger Status" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Benutzername wird bereits genutzt" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Fügen Sie ein Passwort oder eine neue Social-Media-Verbindung hinzu bevor Sie %s löschen." + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Fügen Sie eine E-Mail-Adressse oder eine andere Social-Media-Verbindung hinzu, bevor Sie %s löschen." + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "Verbindung zu %s getrennt." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Test-E-Mail von %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Dies ist nur ein Test." + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Test-E-Mail wurde an %s gesendet." + +#, php-format +msgid "Downloading %s data" +msgstr "Lade Daten von %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Benutzer %s wird gefolgt" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Benutzer %s wird nicht mehr gefolgt" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Inhalt gefällt dir" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Inhalt gefällt dir nicht mehr" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u hat Ihren %t %c gelikt" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u folgt Ihnen nun" + +msgid "A private user" +msgstr "Privater Nutzer" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Falsche Kombination aus Benutzername / E-Mail und Passwort" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Anmelden" + +msgid "Moderate" +msgstr "Moderation" + +msgid "Upload images" +msgstr "Bilder hochladen" + +msgid "Upload plugin" +msgstr "Upload-Plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Bild-Suchergebnisse für %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Album-Suchergebnisse für %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Benutzer-Suchergebnisse für %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Konto" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Verbundene Konten" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Ungültiger Ablaufzeitpunkt: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Es wurde eine E-Mail an %s mit Anweisungen zur Aktivierung versendet." + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Ungültiger Name" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Ungültige Internetseite" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Ungültiges Passwort" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Setzen Sie ein neues Passwort" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Die Änderungen wurden gespeichert." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Passwort wurde geändert" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Passwort wurde erstellt." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Falsche Benutzernamen / E-Mail Werte" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Einstellungen von %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Sie müssen den Nutzungsregeln und den Datenschutzbestimmungen zustimmen." + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Sie müssen mindestens %s Jahre alt sein, um diese Seite zu nutzen ." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Konto erstellen" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Hochladen" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%ss Bilder" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Ergebnisse für" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Von %s gelikt" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Gefällt mir" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Followers" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) Alben unter %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) unter %w" + +msgid "Discovery" +msgstr "Entdecken" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Erweiterte Suche" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Zufall-Modus" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Anmerkungen (%s)" + +msgid "Lights" +msgstr "Lichtmodus" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Benachrichtigungen" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Sie haben keine neuen Benachrichtigungen" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Mein Profil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Abmelden" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Wir haben eine Anfrage zur Änderung der E-Mail-Adresse Ihres Kontos <a href=\"%u\">%n </a> bei %w erhalten." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Um den Vorgang abzuschließen, müssen Sie Ihre <a href=\"%s\">E-Mail-Adresse bestätigen.</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativ können Sie den Link <a href=\"%s\">%s</a> kopieren und in Ihren Browser einfügen." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Sollten Sie die Anfrage unbeabsichtigt gestellt haben, können Sie diese Nachricht ignorieren." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "IP-Adresse des Anfragenstellers: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Wir haben eine Anfrage erhalten, das Konto %n bei %w zu registrieren." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Um den Vorgang abzuschließen, müssen Sie Ihr <a href=\"%s\">Konto aktivieren</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Wir haben eine Anfrage zur Zurücksetzung des Passworts Ihres Kontos <a href=\"%u\">%n</a> erhalten." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Um Ihr Passwort zurückzusetzen klicken Sie <a href=\"%s\">hier</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hallo %n, willkommen bei %w!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Ihr Konto wurde erfolgreich aktiviert. Sie können nun Bilder hochladen, Alben erstellen, die Datenschutzeinstellungen Ihrer Inhalte festlegen und nebenbei viele weitere großartige Funktionen entdecken!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Übrigens, Ihre ganz persönliche Profilseite können Sie hier abrufen: <a href=\"%u\">%n</a>. Sie können die Seite ganz nach Belieben anpassen!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Vielen Dank für Ihre Anmeldung" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Diese E-Mail wurde von %w %u gesendet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Ziehen & Ablegen oder Kopieren & Einfügen der Bilder zum Upload" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Bilder zum Hochladen auswählen" + +msgid "browse from your computer" +msgstr "Ihren Computer durchsuchen" + +msgid "add image URLs" +msgstr "Bild-URLs" + +msgid "You can also %i or %u." +msgstr "Sie können auch %i oder %u einfügen." + +msgid "browse from your device" +msgstr "Durchsuchen Sie Ihr Gerät" + +msgid "take a picture" +msgstr "ein Foto aufnehmen" + +msgid "You can also %i, %c or %u." +msgstr "Sie können auch %i, %c oder %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Bearbeiten oder skalieren Sie ein Bild, in dem Sie auf die Vorschau klicken" + +msgid "Edit any image by touching the image preview" +msgstr "Bearbeiten Sie ein Bild, in dem Sie die Vorschau berühren" + +msgid "your computer" +msgstr "Ihrem Computer" + +msgid "You can add more images from %i or %u." +msgstr "Sie können mehr Bilder von %i oder %u hinzufügen." + +msgid "your device" +msgstr "Ihre Gerät" + +msgid "You can add more images from %i, %c or %u." +msgstr "Sie können mehr Bilder von %i, %c oder %u hinzufügen." + +msgid "Uploading %q %o" +msgstr "Lade %q %o hoch" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "Abgeschlossen" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Die Warteschlange wird abgearbeitet, dies dauert einige Sekunden." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Hochladen abgeschlossen" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Die hochgeladenen Bilder wurden zu %s hinzugefügt." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Sie können %c mit dem Inhalt, der gerade hochgeladen wurde oder %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Sie können %c mit dem Inhalt, der gerade hochgeladen wurde." + +msgid "create a new album" +msgstr "Neues Album erstellen" + +msgid "move it to an existing album" +msgstr "In bestehendes Album verschieben" + +msgid "You must %s or %l to save this content into your account." +msgstr "Sie müssen %s oder %l um diese Inhalte in Ihrem Konto zu speichern." + +msgid "create an account" +msgstr "Neuen Account erstellen" + +msgid "sign in" +msgstr "Einloggen" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Es wurden keine %s hochgeladen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Ihre Anfrage konnte aufgrund von Fehlern im System nicht verarbeitet werden." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Wähle Kategorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Markieren, wenn der Inhalt nicht jugendfrei ist" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Nicht jugendfreier Inhalt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Hochladen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Verbleibende abbrechen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Hinweis: Einige Bilder konnten nicht hochgeladen werden." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Mehr erfahren" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Überprüfen Sie den <a data-modal=\"simple\" data-target=\"failed-upload-result\">Fehlerbericht</a> für mehr Informationen." + +#, php-format +msgid "Register to get %s" +msgstr "Registrieren um %s zu verwenden" + +msgid "reset" +msgstr "Zurücksetzen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "Schließen" + +msgid "Note" +msgstr "Hinweis" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Wir müssen die hochgeladenen Inhalte freischalten, bevor sie geteilt werden können." + +msgid "copy" +msgstr "Kopieren" + +msgid "insert" +msgstr "Einfügen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Löschen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Titel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "Optional" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Größe anpassen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Breite" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Höhe" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Hinweis: Animierte GIF-Bilder werden nicht skaliert." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Automatisches Löschen von Bildern" + +msgid "Sign up" +msgstr "Registrieren" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s um das automatische Löschen von Bildern anzupassen oder zu deaktivieren." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Markieren, wenn Inhalt nicht jugendfrei ist" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Als anstößig markieren" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Beschreibung" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Kurze Beschreibung des Bildes" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Bild-URLs hinzufügen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Bild-URLs hier einfügen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Album erstellen" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Der hochgeladene Inhalt wird in das neu erstellte Album verschoben." + +msgid "existing album" +msgstr "Bestehendes Album" + +msgid "You can also move the content to an %a." +msgstr "Sie können den Inhalt auch in ein %a verschieben." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Sie müssen %s oder %l wenn Sie das Album später bearbeiten wollen." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "In Album verschieben" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Markieren Sie ein bestehendes Album um die hochgeladenen Inhalte zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und die Inhalte in das neue Album verschieben." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Fehlermeldung" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Betrachter-Link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML-Codes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML (Vollansicht)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML (Vollansicht-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML (Medium-Bild-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML (Vorschaubild-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode (Vollansicht)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode (Vollansicht-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode (Medium-Bild-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode (Vorschaubild-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown (Vollansicht)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown (Vollansicht-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown (Mediumansicht-Link)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown (Vorschaubild-Link)" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Alle Wörter" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Wichtige Begriffe eingeben: Roter Afrikanischer Elefant" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Genauer Begriff oder Phrase" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Exakter Begriff in Anführungszeichen: \"Afrikanischer Elefant\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Begriffe ignorieren" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Minuszeichen vor zu ignorierende Begriffe: -Indischer \"Gefangener Elefant\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Datenspeicher" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP-Adresse" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albumname" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "in bestehendes Album verschieben" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Albumbeschreibung" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Kurze Beschreibung des Albums" + +msgid "Album privacy" +msgstr "Album-Privatsphäre" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Wer kann diesen Inhalt sehen?" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privat (Nur ich)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privat (Jeder mit Link)" + +msgid "Private (password protected)" +msgstr "Privat (passwortgeschützt)" + +msgid "Album password" +msgstr "Album-Passwort" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Name" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategoriebezeichnung" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL-Schlüssel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategorie-URL-Schlüssel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Buchstaben, Ziffern und Bindestriche erlaubt" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Kurze Beschreibung der Kategorie" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Unbetiteltes Bild" + +msgid "Mark this if the image is not safe for work" +msgstr "Markieren, falls der Inhalt anstößig ist" + +msgid "Flag not safe" +msgstr "Als anstößig markieren" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Pfad" + +msgid "Local path (absolute)" +msgstr "Lokaler Pfad (Absolut)" + +msgid "Directory structure" +msgstr "Verzeichnisstruktur" + +msgid "Parse top level folders as users (username)" +msgstr "Top-Level-Ordner als Nutzer (Nutzername) parsen" + +msgid "Parse top level folders as albums" +msgstr "Top-Level-Ordner als Alben parsen" + +msgid "Don't parse folders" +msgstr "Ordner nicht parsen" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Wenn Top-Level-Ordner als Nutzer geparsed werden, werden Ordner auf der zweiten Ebene als Nutzeralben geparsed. Werden Top-Level-Ordner als Alben geparsed, werden diese als Gästealben hinzugefügt." + +msgid "Threads" +msgstr "Threads" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Diese Einstellung bestimmt, wie schnell der Import-Vorgang abgeschlossen sein wird. Nutzen Sie nicht mehr als %s Threads auf einem Managed Server." + +msgid "You can use wildcard * characters." +msgstr "Sie können Platzhalter (*) verwenden." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Ablaufdatum" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "JJJJ-MM-DD hh:mm:ss" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Beispiel" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Bis wann soll die IP-Adresse gesperrt werden? Bei keiner Eingabe wird kein Ablaufdatum festgelegt." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Nachricht" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Textnachricht, HTML oder eine Weiterleitungs-URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Bestehendes Album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Neues Album erstellen" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Bezechnung des Datenspeichers" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Datenspeicher-Region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Datenspeicher-Bucket" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Schlüssel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Datenspeicher-Schlüssel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Datenspeicher-Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Privater Schlüssel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON Schlüssel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Sie benötigen einen <a %s>Account</a> für diese Funktion." + +msgid "Service name" +msgstr "Dienstname" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identifizierungs-URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identität des API-Endpunkt" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API-Endpunkt für OpenStack-Identität" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Benutzername" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Speicher-Container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Mieter-ID" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Mieter-ID (Konto-ID)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Mietername" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Mietername (Kontoname)" + +msgid "Storage endpoint" +msgstr "Datenspeicher Endpunkt" + +msgid "Server address" +msgstr "Serveradresse" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname oder IP des Datenspeicher-Server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Server-Pfad" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Absoluter Pfad für die Speicherung im Kontext des %p Login. Nutzen Sie %s für den Root-Pfad." + +msgid "Server login" +msgstr "Server-Login" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Server-Passwort" + +msgid "Local path" +msgstr "Lokaler Pfad" + +msgid "Local path where the files will be stored" +msgstr "Lokaler Pfad in dem die Daten gespeichert werden." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Speicherkapazität" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Beispiel: 20 GB, 1 TB, usw." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Dieser Datenspeicher wird deaktiviert, wenn die maximale Kapazität erreicht wird. Wert auf Null oder setzen oder freilassen, für unlimitierte Nutzung." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Datenspeicher-URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Das System wird die Dateien auf diesem Speicher über diese URL abbilden." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "Mehr anzeigen" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Mehr laden" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Markiere alle" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Markierung löschen" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Auswahl" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Aktion" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Zeige Embed-Codes" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Kategorie zuweisen" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Als jugendfrei markieren" + +msgid "Create new album" +msgstr "Neues Album erstellen" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Mit externen Diensten anmelden" + +msgid "Continue with %label%" +msgstr "Mit %label% fortfahren" + +msgid "Home" +msgstr "Home" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Keine Inhalte vorhanden." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Alle Bilder werden in das neue Album verschoben. Sie können die Bilder außerdem in ein <a class=\"modal-switch\" data-switch=\"move-existing-album\">bestehendes Album</a> verschieben." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Markieren Sie ein bestehendes Album um das Bild zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und das Bild in das neue Album verschieben." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Markieren Sie ein bestehendes Album um den Inhalt des Albums zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und den Inhalt in das neue Album verschieben." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Markieren Sie ein bestehendes Album um die Bilder zu verschieben. Sie können außerdem ein <a class=\"modal-switch\" data-switch=\"move-new-album\">neues Album</a> erstellen und die Bilder in das neue Album verschieben." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Alle ausgewählten Bilder werden der Kategorie zugewiesen." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Es gibt keine Kategorien." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Bestätige markierten Inhalt als jugendfrei" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Wollen Sie diesen Inhalt wirklich als jugendfrei markieren?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Bestätige markierten Inhalt als anstößig" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Wollen Sie diesen Inhalt wirklich als anstößig markieren?" + +msgid "Confirm approval" +msgstr "Freischaltung bestätigen" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgänig gemacht werden." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Löschung bestätigen" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Wollen Sie diese Inhalte wirklich löschen? Dies kann nicht rückgängig gemacht werden." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgänig gemacht werden." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgängig gemacht werden." + +msgid "Fullscreen" +msgstr "Vollbild" + +msgid "Exit fullscreen" +msgstr "Vollbild verlassen" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Gast" + +msgid "Keyboard shortcuts" +msgstr "Tastatur-Shortcut" + +msgid "Private album" +msgstr "Privates Album" + +msgid "Password protected" +msgstr "Passwortgeschützt" + +msgid "Uploaded by guest" +msgstr "Hochgeladen von einem Gast" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Aus %s" + +msgid "Uploaded by private" +msgstr "Hochgeladen von Privat" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "Von %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Als anstößig markieren" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Diese Seite existiert nicht" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Die angeforderte Seite wurde nicht gefunden." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Etwas anderes suchen" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Der Benutzer wurde gelöscht." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Ihr Konto ist fast fertig" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Es wurde eine E-Mail an %s mit Informationen zur Aktivierung Ihres Kontos gesendet. Der Aktivierungslink ist nur für einen Zeitraum von 48 Stunden gültig. Falls Sie keine E-Mail erhalten haben, sollten Sie Ihren Junk- oder Spam-Filter überprüfen." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Aktivierung wiederholen" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Die E-Mail-Adresse des Kontos wurde erfolgreich auf %s geändert." + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Gehe zum Profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Ein Bestätigungslink mit Anweisungen zur Aktivierung Ihres Kontos wird an Ihre E-Mail-Adresse versendet." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Ihre E-Mail-Adresse" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Senden" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Es wurde eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts an die hinterlegte E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, sollten Sie Ihren Junk- oder Spam-Filter überprüfen." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Es wurde bereits eine E-Mail mit Anweisungen an die hinterlegte E-Mail-Adresse versendet. Falls Sie keine E-Mail erhalten haben, sollten Sie Ihren Junk- oder Spam-Filter überprüfen." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Anweisungen erneut senden" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Geben Sie Ihren Nutzernamen und Ihre E-Mail-Adresse ein, um fortzufahren. Überprüfen Sie ggf. Ihren Spam-Ordner oder setzen Sie %s auf Ihre Whitelist." + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Benutzername / E-Mail" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Ihr Passwort wurde geändert. Sie können nun versuchen, sich mit Ihrem neuen Passwort anzumelden." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Jetzt anmelden" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Neues Passwort eingeben" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "Mindestens %d Zeichen" + +msgid "Password strength" +msgstr "Passwortstärke" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Passwort wiederholen" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Es wurde eine E-Mail an %s mit Anweisungen zur Aktivierung des Benutzerkontos versendet. Sollten Sie keine E-Mail mit Anweisungen erhalten haben, überprüfen Sie bitte Ihren Spam-Filter." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Dieser Inhalt ist privat" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Wollen Sie dieses Album inklusive der enthaltenen Bilder wirklich löschen? Dies kann nicht rückgängig gemacht werden." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Dir gefällt das" + +msgid "Upload to album" +msgstr "In Album hochladen" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Album-Link" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Bitte lesen und bestätigen Sie die folgenden Bedingungen, bevor Sie fortfahren:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Diese Internetseite enthält Informationen, Links und Bilder mit sexuell anstößigen Materialien. Sollten Sie weniger als %s Jahre alt sein, sollten Sie mit den gezeigten Materialien in jedweder Weise nicht einverstanden sein oder sollten die gezeigten Materialien in Ihrem Land illegal sein, verlassen Sie bitte diese Seite.\n\nIch bin mindestens %s Jahre alt und ich bin der Meinung, dass ich als Erwachsener berechtigt bin, die sexuell anstößigen Materialien zu betrachten. Ich wünsche, das sexuell anstößige Material zu betrachten bzw. zu empfangen.\n\nIch bin der Meinung, dass sexuelle Akte zwischen Erwachsenen weder obszön noch anstößig sind. Das Betrachten, Lesen und Herunterladen des sexuell anstößigen Materials verletzt nicht die Gesetzte meiner Gemeinschafft, Stadt, Staates oder Landes.\n\nDas sexuell anstößige Material ist nur zu meinem persönlichen Gebrauch gedacht und ich werde das Material nicht an Minderjährige aushändigen.\n\nIch bin persönlich für jegliche unerlaubte Veröffentlichung und rechtliche Konsequenzen verantwortlich, die eventuell durch das Betrachten, Lesen und Herunterladen des Materials auf dieser Seite entstehen können. Weiterhin sind weder der Betreiber dieser Seite, noch andere Partner dieser Internetseite für rechtliche Konsequenzen haftbar, die durch meinen Besuch oder meine Nutzung dieser Seite entstehen können.\n\nDiese Zustimmungs-Mitteilung stellt eine rechtlich verbindliche Vereinbarung zwischen Ihnen als Nutzer und dem Betreiber dieser Internetseite dar. Sollte ein Bestandteil dieser Vereinbarung rechtlich unwirksam sein, bleiben alle anderen Bestandteile in ihrer Wirksamkeit unberührt." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Mit dem Klick auf \"Ich stimme zu\" erklären Sie, dass Sie die oben genannten Bedingungen gelesen und verstanden haben." + +msgid "I Agree" +msgstr "Ich stimme zu" + +msgid "documentation" +msgstr "Dokumentation" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "Lernen Sie mehr über %s in unserer %d." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "Die verbundene IP-Adresse ist darauf festgelegt, die Server-Variable %var% zu nutzen. Wenn die erkannte IP-Adresse nicht mit Ihrer übereinstimmt, bedeutet dies, dass Ihr Server hinter einem Proxy liegt und Sie Ihren Server so konfigurieren müssen, dass die tatsächlich verbundene IP-Adresse gesetzt wird." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Für Nginx, müssen Sie %nginx% nutzen. Für Apache, %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Stellen Sie sicher, dass dieses Problem gelöst wird. Das System ist auf eine korrekte Erkennung der IP-Adressen angewiesen, um grundsätzliche Funktionen und den Schutz gegen Spam, Flooding und Brute-Force-Attacken zu gewährleisten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Speicherverbrauch" + +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." +msgstr "Dieses Werkzeug erlaubt die Massenverarbeitung von Inhalten, um sie der Internetseite hinzuzufügen. Hierzu wird auf einen Systempfad gezeigt, der den Inhalt enthält, der importiert werden soll. Es wird das Hinzufügen von Benutzern, Alben und Bildern auf Basis einer ordnerbasierten Struktur unterstützt." + +msgid "Automatic importing" +msgstr "Automatisches Importieren" + +msgid "The system automatically parses any content by a continuous observation of the %path% path." +msgstr "Dieses System analysiert automatisch fortlaufend jeden Inhalt im Pfad %path%." + +msgid "Completed jobs will be automatically re-started after %n %m." +msgstr "Abgeschlossene Aufgaben werden automatisch nach %n %m neugestartet." + +msgid "Reset to clear stats and logs." +msgstr "Statistiken und Logs werden zurückgesetzt." + +msgid "Queued" +msgstr "In Warteschlange" + +msgid "Working" +msgstr "In Arbeit" + +msgid "Paused" +msgstr "Pausiert" + +msgid "Canceled" +msgstr "Abgebrochen" + +msgid "Completed" +msgstr "Abgeschlossen" + +msgid "Actions" +msgstr "Aktionen" + +msgid "Reset" +msgstr "Zurücksetzen" + +msgid "Pause" +msgstr "Pausieren" + +msgid "Resume" +msgstr "Fortsetzen" + +msgid "Process log" +msgstr "Log" + +msgid "Errors" +msgstr "Fehler" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +msgid "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." +msgstr "Das System arbeitet mit einem geplanten Befehl um das Importieren fortlaufend zu verarbeiten. Hierzu ist ein Crontab Eintrag notwendig." + +msgid "You can run the command in parallel by changing the integer value of %s%." +msgstr "Sie können den Befehl parallel starten indem Sie den Integer Wert auf %s% setzen." + +msgid "All file-system permissions must be granted for the crontab user at %path%" +msgstr "Alle Berechtigung des Dateisystems müssen für den Crontab Benutzer im Pfad %path% gesetzt sein." + +msgid "Add import job" +msgstr "Import-Aufgabe hinzufügen" + +msgid "Process import" +msgstr "Import verarbeiten" + +#, php-format +msgid "Top level folders as %s" +msgstr "Top-Level-Ordner als %s" + +msgid "Process" +msgstr "Verarbeiten" + +msgid "Cancel" +msgstr "Abbrechen" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Wollen Sie wirklich die Import-ID %s entfernen?" + +msgid "Manual importing" +msgstr "Manuelles Importieren" + +msgid "The system will parse the contents of any available filesystem path." +msgstr "Das System analysiert die Inhalte eines jeden verfügbaren Dateisystem-Pfades." + +msgid "These processes must be manually created and handled with the web browser tab open." +msgstr "Dieser Prozess muss manuell erstellt und mit geöffnetem Web-Browser Tab ausgeführt werden." + +msgid "Parser" +msgstr "Parser" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Benutzer hinzufügen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Berechtigung" + +msgid "Manager" +msgstr "Moderator" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrator" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-Mail-Adresse" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Diese Einstellung ist immer deaktivert, wenn Sie den Privat-Modus aktiviert habe." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Kategorie hinzufügen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "IP-Bann hinzufügen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Datenspeicher hinzufügen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Zurück zu den Seiten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Name der Internetseite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Titel der Internetseite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Beschreibung der Internetseite" + +msgid "Powered by" +msgstr "Unterstützt von" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "Aktivieren, falls Teilen-Button für soziale Netzwerke angezeigt werden sollen." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Forced" +msgstr "Erzwingen" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a nutzt die serverseitige HTTPS-Erkennung (empfohlen). %f nutzt HTTPS unabhängig Ihrer Server-Einstellungen. %d deaktiviert die Nutzung von HTTPS vollständig." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Diese Einstellung beeinflusst nur das Protokoll, welches in URLs genutzt wird. Sie verwandelt Ihre Internetseite nicht in eine echte HTTPS-Seite, solange Ihr Server nicht für HTTPS konfiguriert wurde." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Standard-Zeitzone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Region wählen" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Ermöglicht die Suche nach Bildern, Alben und Benutzern anhand der gegebenen Suchanfrage." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Erlaubt öffentlich bereitgestellte Bilder zu durchsuchen. Die Kategorien werden ebenso aktiviert." + +msgid "guests" +msgstr "Gäste" + +msgid "Enables explore for guests." +msgstr "\"Entdecken\"-Modus für Gäste aktivieren." + +msgid "Enables to browse images randomly." +msgstr "Aktiviert das zufällige Durchsuchen von Bildern." + +msgid "Likes" +msgstr "Likes" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Erlaubt Benutzern, Content zu liken und die beliebtesten Inhalte anzeigen zu lassen." + +msgid "Followers allows users to follow each other." +msgstr "Die Funktion \"Followers\" ermöglicht es, Inhalte anderer Benutzer zu folgen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Privat-Modus Zielbenutzer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Benutzer-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Ihre Benutzer-ID lautet: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Numerische ID des Zielbenutzer für den Privat-Modus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Privat-Modus Routing" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Individuelle Route um /Benutzername auf /etwas abzubilden. Verwenden Sie \"/\" auf die Startseite abzubilden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Datenschutzmodus der Internetseite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Im Privat-Modus ist die Internetseite nur für registrierte Benutzer verfügbar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Inhalt-Datenschutzmodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Standard" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Erzwinge Privat (Ich)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Erzwinge Privat (Alle mit Link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Erzwungener Datenschutz-Modus ignoriert ausgewählte Datenschutzeinstellung des Benutzers." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Seitentitel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Seitenstatus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktive Seite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Inaktive Seite (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Nur aktive Seiten werden angezeigt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Typ" + +msgid "Terms of service" +msgstr "Nutzungsbedingungen" + +msgid "Privacy" +msgstr "Privatsphäre" + +msgid "Contact" +msgstr "Kontakt" + +msgid "Extra page" +msgstr "Zusätzliche Seite" + +msgid "Internal page type" +msgstr "Interner Seitentyp" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Sie können mehrere zusätzliche Seiten erstellen, allerdings nur jeweils einen der speziellen internen Seitentypen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Seitensichtbarkeit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Sichtbare Seite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Versteckte Seite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Versteckte Seiten werden nicht im Menü angezeigt, allerdings kann jeder über die direkte URL auf sie zugreifen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Nur alphanumerische Zeichen, Bindestriche und Schrägstriche erlaubt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Dateifpad" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Eine %f Datei relativ zu %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta-Schlüsselwörter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta-Beschreibung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Quellcode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Keine Schreibberechtigung im Pfad %s. Sie müssen diese Datei mit einem externen Editor hinzufügen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Keine Schreibberechtigung in %s. Sie müssen den Inhalt dieser Datei mit einem externen Editor bearbeiten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Von: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Link-URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Link-Zieleigenschaft" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Wählen Sie %s um die Seite zu öffnen oder in ein neues Fenster zu verlinken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Link-rel-Attribut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Nur alphanumerische Zeichen, Bindestriche und Leerzeichen erlaubt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt;%s Eigenschaft" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Link-Icon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Überprüfen Sie die <a %s>Icon-Referenz</a> für eine vollständige Liste mit allen unterstützten Icons." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Anzeige der Sortierungsreihenfolge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Anzeige der Sortierungsreihenfolge für Seiten und Auflistungen. Setzen Sie \"1\" für höchste Priorität." + +msgid "pages" +msgstr "Seiten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Wollen Sie wirklich die Seite mit der ID %s löschen? Dies kann nicht rückgängig gemacht werden." + +msgid "Enabled image formats" +msgstr "Aktivierte Bildformate" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Nicht markierte Bildformate sind nicht für das Hochladen zugelassen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Hochladen aktivieren" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Aktivieren, falls das Hochladen von Bildern erlaubt sein soll. Diese Einstellung hat keinen Einfluss auf Administratoren." + +msgid "Upload user interface" +msgstr "Upload-Benutzeroberfläche" + +msgid "On-page container" +msgstr "On-Page Container" + +msgid "route" +msgstr "Route" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Gast-Uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Aktivieren, falls nicht registrierten Benutzern das Hochladen von Bildern erlaubt sein soll." + +msgid "Moderate uploads" +msgstr "Moderation" + +msgid "Guests" +msgstr "Gäste" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Aktivieren, falls hochgeladene Inhalte moderiert werden sollen. Entsprechende Inhalte müssen zunächst über die Moderation freigeschaltet werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Aktiviere Embed-Codes (Uploader)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Aktivieren, falls Embed-Codes nach einem Upload angezeigt werden sollen." + +msgid "Upload threads" +msgstr "Upload-Threads" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Anzahl der maximal möglichen gleichzeitigen Uploads (Threads)" + +msgid "Redirect on single upload" +msgstr "Direkte Weiterleitung bei einzelnem Upload" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Aktivieren Sie diese Funktion, wenn Sie bei einem einzelnen Upload auf die Seite des Bildes weiterleiten wollen." + +msgid "Enable duplicate uploads" +msgstr "Erlaube doppelte Uploads" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Aktivieren Sie diese Option, wenn sie doppelte Uploads von der identischen IP-Adresse innerhalb von 24h ermöglichen wollen. Diese Einstellung hat keine Auswirkung auf Administratoren." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Uploads mit Ablaufdatum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Aktivieren, falls Sie Uploads mit einer automatischen Löschung nach einer bestimmten Zeit aktivieren wollen." + +msgid "Auto delete guest uploads" +msgstr "Automatisches Löschen von Gast-Uploads" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Aktivieren, falls hochgeladene Bilder von Gästen automatisch nach einer bestimmten Zeit gelöscht werden sollen." + +msgid "Maximum image size" +msgstr "Maximale Bildgröße" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Bilder mit einer größeren Dateigröße werden automatisch verkleinert. Verwenden Sie Null (0), um kein Limit festzulegen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "EXIF-Daten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Beibehalten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Wählen Sie die Standardeinstellung für <a %s>EXIF-Daten</a> beim Upload." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "EXIF-Daten (Benutzer-Einstellung)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Aktivieren, falls Sie Benutzern erlauben wollen, die Behandlung von EXIF-Daten beim Upload individuell zu wählen." + +msgid "Maximum upload file size" +msgstr "Maximale Upload-Dateigröße" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Die maximale Dateigröße die vom Server erlaubt wird beträgt %s. Dieses Limit wird von %u und %p begrenzt (%f Werte)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Das Gleiche wie \"%s\" aber für Gäste." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Bildpfad" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativ zum Chevereto-Stammverzeichnis" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Wo wollen Sie die Bilder speichern? Relativ zum Chevereto-Stammverzeichnis." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Speichermodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direkt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "\"Datum\" erstellt %s Struktur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Benennungsmethode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Mix Original & Zufall" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "Die Einstellung \"Original\" versucht den ursprünglichen Dateinamen des Bildes zu erhalten, während \"Zufall\" einen zufälligen Dateinamen erzeugt. \"ID\" bennent das Bild nach der Bild-ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Vorschaubildgröße" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Vorschaubilder werden an die gewählte Größe angepasst." + +msgid "Medium image fixed dimension" +msgstr "Feste Größe für Medium-Bild" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Medium-Bilder werden auf eine feste Größe gesetzt. Wenn Sie zum Beispiel die Breite als feste Größe setzen, wird die Höhe automatisch berechnet." + +msgid "Medium image fixed size" +msgstr "Feste Größe für Medium-Bild" + +msgid "Width or height will be automatically calculated." +msgstr "Breite oder Höhe wird automatisch berechnet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Wasserzeichen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Aktivieren, falls Logos oder Grafiken auf hochgeladenen Bildern angezeigt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Warnung: Keine Schreibrechte in %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Wasserzeichen-Modus nach Benutzer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Aktiviere Wasserzeichen für Gäste-Uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Aktiviere Wasserzeichen für Benutzer-Uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Aktiviere Wasserzeichen für Admin-Uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Wasserzeichen-Modus nach Dateityp" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Aktiviere Wasserzeichen für GIF-Uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Mindestbildgröße zur Anwendung von Wasserzeichen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Liegt ein Bild unterhalb der Mindestbildgröße, werden keine Wasserzeichen angewandt. Setzen Sie Null (0), um keine Mindestbildgröße festzulegen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Wasserzeichen-Grafik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Die besten Resultate werden mit flachen Logos mit Schlagschatten erzielt. Auch große Bilder können verwendet werden, sofern die Dateigröße gering ist (es werden maximal 16 KB empfohlen). Das Dateiformat PNG ist zwingend erforderlich." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Wasserzeichen-Position" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "Links oben" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "Links mittig" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "Links unten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "Mittig oben" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "Zentriert" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "Mittig unten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "Rechts oben" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "Rechts mittig" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "Rechts unten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Relative Position des Wasserzeichens. Horizontale Ausrichtung zuerst, dann vertikale Ausrichtung." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Wasserzeichen-Größenverhältnis" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Größenverhältnis des Wasserzeichen relativ zum Original-Bild. Werte zwischen 1 und 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Wasserzeichen-Abstand" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Abstand vom Rand des Bildes zur Wasserzeichen-Grafik." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Wasserzeichen-Transparenz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Transparenz des Wasserzeichens im Bild. Werte von 0 bis 100 erlaubt." + +msgid "Dashboard > Settings > Website" +msgstr "Dashboard > Einstellungen > Internetseite" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Kategorien funktionieren nicht, wenn die \"Entdecken\"-Funktion ausgeschaltet ist. Um die Einstellung zu ändern, klicken Sie hier %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Wollen Sie wirklich die Kategorie %s löschen? Dies kann nicht ruckgängig gemacht werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Hinweis: Wird eine Kategorie gelöscht, bleiben die zugehörigen Bilder erhalten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Kategorie bearbeiten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Ablaufdatum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Wollen Sie wirklich die IP-Adresse %s entsperren? Dies kann nicht rückgängig gemacht werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Für gesperrte IP-Adressen wird die Nutzung der gesamten Internetseite unterbunden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "IP-Bann bearbeiten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Registrierung aktivieren" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Aktivieren, falls Benutzern die Registrierung erlaubt sein soll." + +msgid "Enable user content delete" +msgstr "Löschen von Nutzerinhalten aktivieren" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Aktivieren, falls Nutzern erlaubt werden soll, ihre eigenen Inhalte zu löschen. Diese Einstellung hat keine Auswirkung auf Administratoren." + +msgid "Minimum age required" +msgstr "Mindestalter" + +msgid "Empty" +msgstr "Leer" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Lassen Sie dieses Feld leer, um kein Mindestalter für die Internetseite einzurichten." + +msgid "Notify on user signup" +msgstr "Benachrichtigung bei Neuanmeldung" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Aktivieren, falls Sie eine E-Mail-Benachrichtigung erhalten möchten, wenn sich ein neuer Nutzer anmeldet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Benutzernamen-Routing" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Aktivieren, falls %s/Benutzername URLs anstatt %s/user/Benutzername für die Darstellung der URLs benutzt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "E-Mail-Bestätigung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Aktivieren, falls eine Validierung der E-Mail-Adresse bei der Registrierung durch den Benutzer erfolgen soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "E-Mail-Bestätigung für Anmeldung über soziales Netzwerk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Aktivieren, falls bei Anmeldung über ein soziales Netzwerk die Eingabe einer E-Mail-Adresse vorausgesetzt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Profilbild - Maximale Dateigröße" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Maximale Dateigröße für Profilbild des Benutzers (%s werden vom Server maximal erlaubt)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Hintergrundbild - Maximale Dateigröße" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Maximale Dateigröße für das Hintergrundbild des Benutzers (%s werden vom Server maximal erlaubt)." + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Zeigt ein Zustimmungsmitteilung, bevor der Zugriff auf die Website erlaubt wird. Dies ist nützlich für Internetseiten mit Inhalten für Erwachsene und auf denen Minderjährige nicht zugelassen werden sollen." + +msgid "Enable consent screen" +msgstr "Aktiviere Zustimmungsmitteilung" + +msgid "Consent screen cover image" +msgstr "Titelbild für Zustimmungsmitteilung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Der Flood-Schutz verhindert Bild-Uploads über bestimmte IP-Adressen, so bald das System eine zu hohe Anzahl an Uploads innerhalb einer vorgegebenen Zeitspanne registriert. Diese Einstellung hat keinen Einfluss auf Administratoren." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Nachricht an E-Mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Aktivieren, falls bei Flood-Ereignissen eine E-Mail an den Administrator versendet werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minuten-Limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Stunden-Limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Tages-Limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Wochen-Limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Monats-Limit" + +#, php-format +msgid "Lock %s editing" +msgstr "Sperrung von Änderungen bei %s" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "Aktivieren, falls Benutzer daran gehindert werden sollen, die Kennzeichnung anstößiger Inhalte (NSFW) zu verändern. Wenn aktiviert, können nur Administratoren und Moderatoren die Einstellung verändern." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Anstößige Inhalte anzeigen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Aktivieren, falls anstößiger Inhalt in Auflistungen angezeigt werden sollen. Diese Einstellung gilt nicht für Administratoren und kann durch Benutzereinstellungen außer Kraft gesetzt werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Freizügige Inhalte (NSFW) in Auflistung verschleiern" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Aktivieren, falls als freizügig markierte Inhalte in der Auflistung der Bilder verschwommen dargestellt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Werbeanzeigen bei anstößigem Inhalt anzeigen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Aktivieren, falls Werbeanzeigen bei Seiten mit anstößigem Inhalt angezeigt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Zeige anstößigen Inhalt im Zufall-Modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Listen-Objekte je Seite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Anzahl der dargestellten Objekte je Seite." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Seitenumbruch-Modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Endlos-Scrolling" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klassischer Seitenumbruch" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Auswahl der Methode zum Seitenumbruch." + +msgid "Listing viewer" +msgstr "Listenansicht" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Aktivieren, wenn eine Listenansicht bei einem Klick auf ein Bild angezeigt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Bildgröße für Auflistung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fließend" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fixiert" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Beide Methoden nutzen eine feste Bildbreite, mit \"Fließend\" wird die Bildhöhe automatisch angepasst." + +msgid "Album listing images requirement" +msgstr "Mindestanzahl von Bildern für Alben-Listenmodus" + +msgid "explore" +msgstr "Entdecken" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Definiert die Mindestanzahl von Bildern die notwendig ist, um Alben im \"Entdecken\"-Modus anzuzeigen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Anzahl der Listen-Spalten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Hier können Sie festlegen, wie viele Spalten auf welchem Gerät benutzt werden sollen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Handy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Desktop" + +msgid "theme editing" +msgstr "Theme-Bearbeitung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Platzieren Sie Ihre Themes in das Verzeichnis \"%s\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Farbschema" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Hell" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Dunkel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Hauptfarbe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Hexadezimaler Farbwert" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Nutzen Sie diese Funktion, um die Hauptfarbe des Themes zu bestimmen. Der Wert muss im <a href=\"%s\" target=\"_blank\">HEX-Format</a> angegeben werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Farbe der Hauptleisten-Buttons" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Blau" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Grün" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Orange" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Rot" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Grau" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Schwarz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Weiß" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Farbe der Hauptleisten-Buttons, z. B. der \"Konto erstellen\"-Button." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Aktiviere Vektor-Logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Aktiviere Vektor-Logo für hochauflösende Anzeigegeräte." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Vektor-Logo-Grafik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Vektor-Grafik des Internetseiten-Logos im SVG-Format." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Raster-Logo-Grafik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Bitmap-Grafik des Internetseiten-Logos. PNG-Format wird empfohlen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Logo-Höhe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Kein Wert" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Diese Funktion gibt eine feste Höhe des Logos vor." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon-Grafik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Die Favicon-Grafik muss die gleiche Höhe und Breite aufweisen." + +msgid "Image load max. filesize" +msgstr "Maximale Bilder-Dateigröße" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Bilder mit einer größeren Dateigröße erhalten eine Schaltfläche zum Laden der vollen Auflösung." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Download-Button aktivieren" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Aktivieren, falls ein Download-Button für Bilder angezeigt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Rechte Maustaste aktivieren" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Aktivieren, falls ein Klick mit der rechten Maustaste im Bildbetrachter erlaubt sein soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "EXIF-Daten anzeigen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Aktivieren, falls die EXIF-Daten der Bilder angezeigt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Aktiviere Social-Share-Funktion" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Aktivieren, falls Buttons von sozialen Netzwerken angezeigt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Aktiviere Embed-Codes (Inhalt)" + +msgid "Everybody" +msgstr "Jeder" + +msgid "Users only" +msgstr "Nur Benutzer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Aktivieren, falls Embed-Codes auf den Inhalt-Seiten angezeigt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Marker für anstößigen Inhalt beim Hochladen anzeigen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Aktivieren, falls eine Option zur Kennzeichnung von anstößigem Inhalt beim Hochladen angezeigt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Eigener CSS-Code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Eigener CSS-Code kann hier eingefügt werden. Das Code wird als <style> platziert bevor der </head> Tag geschlossen wird." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Eigener JS-Code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Eigener JS-Code kann hier eingefügt werden. Der Code wird als <script> platziert bevor der </head> Tag geschlossen wird." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Nutzen hier Sie keinen %s Markup. Dieses Feld ist nur für reinen JS-Code und nicht for HTML-Script-Tags gedacht. Sollten Script-Tags genutzt werden, wird dies Ihre Internetseite funktionsuntüchtig machen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Style" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Landing-Page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Trennung Landing-Page + Bilder" + +#, php-format +msgid "Route %s" +msgstr "Route %s" + +msgid "upload" +msgstr "hochladen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Wählen Sie den Style Ihrer Internetseite aus. Zum Anpassen muss app/themes/%s/views/index.php bearbeitet werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Titelbild" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Wollen Sie dieses Bild wirklich löschen? Dies kann nicht rückgängig gemacht werden." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Bild löschen" + +msgid "Add new cover image" +msgstr "Neues Titelbild hinzufügen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Vektor-Grafik des Internetseiten-Logos im SVG-Format." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Bitmap-Grafik des Internetseiten-Logos. PNG-Format wird empfohlen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Die Eingabe wird innerhalb des %s Tag der Internetseite eingefügt. Lassen Sie das Feld frei, um die Standardinhalte zu verwenden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragraph" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "\"Call to Action\"-Button-Farbe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Farbe des \"Call to Action\"-Buttons." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "\"Call to Action\"-Button-Außenlinie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Aktivieren, falls für den \"Call to Action\"-Button eine Umrandung gesetzt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "\"Call to Action\"-Funktionsweise" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Trigger-Uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "URL öffnen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "\"Call to Action\" URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Geben Sie eine absolute oder relative URL an." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Eine relative URL wie zum Beispiel %r wird auf %l abgebildet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "\"Call to Action\" HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Dies wird innerhalb des \"Call to Action\" <a> Tag eingefügt. Lassen Sie das Feld frei, um den Standardinhalt zu verwenden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Benutzer-IDs" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Komma-separierte Liste von Benutzer-IDs um Bilder auf der Internetseite anzuzeugen. Lassen Sie diese Einstellung frei oder auf Null um alle aktuellen Bilder anzuzeigen." + +msgid "banners" +msgstr "Banner" + +msgid "Automatic updates check" +msgstr "Automatisch nach Updates suchen" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Falls aktiviert, wird das System automatisch auf neue Aktualisierungen hinweisen." + +msgid "Display available updates notification" +msgstr "Anzeigen der verfügbaren Update-Benachrichtigungen" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Aktivieren, wenn Sie einen Hinweis über verfügbare System-Updates wünschen." + +msgid "Dump update query" +msgstr "Aktualisierungsanfrage verwerfen" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Aktivieren, wenn automatisch die korrekte Sprache für jeden Nutzer gesetzt werden soll." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URLs" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Aktivieren, falls SEO %s URLs genutzt werden sollen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Code-Reduktion" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Aktivieren, falls CSS und JS Code automatisch reduziert werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Wartung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Aktivieren, falls eine Wartungsmeldung angezeigt werden soll. Diese Einstellung hat keine Auswirkung auf Administratoren." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Krypto-Salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Das Salt, das zur Umwandlung von numerischen in alphanumerische IDs genutzt wird. Dieses wurde bei der Installation automatisch erzeugt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP-Fehler-Bericht" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Aktivieren, falls Fehlermeldungen von PHP über <a %s>error_reporting()</a> angezeigt werden sollen. Diese Funktion sollte im Live-Betrieb deaktiviert werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Debug-Level" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Keine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Fehler-Log" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Fehlerausgabe ohne Fehler-Log" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Fehlerausgabe mit Fehler-Log" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Um den Debug-Level zu konfigurieren prüfen Sie die <a %s>Debug-Dokumentation</a>. Die Standardeinstellung lautet \"Fehler-Log\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "Das Routing erlaubt benutzerdefinierte Pfade festzulegen. Es sind nur alphanumerische Zeichen, Bindestriche und Unterstriche erlaubt. Prüfen Sie %s, wenn Sie Pfade überschreiben oder neue festlegen wollen." + +msgid "Image routing" +msgstr "Bild-Routing" + +#, php-format +msgid "Routing for %s" +msgstr "Routing für %s" + +msgid "Album routing" +msgstr "Album-Routing" + +msgid "Hostname" +msgstr "Hostname" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Hostname, auf den Subdomain-Wildcards hinzugefügt werden." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Diese Einstellung wird eventuell durch %s überschrieben-" + +msgid "Language subdomains" +msgstr "Subdomains für Sprachen" + +msgid "languages" +msgstr "Sprachen" + +msgid "Enable to use %s for %t." +msgstr "Aktivieren, um %s für %t zu nutzen." + +msgid "Username subdomains" +msgstr "Subdomains für Nutzernamen" + +msgid "user profiles" +msgstr "Nutzerprofile" + +msgid "Custom language strings" +msgstr "Eigene Sprachen-Strings" + +msgid "language strings" +msgstr "Sprachen-Strings" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Standardsprache" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Diese Option ermöglicht die Festsetzung einer Sprachversion als Standardeinstellung." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automatische Spracheinstellung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Aktivieren, falls automatisch die passende Sprache für den Benutzer gewählt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Sprachauswahl" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Aktivieren, falls die Sprachauswahl aktiviert werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Sprachen aktivieren" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Nicht markierte Sprachen werden nicht verwendet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Aktivieren, falls HTTPS genutzt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Aktivieren, falls externer Datenspeicher genutzt werden soll." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kontingent" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktiv" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Speichermethode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Der lokale Speicher wird entweder standardmäßig genutzt oder wenn kein externer Speicher aktiv ist." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Falls Sie Hilfe benötigen, überprüfen Sie die <a %s>Datenspeicher Dokumentation</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Datenspeicher bearbeiten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Absendername" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Absendername für E-Mail-Kontakt mit Benutzern." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-Mail-Modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Wie wollen Sie E-Mails versenden? SMTP wird empfohlen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP-Server und Port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP-Server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP-Benutzername" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP-Passwort" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP-Sicherheit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Ungesichert" + +msgid "Decode ID" +msgstr "Dekodierungs-ID" + +msgid "Encode ID" +msgstr "Enkodierungs-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Test-E-Mail senden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Nutzen Sie diese Funktion um zu testen, wie Ihre E-Mails ausgeliefert werden. Wir empfehlen die Nutzung von %s." + +msgid "Export a user" +msgstr "Benutzer exportieren" + +msgid "Export user" +msgstr "Exportieren" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Diese Funktion ermöglicht es, die persönlichen Informationen eines Nutzers als JSON-Datei herunterzuladen." + +msgid "Regenerate external storage stats" +msgstr "Statistiken der externen Datenspeicher erneuern" + +msgid "Storage id" +msgstr "Datenspeicher-ID" + +msgid "Regenerate" +msgstr "Erneuern" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Dies berechnet die Summe aller Bild-Datensätze neu, die mit dem externen Datenspeicher verbunden sind." + +msgid "Migrate image records from one external storage to another" +msgstr "Migriert alle Bild-Datensätze von einem externen Datenspeicher auf einen anderen" + +msgid "Source storage id" +msgstr "ID des Quell-Datenspeichers" + +msgid "Target storage id" +msgstr "ID des Ziel-Datenspeichers" + +msgid "Migrate" +msgstr "Migrieren" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Diese Aktion aktualisiert nur die Datenbank. Sie müssen die tatsächlichen Dateien zum Zielspeicherort eigenständig transferieren. URL-Überschreibungen werden empfohlen. Setzten Sie Null (0) für eine lokale Speicherung." + +msgid "social networks" +msgstr "Soziale Netzwerke" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Sie benötigen eine <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook App</a> für diese Funktion." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook App-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook App-Secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Sie benötigen eine <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter App</a> für diese Funktion." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API-Schlüssel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API-Secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter Konto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Sie benötigen eine <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google App</a> für diese Funktion." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google Client-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google Client-Secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Sie benötigen eine <a href=\"http://vk.com/dev\" target=\"_blank\">VK App</a> für diese Funktion." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK Client-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK Client-Secret" + +#, php-format +msgid "%s spam protection" +msgstr "%s Spamschutz" + +msgid "user generated content" +msgstr "Benutzergenerierte Inhalte" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Aktivieren, um mit %l Spam auf %c zu blockieren." + +#, php-format +msgid "%s API key" +msgstr "%s API-Schlüssel" + +msgid "user signup" +msgstr "Benutzeranmeldung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Sie benötigen einen <a href=\"%s\" target=\"_blank\">reCAPTCHA Schlüssel</a> für diese Funktion." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Bitte beachten Sie, dass für jede reCAPTCHA-Version ein eigener API-Schlüssel erforderlich ist. Vergessen Sie nicht, die API-Schlüssel zu aktualisieren, wenn Sie die Version geändert haben." + +#, php-format +msgid "%s site key" +msgstr "%s Seiten-Schlüssel" + +#, php-format +msgid "%s secret key" +msgstr "%s Geheimer Schlüssel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA Schwelle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Ab wie vielen Fehlversuchen beim Login soll eine reCAPTCHA-Abfrage notwendig werden? Bei Null (0) wird immer eine reCAPTCHA-Eingabe verlangt." + +#, php-format +msgid "Force %s on contact page" +msgstr "%s auf Kontaktseite erzwingen" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Aktivieren Sie diese Option, um %s immer auf der Kontaktseite anzuzeigen." + +msgid "Comments API" +msgstr "Kommentare-API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API unterstützt %s." + +msgid "Disqus shortname" +msgstr "Disqus Name" + +#, php-format +msgid "%s public key" +msgstr "%s Öffentlicher Schlüssel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kommentarfunktion" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook und vergleichbare Dienste. Diese werden unter der Bildansicht angezeigt." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "Automatische Freischaltung der Inhalte über %s." + +msgid "Automatic approve" +msgstr "Automatische Freischaltung" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Aktivieren, falls Inhalte automatisch durch diesen Dienst freigeschaltet werden sollen." + +msgid "Block content" +msgstr "Inhalt blockieren" + +msgid "Adult" +msgstr "Adult" + +msgid "Teen and adult" +msgstr "Teen und Adult" + +msgid "Flag NSFW" +msgstr "Anstößige Inhalte" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics-Code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics und vergleichbare Dienste. Diese werden im Fußbereich der Seite eingefügt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Die Dokumentation zur API ist in der <a %s>API-Dokumentation</a> hinterlegt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API-Schlüssel v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Nutzen Sie diesen Schlüssel wenn Sie <a %s>API v1</a> verwenden." + +msgid "Plugin route" +msgstr "Plugin-Route" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Aktivieren, um Anweisungen für Plugins auf %u anzuzeigen. Eine Verlinkung zu den Anweisungen wird zum %s Menü hinzugefügt. Diese Einstellung betrifft keine Administratoren." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Nutzen Sie diese Funktion, um eine benutzerdefinierte URL für %p zu setzen. Beachten Sie bitte, dass %s manuell in der URL geändert werden muss." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Rechtlicher Hinweis zu Cookies" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Aktivieren, falls eine zum EU-Recht konforme Meldung hinsichtlich der Verwendung von \"Cookies\" angezeigt werden soll. Hinweis: Diese Einstellung ist nur notwendig, wenn Ihre Internetseite innerhalb der EU gehostet wird und \"Cookies\" gespeichert werden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Änderungen speichern" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Überprüfen Sie die angezeigten Fehler um fortfahren zu können." + +msgid "Play GIF" +msgstr "GIF abspielen" + +msgid "Load full resolution" +msgstr "Volle Auflösung laden" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "Wollen Sie die markierten Inhalte wirklich löschen? Dies kann nicht rückgänig gemacht werden." + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Bild wurde zu %a hinzugefügt und in %c kategorisiert" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Hinzugefügt zu %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Zu %s hochgeladen" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "%s hochgeladen." + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Weniger EXIF-Daten" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Mehr EXIF-Daten" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Bild teilen" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album-ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "In diesem Album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Bilder hochladen und teilen." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Jetzt ganz leicht per Drag & Drop! Bis %s Bildgröße. Inklusive direkter Bildlinks, BBCodes und HTML Vorschaubilder." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Upload starten" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Jetzt registrieren, um alle Funktionen nutzen zu können" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Verwalten Sie Ihre Inhalte, erstellen Sie private Alben, personalisieren Sie Ihr Profil und vieles mehr." + +msgid "Sign in with your account" +msgstr "Mit Ihrem Konto anmelden" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Sie haben kein Konto? Jetzt <a href='%s'>registrieren</a>!" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Abmeldung erfolgreich" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Sie wurden von %s abgemeldet. Wir freuen uns auf Ihren nächsten Besuch!" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Zur Startseite" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Internetseite in Wartung" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Wir führen aktuell geplante Wartungsarbeiten durch. Bitte besuchen Sie uns in einigen Minuten wieder." + +msgid "This content is password protected." +msgstr "Dieser Inhalt ist durch ein Passwort geschützt." + +msgid "Please enter your password to continue." +msgstr "Bitte geben Sie das Passwort ein, um fortzufahren." + +msgid "Send" +msgstr "Senden" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Ermöglichen Sie das Hochladen von Bildern auf Ihrer Internetseite, Ihrm Blog oder Ihrem Forum, indem Sie das Upload-Plugin installieren. Es ermöglicht das Hochladen von Bildern über einen zusätzlichen Button. Dieser erlaubt Ihren Nutzern, Bilder direkt über unseren Service hochzuladen. Das Plugin verwaltet automatisch die Codes, die für das Einfügen der Bilder notwendig sind. Der Funktionsumfang umfasst Drag & Drop, Remote-Uploads, Änderungen der Bildgröße und vieles mehr!" + +msgid "Supported software" +msgstr "Unterstützte Software" + +msgid "supported software" +msgstr "unterstützten Dienste" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Das Plugin arbeitet auf jeder Internetseite, die über editierbare Inhalte verfügt. Bei %sv wird ein Upload-Button platziert, der sich an die Editor-Toolbar ohne weitere Änderungen anpasst." + +msgid "Add it to your website" +msgstr "Zu Ihrer Internetseite hinzufügen" + +msgid "options" +msgstr "Optionen" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Kopieren Sie den Plugin-Code und fügen Sie ihn in den HTML-Code Ihrer Internetseite ein (vorzugsweise immerhalb des Head-Bereichs). Es gibt viele %o, um den Code an Ihre Bedürfnisse anzupassen." + +msgid "Basic options" +msgstr "Grundoptionen" + +msgid "Color palette" +msgstr "Farbpalette" + +msgid "Button color scheme" +msgstr "Button-Farbschema" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Eingebettete Codes, die automatisch in die Editor-Box eingefügt werden." + +msgid "Sibling selector" +msgstr "Geschwister-Selektor" + +msgid "Sibling element selector where to place the button next to" +msgstr "Bestimmt, an welchem Geschwister-Element der Button platziert wird." + +msgid "Sibling position" +msgstr "Geschwister-Position" + +msgid "After" +msgstr "Nachher" + +msgid "Before" +msgstr "Vorher" + +msgid "Position relative to sibling element" +msgstr "Bestimmt die Position relativ zum Geschwister-Element." + +msgid "Advanced options" +msgstr "Erweiterte Einstellungen" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Das Plugin hat eine breite Auswahl an weiteren Einstellungen, die eine vollständige Anpassung an die eigenen Bedürfnisse erlauben. Sie können benutzerdefinierte HTML-Codes, CSS, eigene Farbpaletten und Beobachter und vieles mehr festlegen. Prüfen Sie die %d und den Quellcode des Plugins, um ein besseres Verständnis von den Optionen zu erhalten." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Sie haben entweder keine Berechtigung zum Anzeigen der Seite oder der aufgerufene Link ist nicht mehr gültig." + +msgid "Search results" +msgstr "Suchergebnisse" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Wollen Sie diesen Benutzer wirklich löschen? Dies kann nicht rückgängig gemacht werden." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Benutzer löschen" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Registrierungsdatum" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Registrierungs-IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Aktiv" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Gesperrt" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Erwarte E-Mail" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Erwarte Bestätigung" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i bis %f Zeichen<br>Buchstaben, Ziffern, \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Automatisches Löschen von Uploads" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Diese Einstellung wird als Standard auf alle Uploads angewandt. Sie können diese Einstellung bei jedem Upload überspringen." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "<a %s>EXIF-Daten</a> beim Upload behalten" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Newsletter" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Senden Sie mir E-Mails mit Neuigkeiten über %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Inhaltseinstellungen" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Zeige anstößigen Inhalt (von anderen Benutzern) in Auflistungen an" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Sprache" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Zeitzone" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Aktuelles Passwort" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Aktuelles Passwort eingeben" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Neues Passwort" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Passwort bestätigen" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Sie müssen ein Passwort angeben, um sich mit Ihrem Benutznamen oder Ihrer E-Mail-Adresse anzumelden." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Diesem Benutzer wurde kein Passwort zugewiesen. Teilen Sie dem Nutzer ein Passwort über das Eingabefeld zu." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Passwort eingeben" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Passwort bestätigen" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Passwort wiederholen" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Neues Bild hochladen" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Bild löschen" + +msgid "Make my profile and identity totally private" +msgstr "Schalten Sie Ihr Profil und Ihre Identität in den \"Privat\"-Modus" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Aktivieren Sie diese Option, wenn Sie anonym bleiben wollen" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Zusätzlich zum Benutzernamen kann hier ein Realname festgelegt werden." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://www.ihreinternetseite.de" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Über" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Informationen über Ihre Person" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Benutzer hat keine Verbindungen." + +msgid "Link your account to external services to be able to login here." +msgstr "Verbinden Sie Ihr Konto mit externen Diensten um sich anzumelden und Inhalte zu teilen." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Wollen Sie %s wirklich von diesem Konto trennen?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Dieses Konto ist mit %s verbunden" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Wollen Sie Ihr %s Konto wirklich trennen?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Sie werden abgemeldet und können nicht mehr mit Ihrem %s Konto auf dieses Konto zugreifen." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Ihr Konto ist mit %s verbunden" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "Trennen" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Verbinde %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Durchsuchen und entdecke alle meine geteilten Bilder und Alben." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Button" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Alle meine Bilder anzeigen" + +msgid "Login" +msgstr "anmelden" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Sie haben bereits ein Konto? Jetzt %s." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "Account-Aktivierung erneut senden" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Wenn Sie sich bereits angemeldet haben, müssen Sie eventuell %s anfragen, um Ihr Konto zu aktivieren." + +#, php-format +msgid "You can also %s." +msgstr "Sie können auch %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Ich bin mindestens %s Jahre alt" + +msgid "terms" +msgstr "Nutzungsregeln" + +msgid "privacy policy" +msgstr "Datenschutzbestimmungen" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Ich stimme den %terms_link und %privacy_link zu" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Hintergrundbild hochladen" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Hintergrundbild ändern" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Wollen Sie das Hintergrundbild wirklich löschen? Dies kann nicht rückgänig gemacht werden." + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Hintergrundbild löschen" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Follower" +msgstr[1] "Followers" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Folgen" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Die Nutzung dieser Seite ist Ihnen nicht gestattet." + +msgid "Plugin" +msgstr "Plugin" + +#, php-format +msgid "Page %s" +msgstr "Seite %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Allgemeine Fragen / Kommentare" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Urheberrechtsverletzung" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Ungültige Nachricht" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Ungültiger Titel" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "E-Mail Fehler" + +msgid "Message sent" +msgstr "Nachricht gesendet" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Nachricht gesendet. Wir werden in Kürze mit Ihnen Kontakt aufnehmen!" + +msgid "If you want to send a message fill the form below." +msgstr "Wenn Sie uns eine Nachricht übermitteln möchten, füllen Sie bitte das folgende Formular aus." + +msgid "Your name" +msgstr "Ihr Name" + +msgid "Subject" +msgstr "Betreff" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Alle Änderungen werden verworfen, sofern der Vorgang fortgesetzt wird." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Die Änderungen wurden erfolgreich gespeichert." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Zurück zum Formular" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "Fortfahren" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Speichern" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Senden" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Bestätigen" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "Information" + diff --git a/app/languages/el.po b/app/languages/el.po new file mode 100644 index 0000000..37d6a09 --- /dev/null +++ b/app/languages/el.po @@ -0,0 +1,2882 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2015-04-13 17:55+0000\n" +"PO-Revision-Date: 2015-04-13 17:55+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:826 +#: ../../../app/install/installer.php:835 +#: ../../../app/install/installer.php:838 +#: ../../../app/routes/route.account.php:402 +#: ../../../app/routes/route.json.php:551 +#: ../../../app/routes/route.settings.php:170 +#: ../../../app/routes/route.signup.php:95 +#: ../../../app/themes/Peafowl/pages/contact.php:31 +msgid "Invalid email" +msgstr "Λανθασμένο email" + +#: ../../../app/install/installer.php:829 +#: ../../../app/routes/route.json.php:546 +#: ../../../app/routes/route.settings.php:166 +#: ../../../app/routes/route.signup.php:98 +msgid "Invalid username" +msgstr "Λανθασμένο όνομα χρήστη" + +#: ../../../app/install/installer.php:832 +#: ../../../app/routes/route.account.php:345 +#: ../../../app/routes/route.json.php:556 +#: ../../../app/routes/route.settings.php:300 +#: ../../../app/routes/route.signup.php:101 +msgid "Invalid password" +msgstr "Λανθασμένος κωδικός" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "From email address" +msgstr "Από την διεύθυνση email" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1466 +msgid "Sender email for emails sent to users." +msgstr "Email αποστολέα για τα email που αποστέλλονται στους χρήστες." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1469 +msgid "Incoming email address" +msgstr "Διεύθυνση εισερχόμενων email" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Recipient for contact form and system alerts." +msgstr "Παραλήπτης για την φόρμα επικοινωνίας και τις ειδοποιήσεις του συστήματος." + +#: ../../../app/lib/classes/class.album.php:94 +msgid "Untitled" +msgstr "Χωρίς τίτλο" + +#: ../../../app/lib/classes/class.album.php:318 +#: ../../../app/lib/classes/class.user.php:105 +#, php-format +msgid "%s's images" +msgstr "Εικόνες του χρήστη %s" + +#: ../../../app/lib/classes/class.image.php:695 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Private upload" +msgstr "Ιδιωτικό ανέβασμα" + +#: ../../../app/lib/classes/class.image.php:954 +msgid "view" +msgid_plural "views" +msgstr[0] "προβολή" +msgstr[1] "προβολές" + +#: ../../../app/lib/classes/class.listing.php:238 +#: ../../../app/routes/route.album.php:169 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:87 +#: ../../../app/lib/chevereto.js:1866 ../../../app/lib/chevereto.min.js:88 +msgid "image" +msgid_plural "images" +msgstr[0] "εικόνα" +msgstr[1] "εικόνες" + +#: ../../../app/lib/classes/class.storage.php:303 +#: ../../../app/lib/classes/class.storage.php:358 +msgid "Can't verify storage credentials." +msgstr "Δεν είναι δυνατή η επαλήθευση των διαπιστευτηρίων αποθήκευσης." + +#: ../../../app/lib/classes/class.storage.php:339 +#: ../../../app/lib/chevereto.js:2719 ../../../app/lib/chevereto.min.js:132 +#, python-format, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Η χωρητικότητα αποθήκευσης δεν μπορεί να είναι μικρότερη από την τρέχουσα χρησιμοποιούμενη (%s)." + +#: ../../../app/lib/classes/class.storage.php:551 +msgid "Unlimited" +msgstr "Απεριόριστα" + +#: ../../../app/lib/classes/class.storage.php:551 +msgid "used" +msgstr "σε χρήση" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "έτος" +msgstr[1] "έτη" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "μήνας" +msgstr[1] "μήνες" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "εβδομάδα" +msgstr[1] "εβδομάδες" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "μέρα" +msgstr[1] "μέρες" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "ώρα" +msgstr[1] "ώρες" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "λεπτό" +msgstr[1] "λεπτά" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "δευτερόλεπτο" +msgstr[1] "δευτερόλεπτα" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "Πριν από %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "πριν λίγο" + +#: ../../../app/lib/functions.php:195 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Η βάση δεδομένων είναι παλιά. Χρειάζεται να εκτελέσετε το εργαλείο <a href=\"%s\">update</a> ." + +#: ../../../app/lib/functions.php:198 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Η ιστοσελίδα είναι υπό κατασκευή. Για να αναστρέψετε αυτή τη ρύθμιση πηγαίνετε<a href=\"%s\">Πίνακας ελέγχου > Ρυθμίσεις</a>." + +#: ../../../app/lib/functions.php:203 +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Dashboard > Settings > Email</a> to fix this." +msgstr "Δεν έχετε αλλάξει τις αρχικές ρυθμίσεις email . Go to <a href='%s'>Πίνακας ελέγχου > Ρυθμίσεις > Email</a> to fix this." + +#: ../../../app/loader.php:168 +msgid "You have been forbidden to use this website." +msgstr "Απαγορεύεται να χρησιμοποιήσετε αυτή την ιστοσελίδα." + +#: ../../../app/loader.php:326 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Αυτή η σελίδα δεν υπάρχει" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:251 +msgid "Forgot password?" +msgstr "Ξεχάσατε τον κωδικό;" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Επαναφορά κωδικού" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Αποστολή κωδικού ενεργοποίησης ξανά" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Προσθέστε το email σας" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Το email άλλαξε" + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:128 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "Δεν εισήγατε σωστό reCAPTCHA" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:260 +msgid "Invalid Username/Email" +msgstr "Λάθος όνομα χρήστη/κωδικός" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Ο χρήστης δεν έχει email." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:287 +#: ../../../app/routes/route.account.php:309 +#: ../../../app/routes/route.account.php:376 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 +#: ../../../app/routes/route.json.php:533 +#: ../../../app/routes/route.json.php:595 +#: ../../../app/routes/route.json.php:644 +#: ../../../app/routes/route.json.php:691 +#: ../../../app/themes/Peafowl/pages/contact.php:17 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +msgid "Request denied" +msgstr "Το αίτημα αρνήθηκε" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Ο λογαριασμός χρειάζεται να ενεργοποιηθεί για να χρησιμοποιήσετε αυτή την δυνατότητα." + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Ο λογαριασμός έχει ήδη ενεργοποιηθεί." + +#: ../../../app/routes/route.account.php:181 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Δώστε 15 λεπτά στο email. Μπορείτε να προσπαθήσετε ξανά αργότερα" + +#: ../../../app/routes/route.account.php:220 +#, php-format +msgid "Reset your password at %s" +msgstr "Διαγραφή κωδικού στο %s" + +#: ../../../app/routes/route.account.php:222 +#: ../../../app/routes/route.account.php:442 +#: ../../../app/routes/route.settings.php:260 +#: ../../../app/routes/route.signup.php:180 +#, php-format +msgid "Confirmation required at %s" +msgstr "Απαιτείται επιβεβαίωση στο %s" + +#: ../../../app/routes/route.account.php:330 +#: ../../../app/routes/route.signup.php:203 +#, php-format +msgid "Welcome to %s" +msgstr "Καλώς ήρθατε στο %s" + +#: ../../../app/routes/route.account.php:348 +#: ../../../app/routes/route.settings.php:304 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:265 +#: ../../../app/themes/Peafowl/views/settings.php:282 +#: ../../../app/lib/chevereto.js:1270 ../../../app/lib/chevereto.min.js:54 +msgid "Passwords don't match" +msgstr "Οι κωδικοί δεν ταιριάζουν" + +#: ../../../app/routes/route.account.php:410 +#: ../../../app/routes/route.json.php:571 +#: ../../../app/routes/route.settings.php:220 +#: ../../../app/routes/route.signup.php:137 +msgid "Email already being used" +msgstr "Το email χρησιμοποιείτε ήδη" + +#: ../../../app/routes/route.account.php:496 +#: ../../../app/routes/route.signup.php:223 +#: ../../../app/themes/Peafowl/pages/contact.php:146 +#: ../../../lib/Peafowl/peafowl.js:194 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Ελέγξτε τα λάθη στη φόρμα για να συνεχίσετε" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:663 +#: ../../../app/routes/route.dashboard.php:692 +#: ../../../app/routes/route.dashboard.php:721 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.user.php:131 +#: ../../../app/routes/route.user.php:169 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Πρόσφατο" + +#: ../../../app/routes/route.album.php:88 +#: ../../../app/routes/route.category.php:56 +#: ../../../app/routes/route.dashboard.php:671 +#: ../../../app/routes/route.dashboard.php:700 +#: ../../../app/routes/route.dashboard.php:729 +#: ../../../app/routes/route.explore.php:42 +#: ../../../app/routes/route.user.php:139 +#: ../../../app/routes/route.user.php:175 +msgid "Oldest" +msgstr "Παλαιότερο" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:679 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.user.php:147 +msgid "Most viewed" +msgstr "Περισσότερες προβολές" + +#: ../../../app/routes/route.album.php:107 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:91 +msgid "Share" +msgstr "Μοιραστείτε το" + +#: ../../../app/routes/route.album.php:116 +#: ../../../app/routes/route.image.php:132 +msgid "Full info" +msgstr "Πλήρης πληροφορίες" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Στατιστικά" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:83 +#: ../../../app/routes/route.user.php:191 +#: ../../../app/themes/Peafowl/views/settings.php:73 +#: ../../../app/themes/Peafowl/views/user.php:125 +msgid "Images" +msgstr "Εικόνες" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:90 +#: ../../../app/routes/route.user.php:197 +#: ../../../app/themes/Peafowl/header.php:364 +#: ../../../app/themes/Peafowl/views/settings.php:77 +#: ../../../app/themes/Peafowl/views/user.php:125 +msgid "Albums" +msgstr "Άλμπουμ" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:222 +#: ../../../app/routes/route.search.php:97 +msgid "Users" +msgstr "Χρήστες" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:442 +#: ../../../app/themes/Peafowl/header.php:365 +msgid "Settings" +msgstr "Ρυθμίσεις" + +#: ../../../app/routes/route.dashboard.php:153 +msgid "Chevereto version" +msgstr "Έκδοση Chevereto" + +#: ../../../app/routes/route.dashboard.php:154 +msgid "update" +msgstr "ενημέρωση" + +#: ../../../app/routes/route.dashboard.php:154 +msgid "check for updates" +msgstr "έλεγχος για ενημερώσεις" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "PHP version" +msgstr "Έκδοση PHP" + +#: ../../../app/routes/route.dashboard.php:165 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:39 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:40 +msgid "Server" +msgstr "Διακομιστής" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "MySQL version" +msgstr "Έκδοση MySQL" + +#: ../../../app/routes/route.dashboard.php:173 +msgid "MySQL server info" +msgstr "Πληροφορίες διακομιστή MySQL" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "GD Library" +msgstr "GD Library" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "File uploads" +msgstr "Μεταφορτώσεις αρχείων" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +#: ../../../app/themes/Peafowl/views/dashboard.php:418 +#: ../../../app/themes/Peafowl/views/dashboard.php:438 +#: ../../../app/themes/Peafowl/views/dashboard.php:448 +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +#: ../../../app/themes/Peafowl/views/dashboard.php:623 +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +#: ../../../app/themes/Peafowl/views/dashboard.php:654 +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +#: ../../../app/themes/Peafowl/views/dashboard.php:742 +#: ../../../app/themes/Peafowl/views/dashboard.php:752 +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +#: ../../../app/themes/Peafowl/views/dashboard.php:953 +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:987 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1126 +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +#: ../../../app/themes/Peafowl/views/dashboard.php:1296 +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +#: ../../../app/themes/Peafowl/views/dashboard.php:1330 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1530 +#: ../../../app/themes/Peafowl/views/dashboard.php:1556 +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +#: ../../../app/themes/Peafowl/views/dashboard.php:1641 +#: ../../../app/themes/Peafowl/views/dashboard.php:1660 +#: ../../../app/themes/Peafowl/views/dashboard.php:1705 +msgid "Enabled" +msgstr "Ενεργοποιημένο" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +#: ../../../app/themes/Peafowl/views/dashboard.php:418 +#: ../../../app/themes/Peafowl/views/dashboard.php:438 +#: ../../../app/themes/Peafowl/views/dashboard.php:448 +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +#: ../../../app/themes/Peafowl/views/dashboard.php:623 +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +#: ../../../app/themes/Peafowl/views/dashboard.php:654 +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +#: ../../../app/themes/Peafowl/views/dashboard.php:742 +#: ../../../app/themes/Peafowl/views/dashboard.php:752 +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +#: ../../../app/themes/Peafowl/views/dashboard.php:953 +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:987 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1126 +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +#: ../../../app/themes/Peafowl/views/dashboard.php:1296 +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +#: ../../../app/themes/Peafowl/views/dashboard.php:1330 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1530 +#: ../../../app/themes/Peafowl/views/dashboard.php:1556 +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +#: ../../../app/themes/Peafowl/views/dashboard.php:1641 +#: ../../../app/themes/Peafowl/views/dashboard.php:1660 +#: ../../../app/themes/Peafowl/views/dashboard.php:1705 +msgid "Disabled" +msgstr "Απενεργοποιημένο" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "Max. upload size" +msgstr "Μέγ. μέγεθος μεταφόρτωσης" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "Max. post size" +msgstr "Μέγ. μέγεθος ποστ" + +#: ../../../app/routes/route.dashboard.php:193 +msgid "Max. execution time" +msgstr "Μεγ. χρόνος εκτέλεσης" + +#: ../../../app/routes/route.dashboard.php:194 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d δευτερόλεπτο" +msgstr[1] "%d δευτερόλεπτα" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Memory limit" +msgstr "Όριο μνήμης" + +#: ../../../app/routes/route.dashboard.php:217 +#: ../../../app/themes/Peafowl/views/settings.php:322 +msgid "Website" +msgstr "Ιστοσελίδα" + +#: ../../../app/routes/route.dashboard.php:218 +msgid "Content" +msgstr "Περιεχόμενο" + +#: ../../../app/routes/route.dashboard.php:219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1191 +msgid "Listings" +msgstr "Καταχωρήσεις" + +#: ../../../app/routes/route.dashboard.php:220 +msgid "Image upload" +msgstr "Μεταφόρτωση εικόνας" + +#: ../../../app/routes/route.dashboard.php:221 +msgid "Categories" +msgstr "Κατηγορίες" + +#: ../../../app/routes/route.dashboard.php:223 +#: ../../../app/themes/Peafowl/views/dashboard.php:680 +msgid "Flood protection" +msgstr "Προστασία υπερχείλισης" + +#: ../../../app/routes/route.dashboard.php:224 +#: ../../../app/themes/Peafowl/views/dashboard.php:820 +msgid "Theme" +msgstr "Θέμα" + +#: ../../../app/routes/route.dashboard.php:225 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:1177 +msgid "Homepage" +msgstr "Αρχική" + +#: ../../../app/routes/route.dashboard.php:226 +msgid "Banners" +msgstr "Διαφημίσεις" + +#: ../../../app/routes/route.dashboard.php:227 +msgid "System" +msgstr "Σύστημα" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Languages" +msgstr "Γλώσσες" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "External storage" +msgstr "Εξωτερικός χώρος αποθήκευσης" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:231 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Κοινωνικά δίκτυα" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "External services" +msgstr "Εξωτερικές υπηρεσίες" + +#: ../../../app/routes/route.dashboard.php:233 +msgid "IP bans" +msgstr "Αποκλεισμένες IP" + +#: ../../../app/routes/route.dashboard.php:260 +msgid "Local" +msgstr "Τοπικά" + +#: ../../../app/routes/route.dashboard.php:264 +msgid "External" +msgstr "Εξωτερικά" + +#: ../../../app/routes/route.dashboard.php:269 +#: ../../../app/themes/Peafowl/header.php:174 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Όλα" + +#: ../../../app/routes/route.dashboard.php:274 +#: ../../../app/routes/route.image.php:147 +#: ../../../app/themes/Peafowl/views/dashboard.php:1413 +msgid "search content" +msgstr "αναζήτηση περιεχομένων" + +#: ../../../app/routes/route.dashboard.php:311 +msgid "Invalid website name" +msgstr "Λανθασμένο όνομα ιστοσελίδας" + +#: ../../../app/routes/route.dashboard.php:316 +msgid "Invalid language" +msgstr "Λανθασμένη γλώσσα" + +#: ../../../app/routes/route.dashboard.php:321 +msgid "Invalid timezone" +msgstr "Λανθασμένη ζώνη ώρας" + +#: ../../../app/routes/route.dashboard.php:326 +#: ../../../app/routes/route.dashboard.php:361 +#: ../../../app/routes/route.dashboard.php:471 +#: ../../../app/routes/route.dashboard.php:605 +msgid "Invalid value" +msgstr "Λανθασμένη τιμή" + +#: ../../../app/routes/route.dashboard.php:331 +msgid "Invalid upload storage mode" +msgstr "Λανθασμένος τρόπος αποθήκευσης αρχείου μεταφόρτωσης" + +#: ../../../app/routes/route.dashboard.php:336 +msgid "Invalid upload filenaming" +msgstr "Λανθασμένη ονομασία αρχείου μεταφόρτωσης" + +#: ../../../app/routes/route.dashboard.php:341 +msgid "Invalid thumb width" +msgstr "Λάθος μήκος" + +#: ../../../app/routes/route.dashboard.php:346 +msgid "Invalid thumb height" +msgstr "Λάθος ύψος μικρογραφίας" + +#: ../../../app/routes/route.dashboard.php:351 +msgid "Invalid medium width" +msgstr "Λάθος μήκος μεσαίας" + +#: ../../../app/routes/route.dashboard.php:356 +msgid "Invalid theme" +msgstr "Λάθος θέμα" + +#: ../../../app/routes/route.dashboard.php:366 +msgid "Invalid theme tone" +msgstr "Λάθος τόνος θέματος" + +#: ../../../app/routes/route.dashboard.php:386 +msgid "Invalid theme image listing size" +msgstr "Λάθος μέγεθος εικόνας θέματος" + +#: ../../../app/routes/route.dashboard.php:391 +msgid "Invalid user id" +msgstr "Λάθος ταυτότητα χρήστη" + +#: ../../../app/routes/route.dashboard.php:396 +msgid "Invalid email mode" +msgstr "Λάθος τρόπος λειτουργίας email" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Invalid SMTP port" +msgstr "Λάθος θύρα SMTP" + +#: ../../../app/routes/route.dashboard.php:406 +msgid "Invalid SMTP security" +msgstr "Λάθος ασφάλειας SMTP" + +#: ../../../app/routes/route.dashboard.php:411 +msgid "Invalid website mode" +msgstr "Λάθος μορφή ιστοσελίδας" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Invalid website content privacy mode" +msgstr "Λάθος περιεχόμενο ιδιωτικότητας ιστοσελίδας" + +#: ../../../app/routes/route.dashboard.php:447 +msgid "Invalid upload image path" +msgstr "Λάθος διαδρομή ανεβάσματος εικόνας" + +#: ../../../app/routes/route.dashboard.php:474 +#, php-format +msgid "Max. allowed %s" +msgstr "Μεγ. επιτρεπόμενο %s" + +#: ../../../app/routes/route.dashboard.php:524 +msgid "Invalid SMTP server" +msgstr "Λάθος διακομιστής SMTP" + +#: ../../../app/routes/route.dashboard.php:525 +msgid "Invalid SMTP username" +msgstr "Λάθος όνομα χρήστη SMTP" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid URL" +msgstr "Λάθος λινκ" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Top users" +msgstr "Κορυφαίοι χρήστες" + +#: ../../../app/routes/route.dashboard.php:775 +#: ../../../app/themes/Peafowl/header.php:367 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Πίνακας ελέγχου" + +#: ../../../app/routes/route.explore.php:81 +#: ../../../app/themes/Peafowl/header.php:184 +#: ../../../app/themes/Peafowl/header.php:202 +#: ../../../app/themes/Peafowl/views/dashboard.php:280 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Αναζήτηση" + +#: ../../../app/routes/route.image.php:118 +#: ../../../app/themes/Peafowl/header.php:381 +msgid "About" +msgstr "Περί" + +#: ../../../app/routes/route.image.php:125 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:85 +msgid "Embed codes" +msgstr "Επισυναπτόμενος κώδικας(embed)" + +#: ../../../app/routes/route.image.php:142 +msgid "Image ID" +msgstr "Ταυτότητα εικόνας" + +#: ../../../app/routes/route.image.php:146 +msgid "Uploader IP" +msgstr "Ανέβασμα από IP" + +#: ../../../app/routes/route.image.php:147 +msgid "Ban IP" +msgstr "Αποκλεισμός IP" + +#: ../../../app/routes/route.image.php:147 +msgid "IP already banned" +msgstr "IP ήδη αποκλεισμένη" + +#: ../../../app/routes/route.image.php:150 +msgid "Upload date" +msgstr "Ημερομηνία ανεβάσματος" + +#: ../../../app/routes/route.image.php:175 +#, php-format +msgid "%s images" +msgstr "%s εικόνες" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:232 +#: ../../../app/routes/route.json.php:718 +#: ../../../app/routes/route.json.php:782 +#: ../../../app/routes/route.json.php:883 +#: ../../../app/routes/route.json.php:1026 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Χρειάζεται είσοδος" + +#: ../../../app/routes/route.json.php:471 +#: ../../../app/routes/route.json.php:662 +msgid "IP address already banned" +msgstr "Η IP είναι ήδη αποκλεισμένη" + +#: ../../../app/routes/route.json.php:540 +#: ../../../app/routes/route.json.php:602 +msgid "Missing values" +msgstr "Λείπουν αξίες" + +#: ../../../app/routes/route.json.php:561 +msgid "Invalid role" +msgstr "Λάθος ρόλος" + +#: ../../../app/routes/route.json.php:566 +msgid "Username already being used" +msgstr "Το όνομα χρήστη χρησιμποιείτε ήδη" + +#: ../../../app/routes/route.json.php:1063 +#, php-format +msgid "%s has been disconnected." +msgstr "%s αποσυνδέθηκε." + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Λανθασμένος συνδυασμός ονόματος χρήστη/κωδικού πρόσβασης" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:265 +#: ../../../app/themes/Peafowl/header.php:271 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Είσοδος" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Αποσυνδεθήκατε" + +#: ../../../app/routes/route.search.php:118 +#, php-format +msgid "Image search results for %s" +msgstr "Αποτελέσματα αναζήτησης εικόνας για %s" + +#: ../../../app/routes/route.search.php:129 +#: ../../../app/themes/Peafowl/header.php:211 +#: ../../../app/themes/Peafowl/header.php:216 +#: ../../../app/themes/Peafowl/views/dashboard.php:270 +msgid "Search" +msgstr "Αναζήτηση" + +#: ../../../app/routes/route.settings.php:58 +msgid "Account" +msgstr "Λογαριασμός" + +#: ../../../app/routes/route.settings.php:59 +msgid "Profile" +msgstr "Προφίλ" + +#: ../../../app/routes/route.settings.php:60 +#: ../../../app/themes/Peafowl/header.php:288 +#: ../../../app/themes/Peafowl/header.php:336 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:51 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:274 +#: ../../../app/themes/Peafowl/views/signup.php:44 +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "Password" +msgstr "Κωδικός" + +#: ../../../app/routes/route.settings.php:61 +msgid "Linked accounts" +msgstr "Ενωμένοι λογαριασμοί" + +#: ../../../app/routes/route.settings.php:246 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Αποστάλθηκε ένα email στη διεύθυνση %s με οδηγίες για την ενεργοποίηση αυτού του email" + +#: ../../../app/routes/route.settings.php:279 +#: ../../../app/themes/Peafowl/pages/contact.php:22 +msgid "Invalid name" +msgstr "Λάθος όνομα" + +#: ../../../app/routes/route.settings.php:282 +msgid "Invalid website" +msgstr "Λάθος ιστοσελίδα" + +#: ../../../app/routes/route.settings.php:290 +msgid "Wrong password" +msgstr "Λάθος κωδικός πρόσβασης" + +#: ../../../app/routes/route.settings.php:293 +msgid "Use a new password" +msgstr "Χρησιμοποιήστε ένα νέο κωδικό πρόσβασης" + +#: ../../../app/routes/route.settings.php:360 +#: ../../../app/themes/Peafowl/views/dashboard.php:1751 +#: ../../../app/themes/Peafowl/views/settings.php:409 +msgid "Changes have been saved." +msgstr "Οι αλλαγές αποθηκέυτηκαν" + +#: ../../../app/routes/route.settings.php:379 +msgid "Password has been changed" +msgstr "Ο κωδικός πρόσβασης άλλαξε" + +#: ../../../app/routes/route.settings.php:384 +msgid "Password has been created." +msgstr "Ο κωδικός δημιουργήθηκε" + +#: ../../../app/routes/route.settings.php:399 +msgid "Wrong Username/Email values" +msgstr "Λάθος τιμές για όνομα χρήστη/email" + +#: ../../../app/routes/route.settings.php:442 +#, php-format +msgid "Settings for %s" +msgstr "Ρυθμίσεις για %s" + +#: ../../../app/routes/route.signup.php:238 +#: ../../../app/themes/Peafowl/header.php:312 +#: ../../../app/themes/Peafowl/header.php:318 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:58 +msgid "Create account" +msgstr "Δημιουργία λογαριασμού" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Images" +msgstr "Εικόνες του %s" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Albums" +msgstr "Αλμπουμ του %s" + +#: ../../../app/themes/Peafowl/header.php:218 +msgid "Close" +msgstr "Κλείσιμο" + +#: ../../../app/themes/Peafowl/header.php:218 +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Advanced search" +msgstr "Προχωρημένη αναζήτηση" + +#: ../../../app/themes/Peafowl/header.php:229 +#: ../../../app/themes/Peafowl/views/dashboard.php:290 +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Random" +msgstr "Τυχαία" + +#: ../../../app/themes/Peafowl/header.php:239 +#, php-format +msgid "Notices (%s)" +msgstr "Σημειώσεις (%s)" + +#: ../../../app/themes/Peafowl/header.php:254 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Upload" +msgstr "Ανέβασμα" + +#: ../../../app/themes/Peafowl/header.php:277 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:71 +msgid "Sign in with another account" +msgstr "Είσοδος με διαφορετικό λογαριασμό" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/header.php:328 +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:32 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:68 +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.js:2192 +#: ../../../lib/Peafowl/peafowl.min.js:29 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "or" +msgstr "ή" + +#: ../../../app/themes/Peafowl/header.php:287 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Όνομα χρήστη ή διέυθυνση email" + +#: ../../../app/themes/Peafowl/header.php:290 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "Διατήρηση σύνδεσης" + +#: ../../../app/themes/Peafowl/header.php:297 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Δεν έχετε λογαριασμό; <a href='%s'>Εγγραφείτε </a> τώρα." + +#: ../../../app/themes/Peafowl/header.php:324 +msgid "Sign up with another account" +msgstr "Εγγραφείτε με άλλο λογαριασμό" + +#: ../../../app/themes/Peafowl/header.php:334 +#: ../../../app/themes/Peafowl/pages/contact.php:106 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +msgid "Email address" +msgstr "Διέυθυνση email" + +#: ../../../app/themes/Peafowl/header.php:335 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:137 +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Όνομα χρήστη" + +#: ../../../app/themes/Peafowl/header.php:337 +#: ../../../app/themes/Peafowl/views/signup.php:60 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "Με την εγγραφή σας συμφωνείτε στους <a href=\"%s\">Όρους χρήσης </a> μας" + +#: ../../../app/themes/Peafowl/header.php:363 +msgid "My Profile" +msgstr "Το προφίλ μου" + +#: ../../../app/themes/Peafowl/header.php:369 +msgid "Sign out" +msgstr "Αποσύνδεση" + +#: ../../../app/themes/Peafowl/header.php:385 +msgid "Terms of service" +msgstr "Όροι χρήσης" + +#: ../../../app/themes/Peafowl/header.php:386 +msgid "Privacy" +msgstr "Ιδιωτικότητα" + +#: ../../../app/themes/Peafowl/header.php:387 +#: ../../../app/themes/Peafowl/pages/contact.php:4 +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Contact" +msgstr "Επικοινωνία" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Για να ολοκληρώσετε την διαδικασία πρέπει να <a href=\"%s\">ενεργοποιήσετε το email σας</a>." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Για να ολοκληρώσετε την διαδικασία πρέπει να <a href=\"%s\">ενεργοποιήσετε τον λογαριασμό σας</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Για σβήσιμο του κωδικού <a href=\"%s\">ακολούθησε αυτό το λινκ</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Γεια %n, καλώς ήρθες στο %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Τώρα που ο λογαριασμός σας είναι έτοιμος μπορείτε να απολαύσετε το ανέβασμα των εικόνων σας, να δημιουργήσετε άλμπουμ και να ορίσετε την ιδιωτικότητα του περιεχομένου σας καθώς και πολλά άλλα ωραία πράγματα που θα ανακαλύψετε." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Ευχαρισστούμε για τη συμμετοχή" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Αυτό το email αποστάλθηκε από %w %u" + +#: ../../../app/themes/Peafowl/pages/contact.php:10 +msgid "General questions/comments" +msgstr "Γενικές ερωτήσεις/σχόλια" + +#: ../../../app/themes/Peafowl/pages/contact.php:11 +msgid "DMCA complaint" +msgstr "καταγγελία DMCA" + +#: ../../../app/themes/Peafowl/pages/contact.php:25 +msgid "Invalid message" +msgstr "Λάθος μήνυμα" + +#: ../../../app/themes/Peafowl/pages/contact.php:28 +msgid "Invalid subject" +msgstr "Λάθος θέμα" + +#: ../../../app/themes/Peafowl/pages/contact.php:36 +msgid "Invalid reCAPTCHA" +msgstr "Λάθος reCAPTCHA" + +#: ../../../app/themes/Peafowl/pages/contact.php:81 +msgid "Mail error" +msgstr "Σφάλμα mail" + +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Message sent" +msgstr "Το μήνυμα αποστάλθηκε" + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "We will be in touch soon." +msgstr "Θα έρθουμε σε επαφή σύντομα" + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "If you want to send a message fill the form below." +msgstr "Αν θέλετε να στείλετε ένα μήνυμα, χρησιμοποιήστε την παρακάτω φόρμα." + +#: ../../../app/themes/Peafowl/pages/contact.php:101 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:523 +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +#: ../../../app/themes/Peafowl/views/settings.php:316 +msgid "Name" +msgstr "Όνομα" + +#: ../../../app/themes/Peafowl/pages/contact.php:102 +msgid "Your name" +msgstr "Το όνομά σας" + +#: ../../../app/themes/Peafowl/pages/contact.php:107 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:144 +msgid "Your email address" +msgstr "To email σου" + +#: ../../../app/themes/Peafowl/pages/contact.php:111 +msgid "Subject" +msgstr "Θέμα" + +#: ../../../app/themes/Peafowl/pages/contact.php:125 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Message" +msgstr "Μήνυμα" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +msgid "Send message" +msgstr "Αποστολή μηνύματος" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../lib/Peafowl/peafowl.js:2193 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "cancel" +msgstr "ακύρωση" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop images here to upload" +msgstr "Σύρετε κι αφήστε εικόνες εδώ για να ανεβάσετε" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Διάλεξε τις εικόνες που θες να ανεβάσεις" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:15 +msgid "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "Μπορείτε επίσης να <a data-trigger=\"anywhere-upload-input\">επιλέξετε από τον υπολογιστή σας</a> ή να <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">προσθέσετε URL εικόνων</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:16 +msgid "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." +msgstr "Μπορείς επίσης <a data-trigger=\"anywhere-upload-input-camera\">πάρε φωτογραφία</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:20 +msgid "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" +msgstr "Ανέβασμα <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">εικόνων</span>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:21 +msgid "The queue is being uploaded. It will take just a few seconds to complete." +msgstr "Η ουρά ανεβαίνει. Θα χρειαστεί μερικά δευτερόλεπτα για να ολοκληρωθεί." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:25 +msgid "Upload complete" +msgstr "Το ανέβασμα ολοκληρώθηκε" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +#, php-format +msgid "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." +msgstr "Το περιεχόμενο προστέθηκε στη <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">δημόσια ροή</a>. Μπορείτε να <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">δημιουργήσετε ένα άλμπουμ</a> ή να <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">μετακινήσετε τις <span data-text=\"queue-objects\">εικόνες</span></a> σε ένα υπάρχον άλμπουμ." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:28 +msgid "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." +msgstr "Μπορείτε να <a href=\"%s\">δημιουργήσετε ένα λογαριασμό</a> ή να <a href=\"%l\">συνδεθείτε</a> για να αποθηκεύσετε μελλοντικά ανεβάσματα στον λογαριασμό σας." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:33 +msgid "No <span data-text=\"queue-objects\">images</span> have been uploaded" +msgstr "Δεν ανέβηκε καμία <span data-text=\"queue-objects\">εικόνα</span>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:34 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Προέκυψαν κάποια λάθη και το σύστημα δε μπόρεσε να ολοκλρώσει το αίτημα." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:54 +msgid "Select category" +msgstr "Διάλεξε κατηγορία" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Change upload privacy" +msgstr "Άλλαξε ιδιωτικότητα ανεβάσματος" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Mark this if the upload is not family safe" +msgstr "Επέλεξε εαν δεν είναι κατάλληλο για ανηλίκους" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Not family safe upload" +msgstr "Δεν είναι κατάλληλο για ανηλίκους" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +msgid "Uploading" +msgstr "Ανεβαίνει" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "cancel remaining" +msgstr "Ακύρωση υπολοίπων" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "Note: Some images couldn't be uploaded." +msgstr "Σημείωση: Κάποιες εικόνες δεν μπόρεσαν να ανέβουν." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "learn more" +msgstr "μάθε περισσότερα" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:79 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Ελέγξτε την <a data-modal=\"simple\" data-target=\"failed-upload-result\">αναφορά σφαλμάτων</a> για περισσότερες πληροφορίες." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:82 +msgid "max" +msgstr "μέγιστο" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:84 +msgid "close" +msgstr "κλείσιμο" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:143 +msgid "Add image URLs" +msgstr "Προσθήκη λινκ εικόνων" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:145 +msgid "Add the image URLs here" +msgstr "Προσθήκη των λινκ εικόνων εδώ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:160 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:26 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Δημιουργία άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:161 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Το ανεβασμένο περιεχόμενο θα μετακινηθεί σε αυτό το νέο άλμπουμ. Μπορείτε επίσης να μετακινήσετε το περιεχόμενο σε ένα <a class=\"modal-switch\" data-switch=\"move-existing-album\">υπάρχον άλμπουμ</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:172 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Μετακίνηση σε άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Επιλέξτε ένα υπάρχον άλμπουμ για να μετακινήσετε το ανεβασμένο περιεχόμενο. Μπορείτε επίσης να <a class=\"modal-switch\" data-switch=\"move-new-album\">δημιουργήσετε ένα νέο άλμπουμ</a> και να μετακινήσετε το περιεχόμενο εκεί." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:189 +msgid "Error report" +msgstr "Λάθος αναφορά" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:87 +msgid "album" +msgid_plural "albums" +msgstr[0] "άλμπουμ" +msgstr[1] "άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Λινκ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Προβολές Λινκ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Απευθείας λινικ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Κώδικες HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML embed" +msgstr "Ενσωμάτωση HTM" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML original linked" +msgstr "Σύνδεσμος HTML πρωτότυπης" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "Σύνδεσμος HTML μεσαίας" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "Σύνδεσμος HTML μικρογραφίας" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode embed" +msgstr "Ενσωμάτωση BBCode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode original linked" +msgstr "Σύνδεσμος BBCode πρωτότυπης" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Σύνδεσμος BBCode μεσαίας" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Σύνδεσμος BBCode μικρογραφίας" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Όλες αυτές οι λέξεις" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Συμπλήρωσε τις απαραίτητες λέξεις: tri-colour rat terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Η ακριβής λέξη ή φράση" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Βάλε τις ακριβείς λέξεις στα εισαγωγικά: \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Καμία από αυτές τις λέξεις" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Βάλε ένα αρνητικό πρόσημο λίγο πριν από τις λέξεις που δεν θες: -rodent -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Κατηγορία" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Αποθήκευση" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:81 +msgid "Uploader IP address" +msgstr "Διέυθυνση IP uploader" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +msgid "Album name" +msgstr "Όνομα άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Untitled album" +msgstr "Ανώνυμο άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "move to existing album" +msgstr "μετακινηθείτε στο υπάρχον άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +msgid "Album description" +msgstr "Περιγραφή του άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:1069 +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "optional" +msgstr "προαιρετικά" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Brief description of this album" +msgstr "Σύντομη περιγραφή αυτού του άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:24 +msgid "Album Privacy" +msgstr "Ιδιωτικότητα άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:25 +msgid "Who can view this content" +msgstr "Ποιος μπορεί να δει αυτό το περιεχόμενο" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:26 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Public" +msgstr "Δημίσιο" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:27 +msgid "Private (just me)" +msgstr "Ιδιωτικό (μόνο εγώ)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:28 +msgid "Private (anyone with the link)" +msgstr "Ιδιωτικό (ο καθένας με το σύνδεσμο)" + +#: ../../../app/themes/Peafowl/snippets/form_category.php:9 +msgid "No category" +msgstr "Χωρίς κατηγορία" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Όνομα κατηγορίας" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:524 +msgid "URL key" +msgstr "Κλειδί URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Κλειδί κατηγορίας URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Μόνο γράμματα, νούμερα και απόστροφοι" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +msgid "Description" +msgstr "Περιγραφή" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Συνοπτική περιγραφή της κατηγορίας" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +msgid "Title" +msgstr "Τίτλος" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Ανώνυμη Εικόνα" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Επιλέξτε αυτό, αν η εικόνα δεν είναι κατάλληλη για ανηλίκους" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:36 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Σημείωση ως μη ασφαλές" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Συνοπτική περιγραφή της εικόνας" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Διέυθυνση IP" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Ημερομηνία λήξης" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "ΕΕΕΕ-ΜΜ-ΗΗ ΩΩ:ΛΛ:ΔΔ" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Παράδειγμα" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Μέχρι ποιά ημερομηνία αυτή η IP θα πρέπει να είναι απαγορευμένη;Αφήστε το κενό για να μην λήξη ποτέ." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Μήνυμα κειμένου , HTML, ή απευθείας λινκ" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Υπάρχον άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Αλμπουμ" +msgstr[1] "Αλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2341 ../../../app/lib/chevereto.js:3254 +#: ../../../app/lib/chevereto.min.js:115 ../../../app/lib/chevereto.min.js:162 +msgid "private" +msgstr "ιδιωτικό" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "δημιουργία άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Όνομα αποθηκευτικού χώρου" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:16 +msgid "Region" +msgstr "περιοχή" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:26 +msgid "Storage bucket" +msgstr "κάδος αποθήκευσης" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:29 +msgid "Key" +msgstr "Κλειδί" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:30 +msgid "Storage key" +msgstr "Κλειδί αποθήκευσης" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:33 +msgid "Secret" +msgstr "Μυστικό" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:34 +msgid "Storage secret" +msgstr "Μυστικό αποθήκευσης" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:40 +msgid "Hostname or IP of the storage server" +msgstr "Διέυθυνση ή Ip του σέρβερ αποθήκευσης" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:43 +msgid "Path" +msgstr "Μονοπάτι" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:44 +msgid "Server path" +msgstr "Μονοπάτι σέρβερ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:44 +msgid "Server path where the files will be stored" +msgstr "Διαδρομή στον server όπου θα αποθηκεύονται τα αρχεία" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +msgid "Server username" +msgstr "Όνομα χρήστη σέρβερ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:52 +msgid "Server password" +msgstr "Κωδικός σέρβερ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:57 +msgid "Storage capacity" +msgstr "Χωρητικότητα αποθήκευσης" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Παράδειγμα: 20 GB, 1 TB, κτλ." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage URL" +msgstr "URL αποθήκευσης" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "δείτε περισσότερα" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Φορτώστε περισσότερα" + +#: ../../../app/themes/Peafowl/snippets/listing.php:91 +msgid "Previous" +msgstr "Προηγούμενο" + +#: ../../../app/themes/Peafowl/snippets/listing.php:98 +msgid "Next" +msgstr "Επόμενο" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Επιλογή όλων" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:11 +msgid "Selection" +msgstr "Επιλογή" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:12 +msgid "Action" +msgstr "Δράση" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:34 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Εκχώρηση κατηγορίας" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:40 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#: ../../../app/themes/Peafowl/views/dashboard.php:581 +msgid "Delete" +msgstr "Διαγραφή" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:41 +msgid "Clear selection" +msgstr "Απαλοιφή επιλογής" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "Για να χρησιμοποιήσετε όλες τις δυνατότητες αυτού του ιστότοπου πρέπει να είστε συνδεδεμένοι. Αν δεν έχετε λογαριασμό μπορείτε να <a href=\"%s\">εγγραφείτε</a> αμέσως τώρα." + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +msgid "forgot?" +msgstr "ξεχάσατε;" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +msgid "Link" +msgstr "Σύνδεσμος" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:282 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Σημείωση: Αυτό το περιεχόμενο είναι ιδιωτικό. Αλλάξτε την ιδιωτικότητα σε \"δημόσιο\" για να το μοιραστείτε." + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Δεν υπάρχει τίποτα για εμφάνιση εδώ." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:75 +#: ../../../app/themes/Peafowl/views/image.php:441 +msgid "Edit image details" +msgstr "Επεξεργασία στοιχείων εικόνας" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Διόρθωση λεπτομερειών του άλμπουμ" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Όλες οι επιλεγμένες εικόνες θα προστεθούν σε αυτή την κατηγορία." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Δεν υπάρχουν κατηγορίες." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Επιβεβαίωση διαγραφής" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Θέλετε πραγματικά να καταργήσετε αυτό το περιεχόμενο; Αυτό δεν μπορεί να αναιρεθεί." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Θέλετε πραγματικά να αφαιρέσετε όλο το επιλεγμένο περιεχόμενο; Αυτό δεν μπορεί να αναιρεθεί." + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_guest.php:2 +msgid "Uploaded by guest to Public" +msgstr "Ανέβηκε από επισκέπτη ως Δημόσιο" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Από %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/lib/chevereto.js:3186 ../../../app/lib/chevereto.min.js:157 +#: ../../../lib/Peafowl/peafowl.js:625 ../../../lib/Peafowl/peafowl.min.js:36 +msgid "Select" +msgstr "Επιλογή" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Επεξεργασία" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Η σελίδα που ζητήσατε δεν βρέθηκε." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Αναζήτηση για κάτι άλλο" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Ο χρήστης έχει διαγραφεί" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:158 +#: ../../../app/lib/chevereto.js:3163 ../../../app/lib/chevereto.min.js:155 +msgid "The content has been deleted." +msgstr "Το περιεχόμενο έχει διαγραφεί." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Ο λογαριασμός σας είναι σχεδόν έτοιμος" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Ένα email αποστάλθηκε προς την διεύθυνση %s με οδηγίες για την ενεργοποίηση του λογαριασμού σας. Ο σύνδεσμος ενεργοποίησης θα είναι ενεργός μόνο για 48 ώρες. Αν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Πηγαίνετε στην αρχική σελίδα" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Επαναποστολή ενεργοποίησης" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Αλλάξατε με επιτυχία το email του λογαριασμού σας σε %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Πήγαινε στο προφίλ μου" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Ένας σύνδεσμος επιβεβαίωσης θα σταλεί σε αυτό το email με λεπτομέρειες για το πως να ενεργοποιήσετε τον λογαριασμό σας." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Ένα email με οδηγίες για την επαναφορά του μυστικού κωδικού σας αποστάλθηκε προς την εγγεγραμμένη διεύθυνση email σας. Αν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:989 ../../../app/lib/chevereto.js:1065 +#: ../../../app/lib/chevereto.js:1143 ../../../app/lib/chevereto.js:1293 +#: ../../../app/lib/chevereto.min.js:44 ../../../app/lib/chevereto.min.js:48 +#: ../../../app/lib/chevereto.min.js:52 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2422 ../../../lib/Peafowl/peafowl.js:2937 +#: ../../../lib/Peafowl/peafowl.min.js:138 +#: ../../../lib/Peafowl/peafowl.min.js:169 +msgid "An error occurred. Please try again later." +msgstr "Συνέβη κάποιο λάθος. Παρακαλώ δοκιμάστε ξανά αργότερα." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Ένα προηγούμενο email με οδηγίες για την επαναφορά του μυστικού κωδικού σας αποστάλθηκε. Αν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "Εισάγετε το όνομα χρήστη σας ή τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε για να δημιουργήσετε το λογαριασμό σας." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:407 ../../../lib/Peafowl/peafowl.js:2191 +#: ../../../lib/Peafowl/peafowl.min.js:23 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "Submit" +msgstr "Αποστολή" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Ο κωδικός πρόσβασής σας έχει αλλάξει. Τώρα μπορείτε να δοκιμάσετε να συνδεθείτε χρησιμοποιώντας το νέο κωδικό πρόσβασης." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Σύνδεση" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "Πληκτρολογήστε το νέο κωδικό πρόσβασης που θέλετε να χρησιμοποιήσετε." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "Νέος κωδικός" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:258 +#: ../../../app/themes/Peafowl/views/settings.php:275 +#: ../../../app/themes/Peafowl/views/signup.php:45 +#, php-format +msgid "%d characters min" +msgstr "ελάχιστοι χαρακτήρες %d" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:258 +msgid "Enter your new password" +msgstr "Εισάγετε το νέο κωδικό πρόσβασής σας" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:280 +msgid "Confirm password" +msgstr "Επιβεβαίωση κωδικού πρόσβασης" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:264 +msgid "Re-enter your new password" +msgstr "Εισάγετε ξανά το νέο κωδικό πρόσβασής σας" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account.n\\If you don't receive the instructions try checking your junk or spam filters." +msgstr "Ένα email αποστάλθηκε προς την διεύθυνση %s με οδηγίες για την ενεργοποίηση του λογαριασμού σας.\\nΑν δεν λάβετε τις οδηγίες ελέγξτε τα σκουπίδια ή τα φίλτρα ανεπιθύμητης αλληλογραφίας." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:19 +msgid "Enter the email address that you used to create your account to continue." +msgstr "Εισάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε για να δημιουργήσετε τον λογαριασμό σας και να συνεχίσετε." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +msgid "This content is private" +msgstr "Το περιεχόμενο είναι ιδιωτικό" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Θέλετε πραγματικά να διαγράψετε αυτό το άλμπουμ και όλες τις εικόνες του; Αυτό δεν μπορεί να αναιρεθεί." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Διαγραφή άλμπουμ" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Σύνδεσμος άλμπουμ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Εικόνα" +msgstr[1] "Εικόνες" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:120 +msgid "User" +msgid_plural "Users" +msgstr[0] "Χρήστης" +msgstr[1] "Χρήστες" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1435 +msgid "Disk used" +msgstr "Δίσκος που χρησιμοποιήθηκε" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Προσθέστε χρήστη" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:115 +msgid "Role" +msgstr "Ρόλος" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:119 +msgid "Administrator" +msgstr "Διαχειριστής" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Προσθήκη κατηγορίας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:197 +msgid "Website name" +msgstr "Όνομα ιστοσελίδας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:202 +msgid "Website doctitle" +msgstr "Τίτλος ιστοσελίδας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:206 +msgid "Website description" +msgstr "Περιγραφή ιστοσελίδας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:211 +msgid "Website keywords" +msgstr "Keywords ιστοσελίδας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:232 +msgid "Default time zone" +msgstr "Προεπιλεγμένη ζώνη ώρας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Select region" +msgstr "Επιλέξτε περιοχή" + +#: ../../../app/themes/Peafowl/views/dashboard.php:276 +msgid "Enable this if you want to allow the search feature." +msgstr "Ενεργοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε τη λειτουργία αναζήτησης." + +#: ../../../app/themes/Peafowl/views/dashboard.php:286 +msgid "Enable this if you want to allow the explore page." +msgstr "Ενεργοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε την εξερεύνηση σελίδας." + +#: ../../../app/themes/Peafowl/views/dashboard.php:335 +msgid "Enable uploads" +msgstr "Ενεργοποίηση uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:341 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Ενεργοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε το ανέβασμα εικόνων. Αυτή η ρύθμιση δεν επηρεάζει τους διαχειριστές." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Guest uploads" +msgstr "Ανέβασμα από επισκέπτες" + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Ενεργοποιήστε αυτό αν θέλετε μη εγγεγραμμένοι χρήστες να μπορούν να ανεβάσουν." + +#: ../../../app/themes/Peafowl/views/dashboard.php:357 +msgid "Max. filesize" +msgstr "Μέγ. μέγεθος αρχείου" + +#: ../../../app/themes/Peafowl/views/dashboard.php:360 +#, php-format +msgid "Max. allowed filesize. (Max allowed by server is %s)" +msgstr "Μέγιστο επιτρεπόμενο μέγεθος αρχείου. (Το μέγιστο επιτρεπόμενο από τον διακομιστή είναι %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Image path" +msgstr "Διαδρομή εικόνων" + +#: ../../../app/themes/Peafowl/views/dashboard.php:364 +msgid "Relative to Chevereto root" +msgstr "Σε σχέση με την θέση του Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:369 +msgid "Storage mode" +msgstr "Τρόπος αποθήκευσης" + +#: ../../../app/themes/Peafowl/views/dashboard.php:372 +msgid "Datefolders" +msgstr "Φάκελοι δεδομένων" + +#: ../../../app/themes/Peafowl/views/dashboard.php:372 +msgid "Direct" +msgstr "Απευθείας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:375 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Οι φάκελοι δεδομένων δημιουργούν %s δομή" + +#: ../../../app/themes/Peafowl/views/dashboard.php:378 +msgid "File naming method" +msgstr "Μέθοδος ονοματοδοσίας αρχείων" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Original" +msgstr "Πρωτότυπο" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Mixed" +msgstr "Ανάμεικτο" + +#: ../../../app/themes/Peafowl/views/dashboard.php:384 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." +msgstr "Το \"Πρωτότυπο\" θα προσπαθήσει να διατηρήσει το όνομα του πηγαίου αρχείου ενώ το \"Τυχαίο\" θα δημιουργήσει ένα τυχαίο όνομα. Το \"Ανάμεικτο\" είναι ένας συνδυασμός και των δύο μεθόδων." + +#: ../../../app/themes/Peafowl/views/dashboard.php:390 +msgid "Thumb size" +msgstr "Μέγεθος μικρογραφίας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:401 +msgid "Thumbnails will be fixed to this size." +msgstr "Οι μικρογραφίες θα είναι σταθερές σε αυτό το μέγεθος." + +#: ../../../app/themes/Peafowl/views/dashboard.php:404 +msgid "Medium size" +msgstr "Μέγεθος μεσαίας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:409 +msgid "Height will be automatic calculated." +msgstr "Το ύψος θα υπολογίζεται αυτόματα" + +#: ../../../app/themes/Peafowl/views/dashboard.php:422 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Ενεργοποιήστε αυτό για να βάλετε ένα λογότυπο ή οτιδήποτε άλλο θέλετε στο ανέβασμα εικόνων." + +#: ../../../app/themes/Peafowl/views/dashboard.php:429 +#: ../../../app/themes/Peafowl/views/dashboard.php:889 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Προειδοποίηση: Δεν είναι δυνατή η εγγραφή στο %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:466 +msgid "Watermark image" +msgstr "Υδατογράφημα εικόνας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:472 +msgid "Watermark image to use. Must be a PNG." +msgstr "Χρήση υδατογραφημένης εικόνας. Πρέπει να είναι σε .png" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Watermark position" +msgstr "Θέση υδατογραφήματος" + +#: ../../../app/themes/Peafowl/views/dashboard.php:479 +msgid "left top" +msgstr "πάνω αριστερά" + +#: ../../../app/themes/Peafowl/views/dashboard.php:480 +msgid "left center" +msgstr "αριστερά στη μέση" + +#: ../../../app/themes/Peafowl/views/dashboard.php:481 +msgid "left bottom" +msgstr "κάτω αριστερά" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "center top" +msgstr "πάνω κεντρικά" + +#: ../../../app/themes/Peafowl/views/dashboard.php:483 +msgid "center center" +msgstr "στην μέση κεντρικά" + +#: ../../../app/themes/Peafowl/views/dashboard.php:484 +msgid "center bottom" +msgstr "στην μέση κάτω" + +#: ../../../app/themes/Peafowl/views/dashboard.php:485 +msgid "right top" +msgstr "πάνω δεξιά" + +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +msgid "right center" +msgstr "δεξιά στην μέση" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "right bottom" +msgstr "κάτω δεξιά" + +#: ../../../app/themes/Peafowl/views/dashboard.php:492 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Σχετική θέση της υδατογρφημένης εικόνας. Πρώτη οριζόντια στοίχιση και στη συνέχεια κατακόρυφη στοίχιση." + +#: ../../../app/themes/Peafowl/views/dashboard.php:550 +msgid "Edit category" +msgstr "Επεξεργασία κατηγορίας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Μπλοκάρισμα ανεβάσματος εικόνων από IP αν το σύστημα παρατηρήσει συμπεριφορά flood βασισμένη σε ανεβάσματα ανά χρονική περίοδο. Αυτή η ρύθμιση δεν επηρεάζει τους διαχειριστές." + +#: ../../../app/themes/Peafowl/views/dashboard.php:690 +msgid "Notify to email" +msgstr "Ειδοποίηση σε email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:699 +msgid "Minute limit" +msgstr "Όριο ανά λεπτό" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Hourly limit" +msgstr "Ωριαίο όριο" + +#: ../../../app/themes/Peafowl/views/dashboard.php:709 +msgid "Daily limit" +msgstr "Ημερήσιο όριο" + +#: ../../../app/themes/Peafowl/views/dashboard.php:714 +msgid "Weekly limit" +msgstr "Εβδομαδιαίο όριο" + +#: ../../../app/themes/Peafowl/views/dashboard.php:719 +msgid "Monthly limit" +msgstr "Μηνιαίο όριο" + +#: ../../../app/themes/Peafowl/views/dashboard.php:763 +msgid "How many items should be displayed per page listing." +msgstr "Πόσα αντικείμενα πρέπει να εμφανίζονται ανά σελίδα λίστας." + +#: ../../../app/themes/Peafowl/views/dashboard.php:818 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Τοποθετήστε τα θέματα στο φάκελο %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1235 +msgid "After header (image page)" +msgstr "Μετά από το header (εικόνα σελίδας)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1239 +msgid "Footer (image page)" +msgstr "Footer (εικόνα σελίδας)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1245 +msgid "Album page" +msgstr "Album σελίδα" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1269 +msgid "Explore page" +msgstr "Εξερεύνηση σελίδας" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +msgid "Crypt salt" +msgstr "Κλειδί κρυπτογράφησης" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Αυτό είναι το κλειδί που χρησιμοποιείται για την μετατροπή αριθμητικών ID σε αλφαριθμητικών. Δημιουργείται κατά την εγκατάσταση." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Error reporting" +msgstr "Αναφορά σφαλμάτων" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable this if you need to debug PHP errors." +msgstr "Ενεργοποιήστε αυτό αν θέλετε να αποσφαλματώσετε τα λάθη PHP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +msgid "Maintenance" +msgstr "Συντήρηση" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1308 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Όταν ενεργοποιηθεί η ιστοσελίδα θα εμφανιστεί ένα μήνυμα συντήρησης. Αυτή η ρύθμιση δεν επηρεάζει τους διαχειριστές." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1314 +msgid "Default language" +msgstr "Προεπιλεγμένη γλώσσα" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1323 +msgid "Default base language to use." +msgstr "Προεπιλεγμένη βασική γλώσσα για χρήση." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Auto language" +msgstr "Αυτόματη γλώσσα" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Εναλλαγή για να ενεργοποιήσετε ή να απενεργοποιήσετε το HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1399 +msgid "Quota" +msgstr "Ποσόστωση" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +msgid "Active" +msgstr "Ενεργό" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Storage method" +msgstr "Μέθοδος αποθήκευσης" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Η τοπική αποθήκευση χρησιμοποιείται από προεπιλογή ή όταν η εξωτερική μονάδα αποθήκευσης δεν είναι ενεργή." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#, php-format +msgid "If you need help check the <a href=\"%s\">storage documentation</a>." +msgstr "Αν χρειάζεστε βοήθεια για να ελέγξετε την <a href=\"%s\">τεκμηρίωση αποθήκευσης</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1447 +msgid "Edit storage" +msgstr "Επεξεργασία αποθήκευσης" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "From name" +msgstr "Από όνομα" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Sender name for emails sent to users." +msgstr "Όνομα αποστολέα για τα email που αποστέλλονται στους χρήστες." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +msgid "Email mode" +msgstr "Τρόπος λειτουργίας email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "SMTP server and port" +msgstr "Διακομιστής και θύρα SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1490 +msgid "SMTP server" +msgstr "Διακομιστής SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1503 +msgid "SMTP username" +msgstr "Όνομα χρήστη SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1508 +msgid "SMTP password" +msgstr "Κωδικός πρόσβασης SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "SMTP security" +msgstr "Ασφάλεια SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1516 +msgid "Unsecured" +msgstr "Ανασφαλής" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1533 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Χρειάζεστε ένα <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> για αυτό." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1538 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1543 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1559 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Χρειάζεστε ένα <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> για αυτό." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1564 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1569 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Twitter account" +msgstr "Twitter λογαριασμός" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Χρειάζεστε ένα <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> για αυτό." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1597 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1602 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1669 +msgid "reCAPTCHA public key" +msgstr "reCAPTCHA public key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1674 +msgid "reCAPTCHA private key" +msgstr "reCAPTCHA private key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1681 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1686 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Μετά από πόσες αποτυχημένες προσπάθειες να γίνει ερώτηση reCAPTCHA? Βάλε (0) για να γίνετε πάντα ερώτηση reCAPTCHA." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1692 +msgid "Comment code" +msgstr "Κώδικας σχολίων" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook ή ότι άλλο θέλετε. Θα χρησιμοποιηθεί στην προβολή εικόνων." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1697 +msgid "Analytics code" +msgstr "Κώδικας στατιστικών" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics ή ότι άλλο θέλετε. Θα προστεθεί στο footer του θέματος." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1708 +msgid "Enable this if you are using Cloudflare." +msgstr "Ενεργοποιήστε αυτό αν χρησιμοποιείτε Cloudflare." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1713 +msgid "For documentation about the API check <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" +msgstr "Για τεκμηρίωση σχετικά με τον έλεγχο API <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1715 +msgid "API v1 key" +msgstr "Κλειδί API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1718 +msgid "Use this key when using the API v1. <a href=\"https://chevereto.com/docs/api-v1\">Learn more</a>." +msgstr "Χρησιμοποίησε αυτό το κλειδί αν χρησιμοποιείς API v1. <a href=\"https://chevereto.com/docs/api-v1\">Μάθε περισσότερα</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../lib/Peafowl/peafowl.js:407 ../../../lib/Peafowl/peafowl.min.js:23 +msgid "Save changes" +msgstr "Αποθήκευση αλλαγών" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1751 +#: ../../../app/themes/Peafowl/views/settings.php:409 +msgid "Check the errors to proceed." +msgstr "Έλεγξε τα λάθη για να προχωρήσεις." + +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "Guest" +msgstr "Επισκέπτης" + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Αλήθεια θες να διαγράψεις την εικόνα; Δεν μπορεί να αναιρεθεί." + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Delete image" +msgstr "Διαγραφή εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:142 +msgid "Added to %a and categorized in %c" +msgstr "Προστέθηκε στο %a και κατηγοριοποιήθηκε στην %c" + +#: ../../../app/themes/Peafowl/views/image.php:144 +#, php-format +msgid "Added to %s" +msgstr "Προστέθηκε στον %s" + +#: ../../../app/themes/Peafowl/views/image.php:149 +#, php-format +msgid "Uploaded to %s" +msgstr "Ανεβάστηκε στον %s" + +#: ../../../app/themes/Peafowl/views/image.php:151 +#, php-format +msgid "Uploaded %s" +msgstr "%s ανέβηκε" + +#: ../../../app/themes/Peafowl/views/image.php:188 +#: ../../../app/themes/Peafowl/views/image.php:249 +msgid "Share image" +msgstr "Μοιράσου την εικόνα" + +#: ../../../app/themes/Peafowl/views/image.php:204 +#: ../../../app/themes/Peafowl/views/image.php:210 +msgid "Album ID" +msgstr "Ταυτότητα άλμπουμ" + +#: ../../../app/themes/Peafowl/views/image.php:260 +msgid "In this album" +msgstr "Μέσα στο άλμπουμ" + +#: ../../../app/themes/Peafowl/views/image.php:287 +msgid "Image links" +msgstr "Λινκ εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:289 +msgid "Image URL" +msgstr "Διέυθυνση εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:295 +msgid "Image link" +msgstr "Λινκ εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:301 +msgid "Thumbnail URL" +msgstr "Μικρογραφία εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:310 +msgid "Medium URL" +msgstr "Μεσαίο URL" + +#: ../../../app/themes/Peafowl/views/image.php:328 +#: ../../../app/themes/Peafowl/views/image.php:348 +#: ../../../app/themes/Peafowl/views/image.php:371 +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Image embed codes" +msgstr "Κώδικας ενσωμάτωσης εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:348 +msgid "Linked image" +msgstr "Σύνδεση εικόνας" + +#: ../../../app/themes/Peafowl/views/image.php:371 +msgid "Linked medium" +msgstr "Σύνδεση μεσαίας" + +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Linked thumbnail" +msgstr "Σύνδεση μικρογραφιας" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Ανέβασε και μοιράσου τις εικόνες σου." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Σύρετε και αφήστε το οπουδήποτε θέλετε και να ξεκινήσετε τη μεταφόρτωση των εικόνων σας τώρα. όριο %s. Απευθείας συνδέσεις εικόνας, BBCode και HTML μικρογραφίες." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Ξεκίνησε το ανέβασμα" + +#: ../../../app/themes/Peafowl/views/index.php:63 +#, php-format +msgid "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." +msgstr "Συμπλήρωσε αυτή την ενότητα ανεβάζοντας φωτογραφίες στο λογαριασμό %s .<br>Μπορείς να επεξεργαστείς τον τελικό στις ρυθμίσεις του πίνακα ελέγχου σου." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Εγγραφείτε να ξεκλειδώσετε όλες τις λειτουργίες" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Διαχειρίσου τα περιεχόμενα, δημιούργησε ιδιωτικά άλμπουμ. επεξεργάσου το προφίλ σου και πολλά ακόμα." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:275 +msgid "Enter your password" +msgstr "Βάλε το κωδικό σου" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Αποσυνδέθηκες %s. >Ελπίζουμε να σε δούμε σύντομα." + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Η Ιστοσελίδα είναι υπό συντήρηση" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Εκτελούμε προγραμματισμένες εργασίες συντήρησης στην ιστοσελίδα. Παρακαλούμε επανέλθετε σε λίγα λεπτά." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Ή δεν έχεις την άδεια να εισέλθεις σε αυτή τη σελίδα ή το λίνκ έληξε." + +#: ../../../app/themes/Peafowl/views/search.php:8 +#: ../../../app/themes/Peafowl/views/user.php:111 +msgid "Results for" +msgstr "Αποτελέσματα για" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Θέλετε πραγματικά να διαγράψετε αυτόν το χρήστη; Αυτό δεν μπορεί να αναιρεθεί." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Delete user" +msgstr "Διαγραφή χρήστη" + +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Ταυτότητα Χρήστη" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Ημερ. εγγραφής" + +#: ../../../app/themes/Peafowl/views/settings.php:99 +msgid "Status" +msgstr "Κατάσταση" + +#: ../../../app/themes/Peafowl/views/settings.php:103 +msgid "Valid" +msgstr "Έγκυρο" + +#: ../../../app/themes/Peafowl/views/settings.php:104 +msgid "Banned" +msgstr "Αποκλεισμένο" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Awaiting email" +msgstr "Αναμονή email" + +#: ../../../app/themes/Peafowl/views/settings.php:106 +msgid "Awaiting confirmation" +msgstr "Αναμονή επιβεβαίωσης" + +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i εως %f χαρακτήρες<br>Γράμματα, νούμερα και \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:153 +msgid "Newsletter" +msgstr "Ενημερωτικό Δελτίο" + +#: ../../../app/themes/Peafowl/views/settings.php:158 +msgid "Content settings" +msgstr "Ρυθμίσεις περιεχομένου" + +#: ../../../app/themes/Peafowl/views/settings.php:167 +msgid "Language" +msgstr "Γλώσσα" + +#: ../../../app/themes/Peafowl/views/settings.php:197 +msgid "Timezone" +msgstr "Ζώνη ώρας" + +#: ../../../app/themes/Peafowl/views/settings.php:248 +msgid "Current password" +msgstr "Τρέχων κωδικός" + +#: ../../../app/themes/Peafowl/views/settings.php:249 +msgid "Enter your current password" +msgstr "Εισαγωγή κωδικού" + +#: ../../../app/themes/Peafowl/views/settings.php:257 +msgid "New password" +msgstr "Νέος κωδικός" + +#: ../../../app/themes/Peafowl/views/settings.php:263 +msgid "Confirm new password" +msgstr "Επιβεβαίωση νέου κωδικού" + +#: ../../../app/themes/Peafowl/views/settings.php:271 +msgid "Add a password to be able to login using your username or email." +msgstr "Πρόσθεσε ένα κωδικό για να μπορείς να συνδεθείς με το όνομα χρήστη ή το email σου" + +#: ../../../app/themes/Peafowl/views/settings.php:271 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Ο χρήστης αυτός δεν έχει κωδικό. Πρόσθεσε έναν χρησιμποιώντας αυτή την φόρμα" + +#: ../../../app/themes/Peafowl/views/settings.php:281 +msgid "Re-enter your password" +msgstr "Επανάληψη κωδικού" + +#: ../../../app/themes/Peafowl/views/settings.php:300 +#: ../../../lib/Peafowl/peafowl.js:3356 +#: ../../../lib/Peafowl/peafowl.min.js:207 +msgid "loading" +msgstr "Φόρτωση" + +#: ../../../app/themes/Peafowl/views/settings.php:304 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Ανέβασε νέα εικόνα" + +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Delete existing image" +msgstr "Διαγραφή υπάρχουσας εικόνας" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This is your real name, not your username." +msgstr "Αυτό είναι το πραγματικό σου όνομα, όχι όνομα χρήστη" + +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "http://yourwebsite.com" +msgstr "http://ηιστοσελιδασου.com" + +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Tell us a little bit about you" +msgstr "Πείτε μας λίγα λόγια για εσάς" + +#: ../../../app/themes/Peafowl/views/settings.php:339 +msgid "User has no connections." +msgstr "Ο χρήστης δεν έχει συνδέσεις." + +#: ../../../app/themes/Peafowl/views/settings.php:343 +msgid "Link your account to external services to be able to login and share content." +msgstr "Σύνδεσε το λογαριασμό σου σε εξωτερικές υπηρεσίες για να είσαι σε θέση να συνδεθείς και να μοιραστείς το περιεχόμενο." + +#: ../../../app/themes/Peafowl/views/settings.php:350 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Αλήθεια θές να αποσυνδέσεις τονt %s από αυτόν το λογαριασμό?" + +#: ../../../app/themes/Peafowl/views/settings.php:351 +#, php-format +msgid "This account is connected to %s" +msgstr "Ο λογαριασμός είναι συνδεδεμένος στο %s" + +#: ../../../app/themes/Peafowl/views/settings.php:353 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Αλήθεια θες να αποσυνδέσεις τον λογαριασμό %s ;" + +#: ../../../app/themes/Peafowl/views/settings.php:355 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Θα αποσυνδεθείς και δε θα μπορείς να συνδεθείς χρησιμοποιώντας αυτόν τον λογαριασμό %s" + +#: ../../../app/themes/Peafowl/views/settings.php:357 +#, php-format +msgid "Your account is connected to %s" +msgstr "Ο λογαριασμός σου είναι συνδεδεμένος στο %s" + +#: ../../../app/themes/Peafowl/views/settings.php:362 +msgid "disconnect" +msgstr "αποσύνδεση" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +#, php-format +msgid "Connect %s" +msgstr "Σύνδεση %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Ανέβασε φόντο προφίλ" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Αλλαγή φόντου" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Η εικόνα φόντου προφίλ θα διαγραφεί. Αυτό δεν μπορεί να αναιρεθεί. Είσαι σίγουρος ότι θές να διαγράψεις την εικόνα φόντου προφίλ;" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Διαγραφή φόντου" + +#: ../../../app/themes/Peafowl/views/user.php:64 +msgid "Edit profile" +msgstr "Επεξεργασία προφίλ" + +#: ../../../app/lib/chevereto.js:496 ../../../app/lib/chevereto.js:568 +#: ../../../app/lib/chevereto.js:750 ../../../app/lib/chevereto.js:2155 +#: ../../../app/lib/chevereto.js:2208 ../../../app/lib/chevereto.js:2306 +#: ../../../app/lib/chevereto.min.js:20 ../../../app/lib/chevereto.min.js:24 +#: ../../../app/lib/chevereto.min.js:30 ../../../app/lib/chevereto.min.js:107 +#: ../../../app/lib/chevereto.min.js:110 ../../../app/lib/chevereto.min.js:114 +msgid "You must enter the album name." +msgstr "Πρέπει να δώσετε ένα όνομα στο άλμπουμ." + +#: ../../../app/lib/chevereto.js:610 ../../../app/lib/chevereto.js:796 +#: ../../../app/lib/chevereto.js:892 ../../../app/lib/chevereto.min.js:27 +#: ../../../app/lib/chevereto.min.js:34 ../../../app/lib/chevereto.min.js:36 +#: ../../../lib/Peafowl/peafowl.js:2225 +#: ../../../lib/Peafowl/peafowl.min.js:123 +msgid "Confirm" +msgstr "Επιβεβαίωση" + +#: ../../../app/lib/chevereto.js:728 ../../../app/lib/chevereto.min.js:29 +msgid "Select existing album" +msgstr "Επιλογή υπάρχον άλμπουμ" + +#: ../../../app/lib/chevereto.js:1011 ../../../app/lib/chevereto.js:1091 +#: ../../../app/lib/chevereto.min.js:45 ../../../app/lib/chevereto.min.js:50 +msgid "Please select a valid image file type." +msgstr "Παρακαλώ επιλέξτε έναν έγκυρο τύπο αρχείου." + +#: ../../../app/lib/chevereto.js:1016 ../../../app/lib/chevereto.js:1096 +#: ../../../app/lib/chevereto.min.js:46 ../../../app/lib/chevereto.min.js:51 +#, python-format, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Παρακαλώ επιλέξτε μια φωτογραφία με μέγιστο μέγεθος %s." + +#: ../../../app/lib/chevereto.js:1063 ../../../app/lib/chevereto.min.js:48 +msgid "Profile image updated." +msgstr "Η εικόνα του προφίλ ενημερώθηκε." + +#: ../../../app/lib/chevereto.js:1133 ../../../app/lib/chevereto.min.js:52 +msgid "Profile background image updated." +msgstr "Εικόνα φόντου προφίλ αλλάχτηκε." + +#: ../../../app/lib/chevereto.js:1207 ../../../app/lib/chevereto.min.js:53 +msgid "Profile background image deleted." +msgstr "Η εικόνα ταπετσαρίας του προφίλ διαγράφηκε." + +#: ../../../app/lib/chevereto.js:1212 ../../../app/lib/chevereto.min.js:53 +msgid "Error deleting profile background image." +msgstr "Λάθος κατά την διαγραφή εικόνας φόντου προφίλ" + +#: ../../../app/lib/chevereto.js:1301 ../../../app/lib/chevereto.min.js:56 +#, python-format, javascript-format +msgid "Update available (%s)" +msgstr "Διαθέσιμη ενημέρωση (%s)" + +#: ../../../app/lib/chevereto.js:1302 ../../../app/lib/chevereto.min.js:56 +#, python-format, javascript-format +msgid "There is an update available for your system. Go to %s to proceed to download the file." +msgstr "Υπάρχει διαθέσιμη ενημέρωση συστήματος. Πήγαινε εδώ %s για να κατεβάσεις το αρχείο." + +#: ../../../app/lib/chevereto.js:1302 ../../../app/lib/chevereto.min.js:56 +msgid "The release notes for the update available are:" +msgstr "Οι σημειώσεις έκδοσης για την ενημέρωση που υπάρχουν είναι:" + +#: ../../../app/lib/chevereto.js:1306 ../../../app/lib/chevereto.min.js:56 +msgid "Your website is running the latest version of Chevereto." +msgstr "Η ιστοσελίδα σας χρησιμοποιεί την τελευταία έκδοση." + +#: ../../../app/lib/chevereto.js:1690 ../../../app/lib/chevereto.min.js:74 +msgid "File too big." +msgstr "Πολύ μεγάλο αρχείο." + +#: ../../../app/lib/chevereto.js:1701 ../../../app/lib/chevereto.js:1849 +#: ../../../app/lib/chevereto.min.js:76 ../../../app/lib/chevereto.min.js:87 +msgid "Some files couldn't be added" +msgstr "Κάποια αρχεία δε μπορούσαν να προστεθούν" + +#: ../../../app/lib/chevereto.js:2283 ../../../app/lib/chevereto.min.js:114 +msgid "Image edited successfully." +msgstr "Η εικόνα διορθώθηκε επιτυχώς." + +#: ../../../app/lib/chevereto.js:2346 ../../../app/lib/chevereto.min.js:115 +msgid "Album edited successfully." +msgstr "Το άλμπουμ διορθώθηκε επιτυχώς." + +#: ../../../app/lib/chevereto.js:2364 ../../../app/lib/chevereto.min.js:116 +msgid "Invalid URL key." +msgstr "Λάθος κλειδί URL." + +#: ../../../app/lib/chevereto.js:2379 ../../../app/lib/chevereto.min.js:118 +msgid "Category URL key already being used." +msgstr "Το κλειδί κατηγορίας URL χρησιμοποιείτε ήδη." + +#: ../../../app/lib/chevereto.js:2457 ../../../app/lib/chevereto.min.js:120 +msgid "Category successfully deleted." +msgstr "Η κατηγορία διαγράφηκε επιτυχώς." + +#: ../../../app/lib/chevereto.js:2503 ../../../app/lib/chevereto.min.js:122 +#, python-format, javascript-format +msgid "Category %s added." +msgstr "Η κατηγορία %s προστέθηκε." + +#: ../../../app/lib/chevereto.js:2524 ../../../app/lib/chevereto.min.js:123 +msgid "Invalid expiration date." +msgstr "Μη έγκυρη ημερομηνία λήξης." + +#: ../../../app/lib/chevereto.js:2539 ../../../app/lib/chevereto.min.js:125 +#, python-format, javascript-format +msgid "IP %s already banned." +msgstr "Η διέυθυνση IP %s έχει ήδη αποκλειστεί." + +#: ../../../app/lib/chevereto.js:2590 ../../../app/lib/chevereto.min.js:129 +#, python-format, javascript-format +msgid "IP %s banned." +msgstr "Η διέυθυνση IP %s αποκλείστηκε." + +#: ../../../app/lib/chevereto.js:2670 ../../../app/lib/chevereto.min.js:130 +msgid "IP ban successfully deleted." +msgstr "Η διέυθυνση IP διαγράφηκε επιτυχώς." + +#: ../../../app/lib/chevereto.js:2706 ../../../app/lib/chevereto.js:2949 +#: ../../../app/lib/chevereto.js:2978 ../../../app/lib/chevereto.min.js:131 +#: ../../../app/lib/chevereto.min.js:146 ../../../app/lib/chevereto.min.js:147 +msgid "Please fill all the required fields." +msgstr "Παρακαλώ συμπληρώστε όλα τα απαραίτητα πεδία." + +#: ../../../app/lib/chevereto.js:2717 ../../../app/lib/chevereto.min.js:132 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Μη έγκυρη τιμή χωρητικότητας αποθήκευσης. Βεβαιωθείτε ότι χρησιμοποιείτε μια έγκυρη μορφή." + +#: ../../../app/lib/chevereto.js:2729 ../../../app/lib/chevereto.min.js:134 +msgid "Invalid URL." +msgstr "Μη έγκυρη διεύθυνση URL." + +#: ../../../app/lib/chevereto.js:2780 ../../../app/lib/chevereto.min.js:137 +msgid "Storage successfully edited." +msgstr "Αποθήκευση επεξεργάστηκε με επιτυχία." + +#: ../../../app/lib/chevereto.js:2997 ../../../app/lib/chevereto.min.js:148 +msgid "User added successfully." +msgstr "Ο χρήστης προστέθηκε επιτυχώς." + +#: ../../../app/lib/chevereto.js:3171 ../../../app/lib/chevereto.js:3246 +#: ../../../app/lib/chevereto.js:3329 ../../../app/lib/chevereto.js:3338 +#: ../../../app/lib/chevereto.min.js:156 ../../../app/lib/chevereto.min.js:162 +#: ../../../app/lib/chevereto.min.js:164 +msgid "The content has been moved." +msgstr "Το περιεχόμενο μετακινήθηκε." + +#: ../../../app/lib/chevereto.js:3191 ../../../app/lib/chevereto.min.js:157 +msgid "Unselect" +msgstr "Αποεπιλογή" + +#: ../../../app/lib/chevereto.js:3246 ../../../app/lib/chevereto.min.js:162 +msgid "The content has been edited." +msgstr "Το περιεχόμενο επεγεργάστηκε." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:480 +#: ../../../lib/Peafowl/peafowl.min.js:1 +#: ../../../lib/Peafowl/peafowl.min.js:29 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Όλες οι αλλαγές που κάνατε θα χαθούν αν συνεχίσετε." + +#: ../../../lib/Peafowl/peafowl.js:464 ../../../lib/Peafowl/peafowl.min.js:28 +msgid "Changes saved successfully." +msgstr "Οι αλλαγές αποθηκέυτηκαν επιτυχώς." + +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "Go back to form" +msgstr "Επιστροφή στην φόρμα" + +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "continue anyway" +msgstr "συνέχεια έτσι κι αλλιώς" + +#: ../../../lib/Peafowl/peafowl.js:2368 +#: ../../../lib/Peafowl/peafowl.min.js:135 +msgid "Saving" +msgstr "Αποθήκευση" + +#: ../../../lib/Peafowl/peafowl.js:2373 +#: ../../../lib/Peafowl/peafowl.min.js:135 +msgid "Sending" +msgstr "Αποστολή" + +#: ../../../lib/Peafowl/peafowl.js:2453 +#: ../../../lib/Peafowl/peafowl.min.js:138 +msgid "Confirm action" +msgstr "Επιβεβαίωση ενέργειας" + +#: ../../../lib/Peafowl/peafowl.js:2465 +#: ../../../lib/Peafowl/peafowl.min.js:139 +msgid "information" +msgstr "πληροφορία" + diff --git a/app/languages/en.po b/app/languages/en.po new file mode 100644 index 0000000..e67d7a8 --- /dev/null +++ b/app/languages/en.po @@ -0,0 +1,6386 @@ +msgid "" +msgstr "" +"Project-Id-Version: Chevereto V3\n" +"POT-Creation-Date: 2021-07-05 14:26-0400\n" +"PO-Revision-Date: 2021-07-05 14:26-0400\n" +"Last-Translator: Rodolfo Berríos <inbox@rodolfoberrios.com>\n" +"Language-Team: \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.0\n" +"X-Poedit-Basepath: ../../..\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-KeywordsList: _s;_se;_n:1,2;_ne:1,2;PF.fn._s;PF.fn._n:1,2\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: app/vendor\n" +"X-Poedit-SearchPathExcluded-1: app/content/languages/cache\n" + +#: app/install/installer.php:1704 app/routes/route.account.php:415 +#: app/routes/route.json.php:724 app/routes/route.json.php:1315 +#: app/routes/route.settings.php:198 app/routes/route.signup.php:91 +#: app/routes/route.signup.php:101 content/pages/default/contact.php:34 +msgid "Invalid email" +msgstr "" + +#: app/install/installer.php:1707 app/routes/route.json.php:719 +#: app/routes/route.json.php:1349 app/routes/route.json.php:1353 +#: app/routes/route.settings.php:194 app/routes/route.signup.php:94 +msgid "Invalid username" +msgstr "" + +#: app/install/installer.php:1710 app/routes/route.account.php:355 +#: app/routes/route.album.php:82 app/routes/route.json.php:729 +#: app/routes/route.settings.php:344 app/routes/route.signup.php:97 +msgid "Invalid password" +msgstr "" + +#: app/install/update/template/update.js:19 +#: app/install/update/template/update.min.js:1 +#, javascript-format +msgid "Installed version is v%s" +msgstr "" + +#: app/install/update/template/update.js:26 +#: app/install/update/template/update.js:55 +#: app/install/update/template/update.js:78 +#: app/install/update/template/update.min.js:1 +#, javascript-format +msgid "Can't connect to %s" +msgstr "" + +#: app/install/update/template/update.js:30 +#: app/install/update/template/update.min.js:1 +#, javascript-format +msgid "Last available release is v%s" +msgstr "" + +#: app/install/update/template/update.js:33 +#: app/install/update/template/update.min.js:1 +msgid "Update needed, proceeding to download" +msgstr "" + +#: app/install/update/template/update.js:40 +#: app/install/update/template/update.min.js:1 +msgid "No update needed" +msgstr "" + +#: app/install/update/template/update.js:41 +#: app/install/update/template/update.min.js:1 +msgid "System files already up to date" +msgstr "" + +#: app/install/update/template/update.js:49 +#: app/install/update/template/update.min.js:1 +#, javascript-format +msgid "Starting v%s download" +msgstr "" + +#: app/install/update/template/update.js:60 +#: app/install/update/template/update.min.js:1 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "" + +#: app/install/update/template/update.js:72 +#: app/install/update/template/update.min.js:1 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "" + +#: app/install/update/template/update.js:82 +#: app/install/update/template/update.min.js:1 +msgid "Extraction completed" +msgstr "" + +#: app/install/update/template/update.js:84 +#: app/install/update/template/update.min.js:1 +msgid "Proceding to install the update" +msgstr "" + +#: app/install/update/template/update.js:111 +#: app/install/update/template/update.min.js:1 +msgid "Update failed" +msgstr "" + +#: app/install/update/template/update.php:4 app/install/update/updater.php:188 +msgid "Update in progress" +msgstr "" + +#: app/install/update/updater.php:49 +#, php-format +msgid "Missing %s file" +msgstr "" + +#: app/install/update/updater.php:53 +msgid "Invalid license info" +msgstr "" + +#: app/install/update/updater.php:72 +msgid "Can't save file" +msgstr "" + +#: app/install/update/updater.php:107 +#, php-format +msgid "Can't extract %s" +msgstr "" + +#: app/install/update/updater.php:120 +#, php-format +msgid "Can't create %s directory - %e" +msgstr "" + +#: app/install/update/updater.php:130 +#, php-format +msgid "Can't update %s file - %e" +msgstr "" + +#: app/lib/chevereto.js:523 app/lib/chevereto.min.js:1 +#: app/routes/route.account.php:507 app/routes/route.signup.php:249 +#: content/pages/default/contact.php:152 lib/Peafowl/peafowl.js:263 +#: lib/Peafowl/peafowl.min.js:1 +msgid "Check the errors in the form to continue." +msgstr "" + +#: app/lib/chevereto.js:967 app/lib/chevereto.min.js:1 +#: app/lib/classes/class.album.php:404 +msgid "" +"Note: This content is private but anyone with the link will be able to see " +"this." +msgstr "" + +#: app/lib/chevereto.js:970 app/lib/chevereto.min.js:1 +#: app/lib/classes/class.album.php:407 +msgid "" +"Note: This content is password protected. Remember to pass the content " +"password to share." +msgstr "" + +#: app/lib/chevereto.js:973 app/lib/chevereto.min.js:1 +#: app/lib/classes/class.album.php:410 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "" + +#: app/lib/chevereto.js:1114 app/lib/chevereto.js:1250 +#: app/lib/chevereto.js:1529 app/lib/chevereto.js:4416 +#: app/lib/chevereto.js:4457 app/lib/chevereto.js:4527 +#: app/lib/chevereto.js:4667 app/lib/chevereto.min.js:1 +#: app/lib/chevereto.min.js:3 +msgid "You must enter the album name." +msgstr "" + +#: app/lib/chevereto.js:1311 app/lib/chevereto.js:1340 +#: app/lib/chevereto.js:1591 app/lib/chevereto.js:1623 +#: app/lib/chevereto.js:1722 app/lib/chevereto.min.js:1 +#: lib/Peafowl/peafowl.js:2894 lib/Peafowl/peafowl.min.js:2 +msgid "Confirm" +msgstr "" + +#: app/lib/chevereto.js:1318 app/lib/chevereto.js:1598 +#: app/lib/chevereto.min.js:1 +msgid "The content has been approved." +msgstr "" + +#: app/lib/chevereto.js:1488 app/lib/chevereto.min.js:1 +msgid "Select existing album" +msgstr "" + +#: app/lib/chevereto.js:1831 app/lib/chevereto.js:1912 +#: app/lib/chevereto.js:2007 app/lib/chevereto.js:2133 +#: app/lib/chevereto.js:2291 app/lib/chevereto.js:2336 +#: app/lib/chevereto.js:2388 app/lib/chevereto.js:2460 +#: app/lib/chevereto.min.js:1 app/lib/chevereto.min.js:2 +#: lib/Peafowl/peafowl.js:3171 lib/Peafowl/peafowl.js:3778 +#: lib/Peafowl/peafowl.min.js:2 +msgid "An error occurred. Please try again later." +msgstr "" + +#: app/lib/chevereto.js:1852 app/lib/chevereto.js:1940 +#: app/lib/chevereto.min.js:1 app/lib/chevereto.min.js:2 +msgid "Please select a valid image file type." +msgstr "" + +#: app/lib/chevereto.js:1860 app/lib/chevereto.js:1949 +#: app/lib/chevereto.min.js:1 app/lib/chevereto.min.js:2 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "" + +#: app/lib/chevereto.js:1909 app/lib/chevereto.min.js:1 +msgid "Profile image updated." +msgstr "" + +#: app/lib/chevereto.js:2000 app/lib/chevereto.min.js:2 +msgid "Profile background image updated." +msgstr "" + +#: app/lib/chevereto.js:2045 app/lib/chevereto.min.js:2 +msgid "Profile background image deleted." +msgstr "" + +#: app/lib/chevereto.js:2052 app/lib/chevereto.min.js:2 +msgid "Error deleting profile background image." +msgstr "" + +#: app/lib/chevereto.js:2118 app/lib/chevereto.min.js:2 +#: app/routes/route.account.php:358 app/routes/route.settings.php:348 +#: app/themes/Peafowl/views/account/password-reset.php:21 +#: app/themes/Peafowl/views/settings.php:379 +#: app/themes/Peafowl/views/settings.php:380 +#: app/themes/Peafowl/views/settings.php:402 +msgid "Passwords don't match" +msgstr "" + +#: app/lib/chevereto.js:2147 app/lib/chevereto.min.js:2 +#, javascript-format +msgid "Update available v%s" +msgstr "" + +#: app/lib/chevereto.js:2151 app/lib/chevereto.min.js:2 +#, javascript-format +msgid "" +"There is an update available for your system. You can automatic download and " +"install this update or go to %s to proceed to download the file." +msgstr "" +"There is an update available for your system. You can automatic download and " +"install this update or go to %s to proceed to download the file." + +#: app/lib/chevereto.js:2159 app/lib/chevereto.min.js:2 +#: app/lib/functions.php:780 +msgid "The release notes for this update are:" +msgstr "" + +#: app/lib/chevereto.js:2168 app/lib/chevereto.min.js:2 +msgid "system requirements" +msgstr "" + +#: app/lib/chevereto.js:2168 app/lib/chevereto.min.js:2 +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "" + +#: app/lib/chevereto.js:2178 app/lib/chevereto.min.js:2 +msgid "Update now" +msgstr "" + +#: app/lib/chevereto.js:2185 app/lib/chevereto.min.js:2 +#, javascript-format +msgid "This website is running latest %s version" +msgstr "" + +#: app/lib/chevereto.js:2199 app/lib/chevereto.min.js:2 +msgid "Please review the system requirements before proceeding" +msgstr "" + +#: app/lib/chevereto.js:2446 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/header.php:186 app/themes/Peafowl/views/settings.php:425 +#: lib/Peafowl/peafowl.js:4321 lib/Peafowl/peafowl.min.js:3 +msgid "loading" +msgstr "" + +#: app/lib/chevereto.js:2781 app/lib/chevereto.min.js:2 +msgid "Toggle select" +msgstr "" + +#: app/lib/chevereto.js:2782 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/snippets/viewer_template.php:37 +msgid "Like" +msgstr "" + +#: app/lib/chevereto.js:2783 app/lib/chevereto.min.js:2 +msgid "Toggle flag" +msgstr "" + +#: app/lib/chevereto.js:2784 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/snippets/anywhere_upload.php:264 +#: app/themes/Peafowl/snippets/anywhere_upload.php:266 +#: app/themes/Peafowl/snippets/anywhere_upload.php:275 +#: app/themes/Peafowl/snippets/modal_edit_album.php:6 +#: app/themes/Peafowl/snippets/user_items_editor.php:17 +#: app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:5 +#: app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: app/themes/Peafowl/views/album.php:22 app/themes/Peafowl/views/image.php:93 +#: app/themes/Peafowl/views/image.php:365 app/themes/Peafowl/views/user.php:81 +msgid "Edit" +msgstr "" + +#: app/lib/chevereto.js:2785 app/lib/chevereto.min.js:2 +#: app/lib/classes/class.listing.php:658 app/lib/classes/class.listing.php:685 +#: app/routes/route.user.php:186 +#: app/themes/Peafowl/snippets/anywhere_upload.php:129 +#: app/themes/Peafowl/snippets/anywhere_upload.php:286 +#: app/themes/Peafowl/snippets/form_move_existing_album.php:5 +#: app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:7 +#: app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:19 +#: app/themes/Peafowl/views/dashboard.php:195 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/chevereto.js:2786 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/snippets/listing_tools_editor.php:57 +#: app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:17 +#: app/themes/Peafowl/views/image.php:98 +msgid "Approve" +msgstr "" + +#: app/lib/chevereto.js:2787 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/snippets/listing_tools_editor.php:66 +#: app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:6 +#: app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:23 +#: app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:25 +#: app/themes/Peafowl/views/album.php:31 +#: app/themes/Peafowl/views/dashboard.php:263 +#: app/themes/Peafowl/views/dashboard.php:1166 +#: app/themes/Peafowl/views/dashboard.php:1573 +#: app/themes/Peafowl/views/dashboard.php:1619 +#: app/themes/Peafowl/views/image.php:105 +#: app/themes/Peafowl/views/settings.php:431 +#: app/themes/Peafowl/views/user.php:85 +msgid "Delete" +msgstr "" + +#: app/lib/chevereto.js:2788 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/header.php:123 +#: app/themes/Peafowl/snippets/viewer_template.php:16 +#: app/themes/Peafowl/snippets/viewer_template.php:41 +msgid "Close" +msgstr "" + +#: app/lib/chevereto.js:2789 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/views/image.php:59 +msgid "Previous" +msgstr "" + +#: app/lib/chevereto.js:2790 app/lib/chevereto.min.js:2 +#: app/themes/Peafowl/views/image.php:64 +msgid "Next" +msgstr "" + +#: app/lib/chevereto.js:3490 app/lib/chevereto.min.js:2 +msgid "Clipboard image" +msgstr "" + +#: app/lib/chevereto.js:3572 app/lib/chevereto.min.js:3 +msgid "File too big." +msgstr "" + +#: app/lib/chevereto.js:3586 app/lib/chevereto.min.js:3 +msgid "Invalid or unsupported file format." +msgstr "" + +#: app/lib/chevereto.js:3609 app/lib/chevereto.js:3873 +#: app/lib/chevereto.min.js:3 +msgid "Some files couldn't be added" +msgstr "" + +#: app/lib/chevereto.js:3906 app/lib/chevereto.min.js:3 +#: app/lib/classes/class.listing.php:520 app/lib/classes/class.upload.php:258 +#: app/lib/classes/class.user.php:73 app/routes/route.album.php:227 +#: app/themes/Peafowl/snippets/anywhere_upload.php:68 +#: app/themes/Peafowl/snippets/anywhere_upload.php:108 +#: app/themes/Peafowl/views/album.php:106 app/themes/Peafowl/views/user.php:122 +msgid "image" +msgid_plural "images" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/chevereto.js:4275 app/lib/chevereto.min.js:3 +#: app/routes/route.user.php:64 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "" + +#: app/lib/chevereto.js:4629 app/lib/chevereto.min.js:3 +msgid "Image edited successfully." +msgstr "" + +#: app/lib/chevereto.js:4709 app/lib/chevereto.min.js:3 +msgid "private" +msgstr "" + +#: app/lib/chevereto.js:4715 app/lib/chevereto.min.js:3 +msgid "Album edited successfully." +msgstr "" + +#: app/lib/chevereto.js:4734 app/lib/chevereto.min.js:3 +msgid "Invalid URL key." +msgstr "" + +#: app/lib/chevereto.js:4749 app/lib/chevereto.min.js:3 +msgid "Category URL key already being used." +msgstr "" + +#: app/lib/chevereto.js:4835 app/lib/chevereto.min.js:3 +msgid "Category successfully deleted." +msgstr "" + +#: app/lib/chevereto.js:4886 app/lib/chevereto.min.js:3 +#, javascript-format +msgid "Category %s added." +msgstr "" + +#: app/lib/chevereto.js:4912 app/lib/chevereto.min.js:3 +msgid "Invalid expiration date." +msgstr "" + +#: app/lib/chevereto.js:4927 app/lib/chevereto.min.js:3 +#, javascript-format +msgid "IP %s already banned." +msgstr "" + +#: app/lib/chevereto.js:4982 app/lib/chevereto.min.js:3 +#, javascript-format +msgid "IP %s banned." +msgstr "" + +#: app/lib/chevereto.js:5072 app/lib/chevereto.min.js:3 +msgid "IP ban successfully deleted." +msgstr "" + +#: app/lib/chevereto.js:5125 app/lib/chevereto.js:5389 +#: app/lib/chevereto.js:5419 app/lib/chevereto.min.js:3 +msgid "Please fill all the required fields." +msgstr "" + +#: app/lib/chevereto.js:5140 app/lib/chevereto.min.js:3 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "" + +#: app/lib/chevereto.js:5147 app/lib/chevereto.min.js:3 +#: app/lib/classes/class.storage.php:497 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "" + +#: app/lib/chevereto.js:5161 app/lib/chevereto.min.js:3 +msgid "Invalid URL." +msgstr "" + +#: app/lib/chevereto.js:5212 app/lib/chevereto.min.js:3 +msgid "Storage successfully edited." +msgstr "" + +#: app/lib/chevereto.js:5438 app/lib/chevereto.min.js:3 +msgid "User added successfully." +msgstr "" + +#: app/lib/chevereto.js:5698 app/lib/chevereto.min.js:4 +#: app/themes/Peafowl/views/404.php:17 app/themes/Peafowl/views/album.php:198 +#: app/themes/Peafowl/views/user.php:217 +msgid "The content has been deleted." +msgstr "" + +#: app/lib/chevereto.js:5709 app/lib/chevereto.js:5825 +#: app/lib/chevereto.js:5925 app/lib/chevereto.js:5929 +#: app/lib/chevereto.min.js:4 +msgid "The content has been moved." +msgstr "" + +#: app/lib/chevereto.js:5728 app/lib/chevereto.min.js:4 +#: app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: lib/Peafowl/peafowl.js:814 lib/Peafowl/peafowl.min.js:1 +msgid "Select" +msgstr "" + +#: app/lib/chevereto.js:5733 app/lib/chevereto.min.js:4 +msgid "Unselect" +msgstr "" + +#: app/lib/chevereto.js:5824 app/lib/chevereto.min.js:4 +msgid "The content has been edited." +msgstr "" + +#: app/lib/chevereto.js:6042 app/lib/chevereto.min.js:4 +#, javascript-format +msgid "Import ID %s removed" +msgstr "" + +#: app/lib/classes/class.akismet.php:45 app/lib/classes/class.akismet.php:56 +#: app/lib/classes/class.akismet.php:74 app/lib/classes/class.akismet.php:83 +#: app/routes/route.settings.php:326 app/routes/route.signup.php:118 +msgid "Spam detected" +msgstr "" + +#: app/lib/classes/class.album.php:165 app/themes/Peafowl/views/user.php:123 +msgid "album" +msgid_plural "albums" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.album.php:163 app/lib/classes/class.upload.php:256 +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "" + +#: app/lib/classes/class.album.php:174 +msgid "Untitled" +msgstr "" + +#: app/lib/classes/class.album.php:389 app/lib/classes/class.user.php:155 +#, php-format +msgid "%s's images" +msgstr "" + +#: app/lib/classes/class.album.php:417 app/lib/classes/class.user.php:69 +#: app/themes/Peafowl/views/dashboard.php:877 +msgid "Private" +msgstr "" + +#: app/lib/classes/class.album.php:419 +#: app/themes/Peafowl/snippets/form_album.php:29 +#: app/themes/Peafowl/snippets/form_sub_album.php:24 +#: app/themes/Peafowl/views/dashboard.php:877 +msgid "Public" +msgstr "" + +#: app/lib/classes/class.album.php:420 +msgid "Me" +msgstr "" + +#: app/lib/classes/class.album.php:421 app/lib/classes/class.page.php:127 +#: app/themes/Peafowl/snippets/modal_share.php:13 +#: app/themes/Peafowl/views/dashboard.php:982 +msgid "Link" +msgstr "" + +#: app/lib/classes/class.album.php:422 app/routes/route.settings.php:66 +#: app/themes/Peafowl/snippets/form_storage_edit.php:123 +#: app/themes/Peafowl/snippets/form_storage_edit.php:124 +#: app/themes/Peafowl/snippets/form_storage_edit.php:180 +#: app/themes/Peafowl/views/dashboard.php:544 +#: app/themes/Peafowl/views/dashboard.php:545 +#: app/themes/Peafowl/views/login.php:25 +#: app/themes/Peafowl/views/password-gate.php:15 +#: app/themes/Peafowl/views/settings.php:394 +#: app/themes/Peafowl/views/signup.php:32 +msgid "Password" +msgstr "" + +#: app/lib/classes/class.album.php:465 app/lib/classes/class.image.php:1359 +msgid "view" +msgid_plural "views" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:349 +msgid "After %n %t" +msgstr "" + +#: app/lib/classes/class.image.php:351 app/lib/functions.php:57 +#: app/lib/functions.php:68 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:352 app/lib/functions.php:56 +#: app/lib/functions.php:67 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:353 app/lib/functions.php:55 +#: app/lib/functions.php:66 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:354 app/lib/functions.php:54 +#: app/lib/functions.php:65 +msgid "week" +msgid_plural "weeks" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:355 app/lib/functions.php:53 +#: app/lib/functions.php:64 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:356 app/lib/functions.php:52 +#: app/lib/functions.php:63 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.image.php:359 +msgid "Don't autodelete" +msgstr "" + +#: app/lib/classes/class.image.php:413 app/lib/classes/class.page.php:116 +#, php-format +msgid "Can't open %s for writing" +msgstr "" + +#: app/lib/classes/class.image.php:563 app/lib/classes/class.image.php:650 +#: app/lib/classes/class.image.php:691 +msgid "Duplicated upload" +msgstr "" + +#: app/lib/classes/class.image.php:924 +#: app/themes/Peafowl/snippets/anywhere_upload.php:173 +msgid "Private upload" +msgstr "" + +#: app/lib/classes/class.image.php:1360 +msgid "like" +msgid_plural "likes" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.listing.php:557 app/web.php:275 +msgid "Recent" +msgstr "" + +#: app/lib/classes/class.listing.php:563 app/web.php:279 +msgid "Trending" +msgstr "" + +#: app/lib/classes/class.listing.php:573 +msgid "Top users" +msgstr "" + +#: app/lib/classes/class.listing.php:579 +msgid "Most recent" +msgstr "" + +#: app/lib/classes/class.listing.php:585 +msgid "Oldest" +msgstr "" + +#: app/lib/classes/class.listing.php:591 +msgid "Most viewed" +msgstr "" + +#: app/lib/classes/class.listing.php:599 app/web.php:283 +msgid "Popular" +msgstr "" + +#: app/lib/classes/class.listing.php:605 +msgid "Most liked" +msgstr "" + +#: app/lib/classes/class.listing.php:633 app/routes/route.explore.php:47 +#: app/routes/route.explore.php:99 app/themes/Peafowl/header.php:60 +#: app/themes/Peafowl/views/dashboard.php:778 +#: app/themes/Peafowl/views/dashboard.php:791 +msgid "Explore" +msgstr "" + +#: app/lib/classes/class.listing.php:637 app/web.php:287 +msgid "Animated" +msgstr "" + +#: app/lib/classes/class.listing.php:643 app/routes/route.search.php:92 +#: app/themes/Peafowl/header.php:116 app/themes/Peafowl/header.php:121 +#: app/themes/Peafowl/views/dashboard.php:769 +msgid "Search" +msgstr "" + +#: app/lib/classes/class.listing.php:648 +msgid "People" +msgstr "" + +#: app/lib/classes/class.listing.php:653 app/lib/classes/class.listing.php:681 +#: app/routes/route.user.php:180 app/themes/Peafowl/views/dashboard.php:187 +msgid "Image" +msgid_plural "Images" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.listing.php:689 +#: app/themes/Peafowl/snippets/form_storage_edit.php:176 +#: app/themes/Peafowl/views/dashboard.php:203 +#: app/themes/Peafowl/views/dashboard.php:528 +#: app/themes/Peafowl/views/settings.php:143 +msgid "User" +msgid_plural "Users" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/classes/class.moderatecontent.php:114 +msgid "adult" +msgstr "" + +#: app/lib/classes/class.moderatecontent.php:115 +msgid "teen" +msgstr "" + +#: app/lib/classes/class.moderatecontent.php:119 +#, php-format +msgid "Content of type %s is forbidden" +msgstr "" + +#: app/lib/classes/class.page.php:102 +#, php-format +msgid "Can't create %s destination dir" +msgstr "" + +#: app/lib/classes/class.page.php:126 +#: app/themes/Peafowl/views/dashboard.php:982 +msgid "Internal" +msgstr "" + +#: app/lib/classes/class.storage.php:783 app/routes/route.dashboard.php:191 +msgid "Unlimited" +msgstr "" + +#: app/lib/classes/class.storage.php:783 +msgid "used" +msgstr "" + +#: app/lib/classes/class.user.php:67 app/themes/Peafowl/views/user.php:69 +msgid "Private profile" +msgstr "" + +#: app/lib/functions.php:58 app/lib/functions.php:69 +msgid "second" +msgid_plural "seconds" +msgstr[0] "" +msgstr[1] "" + +#: app/lib/functions.php:82 +#, php-format +msgid "%s ago" +msgstr "" + +#: app/lib/functions.php:82 +msgid "moments ago" +msgstr "" + +#: app/lib/functions.php:244 app/routes/route.dashboard.php:1330 +#: app/themes/Peafowl/header.php:241 app/themes/Peafowl/views/dashboard.php:26 +msgid "Dashboard" +msgstr "" + +#: app/lib/functions.php:244 +#, php-format +msgid "" +"There is an update available for your system. Go to %s to download and " +"install this update." +msgstr "" + +#: app/lib/functions.php:247 +#, php-format +msgid "" +"System database is outdated. You need to run the <a href=\"%s\">update</a> " +"tool." +msgstr "" +"System database is outdated. You need to run the <a href=\"%s\">update</a> " +"tool." + +#: app/lib/functions.php:250 +#, php-format +msgid "" +"Website is in maintenance mode. To revert this setting go to <a href=\"%s" +"\">Dashboard > Settings</a>." +msgstr "" +"Website is in maintenance mode. To revert this setting go to <a href=\"%s" +"\">Dashboard > Settings</a>." + +#: app/lib/functions.php:254 +#, php-format +msgid "" +"You should disable PHP error reporting for production enviroment. Go to <a " +"href='%s'>System settings</a> to revert this setting." +msgstr "" + +#: app/lib/functions.php:257 +#, php-format +msgid "" +"You haven't changed the default email settings. Go to <a href='%s'>Email " +"settings</a> to fix this." +msgstr "" + +#: app/lib/functions.php:780 +msgid "There is an update available for your Chevereto based website." +msgstr "" + +#: app/lib/functions.php:785 +msgid "admin dashboard" +msgstr "" + +#: app/lib/functions.php:785 +msgid "" +"You can apply this update directly from your %a or download it from %s and " +"then manually install it." +msgstr "" + +#: app/lib/functions.render.php:216 +#, php-format +msgid "view on %s" +msgstr "" + +#: app/lib/functions.render.php:307 +msgid "cookie policy" +msgstr "" + +#: app/lib/functions.render.php:307 +#, php-format +msgid "" +"We use our own and third party cookies to improve your browsing experience " +"and our services. If you continue using our website is understood that you " +"accept this %cookie_policy_link." +msgstr "" + +#: app/lib/functions.render.php:307 +msgid "I understand" +msgstr "" + +#: app/routes/route.account.php:74 +#: app/themes/Peafowl/views/account/password-forgot.php:12 +#: app/themes/Peafowl/views/login.php:30 +#: app/themes/Peafowl/views/settings.php:366 +msgid "Forgot password?" +msgstr "" + +#: app/routes/route.account.php:75 +#: app/themes/Peafowl/views/account/password-reset.php:12 +msgid "Reset password" +msgstr "" + +#: app/routes/route.account.php:76 +#: app/themes/Peafowl/views/account/resend-activation.php:12 +msgid "Resend account activation" +msgstr "" + +#: app/routes/route.account.php:78 +#: app/themes/Peafowl/views/account/email-needed.php:12 +msgid "Add your email address" +msgstr "" + +#: app/routes/route.account.php:79 +#: app/themes/Peafowl/views/account/email-changed.php:12 +msgid "Email changed" +msgstr "" + +#: app/routes/route.account.php:97 app/routes/route.album.php:71 +#: app/routes/route.login.php:56 app/routes/route.signup.php:68 +#: content/pages/default/contact.php:39 +#, php-format +msgid "%s says you are a robot" +msgstr "" + +#: app/routes/route.account.php:119 app/routes/route.account.php:167 +#: app/routes/route.account.php:268 +msgid "Invalid Username/Email" +msgstr "" + +#: app/routes/route.account.php:128 +msgid "User doesn't have an email." +msgstr "" + +#: app/routes/route.account.php:138 app/routes/route.account.php:278 +#: app/routes/route.account.php:298 app/routes/route.account.php:320 +#: app/routes/route.account.php:388 app/routes/route.dashboard.php:324 +#: app/routes/route.json.php:21 app/routes/route.json.php:38 +#: app/routes/route.json.php:45 app/routes/route.json.php:51 +#: app/routes/route.json.php:105 app/routes/route.json.php:177 +#: app/routes/route.json.php:265 app/routes/route.json.php:284 +#: app/routes/route.json.php:706 app/routes/route.json.php:779 +#: app/routes/route.json.php:827 app/routes/route.json.php:871 +#: app/themes/Peafowl/views/request-denied.php:8 app/web.php:380 +#: content/pages/default/contact.php:20 +msgid "Request denied" +msgstr "" + +#: app/routes/route.account.php:143 +msgid "Account needs to be activated to use this feature" +msgstr "" + +#: app/routes/route.account.php:150 +msgid "Account already activated" +msgstr "" + +#: app/routes/route.account.php:154 +msgid "Account banned" +msgstr "" + +#: app/routes/route.account.php:193 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "" + +#: app/routes/route.account.php:229 +#, php-format +msgid "Reset your password at %s" +msgstr "" + +#: app/routes/route.account.php:231 app/routes/route.account.php:455 +#: app/routes/route.settings.php:297 app/routes/route.signup.php:212 +#, php-format +msgid "Confirmation required at %s" +msgstr "" + +#: app/routes/route.account.php:339 app/routes/route.signup.php:230 +#, php-format +msgid "Welcome to %s" +msgstr "" + +#: app/routes/route.account.php:423 app/routes/route.json.php:744 +#: app/routes/route.settings.php:257 app/routes/route.signup.php:152 +msgid "Email already being used" +msgstr "" + +#: app/routes/route.album.php:99 +msgid "Password required" +msgstr "" + +#: app/routes/route.album.php:162 app/routes/route.image.php:127 +#: app/themes/Peafowl/snippets/anywhere_upload.php:215 +#: app/themes/Peafowl/snippets/embed_tpl.php:17 +#: app/themes/Peafowl/views/album.php:135 +#: app/themes/Peafowl/views/plugin.php:49 +msgid "Embed codes" +msgstr "" + +#: app/routes/route.album.php:175 +msgid "Sub albums" +msgstr "" + +#: app/routes/route.album.php:187 app/routes/route.image.php:135 +msgid "Info" +msgstr "" + +#: app/routes/route.album.php:217 +msgid "%a album hosted in %w" +msgstr "" + +#: app/routes/route.dashboard.php:50 app/routes/route.dashboard.php:202 +msgid "Stats" +msgstr "" + +#: app/routes/route.dashboard.php:51 app/routes/route.user.php:60 +#: app/themes/Peafowl/views/dashboard.php:250 +#: app/themes/Peafowl/views/settings.php:90 +msgid "Images" +msgstr "" + +#: app/routes/route.dashboard.php:52 app/routes/route.user.php:65 +#: app/themes/Peafowl/header.php:214 app/themes/Peafowl/views/dashboard.php:249 +#: app/themes/Peafowl/views/settings.php:94 +msgid "Albums" +msgstr "" + +#: app/routes/route.dashboard.php:53 app/routes/route.dashboard.php:244 +#: app/themes/Peafowl/views/dashboard.php:248 +#: app/themes/Peafowl/views/dashboard.php:1644 +msgid "Users" +msgstr "" + +#: app/routes/route.dashboard.php:54 app/routes/route.settings.php:541 +#: app/themes/Peafowl/header.php:179 app/themes/Peafowl/header.php:232 +msgid "Settings" +msgstr "" + +#: app/routes/route.dashboard.php:55 +msgid "Bulk importer" +msgstr "" + +#: app/routes/route.dashboard.php:141 +msgid "install update" +msgstr "" + +#: app/routes/route.dashboard.php:143 +msgid "check for updates" +msgstr "" + +#: app/routes/route.dashboard.php:145 +msgid "Releases" +msgstr "" + +#: app/routes/route.dashboard.php:163 +msgid "PHP version" +msgstr "" + +#: app/routes/route.dashboard.php:167 +#: app/themes/Peafowl/snippets/form_storage_edit.php:163 +msgid "Server" +msgstr "" + +#: app/routes/route.dashboard.php:171 +msgid "MySQL version" +msgstr "" + +#: app/routes/route.dashboard.php:175 +msgid "MySQL server info" +msgstr "" + +#: app/routes/route.dashboard.php:179 +msgid "Graphics Library" +msgstr "" + +#: app/routes/route.dashboard.php:182 +msgid "File uploads" +msgstr "" + +#: app/routes/route.dashboard.php:183 +#: app/themes/Peafowl/views/dashboard.php:700 +#: app/themes/Peafowl/views/dashboard.php:772 +#: app/themes/Peafowl/views/dashboard.php:781 +#: app/themes/Peafowl/views/dashboard.php:794 +#: app/themes/Peafowl/views/dashboard.php:805 +#: app/themes/Peafowl/views/dashboard.php:816 +#: app/themes/Peafowl/views/dashboard.php:828 +#: app/themes/Peafowl/views/dashboard.php:1212 +#: app/themes/Peafowl/views/dashboard.php:1220 +#: app/themes/Peafowl/views/dashboard.php:1237 +#: app/themes/Peafowl/views/dashboard.php:1264 +#: app/themes/Peafowl/views/dashboard.php:1282 +#: app/themes/Peafowl/views/dashboard.php:1291 +#: app/themes/Peafowl/views/dashboard.php:1302 +#: app/themes/Peafowl/views/dashboard.php:1353 +#: app/themes/Peafowl/views/dashboard.php:1440 +#: app/themes/Peafowl/views/dashboard.php:1651 +#: app/themes/Peafowl/views/dashboard.php:1661 +#: app/themes/Peafowl/views/dashboard.php:1683 +#: app/themes/Peafowl/views/dashboard.php:1695 +#: app/themes/Peafowl/views/dashboard.php:1709 +#: app/themes/Peafowl/views/dashboard.php:1720 +#: app/themes/Peafowl/views/dashboard.php:1751 +#: app/themes/Peafowl/views/dashboard.php:1778 +#: app/themes/Peafowl/views/dashboard.php:1789 +#: app/themes/Peafowl/views/dashboard.php:1833 +#: app/themes/Peafowl/views/dashboard.php:1843 +#: app/themes/Peafowl/views/dashboard.php:1851 +#: app/themes/Peafowl/views/dashboard.php:1859 +#: app/themes/Peafowl/views/dashboard.php:1868 +#: app/themes/Peafowl/views/dashboard.php:1897 +#: app/themes/Peafowl/views/dashboard.php:2014 +#: app/themes/Peafowl/views/dashboard.php:2077 +#: app/themes/Peafowl/views/dashboard.php:2086 +#: app/themes/Peafowl/views/dashboard.php:2097 +#: app/themes/Peafowl/views/dashboard.php:2108 +#: app/themes/Peafowl/views/dashboard.php:2132 +#: app/themes/Peafowl/views/dashboard.php:2241 +#: app/themes/Peafowl/views/dashboard.php:2334 +#: app/themes/Peafowl/views/dashboard.php:2343 +#: app/themes/Peafowl/views/dashboard.php:2353 +#: app/themes/Peafowl/views/dashboard.php:2366 +#: app/themes/Peafowl/views/dashboard.php:2377 +#: app/themes/Peafowl/views/dashboard.php:2392 +#: app/themes/Peafowl/views/dashboard.php:2445 +#: app/themes/Peafowl/views/dashboard.php:2453 +#: app/themes/Peafowl/views/dashboard.php:2482 +#: app/themes/Peafowl/views/dashboard.php:2491 +#: app/themes/Peafowl/views/dashboard.php:2753 +#: app/themes/Peafowl/views/dashboard.php:2778 +#: app/themes/Peafowl/views/dashboard.php:2810 +#: app/themes/Peafowl/views/dashboard.php:2835 +#: app/themes/Peafowl/views/dashboard.php:2865 +#: app/themes/Peafowl/views/dashboard.php:2888 +#: app/themes/Peafowl/views/dashboard.php:2901 +#: app/themes/Peafowl/views/dashboard.php:2920 +#: app/themes/Peafowl/views/dashboard.php:2961 +#: app/themes/Peafowl/views/dashboard.php:3015 +#: app/themes/Peafowl/views/dashboard.php:3031 +#: app/themes/Peafowl/views/dashboard.php:3076 +#: app/themes/Peafowl/views/dashboard.php:3096 +msgid "Enabled" +msgstr "" + +#: app/routes/route.dashboard.php:183 +#: app/themes/Peafowl/views/dashboard.php:700 +#: app/themes/Peafowl/views/dashboard.php:713 +#: app/themes/Peafowl/views/dashboard.php:715 +#: app/themes/Peafowl/views/dashboard.php:772 +#: app/themes/Peafowl/views/dashboard.php:781 +#: app/themes/Peafowl/views/dashboard.php:794 +#: app/themes/Peafowl/views/dashboard.php:805 +#: app/themes/Peafowl/views/dashboard.php:816 +#: app/themes/Peafowl/views/dashboard.php:828 +#: app/themes/Peafowl/views/dashboard.php:1212 +#: app/themes/Peafowl/views/dashboard.php:1220 +#: app/themes/Peafowl/views/dashboard.php:1237 +#: app/themes/Peafowl/views/dashboard.php:1249 +#: app/themes/Peafowl/views/dashboard.php:1264 +#: app/themes/Peafowl/views/dashboard.php:1282 +#: app/themes/Peafowl/views/dashboard.php:1291 +#: app/themes/Peafowl/views/dashboard.php:1302 +#: app/themes/Peafowl/views/dashboard.php:1354 +#: app/themes/Peafowl/views/dashboard.php:1440 +#: app/themes/Peafowl/views/dashboard.php:1651 +#: app/themes/Peafowl/views/dashboard.php:1661 +#: app/themes/Peafowl/views/dashboard.php:1683 +#: app/themes/Peafowl/views/dashboard.php:1695 +#: app/themes/Peafowl/views/dashboard.php:1709 +#: app/themes/Peafowl/views/dashboard.php:1720 +#: app/themes/Peafowl/views/dashboard.php:1751 +#: app/themes/Peafowl/views/dashboard.php:1778 +#: app/themes/Peafowl/views/dashboard.php:1789 +#: app/themes/Peafowl/views/dashboard.php:1832 +#: app/themes/Peafowl/views/dashboard.php:1843 +#: app/themes/Peafowl/views/dashboard.php:1851 +#: app/themes/Peafowl/views/dashboard.php:1859 +#: app/themes/Peafowl/views/dashboard.php:1868 +#: app/themes/Peafowl/views/dashboard.php:1897 +#: app/themes/Peafowl/views/dashboard.php:2014 +#: app/themes/Peafowl/views/dashboard.php:2077 +#: app/themes/Peafowl/views/dashboard.php:2086 +#: app/themes/Peafowl/views/dashboard.php:2097 +#: app/themes/Peafowl/views/dashboard.php:2108 +#: app/themes/Peafowl/views/dashboard.php:2120 +#: app/themes/Peafowl/views/dashboard.php:2132 +#: app/themes/Peafowl/views/dashboard.php:2241 +#: app/themes/Peafowl/views/dashboard.php:2334 +#: app/themes/Peafowl/views/dashboard.php:2343 +#: app/themes/Peafowl/views/dashboard.php:2353 +#: app/themes/Peafowl/views/dashboard.php:2366 +#: app/themes/Peafowl/views/dashboard.php:2377 +#: app/themes/Peafowl/views/dashboard.php:2392 +#: app/themes/Peafowl/views/dashboard.php:2445 +#: app/themes/Peafowl/views/dashboard.php:2453 +#: app/themes/Peafowl/views/dashboard.php:2482 +#: app/themes/Peafowl/views/dashboard.php:2491 +#: app/themes/Peafowl/views/dashboard.php:2753 +#: app/themes/Peafowl/views/dashboard.php:2778 +#: app/themes/Peafowl/views/dashboard.php:2810 +#: app/themes/Peafowl/views/dashboard.php:2835 +#: app/themes/Peafowl/views/dashboard.php:2865 +#: app/themes/Peafowl/views/dashboard.php:2888 +#: app/themes/Peafowl/views/dashboard.php:2901 +#: app/themes/Peafowl/views/dashboard.php:2920 +#: app/themes/Peafowl/views/dashboard.php:2961 +#: app/themes/Peafowl/views/dashboard.php:3015 +#: app/themes/Peafowl/views/dashboard.php:3031 +#: app/themes/Peafowl/views/dashboard.php:3038 +#: app/themes/Peafowl/views/dashboard.php:3044 +#: app/themes/Peafowl/views/dashboard.php:3076 +#: app/themes/Peafowl/views/dashboard.php:3096 +msgid "Disabled" +msgstr "" + +#: app/routes/route.dashboard.php:186 +msgid "Max. upload file size" +msgstr "" + +#: app/routes/route.dashboard.php:190 +msgid "Max. post size" +msgstr "" + +#: app/routes/route.dashboard.php:194 +msgid "Max. execution time" +msgstr "" + +#: app/routes/route.dashboard.php:195 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +#: app/routes/route.dashboard.php:198 +msgid "Memory limit" +msgstr "" + +#: app/routes/route.dashboard.php:203 +msgid "Rebuild stats" +msgstr "" + +#: app/routes/route.dashboard.php:206 +msgid "Connecting IP" +msgstr "" + +#: app/routes/route.dashboard.php:207 app/themes/Peafowl/views/dashboard.php:35 +msgid "Not your IP?" +msgstr "" + +#: app/routes/route.dashboard.php:238 +#: app/themes/Peafowl/views/dashboard.php:675 +#: app/themes/Peafowl/views/settings.php:459 +msgid "Website" +msgstr "" + +#: app/routes/route.dashboard.php:239 +#: app/themes/Peafowl/views/dashboard.php:1824 +msgid "Content" +msgstr "" + +#: app/routes/route.dashboard.php:240 +#: app/themes/Peafowl/views/dashboard.php:1150 +msgid "Pages" +msgstr "" + +#: app/routes/route.dashboard.php:241 app/routes/route.dashboard.php:473 +#: app/themes/Peafowl/views/dashboard.php:1875 +msgid "Listings" +msgstr "" + +#: app/routes/route.dashboard.php:242 +#: app/themes/Peafowl/views/dashboard.php:1191 +msgid "Image upload" +msgstr "" + +#: app/routes/route.dashboard.php:243 app/themes/Peafowl/header.php:90 +#: app/themes/Peafowl/views/dashboard.php:1551 +msgid "Categories" +msgstr "" + +#: app/routes/route.dashboard.php:245 +#: app/themes/Peafowl/views/dashboard.php:1746 +msgid "Consent screen" +msgstr "" + +#: app/routes/route.dashboard.php:246 +#: app/themes/Peafowl/views/dashboard.php:1773 +#: app/themes/Peafowl/views/dashboard.php:1775 +msgid "Flood protection" +msgstr "" + +#: app/routes/route.dashboard.php:247 +#: app/themes/Peafowl/views/dashboard.php:1953 +#: app/themes/Peafowl/views/dashboard.php:1956 +msgid "Theme" +msgstr "" + +#: app/routes/route.dashboard.php:248 app/routes/route.dashboard.php:456 +#: app/routes/route.settings.php:68 app/themes/Peafowl/views/dashboard.php:2155 +msgid "Homepage" +msgstr "" + +#: app/routes/route.dashboard.php:249 +#: app/themes/Peafowl/views/dashboard.php:2294 +msgid "Banners" +msgstr "" + +#: app/routes/route.dashboard.php:250 +#: app/themes/Peafowl/views/dashboard.php:2329 +msgid "System" +msgstr "" + +#: app/routes/route.dashboard.php:251 +#: app/themes/Peafowl/views/dashboard.php:2410 +msgid "Routing" +msgstr "" + +#: app/routes/route.dashboard.php:252 +#: app/themes/Peafowl/views/dashboard.php:2462 +msgid "Languages" +msgstr "" + +#: app/routes/route.dashboard.php:253 +#: app/themes/Peafowl/views/dashboard.php:2545 +msgid "External storage" +msgstr "" + +#: app/routes/route.dashboard.php:254 +#: app/themes/Peafowl/views/dashboard.php:539 +#: app/themes/Peafowl/views/dashboard.php:2616 +msgid "Email" +msgstr "" + +#: app/routes/route.dashboard.php:255 +#: app/themes/Peafowl/views/dashboard.php:2748 +msgid "Social networks" +msgstr "" + +#: app/routes/route.dashboard.php:256 +#: app/themes/Peafowl/views/dashboard.php:2860 +msgid "External services" +msgstr "" + +#: app/routes/route.dashboard.php:257 +#: app/themes/Peafowl/views/dashboard.php:1607 +msgid "IP bans" +msgstr "" + +#: app/routes/route.dashboard.php:259 +#: app/themes/Peafowl/views/dashboard.php:3071 +msgid "Additional settings" +msgstr "" + +#: app/routes/route.dashboard.php:260 +#: app/themes/Peafowl/views/dashboard.php:2692 +msgid "Tools" +msgstr "" + +#: app/routes/route.dashboard.php:328 +msgid "Can't delete all homepage cover images" +msgstr "" + +#: app/routes/route.dashboard.php:349 +msgid "Homepage cover image deleted" +msgstr "" + +#: app/routes/route.dashboard.php:363 +msgid "Local" +msgstr "" + +#: app/routes/route.dashboard.php:367 +msgid "External" +msgstr "" + +#: app/routes/route.dashboard.php:372 app/themes/Peafowl/header.php:54 +#: app/themes/Peafowl/snippets/form_advanced_search.php:40 +#: app/themes/Peafowl/snippets/form_advanced_search.php:63 +#: app/themes/Peafowl/views/dashboard.php:1251 +msgid "All" +msgstr "" + +#: app/routes/route.dashboard.php:379 app/routes/route.image.php:147 +#: app/themes/Peafowl/views/dashboard.php:2566 +#: app/themes/Peafowl/views/settings.php:109 +msgid "search content" +msgstr "" + +#: app/routes/route.dashboard.php:392 +#: app/themes/Peafowl/views/dashboard.php:657 +msgid "Add page" +msgstr "" + +#: app/routes/route.dashboard.php:411 +#, php-format +msgid "Edit page ID %s" +msgstr "" + +#: app/routes/route.dashboard.php:416 +msgid "The page has been added successfully." +msgstr "" + +#: app/routes/route.dashboard.php:443 +msgid "The page has been deleted." +msgstr "" + +#: app/routes/route.dashboard.php:459 app/routes/route.dashboard.php:462 +#: app/routes/route.dashboard.php:465 app/routes/route.dashboard.php:468 +msgid "homepage" +msgstr "" + +#: app/routes/route.dashboard.php:459 +#, php-format +msgid "Before main title (%s)" +msgstr "" + +#: app/routes/route.dashboard.php:462 +#, php-format +msgid "After call to action (%s)" +msgstr "" + +#: app/routes/route.dashboard.php:465 +#, php-format +msgid "After cover (%s)" +msgstr "" + +#: app/routes/route.dashboard.php:468 +#, php-format +msgid "After listing (%s)" +msgstr "" + +#: app/routes/route.dashboard.php:476 +msgid "Before pagination" +msgstr "" + +#: app/routes/route.dashboard.php:479 +msgid "After pagination" +msgstr "" + +#: app/routes/route.dashboard.php:484 +msgid "Content (image and album)" +msgstr "" + +#: app/routes/route.dashboard.php:487 +msgid "Tab about column" +msgstr "" + +#: app/routes/route.dashboard.php:490 +msgid "Before comments" +msgstr "" + +#: app/routes/route.dashboard.php:495 +msgid "Image page" +msgstr "" + +#: app/routes/route.dashboard.php:498 +msgid "Inside viewer top (image page)" +msgstr "" + +#: app/routes/route.dashboard.php:501 +msgid "Inside viewer foot (image page)" +msgstr "" + +#: app/routes/route.dashboard.php:504 +msgid "After image viewer (image page)" +msgstr "" + +#: app/routes/route.dashboard.php:507 +msgid "Before header (image page)" +msgstr "" + +#: app/routes/route.dashboard.php:510 +msgid "After header (image page)" +msgstr "" + +#: app/routes/route.dashboard.php:513 +msgid "Footer (image page)" +msgstr "" + +#: app/routes/route.dashboard.php:518 +msgid "Album page" +msgstr "" + +#: app/routes/route.dashboard.php:521 +msgid "Before header (album page)" +msgstr "" + +#: app/routes/route.dashboard.php:524 +msgid "After header (album page)" +msgstr "" + +#: app/routes/route.dashboard.php:529 +msgid "User profile page" +msgstr "" + +#: app/routes/route.dashboard.php:532 +msgid "After top (user profile)" +msgstr "" + +#: app/routes/route.dashboard.php:535 +msgid "Before listing (user profile)" +msgstr "" + +#: app/routes/route.dashboard.php:540 +msgid "Explore page" +msgstr "" + +#: app/routes/route.dashboard.php:543 +msgid "After top (explore page)" +msgstr "" + +#: app/routes/route.dashboard.php:552 +#: app/themes/Peafowl/views/dashboard.php:1826 +msgid "NSFW" +msgstr "" + +#: app/routes/route.dashboard.php:636 +msgid "Invalid website name" +msgstr "" + +#: app/routes/route.dashboard.php:641 +msgid "Invalid language" +msgstr "" + +#: app/routes/route.dashboard.php:646 +msgid "Invalid timezone" +msgstr "" + +#: app/routes/route.dashboard.php:651 app/routes/route.dashboard.php:656 +#: app/routes/route.dashboard.php:661 app/routes/route.dashboard.php:864 +#: app/routes/route.dashboard.php:869 app/routes/route.dashboard.php:874 +#: app/routes/route.dashboard.php:879 +#, php-format +msgid "Invalid value: %s" +msgstr "" + +#: app/routes/route.dashboard.php:666 +msgid "Invalid upload storage mode" +msgstr "" + +#: app/routes/route.dashboard.php:671 +msgid "Invalid upload filenaming" +msgstr "" + +#: app/routes/route.dashboard.php:676 +msgid "Invalid thumb width" +msgstr "" + +#: app/routes/route.dashboard.php:681 +msgid "Invalid thumb height" +msgstr "" + +#: app/routes/route.dashboard.php:686 +msgid "Invalid medium size" +msgstr "" + +#: app/routes/route.dashboard.php:691 +msgid "Invalid watermark percentage" +msgstr "" + +#: app/routes/route.dashboard.php:696 +msgid "Invalid watermark opacity" +msgstr "" + +#: app/routes/route.dashboard.php:701 +msgid "Invalid theme" +msgstr "" + +#: app/routes/route.dashboard.php:706 app/routes/route.dashboard.php:930 +#: app/routes/route.dashboard.php:1148 +msgid "Invalid value" +msgstr "" + +#: app/routes/route.dashboard.php:711 +msgid "Invalid theme tone" +msgstr "" + +#: app/routes/route.dashboard.php:716 +msgid "Invalid theme main color" +msgstr "" + +#: app/routes/route.dashboard.php:721 +msgid "Invalid theme top bar button color" +msgstr "" + +#: app/routes/route.dashboard.php:726 +msgid "Invalid theme image listing size" +msgstr "" + +#: app/routes/route.dashboard.php:731 +msgid "Invalid user id" +msgstr "" + +#: app/routes/route.dashboard.php:736 +msgid "Invalid email mode" +msgstr "" + +#: app/routes/route.dashboard.php:741 +msgid "Invalid SMTP port" +msgstr "" + +#: app/routes/route.dashboard.php:746 +msgid "Invalid SMTP security" +msgstr "" + +#: app/routes/route.dashboard.php:751 +msgid "Invalid website mode" +msgstr "" + +#: app/routes/route.dashboard.php:756 app/routes/route.dashboard.php:1009 +msgid "Invalid personal mode user ID" +msgstr "" + +#: app/routes/route.dashboard.php:761 +msgid "Invalid or reserved route" +msgstr "" + +#: app/routes/route.dashboard.php:766 +msgid "Invalid website privacy mode" +msgstr "" + +#: app/routes/route.dashboard.php:771 +msgid "Invalid website content privacy mode" +msgstr "" + +#: app/routes/route.dashboard.php:776 +msgid "Invalid homepage style" +msgstr "" + +#: app/routes/route.dashboard.php:781 +msgid "Invalid homepage call to action button color" +msgstr "" + +#: app/routes/route.dashboard.php:788 +msgid "Invalid homepage call to action functionality" +msgstr "" + +#: app/routes/route.dashboard.php:794 +msgid "Invalid title" +msgstr "" + +#: app/routes/route.dashboard.php:799 +msgid "Invalid status" +msgstr "" + +#: app/routes/route.dashboard.php:804 +msgid "Invalid type" +msgstr "" + +#: app/routes/route.dashboard.php:809 +msgid "Invalid visibility" +msgstr "" + +#: app/routes/route.dashboard.php:814 +msgid "Invalid internal type" +msgstr "" + +#: app/routes/route.dashboard.php:819 +msgid "Invalid target attribute" +msgstr "" + +#: app/routes/route.dashboard.php:824 +msgid "Invalid rel attribute" +msgstr "" + +#: app/routes/route.dashboard.php:829 +msgid "Invalid icon" +msgstr "" + +#: app/routes/route.dashboard.php:834 +msgid "Invalid URL key" +msgstr "" + +#: app/routes/route.dashboard.php:839 +msgid "Invalid file path" +msgstr "" + +#: app/routes/route.dashboard.php:844 +msgid "Invalid link URL" +msgstr "" + +#: app/routes/route.dashboard.php:849 +msgid "Invalid user minimum age" +msgstr "" + +#: app/routes/route.dashboard.php:854 app/routes/route.dashboard.php:859 +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "" + +#: app/routes/route.dashboard.php:884 app/routes/route.dashboard.php:1130 +msgid "Invalid URL" +msgstr "" + +#: app/routes/route.dashboard.php:891 +msgid "Routes can't be the same" +msgstr "" + +#: app/routes/route.dashboard.php:909 +msgid "Invalid upload image path" +msgstr "" + +#: app/routes/route.dashboard.php:921 +msgid "Invalid call to action URL" +msgstr "" + +#: app/routes/route.dashboard.php:933 +#, php-format +msgid "Max. allowed %s" +msgstr "" + +#: app/routes/route.dashboard.php:949 +msgid "Can't map %m to an existing folder (%f)" +msgstr "" + +#: app/routes/route.dashboard.php:957 +msgid "Can't map %m to an existing route (%r)" +msgstr "" + +#: app/routes/route.dashboard.php:964 +msgid "Can't map %m to %r (username collision)" +msgstr "" + +#: app/routes/route.dashboard.php:1050 +msgid "Invalid SMTP server" +msgstr "" + +#: app/routes/route.dashboard.php:1051 +msgid "Invalid SMTP username" +msgstr "" + +#: app/routes/route.dashboard.php:1117 +msgid "Invalid key" +msgstr "" + +#: app/routes/route.dashboard.php:1168 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "" + +#: app/routes/route.dashboard.php:1169 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "" + +#: app/routes/route.dashboard.php:1193 +#, php-format +msgid "Can't save page contents: %s." +msgstr "" + +#: app/routes/route.following.php:38 app/routes/route.user.php:87 +#: app/themes/Peafowl/header.php:73 app/themes/Peafowl/header.php:223 +#: app/themes/Peafowl/views/following.php:9 +#: app/themes/Peafowl/views/user.php:95 app/themes/Peafowl/views/user.php:101 +msgid "Following" +msgstr "" + +#: app/routes/route.image.php:119 app/themes/Peafowl/header.php:289 +#: app/themes/Peafowl/views/dashboard.php:3080 +msgid "About" +msgstr "" + +#: app/routes/route.image.php:142 +msgid "Image ID" +msgstr "" + +#: app/routes/route.image.php:146 +msgid "Uploader IP" +msgstr "" + +#: app/routes/route.image.php:147 app/themes/Peafowl/views/settings.php:109 +msgid "Ban IP" +msgstr "" + +#: app/routes/route.image.php:147 app/themes/Peafowl/views/settings.php:109 +msgid "IP already banned" +msgstr "" + +#: app/routes/route.image.php:150 +msgid "Upload date" +msgstr "" + +#: app/routes/route.image.php:197 +msgid "Image %i in %a album" +msgstr "" + +#: app/routes/route.image.php:199 +msgid "Image %i in %c category" +msgstr "" + +#: app/routes/route.image.php:201 +msgid "Image %i hosted in %w" +msgstr "" + +#: app/routes/route.image.php:218 app/themes/Peafowl/snippets/embed.php:16 +msgid "Direct links" +msgstr "" + +#: app/routes/route.image.php:221 +msgid "Image link" +msgstr "" + +#: app/routes/route.image.php:225 +msgid "Image URL" +msgstr "" + +#: app/routes/route.image.php:229 +msgid "Thumbnail URL" +msgstr "" + +#: app/routes/route.image.php:236 +msgid "Medium URL" +msgstr "" + +#: app/routes/route.image.php:246 +msgid "Full image" +msgstr "" + +#: app/routes/route.image.php:266 +msgid "Full image (linked)" +msgstr "" + +#: app/routes/route.image.php:289 +msgid "Medium image (linked)" +msgstr "" + +#: app/routes/route.image.php:312 +msgid "Thumbnail image (linked)" +msgstr "" + +#: app/routes/route.json.php:62 app/routes/route.json.php:375 +#: app/routes/route.json.php:898 app/routes/route.json.php:1085 +#: app/routes/route.json.php:1237 +msgid "Login needed" +msgstr "" + +#: app/routes/route.json.php:646 app/routes/route.json.php:843 +msgid "IP address already banned" +msgstr "" + +#: app/routes/route.json.php:713 app/routes/route.json.php:786 +msgid "Missing values" +msgstr "" + +#: app/routes/route.json.php:734 +msgid "Invalid role" +msgstr "" + +#: app/routes/route.json.php:739 +msgid "Username already being used" +msgstr "" + +#: app/routes/route.json.php:1264 +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "" + +#: app/routes/route.json.php:1278 +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "" + +#: app/routes/route.json.php:1290 +#, php-format +msgid "%s has been disconnected." +msgstr "" + +#: app/routes/route.json.php:1317 +msgid "Test email from %s @ %t" +msgstr "" + +#: app/routes/route.json.php:1317 +msgid "This is just a test" +msgstr "" + +#: app/routes/route.json.php:1319 +#, php-format +msgid "Test email sent to %s." +msgstr "" + +#: app/routes/route.json.php:1358 +#, php-format +msgid "Downloading %s data" +msgstr "" + +#: app/routes/route.json.php:1391 +#, php-format +msgid "User %s followed" +msgstr "" + +#: app/routes/route.json.php:1391 +#, php-format +msgid "User %s unfollowed" +msgstr "" + +#: app/routes/route.json.php:1418 +msgid "Album cover altered" +msgstr "" + +#: app/routes/route.json.php:1438 +msgid "Content liked" +msgstr "" + +#: app/routes/route.json.php:1438 +msgid "Content disliked" +msgstr "" + +#: app/routes/route.json.php:1492 +msgid "%u liked your %t %c" +msgstr "" + +#: app/routes/route.json.php:1498 +#, php-format +msgid "%u is now following you" +msgstr "" + +#: app/routes/route.json.php:1502 +msgid "A private user" +msgstr "" + +#: app/routes/route.login.php:113 +msgid "Wrong Username/Email password combination" +msgstr "" + +#: app/routes/route.login.php:128 app/themes/Peafowl/header.php:161 +#: app/themes/Peafowl/snippets/quickty/top_left.php:18 +msgid "Sign in" +msgstr "" + +#: app/routes/route.moderate.php:23 app/routes/route.moderate.php:63 +#: app/themes/Peafowl/header.php:238 +msgid "Moderate" +msgstr "" + +#: app/routes/route.plugin.php:86 +msgid "Upload images" +msgstr "" + +#: app/routes/route.plugin.php:105 app/themes/Peafowl/views/plugin.php:9 +msgid "Upload plugin" +msgstr "" + +#: app/routes/route.search.php:83 +#, php-format +msgid "Image search results for %s" +msgstr "" + +#: app/routes/route.search.php:86 +#, php-format +msgid "Album search results for %s" +msgstr "" + +#: app/routes/route.search.php:89 +#, php-format +msgid "User search results for %s" +msgstr "" + +#: app/routes/route.settings.php:64 +#: app/themes/Peafowl/snippets/form_storage_edit.php:94 +msgid "Account" +msgstr "" + +#: app/routes/route.settings.php:65 +msgid "Profile" +msgstr "" + +#: app/routes/route.settings.php:67 +msgid "Linked accounts" +msgstr "" + +#: app/routes/route.settings.php:69 app/themes/Peafowl/views/dashboard.php:697 +#: app/themes/Peafowl/views/dashboard.php:702 +#: app/themes/Peafowl/views/index.php:88 +msgid "Powered by" +msgstr "" + +#: app/routes/route.settings.php:204 +#, php-format +msgid "Invalid image expiration: %s" +msgstr "" + +#: app/routes/route.settings.php:283 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "" + +#: app/routes/route.settings.php:315 content/pages/default/contact.php:25 +msgid "Invalid name" +msgstr "" + +#: app/routes/route.settings.php:319 +msgid "Invalid website" +msgstr "" + +#: app/routes/route.settings.php:334 +msgid "Wrong password" +msgstr "" + +#: app/routes/route.settings.php:337 +msgid "Use a new password" +msgstr "" + +#: app/routes/route.settings.php:467 +#: app/themes/Peafowl/views/dashboard.php:3133 +#: app/themes/Peafowl/views/settings.php:579 +msgid "Changes have been saved." +msgstr "" + +#: app/routes/route.settings.php:476 +msgid "Password has been changed" +msgstr "" + +#: app/routes/route.settings.php:479 +msgid "Password has been created." +msgstr "" + +#: app/routes/route.settings.php:495 +msgid "Wrong Username/Email values" +msgstr "" + +#: app/routes/route.settings.php:541 +#, php-format +msgid "Settings for %s" +msgstr "" + +#: app/routes/route.signup.php:105 +msgid "You must agree to the terms and privacy policy" +msgstr "" + +#: app/routes/route.signup.php:109 +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "" + +#: app/routes/route.signup.php:264 app/themes/Peafowl/views/index.php:78 +#: app/themes/Peafowl/views/signup.php:12 +#: app/themes/Peafowl/views/signup.php:56 +msgid "Create account" +msgstr "" + +#: app/routes/route.upload.php:45 app/themes/Peafowl/header.php:150 +#: app/themes/Peafowl/snippets/anywhere_upload.php:173 +msgid "Upload" +msgstr "" + +#: app/routes/route.user.php:59 app/themes/Peafowl/views/index.php:49 +#, php-format +msgid "%s's Images" +msgstr "" + +#: app/routes/route.user.php:69 +msgid "Results for" +msgstr "" + +#: app/routes/route.user.php:79 +#, php-format +msgid "Liked by %s" +msgstr "" + +#: app/routes/route.user.php:80 app/themes/Peafowl/header.php:217 +msgid "Liked" +msgstr "" + +#: app/routes/route.user.php:92 app/themes/Peafowl/header.php:224 +#: app/themes/Peafowl/views/dashboard.php:823 +msgid "Followers" +msgstr "" + +#: app/routes/route.user.php:308 +msgid "%n (%u) albums on %w" +msgstr "" + +#: app/routes/route.user.php:313 +msgid "%n (%u) on %w" +msgstr "" + +#: app/themes/Peafowl/header.php:78 +msgid "Discovery" +msgstr "" + +#: app/themes/Peafowl/header.php:108 app/themes/Peafowl/views/dashboard.php:802 +#: app/themes/Peafowl/views/dashboard.php:1396 +msgid "Random" +msgstr "" + +#: app/themes/Peafowl/header.php:123 app/themes/Peafowl/header.php:127 +msgid "Advanced search" +msgstr "" + +#: app/themes/Peafowl/header.php:140 app/themes/Peafowl/header.php:313 +#, php-format +msgid "Notices (%s)" +msgstr "" + +#: app/themes/Peafowl/header.php:172 app/themes/Peafowl/header.php:178 +msgid "Notifications" +msgstr "" + +#: app/themes/Peafowl/header.php:189 +msgid "You don't have notifications" +msgstr "" + +#: app/themes/Peafowl/header.php:213 +msgid "My Profile" +msgstr "" + +#: app/themes/Peafowl/header.php:229 +msgid "Lights" +msgstr "" + +#: app/themes/Peafowl/header.php:247 +msgid "Sign out" +msgstr "" + +#: app/themes/Peafowl/mails/account-change-email.php:4 +msgid "" +"We received a request to change the email of your <a href=\"%u\">%n</a> " +"account at %w." +msgstr "" +"We received a request to change the email of your <a href=\"%u\">%n</a> " +"account at %w." + +#: app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "" +"To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "" +"To complete the process you must <a href=\"%s\">activate your email</a>." + +#: app/themes/Peafowl/mails/account-change-email.php:8 +#: app/themes/Peafowl/mails/account-confirm.php:8 +#: app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "" +"Alternatively you can copy and paste the URL into your browser: <a href=\"%s" +"\">%s</a>" +msgstr "" +"Alternatively you can copy and paste the URL into your browser: <a href=\"%s" +"\">%s</a>" + +#: app/themes/Peafowl/mails/account-change-email.php:10 +#: app/themes/Peafowl/mails/account-confirm.php:10 +#: app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "" + +#: app/themes/Peafowl/mails/account-change-email.php:12 +#: app/themes/Peafowl/mails/account-confirm.php:12 +#: app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "" + +#: app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "" + +#: app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "" +"To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "" +"To complete the process you must <a href=\"%s\">activate your account</a>." + +#: app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "" +"We received a request to reset the password for your <a href=\"%u\">%n</a> " +"account." +msgstr "" +"We received a request to reset the password for your <a href=\"%u\">%n</a> " +"account." + +#: app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "" + +#: app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "" + +#: app/themes/Peafowl/mails/account-welcome.php:6 +msgid "" +"Now that your account is ready you can enjoy uploading your images, creating " +"albums and setting the privacy of your content as well as many more cool " +"things that you will discover." +msgstr "" +"Now that your account is ready you can enjoy uploading your images, creating " +"albums and setting the privacy of your content as well as many more cool " +"things that you will discover." + +#: app/themes/Peafowl/mails/account-welcome.php:8 +msgid "" +"By the way, here is you very own awesome profile page: <a href=\"%u\">%n</" +"a>. Go ahead and customize it, its yours!." +msgstr "" +"By the way, here is you very own awesome profile page: <a href=\"%u\">%n</" +"a>. Go ahead and customize it, its yours!." + +#: app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "" + +#: app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:22 +msgid "Drag and drop or paste images here to upload" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:23 +msgid "Select the images to upload" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:26 +msgid "You can also %i or %u." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "You can also %i." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:29 +msgid "You can also %i, %c or %u." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:30 +msgid "You can also %i or %c." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:33 +msgid "browse from your computer" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:34 +#: app/themes/Peafowl/snippets/anywhere_upload.php:39 +#: app/themes/Peafowl/snippets/anywhere_upload.php:56 +#: app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "add image URLs" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:37 +msgid "browse from your device" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:38 +#: app/themes/Peafowl/snippets/anywhere_upload.php:60 +msgid "take a picture" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:44 +msgid "Edit or resize any image by clicking the image preview" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:45 +msgid "Edit any image by touching the image preview" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:48 +msgid "You can add more images from %i or %u." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:49 +msgid "You can add more images from %i." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:51 +msgid "You can add more images from %i, %c or %u." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:52 +msgid "You can add more images from %i or %c." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:55 +msgid "your computer" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:59 +msgid "your device" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:66 +msgid "Uploading %q %o" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "complete" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "" +"The queue is being uploaded, it should take just a few seconds to complete." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:74 +msgid "Upload complete" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:79 +#: app/themes/Peafowl/snippets/anywhere_upload.php:92 +#, php-format +msgid "Uploaded content added to %s." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:81 +msgid "You can %c with the content just uploaded or %m." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:83 +#: app/themes/Peafowl/snippets/anywhere_upload.php:96 +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:87 +#: app/themes/Peafowl/snippets/anywhere_upload.php:98 +msgid "create a new album" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:88 +msgid "move it to an existing album" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:96 +msgid "You must %s or %l to save this content into your account." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: app/themes/Peafowl/snippets/anywhere_upload.php:383 +msgid "create an account" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:100 +#: app/themes/Peafowl/snippets/anywhere_upload.php:384 +msgid "sign in" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:108 +#, php-format +msgid "No %s have been uploaded" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:109 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:151 +#: app/themes/Peafowl/snippets/form_advanced_search.php:43 +#: app/themes/Peafowl/snippets/form_category.php:5 +msgid "Category" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:153 +#: app/themes/Peafowl/snippets/form_category.php:11 +msgid "Select category" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:169 +msgid "Mark this if the upload is not family safe" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:169 +msgid "Not family safe upload" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Uploading" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:176 +#: app/themes/Peafowl/snippets/form_album.php:13 +#: app/themes/Peafowl/snippets/form_move_existing_album.php:19 +#: lib/Peafowl/peafowl.js:615 lib/Peafowl/peafowl.js:2858 +#: lib/Peafowl/peafowl.min.js:1 lib/Peafowl/peafowl.min.js:2 +msgid "or" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:176 +#: app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: lib/Peafowl/peafowl.js:2859 lib/Peafowl/peafowl.min.js:2 +msgid "cancel" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:176 +#: app/themes/Peafowl/snippets/anywhere_upload.php:202 +msgid "cancel remaining" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:181 +msgid "Note: Some images couldn't be uploaded." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:181 +msgid "learn more" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:182 +msgid "" +"Check the <a data-modal=\"simple\" data-target=\"failed-upload-result" +"\">error report</a> for more information." +msgstr "" +"Check the <a data-modal=\"simple\" data-target=\"failed-upload-result" +"\">error report</a> for more information." + +#: app/themes/Peafowl/snippets/anywhere_upload.php:191 +#, php-format +msgid "Register to get %s" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:199 +msgid "reset" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:200 +msgid "close" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:212 +msgid "Note" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:212 +msgid "We must approve the uploaded content before being able to share." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:236 +#: app/themes/Peafowl/snippets/embed_tpl.php:40 +#: app/themes/Peafowl/snippets/modal_share.php:16 +#: app/themes/Peafowl/views/album.php:155 +#: app/themes/Peafowl/views/image.php:328 +#: app/themes/Peafowl/views/plugin.php:26 +msgid "copy" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:237 +msgid "insert" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:269 +#: app/themes/Peafowl/views/dashboard.php:1342 +msgid "Remove" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:279 +#: app/themes/Peafowl/snippets/form_image.php:8 +#: app/themes/Peafowl/views/dashboard.php:963 +#: app/themes/Peafowl/views/dashboard.php:1156 +#: app/themes/Peafowl/views/dashboard.php:2207 +#: app/themes/Peafowl/views/settings.php:530 +msgid "Title" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:279 +#: app/themes/Peafowl/snippets/anywhere_upload.php:351 +#: app/themes/Peafowl/snippets/form_album.php:18 +#: app/themes/Peafowl/snippets/form_category_edit.php:14 +#: app/themes/Peafowl/snippets/form_image.php:8 +#: app/themes/Peafowl/snippets/form_image.php:40 +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:22 +#: app/themes/Peafowl/snippets/form_storage_edit.php:135 +#: app/themes/Peafowl/snippets/form_storage_edit.php:139 +#: app/themes/Peafowl/snippets/form_storage_edit.php:151 +#: app/themes/Peafowl/snippets/form_sub_album.php:13 +#: app/themes/Peafowl/views/dashboard.php:1057 +#: app/themes/Peafowl/views/dashboard.php:1063 +#: app/themes/Peafowl/views/dashboard.php:1126 +#: app/themes/Peafowl/views/dashboard.php:1133 +#: app/themes/Peafowl/views/dashboard.php:1140 +msgid "optional" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:305 +msgid "Resize image" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:308 +#: app/themes/Peafowl/views/dashboard.php:1323 +#: app/themes/Peafowl/views/dashboard.php:1407 +#: app/themes/Peafowl/views/dashboard.php:1421 +#: app/themes/Peafowl/views/dashboard.php:1481 +msgid "Width" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:311 +#: app/themes/Peafowl/views/dashboard.php:1326 +#: app/themes/Peafowl/views/dashboard.php:1410 +#: app/themes/Peafowl/views/dashboard.php:1421 +#: app/themes/Peafowl/views/dashboard.php:1484 +msgid "Height" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:314 +msgid "Note: Animated GIF images won't be resized." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:319 +msgid "Auto delete image" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:333 +#: app/themes/Peafowl/snippets/quickty/top_left.php:24 +msgid "Sign up" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:333 +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:342 +msgid "Mark this if the image is not family safe" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:344 +#: app/themes/Peafowl/snippets/listing_tools_editor.php:53 +msgid "Flag as unsafe" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:351 +#: app/themes/Peafowl/snippets/form_category_edit.php:14 +#: app/themes/Peafowl/snippets/form_image.php:40 +#: app/themes/Peafowl/views/dashboard.php:1566 +msgid "Description" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:352 +#: app/themes/Peafowl/snippets/form_image.php:41 +msgid "Brief description of this image" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:358 +msgid "Add image URLs" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:360 +msgid "Add the image URLs here" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:375 +#: app/themes/Peafowl/snippets/listing_tools_editor.php:36 +#: app/themes/Peafowl/snippets/user_items_editor.php:30 +msgid "Create album" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:377 +msgid "The uploaded content will be moved to this newly created album." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:380 +msgid "existing album" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:380 +msgid "You can also move the content to an %a." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:382 +msgid "You must %s or %l if you want to edit this album later on." +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:407 +#: app/themes/Peafowl/snippets/listing_tools_editor.php:37 +#: app/themes/Peafowl/snippets/user_items_editor.php:44 +#: app/themes/Peafowl/snippets/user_items_editor.php:59 +msgid "Move to album" +msgstr "" + +#: app/themes/Peafowl/snippets/anywhere_upload.php:408 +msgid "" +"Select an existing album to move the uploaded content. You can also <a class=" +"\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and " +"move the content there." +msgstr "" +"Select an existing album to move the uploaded content. You can also <a class=" +"\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and " +"move the content there." + +#: app/themes/Peafowl/snippets/anywhere_upload.php:422 +msgid "Error report" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:8 +#: app/themes/Peafowl/snippets/embed.php:100 +msgid "Links" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:11 +#: app/themes/Peafowl/snippets/embed.php:103 +msgid "Viewer links" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:23 +msgid "HTML Codes" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:26 +msgid "HTML image" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:31 +msgid "HTML full linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:36 +msgid "HTML medium linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:41 +msgid "HTML thumbnail linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:48 +msgid "BBCodes" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:51 +msgid "BBCode full" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:56 +msgid "BBCode full linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:61 +msgid "BBCode medium linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:66 +msgid "BBCode thumbnail linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:76 +msgid "Markdown full" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:81 +msgid "Markdown full linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:86 +msgid "Markdown medium linked" +msgstr "" + +#: app/themes/Peafowl/snippets/embed.php:91 +msgid "Markdown thumbnail linked" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:8 +msgid "All these words" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:9 +msgid "Type the important words: tri-colour rat terrier" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:12 +msgid "This exact word or phrase" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:13 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:22 +msgid "None of these words" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:23 +msgid "" +"Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "" +"Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "" + +#: app/themes/Peafowl/snippets/form_advanced_search.php:79 +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:6 +msgid "IP address" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:9 +#: app/themes/Peafowl/snippets/form_album.php:10 +#: app/themes/Peafowl/snippets/form_sub_album.php:9 +#: app/themes/Peafowl/snippets/form_sub_album.php:10 +msgid "Album name" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:13 +msgid "move to existing album" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:18 +#: app/themes/Peafowl/snippets/form_sub_album.php:13 +msgid "Album description" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:19 +#: app/themes/Peafowl/snippets/form_sub_album.php:14 +msgid "Brief description of this album" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:25 +#: app/themes/Peafowl/snippets/form_sub_album.php:20 +msgid "Album privacy" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:26 +#: app/themes/Peafowl/snippets/form_sub_album.php:21 +msgid "Who can view this content" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:30 +#: app/themes/Peafowl/snippets/form_sub_album.php:25 +msgid "Private (just me)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:31 +#: app/themes/Peafowl/snippets/form_sub_album.php:26 +msgid "Private (anyone with the link)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:32 +#: app/themes/Peafowl/snippets/form_sub_album.php:27 +msgid "Private (password protected)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_album.php:47 +#: app/themes/Peafowl/snippets/form_sub_album.php:42 +msgid "Album password" +msgstr "" + +#: app/themes/Peafowl/snippets/form_category_edit.php:6 +#: app/themes/Peafowl/snippets/form_storage_edit.php:5 +#: app/themes/Peafowl/views/dashboard.php:1564 +#: app/themes/Peafowl/views/dashboard.php:2549 +#: app/themes/Peafowl/views/settings.php:451 +#: content/pages/default/contact.php:92 +msgid "Name" +msgstr "" + +#: app/themes/Peafowl/snippets/form_category_edit.php:7 +msgid "Category name" +msgstr "" + +#: app/themes/Peafowl/snippets/form_category_edit.php:10 +#: app/themes/Peafowl/views/dashboard.php:1042 +#: app/themes/Peafowl/views/dashboard.php:1155 +#: app/themes/Peafowl/views/dashboard.php:1565 +msgid "URL key" +msgstr "" + +#: app/themes/Peafowl/snippets/form_category_edit.php:11 +msgid "Category URL key" +msgstr "" + +#: app/themes/Peafowl/snippets/form_category_edit.php:11 +msgid "Only letters, numbers, and hyphens" +msgstr "" + +#: app/themes/Peafowl/snippets/form_category_edit.php:15 +msgid "Brief description of this category" +msgstr "" + +#: app/themes/Peafowl/snippets/form_image.php:9 +msgid "Untitled image" +msgstr "" + +#: app/themes/Peafowl/snippets/form_image.php:32 +msgid "Mark this if the image is not safe for work" +msgstr "" + +#: app/themes/Peafowl/snippets/form_image.php:38 +msgid "Flag not safe" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:6 +#: app/themes/Peafowl/snippets/form_storage_edit.php:167 +#: app/themes/Peafowl/snippets/form_storage_edit.php:186 +msgid "Path" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:7 +msgid "Local path (absolute)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:11 +msgid "Directory structure" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:13 +msgid "Parse top level folders as users (username)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:14 +msgid "Parse top level folders as albums" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:15 +msgid "Don't parse folders" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_add.php:18 +msgid "" +"When parsing top level folders as users, second level folders will be parsed " +"as user albums. Parsing top level folders as albums adds these as guest " +"albums." +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_process.php:7 +msgid "Threads" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_process.php:9 +msgid "Select number of threads" +msgstr "" + +#: app/themes/Peafowl/snippets/form_import_process.php:14 +#, php-format +msgid "" +"This determines how intensive and fast will be the import process. Don't use " +"more than %s threads on a shared server." +msgstr "" + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "You can use wildcard * characters." +msgstr "" + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Expiration date" +msgstr "" + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:17 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "" + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:17 +msgid "Example" +msgstr "" + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:19 +msgid "" +"Until which date this IP address will be banned? Leave it empty for no " +"expiration." +msgstr "" +"Until which date this IP address will be banned? Leave it empty for no " +"expiration." + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:22 +#: app/themes/Peafowl/views/dashboard.php:1612 +#: content/pages/default/contact.php:122 +msgid "Message" +msgstr "" + +#: app/themes/Peafowl/snippets/form_ip_ban_edit.php:23 +msgid "Text message, HTML or a redirect URL" +msgstr "" + +#: app/themes/Peafowl/snippets/form_move_existing_album.php:5 +msgid "Existing album" +msgstr "" + +#: app/themes/Peafowl/snippets/form_move_existing_album.php:19 +msgid "create new album" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:6 +msgid "Storage name" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:9 +#: app/themes/Peafowl/views/dashboard.php:3059 +msgid "API" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:53 +#: app/themes/Peafowl/snippets/form_storage_edit.php:63 +#: app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Region" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:64 +#: app/themes/Peafowl/snippets/form_storage_edit.php:128 +msgid "Storage region" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:69 +msgid "Storage bucket" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:74 +#: app/themes/Peafowl/snippets/form_storage_edit.php:84 +#: app/themes/Peafowl/snippets/form_storage_edit.php:98 +msgid "Key" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:75 +msgid "Storage key" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:78 +#: app/themes/Peafowl/snippets/form_storage_edit.php:88 +msgid "Secret" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Storage secret" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Private key" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Google Cloud JSON key" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:106 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:111 +msgid "Service name" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Identity URL" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:116 +msgid "Identity API endpoint" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:116 +msgid "API endpoint for OpenStack identity" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:119 +#: app/themes/Peafowl/snippets/form_storage_edit.php:120 +#: app/themes/Peafowl/views/dashboard.php:534 +#: app/themes/Peafowl/views/dashboard.php:535 +#: app/themes/Peafowl/views/dashboard.php:2717 +#: app/themes/Peafowl/views/settings.php:164 +#: app/themes/Peafowl/views/settings.php:165 +#: app/themes/Peafowl/views/signup.php:28 +msgid "Username" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:131 +msgid "Container" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage container" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "Tenant id" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:136 +msgid "Tenant id (account id)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Tenant name" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "Tenant name (account name)" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:146 +#: app/themes/Peafowl/snippets/form_storage_edit.php:152 +#: app/themes/Peafowl/snippets/form_storage_edit.php:158 +msgid "Storage endpoint" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:164 +msgid "Server address" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:164 +msgid "Hostname or IP of the storage server" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:169 +msgid "Server path" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:169 +msgid "" +"Absolute path where the files will be stored in the context of the %p login. " +"Use %s for root path." +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:177 +msgid "Server login" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:181 +msgid "Server password" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:187 +msgid "Local path" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:187 +msgid "Local path where the files will be stored" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:192 +msgid "Storage capacity" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:193 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:195 +msgid "" +"This storage will be disabled when it reach this capacity. Leave it blank or " +"zero for no limit." +msgstr "" +"This storage will be disabled when it reach this capacity. Leave it blank or " +"zero for no limit." + +#: app/themes/Peafowl/snippets/form_storage_edit.php:199 +msgid "Storage URL" +msgstr "" + +#: app/themes/Peafowl/snippets/form_storage_edit.php:200 +msgid "The system will map the images of this storage to this URL." +msgstr "" + +#: app/themes/Peafowl/snippets/image_album_slice.php:13 +msgid "view more" +msgstr "" + +#: app/themes/Peafowl/snippets/listing.php:98 +#: app/themes/Peafowl/snippets/templates_content_listing.php:8 +#: app/themes/Peafowl/snippets/templates_content_listing.php:11 +msgid "Load more" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Select all" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Clear" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:23 +#: app/themes/Peafowl/views/dashboard.php:254 +#: app/themes/Peafowl/views/dashboard.php:276 +msgid "Actions" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:30 +msgid "Get embed codes" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: app/themes/Peafowl/snippets/user_items_editor.php:75 +msgid "Assign category" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:52 +msgid "Flag as safe" +msgstr "" + +#: app/themes/Peafowl/snippets/listing_tools_editor.php:61 +msgid "Clear selection" +msgstr "" + +#: app/themes/Peafowl/snippets/modal_create_album.php:6 +#: app/themes/Peafowl/views/user.php:140 +msgid "Create new album" +msgstr "" + +#: app/themes/Peafowl/snippets/modal_create_sub_album.php:6 +msgid "Create sub album" +msgstr "" + +#: app/themes/Peafowl/snippets/modal_share.php:6 +#: app/themes/Peafowl/views/album.php:67 app/themes/Peafowl/views/image.php:139 +msgid "Share" +msgstr "" + +#: app/themes/Peafowl/snippets/quickty/login_social.php:10 +msgid "Sign in with another account" +msgstr "" + +#: app/themes/Peafowl/snippets/quickty/login_social.php:14 +msgid "Continue with %label%" +msgstr "" + +#: app/themes/Peafowl/snippets/quickty/top_left.php:12 +msgid "Home" +msgstr "" + +#: app/themes/Peafowl/snippets/template_content_empty.php:7 +#: app/themes/Peafowl/views/dashboard.php:1177 +msgid "There's nothing to show here." +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:78 +msgid "All the selected images will be assigned to this category." +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:83 +msgid "There is no categories." +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:88 +msgid "Confirm flag content as safe" +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:90 +msgid "Do you really want to flag this content as safe?" +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:93 +msgid "Confirm flag content as unsafe" +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:95 +msgid "Do you really want to flag this content as unsafe?" +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:99 +#: app/themes/Peafowl/snippets/user_items_editor.php:109 +msgid "Confirm approval" +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:101 +#, fuzzy +#| msgid "" +#| "Do you really want to remove all the selected content? This can't be " +#| "undone." +msgid "Do you really want to approve this content? This can't be undone." +msgstr "" +"Do you really want to remove all the selected content? This can't be undone." + +#: app/themes/Peafowl/snippets/user_items_editor.php:104 +#: app/themes/Peafowl/snippets/user_items_editor.php:114 +msgid "Confirm deletion" +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:106 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "" + +#: app/themes/Peafowl/snippets/user_items_editor.php:111 +#, fuzzy +#| msgid "" +#| "Do you really want to remove all the selected content? This can't be " +#| "undone." +msgid "" +"Do you really want to approve all the selected content? This can't be undone." +msgstr "" +"Do you really want to remove all the selected content? This can't be undone." + +#: app/themes/Peafowl/snippets/user_items_editor.php:116 +msgid "" +"Do you really want to remove all the selected content? This can't be undone." +msgstr "" +"Do you really want to remove all the selected content? This can't be undone." + +#: app/themes/Peafowl/snippets/viewer_template.php:30 +#: app/themes/Peafowl/views/dashboard.php:1250 +msgid "Guest" +msgstr "" + +#: app/themes/Peafowl/snippets/viewer_template.php:33 +msgid "Keyboard shortcuts" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/album_password.php:11 +msgid "Private album" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/album_password.php:12 +msgid "Password protected" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/image_description_guest.php:4 +msgid "Uploaded by guest" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/image_description_owner.php:4 +#, php-format +msgid "From %s" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/image_description_private.php:4 +msgid "Uploaded by private" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/image_description_user.php:4 +#, php-format +msgid "by %u" +msgstr "" + +#: app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:10 +#: app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +#: app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:10 +msgid "Toggle unsafe flag" +msgstr "" + +#: app/themes/Peafowl/views/404.php:8 app/web.php:393 +msgid "That page doesn't exist" +msgstr "" + +#: app/themes/Peafowl/views/404.php:9 +msgid "The requested page was not found." +msgstr "" + +#: app/themes/Peafowl/views/404.php:17 +msgid "The user has been deleted" +msgstr "" + +#: app/themes/Peafowl/views/account/awaiting-confirmation.php:12 +msgid "Your account is almost ready" +msgstr "" + +#: app/themes/Peafowl/views/account/awaiting-confirmation.php:13 +#, php-format +msgid "" +"An email to %s has been sent with instructions to activate your account. The " +"activation link is only valid for 48 hours. If you don't receive the " +"instructions try checking your junk or spam filters." +msgstr "" +"An email to %s has been sent with instructions to activate your account. The " +"activation link is only valid for 48 hours. If you don't receive the " +"instructions try checking your junk or spam filters." + +#: app/themes/Peafowl/views/account/awaiting-confirmation.php:14 +#: app/themes/Peafowl/views/account/resend-activation.php:17 +msgid "Resend activation" +msgstr "" + +#: app/themes/Peafowl/views/account/email-changed.php:13 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "" + +#: app/themes/Peafowl/views/account/email-changed.php:14 +msgid "Go to my profile" +msgstr "" + +#: app/themes/Peafowl/views/account/email-needed.php:13 +msgid "" +"A confirmation link will be sent to this email with details to activate your " +"account." +msgstr "" +"A confirmation link will be sent to this email with details to activate your " +"account." + +#: app/themes/Peafowl/views/account/email-needed.php:17 +#: app/themes/Peafowl/views/settings.php:179 +#: content/pages/default/contact.php:100 +msgid "Your email address" +msgstr "" + +#: app/themes/Peafowl/views/account/email-needed.php:23 +#: app/themes/Peafowl/views/account/password-forgot.php:42 +#: app/themes/Peafowl/views/account/password-reset.php:34 +#: app/themes/Peafowl/views/account/resend-activation.php:31 +#: lib/Peafowl/peafowl.js:511 lib/Peafowl/peafowl.js:2857 +#: lib/Peafowl/peafowl.min.js:1 lib/Peafowl/peafowl.min.js:2 +msgid "Submit" +msgstr "" + +#: app/themes/Peafowl/views/account/password-forgot.php:16 +msgid "" +"An email with instructions to reset your password has been sent to the " +"registered email address. If you don't receive the instructions try checking " +"your junk or spam filters." +msgstr "" +"An email with instructions to reset your password has been sent to the " +"registered email address. If you don't receive the instructions try checking " +"your junk or spam filters." + +#: app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "" +"A previous email has been sent with instructions to reset your password. If " +"you did not receive the instructions try checking your junk or spam filters." +msgstr "" +"A previous email has been sent with instructions to reset your password. If " +"you did not receive the instructions try checking your junk or spam filters." + +#: app/themes/Peafowl/views/account/password-forgot.php:27 +msgid "Resend instructions" +msgstr "" + +#: app/themes/Peafowl/views/account/password-forgot.php:32 +#: app/themes/Peafowl/views/account/resend-activation.php:21 +#, php-format +msgid "" +"Enter your username or email address to continue. You may need to check your " +"spam folder or whitelist %s" +msgstr "" + +#: app/themes/Peafowl/views/account/password-forgot.php:36 +#: app/themes/Peafowl/views/account/resend-activation.php:25 +#: app/themes/Peafowl/views/login.php:22 +msgid "Username or Email address" +msgstr "" + +#: app/themes/Peafowl/views/account/password-reset.php:16 +msgid "" +"Your password has been changed. You can now try logging in using your new " +"password." +msgstr "" +"Your password has been changed. You can now try logging in using your new " +"password." + +#: app/themes/Peafowl/views/account/password-reset.php:17 +msgid "Login now" +msgstr "" + +#: app/themes/Peafowl/views/account/password-reset.php:25 +#: app/themes/Peafowl/views/settings.php:372 +msgid "Enter your new password" +msgstr "" + +#: app/themes/Peafowl/views/account/password-reset.php:25 +#: app/themes/Peafowl/views/dashboard.php:545 +#: app/themes/Peafowl/views/settings.php:372 +#: app/themes/Peafowl/views/settings.php:395 +#: app/themes/Peafowl/views/signup.php:32 +#, php-format +msgid "%d characters min" +msgstr "" + +#: app/themes/Peafowl/views/account/password-reset.php:26 +#: app/themes/Peafowl/views/signup.php:33 +msgid "Password strength" +msgstr "" + +#: app/themes/Peafowl/views/account/password-reset.php:29 +#: app/themes/Peafowl/views/settings.php:378 +msgid "Re-enter your new password" +msgstr "" + +#: app/themes/Peafowl/views/account/resend-activation.php:16 +#, php-format +msgid "" +"An email to %s has been sent with instructions to activate your account. If " +"you don't receive the instructions try checking your junk or spam filters." +msgstr "" +"An email to %s has been sent with instructions to activate your account. If " +"you don't receive the instructions try checking your junk or spam filters." + +#: app/themes/Peafowl/views/album.php:16 app/themes/Peafowl/views/image.php:87 +msgid "This content is private" +msgstr "" + +#: app/themes/Peafowl/views/album.php:25 +msgid "Sub album" +msgstr "" + +#: app/themes/Peafowl/views/album.php:31 +msgid "" +"Do you really want to delete this album and all of its images? This can't be " +"undone." +msgstr "" +"Do you really want to delete this album and all of its images? This can't be " +"undone." + +#: app/themes/Peafowl/views/album.php:50 +msgid "Upload to album" +msgstr "" + +#: app/themes/Peafowl/views/album.php:58 app/themes/Peafowl/views/image.php:131 +msgid "You like this" +msgstr "" + +#: app/themes/Peafowl/views/consent-screen.php:8 +msgid "" +"Please read and comply with the following conditions before you continue:" +msgstr "" + +#: app/themes/Peafowl/views/consent-screen.php:10 +#, php-format +msgid "" +"This website contains information, links and images of sexually explicit " +"material. If you are under the age of %s, if such material offends you or if " +"it's illegal to view such material in your community please do not " +"continue.\n" +"\n" +"I am at least %s years of age and I believe that as an adult it is my " +"inalienable right to receive/view sexually explicit material. I desire to " +"receive/view sexually explicit material. \n" +"\n" +"I believe that sexual acts between consenting adults are neither offensive " +"nor obscene. The viewing, reading and downloading of sexually explicit " +"materials does not violate the standards of my community, town, city, state " +"or country.\n" +"\n" +"The sexually explicit material I am viewing is for my own personal use and I " +"will not expose minors to the material.\n" +"\n" +"I am solely responsible for any false disclosures or legal ramifications of " +"viewing, reading or downloading any material in this site. Furthermore this " +"website nor its affiliates will be held responsible for any legal " +"ramifications arising from fraudulent entry into or use of this website.\n" +"\n" +"This consent screen constitutes a legal agreement between this website and " +"you and/or any business in which you have any legal or equitable interest. " +"If any portion of this agreement is deemed unenforceable by a court of " +"competent jurisdiction it shall not affect the enforceability of the other " +"portions of the agreement." +msgstr "" + +#: app/themes/Peafowl/views/consent-screen.php:12 +msgid "" +"By clicking in \"I Agree\" you declare that you have read and understood all " +"the conditions mentioned above." +msgstr "" + +#: app/themes/Peafowl/views/consent-screen.php:14 +msgid "I Agree" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:11 +#: app/themes/Peafowl/views/dashboard.php:328 +#: app/themes/Peafowl/views/plugin.php:84 +msgid "documentation" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:9 +#, php-format +msgid "Learn about %s settings at our %d." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:37 +msgid "" +"The connecting IP is determined using the server variable %var%. If the " +"detected IP doesn't match yours, it means that your web server is under a " +"proxy and you need to tweak your server to set the real connecting IP." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:38 +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:42 +msgid "" +"Make sure that you address this issue as the system relies on accurate IP " +"detections to provide basic functionalities and to protect against spam, " +"flooding, and brute force attacks." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:209 +#: app/themes/Peafowl/views/dashboard.php:2587 +msgid "Disk used" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:233 +msgid "Queued" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:234 +msgid "Working" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:235 +msgid "Paused" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:236 +msgid "Canceled" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:237 +msgid "Completed" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:241 +#, php-format +msgid "Top level folders as %s" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:258 +msgid "Process" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:259 +#: app/themes/Peafowl/views/dashboard.php:281 +msgid "Pause" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:260 +msgid "Cancel" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:261 +#: app/themes/Peafowl/views/dashboard.php:283 +msgid "Process log" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:262 +#: app/themes/Peafowl/views/dashboard.php:284 +msgid "Errors" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:263 +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:280 +msgid "Reset" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:282 +msgid "Resume" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:294 +#: app/themes/Peafowl/views/settings.php:121 +msgid "Status" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:318 +msgid "Run the following command to import content to Chevereto:" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:328 +#, php-format +msgid "Read the %s for more information about this feature." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:519 +#: app/themes/Peafowl/views/dashboard.php:523 +msgid "Add user" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:526 +#: app/themes/Peafowl/views/settings.php:139 +msgid "Role" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:529 +#: app/themes/Peafowl/views/settings.php:144 +msgid "Manager" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:530 +#: app/themes/Peafowl/views/settings.php:145 +msgid "Administrator" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:540 +#: app/themes/Peafowl/views/settings.php:178 +#: app/themes/Peafowl/views/signup.php:24 content/pages/default/contact.php:99 +msgid "Email address" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:567 +msgid "This setting is always diabled when using personal website mode." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:606 +#: app/themes/Peafowl/views/dashboard.php:610 +msgid "Add category" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:620 +#: app/themes/Peafowl/views/dashboard.php:624 +#: app/themes/Peafowl/views/image.php:279 +#: app/themes/Peafowl/views/settings.php:74 +msgid "Add IP ban" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:634 +#: app/themes/Peafowl/views/dashboard.php:638 +msgid "Add storage" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:651 +msgid "Return to pages" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:678 +msgid "Website name" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:683 +msgid "Website doctitle" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:687 +msgid "Website description" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:702 +#, fuzzy, php-format +#| msgid "" +#| "Enable this if you want to show social network buttons to share content." +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "" +"Enable this if you want to show social network buttons to share content." + +#: app/themes/Peafowl/views/dashboard.php:713 +#: app/themes/Peafowl/views/dashboard.php:715 +msgid "Automatic" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:713 +#: app/themes/Peafowl/views/dashboard.php:715 +msgid "Forced" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:715 +msgid "" +"%a will use HTTPS detection on the server side (recommended). %f will use " +"HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:716 +msgid "" +"This only controls the protocol used in the URLs, it won't turn your website " +"into a valid HTTPS website unless your server is configured to support and " +"use HTTPS." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:732 +msgid "Default time zone" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:736 +#: app/themes/Peafowl/views/settings.php:284 +msgid "Select region" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:774 +msgid "" +"Allows to search images, albums and users based on a given search query." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:783 +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:791 +#: app/themes/Peafowl/views/dashboard.php:1370 +msgid "guests" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:796 +msgid "Enables explore for guests." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:807 +msgid "Enables to browse images randomly." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:811 +msgid "Likes" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:818 +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:830 +msgid "Followers allows users to follow each other." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:837 +msgid "Website mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:840 +msgid "Community" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:840 +msgid "Personal" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:843 +msgid "You can switch the website mode anytime." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:855 +msgid "Personal mode target user" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:856 +#: app/themes/Peafowl/views/settings.php:86 +msgid "User ID" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:856 +#: app/themes/Peafowl/views/dashboard.php:2282 +#, php-format +msgid "Your user id is: %s" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:858 +msgid "Numeric ID of the target user for personal mode." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:861 +msgid "Personal mode routing" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:864 +msgid "" +"Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "" +"Custom route to map /username to /something. Use \"/\" to map to homepage." + +#: app/themes/Peafowl/views/dashboard.php:874 +msgid "Website privacy mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:880 +msgid "Private mode will make the website only available for registered users." +msgstr "" +"Private mode will make the website only available for registered users." + +#: app/themes/Peafowl/views/dashboard.php:888 +msgid "Content privacy mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:892 +#: app/themes/Peafowl/views/dashboard.php:2001 +#: app/themes/Peafowl/views/dashboard.php:2230 +msgid "Default" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:893 +msgid "Force private (self)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:894 +msgid "Force private (anyone with the link)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:898 +msgid "Forced privacy modes will override user selected privacy." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:964 +msgid "Page title" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:969 +msgid "Page status" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:972 +msgid "Active page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:972 +#, php-format +msgid "Inactive page (%s)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:975 +msgid "Only active pages will be accessible." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:979 +#: app/themes/Peafowl/views/dashboard.php:1154 +msgid "Type" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:993 +msgid "Terms of service" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:994 +#: app/themes/Peafowl/views/settings.php:440 +msgid "Privacy" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:995 +#: content/pages/default/contact.php:84 +msgid "Contact" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:998 +msgid "Extra page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1022 +msgid "Internal page type" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1028 +msgid "" +"You can have multiple extra pages, but only one of the other special " +"internal types." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1032 +msgid "Page visibility" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1035 +msgid "Visible page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1035 +msgid "Hidden page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1038 +msgid "" +"Hidden pages won't be show in system menus, but anyone can access to it with " +"the link." +msgstr "" +"Hidden pages won't be show in system menus, but anyone can access to it with " +"the link." + +#: app/themes/Peafowl/views/dashboard.php:1043 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1048 +msgid "File path" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1053 +#, php-format +msgid "A %f file relative to %s" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1057 +msgid "Meta keywords" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1063 +msgid "Meta description" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1069 +msgid "Source code" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1073 +#, php-format +msgid "" +"No write permission in %s path you will need to add this file using an " +"external editor." +msgstr "" +"No write permission in %s path you will need to add this file using an " +"external editor." + +#: app/themes/Peafowl/views/dashboard.php:1079 +#, php-format +msgid "" +"No write permission in %s you will need to edit the contents of this file " +"using an external editor." +msgstr "" +"No write permission in %s you will need to edit the contents of this file " +"using an external editor." + +#: app/themes/Peafowl/views/dashboard.php:1086 +#, php-format +msgid "Taken from: %s" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1107 +msgid "Link URL" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1116 +msgid "Link target attribute" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1122 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1126 +msgid "Link rel attribute" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1127 +#: app/themes/Peafowl/views/dashboard.php:1134 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1129 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1133 +msgid "Link icon" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1136 +#, php-format +msgid "" +"Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "" +"Check the <a %s>icon reference</a> for the complete list of supported icons." + +#: app/themes/Peafowl/views/dashboard.php:1140 +msgid "Sort order display" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1143 +msgid "" +"Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "" +"Page sort order display for menus and listings. Use \"1\" for top priority." + +#: app/themes/Peafowl/views/dashboard.php:1166 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1193 +msgid "Enabled image formats" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1202 +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1209 +#: app/themes/Peafowl/views/dashboard.php:1217 +msgid "Enable uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1214 +msgid "" +"Enable this if you want to allow image uploads. This setting doesn't affect " +"administrators." +msgstr "" +"Enable this if you want to allow image uploads. This setting doesn't affect " +"administrators." + +#: app/themes/Peafowl/views/dashboard.php:1222 +#, fuzzy +#| msgid "" +#| "Enable this if you want to allow image uploads. This setting doesn't " +#| "affect administrators." +msgid "Enable this if you want to allow image upload from URLs." +msgstr "" +"Enable this if you want to allow image uploads. This setting doesn't affect " +"administrators." + +#: app/themes/Peafowl/views/dashboard.php:1222 +msgid "Note that enabling this will expose your server IP." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1225 +msgid "Upload user interface" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1228 +msgid "On-page container" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1228 +msgid "route" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1232 +msgid "Guest uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1239 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1243 +msgid "Moderate uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1254 +msgid "" +"Enable this to moderate incoming uploads. Target content will require " +"moderation for approval." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1261 +msgid "Enable embed codes (uploader)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1266 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "" +"Enable this if you want to show embed codes when upload gets completed." + +#: app/themes/Peafowl/views/dashboard.php:1272 +msgid "Upload threads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1275 +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1279 +msgid "Redirect on single upload" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1284 +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1288 +msgid "Enable duplicate uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1293 +msgid "" +"Enable this if you want to allow duplicate uploads from the same IP within " +"24hrs. This setting doesn't affect administrators." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable expirable uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1304 +msgid "" +"Enable this if you want to allow uploads with an automatic delete option." +msgstr "" +"Enable this if you want to allow uploads with an automatic delete option." + +#: app/themes/Peafowl/views/dashboard.php:1308 +msgid "Auto delete guest uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1314 +msgid "" +"Enable this if you want to force guest uploads to be auto deleted after " +"certain time." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1320 +msgid "Maximum image size" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1331 +msgid "" +"Images greater than this size will get automatically downsized. Use zero (0) " +"to don't set a limit." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1337 +#: app/themes/Peafowl/views/settings.php:217 +msgid "Image Exif data" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1341 +msgid "Keep" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1345 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1349 +msgid "Image Exif data (user setting)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1357 +msgid "" +"Enable this if you want to allow each user to configure how image Exif data " +"will be handled." +msgstr "" +"Enable this if you want to allow each user to configure how image Exif data " +"will be handled." + +#: app/themes/Peafowl/views/dashboard.php:1363 +#: app/themes/Peafowl/views/dashboard.php:1370 +#: app/themes/Peafowl/views/dashboard.php:1373 +msgid "Maximum upload file size" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1366 +msgid "" +"Maximum size allowed by server is %s. This limit is capped by %u and %p (%f " +"values)." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1373 +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1379 +msgid "Image path" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1380 +msgid "Relative to Chevereto root" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1382 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1385 +msgid "Storage mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1388 +msgid "Datefolders" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1388 +msgid "Direct" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1390 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1393 +msgid "File naming method" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1396 +msgid "Original" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1396 +msgid "Mix original + random" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1398 +msgid "" +"\"Original\" will try to keep the image source name while \"Random\" will " +"generate a random name. \"ID\" will name the image just like the image ID." +msgstr "" +"\"Original\" will try to keep the image source name while \"Random\" will " +"generate a random name. \"ID\" will name the image just like the image ID." + +#: app/themes/Peafowl/views/dashboard.php:1404 +msgid "Thumb size" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1415 +msgid "Thumbnails will be fixed to this size." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1418 +msgid "Medium image fixed dimension" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1423 +msgid "" +"Medium sized images will be fixed to this dimension. For example, if you " +"select \"width\" that dimension will be fixed and image height will be " +"automatically calculated." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1426 +msgid "Medium image fixed size" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1431 +msgid "Width or height will be automatically calculated." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1437 +msgid "Watermarks" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1443 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1450 +msgid "Watermark user toggles" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1453 +msgid "Enable watermark on guest uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1458 +msgid "Enable watermark on user uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1463 +msgid "Enable watermark on admin uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1469 +msgid "Watermark file toggles" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1472 +msgid "Enable watermark on GIF image uploads" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1478 +msgid "Minimum image size needed to apply watermark" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1489 +msgid "" +"Images smaller than this won't be watermarked. Use zero (0) to don't set a " +"minimum image size limit." +msgstr "" +"Images smaller than this won't be watermarked. Use zero (0) to don't set a " +"minimum image size limit." + +#: app/themes/Peafowl/views/dashboard.php:1493 +msgid "Watermark image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1499 +msgid "" +"You will get best results with plain logos with drop shadow. You can use a " +"large image if the file size is not that big (recommended max. is 16KB). " +"Must be a PNG." +msgstr "" +"You will get best results with plain logos with drop shadow. You can use a " +"large image if the file size is not that big (recommended max. is 16KB). " +"Must be a PNG." + +#: app/themes/Peafowl/views/dashboard.php:1502 +msgid "Watermark position" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1506 +msgid "left top" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1507 +msgid "left center" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1508 +msgid "left bottom" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1509 +msgid "center top" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1510 +msgid "center center" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1511 +msgid "center bottom" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1512 +msgid "right top" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1513 +msgid "right center" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1514 +msgid "right bottom" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1518 +msgid "" +"Relative position of the watermark image. First horizontal align then " +"vertical align." +msgstr "" +"Relative position of the watermark image. First horizontal align then " +"vertical align." + +#: app/themes/Peafowl/views/dashboard.php:1521 +msgid "Watermark percentage" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1526 +msgid "" +"Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "" +"Watermark percentual size relative to the target image area. Values 1 to 100." + +#: app/themes/Peafowl/views/dashboard.php:1529 +msgid "Watermark margin" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1534 +msgid "Margin from the border of the image to the watermark image." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1537 +msgid "Watermark opacity" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1542 +msgid "" +"Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "" +"Opacity of the watermark in the final watermarked image. Values 0 to 100." + +#: app/themes/Peafowl/views/dashboard.php:1554 +msgid "Dashboard > Settings > Website" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1554 +#, php-format +msgid "" +"Categories won't work when the explorer feature is turned off. To revert " +"this setting go to %s." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1573 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1588 +msgid "" +"Note: Deleting a category doesn't delete the images that belongs to that " +"category." +msgstr "" +"Note: Deleting a category doesn't delete the images that belongs to that " +"category." + +#: app/themes/Peafowl/views/dashboard.php:1590 +msgid "Edit category" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1611 +msgid "Expires" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1619 +#, php-format +msgid "" +"Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "" +"Do you really want to remove the ban to the IP %s? This can't be undone." + +#: app/themes/Peafowl/views/dashboard.php:1632 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1634 +msgid "Edit IP ban" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1646 +msgid "Enable signups" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1653 +msgid "Enable this if you want to allow users to signup." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1658 +msgid "Enable user content delete" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1663 +msgid "" +"Enable this if you want to allow users to delete their own content. This " +"setting doesn't affect administrators." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1668 +msgid "Minimum age required" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1671 +#: app/themes/Peafowl/views/dashboard.php:2282 +#: app/themes/Peafowl/views/dashboard.php:3085 +msgid "Empty" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1673 +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1680 +msgid "Notify on user signup" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1685 +msgid "" +"Enable this if you want to get an email notification for each new user " +"signup." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1690 +msgid "Username routing" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1697 +#, php-format +msgid "" +"Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "" +"Enable this if you want to use %s/username URLs instead of %s/user/username." + +#: app/themes/Peafowl/views/dashboard.php:1704 +msgid "Require email confirmation" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1711 +msgid "Enable this if users must validate their email address on sign up." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1715 +msgid "Require email for social signup" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1722 +msgid "" +"Enable this if users using social networks to register must provide an email " +"address." +msgstr "" +"Enable this if users using social networks to register must provide an email " +"address." + +#: app/themes/Peafowl/views/dashboard.php:1729 +msgid "User avatar max. filesize" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1732 +#, php-format +msgid "" +"Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "" +"Max. allowed filesize for user avatar image. (Max allowed by server is %s)" + +#: app/themes/Peafowl/views/dashboard.php:1735 +msgid "User background max. filesize" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1738 +#, php-format +msgid "" +"Max. allowed filesize for user background image. (Max allowed by server is " +"%s)" +msgstr "" +"Max. allowed filesize for user background image. (Max allowed by server is " +"%s)" + +#: app/themes/Peafowl/views/dashboard.php:1746 +msgid "" +"Shows a consent screen before accessing the website. Useful for adult " +"content websites where minors shouldn't be allowed." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1748 +msgid "Enable consent screen" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1759 +msgid "Consent screen cover image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1773 +msgid "" +"Block image uploads by IP if the system notice a flood behavior based on " +"the number of uploads per time period. This setting doesn't affect " +"administrators." +msgstr "" +"Block image uploads by IP if the system notice a flood behavior based on " +"the number of uploads per time period. This setting doesn't affect " +"administrators." + +#: app/themes/Peafowl/views/dashboard.php:1786 +msgid "Notify to email" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1791 +msgid "If enabled the system will send an email on flood incidents." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1794 +msgid "Minute limit" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1799 +msgid "Hourly limit" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1804 +msgid "Daily limit" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1809 +msgid "Weekly limit" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1814 +msgid "Monthly limit" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Lock %s editing" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1836 +msgid "" +"Enable this to prevent users from changing the NSFW flag. When enabled, only " +"admin and managers will have this permission." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1840 +msgid "Show not safe content in listings" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1845 +msgid "" +"Enable this if you want to show not safe content in listings. This setting " +"doesn't affect administrators and can be overridden by user own settings." +msgstr "" +"Enable this if you want to show not safe content in listings. This setting " +"doesn't affect administrators and can be overridden by user own settings." + +#: app/themes/Peafowl/views/dashboard.php:1848 +msgid "Blur NSFW content in listings" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1853 +msgid "" +"Enable this if you want to apply a blur effect on the NSFW images in " +"listings." +msgstr "" +"Enable this if you want to apply a blur effect on the NSFW images in " +"listings." + +#: app/themes/Peafowl/views/dashboard.php:1856 +msgid "Show banners in not safe content" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1861 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1865 +msgid "Show not safe content in random mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1877 +msgid "List items per page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1880 +msgid "How many items should be displayed per page listing." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1884 +msgid "List pagination mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1887 +msgid "Endless scrolling" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1887 +msgid "Classic pagination" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1890 +msgid "What pagination method should be used." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1894 +msgid "Listing viewer" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1900 +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1904 +msgid "Image listing size" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1907 +msgid "Fluid" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1907 +msgid "Fixed" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1910 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "" +"Both methods use a fixed width but fluid method uses automatic heights." + +#: app/themes/Peafowl/views/dashboard.php:1916 +msgid "Album listing images requirement" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1916 +#: app/themes/Peafowl/views/dashboard.php:2163 +msgid "explore" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1919 +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1925 +msgid "Listing columns number" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1926 +msgid "Here you can set how many columns are used based on each target device." +msgstr "" +"Here you can set how many columns are used based on each target device." + +#: app/themes/Peafowl/views/dashboard.php:1928 +msgid "Phone" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1932 +msgid "Phablet" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1936 +msgid "Tablet" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1940 +msgid "Laptop" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1944 +msgid "Desktop" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1970 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1974 +msgid "Tone" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1977 +msgid "Light" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1977 +msgid "Dark" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1983 +msgid "Main color" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1984 +msgid "Hexadecimal color value" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1986 +#, php-format +msgid "" +"Use this to set the main theme color. Value must be in <a href=\"%s\" target=" +"\"_blank\">hex format</a>." +msgstr "" +"Use this to set the main theme color. Value must be in <a href=\"%s\" target=" +"\"_blank\">hex format</a>." + +#: app/themes/Peafowl/views/dashboard.php:1990 +msgid "Top bar button color" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1994 +#: app/themes/Peafowl/views/dashboard.php:2223 +msgid "Blue" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1995 +#: app/themes/Peafowl/views/dashboard.php:2224 +msgid "Green" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1996 +#: app/themes/Peafowl/views/dashboard.php:2225 +msgid "Orange" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1997 +#: app/themes/Peafowl/views/dashboard.php:2226 +msgid "Red" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1998 +#: app/themes/Peafowl/views/dashboard.php:2227 +msgid "Grey" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:1999 +#: app/themes/Peafowl/views/dashboard.php:2228 +msgid "Black" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2000 +#: app/themes/Peafowl/views/dashboard.php:2229 +msgid "White" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2005 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2011 +msgid "Enable vector logo" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2017 +msgid "" +"Enable vector logo for high quality logo in devices with high pixel density." +msgstr "" +"Enable vector logo for high quality logo in devices with high pixel density." + +#: app/themes/Peafowl/views/dashboard.php:2024 +msgid "Vector logo image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2030 +msgid "Vector version or your website logo in SVG format." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2036 +msgid "Raster logo image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2042 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2046 +msgid "Logo height" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2047 +msgid "No value" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2049 +msgid "Use this to set the logo height if needed." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2055 +msgid "Favicon image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2061 +msgid "Favicon image. Image must have same width and height." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2067 +msgid "Image load max. filesize" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2070 +msgid "" +"Images greater than this size will show a button to load full resolution " +"image." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2074 +msgid "Enable download button" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2079 +msgid "Enable this if you want to show the image download button." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2083 +msgid "Enable right click on image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2088 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2094 +msgid "Enable show Exif data" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2099 +msgid "Enable this if you want to show image Exif data." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2105 +msgid "Enable social share" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2110 +msgid "" +"Enable this if you want to show social network buttons to share content." +msgstr "" +"Enable this if you want to show social network buttons to share content." + +#: app/themes/Peafowl/views/dashboard.php:2114 +msgid "Enable embed codes (content)" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2118 +msgid "Everybody" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2119 +msgid "Users only" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2123 +msgid "Enable this if you want to show embed codes for the content." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2129 +msgid "Not safe content checkbox in uploader" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2134 +msgid "" +"Enable this if you want to show a checkbox to indicate not safe content " +"upload." +msgstr "" +"Enable this if you want to show a checkbox to indicate not safe content " +"upload." + +#: app/themes/Peafowl/views/dashboard.php:2140 +msgid "Custom CSS code" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2141 +msgid "" +"Put your custom CSS code here. It will be placed as <style> just before the " +"closing </head> tag." +msgstr "" +"Put your custom CSS code here. It will be placed as <style> just before the " +"closing </head> tag." + +#: app/themes/Peafowl/views/dashboard.php:2145 +msgid "Custom JS code" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2146 +msgid "" +"Put your custom JS code here. It will be placed as <script> just before the " +"closing </head> tag." +msgstr "" +"Put your custom JS code here. It will be placed as <script> just before the " +"closing </head> tag." + +#: app/themes/Peafowl/views/dashboard.php:2147 +#, php-format +msgid "" +"Do not use %s markup here. This is for plain JS code, not for HTML script " +"tags. If you use script tags here you will break your website." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2157 +msgid "Style" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2161 +msgid "Landing page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2162 +msgid "Split landing + images" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2163 +#: app/themes/Peafowl/views/dashboard.php:2164 +#, php-format +msgid "Route %s" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2164 +msgid "upload" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2168 +#, php-format +msgid "" +"Select the homepage style. To customize it further edit app/themes/%s/views/" +"index.php" +msgstr "" +"Select the homepage style. To customize it further edit app/themes/%s/views/" +"index.php" + +#: app/themes/Peafowl/views/dashboard.php:2179 +msgid "Cover image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2185 +#: app/themes/Peafowl/views/image.php:105 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2185 +msgid "Delete image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2197 +msgid "Add new cover image" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2208 +#: app/themes/Peafowl/views/dashboard.php:2213 +#, php-format +msgid "" +"This will be added inside the homepage %s tag. Leave it blank to use the " +"default contents." +msgstr "" +"This will be added inside the homepage %s tag. Leave it blank to use the " +"default contents." + +#: app/themes/Peafowl/views/dashboard.php:2212 +#: app/themes/Peafowl/views/settings.php:536 +msgid "Paragraph" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2219 +msgid "Call to action button color" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2234 +msgid "Color of the homepage call to action button." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2238 +msgid "Call to action outline style button" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2244 +msgid "" +"Enable this to use outline style for the homepage call to action button." +msgstr "" +"Enable this to use outline style for the homepage call to action button." + +#: app/themes/Peafowl/views/dashboard.php:2248 +msgid "Call to action functionality" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2252 +msgid "Trigger uploader" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2253 +msgid "Open URL" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2263 +msgid "Call to action URL" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2264 +msgid "Enter an absolute or relative URL" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2266 +msgid "A relative URL like %r will be mapped to %l" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2272 +msgid "Call to action HTML" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2273 +msgid "" +"This will be added inside the call to action <a> tag. Leave it blank to use " +"the default contents." +msgstr "" +"This will be added inside the call to action <a> tag. Leave it blank to use " +"the default contents." + +#: app/themes/Peafowl/views/dashboard.php:2281 +msgid "User IDs" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2284 +#, fuzzy +#| msgid "" +#| "Comma-separated list of target user IDs to show images on homepage. Leave " +#| "it blank or zero to display all recent images." +msgid "" +"Comma-separated list of target user IDs (integers) to show most recent " +"images on homepage. Leave it empty to display trending images." +msgstr "" +"Comma-separated list of target user IDs to show images on homepage. Leave it " +"blank or zero to display all recent images." + +#: app/themes/Peafowl/views/dashboard.php:2331 +msgid "Automatic updates check" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2337 +msgid "When enabled the system will automatically check for new updates." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2340 +msgid "Display available updates notification" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2346 +msgid "" +"Enable this to show a notice on top warning you about new available system " +"updates." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2350 +msgid "Dump update query" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2356 +#, fuzzy +#| msgid "" +#| "Enable this if you want to automatically detect and set the right " +#| "language for each user." +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "" +"Enable this if you want to automatically detect and set the right language " +"for each user." + +#: app/themes/Peafowl/views/dashboard.php:2363 +#, php-format +msgid "SEO %s URLs" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2368 +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2374 +msgid "Maintenance" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2379 +msgid "" +"When enabled the website will show a maintenance message. This setting " +"doesn't affect administrators." +msgstr "" +"When enabled the website will show a maintenance message. This setting " +"doesn't affect administrators." + +#: app/themes/Peafowl/views/dashboard.php:2383 +msgid "Crypt salt" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2385 +msgid "" +"This is the salt used to convert numeric ID to alphanumeric. It was " +"generated on install." +msgstr "" +"This is the salt used to convert numeric ID to alphanumeric. It was " +"generated on install." + +#: app/themes/Peafowl/views/dashboard.php:2389 +msgid "PHP error reporting" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2394 +#, php-format +msgid "" +"Enable this if you want to print errors generated by PHP <a " +"%s>error_reporting()</a>. This should be disabled in production." +msgstr "" +"Enable this if you want to print errors generated by PHP <a " +"%s>error_reporting()</a>. This should be disabled in production." + +#: app/themes/Peafowl/views/dashboard.php:2397 +msgid "Debug level" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2400 +msgid "None" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2400 +msgid "Error log" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2400 +msgid "Print errors without error log" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2400 +msgid "Print and log errors" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2402 +#, php-format +msgid "" +"To configure the debug level check the <a %s>debug documentation</a>. " +"Default level is \"Error log\" (1)." +msgstr "" +"To configure the debug level check the <a %s>debug documentation</a>. " +"Default level is \"Error log\" (1)." + +#: app/themes/Peafowl/views/dashboard.php:2410 +msgid "" +"Routing allows you to customize default route binds on the fly. Only " +"alphanumeric, hyphen and underscore characters are allowed." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2412 +msgid "Image routing" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2417 +#: app/themes/Peafowl/views/dashboard.php:2425 +#, php-format +msgid "Routing for %s" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2420 +msgid "Album routing" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2434 +msgid "Hostname" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2439 +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2439 +#, php-format +msgid "This setting may be overridden by %s." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2442 +msgid "Language subdomains" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2447 +msgid "languages" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2447 +#: app/themes/Peafowl/views/dashboard.php:2455 +msgid "Enable to use %s for %t." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2450 +msgid "Username subdomains" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2455 +msgid "user profiles" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2464 +msgid "Custom language strings" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2467 +msgid "Default language" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2475 +msgid "Default base language to use." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2479 +msgid "Auto language" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2484 +msgid "" +"Enable this if you want to automatically detect and set the right language " +"for each user." +msgstr "" +"Enable this if you want to automatically detect and set the right language " +"for each user." + +#: app/themes/Peafowl/views/dashboard.php:2488 +msgid "Language chooser" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2493 +msgid "Enable this if you want to allow language selection." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2503 +msgid "Enabled languages" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2511 +msgid "Unchecked languages won't be used in your website." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2535 +msgid "Toggle this to enable or disable HTTPS" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2536 +msgid "Toggle this to enable or disable this storage" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2552 +msgid "Quota" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2554 +msgid "Active" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2586 +msgid "Storage method" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2601 +msgid "Local storage is used by default or when no external storage is active." +msgstr "" +"Local storage is used by default or when no external storage is active." + +#: app/themes/Peafowl/views/dashboard.php:2603 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2605 +msgid "Edit storage" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2618 +msgid "From name" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2621 +msgid "Sender name for emails sent to users." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2624 +msgid "From email address" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2627 +msgid "Sender email for emails sent to users." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2630 +msgid "Incoming email address" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2633 +msgid "Recipient for contact form and system alerts." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2636 +msgid "Email mode" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2642 +msgid "How to send emails? SMTP recommended." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2653 +msgid "SMTP server and port" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2656 +msgid "SMTP server" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2668 +msgid "SMTP username" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2673 +msgid "SMTP password" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2678 +msgid "SMTP security" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2681 +msgid "Unsecured" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2694 +#: app/themes/Peafowl/views/dashboard.php:2696 +msgid "Decode ID" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2700 +#: app/themes/Peafowl/views/dashboard.php:2702 +msgid "Encode ID" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2707 +#: app/themes/Peafowl/views/dashboard.php:2709 +msgid "Send test email" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2711 +#, php-format +msgid "" +"Use this to test how your emails are being delivered. We recommend you to " +"use %s." +msgstr "" +"Use this to test how your emails are being delivered. We recommend you to " +"use %s." + +#: app/themes/Peafowl/views/dashboard.php:2715 +msgid "Export a user" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2717 +msgid "Export user" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2719 +msgid "" +"This will allow you to download a user's standard personal information in " +"JSON format." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2723 +msgid "Regenerate external storage stats" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2725 +msgid "Storage id" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2726 +msgid "Regenerate" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2728 +msgid "" +"This will re-calculate the sum of all the image records associated to the " +"target external storage." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2732 +msgid "Migrate image records from one external storage to another" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2734 +msgid "Source storage id" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2735 +msgid "Target storage id" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2738 +msgid "Migrate" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2741 +msgid "" +"This only updates the database. You must transfer the actual files to target " +"storage container on your own. URL rewriting is strongly recommended. Use " +"zero (0) for local storage." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2755 +msgid "" +"You need a <a href=\"https://developers.facebook.com/\" target=\"_blank" +"\">Facebook app</a> for this." +msgstr "" +"You need a <a href=\"https://developers.facebook.com/\" target=\"_blank" +"\">Facebook app</a> for this." + +#: app/themes/Peafowl/views/dashboard.php:2762 +msgid "Facebook app id" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2767 +msgid "Facebook app secret" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2780 +msgid "" +"You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter " +"app</a> for this." +msgstr "" +"You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter " +"app</a> for this." + +#: app/themes/Peafowl/views/dashboard.php:2787 +msgid "Twitter API key" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2792 +msgid "Twitter API secret" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2799 +msgid "Twitter account" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2812 +msgid "" +"You need a <a href=\"https://cloud.google.com/console\" target=\"_blank" +"\">Google app</a> for this." +msgstr "" +"You need a <a href=\"https://cloud.google.com/console\" target=\"_blank" +"\">Google app</a> for this." + +#: app/themes/Peafowl/views/dashboard.php:2819 +msgid "Google client id" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2824 +msgid "Google client secret" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2837 +msgid "" +"You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for " +"this." +msgstr "" +"You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for " +"this." + +#: app/themes/Peafowl/views/dashboard.php:2844 +msgid "VK client id" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2849 +msgid "VK client secret" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2862 +#: app/themes/Peafowl/views/dashboard.php:2885 +#, php-format +msgid "%s spam protection" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2869 +msgid "user generated content" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2867 +#: app/themes/Peafowl/views/dashboard.php:2890 +msgid "Enable this to use %l to block spam on %c." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2877 +#, php-format +msgid "%s API key" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2892 +msgid "user signup" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2922 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "" +"You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." + +#: app/themes/Peafowl/views/dashboard.php:2934 +msgid "" +"Please note that each reCAPTCHA version require its own set of keys. Don't " +"forget to update the keys if you change versions." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2938 +#, php-format +msgid "%s site key" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2943 +#: app/themes/Peafowl/views/dashboard.php:2990 +#, php-format +msgid "%s secret key" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2950 +msgid "reCAPTCHA threshold" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2955 +msgid "" +"How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to " +"always show reCAPTCHA." +msgstr "" +"How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to " +"always show reCAPTCHA." + +#: app/themes/Peafowl/views/dashboard.php:2958 +#, php-format +msgid "Force %s on contact page" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2963 +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2969 +msgid "Comments API" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2977 +#, php-format +msgid "Disqus API works with %s." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2985 +msgid "Disqus shortname" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:2995 +#, php-format +msgid "%s public key" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3005 +msgid "Comment code" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3006 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3017 +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3029 +msgid "Automatic approve" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3033 +msgid "Enable this to automatically approve content moderated by this service." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3036 +msgid "Block content" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3038 +#: app/themes/Peafowl/views/dashboard.php:3044 +msgid "Adult" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3038 +#: app/themes/Peafowl/views/dashboard.php:3044 +msgid "Teen and adult" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3042 +msgid "Flag NSFW" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3051 +msgid "Analytics code" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3052 +msgid "" +"Google Analytics or anything you want. It will be added to the theme footer." +msgstr "" +"Google Analytics or anything you want. It will be added to the theme footer." + +#: app/themes/Peafowl/views/dashboard.php:3061 +msgid "API v1 key" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3064 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3073 +msgid "Plugin route" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3078 +#, php-format +msgid "" +"Enable this to display plugin instructions at %u. A link to these " +"instructions will be added to the %s menu. This setting doesn't affect " +"administrators." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3087 +msgid "" +"Use this to set a custom URL for %p. Please note that you need to manually " +"replicate %s in this URL." +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3093 +msgid "Cookie law compliance" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3098 +msgid "" +"Enable this to display a message that complies with the EU Cookie law " +"requirements. Note: You only need this if your website is hosted in the EU " +"and if you add tracking cookies." +msgstr "" +"Enable this to display a message that complies with the EU Cookie law " +"requirements. Note: You only need this if your website is hosted in the EU " +"and if you add tracking cookies." + +#: app/themes/Peafowl/views/dashboard.php:3109 +#: app/themes/Peafowl/views/settings.php:562 lib/Peafowl/peafowl.js:510 +#: lib/Peafowl/peafowl.min.js:1 +msgid "Save changes" +msgstr "" + +#: app/themes/Peafowl/views/dashboard.php:3133 +msgid "Check the errors to proceed." +msgstr "" + +#: app/themes/Peafowl/views/image.php:28 +msgid "Play GIF" +msgstr "" + +#: app/themes/Peafowl/views/image.php:31 +msgid "Load 360° view" +msgstr "" + +#: app/themes/Peafowl/views/image.php:34 +msgid "Load full resolution" +msgstr "" + +#: app/themes/Peafowl/views/image.php:59 app/themes/Peafowl/views/image.php:64 +#, php-format +msgid "%s image" +msgstr "" + +#: app/themes/Peafowl/views/image.php:98 +#, fuzzy +#| msgid "" +#| "Do you really want to remove all the selected content? This can't be " +#| "undone." +msgid "" +"Do you really want to approve this image? The image will go public if you " +"approve it." +msgstr "" +"Do you really want to remove all the selected content? This can't be undone." + +#: app/themes/Peafowl/views/image.php:123 +msgid "This is the album cover" +msgstr "" + +#: app/themes/Peafowl/views/image.php:123 +#: app/themes/Peafowl/views/image.php:124 +msgid "Cover" +msgstr "" + +#: app/themes/Peafowl/views/image.php:191 +msgid "Added to %a and categorized in %c" +msgstr "" + +#: app/themes/Peafowl/views/image.php:193 +#, php-format +msgid "Added to %s" +msgstr "" + +#: app/themes/Peafowl/views/image.php:198 +#, php-format +msgid "Uploaded to %s" +msgstr "" + +#: app/themes/Peafowl/views/image.php:200 +#, php-format +msgid "Uploaded %s" +msgstr "" + +#: app/themes/Peafowl/views/image.php:229 +msgid "Less Exif data" +msgstr "" + +#: app/themes/Peafowl/views/image.php:229 +msgid "More Exif data" +msgstr "" + +#: app/themes/Peafowl/views/image.php:259 +#: app/themes/Peafowl/views/image.php:265 +msgid "Album ID" +msgstr "" + +#: app/themes/Peafowl/views/index.php:23 +msgid "Upload and share your images." +msgstr "" + +#: app/themes/Peafowl/views/index.php:24 +#, php-format +msgid "" +"Drag and drop anywhere you want and start uploading your images now. %s " +"limit. Direct image links, BBCode and HTML thumbnails." +msgstr "" +"Drag and drop anywhere you want and start uploading your images now. %s " +"limit. Direct image links, BBCode and HTML thumbnails." + +#: app/themes/Peafowl/views/index.php:31 +msgid "Start uploading" +msgstr "" + +#: app/themes/Peafowl/views/index.php:76 +msgid "Sign up to unlock all the features" +msgstr "" + +#: app/themes/Peafowl/views/index.php:77 +msgid "" +"Manage your content, create private albums, customize your profile and more." +msgstr "" +"Manage your content, create private albums, customize your profile and more." + +#: app/themes/Peafowl/views/login.php:13 +msgid "Sign in with your account" +msgstr "" + +#: app/themes/Peafowl/views/login.php:16 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "" + +#: app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "" + +#: app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "" + +#: app/themes/Peafowl/views/logout.php:13 +#: app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "" + +#: app/themes/Peafowl/views/maintenance.php:8 +msgid "Website under maintenance" +msgstr "" + +#: app/themes/Peafowl/views/maintenance.php:9 +msgid "" +"We're performing scheduled maintenance tasks in the website. Please come " +"back in a few minutes." +msgstr "" +"We're performing scheduled maintenance tasks in the website. Please come " +"back in a few minutes." + +#: app/themes/Peafowl/views/password-gate.php:9 +msgid "This content is password protected." +msgstr "" + +#: app/themes/Peafowl/views/password-gate.php:11 +msgid "Please enter your password to continue." +msgstr "" + +#: app/themes/Peafowl/views/password-gate.php:26 +#: content/pages/default/contact.php:142 +msgid "Send" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:12 +msgid "" +"Add image uploading to your website, blog or forum by installing our upload " +"plugin. It provides image uploading to any website by placing a button that " +"will allow your users to directly upload images to our service and it will " +"automatically handle the codes needed for insertion. All features included " +"like drag and drop, remote upload, image resizing and more." +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:13 +msgid "Supported software" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:14 +msgid "supported software" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:14 +#, php-format +msgid "" +"The plugin works in any website with user-editable content and for %sv, it " +"will place an upload button that will match the target editor toolbar so no " +"extra customization is needed." +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:22 +msgid "Add it to your website" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:23 +msgid "options" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:23 +#, php-format +msgid "" +"Copy and paste the plugin code into your website HTML code (preferably " +"inside the head section). There are plenty %o to make it fit better to your " +"needs." +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:30 +msgid "Basic options" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:32 +msgid "Color palette" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:46 +msgid "Button color scheme" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:63 +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:66 +msgid "Sibling selector" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:70 +msgid "Sibling element selector where to place the button next to" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:73 +msgid "Sibling position" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:76 +msgid "After" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:77 +msgid "Before" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:80 +msgid "Position relative to sibling element" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:83 +msgid "Advanced options" +msgstr "" + +#: app/themes/Peafowl/views/plugin.php:84 +#, php-format +msgid "" +"The plugin has a large set of additional options that allow full " +"customization. You can use custom HTML, CSS, own color palette, set " +"observers and more. Check the %d and the plugin source to get a better idea " +"of these advanced options." +msgstr "" + +#: app/themes/Peafowl/views/request-denied.php:12 +msgid "" +"You either don't have permission to access this page or the link has expired." +msgstr "" +"You either don't have permission to access this page or the link has expired." + +#: app/themes/Peafowl/views/search.php:11 +msgid "Search results" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:43 +#: app/themes/Peafowl/views/user.php:85 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:43 +msgid "Delete user" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:98 +msgid "Register date" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:108 +msgid "Registration IP" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:125 +msgid "Valid" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:126 +msgid "Banned" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:127 +msgid "Awaiting email" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:128 +msgid "Awaiting confirmation" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:165 +#: app/themes/Peafowl/views/signup.php:28 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:197 +msgid "Auto delete uploads" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:205 +msgid "" +"This setting will apply to all your image uploads by default. You can " +"override this setting on each upload." +msgstr "" +"This setting will apply to all your image uploads by default. You can " +"override this setting on each upload." + +#: app/themes/Peafowl/views/settings.php:220 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:228 +msgid "Newsletter" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:231 +#, php-format +msgid "Send me emails with news about %s" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:237 +msgid "Content settings" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:240 +msgid "Show not safe content in listings (from others)" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:251 +msgid "Language" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:279 +msgid "Timezone" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:336 +msgid "" +"This service is provided by %website_name%, we are an independent service " +"provider. Many thanks for your ongoing support." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:342 +msgid "At %website_name% we are proudly using and supporting %software%." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:363 +msgid "Current password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:364 +msgid "Enter your current password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:371 +msgid "New password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:377 +msgid "Confirm new password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:388 +msgid "Add a password to be able to login using your username or email." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:390 +msgid "This user doesn't have a password. Add one using this form." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:395 +msgid "Enter your password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:400 +msgid "Confirm password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:401 +msgid "Re-enter your password" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:429 +msgid "Upload avatar" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:443 +msgid "Make my profile and identity totally private" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:444 +msgid "Enable this if you want to act like an anonymous user" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:455 +msgid "This is your real name, not your username." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:465 +msgid "http://yourwebsite.com" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:469 +msgid "Bio" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:470 +msgid "Tell us a little bit about you" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:483 +msgid "User has no connections." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:487 +#, fuzzy +#| msgid "" +#| "Link your account to external services to be able to login and share " +#| "content." +msgid "Link your account to external services to be able to login here." +msgstr "" +"Link your account to external services to be able to login and share content." + +#: app/themes/Peafowl/views/settings.php:493 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:494 +#, php-format +msgid "This account is connected to %s" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:496 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:498 +#, php-format +msgid "" +"You will be logged out and you won't be able to login to your account using " +"this %s account." +msgstr "" +"You will be logged out and you won't be able to login to your account using " +"this %s account." + +#: app/themes/Peafowl/views/settings.php:500 +#, php-format +msgid "Your account is connected to %s" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:504 +msgid "disconnect" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:518 +#, php-format +msgid "Connect %s" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:537 app/web.php:186 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "" + +#: app/themes/Peafowl/views/settings.php:542 +msgid "Button" +msgstr "" + +#: app/themes/Peafowl/views/settings.php:543 app/web.php:189 +msgid "View all my images" +msgstr "" + +#: app/themes/Peafowl/views/signup.php:13 +msgid "Login" +msgstr "" + +#: app/themes/Peafowl/views/signup.php:13 +#, php-format +msgid "Already have an account? %s now." +msgstr "" + +#: app/themes/Peafowl/views/signup.php:15 +#: app/themes/Peafowl/views/signup.php:17 +msgid "resend account activation" +msgstr "" + +#: app/themes/Peafowl/views/signup.php:15 +#, php-format +msgid "" +"If you have already signed up maybe you need to request to %s to activate " +"your account." +msgstr "" + +#: app/themes/Peafowl/views/signup.php:17 +#, php-format +msgid "You can also %s." +msgstr "" + +#: app/themes/Peafowl/views/signup.php:39 +#, php-format +msgid "I'm at least %s years old" +msgstr "" + +#: app/themes/Peafowl/views/signup.php:48 +msgid "terms" +msgstr "" + +#: app/themes/Peafowl/views/signup.php:48 +msgid "privacy policy" +msgstr "" + +#: app/themes/Peafowl/views/signup.php:48 +msgid "I agree to the %terms_link and %privacy_link" +msgstr "" + +#: app/themes/Peafowl/views/user.php:22 +msgid "Upload profile background" +msgstr "" + +#: app/themes/Peafowl/views/user.php:26 +msgid "Change background" +msgstr "" + +#: app/themes/Peafowl/views/user.php:30 +msgid "Upload new image" +msgstr "" + +#: app/themes/Peafowl/views/user.php:31 +msgid "" +"The profile background image will be deleted. This can't be undone. Are you " +"sure that you want to delete the profile background image?" +msgstr "" +"The profile background image will be deleted. This can't be undone. Are you " +"sure that you want to delete the profile background image?" + +#: app/themes/Peafowl/views/user.php:31 +msgid "Delete background" +msgstr "" + +#: app/themes/Peafowl/views/user.php:96 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "" +msgstr[1] "" + +#: app/themes/Peafowl/views/user.php:102 +msgid "Follow" +msgstr "" + +#: app/web.php:49 +msgid "You have been forbidden to use this website." +msgstr "" + +#: app/web.php:322 +msgid "Plugin" +msgstr "" + +#: app/web.php:397 +#, php-format +msgid "Page %s" +msgstr "" + +#: content/pages/default/contact.php:9 +msgid "General questions/comments" +msgstr "" + +#: content/pages/default/contact.php:10 +msgid "DMCA complaint" +msgstr "" + +#: content/pages/default/contact.php:28 +msgid "Invalid message" +msgstr "" + +#: content/pages/default/contact.php:31 +msgid "Invalid subject" +msgstr "" + +#: content/pages/default/contact.php:75 +msgid "Mail error" +msgstr "" + +#: content/pages/default/contact.php:84 +msgid "Message sent" +msgstr "" + +#: content/pages/default/contact.php:90 +msgid "Message sent. We will get in contact soon." +msgstr "" + +#: content/pages/default/contact.php:90 +msgid "If you want to send a message fill the form below." +msgstr "" + +#: content/pages/default/contact.php:93 +msgid "Your name" +msgstr "" + +#: content/pages/default/contact.php:106 +msgid "Subject" +msgstr "" + +#: lib/Peafowl/peafowl.js:35 lib/Peafowl/peafowl.js:608 +#: lib/Peafowl/peafowl.min.js:1 +msgid "All the changes that you have made will be lost if you continue." +msgstr "" + +#: lib/Peafowl/peafowl.js:583 lib/Peafowl/peafowl.min.js:1 +msgid "Changes saved successfully." +msgstr "" + +#: lib/Peafowl/peafowl.js:613 lib/Peafowl/peafowl.min.js:1 +msgid "Go back to form" +msgstr "" + +#: lib/Peafowl/peafowl.js:617 lib/Peafowl/peafowl.min.js:1 +msgid "continue anyway" +msgstr "" + +#: lib/Peafowl/peafowl.js:3102 lib/Peafowl/peafowl.min.js:2 +msgid "Saving" +msgstr "" + +#: lib/Peafowl/peafowl.js:3107 lib/Peafowl/peafowl.min.js:2 +msgid "Sending" +msgstr "" + +#: lib/Peafowl/peafowl.js:3197 lib/Peafowl/peafowl.min.js:2 +msgid "Confirm action" +msgstr "" + +#: lib/Peafowl/peafowl.js:3209 lib/Peafowl/peafowl.min.js:2 +msgid "information" +msgstr "" + +#~ msgid "" +#~ "All the images will be moved to this newly created album. You can also " +#~ "move the images to an <a class=\"modal-switch\" data-switch=\"move-" +#~ "existing-album\">existing album</a>." +#~ msgstr "" +#~ "All the images will be moved to this newly created album. You can also " +#~ "move the images to an <a class=\"modal-switch\" data-switch=\"move-" +#~ "existing-album\">existing album</a>." + +#~ msgid "" +#~ "Select an existing album to move the image. You can also <a class=\"modal-" +#~ "switch\" data-switch=\"move-new-album\">create a new album</a> and move " +#~ "the image there." +#~ msgstr "" +#~ "Select an existing album to move the image. You can also <a class=\"modal-" +#~ "switch\" data-switch=\"move-new-album\">create a new album</a> and move " +#~ "the image there." + +#~ msgid "" +#~ "Select an existing album to move the album contents. You can also <a " +#~ "class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</" +#~ "a> and move the album contents there." +#~ msgstr "" +#~ "Select an existing album to move the album contents. You can also <a " +#~ "class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</" +#~ "a> and move the album contents there." + +#~ msgid "" +#~ "Select an existing album to move the images. You can also <a class=" +#~ "\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> " +#~ "and move the images there." +#~ msgstr "" +#~ "Select an existing album to move the images. You can also <a class=" +#~ "\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> " +#~ "and move the images there." + +#~ msgid "" +#~ "Bitmap version or your website logo (only for homepage). PNG format is " +#~ "recommended." +#~ msgstr "" +#~ "Bitmap version or your website logo (only for homepage). PNG format is " +#~ "recommended." + +#~ msgid "" +#~ "If you set this to \"white\" the top bar and all the black tones will be " +#~ "changed to white tones." +#~ msgstr "" +#~ "If you set this to \"white\" the top bar and all the black tones will be " +#~ "changed to white tones." + +#~ msgid "" +#~ "Fill this section uploading pictures to %s account.<br>You can edit the " +#~ "target user in your dashboard settings." +#~ msgstr "" +#~ "Fill this section uploading pictures to %s account.<br>You can edit the " +#~ "target user in your dashboard settings." + +#~ msgid "" +#~ "The uploaded content will be moved to this newly created album. You can " +#~ "also move the content to an <a class=\"modal-switch\" data-switch=\"move-" +#~ "existing-album\">existing album</a>." +#~ msgstr "" +#~ "The uploaded content will be moved to this newly created album. You can " +#~ "also move the content to an <a class=\"modal-switch\" data-switch=\"move-" +#~ "existing-album\">existing album</a>." + +#~ msgid "" +#~ "Enter your username or the email address that you used to create your " +#~ "account." +#~ msgstr "" +#~ "Enter your username or the email address that you used to create your " +#~ "account." + +#~ msgid "" +#~ "Enter the username or email address that you used to create your account " +#~ "to continue." +#~ msgstr "" +#~ "Enter the username or email address that you used to create your account " +#~ "to continue." + +#~ msgid "" +#~ "To use all the features of this site you must be logged in. If you don't " +#~ "have an account you can <a href=\"%s\">sign up</a> right now." +#~ msgstr "" +#~ "To use all the features of this site you must be logged in. If you don't " +#~ "have an account you can <a href=\"%s\">sign up</a> right now." + +#~ msgid "" +#~ "We use our own and third party cookies to improve your browsing " +#~ "experience and our services. If you continue using our website is " +#~ "understood that you accept this cookie policy." +#~ msgstr "" +#~ "We use our own and third party cookies to improve your browsing " +#~ "experience and our services. If you continue using our website is " +#~ "understood that you accept this cookie policy." + +#~ msgid "" +#~ "You can also <a data-trigger=\"anywhere-upload-input\">browse from your " +#~ "computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-" +#~ "paste-url\">add image URLs</a>." +#~ msgstr "" +#~ "You can also <a data-trigger=\"anywhere-upload-input\">browse from your " +#~ "computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-" +#~ "paste-url\">add image URLs</a>." + +#~ msgid "" +#~ "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a " +#~ "picture</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-" +#~ "url\">add image URLs</a>." +#~ msgstr "" +#~ "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a " +#~ "picture</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-" +#~ "url\">add image URLs</a>." + +#~ msgid "" +#~ "You can <a data-trigger=\"anywhere-upload-input\">add more images</a> or " +#~ "<a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add " +#~ "image URLs</a>." +#~ msgstr "" +#~ "You can <a data-trigger=\"anywhere-upload-input\">add more images</a> or " +#~ "<a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add " +#~ "image URLs</a>." + +#~ msgid "" +#~ "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-" +#~ "objects\">images</span>" +#~ msgstr "" +#~ "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-" +#~ "objects\">images</span>" + +#~ msgid "" +#~ "The queue is being uploaded. It will take just a few seconds to complete." +#~ msgstr "" +#~ "The queue is being uploaded. It will take just a few seconds to complete." + +#~ msgid "" +#~ "You can add more images <a data-trigger=\"anywhere-upload-input\">from " +#~ "your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-" +#~ "paste-url\">from image URLs</a>." +#~ msgstr "" +#~ "You can add more images <a data-trigger=\"anywhere-upload-input\">from " +#~ "your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-" +#~ "paste-url\">from image URLs</a>." + +#~ msgid "" +#~ "Content added to <a data-text=\"upload-target\" data-link=\"upload-target" +#~ "\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-" +#~ "target=\"form-uploaded-create-album\">create an album</a> or <a data-" +#~ "modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span " +#~ "data-text=\"queue-objects\">images</span></a> to an existing album." +#~ msgstr "" +#~ "Content added to <a data-text=\"upload-target\" data-link=\"upload-target" +#~ "\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-" +#~ "target=\"form-uploaded-create-album\">create an album</a> or <a data-" +#~ "modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span " +#~ "data-text=\"queue-objects\">images</span></a> to an existing album." + +#~ msgid "" +#~ "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</" +#~ "a> to save future uploads in your account." +#~ msgstr "" +#~ "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</" +#~ "a> to save future uploads in your account." + +#~ msgid "" +#~ "CDN allows you to offload static content to several edge servers making " +#~ "your website faster. If you don't have a CDN provider you should try %s." +#~ msgstr "" +#~ "CDN allows you to offload static content to several edge servers making " +#~ "your website faster. If you don't have a CDN provider you should try %s." + +#~ msgid "" +#~ "You haven't changed the default email settings. Go to <a " +#~ "href='%s'>Dashboard > Settings > Email</a> to fix this." +#~ msgstr "" +#~ "You haven't changed the default email settings. Go to <a " +#~ "href='%s'>Dashboard > Settings > Email</a> to fix this." diff --git a/app/languages/es.po b/app/languages/es.po new file mode 100644 index 0000000..8570dba --- /dev/null +++ b/app/languages/es.po @@ -0,0 +1,5313 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-07 13:29+0000\n" +"PO-Revision-Date: 2021-06-07 13:29+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Email inválido" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Nombre de usuario inválido" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Contraseña inválida" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "La versión instalada es v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "No se puede conectar a %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "La última versión disponible es v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Actualización necesaria, procediendo a descarga" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "No se necesita actualizar" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Los archivos de sistema ya están actualizados" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Comenzando a descargar v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s descargada, procediendo a extraer" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Intentando extraer v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Extracción completada" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Procediendo a instalar la actualización" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Error en la actualización" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Actualización en progreso" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Falta archivo %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Información de licencia inválida" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "No se puede guardar el archivo" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "No se puede extraer %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "No se puede crear el directorio %s - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "No se puede actualizar el archivo %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Comprueba los errores en el formulario para continuar." + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Nota: Este contenido es privado pero cualquiera con el enlace podrá ver esto." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Nota: Este contenido está protegido con contraseña. Recuerda pasar la contraseña para compartir." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Nota: Este contenido es privado. Cambia su privacidad a \"publico\" para compatir." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Debes ingresar el nombre del álbum." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Confirmar" + +msgid "The content has been approved." +msgstr "El contenido ha sido aprobado." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Seleccionar álbum existente" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Ha ocurrido un error. Por favor inténtalo más tarde." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Por favor seleciona un archivo de imagen válido." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Por favor selecciona una imagen de a lo sumo %s de tamaño." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Imagen de perfil actualizada." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Imagen de fondo de perfil actualizada." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Imagen de fondo de perfil eliminada." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Error eliminado la imagen de fondo de perfil." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Las contraseñas no coinciden" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Actualización disponible v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Hay una actualización disponible para tu sistema. Puedes descargar automáticamente e instalar esta actualización o puedes ir a %s y descargar este archivo." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Las notas de versión para esta actualización son:" + +msgid "system requirements" +msgstr "requisitos de sistema" + +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "Confirmo que este servidor cumple los %s para esta actualización" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Actualizar ahora" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Este sitio web está corriendo la última versión de %s" + +msgid "Please review the system requirements before proceeding" +msgstr "Porfavor revisa los requerimientos de sistema antes de proceder" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "cargando" + +msgid "Toggle select" +msgstr "Alternar selección" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Me gusta" + +msgid "Toggle flag" +msgstr "Alternar marca" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Editar" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Álbum" +msgstr[1] "Álbumes" + +msgid "Approve" +msgstr "Aprobar" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Eliminar" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Cerrar" + +msgid "Previous" +msgstr "Anterior" + +msgid "Next" +msgstr "Siguiente" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Imagen portapales" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Archivo muy pesado." + +msgid "Invalid or unsupported file format." +msgstr "Formato de archivo inválido o no soportado." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Algunos archivos no se pudieron agregar" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "imagen" +msgstr[1] "imágenes" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Álbumes de %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Imagen editada exitosamente." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privado" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Álbum editado exitosamente." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Llave URL inválida." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Llave URL de categoría actualmente en uso." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Categoría eliminada exitosamente." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Categoría %s agregada." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Fecha de expiración inválida." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s ya baneada." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s baneada." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Baneo de IP eliminado exitosamente." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Por favor completa todos los campos requeridos." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Capacidad de almacenamiento inválida. Asegúrate de usar un formato válido." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "La capacidad de almacenamiento no puede ser menor que su uso actual (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL inválida." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Almacenamiento editado exitosamente." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Usuario agregado exitosamente." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "El contenido ha sido eliminado." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "El contenido ha sido trasladado." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Seleccionar" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Deseleccionar" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "El contenido ha sido editado." + +#, javascript-format +msgid "Import ID %s removed" +msgstr "ID de importación %s eliminada" + +msgid "Spam detected" +msgstr "Spam detectado" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "álbum" +msgstr[1] "álbumes" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Flooding detectado. Solamente puedes subir %limit% %content% por %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Sin título" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Imágenes de %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privado" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Público" + +msgid "Me" +msgstr "Yo" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Enlace" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Contraseña" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "visita" +msgstr[1] "visitas" + +msgid "After %n %t" +msgstr "Después de %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minutos" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "horas" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "día" +msgstr[1] "días" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "semana" +msgstr[1] "semanas" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mes" +msgstr[1] "meses" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "año" +msgstr[1] "años" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "No eliminar automáticamente" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "No se puede abrir %s para escritura" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Subida duplicada" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Subida privada" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "me gusta" +msgstr[1] "me gusta" + +msgid "Recent" +msgstr "Reciente" + +msgid "Trending" +msgstr "Tendencia" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Usuarios top" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Más reciente" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Más antiguo" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Más visto" + +msgid "Popular" +msgstr "Popular" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Más me gusta" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Explorar" + +msgid "Animated" +msgstr "Animado" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Buscar" + +msgid "People" +msgstr "Gente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Imagen" +msgstr[1] "Imágenes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Usuario" +msgstr[1] "Usuarios" + +msgid "adult" +msgstr "adulto" + +msgid "teen" +msgstr "adolescente" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "El contenido de tipo %s está prohibido" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "No se puede crear el directorio %s de destino" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interna" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Ilimitado" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "usado" + +msgid "Private profile" +msgstr "Perfil privado" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "segundo" +msgstr[1] "segundos" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "hace %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "hace unos momentos" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Administrar" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Hay una actualización disponible para tu sistema. Ve a %s para descargar e instalar esta actualización." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "La base de datos del sistema esta desactualizada. Necesitas ejecutar la herramienta de <a href=\"%s\">actualización</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "La página web está en modo de mantenimiento. Para revertir este ajuste ve a <a href=\"%s\">Administrar > Configuraciones</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Deberías inhabilitar el reporte de errores de PHP en entorno de producción. ve a <a href='%s'>Ajustes de sistema</a> para revertir este ajuste." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "No has cambiado los ajustes de email por defecto. Ve a <a href='%s'>Ajustes de email</a> para reparar esto." + +msgid "There is an update available for your Chevereto based website." +msgstr "Hay una actualización disponible para tu sitio basado en Chevereto." + +msgid "admin dashboard" +msgstr "panel de administración" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Puedes aplicar esta actualización directamente desde %a o puedes descargarla desde %s e instalar manualmente." + +#, php-format +msgid "view on %s" +msgstr "ver en %s" + +msgid "cookie policy" +msgstr "política de cookies" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Utilizamos cookies propias y de terceros para mejorar tu experiencia de navegación y nuestros servicios. Si continúas usando nuestro sitio web, se entiende que aceptas esta %cookie_policy_link." + +msgid "I understand" +msgstr "Entiendo" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Recuperar contraseña" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Restablecer contraseña" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Reenviar activación de cuenta" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Agrega tu dirección de email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Email cambiado" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s dice que eres un robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Nombre de usuario / Email inválido" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "El usuario no tiene email." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Solicitud denegada" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "La cuenta necesita ser activada para usar esta característica" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "La cuenta ya está activada" + +msgid "Account banned" +msgstr "Cuenta baneada" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Permite hasta 15 minutos para el email. Puedes intentar más tarde." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Restablecer tu contraseña en %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Confirmación requerida en %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Bienvenido/a a %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Email actualmente en uso" + +msgid "Password required" +msgstr "Contraseña requerida" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Insertar" + +msgid "Sub albums" +msgstr "Sub-álbumes" + +msgid "Info" +msgstr "Info" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Álbum %a alojado en %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Estadísticas" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Imágenes" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Álbumes" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Usuarios" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Ajustes" + +msgid "Bulk importer" +msgstr "Importador" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "instalar actualización" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "comprobar actualizaciones" + +msgid "Contributing" +msgstr "Contribuir" + +msgid "Support" +msgstr "Soporte" + +msgid "Bug tracking" +msgstr "Seguimiento de errores" + +msgid "Documentation" +msgstr "Documentación" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Versión de PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Servidor" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Versión de MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Info servidor MySQL" + +msgid "Graphics Library" +msgstr "Libreria gráfica" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Subidas de archivos" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Habilitado" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Deshabilitado" + +msgid "Max. upload file size" +msgstr "Tamaño máx. de archivo de subida" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Tamaño máx. de post" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Tiempo máx. de ejecución" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d segundo" +msgstr[1] "%d segundos" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Límite de memoria" + +msgid "Rebuild stats" +msgstr "Reconstruir estadísticas" + +msgid "Connecting IP" +msgstr "IP conectada" + +msgid "Not your IP?" +msgstr "No es tu IP?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Sitio web" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Contenido" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Páginas" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Listados" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Subida de imágenes" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Categorías" + +msgid "Consent screen" +msgstr "Pantalla de consentimiento" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Protección flood" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Página principal" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Anuncios" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistema" + +msgid "Routing" +msgstr "Enrutamiento" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Idiomas" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Almacenamiento externo" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Redes sociales" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Servicios externos" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Baneos de IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Ajustes adicionales" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Herramientas" + +msgid "Can't delete all homepage cover images" +msgstr "No puedes borrar todas las imágenes de portada" + +msgid "Homepage cover image deleted" +msgstr "Imagen de portada eliminada" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Local" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Externo" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Todo" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "buscar contenido" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Añadir página" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Editar página ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "La página ha sido añadida exitosamente." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "La página ha sido eliminada." + +msgid "homepage" +msgstr "pagina principal" + +#, php-format +msgid "Before main title (%s)" +msgstr "Antes del título principal (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Después de la llamada de acción (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Después del cover (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Después del listado (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Antes de la paginación" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Después de la paginación" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Contenido (imagen y álbum)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Columna en pestaña sobre" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Antes de los comentarios" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Página de imagen" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "En el interior superior del visualizador (página de imagen)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "En el interior inferior del visualizador (página de imagen)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Después del visualizador de imagen (página de imagen)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Antes del header (página de imagen)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Después del header (página de imagen)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Footer (página de imagen)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Página de álbum" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Antes del header (página de álbum)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Después del header (página de álbum)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Página de perfil de usuario" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Después del top (página de perfil de usuario)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Antes del listado (página de perfil de usuario)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Página de exploración" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Después del top (página de exploración)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "No seguro" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nombre de sitio inválido" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Idioma inválido" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Zona horaria inválida" + +#, php-format +msgid "Invalid value: %s" +msgstr "Valor inválido: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Método de almacenamiento inválido" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Nombramiento de subidas inválido" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Ancho de miniatura inválido" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Alto de miniatura inválido" + +msgid "Invalid medium size" +msgstr "Tamaño medio inválido" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Porcentaje de marca de agua inválido" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Opacidad de marca de agua inválida" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Tema inválido" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Valor inválido" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Tono de tema inválido" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Color principal de tema inválido" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Color de botón de barra superior de tema inválido" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Tamaño de imagen de listado inválido" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Id de usuario inválida" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Modo de email inválido" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Puerto SMTP inválido" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Seguridad SMTP inválida" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Modo de sitio inválido" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "ID de usuario modo personal inválida" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Ruta inválida o reservada" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Modo de privacidad de sitio inválido" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Modo de privacidad de contenido inválido" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Estilo de página principal inválido" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Color de botón de llamada de acción de página principal inválido" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Función inválida del boton de accion de la página principal" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Título inválido" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Estado inválido" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Tipo inválido" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Visibilidad inválida" + +msgid "Invalid internal type" +msgstr "Tipo interno inválido" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Atributo target inválido" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Atributo rel inválido" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Icono inválido" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Llave URL inválida" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Ruta de archivo inválida" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Enlace URL inválido" + +msgid "Invalid user minimum age" +msgstr "Edad mínima de usuario inválida" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Solamente se permiten caracteres alfanuméricos, guiones y guion bajo." + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL inválida" + +msgid "Routes can't be the same" +msgstr "Las rutas no pueden ser iguales" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Ruta de subidas de imágenes inválida" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "URL de llamada de acción inválida" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "%s max. permitido" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "No se puede mapear %m a una carpeta existente (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "No se puede mapear %m a una ruta existente (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "No se puede mapear %m a %r (conflicto con nombre de usuario)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Servidor SMTP inválido" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Usuario SMTP inválido" + +msgid "Invalid key" +msgstr "Llave inválida" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Esta llave URL ya está siendo utilizada por otra página (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Esta ruta de archivo ya está siendo utilizada por otra página (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "No se puede guardar el contenido de la página: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Siguiendo" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Acerca" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID de imagen" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Banear IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP ya baneada" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Fecha de subida" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Imagen %i en álbum %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Imagen %i en categoría %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Imagen %i alojada en %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Enlaces directos" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Enlace a la imagen" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL imagen" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL miniatura" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL media" + +msgid "Full image" +msgstr "Imagen completa" + +msgid "Full image (linked)" +msgstr "Imagen completa (enlazada)" + +msgid "Medium image (linked)" +msgstr "Imagen media (enlazada)" + +msgid "Thumbnail image (linked)" +msgstr "Imagen en miniatura (enlazada)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Necesitas identificarte" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "La dirección IP ya esta baneada" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Faltan campos" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Rol inválido" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Nombre de usuario actualmente en uso" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Agrega una contraseña u otra conexión social antes de eliminar %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Agrega un email u otra conexión social antes de eliminar %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s ha sido desconectado." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Email de prueba desde %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Esto es solamente una prueba" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Email de prueba enviado a %s" + +#, php-format +msgid "Downloading %s data" +msgstr "Descargando datos de %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Ahora sigues a %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Dejaste de seguir a %s" + +msgid "Album cover altered" +msgstr "Cover de álbum alterada" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Contenido gustado" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Contenido ya no gustado" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "A %u le gusta tu %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u ahora te está siguiendo" + +msgid "A private user" +msgstr "Un usuario privado" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Combinación Nombre de usuario / Email incorrecta" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Entrar" + +msgid "Moderate" +msgstr "Moderar" + +msgid "Upload images" +msgstr "Subir imágenes" + +msgid "Upload plugin" +msgstr "Complemento de subida" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Resultados de búsqueda de imagen para %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Resultados de búsqueda de álbum para %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Resultados de búsqueda de usuario para %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Cuenta" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Perfil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Cuentas enlazadas" + +msgid "Powered by" +msgstr "Alimentado por" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Fecha de expiración inválida: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Un email ha sido enviado a %s con las instrucciones para activar este email" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nombre inválido" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Sitio web inválido" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Contraseña incorrecta" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Usa una nueva contraseña" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Los cambios se han guardado." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "La contraseña ha sido cambiada" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "La contraseña ha sido creada." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Nombre de usuario / Email inválidos" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Ajustes para %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Debes aceptar los términos y política de privacidad" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Debes tener al menos %s años para usar este sitio web." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Crear cuenta" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Subir" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Imágenes de %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultados para" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Le gusta a %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Me gusta" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Seguidores" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "Álbumes de %n (%u) en %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) en %w" + +msgid "Discovery" +msgstr "Descubrimiento" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Aleatorio" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Búsqueda avanzada" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Avisos (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Notificaciones" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "No tienes notificaciones" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Mi Perfil" + +msgid "Lights" +msgstr "Luces" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Salir" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Hemos recibido la solicitud de cambiar el email de tu cuenta <a href=\"%u\">%n</a> en %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Para completar el proceso debes <a href=\"%s\">activar tu email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativamente puedes copiar y pegar esta direccíon en tu navegador: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Si no has efectuado esta solicitud simplemente ignora este mensaje." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Esta solicitud fue realizada desde la IP %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Hemos recibido la solicitud de registrar la cuenta %n en %w" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Para completar el proceso debes <a href=\"%s\">activar tu cuenta</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Hemos recibido la solicitud de restablecer la contraseña para tu cuenta <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Para restablecer tu contraseña <a href=\"%s\">sigue este enlace</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hola %n, bienvenido(a) a %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Ahora que tu cuenta está lista puedes disfrutar subiendo imágenes, creando álbumes y estableciendo la privacidad de tu contenido asi como también otras cosas interesantes que iras descubriendo." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "A propósito, aquí está tu propio perfil: <a href=\"%u\">%n</a>. Anda y personaliza tu perfil, ¡es tuyo!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Gracias por unirte" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Este email fue enviado desde %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Arrastra aquí o pega las imágenes para subir" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Selecciona las imágenes a subir" + +msgid "browse from your computer" +msgstr "explorar desde tu computadora" + +msgid "add image URLs" +msgstr "agregar URLs de imagen" + +msgid "You can also %i or %u." +msgstr "También puedes %i o %u." + +msgid "browse from your device" +msgstr "explorar desde tu dispositivo" + +msgid "take a picture" +msgstr "tomar una foto" + +msgid "You can also %i, %c or %u." +msgstr "También puedes %i, %c o %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Edita o redimensiona cualquier imagen haciendo click en la previsualización" + +msgid "Edit any image by touching the image preview" +msgstr "Edita cualquier imagen tocando la previsualización" + +msgid "your computer" +msgstr "tu computadora" + +msgid "You can add more images from %i or %u." +msgstr "Puedes añadir más imágenes desde %i o %u." + +msgid "your device" +msgstr "tu dispositivo" + +msgid "You can add more images from %i, %c or %u." +msgstr "Puedes añadir más imágenes desde %i, %c o %u." + +msgid "Uploading %q %o" +msgstr "Subiendo %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "completado" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Subida en curso, debería tomar solo un momento para completar el proceso." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Subida completada" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Contenido subido agregado a %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Puedes %c con el contenido recién subido o %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Puedes %c con el contenido recién subido." + +msgid "create a new album" +msgstr "crear un nuevo ábum" + +msgid "move it to an existing album" +msgstr "trasladarlo a un álbum existente" + +msgid "You must %s or %l to save this content into your account." +msgstr "Debes %s o %l para guardar este contenido en tu cuenta." + +msgid "create an account" +msgstr "crear una cuenta" + +msgid "sign in" +msgstr "entrar" + +#, php-format +msgid "No %s have been uploaded" +msgstr "No se han subido %s" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Han ocurrido algunos errores y el sistema no ha podido procesar la solicitud." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Categoría" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Seleccionar categoría" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Marca esto si la subida no es segura para familia" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Subida no segura para familia" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Subiendo" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "cancelar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "cancelar restantes" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Nota: Algunas imágenes no se pudieron subir." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "conocer más" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Revisa el <a data-modal=\"simple\" data-target=\"failed-upload-result\">reporte de error</a> para más información." + +#, php-format +msgid "Register to get %s" +msgstr "Regístrate para obtener %s" + +msgid "reset" +msgstr "restablecer" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "cerrar" + +msgid "Note" +msgstr "Nota" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Debemos aprobar el contenido subido antes de poder compartir." + +msgid "copy" +msgstr "copiar" + +msgid "insert" +msgstr "insertar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Eliminar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Título" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "opcional" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Redimensionar imagen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Ancho" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Alto" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Nota: Las imágenes GIF animadas no serán redimensionadas." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Eliminar imagen automáticamente" + +msgid "Sign up" +msgstr "Regístrate" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s para poder personalizar o inhabilitar la eliminación automática de imágenes." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Marca esto si la imagen no es segura para familia" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Marcar como no segura" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Descripción" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Breve descripción de esta imagen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Agrega URLs de imagen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Agrega aquí las URLs de las imágenes" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Crear álbum" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "El contenido subido será trasladado a este nuevo álbum." + +msgid "existing album" +msgstr "álbum existente" + +msgid "You can also move the content to an %a." +msgstr "También puedes trasladar el contenido a un %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Debes %s o %l si quieres editar este álbum más adelante." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Trasladar a álbum" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Selecciona el álbum donde quieres trasladar el contenido subido. También puedes <a class=\"modal-switch\" data-switch=\"move-new-album\">crear un álbum</a> y trasladar el contenido al mismo." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Reporte de error" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Enlaces" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Enlaces de visualizador" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Códigos HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML imagen" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML completa enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML media enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML miniatura enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode completa" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode completa enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode media enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode miniatura enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown completo" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown completa enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown media enlazada" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown miniatura enlazada" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Todas estas palabras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Ingresa las palabras importantes: Terrier ratonero tricolor" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Esta palabra o frase exactas" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Ingresa las palabras exactas entre comillas: \"Terrier ratonero\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Ninguna de estas palabras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Ingresa un signo menos justo delante de las palabras que no quieres que aparezcan: -Roedor, -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Dirección IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nombre del álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "trasladar a álbum existente" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Descripción del ábum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Breve descripción de este álbum" + +msgid "Album privacy" +msgstr "Privacidad del álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Quién puede ver este contenido" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privado (sólo yo)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privado (cualquiera con el enlace)" + +msgid "Private (password protected)" +msgstr "Privado (protegido con contraseña)" + +msgid "Album password" +msgstr "Contraseña del álbum" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nombre" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nombre de la categoría" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Llave URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Llave URL de categoría" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Sólo letras, números y guiones" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Breve descripción de esta categoría" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Imagen sin título" + +msgid "Mark this if the image is not safe for work" +msgstr "Marca esto si la imagen no es segura para trabajo" + +msgid "Flag not safe" +msgstr "Marcar no segura" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Ruta" + +msgid "Local path (absolute)" +msgstr "Ruta local (absoluta)" + +msgid "Directory structure" +msgstr "Estructura de directorio" + +msgid "Parse top level folders as users (username)" +msgstr "Analizar carpetas de nivel superior como usuarios (nombre de usuario)" + +msgid "Parse top level folders as albums" +msgstr "Analizar carpetas de nivel superior como álbumes" + +msgid "Don't parse folders" +msgstr "No analizar carpetas" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Al analizar carpetas de nivel superior como usuarios, las carpetas de segundo nivel son analizadas como álbumes de usuario. Analizar carpetas de nivel superior como álbumes agrega estos como álbumes de invitados." + +msgid "Threads" +msgstr "Hilos" + +msgid "Select number of threads" +msgstr "Selecciona número de hilos" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Esto determina que tan intensivo y rápido será el proceso de importación. No uses más de %s hilos en un servidor compartido." + +msgid "You can use wildcard * characters." +msgstr "Puedes usar caracteres comodín *." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Fecha de expiración" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "AAAA-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Ejemplo" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "¿Hasta qué fecha esta IP estará baneada? Deja en blanco para no establecer expiración." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Mensaje" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Mensaje de texto, HTML o una URL de redirección" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Álbum existente" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "crear nuevo álbum" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Nombre del almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Región" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Región de almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Bucket del almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Llave" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Llave del almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secreto" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Componente secreto del almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Llave privada" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Llave JSON de Google Cloud" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Necesitarás una <a %s>cuenta de servicio</a> para esto." + +msgid "Service name" +msgstr "Nombre de servicio" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "URL identidad" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Endpoint API identidad" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Endpoint para API identidad OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Nombre de usuario" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Contenedor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Contenedor almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Id inquilino" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Id inquilino (id de cuenta)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Nombre inquilino" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Nombre de inquilino (nombre de cuenta)" + +msgid "Storage endpoint" +msgstr "Endpoint de almacenamiento" + +msgid "Server address" +msgstr "Dirección del servidor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Nombre del host o IP del servidor de almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Ruta del servidor" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Ruta absoluta donde los archivos se almacenarán en contexto del acceso %p. Usa %s para ruta raíz." + +msgid "Server login" +msgstr "Login del servidor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Contraseña del servidor" + +msgid "Local path" +msgstr "Ruta local" + +msgid "Local path where the files will be stored" +msgstr "Ruta local donde los archivos serán almacenados" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Capacidad de almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Ejemplo: 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Este almacenamiento se desabilitará cuando alcance esta capacidad. Deja en blanco o en cero para capacidad ilimitada." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL del almacenamiento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "El sistema asignará esta URL a las imágenes." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "ver más" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Cargar más" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Seleccionar todo" + +msgid "Clear" +msgstr "Limpiar" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Obtener códigos" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Asignar categoría" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Marcar como segura" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Limpiar selección" + +msgid "Create new album" +msgstr "Crear nuevo album" + +msgid "Create sub album" +msgstr "Crear sub-álbum" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Compartir" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Entrar con otra cuenta" + +msgid "Continue with %label%" +msgstr "Continuar con %label%" + +msgid "Home" +msgstr "Principal" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "No hay nada que mostrar aquí." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Todas las imágenes seleccionadas serán asignadas a esta categoría." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "No hay categorías." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Confirmar marcar contenido como seguro" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "¿Realmente quieres marcar este contenido como seguro?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Confirmar marcar contenido como no seguro" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "¿Realmente quieres marcar este contenido como no seguro?" + +msgid "Confirm approval" +msgstr "Confirmar aprobación" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "¿Realmente quieres eliminar todo el contenido seleccionado? Esto no se podrá deshacer." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Confirmar eliminación" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "¿Realmente quieres eliminar este contenido? Esto no se podrá deshacer." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Do you really want to approve all the selected content? This can't be undone." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "¿Realmente quieres eliminar todo el contenido seleccionado? Esto no se podrá deshacer." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Invitado" + +msgid "Keyboard shortcuts" +msgstr "Atajos de teclado" + +msgid "Private album" +msgstr "Album privado" + +msgid "Password protected" +msgstr "Protegido con contraseña" + +msgid "Uploaded by guest" +msgstr "Subido por invitado" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "De %s" + +msgid "Uploaded by private" +msgstr "Subido por privado" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "por %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Cambiar marca de contenido" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Esa página no existe" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "La página solicitada no ha sido encontrada." + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "El usuario ha sido eliminado" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Tu cuenta está casi lista" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Un email ha sido enviado a %s con instrucciones para activar tu cuenta. El enlace de activación sólo es válido por 48 horas. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Re-enviar activación" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Has cambiado exitosamente el email de tu cuenta a %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Ir a mi perfil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Un enlace de confirmación será enviado a este email con detalles para activar tu cuenta." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Tu dirección de email" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Enviar" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Un email con instrucciones para restablecer tu contraseña ha sido enviado a la dirección de email con la que te registraste. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Un email ha sido enviado previamente con instrucciones para restablecer tu contraseña. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Re-enviar instrucciones" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Introduce tu nombre de usuario o e-mail para continuar. Es posible que tengas que revisar tu carpeta de correo no deseado o agregar %s a tu lista blanca." + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Nombre de usuario o dirección de email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Tu contraseña ha sido actualizada. Puedes intentar ingresar ahora usando tu nueva contraseña." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Ingresar ahora" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Introduce tu nueva contraseña" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d caracteres min" + +msgid "Password strength" +msgstr "Seguridad de la contraseña" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Re-ingresa tu nueva contraseña" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Un email ha sido enviado a %s con instrucciones para activar tu cuenta. Si no recibes las instrucciones revisa en tu carpeta de correo no deseado." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Este contenido es privado" + +msgid "Sub album" +msgstr "Sub-álbum" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "¿Realmente quieres eliminar este álbum y todas sus imágenes? Esto no se podrá deshacer." + +msgid "Upload to album" +msgstr "Subir al ábum" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Te gusta esto" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Por favor lee y cumple con las siguientes condiciones antes de continuar:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Este sitio web contiene información, enlaces e imagines con contenido sexual explicito. Si tienes menos de %s años, si este material te ofende o si ver este material es ilegal en tu comunidad por favor no continues.\n\nTengo al menos %s años y creo que como un adulto, es mi derecho inalienable el recibir/ver material sexualmente explicito. Deseo recibir/ver material sexualmente explicito.\n\nCreo que los actos sexual entre adultos con consentimiento no es ofensivo u obsceno. El ver, leer y descargar material sexualmente explicito no viola los estándares de mi comunidad, pueblo, ciudad, estado o país.\n\nEl material sexualmente explicito que voy a ver es para mi uso personal y no expondré a menores a este material.\n\nSoy el único responsable de cualquier consecuencia o ramificaciones legales de ver, leer o descargar cualquier material en este sitio. Además, este sitio web ni sus afiliados serán responsables por cualquier ramificación legal que surja de la entrada fraudulenta o uso de este sitio web.\n\nEsta pantalla de consentimiento constituye un acuerdo legal entre este sitio web y tu persona y/o cualquier negocio en el cual tengas algún interés legal o equitativo. Si alguna parte de este acuerdo se considera no exigible por un tribunal de jurisdicción competente, no afectará a la aplicabilidad de las demás partes del acuerdo." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Al hacer click en \"Estoy de acuerdo\" declaras que has leído y entendido todas las condiciones mencionadas anteriormente." + +msgid "I Agree" +msgstr "Estoy de acuerdo" + +msgid "documentation" +msgstr "documentación" + +#, php-format +msgid "Learn about %s settings at our %d." +msgstr "Aprende más sobre %s en nuestra %d." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "La IP conectada es determinada usando la variable de servidor %var%. Si la IP detectada no coincide con la tuya, significa que tu servidor web está bajo un proxy y necesitas ajustarlo para establecer la IP de conexión real." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Para Nginx, debes usar %nginx%. Para Apache, %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Asegúrate de abordar este problema ya que el sistema depende de la detección precisa de la IP para proporcionar funcionalidades básicas y para proteger contra spam, flooding y ataques de fuerza bruta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Disco usado" + +msgid "Queued" +msgstr "En cola" + +msgid "Working" +msgstr "Trabajando" + +msgid "Paused" +msgstr "Pausado" + +msgid "Canceled" +msgstr "Cancelado" + +msgid "Completed" +msgstr "Completado" + +#, php-format +msgid "Top level folders as %s" +msgstr "Carpetas de nivel superior como %s" + +msgid "Actions" +msgstr "Acciones" + +msgid "Process" +msgstr "Procesar" + +msgid "Pause" +msgstr "Pausa" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Process log" +msgstr "Registro de proceso" + +msgid "Errors" +msgstr "Errores" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "¿Realmente quieres eliminar el trabajo de importación ID %s?" + +msgid "Reset" +msgstr "Restablecer" + +msgid "Resume" +msgstr "Reanudar" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Estado" + +msgid "Run the following command to import content to Chevereto:" +msgstr "Corre el siguiente comando para importar contenido a Chevereto:" + +#, php-format +msgid "Read the %s for more information about this feature." +msgstr "Lee la %s para más información sobre esta funcionalidad." + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Agregar usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rol" + +msgid "Manager" +msgstr "Gerente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrador" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Email" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Esta configuración siempre está inhabilitada cuando se usa el modo de sitio web personal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Agregar categoría" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Agregar baneo de IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Agregar almacenamiento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Volver a páginas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nombre del sitio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Doctitle del sitio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Descripción del sitio" + +msgid "Automatic" +msgstr "Automático" + +msgid "Forced" +msgstr "Forzado" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a usará detección HTTPS de lado de servidor (recomendado). %f usará HTTPS independiente de tu configuración de servidor. %d para no usar HTTPS en lo absoluto." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Esto solamente controla el protocolo usado en las URLs, no convertirá tu sitio web en un sitio web HTTPS válido a menos que tu servidor esté configurado para usar y soportar HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Zona horaria predeterminada" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Seleccionar región" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Permite buscar imágenes, álbumes y usuarios basado en una determinada consulta de búsqueda." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Permite navegar las imágenes subidas de manera publica. También permite categorías." + +msgid "guests" +msgstr "invitados" + +msgid "Enables explore for guests." +msgstr "Habilita explorador para invitados." + +msgid "Enables to browse images randomly." +msgstr "Permite navegar imágenes de manera aleatoria." + +msgid "Likes" +msgstr "Me gusta" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Permite a los usuarios gustar contenido y generar listados con lo \"Más gustado\"." + +msgid "Followers allows users to follow each other." +msgstr "Seguidores permite a los usuarios que se sigan mutuamente." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Modo del sitio" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Comunidad" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Personal" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Puedes alternar el modo del sitio en cualquier momento." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Usuario objetivo para modo personal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Tu id de usuario es: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "ID numérica del usuario objetivo para modo personal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Enrutamiento modo personal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Ruta personalizada para mapear /nombredeusuario a /algo. Usa \"/\" para mapear a la página principal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Modo de privacidad del sitio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "El modo privado hace que el sitio este disponible sólo para usuarios registrados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Modo de privacidad del contenido" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Predeterminado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Forzar privado (propio)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Forzar privado (cualquiera con el enlace)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Los modos forzados sobrescribirán la selección de privacidad del usuario." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Título de la página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Estado de la página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Página activa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Página inactiva (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Solamente las páginas activas serán accesibles." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Tipo" + +msgid "Terms of service" +msgstr "Términos de servicio" + +msgid "Privacy" +msgstr "Privacidad" + +msgid "Contact" +msgstr "Contacto" + +msgid "Extra page" +msgstr "Página adicional" + +msgid "Internal page type" +msgstr "Tipo de página interna" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Puedes tener múltiples páginas adicionales, pero solamente una de los otros tipos internos especiales." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Visibilidad de página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Página visible" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Página oculta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Las páginas ocultas no se mostraran en menús del sistema, pero cualquiera podrá acceder a ella con el enlace." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Solo alfanuméricos, guiones y barra inclinada" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Ruta de archivo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Un archivo %f relativo a %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta palabras clave" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta descripción" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Código fuente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "No hay permiso de escritura en la ruta %s necesitarás agregar este archivo usando un editor externo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "No hay permiso de escritura en %s necesitarás editar el contenido de este archivo usando un editor externo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Tomado desde: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "URL enlace" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Atributo target del enlace" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Selecciona %s para abrir la pagina o enlace en una nueva ventana." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Atributo rel del enlace" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Solo alfanuméricos, guiones y espacios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "Atributo HTML &lt;a&gt; %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Icono del enlace" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Revisa la <a %s>referencia de iconos</a> para la lista completa de iconos compatibles." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Orden de visualización" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Orden de visualización de la página para menús y listados. Usa \"1\" para mayor prioridad." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "¿Realmente quieres eliminar la página ID %s? Esto no de podrá deshacer." + +msgid "Enabled image formats" +msgstr "Formatos de imagen habilitados" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "No se permitirá subir los formatos no marcados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Habilitar subidas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Habilita esto si quieres permitir subidas de imágenes. Esta configuración no afecta a los administradores." + +msgid "Upload user interface" +msgstr "Interfaz de subida" + +msgid "On-page container" +msgstr "Contenedor en página" + +msgid "route" +msgstr "ruta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Subidas de invitados" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Habilita esto si quieres permitir permitir que usuarios no registrados suban imágenes" + +msgid "Moderate uploads" +msgstr "Moderar subidas" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Habilita esto para moderar las subidas entrantes. El contenido objetivo requerirá moderación para ser aprobado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Habilitar códigos de inserción (subidas)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Habilita esto si quieres mostrar códigos de inserción al completar la subida." + +msgid "Upload threads" +msgstr "Hilos de subida" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Numero de hilos de subida simultáneos (subidas paralelas)" + +msgid "Redirect on single upload" +msgstr "Redireccionar en subida única" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Habilita esto si quieres redireccionar a la página de imagen en subida única." + +msgid "Enable duplicate uploads" +msgstr "Habilitar subidas duplicadas" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Habilita esto si quieres permitir subidas duplicadas desde la misma IP en un periodo de 24hrs. Esta configuración no afecta a los administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Habilitar subidas expirables" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Habilita esto si quieres permitir la opción de eliminar imágenes automáticamente." + +msgid "Auto delete guest uploads" +msgstr "Auto eliminar subidas de invitados" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Habilita esto si quieres forzar la eliminación automática de las subidas de invitados después de cierto tiempo." + +msgid "Maximum image size" +msgstr "Tamaño máximo de imagen" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Imágenes mayores de este tamaño se reducirán de tamaño automáticamente. Usa cero (0) para no establecer un límite." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Datos Exif de imagen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Mantener" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Selecciona la configuración predeterminada para los <a %s>datos Exif</a> al subir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Datos Exif imagen (configuración de usuario)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Habilita esto si quieres permitir que cada usuario pueda configurar como se manejarán los datos Exif." + +msgid "Maximum upload file size" +msgstr "Tamaño máximo de archivo de subida" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Tamaño máximo permitido por el servidor es %s. Este límite es regido por %u y %p (valores %f)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Lo mismo que \"%s\" pero para invitados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Ruta de las imágenes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativa a la raíz de Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "¿Dónde almacenar las imágenes? Relativo a la raíz de Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Modo de almacenamiento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Carpetas por fecha" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Directo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datefolders crea una estructura %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Método de nombramiento de archivos" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Combinar original + aleatorio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Original\" intentará de mantener el nombre original mientras que \"Aleatorio\" generará un nombre al azar. \"ID\"nombrará la imagen tal cual la ID de la imagen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Tamaño de miniatura" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Las miniaturas se ajustaran a este tamaño." + +msgid "Medium image fixed dimension" +msgstr "Dimension fija de la imagen media" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Las imágenes medias se fijaran a esta dimension. Por ejemplo, si seleccionas \"ancho\" esta dimension será fija y el alto de la imagen se calculara automáticamente." + +msgid "Medium image fixed size" +msgstr "Tamaño fijo de la imagen media" + +msgid "Width or height will be automatically calculated." +msgstr "El alto o ancho será calculado automáticamente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Marcas de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Habilita esto para poner un un logo o lo que quieras en las subidas de imágenes." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Alternaciones marca de agua por usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Habilitar marca de agua en subidas de invitados" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Habilitar marca de agua en subidas de usuarios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Habilitar marca de agua en subidas de administradores" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Alternaciones marca de agua por archivo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Habilitar marca de agua en subidas de imágenes GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Tamaño mínimo necesario para aplicar marca de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Imágenes inferiores a esto no tendrán marca de agua. Usa cero (0) para no establecer un límite mínimo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Imagen de marca de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Obtendrás mejores resultados con logos planos con sombra. Puedes usar una imagen grande si el tamaño de la misma no es tan grande (se recomienda máx. 16KB). Debe ser PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Posición de la marca de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "izquierda arriba" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "izquierda centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "izquierda abajo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "centro arriba" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "centro centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "centro abajo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "derecha arriba" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "derecha centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "derecha abajo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Posición relativa de la marca de agua. Primero alineación horizontal y luego vertical." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Porcentaje de marca de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Tamaño porcentual de la marca de agua relativo al área de la imagen objetivo. Valores 1 a 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Margen de la marca de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margen desde el borde de la imagen hasta la marca de agua." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Opacidad de la marca de agua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Opacidad de la marca de agua en la imagen resultante. Valores 0 a 100." + +msgid "Dashboard > Settings > Website" +msgstr "Administrar > Configuraciones > Sitio web" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Las categorías no funcionaran cuando la funcionalidad de explorar está inhabilitada. Para revertir esta configuración ve a %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "¿Realmente quieres eliminar la categoría %s?. Esto no se podrá deshacer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Nota: Eliminar una categoría no elimina las imágenes pertenecientes a esa categoría." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Editar categoría" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Expira" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "¿Realmente quieres eliminar el baneo a la IP %s? Esto no se podrá deshacer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "A las direcciones de IP baneadas se les prohibirá el uso de todo el sitio web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Editar baneo de IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Habilitar registros" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Habilita esto si quieres permitir el registro de cuentas de usuario." + +msgid "Enable user content delete" +msgstr "Habilitar eliminación de contenido de usuario" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Habilita esto si quieres permitir que los usuarios eliminen su contenido propio. Esta configuración no afecta a los administradores." + +msgid "Minimum age required" +msgstr "Edad mínima requerida" + +msgid "Empty" +msgstr "Vacío" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Dejar vacío para no requerir una edad mínima para usar el sitio web." + +msgid "Notify on user signup" +msgstr "Notificar en registro de usuario" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Habilita esto si quieres recibir una notificación vía email cada vez que se registre un usuario." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Enrutamiento de nombre de usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Habilita esto si quieres usar URLs %s/username en lugar de %s/user/username" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Requerir confirmación email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Habilita esto si los usuarios deben validar su dirección de email en registro." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Requerir email para registro social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Habilita esto si los usuarios que usan redes sociales para registrarse deben indicar una dirección de email." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Tamaño máx. de avatar de usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Tamaño máx. de avatar de usuario permitido (El máx. permitido por el sistema es %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Tamaño máx. de fondo de usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Tamaño máx. de fondo de usuario permitido (El máx. permitido por el sistema es %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Muestra una pantalla de consentimiento antes de acceder al sitio. Util para sitios web con contenido de adultos donde los menores no deberían ser permitidos." + +msgid "Enable consent screen" +msgstr "Habilitar pantalla de consentimiento" + +msgid "Consent screen cover image" +msgstr "Imagen de portada de pantalla de consentimiento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Bloquear la subida de imágenes por IP si el sistema detecta un comportamiento abusivo basado en el número de subidas por periodo de tiempo. Esta configuración no afecta a los administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Notificar por email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Si esta habilitado el sistema enviará un email en incidentes de flood." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Límite por minuto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Límite horario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Límite diario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Límite semanal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Límite mensual" + +#, php-format +msgid "Lock %s editing" +msgstr "Bloquear edición de %s" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "Habilita esto para prevenir que los usuarios cambien la marca no segura para trabajo (NSFW). Cuando está habilitado, solo administrador y gerentes tendrán este permiso." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Mostrar contenido no seguro en los listados" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Habilita esto si quieres mostrar contenido no seguro en los listados. Este ajuste no afecta a los administradores y puede ser sobrescrita por los ajustes del usuario." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Desenfocar contenido de NSFW en los listados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Habilite esta opción si desea aplicar un efecto borroso en las imágenes NSFW en los listados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Mostrar avisos en contenido no seguro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Habilita esto si quieres mostrar avisos en páginas de contenido no seguro." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Mostrar contenido no seguro en modo aleatorio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Elementos por página de listado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Cuantos elementos se deberian mostrar por página de listado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Modo de paginación" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Desplazamiento infinito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Paginación clasica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Que modo de paginación se debería usar." + +msgid "Listing viewer" +msgstr "Visualizador de listados" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Habilita esto para usar el visualizador de imágenes cuando se haga click en una imagen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Tamaño de imagen de listado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fluido" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fijo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Ambos métodos usan ancho fijo pero el método fluido usa alturas automáticas." + +msgid "Album listing images requirement" +msgstr "Requerimiento de imágenes para listados de álbumes" + +msgid "explore" +msgstr "explorar" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Establece la cantidad mínima de imágenes necesarias para mostrar álbumes en el explorador." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Número de columnas en listado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Aquí puedes establecer cuantas columnas se usaran según en cada dispositivo objetivo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefóno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Escritorio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Pon tus temas en la carpeta %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Tono" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Claro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Oscuro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Color principal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Color en valor hexadecimal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Usa esto para establecer el color principal del tema. El valor debe estar en <a href=\"%s\" target=\"_blank\">formato hex</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Color de botón de barra superior" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Azul" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Verde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Anaranjado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Rojo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Gris" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Negro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Blanco" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Color de los botones de la barra superior como el botón \"Crear cuenta\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Habilitar logo vectorial" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Habilita logo vectorial para usar un logo de alta calidad en dispositivos con alta densidad de pixel." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Logo vectorizado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Versión vector de tu logo en formato SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Logo ráster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Versión mapa de bits de tu logo. Se recomienda formato PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Altura del logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Sin valor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Usa esto si necesitas establecer la altura del logo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Imagen favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Imagen favicon. La imagen debe tener el mismo alto y ancho." + +msgid "Image load max. filesize" +msgstr "Tamaño máx. de carga" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Imágenes de tamaño superior a este mostrarán un botón para cargar la imagen a resolución completa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Habilitar botón de descarga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Habilita esto si quieres mostrar el botón de descarga de imagen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Habilitar click derecho en imagen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Habilita esto si quieres permitir click derecho en la página de visualización de la imagen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Habilitar mostrar datos Exif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Habilita esto si quieres mostrar datos Exif de la imagen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Habilitar compartir social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Habilita esto si quieres mostrar los botones de redes sociales para compartir contenido." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Habilitar códigos de inserción (contenido)" + +msgid "Everybody" +msgstr "Todos" + +msgid "Users only" +msgstr "Solo usuarios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Habilita esto si quieres mostrar códigos de inserción para el contenido." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Caja de selección de contenido no seguro en uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Habilita esto si quieres mostrar una caja de selección para indicar subida de contenido no seguro." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Código CSS personalizado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Pon tu código CSS personalizado aquí. Será ubicado como <style> justo antes del cierre de la etiqueta </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Código JS personalizado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Pon tu código JS personalizado aquí. Será ubicado como <script> justo antes del cierre de la etiqueta </head>." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "No uses marcado %s aquí. Esto es para código JS, no para etiquetas de script HTML. Si usas etiquetas de script romperás tu sitio web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Estilo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Página de caída" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Pág. caída + imágenes" + +#, php-format +msgid "Route %s" +msgstr "Ruta %s" + +msgid "upload" +msgstr "subir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Selecciona el estilo de la página principal. Para personalizar más edita app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Imagen de portada" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "¿Realmente quieres eliminar esta imagen? Esto no se podrá deshacer." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Eliminar imagen" + +msgid "Add new cover image" +msgstr "Agregar nueva imagen de portada" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Esto se agregara en el interior de la etiqueta %s de la página principal. Dejar en blanco para usar el contenido preestablecido." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Párrafo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Color de botón de llamada de acción" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Color del botón de llamada de acción de la página principal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Estilo contorneado del botón de llama de acción" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Habilita esto para usar estilo contorneado para el botón de llamada de acción de la página principal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Funcionalidad de llamada de acción" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Gatillar uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Abrir URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL de llamada de acción" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Introducir una URL absoluta o relativa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Una URL relativa como %r sera mapeada a %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML de llamada de acción" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Esto se agregara en el interior de la etiqueta <a> de la llama de acción. Dejar en blanco para usar el el contenido preestablecido." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "IDs de usuario" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Lista separada por comas de las IDs de usuario a mostrar en la página principal. Dejar en blanco o en cero para mostrar todas las imágenes recientes." + +msgid "Automatic updates check" +msgstr "Comprobar actualizaciones automáticamente" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Cuando esta habilitado el sistema comprobara automáticamente por nuevas actualizaciones." + +msgid "Display available updates notification" +msgstr "Mostrar notificación de nuevas actualizaciones disponibles" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Habilita esto para mostrar una notificación en la parte superior advirtiéndote de nuevas actualizaciones de sistema disponibles." + +msgid "Dump update query" +msgstr "Volcar consulta de actualización" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Habilita esto si quieres detectar y establecer automáticamente el idioma correcto para cada usuario." + +#, php-format +msgid "SEO %s URLs" +msgstr "URLs SEO %s" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Habilita esto si quieres usar URLs SEO para %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Mantención" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Cuando esta habilitado la página web mostrará un mensaje de mantenimiento. Esta configuración no afecta a los administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Salto criptográfico" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Este es el salto usado para convertir ID númerica en alfanuméricos. Fue generado durante la instalación." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Reporte de errores PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Habilita esto si quieres mostrar errores generados por la función PHP <a %s>error_reporting()</a>. Esto debería ser deshabilitado en producción." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Nivel de depuración" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Ninguno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Registro de error" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Mostrar errores sin registrarlos" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Mostrar y registrar errores" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Para configurar el nivel de depuración comprueba la <a %s>documentación de depuración</a>. El nivel predeterminado es \"Registro de error\" (1)." + +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." +msgstr "El enrutamiento te permite personalizar las rutas de manera inmediata. Solamente se permiten caracteres alfanuméricos, guiones y guiones bajos." + +msgid "Image routing" +msgstr "Enrutamiento de imagen" + +#, php-format +msgid "Routing for %s" +msgstr "Enrutamiento para %s" + +msgid "Album routing" +msgstr "Enrutamiento de album" + +msgid "Hostname" +msgstr "Nombre del host" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Nombre de host en el que se agregarán los comodines de sub-dominio." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Esta configuración puede ser anulada por %s." + +msgid "Language subdomains" +msgstr "Subdominios de idioma" + +msgid "languages" +msgstr "idiomas" + +msgid "Enable to use %s for %t." +msgstr "Habilitar para usar %s para %t." + +msgid "Username subdomains" +msgstr "Subdominios de nombre de usuario" + +msgid "user profiles" +msgstr "perfiles de usuario" + +msgid "Custom language strings" +msgstr "Cadenas de idioma personalizadas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Idioma predeterminado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Idioma Predeterminado base a usar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Idioma automático" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Habilita esto si quieres detectar y establecer automáticamente el idioma correcto para cada usuario." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Selector de idioma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Habilita esto si quieres permitir selección de idioma." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Idiomas habilitados" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Los idiomas no seleccionados no seran usados en tu sitio web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Alterna para habilitar o deshabilitar HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Alterna para habilitar o deshabilitar este almacenamiento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Cuota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Activo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Método de almacenamiento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Por defecto se usa almacenamiento local o cuando no hay ningún almacenamiento externo activado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Si necesitas ayuda revisa la <a %s>documentación de almacenamiento</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Editar almacenamiento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Nombre emisor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nombre del emisor de los emails enviados a los usuarios." + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Email de origen" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Email del emisor de los correos enviados a los usuarios." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Dirección de e-mail entrante" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Recipiente para el formulario de contacto y alertas del sistema." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Modo de email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "¿Cómo enviar emails? Se recomienda SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "Servidor SMTP y puerto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "Servidor SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Usuario SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Contraseña SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Seguridad SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Inseguro" + +msgid "Decode ID" +msgstr "Descodificar ID" + +msgid "Encode ID" +msgstr "Codificar ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Enviar email de prueba" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Usa esto para corroborar la entrega de email. Recomendamos usar %s." + +msgid "Export a user" +msgstr "Exportar un usuario" + +msgid "Export user" +msgstr "Exportar usuario" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Esto te permitirá descargar la información estandarizada personal de un usuario en formato JSON." + +msgid "Regenerate external storage stats" +msgstr "Regenerar las estadísticas de almacenamiento externo" + +msgid "Storage id" +msgstr "Id almacenamiento" + +msgid "Regenerate" +msgstr "Regenerar" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Esto volverá a calcular la suma de todos los registros de imágenes asociados al almacenamiento externo de destino." + +msgid "Migrate image records from one external storage to another" +msgstr "Migrar los registros de imágenes de un almacenamiento externo a otro" + +msgid "Source storage id" +msgstr "Id almacenamiento (origen)" + +msgid "Target storage id" +msgstr "Id almacenamiento (destino)" + +msgid "Migrate" +msgstr "Migrar" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Esto solamente actualiza la base de datos. Debes mover los archivos al contenedor de almacenamiento por tu cuenta. Reescritura de URL es recomendada. Usa cero (0) para almacenamiento local." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Necesitaras una <a href=\"https://developers.facebook.com/\" target=\"_blank\">App de Facebook</a> para esto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "App id de Facebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "App secret de Facebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Necesitaras una <a href=\"https://apps.twitter.com\" target=\"_blank\">App de Twitter</a> para esto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "API key de Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "API secret de Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Cuenta de Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Necesitaras una <a href=\"https://cloud.google.com/console\" target=\"_blank\">App de Google </a> para esto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Client id de Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Client secret de Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Necesitas una <a href=\"http://vk.com/dev\" target=\"_blank\">aplicación de VK</a> para esto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "Client id de VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Client id de VK" + +#, php-format +msgid "%s spam protection" +msgstr "Protección de spam %s" + +msgid "user generated content" +msgstr "contenido generado por el usuario" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Habilita esto para usar %l para bloquear spam en %c." + +#, php-format +msgid "%s API key" +msgstr "Llave API de %s" + +msgid "user signup" +msgstr "registro de usuario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Necesitas una cuenta de <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> para esto." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Por favor, tenga en cuenta que cada versión de reCAPTCHA requiere su propio juego de llaves. No olvides actualizar las llaves si cambias de versión." + +#, php-format +msgid "%s site key" +msgstr "Llave de sitio %s" + +#, php-format +msgid "%s secret key" +msgstr "Llave secreta %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "Umbral reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "¿Cuántos intentos fallidos son necesarios para solicitar reCAPTCHA? Usa cero (0) para siempre mostrar el reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Forzar %s en página de contacto" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Habilita esto para siempre mostrar %s en la página de contacto" + +msgid "Comments API" +msgstr "API de comentarios" + +#, php-format +msgid "Disqus API works with %s." +msgstr "La API de Disqus funciona con %s." + +msgid "Disqus shortname" +msgstr "Nombre corto en Disqus" + +#, php-format +msgid "%s public key" +msgstr "Llave pública de %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Código de comentarios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook o lo que quieras. Será usado en la vista de imagen." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "Moderar automáticamente el contenido usando el servicio de %s." + +msgid "Automatic approve" +msgstr "Aprobación automática" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Habilita esto para aprobar automáticamente el contenido moderado por este servicio." + +msgid "Block content" +msgstr "Bloquear contenido" + +msgid "Adult" +msgstr "Adulto" + +msgid "Teen and adult" +msgstr "Adolescente y adulto" + +msgid "Flag NSFW" +msgstr "Marcar NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Código de analíticas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics o lo que quieras. Será agreado al footer del tema." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Llave API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Usa esta llave cuando uses la <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Ruta de complemento" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Habilita esto para mostrar las instrucciones del complemento en %u. Un enlace a estas instrucciones será añadido al menú %s. Esta configuración no afecta a los administradores." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Usa esto para establecer una URL personalizada para %p. Ten en cuenta que necesitarás replicar manualmente %s en esta URL." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Cumplimiento de la Ley de Cookies" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Habilitar esta opción para mostrar un mensaje de cumplimiento de la Ley de Cookies . Nota: Esto sólo es necesario si su web está alojada en la EU y si se agrega cookies de seguimiento." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Guardar cambios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Comprueba los errores para proceder." + +msgid "Play GIF" +msgstr "Reproducir GIF" + +msgid "Load 360° view" +msgstr "Cargar vista 360°" + +msgid "Load full resolution" +msgstr "Cargar tamaño completo" + +#, php-format +msgid "%s image" +msgstr "%s imagen" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "¿Realmente quieres aprobar todo el contenido seleccionado? Esto no se podrá deshacer." + +msgid "This is the album cover" +msgstr "Esta es la caratula del álbum" + +msgid "Cover" +msgstr "Caratula" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Agregada a %a y categorizada en %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Agregada a %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Subida a %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Subida %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Menos datos Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Más datos Exif" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID álbum" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Sube y comparte tus imágenes." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Arrastra y suelta donde quieras para comenzar a subir ahora tus imágenes. %s de límite. Enlace directo de imagen, miniaturas en BBCode y HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Comienza a subir" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registrate para desbloquear todas las funcionalidades" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Administra tu contenido, crea álbumes privados, personaliza tu perfil y más." + +msgid "Sign in with your account" +msgstr "Entrar con tu cuenta" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "¿No tienes cuenta? <a href='%s'>Crear cuenta</a> ahora." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Desconectado" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Te has desconectado de %s. Esperamos verte pronto." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Ir a la página principal" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Página web en mantenimiento" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Estamos realizando tareas de mantenimiento programado en la página web. Por favor, vuelve en unos minutos." + +msgid "This content is password protected." +msgstr "Este contenido está protegido con contraseña." + +msgid "Please enter your password to continue." +msgstr "Por favor introduce tu contraseña para continuar." + +msgid "Send" +msgstr "Enviar" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Agrega subida de imágenes a tu sitio web, blog o foro instalando nuestro complemento de subida. Proporciona subida de imágenes a cualquier sitio web mediante la colocación de un botón que permitirá a tus usuarios cargar directamente imágenes a nuestro servicio y se encargará automáticamente de los códigos necesarios para la inserción. Todas las características incluidas como arrastrar y soltar, subida remota, redimensionamiento de imágenes y mucho más." + +msgid "Supported software" +msgstr "Software soportado" + +msgid "supported software" +msgstr "software soportado" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "El complemento funciona en cualquier sitio web con contenido editable por el usuario y para el %sv, colocará un botón de subida que coincidirá con la barra de herramientas del editor de destino, por lo que no se necesita personalización adicional." + +msgid "Add it to your website" +msgstr "Añadir a su sitio web" + +msgid "options" +msgstr "opciones" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Copia y pega el código del complemento en código HTML de tu sitio web (preferiblemente dentro de la cabecera). Hay un montón de %o para que se adapte mejor a tus necesidades." + +msgid "Basic options" +msgstr "Opciones básicas" + +msgid "Color palette" +msgstr "Paleta de color" + +msgid "Button color scheme" +msgstr "Esquema de colores del botón" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Códigos de inserción que se insertarán automáticamente en el cuadro del editor" + +msgid "Sibling selector" +msgstr "Selector hermano" + +msgid "Sibling element selector where to place the button next to" +msgstr "Selector de elemento hermano donde poner el botón" + +msgid "Sibling position" +msgstr "Posición hermano" + +msgid "After" +msgstr "Después" + +msgid "Before" +msgstr "Antes" + +msgid "Position relative to sibling element" +msgstr "Posición relativa al elemento hermano" + +msgid "Advanced options" +msgstr "Opciones avanzadas" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "El complemento tiene un gran conjunto de opciones adicionales que permiten personalización completa. Puedes utilizar HTML personalizado, CSS, paleta de colores propia, establecer observadores y mucho más. Comprueba la %d y la fuente del complemento para obtener una mejor idea de estas opciones avanzadas." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "No tienes permiso para acceder a esta página o el enlace a expirado." + +msgid "Search results" +msgstr "Resultados de búsqueda" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "¿Realmente quieres eliminar este usuario? Esto no se podrá deshacer." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Eliminar usuario" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Fecha de registro" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP de registro" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Válido" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Deshabilitado" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Esperando email" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Esperando confirmación" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "De %i a %f catacteres<br>Letras, números y \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Auto eliminar subidas" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Este ajuste se aplicara en todas tus subidas de manera predeterminada. Podrás alterar este ajuste para cada subida." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Mantener <a %s>datos Exif</a> de imagen al subir" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Boletín" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Enviarme correos electrónicos con noticias sobre %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Ajustes de contenido" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Mostrar contenido no seguro en listados (de otros)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Idioma" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Zona horaria" + +msgid "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." +msgstr "Este servicio es alimentado por %website_name%, somos un proveedor independiente. Muchas gracias por tu apoyo constante." + +msgid "At %website_name% we are proudly using and supporting %software%." +msgstr "En %website_name% usamos orgullosamente y soportamos a %software%." + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Contraseña actual" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Introduce tu contraseña actual" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nueva contraseña" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Confirmar nueva contraseña" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Agrega una contraseña para poder entrar usando tu nombre de usuario o email." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Este usuario no tiene contraseña. Agrega una usando este formulario." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Introduce tu contraseña" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Confirmar contraseña" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Re-ingresa tu contraseña" + +msgid "Upload avatar" +msgstr "Subir avatar" + +msgid "Make my profile and identity totally private" +msgstr "Hacer completamente privado mi perfil e identidad" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Habilita esto si quieres actuar como un usuario anónimo" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Este es tu nombre real, no tu nombre de usuario." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://misitioweb.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Biografía" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Cuéntanos un poco sobre ti" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "El usuario no tiene conexiones." + +msgid "Link your account to external services to be able to login here." +msgstr "Enlaza tu cuenta con servicios externos para poder entrar y compartir contenido." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "¿Realmente deseas desconectar %s de esta cuenta?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Esta cuenta está conectada a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "¿Realmente deseas desconectar %s de tu cuenta?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Vas a ser desconectado y no podrás entrar a tu cuenta usando %s." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Tu cuenta está conectada a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "desconectar" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Conectar %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Siéntete libre de navegar y descubrir todas mis imágenes y álbumes compartidos." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Botón" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Ver todas mis imágenes" + +msgid "Login" +msgstr "Ingresar" + +#, php-format +msgid "Already have an account? %s now." +msgstr "¿Ya tienes cuenta? %s ahora." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "reenviar activación de cuenta" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Si ya te has registrado, tal vez necesites solicitar %s para activar tu cuenta." + +#, php-format +msgid "You can also %s." +msgstr "También puedes %s" + +#, php-format +msgid "I'm at least %s years old" +msgstr "Tengo al menos %s años" + +msgid "terms" +msgstr "términos" + +msgid "privacy policy" +msgstr "política de privacidad" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Estoy de acuerdo con los %terms_link y %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Subir fondo de perfil" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Cambiar fondo" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Subir nueva imagen" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "La imagen de fondo de perfil se eliminada. Esto no se podrá deshacer. ¿Estas seguro que quieres eliminar el fondo de perfil?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Eliminar fondo" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Seguidor" +msgstr[1] "Seguidores" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Seguir" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Se te ha prohibido el acceso a este sitio web." + +msgid "Plugin" +msgstr "Complemento" + +#, php-format +msgid "Page %s" +msgstr "Página %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Preguntas generales/comentarios" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Queja DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Mensaje inválido" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Asunto inválido" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Error en mail" + +msgid "Message sent" +msgstr "Mensaje enviado" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Mensaje enviado. Nos pondremos en contacto pronto." + +msgid "If you want to send a message fill the form below." +msgstr "Rellena este formulario si quieres enviarnos un mensaje." + +msgid "Your name" +msgstr "Tu nombre" + +msgid "Subject" +msgstr "Asunto" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Todos los cambios que has realizado se perderan si continuas." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Cambios guardados exitosamente" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Volver al formulario" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "continuar de todos modos" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Guardando" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Enviando" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Confirmar acción" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "información" + diff --git a/app/languages/et-EE.po b/app/languages/et-EE.po new file mode 100644 index 0000000..d156b41 --- /dev/null +++ b/app/languages/et-EE.po @@ -0,0 +1,936 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-03-31 21:05+0000\n" +"PO-Revision-Date: 2020-03-31 21:05+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: et_EE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Vigane email" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Vigane kasutaja" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Vigane parool" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Vigane veebilehe laad" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Saatja email" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Saatja email millega saadetakse kasutajatele." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Sissetulev emaili aadres" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Veebilehe laad" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Saad vahetada veebilehe laadi igal ajal." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Kommuun" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Peronaalne" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Käimas on uuendamine" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Puudu %s fail" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Vigane litsentsi info" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Vigane litsentsi kood" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Faili ei saa salvestada" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Ei saa alla laadida %s" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Ilmnes viga. Palun proovi hiljem uuesti." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Parool ei ühti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "katkesta" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Muuda" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albumid" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Sulge" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "pilt" +msgstr[1] "pildid" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s Albumid" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Tiitlita" + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Märkus: Sisu on märgitud parooliga kaitstuks. Pea meeles jagada parooli." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Märkus: Sisu on märgitud privaatseks. Määra privaatsus seadetest \"avalik\" teistega jagamiseks." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privaatne" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Avalik" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Parool" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "vaatamine" +msgstr[1] "vaatamist" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minut" +msgstr[1] "minutit" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "tund" +msgstr[1] "tundi" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "päev" +msgstr[1] "päeva" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "nädal" +msgstr[1] "nädalat" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "kuu" +msgstr[1] "kuud" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "aasta" +msgstr[1] "aastat" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Ära kustuta automaatselt" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privaatne üleslaadimine" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "meeldimine" +msgstr[1] "meeldimist" + +msgid "Recent" +msgstr "Viimati lisatud" + +msgid "Trending" +msgstr "Kuum" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top kasutajad" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Viimased" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Vanimad" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Enim vaadatud" + +msgid "Popular" +msgstr "Populaarsed" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Sirvi pilte" + +msgid "Animated" +msgstr "Animeeritud" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Otsi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "pilt" +msgstr[1] "Pildid" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Kasutaja" +msgstr[1] "Kasutajad" + +msgid "Can't update storage details." +msgstr "Ei saanud uuendada salvestamise detaile." + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Piiramatu" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "kasutatud" + +msgid "Private profile" +msgstr "Privaatne profiil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekund" +msgstr[1] "sekundit" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s tagasi" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "hetk tagasi" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Seda lehte ei eksisteeri" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Unustasid parooli ?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Taasta parool" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Saada uuesti konto kinnitamise e-mail" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Lisa oma e-mail" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mail muudetud" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Vale Kasutajanimi/Parool" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Konto peab olema aktiveeritud" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Konto on juba aktiveeritud" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "E-maili saabumine võib võtta aega kuni 15 minutit. Proovi hiljem uuesti." + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "E-mail on juba kasutusel" + +msgid "Password required" +msgstr "Parool nõutud" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Jaga" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "HTML ja BBKoodi tag'id" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistika" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Pildid" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albumid" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Kasutajad" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Seaded" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto versioon" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "installeeri uuendus" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "kontrolli uuendusi" + +msgid "Support" +msgstr "Kasutajatugi" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Lubatud" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Keelatud" + +msgid "Max. upload file size" +msgstr "Max faili suurus" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Vale ajatsoon" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Logi sisse" + +msgid "Upload images" +msgstr "Lae pilt ülesse" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Konto" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profiil" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Vale parool" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Parool muudetud edukalt" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Loo konto" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Lae pilt..." + +msgid "Discovery" +msgstr "Avasta" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Täpsem otsing" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Suvaline pilt" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Minu konto" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Logi välja" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Lohista fail siia või lae ülesse clipboardist" + +msgid "browse from your computer" +msgstr "valida faili arvutist" + +msgid "add image URLs" +msgstr "lisada läbi lingi" + +msgid "You can also %i or %u." +msgstr "Sa saad %i või %u" + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Muuda pilti või pildi suurust vajutades pisipildile" + +msgid "your computer" +msgstr "arvutist" + +msgid "You can add more images from %i or %u." +msgstr "Saad lisada pilte juurde %i või %u" + +msgid "sign in" +msgstr "logi sisse" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "sulge" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Kustuta" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Muuda pilti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Pealkiri" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "valikuline" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Pildi mõõtmed" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Animeeritud (gif) failide pildi suurust ei saa muuta!" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Kustuta pilt automaatselt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Kirjeldus" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "...." + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albumi nimi" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privaatne(ainult minule)" + +msgid "Album password" +msgstr "Albumi parool" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nimi" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Vali kõik" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Eemalda valik" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Valitud" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Logi sisse kasutades..." + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Tühjus... Pole midagi näidata!" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Muuda pilti" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Soovitud lehekülge ei leitud!" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Kasutaja kustutatud" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Edasi" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Kasutajanimi või e-mail" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Sisesta uus parool" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Sisesta uuesti uus parool" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Kustuta album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Albumi link" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Salvesta" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Üles laetud %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Vaata exif andmeid" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Jaga pilti" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Lae pilt ülesse ja jaga seda" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Lohista oma pilt siia ja alusta üleslaadimist. Kuni %s" + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Lae pilt..." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Välja logitud" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Mine esilehele" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Ajatsoon" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Praegune parool" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Sisesta praegune parool" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Lae pilt" + +msgid "If you want to send a message fill the form below." +msgstr "Kirjuta meile." + diff --git a/app/languages/fa.po b/app/languages/fa.po new file mode 100644 index 0000000..b400538 --- /dev/null +++ b/app/languages/fa.po @@ -0,0 +1,2813 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2015-04-13 17:55+0000\n" +"PO-Revision-Date: 2015-04-13 17:55+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:826 +#: ../../../app/install/installer.php:835 +#: ../../../app/install/installer.php:838 +#: ../../../app/routes/route.account.php:402 +#: ../../../app/routes/route.json.php:551 +#: ../../../app/routes/route.settings.php:170 +#: ../../../app/routes/route.signup.php:95 +#: ../../../app/themes/Peafowl/pages/contact.php:31 +msgid "Invalid email" +msgstr "ایمیل اشتباه است" + +#: ../../../app/install/installer.php:829 +#: ../../../app/routes/route.json.php:546 +#: ../../../app/routes/route.settings.php:166 +#: ../../../app/routes/route.signup.php:98 +msgid "Invalid username" +msgstr "نام کاربری اشتباه است" + +#: ../../../app/install/installer.php:832 +#: ../../../app/routes/route.account.php:345 +#: ../../../app/routes/route.json.php:556 +#: ../../../app/routes/route.settings.php:300 +#: ../../../app/routes/route.signup.php:101 +msgid "Invalid password" +msgstr "رمز عبور اشتباه استد" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "From email address" +msgstr "ایمیل آدرس" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1466 +msgid "Sender email for emails sent to users." +msgstr "ایمیل آدرس برای ارسال ایمیل به کاربران" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1469 +msgid "Incoming email address" +msgstr "ایمیل آدرس ورودی" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Recipient for contact form and system alerts." +msgstr "ایمیل جهت دریافت فرم های تماس و پیغام های سیستمی" + +#: ../../../app/lib/classes/class.album.php:94 +msgid "Untitled" +msgstr "بدون عنوان" + +#: ../../../app/lib/classes/class.album.php:318 +#: ../../../app/lib/classes/class.user.php:105 +#, php-format +msgid "%s's images" +msgstr "%s عکس" + +#: ../../../app/lib/classes/class.image.php:695 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Private upload" +msgstr "بارگذاری خصوصی" + +#: ../../../app/lib/classes/class.image.php:954 +msgid "view" +msgid_plural "views" +msgstr[0] "نمایش" +msgstr[1] "نمایش" + +#: ../../../app/lib/classes/class.listing.php:238 +#: ../../../app/routes/route.album.php:169 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:87 +#: ../../../app/lib/chevereto.js:1866 ../../../app/lib/chevereto.min.js:88 +msgid "image" +msgid_plural "images" +msgstr[0] "عکس" +msgstr[1] "عکس" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "سال" +msgstr[1] "سال" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "ماه" +msgstr[1] "ماه" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "هفته" +msgstr[1] "هفته" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "روز" +msgstr[1] "روز" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "ساعت" +msgstr[1] "ساعت" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "دقیقه" +msgstr[1] "دقیقه" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "ثانیه" +msgstr[1] "ثانیه" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s قبل" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "لحظه ایی پیش" + +#: ../../../app/loader.php:326 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "صفحه وجود ندارد." + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "بازیابی رمز عبور" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "ارسال دوباره ایمیل فعال سازی" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "ایمیل خود را وارد کنید" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "ایمیل تغییر کرد." + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:128 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "تصویر امنیتی به درستی وارد نشده است." + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:260 +msgid "Invalid Username/Email" +msgstr "نام کاربری / رمز عبور اشتباه است" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "کاربر ایمیلی ندارد." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:287 +#: ../../../app/routes/route.account.php:309 +#: ../../../app/routes/route.account.php:376 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 +#: ../../../app/routes/route.json.php:533 +#: ../../../app/routes/route.json.php:595 +#: ../../../app/routes/route.json.php:644 +#: ../../../app/routes/route.json.php:691 +#: ../../../app/themes/Peafowl/pages/contact.php:17 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +msgid "Request denied" +msgstr "درخواست غیر مجاز است" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "برای استفاده از این ویژگی باید حساب خود را فعال کنید." + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "حساب شما فعال شد." + +#: ../../../app/routes/route.account.php:181 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "حداقل 15 دقیقه تا دریافت ایمیل . شما میتوانید بعدا دوباره امتحان کنید." + +#: ../../../app/routes/route.account.php:220 +#, php-format +msgid "Reset your password at %s" +msgstr "بازیابی رمز عبور در %s" + +#: ../../../app/routes/route.account.php:222 +#: ../../../app/routes/route.account.php:442 +#: ../../../app/routes/route.settings.php:260 +#: ../../../app/routes/route.signup.php:180 +#, php-format +msgid "Confirmation required at %s" +msgstr "فعالسازی مورد نیاز است در %s" + +#: ../../../app/routes/route.account.php:330 +#: ../../../app/routes/route.signup.php:203 +#, php-format +msgid "Welcome to %s" +msgstr "به %s خوش آمدید" + +#: ../../../app/routes/route.account.php:348 +#: ../../../app/routes/route.settings.php:304 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:265 +#: ../../../app/themes/Peafowl/views/settings.php:282 +#: ../../../app/lib/chevereto.js:1270 ../../../app/lib/chevereto.min.js:54 +msgid "Passwords don't match" +msgstr "رمز عبور هماهنگ نیستند" + +#: ../../../app/routes/route.account.php:410 +#: ../../../app/routes/route.json.php:571 +#: ../../../app/routes/route.settings.php:220 +#: ../../../app/routes/route.signup.php:137 +msgid "Email already being used" +msgstr "ایمیل در حال حاضر استفاده شده است." + +#: ../../../app/routes/route.account.php:496 +#: ../../../app/routes/route.signup.php:223 +#: ../../../app/themes/Peafowl/pages/contact.php:146 +#: ../../../lib/Peafowl/peafowl.js:194 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "خطاهای این فرم را بررسی کنید" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:663 +#: ../../../app/routes/route.dashboard.php:692 +#: ../../../app/routes/route.dashboard.php:721 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.user.php:131 +#: ../../../app/routes/route.user.php:169 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "آخرین تصاویر" + +#: ../../../app/routes/route.album.php:88 +#: ../../../app/routes/route.category.php:56 +#: ../../../app/routes/route.dashboard.php:671 +#: ../../../app/routes/route.dashboard.php:700 +#: ../../../app/routes/route.dashboard.php:729 +#: ../../../app/routes/route.explore.php:42 +#: ../../../app/routes/route.user.php:139 +#: ../../../app/routes/route.user.php:175 +msgid "Oldest" +msgstr "قدیمیترین تصاویر" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:679 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.user.php:147 +msgid "Most viewed" +msgstr "محبوبترین" + +#: ../../../app/routes/route.album.php:107 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:91 +msgid "Share" +msgstr "اشتراک گذاری" + +#: ../../../app/routes/route.album.php:116 +#: ../../../app/routes/route.image.php:132 +msgid "Full info" +msgstr "توضیحات کامل" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "آمار" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:90 +#: ../../../app/routes/route.user.php:197 +#: ../../../app/themes/Peafowl/header.php:364 +#: ../../../app/themes/Peafowl/views/settings.php:77 +#: ../../../app/themes/Peafowl/views/user.php:125 +msgid "Albums" +msgstr "آلبوم ها" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:222 +#: ../../../app/routes/route.search.php:97 +msgid "Users" +msgstr "کاربران" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:442 +#: ../../../app/themes/Peafowl/header.php:365 +msgid "Settings" +msgstr "تنظیمات" + +#: ../../../app/routes/route.dashboard.php:153 +msgid "Chevereto version" +msgstr "نسخه ی نرم افزار" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "PHP version" +msgstr "نسخه ی PHP" + +#: ../../../app/routes/route.dashboard.php:165 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:39 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:40 +msgid "Server" +msgstr "سرور" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "MySQL version" +msgstr "نسخه ی دیتابیس" + +#: ../../../app/routes/route.dashboard.php:173 +msgid "MySQL server info" +msgstr "اطلاعات سرور دیتابیس" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "GD Library" +msgstr "GD Library" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "File uploads" +msgstr "فایل آپلود شده" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +#: ../../../app/themes/Peafowl/views/dashboard.php:418 +#: ../../../app/themes/Peafowl/views/dashboard.php:438 +#: ../../../app/themes/Peafowl/views/dashboard.php:448 +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +#: ../../../app/themes/Peafowl/views/dashboard.php:623 +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +#: ../../../app/themes/Peafowl/views/dashboard.php:654 +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +#: ../../../app/themes/Peafowl/views/dashboard.php:742 +#: ../../../app/themes/Peafowl/views/dashboard.php:752 +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +#: ../../../app/themes/Peafowl/views/dashboard.php:953 +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:987 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1126 +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +#: ../../../app/themes/Peafowl/views/dashboard.php:1296 +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +#: ../../../app/themes/Peafowl/views/dashboard.php:1330 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1530 +#: ../../../app/themes/Peafowl/views/dashboard.php:1556 +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +#: ../../../app/themes/Peafowl/views/dashboard.php:1641 +#: ../../../app/themes/Peafowl/views/dashboard.php:1660 +#: ../../../app/themes/Peafowl/views/dashboard.php:1705 +msgid "Enabled" +msgstr "فعال" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +#: ../../../app/themes/Peafowl/views/dashboard.php:418 +#: ../../../app/themes/Peafowl/views/dashboard.php:438 +#: ../../../app/themes/Peafowl/views/dashboard.php:448 +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +#: ../../../app/themes/Peafowl/views/dashboard.php:623 +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +#: ../../../app/themes/Peafowl/views/dashboard.php:654 +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +#: ../../../app/themes/Peafowl/views/dashboard.php:742 +#: ../../../app/themes/Peafowl/views/dashboard.php:752 +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +#: ../../../app/themes/Peafowl/views/dashboard.php:953 +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:987 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1126 +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +#: ../../../app/themes/Peafowl/views/dashboard.php:1296 +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +#: ../../../app/themes/Peafowl/views/dashboard.php:1330 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1530 +#: ../../../app/themes/Peafowl/views/dashboard.php:1556 +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +#: ../../../app/themes/Peafowl/views/dashboard.php:1641 +#: ../../../app/themes/Peafowl/views/dashboard.php:1660 +#: ../../../app/themes/Peafowl/views/dashboard.php:1705 +msgid "Disabled" +msgstr "غیرفعال" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "Max. upload size" +msgstr "حداکثر حجم آپلود" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "Max. post size" +msgstr "حداکثر حجم پست" + +#: ../../../app/routes/route.dashboard.php:193 +msgid "Max. execution time" +msgstr "Max. execution time" + +#: ../../../app/routes/route.dashboard.php:194 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d ثانیه" +msgstr[1] "%d ثانیه" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Memory limit" +msgstr "محدودیت حافظه" + +#: ../../../app/routes/route.dashboard.php:217 +#: ../../../app/themes/Peafowl/views/settings.php:322 +msgid "Website" +msgstr "وبسایت" + +#: ../../../app/routes/route.dashboard.php:218 +msgid "Content" +msgstr "محتوا" + +#: ../../../app/routes/route.dashboard.php:219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1191 +msgid "Listings" +msgstr "محتوا" + +#: ../../../app/routes/route.dashboard.php:220 +msgid "Image upload" +msgstr "آپلود تصویر" + +#: ../../../app/routes/route.dashboard.php:221 +msgid "Categories" +msgstr "دسته بندی ها" + +#: ../../../app/routes/route.dashboard.php:223 +#: ../../../app/themes/Peafowl/views/dashboard.php:680 +msgid "Flood protection" +msgstr "محافظت از حملات" + +#: ../../../app/routes/route.dashboard.php:224 +#: ../../../app/themes/Peafowl/views/dashboard.php:820 +msgid "Theme" +msgstr "قالب" + +#: ../../../app/routes/route.dashboard.php:225 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:1177 +msgid "Homepage" +msgstr "صفحه اصلی" + +#: ../../../app/routes/route.dashboard.php:226 +msgid "Banners" +msgstr "بنر ها" + +#: ../../../app/routes/route.dashboard.php:227 +msgid "System" +msgstr "سیستم" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "ایمیل" + +#: ../../../app/routes/route.dashboard.php:231 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "شبکه های اجتماعی" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "External services" +msgstr "سرویس های خارجی" + +#: ../../../app/routes/route.dashboard.php:269 +#: ../../../app/themes/Peafowl/header.php:174 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "همه" + +#: ../../../app/routes/route.dashboard.php:274 +#: ../../../app/routes/route.image.php:147 +#: ../../../app/themes/Peafowl/views/dashboard.php:1413 +msgid "search content" +msgstr "جستجو مطالب" + +#: ../../../app/routes/route.dashboard.php:311 +msgid "Invalid website name" +msgstr "نام وبسایت اشتباه است" + +#: ../../../app/routes/route.dashboard.php:316 +msgid "Invalid language" +msgstr "زبان اشتباه است" + +#: ../../../app/routes/route.dashboard.php:321 +msgid "Invalid timezone" +msgstr "Invalid timezone" + +#: ../../../app/routes/route.dashboard.php:326 +#: ../../../app/routes/route.dashboard.php:361 +#: ../../../app/routes/route.dashboard.php:471 +#: ../../../app/routes/route.dashboard.php:605 +msgid "Invalid value" +msgstr "مقدار اشتباه است" + +#: ../../../app/routes/route.dashboard.php:331 +msgid "Invalid upload storage mode" +msgstr "شیوه ذخیره سازی فایل های آپلود شده اشتباه است." + +#: ../../../app/routes/route.dashboard.php:336 +msgid "Invalid upload filenaming" +msgstr "نام گذاری فایل های آپلود شده اشتباه است." + +#: ../../../app/routes/route.dashboard.php:341 +msgid "Invalid thumb width" +msgstr "عرض تصویر بند انگشتی اشتباه است." + +#: ../../../app/routes/route.dashboard.php:346 +msgid "Invalid thumb height" +msgstr "ارتقاع تصویر بند انگشتی اشتباه است." + +#: ../../../app/routes/route.dashboard.php:351 +msgid "Invalid medium width" +msgstr "عرض تصویر متوسط اشتباه است" + +#: ../../../app/routes/route.dashboard.php:356 +msgid "Invalid theme" +msgstr "قالب اشتباه است" + +#: ../../../app/routes/route.dashboard.php:366 +msgid "Invalid theme tone" +msgstr "قالب اشتباه است" + +#: ../../../app/routes/route.dashboard.php:386 +msgid "Invalid theme image listing size" +msgstr "اندازه لیست تصاویر قالب اشتباده است" + +#: ../../../app/routes/route.dashboard.php:391 +msgid "Invalid user id" +msgstr "شناسه کاربری اشتباه است" + +#: ../../../app/routes/route.dashboard.php:396 +msgid "Invalid email mode" +msgstr "شیوه ارسال ایمیل نادرست است." + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Invalid SMTP port" +msgstr "پرت SMTP اشتباه است" + +#: ../../../app/routes/route.dashboard.php:406 +msgid "Invalid SMTP security" +msgstr "امنیت SMTP اشتباه است" + +#: ../../../app/routes/route.dashboard.php:411 +msgid "Invalid website mode" +msgstr "روش وبسایت اشتباه است" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Invalid website content privacy mode" +msgstr "حریم خصوصی مطالب سایت اشتباه است" + +#: ../../../app/routes/route.dashboard.php:447 +msgid "Invalid upload image path" +msgstr "آدرس آپلود تصاویر اشتباه است" + +#: ../../../app/routes/route.dashboard.php:474 +#, php-format +msgid "Max. allowed %s" +msgstr "حداکثر مجاز %s" + +#: ../../../app/routes/route.dashboard.php:524 +msgid "Invalid SMTP server" +msgstr "سرور SMTP نادرست است" + +#: ../../../app/routes/route.dashboard.php:525 +msgid "Invalid SMTP username" +msgstr "نام کاربری SMTP نادرست است" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Top users" +msgstr "برترین کاربران" + +#: ../../../app/routes/route.dashboard.php:775 +#: ../../../app/themes/Peafowl/header.php:367 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "پیشخوان" + +#: ../../../app/routes/route.explore.php:81 +#: ../../../app/themes/Peafowl/header.php:184 +#: ../../../app/themes/Peafowl/header.php:202 +#: ../../../app/themes/Peafowl/views/dashboard.php:280 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "پویش" + +#: ../../../app/routes/route.image.php:118 +#: ../../../app/themes/Peafowl/header.php:381 +msgid "About" +msgstr "درباره" + +#: ../../../app/routes/route.image.php:125 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:85 +msgid "Embed codes" +msgstr "کد های پیوست" + +#: ../../../app/routes/route.image.php:142 +msgid "Image ID" +msgstr "شماره ی تصویر" + +#: ../../../app/routes/route.image.php:146 +msgid "Uploader IP" +msgstr "آیپی آپلود کننده تصویر" + +#: ../../../app/routes/route.image.php:150 +msgid "Upload date" +msgstr "تاریخ آپلود تصویر" + +#: ../../../app/routes/route.image.php:175 +#, php-format +msgid "%s images" +msgstr "%s عکس" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:232 +#: ../../../app/routes/route.json.php:718 +#: ../../../app/routes/route.json.php:782 +#: ../../../app/routes/route.json.php:883 +#: ../../../app/routes/route.json.php:1026 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "باید وارد شوید" + +#: ../../../app/routes/route.json.php:540 +#: ../../../app/routes/route.json.php:602 +msgid "Missing values" +msgstr "مقدار اشتباه است" + +#: ../../../app/routes/route.json.php:561 +msgid "Invalid role" +msgstr "نقش اشتباه است" + +#: ../../../app/routes/route.json.php:566 +msgid "Username already being used" +msgstr "نام کاربری قبلا ثبت شده است" + +#: ../../../app/routes/route.json.php:1063 +#, php-format +msgid "%s has been disconnected." +msgstr "%s متصل نشده است" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "ترکیب نام کاربری / ایمیل + رمز عبور اشتباه است" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:265 +#: ../../../app/themes/Peafowl/header.php:271 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "ورود" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "خارج شدید" + +#: ../../../app/routes/route.search.php:129 +#: ../../../app/themes/Peafowl/header.php:211 +#: ../../../app/themes/Peafowl/header.php:216 +#: ../../../app/themes/Peafowl/views/dashboard.php:270 +msgid "Search" +msgstr "جستجو" + +#: ../../../app/routes/route.settings.php:58 +msgid "Account" +msgstr "حساب" + +#: ../../../app/routes/route.settings.php:59 +msgid "Profile" +msgstr "پروفایل" + +#: ../../../app/routes/route.settings.php:60 +#: ../../../app/themes/Peafowl/header.php:288 +#: ../../../app/themes/Peafowl/header.php:336 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:51 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:274 +#: ../../../app/themes/Peafowl/views/signup.php:44 +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "Password" +msgstr "رمز عبور" + +#: ../../../app/routes/route.settings.php:61 +msgid "Linked accounts" +msgstr "حساب های متصل شده" + +#: ../../../app/routes/route.settings.php:246 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "ایمیلی به %s جهت فعالسازی این ایمیل آدرس ارسال شده است." + +#: ../../../app/routes/route.settings.php:279 +#: ../../../app/themes/Peafowl/pages/contact.php:22 +msgid "Invalid name" +msgstr "نام اشتباه است" + +#: ../../../app/routes/route.settings.php:282 +msgid "Invalid website" +msgstr "وبسایت اشتباه است" + +#: ../../../app/routes/route.settings.php:290 +msgid "Wrong password" +msgstr "رمز عبور اشتباه است" + +#: ../../../app/routes/route.settings.php:293 +msgid "Use a new password" +msgstr "استفاده از یک رمز عبور جدید" + +#: ../../../app/routes/route.settings.php:360 +#: ../../../app/themes/Peafowl/views/dashboard.php:1751 +#: ../../../app/themes/Peafowl/views/settings.php:409 +msgid "Changes have been saved." +msgstr "تغییرات ذخیره شدند." + +#: ../../../app/routes/route.settings.php:379 +msgid "Password has been changed" +msgstr "رمز عبور تغییر یافت." + +#: ../../../app/routes/route.settings.php:384 +msgid "Password has been created." +msgstr "رمز عبور ساخته شد." + +#: ../../../app/routes/route.settings.php:399 +msgid "Wrong Username/Email values" +msgstr "مقدار نام کاربری / ایمیل اشتباه وارد شده است." + +#: ../../../app/routes/route.settings.php:442 +#, php-format +msgid "Settings for %s" +msgstr "تنظیمات برای %s" + +#: ../../../app/routes/route.signup.php:238 +#: ../../../app/themes/Peafowl/header.php:312 +#: ../../../app/themes/Peafowl/header.php:318 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:58 +msgid "Create account" +msgstr "ثبت نام" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Images" +msgstr "تصاویر %s" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Albums" +msgstr "آلبوم های %s" + +#: ../../../app/themes/Peafowl/header.php:229 +#: ../../../app/themes/Peafowl/views/dashboard.php:290 +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Random" +msgstr "تصادفی" + +#: ../../../app/themes/Peafowl/header.php:254 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Upload" +msgstr "آپلود عکس" + +#: ../../../app/themes/Peafowl/header.php:277 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:71 +msgid "Sign in with another account" +msgstr "وارد شدن با یک حساب دیگر" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/header.php:328 +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:32 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:68 +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.js:2192 +#: ../../../lib/Peafowl/peafowl.min.js:29 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "or" +msgstr "یا" + +#: ../../../app/themes/Peafowl/header.php:287 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "نام کاربری یا آدرس ایمیل" + +#: ../../../app/themes/Peafowl/header.php:290 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "مرا بخاطر بسپار" + +#: ../../../app/themes/Peafowl/header.php:297 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "در سایت ما عضو نیستید؟ همین الان <a href='%s'>ثبت نام</a> کنید." + +#: ../../../app/themes/Peafowl/header.php:324 +msgid "Sign up with another account" +msgstr "ثبت نام یک حساب کاربری دیگر." + +#: ../../../app/themes/Peafowl/header.php:334 +#: ../../../app/themes/Peafowl/pages/contact.php:106 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +msgid "Email address" +msgstr "آدرس ایمیل" + +#: ../../../app/themes/Peafowl/header.php:335 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:137 +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "نام کاربری" + +#: ../../../app/themes/Peafowl/header.php:337 +#: ../../../app/themes/Peafowl/views/signup.php:60 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "با عضویت خود تایید میکنید که با <a href=\"%s\">شرایط سرویس دهی</a> ما موافقید" + +#: ../../../app/themes/Peafowl/header.php:363 +msgid "My Profile" +msgstr "پروفایل من" + +#: ../../../app/themes/Peafowl/header.php:369 +msgid "Sign out" +msgstr "خروج" + +#: ../../../app/themes/Peafowl/header.php:385 +msgid "Terms of service" +msgstr "شرایط استفاده" + +#: ../../../app/themes/Peafowl/header.php:386 +msgid "Privacy" +msgstr "حریم خصوصی" + +#: ../../../app/themes/Peafowl/header.php:387 +#: ../../../app/themes/Peafowl/pages/contact.php:4 +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Contact" +msgstr "تماس با ما" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "ما درخواستی مبنی بر تغییر ایمیل آدرس حساب شما <a href=\"%u\">%n</a> در %w دریافت کرده اییم" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "برای پردازش این عمل شما باید <a href=\"%s\">ایمیل خود را تایید کنید</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "همچنین شما میتوانید آدرس مقابل را در مرورگر خود وارد کنید : <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "در صورتی که این شما نبوده ایید، کافیست این ایمیل را نادیده بگیرید." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "این درخواست از آیپی آدرس %s دریافت شده است" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "ما درخواستی مبنی بر ثبت حساب %n در %w دریافت کرده اییم." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "برای پردازش این درخواست شما باید <a href=\"%s\">حساب خود را فعال کنید</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "ما درخواستی برای بازیابی رمز عبور حساب شما <a href=\"%u\">%n</a> دریافت کرده اییم." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "برای بازیابی رمز خود <a href=\"%s\">این لینک را دنبال کنید</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "سلام %n, خوش آمدید به %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "حالا حساب شما فعال است و میتوانید از بارگذاری تصاویر ، ساخت آلبوم ها ، تنظیمات حریم خصوصی تصاویر و آلبوم و بسیاری ویژگی های دیگر سایت ما لذت ببرید." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "از عضویت شما متشکریم" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "این ایمیل از %w %u ارسال شده است." + +#: ../../../app/themes/Peafowl/pages/contact.php:10 +msgid "General questions/comments" +msgstr "نظرات / سوالات اصلی" + +#: ../../../app/themes/Peafowl/pages/contact.php:11 +msgid "DMCA complaint" +msgstr "شکایت از نقض حقوق معنوی" + +#: ../../../app/themes/Peafowl/pages/contact.php:25 +msgid "Invalid message" +msgstr "پیغام نادرست است." + +#: ../../../app/themes/Peafowl/pages/contact.php:28 +msgid "Invalid subject" +msgstr "عنوان نادرست است." + +#: ../../../app/themes/Peafowl/pages/contact.php:36 +msgid "Invalid reCAPTCHA" +msgstr "کد امنیتی نادرست است." + +#: ../../../app/themes/Peafowl/pages/contact.php:81 +msgid "Mail error" +msgstr "خطا در ارسال ایمیل." + +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Message sent" +msgstr "پیغام شما ارسال شد." + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "We will be in touch soon." +msgstr "به زودی با شما تماس میگیریم." + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "If you want to send a message fill the form below." +msgstr "اگر میخواهید پیغامی بفرستید فرم زیر را پر کنید." + +#: ../../../app/themes/Peafowl/pages/contact.php:101 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:523 +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +#: ../../../app/themes/Peafowl/views/settings.php:316 +msgid "Name" +msgstr "نام" + +#: ../../../app/themes/Peafowl/pages/contact.php:102 +msgid "Your name" +msgstr "نام شما" + +#: ../../../app/themes/Peafowl/pages/contact.php:107 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:144 +msgid "Your email address" +msgstr "آدرس ایمیل شما" + +#: ../../../app/themes/Peafowl/pages/contact.php:111 +msgid "Subject" +msgstr "عنوان" + +#: ../../../app/themes/Peafowl/pages/contact.php:125 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Message" +msgstr "پیغام" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +msgid "Send message" +msgstr "ارسال پیغام" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../lib/Peafowl/peafowl.js:2193 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "cancel" +msgstr "لغو" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop images here to upload" +msgstr "برای آپلود عکس ها آنها را به اینجا بکشید و رها کنید." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "عکسی را برای آپلود انتخاب کنید" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:15 +msgid "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "همچنین شما میتوانید <a data-trigger=\"anywhere-upload-input\">تصویری از کامپیوتر خود برگزینید</a> یا <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">آدرس اینترنتی تصویر را وارد کنید.</a>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:16 +msgid "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." +msgstr "همچنین میتوانید همین الان <a data-trigger=\"anywhere-upload-input-camera\">عکس بگیرید</a>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:20 +msgid "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" +msgstr "در حال بارگذاری <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">عکس</span>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:21 +msgid "The queue is being uploaded. It will take just a few seconds to complete." +msgstr "بارگذاری در حال انجام است. ممکن است چند ثانیه طول بکشد تا تکمیل شدن بارگذاری." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:25 +msgid "Upload complete" +msgstr "بارگذاری کامل شد" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +#, php-format +msgid "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." +msgstr "تصویر به <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">محتوای عمومی</a> اضافه شد. شما میتوانید <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">یک آلبوم جدید بسازید </a> یا <a data-modal=\"form\" data-target=\"form-uploaded-move-album\"> انتقال دهید <span data-text=\"queue-objects\">تصاویر</span></a> را به آلبوم های قبلی." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:28 +msgid "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." +msgstr "شما میتوانید <a href=\"%s\">ثبت نام کنید</a> یا <a href=\"%l\">وارد شوید</a> تا تصاویر بارگذاری شده در آینده را در حساب خود ذخیره کنید." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:33 +msgid "No <span data-text=\"queue-objects\">images</span> have been uploaded" +msgstr "هیچ <span data-text=\"queue-objects\">تصویری</span> آپلود نشده است." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:34 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "خطایی پیش آمده و سیستم قادر به انجام درخواست شما نیست." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:54 +msgid "Select category" +msgstr "انتخاب دسته بندی" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Change upload privacy" +msgstr "تغییر حریم خصوصی آپلود" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Mark this if the upload is not family safe" +msgstr "اگر آپلود حاوی محتوای نا مناسب است این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Not family safe upload" +msgstr "نا مناسب برای خانواده" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +msgid "Uploading" +msgstr "در حال آپلود" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "cancel remaining" +msgstr "لغو باقی مانده ها" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "Note: Some images couldn't be uploaded." +msgstr "توجه: امکان آپلود برخی تصاویر موجود نیست." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "learn more" +msgstr "بیشتر بخوانید." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:79 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "برای توضیحات بیشتر <a data-modal=\"simple\" data-target=\"failed-upload-result\">گزارش خطاها</a> را مطلعه کنید" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:82 +msgid "max" +msgstr "حداکثر" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:84 +msgid "close" +msgstr "بستن" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:143 +msgid "Add image URLs" +msgstr "افزودن آدرس تصویر" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:145 +msgid "Add the image URLs here" +msgstr "آدرس تصویر را اینجا وارد کنید" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:160 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:26 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "ساخت آلبوم" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:161 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "تصاویر آپلود شده به این آلبوم جدید منتقل خواهند شد. همچنین شما میتوانید آنها را به <a class=\"modal-switch\" data-switch=\"move-existing-album\">آلبوم های قبلی</a> منتقل کنید." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:172 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "انتقال به آلبوم" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "یک آلبوم جهت انتقال تصاویر آپلود شده انتخاب کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و تصاویر را به آن منتقل کنید." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:189 +msgid "Error report" +msgstr "گزارش خطا" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:87 +msgid "album" +msgid_plural "albums" +msgstr[0] "آلبوم" +msgstr[1] "آلبوم ها" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "لینکها" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "لینک مشاهده" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "لینک مستقیم" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "کد HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML embed" +msgstr "پیوست HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML original linked" +msgstr "کد HTML برای تصویر اصلی" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "کد HTML برای تصویر متوسط" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "کد HTML برای تصویر بند انگشتی" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCode ها" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode embed" +msgstr "BBCode پیوست" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode original linked" +msgstr "کد BBCode برای تصویر اصلی" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "کد BBCode برای تصویر متوسط" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "کد BBCode برای تصویر بندانگشتی" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "دسته بندی" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +msgid "Album name" +msgstr "نام آلبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Untitled album" +msgstr "آلبوم بدون عنوان" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +msgid "Album description" +msgstr "توضیحات آلبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:1069 +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "optional" +msgstr "اختیاری" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Brief description of this album" +msgstr "توضیحات کوتاهی در مورد این آلبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:24 +msgid "Album Privacy" +msgstr "حریم خصوصی آلبوم" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:25 +msgid "Who can view this content" +msgstr "چه کسانی میتوانند این را مشاهده کنند؟" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:26 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Public" +msgstr "عمومی" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:27 +msgid "Private (just me)" +msgstr "خصوصی ( فقط من )" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:28 +msgid "Private (anyone with the link)" +msgstr "خصوصی (هرکسی که لینک داشته باشد)" + +#: ../../../app/themes/Peafowl/snippets/form_category.php:9 +msgid "No category" +msgstr "بدون دسته بندی" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "نام دسته بندی" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:524 +msgid "URL key" +msgstr "کلید آدرس" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "کلید آدرس دسته بندی" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +msgid "Description" +msgstr "توضیحات" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "توضیحات کمی در مورد این دسته بندی" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "اگر تصویر نامناسب برای خانواده است این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:36 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "برچسب به عنوان نا امن" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "توضیح مختصری در مورد تصویر بنویسید" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "آلبوم موجود" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2341 ../../../app/lib/chevereto.js:3254 +#: ../../../app/lib/chevereto.min.js:115 ../../../app/lib/chevereto.min.js:162 +msgid "private" +msgstr "خصوصی" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "ساخت آلبوم جدید" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "بیشتر" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "بارگذاری بیشتر" + +#: ../../../app/themes/Peafowl/snippets/listing.php:91 +msgid "Previous" +msgstr "قبلی" + +#: ../../../app/themes/Peafowl/snippets/listing.php:98 +msgid "Next" +msgstr "بعدی" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "انتخاب همه" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:11 +msgid "Selection" +msgstr "انتخاب منطقه" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:12 +msgid "Action" +msgstr "حساب" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:19 +msgid "Get embed codes" +msgstr "دریافت کد پیوست" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:35 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "برچسب به عنوان امن" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:40 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#: ../../../app/themes/Peafowl/views/dashboard.php:581 +msgid "Delete" +msgstr "حذف" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:41 +msgid "Clear selection" +msgstr "عدم انتخاب" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "برای استفاده از این ویژگی باید قبلا در سایت وارد شده باشید. اگر در سایت ما حسابی ندارید همین الان <a href=\"%s\">ثبت نام</a> کنید" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +msgid "forgot?" +msgstr "فراموش کردید؟" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +msgid "Link" +msgstr "پیوند" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:282 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "توجه: این مطلب خصوصی است. جهت اشتراک آن باید مطلب را \"public\" کنید" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "چیزی برای نمایش وجود ندارد" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:75 +#: ../../../app/themes/Peafowl/views/image.php:441 +msgid "Edit image details" +msgstr "ویرایش جزئیات تصویر" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "ویرایش جزئیات آلبوم" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "تمامی تصاویر به آلبوم جدید منتقل خواهند شد. همچنین شما میتوانید تصاویرتان را در <a class=\"modal-switch\" data-switch=\"move-existing-album\">آلبوم های قبلی</a> قرار دهید." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "یک آلبوم جهت انتقال این تصویر انتخاب کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و تصویر را به آنجا انتقال دهید." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "یک آلبوم برای انتقال محتوای این آلبوم انتخاب کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و محتوای این آلبوم را به آنجا انتقال دهید." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "یک آلبوم انتخاب و تصاویر را به آن منتقل کنید. همچنین شما میتوانید <a class=\"modal-switch\" data-switch=\"move-new-album\">آلبوم جدیدی بسازید</a> و تصاویر را به آنجا انتقال دهید." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "تایید مطلب به عنوان امن" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "آیا نسبت به امن کردن محتوا اطمینان دارید؟" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "تایید برچسب مطلب به عنوان نا امن" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "نسبت به علامت زدن این محتوا به عنوان کنترل نشده اطمینان دارید؟" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "تایید حذف" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "آیا نسبت به حذف این محتوا مطمئن هستید؟ این عمل غیر قابل بازگشت است." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "آیا نسبت به حذف تمامی انتخاب شده ها مطمئن هستید؟ این عمل غیر قابل بازگشت است." + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_guest.php:2 +msgid "Uploaded by guest to Public" +msgstr "آپلود شده توسط مهمان در عمومی" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "از %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +msgid "From %a by %u" +msgstr "از %a توسط %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/lib/chevereto.js:3186 ../../../app/lib/chevereto.min.js:157 +#: ../../../lib/Peafowl/peafowl.js:625 ../../../lib/Peafowl/peafowl.min.js:36 +msgid "Select" +msgstr "انتخاب" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "ویرایش" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "صفحه ی درخواستی وجود ندارد." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "جستجو ی چیزی دیگر" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "کاربر حذف شد." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:158 +#: ../../../app/lib/chevereto.js:3163 ../../../app/lib/chevereto.min.js:155 +msgid "The content has been deleted." +msgstr "مطلب حذف شد." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "حساب شما آماده است." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "ایمیلی به %s بهمراه توضیحات جهت فعالسازی حساب شما ارسال شد. این ایمیل تا 48 ساعت آینده معتبر است. در صورتی که آن را دریافت نکرده ایید پوشه ی اسپم ایمیل خود را چک کنید." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "رفتن به صفحه ی اصلی" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "ارسال دوباره فعالسازی" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "شما با موفقیت ایمیل حساب خود را به %s تغییر دادید" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "به پروفایل خود بروید" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "یک ایمیل فعالسازی همراه با جزئیات فعالسازی به این ایمیل ارسال خواهد شد." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:26 +msgid "Add email" +msgstr "افزودن ایمیل" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "ایمیلی بهمراه توضیحات در مورد بازیابی رمز عبور شما به ایمیل ثبت شده ی حسابتان ارسال شد. در صورتی که ایمیل را نمیبینید پوشه ی اسپم ایمیل را چک کنید." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "ارسال دوباره ی راهنمایی" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:989 ../../../app/lib/chevereto.js:1065 +#: ../../../app/lib/chevereto.js:1143 ../../../app/lib/chevereto.js:1293 +#: ../../../app/lib/chevereto.min.js:44 ../../../app/lib/chevereto.min.js:48 +#: ../../../app/lib/chevereto.min.js:52 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2422 ../../../lib/Peafowl/peafowl.js:2937 +#: ../../../lib/Peafowl/peafowl.min.js:138 +#: ../../../lib/Peafowl/peafowl.min.js:169 +msgid "An error occurred. Please try again later." +msgstr "خطایی پیش آمده. لطفا بعدا دوباره تلاش کنید." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "ایمیل قبلی بهمراه راهنمایی های لازم جهت بازیابی رمزتان به ایمیلتان ارسال شد. اگر ایمیل را نمیبینید پوشه ی اسپم خود را بررسی کنید." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "نام کاربری و ایمیل آدرسی که برای ساخت حسابتان استفاده کرده ایید وارد کنید." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:407 ../../../lib/Peafowl/peafowl.js:2191 +#: ../../../lib/Peafowl/peafowl.min.js:23 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "Submit" +msgstr "ارسال" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "رمز عبور شما تغییر یافت. شما اکنون میتوانید با رمز عبور جدید وارد سایت شوید." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "اکنون وارد شوید" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "رمز عبور جدیدی که میخواهید استفاده کنید وارد کنید." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "پسورد جدید" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:258 +#: ../../../app/themes/Peafowl/views/settings.php:275 +#: ../../../app/themes/Peafowl/views/signup.php:45 +#, php-format +msgid "%d characters min" +msgstr "حداقل %d کاراکتر" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:258 +msgid "Enter your new password" +msgstr "رمز عبور جدید خود را وارد کنید" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:280 +msgid "Confirm password" +msgstr "رمز عبور را دوباره وارد کنید" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:264 +msgid "Re-enter your new password" +msgstr "رمز عبور جدید را دوباره وارد کنید" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account.n\\If you don't receive the instructions try checking your junk or spam filters." +msgstr "ایمیلی بهمراه راهنمایی های لازم جهت فعالسازی حسابتان به %s ارسال شد. n\\\\ اگر ایمیل را نمیبینید پوشه ی اسپم را چک کنید." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:19 +msgid "Enter the email address that you used to create your account to continue." +msgstr "ایمیل آدرسی که برای ساخت حساب استفاده کرده ایید وارد کنید." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +msgid "This content is private" +msgstr "این مطلب خصوصی میباشد." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "آیا نسبت به حذف این آلبوم و تصاویر آن مطمئن هستید؟ این عمل غیرقابل بازگشت است." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "حذف آلبوم" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "لینک آلبوم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "تصویر" +msgstr[1] "تصاویر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:120 +msgid "User" +msgid_plural "Users" +msgstr[0] "کاربر" +msgstr[1] "کاربران" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1435 +msgid "Disk used" +msgstr "فضای استفاده شده" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "افزودن کاربر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:115 +msgid "Role" +msgstr "سمت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:119 +msgid "Administrator" +msgstr "مدیر کل سایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "افزودن دسته بندی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:197 +msgid "Website name" +msgstr "آدرس وبسایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:202 +msgid "Website doctitle" +msgstr "عنوان وبسایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:206 +msgid "Website description" +msgstr "توضیحات وبسایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:211 +msgid "Website keywords" +msgstr "کلمات کلیدی وبسایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:232 +msgid "Default time zone" +msgstr "منطقه زمانی اصلی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Select region" +msgstr "انتخاب منطقه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:286 +msgid "Enable this if you want to allow the explore page." +msgstr "برای نمایش صفحه پویش این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:302 +msgid "Website mode" +msgstr "حالت وبسایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Private" +msgstr "خصوصی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:309 +msgid "Private mode will make the website only available for registered users." +msgstr "حالت خصوصی دسترسی به وبسایت را تنها برای کاربران عضو امکان پذیر میکند" + +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +msgid "Content privacy mode" +msgstr "حالت حفظ خصوصی مطالب" + +#: ../../../app/themes/Peafowl/views/dashboard.php:319 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +#: ../../../app/themes/Peafowl/views/dashboard.php:1114 +msgid "Default" +msgstr "معمولی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:320 +msgid "Force private (self)" +msgstr "اجبار به خصوصی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:321 +msgid "Force private (anyone with the link)" +msgstr "اجبار به خصوصی ( هر کسی با یک لینک )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:326 +msgid "Forced privacy modes will override user selected privacy." +msgstr "تنظیمات خصوصی اجباری تنظیمات کاربران را تحت تاثیر قرار میدهد" + +#: ../../../app/themes/Peafowl/views/dashboard.php:335 +msgid "Enable uploads" +msgstr "فعالسازی بارگذاری" + +#: ../../../app/themes/Peafowl/views/dashboard.php:341 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "جهت فعالسازی بارگذاری فایل این گزینه را فعال کنید. این گزینه بر مدیریت سایت تاثیر نمیگذارد." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Guest uploads" +msgstr "آپلود مهمان" + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "برای فعالسازی آپلود کاربران غیر عضو این گزینه را فعال کنید." + +#: ../../../app/themes/Peafowl/views/dashboard.php:357 +msgid "Max. filesize" +msgstr "حداکثر حجم فایل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:360 +#, php-format +msgid "Max. allowed filesize. (Max allowed by server is %s)" +msgstr "حداکثر حجم قابل آپلود برای هر فایل ( در این سرور %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Image path" +msgstr "پوشه تصاویر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:364 +msgid "Relative to Chevereto root" +msgstr "مربوط به پوشه ی نرم افزار" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "کجا تصاویر ذخیره شوند؟ مربوط است به محل ذخیره نرم افزار" + +#: ../../../app/themes/Peafowl/views/dashboard.php:369 +msgid "Storage mode" +msgstr "شیوه ذخیره سازی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:372 +msgid "Datefolders" +msgstr "پوشه بندی بر اساس زمان" + +#: ../../../app/themes/Peafowl/views/dashboard.php:372 +msgid "Direct" +msgstr "مستقیم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:375 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "پوشه بندی بر اساس زمان ساختار %s را تولید میکنند" + +#: ../../../app/themes/Peafowl/views/dashboard.php:378 +msgid "File naming method" +msgstr "شیوه نامگذاری فایلها" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Original" +msgstr "نام اصلی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Mixed" +msgstr "میکس شده" + +#: ../../../app/themes/Peafowl/views/dashboard.php:384 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." +msgstr "\"Original\" نام اصلی فایل ها را ذخیره میکند. \"Random\" یک نام تصادفی به هر تصویر اختصاص میدهد و \"Mixed\" ترکیبی از این دو است. " + +#: ../../../app/themes/Peafowl/views/dashboard.php:390 +msgid "Thumb size" +msgstr "اندازه بند انگشتی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:401 +msgid "Thumbnails will be fixed to this size." +msgstr "تصاویر بند انگشتی با این اندازه نمایش داده میشوند." + +#: ../../../app/themes/Peafowl/views/dashboard.php:404 +msgid "Medium size" +msgstr "اندازه تصویر متوسط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:409 +msgid "Height will be automatic calculated." +msgstr "ارتقاع به صورت خودکار اندازه گیری میشود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:422 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "برای اضافه کردن لوگو و یا هر چیزی در عکس های آپلود شده" + +#: ../../../app/themes/Peafowl/views/dashboard.php:429 +#: ../../../app/themes/Peafowl/views/dashboard.php:889 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "خطا: قادر به نوشتن در %s نیست" + +#: ../../../app/themes/Peafowl/views/dashboard.php:466 +msgid "Watermark image" +msgstr "تصویر واترمارک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:472 +msgid "Watermark image to use. Must be a PNG." +msgstr "تصویر مورد استفاده در واترمارک. حتما png باشد" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Watermark position" +msgstr "مکان قرار گیری واترمارک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:479 +msgid "left top" +msgstr "بالا چپ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:480 +msgid "left center" +msgstr "مرکز چپ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:481 +msgid "left bottom" +msgstr "چپ پایین" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "center top" +msgstr "وسط بالا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:483 +msgid "center center" +msgstr "وسط وسط" + +#: ../../../app/themes/Peafowl/views/dashboard.php:484 +msgid "center bottom" +msgstr "وسط پایین" + +#: ../../../app/themes/Peafowl/views/dashboard.php:485 +msgid "right top" +msgstr "بالا راست" + +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +msgid "right center" +msgstr "راست مرکز" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "right bottom" +msgstr "پایین راست" + +#: ../../../app/themes/Peafowl/views/dashboard.php:492 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "مربوط به مکان قرارگیری تصویر واترمارک. اولی افقی و دومی عمودی است" + +#: ../../../app/themes/Peafowl/views/dashboard.php:495 +msgid "Watermark margin" +msgstr "فاصله واترمارک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:500 +msgid "Margin from the border of the image to the watermark image." +msgstr "قراردادن فاصل بین انتهای تصویر و محل قرار گیری واترمارک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Watermark opacity" +msgstr "شفافیت واترمارک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:508 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "شفافیت نمایش واترمارک در تصاویر. بین 0 تا 100" + +#: ../../../app/themes/Peafowl/views/dashboard.php:548 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "توجه: حذف یک دسته بندی تصاویر مربوط به آن دسته بندی را حذف نمیکند." + +#: ../../../app/themes/Peafowl/views/dashboard.php:550 +msgid "Edit category" +msgstr "ویرایش دسته بندی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +msgid "Enable signups" +msgstr "فعالسازی عضویت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:613 +msgid "Enable this if you want to allow users to signup." +msgstr "برای فعالسازی عضویت کاربران جدید این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "بلوکه کردن آپلود تصاویر از یک آیپی خاص هنگامی است که سیستم تشخیص حملات از یک آیپی را میدهد. این تنظیم بر مدیریت سایت تاثیری ندارد." + +#: ../../../app/themes/Peafowl/views/dashboard.php:690 +msgid "Notify to email" +msgstr "ارسال ایمیل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "If enabled the system will send an email on flood incidents." +msgstr "اگر فعال باشد سیستم در هنگام حملات برای شما ایمیل ارسال میکند" + +#: ../../../app/themes/Peafowl/views/dashboard.php:699 +msgid "Minute limit" +msgstr "محدودیت آپلود در دقیقه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Hourly limit" +msgstr "محدودیت آپلود در ساعت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:709 +msgid "Daily limit" +msgstr "محدودیت آپلود در روز" + +#: ../../../app/themes/Peafowl/views/dashboard.php:714 +msgid "Weekly limit" +msgstr "محدودیت آپلود در هفته" + +#: ../../../app/themes/Peafowl/views/dashboard.php:719 +msgid "Monthly limit" +msgstr "محدودیت آپلود در ماه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:729 +msgid "Show not safe content in listings" +msgstr "نمایش محتوای کنترل نشده در لیست محتوا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:739 +msgid "Show banners in not safe content" +msgstr "نمایش بنر ها در مطالب کنترل نشده" + +#: ../../../app/themes/Peafowl/views/dashboard.php:745 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "برای نمایش بنر ها در محتوا های کنترل نشده این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:749 +msgid "Show not safe content in random mode" +msgstr "نمایش محتوای کنترل نشده در نمایشگر تصادفی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:760 +msgid "List items per page" +msgstr "نمایش آیتم ها در هر صفحه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:763 +msgid "How many items should be displayed per page listing." +msgstr "چه تعداد تصویر در هر صفحه نمایش داده شود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "List pagination mode" +msgstr "حالت نمایش محتوا" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Endless scrolling" +msgstr "خزیدن نا محدود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Classic pagination" +msgstr "نمایش شماره صفحات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:774 +msgid "What pagination method should be used." +msgstr "آنچه نمایش صفحات به آن صورت است" + +#: ../../../app/themes/Peafowl/views/dashboard.php:778 +msgid "Image listing size" +msgstr "اندازه لیست تصاویر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:781 +msgid "Fluid" +msgstr "روان" + +#: ../../../app/themes/Peafowl/views/dashboard.php:781 +msgid "Fixed" +msgstr "فیکس شده" + +#: ../../../app/themes/Peafowl/views/dashboard.php:785 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "هر دو روش از عرض فیکس شده استفاده میکنند ولی در حالت روان ارتفاع ها متغییر است" + +#: ../../../app/themes/Peafowl/views/dashboard.php:818 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "قالب هایتان را در پوشه %s قرار دهید." + +#: ../../../app/themes/Peafowl/views/dashboard.php:837 +msgid "Tone" +msgstr "رنگ قالب" + +#: ../../../app/themes/Peafowl/views/dashboard.php:840 +msgid "Light" +msgstr "روشن" + +#: ../../../app/themes/Peafowl/views/dashboard.php:840 +msgid "Dark" +msgstr "سیاه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:895 +msgid "Enable vector logo" +msgstr "فعالسازی لوگو برداری" + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "برای نمایش لوگو با کیفیت بالا لوگو برداری را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:907 +#: ../../../app/themes/Peafowl/views/dashboard.php:1069 +msgid "Vector logo image" +msgstr "تصویر لوگو برداری" + +#: ../../../app/themes/Peafowl/views/dashboard.php:913 +msgid "Vector version or your website logo in SVG format." +msgstr "نسخه ی برداری لوگو وبسایت شما در فرمت svg" + +#: ../../../app/themes/Peafowl/views/dashboard.php:919 +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Raster logo image" +msgstr "لوگو اصلی سایت" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "لوگو اصلی وبسایت شما در فرمت png" + +#: ../../../app/themes/Peafowl/views/dashboard.php:938 +msgid "Favicon image" +msgstr "تصویر فاو آیکون" + +#: ../../../app/themes/Peafowl/views/dashboard.php:944 +msgid "Favicon image. Image must have same width and height." +msgstr "تصویر فاو آیکون باید ارتفاع و عرض یکسان داشته باشد." + +#: ../../../app/themes/Peafowl/views/dashboard.php:950 +msgid "Enable download button" +msgstr "فعالسازی دکمه دانلود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:956 +msgid "Enable this if you want to show the image download button." +msgstr "برای نمایش دکمه دانلود تصاویر این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1016 +msgid "Not safe content checkbox in uploader" +msgstr "چک باکس محتوای نا امن در آپلودر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1022 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "برای نمایش چک باکس به جهت علامت دار شدن محتوای کنترل نشده این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1028 +msgid "Custom CSS code" +msgstr "کد css شخصی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1033 +msgid "Custom JS code" +msgstr "جاوا اسکریپت شخصی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1176 +msgid "Here you can set the codes for the predefined ad spaces." +msgstr "اینجا میتوانید کد های تبلیغاتی را برای مکان های از پیش تعیین شده قرار دهید." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1179 +msgid "Before cover (homepage)" +msgstr "قبل از کاور ( صفحه اصلی )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1183 +msgid "After cover (homepage)" +msgstr "بعد از کاور ( صفحه اصلی )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1187 +msgid "After listing (homepage)" +msgstr "بعد از تصاویر ( صفحه اصلی)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1193 +msgid "Before pagination" +msgstr "قبل از شمارنده صفحه" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "After pagination" +msgstr "بعد از شماره صفحات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Content (image and album)" +msgstr "مطالب ( تصاویر و آلبوم ها )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1205 +msgid "Tab about column" +msgstr "سربرگ درباره " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1209 +msgid "Before comments" +msgstr "قبل از نظرات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1215 +msgid "Image page" +msgstr "صفحه تصاویر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1217 +msgid "Inside viewer top (image page)" +msgstr "بالا درون نمایشگر ( صفحه تصاویر )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +msgid "Expected banner size 728x90" +msgstr "سایز پیشنهادی 728*90" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +msgid "Inside viewer foot (image page)" +msgstr "پایین درون نمایشگر (صفحه تصاویر)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1227 +msgid "After image viewer (image page)" +msgstr "بعد از نمایشگر تصاویر ( صفحه تصاویر )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1231 +msgid "Before header (image page)" +msgstr "قبل از سربرگ ( صفحه تصاویر )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1235 +msgid "After header (image page)" +msgstr "بعد از سربرگ ( صفحه تصاویر )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1239 +msgid "Footer (image page)" +msgstr "پاورقی ( صفحه تصاویر)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1245 +msgid "Album page" +msgstr "صفحه آلبوم" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +msgid "Before header (album page)" +msgstr "قبل از سربرگ ( صفحه آلبوم )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "After header (album page)" +msgstr "بعد از سربرگ ( صفحه آلبوم )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1257 +msgid "User profile page" +msgstr "صفحه ی پروفایل کاربر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1259 +msgid "After top (user profile)" +msgstr "بعد از سربرگ ( صفحه ی کاربر )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1263 +msgid "Before listing (user profile)" +msgstr "قبل از لیست تصاویر ( صفحه پروفایل )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1269 +msgid "Explore page" +msgstr "صفحه پویش" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1271 +msgid "After top (explore page)" +msgstr "بعد از سربرگ ( صفحه پویشگر تصاویر )" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "این کلید برای تبدیل شناسه عددی به شناسه ی ترکیبی حروف و اعداد استفاده میشود. این به صورت خودکار در هنگام نصب ساخته شده است." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Error reporting" +msgstr "گزارش خطا ها" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable this if you need to debug PHP errors." +msgstr "برای مشاهده خطاهای برنامه نویسی و رفع اشکال این گزینه را فعال کنید." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1314 +msgid "Default language" +msgstr "زبان اصلی" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1323 +msgid "Default base language to use." +msgstr "زبان اصلی مورد استفاده در نرم افزار." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Auto language" +msgstr "انتخاب خودکار زبان" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "From name" +msgstr "نام " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Sender name for emails sent to users." +msgstr "نام ارسال کننده برای ایمیل های ارسال شده به کاربران" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +msgid "Email mode" +msgstr "روش ارسال ایمیل" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1482 +msgid "How to send emails? SMTP recommended." +msgstr "نحوه ی ارسال ایمیل ها؟ SMTP پیشنهاد میشود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "SMTP server and port" +msgstr "پرت و سرور smtp" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1490 +msgid "SMTP server" +msgstr "سرور SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1503 +msgid "SMTP username" +msgstr "نام کاربری SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1508 +msgid "SMTP password" +msgstr "رمز عبور SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "SMTP security" +msgstr "امنیت SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1516 +msgid "Unsecured" +msgstr "غیر امن" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1533 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "شما برای این به یک <a href=\"https://developers.facebook.com/\" target=\"_blank\">اپ فیسبوک</a> نیاز دارید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1538 +msgid "Facebook app id" +msgstr "شناسه ی اپ فیسبوک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1543 +msgid "Facebook app secret" +msgstr "کد امنیتی اپ فیسبوک" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1559 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "شما به یک You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">اپ توییتر</a> برای این نیاز دارید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1564 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1569 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Twitter account" +msgstr "حساب توییتر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "شما به یک You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> برای این نیاز دارید." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1597 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1602 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1663 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "شما به یک <a href=\"%s\" target=\"_blank\">کلید reCAPTCHA </a> برای این نیاز دارید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1669 +msgid "reCAPTCHA public key" +msgstr "reCAPTCHA public key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1674 +msgid "reCAPTCHA private key" +msgstr "reCAPTCHA private key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1681 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1692 +msgid "Comment code" +msgstr "کد نظرات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "دیکاس ، فیسبوک و یا هر چیزی که شما مایل باشید. این در قسمت نمایش تصویر استفاده میشود." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1697 +msgid "Analytics code" +msgstr "کد آمارگیر" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "گوگل آنالیتیکس یا هر چیز دیگری که شما مایلید. این در فوتر سایت نمایش داده میشود" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1708 +msgid "Enable this if you are using Cloudflare." +msgstr "در صورتی که از cloudflare استفاده میکنید این گزینه را فعال کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1713 +msgid "For documentation about the API check <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" +msgstr "برای نمایش توضیحات درباره رابط برنامه نویسی میتوانید <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a> را مطالعه کنید" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1715 +msgid "API v1 key" +msgstr "کلید api نسخه 1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1718 +msgid "Use this key when using the API v1. <a href=\"https://chevereto.com/docs/api-v1\">Learn more</a>." +msgstr "برای استفاده از رابط برنامه نویسی این کلید را به کار ببرید. <a href=\"https://chevereto.com/docs/api-v1\">بیشتر بدانید</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../lib/Peafowl/peafowl.js:407 ../../../lib/Peafowl/peafowl.min.js:23 +msgid "Save changes" +msgstr "ذخیره تغییرات" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1751 +#: ../../../app/themes/Peafowl/views/settings.php:409 +msgid "Check the errors to proceed." +msgstr "برای ادامه خطا ها را رفع کنید" + +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "Guest" +msgstr "مهمان" + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "واقعا نسبت به حذف این تصویر مطمئنید؟ این عمل غیرقابل بازگشت است." + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Delete image" +msgstr "حذف تصویر" + +#: ../../../app/themes/Peafowl/views/image.php:142 +msgid "Added to %a and categorized in %c" +msgstr "افزوده شد به %a و دسته بندی شد در %c" + +#: ../../../app/themes/Peafowl/views/image.php:144 +#, php-format +msgid "Added to %s" +msgstr "افزوده شد به %s" + +#: ../../../app/themes/Peafowl/views/image.php:149 +#, php-format +msgid "Uploaded to %s" +msgstr "آپلود شده به %s" + +#: ../../../app/themes/Peafowl/views/image.php:151 +#, php-format +msgid "Uploaded %s" +msgstr "%s آپلود شد" + +#: ../../../app/themes/Peafowl/views/image.php:188 +#: ../../../app/themes/Peafowl/views/image.php:249 +msgid "Share image" +msgstr "اشتراک گذاری تصویر" + +#: ../../../app/themes/Peafowl/views/image.php:204 +#: ../../../app/themes/Peafowl/views/image.php:210 +msgid "Album ID" +msgstr "شناسه آلبوم" + +#: ../../../app/themes/Peafowl/views/image.php:260 +msgid "In this album" +msgstr "در این آلبوم" + +#: ../../../app/themes/Peafowl/views/image.php:287 +msgid "Image links" +msgstr "لینک های تصویر" + +#: ../../../app/themes/Peafowl/views/image.php:289 +msgid "Image URL" +msgstr "URL تصویر" + +#: ../../../app/themes/Peafowl/views/image.php:295 +msgid "Image link" +msgstr "لینک تصویر" + +#: ../../../app/themes/Peafowl/views/image.php:301 +msgid "Thumbnail URL" +msgstr "آدرس پیشنمایش" + +#: ../../../app/themes/Peafowl/views/image.php:310 +msgid "Medium URL" +msgstr "آدرس تصویر متوسط" + +#: ../../../app/themes/Peafowl/views/image.php:328 +#: ../../../app/themes/Peafowl/views/image.php:348 +#: ../../../app/themes/Peafowl/views/image.php:371 +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Image embed codes" +msgstr "کد های پیوست تصویر" + +#: ../../../app/themes/Peafowl/views/image.php:348 +msgid "Linked image" +msgstr "تصاویر لینک شده" + +#: ../../../app/themes/Peafowl/views/image.php:371 +msgid "Linked medium" +msgstr "تصویر متوسط" + +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Linked thumbnail" +msgstr "بند انگشتی" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "عکس های خود را آپلود و منتشر کنید" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "عضو شوید تا همه چیز را به رایگان داشته باشید!" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "مدیریت مطالب شما ، ساخت آلبوم خصوصی ، ویرایش پروفایل و ..." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:275 +msgid "Enter your password" +msgstr "رمز عبور خود را وارد کنید" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "%s شما با موفقیت خارج شدید. به امید دیدار " + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "شما دیگر دسترسی برای این صفحه را ندارید یا این لینک منقضی شده است" + +#: ../../../app/themes/Peafowl/views/search.php:8 +#: ../../../app/themes/Peafowl/views/user.php:111 +msgid "Results for" +msgstr "نتایج برای" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "نسبت به حذف این کاربر مطمئن هستید؟ این عمل غیرقابل بازگشت است." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Delete user" +msgstr "حذف کاربر" + +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "شناسه کاربری" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "تاریخ عضویت" + +#: ../../../app/themes/Peafowl/views/settings.php:99 +msgid "Status" +msgstr "وضعیت" + +#: ../../../app/themes/Peafowl/views/settings.php:103 +msgid "Valid" +msgstr "فعال" + +#: ../../../app/themes/Peafowl/views/settings.php:104 +msgid "Banned" +msgstr "اخراج شده" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Awaiting email" +msgstr "در انتظار ایمیل" + +#: ../../../app/themes/Peafowl/views/settings.php:106 +msgid "Awaiting confirmation" +msgstr "در انتظار تایید ایمیل" + +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "کاراکتر های %i تا %f <br> حروف ، اعداد و \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:167 +msgid "Language" +msgstr "زبان" + +#: ../../../app/themes/Peafowl/views/settings.php:197 +msgid "Timezone" +msgstr "منطقه زمانی" + +#: ../../../app/themes/Peafowl/views/settings.php:248 +msgid "Current password" +msgstr "رمز عبور فعلی" + +#: ../../../app/themes/Peafowl/views/settings.php:249 +msgid "Enter your current password" +msgstr "رمز عبور فعلی خود را وارد کنید" + +#: ../../../app/themes/Peafowl/views/settings.php:257 +msgid "New password" +msgstr "رمز عبور جدید" + +#: ../../../app/themes/Peafowl/views/settings.php:263 +msgid "Confirm new password" +msgstr "تایید رمز عبور" + +#: ../../../app/themes/Peafowl/views/settings.php:271 +msgid "Add a password to be able to login using your username or email." +msgstr "جهت ورود با نام کاربری یا ایمیل باید یک پسورد تعیین کنید." + +#: ../../../app/themes/Peafowl/views/settings.php:271 +msgid "This user doesn't have a password. Add one using this form." +msgstr "این کاربر رمز عبوری ندارد. توسط فرم زیر برای کاربر رمز عبور تعیین کنید." + +#: ../../../app/themes/Peafowl/views/settings.php:281 +msgid "Re-enter your password" +msgstr "رمز عبور را دوباره وارد کنید" + +#: ../../../app/themes/Peafowl/views/settings.php:300 +#: ../../../lib/Peafowl/peafowl.js:3356 +#: ../../../lib/Peafowl/peafowl.min.js:207 +msgid "loading" +msgstr "در حال بارگذاری" + +#: ../../../app/themes/Peafowl/views/settings.php:304 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "بارگذاری تصویر جدید" + +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Delete existing image" +msgstr "حذف تصاویر موجود" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This is your real name, not your username." +msgstr "این نام اصلی شماست. نه نام کاربری شما" + +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:339 +msgid "User has no connections." +msgstr "کاربر هیچ اتصالاتی ندارد" + +#: ../../../app/themes/Peafowl/views/settings.php:343 +msgid "Link your account to external services to be able to login and share content." +msgstr "حساب کاربری خود را با سرویس های خارجی لینک کنید تا بتوانید وارد شوید و مطالب را به اشتراک بگذارید." + +#: ../../../app/themes/Peafowl/views/settings.php:350 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "آیا نسبت به قطع اتصال %s از این حساب مطمئنید؟" + +#: ../../../app/themes/Peafowl/views/settings.php:351 +#, php-format +msgid "This account is connected to %s" +msgstr "این کاربر به %s متصل شد." + +#: ../../../app/themes/Peafowl/views/settings.php:353 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "آیا نسبت به قطع ارتباط %s به حساب خود مطمئنید؟" + +#: ../../../app/themes/Peafowl/views/settings.php:355 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "شما خارج خواهید شد و دیگر با %s قادر به ورود به این حساب نیستیدو" + +#: ../../../app/themes/Peafowl/views/settings.php:357 +#, php-format +msgid "Your account is connected to %s" +msgstr "حساب شما به %s متصل شده است." + +#: ../../../app/themes/Peafowl/views/settings.php:362 +msgid "disconnect" +msgstr "قطع ارتباط" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +#, php-format +msgid "Connect %s" +msgstr "اتصال به %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "بارگذاری پس زمینه ی پروفایل" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "تغییر پس زمینه" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "پس زمینه ی پروفایل شما حذف میشود. این عمل غیر قابل بازگشت است. مطمئن هستید؟" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "حذف پس زمینه" + +#: ../../../app/themes/Peafowl/views/user.php:64 +msgid "Edit profile" +msgstr "ویرایش پروفایل" + +#: ../../../app/lib/chevereto.js:496 ../../../app/lib/chevereto.js:568 +#: ../../../app/lib/chevereto.js:750 ../../../app/lib/chevereto.js:2155 +#: ../../../app/lib/chevereto.js:2208 ../../../app/lib/chevereto.js:2306 +#: ../../../app/lib/chevereto.min.js:20 ../../../app/lib/chevereto.min.js:24 +#: ../../../app/lib/chevereto.min.js:30 ../../../app/lib/chevereto.min.js:107 +#: ../../../app/lib/chevereto.min.js:110 ../../../app/lib/chevereto.min.js:114 +msgid "You must enter the album name." +msgstr "شما باید نام آلبوم را وارد کنید" + +#: ../../../app/lib/chevereto.js:610 ../../../app/lib/chevereto.js:796 +#: ../../../app/lib/chevereto.js:892 ../../../app/lib/chevereto.min.js:27 +#: ../../../app/lib/chevereto.min.js:34 ../../../app/lib/chevereto.min.js:36 +#: ../../../lib/Peafowl/peafowl.js:2225 +#: ../../../lib/Peafowl/peafowl.min.js:123 +msgid "Confirm" +msgstr "تایید" + +#: ../../../app/lib/chevereto.js:728 ../../../app/lib/chevereto.min.js:29 +msgid "Select existing album" +msgstr "انتخاب یک آلبوم" + +#: ../../../app/lib/chevereto.js:1011 ../../../app/lib/chevereto.js:1091 +#: ../../../app/lib/chevereto.min.js:45 ../../../app/lib/chevereto.min.js:50 +msgid "Please select a valid image file type." +msgstr "لطفا یک فایل قابل قبول انتخاب کنید (تصویر)" + +#: ../../../app/lib/chevereto.js:1016 ../../../app/lib/chevereto.js:1096 +#: ../../../app/lib/chevereto.min.js:46 ../../../app/lib/chevereto.min.js:51 +#, python-format, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "لطفا یک تصویر با حداکثر حجم %s انتخاب کنید" + +#: ../../../app/lib/chevereto.js:1063 ../../../app/lib/chevereto.min.js:48 +msgid "Profile image updated." +msgstr "تصویر پروفایل با موفقیت به روز شد." + +#: ../../../app/lib/chevereto.js:1133 ../../../app/lib/chevereto.min.js:52 +msgid "Profile background image updated." +msgstr "تصویر پس زمینه با موفقیت به روز شد." + +#: ../../../app/lib/chevereto.js:1207 ../../../app/lib/chevereto.min.js:53 +msgid "Profile background image deleted." +msgstr "تصویر پس زمینه با موفقیت حذف شد" + +#: ../../../app/lib/chevereto.js:1212 ../../../app/lib/chevereto.min.js:53 +msgid "Error deleting profile background image." +msgstr "خطا در هنگام حذف تصویر پس زمینه." + +#: ../../../app/lib/chevereto.js:1690 ../../../app/lib/chevereto.min.js:74 +msgid "File too big." +msgstr "فایل بسیار بزرگ است." + +#: ../../../app/lib/chevereto.js:1701 ../../../app/lib/chevereto.js:1849 +#: ../../../app/lib/chevereto.min.js:76 ../../../app/lib/chevereto.min.js:87 +msgid "Some files couldn't be added" +msgstr "بعضی فایل ها امکان اضافه شدن را ندارند." + +#: ../../../app/lib/chevereto.js:2283 ../../../app/lib/chevereto.min.js:114 +msgid "Image edited successfully." +msgstr "تصویر با موفقیت ویرایش شد" + +#: ../../../app/lib/chevereto.js:2346 ../../../app/lib/chevereto.min.js:115 +msgid "Album edited successfully." +msgstr "آلبوم با موفقیت ویرایش شد." + +#: ../../../app/lib/chevereto.js:3171 ../../../app/lib/chevereto.js:3246 +#: ../../../app/lib/chevereto.js:3329 ../../../app/lib/chevereto.js:3338 +#: ../../../app/lib/chevereto.min.js:156 ../../../app/lib/chevereto.min.js:162 +#: ../../../app/lib/chevereto.min.js:164 +msgid "The content has been moved." +msgstr "محتوا منتقل شده است." + +#: ../../../app/lib/chevereto.js:3191 ../../../app/lib/chevereto.min.js:157 +msgid "Unselect" +msgstr "عدم انتخاب" + +#: ../../../app/lib/chevereto.js:3246 ../../../app/lib/chevereto.min.js:162 +msgid "The content has been edited." +msgstr "محتوا با موفقیت ویرایش شد." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:480 +#: ../../../lib/Peafowl/peafowl.min.js:1 +#: ../../../lib/Peafowl/peafowl.min.js:29 +msgid "All the changes that you have made will be lost if you continue." +msgstr "تمامی تغییراتی که اعمال کرده ایید در صورت ادامه از بین میروند" + +#: ../../../lib/Peafowl/peafowl.js:464 ../../../lib/Peafowl/peafowl.min.js:28 +msgid "Changes saved successfully." +msgstr "تنظیمات با موفقیت ذخیره شدند." + +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "Go back to form" +msgstr "بازگشت به فرم" + +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "continue anyway" +msgstr "ادامه در هر صورت" + +#: ../../../lib/Peafowl/peafowl.js:2368 +#: ../../../lib/Peafowl/peafowl.min.js:135 +msgid "Saving" +msgstr "در حال ذخیره" + +#: ../../../lib/Peafowl/peafowl.js:2373 +#: ../../../lib/Peafowl/peafowl.min.js:135 +msgid "Sending" +msgstr "در حال ارسال" + +#: ../../../lib/Peafowl/peafowl.js:2453 +#: ../../../lib/Peafowl/peafowl.min.js:138 +msgid "Confirm action" +msgstr "تایید" + diff --git a/app/languages/fi.po b/app/languages/fi.po new file mode 100644 index 0000000..15db69f --- /dev/null +++ b/app/languages/fi.po @@ -0,0 +1,5354 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-11-27 19:52+0000\n" +"PO-Revision-Date: 2020-11-27 19:52+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Virheellinen sähköpostiosoite" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Virheellinen käyttäjänimi" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Virheellinen salasana" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Virheellinen verkkosivuston tila" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Sähköpostiosoitteesta" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Käyttäjille viestejä lähettävän sähköpostin osoite" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Sisääntulevan postin sähköpostiosoite" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Vastaanottaja yhteydenottolomakkeelle ja järjestelmähälytyksille." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Verkkosivusto" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Voit vaihtaa verkkosivun tilaa koska vain." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Yhteisö" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Henkilökohtainen" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Asennettu versio v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Ei voida yhdistää %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Viimeisin saatavilla oleva versio on v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Päivitys vaaditaan, siirrytään lataukseen" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Ei päivityksiä saatavilla" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Järjestelmän tiedostot ovat ajantasalla" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Aloitetaan v%s lataus" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Ladattu v%s, siirrytään purkamaan tiedosto" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Yritetään purkaan v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Purkaminen valmis" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Siirrytään asentamaan päivitys" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Päivitys epäonnistui" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Päivitys käynnissä" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Puuttuva %s tiedosto" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Virheellinen lisenssitieto" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Virheellinen lisenssiavain" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Tiedoston tallennus ei onnistunut" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Ei voida ladata %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Ei voida purkaa %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Ei voida luoda %s hakemistoa - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Ei voida ladata tiedostoa %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Tarkista virheet jatkaaksesi." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Sinun täytyy antaa albumille nimi." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Hyväksy" + +msgid "The content has been approved." +msgstr "Sisältö on hyväksytty." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Valitse olemassa oleva albumi" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Virhe havaittu. Yritä myöhemmin uudelleen." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Valitsethan oikean tyyppisen kuvan." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Valitse kuva, joka on enintään %s kokoinen." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profiilin kuva päivitetty." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Profiilin taustakuva päivitetty." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Profiilin taustakuva poistettu." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Virhe poistaessa profiilin taustakuvaa." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Salasanat eivät täsmää" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Päivitys saatavilla v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Päivitys saatavilla järjestelmääsi. Voit automaattisesti ladata ja asentaa sen tai mennä %s ladataksesi tiedoston." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Muutoshistoria päivitykselle ovat:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Päivitä nyt" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "tai" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "peruuta" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Sivusto käyttää viimeisintä %s versiota" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "ladataan" + +msgid "Toggle select" +msgstr "Vaihda valinta" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Tykkäys" + +msgid "Toggle flag" +msgstr "Vaihda lippu" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Muokkaa" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Albumi" +msgstr[1] "Albumit" + +msgid "Approve" +msgstr "Hyväksy" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Poista" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Sulje" + +msgid "Previous" +msgstr "Edellinen" + +msgid "Next" +msgstr "Seuraava" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Leikepöydän kuva" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Tiedosto on liian suuri." + +msgid "Invalid or unsupported file format." +msgstr "Virheellinen tai ei tuettu tiedostomuoto." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Joitakin tiedostoja ei voitu lisätä" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "kuva" +msgstr[1] "kuvaa" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Käyttäjän %s albumit" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Kuva muokattu onnistuneesti." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "yksityinen" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Albumi muokattu onnistuneesti." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Virheellinen osoite avain." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Kategoria osoite avain jo käytössä." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategoria onnistuneesti poistettu." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "%s kategoria lisätty." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Virheellinen päättymispäivä." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP-osoite %s on jo estetty." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP-osoite %s estetty." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP esto onnistuneesti poistettu." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Täytä kaikki vaadittavat kentät." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Virheellinen tallennustilan kapasiteettiarvo. Tarkista, että arvo on oikeassa muodossa." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Tallennustila ei voi olla matalampi kuin se nykyinen käyttö (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Virheellinen osoite." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Talennustilan muokkaaminen onnistunut." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Käyttäjä lisätty onnistuneesti." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Sisältö poistettu" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Sisältö siirretty" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Valitse" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Poista valinta" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Sisältö muokattu" + +msgid "Select number of threads" +msgstr "Valitse ketjujen määrä" + +#, javascript-format +msgid "Import job ID %s is being processed now" +msgstr "Tuontityö ID %s on nyt käsittelyssä" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "Tuontityö ID %s poistettiin" + +msgid "Spam detected" +msgstr "Spammia havaittu" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "albumi" +msgstr[1] "albumia" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Nimetön" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Käyttäjän %s kuvat" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Huomio: Tämä sisältö on salainen, mutta kaikki linkin tietävät pääsevät katsomaan sitä." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Huomio: Tämä sisältö on salasanalla suojattu. Jaa myös salasana jakaaksesi sisältöä muiden kanssa." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Huomio: Tämä materiaali on yksityinen. Vaihda yksityisyysasetus \"julkinen\" jakaaksesi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Yksityinen" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Julkinen" + +msgid "Me" +msgstr "Minä" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Linkki" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Salasana" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "näyttökerta" +msgstr[1] "näyttökertaa" + +msgid "After %n %t" +msgstr "Jälkeen %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuutti" +msgstr[1] "minuuttia" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "tunti" +msgstr[1] "tuntia" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "päivä" +msgstr[1] "päivää" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "viikko" +msgstr[1] "viikkoa" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "kuukausi" +msgstr[1] "kuukautta" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "vuosi" +msgstr[1] "vuotta" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Älä poista automaattisesti" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Kaksinkertainen lataus" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Yksityinen lähetys" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "tykkäys" +msgstr[1] "tykkäystä" + +msgid "Recent" +msgstr "Viimeaikainen" + +msgid "Trending" +msgstr "Nousussa" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Suosituimmat käyttäjät" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Viimeisimmät" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Vanhimmat" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Katsotuimmat" + +msgid "Popular" +msgstr "Suosittu" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Suosituimmat" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Selaa" + +msgid "Animated" +msgstr "Animoitu" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Etsi" + +msgid "People" +msgstr "Ihmiset" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Kuva" +msgstr[1] "Kuvat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Käyttäjä" +msgstr[1] "Käyttäjät" + +msgid "adult" +msgstr "aikuinen" + +msgid "teen" +msgstr "nuori" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "Sisältö tyypiltään %s on kiellettyä" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Kohde hakemistoa %s ei voida luoda" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "%s ei voida avata kirjoittaakseen sinne" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Sisäinen" + +msgid "Can't insert storage." +msgstr "Ei voida lisätä ulkoista tallennustilaa." + +msgid "Can't update storage details." +msgstr "Ei voida päivittää tallennustilan tietoja." + +#, php-format +msgid "requires %s" +msgstr "tarvitsee %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Rajoittamaton" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "käytetty" + +msgid "Private profile" +msgstr "Yksityinen profiili" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekunti" +msgstr[1] "sekuntia" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s sitten" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "hetki sitten" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Hallintapaneeli" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Päivitys saatavilla. Mene %s ladataksesi ja asentaaksesi se." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Järjestelmän tietokanta on vanhentunut. Sinun tulee käyttää <a href=\"%s\">päivitystyökalua</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Sivusto on huoltotilassa. Ottaaksesi huoltotilan pois, mene <a href=\"%s\">Hallintapaneeli > Asetukset</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Sinun tulee ottaa PHP virheiden raportointi pois käytöstä tuotantoympäristössä. Mene <a href='%s'>Järjestelmän asetukset</a> palauttaaksesi tämän asetuksen." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Et ole muuttanu oletussähköpostiasetuksia. Mene <a href='%s'>Sähköpostiasetukset</a> muuttaaksesi ne." + +msgid "There is an update available for your Chevereto based website." +msgstr "Päivitys saatavilla sinun Chevereto sivustoon." + +msgid "admin dashboard" +msgstr "hallintapaneeli" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Voit päivittää järjestelmän automaattisesti %a tai ladata sen %s ja asentaa käsin." + +#, php-format +msgid "view on %s" +msgstr "näyttöä %s" + +msgid "cookie policy" +msgstr "Evästekäytäntö" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Käytämme omia ja kolmannen osapuolen evästeitä parantaaksemme selainkokemustasi ja palveluitamme. Jos jatkat verkkosivustomme käyttöä, ymmärrät, että hyväksyt tämän %cookie_policy_link." + +msgid "I understand" +msgstr "Ymmärrän" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Salasana unohtunut?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Nollaa salasana" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Lähetä käyttäjätunnuksen aktivointi uudelleen" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Lisää sähköpostisi" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Sähköposti muutettu" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s sanoo, että olet robotti" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Virheellinen käyttäjätunnus/sähköpostiosoite" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Käyttäjällä ei ole sähköpostia." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Pyyntö hylätty" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Käyttäjätunnus tulee aktivoida, jotta voit käyttää tätä ominaisuutta" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Käyttäjätunnus on jo aktivoitu" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Voit pyytää lähetystä vasta 15 minuutin kuluttua sähköpostiisi. Kokeile myöhemmin uudelleen." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Nollaa salasanasi palvelussa %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Varmistus tarvitaan palvelusta %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Tervetuloa palveluun %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Sähköpostiosoite on jo käytössä" + +msgid "Password required" +msgstr "Salasana vaaditaan" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Jaa" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Upotuskoodit" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Kaikki tiedot" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a albumi ylläpidetty %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Tilastot" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Kuvat" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albumit" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Käyttäjät" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Asetukset" + +msgid "Bulk importer" +msgstr "Massatuonti" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto-versio" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "asenna päivitys" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "tarkista päivitykset" + +msgid "Support" +msgstr "Tuki" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Tarvitsetko apua? %s -sivustolta saat apua nopeasti." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP-versio" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Palvelin" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL-versio" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL-palvelimen tiedot" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD-kirjasto" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Tiedostojen lähetys" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Käytössä" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Pois käytöstä" + +msgid "Max. upload file size" +msgstr "Suurin lähetettävän tiedoston koko" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Suurin lähetyksen koko" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Suurin suoritusaika" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunti" +msgstr[1] "%d sekuntia" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Muistirajoitus" + +msgid "Rebuild stats" +msgstr "Uudelleenrakenna statistiikka" + +msgid "Connecting IP" +msgstr "Yhdistetään IP" + +msgid "Not your IP?" +msgstr "Ei sinun IP?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Linkit" + +msgid "Collaboration" +msgstr "Yhteistyö" + +msgid "Documentation" +msgstr "Dokumentaatio" + +msgid "Changelog" +msgstr "Muutoslogi" + +msgid "Bug tracking" +msgstr "Virheenseuranta" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Verkkosivusto" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Sisältö" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Sivut" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Listaus" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Kuvan lähetys" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategoriat" + +msgid "Consent screen" +msgstr "Ehtojen hyväksymisikkuna" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Spämmiesto" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Teema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Etusivu" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Bannerit" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Järjestelmä" + +msgid "Routing" +msgstr "Ohjaus" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Kielet" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Ulkoinen tallennustila" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Sähköposti" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sosiaaliset verkostot" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Ulkoiset palvelut" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP-estot" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Lisäasetukset" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Työkalut" + +msgid "Can't delete all homepage cover images" +msgstr "Kotisivun kansikuvien poisto ei onnistu" + +msgid "Homepage cover image deleted" +msgstr "Kotisivun kansikuva poistettu" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Paikallinen" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Ulkoinen" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Kaikki" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "etsi sisältöä" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Lisää sivu" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Muokkaa sivun %s ID:tä" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Sivu lisätty onnistuneesti." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Sivu on poistettu." + +msgid "homepage" +msgstr "kotisivu" + +#, php-format +msgid "Before main title (%s)" +msgstr "Ennen pääotsikkoa (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Toimintapainikkeen jälkeen (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Kannen jälkeen (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Listauksen jälkeen (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Ennen sivunumerointia" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Sivunumeroinnin jälkeen" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Sisältö (kuva ja albumi)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Tietoa välilehden sarake" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Ennen kommentteja" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Kuvasivu" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Katselijan sisällä keskellä (kuvasivu)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Katselijan sisällä alhaalla (kuvasivu)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Katselijan jälkeen (kuvasivu)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Ennen headeria (kuvasivu)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Headerin jälkeen (kuvasivu)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Footeri (kuvasivu)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Albumisivu" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Ennen headeria (albumisivu)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Headerin jälkeen (albumisivu)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Käyttäjän profiili" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Yläreunan jälkeen (käyttäjän profiili)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Ennen listausta (käyttäjän profiili)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Selaa sivu" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Yläreunan jälkeen (selaa sivu)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Virheellinen verkkosivuston nimi" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Virheellinen kieli" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Virheellinen aikavyöhyke" + +#, php-format +msgid "Invalid value: %s" +msgstr "Virheellinen arvo: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Virheellinen lähetysten tallennustila" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Virheellinen tiedostojen nimeämistapa" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Virheellinen kuvakkeen leveys" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Virheellinen kuvakkeen korkeus" + +msgid "Invalid medium size" +msgstr "Virheellinen keskikokoisen koko" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Virheellinen vesileiman prosentti" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Virheellinen vesileiman läpinäkyvyys" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Virheellinen teema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Virheellinen arvo" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Virheellinen teeman sävy" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Virheellinen teeman pääväri" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Virheellinen teeman yläpalkin painikkeen väri" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Virheellinen teeman kuvalistauksen koko" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Virheellinen käyttäjätunnus" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Virheellinen sähköposti-tila" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Virheellinen SMTP-portti" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Virheellinen SMTP-turvallisuus" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Virheellinen henkilökohtaisen tilan käyttäjä ID" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Virheellinen tai varattu ohjaus" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Virheellinen verkkosivun yksityinen tila" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Virheellinen verkkosivun sisällön salaus tila" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Virheellinen etusivun tyyli" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Virheellinen etusivun painikkeen väri" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Virheellinen kotisivun toiminnallisuus" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Virheellinen otsikko" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Virheellinen tila" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Virheellinen tyyppi" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Virheellinen näkyvyys" + +msgid "Invalid internal type" +msgstr "Virheellinen sisäinen tyyppi" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Virheellinen kohdemääritys" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Virheellinen suhteellinen määritys" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Virheellinen ikoni" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Virheellinen URL avain" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Virheellinen tiedostopolku" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Virheellinen linkin URL" + +msgid "Invalid user minimum age" +msgstr "Virheellinen käyttäjän minimi ikä" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Vain aakkosnumeerisia, tavuviiva ja alaviivat ovat sallittuja" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Virheellinen osoite" + +msgid "Routes can't be the same" +msgstr "Ohjaukset ei voi olla samoja" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Virheellinen kuvan lähetyskansio" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Virheellinen call to action -osoite" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Suurin sallittu %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Ei voida uudelleenohjata %m olemassa olevaan kansioon (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Ei voida uudelleenohjata %m olemassa olevaan ohjaukseen (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "%m ei voida uudelleenohjata %r (käyttäjätunnuksen törmäys)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Virheellinen SMTP-palvelin" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Virheellinen SMTP:n käyttäjänimi" + +msgid "Invalid key" +msgstr "Virheellinen avain" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "URL avain on jo käytössä toisella sivulla (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Tiedostopolku on jo käytössä toisella sivulla (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Sivun %s sisältöä ei voida tallentaa." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Seurataan" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Tietoa" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Kuvan tunniste" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Lähettäjän IP-osoite" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Estä IP-osoite" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP-osoite jo estetty" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Lähetetty" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Kuva %i albumissa %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Kuva %i kategoriassa %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Kuva %i yläpidetty %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Suorat linkit" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Kuvan linkki" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Kuvan osoite" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Kuvakkeen osoite" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Keskikoon osoite" + +msgid "Full image" +msgstr "Koko kuva" + +msgid "Full image (linked)" +msgstr "Koko kuva (linkitetty)" + +msgid "Medium image (linked)" +msgstr "Keskikokoinen kuva (linkitetty)" + +msgid "Thumbnail image (linked)" +msgstr "Kuvakkeen kuva (linkitetty)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Vaaditaan kirjautumista" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP-osoite on jo estetty" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Puuttuva tieto" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Virheellinen rooli" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Käyttäjätunnus jo käytössä" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Anna salasana tai muu sosiaalisen verkoston yhteys ennen %s poistamista" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Anna sähköpostiosoite tai muu sosiaalisen verkoston yhteys ennen %s poistamista" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s yhteys on katkastu." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Testisähköposti %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Tämä on vain testi" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Testisähköposti lähetetty osoitteeseen %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Ladataan %s tietoja" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Seurataan käyttäjää %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Käyttäjän %s seuranta lopetettu" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Tykätty sisällöstä" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Ei tykätty sisällöstä" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u tykkäsi sinun %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u seuraa sinua" + +msgid "A private user" +msgstr "Yksityinen käyttäjä" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Väärä käyttäjätunnus tai salasana" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Kirjaudu sisään" + +msgid "Moderate" +msgstr "Valvonta" + +msgid "Upload images" +msgstr "Lataa kuvia" + +msgid "Upload plugin" +msgstr "Kuvien lataus liitännäinen" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Kuvahaun tulokset %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Albumihaun tulokset %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Käyttäjähaun tulokset %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Käyttäjätunnus" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profiili" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Linkitetyt tilit" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Virheellinen kuvan vanheneminen: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Sähköposti lähetetty osoitteeseen %s aktivointi-ohjeiden kera" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Virheellinen nimi" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Virheellinen verkkosivu" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Väärä salasana" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Käytä uutta salasanaa" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Muutokset tallennettu" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Salasana vaihdettu" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Salasana on luotu." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Väärä käyttäjätunnus/sähköposti" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Asetukset käyttäjälle %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Sinun on hyväksyttävä ehdot ja tietosuojakäytäntö" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Sinun tulee olla vähintään %s vuotta vanha käyttääksesi sivustoa." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Rekisteröidy" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Lähetä" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Käyttäjän %s kuvat" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Tulokset haulle" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%s tykännyt" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Tykätty" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Seuraajat" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albumia %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) %w" + +msgid "Discovery" +msgstr "Löytö" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Tarkennettu haku" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Satunnainen" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Ilmoitukset (%s)" + +msgid "Lights" +msgstr "Valot" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Ilmoitukset" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Sinulla ei ole yhtään ilmoituksia" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Profiilini" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Kirjaudu ulos" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Olemme vastaanottanut pyynnön muuttaa sähköpostiosoite <a href=\"%u\">%n</a> käyttäjätunnukselle %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Viedäksesi prosessin loppuun, sinun täytyy <a href=\"%s\">aktivoida sähköpostisi</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Vaihtoehtoisesti voit kopioida ja sijoittaa seuraavan linkin selaimeen: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Jos et tehnyt tätä, jätä viesti huomioimatta." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Tämä pyyntö on tehty IP-osoitteesta: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Saimme pyynnön rekisteröidä %n käyttäjätunnus %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Viedäksesi prosessin loppuun, sinun täytyy <a href=\"%s\">aktivoida käyttäjätunnuksesi</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Saimme pyynnön nollata salasanasi käyttäjätunnukselle <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Nollataksesi salasanasi <a href=\"%s\">klikkaa tästä</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hei %n, tervetuloa palveluun %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Käyttäjätunnuksesi on nyt valmis ja voit siirtää kuvia, luoda albumeja sekä asettaa sisältöäsi yksityiseksi. Tutki myös muita mahtavia ominaisuuksia." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Muuten, täältä löytyy sinun upea profiilisivu: <a href=\"%u\">%n</a>. Anna mennä ja muokkaa sitä, se on sinun!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Kiitos liittymisestäsi" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Tämä sähköposti lähettiin sinulle palvelusta %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Raahaa ja tiputa tai liitä kuva tähän lähettääksesi sen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Valitse kuvat lähetettäväksi" + +msgid "browse from your computer" +msgstr "Selaa tietokoneeltasi" + +msgid "add image URLs" +msgstr "lisää kuvan osoite" + +msgid "You can also %i or %u." +msgstr "Voit myös %i tai %u." + +msgid "browse from your device" +msgstr "selaa laitteesta" + +msgid "take a picture" +msgstr "ota kuva" + +msgid "You can also %i, %c or %u." +msgstr "Voit myös %i, %c tai %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Muokkaa tai muuta kuvan kokoa osoittamalla kuvan esikatselua" + +msgid "Edit any image by touching the image preview" +msgstr "Muokkaa kuvaa koskettamalla kuvan esikatselua" + +msgid "your computer" +msgstr "tietokoneesi" + +msgid "You can add more images from %i or %u." +msgstr "Voit lisätä kuvia %i tai %u." + +msgid "your device" +msgstr "laitteesi" + +msgid "You can add more images from %i, %c or %u." +msgstr "Voit lisätä kuvia %i, %c tai %u." + +msgid "Uploading %q %o" +msgstr "Ladataan %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "valmis" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Ladataan kuvia, kestää vielä hetken." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Lähettäminen valmis" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Ladattu sisältö lisätty %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Voi %c juuri ladatun sisällön tai %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Voit %c juuri ladatun sisällön." + +msgid "create a new album" +msgstr "luo uusi albumi" + +msgid "move it to an existing album" +msgstr "siirrä olemassa olevaan albumiin" + +msgid "create an account" +msgstr "luo uusi käyttäjätunnus" + +msgid "sign in" +msgstr "kirjaudu sisään" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Yhtään %s ei ladattu" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Joitakin virheitä havaittu eikä järjestelmä voinut suorittaa prosessiasi loppuun asti." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Valitse kategoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Merkise tämä, jos lataus on sopimatonta" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Sopimaton lataus" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Lähetetään" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "peruuta jäljellä olevat" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Huomio: Joitakin kuvia ei voitu lähettää." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "lue lisää" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Katso <a data-modal=\"simple\" data-target=\"failed-upload-result\">virheraportti</a> saadaksesi lisätietoja." + +#, php-format +msgid "Register to get %s" +msgstr "Rekisteröidy saadaksesi %s" + +msgid "reset" +msgstr "nollaa" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "sulje" + +msgid "Note" +msgstr "Muistiinpano" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Meidän on hyväksyttävä ladattu sisältö ennen kuin voit jakaa." + +msgid "copy" +msgstr "kopioi" + +msgid "insert" +msgstr "lisää" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Poista" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Otsikko" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "valinnainen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Muokkaa kuvan kokoa" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Leveys" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Korkeus" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Huom: Animoitujen GIF kuvien koko ei muutu." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Poista kuva automaattisesti" + +msgid "Sign up" +msgstr "Kirjaudu" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s muokataksesi tai poistaaksesi automaattinen kuvien poisto käytöstä." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Merkitse kuva sopimattomaksi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Liputa sopimattomaksi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Kuvaus" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Lyhyt kuvaus tästä kuvasta" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Lisää kuvien osoitteet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Lisää kuvien osoitteet tähän" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Luo albumi" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Ladattu sisältö siirretään tähän äskettäin luotuun albumiin." + +msgid "existing album" +msgstr "olemassa oleva albumi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Siirrä albumiin" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Valitse olemassa oleva albumi siirtääksesi lataamasi kuvat sinne. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uuden albumin</a> ja siirtää kuvat sinne." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Virheraportti" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Katselijan linkit" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML-koodit" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML kuva" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML kokonainen linkki" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML-linkki keskikokoiseen" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML-kuvake linkillä" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBkoodit" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode kokonainen" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCOde kokonainen linkki" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode keskikokoisen linkki" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode-kuvake linkillä" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown täysi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown täysi linkitetty" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown keskikokoinen linkitetty" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown kuvake linkitetty" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Kaikilla näillä sanoilla" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Kirjoita tärkeät sanat: kolmivärinen rottaterrieri" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Juuri tällä sanalla tai ilmauksella" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Kirjoita tarkat sanat lainausmerkkien sisään: \"kolmivärinen rottaterrieri\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Ei millään näistä sanoista" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Lisää miinusmerkki niiden sanojen eteen, joilla et halua hakea: -nainen, -\"elin\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Tallennustila" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP-osoite" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albumin nimi" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "siirrä olemassa olevaan albumiin" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Albumin kuvaus" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Lyhyt kuvaus albumista" + +msgid "Album privacy" +msgstr "Albumin yksityisyys" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Kuka voi nähdä tämän sisällön" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Yksityinen (vain minä)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Yksityinen (vain linkin tietäville)" + +msgid "Private (password protected)" +msgstr "Yksityinen (salasanalla suojattu)" + +msgid "Album password" +msgstr "Albumin salasana" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nimi" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategorian nimi" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Osoite avain" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategorian osoite avain" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Vain kirjaimia, numeroita ja väliviivoja" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Lyhyt kuvaus kategoriasta" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Nimetön kuva" + +msgid "Mark this if the image is not safe for work" +msgstr "Merkitse tämä, jos kuva ei ole turvallinen töissä katseltavaksi" + +msgid "Flag not safe" +msgstr "Liputa ei turvalliseksi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Polku" + +msgid "Local path (absolute)" +msgstr "Paikallinen polku (absoluuttinen)" + +msgid "Directory structure" +msgstr "Hakemistorakenne" + +msgid "Parse top level folders as users (username)" +msgstr "Jäsennä ylätason kansiot käyttäjinä (käyttäjänimi)" + +msgid "Parse top level folders as albums" +msgstr "Jäsennä ylätason kansiot albumeina" + +msgid "Don't parse folders" +msgstr "Älä jäsennä kansioita" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Kun jäsennetään ylätason kansioita käyttäjinä, toisen tason kansiot jäsennetään käyttäjän albumeina. Jäsennys ylätason kansioista albumeina lisää nämä vierasalbumeiksi." + +msgid "Threads" +msgstr "Langat" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Tämä määrittää kuinka intensiivinen ja nopea tuontiprosessi on. Älä käytä enempää kuin %s säiettä jaetulla palvelimella." + +msgid "You can use wildcard * characters." +msgstr "Voit käyttää jokerimerkkejä *." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Päättymispäivä" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Esimerkki" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Mihin päivämäärään asti IP-osoite on estetty? Jätä tyhjäksi, jos ei päättymispäivää." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Viesti" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Viesti, HTML tai osoitteetn uudelleenohjaus" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Olemassaoleva albumi" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "luo uusi albumi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Tallennustilan nimi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Alue" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Tallennustilan alue" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Varastoämpäri" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Avain" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Tallennustilan avain" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Salaisuus" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Tallennustilan salaisuus" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Yksityinen avain" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON avain" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Tarvitset <a %s>palvelun käyttäjätunnuksen</a> tätä varten." + +msgid "Service name" +msgstr "Palvelun nimi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identiteetti osoite" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identiteetti API päätepiste" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API päätepiste OpenStack identiteetille" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Käyttäjänimi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Säilö" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Säilytystila" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Vuokralaisen id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Vuokralaisen id (käyttäjä id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Vuokralaisen nimi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Vuokralaisen nimi (käyttäjänimi)" + +msgid "Storage endpoint" +msgstr "Tallennuksen päätepiste" + +msgid "Server address" +msgstr "Palvelimen osoite" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Tallennustilapalvelimen Isäntänimi tai IP-osoite" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Palvelimen polku" + +msgid "Server login" +msgstr "Palvelimen sisäänkirjautuminen" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Palvelimen salasana" + +msgid "Local path" +msgstr "Paikallinen polku" + +msgid "Local path where the files will be stored" +msgstr "Paikallinen polku, johon tiedostot tallennetaan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Tallennustilan kapasiteetti" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Esimerkiksi: 20 GB, 1TB, jne." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Tämä tallennustila otetaan pois käytöstä, kun sen kapasiteetti loppuu. Jätä se tyhjäksi tai nollaksi, jos et halua rajoitusta." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Tallennustilan osoite" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Järjestelmä uudelleen ohjaa tämän tallennustilan kuvat tähän osoitteeseen." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "näytä lisää" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Lataa lisää" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Valitse kaikki" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Poista valinta" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Valittu" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Toiminto" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Hae upotuskoodit" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Määritä kategoria" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Liputa turvalliseksi" + +msgid "Create new album" +msgstr "Luo uusi albumi" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Kirjaudu tilillä" + +msgid "Continue with %label%" +msgstr "Jatka mallilla %label%" + +msgid "Home" +msgstr "Etusivu" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Täällä ei ole mitään nähtävää." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Kaikki kuvat siirretään tähän vastaluotuun albumiin. Voit myös siirtää kuvat <a class=\"modal-switch\" data-switch=\"move-existing-album\">olemassa olevaan albumiin</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Valitse olemassa oleva albumi siirtääksesi kuvan. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uuden albumin</a> ja siirtää kuva sinne." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Valitse olemassa oleva albumi siirtääksesi albumin sisältö. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uusi albumi</a> ja siirtää albumin sisältö siihen." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Valitse olemassa oleva albumi siirtääksesi kuvat. Voit myös <a class=\"modal-switch\" data-switch=\"move-new-album\">luoda uuden albumin</a> ja siirtää kuvat sinne." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Kaikki valitut kuvat tullaan siirtämään tähän kategoriaa." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Ei yhtään kategoriaa." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Liputa sisältö turvalliseksi" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Haluatko varmasti vahvistaa tämän sisällön turvalliseksi?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Liputa sisältö sopimattomaksi" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Haluatko varmasti vahvistaa tämän sisällön sopimattomaksi?" + +msgid "Confirm approval" +msgstr "Vahvista hyväksyntä" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "Haluatko todella poistaa kaiken valitun sisällön? Tätä ei voi kumota." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Varmista poisto" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Haluatko varmasti poistaa tämän sisällön? Toimintoa ei voi perua." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Haluatko todella poistaa kaiken valitun sisällön? Tätä ei voi kumota." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Haluatko varmasti poistaa kaiken valitun sisällön? Toimintoa ei voi perua." + +msgid "Fullscreen" +msgstr "Koko näyttö" + +msgid "Exit fullscreen" +msgstr "Poistu koko näytöstä" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Vieras" + +msgid "Keyboard shortcuts" +msgstr "Pikanäppäimet" + +msgid "Private album" +msgstr "Yksityinen albumi" + +msgid "Password protected" +msgstr "Salasana suojattu" + +msgid "Uploaded by guest" +msgstr "Ladannut vieras" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Albumista %s" + +msgid "Uploaded by private" +msgstr "Ladannut yksityinen" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "%u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Ota käyttöön sopimattoman sisällön lippu" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Sivua ei ole olemassa" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Pyydettyä sivua ei löydy" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Etsi jotakin muuta" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Käyttäjätunnus poistettu" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Käyttäjätunnuksesi on melkein valmis" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Teille on lähetetty sähköpostiviesti osoitteeseen %s josta löydätte tarkemmat ohjeet käyttäjätunnuksen vahvistamiseen. Käyttäjätunnuksen vahvistamislinkki on voimassa 48 tuntia. Jos et saanut sähköpostiviestiä, tarkista roskapostit. " + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Lähetä aktivointi uudelleen" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Sähköpostiosoite vaihdettu onnistuneesti osoitteeseen %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Siirry profiiliini" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Vahvistuslinkki lähetetään syöttämääsi sähköpostiosoitteeseen käyttäjätunnuksen aktivointia varten." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Sinun sähköpostiosoitteesi" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Lähetä" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Teille on lähetetty sähköpostiviesti josta löydätte tarkemmat ohjeet salasanan vaihtamiseen. Jos et saanut sähköpostiviestiä, tarkista roskapostit." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Teille on lähetetty sähköpostiviesti josta löydätte tarkemmat ohjeet salasanan vaihtamiseen. Jos et saanut sähköpostiviestiä, tarkista roskapostit." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Lähetä ohjeet uudelleen" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Syötä käyttäjänimesi tai sähköpostiosoitteesi jatkaaksesi. Saatat joutua tarkistamaan roskapostikansiosi tai sallittujen luettelosi %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Käyttäjänimi tai sähköpostiosoite" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Salasanasi on nyt vaihdettu. Voit kokeilla kirjautua käyttämällä uutta salasanaasi." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Kirjaudu nyt sisään" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Kirjoita uusi salasana" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "vähintään %d merkkiä" + +msgid "Password strength" +msgstr "Salasanan vahvuus" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Kirjoita uusi salasanasi uudelleen" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Sähköposti lähetetty osoitteeseen %s aktivointi-ohjeiden kera. Jos et saanut sähköpostiviestiä, tarkista roskapostit." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Tämä sisältö on yksityistä" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Haluatko varmasti poistaa albumin ja kaikki sen kuvat? Toimintoa ei voi perua." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Tykkäsit tästä" + +msgid "Upload to album" +msgstr "Lataa albumiin" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Albumin osoite" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Lue ja täytä seuraavat ehdot ennen jatkamista:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Tämä sivusto sisältää tietoa, linkkejä ja kuvia seksuaalisesta materiaalista. Jos olet alle %s-vuotias, koet tällaisen materiaalin loukkaavaksi tai jos se on laitonta katsella tällaista materiaalia paikkakunnallasi, älä jatka.\n\nOlen vähintään %s-vuotias ja uskon, että aikuisena minulla on oikeus saada/katsella seksuaalista materiaalia. Haluan saada/katsella seksuaalista materiaalia.\n\nUskon, että aikuisten välinen seksuaalinen toiminta on vapaaehtoista ja ei ole loukkaavaa eikä säädytöntä. Seksuaalisen materiaalin katselu, lukeminen ja lataaminen ei riko paikkakuntani, kaupungin tai maani lakia.\n\nKatselemani seksuaalinen materiaali on vain omaan käyttööni ja en näytä sitä alaikäisille.\n\nOlen yksin vastuussa kaikista vääristä tiedoista tai oikeudellisista seurauksista liittyen materiaalin katseluun, lukemiseen tai lataamiseen tällä sivustolla. Lisäksi tämä sivusto tai sen konserniyhtiöt eivät ole vastuussa mistään oikeudellisista seurauksista, jotka johtuvat petollisen tulon saamisesta tai näiden verkkosivujen käytöstä.\n\nTämä ehtojen hyväksyminen muodostaa laillisen sopimuksen tämän sivuston ja sinun ja/tai yrityksen, jossa sinulla on laillinen tai tasapuolinen osuus. Jos jokin osan tästä sopimuksesta toimivaltainen tuomioistuin katsoo täytäntöönpanokelvottomaksi, se ei vaikuta muihin sopimuksen osiin." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Klikkaamalla \"Hyväksyn\" ilmoitat, että olet lukenut ja ymmärtänyt kaikki edellä mainitut edellytykset." + +msgid "I Agree" +msgstr "Hyväksyn" + +msgid "documentation" +msgstr "dokumentit" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "Tutustu tarkemmin %s täällä %d." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "Yhdistävä IP määritetään palvelimen muuttujalla %var%. Jos havaittu IP ei vastaa sinun IP-osoitettasi, se tarkoittaa, että verkkopalvelimesi on välityspalvelimen alla ja sinun on nipistettävä palvelinta asettamaan todellinen yhteys IP." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Nginx-sovelluksessa sinun on käytettävä %nginx%. Apache: %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Varmista, että käsittelet tätä ongelmaa, koska järjestelmä luottaa tarkkoihin IP-havaintoihin perustoimintojen tarjoamiseksi ja suojaamiseksi roskapostilta, tulvilta ja hyökkäyksiltä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Käytetty levytila" + +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." +msgstr "Tämän työkalun avulla voidaan lisätä sisältöä verkkosivustollesi osoittamalla järjestelmän polku tuotavan sisällön kanssa. Se tukee käyttäjien, albumien ja kuvien lisäämistä kansiopohjaisen rakenteen avulla." + +msgid "Automatic importing" +msgstr "Automaattinen tuonti" + +msgid "Reset to clear stats and logs." +msgstr "Nollaa tilastot ja lokit." + +msgid "Queued" +msgstr "Jonossa" + +msgid "Working" +msgstr "Työskentelee" + +msgid "Paused" +msgstr "Tauolla" + +msgid "Canceled" +msgstr "Peruutettu" + +msgid "Completed" +msgstr "Suoritettu" + +msgid "Actions" +msgstr "Toiminnot" + +msgid "Reset" +msgstr "Resetoi" + +msgid "Pause" +msgstr "Tauko" + +msgid "Resume" +msgstr "Palauta" + +msgid "Process log" +msgstr "Prosessiloki" + +msgid "Errors" +msgstr "Virheet" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Tila" + +msgid "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." +msgstr "Järjestelmä toimii ajoitetun komennon kanssa tuonnin jatkuvassa käsittelyssä. Se vaatii crontab-merkinnän." + +msgid "You can run the command in parallel by changing the integer value of %s%." +msgstr "Voit suorittaa komennon rinnakkain muuttamalla kokonaislukua %s%." + +msgid "Add import job" +msgstr "Lisää tuontityö" + +msgid "Process import" +msgstr "Prosessin tuonti" + +#, php-format +msgid "Top level folders as %s" +msgstr "Ylätason kansiot muodossa %s" + +msgid "Process" +msgstr "Prosessi" + +msgid "Cancel" +msgstr "Peruuta" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Peruuta Haluatko todella poistaa tuontitunnuksen %s?" + +msgid "Manual importing" +msgstr "Manuaalinen tuonti" + +msgid "The system will parse the contents of any available filesystem path." +msgstr "Järjestelmä jäsentää minkä tahansa käytettävissä olevan tiedostojärjestelmän polun sisällön." + +msgid "These processes must be manually created and handled with the web browser tab open." +msgstr "Nämä prosessit on luotava ja käsiteltävä manuaalisesti, kun verkkoselaimen välilehti on auki." + +msgid "Parser" +msgstr "Jäsennin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Lisää käyttäjä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rooli" + +msgid "Manager" +msgstr "manageri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Ylläpitäjä" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Sähköpostiosoite" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Tämä asetus on aina pois käytöstä käytettäessä henkilökohtainen verkkosivu tilaa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Lisää kategoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Lisää IP esto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Lisää tallennustila" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Palaa sivuihin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Verkkosivuston nimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Verkkosivuston otsake" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Verkkosivuston kuvaus" + +msgid "Powered by" +msgstr "Voimanlähteenä" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "Ota tämä käyttöön, jos haluat näyttää sosiaalisen verkoston painikkeita sisällön jakamiseksi." + +msgid "Automatic" +msgstr "Automaattinen" + +msgid "Forced" +msgstr "Pakotettu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Oletusaikavyöhyke" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Valitse alue" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Sallii kuvien, albumien ja käyttäjien etsimisen tietyllä hakulausekkeella." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Salli julkisesti ladattujen kuvien katselu. Tämä sallii myös kategoriat." + +msgid "guests" +msgstr "vieraat" + +msgid "Enables explore for guests." +msgstr "Mahdollistaa selauksen vieraille." + +msgid "Enables to browse images randomly." +msgstr "Salli kuvien satunnaisen katselun." + +msgid "Likes" +msgstr "Tykkäykset" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Salli käyttäjien tykätä sisällöstä ja vaikuttaa \"Tykätyimmät\" listaukseen." + +msgid "Followers allows users to follow each other." +msgstr "Salli seuraajien seurata toisiaan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Henkilökohtaisen tilan käyttäjä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Käyttäjän tunniste" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Sinun käyttäjäid on: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Käyttäjän ID henkilökohtaiseen tilaan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Henkilökohtaisen tilan ohjaus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Mukautettu ohjaus /käyttäjänimi /jonnekin. Käytä \"/\" ohjataksesi etusivulle." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Verkkosivun yksityinen tila" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Yksityinen näyttää verkkosivun vain rekisteröityneille käyttäjille" + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Yksityinen sisältö" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Oletus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Pakota yksityiseksi (itselle)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Pakota yksityiseksi (kaikille linkin tietäville)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Pakotettu yksityisyys ylikirjoittaa käyttäjän valitseman yksityisyysasetuksen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Sivun otsikko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Sivun tila" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktiivinen sivu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Toimeton sivu (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Vain aktiiviset sivut on saatavilla." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Tyyppi" + +msgid "Terms of service" +msgstr "Käyttöehdot" + +msgid "Privacy" +msgstr "Yksityisyys" + +msgid "Contact" +msgstr "Ota yhteyttä" + +msgid "Extra page" +msgstr "Lisäsivu" + +msgid "Internal page type" +msgstr "Sisäinen sivutyyppi" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Sinulla voi olla useita ylimääräisiä sivuja, mutta vain yksi muista sisäisistä erityistyypeistä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Sivun näkyvyys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Näkyvä sivu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Piilotettu sivu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Piilotetut sivut eivät näy järjestelmän valikoissa, mutta kuka tahansa linkin tietävä voi vierailla niillä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Vain kirjaimia, väliviivoja ja vinoviiva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Tiedostopolku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Tiedosto %f suhteessa %s tiedostoon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta avainsanat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta kuvaus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Lähdekoodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Ei kirjoitusoikeutta %s polkuun. Joudut lisäämään tämän tiedoston käyttäen ulkoista editoria." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Ei kirjoitusoikeutta kohteeseen %s. Joudut muokkaamaan tämän tiedoston sisältöä käyttäen ulkoista editoria." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Sivun sisältö: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Linkin URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Linkin kohde määritys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Valitse %s avataksesi sivun tai linkin uuteen ikkunaan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Linkin suhteellinen määritys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Vain kirjaimia, väliviivoja ja välilyöntejä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s määritys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Linkin ikoni" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Katso <a %s>ikoniviittauksista</a> täydellinen listaus tuetuista ikoneista." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Lajittelujärjestys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Sivun lajittelujärjestys valikoissa ja listoissa. Käytä \"1\" ensisijaisesti." + +msgid "pages" +msgstr "sivut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Haluatko varmasti poistaa sivun ID %s? Toimintoa ei voi perua." + +msgid "Enabled image formats" +msgstr "Käytössäolevat kuvamuodot" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Valitse ladattavaksi sallitut kuvaformaatit." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Salli kuvien lataus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Salli kuvien lataus. Tämä ei vaikuta ylläpitäjiin." + +msgid "Upload user interface" +msgstr "Lataa käyttöliittymä" + +msgid "On-page container" +msgstr "Sivusäiliö" + +msgid "route" +msgstr "Reitti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Vieraiden kuvien lataus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Salli vieraiden ladata kuvia." + +msgid "Moderate uploads" +msgstr "Kohtuullinen lataus" + +msgid "Guests" +msgstr "Vieraat" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Ota tämä käyttöön, kun haluat valvoa saapuvia latauksia. Kohdesisältö edellyttää valvontaa hyväksynnän saamiseksi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Ota käyttöön upotuskoodit (lataus)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Ota upotuskoodit käyttöön, kun lataus on valmis." + +msgid "Upload threads" +msgstr "Lähetyksen säikeet" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Yhtäaikaisten latausten määrä (rinnakkaiset lataukset)" + +msgid "Redirect on single upload" +msgstr "Uudelleenohjaa yksittäiseen lataukseen" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Salli uudelleenohjaus kuvan sivulta yksittäiseen lataukseen." + +msgid "Enable duplicate uploads" +msgstr "Salli kaksoiskappaleiden lähetys" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Salli kuvien kaksoikappaleiden lähetys samasta ip-osoitteesta 24 tunnin aikana. Tämä asetus ei vaikuta ylläpitäjiin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Ota käyttöön vanhentuvat lataukset" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Ota tämä käyttöön mikäli haluat sallia automaattisesti poistuvat kuvat." + +msgid "Auto delete guest uploads" +msgstr "Automaattisesti poista vieraiden lataukset" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Ota käyttöön vieraiden latausten automaattinen poisto tietyn ajan kuluttua." + +msgid "Maximum image size" +msgstr "Kuvan enimmäiskoko" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Tätä suuremmat kuvat pienennetään automaattisesti. Käytä arvoa nolla (0) ellet halua asettaa rajaa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Kuvan Exif tiedot" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Pidä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Valitse oletusarvo kuvien <a %s>Exif tiedoille</a> latauksissa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Kuvan Exif tiedot (käyttäjän asetus)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Salli käyttäjien valita miten kuvien Exif tietoja näytetään." + +msgid "Maximum upload file size" +msgstr "Lähetettävän kuvatiedoston maksimikoko." + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Palvelimen sallima maksimikoko on %s. Ylärajan asettavat %u ja %p (%f arvot)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Kuvien sijainti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Suhteessa Chevereton juureen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Minne kuvat tallennetaan? Riippuvainen Chevereton juuresta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Tallennustila" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Päiväkansiot" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Suora" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Päiväkansiot luovat %s rakenteen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Tiedoston nimeämistapa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Alkuperäinen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Sekoita alkuperäinen + arvottu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Alkuperäinen\" yrittää pitää kuvan alkuperäisen nimen. \"Arvottu\" generoi satunnaisen nimen. \"ID\" nimeää kuvan ID mukaan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Kuvakkeen koko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Kuvake muutetaan tämän kokoiseksi" + +msgid "Medium image fixed dimension" +msgstr "Keskikokoisen kuvan kiinteä koko" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Keskikokoisen kuvan kiinteä koko. Esimerkiksi, jos valitset \"leveys\", tämä tulee olemaan kuvan leveys ja kuvan korkeus lasketaan automaattisesti." + +msgid "Medium image fixed size" +msgstr "Keskikokoisen kuvan kiinteä koko" + +msgid "Width or height will be automatically calculated." +msgstr "Leveys tai korkeus lasketaan automaattisesti." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Vesileima" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Ota käyttöön vesileima kuvien latauksessa. Se voi olla logo tai muu kuva." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Varoitus: Ei voida kirjoittaa %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Käyttäjien vesileimat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Ota vesileima käyttöön vieraiden latauksissa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Ota vesileima käyttöön käyttäjien latauksissa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Ota vesileima käyttöön ylläpidon latauksissa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Tiedostojen vesileimat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Ota vesileima käyttöön GIF kuvien latauksissa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Kuvan vähimmäiskoko tarvitaan vesileiman käyttöön" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Kuva, jotka on tätä pienempiä, ei vesileimata. Käytä nolla (0), jos et halua asettaa vähimmäiskokoa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Vesileima" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Saat parhaimman tuloksen käyttämällä selkeää logoa, jossa on varjostus. Voit käyttää isoa kuvaa, jos tiedoston koko ei ole iso (suositeltava koko enintään 16KB). Tiedoston tulee olla PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Vesileiman sijainti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "Vasemmalla ylhäällä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "Vasemmalla keskellä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "Vasemmalla alhaalla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "Keskellä ylhäällä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "Keskellä keskellä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "Keskellä alhaalla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "Oikealla ylhäällä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "Oikealla keskellä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "Oikealla alhaalla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Suhteellinen sijainti vesileimalle. Ensiksi horisontaalinen ja sitten vertikaalinen kohdistus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Vesileiman prosentti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Vesileiman prosentuaalinen koko verrattuna kohde kuvaan. Arvo 1-100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Vesileiman marginaali" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Marginaalit vesileiman reunoilta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Vesileiman läpinäkyvyys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Vesileiman läpinäkyvyys lopullisessa vesileimatussa kuvassa. Arvot 0-100." + +msgid "Dashboard > Settings > Website" +msgstr "Hallintapaneeli > Asetukset > Verkkosivu" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Kategoriat ei toimi kun tutki ominaisuus on pois päältä. Palauttaaksesi tämän asetuksen, mene %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Haluatko varmasti poistaa %s kategorian? Toimintoa ei voi perua." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Huom: Kategorian poisto ei poista kategorian sisältämiä kuvia." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Muokkaa kategoriaa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Vanhentuu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Haluatko varmasti poistaa eston %s IP-osoitteelta? Toimintoa ei voi perua." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Estetyillä IP-osoitteilla ei ole pääsyä koko sivustolle." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Muokkaa IP estoa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Salli rekisteröitymiset" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Salli käyttäjien rekisteröityä palveluun." + +msgid "Enable user content delete" +msgstr "Salli käyttäjien poistaa sisältöä" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Salli käyttäjien poistaa omaa sisältöään palvelusta. Tämä asetus ei vaikuta ylläpitäjiin." + +msgid "Minimum age required" +msgstr "Vähimmäisikä vaaditaan" + +msgid "Empty" +msgstr "Tyhjä" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Jätä tyhjäksi, jos vähimmäikää ei vaadita sivuston käyttöön." + +msgid "Notify on user signup" +msgstr "Ilmoita käyttäjän rekisteröitymisen yhteydessä" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Ota tämä käyttöön, jos haluat saada sähköposti-ilmoituksen jokaisesta uudesta rekisteröitymisestä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Käyttäjätunnuksen ohjaus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Ota käyttöön, jos haluat käyttää osoiterivillä %s/käyttäjätunnus muotoa %s/user/kyttäjätunnus sijaan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Vaadi sähköpostivarmistus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Ota käyttöön käyttäjien sähköpostivarmistus rekisteröinnissä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Vaadi sähköpostiosoite rekisteröitäessä sosiaalisen verkoston tileillä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Vaadi sähköpostiosoite, kun käyttäjä rekisteröityy käyttäen sosiaalisen verkoston tilejä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Käyttäjän profiilikuvan maksimikoko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Maksimi tiedostokoko käyttäjän profiilikuvalle. (Palvelimen hyväksymä maksimikoko on %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Käyttäjän taustakuvan maksimikoko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Maksimi tiedostokoko käyttäjän taustakuvalle. (Palvelimen hyväksymä maksimikoko on %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Näytä ehtojen hyväksymisikkuna ennen sivustolle siirtymistä. Hyödyllinen aikuisille tarkoitetun sisällön sivustoille, joihin alaikäisiä ei sallita." + +msgid "Enable consent screen" +msgstr "Ota käyttöön ehtojen hyväksymisikkuna" + +msgid "Consent screen cover image" +msgstr "Ehtojen hyväksymisikkunan taustakuva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Estä kuvien lähettäjän IP-numero, jos järjestelmä havaitsee spämmäystä. Tämä ei vaikuta ylläpitäjiin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Ilmoita sähköpostilla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Salli järjestelmän lähettää sähköpostia spämmieston aktivoituessa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minuutin rajoitus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Tunnin rajoitus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Päivän rajoitus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Viikon rajoitus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Kuukauden rajoitus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Näytä sopimatonta sisältöä listauksessa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Ota käyttöön sopimatton sisällön näyttö listauksessa. Tämä ei vaikuta ylläpitäjiin ja voidaan ohittaa käyttäjän omista asetuksista." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Sumenna NSFW sisältö listauksessa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Ota käyttöön sopimattoman sisällön sumennus kuvien listauksessa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Näytä lippu sopimattomasta sisällöstä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Valitse tämä, jos haluat näyttää lipun sopimattomasta sisälällöstä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Näytä ei turvallista sisältöä satunnaisessa tilassa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Kohteita sivulla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Kuinka monta kohdetta näytetään sivua kohden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Listauksen tyyli" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Loputon vieritys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Tavallinen sivutus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Mitä sivunumerointitapaa käytetään." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Kuvan koko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Joustava" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Kiinteä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Kummatkin käyttävät kiinteää leveyttä, mutta joustava käyttää automaattista korkeutta." + +msgid "Album listing images requirement" +msgstr "Albumilistausvaatimus" + +msgid "explore" +msgstr "Selaus" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Asettaa minimi kuvamäärän, mitä näytetään selaustilassa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Listauksen sarakkeiden määrä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Määrittele näytettävien sarakkeiden määrä laitekohtaisesti." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Puhelin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phabletti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tabletti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Kannettava" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Työpöytä" + +msgid "theme editing" +msgstr "teeman muokkaus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Siirrä teemat kansioon %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Sävy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Vaalea" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Tumma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Pääväri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Heksadesimaali värikoodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Aseta sivuston pääväri. Arvon tulee olla <a href=\"%s\" target=\"_blank\">hexadesimaalimuodossa</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Yläpalkin painikkeen väri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Sininen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Vihreä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Oranssi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Punainen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Harmaa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Musta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Valkoinen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Yläpalkin painikkeiden, kuten \"Rekisteröidy\" painikkeen väri." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Käytä vektorilogoa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Ota käyttöön vektorilogo, joka on parempi laatuinen kaikilla laitteilla." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Vektorilogon kuva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Vektori versio verkkosivun logosta SVG-muodossa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Rasterilogon kuva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Bitmap versio verkkosivun logosta. PNG-formaatti suositeltu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Logon korkeus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Ei arvoa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Määrittele tarvittaessa logon korkeus tästä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon kuva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon kuva. Kuvan tulee olla yhtä korkea kuin leveä." + +msgid "Image load max. filesize" +msgstr "Kuvan lähetyksen maksimi tiedostokoko." + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Tätä kokoa suuremmissa kuvissa näytetään painike, jolla täyskokoisen kuvatiedoston voi ladata." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Ota Lataa kuva -painike käyttöön" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Tästä voit ottaa Lataa kuva -painikkeen käyttöön." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Salli oikean klikkaus kuvassa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Haluatko sallia hiiren oikean napin klikkausen kuvankatselusivulla." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Näytä Exif-tiedot" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Ota käyttöön Exif-tietojen näyttö." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Salli sosiaalinen jako" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Ota käyttöön sosiaalisten palveluiden jakopainikkeet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Ota käyttöön upotuskoodit (sisältö)" + +msgid "Everybody" +msgstr "Kaikki" + +msgid "Users only" +msgstr "Vain käyttäjät" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Ota upotuskoodit käyttöön sisällölle." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Sopimatonta sisältöä -valintaruutu latauksessa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Valitse tämä, jos haluat näyttää sopimatonta sisältöä -valintaruudun." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Mukautettu CSS-koodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Kirjoita mukautettu CSS-koodi tähän. Se tulee <style> -elementtiin juuri ennen </head> -elementtiä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Mukautettu JS-koodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Kirjoita mukautettu JS-koodi tähän. Se tulee <script> -elementtiin juuri ennen </head> -elementtiä." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Älä käytä %s -merkintää täällä. Tämä koskee tavallista JS-koodia, ei HTML-komentotunnisteita. Jos käytät komentotunnisteita täällä, rikot verkkosivustosi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Tyyli" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Aloitussivu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Aloitussivu + kuvia" + +#, php-format +msgid "Route %s" +msgstr "Reitti %s" + +msgid "upload" +msgstr "Lataa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Valitse etusivun tyyli. Muokataksesi lisää, mene app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Kannen kuva" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Haluatko varmasti poistaa tämän kuvan? Toimintoa ei voi perua." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Poista kuva" + +msgid "Add new cover image" +msgstr "Lisää uusi kansikuva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Vektori versio sivuston logosta SVG muodossa (vain etusivula)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Bitmap versio sivuston logosta (vain etusivula). PNG muoto on suositeltu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Tämä lisätään etusivulle %s tagin sisään. Jätä se tyhjäksi käyttääksesi oletussisältöä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Kappale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Toimintapainikkeen väri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Etusivun toimintapainikkeen väri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Toimintapainikkeen ääriviivan tyyli" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Ota käyttöön toimintapainikkeen ääriviivojen tyyli etusivulla." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Toiminnalisuus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Latauksen laukaisija" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Avaa osoite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Osoite toiminnallisuus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Anna absoluuttinen tai suhteellinen osoite" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Suhteellinen osoite %r osoittaa %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML toiminnallisuus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Tämä lisätään toiminnallisuuden <a> tagin sisään. Jätä se tyhjäksi käyttääksesi oletussisältöä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Käyttäjä ID:t" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Pilkuilla erotettu luettelo kohdekäyttäjätunnuksista kuvien näyttämiseksi kotisivulla. Jätä se tyhjäksi tai nollaksi nähdäksesi kaikki viimeisimmät kuvat." + +msgid "banners" +msgstr "bannerit" + +msgid "Automatic updates check" +msgstr "Automaattinen päivitysten tarkistus" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Kun otettu käyttöön, järjestelmä tarkistaa automaattisesti uudet päivitykset." + +msgid "Display available updates notification" +msgstr "Näytä ilmoitus päivityksistä" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Ota käyttöön ilmoitus uusista päivityksistä järjestelmään." + +msgid "Dump update query" +msgstr "Tyhjennä päivityskysely" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Ota tämä käyttöön, jos haluat tunnistaa ja asettaa oikean kielen automaattisesti jokaiselle käyttäjälle." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URL-osoitteet" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Kytke tämä päälle, jos tahdot käyttää SEO %s osoitteita." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Pakkaa koodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Ota käyttöön CSS ja JS koodin automaattinen pakkaus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Huolto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Kun otettu käyttöön, sivustolla näkyy huoltotila ilmoitus. Tämä asetus ei vaikuta pääkäyttäjille." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Kryptauksen avain" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Tätä suolaa käytetään muuntamaan numerollisesta tunnisteesta aakkosnumeerinen. Se luotiin asennuksen aikana." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP virhe raportointi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Ota käyttöön PHP:n <a %s>error_reporting()</a> viestien näyttö. Tämä tulee poistaa käytöstä tuotantoympäristössä." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Debug taso" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Ei mitään" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Virheen kirjaus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Näytö virheet ilman virheen kirjausta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Näytä ja kirjaa virheet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Katso <a %s>debug ohjeet</a> konfiguroidaksesi sen. Oletusarvoisesti taso on \"Virheen kirjaus\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "Ohjauksen avulla voit muokata oletusohjauksen lennosta. Vain aakkosnumeerisia, tavuviiva ja alaviivat ovat sallittuja. Tutustu %s, jos haluat ylikirjoittaa tai lisätä uusia ohjauksia." + +msgid "Image routing" +msgstr "Kuvan ohjaus" + +#, php-format +msgid "Routing for %s" +msgstr "%s ohjaus" + +msgid "Album routing" +msgstr "Albumin ohjaus" + +msgid "Hostname" +msgstr "Isäntänimi" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Isäntänimi, johon aliverkkotunnuksen yleismerkit lisätään." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "%s voi ohittaa tämän asetuksen." + +msgid "Language subdomains" +msgstr "Kielen aliverkkotunnukset" + +msgid "languages" +msgstr "Kielet" + +msgid "Username subdomains" +msgstr "Käyttäjätunnuksen aliverkkotunnukset" + +msgid "user profiles" +msgstr "käyttäjäprofiilit" + +msgid "Custom language strings" +msgstr "Muokatut kielikäännökset" + +msgid "language strings" +msgstr "kielikäännökset" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Oletuskieli" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Oletuskieli käyttöä varten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automaattinen kielenvalinta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Ota käyttöön automaattinen kielenvalinta käyttäjille." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Sivuston kielenvalinta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Ota käyttöön kielenvalinta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Sivustolla käytössä olevat kielet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Valitse sivuston käyttämät kielet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Laita HTTPS päälle tai pois" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Laita tallennustila päälle tai pois" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kiintiö" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktiivinen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Säilytysmuoto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Paikallista tallennustilaa käytetään oletuksena tai jos ulkoinen tallennustila ei ole aktiivinen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Jos tarvitse apua, katso <a %s>säilytystilan ohjeet</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Muokkaa tallennustilaa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Nimellä" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Sähköpostin lähettäjän nimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Sähköpostitila" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Kuinka sähköpostit lähetetään? SMTP on suositeltu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP-palvelin osoite ja portti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP-palvlein" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP-käyttäjänimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP-salasana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP-suojaustyyppi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Suojaamaton" + +msgid "Decode ID" +msgstr "Dekoodaus ID" + +msgid "Encode ID" +msgstr "Enkoodaus ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Lähetä testisähköposti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Käytä tätä nähdäksesi kuinka sähköpostit lähetetään. Suosittelemme käyttämään %s." + +msgid "Export a user" +msgstr "Vie käyttäjä" + +msgid "Export user" +msgstr "Vie käyttäjä" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Tämän avulla voit ladata käyttäjän vakiotiedot JSON-muodossa." + +msgid "Regenerate external storage stats" +msgstr "Luo ulkoisen tallennustilan tilastot uudelleen" + +msgid "Storage id" +msgstr "Tallennustunnus" + +msgid "Regenerate" +msgstr "Luo uudelleen" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Tämä laskee uudelleen kaikkien kohdetietovälineeseen liittyvien kuvatietueiden summan." + +msgid "Migrate image records from one external storage to another" +msgstr "Siirrä kuvatietueet ulkoisesta tallennustilasta toiseen" + +msgid "Source storage id" +msgstr "Lähteen tallennustilan tunnus" + +msgid "Target storage id" +msgstr "Kohteen tallennustilan tunnus" + +msgid "Migrate" +msgstr "Siirrä" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Tämä vain päivittää tietokannan. Sinun on siirrettävä todelliset tiedostot omaan kohdesäilöön. URL-osoitteiden uudelleenkirjoittaminen on erittäin suositeltavaa. Käytä nollaa (0) paikalliseen tallennustilaan." + +msgid "social networks" +msgstr "sosiaaliset verkostot" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Tarvitset <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> sovelluksen tätä varten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Tarvitset <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> sovelluksen tätä varten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter-käyttäjätili" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Tarvitset <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> sovelluksen tätä varten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Tarvitset <a href=\"http://vk.com/dev\" target=\"_blank\">VK ohjelman</a> tätä varten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "CK asiakas id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK asiakas salaisuus" + +#, php-format +msgid "%s spam protection" +msgstr "%s roskapostisuojaus" + +msgid "user generated content" +msgstr "käyttäjän luomaa sisältöä" + +#, php-format +msgid "%s API key" +msgstr "%s API avain" + +msgid "user signup" +msgstr "käyttäjän rekisteröityminen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Tarvitset <a href=\"%s\" target=\"_blank\">reCAPTCHA avaimen</a> tätä varten." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Huomaa, että jokainen reCAPTCHA-versio vaatii oman avainsarjansa. Älä unohda päivittää avaimia, jos vaihdat versioita." + +#, php-format +msgid "%s site key" +msgstr "%s sivuston avain" + +#, php-format +msgid "%s secret key" +msgstr "%s salainen avain" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA-kynnys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Kuinka monta epäonnistunutta kirjautumisyritystä ennen kuin pyydetään reCAPTCHA? Käytä nollaa (0) näyttääksesi aina reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Pakota %s yhteydenotto sivulle" + +msgid "Comments API" +msgstr "Kommentointi API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API toimii %s kanssa." + +msgid "Disqus shortname" +msgstr "Disqus lyhytnimi" + +#, php-format +msgid "%s public key" +msgstr "%s julkinen avain" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kommenttikoodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook tai mitä ikinä käytätkin. Tätä käytetään kuvan katselutilassa." + +msgid "Automatic approve" +msgstr "Hyväksy automaattisesti" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Ota tämä käyttöön, jos haluat hyväksyä tämän palvelun valvoman sisällön automaattisesti." + +msgid "Block content" +msgstr "Estä sisältö" + +msgid "Adult" +msgstr "Aikuinen" + +msgid "Teen and adult" +msgstr "Nuori ja aikuinen" + +msgid "Flag NSFW" +msgstr "Liputa NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics-koodi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics tai mitä ikinä käytätkin. Tämä koodi lisätään teemaan footeriin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Ohjeet APIn käyttöön löytyy <a %s>täältä</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 avain" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Käytä tätä avainta käyttäessäsi <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Liitännäisen ohjaus" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Ota käyttään liitännäisen ohjeet %u. Ohjeet tulee näkymään %s valikossa. Tämä asetus ei vaikuta ylläpitäjiin." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Aseta kustomoitu URL %p. Huomioi, että sinun tulee käsin kopioida se %s URL:iin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Evästeiden lakiteksti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Ota käyttöön evästeisiin liittyvä EU:n lakiteksti-ilmoitus. Huomautus: Tarvitset tämän vain, jos verkkosivusi sijaitsee EU:ssa ja jos otat käyttöön seurantaevästeet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Tallenna muutokset" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Tarkista virheet jatkaaksesi." + +msgid "Play GIF" +msgstr "Toista GIF" + +msgid "Load full resolution" +msgstr "Lataa täydessä resoluutiossa" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "Haluatko todella poistaa kaiken valitun sisällön? Tätä ei voi kumota." + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Lisätty %a ja kategorioitu %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Lisätty kohteeseen %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Lähetetty %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Lähetetty %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Vähemmän Efix tietoja" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Enemmän Exif-tietoja" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Jaa kuva" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Albumin tunniste" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Tässä albumissa" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Lähetä ja jaa kuviasi." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Vedä ja pudota minne tahansa aloittaaksesi kuvien lataamisen. %s rajoitus. Suorat kuvalinkit, BBCode- ja HTML-kuvakkeet." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Aloita lataaminen" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Rekisteröidy saadaksesi käyttöön kaikki huikeat ominaisuudet" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Hallitse sisältöäsi, luo yksityisiä albumeja, muokkaa profiiliasi ja paljon muuta." + +msgid "Sign in with your account" +msgstr "Kirjaudu sisään tililläsi" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Ei tunnusta? <a href='%s'>Rekisteröidy</a> nyt." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Kirjauduttu ulos" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Olet kirjautunut ulos palvelusta %s. Toivottavasti näemme pian uudelleen." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Siirry etusivulle" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Sivusto huollossa" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Suoritamme suunnitteltuja huoltotoimenpiteitä sivustolla. Tule takaisin muutaman minuutin päästä." + +msgid "This content is password protected." +msgstr "Tämä sisältö on salasanalla suojattu." + +msgid "Please enter your password to continue." +msgstr "Anna salasana jatkaaksesi." + +msgid "Send" +msgstr "Lähetä" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Lisää kuvien lataus mahdollisuus verkkosivuille, blogiin tai foorumille asentamalla liitännäinen. Tämä lisää painikkeen sivuille mahdollistaen kuvien lataamisen palvelimelle ja hoitaa automaattisesti kaiken taustalla. Kaikki toiminnot saatavilla mm. kuvien lataaminen raahaamalla ja tiputtamalla, etälataus sekä kuvien kokojen automaattinen muuttaminen." + +msgid "Supported software" +msgstr "Tuetut alustat" + +msgid "supported software" +msgstr "tuetut alustat" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Tämä liitännäinen toimii millä tahansa verkkosivulla, jolla käyttäjä voi muokata sisältöä. %sv latauspainike tulee näkymään automaattisesti työkalupalkissa ja ylimääräisiä muokkauksia ei siis tarvitse tehdä." + +msgid "Add it to your website" +msgstr "Asentaminen" + +msgid "options" +msgstr "asetuksia" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Sijoita liitännäisen koodi verkkosivun HTML-koodiin (mieluiten head-osion sisään). Liitännäiseen löytyy paljon %o, joilla voit muokata sen paremmin tarpeisiisi." + +msgid "Basic options" +msgstr "Asetukset" + +msgid "Color palette" +msgstr "Väripaletti" + +msgid "Button color scheme" +msgstr "Painikkeiden väriteema" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Upotuskoodit, jotka tulevat automaattisesti muokkauslaatikkoon" + +msgid "Sibling selector" +msgstr "Sisarvalikko" + +msgid "Sibling element selector where to place the button next to" +msgstr "Sisarelementin valitsin, johon sijoitetaan vieressä oleva painike" + +msgid "Sibling position" +msgstr "Sisarelementin sijainti" + +msgid "After" +msgstr "Jälkeen" + +msgid "Before" +msgstr "Ennen" + +msgid "Position relative to sibling element" +msgstr "Asema sisarelementtiin nähden" + +msgid "Advanced options" +msgstr "Edistyneet asetukset" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Tähän liitännäiseen on paljon edistyneitä muokkausasetuksia. Voit muokata mm. HTML, CSS, värejä, asettaa tarkkailijoita yms. Lue liitännäisen %d saadaksesi paremman käsityksen edistyneistä asetuksista." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Sinulla ei ole oikeutta tälle sivulle tai linkkisi on vanhentunut." + +msgid "Search results" +msgstr "Hakutulokset" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Haluatko varmasti poistaa tämän käyttäjän? Toimintoa ei voi perua." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Poista käyttäjä" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Liittynyt" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Rekisteröinti IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Aktiivinen" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Estetty" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Odottaa sähköpostia" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Odottaa hyväksyntää" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "merkkejä %i-%f<br>Kirjaimia, numeroita ja \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Latausten automaattinen poisto" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Tämä on oletusasetus kaikkiin kuvien lataukseen. Voit muuttaa tämän asetuksen latauksen yhteydessä." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Pidä <a %s>Exif tiedot</a> kuvan latauksessa" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Uutiskirje" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Lähetä minulle uutissähköposteja %s aiheesta" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Sisältöasetukset" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Näytä (muiden käyttäjien) sopimatonta sisältöä listauksissa" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Kieli" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Aikavyöhyke" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Nykyinen salasana" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Kirjoita nykyinen salasanasi" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Uusi salasana" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Varmista uusi salasana" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Lisää salasana, jotta voit kirjautua myös käyttäjänimelläsi tai sähköpostillasi." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Tällä käyttäjällä ei ole salasanaa. Lisää sellainen käyttäen tätä lomaketta." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Syötä salasanasi" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Salasana uudelleen" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Kirjoita salasanasi uudelleen" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Lähetä uusi kuva" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Poista olemassaoleva kuva" + +msgid "Make my profile and identity totally private" +msgstr "Tee profiilistani ja identiteetistäni täysin yksityinen" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Ota tämä käyttöön, jos haluat näkyä kuin anonyymi käyttäjä" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Tämä on oikea nimesi, ei käyttäjänimesi." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://sinunsivusi.fi" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Bio" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Kerro meille hieman sinusta" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Käyttäjällä ei ole yhteyksiä." + +msgid "Link your account to external services to be able to login here." +msgstr "Linkitä tilisi ulkoisiin palveluihin, jotta voit kirjautua sisään ja jakaa sisältöä." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Haluatko varmasti katkaista yhteyden %s käyttäjätunnukselta?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Tämä käyttäjätunnus on yhdistetty palveluun %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Haluatko varmasti katkaista yhteyden %s käyttäjätunnuksella?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Sinut kirjataan ulos etkä voi enää kirjautua sisään %s käyttäjätunnuksella." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Käyttäjätunnuksesi on yhdistetty palveluun %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "katkaise yhteys" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Yhdistettynä %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Voit vapaasti selata kaikkia jakamiani kuvia ja albumeita." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Painike" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Näytä kaikki kuvani" + +msgid "Login" +msgstr "Kirjaudu" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Onko sinulla jo tunnus? %s nyt." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "Lähetä uudelleen aktivointiviesti" + +#, php-format +msgid "I'm at least %s years old" +msgstr "Olen vähintään %s vuotta vanha" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Lähetä profiilin taustakuva" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Vaihda taustakuva" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Profiilin taustakuva poistetaan. Toimintoa ei voi perua. Olethan varma poistaessasi kuvaa?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Poista taustakuva" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Seuraaja" +msgstr[1] "Seuraajaa" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Seuraa" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Sinulla ei ole oikeuksia käyttää tätä sivustoa." + +msgid "Plugin" +msgstr "Liitännäinen" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Yleiset kysymykset/kommentit" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Tekijänoikeusrikkomus" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Virheellinen viesti" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Virheellinen aihe" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Sähköpostivirhe" + +msgid "Message sent" +msgstr "Viesti lähetetty" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Viesti lähetetty. Olemme sinuun yhteydessä pian." + +msgid "If you want to send a message fill the form below." +msgstr "Ota yhteyttä alla olevan lomakkeen kautta." + +msgid "Your name" +msgstr "Nimi" + +msgid "Subject" +msgstr "Aihe" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Kaikki muutoksesi menetetään, jos jatkat." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Muutokset tallennettu onnistuneesti." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Siirry takaisin lomakkeeseen" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "jatka silti" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Tallennetaan" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Lähetetään" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Hyväksy toiminto" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "tiedot" + diff --git a/app/languages/fr.po b/app/languages/fr.po new file mode 100644 index 0000000..7985aea --- /dev/null +++ b/app/languages/fr.po @@ -0,0 +1,5040 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-19 15:47+0000\n" +"PO-Revision-Date: 2021-06-19 15:47+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Adresse email incorrecte" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Nom d'utilisateur incorrect" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Mot de passe incorrect" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "La version installée est v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Vous ne pouvez pas vous connecter à %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "La dernière version disponible est v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Mise à jour nécessaire, lancement du téléchargement" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Aucune mise à jour nécessaire" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Vous possédez déjà la dernière version." + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Début du téléchargement v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s téléchargé, lancement de l'extraction" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Tentative d'extraction de v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Extraction terminée" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Procéder à l'installation de la mise à jour" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "La mise à jour a échoué" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Mise à jour en cours" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Fichier %s manquant" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Info de licence non valide" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Impossible d'enregistrer le fichier" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Extraction impossible de %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Impossible de créer le répertoire %s - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Impossible de mettre à jour le fichier %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Vérifiez les erreurs dans le formulaire pour continuer." + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Remarque : Ce contenu est privé mais toute personne disposant du lien pourra y accéder." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Remarque: Ce contenu est protégé par mot de passe mais toute personne ayant le mot de passe sera en mesure de voir cela." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Note : Ce contenu est privé. Changez la confidentialité à \"publique\" pour le partager." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Vous devez saisir le nom de l'album." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Confirmer" + +msgid "The content has been approved." +msgstr "Ce contenu a été approuvé." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Choisir un album existant" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Une erreur est survenue. Veuillez réessayer plus tard." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Veuillez sélectionner un type de fichier image valide." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Veuillez sélectionner une image d'une taille d'au plus %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Image de profil mise à jour." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Photo de couverture mise à jour." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Photo de couverture supprimée." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Erreur lors de la suppression de la photo de couverture." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Les mots de passe ne correspondent pas" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Mise à jour disponible v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Il ya une mise à jour disponible pour votre système. Vous pouvez télécharger et installer automatiquement cette mise à jour ou aller sur %s pour lancer le téléchargement du fichier." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Les notes de version de cette mise à jour sont les suivantes :" + +msgid "system requirements" +msgstr "exigences du système" + +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "Je confirme que ce serveur répond à %s de cette mise à jour" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Mettre à jour maintenant" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Ce site web utilise la dernière version %s" + +msgid "Please review the system requirements before proceeding" +msgstr "Veuillez consulter la configuration requise avant de poursuivre" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "chargement" + +msgid "Toggle select" +msgstr "Basculer la sélection" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "J'aime" + +msgid "Toggle flag" +msgstr "Basculer le drapeau" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Modifier" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albums" + +msgid "Approve" +msgstr "Approuver" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Supprimer" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Fermer" + +msgid "Previous" +msgstr "Précédent" + +msgid "Next" +msgstr "Suivant" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Image du presse-papier" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Fichier trop volumineux." + +msgid "Invalid or unsupported file format." +msgstr "Format de fichier incorrect ou non pris en charge." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Certains fichiers n'ont pu être ajoutés" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "image" +msgstr[1] "images" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Les albums de %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Image modifiée avec succès." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privé" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album modifié avec succès." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Clé URL non valide." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Clé URL de catégorie déjà utilisée." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Catégorie supprimée avec succès." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Catégorie %s ajoutée." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Date d'expiration non valide." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s déjà bannie." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s bannie." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Bannissement IP supprimé avec succès." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Merci de compléter tous les champs requis." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Capacité de stockage invalide. Merci d'utiliser un format valide." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "La capacité de stockage ne peut pas être inférieure à son usage actuel (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL non valide." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Stockage modifié avec succès." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Utilisateur ajouté avec succès." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Ce contenu a été supprimé." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Ce contenu a été déplacé." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Sélectionner" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Désélectionner" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Ce contenu a été modifié." + +#, javascript-format +msgid "Import ID %s removed" +msgstr "ID d'importation %s supprimé" + +msgid "Spam detected" +msgstr "Spam détecté" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albums" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Flooding détecté. Vous ne pouvez télécharger que %limit% %content% par %time%." + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Sans titre" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Images de %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privé" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Publique" + +msgid "Me" +msgstr "Moi" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Lien" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Mot de passe" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "vue" +msgstr[1] "vues" + +msgid "After %n %t" +msgstr "Après %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minute" +msgstr[1] "minutes" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "heure" +msgstr[1] "heures" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "jour" +msgstr[1] "jours" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "semaine" +msgstr[1] "semaines" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mois" +msgstr[1] "mois" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "an" +msgstr[1] "ans" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Pas d'auto suppression" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Impossible d'ouvrir %s pour écriture" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Envoi dupliqué" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Envoi privé" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "j'aime" +msgstr[1] "j'aime" + +msgid "Recent" +msgstr "Récent" + +msgid "Trending" +msgstr "Tendances" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Utilisateurs principaux" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Plus récentes" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Plus anciennes" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Plus vues" + +msgid "Popular" +msgstr "Populaire" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Plus aimés" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Explorer" + +msgid "Animated" +msgstr "Animé" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Rechercher" + +msgid "People" +msgstr "Personnes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Image" +msgstr[1] "Images" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Utilisateur" +msgstr[1] "Utilisateurs" + +msgid "adult" +msgstr "adulte" + +msgid "teen" +msgstr "adolescent" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "Le contenu du type %s est interdit" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Impossible de créer le dossier de destination %s" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interne" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Illimité" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "utilisé" + +msgid "Private profile" +msgstr "Profil privé" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "seconde" +msgstr[1] "secondes" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "il y a %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "il y a peu de temps" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Tableau de bord" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Il y a une mise à jour disponible pour votre système. Aller à %s pour télécharger et installer cette mise à jour." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "La base de données système n'est pas à jour. Vous devez utiliser l'outil de <a href=\"%s\">mise à jour</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Le site web est en mode maintenance. Pour annuler ce paramètre, allez sur le <a href=\"%s\">Tableau de bord > Paramètres</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Vous devez désactiver les rapports d'erreur PHP pour l'environnement de production. Aller dans les <a href='%s'>paramètres</a> pour résoudre ce problème." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Vous n'avez pas modifié les paramètres email par défaut. Modifiez votre <a href='%s'>Compte</a> pour résoudre ce problème." + +msgid "There is an update available for your Chevereto based website." +msgstr "Il y a une mise à jour disponible pour votre site Chevereto." + +msgid "admin dashboard" +msgstr "Tableau de bord administrateur" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Vous pouvez appliquer cette mise à jour directement à partir de votre %a ou la télécharger à partir de %s puis l'installer manuellement." + +#, php-format +msgid "view on %s" +msgstr "vue sur %s" + +msgid "cookie policy" +msgstr "politique des cookies" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Nous utilisons nos propres cookies et ceux de tiers pour améliorer votre expérience de navigation et nos services. Si vous continuez à utiliser notre site, il est entendu que vous acceptez la %cookie_policy_link." + +msgid "I understand" +msgstr "je comprends" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Mot de passe oublié ?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Réinitialiser le mot de passe" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Renvoyer l'email d'activation du compte" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Ajouter votre adresse email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Adresse email modifiée" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s dit que vous êtes un robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Nom d'utilisateur/email incorrect" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "L'utilisateur n'a pas d'adresse email." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Demande refusée" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Le compte doit être activé pour utiliser cette fonctionnalité" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Compte déjà activé" + +msgid "Account banned" +msgstr "Compte banni" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Merci de patienter 15 minutes pour le traitement de l'email. Vous pourrez réessayer ultérieurement." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Réinitialisez votre mot de passe sur %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Validation de votre compte sur %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Bienvenue sur %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Adresse email déjà utilisée" + +msgid "Password required" +msgstr "Mot de passe requis" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Codes d'intégration" + +msgid "Sub albums" +msgstr "Sous albums" + +msgid "Info" +msgstr "Informations" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Album %a hébergé dans %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistiques" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Images" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albums" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Utilisateurs" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Paramètres" + +msgid "Bulk importer" +msgstr "Importer en masse" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Installer la mise à jour" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "rechercher les mises à jour" + +msgid "Contributing" +msgstr "Contribuer" + +msgid "Support" +msgstr "Support" + +msgid "Bug tracking" +msgstr "Suivi des bugs" + +msgid "Documentation" +msgstr "Documentation" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Version de PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Serveur" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Version de MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Infos du serveur MySQL" + +msgid "Graphics Library" +msgstr "Bibliothèque graphique" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Envoi de fichiers" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Activé" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Désactivé" + +msgid "Max. upload file size" +msgstr "Taille maximum de l'image importée" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Taille d'envoi du formulaire maximale" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Temps d'exécution maximal" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d seconde" +msgstr[1] "%d secondes" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Limite de mémoire" + +msgid "Rebuild stats" +msgstr "Reconstruire les stats" + +msgid "Connecting IP" +msgstr "IP de connexion" + +msgid "Not your IP?" +msgstr "Pas votre IP ?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Site web" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Contenu" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Pages" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Listes" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Envoi d'image" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Catégories" + +msgid "Consent screen" +msgstr "Disclamer" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Protection flood" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Thème" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Page d'accueil" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Bannières" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Système" + +msgid "Routing" +msgstr "Adressage" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Langues" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Stockage externe" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Adresse email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Réseaux sociaux" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Services externes" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Bannissements IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Paramètres additionnels" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Outils" + +msgid "Can't delete all homepage cover images" +msgstr "Vous ne pouvez pas supprimer toutes les images de la page d'accueil" + +msgid "Homepage cover image deleted" +msgstr "Image de la page d'accueil supprimé" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Local" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Externe" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Tout" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "rechercher du contenu" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Ajouter page" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Modifier la page ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "La page a été ajoutée avec succès." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Cette page a été supprimée." + +msgid "homepage" +msgstr "Page d'accueil" + +#, php-format +msgid "Before main title (%s)" +msgstr "Avant le titre (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Après le bouton (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Après la photo (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Après la liste d'images (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Avant pagination" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Après pagination" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Contenu (image et album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Colonne du menu à propos" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Avant les commentaires" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Page de l'image" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Intérieur du haut de la page visualisation (page image)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Intérieur du bas de la page visualisation (page image)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Après la page de visualisation (page image)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Avant le haut de page (page image)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Après le haut de page (page image)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Bas de page (page image)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Page album" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Avant le haut de page (page album)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Après le haut de page (page album)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Page de profil utilisateur" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Après le haut de page (profil utilisateur)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Avant le listing (profil utilisateur)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Page explorer" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Après le haut de page (page explorer)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nom de site web incorrect" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Langage incorrect" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Fuseau horaire incorrect" + +#, php-format +msgid "Invalid value: %s" +msgstr "Valeur invalide : %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Mode de stockage d'envois incorrect" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Nommage de fichiers envoyés incorrect" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Largeur des miniatures incorrecte" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Hauteur de miniature incorrecte" + +msgid "Invalid medium size" +msgstr "Taille moyenne invalide" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Pourcentage du filigrane non valide" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Opacité du filigrane non valide" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Thème non valide" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Valeur incorrect" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Ton de thème non valide" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Couleur principale du thème incorrecte" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Couleur du bouton de la barre supérieure du thème non valide" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Taille de thème de listing d'images non valide" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "ID utilisateur non valide" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Mode email non valide" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Port SMTP non valide" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Sécurité SMTP non valide" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Mode de site web non valide" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "ID utilisateur du mode personnel non valide" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Route réservée ou non valide" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Mode de confidentialité de site web non valide" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Mode de confidentialité du contenu de site web non valide" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Style de page d'accueil non valide" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Couleur du bouton d'action de l'accueil non valide" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Fonctionnalité d'appel à l'action de la page d'accueil non valide" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Titre non valide" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Statut non valide" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Type non valide" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Visibilité non valide" + +msgid "Invalid internal type" +msgstr "Type interne non valide" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Attribut cible non valide" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Attribut rel non valide" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Icône non valide" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Clé URL non valide" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Chemin de fichier non valide" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Lien URL non valide" + +msgid "Invalid user minimum age" +msgstr "Age minimum invalide" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Seuls les caractères alphanumériques, les traits d'union et les underscore sont autorisés" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL non valide" + +msgid "Routes can't be the same" +msgstr "Les adressages ne peuvent pas être identiques." + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Répertoire d'envoi d'images non valide" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "URL d'appel à l'action non valide" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Max. autorisé %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Impossible d'adresser %m à un dossier existant (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Impossible d'adresser %m à un adressage existant (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Impossible d'adresser %m à %r (Collision de nom d'utilisateur)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Serveur SMTP non valide" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Nom d'utilisateur SMTP non valide" + +msgid "Invalid key" +msgstr "Clé non valide" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Cette URL clé est déjà utilisée par une autre page (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Ce chemin de fichier est déjà utilisé par une autre page (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Impossible de sauvegarder le contenu de la page : %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Abonnements" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "À Propos" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID de l'image" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP de l'émetteur" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Bannissement IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP déjà bannie" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Date de l'envoi" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Image %i dans l'album %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Image %i dans la catégorie %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Image %i hébergée dans %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Liens directs" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Lien vers cette page" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Lien direct vers l'image" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL de la miniature" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL intermédiaire" + +msgid "Full image" +msgstr "Image complète" + +msgid "Full image (linked)" +msgstr "Image complète (Lien raccourci)" + +msgid "Medium image (linked)" +msgstr "Miniature de l'image (Lien raccourci)" + +msgid "Thumbnail image (linked)" +msgstr "Miniature de l'image (Lien raccourci)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Connexion requise" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "L'adresse IP est déjà bannie" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Valeurs manquantes" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Rôle non valide" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Nom d'utilisateur déjà utilisé" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Ajouter un mot de passe ou un réseau sociale avant de supprimer %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Ajouter une adresse email ou un réseau sociale avant de supprimer %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s a été déconnecté." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Email test de %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Ceci est juste un test" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Email de test envoyé à %s" + +#, php-format +msgid "Downloading %s data" +msgstr "Téléchargement des données %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Abonné à l'utilisateur %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Désabonné de l'utilisateur %s" + +msgid "Album cover altered" +msgstr "Couverture d'album modifiée" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Contenus aimés" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Contenus non aimés" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u a aimé votre %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u vous suit désormais" + +msgid "A private user" +msgstr "Utilisateur privé" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "L'identifiant ou le mot de passe est incorrect" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Connexion" + +msgid "Moderate" +msgstr "Modéré" + +msgid "Upload images" +msgstr "Importer des images" + +msgid "Upload plugin" +msgstr "Envoyer un plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Résultats de la recherche d'image pour %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Résultats de la recherche d'album pour %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Résultats de la recherche d'utilisateur pour %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Compte" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Comptes liés" + +msgid "Powered by" +msgstr "Propulsé par" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Expiration d'image invalide : %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Un email contenant des instructions pour l'activation du compte a été envoyé à l'adresse %s" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nom d'utilisateur incorrect" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Site web non valide" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Mot de passe incorrect" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Utiliser un nouveau mot de passe" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Les modifications ont été enregistrées." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Le mot de passe a été modifié" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Le mot de passe a été créé." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Identifiant incorrect" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Paramètres pour %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Vous devez accepter les conditions générales et la politique de confidentialité" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Vous devez avoir plus de %s pour utiliser ce site." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Créer un compte" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Envoyer" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Images de %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Résultats pour" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Aimé par %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Aimé" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Abonnés" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albums dans %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) sur %w" + +msgid "Discovery" +msgstr "Découverte" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Aléatoire" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Recherche avancée" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Notifications (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Notifications" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Vous n'avez pas de notifications" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Mon Profil" + +msgid "Lights" +msgstr "Lumières" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Déconnexion" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Nous avons reçu une demande de changement d'adresse email de votre compte <a href=\"%u\">%n</a> sur %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Pour finaliser votre demande vous devez <a href=\"%s\">activer votre adresse email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Vous pouvez également copier-coller cette adresse dans votre navigateur : <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Si vous n'avez pas fait de telle demande, veuillez ignorer ce message." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Cette demande a été effectuée depuis l'adresse IP : %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Nous avons reçu une demande de création du compte %n sur %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Pour finaliser votre demande vous devez <a href=\"%s\">activer votre compte</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Nous avons reçu une demande de réinitialisation de mot de passe du compte <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Pour réinitialiser votre mot de passe <a href=\"%s\">suivez ce lien</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Bonjour %n nous te souhaitons la bienvenue sur %w !" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Votre compte est désormais en ligne ! Vous pouvez dès maintenant envoyer des images et créez des albums. N'hésitez pas à partager votre contenu avec vos amis ! Vous avez également la possibilité de changer les paramètres de confidentialité dans les réglages de votre compte." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Consulter votre profil ici : <a href=\"%u\">%n</a>. N'hésitez pas à le personnaliser il est à vous !" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Merci de rejoindre" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Ce message a été envoyé par %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Glisser-déposer ou coller les images ici pour les envoyer" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Sélectionnez les images à envoyer" + +msgid "browse from your computer" +msgstr "Parcourez votre ordinateur" + +msgid "add image URLs" +msgstr "Ajouter des URL d'image" + +msgid "You can also %i or %u." +msgstr "Vous pouvez également %i ou %u." + +msgid "browse from your device" +msgstr "parcourir depuis votre appareil" + +msgid "take a picture" +msgstr "prendre une photo" + +msgid "You can also %i, %c or %u." +msgstr "Vous pouvez également %i, %c ou %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Modifiez ou redimensionnez toute image en cliquant sur l'aperçu de l'image" + +msgid "Edit any image by touching the image preview" +msgstr "Modifier n'importe quelle image en touchant l'aperçu de l'image" + +msgid "your computer" +msgstr "votre ordinateur" + +msgid "You can add more images from %i or %u." +msgstr "Vous pouvez ajouter d'autres images à partir de %i ou %u." + +msgid "your device" +msgstr "votre appareil" + +msgid "You can add more images from %i, %c or %u." +msgstr "Vous pouvez ajouter d'autres images à partir de %i, %c ou %u." + +msgid "Uploading %q %o" +msgstr "Importation %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "complété" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "La liste est en cours d'importation, il ne reste que quelques secondes !" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Envoi terminé" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Contenu importé ajouté à %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Vous pouvez %c avec le contenu que vous venez de mettre en ligne ou %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Vous pouvez %c avec le contenu que vous venez de mettre en ligne." + +msgid "create a new album" +msgstr "Créer un nouvel album" + +msgid "move it to an existing album" +msgstr "déplacer vers un album existant" + +msgid "You must %s or %l to save this content into your account." +msgstr "Vous pouvez %s ou %l pour sauvegarder ce contenu dans votre compte." + +msgid "create an account" +msgstr "créer un compte" + +msgid "sign in" +msgstr "se connecter" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Aucun %s n'a été mis en ligne" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Des erreurs sont survenues et le système ne peut pas procéder à votre demande." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Catégorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Choisir une catégorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Cochez ceci si l'envoi ne convient pas à un public jeune" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Envoi ne convenant pas aux mineurs" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Envoi en cours" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "ou" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "annuler" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "annuler la file" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Note : certaines images n'ont pas pu être envoyées" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "en savoir plus" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Regardez le <a data-modal=\"simple\" data-target=\"failed-upload-result\">rapport d'erreur</a> pour plus d'informations." + +#, php-format +msgid "Register to get %s" +msgstr "Inscrivez-vous pour avoir %s" + +msgid "reset" +msgstr "réinitialiser" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "fermer" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Nous devons approuver le contenu téléchargé avant de pouvoir le partager." + +msgid "copy" +msgstr "copie" + +msgid "insert" +msgstr "insérer" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Supprimer" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Titre" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "optionnel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Changer la taille de l'image" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Largeur" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Hauteur" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Note : Les GIFs ne seront pas redimensionnés." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Suppression automatique des images" + +msgid "Sign up" +msgstr "S'inscrire" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s pour pouvoir personnaliser ou désactiver la suppression automatique de l'image." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Cochez ceci si l'image ne convient pas à un public jeune" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Contenu sensible" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Description" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Courte description de cette image" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Ajouter les URLs d'images" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Ajouter les URLs d'images ici" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Créer un album" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Le contenu envoyé sera déplacé vers cet album nouvellement créé." + +msgid "existing album" +msgstr "album existant" + +msgid "You can also move the content to an %a." +msgstr "Vous pouvez aussi déplacer le contenu sur un %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Vous devez %s ou %l si vous souhaitez modifier cet album plus tard." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Déplacer dans l'album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Sélectionnez un album existant pour déplacer le contenu envoyé. Vous pouvez également <a class=\"modal-switch\" data-switch=\"move-new-album\">créer un nouvel album</a> et déplacer le contenu dans celui-ci." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Rapport d'erreur" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Liens" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Liens du visualisateur" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Codes HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "Image HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "Lien complet HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "Lien HTML intermédiaire" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "Lien HTML miniature" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode complet" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "Lien complet BBCode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Lien BBCode intermédaire" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Lien BBCode miniature" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown complet" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown complet avec liens" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown moyen avec liens" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown miniature avec liens" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Tous ces mots" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Tapez les mots importants : rat terrier couleur" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Ce mot exact ou la phrase" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Mettez les mots exacts entre quillemets: \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Aucun de ces mots" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Mettez le signe moins devant le mot non souhaité: -rongeur -\"James Bond\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Stockage" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Adresse IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nom de l'album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "déplacer dans l'album existant" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Description de l'album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Courte description de l'album" + +msgid "Album privacy" +msgstr "Album privé" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Qui peut voir ce contenu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privé (moi uniquement)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privé (tous ceux avec le lien)" + +msgid "Private (password protected)" +msgstr "Privé (protégé par mot de passe)" + +msgid "Album password" +msgstr "Mot de passe album" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nom" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nom de catégorie" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Clé URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Clé URL de la catégorie" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Lettres, chiffres et tirets uniquement." + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Courte description de la catégorie" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Image sans nom" + +msgid "Mark this if the image is not safe for work" +msgstr "Cochez cette case si l'image n'est pas sûre pour le travail." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Chemin" + +msgid "Local path (absolute)" +msgstr "Chemin local (absolu)" + +msgid "Directory structure" +msgstr "Structure répertoire" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Lors de l'analyse des dossiers de premier niveau en tant qu'utilisateurs, les dossiers de deuxième niveau seront analysés en tant qu'albums utilisateurs. L'analyse des dossiers de premier niveau en tant qu'albums les ajoute en tant qu'albums invités." + +msgid "Select number of threads" +msgstr "Sélectionnez le nombre de processus concurrents" + +msgid "You can use wildcard * characters." +msgstr "Vous pouvez utiliser des caractères spéciaux." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Date d'expiration" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Exemple" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Jusqu'à quelle date cette adresse IP devra être bannie ? Laissez vide pour illimité." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Message" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Message texte, HTML ou une adresse URL de redirection." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Album existant" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "créer un nouvel album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Nom du stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Région" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Région de stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Bucket du stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Clé" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Clé de stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Secret de stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Clé privée" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Clé JSON Google Cloud" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Vous avez besoin d'un <a %s>compte de service</a> pour cela." + +msgid "Service name" +msgstr "Nom du service" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "URL de l'identité" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Point de terminaison de l'API identité" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Point de terminaison pour l'identité OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Conteneur" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Conteneur de stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID du locataire" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID du locataire (ID du compte)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Nom du locataire" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Nom du locataire (nom du compte)" + +msgid "Server address" +msgstr "Adresse serveur" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Nom d'hôte ou adresse IP du serveur de stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Chemin serveur" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Mot de passe serveur" + +msgid "Local path" +msgstr "Chemin local" + +msgid "Local path where the files will be stored" +msgstr "Chemin local où les fichiers seront stockés" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Capacité de stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Exemple : 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Le stockage sera désactivé lorsque la capacité sera atteinte. Laissez la vide ou mettez 0 pour illimité." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL du stockage" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Le système va lier les images de ce stockage à cette adresse URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "voir plus" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Voir plus" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Tout sélectionner" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Obtenir les liens d'intégration" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Assigner une catégorie" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Retirer le signalement" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Vider la sélection" + +msgid "Create new album" +msgstr "Créer un nouvel album" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Partager" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Se connecter avec un autre compte" + +msgid "Home" +msgstr "Accueil" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Il n'y a rien à voir ici." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Toutes les images sélectionnées seront assignées à cette catégorie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Il n'y a pas de catégories." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Confirmer l'annulation du signalement" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Souhaitez-vous vraiment retirer le signalement du contenu ?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Confirmer le signalement du contenu" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Souhaitez-vous vraiment signaler ce contenu ?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Confirmez la suppression" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Êtes-vous sûr de vouloir supprimer ce contenu ? Cette action est irréversible." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Êtes-vous sûr de vouloir supprimer le contenu sélectionné ? Cette action est irréversible." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Invité" + +msgid "Keyboard shortcuts" +msgstr "Raccourcis clavier" + +msgid "Private album" +msgstr "Album privé" + +msgid "Password protected" +msgstr "Protégé par un mot de passe" + +msgid "Uploaded by guest" +msgstr "Mise en ligne par un visiteur" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Dans %s" + +msgid "Uploaded by private" +msgstr "Mise en ligne par un compte privé" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "Par %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Basculer le signalement" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Cette page n'existe pas" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "La page demandée n'a pas été trouvée" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "L'utilisateur a été supprimé" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Votre compte est presque prêt" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Un email a été envoyé à l'adresse %s avec les instructions pour activer votre compte. Ce lien d'activation n'est valide que 48 heures. Si vous ne recevez pas les instructions, pensez à vérifier le contenu de vos filtres anti-spam." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Renvoyer l'email d'activation" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Vous avez changé l'adresse email de votre compte en %s avec succès" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Allez à mon profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Un lien de confirmation va être envoyé à cette adresse avec les détails d’activation de votre compte." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Votre adresse email" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Envoyer" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Un email avec les instructions pour réinitialiser votre mot de passe a été envoyé à votre adresse email. Si vous ne recevez pas les instructions, vérifiez vos filtres anti-spam." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Un email a été envoyé avec les instructions pour activer votre compte à l'adresse %s.n\\\\Si vous ne recevez pas les instructions, essayez de vérifier vos filtres anti-spam." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Renvoyer les instructions" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Entrez votre nom d'utilisateur ou votre adresse e-mail pour continuer. Vous devrez peut-être vérifier votre dossier spam %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Nom d'utilisateur ou Adresse email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Le mot de passe a été modifié. Vous pouvez essayer de vous connecter à l'aide de votre nouveau mot de passe." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Se connecter" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Saisissez un nouveau mot de passe" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d caractères min" + +msgid "Password strength" +msgstr "Force du mot de passe" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Confirmez le nouveau mot de passe" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Un email contenant les instructions d'activation de compte a été envoyé à %s. Si vous ne recevez pas les instructions, vérifiez le contenu de vos dossiers de spam ou vos filtres." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Ce contenu a été modifié." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Êtes-vous sûr de vouloir supprimer cet album et toutes ses images ? Cette action est irréversible." + +msgid "Upload to album" +msgstr "Importer dans un album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Vous aimez ceci" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Merci de lire et de respecter les conditions suivantes avant de continuer:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Ce site contient des informations, des liens et des images de type sexuellement explicite. Si vous êtes sous l'âge de %s ans, si ce type de contenu vous offense ou s'il est illégal de visionner ce contenu dans votre communauté, ville, état ou pays merci de ne pas continuer.\n\nJe suis âgé d'au moins %s ans et je reconnais croit qu'en tant qu'adulte, c'est mon droit de visualiser ou non un contenu sexuellement explicite.\n\nJe reconnais que les actes sexuels entre adultes consentants ne sont ni injurieux, ni obscène. La visualisation, la lecture et le téléchargement de contenu sexuellement explicite ne violent pas les normes de ma communauté, ville, état ou pays.\n\nLe contenue de ce site est pour mon propre usage personnel et je ne l'exposerais pas à des mineurs.\n\nJe suis seul responsable de toutes fausses divulgations ou ramifications juridiques de l'affichage, la lecture ou téléchargement de tout contenu de ce site. En outre ce site ni ses sociétés affiliées seront tenus responsables de n'importe quelles conséquences juridiques..." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "En cliquant sur \"J'accepte\", vous déclarez que vous avez lu et compris toutes les conditions mentionnées ci-dessus." + +msgid "I Agree" +msgstr "J'accepte" + +msgid "documentation" +msgstr "documentation" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Espace disque utilisé" + +msgid "Queued" +msgstr "En attente" + +msgid "Working" +msgstr "En cours" + +msgid "Paused" +msgstr "En pause" + +msgid "Canceled" +msgstr "Annulé" + +msgid "Completed" +msgstr "Terminé" + +msgid "Actions" +msgstr "Actions" + +msgid "Pause" +msgstr "Pause" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Errors" +msgstr "Erreurs" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Souhaitez-vous vraiment supprimé l'ID importé %s ?" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Statut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Ajouter utilisateur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rôle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrateur" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Adresse email" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Ce réglage est toujours désactivé lorsque vous utilisez le mode personnel." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Ajouter catégorie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Ajouter bannissement IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Ajouter stockage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Retourner aux pages" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nom du site web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Titre du site web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Description du site web" + +msgid "Automatic" +msgstr "Automatique" + +msgid "Forced" +msgstr "Forcer" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a va utiliser la détection HTTPS du côté du serveur (recommandé). %f utilisera HTTPS quelque soit la configuration de votre serveur. %d pour ne pas utiliser HTTPS." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Cela contrôle uniquement le protocole utilisé dans les URL, cela ne transformera pas votre site en un site sécurisé valide à moins que votre serveur ne soit configuré pour supporter et utiliser HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Fuseau horaire par défaut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Sélectionnez la région" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Permet de rechercher des images, des albums et des utilisateurs." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Permets de consulter les images publiques du site. Permets également l'utilisation des catégories." + +msgid "guests" +msgstr "invités" + +msgid "Enables explore for guests." +msgstr "Activer l'explorateur pour les visiteurs." + +msgid "Enables to browse images randomly." +msgstr "Permets de parcourir les images une par une de manière aléatoire." + +msgid "Likes" +msgstr "J'aimes" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Permets aux utilisateurs d'aimer le contenu et de consulter les images les plus aimées de la communauté." + +msgid "Followers allows users to follow each other." +msgstr "Permets aux utilisateurs de s'abonner aux autres utilisateurs du site." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Mode de site web" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Communauté" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Personnel" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Vous pouvez changer le mode de site web à tout instant." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Utilisateur cible du mode personnel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID Utilisateur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Votre identifiant utilisateur est : %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "ID numérique du client ciblé pour le mode personnel." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Routage du mode personnel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Routage personnalité pour rediriger /nomdutilisateur vers /quelquechose. utilisez \"/\" pour rediriger vers la page d'accueil." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Mode de confidentialité du site web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Le mode privé ne rendra le site accessible qu'aux utilisateurs enregistrés." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Mode ce confidentialité du contenu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Défaut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Forcer privé (lui même)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Forcer privé (ceux avec le lien)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Les modes de confidentialité forcés outrepassent la confidentialité définie par l'utilisateur." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Titre de la page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Statut de la page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Page active" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Page inactive (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Seules pages actives seront accessibles." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Type" + +msgid "Terms of service" +msgstr "Conditions d'utilisation" + +msgid "Privacy" +msgstr "Vie privée" + +msgid "Contact" +msgstr "Contact" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Visibilité de la page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Page visible" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Page cachée" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Les pages cachées ne s'afficheront pas dans les menus système, mais tout le monde peut y accéder par son lien." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Seuls les caractères alphanumériques, traits d'union et barre oblique" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Chemin de fichier" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Un fichier %f relatif à %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Mot clés meta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Description meta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Code source" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Pas de permission d'écriture dans le chemin %s, vous allez devoir ajouter ce fichier en utilisant un éditeur externe." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Pas de permission d'écriture dans le chemin %s, vous allez modifier le contenu du fichier en utilisant un éditeur externe." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Prise depuis : %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Lien URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Attribut cible du lien" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Sélectionnez %s pour ouvrir la page ou le lien dans une nouvelle fenêtre." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Attribut rel du lien" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Seuls les caractères alphanumériques, traits d'union et espaces" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "Attribut HTML &lt;a&gt; %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Lien icône" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Vérifiez les <a %s>références icône</a> pour une liste complète des icônes supportées." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Définir l'ordre d'affichage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Ordre d'affichage des pages dans les menus et listes. Utilisez \"1\" pour la priorité maximale." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Souhaitez-vous vraiment supprimer la page ID %s ? Cette action est irréversible." + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Cochez les extensions de fichiers autorisés sur votre site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Activer les envois" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Activez ceci si vous souhaitez autoriser les envois d'images. Ce paramètres n'affecte pas les administrateurs." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Tranferts des Invités" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Activez ceci si vous voulez autoriser les utilisateurs non enregistrés à envoyer des images." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Activer les codes d'intégration (après l'envoi)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Activez ceci si vous souhaitez afficher les codes d'intégration quand un envoi est terminé." + +msgid "Upload threads" +msgstr "Mise en ligne simultanées" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Nombre de mise en ligne simultanées (Mise en ligne parallèle)" + +msgid "Redirect on single upload" +msgstr "Rediriger après l'envoi d'une seule image." + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Activez cette option si vous souhaitez rediriger vers la page de l'image après l'envoi de celle-ci." + +msgid "Enable duplicate uploads" +msgstr "Activer la duplication des images mises en ligne" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Activez cette option si vous voulez autoriser la duplication des images mises en ligne à partir de la même adresse IP dans les 24 heures. Ce paramètre n'a aucune incidence sur les administrateurs." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Activer l'expiration des envois" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Activez cette option si vous souhaitez autoriser les envois avec une option de suppression automatique." + +msgid "Auto delete guest uploads" +msgstr "Supprimer automatiquement les images mises en ligne par les invités" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Activez l'option si vous souhaitez supprimer automatiquement après un certain temps les images mis en ligne par les visiteurs." + +msgid "Maximum image size" +msgstr "Taille maximale de l'image" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Les images supérieures à cette taille seront automatiquement réduites. Utilisez zéro (0) pour ne pas définir de limite." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Données Exif de l'image" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Garder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Sélectionnez le paramètre par défaut pour les <a %s>données Exif</a> de l'image à l'envoi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Données Exif de l'image (réglage de l'utilisateur)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Activez cette option si vous souhaitez permettre à chaque utilisateur de configurer comment les données Exif de l'image seront traitées." + +msgid "Maximum upload file size" +msgstr "Taille maximale de l'image importé" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "La taille maximale autorisée par le serveur est %s. Cette limite est fixée par %u et %p (valeurs %f)" + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Pareil que \"%s\" mais pour les invités." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Répertoire des images" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relatif à la racine Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Où stocker les images ? Relatif à la racine Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Mode de stockage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Dossiers de dates" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direct" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Les dossiers de dates créent une structure %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Méthode de nommage des fichiers" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Mélange original + aléatoire" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Original\" tentera de garder le nom de l'image source tandis que \"aléatoire\" générera un nom aléatoire. \"ID\" nommera l'image comme l'ID de l'image." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Taille de miniature" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Les miniatures seront fixées à cette taille." + +msgid "Medium image fixed dimension" +msgstr "Fixe les dimensions d'une image moyenne" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Les images de taille moyenne seront fixées à cette dimension. Par exemple, si vous sélectionnez «width» cette dimension sera fixe et hauteur de l'image sera calculée automatiquement." + +msgid "Medium image fixed size" +msgstr "Image de taille moyenne fixe" + +msgid "Width or height will be automatically calculated." +msgstr "La largeur ou la hauteur seront automatiquement calculés." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Filigranes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Activez ceci pour insérer un logo ou autre chose dans les envois d'image." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Basculer le filigrane utilisateur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Activer le filigrane pour les envois d'invités" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Activer le filigrane pour les envois d'utilisateurs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Activer le filigrane pour les envois d'administrateurs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Basculer le filigrane de fichier" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Activer le filigrane sur les envois d'images GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Taille minimale de l'image pour appliquer le filigrane" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Les images plus petites que cela n'auront pas de filigrane. Utilisez zéro (0) pour ne pas définir de limite." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Image du watermark (filigrane)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Vous obtiendrez un meilleur résultat avec des logos entiers avec ombre portée. Vous pouvez utiliser une image large si la taille du fichier n'est pas trop grosses (max. recommandé 16Ko). Doit être un PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Position du watermark (filigrane)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "gauche haut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "gauche centre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "gauche bas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "centre haut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "centre centre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "centre bas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "droit haut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "droit centre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "droit bas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Position relative de l'image du watermark (filigrane). Alignement horizontal puis alignement vertical." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Pourcentage de filigrane" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Pourcentage de filigrane relatif à la zone de l'image cible. Valeurs de 1 à 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Marge du watermark (filigrane)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Marge depuis la bordure de l'image vers l'image du watermark (filigrane)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Opacité du watermark (filigrane)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Opacité du watermark (filigrane) dans l'image finale. Valeur de 0 à 100." + +msgid "Dashboard > Settings > Website" +msgstr "Tableau de bord > Paramètres > Site web" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Les catégories ne fonctionneront pas si la fonction \"Explorer\" est éteinte. Pour changer ce paramètre aller à %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Souhaitez-vous réellement supprimer la catégorie %s ? Cette action est irréversible." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Note : supprimer une catégorie ne supprime pas les images associées à cette catégorie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Modifier catégorie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Expiration" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Souhaitez-vous réellement supprimer le bannissement de l'IP %s ? Cela ne peut être annulé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "L'adresse IP bannie ne pourra plus utiliser le site web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Modifier le bannissement IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Activer les inscriptions" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Activez ceci si vous souhaitez autoriser les utilisateurs à s'inscrire." + +msgid "Enable user content delete" +msgstr "Activer la suppression du contenu pour les utilisateurs" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Activez ceci si vous souhaitez permettre aux utilisateurs de supprimer leur propre contenu. Ce paramètre n'affecte pas les administrateurs." + +msgid "Minimum age required" +msgstr "Age minimum requis" + +msgid "Empty" +msgstr "Vide" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Laissez-le vide s'il n'y a pas un âge minimum pour utiliser le site." + +msgid "Notify on user signup" +msgstr "Notifier lors de l'inscription de l'utilisateur" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Activez cette option si vous souhaitez recevoir une notification par email pour chaque nouvel utilisateur inscrit." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Routage du nom d'utilisateur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Activez ceci si vous souhaitez utiliser les URLs %s/nom-d'utilisateur à la place de %s/user/nom-d'utilisateur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Confirmation par email obligatoire" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Activez ceci si vous souhaitez que les utilisateurs valident leur adresse email pour s'inscrire." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Adresse email nécessaire pour l'enregistrement via réseaux sociaux" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Activez ceci si vous souhaitez que les utilisateurs utilisant les réseaux sociaux pour se connecter fournissent une adresse email." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Taille maximale de l'avatar de l'utilisateur." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Taille maximale autorisée pour l'avatar de l'utilisateur. (Maximum autorisé par le serveur : %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Taille maximale du fond d'écran utilisateur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Taille maximale autorisée pour le fond d'écran utilisateur (Maximum autorisé par le serveur : %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Affiche un disclamer avant d'accéder au site. Utile pour les sites de contenu pour adultes où les mineurs ne devraient pas être autorisés." + +msgid "Enable consent screen" +msgstr "Activer le disclamer" + +msgid "Consent screen cover image" +msgstr "Image de couverture du disclamer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Restreint l'envoi d'images par IP si le système détecte un comportement de flood basé sur le nombre d'images par période temps. Ceci n'affecte pas les administrateurs." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Notifier par email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Si activé, le système va envoyer un email lors d'un incident flood." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Limite par minute" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Limite par heure" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Limite par jour" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Limite par semaine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Limite par mois" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Afficher le contenu signalé dans les listes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Activez-ceci si vous souhaitez afficher du contenu non sûr dans la liste. Ce paramètre n'affecte pas les administrateurs et peut être substitué par les paramètres de l'utilisateur." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Flouter le contenu sensible dans la liste." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Activez ceci si vous souhaitez appliquer un effet de flou sur les images sensibles dans la liste." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Afficher les bannières pour le contenu signalé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Activez ceci si vous souhaitez afficher les bannières sur les pages avec du contenu signalé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Afficher le contenu non sûr dans le mode aléatoire" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Lister les objets par page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Combien d'objets devraient être affichés par page." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Mode de pagination de la liste" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Défilement infini" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Pagination classique" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Quel mode de pagination devrait être utilisé." + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Activez cette option pour utiliser le visualiseur d'image lorsque vous cliquez sur une image." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Taille de la liste des images" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fluide" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fixé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Les deux méthodes utilisent une largeur fixe mais la méthode fluide utilise des hauteurs automatiques." + +msgid "explore" +msgstr "explorer" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Définit le nombre minimum d'images nécessaires pour afficher les albums dans l'explorateur." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Nombre de colonnes à afficher" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Ici vous pouvez définir combien de colonnes sont affichées suivant chaque périphérique." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Mobile" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablette" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablette" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "PC Portable" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "PC Fixe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Insérez vos thèmes dans le dossier %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Ton" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Clair" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Sombre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Couleur princiaple" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Valeur hexadécimale de la couleur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Utilisez-ceci pour définir une couleur principale de thème. La valeur doit être au <a href=\"%s\" target=\"_blank\">format hex</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Couleur du bouton de la barre supérieure" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Bleu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Vert" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Orange" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Rouge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Gris" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Noir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Blanc" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Couleur des buttons de la barre supérieure comme le bouton \"Créer un compte\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Activer le logo vectoriel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Activer le logo vectoriel pour le logo haute définition dans les appareils avec une haute densité de pixels." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Image vectorielle du logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Image vectorielle ou le logo de votre site au format SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Image raster du logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Version Bitmap ou le logo de votre site. Le format PNG est recommandé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Hauteur de logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Aucune valeur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Utilisez ceci pour définir la hauteur du logo si nécessaire." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Image favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Image favicon. L'image doit avoir la même largeur et la même hauteur." + +msgid "Image load max. filesize" +msgstr "Taille d'image maximum a l'affichage. Poids du fichier" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Les images supérieures à cette taille afficheront un bouton pour charger l'image en pleine résolution." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Activer le bouton de téléchargement" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Activer ceci si vous souhaitez afficher le bouton de téléchargement d'image." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Activer le clic droit sur l'image" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Activez ceci si vous souhaitez autoriser le clic droit sur l'image de la page de visualisation." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Activer l'affichage des données Exif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Activez-ceci si vous souhaite afficher les données Exif de l'image." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Activer le partage social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Activez ceci si vous souhaitez afficher les boutons de partage des réseaux sociaux." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Activer les codes d'intégration (contenu)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Activez ceci si vous souhaitez afficher les codes d'intégration pour le contenu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Case à cocher signaler dans le formulaire d'envoi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Activez ceci si vous souhaitez afficher une case à cocher pour indiquer si le contenu envoyé doit être signalé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Code CSS personnalisé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Insérez votre code CSS personnalisé ici. Il sera placé comme <style> juste avant la balise de clôture </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Code JS personnalisé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Insérez votre code JS personnalisé ici. Il sera placé comme <script> juste avant la balise de clôture </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Style" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Page d'accueil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Diviser l'accueil + images" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Sélectionnez le style de page d'accueil. Pour la personnaliser davantage, modifiez app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Image de couverture" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Êtes-vous sûr de vouloir supprimer cette image ? Cette action est irréversible." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Supprimer l'image" + +msgid "Add new cover image" +msgstr "Ajouter une nouvelle image de couverture" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Ceci sera ajouté dans le tag %s de votre page d'accueil. Laissez le vide pour utiliser le contenu par défaut." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragraphe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Couleur du bouton d'action." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Couleur du bouton d'action de l'accueil." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Style de contour du bouton d'action" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Activez-ceci pour utiliser le style de couleur pour le bouton d'action de l'accueil." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Fonctionnalité d'appel à l'action" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Déclencher l'envoi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Ouvrir URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL de l'appel à l'action" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Entrez une URL absolue ou relative" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Une URL relative comme %r sera redirigée vers %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML de l'appel à l'action" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Ceci sera ajouté dans la balise <a> de l'appel à l'action. Laissez le vide pour utiliser le contenu par défaut." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "IDs utilisateur" + +msgid "Automatic updates check" +msgstr "Vérification automatique des mises à jour" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Quand l'option est activée le système vérifie automatiquement la présence de nouvelles mises à jour." + +msgid "Display available updates notification" +msgstr "Afficher les mises à jour disponibles par notification" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Activer cette option pour afficher une infobox en haut du site pour vous avertir de nouvelles mises à jour système disponibles." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Maintenance" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Lors de son activation, le site web affichera un message de maintenance. Ce paramètre n'affecte pas les administrateurs." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Grain de sel pour Crypt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "C'est le grain de sel utilisé pour convertir des ID numériques en alphanumériques. Il a été généré lors de l'installation." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Rapport d'erreurs PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Activez-ceci si vous souhaitez afficher les erreurs générées par PHP <a %s>error_reporting()</a>. Ceci devrait être désactivé en production." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Niveau de débogage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Aucun" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Journal des erreurs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Afficher les erreurs sans les enregistrer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Afficher et enregistrer les erreurs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Pour paramétrer le niveau de débogage, regardez la <a %s>documentation de débogage</a>. Le niveau par défaut est \"Journal d'erreur\" (1)." + +msgid "Image routing" +msgstr "Adressage de l'image" + +#, php-format +msgid "Routing for %s" +msgstr "Adressage pour %s" + +msgid "Album routing" +msgstr "Adressage de l'album" + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Ce paramètre peut être outrepassé par %s." + +msgid "Language subdomains" +msgstr "Sous-domaines par langue" + +msgid "languages" +msgstr "langues" + +msgid "Custom language strings" +msgstr "Texte personnalisé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Langue par défaut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Base de langue à utiliser par défaut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Langue automatique" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Activez-ceci si vous souhaitez automatiquement détecter et paramétrer la langue pour chaque utilisateur." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Sélectionneur de langue" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Activez-ceci si vous souhaitez autoriser la sélection des langues" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Activez les langues" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Les langues non cochées ne seront pas utilisée sur votre site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Activez ou désactivez le HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Activez ou désactivez ce stockage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Quota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Actif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Méthode de stockage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Par défaut le stockage local est utilisé ou quand aucun stockage externe n'est actif." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Si vous avez besoin d'aide, regardez la <a %s>documentation de stockage</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Modifier le stockage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Nom de l'émetteur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nom d'envoi pour les emails envoyés aux utilisateurs." + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Adresse email d'expédition" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Nom d'envoi pour les emails envoyés aux utilisateurs." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Adresse email de contact" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Destinataire du formulaire de contact et des alertes système." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Mode email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Comment envoyer les emails ? SMTP recommandé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "Serveur SMTP et port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "Serveur SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Nom d'utilisateur SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Mot de passe SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Sécurité SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Non sécurisé" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Envoyer un email test" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Utilisez cette option pour tester la façon dont vos e-mails sont envoyé. Nous vous recommandons d'utiliser %s" + +msgid "Export a user" +msgstr "Exporter un utilisateur" + +msgid "Export user" +msgstr "Exporter l'utilisateur" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Cela vous permettra de télécharger les informations personnelles standard d'un utilisateur au format JSON." + +msgid "Regenerate" +msgstr "Regénérer" + +msgid "Migrate image records from one external storage to another" +msgstr "Migrer les images d'un stockage externe vers un autre" + +msgid "Source storage id" +msgstr "ID du stockage source" + +msgid "Target storage id" +msgstr "ID du stockage cible" + +msgid "Migrate" +msgstr "Migrer" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Ceci ne fait que mettre à jour la base de données. Vous devez transférer vous-même les fichiers réels dans le conteneur de stockage cible. La réécriture d'URL est fortement recommandée. Utilisez zéro (0) pour le stockage local." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Nécessite un compte <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID Facebook app" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Secret Facebook app" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Nécessite un compte <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Clé API Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Secret API Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Compte Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Nécessite un compte <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "ID Google client" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Secret Google client" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Vous avez besoin d'une <a href=\"http://vk.com/dev\" target=\"_blank\">app VK</a> pour ceci." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "ID Client VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Secret Client VK" + +#, php-format +msgid "%s spam protection" +msgstr "%s protection contre les indésirables" + +#, php-format +msgid "%s API key" +msgstr "Clé API %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Vous avez besoin d'une <a href=\"%s\" target=\"_blank\">clé reCAPTCHA</a> pour ceci." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Veuillez noter que chaque version de reCAPTCHA nécessite des clés différentes. N'oubliez pas de mettre à jour les clés si vous changez de version." + +#, php-format +msgid "%s site key" +msgstr "Clé du site %s" + +#, php-format +msgid "%s secret key" +msgstr "Clé secrète %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "Seuil reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Combien d'échecs sont nécessaires pour demander un reCAPTCHA ? Mettez (0) pour toujours afficher reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Forcer %s sur la page de contact" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Activez ceci pour toujours afficher %s sur la page de contact." + +msgid "Comments API" +msgstr "API des commentaires" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API fonctionne avec %s" + +msgid "Disqus shortname" +msgstr "Identifiant Disqus" + +#, php-format +msgid "%s public key" +msgstr "Clé publique %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Code des commentaires" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook ou ce que vous voulez. Ce sera utilisé dans le visualiseur d'images." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Code Analytics" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics ou ce que vous voulez. Ce sera ajouté au pied de page du thème." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Clé API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Utilisez cette clé lors de l'utilisation de l'<a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Dossier plugin" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Activez cette option pour afficher les instructions du plugin à %u. Un lien vers ces instructions sera ajouté au menu %s. Ce paramètre n'affecte pas les administrateurs." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Utilisez cette option pour définir une URL personnalisée pour %p. Veuillez noter que vous devez dupliquer manuellement %s dans cette URL." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Respecter la loi sur les cookies" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Activez ceci pour afficher un message qui respecte la loi sur les cookies de l'UE. Note : vous n'avez besoin de ceci que si votre site est hébergé dans l'UE et que vous utilisez des cookies de suivi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Enregistrer les modifications" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Vérifiez les erreurs pour continuer." + +msgid "Play GIF" +msgstr "Lire le GIF" + +msgid "Load full resolution" +msgstr "Afficher en haute définition" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Ajouté à %a et catégorisé en %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Ajouté à %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Envoyé sur %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Envoyé %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Moins de données Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Plus de données Exif" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID de l'album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Envoyez et partagez vos images." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Glisser-déposer n'importe où pour commencer l'envoi de vos images dès maintenant. Limite de %s. Liens directs vers l'image, BBCode et miniatures HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Commencer l'envoi" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Enregistrez-vous pour débloquer toutes les fonctionnalités" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Gérez vos contenus, créez des albums privés, modifiez votre profil et plus encore." + +msgid "Sign in with your account" +msgstr "Connectez-vous avec votre compte" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Vous n'avez pas de compte ? <a href='%s'>Inscrivez-vous</a> maintenant." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Déconnexion" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Vous avez été déconnecté de %s. Nous espérons vous revoir prochainement." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Retourner sur l'accueil" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Site web en maintenance" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Nous effectuons une maintenance programmée sur le site web. Veuillez réessayer dans quelques minutes." + +msgid "This content is password protected." +msgstr "Ce contenu est protégé par mot de passe." + +msgid "Please enter your password to continue." +msgstr "Veuillez entrer le mot de passe pour continuer." + +msgid "Send" +msgstr "Envoyer" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Ajoutez le téléchargement d'images sur votre site web, blog ou forum en installant notre plugin de téléchargement. Il permet de télécharger des images vers n'importe quel site Web en plaçant un bouton qui permettra à vos utilisateurs de télécharger directement des images vers notre service et il traitera automatiquement les codes nécessaires à l'insertion. Toutes les fonctions incluses comme le glisser-déposer, le téléchargement à distance, le redimensionnement des images et plus encore." + +msgid "Supported software" +msgstr "Logiciel supporté" + +msgid "supported software" +msgstr "logiciel supporté" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Le plugin fonctionne sur n'importe quel site web avec un contenu modifiable par l'utilisateur et pour %sv, il placera un bouton de téléchargement qui correspondra à la barre d'outils de l'éditeur cible, donc aucune personnalisation supplémentaire n'est nécessaire." + +msgid "Add it to your website" +msgstr "Ajoutez-le à votre site web" + +msgid "options" +msgstr "options" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Copiez le code du plugin dans le code HTML de votre site (de préférence dans la section head). Il y a beaucoup de %o pour le faire correspondre au mieux à vos besoins." + +msgid "Basic options" +msgstr "Options de base" + +msgid "Color palette" +msgstr "Palette de couleurs" + +msgid "Button color scheme" +msgstr "Button color scheme" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Intégrer des codes qui seront automatiquement insérés dans la boîte d'édition" + +msgid "After" +msgstr "Après" + +msgid "Before" +msgstr "Avant" + +msgid "Advanced options" +msgstr "Options avancées" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Le plugin possède un grand nombre d'options supplémentaires qui permettent une personnalisation complète. Vous pouvez utiliser l'HTML personnalisé, CSS, votre propre palette de couleurs, définir des observateurs et plus encore. Vérifiez le %d et la source du plugin pour avoir une meilleure idée de ces options avancées." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Vous n'avez soit pas la permission d'accéder à cette page ou le lien a expiré." + +msgid "Search results" +msgstr "Résultats de la recherche" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Supprimer l'utilisateur" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Date d'enregistrement" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP à l'inscription" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Valide" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Banni" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "En attente de l'email" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "En attente de confirmation" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i à %f caractères<br>Lettres, chiffres et \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Suppression automatique des envois" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Ce paramètre sera applicable par défaut à toutes vos images envoyées. Vous pouvez outrepasser remplacer ce paramètre à chaque envoi." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Garder les <a %s>données Exif</a> de l'image lors de l'envoi" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Bulletin d'information" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Envoyez moi des courriels avec des informations sur %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Paramètres du contenu" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Afficher le contenu non sûr dans la liste (des autres)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Langue" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Fuseau horaire" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Mot de passe actuel" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Saisissez votre mot de passe actuel" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nouveau mot de passe" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Confirmer le nouveau mot de passe" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Ajoutez un mot de passe pour pouvoir vous connecter avec votre nom d'utilisateur ou une adresse email." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Cet utilisateur n'a pas de mot de passe. Ajoutez-en un avec ce formulaire." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Entrez votre mot de passe" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Confirmez le mot de passe" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Entrez à nouveau votre mot de passe" + +msgid "Make my profile and identity totally private" +msgstr "Rendre mon profil entièrement privé" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Activez cette option si vous voulez utiliser le site comme un utilisateur anonyme" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "C'est votre nom réel, pas votre nom d'utilisateur." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://votresite.fr" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Biographie" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Parlez-nous un peu de vous." + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "L'utilisateur n'a pas de connexions." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Souhaitez-vous vraiment déconnecter %s de son compte ?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Ce compte est connecté à %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Souhaitez-vous réellement déconnecter votre compte %s ?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Vous allez être déconnecté et vous ne pourrez plus vous connecter en utilisant le compte %s." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Votre compte est connecté à %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "déconnecter" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Connecter %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Profitez-en pour découvrir toutes mes images et albums partagés." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Bouton" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Voir toutes mes images" + +msgid "Login" +msgstr "Connexion" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Vous avez déjà un compte ? %s maintenant." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "renvoyer l'activation de compte" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Si vous avez déjà un compte vous avez peut-être besoin de demander à %s d'activer votre compte." + +#, php-format +msgid "You can also %s." +msgstr "Vous pouvez également %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Je suis âgé d'au moins %s ans" + +msgid "terms" +msgstr "conditions générales" + +msgid "privacy policy" +msgstr "politique de confidentialité" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "J'accepte les %terms_link et la %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Envoyer une photo de couverture" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Modifier la couverture" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Envoyer une nouvelle image" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "La photo de couverture va être supprimée. Cette action est irréversible. Êtes-vous sûr de vouloir supprimer la photo de couverture ?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Supprimer la couverture" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Abonné" +msgstr[1] "Abonnés" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Suivre" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Vous avez été banni du site." + +msgid "Plugin" +msgstr "Plugin" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Questions/commentaires généraux" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Réclamation DADVSI" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Message non valide" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Sujet non valide" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Erreur email" + +msgid "Message sent" +msgstr "Message envoyé" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Message envoyé. Nous prendrons contact rapidement." + +msgid "If you want to send a message fill the form below." +msgstr "Si vous voulez envoyer un message veuillez remplir le formulaire ci-dessous." + +msgid "Your name" +msgstr "Votre nom" + +msgid "Subject" +msgstr "Sujet" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Toutes les modifications effectuées seront perdues si vous continuez." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Modifications enregistrées avec succès." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Retourner au formulaire" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "continuer quand même" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Enregistrement" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Envoi" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Confirmer l'action" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "information" + diff --git a/app/languages/he.po b/app/languages/he.po new file mode 100644 index 0000000..3c8a4fc --- /dev/null +++ b/app/languages/he.po @@ -0,0 +1,3562 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:16+0000\n" +"PO-Revision-Date: 2020-09-02 17:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n!=0 && n>10 && n%10==0 ? 2 : 3);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "דוא\"ל שגוי" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "שגיאה בבחירת מצב אתר" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "סיסמא שגוייה" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "שגיאה בבחירת מצב אתר" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "מכתובת דואר אלקטרוני" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "דוא\"ל שולח לשליחת הודעות למשתמשים" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "כתובת דוא\"ל נכנסת" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "נמען לטופס יצירת קשר ולמערכת ההתראות" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "מצב אתר" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "אתם יכולים לשנות את מצב האתר בכל זמן" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "קהילה" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "אישי" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "הגירסה הנוכחית היא %s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "לא ניתן להתחבר ל- %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "יש עדכון זמין לגירסה %s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "מוריד עדכון חדש, אנא המתן" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "עדכון לא נדרש" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "קבצי מערכת נמצאו מעודכנים" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "מתחיל בהורדת עדכון %s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "עדכון %s הורד בהצלחה, ממתין לאימות נתונים" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "עדכון %s עבר אימות בהצלחה, וכעת מתקין קבצים" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "מעדכן נתונים" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "שגיאה בהורדה %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "לא יכול לחלץ %s" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "בדקו שגיאות בטופס כדי להמשיך." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "לא הוזן שם אלבום" + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "אישור פעולה" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "בחר לאלבום קיים" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "התרחשה שגיאה. אנא נסו שוב מאוחר יותר." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "בחר סוג קובץ תמונה תקין." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "ניתן לבחור תמונה עד גודל %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "תמונת פרופיל עודכנה בהצלחה." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "תמונת רקע פרופיל עודכנה בהצלחה." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "תמונת רקע פרופיל נמחקה בהצלחה." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "שגיאה בעת מחיקת תמונת רקע פרופיל, נסה שוב." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "הסיסמאות אינן תואמות" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "עדכון זמין (גירסה %s)" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "קיים עדכון זמין עבור המערכת. באפשרותך להוריד ולהתקין את העדכון באופן אוטומטי, או להיכנס לכתובת %s כדי להמשיך ולהוריד את הקובץ." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "הערות שחרור עבור עדכון זה:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "עדכן כעת" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "או" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "ביטול" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "הינך נמצא בגירסה המעודכנת של מערכת %s" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "טוען נתונים" + +msgid "Toggle select" +msgstr "סמן בחירה" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "לייק" + +msgid "Toggle flag" +msgstr "סמן כתוכן פוגעני" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "עריכה" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "אלבום" +msgstr[1] "אלבומים" +msgstr[2] "אלבומים" +msgstr[3] "אלבומים" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "מחק" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "סגור" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "הקובץ בנפח גדול" + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "לא ניתן להעלות קבצים מסויימים" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "תמונה" +msgstr[1] "תמונות" +msgstr[2] "תמונות" +msgstr[3] "תמונות" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "האלבומים של %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "שינוי פרטי התמונה עודכן בהצלחה" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "פרטי" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "שינוי פרטי האלבום עודכן בהצלחה" + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "מפתח קישור לא חוקי" + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "מפתח קישור של קטגוריה כבר נמצא בשימוש" + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "קטגוריית %s נוספה בהצלחה." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "קיבולת האיחסון לא יכולה להיות נמוכה מהנוכחית %s" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "משתמש התווסף בהצלחה" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "התוכן נמחק בהצלחה." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "התמונות הועברו לאלבום בהצלחה." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "בחירה" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "בטל בחירה" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "הפרטים נערכו בהצלחה." + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "אלבום" +msgstr[1] "אלבומים" +msgstr[2] "אלבומים" +msgstr[3] "אלבומים" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "ללא כותרת" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s תמונות" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "שים לב: התוכן הזה הינו מוגדר כפרטי. אך כל מי שקיבל את הקישור יוכל לצפות בו." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "שים לב: התוכן הזה הינו מוגן באמצעות סיסמא. זכור לשתף גם את הסיסמא על מנת לשתף את התוכן." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "שים לב: התוכן הזה הינו מוגדר כפרטי. שנה את הגדרות הפרטיות ל- \"ציבורי\" על מנת לשתף." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "פרטי" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "ציבורי" + +msgid "Me" +msgstr "אני" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "קישור" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "סיסמא" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "צפיות" +msgstr[1] "צפיות" +msgstr[2] "צפיות" +msgstr[3] "צפיות" + +msgid "After %n %t" +msgstr "לאחר %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "דקה" +msgstr[1] "דקות" +msgstr[2] "דקות" +msgstr[3] "דקות" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "שעות" +msgstr[1] "שעות" +msgstr[2] "שעות" +msgstr[3] "שעות" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "יום" +msgstr[1] "ימים" +msgstr[2] "ימים" +msgstr[3] "ימים" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "שבוע" +msgstr[1] "שבועיים" +msgstr[2] "שבועות" +msgstr[3] "שבועות" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "חודש" +msgstr[1] "חודשיים" +msgstr[2] "חודשים" +msgstr[3] "חודשים" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "שנה" +msgstr[1] "שנתיים" +msgstr[2] "שנים" +msgstr[3] "שנים" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "ללא" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "העלאה כפולה" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "העלאה פרטית" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "לייקים" +msgstr[1] "לייקים" +msgstr[2] "לייקים" +msgstr[3] "לייקים" + +msgid "Recent" +msgstr "אחרונים" + +msgid "Trending" +msgstr "טרנדים" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "המשתמשים הכי פעילים" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "נוספו לאחרונה" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "הכי ישנים" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "הכי נצפים" + +msgid "Popular" +msgstr "פופולרים" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "הכי אהובים" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "סיור" + +msgid "Animated" +msgstr "אהובים" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "חיפוש" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "תמונה" +msgstr[1] "תמונות" +msgstr[2] "תמונות" +msgstr[3] "תמונות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "משתמש" +msgstr[1] "משתמשים" +msgstr[2] "משתמשים" +msgstr[3] "משתמשים" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "לא ניתן לצור את תקית היעד %s" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "לא ניתן לפתוח את %s לכתיבה" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "חיצוני" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "בלתי מוגבל" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "שומש" + +msgid "Private profile" +msgstr "פרופיל פרטי" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "שניה" +msgstr[1] "שניות" +msgstr[2] "שניות" +msgstr[3] "שניות" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "לפני %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "לפני כמה רגעים" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "פאנל ניהול" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "קיים עדכון זמין עבור המערכת. עבור אל %s כדי להוריד ולהתקין את העדכון" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "בסיס הנתונים של המערכת מיושן. הינך צריך להריץ את פונקציית <a href=\"%s\">update</a>" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "האתר במצב תחזוקה. כדי לשנות הגדרות כנסו ל <a href=\"%s\">פאנל ניהול > הגדרות</a>" + +msgid "There is an update available for your Chevereto based website." +msgstr "קיים עדכון זמין עבור אתר האינטרנט שלך מבוסס Chevereto." + +msgid "admin dashboard" +msgstr "פאנל ניהול" + +msgid "cookie policy" +msgstr "מדיניות פרטיות" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "<b>באתר זה נעשה שימוש בקבצי cookie כדי לשפר את חווית הגלישה שלכם.</b>\nלמידע נוסף על האופן שבו אנו משתמשים בקבצי cookies, עיינו במדיניות הפרטיות שלנו. במידה ותמשיכו להשתמש באתר שלנו, אתם מסכימים לשימוש כזה בקבצי %cookie_policy_link" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "שכחתי סיסמא?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "איפוס סיסמה" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "שלחו שוב את הפעלת החשבון" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "הוסיפו את כתובת הדוא\"ל שלכם" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "דוא\"ל שונה." + +#, php-format +msgid "%s says you are a robot" +msgstr "יש לבצע אימות %s לוודא שאינך רובוט" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "שם משתמש\\דוא\"ל שגויים" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "למשתמש אין דוא\"ל" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "הבקשה נדחתה" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "עליך לבצע הפעלה לחשבון כדי להשתמש בתכונה זו" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "המשתמש כבר פעיל" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "שליחת מייל שני מתאפשרת לאחר 15 דק'. תוכלו לנסות שוב מאוחר יותר." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "אפס את סיסמתך ב%s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "נדרש אישור ב- %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "ברוכים הבאים ל%s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "דוא\"ל כבר בשימוש" + +msgid "Password required" +msgstr "נדרשת סיסמא" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "שתף" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "קודים מוטבעים" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "מידע מלא" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a אלבום מאוחסן ב%w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "סטטיסטיקה" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "תמונות" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "אלבומים" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "משתמשים" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "הגדרות" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "גירסת המערכת" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "מתקין עדכון" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "בדוק עדכונים" + +msgid "Support" +msgstr "תמיכה" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "זקוק לעזרה\\תמיכה? לחץ על הקישור %s לקבלת תמיכה ." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP version" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "שרת" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL version" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "מידע על שרת MySQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "ספריית GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "העלאת קבצים" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "מופעל" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "כבוי" + +msgid "Max. upload file size" +msgstr "מקסימלי: נפח העלהת קובץ" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "גודל תגובה מקסימלי" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "זמן ביצוע מקסימלי" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d שניה" +msgstr[1] "%d שניות" +msgstr[2] "%d שניות" +msgstr[3] "%d שניות" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "הגבלת זיכרון" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "קישורים" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "אתר אינטרנט" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "תוכן" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "עמודים" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "רישומים" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "העלאת תמונה" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "קטגוריות" + +msgid "Consent screen" +msgstr "מסך תנאי כניסה" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "הגנה מפני הצפות" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "ערכת נושא" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "דף הבית" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "באנרים" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "מערכת" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "שפות" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "איחסון חיצוני" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "דוא\"ל" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "רשתות חברתיות" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "שירותים חיצוניים" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "השהיות IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "הגדרות נוספות" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "כלים" + +msgid "Homepage cover image deleted" +msgstr "תמונת עטיפה לדף נחיתה נמחקה בהצלחה" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "מקומי" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "חיצוני" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "הכל" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "חיפוש תוכן לפי כתובת IP" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "הוסף עמוד" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "עריכת עמוד מספר מזהה %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "העמוד נוסף בהצלחה." + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "שם אתר אינטרנט לא חוקי" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "שפה לא חוקית" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "אזור זמן לא חוקי" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "מצב העלאת איחסון לא חוקי" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "שם העלאה לא חוקי" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "רוחב אובייקט לא חוקי" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "אורך אובייקט לא חוקי" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "אחוז Watermark לא תקין" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "טשטוש חותמת מים לא תקין" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "ערכת נושא לא חוקית" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "ערך לא חוקי" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "גוון ערכת נושא לא חוקי" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "צבע עיקרי של ערכת הנושא לא חוקי" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "צבע כפתור הבאר העליון של ערכת הנושא לא חוקי" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "גודל רישום ערכת הנושא לא חוקי" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "שם משתמש שגוי" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "מצב דוא\"ל לא חוקי" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "SMTP port לא חוקי" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "אבטחת SMTP לא חוקית" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "מזהה משתמש במצב אישי שגוי" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "ניתוב שמורות לא חוקי" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "מצב אתר פרטי לא חוקי" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "תוכן מצב אתר פרטי לא חוקי" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "סגנון דף הבית לא חוקי" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "צבע כפתור \"הנעה לפעולה\" בדף הבית לא חוקי" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "פונקציות \"הנעה לפעולה\" בדף הבית לא חוקיות" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "מפתח קישור לא חוקי" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "קישור לא תקין" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "נתיב העלאת תמונה לא חוקי" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "קישור \"הנעה לפעולה\" לא חוקי" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "%s מרבי שניתן" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "שרת SMTP לא חוקי" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "שם משתמש SMTP לא חוקי" + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "במעקב" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "אודות" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "מזהה תמונה" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "הועלה מכתובת IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "הרחקת כתובת IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP כבר מושהה" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "תאריך העלאה" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "תמונה %i באלבום %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "תמונה %i בקטגורית %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "תמונה %i מאוחסנת ב%w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "קישורים ישירים (כתובת תמונה)" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "קישור לתמונה" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "כתובת URL: תמונה רגילה" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "כתובת URL: תמונה ממוזערת" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "כתובת URL: תמונה בינונית" + +msgid "Full image" +msgstr "תמונה רגילה" + +msgid "Full image (linked)" +msgstr "תמונה רגילה (כולל קוד קישור)" + +msgid "Medium image (linked)" +msgstr "תמונה בינונית (כולל קוד קישור)" + +msgid "Thumbnail image (linked)" +msgstr "תמונה ממוזערת (כולל קוד קישור)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "עליך לבצע התחברות למערכת" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "כתובת IP כבר בהשהיה" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "ערכים חסרים" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "תפקיד לא חוקי" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "שם משתמש כבר בשימוש" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s התנתק" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u סימן לייק ל%t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u במעקב אחריך" + +msgid "A private user" +msgstr "משתמש פרטי" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "שם המשתמש או הדוא\"ל שגויים" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "היכנס" + +msgid "Upload images" +msgstr "העלה תמונות" + +msgid "Upload plugin" +msgstr "העלה תוסף" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "תוצאות חיפוש תמונות עבור %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "תוצאות חיפוש באלבום עבור %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "תוצאות חיפוש משתמש עבור %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "חשבון" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "פרופיל" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "חשבונות מקושרים" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "דואר אלקטרוני נשלח אל %s עם הוראות הפעלת החשבון" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "שם לא חוקי" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "אתר אינטרנט לא חוקי" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "סיסמא שגויה" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "השתמש בסיסמא חדשה" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "השינויים נשמרו" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "הסיסמא השתנתה" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "הסיסמה נוצרה" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "שם משתמש\\דוא\"ל שגויים" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "הגדרות עבור %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "עליך להסכים לתנאי שימוש ולמדיניות פרטיות" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "צור חשבון" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "העלאה" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "התמונות של %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "תוצאות עבור" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "לייקים מאת %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "לייק" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "עוקבים" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) אלבומים ב %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) ב %w" + +msgid "Discovery" +msgstr "גלה עוד" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "חיפוש מתקדם" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "אקראי" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "הודעות (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "התראות" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "אין התראות חדשות" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "הפרופיל שלי" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "התנתק" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "התקבלה בקשה לשנות את האימייל שלכם בחשבון <a href=\"%u\">%n</a> ב%w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "על מנת להשלים את התהליך אתם חייבים <a href=\"%s\">להפעיל את הדוא\"ל שלכם</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "לחלופין, אתם יכולים להעתיק ולהדביק את הקישור לדפדפן שלכם. <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "אם לא התכוונתם לזה, פשוט התעלמו מהודעה זו." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "הבקשה התקבלה מכתובת IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "התקבלה בקשה לרשום את ה%n חשבון ב%w" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "על מנת להשלים את התהליך אתם חייבים <a href=\"%s\">להפעיל את חשבונכם</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "התקבלה בקשה לאפס את הסיסמא לחשבון המשוייך ל- <a href=\"%u\">%n</a>" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "על מנת לאפס את סיסמתכם, <a href=\"%s\">לחצו כאן</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "היי %n, ברוכים הבאים ל%w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "עכשיו כשחשבונכם מוכן, תוכלו להנות מלהעלות את התמונות שלכם, ליצור אלבומים ולהגדיר את הפרטיות של התוכן שלכם כמו דברים רבים ומגניבים שעוד תגלו." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "דרך אגב, להלן לינק לפרופיל האישי שלכם: <a href=\"%u\">%n</a>. היכנסו ותתאימו אותו לטעם שלכם!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "תודה על הצטרפותכם!" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "הדוא\"ל נשלח מ %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "גרור ושחרר כאן את התמונות להעלאה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "בחר תמונות להעלאה" + +msgid "browse from your computer" +msgstr "מהמחשב האישי" + +msgid "add image URLs" +msgstr "הוספת קישורים של תמונות" + +msgid "You can also %i or %u." +msgstr "ניתן להוסיף גם %i או %u. " + +msgid "browse from your device" +msgstr "דפדף במכשיר שלך" + +msgid "take a picture" +msgstr "צילום תמונה" + +msgid "You can also %i, %c or %u." +msgstr "ניתן להוסיף גם %i, %c או %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "ערוך או שנה את גודל התמונה על ידי לחיצה על התמונה או אייקון העריכה" + +msgid "Edit any image by touching the image preview" +msgstr "ערוך או שנה את גודל התמונה על ידי לחיצה על תצוגה מקדימה או אייקון העריכה" + +msgid "your computer" +msgstr "המחשב שלי" + +msgid "You can add more images from %i or %u." +msgstr "ניתן להוסיף עוד תמונות מ- %i או %u." + +msgid "your device" +msgstr "ספריית תמונות" + +msgid "You can add more images from %i, %c or %u." +msgstr "ניתן להוסיף עוד תמונות מ- %i, %c או %u." + +msgid "Uploading %q %o" +msgstr "העלאת %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "הושלם" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "התמונות בהעלאה, יקח כמה שניות עד שתקבל לינק להורדה\\הטמעה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "העלאה הושלמה" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "התמונות שהועלו, התווספו לאלבום %s" + +msgid "You can %c with the content just uploaded or %m." +msgstr "באפשרותך לי%c עם התוכן שהועלה, או %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "הינך יכול לי%c אלבום חדש עם התוכן שהועלה." + +msgid "create a new album" +msgstr "צור אלבום חדש" + +msgid "move it to an existing album" +msgstr "להעביר אותם לאלבום קיים" + +msgid "sign in" +msgstr "היכנס" + +#, php-format +msgid "No %s have been uploaded" +msgstr "תקלה בעת העלאת קבצי %s, נסה שוב" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "נתקלנו במספר שגיאות במהלך הפעולה האחרונה שביצעת ולא ניתן להשלים אותה, נסה שוב!" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "קטגוריה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "בחר קטגוריה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "סמן כאן אם התוכן הינו פוגעני" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "סמן כתוכן פוגעני" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "בהעלאה.." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "בטל את העלאה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "שים לב: חלק מהתמונות לא הועלו" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "למד עוד" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "עיין ב- <a data-modal=\"simple\" data-target=\"failed-upload-result\">דו\"ח השגיאות</a> למידע נוסף." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "סגור" + +msgid "copy" +msgstr "העתק" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "הסרה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "כותרת" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "לא חובה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "שינוי מימדי תמונה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "רוחב" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "אורך" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "הערה: תמונות GIF מונפשות אינן ניתנות לשינוי מימדים." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "מחיקה תמונה אוטומטית" + +msgid "Sign up" +msgstr "הירשם" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "סמן אם התמונה הינה תוכן פוגעני" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "סמן כתוכן פוגעני" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "תיאור" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "תאר בקצרה את התמונה" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "הוספת קישורים של תמונות" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "הכנס כאן רשימת קישורים של תמונות" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "צור אלבום" + +msgid "You can also move the content to an %a." +msgstr "העבר את התוכן ל- %a." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "העבר לאלבום" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "בחרו אלבום קיים על מנת להעביר את התמונות שהועלו. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונות לשם." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "דוח שגיאות" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "קישורים ישירים (מקוצר)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "קוד HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "תמונת HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML מקושר במלואו" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML מקושר בחלקו" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML מקושר במעט" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode מלא" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode מקושר במלואו" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode מקושר בחלקו" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode מקושר במעט" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "כל המילים הללו" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "הקלידו את המילים החשובות: כלבים, ציפורים" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "מילה או ביטוי מדויק" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "הכניסו מילים מדוייקות כמו: \"כלבים\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "אף אחת מהמילים הללו" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "שימו מינוס רק לפני מילים שאתם לא רוצים. כמו: -\"ג'ק ספארו\" -\"ג'וני דפ\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "כתובת IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "שם האלבום" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "העבר לאלבום קיים" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "תיאור האלבום" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "תאר בקצרה את האלבום" + +msgid "Album privacy" +msgstr "פרטיות אלבום" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "מי יכול לצפות בתוכן הזה" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "פרטי (רק אני)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "פרטי (כל אחד עם הקישור)" + +msgid "Private (password protected)" +msgstr "פרטי (מוגן בסיסמא)" + +msgid "Album password" +msgstr "סיסמת אלבום" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "שם" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "שם הקטגוריה" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "מפתח קישור" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "קטגוריית מפתח קישור" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "רק אותיות, מספרים ומקפים" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "תיאור קצר של הקטגוריה" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "תמונה ללא כותרת" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "נתיב" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "תאריך תפוגה" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "שנה-חודש-יום שעות:דקות:שניות" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "דוגמה" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "עד איזה תאריך כתובת IP זו תהיה מושהת? השאירו ריק להשהייה לצמיתות." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "הודעה" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "הודעת טקסט, HTML או קישור מפנה" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "אלבום קיים" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "צור אלבום חדש" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "שם איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "אזור" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "אזור איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "דלי איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "מפתח" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "מפתח איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "סוד" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "איחסון סוד" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "מפתח פרטי" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "מפתח Google Cloud JSON" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "אתם תצטרכו <a %s>שירותי משתמש</a> בשביל זה." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "קישור זהות" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "זהות נקודת סיום AIP" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "נקודת סיום API בשביל זהות OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "שם משתמש" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "מיכל" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "מיכל איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "מזהה דייר" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "מזהה דייר (מזהה משתמש)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "שם דייר" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "שם דייר (שם משתמש)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "שם איחסון או IP של שרת האיחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "ניתוב שרת" + +msgid "Server login" +msgstr "התחברות לשרת" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "סיסמת השרת" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "קיבולת איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "דוגמה: 20GB, 1TB וכדומה." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "איחסון זה יהיה מושבת כאשר הוא יגיע למירב הקיבולת. השאירו ריק או 0 כדי לא להגביל." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "קישור איחסון" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "המערכת תמפה את התמונות של אחסון זה לכתובת זו." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "הצג עוד" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "טען עוד" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "בחר הכל" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "נקה בחירה" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "בחירה" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "פעולה" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "קבל קודים מוטבעים" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "העבר לקטגוריה" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "סמן כתוכן מאושר" + +msgid "Create new album" +msgstr "צור אלבום חדש" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "היכנס עם חשבון אחר" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "לא נמצאו נתונים." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "כל התמונות יועברו לאלבום החדש. ניתן גם להעביר תמונות <a class=\"modal-switch\" data-switch=\"move-existing-album\">מאלבום קיים</a>" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "בחרו באלבום קיים כדי להעביר את התמונה. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונה לשם." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "בחרו באלבום קיים כדי להעביר את תמונות האלבום. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונות לאלבום החדש." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "בחרו אלבום קיים כדי להעביר את התמונות. תוכלו גם <a class=\"modal-switch\" data-switch=\"move-new-album\">ליצור אלבום חדש</a> ולהעביר את התמונות לשם." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "כל התמונות שסומנו יופיעו תחת הקטגוריה שנבחרה." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "אין קטגוריות." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "אשר סימון כתוכן מאושר" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "האם הינך בטוח שאתה רוצה לסמן תוכן זה כמאושר?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "אשר סימון כתוכן פוגעני" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "אתה בטוח שאתה רוצה לסמן תוכן זה כתוכן פוגעני?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "אשר מחיקה" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "האם הינך בטוח במחיקת התמונה? לא ניתן לבטל פעולה זו." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "אתה בטוח שאתה רוצה להסיר את כל התוכן המסומן?" + +msgid "Fullscreen" +msgstr "מסך מלא" + +msgid "Exit fullscreen" +msgstr "יציאה ממסך מלא" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "אורח" + +msgid "Keyboard shortcuts" +msgstr "קיצורי דרך במקלדת" + +msgid "Uploaded by guest" +msgstr "הועלה על ידי אורח" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "מתוך %s" + +msgid "Uploaded by private" +msgstr "הועלה לתוכן פרטי" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "מאת %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "אפשרות דגל לא בטוח" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "הדף אינו קיים." + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "הדף המבוקש אינו נמצא" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "חפשו משהו אחר" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "המשתמש נמחק" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "החשבון שלך כמעט מוכן" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "הודעת דוא\"ל נשלחה אל %s עם הוראות הפעלת חשבון. קישור הפעלת חשבון זמין רק ל- 48 שעות הבאות. אם לא קיבלתם את ההוראות, נסו לבדוק בתיבת דואר זבל." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "ההפעלה נשלחה שוב" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "הצלחתם לשנות את דוא\"ל החשבון ל%s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "נווט אל הפרופיל שלך" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "קישור לאישור החשבון ישלח לכתובת הדוא\"ל הזו עם פרטים נוספים להפעלת החשבון שלכם." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "כתובת הדוא\"ל שלכם" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "שליחה" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "דוא\"ל עם הוראות איפוס הסיסמא נשלח אל כתובת הדואר האלקטרוני שנרשמת איתה. אם לא קיבלת בדוק בבקשה את תיבת הספאם שלך." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "הודעת דוא\"ל נשלחה עם הוראות לאיפוס הסיסמה שלכם. אם לא קיבלתם את ההוראות, נסו לבדוק בתיבת דואר זבל." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "שלח שוב" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "הזן את שם המשתמש או את כתובת הדוא\"ל שלך כדי להמשיך. ייתכן שתצטרך לבדוק את תיקיית דואר הזבל או להוסיף את הדוא\"ל %s לרשימה הלבנה" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "שם משתמש או דואר אלקטרוני" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "הסיסמה שלכם שונתה! כעת תוכלו להתחבר עם הסיסמה החדשה." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "היכנס עכשיו" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "הכנס סיסמא חדשה" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "לפחות %d תווים" + +msgid "Password strength" +msgstr "חוזק סיסמא" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "הכניסו שוב את הסיסמא החדשה" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "הודעות דוא\"ל נשלחה אל %s עם הוראות הפעלת החשבון. אם לא קיבלתם את ההוראות, בדקו בתיבת דואר זבל." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "האלבום מוגדר פרטי" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "האם הינך בטוח במחיקת האלבום כולל התמונות? לא ניתן לבטל פעולה זו." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "אהבת את זה" + +msgid "Upload to album" +msgstr "העלה תמונות לאלבום" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "קישור לאלבום" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "אנא הקפד לקרוא היטב את תנאי השימוש לפני המשך השימוש באתר; תנאי השימוש מהווים הסכם מחייב בינך לבין מערכת האתר" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "1) אתר זה עלול להכיל מידע, קישורים ותמונות של חומר שעלול להתפרש כמיני. אם הינך מתחת לגיל %s, אנא קרא תנאים אלה בעיון ובקפידה יחד עם הוריך (או אפוטרופוס אחר). אם אתה (או הוריך) אינכם מסכימים לתנאי השימוש של האתר, כולם או חלקם, אינך רשאי לעשות שימוש באתר זה לכל מטרה שהיא.\n\n2) אם בכל זאת המשכת לסעיף הבא הינך מצהיר שעברת את גיל %s שנה, ויש לך זכות לקבל / להציג חומר מיני מפורש.\n\n3) החומר שהינך נחשף אליו ועלול להתפרש כמיני ראוי רק לשימוש האישי שלי ונאסר עלי לחשוף אותו בפני קטינים.\n\nהמערכת או מי מטעמה לא נושאים בכל אחריות שהיא לנזק, הוצאה, התחייבות, הפסד או תביעה שייגרמו למשתמש באתר, ונובעים או קשורים בשימוש שלא כדין בשירותים באתר או לגבי תכנים הניתנים בו, או במידת שביעות רצונו של המשתמש מהם, לרבות אך לא רק לנזק, הוצאה, התחייבות, הפסד או תביעה עקב מסירת או העלאת מידע לאתרים בניהול או בבעלות צד שלישי שהמשתמש הגיע אליהם דרך קישור באתר; פרטים ו/או תוכן לא מהימן ו/או לא שלם ו/או לא ו/או לא מדויק מעודכן ו/או לא חוקי שנמסר או הועלה לאתר על ידי משתמש; לפרסומות המתפרסמות באתר מעת לעת על ידי מפרסמים ונותני חסות." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "באמצעות קליק על כפתור \"אני מאשר\" הינך מצהיר כי עברת על כל התנאים שנכתבו למעלה." + +msgid "I Agree" +msgstr "אני מאשר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "שימוש דיסק" + +msgid "Errors" +msgstr "שגיאות" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "סטטוס" + +msgid "Cancel" +msgstr "ביטול" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "הוספת משתמש" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "תפקיד" + +msgid "Manager" +msgstr "מנהל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "מנהל ראשי" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "כתובת דואר אלקטרוני" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "הוסף קטגוריה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "הוסף הרחקת כתובת IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "הוסף איחסון" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "חזור לרשימת עמודים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "שם האתר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "כותרת האתר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "תיאור האתר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "ברירת מחדל איזור זמן" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "בחר אזור" + +msgid "guests" +msgstr "אורחים" + +msgid "Enables explore for guests." +msgstr "אפשר לאורחים אופציית סיור" + +msgid "Likes" +msgstr "אהבתי" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "משתמש מיועד למצב אישי" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "מזהה משתמש" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "מזהה המשתמש שלכם הוא: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "מזהה מספרי של משתמש מיועד למצב אישי." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "ניתוב מצב אישי" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "ניתוב מותאם אישית כדי למפות /שם משתמש ל/כל דבר. השתמש ב\"/\" כדי למפות לדף הבית." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "מצב פרטי של האתר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "מצב פרטי יהפוך את האתר זמין רק למשתמשים רשומים." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "מצב פרטי של התוכן" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "ברירת מחדל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "אלץ פרטי (עצמי)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "אלץ פרטי (כל אחד עם הקישור)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "מצבי פרטיות שאולצו יעקפו בחירת פרטיות של המשתמש." + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "סטטוס עמוד" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "סוג" + +msgid "Terms of service" +msgstr "תנאי שימוש" + +msgid "Privacy" +msgstr "פרטי" + +msgid "Contact" +msgstr "צור קשר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "חשיפה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "לינק עמוד מפורסם" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "לינק עמוד מוסתר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "קוד מקור" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "סמן את סוגי הפורמטים המאושרים להעלאה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "פונקציית העלאת תמונות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "הפעילו את זה אם אתם רוצים לאפשר העלאת תמונות. הגדרות אלו אינן משפיעות על מנהלים." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "העלאות של משתמשים לא רשומים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "הפעילו את זה כדי לאפשר למשתמשים לא רשומים להעלאות קבצים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "הפעילו קודים מוטמעים (מעלה)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "הפעילו את זה אם אתם רוצים להראות קודים מוטמעים בסיום העלאת תמונות." + +msgid "Redirect on single upload" +msgstr "בצע הפנייה בהעלאת קובץ בודד" + +msgid "Auto delete guest uploads" +msgstr "מחיקת תמונה אוטומטית (אורחים)" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "הפעל פונקצייה זו אם ברצונך למחוק אוטומטית העלאת תמונות של אורחים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "נתוני Exif של תמונה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "אשר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "בחר את הגדרת נתוני <a %s>Exif</a עבור העלאת תמונות.\n" + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "נתוני Exif של תמונה (הגדרת רשומים)" + +msgid "Maximum upload file size" +msgstr "גודל הקובץ המרבי להעלאה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "נתיב תיקיית תמונות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "מקור" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "גודל תמונה ממוזערת" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "התמונה הממוזערת תותאם לגודל שקבעת" + +msgid "Medium image fixed size" +msgstr "גודל תמונה בינונית" + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "הפעילו את זה כדי לשים לוגו או כל דבר שתרצו בהעלאות תמונה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "אפשרויות משתמש עבור חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "הפעל חותמת תמונות בהעלאות אורח" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "הפעל חותמת תמונות בהעלאות משתמש" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "הפעל חותמת תמונות בהעלאות מנהל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "אפשרויות קובץ חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "הפעילו חותמת תמונות על העלאות תמונת GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "מינימום גודל תמונה הנדרש כדי להוסיף את חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "תמונת חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "מיקום תמונת חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "למעלה בצד שמאל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "באמצע בצד שמאל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "למטה בצד שמאל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "למעלה באמצע" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "באמצע למרכז" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "למטה באמצע" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "למעלה בצד ימין" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "באמצע בצד ימין" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "למטה בצד ימין" + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "אחוז חדות חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "כיוון שוליים של חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "טשטוש חותמת מים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "האם הינך בטוח במחיקת קטגוריית %s? לא ניתן לבטל פעולה זו." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "שים לב: בעת מחיקת קטגוריה, תמונות שמשוייכות לאותה קטגוריה לא ימחקו" + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "ערוך קטגוריה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "הפעלת הרשמות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "הפעילו את זה אם תרצו לתת למשתמשים להרשם." + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "הפעל אפשרות על קבלת הודעה במייל על רישום משתמש חדש." + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "הפעילו את זה אם תרצו להשתמש בקישור %s/username במקום %s/user/username" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "הפעילו את זה אם המשתמש חייב לאמת את הדוא\"ל שלו בהרשמה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "הפעילו את זה אם המשתמש שנרשם דרך רשת חברתית חייב להכניס כתובת דוא\"ל." + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "הצג חלון עם אישור כניסה (שימושי עבור מערכת למבוגרים בלבד)" + +msgid "Enable consent screen" +msgstr "הפעל מסך תנאי כניסה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "קבל הודעה למייל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "אם מופעל, המערכת תשלח דוא\"ל במקרי הצפות." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "הפעילו את זה אם אתם רוצים להראות תוכן \"פוגעני\" במאפיינים. הגדרות אלו אינן משפיעות על מנהלים ומשתמש יכול לעקוף אותן בהגדרות הפרטיות שלו." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "הפעילו את זה אם אתם רוצים להוסיף אפקט \"Blur\" על תמונות NSFW שברשימות." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "הפעילו את זה אם אתם רוצים להראות באנרים בדפים \"לא בטוחים\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "כמה אייטמים להציג עבור דף" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "בהיר" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "חשוך" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "כתום" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "הפעלת לוגו וקטורי" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "הפעילו לוגו וקטורי באיכות לוגו גבוהה במכשירים עם צפיפות פיקסלים גבוהה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "תמונת לוגו וקטור" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "הוסף את תמונת לוגו וקטור או את הלוגו של האתר בפורמט SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "תמונת לוגו סרוקה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "מומלץ להעלאות תמונה בפורמט PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "לא קיים ערך" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "הפעלת לחצן הורדה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "הפעילו את זה אם אתם רוצים להציג לחצן הורדת תמונה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "הפעלת קליק ימני על תמונה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "הפעילו את זה אם אתם רוצים לאפשר קליק ימני בדף צפייה בתמונה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "הפעלת הצגת Exif data" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "הפעילו את זה אם אתם רוצים להציג Exif data של תמונה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "הפעילו שיתוף ברשתות חברתיות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "הפעילו את זה אם אתם רוצים להציג כפתור לשיתוף תוכן ברשתות חברתיות." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "הפעלת קודים מוטמעים (תוכן)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "הפעילו את זה אם אתם רוצים להראות קודים מוטמעים של התוכן." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "הפעילו את זה אם אתם רוצים להראות תיבת סימון כדי לסמן אם התוכן המועלה כ- \"פוגעני\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "סגנון" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "דף נחיתה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "דף נחיתה + תמונות אחרונות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "בחר את סגנון דף הבית. כדי להתאימו אישית יש לערוך את הקובץ app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "תמונת עטיפה לדף נחיתה" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "האם הינך בטוח במחיקת התמונה? לא ניתן לבטל פעולה זו." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "מחק תמונה" + +msgid "Add new cover image" +msgstr "הוסף תמונת עטיפה חדשה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "הוסף את תמונת לוגו וקטור או את הלוגו של האתר בפורמט SVG (רק עבור דף הבית)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "מומלץ להעלאות תמונה בפורמט PNG (רק עבור דף הבית)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "התוכן יתווסף בתוך טאג %s בדף הבית. השאר ריק כדי להציג תוכן ברירת מחדל." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "צבע כפתור פעולה בדף הבית" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "בחר צבע לכפתור \"הנעה לפעולה\" בדף הבית" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "הפעילו את זה על מנת להשתמש בסגנון מתווה בשביל דף הבית בכפתור \"הנעה לפעולה\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "התוכן יתווסף בתוך טאג <a>. השאר ריק כדי להציג תוכן ברירת מחדל." + +msgid "Display available updates notification" +msgstr "הצג התראות על עדכון למערכת" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "הפעילו את זה אם אתם רוצים מיניפציה אוטומטית של CSS וJS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "כשזה מופעל, האתר יציג הודעת תחזוקה. הגדרות אלו אינן משפיעות על מנהלים." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "הפעילו את זה אם אתם רוצים להדפיס שגיאות שנוצרות על ידי PHP <a %s>error_reporting()</a>. זה צריך להיות כבוי בזמן תחזוקה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "שפת ברירת מחדל" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "בחר שפה אוטומטית" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "הפעילו את זה אם אתם רוצים לזהות באופן אוטומטי ולהגדיר את השפה הנכונה עבור כל משתמש." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "הפעילו את זה אם אתם רוצים לאפשר בחירת שפה." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "הפעלת שפות" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "גלגלו כדי להפעיל או לכבות HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "גלגלו כדי להפעיל או לכבות את האיחסון הזה" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "שם משתמש SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "סיסמת לשרת SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "הפעילו את זה כדי להציג הודעה שעומדת בדרישות החוק של האיחוד האירופי בנוגע לעוגיות. הערה: אתם צריכים את זה רק אם האתר שלכם מתארח באיחוד האירופי או אם יש לכם עוגיות מעקב." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "שמור שינויים" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "נתגלו שגיאות בפעולה האחרונה, נסה שוב." + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "התווסף לאלבום %a, ומופיע בקטגוריית %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "התווסף לאלבום %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "התווסף לקטגוריית %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "הועלה %s" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "שתף תמונה" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "מזהה אלבום" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "באלבום הנוכחי" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "העלו ושתפו את התמונות שלכם." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "גררו ושחררו כאן כדי להתחיל להעלות את התמונות שלכם עכשיו! מוגבל עד %s. ניתן להוסיף גם קישורים ישירים של תמונות, הטמעות BBCode ו- HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "התחל כאן" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "הירשם\\התחבר למערכת כדי להציג את התוכן" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "ניתן לאחר ההרשמה\\התחברות לנהל את התוכן שלך, ליצור אלבומים פרטיים, להתאים אישית את הפרופיל שלך" + +msgid "Sign in with your account" +msgstr "כניסת משתמש" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "אין לך משתמש? <a href='%s'>הירשם עכשיו</a>." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "התנתק" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "התנתקת בהצלחה ממערכת %s, מקווים לראותך בקרוב" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "חזור אל דף הבית" + +msgid "This content is password protected." +msgstr "האלבום מוגן בסיסמא" + +msgid "Please enter your password to continue." +msgstr "הזן סיסמא כדי להמשיך" + +msgid "Send" +msgstr "שלח" + +msgid "After" +msgstr "לאחר" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "לא ניתן להציג להציג כעת את הדף שביקשת. ייתכן שאינו זמין זמנית, הקישור שעליו לחצת פגום או שאינו בתוקף או שאין לך הרשאה להציג דף זה." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "מחק משתמש" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "תאריך הצטרפות" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "הרשמה מכתובת IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "פעיל" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "מורחק" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "ממתין לאישור כתובת דוא\"ל" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "ממתין לאישור הפעלת חשבון" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "ניתן להשתמש מ- %i עד %f תווים<br>אותיות, מספרים ו- \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "מחיקת תמונה אוטומטית" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "בעת סימון אופציית מחיקת תמונה אוטומטית, כל ההעלאות שתבצע לאחר מכן יוגדרו אוטומטית למחיקה זמן התמונה. (ניתן לבטל פעולה זו בכל העלאה)" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "ניוזלטר" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "אני מאשר קבלת חדשות וכו' על מערכת %s בהודעת דוא\"ל" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "הגדרות הצגת תוכן פוגעני" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "שפה" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "איזור זמן" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "סיסמא נוכחית" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "הכנס את הסיסמא הנוכחית" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "סיסמא חדשה" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "אמת סיסמא חדשה" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "הכנס סיסמא" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "אמת סיסמא" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "הזן שוב את הסיסמא" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "העלה תמונה חדשה" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "מחק תמונת פרופיל" + +msgid "Make my profile and identity totally private" +msgstr "בעת סימון הגדרה זו, הפרופיל וכל התוכן האישי שלך יהפוך להיות פרטי ולא ציבורי" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "כאן ניתן להכניס את השם המלא שלך (לא שם משתמש)" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "ביוגרפיה" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "ספר בקצרה מי אתה !!" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "הרגישו חופשיים לעיין ולראות את כל האלבומים והתמונות המשותפים שלי." + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "צפייה בכל התמונות שלי" + +msgid "Login" +msgstr "התחבר" + +#, php-format +msgid "Already have an account? %s now." +msgstr "נרשמת בעבר למערכת? %s עכשיו." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "לבצע שליחת הוראות להפעלת החשבון מחדש" + +#, php-format +msgid "You can also %s." +msgstr "תוכל גם ל %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "אני מעל גיל %s שנה" + +msgid "terms" +msgstr "תנאי שימוש" + +msgid "privacy policy" +msgstr "מדיניות פרטיות" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "אני מסכים ל- %terms_link ו- %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "בחר תמונת רקע פרופיל" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "שנה רקע" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "לא ניתן לבטל פעולה זו לאחר מחיקת תמונת רקע של הפרופיל. האם הינך בטוח במחיקת תמונת רקע?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "מחק רקע" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "עוקבים" +msgstr[1] "עוקבים" +msgstr[2] "עוקבים" +msgstr[3] "עוקבים" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "לעקוב" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "נחסמת זמנית לכניסה למערכת." + +msgid "Plugin" +msgstr "תוספים" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "שאלות כלליות\\הערות" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "תלונת DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "הודעה לא חוקית" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "נושא לא חוקי" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "שגיאה בדוא\"ל" + +msgid "Message sent" +msgstr "ההודעה נשלחה בהצלחה" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "בדקות הקרובות ההודעה תתקבל למייל של המערכת, ונדאג ליצור איתך קשר." + +msgid "If you want to send a message fill the form below." +msgstr "הזן את הפרטים הבאים בכדי לשלוח הודעה." + +msgid "Your name" +msgstr "שם מלא" + +msgid "Subject" +msgstr "נושא" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "השינויים שביצעת לא נשמרו. האם להמשיך?" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "חזור" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "המשך" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "שמירת נתונים" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "שולח נתונים" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "אשר את הפעולה" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "מידע" + diff --git a/app/languages/hr.po b/app/languages/hr.po new file mode 100644 index 0000000..2c7dbc5 --- /dev/null +++ b/app/languages/hr.po @@ -0,0 +1,2112 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-11-27 19:52+0000\n" +"PO-Revision-Date: 2020-11-27 19:52+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Pogrešan email" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Netočno korisničko ime" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Pogrešna lozinka" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Nevažeći način web stranice" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Od email adrese" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Admin mail za slanje E-Mail pošte članovima." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Dolazna e-mail adresa" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Primatelj za kontakt obrasca i sustava upozorenja." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Način web stranice" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Način web stranice možete prebaciti bilo kada." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Zajednica" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Osobno" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Instalirana verzija je v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Ne mogu se povezati s %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Posljednje dostupno izdanje je v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Potrebno ažuriranje, nastavlja se preuzimanje" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Nije potrebno ažuriranje" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Sistemske datoteke su već ažurirane" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Početak v%s preuzimanja" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Preuzeto v%s, nastavlja se ekstrakcija" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Pokušaj ekstrakcije v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Ekstrakcija zavšena" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Priprema za instalaciju ažuriranja" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Ažuriranje nije uspjelo" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Ažuriranje u tijeku" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Nedostaje %s dokument" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Netočna informacija licence" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Netočni ključ licence" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Ne možete spremiti dokument" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Ne možete skinuti %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Ne možete raspakirati %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Ne možete napraviti %s mapu" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Ne možete ažurirati %s dokument - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Provjerite pogreške u formi za nastavak." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Moraš upisati ime albuma" + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Potvrdi" + +msgid "The content has been approved." +msgstr "Sadržaj je odobren." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Odaberite postojeći album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Došlo je do pogreške. Pokušajte ponovno kasnije." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Odaberite važeću vrstu slikovne datoteke." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Molimo odaberite sliku veličine najviše %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profil slike ažuriran." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Ažurirana je pozadinska slika profila." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Izbrisana je pozadinska slika profila." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Pogreška pri brisanju pozadinske slike profila." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Lozinke se ne podudaraju" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Dostupno ažuriranje v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Dostupno je ažuriranje za vaš sustav. Možete automatski preuzeti i instalirati ovo ažuriranje ili prijeći na %s da biste nastavili s preuzimanjem datoteke." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Promjene na ovom ažuriranju su:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Ažurirati sada" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "ili" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "poništi" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Ovo web mjesto ima najnoviju %s verziju" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "učitavanje" + +msgid "Toggle select" +msgstr "Uključi/isključi odabir" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Sviđa mi se" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Uredi" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albumi" +msgstr[2] "Albumi" + +msgid "Approve" +msgstr "Odobriti" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Izbriši" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Zatvori" + +msgid "Previous" +msgstr "Prethodni" + +msgid "Next" +msgstr "Sljedeći" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Slika u međuspremniku" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Datoteka je prevelika." + +msgid "Invalid or unsupported file format." +msgstr "Nevaljani ili nepodržani format datoteke." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Neke datoteke nije moguće dodati" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "slika" +msgstr[1] "slike" +msgstr[2] "slike" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s'ovi Albumi" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Slika je uspješno editirana." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privatno" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album je uspješno uređen." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Nevažeći ključ URL-a." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Ključ URL-a kategorije već se koristi." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategorija je uspješno izbrisana." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Dodana je kategorija %s." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Nevažeći datum isteka." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s je već zabranjen." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s je zabranjen." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Zabrana IP uspješno izbrisana." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Molimo ispunite sva obavezna polja." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Nevažeća vrijednost kapaciteta pohrane. Obavezno koristite valjani format." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Kapacitet pohrane ne može biti manji od trenutne upotrebe (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Neispravan URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Poslužitelj za pohranu uspješno uređen." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Korisnik je uspješno dodan." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Sadržaj je izbrisan." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Sadržaj je premješten." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Odaberi" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Poništi odabir" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Sadržaj je uređen." + +#, javascript-format +msgid "Import job ID %s added successfully, you can process the import now" +msgstr "Uvoz ID posla %s uspješno je dodan, uvoz možete sada obraditi." + +msgid "Select number of threads" +msgstr "Odaberite broj niti" + +#, javascript-format +msgid "Import job ID %s is being processed now" +msgstr "Uvoz ID-a posla %s trenutno se obrađuje" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "Uklonjen je ID uvoza %s" + +msgid "Spam detected" +msgstr "Otkrivena je neželjena pošta" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albumi" +msgstr[2] "albumi" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Otkrivena poplava. Možete učitati samo %limit% %content% u %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Neimenovano" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s'ove slike" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Napomena: Sadržaj je privatan, ali svatko s vezom moći će ga vidjeti." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Napomena: Ovaj sadržaj je zaštićen zaporkom.\nUpišite važeću lozinku da bi nastavili." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Napomena: Ovaj sadržaj je privatan. Promijenite privatnost na \"javno\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privatno" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Javno" + +msgid "Me" +msgstr "Ja" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Veza" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Lozinka" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "pogled" +msgstr[1] "pogleda" +msgstr[2] "pogledi" + +msgid "After %n %t" +msgstr "Nakon %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuta" +msgstr[1] "minuta" +msgstr[2] "minute" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "sat" +msgstr[1] "sata" +msgstr[2] "sati" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dan" +msgstr[1] "dana" +msgstr[2] "dana" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "tjedan" +msgstr[1] "tjedana" +msgstr[2] "tjedni" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mjesec" +msgstr[1] "mjeseci" +msgstr[2] "mjeseci" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "godina" +msgstr[1] "godine" +msgstr[2] "godine" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Nemoj automatski izbrisati" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplicirani prijenos" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privatni prijesno" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "sviđanje" +msgstr[1] "sviđanja" +msgstr[2] "sviđanja" + +msgid "Recent" +msgstr "Nedavno" + +msgid "Trending" +msgstr "U trendu" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top korisnici" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Najnovije" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Najstarije" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Najgledanije" + +msgid "Popular" +msgstr "Popularno" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Sa najviše sviđanja" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Pretraži" + +msgid "Animated" +msgstr "Animirano" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Traži" + +msgid "People" +msgstr "Ljudi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Slika" +msgstr[1] "Slike" +msgstr[2] "Slike" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Korisnik" +msgstr[1] "Korisnika" +msgstr[2] "Korisnika" + +msgid "adult" +msgstr "odrasla osoba" + +msgid "teen" +msgstr "tinejdžer" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "Sadržaj tipa %s je zabranjen" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Ne mogu napraviti %s odredišnu mapu" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Ne mogu otvoriti %s za zapisivanje" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interni" + +msgid "Can't insert storage." +msgstr "Nije moguće umetnuti pohranu." + +msgid "Can't update storage details." +msgstr "Detalji o poslužitelju pohranitelja nije moguće ažurirati." + +#, php-format +msgid "requires %s" +msgstr "zahtijeva %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Neograničeno" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "korišteno" + +msgid "Private profile" +msgstr "Privatni profil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekunda" +msgstr[1] "sekundi" +msgstr[2] "sekundi" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "prije %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "prije par trenutaka" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Nadzorna ploča" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Dostupno je ažuriranje za vaš sustav. Idite na %s da biste preuzeli i instalirali ovo ažuriranje." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Baza podataka sustava je zastarjela. Morate pokrenuti alat <a href=\"%s\">ažuriranje</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Web stranica je u načinu održavanja. Da biste vratili ovu postavku, idite na <a href=\"%s\">Nadzorna ploča > Postavke</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Trebali biste onemogućiti izvještavanje o PHP pogreškama za produkcijsko okruženje. Idite na <a href='%s'>Postavke sustava</a> da biste vratili ovu postavku." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Niste promijenili zadane postavke e-pošte. Idite na <a href='%s'>Postavke e-pošte</a> da biste to popravili." + +msgid "There is an update available for your Chevereto based website." +msgstr "Dostupno je ažuriranje za vašu Chevereto web stranicu." + +msgid "admin dashboard" +msgstr "adminska nadzorna ploča" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Ovo ažuriranje možete primijeniti izravno s %a ili ga preuzeti s %s a zatim ga ručno instalirati." + +#, php-format +msgid "view on %s" +msgstr "pregledi na %s" + +msgid "cookie policy" +msgstr "politika kolačića" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Koristimo vlastite kolačiće i kolačiće trećih strana kako bismo poboljšali vaše iskustvo pregledavanja i naše usluge. Ako nastavite koristiti našu web stranicu, podrazumijeva se da to prihvaćate %cookie_policy_link." + +msgid "I understand" +msgstr "Razumijem" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Zaboravili ste lozinku?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Resetiraj lozinku" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Pošalji ponovo aktivaciju računa" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Dodaj email adresu" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "e-mail promjenjen" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s kaže da ste robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Nevažeće korisničko ime / email" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Korisnik nema e-mail." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Zahtjev odbijen" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Račun mora biti omogućen kako bi koristili ovu mogućnost" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Račun je već aktiviran" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Dopustite do 15 minuta za e-poštu. Možete pokušati ponovo kasnije." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Poništite svoju zaporku na %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Potvrda potrebna na %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Dobrodošao na %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Email se već koristi" + +msgid "Password required" +msgstr "Zaporka potrebna" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Podijeli" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Embed kodovi" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Cijeli info" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album hostan u %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistika" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Slike" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albumi" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Korisnici" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Postavke" + +msgid "Bulk importer" +msgstr "Masovni uzovnik" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto verzija" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "instalirati ažuriranje" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "provjeri nova ažuriranja" + +msgid "Support" +msgstr "Podrška" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Trebate pomoć? Idite na %s i dobit će te pomoć ubrzo." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP verzija" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL verzija" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL server info" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD Library" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Postavljanje datoteka" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Omogućeno" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Onemogućeno" + +msgid "Max. upload file size" +msgstr "Maks. veličina datoteke" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Max. post veličina" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Max. vrijeme izvršavanja" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "sekundi" +msgstr[2] "%d sekundi" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "limit memorije" + +msgid "Rebuild stats" +msgstr "Obnovite statistiku" + +msgid "Connecting IP" +msgstr "IP povezivanje" + +msgid "Not your IP?" +msgstr "Nije vaša IP adresa?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Linkovi" + +msgid "Collaboration" +msgstr "Suradnja" + +msgid "Documentation" +msgstr "Dokumentacija" + +msgid "Changelog" +msgstr "Log promjena" + +msgid "Bug tracking" +msgstr "bug pračenje" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Web stranica" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Sadržaj" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Stranice" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Spisak" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Upload slike" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorije" + +msgid "Consent screen" +msgstr "Zaslon za pristanak" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Zaštita od poplave" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Početna stranica" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Banneri" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistem" + +msgid "Routing" +msgstr "Routing" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Jezici" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Vanjsko skladištenje" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Društvene mreže" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Eksterni servisi" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP zabrane" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Dodatne postavke" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Alati" + +msgid "Can't delete all homepage cover images" +msgstr "Ne mogu izbrisati sve slike naslovnice početne stranice" + +msgid "Homepage cover image deleted" +msgstr "Slika naslovnice početne stranice izbrisana" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokalni" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Eksterni" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Sve" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "pretraživanje sadržaja" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Dodaj stranicu" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Uredi stranicu ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Stranica je uspješno dodana." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Stranica je izbrisana" + +msgid "homepage" +msgstr "početna stranica" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Album stranica" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Korisnička stranica" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "Nesiguran sadržaj za javnost" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nevažeće ime web stranice" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Nevažeći jezik" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Nevažeća vremenska zona" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Nevažeća tema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "nevažeća vrijednost" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Nevažeći e-mail" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Nevažeći SMTP port" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Nevažeči SMTP server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Nevažeće SMTP korisničko ime" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "O nama" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID slike" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Izravni linkovi" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Link slike" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL slike" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Minijatura URL" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Potrebna je prijava" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Pogrešno unošena lozinka za korisnički profil ili E-Mail adresu" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Prijavi se" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Račun" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "E-Mail je poslan na %s sa uputama za aktiviranje" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nevažeće ime" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Nevažeća stranica" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Pogrešna lozinka" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Koristi novu lozinku" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Promjene su spremljene." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Lozinka je promijenjena" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Lozinka je napravljena." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Pogrešno korisničko ime / e-mail" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Napravi račun" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Uploadaj" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Rezultati za" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Nasumice" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Moj Profil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Odjavi se" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Pozdrav %n, dobrodošao na %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Hvala što ste se pridružili" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Upload završen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "saznajte više" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "zatvori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "opcija" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Kratak opis ove slike" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Napravi album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Premjesti u album" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML Kodovi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BB Kodovi" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Ime albuma" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "premjesti u postojeći album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Tko može vidjeti ovaj sadržaj" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privatno (samo ja)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Ime" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Poruka" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Napravi novi album" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Korisničko ime" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "vidi više" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Odaberi sve" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Prijavi se s drugim računom" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Potvrdi brisanje" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Gost" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Stranica ne postoji" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Tražena stranica ne postoji." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Traži nešto drugo" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Korisnik je obrisan" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Vaš korisnički račun je gotovo spreman" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Pošalji aktivaciju ponovno" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Uspješno ste promijenili e-mail računa u %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Idi na moj profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Tvoja email adresa" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Korisničko ime ili Email adresa" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Prijavite se sada" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Upiši novu lozinku" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Potvrdi novu lozinku" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Ovaj sadržaj je privatan" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Album link" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Disk koristi" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Uloga" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Email adresa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Naziv web stranice" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Glavni opis web stranice" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Opis web stranice" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Zadana vremenska zona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Odaberi regiju" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID Korisnika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Omogući gostima postavljanje slika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Putanja slike" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direkt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Obavijesti na e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Dnevni limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Tjedni limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Mjesečni limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Koliko slika želite prikazati po stranici kao spisak." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Stavi teme u %s folder" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Izbriši sliku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Zadani jezik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Glavni jezik za koristiti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automatsko podešavanje jezika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Od naziva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Vaš naziv za poslane E-mails za članove." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-Mail modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server i port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP korisničko ime" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP lozinka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP sigurnost" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Nezaštićen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Trebaš <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> za ovo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Trebaš <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> za ovo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Trebaš <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> za ovo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics kod" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Spremi promjene" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Podijeli sliku" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "U ovaj album" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Odjavljen" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Vi ste se odjavili %s. Nadamo se da ćemo Vas uskoro vidjeti." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Idi na početnu stranicu" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Nemate dopuštenje za pristup ovoj stranici ili je link istekao." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Izbriši korisnika" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Datum registracije" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Važeći" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Jezik" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Vremenska zona" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Sadašnja lozinka" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Upiši sadašnju lozinku" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nova lozinka" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Potvrdi novu lozinku" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Unesite svoju lozinku" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Potvrdi lozinku" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Ponovno unesite svoju lozinku" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Izbriši postojeću sliku" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Ovo je tvoje pravo ime, a ne vaše korisničko ime." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://tvojsite.com" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Pogledaj sve moje slike" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Promjeni pozadinu" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Izbriši pozadinu" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Opća pitanja / komentari" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA žalba" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Pogrešna poruka" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Pogrešan predmet" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Mail greška" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Sve promjene koje ste napravili bit će izgubljeno ako nastavite." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "nastavi svejedno" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Potvrdi akciju" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informacije" + diff --git a/app/languages/hu.po b/app/languages/hu.po new file mode 100644 index 0000000..a75fc03 --- /dev/null +++ b/app/languages/hu.po @@ -0,0 +1,4528 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2016-07-15 17:52+0000\n" +"PO-Revision-Date: 2016-07-15 17:52+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Érvénytelen e-mail" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Érvénytelen felhasználónév" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Érvénytelen jelszó" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Érvénytelen weboldal mód" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Küldő e-mail címe" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Küldő e-mail címe a felhasználóknak kiküldött üzenetekben." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Beérkező üzenetek címe" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "A kapcsolati űrlap és a rendszerüzenetek címzettje." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Weboldal mód" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Bármikor megváltoztathatja a weboldal üzemmódját." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Közösségi" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Személyes" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Frissítés folyamatban" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Hiba történt. Kérjük próbálja újra később." + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Hiányzó file: %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Érvénytelen licensz info" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Érvénytelen licensz kulcs" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "A fájl mentése nem sikerült" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "%s letöltése sikertelen" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "%s kicsomagolása sikertelen" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Névtelen" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s képei" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Megjegyzés: Ez egy privát tartalom. Ha szeretné megosztani állítsa publikusra a láthatóságát." + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Ne töröljön automatikusan" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "perccel" +msgstr[1] "perccel" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "órával" +msgstr[1] "órával" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "nappal" +msgstr[1] "nappal" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplikált feltöltés" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privát feltöltés" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "megtekintés" +msgstr[1] "megtekintés" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Kedvelés" +msgstr[1] "Kedvelések" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "kép" +msgstr[1] "kép" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u kedveli a(z) %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u mostantól követ téged" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Nem sikerült létrehozni a következő célkönyvtárat: %s" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "%s megnyitása szerkesztésre sikertelen" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Belső" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "A tároló kapacitása nem lehet kisebb a jelenlegi kihasználtságnál (%s)." + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Korlátlan" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "használt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privát" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "évvel" +msgstr[1] "évvel" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "hónappal" +msgstr[1] "hónappal" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "héttel" +msgstr[1] "héttel" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "másodperccel" +msgstr[1] "másodperccel" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s ezelőtt" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "pillanatokkal ezelőtt" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Vezérlőpult" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Szükség van az adatbázis frissítésére. Futtassa a <a href=\"%s\">frissítő</a> eszközt." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "A weboldal karbantartási módban van. Ennek kikapcsolásához navigáljon a <a href=\"%s\">Vezérlőpult > Beállítások</a> részhez." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "A frissítés kiadási jegyzetei:" + +#: ../../../app/lib/functions.render.php:303 +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this cookie policy." +msgstr "A szolgáltatásaink és a böngészési élmény javításának érdekében saját (és harmadik személytől származó) \"sütiket\" használunk. Az oldal további használatával kijelenti, hogy megértette és elfogadja ezt a tényt." + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Önnek nem engedélyezett a weboldal használata." + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Fedezze fel a feltöltött képeimet és böngésszen az albumaim között." + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Az összes képem megtekintése" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Az oldal nem létezik" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Elfelejtette a jelszót?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Jelszó visszaállítása" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Aktiváló e-mail újraküldése" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Adja meg az e-mail címét" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mail megváltoztatva" + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:140 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "A megadott reCAPTCHA érvénytelen" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Érvénytelen Felhasználónév/E-mail" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "A felhasználónak nincs megadott e-mail címe." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Kérés megtagadva" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "A fióknak aktiválva kell lennie a szolgáltatás használatához" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "A fiók már aktiválva lett" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Várjon legalább 15 percet az e-mail megérkezésére. Később újrapróbálhatja." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Jelszó visszaállítása a következőhöz: %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Megerősítés szükséges a következőhöz: %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Üdvözöljük %s oldalán" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "A jelszavak nem egyeznek meg" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Ez az e-mail cím már regsztrálva van" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Javítsa az űrlapon megjelenő hibákat a folytatáshoz." + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Legfrissebb" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Legrégebbi" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Legnépszerűbb" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Legtöbbször kedvelt" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Megosztás" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Teljes infó" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album a következőben: %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statisztikák" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Képek" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albumok" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Felhasználók" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Beállítások" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto verzió" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Frissítés telepítése" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "frissítések keresése" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP verzió" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Szerver" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL verzió" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL szerver infó" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD könyvtár" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Fájlfeltöltések" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Engedélyezve" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Kikapcsolva" + +#: ../../../app/routes/route.dashboard.php:193 +msgid "Max. upload size" +msgstr "Max. feltöltési korlát" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Max. post méret" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Max. végrehajtási idő" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d másodperc" +msgstr[1] "%d másodperc" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Memória limit" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Weboldal" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Tartalom" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Oldalak" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Feltöltések" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Képfeltöltés" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategóriák" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Flood védelem" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Sablon" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Kezdőlap" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Bannerek (reklámok)" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Rendszer" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Nyelvek" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Külső tároló" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Közösségi hálózatok" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Külső szolgáltatások" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP banok" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "További beállítások" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Eszközök" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Helyi" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Külső" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Összes kép" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "feltöltéseinek mutatása" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Oldal hozzáadása" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Oldal azonosító (ID) szerkesztése: %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Az oldal sikeresen hozzáadva." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Az oldal törlésre került." + +#: ../../../app/routes/route.dashboard.php:376 +msgid "Before cover (homepage)" +msgstr "A borító előtt (kezdőlap)" + +#: ../../../app/routes/route.dashboard.php:379 +msgid "After cover (homepage)" +msgstr "A borító után (kezdőlap)" + +#: ../../../app/routes/route.dashboard.php:382 +msgid "After listing (homepage)" +msgstr "A listák után (kezdőlap)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Navigáció előtt" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Navigáció után" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Tartalom (kép és album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "A részletek oszlopa" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "A kommentek előtt" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "A kép oldala" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "A képnéző teteje (kép oldal)" + +#: ../../../app/routes/route.dashboard.php:413 +#: ../../../app/routes/route.dashboard.php:417 +msgid "Expected banner size 728x90" +msgstr "Az ideális banner méret 728x90" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "A képnéző alja (kép oldal)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "A képnéző után (kép oldal)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "A fejléc előtt (kép oldal)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "A fejléc után (kép oldal)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Lábléc (kép oldal)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Album oldal" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "A fejléc előtt (album oldal)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "A fejléc előtt (album oldal)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Felhasználói profiloldal" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "A felső rész után (profil)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "A listák után (profil)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "\"Véletlen\" oldal" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "A felső rész után (\"véletlen\" oldal)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "Korhatáros" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Érvénytelen weboldal név" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Érvénytelen nyelv" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Érvénytelen időzóna" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Érvénytelen érték" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Érvénytelen feltöltési tároló mód" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Érvénytelen feltöltési fájlnevezés" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Érvénytelen miniatűr szélesség" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Érvénytelen miniatűr méret" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Érvénytelen vízjel százalék" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Érvénytelen vízjel átlátszóság" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Érvénytelen sablon" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Érvénytelen sablon séma" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Érvénytelen sablon alapszín" + +#: ../../../app/routes/route.dashboard.php:632 +msgid "Invalid theme top bar color" +msgstr "Érvénytelen sablon felső sáv szín" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Érvénytelen sablon felső sáv gomb szín" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Érvénytelen képlistázás méret" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Érvénytelen felhasználó azonosító" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Érvénytelen e-mail mód" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Érvénytelen SMTP port" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Érvénytelen SMTP biztonság" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Érvénytelen felhasználó azonosító a személyes módhoz" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Érvénytelen vagy foglalt útvonal (route)" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Érvénytelen tartalomkorlátozási mód" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Érvénytelen weboldal tartalomkorlátozási mód" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Érvénytelen kezdőlap stílus" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Érvénytelen kezdőlapi akciógomb szín" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Érvénytelen kezdőlapi akciógomb funkció" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Érvénytelen cím." + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Érévnytelen állapot." + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Érvénytelen típus." + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Érvénytelen láthatóság." + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Érvénytelen cél attribútum." + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Érvénytelen rel attribútum." + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Érvénytelen ikon." + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Érvénytelen URL kulcs" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Érvénytelen fájl útvonal" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Érvénytelen link URL" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Érvénytelen képfeltöltési útvonal" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Érvénytelen akciógomb URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maximum megengedett %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Érvénytelen SMTP szerver" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Érvénytelen SMTP felhasználónév" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Érvénytelen URL" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Ezt az URL kulcsot már használja egy másik oldal (azonosítója: %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Ezt a fájl útvonalat más használja egy másik oldal (azonosítója: %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Az oldal tartalmának mentése nem sikerült: %s." + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Legaktívabb felhasználók" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Feltöltések" + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Követések" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Információk" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Beillesztő kódok" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Kép azonosító" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Feltöltő IP címe" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "IP tiltása" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "Az IP cím már tiltva van" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Feltöltés dátuma" + +#: ../../../app/routes/route.image.php:177 +#, php-format +msgid "%s images" +msgstr "%s kép" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "%i kép a(z) %a albumban" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "%i kép a(z) %c kategóriában" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "%i kép a következőben: %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direkt linkek" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Kép URL" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Kép link" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Miniatűr URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Középméret URL" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Bejelentkezés szükséges" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Az IP cím már bannolva van" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Hiányzó értékek" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Érvénytelen szabály" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "A felhasználónév már használatban van" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s felhasználó kilépett." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Teszt üzenet %s feladótól @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Ez csak egy teszt" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Teszt üzenet elküldve a(z) %s címre." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "%s felhasználó követve" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "%s felhasználó követése törölve" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Kedvelt tartalmak" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Nem kedvelt tartalmak" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Hibás felhasználónév/ e-mail jelszó kombináció" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Belépés" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Kijelentkezett" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Általános kérdések/reakciók" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Jogi bejelentés/kép törlési kérelem" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Érvénytelen név" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Érvénytelen üzenet" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Érvénytelen tárgy" + +#: ../../../app/routes/route.page.php:85 +#: ../../../content/pages/default/contact.php:33 +msgid "Invalid reCAPTCHA" +msgstr "Érvénytelen reCAPTCHA" + +#: ../../../app/routes/route.page.php:90 +#, php-format +msgid "Can't submit the form: %s" +msgstr "Az űrlap beküldése nem sikerült: %s" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Üzenet elküldve. Hamarosan válaszolni fogunk." + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Üzenetküldési hiba" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Kép keresési találatok a következőre: %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Album keresési találatok a következőre: %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Felhasználó keresési találatok a következőre: %s" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Keresés" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Fiók" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Jelszó" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Összekapcsolt fiókok" + +#: ../../../app/routes/route.settings.php:191 +msgid "Invalid image expiration" +msgstr "Érvénytelen kép lejárati idő" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Az aktiválás befejezéséhez szükséges üzenet kiküldésre került a következő e-mail címre: %s" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Érvénytelen weboldal" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Rossz jelszó" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Használjon egy új jelszót" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "A változások mentésre kerültek." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "A jelszó megváltoztatásra került" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Jelszó létrehozva." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Hibás Felhasználónév/E-mail" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "%s beállításai" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Fiók létrehozása" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s képei" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format +msgid "%s's Albums" +msgstr "%s albumai" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Találatok a következőre:" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%s kedvelte" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Kedvelve" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Követők" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) album itt: %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) itt: %w" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Bezár" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Bővített keresés" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Véletlen" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Értesítések (%s)" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Feltöltés" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Belépés más fiókkal" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "vagy" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Felhasználónév vagy E-mail cím" + +#: ../../../app/themes/Peafowl/header.php:294 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "Emlékezzen rám" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Nincs még fiókja? <a href='%s'>Regisztráljon</a> most." + +#: ../../../app/themes/Peafowl/header.php:328 +msgid "Sign up with another account" +msgstr "Regisztráció más fiókkal" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-mail cím" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Felhasználónév" + +#: ../../../app/themes/Peafowl/header.php:341 +#: ../../../app/themes/Peafowl/views/signup.php:65 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "A regisztrációval elfogadja a <a href=\"%s\">Felhasználási Feltételeinket</a>" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Értesítések" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "töltés" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Nincsenek értesítéseid" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Profilom" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Kilépés" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Egy e-mail cím megváltoztatására irányuló kérés érkezett hozzánk a következő fiókhoz: <a href=\"%u\">%n</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "A folyamat befejezéséhez <a href=\"%s\">aktiválnia kell az e-mail címét</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Kattintson a fenti linkre vagy másolja be a következő hivatkozást a böngészője címsorába: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Amennyiben nem ön indította a regisztrációt úgy kérjük hagyja figyelmen kívül ezt az üzenetet." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "A kérés a következő IP címről érkezett: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Regisztrációt kezdeményezett %n felhasználónévvel a következő webhelyen: %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "A folyamat befejezéséhez <a href=\"%s\">aktiválnia kell a fiókját</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Egy jelszó visszaállító kérés érkezett a következő fiókjához: <a href=\"%u\">%n</a>" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "A jelszó visszaállításához <a href=\"%s\">kattintson erre a linkre</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Kedves %n, üdvözöljük a %w oldalán" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Most hogy a fiókja elkészült feltölthet - privát vagy nyilvános - képeket, létrehozhat albumokat és nekiláthat a megannyi izgalmas funkció felfedezésének." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Itt találhatja a nagyszerű profil oldalát: <a href=\"%u\">%n</a> Indulhat a testreszabás!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Köszönjük, hogy csatlakozott!" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Az e-mail innen került kiküldésre: %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Húzza ide vagy illessze be a képeket a vágólapról a feltöltéshez" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Válassza ki a feltölteni kívánt képeket" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:15 +msgid "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "Vagy <a data-trigger=\"anywhere-upload-input\">kitallózhatja őket a számítógépéről</a> esetleg feltölthet még <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">külső URL-ről is</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:16 +msgid "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "<a data-trigger=\"anywhere-upload-input-camera\">Készíthet képet</a> vagy <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">hozzáadhatja a képek linkjeit is</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:20 +msgid "Edit or resize an image by clicking the image preview" +msgstr "Kép szerkesztése vagy átméretezése az előnézetre való kattintással" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:21 +msgid "Edit or resize an image by touching the image preview" +msgstr "Kép szerkesztése vagy átméretezése az előnézet megérintésével" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:22 +msgid "You can add more images <a data-trigger=\"anywhere-upload-input\">from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">from image URLs</a>." +msgstr "Tölthet fel több képet <a data-trigger=\"anywhere-upload-input\">a számítógépéről</a> vagy <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">hozzáadhatja a képek linkjeit is</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:23 +msgid "You can <a data-trigger=\"anywhere-upload-input\">add more images</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "<a data-trigger=\"anywhere-upload-input\">Hozzáadhat még több képet</a> vagy <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">megadhatja a képek linkjeit</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" +msgstr "<span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">kép</span> feltöltése" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "kész" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:28 +msgid "The queue is being uploaded. It will take just a few seconds to complete." +msgstr "A hozzáadott képek feltöltése folyamatban van. Néhány pillanat és kész is." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Feltöltés befejezve" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:34 +#, php-format +msgid "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." +msgstr "A feltöltés hozzáadva a <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">nyilvános hírfolyamhoz</a>. <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">Létrehozhat új albumot</a> vagy <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">áthelyezheti a <span data-text=\"queue-objects\">képeket</span></a> egy már létező albumba." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:35 +msgid "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." +msgstr "<a href=\"%s\">Létrehozhat egy fiókot</a> vagy <a href=\"%l\">jelentkezzen be</a> hogy a feltöltései automatikusan megőrződjenek." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:40 +msgid "No <span data-text=\"queue-objects\">images</span> have been uploaded" +msgstr "Egy <span data-text=\"queue-objects\">kép</span> sem lett feltöltve." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Hiba történt és a rendszer nem tudta feldolgozni a kérést." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Válasszon kategóriát" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Change upload privacy" +msgstr "A feltöltési mód megváltoztatása" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "mégse" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Jelölje be hogyha a feltöltés korhatáros (felnőtteknek szóló)" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Korhatáros tartalom" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Feltöltés" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "hátralévők megszakítása" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Megjegyzés: Néhány kép nem került feltöltésre." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "tudjon meg többet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "További információért ellenőrizze a <a data-modal=\"simple\" data-target=\"failed-upload-result\">hibajelentést</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:89 +msgid "max" +msgstr "max" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "bezárás" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Szerkesztés" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Eltávolítás" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Kép szerkesztése" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Cím" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "opcionális" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Kép átméretezése" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Szélesség" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Magasság" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Megjegyzés: Az animált GIF képek nem kerülnek átméretezésre." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Kép automatikus törlése" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Jelölje be hogyha a kép korhatáros (felnőtteknek szóló)" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Kép jelentése" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Leírás" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "A kép rövid leírása." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Kép URL-ek hozzáadása" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Itt adja hozzá a kép URL-eket" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Album létrehozása" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:224 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "A feltöltött tartalmak áthelyezésre fognak kerülni ebbe az újonnan létrehozott albumba. Áthelyezheti még őket egy már <a class=\"modal-switch\" data-switch=\"move-existing-album\">korábban létrehozott albumba</a> is." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Áthelyezés albumba" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "A tartalom áthelyezéséhez válasszon ki egy meglévő albumot. Ha szeretné <a class=\"modal-switch\" data-switch=\"move-new-album\">létrehozhat egy újat</a> is." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Hibajelentés" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "album" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Linkek" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Megtekintő linkek" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML kódok" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML kép" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML teljes link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML középméret" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML miniatűr" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBkódok" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "Teljes BBCode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode teljes link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode közepes link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBkód miniatűr" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Teljes markdown" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Teljes linkelt markdown" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Közepes linkelt markdown" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Miniatűr linkelt markdown" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Írja ide a keresett szót vagy kifejezést" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Például: autós háttérképek" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Pontosabb keresés" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Tegye idézőjelbe a teljes kifejezést: \"autós háttérképek\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Találatok szűrése" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Tegyen egy minusz jelet a nem kívánt találatok elé: -ferrari -\"VW Golf\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategória" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Tároló" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP cím" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Album neve" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "mozgatás egy meglévő albumba" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Album leírása" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Az album témájának rövid és tömör leírása" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Ki láthatja ezt a tartalmat" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Publikus" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privát (csak én)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privát (a linkkel rendelkező felhasználók tudják megtekinteni)" + +#: ../../../app/themes/Peafowl/snippets/form_category.php:9 +msgid "No category" +msgstr "Nincs kategória" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Név" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategória neve" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Keresőbarát URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategória keresőbarát URL-je" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Csak betűk, számok és kötőjelek" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "A kategória rövid és tömör leírása" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Névtelen kép" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Lejárati dátum" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "ÉÉÉÉ-HH-NN ÓÓ:PP:MM" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Példa" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Meddig kerüljön az IP cím bannolásra? Hagyja üresen, ha nem kíván megadni lejárati dátumot." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Üzenet" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Szöveges üzenet, HTML vagy átirányítási cím (URL)" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Meglévő album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albumok" + +msgid "me" +msgstr "én" + +msgid "link" +msgstr "link" + +msgid "password" +msgstr "jelszó" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privát" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "új album létrehozása" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Tároló neve" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Régió" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Tároló bucket" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Kulcs" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Tároló kulcsa" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Titkos kulcs" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Tároló titkos kulcs" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:73 +msgid "Client email" +msgstr "Kliens e-mail" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:74 +msgid "Google Cloud client email" +msgstr "Google Cloud kliens e-mail" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Ehhez <a %s> szolgáltatás fiók</a> szükséges." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Privát kulcs" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON kulcs" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identity URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identity API végpont" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API végpont az OpenStack identityhez" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Tároló régió" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Konténer" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Tároló konténer" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant id (fiók azonosító)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant név" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant név (fiók neve)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "A tároló szerver hostneve vagy IP címe" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Elérési út" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Szerver útvonal" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path where the files will be stored" +msgstr "A fájlok tárolási helyének elérési útvonala" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:123 +msgid "Server username" +msgstr "Szerver felhasználónév" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Szerver jelszó" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Tároló kapacitás" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Példa: 20 GB, 1 TB, stb." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "A tároló inaktív lesz amint eléri ezt a mennyiséget. Hagyja üresen vagy adjon meg nullát a korlátlan értékhez." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Tároló URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "A rendszer ehhez az URL-hez fogja rendelni a tároló képeit." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "továbbiak megtekintése" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Több betöltése" + +#: ../../../app/themes/Peafowl/snippets/listing.php:91 +msgid "Previous" +msgstr "Előző" + +#: ../../../app/themes/Peafowl/snippets/listing.php:98 +msgid "Next" +msgstr "Következő" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Összes kijelölése" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Kiválasztás megszüntetése" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Kiválasztás" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Művelet" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Beillesztő kódok megjelenítése" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Kategória hozzárendelése" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Megjelölés mint biztonságos tartalom" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Törlés" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "Az oldal szolgáltatásainak használatához be kell jelentkeznie. Ha még nincs fiókja <a href=\"%s\">létrehozhat egyet</a> most." + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Jelenleg nincs megjeleníthető tartalom." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Képadatok szerkesztése" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Album szerkesztése" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Az összes kép át lesz helyezve az újonnan létrehozott albumba. Áthelyezheti még őket egy <a class=\"modal-switch\" data-switch=\"move-existing-album\">már meglévőbe</a> is." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "A kép áthelyezéséhez válasszon ki egy korábban létrehozott albumot. Esetleg ha szeretne, <a class=\"modal-switch\" data-switch=\"move-new-album\">készíthet egy újat</a> is." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Válasszon ki egy korábban létrehozott albumot az áthelyezéshez. Ha szeretné <a class=\"modal-switch\" data-switch=\"move-new-album\">létrehozhat egy új albumot</a> is." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Válasszon ki egy meglévő albumot a képek áthelyezéséhez. Esetleg ha szeretne, <a class=\"modal-switch\" data-switch=\"move-new-album\">létrehozhat egy újat</a> is." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Az összes kiválasztott kép átkerül ebbe a kategóriába." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Nincsenek kategóriák." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "A megjelölés biztonságosként lépés megerősítése" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Biztos, hogy meg akarja jelölni, mint biztonságos tartalmat?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "A megjelölés korhatárosként lépés megerősítése" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Biztos, hogy meg akarja jelölni, mint korhatáros tartalmat?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Törlés megerősítése" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Biztos, hogy törölni szeretné? A folyamat nem visszafordítható." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Biztos, hogy az összeset törölni szeretné? A folyamat nem visszafordítható." + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Album: %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "%u által" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Kiválasztás" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "A nem biztonságos jelzés mutatása" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "A kért oldal nem található." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Keressen valami mást" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "A felhasználó törlésre került" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "A tartalom törlésre került." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Az ön fiókja majdnem kész" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "A fiókja aktiválására szolgáló üzenetet kiküldtük az e-mail címére (%s). Az aktiváló link csak 48 óráig érvényes. Amennyiben az üzenet nem érkezik meg ellenőrizze a spam szűrő beállításait." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Ugrás a főoldalra" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Aktiváló üzenet újraküldése" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Sikeresen megváltoztatta a fiókja e-mail címét a következőre: %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Ugrás a profilomhoz" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Egy megerősítésre szolgáló hivatkozást küldünk erre az e-mail címre az aktiválás befejezéséhez szükséges lépésekkel." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Az ön e-mail címe" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:26 +msgid "Add email" +msgstr "E-mail hozzáadása" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "A jelszó visszaállítására vonatkozó instrukciókat tartalmazó üzenetet kiküldtük a regisztrációkor megadott e-mail címére. Ellenőrizze a spam mappát is." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Instrukciók újraküldése" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "A jelszó visszaállítási útmutatót tartalmazó üzenetet elküldtük. Ha nem érkezett meg kérjük ellenőrizze a levelezője spam mappáját." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "Írja be a regisztrációkor megadott e-mail címét vagy felhasználónevét." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Elküld" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "A jelszava megváltozott. A következő belépéskor az újonnan megadott jelszót használja." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Bejelentkezés most" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "Írja be a használni kívánt új jelszót." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "Új jelszó" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "Minimum %d karakter" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Írja be az új jelszót" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Jelszó megerősítése" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Az új jelszó még egyszer" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "A fiók aktiválásához szükséges instrukciókat tartalmazó üzenetet kiküldtük a következő címre: %s. n\\ Kérjük ellenőrizze a spam mappát is!" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:19 +msgid "Enter the username or email address that you used to create your account to continue." +msgstr "A folytatáshoz írja be a fiókja létrehozásakor megadott e-mail címet vagy felhasználónevet." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Ez egy privát tartalom" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Biztos, hogy törölni szeretné az albumot és a benne található összes képet? Ez a folyamat nem visszafordítható." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Album Törlése" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Album link" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Kép" +msgstr[1] "Kép" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Felhasználó" +msgstr[1] "Felhasználó" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Felhasznált tárterület" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Felhasználó hozzáadása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Jogosultság" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Adminisztrátor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Kategória hozzáadása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "IP ban hozzáadása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Tároló hozzáadása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Vissza az oldalakhoz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Weboldal neve" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Weboldal címe (doctitle)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Weboldal meta leírása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +msgid "Website keywords" +msgstr "Weboldal kulcsszavai" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Alapértelmezett időzóna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Régió kiválasztása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Személyes mód célfelhasználója" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Azonosító" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Az ön felhasználó azonosítója: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "A kiválasztott felhasználó numerikus azonosítója a személyes módhoz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Személyes mód hozzárendelés" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Egyedi hozzárendelés (/felhasználónév -> /valami). A kezdőlaphoz rendeléshez írjon perjelet \"/\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Weboldal tartalomkorlátozási módja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "A privát mód csak a regisztrált felhasználók számára teszi elérhetővé a weboldalt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Privát tartalom mód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Alapértelmezett" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Kényszerített privát" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Kényszerített privát (csak a linkkel rendelkező felhasználóknak)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "A kényszerített tartalom mód felülírja a felhasználó által kiválasztott módot." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Oldal címe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Oldal státusza" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktív oldal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Inaktív oldal (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Csak az aktív oldalak érhetőek el." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Típus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Oldal láthatósága" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Látható oldal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Rejtett oldal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "A rejtett oldalak nem látszanak a menüben, de a linkkel rendelkezők meg tudják nyitni őket." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Csak betűk, számok, kötőjel és perjel (/)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:489 +#, php-format +msgid "Page URL key relative to %s" +msgstr "Az oldal URL kulcs relatív ehhez: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Fájl útvonal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Egy %f fájl relatív a következőhöz: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta kulcsszavak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta leírás" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Forráskód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Nincs írási engedély a(z) %s útvonalhoz tehát külső szerkesztő segítségével kell hozzáadnia ezt a fájlt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Nincs írási engedély a(z) %s fájlhoz tehát külső szerkesztő segítségével kell módosítania a tartalmát." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Származási hely: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Link URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Link cél attribútum (target)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Válassza ki a(z) %s értéket az oldal vagy link új ablakban történő megnyitásához." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Link rel attribútum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Csak betűk, számok, kötőjel és szóközök" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt;%s attribútum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Link ikon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Tekintse meg a(z) <a %s> ikon útmutatót</a> a támogatott ikonok teljes listájáért." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Megjelenítési sorrend" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Az oldalak megjelenítési sorrendje a menüben és a listákban. Adja meg az \"1\" értéket a magasabb prioritáshoz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Biztos, hogy törölni akarja a(z) %s azonosítóval rendelkező oldalt? A művelet nem visszavonható." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Feltöltések engedélyezése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Kapcsolja be, ha szeretné engedélyezni a képfeltöltéseket. Ez az opció nem vonatkozik az adminisztrátorokra." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Vendég feltöltés" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Engedélyezze ha szeretné, hogy nem regisztrált felhasználók is tudjanak feltölteni." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Automatikusan törlődő feltöltések engedélyezése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Engedélyezze, ha szeretné, hogy a feltöltésekhez megadható legyen automatikus törlési időpont." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Kép Exif adatok" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Megőriz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Válassza ki az alapértelmezett beállításokat a kép <a %s>Exif adataihoz</a> feltöltéskor." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Kép Exif adatai (felhasználói beállítás)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Engedélyezze, ha szeretné, hogy a felhasználók maguk állíthassák be az Exif beállításokat." + +#: ../../../app/themes/Peafowl/views/dashboard.php:689 +msgid "Max. filesize" +msgstr "Max. fájlméret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:692 +#, php-format +msgid "Max. allowed filesize. (Max allowed by server is %s)" +msgstr "A maximum engedélyezett fájlméret. (A szerver által engedett maximum: %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "A képek útvonala" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relatív a Chevereto gyökérkönyvtárához" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Hol tároljuk a képeket? Az útvonal relatív kell legyen a Chevereto gyökérkönyvtárához." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Tároló mód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Dátum mappák" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direkt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "A dátum mappák a következő struktúrát hozzák létre: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Fájl elnevezési módszer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Eredeti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Az eredeti és véletlen keverése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "Az \"eredeti\" megpróbálja megtartani a kép eredeti nevét míg a \"véletlen\" generál egy vegyes karakterekből álló nevet. Az \"ID\" elnevezi a képet egy azonosító alapján." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Miniatűrök mérete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "A miniatűrök ekkora méretben fognak megjelenni." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Vízjelek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Engedélyezze, ha szeretne logót vagy képet elhelyezni a feltöltéseken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Figyelem: Nem sikerült írni a következőbe: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Vízjel felhasználó beállításai" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Vízjel engedélyezése a vendég feltöltéseknél" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Vízjel engedélyezése a felhasználók feltöltéseinél" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Vízjel engedélyezése az admin feltöltéseinél" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Vízjel fájl beállításai" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Vízjel engedélyezése a GIF feltöltéseknél" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "A vízjelhez szükséges minimális képméret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Az ennél kisebb méretű képekre nem fog kerülni vízjel. Adjon meg nullát (0), ha nem szeretne beállítani méretkorlátozást." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Vízjel képe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "A legjobb eredményt az egyszerű (vetett árnyékos) logóval tudja elérni. Nagyobb képet is használhat, ha a fájlméret megfelelő (az ajánlott maximum 16KB). PNG használata kötelező." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "A vízjel pozíciója" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "bal felül" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "bal középen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "bal alul" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "középen felül" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "közép közép" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "közép alul" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "jobb felül" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "jobb középen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "jobb alul" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "A vízjel képének relatív pozíciója. Az első érték a horizontális, a második a vertikális pozíció." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Vízjel mérete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "A vízjel százalékos mérete a képhez viszonyítva. Megadható érték: 1-100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "A vízjel margója" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margó a kép szélétől számítva a vízjelig." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Vízjel átlátszósága" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "A vízjel átlátszósága a végső vízjelezett képen. Az értéke 0 és 100 között lehet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Biztos, hogy törölni akarja a(z) %s kategóriát? A művelet nem visszavonható." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Megjegyzés: A kategóriában található képek nem törlődnek a kategória törlésével." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Kategória szerkesztése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Lejár" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Biztosan el szeretné távolítani a tiltást a következő IP címről? %s A folyamat nem visszafordítható." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "A bannolt IP cím tulajdonosa képtelen lesz hozzáférni a weboldalhoz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "IP ban szerkesztése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Regisztráció engedélyezése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Engedélyezze, ha szeretné, hogy a látogatók regisztrálhassanak." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Felhasználónév útvonal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Engedélyezze ha szeretné, hogy a felhasználó URL %s/felhasználónév legyen %s/user/felhasználónév helyett." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "E-mail megerősítés szükséges" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Engedélyezze, ha szeretné, hogy a felhasználóknak meg kelljen erősíteni az e-mail címüket regisztrációkor." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "E-mail szükséges a közösségi oldalakkal történő regisztrációhoz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Engedélyezze, ha a közösségi oldalakon át érkező regisztrációkhoz szükséges legyen e-mail cím megadása." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Felhasználó avatárjának maximális fájlmérete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "A maximális engedélyezett méret a felhasználó avatárjához. (A szerver által engedélyezett maximum: %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "A felhasználó hátterének maximális fájlmérete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "A maximális engedélyezett méret a felhasználó hátteréhez. (A szerver által engedélyezett maximum: %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Tiltja a képfeltöltést (IP alapján) ha a rendszer túl sok feltöltési kérést észlel egy megadott időintervallum alatt. Ez a beállítás nem vonatkozik az adminisztrátorokra." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Értesítés e-mailben" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Engedélyezése esetén a rendszer e-mail üzenetet fog küldeni feltöltési (flood) támadás esetén." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Percenkénti limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Óránkénti limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Napi limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Heti limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Havi limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "A korhatáros tartalom megjelenítése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Engedélyezze, ha szeretné megjeleníteni a korhatáros tartalmakat a képek között. Ez a beállítás nem vonatkozik az adminisztrátorokra és a felhasználók felülírhatják a beállításaik között." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "A korhatáros tartalom elmosása a feltöltések között" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Engedélyezése esetén a korhatáros képek elmosódva (kivehetetlenül) fognak látszódni a feltöltési listában." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Mutassa a bannereket a korhatáros tartalmak között" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Engedélyezze, ha szeretné, hogy megjelenjenek a bannerek a korhatáros tartalmak között." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Mutassa a korhatáros tartalmat a \"véletlen\" módban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Oldalak szerinti listázás" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Hány elem kerüljön megjelenítésre a listázás során." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Képek lapozásának módja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Végtelen görgetés" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klasszikus lapozás" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Kiválaszthatja az önnek leginkább tetsző navigációs megoldást." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Kép listázás méret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fluid" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fix" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Mind a két opció fix szélességet használ, a \"fluid\" azonban automatán számolja ki a magasságot." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Képlista oszlopszáma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Itt beállíthatja hány oszlop jelenjen meg az eszközökön." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Asztali gép" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Helyezd a sablonokat a %s mappába" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Séma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Világos" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Sötét" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Alap szín" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Hexadecimális színkód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Ezt használhatja a téma alapszínének megadásához. Az értéknek <a href=\"%s\" target=\"_blank\">hexa formátumban</a> kell lennie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Top bar color" +msgstr "Felső sáv színe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Fekete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Fehér" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1210 +msgid "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." +msgstr "Ha ezt fehér színre állítja, akkor a felső sáv és az összes sötét tónus fehérre fog váltani." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Felső sáv gombjainak színe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Kék" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Zöld" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Narancs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Piros" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Szürke" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "A felső sáv gombjainak színe (példa: \"Fiók létrehozása\" gomb)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "A vektoros logó bekapcsolása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Bekapcsolja a vektoros logót a nagyobb pixelsűrűségű eszközökön a jobb minőség érdekében." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Vektor logó" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "A weboldal logójának vektoros változata SVG formátumban." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Sima logó" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "A logó hétköznapi verziója. Az ajánlott formátum a PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Logo magasság" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Nincs érték" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Itt állíthatja be a logo magasságát, ha szükséges." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "A favicon képe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon kép. A magasságnak és szélességnek egyeznie kell." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "A letöltés gomb engedélyezése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Engedélyezze, ha szeretné, hogy megjelenjen a letöltés gomb a képek mellett." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Jobb kattintás engedélyezése a képeken" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Engedélyezze, ha szeretné, hogy engedélyezett legyen a jobb kattintás a képmegjelenítő felületen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Exif adatok mutatásának engedélyezése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Engedélyezze, ha szeretné, hogy megjelenjenek az Exif adatok." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Közösségi megosztás engedélyezése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Engedélyezze, ha szeretné megjeleníteni a közösségi megosztás gombokat." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Beillesztő kódok engedélyezése (tartalom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Engedélyezze, ha szeretné megjeleníteni a beillesztő kódokat a tartalomhoz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Beillesztő kódok engedélyezése (feltöltő)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Engedélyezze, ha szeretné megjeleníttetni a beillesztő kódokat a feltöltés végén." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Lehetőség a korhatáros tartalom megjelölésére a feltöltés során" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Engedélyezze, ha szeretne megjeleníteni egy kiválasztó gombot a korhatáros tartalom megjelölésére feltöltések esetén." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Saját CSS kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Ide írja a saját CSS kódját. Ez <style> formátumban kerül beillesztésre a záró </head> tag elé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Saját JS kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Ide írja a saját JS kódját. Ez <script> formátumban kerül beillesztésre a záró </head> tag elé." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Stílus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Kezdőoldal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Kezdőoldal + képek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +msgid "Route explore" +msgstr "Route explore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Válassza ki a kezdőlap stílusát. További módosításhoz szerkessze az app/themes/%s/views/index.php fájlt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Borítókép" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Biztos, hogy törölni szeretné ezt a képet? A folyamat nem visszafordítható." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Kép törlése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "A weboldal logója vektoros formátumban (csak a kezdőlaphoz)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "A weboldal logójának bitmap verziója (csak a kezdőlaphoz). PNG formátum ajánlott." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Ez lesz hozzáadva a kezdőlap %s tagjéhez. Hagyja üresen az alapértelmezett tartalom használatához." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Bekezdés" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Az \"akciógomb\" színe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "A kezdőlapon megjelenő \"akciógomb\" színe." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Az \"akciógomb\" külső stílua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Engedélyezze, hogy külső stílust adjon meg a kezdőlapi \"akciógombnak\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Akciógomb funkció" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Feltöltő aktiválása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Link megnyitása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Akciógomb URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Adjon meg egy abszolút vagy relatív URL-t" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Egy relatív URL mint például %r lesz hozzárendelve a következőhöz: %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Akciógomb HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Ez lesz hozzáadva az akciógomb <a> tagjához. Hagyja üresen az alapértelmezett tartalom használatához." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Felhasználó azonosítók" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1524 +msgid "Here you can set the codes for the predefined ad spaces." +msgstr "Itt tudja megadni a hirdetések kódjait." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Kód tömörítése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Engedélyezze, ha szeretné, hogy az oldal automatikusan tömörítse a CSS és JS kódot." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Karbantartás" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Bekapcsolása esetén a látogatók számára egy karbantartásra figyelmeztető üzenetet jelenik meg. Az admnisztrátorok továbbra is megtekinthetik az oldalt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Ez a 'salt' konvertálja a numerikus azonosítót alfanumerikussá. A telepítéskor került létrehozásra." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP hibajelentés" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Engedélyezze, ha szeretné látni a PHP <a %s>error_reporting()</a> által generált hibákat. Éles oldalnál ajánlott kikapcsolva tartani." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Hibakeresési szint" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Nincs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Hibák logolása" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Hibák megjelenítése logolás nélkül" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Mutassa és logolja is a hibákat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "A hibakeresési szint beállításához olvassa el a <a %s>hibakeresési dokumentációt</a>. Az alapértelmezett beállítás a \"Hibák logolása\" (1)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Alapértelmezett nyelv" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Az alapértelmezetten használt nyelv." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automata nyelvváltás" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Engedélyezze, ha szeretné, hogy a felhasználók számára automatikusan beállításra kerüljön az oldalon használt nyelv." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Nyelvválasztó" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Engedélyezze, ha szeretné engedélyezni a nyelvválasztást." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Engedélyezett nyelvek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "A nem kijelölt nyelvek nem fognak megjelenni a weboldalon." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Engedélyezze, hogy be/kikapcsolja a HTTPS-t" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Engedélyezze, hogy be/kikapcsolja ezt a tárolót" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kvóta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktív" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Tárolási módszer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "A helyi tároló az alapértelmezetten használt mód (abban az esetben is, ha nincs aktív külső tároló)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Ha segítségre lenne szüksége olvassa el a <a %s>tároló dokumentációt</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Tároló szerkesztése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Küldő neve" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Ez lesz a küldő neve a felhasználóknak kiküldött üzenetekben." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-mail mód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Hogyan küldjük ki az e-maileket? Ajánlott: SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP szerver és port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP szerver" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP felhasználónév" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP jelszó" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP biztonság" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Nem biztonságos" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Teszt e-mail küldése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "test@somedomain.com" +msgstr "teszt@domained.hu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Használja ezt a beépített tesztet, hogy kipróbálja a rendszerüzenetek küldését. Az ajánlott módszer: %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Ehhez szükséges egy <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook alkalmazás.</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook alkalmazás azonosító (ID)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook alkalmazás titkos kulcs (secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Ehhez egy <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter alkalmazás szükséges.</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API kulcs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API titkos kulcs (secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter fiók" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Ehhez egy <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google alkalmazás szükséges.</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google kliens id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google kliens titkos kulcs (secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Ehhez egy<a href=\"http://vk.com/dev\" target=\"_blank\">VK alkalmazás</a> szükséges." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK kliens azonosító (ID)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK kliens titkos kulcs (secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1949 +#, php-format +msgid "CDN allows you to offload static content to several edge servers making your website faster. If you don't have a CDN provider you should try %s." +msgstr "A CDN segítségével áttöltheti a weboldala statikus tartalmait több külső szerverre a sebesség növelése érdekében. Ha még nincs CDN szolgáltatója akkor próbálja ki a következőt: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Ehhez szüksége lesz egy <a href=\"%s\" target=\"_blank\">reCAPTCHA kulcsra</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1974 +msgid "reCAPTCHA public key" +msgstr "reCAPTCHA publikus kulcs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1979 +msgid "reCAPTCHA private key" +msgstr "reCAPTCHA privát kulcs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA tűréshatár" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Hány hibás próbálkozás legyen szükséges a reCAPTCHA megjelenéséhez? Nulla (0) használata esetén mindig meg fog jelenni." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Komment kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook vagy bármi más amit szeretne. A képnézetben kerül megjelenítésre." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics vagy bármi más amit szeretne. A sablon láblécébe (footer) kerül." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Az API-val kapcsolatos bővebb információkért olvassa el az <a %s>API dokumentációt</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 kulcs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Ezt a kulcsot használja az <a %s>API v1</a> használata esetén." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Sütikre vonatkozó jogi figyelmeztetés" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Engedélyezése esetén megjelenik az EU jogszabályoknak megfelelő figyelmeztető üzenet. Megjegyzés: Bekapcsolására csak abban az esetben van szükség, ha a weboldal az EU területén belüli tárhelyen található és ha használ követő sütiket." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Változtatások mentése" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "A folytatáshoz javítsa a hibákat." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Vendég" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Kedveled ezt" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Kedvelés" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Feltöltve a %a albumba és a %c kategóriába" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Hozzáadva a következőhöz: %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Feltöltve a következőbe: %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Feltöltés ideje: %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Kevesebb Exif adat" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Több Exif adat" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Kép megosztása" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album azonosító" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Ebben az albumban" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Töltse fel képeit és ossza meg őket a világgal." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Húzza a képeket ahová csak szeretné és kezdje el feltölteni őket most! (Korlát: %s). Direkt linkek, BBCode-ok, HTML miniatűrök és még megannyi hasznos funkció." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Feltöltés megkezdése" + +#: ../../../app/themes/Peafowl/views/index.php:63 +#, php-format +msgid "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." +msgstr "Töltsön fel képeket %s fiókjába és jelenítse meg őket ezen az oldalon.<br>A vezérlőpulton belül módosíthatja, hogy mely felhasználó képei jelenjenek meg itt." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Regisztráljon, hogy hozzáférhessen az összes funkcióhoz" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Töltse fel képeit, hozzon létre privát albumokat, szabja testre a profilját és fedezzen fel még több egyedi funkciót." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Írja be a jelszavát" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Kilépett a %s oldalról. A mihamarabbi viszontlátásra!" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "A weboldal karbantartás alatt áll" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Éppen változtatásokat végzünk a motorháztető alatt, frissítünk, újítunk, javítunk. Még néhány perc és újra elérhetőek leszünk." + +msgid "Send" +msgstr "Küldés" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Nincs jogosultsága az oldal megtekintéséhez vagy a link már érvénytelen." + +msgid "Search results" +msgstr "Keresési eredmények" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Biztos, hogy törölni szeretné ezt a felhasználót? A törlés végleges." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Felhasználó törlése" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Regisztráció dátuma" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Regisztrációs IP" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Állapot" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Aktivált" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Tiltott" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "E-mail-re vár" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Megerősítésre vár" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "Engedélyezett karakterek: %i - %f <br>Számok, betűk és \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Feltöltések automatikus törlése" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Ez a beállítás az összes feltöltésere alapértelmezetten érvényes lesz. A beállítás felülírható minden egyes feltöltés esetében." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "A kép <a %s>Exif adatainak</a> megtartása feltöltéskor" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Hírlevél" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Szeretnék hírlevelet kapni a(z) %s újdonságaival kapcsolatban" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Tartalmi beállítások" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Mutassa a korhatáros tartalmat a képek között (mások feltöltései esetében)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Nyelv" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Időzóna" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Jelenlegi jelszó" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Írja be a jelenlegi jelszavát" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Új jelszó" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Erősítse meg az új jelszót" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Adjon meg egy jelszót, hogy be tudjon jelentkezni a felhasználónevével vagy e-mail címével." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Ennek a felhasználónak nincs jelszava. Adjon meg egyet az űrlap kitöltésével." + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "A jelszó még egyszer" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Új kép feltöltése" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Feltöltött kép törlése" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Ez a valódi neve, nem a felhasználóneve." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://weboldala.hu" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Rólam" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Mondjon egy pár szót magáról" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "A felhasználónak nincsenek kapcsolatai." + +#: ../../../app/themes/Peafowl/views/settings.php:391 +msgid "Link your account to external services to be able to login and share content." +msgstr "Kapcsolja össze a fiókját külső szolgáltatásokkal hogy be tudjon lépni és információkat tudjon megosztani." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Biztos benne, hogy lecsatlakoztatja %s -t erről a fiókról?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Ez a fiók a következőhöz van kapcsolva: %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Biztos, hogy lecsatlakozik az ön %s fiókjáról?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Kiléptetésre kerül és nem fog tudni bejelentkezni a fiókjába a %s fiók segítségével." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "A fiókja csatlakoztatva van a következőhöz: %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "lecsatlakozás" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Összekapcsolás %s" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Gomb" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "aktiváló e-mail újraküldése" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +#, php-format +msgid "If you have already signed up maybe you need to request to %s" +msgstr "Ha már regisztrált, akkor talán megfelelő lépés lehet az %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Profil háttérkép feltöltése" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Háttér megváltoztatása" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "A profil háttérképe törölve lesz és a folyamat nem visszafordítható. Biztos benne, hogy ezt szeretné tenni?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Háttér törlése" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Profil szerkesztése" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Követő" +msgstr[1] "Követők" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Követés" + +msgid "Contact" +msgstr "Kapcsolatok" + +msgid "Your name" +msgstr "A neved" + +msgid "Subject" +msgstr "Tárgy" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "A telepített verzió: v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Nem sikerült a kapcsolódás a következőhöz: %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "A legutolsó elérhető kiadás: v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Frissítés szükséges, tovább a letöltéshez" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Nincs szükség frissítésre" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "A rendszerfájlok naprakészek" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "A v%s letöltésének megkezdése" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s letöltve, kicsomagolás megkezdése" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "v%s kicsomagolása" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Kicsomagolás befejezve" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Frissítés telepítése folyamatban" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Frissítés sikertelen" + +#: ../../../app/lib/chevereto.js:592 ../../../app/lib/chevereto.min.js:36 +msgid "Please provide a valid email address" +msgstr "Kérjük adjon meg egy érvényes e-mail címet" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Meg kell adnia az album nevét." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Megerősít" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Válasszon ki egy meglévő albumot" + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Kérjük válasszon ki egy érvényes kép típust." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Kérjük válasszon ki egy képet maximum %s méretben." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profil kép frissítve." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Profil háttérkép frissítve." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Profil háttérkép törölve." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Hiba történt a profil háttérkép törlése közben." + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Frissítés elérhető: v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Egy frissítés érhető el a rendszerhez. Automatikusan letöltheti és telepítheti ezt vagy a következő linken letöltheti: %s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Frissítés indítása" + +#: ../../../app/lib/chevereto.js:1552 ../../../app/lib/chevereto.min.js:71 +msgid "Your website is running the latest version of Chevereto." +msgstr "A weboldala a legfrisebb Chevereto verziót használja." + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Vágólap kép" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "A fájl túl nagy." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Néhány fájl hozzáadása nem sikerült" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "A kép módosítása sikeres." + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Az album módosítása sikeres." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Érvénytelen URL kulcs." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "A kategória URL kulcs már használatban van." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "A kategória sikeresen törölve." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "%s kategória létrehozva." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Érvénytelen lejárati dátum." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "Az IP (%s) már tiltva van." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP (%s) tiltásra került." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Az IP ban törlésre került." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Kérjük töltse ki az összes szükséges mezőt." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Érvénytelen tároló kapacitás érték. Használjon érvényes formátumot." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Érvénytelen URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Tároló sikeresen módosítva." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "A felhasználó sikeresen hozzáadva." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "A tartalom áthelyezésre került." + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Kiválasztás törlése" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "A tartalom módosítva lett." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Hogyha folytatja az összes módosítás elvész." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "A változtatások mentése sikeres." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Vissza az űrlaphoz" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "folytatom" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Mentés" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Küldés" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Döntés megerősítése" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "információ" + diff --git a/app/languages/id.po b/app/languages/id.po new file mode 100644 index 0000000..5ee3457 --- /dev/null +++ b/app/languages/id.po @@ -0,0 +1,4865 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-09 16:33+0000\n" +"PO-Revision-Date: 2021-06-09 16:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Email tidak benar" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Username tidak benar" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Password salah" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Versi terpasang ialah v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Tidak dapat terhubung ke %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Rilis terakhir yang tersedia ialah v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Pembaruan diperlukan, melanjutkan untuk mengunduh" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Pembaruan tidak diperlukan" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Sistem file telah terbaru" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Memulai unduhan v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s terunduh, melanjutkan ekstraksi" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Mencoba mengekstrak v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Ekstraksi selesai" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Melanjutkan pemasangan pembaruan" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Pembaruan gagal" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Pembaharuan sedang berlangsung" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "File %s hilang" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "info lisensi tidak valid" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Tidak dapat menyimpan file" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Tidak dapat mengekstrak %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Tidak dapat membuat direktori %s - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Tidak dapat memperbarui berkas %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Periksa kesalahan pada kotak isian untuk melanjutkan" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Catatan: Konten ini bersifat pribadi namun siapapun yang memiliki tautan dapat melihat ini." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Catatan: Konten ini dilindungi kata sandi.\nIngat untuk melewati konten dengan kata sandi untuk dibagikan." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Catatan: Ini konten pribadi. Ubah privasi ke \"Umum\" untuk membagikan." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Anada harus mengisi nama album." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Konfirmasi" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Pilih album yang telah ada" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Terjadi sebuah kesalahan. Harap coba lagi lain kali." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Silakan pilih tipe berkas yang benar." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Silakan pilih gambar dengan ukuran %s ." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Gambar profil baru saja diperbaharui." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Gambar latar belakang baru saja diperbaharui." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Gambar latar belakang baru saja dihapus." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Gagal menghapus gambar latar belakang di profil." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Password tidak cocok" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Pembaruan yang tersedia v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Terdapat pembaruan untuk sistem anda. Anda dapat mengunduh otomatis dan memasang pembaruan ini atau pergi ke %s untuk melanjutkan mengunduh file." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Catatan rilis untuk pembaruan ini diantaranya:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Perbarui sekarang" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Situs web ini menjalankan versi %s terbaru" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "menunggu" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Suka" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Edit" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" + +msgid "Approve" +msgstr "Diterima" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Hapus" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Tutup" + +msgid "Previous" +msgstr "Sebelumnya" + +msgid "Next" +msgstr "Berikutnya" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Gambar papan klip" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Berkas terlalu besar." + +msgid "Invalid or unsupported file format." +msgstr "Format berkas tidak valid atau tidak didukung." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Beberapa berkas tidak dapat ditambahkan." + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "gambar" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Album %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Gambar berhasil diubah." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "pribadi" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album berhasil diubah." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "URL key tidak benar." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Kategori URL key telah digunakan." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategori berhasil dihapus." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Kategori %s telah ditambahkan." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Tanggal kadaluarsa tidak benar." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s telah diblokir." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s diblokir." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Larangan terhadap IP telah dihapus dari daftar." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Silakan isi semua kolom yang dibutuhkan." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Kapasitas penyimpanan tidak benar. Pastikan menggunakan bentuk yang baku." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Kapasitas penyimpanan tidak bisa lebih rendah dari penggunaan sekarang (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL tidak benar." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Kapasitas penyimpanan berhasil diubah." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Nama pengguna berhasil ditambahkan." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Konten telah dihapus." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Isi telah dipindahkan." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Pilih" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Buang seleksi" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Isi telah diubah." + +msgid "Spam detected" +msgstr "Spam terdeteksi" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Flooding terdeteksi. Anda hanya dapat mengunggah %limit% %content% per %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Tidak berjudul" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s foto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Pribadi" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Umum" + +msgid "Me" +msgstr "Aku" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Tautan" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Kata sandi" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "dilihat" + +msgid "After %n %t" +msgstr "Setelah %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "menit" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "jam" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "hari" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "minggu" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "bulan" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "tahun" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Jangan hapus otomatis" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Tidak dapat membuka %s untuk ditulis" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Gandakan unggahan" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Unggahan pribadi" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "suka" + +msgid "Recent" +msgstr "Baru-baru ini" + +msgid "Trending" +msgstr "Tren" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Pengguna teratas" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Terbaru" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Terlama" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Paling dilihat" + +msgid "Popular" +msgstr "Populer" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Paling disukai" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Jelajahi" + +msgid "Animated" +msgstr "Beranimasi" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Cari" + +msgid "People" +msgstr "Orang" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Gambar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Pengguna" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Tidak dapat membuat direktori tujuan %s" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Internal" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Tanpa batasan" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "digunakan" + +msgid "Private profile" +msgstr "Profil pribadi" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "detik" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s yang lalu" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "beberapa waktu lalu" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Beranda" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Terdapat pembaruan untuk sistem anda. Pergi ke %s untuk mengunduh dan memasang pembaruan ini." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Sistem database sudah kadaluarsa. Anda perlu untuk menjalankan menu <a href=\"%s\">update</a>" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Website sedang dalam perbaikan. Untuk merubah setting ini kunjungi <a href=\"%s\">Menu Utama > Pengaturan</a>" + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Anda harus menonaktifkan pelaporan kesalahan PHP untuk lingkungan produksi. Pergi ke <a href='%s'>Pengaturan sistem</a> untuk mengembalikan pengaturan ini." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Anda belum mengubah pengaturan email bawaan. Pergi ke <a href='%s'>Pengaturan Email</a> untuk memperbaiki hal ini." + +msgid "There is an update available for your Chevereto based website." +msgstr "Terdapat pembaruan untuk website berbasis Chevereto anda." + +msgid "admin dashboard" +msgstr "dasbor admin" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Anda dapat menerapkan pembaruan ini secara langsung dari %a anda atau mengunduhnya dari %s dan kemudian secara manual memasangnya." + +#, php-format +msgid "view on %s" +msgstr "Ditampilkan pad %s" + +msgid "cookie policy" +msgstr "kebijakan cookie" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Kami menggunakan cookie kami sendiri dan pihak ketiga untuk meningkatkan pengalaman menjelajah Anda dan layanan kami. Jika Anda terus menggunakan situs web kami, dipahami bahwa Anda menerima ini %cookie_policy_link." + +msgid "I understand" +msgstr "Saya mengerti" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Lupa password anda?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "atur ulang password" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Kirim kembali kode aktivasi" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Masukkan alamat email anda" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Email telah berubah" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s bilang kamu adalah robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Username/Email tidak sah" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Pengguna tidak memiliki email" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Permintaan ditolak" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Akun perlu untuk diaktivasi agar bisa menggunakan fitur ini" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Akun telah diaktivasi" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Tunggu sampai 15 menit untuk email. Anda bisa mencoba lagi nanti." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Reset password anda di %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Konfirmasi diperlukan di %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Selamat datang di %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Email telah digunakan" + +msgid "Password required" +msgstr "Kata sandi diperlukan" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Kode cantumkan" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album disimpan di %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Status" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Foto" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Album" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Pengguna" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Pengaturan" + +msgid "Bulk importer" +msgstr "Import massal" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Pasang pembaharuan" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "Cek pembaharuan" + +msgid "Support" +msgstr "Dukungan" + +msgid "Bug tracking" +msgstr "Pelacakan bug" + +msgid "Documentation" +msgstr "Dokumentasi" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Versi PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Versi MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Informasi server MySQL" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Mengunggah berkas" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Diaktifkan" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Dinonaktifkan" + +msgid "Max. upload file size" +msgstr "Ukuran unggah berkas maks." + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Ukuran maks. penulisan" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Waktu maks. eksekusi" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d detik" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Batas memori" + +msgid "Rebuild stats" +msgstr "Bangun kembali statistik" + +msgid "Connecting IP" +msgstr "Menghubungkan IP" + +msgid "Not your IP?" +msgstr "Bukan IP Anda?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Website" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Isi" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Laman" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Daftar" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Foto diunggah" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategori" + +msgid "Consent screen" +msgstr "Layar kesepakatan" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Anti penggembosan" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Halaman muka" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "banner" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "sistem" + +msgid "Routing" +msgstr "Pengarahan" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Bahasa" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Penyimpanan tambahan" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Surel" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Media sosial" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Layanan tambahan" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Blokir IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Pengaturan tambahan" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Alat-alat" + +msgid "Can't delete all homepage cover images" +msgstr "Tidak dapat menghapus semua gambar sampul halaman muka." + +msgid "Homepage cover image deleted" +msgstr "Gambar halaman muka dihapus" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokal" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Tambahan" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Semua" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "cari konten" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Tambah laman" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Ubah halaman ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Halaman telah berhasil ditambahkan." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Halaman telah dihapus." + +msgid "homepage" +msgstr "beranda" + +#, php-format +msgid "Before main title (%s)" +msgstr "Sebelum judul utama (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Setelah panggilan untuk melakukan (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Setelah sampul (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Setelah pendaftaran (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Sebelum nomor halaman" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Setelah nomor halaman" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Konten (gambar dan album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Kolom tab tentang" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Sebelum komentar" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Halaman gambar" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Didalam atas penonton (halaman gambar)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Didalam kaki penonton (halaman gambar)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Setelah penampil gambar (halaman gambar)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Sebelum judul (halaman gambar)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Setelah judul (halaman gambar)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Kaki (halaman gambar)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Laman album" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Sebelum Judul (halaman album)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Setelah judul (halaman album)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Halaman profil pengguna" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Setelah teratas (profil pengguna)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Sebelum pendaftaran (profil pengguna)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Jelajahi halaman" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Setelah teratas (halaman jelajahi)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nama website tidak sah" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Bahasa tidak sah" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Zona waktu tidak sah" + +#, php-format +msgid "Invalid value: %s" +msgstr "Nilai tidak valid: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Mode penyimpanan upload tidak valid" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Unggah penamaan tidak valid" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "lebar gambar kecil tidak valid" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Tinggi gambar kecil tidak valid" + +msgid "Invalid medium size" +msgstr "Ukuran medium tidak valid" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Presentasi tanda air tidak valid" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Kegelapan tanda air tidak valid" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Tema tidak sah" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Isi tidak sah" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Suasana tema tidak valid" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Warna utama tema tidak valid" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Warna batang bawah tema tidak valid" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Ukuran tema pendaftaran gambar tidak valid" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Id user salah" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Mode email tidak benar" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Port SMTP salah" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Pengaman SMTP salah" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Mode website salah" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Mode pribadi ID pengguna tidak valid" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Tidak valid atau dilindungi" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "mode privasi website tidak valid" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Mode privasi konten website tidak valid" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "gaya beranda tidak valid" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Panggilan beranda untuk warna tombol aksi tidak valid" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Fungsionalitas panggilan ke tindakan beranda tidak valid" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Judul tidak valid" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Status tidak valid" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Tipe tidak valid" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Visibilitas tidak valid" + +msgid "Invalid internal type" +msgstr "Jenis internal tidak valid" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Atribut sasaran tidak valid" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Atribut rel tidak valid" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Ikon tidak valid" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Kunci URL tidak valid" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Jalur file tidak valid" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "URL tautan tidak valid" + +msgid "Invalid user minimum age" +msgstr "Usia minimal pengguna tidak valid" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Hanya karakter alfanumerik, tanda hubung dan garis bawah yang diperbolehkan" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL tidak valid" + +msgid "Routes can't be the same" +msgstr "Pengarahan tidak boleh sama" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Jalur upload gambar tidak valid" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Panggilan tidak valid untuk aksi URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maks. diperbolehkan %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Tidak dapat memetakan %m ke folder yang telah ada (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Tidak dapat memetakan %m ke rute yang telah ada (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Tidak dapat memetakan %m ke %r (tubrukan nama pengguna)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Server SMTP tidak valid" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "username SMTP tidak valid" + +msgid "Invalid key" +msgstr "Kunci tidak sesuai" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Kunci URL ini telah digunakan oleh halaman lainnya (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Jalur file ini telah digunakan oleh halaman lainnya (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Tidak dapat menyimpan isi halaman: %s" + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Mengikuti" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Tentang" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID Gambar" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP Pengunggah" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Blokir IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP telah diblokir" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Tanggal upload" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Gambar %i di album %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Gambar %i di Kategori %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Gambar %i tersimpan di %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Tautan langsung" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Tautan gambar" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL gambar" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL sketsa" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL sedang" + +msgid "Full image" +msgstr "Gambar penuh" + +msgid "Full image (linked)" +msgstr "Gambar penuh (terhubung)" + +msgid "Medium image (linked)" +msgstr "Gambar medium (terhubung)" + +msgid "Thumbnail image (linked)" +msgstr "Gambar kecil (terhubung)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Login dibutuhkan" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Alamat IP telah di blokir" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Nilai yang hilang" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Peran tidak valid" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Username talah digunakan" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Tambahkan sebuah kata sandi atau sambungan sosial lainnya sebelum menghapus %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Tambakan sebuah email atau atau sambungan sosial lainnya sebelum menghapus %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s telah terputus." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Email percobaan dari %s @%t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Ini hanya sebuah percobaan" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Email percobaan telah terkirim ke %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Mengunduh data %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Pengguna %s diikuti" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Pengguna %s batal mengikuti" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Konten disukai" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Konten tidak disukai" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u menyukai %t %c anda" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u kini mengikuti anda" + +msgid "A private user" +msgstr "Pengguna pribadi" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Kombinasi Username/password email salah" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Masuk" + +msgid "Upload images" +msgstr "Unggah gambar" + +msgid "Upload plugin" +msgstr "Unggah plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Hasil pencarian gambar %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Hasil pencarian album %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Hasil pencarian user %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Akun" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Akun terhubung" + +msgid "Powered by" +msgstr "Dipersembahkan oleh" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Kadaluarsa gambar tidak valid: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Sebuah email telah terrkirim ke %s dengan instruksi untuk mengaktifkan email ini" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nama tidak valid" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Website tidak valid" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Kata sandi salah" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Gunakan password baru" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Perubahan telah disimpan." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Kata sandi telah diubah" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Password telah dibuat" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Nilai Nama pengguna/Email salah" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Pengaturan untuk %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Anda harus menyetujui persyaratan dan kebijakan privasi" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Anda paling tidak harus berumur %s tahun untuk bisa menggunakan website ini." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Buat akun" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Unggah" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Gambar %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Hasil untuk" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Disukai oleh %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Disukai" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Pengikut" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) album pada %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) pada %w" + +msgid "Discovery" +msgstr "Penemuan" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Acak" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Pencarian lanjutan" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Pemberitahuan (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Notifikasi" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Anda tidak memiliki notifikasi" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Profil ku" + +msgid "Lights" +msgstr "Lampu" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Keluar" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Kami menerima sebuah permintaan untuk mengganti email dari <a href=\"%u\">%n</a> akun pada %w" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Untuk menyelesaikan langkah anda harus <a href=\"%s\">mengaktivasi email anda</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Atau anda dapat menyalin dan menempel URL ke browser anda: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Jika anda tidak melakukan hal ini abaikan pesan ini." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Permintaan ini diminta dari IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Kami menerima sebuah permintaan pendaftaran akun %n pada %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Untuk menyelesaikan langkah anda harus <a href=\"%s\">mengaktivasi email anda</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Kami menerima sebuah permintaan untuk mengganti kata sandi untuk <a href=\"%u\">%n</a> akun anda." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Untuk mengganti kata sandi <a href=\"%s\">ikuti tautan ini</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hi %n, Selamat datang ke %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Akun anda kini telah siap anda dapat mengunggah gambar, membuat album tan mengatur privasi dari akun anda sebaik banyak hal yang akan ada temukan." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Ngomong-ngomong, ini merupakan halaman profil anda yang mengagumkan: <a href=\"%u\">%n</a>. Lanjutkan dan sesuaikan, Itu milik anda!." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Terima kasih telah bergaung" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Email ini dikirm dari %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Tarik dan lepas atau tempel gambar disini untuk mengunggah" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Pilih gambar untuk mengunggah" + +msgid "browse from your computer" +msgstr "cari dari komputer anda" + +msgid "add image URLs" +msgstr "tambah URL gambar" + +msgid "You can also %i or %u." +msgstr "Anda dapat %i atau %u." + +msgid "browse from your device" +msgstr "telusuri dari perangkat Anda" + +msgid "take a picture" +msgstr "ambil sebuah gambar" + +msgid "You can also %i, %c or %u." +msgstr "Anda juga dapat %i, %c atau %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Ubah atau ukur ulang gambar apapun dengan mengklik pratinjau gambar" + +msgid "Edit any image by touching the image preview" +msgstr "Edit gambar apa pun dengan menyentuh pratinjau gambar" + +msgid "your computer" +msgstr "komputer anda" + +msgid "You can add more images from %i or %u." +msgstr "Anda dapat menambahkan lebih banyak gambar dari %i atau %u." + +msgid "your device" +msgstr "perangkat anda" + +msgid "You can add more images from %i, %c or %u." +msgstr "Anda dapat menambahkan lebih banyak gambar dari %i, %c atau %u." + +msgid "Uploading %q %o" +msgstr "Mengunggah %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "selesai" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Antrian sedang diunggah, hal ini harusnya berlangsung beberapa saat untuk selesai." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Upload selesai" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Konten terunggah ditambahkan ke %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Anda dapat %c dengan konten yang baru saja terunggah atau %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Anda dapat %c dengan konten yang baru saja terunggah." + +msgid "create a new album" +msgstr "buat sebuah album baru" + +msgid "move it to an existing album" +msgstr "pindahkan ke album yang sudah ada" + +msgid "You must %s or %l to save this content into your account." +msgstr "Anda harus %s atau %l untuk menyimpan konten ini ke akun Anda." + +msgid "create an account" +msgstr "buat sebuah akun" + +msgid "sign in" +msgstr "masuk" + +#, php-format +msgid "No %s have been uploaded" +msgstr "tidak ada %s yang barus saja terunggah" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Beberapa kesalahan terjadi dan sistem tidak dapat memproses permintaan anda." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Pilih kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Tandai ini jika upload tidak aman untuk keluarga" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Upload tidak aman untuk keluarga" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "mengunggah" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "atau" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "batal" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "batalkan sisanya" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Catatan: Beberapa gambar tidak dapat diunggah." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "pelajari lebih banyak" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Periksa <a data-modal=\"simple\" data-target=\"failed-upload-result\">laporan kesalahan</a> untuk informasi lebih lanjut." + +#, php-format +msgid "Register to get %s" +msgstr "Daftar untuk mendapatkan %s" + +msgid "reset" +msgstr "atur ulang" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "tutup" + +msgid "copy" +msgstr "salin" + +msgid "insert" +msgstr "memasukkan" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Hapus" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Judul" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "pilihan" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Ubah ukuran gambar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Lebar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Tinggi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Catatan: Gambar animasi GIF tidak bisa di ubah ukuran." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Hapus otomatis gambar" + +msgid "Sign up" +msgstr "Mendaftar" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s tidak dapat mengkostumisasi atau mematikan hapus gambar otomatis." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Tandai ini jika gambar tidak aman untuk keluarga" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Tandai sebagai tidak aman" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Deskripsi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Deskripsi singkat gambar ini" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Tambahkan URL gambar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Tambahkan URL gambar disini" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Buat album" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Konten yang diunggah akan dipindahkan ke album yang baru dibuat ini." + +msgid "existing album" +msgstr "album yang ada" + +msgid "You can also move the content to an %a." +msgstr "Anda juga dapat memindahkan konten ke %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Anda harus %s atau %l jika ingin mengedit album ini nanti." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Pindahkan ke album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Pilih sebuah album yang ada untuk memindah konten yang telah diupload Anda juga dapat <a class=\"modal-switch\" data-switch=\"move-new-album\">membuat sebuah album baru</a> dan memindahkan konten kesana." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Laporan error" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Tautan" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Penonton tautan" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Kode HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "Gambar HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "Tautan penuh HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "Tautan medium HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "Tautan gambar kecil HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBcode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBcode penuh" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "Tautan BBcode penuh" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Tautan BBcode sedang" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Tautan BBcode gambar kecil" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown penuh" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown penuh terhubung" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown sedang terhubung" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Thumbnail Markdown ditambahkan" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Semua kata ini" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Ketik kata-kata penting: tri-warna tikus terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Kata atau farsa tertentu ini" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Berikan kata yang tepat dalam tanda kutip: \"sejenis tikus\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Tak satu pun dari kata-kata ini" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Berikan tanda minus sebelum kata yang tidak anda inginkan: -hewan pengerat -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Alamat IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nama Album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "pindahkan ke album yang ada" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Deskripsi Album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Deskripsi singkat album ini" + +msgid "Album privacy" +msgstr "Privasi album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Siapa yang bisa melihat konten ini" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Pribadi (hanya saya)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Pribadi (siapapun yang memiliki tautan)" + +msgid "Private (password protected)" +msgstr "Privat (dilindungi kata sandi)" + +msgid "Album password" +msgstr "Kata sandi album" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nama" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nama kategori" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Kunci URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kunci kategori URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "hanya huruf, nomor dan tanda hubung" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Deskripsi singkat dari kategori ini" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "gambar belum berjudul" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Jalur" + +msgid "Local path (absolute)" +msgstr "Jalur lokal (absolut)" + +msgid "Directory structure" +msgstr "Struktur direktori" + +msgid "Parse top level folders as users (username)" +msgstr "Parse folder tingkat atas sebagai pengguna (nama pengguna)" + +msgid "Parse top level folders as albums" +msgstr "Parse folder tingkat atas sebagai album" + +msgid "Don't parse folders" +msgstr "Jangan parse folder" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Saat mem-parsing folder tingkat atas sebagai pengguna, folder tingkat kedua akan diurai sebagai album pengguna. Memilah folder tingkat atas saat album menambahkan ini sebagai album tamu." + +msgid "You can use wildcard * characters." +msgstr "Anda dapat menggunakan karakter wildcard *." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Tanggal kadaluarsa" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "TTTT-BB-HH JJ-MM-DD" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Contoh" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Sampai kapan alamat IP ini diblokir? Biarkon kosong jika tidak ada kadaluarsa" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Pesan" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Pesan teks, HTML atau sebuah URL pengarahan" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Album yang telah ada" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "buat album baru" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Nama penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Region Penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Keranjang penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Kunci" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Kunci penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Rahasia" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Rahasia Penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Kunci pribadi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Kunci JSON Google Cloud" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Anda memerlukan sebuah <a %s>layanan akun</a> untuk hal ini." + +msgid "Service name" +msgstr "Nama layanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identitas URL" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Nama pengguna" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Isi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Isi penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID Penyewa" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID Penyewa (id akun)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Nama Penyewa" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Nama Penyewa (nama akun)" + +msgid "Storage endpoint" +msgstr "Titik akhir penyimpanan" + +msgid "Server address" +msgstr "Alamat server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname atau IP server penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Jalur server" + +msgid "Server login" +msgstr "Login server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Kata sandi Server" + +msgid "Local path" +msgstr "Jalur lokal" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Ukuran penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Contoh: 20 GB, 1 TB, dll." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Penyimpanan ini akan dinonaktifkan ketika telah menyampai kapasitas ini. Biarkan kosong atau nol untuk tidak membatasi." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL penyimpanan" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Sistem akan memetakan gambar ke penyimnanan ini untuk URL ini." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "tampilkan lebih banyak" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Muat lebih banyak" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Pilih Semua" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Dapatkan kode sematkan" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Tetapkan kategori" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Tandai aman" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Hapus pilihan" + +msgid "Create new album" +msgstr "Buat album baru" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Bagikan" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Masuk dengan akun lain" + +msgid "Continue with %label%" +msgstr "Lanjutkan dengan %label%" + +msgid "Home" +msgstr "Beranda" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Tidak ada yang ditampilkan disini." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Semua gambar yang dipilih akan di tempatkan ke kategori ini." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Tidak ada kategori." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Konfirmasi penandaan konten sebagai aman" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Apakah anda yakin menandai konten ini aman?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Konfirmasi penandaan tidak aman" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Apakah anda yakin menandai konten ini tidak aman?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Konfirmasi penghapusan" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Apakah anda benar-benar ingin menghapus konten ini? Hal ini tidak dapat dibatalkan." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Apakah anda benar-benar ingin menghapus semua konten yang dipilih? Hal ini tidak dapat dibatalkan" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Tamu" + +msgid "Keyboard shortcuts" +msgstr "Pintasan keyboard" + +msgid "Private album" +msgstr "Album pribadi" + +msgid "Password protected" +msgstr "Dilindungi kata sandi" + +msgid "Uploaded by guest" +msgstr "Diunggah oleh pengunjung" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Dari %s" + +msgid "Uploaded by private" +msgstr "Diunggah oleh pribadi" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "oleh %u" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Halaman tersebut tidak tersedia." + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Halaman yang diminta tidak ditemukan" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Pengguna telah dihapus" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Akun anda hampir siap" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Sebuah email ke %s telah dikirim dengan instruksi untuk mengaktifkan akun. Tautan aktivasi hanya berlaku untuk 48 jam. Jika anda tidak menerima instruksi coba periksa sampah atau penyaring spam anda." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Kirim ulang aktivasi" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Anda telah berhasil mengubah email aktivasi anda ke %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Pergi ke profil ku" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Sebuah tautan konfirmasi akan dikirim ke email ini dengan detail untuk mengaktifkan akun anda." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Alamat email anda" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Kirimkan" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Sebuah email dengan instruksi mengatur ulang kata sandi anda telah dikirim ke email yang terdaftar. Jika anda tidak menerima instruksi cobalah periksa sampah atau penyaring spam." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Email sebelumnya telah dikirim dengan instruksi untuk mengubah kata sandi anda. Jika anda tidak menerima instruksi cobalah periksa sampah atau penyaring spam." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Kirim ulang instruksi" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Username atau alamat email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Kata sandi anda telah diubah. Kini anda dapat mencoba masuk dengan kata sandi baru anda." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Masuk sekarang" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Masukkan kata sandi baru anda" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "Min. %d karakter" + +msgid "Password strength" +msgstr "Kekuatan kata sandi" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Masukkan kembali kata sandi baru anda" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Sebuah email ke %s telah dikirimkan dengan instruksi untuk mengaktifkan akun. Jika anda tidak menerima instruksi cobalah periksa sampah atau penyaring spam anda." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Ini konten pribadi" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Apakah anda benar-benar ingin menghapus album ini dan semua gambarnya? Hal ini tidak dapat dibatalkan" + +msgid "Upload to album" +msgstr "Unggah ke album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Anda menyukai ini" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Harap baca dan patuhi kondisi berikut ini sebelum anda melanjutkan:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Situs web ini berisi informasi, tautan, dan gambar materi yang eksplisit secara seksual. Jika Anda berusia di bawah %s, jika materi tersebut menyinggung Anda atau jika ilegal melihat materi tersebut di komunitas Anda, jangan lanjutkan.\n\nSaya setidaknya %s tahun dan saya percaya bahwa sebagai orang dewasa itu adalah hak saya yang tidak dapat dicabut untuk menerima / melihat materi yang eksplisit secara seksual. Saya ingin menerima / melihat materi yang eksplisit secara seksual.\n\nSaya percaya bahwa tindakan seksual antara orang dewasa yang menyetujui tidak menyinggung atau tidak senonoh. Melihat, membaca, dan mengunduh materi yang eksplisit secara seksual tidak melanggar standar komunitas saya, kota, kota, negara bagian atau negara.\n\nMateri yang eksplisit secara seksual yang saya lihat adalah untuk penggunaan pribadi saya dan saya tidak akan mengekspos anak di bawah umur untuk materi tersebut.\n\nSaya bertanggung jawab penuh atas segala pengungkapan palsu atau konsekuensi hukum dari melihat, membaca, atau mengunduh materi apa pun di situs ini. Lebih lanjut, situs web ini atau afiliasinya tidak akan bertanggung jawab atas konsekuensi hukum yang timbul dari penipuan yang masuk ke dalam atau penggunaan situs web ini.\n\nLayar persetujuan ini merupakan perjanjian hukum antara situs web ini dan Anda dan / atau bisnis di mana Anda memiliki kepentingan hukum atau kepentingan yang adil. Jika ada bagian dari perjanjian ini yang dianggap tidak dapat diberlakukan oleh pengadilan dengan yurisdiksi yang kompeten, maka tidak akan mempengaruhi keberlakuan bagian-bagian lain dari perjanjian." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Dengan mengklik di \"Saya Setuju\" nda menyatakan bahwa Anda telah membaca dan memahami semua kondisi yang disebutkan di atas." + +msgid "I Agree" +msgstr "Saya Setuju" + +msgid "documentation" +msgstr "dokumentasi" + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "IP penghubung ditentukan menggunakan variabel server %var%. Jika IP yang terdeteksi tidak cocok dengan Anda, itu berarti bahwa server web Anda berada di bawah proxy dan Anda perlu mengubah server Anda untuk mengatur IP penghubung yang sebenarnya." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Untuk Nginx, Anda harus menggunakan %nginx%. Untuk Apache, %apache%." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Ruang disk digunakan" + +msgid "Queued" +msgstr "Antri" + +msgid "Working" +msgstr "Kerja" + +msgid "Paused" +msgstr "Dijeda" + +msgid "Canceled" +msgstr "Dibatalkan" + +msgid "Completed" +msgstr "Selesai" + +#, php-format +msgid "Top level folders as %s" +msgstr "Folder tingkat atas sebagai %s" + +msgid "Actions" +msgstr "Tindakan" + +msgid "Process" +msgstr "Proses" + +msgid "Pause" +msgstr "Jeda" + +msgid "Cancel" +msgstr "Membatalkan" + +msgid "Process log" +msgstr "Log proses" + +msgid "Errors" +msgstr "Kesalahan" + +msgid "Reset" +msgstr "Setel ulang" + +msgid "Resume" +msgstr "Lanjut" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Tambahkan pengguna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Peran" + +msgid "Manager" +msgstr "Pengelola" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrator" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Alamat surel" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Pengaturan ini akan selalu dinonaktifkan ketika menggunakan mode website pribadi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Tambah kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Tambah IP di blokir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Tambahkan penyimpanan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Kembali ke halaman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nama website" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Doctitle website" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Deskripsi website" + +msgid "Automatic" +msgstr "Otomatis" + +msgid "Forced" +msgstr "Dipaksa" + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Ini hanya mengontrol protokol yang digunakan dalam URL, hal tersebut tidak akan mengubah situs web Anda menjadi situs web HTTPS yang valid kecuali server Anda dikonfigurasi untuk mendukung dan menggunakan HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Zona waktu default" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Pilih region" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Bolehkan pencarian gambar, album dan pengguna berdasarkan permintaan pencarian yang diberikan." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Memungkinkan untuk menelusuri gambar yang diunggah publik. Ini juga memungkinkan kategori." + +msgid "guests" +msgstr "tamu" + +msgid "Enables explore for guests." +msgstr "Memungkinkan penjelajahan untuk para tamu." + +msgid "Enables to browse images randomly." +msgstr "Aktifkan mencari gambar secara acak." + +msgid "Likes" +msgstr "Suka" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Memungkinkan pengguna menyukai konten dan mengisi daftar \"Paling disukai\"." + +msgid "Followers allows users to follow each other." +msgstr "Pengikut membolehkan pengguna untuk saling mengikuti." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Mode website" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Komunitas" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "perseorangan" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Ada dapat mengubah mode website kapanpun." + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID pengguna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Id pengguna anda adalah: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Pengarahan mode personal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Mode privasi website" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Mode pribadi akan menjadikan website hanya tersedia untuk pengguna terdaftar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Mode privasi konten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Default" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Paksa pribadi (sendiri)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Paksa pribadi (semua orang dengan tautan)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Mode privasi dipaksakan akan mengembalikan privasi pengguna terpilih." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Judul halaman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Status halaman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Halaman aktif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Halaman tidak aktif (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Hanya halaman aktif yang dapat diakses." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Tipe" + +msgid "Terms of service" +msgstr "Ketentuan layanan" + +msgid "Privacy" +msgstr "Privasi" + +msgid "Contact" +msgstr "Kontak" + +msgid "Extra page" +msgstr "Halaman tambahan" + +msgid "Internal page type" +msgstr "Jenis halaman internal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Keterlihatan halaman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Halaman terlihat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Halaman tersembunyi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Halaman tersembunyi tidak akan ditampilkan di menu sistem, tetapi semua orang dapat mengakses nya melalui tautan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Hanya alfanumerik, tanda hubung dan garis miring" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Jalur berkas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Sebuah berkas %f berhubungan dengan %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Kata kunci meta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Deskripsi meta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Kode sumber" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Tidak ada izin menulis di jalur %s anda perlu menambahkan berkas ini menggunakan editor eksternal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Tidak ada izin menulis di jalur %s anda perlu mengedit konten dari berkas ini menggunakan editor eksternal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Diambil dari: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Tautan URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Pilih %s untuk membuka halaman atau tautan di jendela baru." + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Hanya alfanumerik, tanda hubung dan spasi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "Atribut HTML &lt;a&gt; %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Ikon tautan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Periksa <a %s>referensi ikon</a> untuk daftar lengkap ikon yang didukung." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Urutan tampilan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Apakah anda yakin ingin menghapus halaman dengan ID %s? Hal ini tidak dapat dibatalkan." + +msgid "Enabled image formats" +msgstr "Format gambar yang diaktifkan" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "format gambar yang tidak diperiksa tidak akan diperbolehkan untuk diunggah." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Aktifkan upload" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Aktifkan ini jika anda ingin memperbolehkan upload gambar. Pengaturan ini tidak berdampak pada administrator" + +msgid "route" +msgstr "rute" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Unggahan pengunjung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Aktifkan ini jika anda mengizinkan pengguna tidak terdaftar menunggah." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Aktifkan kode semat (pengunggah)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Aktifkan ini jika anda ingin menampilkan kode sematkan ketika unggahan akan selesai." + +msgid "Upload threads" +msgstr "Rangkaian unduhan" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Jumlah rangkaian unggahan bersasamaan (unggahan pararel)" + +msgid "Redirect on single upload" +msgstr "Arahkan pada unggahan tunggal" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Aktifkan ini jika anda ingin mengarahkan kembali ke halaman gambar pada unggahan tunggal." + +msgid "Enable duplicate uploads" +msgstr "Nyalakan unggahan duplikat" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Nyalakan ini jika anda ingin memperbolehkan unggahan duplikat dari alamat IP yang sama dalam 24 Jam. Pengaturan ini tidak mempengaruhi administrator." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Aktifkan upload berkadaluarsa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Nyalakan ini jika anda ingin memperbolehkan unggahan dengan sebuah opsi hapus otomatis." + +msgid "Auto delete guest uploads" +msgstr "Hapus otomatis unggahan pengunjung" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Nyalakan ini jika anda ingin memaksa unggahan pengunjung untuk dihapus otomatis setelah waktu tertentu." + +msgid "Maximum image size" +msgstr "Ukuran maksimum gambar" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Gambar lebih besar dari ukuran ini akan secara otomatis diturunkan ukurannya. Gunakan Nol (0) untuk tidak menetapkan batas." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Data Exif gambar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Biarkan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Pilih pengaturan default untuk gambar <a %s>Exif data</a> pada ungguhan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Data Exif gambar (pengaturan pengguna)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Aktifkan ini jika anda ingin membolehkan setiap pengguna mengatur bagaimana data Exif gambar akan ditangani." + +msgid "Maximum upload file size" +msgstr "Ukuran unggah berkas maksimum" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Ukuran maksumum yang diperbolehkan serever adalah %s. Ukuran ini dibatasi oleh %u dan %p (nilai %f)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Sama seperti \"%s\" tetapi untuk tamu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Jalur gambar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Berhubungan ke akar Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Dimana harus menyimpan gambar? Tergantung pada akar Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Mode penyimpanan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Tanggalfolder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Langsung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Tanggalfolder membuat struktur %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Metode penamaan berkas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Asli" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Campur asli + acak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Asli\" akan mencoba menjaga nama sumber gambar sedangkan \"Acak\" akan menghasilkan sebuah nama acak. \"ID\" akan menamakan gambar seperti halnya ID gambar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Ukuran Thumb" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Thumbnails akan ditentukan menurut ukuran ini." + +msgid "Medium image fixed dimension" +msgstr "Dimensi gambar tetap sedang" + +msgid "Width or height will be automatically calculated." +msgstr "Lebar atau tinggi akan secara otomatis terhitung." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Tanda air" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Aktifkan ini untuk menempatkan sebuah logo atau apapun yang anda inginkan di upload gambar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Aktifkan tanda air di unggahan admin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Aktifkan tanda air di unggahan gambar GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Ukuran gambar minimum dibutuhkan untuk menerapkan tanda air" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Gambar lebih kecil dari ini tidak akan diberikan tanda air. Gunakan nol (0) agar jangan menetapkan batas minimum ukuran gambar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Gambar stempel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Anda akan mendapatkan hasil terbaik dengan logo polos dengan bayangan jatuh. Anda dapat menggunakan sebuah gambar besar jika ukuran berkas tidak begitu besar (disarankan maks. adalah 16KB). Harus sebuah PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Posisi stempel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "kiri atas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "kiri ke tengah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "kiri bawah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "tengah atas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "pas tengah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "tengah bawah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "kanan atas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "kanan tengah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "kanan bawah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Penyesuaian posisi stempel. Pertama mendatar selanjutnya tegak lurus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Presentasi Tanda air" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Jarak stempel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Kegelapan tanda air" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "kegelapan tanda air di gambar akhir yang diberi tanda air. Nilai antara 0 sampai 100." + +msgid "Dashboard > Settings > Website" +msgstr "Dasbor > Pengaturan > Situs Web" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Kategori tidak akan bekerja ketika fitur penjelajah dimatikan. Untuk mengubah pengaturan ini pergilah ke %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Apakah anda ingin menghapus kategori %s? Hal ini tidak dapat dibatalkan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Catatan: Menghapus sebuah kategori tidak berarti menghapus gambar yang memiliki kategori tersebut." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Ubah kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Kadaluarsa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Apakah anda yakin ingin menghapus larangan terhadap IP %s? Hal ini tidak dapat dibatalkan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Alamat IP yang diblokir akan melarang penggunaan ke seluruh website." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Ubah larangan IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Aktifkan mendaftar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Aktifkan ini jika anda ingin membolehkan pengguna untuk mendaftar." + +msgid "Enable user content delete" +msgstr "Aktifkan penghapusan konten pengguna" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Aktifkan ini jika Anda ingin mengizinkan pengguna untuk menghapus konten mereka sendiri. Pengaturan ini tidak memengaruhi administrator." + +msgid "Minimum age required" +msgstr "Usia minimum dibutuhkan" + +msgid "Empty" +msgstr "Kosong" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Biarkan kosong jika anda tidak memerlukan usia minimum untuk bisa menggunakan website." + +msgid "Notify on user signup" +msgstr "Beri tahu saat mendaftar" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Aktifkan ini jika Anda ingin mendapatkan pemberitahuan email untuk setiap pendaftaran pengguna baru." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Perutean nama pengguna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Konfirmasi email dibutuhkan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Aktifkan ini jika pengguna harus memvalidasi alamat email mereka untuk mendaftar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Memerlukan email untuk pendaftaran sosial" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Aktifkan ini jika pengguna menggunakan jaringan sosial untuk mendaftar harus menyertakan sebuah alamat email." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Avatar pengguna maks. ukuran file" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "ukuran berkas maks. yang diperbolehkan untuk gambar avatar pengguna. (Maks. yang diperbolehkan server adalah %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "ukuran berkas maks. latar belakang pengguna" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Menampilkan sebuah layar persetujuan sebelum mengakses website. Sangat berguna untuk website konten dewasa dimana anak dibawah umur harusnya tidak diperbolehkan." + +msgid "Enable consent screen" +msgstr "Aktifkan layar persetujuan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Blok unggahan gambar dari IP jika sistem memperhatikan perilaku membanjiri berdasarkan periode jumlah unggahan per detik. Pengaturan ini tidak berdampak pada administrator." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Beritahu lewat surel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Jika diaktifkan sistem akan mengirim sebuah email pada insiden pembanjiran." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Batas menitan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Batas jam-jam an" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Batas harian" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Batas mingguan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Batas bulanan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Perlihatkan isi yang tidak aman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Kaburkan konten NSFW dalam daftar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Tampilkan spanduk dalam konten yang tidak aman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Perlihatkan konten tidak aman di mode acak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Daftar item per halaman" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Penomoran halaman klasik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Metode penomoran apa yang harusnya digunakan." + +msgid "Listing viewer" +msgstr "Penampil daftar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Ukuran pendaftaran gambar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Tetap" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "kedua metode menggunakan lebar tetap tapi metode tidak pasti menggunakan tinggi otomatis." + +msgid "explore" +msgstr "jelajahi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Jumlah kolom pendaftaran" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Disini anda dapat mengatur berapa banyak kolom yang digunakan berdasarkan masing-masing target perangkat." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Selular" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phapblet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Desktop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Tempatkan tema anda di folder %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Suasana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Menyala" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Gelap" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Warna utama" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Nilai warna Heksadesimal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Gunakan ini untuk mengatur warna utama tema. Nila harus dalam <a href=\"%s\" target=\"_blank\">format hex</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Warna tombol bilah atas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Biru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Hijau" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Oranye" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Merah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Abu-abu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Hitam" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Putih" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Warna untuk tombol bilah atas seperti halnya tombol \"Buat akun\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Aktifkan logo vektor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Aktifkan logo vektor untuk logo berkualitas tinggi di perangkat dengan kepadatan piksel yang tinggi." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Gambar logo vektor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Versi vektor atau logo website dalam format SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Versi bitmap atau logo situs web anda. Disarankan berformat PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Tinggi logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Tidak ada nilai" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Gunakan ini untuk mengatur ketinggian logo jika diperlukan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Gambar favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Gambar favicon. Gambar harus memiliki lebar dan tinggi yang sama." + +msgid "Image load max. filesize" +msgstr "Maksimal ukuran file untuk memuat gambar." + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Gambar lebih besar dari ukuran ini akan ditampilkan sebagai sebuah tombol untuk ditampilkan dalam resolusi penuh." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Aktifkan tombol unduh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Aktifkan ini jika anda ingin menampilkan gambar dengan tombol unduh." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Aktifkan klik kanan pada gambar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Aktifkan ini jika anda ingin membolehkan klik kanan pada halaman penampil gambar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Aktifkan untuk menampilkan data Exif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Aktifkan ini jika anda ingin menampilkan data Exif gambar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Aktifkan berbagi sosial" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Aktifkan ini jika anda ingin menampilkan tombol jaringan sosial untuk membagikan konten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Aktifkan kode sematkan (konten)" + +msgid "Everybody" +msgstr "Semua orang" + +msgid "Users only" +msgstr "Hanya pengguna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Aktifkan ini jika anda ingin menampilkan kode sematkan untuk konten." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Kotak centang konten tidak aman di pengunggah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Nyalakan ini jika anda ingin menampilkan sebuah kotak centang untuk mengindikasikan unggahan konten tidak aman." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Kode CSS kustom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Letakkan kode CSS kustom disini. Ini akan ditempatkan sebagai <style> tepat sebelum tag penutup </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Kode JS kustom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Letakkan kode JS kustom disini. Ini akan ditempatkan sebagai <style> tepat sebelum tag penutup </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Gaya" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Halaman arahan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Halaman arahan + gambar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Pilih gaya halaman muka. Untuk menyesuaikannya lanjut ubah app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Gambar sampul" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Apakah anda yakin ingin menghapus gambar ini? Hal ini tidak dapat dimundurkan." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Menghapus gambar" + +msgid "Add new cover image" +msgstr "Tambah sebuah gambar sampul baru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "ini akan ditambahkan kedalam tag halaman depan %s. Biarkan kosong untuk mengunakan konten default." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragraf" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Warna tombol ajakan bertindak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Warna tombol ajakan bertindak beranda." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Tombol gaya garis besar ajakan untuk bertindak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Fungsi ajakan bertindak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Buka URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL ajakan untuk bertindak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Masukkan sebuah URL absolut atau relatif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Sebuah URL relatif seperti %r akan dipetakan ke %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Ajakan untuk bertindak HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "ID Pengguna" + +msgid "Automatic updates check" +msgstr "Pemeriksaan pembaruan otomatis" + +msgid "When enabled the system will automatically check for new updates." +msgstr "ketika diaktifkan sistem akan secara otomatis memeriksa pembaruan yang ada." + +msgid "Display available updates notification" +msgstr "Tampilkan notifikasi pembaruan yang tersedia" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Aktifkan untuk menampilkan sebuah pemberitahuan memperingatkan anda tentang pembaruan sistem yang ada." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URL" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Aktifkan ini jika Anda ingin menggunakan URL SEO %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Perawatan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Ketika anda mengaktifkan website akan muncul sebuah pesan perawatan. Pengaturan ini tidak berpengaruh terhadap administrator." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Pelaporan kesalahan PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Tingkat debug" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Tidaka ada" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "log kesalahan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Cetak kesalahan tanpa log kesalahan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Cetak dan log kesalahan" + +msgid "Image routing" +msgstr "Pengarahan Gambar" + +#, php-format +msgid "Routing for %s" +msgstr "Pengarahan untuk %s" + +msgid "Album routing" +msgstr "Pengarahan Album" + +msgid "Hostname" +msgstr "Nama host" + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Pengaturan ini mungkin ditimpa oleh %s." + +msgid "Language subdomains" +msgstr "Subdomain bahasa\n" + +msgid "languages" +msgstr "bahasa" + +msgid "Enable to use %s for %t." +msgstr "Aktifkan untuk menggunakan %s untuk %t." + +msgid "Username subdomains" +msgstr "Subdomain nama pengguna" + +msgid "user profiles" +msgstr "Profil pengguna" + +msgid "Custom language strings" +msgstr "string bahasa kustom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Bahasa default" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Bahasa dasar yang ingin digunakan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Bahasa otomatis" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Aktifkan jika anda ingin secara otomatis mendeteksi dan mengatur bahasa yang tepat untuk setiap pengguna." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Pemilih bahasa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Mengatifkan ini jika anda ingin memperbolehkan pemilihan bahasa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Bahasa diaktifkan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Bahasa yang tidak dicentang tidak akan digunakan di website anda." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Alihkan ini untuk mengaktifkan atau menonaktifkan HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Alihkan ini jika ingin mengaktifkan atau menonaktifkan penyimpanan ini" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kuota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Metode penyimpanan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Penyimpanan lokal akan digunakan secara default atau ketika tidak ada penyimpanan eksternal yang aktif." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Jika anda memerlukan bantuan periksa <a %s>dokumentasi penyimpanan</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Edit penyimpanan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Nama dari" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nama pengirim untuk email yang dikirim kepada pengguna." + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Alamat email pengirim" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Alamat pengirim untuk email yang dikirim ke user." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Alamat email masuk" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Penerima untuk halaman kontak dan notifikasi sistem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Mode email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Bagaimana cara pengiriman email? SMTP direkomendasikan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "Server dan port SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "Server SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Username SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Password SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Keamanan SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Tidak aman" + +msgid "Decode ID" +msgstr "ID decode" + +msgid "Encode ID" +msgstr "ID Encode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Kirim email percobaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Gunakan ini untuk memeriksa apakan email sedang dikirimkan. Kami merekomendasikan anda untuk menggunakan %s." + +msgid "Export a user" +msgstr "Ekspor pengguna" + +msgid "Export user" +msgstr "Ekspor pengguna" + +msgid "Storage id" +msgstr "Id penyimpanan" + +msgid "Regenerate" +msgstr "Diperbaiki" + +msgid "Source storage id" +msgstr "ID penyimpanan sumber" + +msgid "Target storage id" +msgstr "Target id penyimpanan" + +msgid "Migrate" +msgstr "Migrasi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Anda memerlukan sebuah <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> untuk hal ini." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "id app Facebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Rahasia app Facebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Anda membutuhkan sebuah <a href=\"https://apps.twitter.com\" target=\"_blank\">Apliksi Twitter</a> untuk hal ini." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Kunci API Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "API rahasia Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Akun Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Anda membutuhkan sebuah<a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> untuk hal ini." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Id klien Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Rahasia klien Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Anda membutuhkan sebuah <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> untuk hal ini." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "id klien VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "rahasia klien VK" + +#, php-format +msgid "%s spam protection" +msgstr "%s perlindungan spam" + +msgid "user generated content" +msgstr "konten yang dibuat pengguna" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Aktifkan ini untuk menggunakan %l untuk memblokir spam di %c." + +#, php-format +msgid "%s API key" +msgstr "Kunci %s API" + +msgid "user signup" +msgstr "pendaftaran pengguna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Anda memerlukan sebuah <a href=\"%s\" target=\"_blank\"> kunci reCAPTCHA</a> untuk hal ini." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Harap dicatat bahwa setiap versi reCAPTCHA memerlukan set kunci sendiri. Jangan lupa untuk memperbarui kunci jika Anda mengubah versi." + +#, php-format +msgid "%s site key" +msgstr "Kunci situs %s" + +#, php-format +msgid "%s secret key" +msgstr "Kunci rahasia %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "batas reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Berapa kali percobaan yang diperbolehkan untuk meminta reCAPTCHA? Gunakan Nol (0) untuk selalu memperlihatkan reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Paksa %s di halaman kontak" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Aktifkan ini untuk selalu menampilkan %s di halaman kontak." + +msgid "Comments API" +msgstr "API Komentar" + +#, php-format +msgid "Disqus API works with %s." +msgstr "API Disqus bekerja dengan %s" + +msgid "Disqus shortname" +msgstr "Nama pendek Disqus" + +#, php-format +msgid "%s public key" +msgstr "Kunci publik %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kode komentar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook atau apa pun yang Anda inginkan. Ini akan digunakan dalam tampilan gambar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Kode analitik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics atau apa pun yang Anda inginkan. Ini akan ditambahkan dengan tema footer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Kunci API V1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Gunakan kunci ini ketika menggunakan <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Rute plugin" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Aktifkan ini untuk menampilkan instruksi plugin di %u. Tautan ke petunjuk ini akan ditambahkan ke menu %s. Pengaturan ini tidak mempengaruhi administrator." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Kesesuaian aturan kuki" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Aktifkan ini untuk menampilkan sebuah pesan yang sesuai dengan persyaratan hukum kuki Uni Eropa. Catatan: Anda hanya memerlukan hal ini jika website anda tersimpan di Uni Eropa dan jika anda menambahkan kuki pelacakan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Simpan perubahan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Periksa kesalahan untuk meneruskan proses." + +msgid "Play GIF" +msgstr "Mainkan GIF" + +msgid "Load full resolution" +msgstr "Muat resolusi penuh" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Ditambahkan ke %a dan dikategorikan kedalam %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Ditambahkan ke %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Diunggah ke %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Terunggah %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Lihat sedikit data Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Lihat banyak data Exif" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Unggah dan bagikan gambar anda." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Tarik dan taruh dimanapun dan mulai unggah gambar anda sekarang. %s tersisa. Tautan gambar langsung, BBCode and sketsa HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Mulai mengunggah" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Daftarlah untuk mendapatkan semua kelebihan yang ada" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Mengelola konten Anda, membuat album pribadi, menyesuaikan profil Anda dan banyak lagi." + +msgid "Sign in with your account" +msgstr "Masuk dengan akun Anda" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Tidak memiliki sebuah akun? <a href='%s'>Daftar</a> Sekarang." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Keluar" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Anda telah keluar %s. Sampai bertemu kembali." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Pergi ke beranda" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Website dalam perbaikan" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Kami sedang melakukan perawatan rutin. Silakan kembali dalam beberapa menit lagi." + +msgid "This content is password protected." +msgstr "Konten ini dilindungi kata sandi." + +msgid "Please enter your password to continue." +msgstr "harap masukkan kata sandi anda untuk melanjutkan" + +msgid "Send" +msgstr "Terkirim" + +msgid "Supported software" +msgstr "Perangkat lunak yang didukung" + +msgid "supported software" +msgstr "perangkat lunak yang didukung" + +msgid "Add it to your website" +msgstr "Tambahkan ke situs web Anda" + +msgid "options" +msgstr "pilihan" + +msgid "Basic options" +msgstr "Pilihan dasar" + +msgid "After" +msgstr "Setelah" + +msgid "Before" +msgstr "Sebelum" + +msgid "Advanced options" +msgstr "Opsi lanjutan" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Anda tidak diperkenankan memasuki halaman ini atau tautan telah tidak berlaku." + +msgid "Search results" +msgstr "Hasil pencarian" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Apakah anda yakin akan menghapus pengguna ini? Hal ini tidak dapat dimundurkan." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Menghapus pengguna" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Tanggal pendaftaran" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Pendaftaran IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Sah" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Diblokir" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Menunggu email" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Menunggu konfirmasi" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i sampai %f karankter<br>Huruf, angka dan \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Hapus otomatis unggahan" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Pengaturan ini akan diterapkan ke semua gambar yang telah anda unggah secara default. Anda dapat mengubah pengaturan ini di setiap unggahan." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Biarkan <a %s>Exif data</a> gambar ketika upload" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Langganan berita" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Kirimi saya email berita tentang %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Pengaturan isi" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Perlihatkan berkas dewasa di daftar (dari yang lain)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Bahasa" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Zona waktu" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Password saat ini" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Masukkan password saat ini" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Password baru" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Konfirmasi password baru" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Ketik password untuk masuk menggunakan username atau email." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Pengguna ini tidak memiliki password. Tambahkan melalui form berikut." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Masukkan password anda" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Konfirmasi kata sandi" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Ketik ulang password" + +msgid "Make my profile and identity totally private" +msgstr "Buat profil dan identitas saya sepenuhnya pribadi." + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Aktifkan jika anda ingin menjadi seperti pengguna anonim." + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Ini adalah nama anda bukan username." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://websitekamu.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Bio" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Ceritakan sedikit mengenai anda" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Pengguna tidak mempunyai koneksi." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Apakah anda yakin ingin diskonek %s dari akun ini?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Akun ini terhubung dengan %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Apakah anda yakin ingin memutuskan hubungan dengan akun %s ?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Anda akan keluar dan tidak dapat masuk kembali ke akun anda menggunakan akun %s ini." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Akun anda terhubung dengan %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "terputus" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Menghubungkan dengan %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Silahkan mencari dan menemukan semua gambar dan album yang saya bagikan." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Tombol" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Tampilkan semua gambarku" + +msgid "Login" +msgstr "Masuk" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Sudah memiliki akun? %s sekarang." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "Kirim ulang aktivasi akun" + +#, php-format +msgid "You can also %s." +msgstr "Anda juga dapat %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Saya telah berumur %s tahun" + +msgid "terms" +msgstr "ketentuan" + +msgid "privacy policy" +msgstr "kebijakan privasi" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Unggah latar belakang untuk profil anda" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Ubah latar belakang" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Unggah gambar baru" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Latar belakang profil akan dihapus. Tidak dapat dimundurkan. Apakah anda yakin untuk menghapus gambar latar belakang dari profil?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Menghapus latar belakang" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Pengikut" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Ikuti" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Anda telah diblokir dari website ini." + +msgid "Plugin" +msgstr "Plugin" + +#, php-format +msgid "Page %s" +msgstr "Laman %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Pertanyaan/komentar umum" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Pengaduan DCMA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Pesan tidak valid" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Judul tidak valid" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Pos galat" + +msgid "Message sent" +msgstr "Pesan terkirim" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Pesan terkirim. Kami akan menghubungi segera." + +msgid "If you want to send a message fill the form below." +msgstr "Jika anda ingin mengirim sebuah pesan isi form dibawah ini." + +msgid "Your name" +msgstr "Nama anda" + +msgid "Subject" +msgstr "Judul" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Semua perubahan yang dibuat akan hilang jika anda teruskan tindakan ini" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Perubahan telah disimpan" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Kembali ke formulir" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "lanjutkan saja" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Sedang menyimpan" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Sedang mengirim" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Konfirmasi tindakan" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informasi" + diff --git a/app/languages/it.po b/app/languages/it.po new file mode 100644 index 0000000..9f5b5d6 --- /dev/null +++ b/app/languages/it.po @@ -0,0 +1,5313 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-07 13:29+0000\n" +"PO-Revision-Date: 2021-06-07 13:29+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Indirizzo email non valido" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Nome utente non valido" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Password non valida" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Versione installata è v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Impossibile connettersi a %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Ultima release disponibile è v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Aggiornamento necessario, procedere scaricare" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Nessun aggiornamento necessario" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr " file di sistema già aggiornato" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Avviamento v%s download" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Scaricato v%s, di procedere alla estrazione" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Il tentativo di estrarre v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "estrazione completata" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Di procedere per installare l'aggiornamento" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Aggiornamento non riuscito" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Aggiornamento in corso..." + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "File %s non trovato" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Info licenza non valida" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Impossibile salvare il file" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Impossibile estrarre %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Impossibile creare la cartella %s - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Impossibile aggiornare il file %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Per proseguire verifica gli errori di compilazione." + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Nota: questo contenuto è privato, ma accessibile da chiunque abbia il link diretto." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Nota: questo contenuto è protetto da password. Ricorda di comunicarla per consentire l'accesso." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Nota: questo contenuto è privato. Per condividerlo imposta la privacy a livello \"pubblico\"." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "È necessario immettere il nome dell'album." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Confermare" + +msgid "The content has been approved." +msgstr "Il contenuto è stato approvato." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Seleziona album esistente" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Si è verificato un errore. Riprova più tardi." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Si prega di selezionare un tipo di file immagine valido." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Si prega di selezionare un'immagine di al massimo %s dimensioni." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Immagine profilo aggiornato." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Immagine di sfondo del profilo aggiornata." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Immagine di sfondo del profilo cancellata." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Errore nella cancellazione dell'immagine di sfondo del profilo." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Le password non corrispondono" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Aggiornamento disponibile v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Vi è disponibile un aggiornamento per il sistema. È possibile scaricare automaticamente e installare questo aggiornamento o andare al %s per procedere per scaricare il file." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Note di rilascio per questo aggiornamento:" + +msgid "system requirements" +msgstr "requisiti di sistema" + +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "Confermo che questo server soddisfa %s per questo aggiornamento " + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Aggiorna ora" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Questo sito web è in esecuzione la versione più recente di %s" + +msgid "Please review the system requirements before proceeding" +msgstr "Si prega di rivedere i requisiti di sistema prima di procedere" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Caricamento" + +msgid "Toggle select" +msgstr "Attiva/disattiva selezione" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Mi piace" + +msgid "Toggle flag" +msgstr "Attiva/disattiva flag" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Modifica" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Album" + +msgid "Approve" +msgstr "Approvare" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Cancella" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Chiudi" + +msgid "Previous" +msgstr "Precedente" + +msgid "Next" +msgstr "Prossimo" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Appunti immagine" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "File troppo grande." + +msgid "Invalid or unsupported file format." +msgstr "formato di file non valido o non supportato" + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Alcuni file non possono essere aggiunti" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "Immagine" +msgstr[1] "Immagini" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Album di %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Immagine modificata con successo." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privato" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album modificato con successo." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Chiave URL non valida." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Categoria chiave URL già utilizzata." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Categoria eliminata correttamente." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Categoria %s aggiunta." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Data di scadenza invalida." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s è già stato vietato." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s bannato." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP è stato correttamente cancellato." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Si prega di compilare tutti i campi obbligatori." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Valore di capacità di memoria non valido. Assicurarsi di utilizzare un formato valido." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Lo spazio di archiviazione non può essere inferiore a quello attualmente in uso (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL non valido" + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Archiviazione modificato con successo." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Utente aggiunto con successo." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Il contenuto è stato cancellato." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Il contenuto è stato spostato." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Seleziona" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Non hai selezionato" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Il contenuto è stato modificato." + +#, javascript-format +msgid "Import ID %s removed" +msgstr "L'ID importazione %s rimosso" + +msgid "Spam detected" +msgstr "Spam rilevato" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "album" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Inondazione rilevata. Puoi caricare solo il %limit% %content% per %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Senza titolo" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Immagini di %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privato" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Pubblico" + +msgid "Me" +msgstr "Me" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Password" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "visualizzazione" +msgstr[1] "visualizzazioni" + +msgid "After %n %t" +msgstr "Dopo %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minuti" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "ora" +msgstr[1] "ore" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "giorno" +msgstr[1] "giorni" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "settimana" +msgstr[1] "settimane" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mese" +msgstr[1] "mesi" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "anno" +msgstr[1] "anni" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Non cancellare automaticamente" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Impossibile aprire %s in scrittura" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Contenuto duplicato" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Caricamento privato" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Mi piace" +msgstr[1] "Gli piace" + +msgid "Recent" +msgstr "Recente" + +msgid "Trending" +msgstr "Argomenti" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Utenti top" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Più nuove" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Più vecchie" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Più viste" + +msgid "Popular" +msgstr "Popolare" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Più piaciute" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Esplora" + +msgid "Animated" +msgstr "Animato" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Cerca" + +msgid "People" +msgstr "Persone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Immagine" +msgstr[1] "Immagini" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Utente" +msgstr[1] "Utenti" + +msgid "adult" +msgstr "adulto" + +msgid "teen" +msgstr "adolescente" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "Il contenuto di tipo %s è vietato" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Impossibile creare la cartella di destinazione %s" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interno" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Illimitato" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "usato" + +msgid "Private profile" +msgstr "Profilo privato" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "secondo" +msgstr[1] "secondi" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s fa" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "poco fa" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Pannello di controllo" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Aggiornamento di sistema disponibile: vai qui %s per scaricarlo ed installarlo." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "È necessario eseguire lo strumento di <a href=\"%s\">aggiornamento</a> del database di sistema." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Sito web in modalità manutenzione. Per annullare questa impostazione vai al menu <a href=\"%s\"> Cruscotto > Impostazioni </a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Si consiglia di disattivare il rapporto errori PHP in ambienti di produzione. Vai a <a href='%s'> Impostazioni di sistema </a> per annullare questa impostazione." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Le impostazioni email predefinite non sono state modificate. Vai a <a href='%s'> Impostazioni email </a> per gestirle." + +msgid "There is an update available for your Chevereto based website." +msgstr "Aggiornamento disponibile per il tuo sito web di Chevereto." + +msgid "admin dashboard" +msgstr "Pannello di controllo amministratore" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Puoi applicare questo aggiornamento direttamente dal tuo %a, oppure scaricarlo dal %s ed installarlo manualmente." + +#, php-format +msgid "view on %s" +msgstr "visualizza su %s" + +msgid "cookie policy" +msgstr "politica dei cookie" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Utilizziamo i nostri cookie propri e di terze parti per migliorare la tua esperienza di navigazione e i nostri servizi. Se continui a utilizzare il nostro sito Web, comprendi che accetti questo %cookie_policy_link." + +msgid "I understand" +msgstr "Capisco" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Password dimenticata?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Reimpostazione password" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Reinvia la richiesta di attivazione account" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Aggiungi il tuo indirizzo email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Indirizzo email modificato" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s dice che sei un robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Nome utente/Indirizzo email non validi" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "L'utente non dispone di indirizzo email." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Richiesta rifiutata" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Per utilizzare questa funzionalità è necessaria l'attivazione dell'account" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Account già attivato" + +msgid "Account banned" +msgstr "Account bloccato" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Attendi fino a 15 minuti per la ricezione delll'email. Puoi riprovare più tardi." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Cambia la tua password %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Conferma obbligatoria a %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Benvenuti in %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Indirizzo email già utilizzato" + +msgid "Password required" +msgstr "Password obbligatoria" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Condivisione" + +msgid "Sub albums" +msgstr "Sotto album" + +msgid "Info" +msgstr "Info" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Album %a ospitato in %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistiche" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Immagini" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Album" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Utenti" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Impostazioni" + +msgid "Bulk importer" +msgstr "Massa Importatore" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "installa l'aggiornamento" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "controlla aggiornamenti" + +msgid "Contributing" +msgstr "Contribuire" + +msgid "Support" +msgstr "Supporto" + +msgid "Bug tracking" +msgstr "Segnalazione bug" + +msgid "Documentation" +msgstr "Documentazione" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Versione PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Versione MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Info server MySQL" + +msgid "Graphics Library" +msgstr "Libreria grafica" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "File caricati" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Abilitato" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Disabilitato" + +msgid "Max. upload file size" +msgstr "Max. dimensione del file di caricamento" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Max. valore POST" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Max. tempo di esecuzione" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d secondo" +msgstr[1] "%d secondi" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Limite memoria" + +msgid "Rebuild stats" +msgstr "Ricostruisci le statistiche" + +msgid "Connecting IP" +msgstr "Connessione IP" + +msgid "Not your IP?" +msgstr "Non è il tuo IP?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Sito web" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Contenuto" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Pagine" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Gallerie" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Caricamento" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Categorie" + +msgid "Consent screen" +msgstr "Pagina di consenso" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Protezione da flood" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Homepage" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Pubblicità" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistema" + +msgid "Routing" +msgstr "Percorsi" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Localizzazione" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Archiviazione esterna" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Indirizzo email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Social network" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Servizi esterni" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Blocco IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Altre impostazioni" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Strumenti" + +msgid "Can't delete all homepage cover images" +msgstr "Impossibile cancellare tutte le immagini di copertina della homepage" + +msgid "Homepage cover image deleted" +msgstr "Immagine di copertina homepage cancellata" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Locale" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Esterno" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Tutto" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "Ricerca contenuti" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Aggiungi pagina" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Modifica ID pagina %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "La pagina è stata aggiunta correttamente." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "La pagina è stata cancellata." + +msgid "homepage" +msgstr "homepage" + +#, php-format +msgid "Before main title (%s)" +msgstr "Prima del titolo principale (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Dopo il pulsante di caricamento (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Dopo la copertina (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Dopo la galleria (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Prima dell'impaginazione" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Dopo l'impaginazione" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Contenuto (immagini ed album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Colonna scheda informazioni" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Prima dei commenti" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Pagina immagine" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Visualizzatore interno superiore (pagina immagine)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Visualizzatore interno inferiore (pagina immagine)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Dopo il visualizzatore immagine (pagina immagine)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Prima dell'intestazione (pagina immagine)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Dopo l'intestazione (pagina immagine)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Piè di pagina (pagina immagine)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Pagina album" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Prima dell'intestazione (pagina album)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Dopo l'intestazione (pagina album)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Pagina profilo utente" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Dopo il top (profilo utente)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Prima della galleria (profilo utente)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Pagina \"Esplora\"" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Dopo il top (pagina \"Esplora\")" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nome sito web non valido" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Lingua non valida" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Fuso orario non valido" + +#, php-format +msgid "Invalid value: %s" +msgstr "Valore non valido: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Modalità di archiviazione non valida" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Denominazione dei file non valida" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Larghezza miniatura non valida" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Altezza miniatura non valida" + +msgid "Invalid medium size" +msgstr "Dimensione media non valida" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Percentuale filigrana non valida" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Opacità filigrana non valida" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Tema non valido" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Valore non valido" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Tonalità tema non valida" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Colore principale del tema non valido" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Colore pulsante top bar del tema non valido" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Dimensione galleria immagini del tema non valida" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "ID utente non valido" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Modalità email non valida" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Porta SMTP non valida" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Tipo sicurezza SMTP non valido" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Modalità sito non valida" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "ID utente modalità personale non valido" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Percorso non valido o riservato" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Modalità sito web privato non valida" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Modalità contenuto privato sito web non valida" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Stile homepage non valido" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Colore pulsante invito all'azione in homepage non valido" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Funzionalità invito all'azione in homepage non valida" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Titolo non valido" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Stato non valido" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Tipo non valido" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Visibilità non valida" + +msgid "Invalid internal type" +msgstr "Tipo interno non valido" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Attributo target non valido" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Attributo rel non valido" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Icona non valida" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Chiave URL non valida" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Percorso file non valido" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Link URL non valido" + +msgid "Invalid user minimum age" +msgstr "Età minima utente non valida" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Sono consentiti solo caratteri alfanumerici, trattino e trattino basso (underscore)" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL non valido" + +msgid "Routes can't be the same" +msgstr "I percorsi non possono essere uguali" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Percorso caricamento immagine non valido" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "URL invito all'azione non valido" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Massimo consentito %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Non è possibile mappare %m ad una cartella esistente (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Non è possibile mappare %m ad un percorso esistente (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Non è possibile mappare %m a %r (conflitto username)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Server SMTP non valido" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Username SMTP non valido" + +msgid "Invalid key" +msgstr "Chiave non valida" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Questa chiave URL è già utilizzata da un'altra pagina (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Questo percorso file è già utilizzato da un'altra pagina (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Impossibile salvare il contenuto della pagina: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Seguire" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Informazioni" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID immagine" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP uploader" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Blocca IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP già bloccato" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Caricato il" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Immagine %i in album %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Immagine %i in categoria %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Immagine %i ospitata in %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Link diretti" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Pagina immagine" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Immagine originale" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Immagine in miniatura" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Immagine ridotta" + +msgid "Full image" +msgstr "Immagine originale" + +msgid "Full image (linked)" +msgstr "Immagine originale (con link)" + +msgid "Medium image (linked)" +msgstr "Immagine ridotta (con link)" + +msgid "Thumbnail image (linked)" +msgstr "Immagine in miniatura (con link)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Autenticazione obbligatoria" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Indirizzo IP già bloccato" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Valori mancanti" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Ruolo non valido" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Nome utente già in uso" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Aggiungi una password o una connessione ad un Social prima di eliminare %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Aggiungi un indirizzo email o una connessione ad un Social prima di eliminare %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s è stato disconnesso." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Email di prova da %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Questa è soltanto una prova" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Email di prova inviata a %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Download di dati %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Utente %s seguito" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Utente %s non seguito più" + +msgid "Album cover altered" +msgstr "Copertina dell'album alterata" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Contenuto piaciuto" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Contenuto non piaciuto" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "A %u piace il tuo %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u ora ti sta seguendo" + +msgid "A private user" +msgstr "Un utente privato" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Combinazione Username/Email/password errata" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Accedi" + +msgid "Moderate" +msgstr "Moderare" + +msgid "Upload images" +msgstr "Carica immagini" + +msgid "Upload plugin" +msgstr "Caricare plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Risultati della ricerca immagine per %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Risultati della ricerca album per %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Risultati della ricerca utente per %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Account" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profilo" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Account collegati" + +msgid "Powered by" +msgstr "Offerto da" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Scadenza immagine non valida: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Email inviata a %s con le istruzioni per attivare il tuo account" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nome non valido" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Sito web non valido" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Password errata" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Utilizza una nuova password" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Le modifiche sono state salvate." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "La password è stata cambiata" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "La password é stata creata" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Valori di username/email non validi" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Impostazioni per %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Devi accettare i termini e l'informativa sulla privacy" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "L'utilizzo di questo sito web è vietato ai minori di %s anni." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Crea un account" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Carica" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Immagini di %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Risultati per" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Piaciuto a %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Preferite" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Follower" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) album su %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) su %w" + +msgid "Discovery" +msgstr "Scoperta" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Casuale" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Ricerca avanzata" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Avvisi (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Notifiche" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Non hai nuove notifiche" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Il mio profilo" + +msgid "Lights" +msgstr "Luci" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Disconnessione" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Abbiamo ricevuto una richiesta di modifica indirizzo email del tuo account <a href=\"%u\">%n</a> a %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Per completare la procedura deve <a href=\"%s\">attivare la tua email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "In alternativa è possibile copiare e incollare l'indirizzo URL nel browser: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Se non intendevi questo, ignora il messaggio." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Richiesta eseguita da questo indirizzo IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Abbiamo ricevuto la richiesta di registrazione dell'account %n a %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Per completare la procedura devi <a href=\"%s\">attivare il tuo account</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Abbiamo ricevuto richiesta di reimpostazione password per il tuo account <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Per reimpostare la tua password<a href=\"%s\">segui questo link</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Ciao %n, benvenuto in %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Ora che il tuo account è attivo, divertirti a caricare immagini, creare album, impostare la privacy dei tuoi contenuti, ed a scoprire altre attività interessanti." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Inoltre qui trovi la pagina del tuo profilo: <a href=\"%u\">%n</a>. Vai a personalizzarlo!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Grazie per l'iscrizione" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Email inviata da %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Trascina e rilascia oppure incolla qui le tue immagini per caricarle" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Seleziona le immagini da caricare" + +msgid "browse from your computer" +msgstr "navigare dal computer" + +msgid "add image URLs" +msgstr "aggiungi URL immagini" + +msgid "You can also %i or %u." +msgstr "È inoltre possibile %i o %u." + +msgid "browse from your device" +msgstr "esplorare dal tuo dispositivo" + +msgid "take a picture" +msgstr "Fai una foto" + +msgid "You can also %i, %c or %u." +msgstr "Puoi anche %i, %c o %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Modificare o ridimensionare un immagine cliccando l'immagine di anteprima" + +msgid "Edit any image by touching the image preview" +msgstr "Modifica qualsiasi immagine toccando l'anteprima dell'immagine" + +msgid "your computer" +msgstr "il tuo computer" + +msgid "You can add more images from %i or %u." +msgstr "È possibile aggiungere altre immagini %i o %u." + +msgid "your device" +msgstr "il tuo dispositivo" + +msgid "You can add more images from %i, %c or %u." +msgstr "È possibile aggiungere altre immagini %i, %c o %u." + +msgid "Uploading %q %o" +msgstr "Caricamento %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "completo" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "La coda è caricata, si dovrebbe perdere solo pochi secondi per essere completata." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Caricamento completato" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "contenuti caricati aggiunto %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "È possibile %c con il contenuto appena caricato o %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "È possibile %c con il contenuto appena caricato." + +msgid "create a new album" +msgstr "creare un nuovo album" + +msgid "move it to an existing album" +msgstr "spostarlo in un album esistente" + +msgid "You must %s or %l to save this content into your account." +msgstr "Devi %s o %l per salvare questo contenuto nel tuo account." + +msgid "create an account" +msgstr "crea un account" + +msgid "sign in" +msgstr "registrati" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Nessun %s sono state caricate" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "La tua richiesta non è stata elaborata a causa di alcuni errori." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Categoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Seleziona la categoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Seleziona la spunta se il contenuto non è adatto a tutti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Contenuto non adatto a tutti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Caricamento in corso..." + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "oppure" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "Annulla " + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Annulla il caricamento" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Attenzione: non è stato possibile caricare alcune immagini." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Scopri di più" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Controlla il <a data-modal=\"simple\" data-target=\"failed-upload-result\">rapporto di errore</a> per ulteriori informazioni." + +#, php-format +msgid "Register to get %s" +msgstr "Registrati per ottenere %s" + +msgid "reset" +msgstr "azzerare" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "chiudi" + +msgid "Note" +msgstr "Nota" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Dobbiamo approvare il contenuto caricato prima di poterlo condividere." + +msgid "copy" +msgstr "copia" + +msgid "insert" +msgstr "inserire" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Rimuovi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Titolo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "Opzionale" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Ridimensiona immagine" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Larghezza" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Altezza" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Nota: le immagini GIF animate non saranno ridimensionate." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Cancellazione automatica immagine" + +msgid "Sign up" +msgstr "Registrazione" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s Per poter personalizzare o disattivare l'eliminazione automatica delle immagini." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Seleziona la spunta se l'immagine non è adatta a tutti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Contrassegna come non adatto a tutti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Descrizione" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Descrizione sintetica dell'immagine" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Aggiungi link di immagini" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Aggiungi qui i link di immagini" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Crea album" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Il contenuto caricato verrà spostato in questo album appena creato." + +msgid "existing album" +msgstr "album esistente" + +msgid "You can also move the content to an %a." +msgstr "Puoi anche spostare il contenuto in un %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Devi %s o l se desideri modificare questo album in seguito." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Sposta nell'album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Seleziona un album esistente in cui spostare le immagini caricate. Puoi anche <a class=\"modal-switch\" data-switch=\"move-new-album\">creare un nuovo album</a> e spostarvi il contenuto." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Rapporto d'errore" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Link utili" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Link di visualizzazione" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Codici HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "Immagine originale" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "Immagine originale con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "Immagine ridotta con linkg" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "Immagine in miniatura con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBcode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "Immagine originale" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "Immagine originale con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Immagine ridotta con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Immagine in miniatura con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Immagine originale" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Immagine originale con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Immagine ridotta con link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Immagine in miniatura con link" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Tutte queste parole chiave" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Inserire le parole chiave: tri-color rat terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Questa parola chiave o frase esatta" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Definire le parole chiave esatte tra virgolette: \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Nessuna di queste parole chiave" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Inserisci un segno meno davanti alle parole chiave non volute: -rodent - \"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Indirizzo IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nome album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "sposta in un album esistente" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Descrizione album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Descrizione sintetica di questo album" + +msgid "Album privacy" +msgstr "Privacy album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Chi può visualizzare questo contenuto" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privato (solo io)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privato (chiunque tramite link)" + +msgid "Private (password protected)" +msgstr "Privato (protetto da password)" + +msgid "Album password" +msgstr "Password album" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nome" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nome categoria" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Chiave URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Chiave URL categoria" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Soltanto lettere, numeri e trattini" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Descrizione sintetica di questa categoria" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Immagine senza titolo" + +msgid "Mark this if the image is not safe for work" +msgstr "Segna questo se l'immagine non è sicura" + +msgid "Flag not safe" +msgstr "Segnala non sicuro" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Percorso" + +msgid "Local path (absolute)" +msgstr "Percorso locale (assoluto)" + +msgid "Directory structure" +msgstr "Struttura della directory" + +msgid "Parse top level folders as users (username)" +msgstr "Analizza le cartelle di primo livello come utenti (nome utente)" + +msgid "Parse top level folders as albums" +msgstr "Analizza le cartelle di livello superiore come album" + +msgid "Don't parse folders" +msgstr "Non analizzare le cartelle" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Quando si analizzano le cartelle di livello superiore come utenti, le cartelle di secondo livello verranno analizzate come album utente. L'analisi delle cartelle di primo livello come album le aggiunge come album degli ospiti." + +msgid "Threads" +msgstr "Discussioni" + +msgid "Select number of threads" +msgstr "Seleziona il numero di discussioni" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Questo determina quanto intenso e veloce sarà il processo di importazione. Non utilizzare più di %s discussioni su un server condiviso." + +msgid "You can use wildcard * characters." +msgstr "È possibile utilizzare caratteri jolly *." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Data di scadenza" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Esempio" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Data di scadenza del blocco IP. Lascia vuoto per non impostare alcuna scadenza." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Messaggio" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Messaggio di testo, HTML o URL di reindirizzamento" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Album esistente" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Crea nuovo album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Nome spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Regione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Regione spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Bucket spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Chiave " + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Key spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Segreto" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Secret spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Key privata" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "JSON key Google Cloud" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Ti server un <a %s>account di servizio</a> per questo." + +msgid "Service name" +msgstr "Nome servizio" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identità URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identità API endpoint" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API endpoint per identità OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Username" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Container spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID tenant" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID tenant (ID account)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Nome tenant" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Nome tenant (nome account)" + +msgid "Storage endpoint" +msgstr "Endpoint di archiviazione" + +msgid "Server address" +msgstr "Indirizzo del server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Nome di dominio oppure IP del server di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Percorso server" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Percorso assoluto in cui i file verranno archiviati nel contesto del login %p. Usa %s per il percorso principale." + +msgid "Server login" +msgstr "Accesso al server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Password server" + +msgid "Local path" +msgstr "Percorso locale" + +msgid "Local path where the files will be stored" +msgstr "Percorso locale in cui verranno archiviati i file" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Capacità spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Esempio: 20 GB, 1 TB, etc etc..." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Lo spazio di archiviazione sarà disabilitato al raggiungimento di questo valore. Lascia il campo vuoto oppure inserisci valore zero per non impostare il limite." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL spazio di archiviazione" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Il sistema mapperà le immagini di questo spazio di archiviazione al seguente URL" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "Vedi altro" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Carica altro" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Seleziona tutto" + +msgid "Clear" +msgstr "Cancella" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Recupera i codici embed" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Assegna categoria" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Contrassegna come adatto a tutti" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Annulla selezione" + +msgid "Create new album" +msgstr "Crea nuovo album" + +msgid "Create sub album" +msgstr "Crea sotto album " + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Condividi" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Accedi con un account diverso" + +msgid "Continue with %label%" +msgstr "Continua con %label%" + +msgid "Home" +msgstr "Home" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Non c'è niente da mostrare qui." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Tutte le immagini selezionate saranno assegnate a questa categoria." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Non ci sono categorie" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Conferma che i contenuti sono adatti a tutti" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Vuoi davvero contrassegnare questo contenuto come adatto a tutti?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Conferma che i contenuti non sono adatti a tutti" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Vuoi davvero contrassegnare questo contenuto come non adatto a tutti?" + +msgid "Confirm approval" +msgstr "Conferma l'approvazione" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "Vuoi davvero rimuovere tutto il contenuto selezionato? Questo non può essere annullato." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Conferma la cancellazione" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Vuoi davvero cancellare questo contenuto? Questa azione non può essere annullata." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Vuoi davvero rimuovere tutto il contenuto selezionato? Questo non può essere annullato." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Vuoi davvero cancellare tutto il contenuto selezionato? Questa azione non può essere annullata." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Ospite\n" + +msgid "Keyboard shortcuts" +msgstr "Tasti rapidi" + +msgid "Private album" +msgstr "Album privato" + +msgid "Password protected" +msgstr "Protetto da password" + +msgid "Uploaded by guest" +msgstr "Caricato da ospite" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Da %s" + +msgid "Uploaded by private" +msgstr "Caricato da privato" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "di %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Contrassegna come non adatto a tutti" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "La pagina non esiste" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "La pagina richiesta non è stata trovata." + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "L'utente è stato cancellato" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Il tuo account è quasi pronto" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Una e-mail a %s è stata inviata con le istruzioni per attivare il tuo account. Il link di attivazione è valida solo per 48 ore. Se non ricevete le istruzioni Prova a controllare i filtri junk o spam." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Inviami di nuovo la email di attivazione" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Avete cambiato con successo la tua email account per %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Vai al mio profilo" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Un link di conferma verrà inviato a questa email con i dettagli per attivare l'account" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Il tuo indirizzo email" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Invia" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Ti abbiamo inviata una email all'indirizzo email registrato con le indicazioni per reimpostare la password. Se non la hai ricevuta, verifica anche nelle cartelle spam o posta indesiderata." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Ti abbiamo già inviata una email con le indicazioni per reimpostare la password. Se non la hai ricevuta, verifica anche nelle cartelle spam o posta indesiderata." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Invia di nuovo le istruzioni" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Inserisci il tuo nome utente o indirizzo email per continuare. Potrebbe essere necessario controllare la cartella o la lista bianca dello spam %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Username o indirizzo email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "La tua password è stata modificata. Ora puoi collegarti con la nuova password." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Collegati ora" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Inserisci la tua nuova password" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "Minimo %d caratteri" + +msgid "Password strength" +msgstr "Forza password" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Reinserisci la tua nuova password" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Una e-mail a %s è stato inviato con le istruzioni per attivare l'account. Se non ricevete le istruzioni Prova a controllare i filtri junk o spam." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Questo contenuto è privato" + +msgid "Sub album" +msgstr "Sotto album " + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Vuoi davvero cancellare questo album e le relative immagini? Questa azione non può essere annullata." + +msgid "Upload to album" +msgstr "Carica un album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Ti piace" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Prima di proseguire sei invitato a leggere ed ad attenerti alle seguenti condizioni:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Questo sito contiene informazioni, link e immagini di materiale sessualmente esplicito. Se siete sotto l'età di %s, se tale materiale si offende o se è illegale per visualizzare tale materiale nella vostra comunità si prega di non continuare.\n\nSono almeno %s anni di età e credo che come un adulto è mio diritto inalienabile di ricevere / visualizzare materiale sessualmente esplicito. Desidero ricevere / visualizzare materiale sessualmente esplicito.\n\nCredo che gli atti sessuali tra adulti consenzienti non sono né offensiva né osceni. La visualizzazione, lettura e il download di materiale sessualmente esplicito non viola le norme della mia comunità, città, città, stato o paese.\n\nIl materiale sessualmente esplicito che visualizzo è per mio uso personale e non voglio esporre i minori al materiale.\n\nIo sono l'unico responsabile per eventuali dichiarazioni false o di conseguenze legali di visualizzazione, la lettura o il download di qualsiasi materiale di questo sito. Inoltre questo sito né i suoi affiliati potranno essere ritenuti responsabili di eventuali conseguenze legali derivanti da accesso fraudolento nel o l'uso di questo sito web.\n\nQuesta schermata consenso costituisce un accordo legale tra questo sito e voi e / o qualsiasi attività commerciale in cui si dispone di alcun interesse legale. Se una qualsiasi parte di questo accordo è ritenuta inapplicabile da un tribunale della giurisdizione competente non pregiudica l'applicabilità delle altre parti del contratto." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Selezionando \"Accetto\" dichiari di aver letto e compreso tutte le condizioni riportate." + +msgid "I Agree" +msgstr "Accetto" + +msgid "documentation" +msgstr "documentazione" + +#, php-format +msgid "Learn about %s settings at our %d." +msgstr "Scopri le impostazioni di %s nel nostro %d. " + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "L'IP di connessione viene determinato utilizzando la variabile server %var%. Se l'IP rilevato non corrisponde al tuo, significa che il tuo server Web è sotto un proxy e devi modificare il tuo server per impostare l'IP di connessione reale." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Per Nginx, è necessario utilizzare %nginx%. Per Apache, %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Assicurati di affrontare questo problema poiché il sistema si basa su rilevamenti IP accurati per fornire funzionalità di base e per proteggere da spam, inondazioni e attacchi di forza bruta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Spazio occupato su disco" + +msgid "Queued" +msgstr "In coda" + +msgid "Working" +msgstr "Lavoro" + +msgid "Paused" +msgstr "In pausa" + +msgid "Canceled" +msgstr "Annullata" + +msgid "Completed" +msgstr "Completato" + +#, php-format +msgid "Top level folders as %s" +msgstr "Cartelle di primo livello come %s" + +msgid "Actions" +msgstr "Azioni" + +msgid "Process" +msgstr "Processi" + +msgid "Pause" +msgstr "Pausa" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Process log" +msgstr "Registro di processo" + +msgid "Errors" +msgstr "Errore" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Vuoi veramente rimuovere l'ID di importazione %s?" + +msgid "Reset" +msgstr "Ripristina" + +msgid "Resume" +msgstr "Riprendere" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Stato" + +msgid "Run the following command to import content to Chevereto:" +msgstr "Eseguire il seguente comando per importare il contenuto su Chevereto: " + +#, php-format +msgid "Read the %s for more information about this feature." +msgstr "Leggi %s per ulteriori informazioni su questa funzione. " + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Aggiungi utente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Ruolo" + +msgid "Manager" +msgstr "Manager" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Amministratore" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Indirizzo email" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Questa impostazione è sempre disabilitata quando si utilizza la modalità sito personale." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Aggiungi categoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Aggiungi blocco IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Aggiungi spazio di archiviazione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Torna alle pagine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nome del sito web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Doctitle sito web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Descrizione sito web" + +msgid "Automatic" +msgstr "Automatico" + +msgid "Forced" +msgstr "Costretto" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a utilizzerà il rilevamento HTTPS sul lato server (consigliato). %f utilizzerà HTTPS indipendentemente dall'impostazione del server. %d non usare affatto HTTPS." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Questo controlla solo il protocollo utilizzato negli URL, non trasformerà il tuo sito Web in un sito Web HTTPS valido se il tuo server non è configurato per supportare e utilizzare HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Fuso orario predefinito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Seleziona la regione" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Abilita la ricerca di immagini, album ed utenti in base a specifica chiave di ricerca." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Abilita la visualizzazione delle immagini pubbliche. Inoltre abilita le categorie." + +msgid "guests" +msgstr "ospiti" + +msgid "Enables explore for guests." +msgstr "Consente di esplorare per gli ospiti." + +msgid "Enables to browse images randomly." +msgstr "Abilita la visualizzazione casuale delle immagini." + +msgid "Likes" +msgstr "Piaciuti" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Consente agli utenti di usare i \"like\" e popolare l'elenco dei \"più graditi\"." + +msgid "Followers allows users to follow each other." +msgstr "Consente agli utenti di seguirsi." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Modalità sito" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Comunità" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Personale" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Puoi modificare la modalità sito web in ogni momento." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Modalità personale utente di destinazione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID utente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Il tuo ID utente è: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "ID numerico dell'utente di destinazione per la modalità personale." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Percorso modalità personale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Percorso personalizzato per mappare /username a /esempio. Utilizza \"/\" per mappare alla homepage." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Modalità privacy sito web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "In modalità privata il sito è disponibile soltanto agli utenti iscritti." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Modalità privacy contenuto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Predefinito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Forza privato (sé stessi)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Imposta privato (chiunque tramite link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Le modalità di privacy forzata sostituiranno le modalità di privacy degli utenti selezionati." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Titolo pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Stato pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Pagina attiva" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Pagina non attiva (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Saranno accessibili soltanto le pagine attive." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Tipologia" + +msgid "Terms of service" +msgstr "Termini di servizio" + +msgid "Privacy" +msgstr "Privacy" + +msgid "Contact" +msgstr "Contatto" + +msgid "Extra page" +msgstr "Pagina aggiuntiva" + +msgid "Internal page type" +msgstr "Tipo di pagina interna" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Puoi avere più pagine extra, ma solo uno degli altri tipi interni speciali." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Visibilità pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Pagina visibile" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Pagina nascosta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Le pagine nascoste non saranno mostrate nel menu, ma rimangono accessibili da chiunque tramite link diretto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Soltanto caratteri alfanumerici, trattini e barra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Percorso file" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Un file %f relativo a %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta parole chiave" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta descrizione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Codice sorgente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Nessuno permesso di scrittura nel percorso %s: sarà necessario aggiungere questo file usando un editor esterno." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Nessun permesso di scrittura in %s: sarà necessario modificare questo file con un editor esterno." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Preso da: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "URL link" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Attributo link target" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Seleziona %s per aprire la pagina o il link in una nuova finestra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Attributo link rel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Soltanto caratteri alfanumerici, trattini e spazi bianchi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "Attributo HTML &lt;a&gt; %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Link icona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Controlla qui <a %s>icon reference</a> per l'elenco completo delle icone supportate." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "VIsualizza ordinamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Display ordine pagina ordina per i menu ed elenchi. Usare \"1\" per la massima priorità." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Vuoi davvero eliminare la pagina con ID %s? Questa azione non può essere annullata." + +msgid "Enabled image formats" +msgstr "Formati di immagine abilitati" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Sarà consentito caricare soltanto i tipi di immagine selezionati." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Caricamenti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Abilitare questa opzione se si desidera consentire il caricamento di immagini. Questa impostazione non influisce sugli amministratori." + +msgid "Upload user interface" +msgstr "Carica l'interfaccia utente" + +msgid "On-page container" +msgstr "Contenitore in-page" + +msgid "route" +msgstr "itinerario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Caricamenti anonimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Abilita quest'opzione se vuoi consentire a utenti non registrati di caricare immagini." + +msgid "Moderate uploads" +msgstr "Caricamenti da moderare" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Abilita questa opzione per moderare i caricamenti in arrivo. Il contenuto di destinazione richiederà moderazione per l'approvazione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Attiva i codici embed (uploader)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Abilitare questa opzione se si desidera visualizzare i codici embed quando il caricamento viene completato." + +msgid "Upload threads" +msgstr "Carica le discussioni" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Numero di caricamenti simultanei." + +msgid "Redirect on single upload" +msgstr "reindirizzamento singolo caricamento" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Abilita reindirizzamento alla pagina dell'immagine dopo singolo caricamento." + +msgid "Enable duplicate uploads" +msgstr "Caricamenti duplicati" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Abilita questa opzione per consentire caricamenti duplicati dallo stesso IP nell'arco di 24 ore. Questa impostazione non ha effetto sugli amministratori." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Caricamenti con scadenza" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Abilita questa opzione per consentire caricamenti con cancellazione automatica." + +msgid "Auto delete guest uploads" +msgstr "Cancellare automaticamente i guest upload" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Abilitare questa opzione se si desidera forzare i caricamenti degli ospiti per essere eliminati automaticamente dopo un certo tempo." + +msgid "Maximum image size" +msgstr "La dimensione massima dell'immagine" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Immagini più grandi di queste dimensioni avranno automaticamente ridimensionato. Utilizzare zero (0) per non impostare un limite." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Dati EXIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Mantieni" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Seleziona l'impostazione predefinita per i dati <a %s>EXIF</a> nel caricamento." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Dati EXIF (impostazione utente)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Abilita questa opzione per consentire ad ogni utente di configurare la gestione dei dati EXIF." + +msgid "Maximum upload file size" +msgstr "La dimensione massima del file di caricamento" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "La dimensione massima consentita dal server è %s. Questo limite è ricoperta da %u e %p (%f valori)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Uguale a \"%s\" ma per gli ospiti." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Percorso immagine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativo alla root del sito web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Percorso archiviazioni immagini. Relativo alla root del sito web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Modalità spazio di archiviazione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datefolders" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Diretto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datefolders crea struttura %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Modalità denominazione file" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Originale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Originale + casuale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "Con \"originale\" è conservato il nome nativo, con \"casuale\" è generato un nome casuale, con \"ID\" il nome assegnato all'immagine corrisponde all'ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Formato miniature" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Le miniature avranno questo formato." + +msgid "Medium image fixed dimension" +msgstr "Dimensione prefissata dell'immagine ridotta" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Se selezioni \"larghezza\", l'altezza sarà calcolata di conseguenza in automatico, e viceversa." + +msgid "Medium image fixed size" +msgstr "Formato fisso delle immagini ridotte" + +msgid "Width or height will be automatically calculated." +msgstr "Larghezza od altezza saranno calcolate in automatico." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Filigrana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Abilita questa opzione per inserire un logo od altro nelle immagini caricate." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Alterna utente Watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Abilita filigrana sui caricamenti di anonimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Abilita filigrana sui caricamenti degli utenti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Abilita watermark su uploads degli Admin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Alterna i file Watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Abilita filigrana nel caricamento di immagini GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Dimensione minima dell'immagine necessaria per applicare filigrana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Immagini più piccolo rispetto a questo non saranno filigranata. Usare zero (0) per non impostare un limite minimo dimensioni dell'immagine." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Immagine filigrana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Otterrete i migliori risultati con i loghi di pianura con ombra. È possibile utilizzare una grande immagine, se la dimensione del file non è così grande (consigliato max. È 16 KB). Deve essere un PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Posizione filigrana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "in alto a sinistra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "a sinistra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "in basso a sinistra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "in alto al centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "al centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "in basso al centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "in alto a destra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "a destra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "in basso a destra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Posizione relativa della filigrana. Prima allineamento orizzontale poi verticale." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Percentuale filigrana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Dimensione percentuale della filigrana rispetto all'immagine di destinazione. Valore da 1 a 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Margine watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margine dal confine dell'immagine della filigrana." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Opacità watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Opacità della filigrana nell'immagine finale filigranata. Valori da 0 a 100." + +msgid "Dashboard > Settings > Website" +msgstr "Dashboard> Impostazioni> Sito Web" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Categorie non funziona quando la funzione Explorer è disattivata. Per ripristinare questa impostazione andare a %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Vuoi davvero cancellare %s categoria? Questo non può essere annullata." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Nota: Eliminazione di una categoria non elimina le immagini che appartiene a quella categoria." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Edita categoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Scade" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Vuoi davvero eliminare il divieto alla IP %s? Questa azione non può essere annullata." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Agli indirizzi IP bloccati è inibito l'utilizzo dell'intero sito." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Edita l'indirizzo IP del ban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Attiva registrazione utenti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Attiva questa opzione per consentire all'utente di registrarsi al sito" + +msgid "Enable user content delete" +msgstr "Abilita l'eliminazione dei contenuti utente" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Abilitare questa opzione se si desidera consentire agli utenti di eliminare i propri contenuti. Questa impostazione non riguarda gli amministratori." + +msgid "Minimum age required" +msgstr "Età minima richiesta" + +msgid "Empty" +msgstr "Vuoto" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Lascia vuoto per non richiedono un'età minima per utilizzare il sito." + +msgid "Notify on user signup" +msgstr "Notifica sulla registrazione dell'utente" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Abilita questa opzione se desideri ricevere una notifica via email per ogni nuova registrazione utente." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Percorso nome utente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Abilita questa opzione se vuoi usare l'URL %s/username invece di %s/user/username" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Richiede mail di conferma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Abilitare questa opzione se gli utenti devono confermare il proprio indirizzo e-mail per l'inscrizione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Richiedi e-mail per inscrizione dei social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Abilita questa opzione se gli utenti che usano i social network per registrarsi devono fornire un indirizzo email." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Avatar utente massima dimensione del file" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Dimensione massima consentita per l'immagine avatar dell'utente. (Max consentito dal server è %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Dimensione massima per lo sfondo dell'utente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Dimensione massima consentita per l'immagine di sfondo dell'utente. (Max consentito dal server è %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Mostra una schermata consenso prima di accedere al sito web. Utile per i siti web di contenuti per adulti in cui non dovrebbe essere consentito minori." + +msgid "Enable consent screen" +msgstr "Abilita schermo consenso" + +msgid "Consent screen cover image" +msgstr "immagine di copertina schermo consenso" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Blocca l'Upload dell' immagine in base al suo IP se il sistema nota un comportamento anomalo in base al numero di arrivi per periodo di tempo. Questa impostazione non influisce sugli amministratori." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Notifica per e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Se attivato il sistema invierà una e-mail sui flood che subisce il sito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Limite in minuti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Limite orario" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Limite giornaliero" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Limite settimanale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Limite mensile" + +#, php-format +msgid "Lock %s editing" +msgstr "Blocca la modifica di %s" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "Abilitalo per impedire agli utenti di modificare il flag NSFW. Se abilitato, solo l'amministratore e i gestori avranno questa autorizzazione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Mostra contenuto non sicuro in lista" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Attivare questa opzione se si desidera visualizzare il contenuto non sicuro in inserzioni. Questa impostazione non influisce sugli amministratori e può essere soprascritta sulle proprie impostazioni di utente." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Contenuti Blur NSFW nelle inserzioni" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Attivare questa opzione se si desidera applicare un effetto di sfocatura sulle immagini NSFW nelle inserzioni." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Mostra banner nel contenuto non sicuro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Abilitare questa opzione se si desidera visualizzare banner in pagine di contenuti non sicuri." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Mostra contenuto non sicuro in modalità casuale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Elenco articoli per pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Quanti articoli devono essere visualizzati per pagina in elenco." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Modalità di impaginazione Lista" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Scrolling infinito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Impaginazione Classica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Quale metodo impaginazione deve essere utilizzato." + +msgid "Listing viewer" +msgstr "Elenco visualizzatore" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Abilita questa opzione per utilizzare il visualizzatore della scheda quando fai clic su un'immagine." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Dimensioni lista Immagine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fluido" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fisso" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Entrambi i metodi utilizzano una larghezza fissa, ma il metodo fluido utilizza altezze automatici." + +msgid "Album listing images requirement" +msgstr "Requisito di immagini per elenco album" + +msgid "explore" +msgstr "Esplorare" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Imposta il numero minimo di immagini necessario per mostrare gli album in esplorazione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Numero colonne Lista" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Qui è possibile impostare il numero di colonne vengono utilizzate in base a ciascun dispositivo di destinazione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefono" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Desktop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Mettere i temi nella cartella %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Tono" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Chiaro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Scuro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Colore principale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Valore di colore esadecimale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Usare questo per impostare il colore del tema principale. Il valore deve essere in <a href=\"%s\" target=\"_blank\">formato esadecimale</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Colore pulsante della top bar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Blu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Verde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Arancio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Rosso" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Grigio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Nero" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Bianco" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Colore dei pulsanti come \"Crea account\" della top bar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Abilita logo vettoriale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Abilita logo del vettore per il logo di alta qualità in dispositivi con alta densità di pixel." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Vector logo immagine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Il logo del tuo sito web deve avere il formato SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Logo immagine raster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Versione Bitmap per il logo del vostro sito web logo. Si raccomanda formato PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Aaltezza Logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Nessun valore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Utilizzare questa opzione per impostare l'altezza per il logo, se necessario." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Immagine favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Immagine Favicon. L'immagine deve avere stessa larghezza e altezza." + +msgid "Image load max. filesize" +msgstr "max dimensione del file Immagine di upload" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Per immagini con dimensioni maggiori di questa sarà disponibile l'opzione di visualizzazione a risoluzione originale." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Pulsante di download immagini" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Attivare questa opzione se si desidera visualizzare il pulsante per scaricare l'immagine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Abilitare tasto destro del mouse sull'immagine" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Attivare questa opzione se si desidera consentire l'uso del destro del mouse sulle immagini." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Abilita mostrano dati Exif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Attivare questa opzione se si desidera visualizzare immagini dati Exif." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Abilita la condivisione sociale" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Abilitare questa opzione se si desidera visualizzare i pulsanti dei social network per condividere i contenuti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Attiva i codici embed (contenuto)" + +msgid "Everybody" +msgstr "Tutti" + +msgid "Users only" +msgstr "Solo utenti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Abilitare questa opzione se si desidera visualizzare i codici embed per il contenuto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Non sicuro checkbox contenuto in uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Abilitare questa opzione se si desidera mostrare una casella di controllo per indicare il contenuto non è sicuro di upload." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Codice CSS personalizzato" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Metti qui il tuo codice CSS personalizzato. Esso sarà posto <style> appena prima della chiusura </head> tag." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Codice JavaScript personalizzato" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Metti qui il tuo codice JS personalizzato. Esso sarà posto <script> appena prima della chiusura</head> tag." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Non usare il markup %s qui. Questo è per il semplice codice JS, non per i tag di script HTML. Se usi tag script qui interromperà il tuo sito web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Stile" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Arrivo pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Split atterraggio + immagini" + +#, php-format +msgid "Route %s" +msgstr "Itinerario %s" + +msgid "upload" +msgstr "caricare" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Selezionare homepage stile.Per personalizzare ulteriormente modificare app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Immagine di copertina" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Vuoi davvero eliminare questa immagine? Questaazione non può essere annullata." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Cancella immagine" + +msgid "Add new cover image" +msgstr "Aggiungere un'immagine nuova di copertina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Questo verrà aggiunto all'interno della homepage %s tag. Lascia vuoto per utilizzare i contenuti di default." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragrafo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Pulsante di invito all'azione colore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Colore della homepage del pulsante di invito all'azione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Invito all'azione pulsante stile contorno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Attivare questa opzione per utilizzare lo stile contorno per homepage pulsante di invito all'azione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Invito alla funzionalità azione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Grilletto uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Apri URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Invito all'azione URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Immettere un assoluta o URL relativa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Un URL relativo come% sarà mappato%l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Invito all'azione HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Questo verrà aggiunto all'interno della chiamata di tag all'azione <a>. Lascia vuoto per utilizzare i contenuti di default." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Utente IDs" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Elenco separato da virgole di ID utente di destinazione per mostrare le immagini sulla homepage. Lascialo vuoto o zero per visualizzare tutte le immagini recenti." + +msgid "Automatic updates check" +msgstr "controllare gli aggiornamenti automatici" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Quando si consente al sistema controllerà automaticamente i nuovi aggiornamenti." + +msgid "Display available updates notification" +msgstr "Mostra aggiornamenti disponibili in notifica" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Abilita questo per mostrare un avviso in alto che avvisa sui nuovi aggiornamenti di sistema disponibili." + +msgid "Dump update query" +msgstr "Dump query di aggiornamento" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Abilitare questa opzione se si desidera rilevare e impostare automaticamente la lingua giusta per ciascun utente." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URL" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Abilita questa opzione se desideri utilizzare gli URL di %s SEO." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Manutenzione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Quando è abilitato il sito mostrerà un messaggio di manutenzione. Questa impostazione non influisce sugli amministratori." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Questo codice alfanumerico è stato generato al momento dell'installazione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "segnalazione del PHP errori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Attivare questa opzione se si desidera stampare gli errori generati dal PHP <a %s> error_reporting () </a>. Questo dovrebbe essere disattivata in produzione." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "livello di debug" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "nessuno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Log di errore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Errori di stampa senza log degli errori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Errori di stampa e di registro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Per configurare il controllo del livello di debug <a %s> documentazione di debug </a>. Il livello di default è \"Protocollo errori\" (1)." + +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." +msgstr "Il routing (instradamento ) ti consente di personalizzare al volo i collegamenti di percorso predefiniti. Sono consentiti solo caratteri alfanumerici, trattini e trattini bassi. " + +msgid "Image routing" +msgstr "Immmagine routing" + +#, php-format +msgid "Routing for %s" +msgstr "Routing per %s" + +msgid "Album routing" +msgstr "Instradamento dell'album" + +msgid "Hostname" +msgstr "Nome host" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Nome host su cui verranno aggiunti i caratteri jolly del sotto dominio." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Questa impostazione può essere ignorata da %s." + +msgid "Language subdomains" +msgstr "Sotto domini di lingua" + +msgid "languages" +msgstr "le lingue" + +msgid "Enable to use %s for %t." +msgstr "Abilita per usare %s per %t." + +msgid "Username subdomains" +msgstr "Sotto domini del nome utente" + +msgid "user profiles" +msgstr "profili utente" + +msgid "Custom language strings" +msgstr "stringhe lingua personalizzata" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Lingua del sito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Lingua di base predefinita da utilizzare nel sito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Scelta della lingua automatica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Attivare questa opzione se si desidera rilevare automaticamente e impostare la lingua giusta per ogni utente." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Scelta Lingua" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Attivare questa opzione se si desidera consentire la selezione della lingua." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "lingue attivate" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Lingue che non devono essere utilizzate nel vostro sito web." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Alterna questa opzione per abilitare o disabilitare HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Alterna questa opzione per abilitare o disabilitare la memorizzazione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Quota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Attivo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Metodo di memorizzazione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "L'archiviazione locale è utilizzata per impostazione predefinita o quando non è attiva quella esterna." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Se hai bisogno di aiuto controllare la <a %s> documentazione di stoccaggio </a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Modifica di archiviazione" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Dal nome" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nome email che riceveranno gli utenti" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Dall'indirizzo email" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Indirizzo email per le comunicazioni agli utenti" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Indirizzo email per le comunicazioni in arrivo" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Destinatario del modulo di contatto e degli avvisi di sistema." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Modalità di invio Email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Come inviare e-mail? SMTP raccomandato." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMPT porta del server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP username" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP password" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP sicurezza" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Non garantito" + +msgid "Decode ID" +msgstr "Decodifica ID" + +msgid "Encode ID" +msgstr "Codifica ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Invia emai prova" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Utilizzare questo per verificare come vengono consegnate le vostre email. Si consiglia di utilizzare %s." + +msgid "Export a user" +msgstr "Esporta un utente" + +msgid "Export user" +msgstr "Esporta utente" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Ciò ti consentirà di scaricare le informazioni personali standard dell'utente in formato JSON." + +msgid "Regenerate external storage stats" +msgstr "Rigenera le statistiche di archiviazione esterna" + +msgid "Storage id" +msgstr "ID di archiviazione" + +msgid "Regenerate" +msgstr "Rigenerare" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Questo ricalcola la somma di tutti i record di immagine associati alla memoria esterna di destinazione." + +msgid "Migrate image records from one external storage to another" +msgstr "Migrare i record di immagini da una memoria esterna a un'altra" + +msgid "Source storage id" +msgstr "ID di archiviazione di origine" + +msgid "Target storage id" +msgstr "ID di archiviazione di destinazione" + +msgid "Migrate" +msgstr "Migrare" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Questo aggiorna solo il database. È necessario trasferire i file effettivi nel contenitore di archiviazione di destinazione da soli. La riscrittura dell'URL è fortemente raccomandata. Utilizzare zero (0) per l'archiviazione locale." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Hai bisogno di un <a href=\"https://developers.facebook.com/\" target=\"_blank\"> Facebook app </a> per questo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app segreta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Hai bisogno di un <a href=\"https://apps.twitter.com\" target=\"_blank\"> Twitter app </a> per questo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API chiave" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API segreta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Account twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Hai bisogno di un <a href=\"https://cloud.google.com/console\" target=\"_blank\"> Google app </a> per questo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google cliente id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google cliente segreta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Avete bisogno di un <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> per questo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK id cliente " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK cliente segreta" + +#, php-format +msgid "%s spam protection" +msgstr "%s spam protezione" + +msgid "user generated content" +msgstr "contenuto generato dall'utente" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Abilita questo per usare % per bloccare lo spam %c." + +#, php-format +msgid "%s API key" +msgstr "%s API key" + +msgid "user signup" +msgstr "iscrizione utente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Avete bisogno di un <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> per questo." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Si noti che ciascuna versione di reCAPTCHA richiede il proprio set di chiavi. Non dimenticare di aggiornare le chiavi se cambi le versioni." + +#, php-format +msgid "%s site key" +msgstr "%s chiave del sito" + +#, php-format +msgid "%s secret key" +msgstr "%s chiave segreta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA soglia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Quanti tentativi falliti sono necessarie per chiedere reCAPTCHA? Usare zero (0) per mostrare sempre reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Forza %s nella pagina dei contatti." + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Abilita questo per mostrare sempre %s nella pagina dei contatti." + +msgid "Comments API" +msgstr "Commenti API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API lavora con %s" + +msgid "Disqus shortname" +msgstr "Disqus nomecorto" + +#, php-format +msgid "%s public key" +msgstr "%s chiave pubblica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Codice di commento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook e tutto quello che vuoi. Sarà usato in visualizzazione dell'immagine per condividerla" + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "Modera automaticamente il contenuto utilizzando il servizio %s." + +msgid "Automatic approve" +msgstr "Approvazione automatica" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Abilitalo per approvare automaticamente i contenuti moderati da questo servizio." + +msgid "Block content" +msgstr "Blocca contenuto" + +msgid "Adult" +msgstr "Adulto" + +msgid "Teen and adult" +msgstr "Adolescente e adulto" + +msgid "Flag NSFW" +msgstr "Segnala NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Codice di Google Analytics" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics o tutto quello che vuoi. Sarà aggiunto al piè di pagina del tema." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Utilizzare questo tasto quando si utilizza i <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Percorso Plugin" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Abilita questo per visualizzare le istruzioni del plugin a %u. Un link a queste istruzioni verrà aggiunto al menu %s. Questa impostazione non riguarda gli amministratori." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Utilizza questo per impostare una URL personalizzato per %p. Tieni presente che devi replicare manualmente %s in questa URL." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Conformità normativa Cookie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Attivare questa opzione per visualizzare un messaggio che è conforme ai requisiti di legge Cookie UE. Nota: è necessario solo questo se il vostro sito è ospitato nella UE e se si aggiunge tracking cookie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Salva cambiamenti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Controllare gli errori per procedere." + +msgid "Play GIF" +msgstr "Riproduci GIF" + +msgid "Load 360° view" +msgstr "Carica vista a 360° " + +msgid "Load full resolution" +msgstr "Caricare con una piena risoluzione" + +#, php-format +msgid "%s image" +msgstr "%s immagine " + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "Vuoi davvero rimuovere tutto il contenuto selezionato? Questo non può essere annullato." + +msgid "This is the album cover" +msgstr "Questa è la copertina dell'album " + +msgid "Cover" +msgstr "Copertina" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Aggiunto a %a e classificati in%c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Aggiunto a %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Caricato in %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Caricati %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Meno dati Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Altro Exif dati" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Carica e condividi le tue immagini" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Trascina e rilascia le immagini ovunque sullo schermo per iniziare il caricamento. Il limite è di %s. Collegamenti immagine diretto, BBCode e HTML miniature." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Inizia il caricamento" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Iscriviti per accedere a tutte le funzionalità del sito" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Gestisci i tuoi contenuti, crea album privati​​, personalizza il tuo profilo e molto altro." + +msgid "Sign in with your account" +msgstr "Accedi con il tuo account" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Non hai un account? <a href='%s'>Iscriviti</a> ora." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Disconnesso" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Sei stato disconnesso %s.Spero di rivederti presto" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Vai alla home page" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Sito in manutenzione" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Stiamo eseguendo operazioni di manutenzione programmata nel sito. Si prega di tornare tra pochi minuti." + +msgid "This content is password protected." +msgstr "Questo contenuto è protetto da password." + +msgid "Please enter your password to continue." +msgstr "Si prega di inserire la password per continuare" + +msgid "Send" +msgstr "Invia" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Aggiungi l'upload dell'immagine al tuo sito web, blog o forum installando il nostro plug-in per il caricamento. Fornisce l'upload di immagini a qualsiasi sito web posizionando un pulsante che permetterà agli utenti di caricare direttamente immagini al nostro servizio e gestirà automaticamente i codici necessari per l'inserimento. Tutte le funzioni incluse come trascinamento, rilascio remoto, ridimensionamento delle immagini e altro ancora." + +msgid "Supported software" +msgstr "Software supportato" + +msgid "supported software" +msgstr "Software supportato" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Il plugin funziona in qualsiasi sito web con contenuti modificabili dall'utente e per %sv, metterà un pulsante di caricamento che corrisponderà alla barra degli strumenti dell'editor di destinazione in modo che non sia necessaria alcuna personalizzazione aggiuntiva." + +msgid "Add it to your website" +msgstr "Aggiungilo al tuo sito web" + +msgid "options" +msgstr "opzioni" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Copia e incolla il codice plug-in nel codice HTML del tuo sito web (preferibilmente all'interno della sezione di testa). Ci sono molti %o per adattarla meglio alle tue esigenze." + +msgid "Basic options" +msgstr "Opzioni di base" + +msgid "Color palette" +msgstr "Palette dei colori" + +msgid "Button color scheme" +msgstr "Schema colore dei pulsanti" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Incorpora i codici che verranno inseriti automaticamente nella casella di testo" + +msgid "Sibling selector" +msgstr "Selettore" + +msgid "Sibling element selector where to place the button next to" +msgstr "Selettore di elementi di sintonia in cui posizionare il pulsante accanto" + +msgid "Sibling position" +msgstr "Posizione del Selettore" + +msgid "After" +msgstr "Dopo" + +msgid "Before" +msgstr "Prima" + +msgid "Position relative to sibling element" +msgstr "Posizione relativa all'elemento del selettore" + +msgid "Advanced options" +msgstr "Opzioni avanzate" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Il plugin dispone di un vasto set di opzioni aggiuntive che consentono una completa personalizzazione. È possibile utilizzare HTML personalizzato, CSS, la propria tavolozza di colori, impostare gli osservatori e altro ancora. Controlla la %d e la fonte plugin per avere un'idea migliore di queste opzioni avanzate." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Attenzione Tu non hai i permessi per accedere a questa pagina o il link oppure è scaduto." + +msgid "Search results" +msgstr "Risultati della ricerca" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Vuoi davvero eliminare questo utente? Attenzione, questa azione non può essere annullata" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Cancella utente" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Data registrazione" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Registrazione IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Valdo" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Bannato" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "In attesa di e-mail" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "In attesa di conferma" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i a %f caratteri<br>Lettere, numeri e \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Eliminazione automatica contenuti" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Questa impostazione si applica a tutte le vostre immagini caricate per impostazione predefinita. È possibile ignorare questa impostazione su ogni upload." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Mantenere immagine <a %s> Exif </a> dati durante il caricamento" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Newsletter" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Inviami email con notizie su %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Impostazioni contenuti" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Mostra contenuto non sicuro in lista (da altri)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Lingua" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Fuso orario" + +msgid "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." +msgstr "Questo servizio è fornito da %website_name%, siamo un fornitore di servizi indipendente. Molte grazie per il vostro continuo supporto. " + +msgid "At %website_name% we are proudly using and supporting %software%." +msgstr "In %website_name% utilizziamo e supportiamo con orgoglio %software%. " + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Password attuale" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Immettere la password corrente" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nuova password" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Conferma nuova password" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Aggiungere una password per poter accedere utilizzando il tuo username o email." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "L'utente non dispone di una password. Aggiungere una utilizzando questo modulo." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Inserisci la tua password" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Conferma password" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Rimettere la password" + +msgid "Upload avatar" +msgstr "Carica avatar " + +msgid "Make my profile and identity totally private" +msgstr "Fare il mio profilo e identità totalmente privato" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Attivare questa opzione se si vuole agire come un utente anonimo" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Questo è il tuo vero nome, non il nome utente." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Bio" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Raccontaci un po 'di te" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "L'utente non ha connessioni." + +msgid "Link your account to external services to be able to login here." +msgstr "Collega il tuo account a servizi esterni per poter accedere e condividere contenuti." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Vuoi davvero scollegarti %s da questo account?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Questo account è collegato a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Vuoi davvero scollegare questo %s account?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Sarai disconnesso e non sarai in grado di accedere al tuo account utilizzando questo %s account." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Il tuo account è collegato a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "scollegare" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Collegare %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Divertiti a sfogliare e scoprire tutte le mie immagini ed i miei album condivisi!" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Bottone" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Visualizza tutte le mie immagini" + +msgid "Login" +msgstr "Accesso" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Hai già un account? %s adesso." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "inviare nuovamente attivazione dell'account" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Se ti sei già registrato forse devi richiedere a %s di attivare il tuo account." + +#, php-format +msgid "You can also %s." +msgstr "Puoi anche %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Ho più di %s anni" + +msgid "terms" +msgstr "condizioni" + +msgid "privacy policy" +msgstr "politica sulla riservatezza" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Accetto i termini %terms_link e %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Carica lo sfondo per il tuo profilo" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Cambia sfondo" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Carica nuova immagine" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "L'immagine di sfondo del profilo sarà cancellata. Questa azione non può essere annullata. Sei sicuro di voler eliminare l'immagine di sfondo del profilo?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Elimina sfondo" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Seguace" +msgstr[1] "Seguaci" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Seguire" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Non sei autorizzato ad utilizzare questo sito web." + +msgid "Plugin" +msgstr "Plugin" + +#, php-format +msgid "Page %s" +msgstr "Pagina %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Domande generali/commenti" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Reclamo DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Messaggio non valido" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Soggetto non valido" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Errore email" + +msgid "Message sent" +msgstr "Messaggio inviato" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Messaggio inviato. Sarai ricontattato il prima possibile." + +msgid "If you want to send a message fill the form below." +msgstr "Se si desidera inviare un messaggio compila il form sottostante." + +msgid "Your name" +msgstr "Il tuo nome" + +msgid "Subject" +msgstr "Soggetto" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Tutte le modifiche apportate andranno perse se si continua." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Modifiche salvate con successo." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Torna al form" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "Continua comunque" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Salvataggio" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Invio" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Conferma" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informazioni" + diff --git a/app/languages/ja.po b/app/languages/ja.po new file mode 100644 index 0000000..c5bcdd2 --- /dev/null +++ b/app/languages/ja.po @@ -0,0 +1,5424 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:14+0000\n" +"PO-Revision-Date: 2020-09-02 17:14+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "有効なメールアドレスではありません。" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "無効なユーザ名です。" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "有効なパスワードではありません。" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "無効なウェブサイトモードです。" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "送信元メールアドレス" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "ユーザに送信するメールの送信元アドレス" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "受信メールアドレス" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "システム警告、連絡先フォームからの受信者" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "ウェブサイトモード" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "いつでもWebサイトのモードを切替可能です。" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "コミュニティ" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "個人" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "インストールされているバージョンは v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "%s に接続できません。" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "最新版は v%s です" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "更新が必要です、ダウンロードをおこないます。" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "更新の必要はありません。" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "システムファイルは既に更新されています。" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "v%sのダウンロードを開始しています。" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%sのダウンロードが完了しました。抽出しています。" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "v%sの抽出を試みています。" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "抽出が完了しました。" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "更新のインストールが進行中" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "更新に失敗しました。" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "進行中の更新" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "ファイル: %s が見つかりません。" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "無効なライセンス情報です。" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "無効なライセンスキーです。" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "ファイルを保存できませんでした。" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "%s をダウンロードできません。" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "%s を抽出できません。" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "%sディレクトリを作成できません - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "%sファイルを更新できません - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "先に進むためには、フォーム内のエラーを修正してください。" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "アルバム名を入力して下さい。" + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "確認" + +msgid "The content has been approved." +msgstr "コンテンツは承認されました。" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "既に存在するアルバムを選択" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "エラーが発生しました。後ほど、再度お試し下さい。" + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "有効な画像ファイル形式を選択して下さい。" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "%s以内の画像を選択して下さい。" + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "プロフィール画像をアップロード" + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "プロフィールの背景画像をアップロード" + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "プロフィールの背景画像が削除されました。" + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "プロフィールページの背景画像の削除でエラーが発生しました。" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "パスワードが一致しません。" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "v%sの更新が利用可能です。" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "このシステムで利用可能な更新が存在します。このアップデートを自動でダウンロードしてインストールするか、%sにアクセスしてダウンロードをすることができます。" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "このアップデートのリリースノート:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "今すぐ更新する" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "または" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "キャンセル" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "このサイトは、最新の %s 版で動作しています" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "読み込み中" + +msgid "Toggle select" +msgstr "選択をトグル" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "いいね!" + +msgid "Toggle flag" +msgstr "フラグをトグル" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "編集" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "アルバム" + +msgid "Approve" +msgstr "承認" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "削除" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "閉じる" + +msgid "Previous" +msgstr "前へ" + +msgid "Next" +msgstr "次へ" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "クリップボードの画像" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "ファイルが大きすぎます。" + +msgid "Invalid or unsupported file format." +msgstr "無効か非対応のファイル形式です。" + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "いくつかのファイルが追加できませんでした。" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "画像" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%sさんのアルバム" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "画像の編集が完了しました。" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "非公開" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "アルバムの編集が完了しました。" + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "無効なURLキーです。" + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "このカテゴリURLキーは、既に使用されています。" + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "カテゴリの削除が完了しました。" + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "カテゴリ: %s を追加しました。" + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "無効な期限です。" + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IPアドレス: %s はアクセス禁止となっています。" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IPアドレス: %s はアクセス禁止となっています。" + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "このIPアドレスのアクセス禁止を解除しました。" + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "必須の項目全てに入力して下さい。" + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "ストレージ容量が不正です。有効なフォーマットかを確認して下さい。" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "ストレージ容量は現在の使用量 (%s)より小さくできません。" + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "無効なURLです。" + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "ストレージの編集が完了しました。" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "ユーザの追加が完了しました。" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "コンテンツは削除されました。" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "コンテンツは移動しました。" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "選択" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "選択を解除" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "コンテンツの編集が完了しました。" + +#, javascript-format +msgid "Import job ID %s added successfully, you can process the import now" +msgstr "インポートジョブID %s の追加に成功しました、インポートを行えます" + +msgid "Select number of threads" +msgstr "スレッドの数を選択" + +#, javascript-format +msgid "Import job ID %s is being processed now" +msgstr "インポートジョブID %s は、現在処理中です" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "インポートID %s は削除されました" + +msgid "Spam detected" +msgstr "迷惑行為を検知しました" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "アルバム" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "不正な動作を検知しました。%time%回に%content%を%limit%までアップロードできます。" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "名称未設定" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%sさんの画像" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "注:このコンテンツは非公開ですが、リンクから誰でも閲覧することができます。" + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "注:このコンテンツはパスワードで保護されています。コンテンツを共有するためには、コンテンツ用パスワードも共有してください。" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "注意:このコンテンツは非公開です。公開するためには、プライバシー設定を変更して下さい。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "非公開" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "公開" + +msgid "Me" +msgstr "自分" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "リンク" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "パスワード" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "回" + +msgid "After %n %t" +msgstr "%n以降%t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "分" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "時間" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "日" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "週" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "月" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "年" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "自動削除しない" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "重複したアップロード" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "非公開アップロード" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "いいね!" + +msgid "Recent" +msgstr "最新" + +msgid "Trending" +msgstr "流行" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "トップユーザ" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "最も最新" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "古い順" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "閲覧順" + +msgid "Popular" +msgstr "人気" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "もっともいいね!されている" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "もっと見る" + +msgid "Animated" +msgstr "アニメーション" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "検索" + +msgid "People" +msgstr "人々" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "画像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "ユーザ" + +msgid "adult" +msgstr "アダルト" + +msgid "teen" +msgstr "未成年" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "コンテンツタイプ %s は許可されていません。" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "転送先ディレクトリ %s が作成できません。" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "書込み権限で %s を開けません。" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "内部" + +msgid "Can't insert storage." +msgstr "ストレージを追加できません" + +msgid "Can't update storage details." +msgstr "ストレージの詳細を更新できません" + +#, php-format +msgid "requires %s" +msgstr "%sが必要" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "無制限" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "使用中" + +msgid "Private profile" +msgstr "非公開プロフィール" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "秒" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s前" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "少し前" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "ダッシュボード" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "適用できるアップデートがあります。%sからダウンロード後インストールしてください。" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "システム用データベースが更新されていません。 <a href=\"%s\">更新ツール</a> を起動して下さい。" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Webサイトは現在メンテナンスモードです。 通常モードへ復帰させるためには <a href=\"%s\">ダッシュボード > 設定</a>画面で行います。" + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "実機環境として運用される場合はPHPのエラーレポートを無効にするべきです。<a href='%s'>システム設定</a>からこの設定を変更してください。" + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "デフォルトのメール設定を変更していません。<a href='%s'>メール設定</a>から修正してください。" + +msgid "There is an update available for your Chevereto based website." +msgstr "あなたのCheveretoベースのサイトへ必要なアップデートがあります。" + +msgid "admin dashboard" +msgstr "管理者用ダッシュボード" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "%aから直接アップデート・ダウンロードは出来ません。%sより手動でインストールしてください。" + +#, php-format +msgid "view on %s" +msgstr "%sとして表示" + +msgid "cookie policy" +msgstr "Cookieのポリシー" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "当サイトでは、サイトをより快適にお使いいただけるように当社とサードパーティのCookieを利用しています。当サイトのご利用を続行頂いた場合、お客様は%cookie_policy_link に同意頂いたと見なします。" + +msgid "I understand" +msgstr "私は次を理解しました:" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "パスワードを忘れてしまいましたか?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "パスワードのリセット" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "アカウント認証メールを再送信する" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "メールアドレスの追加" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "メールアドレスが変更されました。" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s は、あなたはボットだと言っています。" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "ユーザ名/メールアドレスが有効ではありません。" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "ユーザのメールアドレスが登録されていません。" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "リクエストは拒否されました。" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "この機能を使用するためには、アカウント認証が必要です。" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "アカウントは既に認証されています。" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "メールが届くまで15分ほどお待ち下さい。その後、再度お試し下さい。" + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "パスワードが%sに変更されました。" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "%sに確認が必要です。" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "ようこそ、%sさん" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "このメールアドレスは既に使用されています。" + +msgid "Password required" +msgstr "パスワードが必要です。" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "共有" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "埋め込みコード" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "詳細情報" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a アルバムは %w にてホストされます。" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "統計" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "画像" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "アルバム" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "ユーザ" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "設定" + +msgid "Bulk importer" +msgstr "一括インポート" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Cheveretoのバージョン" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "更新をインストール" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "アップデートのチェック" + +msgid "Support" +msgstr "サポート" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "ヘルプが必要な方は、 %s まで。" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHPバージョン" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "サーバ" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQLバージョン" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQLサーバ情報" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD Library" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "ファイルのアップロード" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "有効" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "無効化" + +msgid "Max. upload file size" +msgstr "アップロードファイルの最大サイズ" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "最大投稿サイズ" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "最大実行時間" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d 秒" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "メモリ制限" + +msgid "Rebuild stats" +msgstr "統計を再構築" + +msgid "Connecting IP" +msgstr "接続中のIP" + +msgid "Not your IP?" +msgstr "あなたのIPアドレスではありませんか?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "リンク" + +msgid "Collaboration" +msgstr "コラボレーション" + +msgid "Documentation" +msgstr "ドキュメント" + +msgid "Changelog" +msgstr "変更履歴" + +msgid "Bug tracking" +msgstr "バグ修正過程" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "ウェブサイト" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "コンテンツ" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "ページ" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "リストページ" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "画像アップロード" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "カテゴリー" + +msgid "Consent screen" +msgstr "コンセント画面" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "フラッディング攻撃への対処" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "テーマ" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "ホームページ" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "バナー" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "システム" + +msgid "Routing" +msgstr "ルーティング" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "言語" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "外部ストレージ" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "電子メール" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "ソーシャルネットワーク" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "外部サービス" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "アクセス禁止IPアドレス" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "追加の設定" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "ツール" + +msgid "Can't delete all homepage cover images" +msgstr "すべてのホームページのヘッダ画像は削除できません。" + +msgid "Homepage cover image deleted" +msgstr "ホームページのトップ画像を削除しました。" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "ローカル" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "外部" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "すべて" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "コンテンツの検索" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "ページを追加" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "ページ ID %s を編集" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "ページは正常に追加されました。" + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "ページは削除されました。" + +msgid "homepage" +msgstr "ホームページ" + +#, php-format +msgid "Before main title (%s)" +msgstr "メインタイトル前 (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "アクション呼び出し後 (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "カバーの後 (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "リストの後 (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "ページネーションの前" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "ページネーションの後" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "コンテンツ (画像とアルバム)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "画像詳細タブ内" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "コメントの前" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "画像ページ" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "画像ビューア内上部 (画像ページ)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "画像ビューア内下部(画像ページ)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "画像ビューアの下(画像ページ)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "画像詳細メニュー上(画像ページ)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "画像詳細メニュー(画像ページ)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "フッタ部(画像ページ)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "アルバムページ" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "アルバムタイトル前(アルバムページ)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "アルバム詳細下(アルバムページ)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "ユーザープロフィールページ" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "ユーザ名の前(プロファイルページ)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "ユーザ名の後(プロファイルページ)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "もっと見る一覧ページ" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "トップ下(もっと見るページ)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "成人向けコンテンツ" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "無効なウェブサイト名" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "無効な言語" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "無効なタイムゾーン" + +#, php-format +msgid "Invalid value: %s" +msgstr "不正な値: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "無効なアップロード ストレージモード" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "無効なアップロードファイル名" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "無効なサムネイルの幅" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "サムネイルの高さが有効ではありません。" + +msgid "Invalid medium size" +msgstr "無効な中間サイズです。" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "透かしのパーセンテージ指定が不正な値です。" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "透かしの不透明度の値が不正です。" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "有効なテーマではありません。" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "無効な値" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "テーマのトーン(色調)が有効ではありません。" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "無効なメインカラーです。" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "無効なトップバーのボタンの色です。" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "テーマ中に表示される画像サイズが有効ではありません。" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "無効なユーザIDです。" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "有効な電子メールモードではありません。" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "有効なSMTPポートではありません。" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "無効なSMTPセキュリティモードです。" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "パーソナルモードのユーザIDが不正です。" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "すでに使用されているか、不正なルートです。" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "不正な非公開モードです" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "無効なウェブサイトのコンテンツの非公開モードです。" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "無効なホームページスタイルです。" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "トップページに戻るボタンの色が不正です。" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "トップページに戻る機能が適切に設定されていません。" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "タイトルが不正です。" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "ステータスが不正です。" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "タイプが不正です。" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "可視性が不正です。" + +msgid "Invalid internal type" +msgstr "不正なタイプです。" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "ターゲットの属性が不正です。" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "refの属性が不正です。" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "アイコンが不正です。" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "URLキーが不正です。" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "ファイルパスが不正です。" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "リンクURLが不正です。" + +msgid "Invalid user minimum age" +msgstr "無効なユーザーの最低年齢です。" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "使用できるのは、英数字、ハイフン、アンダースコアのみです。" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "無効なURLです。" + +msgid "Routes can't be the same" +msgstr "ルートは同じではありません。" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "有効な画像アップロードパスではありません。" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "不正なURLです。" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "最大%s許可されています。" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "既にあるフォルダ (%f) と %m は紐付けできません。" + +msgid "Can't map %m to an existing route (%r)" +msgstr "既にあるルート (%r) と %m は紐付けできません。" + +msgid "Can't map %m to %r (username collision)" +msgstr "マップを作成できません。 %m%r (ユーザ名の不一致により)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "有効なSMTPサーバーではありません。" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "有効なSMTPユーザ名ではありません。" + +msgid "Invalid key" +msgstr "無効なキー" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "このURLキーは、すでに他のページで使用されています (ID %s)。" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "このファイルパスは、 すでに他のページで使用されています (ID %s)。" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "ページコンテンツを保存出来ません。: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "フォロー中" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "詳細" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "画像ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "アップロード元のIP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "アクセス禁止IPアドレスに追加" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IPアドレスは既にアクセス禁止となっています。" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "アップロード日時" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "アルバム「%a」に存在する「%i」" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "カテゴリ:%cに存在する画像:%i" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "%wでホストされている画像:%i" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "ダイレクトリンク" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "画像へのリンク" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "画像URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "サムネイルURL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "中間サイズURL" + +msgid "Full image" +msgstr "フルサイズ" + +msgid "Full image (linked)" +msgstr "フルサイズ(リンクされている)" + +msgid "Medium image (linked)" +msgstr "中間サイズ(リンクされている)" + +msgid "Thumbnail image (linked)" +msgstr "サムネイル(リンクされている)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "ログインが必要です。" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "このIPアドレスは既にアクセス禁止になっています。" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "値が設定されていません。" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "無効な権限です。" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "ユーザ名は既に使用されています。" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "%sを削除する前に、パスワードを追加するか他のソーシャルアカウントを接続してください。" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "%sを削除する前に、メールアドレスを追加するか他のソーシャルアカウントを接続してください。" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%sの接続は閉じられました。" + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "%s @ %t からのテストメール" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "これはテストです。" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "%sへテストメールを送信しました。" + +#, php-format +msgid "Downloading %s data" +msgstr "%sのデータをダウンロード中" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "ユーザー\"%s\"さんをフォローしました。" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "ユーザー\"%s\"さんのフォローを解除しました。" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "いいね!" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "ざんねん" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%uさんがあなたの%t%cをいいねしました。" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%uさんがあなたをフォローしました。" + +msgid "A private user" +msgstr "プライベートユーザ" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "ユーザ名/電子メールアドレスとパスワードの組合せが間違っています。" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "サインイン" + +msgid "Moderate" +msgstr "判定" + +msgid "Upload images" +msgstr "画像をアップロード" + +msgid "Upload plugin" +msgstr "プラグインをアップロード" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "%sの検索結果" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "%sのアルバムの検索結果" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "%sのユーザーの検索結果" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "アカウント" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "プロフィール" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "関連づけされているアカウント" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "無効な画像の有効期限: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "この電子メールアドレスは認証され、%s宛に説明書を添付したメールを送信しました。" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "有効な名前ではありません。" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "有効なWebサイトではありません。" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "パスワードが間違っています。" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "新しいパスワードを使用して下さい。" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "変更が保存されました。" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "パスワードが変更されました。" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "パスワードの作成が完了しました。" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "ユーザ名/電子メールアドレスが有効な値ではありません。" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "%sの設定" + +msgid "You must agree to the terms and privacy policy" +msgstr "利用規約とプライバシーポリシーに同意頂く必要があります" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "このサイトを利用するには、あなたが%s歳以上である必要があります。" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "アカウント作成" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "アップロード" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%sさんの画像" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "結果:" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%sさんにいいね!されました。" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "[いいね]された" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "フォロワー" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%w上にある%n (%u)さんのアルバム" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%w上にある%n (%u)さんのアルバム" + +msgid "Discovery" +msgstr "発見" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "高度な検索" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "ランダム" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "通知 (%s)" + +msgid "Lights" +msgstr "明るい" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "通知" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "まだ通知はありません。" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "マイ プロフィール" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "サインアウト" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "%wに、あなたのアカウント<a href=\"%u\">%n</a>のメールアドレスの変更要求を受け付けました。" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "処理を完了するために<a href=\"%s\">メール内にある認証リンク</a>をクリックして下さい。" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "リンクをクリックできない場合は、ブラウザのアドレス欄に <a href=\"%s\">%s</a>を貼り付けてアクセスできます。" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "このメッセージに心当たりがない場合には、無視して下さい。" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "このリクエストは、IP:%sより行われました。" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "%wに、アカウント%nを登録するようにリクエストを受け付けました。" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "登録処理を完了するために<a href=\"%s\">アカウントの認証</a>をクリックして下さい。" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "アカウント:<a href=\"%u\">%n</a>のパスワードをリセットのリクエストを受け付けました。" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "パスワードをリセットするには<a href=\"%s\">こちらのリンク</a>をクリックして下さい。" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "こんにちは、 %nさん。%wへようこそ" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "画像のアップロードをしたり、アルバムの作成を行ったり、非公開コンテンツの設定を行うなどの、沢山の機能を使用するためのアカウント登録が完了しました。" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "こちらが、あなただけのプロフィールページです。: <a href=\"%u\">%n</a>. あなた専用にカスタマイズしましょう!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "ご参加いただき、ありがとうございます。" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "このメールは%w %uより送信されました。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "アップロードするために、ここへ画像をドラッグするか貼り付けでください。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "アップロードする画像を選択" + +msgid "browse from your computer" +msgstr "コンピュータから参照" + +msgid "add image URLs" +msgstr "画像のURLを追加" + +msgid "You can also %i or %u." +msgstr "%iまたは%uすることもできます。" + +msgid "browse from your device" +msgstr "デバイスを見る" + +msgid "take a picture" +msgstr "写真を撮影" + +msgid "You can also %i, %c or %u." +msgstr "%i, %c または、 %uから" + +msgid "Edit or resize any image by clicking the image preview" +msgstr "画像のプレビューをクリックして編集または画像をリサイズ" + +msgid "Edit any image by touching the image preview" +msgstr "プレビューをタッチして編集" + +msgid "your computer" +msgstr "あなたのコンピュータ" + +msgid "You can add more images from %i or %u." +msgstr "%u、または、%iから画像を追加することができます。" + +msgid "your device" +msgstr "あなたのデバイス" + +msgid "You can add more images from %i, %c or %u." +msgstr "%i、%c または %uから画像を追加することができます。" + +msgid "Uploading %q %o" +msgstr "アップロード中 %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "完了" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "キューのアップロードが進行中です。完了まで数秒ほどかかります。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "アップロード完了" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "アップロードが完了したコンテンツは%sに追加されました。" + +msgid "You can %c with the content just uploaded or %m." +msgstr "アップロードされたコンテンツまたは%mに対して%cが可能です。" + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "アップロードされたコンテンツに対して%cが可能です。" + +msgid "create a new album" +msgstr "新規アルバムを作成" + +msgid "move it to an existing album" +msgstr "既に存在するアルバムに移動" + +msgid "You must %s or %l to save this content into your account." +msgstr "このコンテンツをアカウントに保存するには、%s または %l である必要があります。" + +msgid "create an account" +msgstr "アカウントを作成" + +msgid "sign in" +msgstr "サインイン" + +#, php-format +msgid "No %s have been uploaded" +msgstr "アップロードされた%sはありません。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "エラーが発生しました、システムはリクエストを処理出来ません。" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "カテゴリ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "カテゴリ選択" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "ファミリーセーフティに触れるものをアップロードする場合には、チェックボックスをONにして下さい。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "ファミリーセーフティではない" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "アップロード中" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "残りも全てキャンセルする" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "注意:一部の画像がアップロード出来ませんでした。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "もっと詳しく" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "詳しくは<a data-modal=\"simple\" data-target=\"failed-upload-result\">エラーレポート</a>をご覧下さい。" + +#, php-format +msgid "Register to get %s" +msgstr "%s を入手するには登録が必要です" + +msgid "reset" +msgstr "リセット" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "閉じる" + +msgid "Note" +msgstr "ノート" + +msgid "We must approve the uploaded content before being able to share." +msgstr "アップロードされた内容が承認されてから、共有できるようにしなければなりません。" + +msgid "copy" +msgstr "コピー" + +msgid "insert" +msgstr "挿入" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "削除" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "タイトル" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "任意" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "画像のリサイズ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "幅" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "高さ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "注意:アニメーションGIFはリサイズできません。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "画像を自動削除する" + +msgid "Sign up" +msgstr "会員登録" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s で画像の自動削除、またはカスタマイズを可能にできます。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "ファミリーセーフティに触れるコンテンツの場合は、チェックボックスをONにして下さい。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "ファミリーセーフティに接触するコンテンツとしてマーク" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "説明" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "この画像の簡単な説明" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "画像URLの追加" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "ここへ画像URLを追加" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "アルバムの作成" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "アップロードされたコンテンツは最も新しいアルバムに移動されます。" + +msgid "existing album" +msgstr "既に存在するアルバム" + +msgid "You can also move the content to an %a." +msgstr "コンテンツを %a に移動することも可能です。" + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "このアルバムを後で編集するには、%s または %l である必要があります。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "アルバムへ移動" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "アップロードされたコンテンツを移動するお持ちのアルバムを選択して下さい。 または、 <a class=\"modal-switch\" data-switch=\"move-new-album\">アルバムの新規作成</a>を行い、移動することもできます。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "エラーレポート" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "閲覧用リンク" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTMLコード" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTMLイメージ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTMLフルリンク" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "中間サイズへのHTMLリンク" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "サムネイルへのHTMLリンク" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBコード" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCodeフル" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCodeフルリンク" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBコード(中間サイズへのリンク)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBコード(サムネイルへのリンク)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "全マークダウン" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "[いいね]された全マークダウン" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "中いいねされたマークダウン" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "いいねされたサブネイルをマークダウン" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "全ての語句" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "重要な語句を入力します。" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "これと一致する語句" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "引用する語句を正確に入力" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "これらの語句を含まない" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "検索結果に含みたくない語句の前にマイナス(-)をつけて下さい。: -ねずみ目 -\"ジャック・ラッセル・テリア\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "ストレージ" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IPアドレス" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "アルバム名" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "既に存在するアルバムへ移動" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "アルバムの説明" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "このアルバムの簡単な説明" + +msgid "Album privacy" +msgstr "アルバムの公開モード" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "このコンテンツを見ることのできるユーザ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "非公開 (自分のみ閲覧可)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "非公開 (リンクを知っている人全員)" + +msgid "Private (password protected)" +msgstr "非公開(パスワードが必要)" + +msgid "Album password" +msgstr "アルバムパスワード" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "名前" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "カテゴリ名" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URLキー" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "カテゴリURLキー" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "英文字、数字とハイフンのみです。" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "このカテゴリの簡単な説明" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "画像のタイトルを入力" + +msgid "Mark this if the image is not safe for work" +msgstr "画像が安全に作業できない場合には、マークを付けてください。" + +msgid "Flag not safe" +msgstr "安全ではない印" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "パス" + +msgid "Local path (absolute)" +msgstr "ローカルパス (絶対パス)" + +msgid "Directory structure" +msgstr "ディレクトリ構造" + +msgid "Parse top level folders as users (username)" +msgstr "トップレベルフォルダーをユーザー名にする" + +msgid "Parse top level folders as albums" +msgstr "トップレベルフォルダーをアルバムにする" + +msgid "Don't parse folders" +msgstr "フォルダーを構成しない" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "トップレベルフォルダーをユーザー名として構成すると、セカンドレベルフォルダーはユーザーのアルバムとして構成されます。トップレベルフォルダーをアルバムとして構成すると" + +msgid "Threads" +msgstr "スレッド" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "これは、インポート処理をどの程度集中的かつ高速に行われるかを設定できます。共有サーバーでは、%s スレッド以上利用しないでください。" + +msgid "You can use wildcard * characters." +msgstr "ワイルドカード * 文字 をご利用いただけます。" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "期限" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "例" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "このIPアドレスはいつまでアクセス禁止にしますか?期限なしの場合は空欄にしてください。" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "本文" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "テキストメッセージ、HTMLまたはリダイレクト先のURL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "既に存在するアルバム" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "新しいアルバムを作成" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "ストレージ名" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "リージョン" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "ストレージ地域" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "ストレージのバケット" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "キー" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "ストレージキー" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "秘密鍵" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "ストレージ秘密鍵" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "プライベートキー" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "グーグルクラウド用JOSNキー" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "<a %s>サービスアカウント</a>が必要です。" + +msgid "Service name" +msgstr "サービス名" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identity URL(ユーザが保有するURL)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identity API エンドポイント" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "OpenStack用identityのAPIエンドポイント" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "ユーザ名" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "コンテナ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "ストレージコンテナ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "テナントID" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "テナントID(アカウントID)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "テナント名" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "テナント名(アカウント名)" + +msgid "Storage endpoint" +msgstr "ストレージのエンドポイント" + +msgid "Server address" +msgstr "サーバーのアドレス" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "外部ストレージサーバーのホスト名、または、IPアドレス" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "サーバーのパス" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "絶対パスは、%p ログインで保管されます。ルートパスにする場合は、%s を利用してください。" + +msgid "Server login" +msgstr "サーバーログイン" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "サーバーのパスワード" + +msgid "Local path" +msgstr "ローカルパス" + +msgid "Local path where the files will be stored" +msgstr "ファイルを保管する場所となるローカルパスです" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "ストレージ容量" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "例: 20 GB, 1 TB, など" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "この外部ストレージは容量に達したときに無効になります。容量無制限の場合は、ゼロ、または、空欄にして下さい。" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "ストレージURL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "システムはこのURLとこのストレージの画像をリンクさせます。" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "もっと見る" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "さらに表示" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "全て選択" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "選択を解除" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "選択" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "アクション" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "埋め込みコードの取得" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "カテゴリを適用" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "ファミリーセーフティを満たすとしてマーク" + +msgid "Create new album" +msgstr "新規アルバムを作成" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "別のアカウントでサインイン" + +msgid "Continue with %label%" +msgstr "%label%で続ける" + +msgid "Home" +msgstr "ホーム" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "表示するものはありません。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "すべての画像は最新のアルバムへ移動されます。 <a class=\"modal-switch\" data-switch=\"move-existing-album\">既に存在する他のアルバム</a>へ移動することもできます。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "画像の移動先となる既に存在するアルバムを選択して下さい。<a class=\"modal-switch\" data-switch=\"move-new-album\">新しいアルバムの作成</a>を行い、移動することもできます。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "アルバム内のコンテンツを移動する他のアルバムを選択してください。 または、 <a class=\"modal-switch\" data-switch=\"move-new-album\">アルバムの新規作成</a>を行い、移動することもできます。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "画像を移動する既に存在するアルバムを選択して下さい。<a class=\"modal-switch\" data-switch=\"move-new-album\">新しいアルバムの作成</a>を行い、移動することもできます。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "選択された全ての画像は、このカテゴリが適用されます。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "カテゴリがありません。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "コンテンツがファミリーセーフティを満たすと確認" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "このコンテンツが本当にファミリーセーフティを満たすとマークしますか?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "コンテンツがファミリーセーフティに接触すると確認" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "このコンテンツが本当にファミリーセーフティに接触するとマークしますか?" + +msgid "Confirm approval" +msgstr "承認を確認" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "削除の確認" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "このコンテンツを本当に削除しますか?一度削除すると元には戻せません。" + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。" + +msgid "Fullscreen" +msgstr "全画面" + +msgid "Exit fullscreen" +msgstr "全画面を終了" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "ゲスト" + +msgid "Keyboard shortcuts" +msgstr "キーボードショートカット" + +msgid "Private album" +msgstr "個人用アルバム" + +msgid "Password protected" +msgstr "パスワードで保護" + +msgid "Uploaded by guest" +msgstr "ゲストからのアップロード" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "%sより" + +msgid "Uploaded by private" +msgstr "プライベートモードでアップロード" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "%u により" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "ファミリーセーフ ON/OFF" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "ページが存在しません。" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "要求されたページは見つかりません。" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "他のものを検索" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "そのユーザは削除されています。" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "アカウントの設定が完了するまで、あと少しです。" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "%s宛にアカウント認証のためのメールを送信しました。 アカウント認証のためのリンクは48時間以内有効です。届いていない場合には迷惑メールフォルダをチェックして下さい。" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "認証メールを再送信" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "あなたのアカウントのメールアドレスを%sに変更しました。" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "プロフィールへ" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "アカウントを有効化するための詳細と確認用リンクをメールで送信しました。" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "メールアドレス" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "送信" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "パスワードのリセット方法を登録されているメールアドレス宛に送信しました。もし届いていない場合には、迷惑メールフォルダをチェックして下さい。" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "パスワードのリセットの手順をメールで送信しました。届いていない場合には、迷惑メールフォルダをチェックして下さい。" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "手順を再送信" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "続行するにはユーザー名またはパスワードを入力してください。迷惑メールフォルダーの確認と、%s をホワイトリストに追加するのも合わせてご確認ください。" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "ユーザ名 又は 電子メールアドレス" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "パスワードの変更が完了しました。新しいパスワードでログインして下さい。" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "今すぐログイン" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "新しいパスワードを入力して下さい。" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "最低%d文字" + +msgid "Password strength" +msgstr "パスワードの強さ" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "新しいパスワードを再度入力して下さい。" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "有効なアカウント %s  宛にE-mailを送信しました。届いていない場合には迷惑フォルダを確認してください。" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "このコンテンツは非公開です。" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "本当にこのアルバムとアルバムにある全ての画像を削除しますか?削除すると元には戻せません。" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "いいね!しました" + +msgid "Upload to album" +msgstr "アルバムにアップロード" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "アルバムへのリンク" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "続行する前に次の利用規約をお読みになり同意いただく必要があります:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "このサイトには、性的な情報、リンク、画像があります。あなたが %s歳以下の場合、あなたの国で、この先にある情報を見ることは法律に違反します。\n\nこれ先に進むことは許されません。\n\n私は、%s歳以上で、性的な情報に触れたり・見ることが出来る権利をもった、法的に成人と見なされると思います。私は、自分の意思で、この先に進みます。\n\n私は、相手を不快にさせたり侮辱したりしない常識のある成人です。性的な情報・画像などを、見たり、読んだり、ダウンロードすることが、私の国の法律や市町村の条例には違反しません。\n\n性的なものを見ることは個人的な目的であり、そのような情報から保護されている未成年ではありません。\n\nこのサイトにある情報を、見たり、読んだり、ダウンロードしたことによる如何なる影響、開示されている情報に間違いがあった場合でも、全て個人の責任として受け入れます。私が、このサイトをしようしたことによる如何なる損害・損失もサイト提供者・アフィリエイターが負わないことろ理解しています。\n\nこの同意画面は、このウェブサイトおよびあなたと/またはあなたが法的または慣習上の利害関係を持っている全てのものとの間に交わされる法的な合意です。本契約のいずれかの部分が管轄裁判所によって執行不能と見なされた場合においても、契約書の他の部分の執行性に影響を与えないものとします。" + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "”同意します”をクリックした時点で、あなたは上記の利用規約を読み、ご理解いただいたと見なします。" + +msgid "I Agree" +msgstr "同意します" + +msgid "documentation" +msgstr "ドキュメント" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "%sについての詳細は、 %dから。" + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "接続 IP は、サーバ変数 %var% を使用して決定されます。検出されたIPがあなたのものと一致しない場合、それはあなたのウェブサーバがプロキシの下にあることを意味し、実際の接続IPを設定するためにサーバを調整する必要があります。" + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Nginxでは %nginx% 、Apacheでは %apache%を使用します。" + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "システムは基本的な機能を提供し、スパム、フラッディング、ブルートフォース攻撃から保護するために、正確な IP 検出に依存しているため、この問題に対処することを確認してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "ディスク使用量" + +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." +msgstr "インポートしたいコンテンツをシステムパスを指し示すことで、Webサイトにコンテンツを大量に追加することができるツールです。フォルダベースの構造を利用したユーザー、アルバム、画像の追加に対応しています。" + +msgid "Automatic importing" +msgstr "自動インポート" + +msgid "The system automatically parses any content by a continuous observation of the %path% path." +msgstr "システムは、 パス %path% を継続的に観測することで自動的にコンテンツの解析を行います。" + +msgid "Completed jobs will be automatically re-started after %n %m." +msgstr "完了したジョブは、%n %m 後に自動的に開始します。" + +msgid "Reset to clear stats and logs." +msgstr "統計とログをクリアします" + +msgid "Queued" +msgstr "キューに追加済み" + +msgid "Working" +msgstr "お待ちください。" + +msgid "Paused" +msgstr "一時停止中" + +msgid "Canceled" +msgstr "キャンセルされました。" + +msgid "Completed" +msgstr "完了しました。" + +msgid "Actions" +msgstr "アクション" + +msgid "Reset" +msgstr "リセット" + +msgid "Pause" +msgstr "一時停止" + +msgid "Resume" +msgstr "再開する" + +msgid "Process log" +msgstr "プロセスログ" + +msgid "Errors" +msgstr "エラー" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "ステータス" + +msgid "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." +msgstr "スケジュール化されたコマンドでインポート処理を継続的に行います。これにはcrontabのエントリが必要です。" + +msgid "You can run the command in parallel by changing the integer value of %s%." +msgstr "%s% の値でコマンドを並列実行することができます。" + +msgid "All file-system permissions must be granted for the crontab user at %path%" +msgstr "crontabユーザーへ %path% へのファイルシステムにアクセスする権利を付与してください。" + +msgid "Add import job" +msgstr "インポートジョブに追加" + +msgid "Process import" +msgstr "インポート処理" + +#, php-format +msgid "Top level folders as %s" +msgstr "トップ階層 %s" + +msgid "Process" +msgstr "処理" + +msgid "Cancel" +msgstr "キャンセル" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "インポートID: %s を削除してもよろしいですか?" + +msgid "Manual importing" +msgstr "手動インポート" + +msgid "The system will parse the contents of any available filesystem path." +msgstr "システムは、利用可能なファイルシステムのパスの内容を解析します。" + +msgid "These processes must be manually created and handled with the web browser tab open." +msgstr "これらのプロセスは、手動で作成し、ウェブブラウザのタブを開いた状態で処理する必要があります。" + +msgid "Parser" +msgstr "パーサー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "ユーザの追加" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "権限" + +msgid "Manager" +msgstr "マネージャー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "管理者" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "メールアドレス" + +msgid "This setting is always diabled when using personal website mode." +msgstr "この設定は個人Webサイトモードを利用している時は常に無効です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "カテゴリの追加" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "アクセス禁止IPアドレスの追加" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "ストレージの追加" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "ページに戻る" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "ウェブサイト名" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "ウェブサイトのタイトル (ページタイトル)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "ウェブサイトの詳細" + +msgid "Powered by" +msgstr "提供元" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "コンテンツをSNSで共有するためにSNSボタンを表示するためにONにします。" + +msgid "Automatic" +msgstr "自動的" + +msgid "Forced" +msgstr "強制的" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a は、サーバー側でHTTPSの検出をするために利用されます (推奨)。%f は、サーバーの設定がされていない場合に利用されます。 HTTPSを絶対に使用しない場合は、%d にしてください。" + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "お使いのサーバーがHTTPSのサポート設定が完了するまで、有効なHTTPSにはならず、URLで指定されたプロトコルで通信します。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "既定のタイムゾーン" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "地域の選択" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "検索クエリによる画像、アルバムやユーザーの検索を許可する" + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "公開状態のアップロードされている画像の閲覧を有効にする。同時にカテゴリーも有効になります。" + +msgid "guests" +msgstr "ゲスト" + +msgid "Enables explore for guests." +msgstr "ゲストに「もっと見る」機能を有効にします。" + +msgid "Enables to browse images randomly." +msgstr "ランダムな画像の閲覧を有効にする" + +msgid "Likes" +msgstr "いいね" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "ユーザーによるコンテンツへの”いいね”と”もっともいいねされている”リストを許可する" + +msgid "Followers allows users to follow each other." +msgstr "フォロワーはユーザーと互いにフォローすることを許可する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "パーソナルモードが可能なユーザ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ユーザID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "あなたのユーザID: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "パーソナルモードが可能なユーザのID(数字)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "パーソナルモード ルーティング" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "カスタムルートを /username から /somethingのようにマップします。ホームページへのマップは、\"/\"を使います。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Webサイト プライバシーモード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "非公開モードは、登録されたユーザのみ閲覧することが出来るようになります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "コンテンツ非公開モード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "既定" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "強制的に非公開 (自分のみ)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "強制的に非公開(リンクを知っている人全員)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "ユーザの選択した非公開モードを強制的に継承する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "ページタイトル" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "ページステータス" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "アクティブページ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "非アクティブページ (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "アクティブページのみがアクセス可能です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "タイプ" + +msgid "Terms of service" +msgstr "利用規約" + +msgid "Privacy" +msgstr "非公開" + +msgid "Contact" +msgstr "コンテンツ" + +msgid "Extra page" +msgstr "追加ページ" + +msgid "Internal page type" +msgstr "内部ページタイプ" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "別なタイプとしてのみ複数の追加ページを作成できます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "ページ可視性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "表示可能なページ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "隠しページ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "隠しページはシステムメニューに表示されません、しかしリンクからは誰でもアクセスすることができます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "半角英数字、ハイフンとスラッシュのみ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "ファイルパス" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "ファイル %f は %s に関連付けされています" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "メタキーワード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "メタディスクリプション" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "ソースコード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "%s このパスに追加する書込権限がありません。外部エディタを使用してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "%s このパスには編集する書込権限がありません。外部エディタを使用してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "抽出元: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "リンクURL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "リンクターゲット属性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "ページを開くか、リンクを別なウィンドウで開くか %s を選択してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "リンクのRel属性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "半角英数字、ハイフン、半角スペースのみ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s 属性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "リンクアイコン" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "サポートされたアイコンリストを使用するために、 <a %s>アイコン参照</a>をチェックしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "並び順を表示" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "ページの並び順をメニューやリスティングに表示するために、プライオリティに1を使用してください。" + +msgid "pages" +msgstr "ページ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "ページID %s を本当に削除しますか?削除すると元に戻せません。" + +msgid "Enabled image formats" +msgstr "画像フォーマット可" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "未確認の画像フォーマットでは、アップロードが行えません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "アップロード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "画像のアップロードを許可する場合には有効にしてください。この設定は管理者へ影響しません。" + +msgid "Upload user interface" +msgstr "アップロード用ユーザインターフェース" + +msgid "On-page container" +msgstr "ページ上のコンテナー" + +msgid "route" +msgstr "ルート" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "ゲストとしてアップロード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "未登録ユーザのアップロードを許可するときに有効にしてください。" + +msgid "Moderate uploads" +msgstr "アップロードを判定" + +msgid "Guests" +msgstr "ゲスト" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "これを有効にすると、アップロードを判定することができます。対象となるコンテンツは、承認のための判定が必要になります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "埋込みコード(アップロードしたユーザへのリンク)を有効にします。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "アップロードが完了したときに、画像への埋込みコードを表示する場合に有効にします。" + +msgid "Upload threads" +msgstr "アップロードスレッド数" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "同時アップロードのスレッド数(平行して動じにアップロード)" + +msgid "Redirect on single upload" +msgstr "ファイル毎のアップロードへリダイレクト" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "ファイル毎にアップロードするページへのリダイレクトを有効にする" + +msgid "Enable duplicate uploads" +msgstr "重複するアップロードを有効にする" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "24時間以内に同一IPアドレスからの重複アップロードを許可(管理者には適用されません。)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "期限付きアップロードを有効にする" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "画像の自動削除を付加したアップロードを有効にするにはこの設定を有効にしてください。" + +msgid "Auto delete guest uploads" +msgstr "ゲストアップロードの自動削除" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "ゲストアップロードは一定期間後に自動で削除するようにするにはこれを有効にしてください。" + +msgid "Maximum image size" +msgstr "最大画像サイズ" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "このサイズより大きなサイズは自動的にサイズを縮小されます。無制限サイズを選択される場合には「ゼロ」を指定してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "画像のExifデータ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "保持する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "アップロードした画像の<a %s>Exifデータ</a>に関してのデフォルト設定を選択してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "画像のExifデータ(ユーザー設定)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "画像のExifデータをユーザー毎に設定を許可する場合はこの設定を有効にしてください。" + +msgid "Maximum upload file size" +msgstr "最大アップロードファイルサイズ" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "サーバーが許可している最大サイズは、%sです。この制限は、%u、%p(%f)によって行われたものです。" + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "\"%s\"と同じですが、ゲストです。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "イメージパス" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "サイトルートからの相対パス" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "画像をどこへ保存しますか?ウェブサイトのルートからの相対パス" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "ストレージモード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "日付フォルダ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "ダイレクト" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "日付形式を%s形式で作成" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "ファイル名の命名規則" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "オリジナル" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "オリジナルとランダムの混合" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "「ランダム」が一意なファイル名を作成する間は、元ファイル名が保持されます。「ID」は、画像にIDを振るのみです。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "サムネイルのサイズ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "サムネイルは、このサイズに変更されます。" + +msgid "Medium image fixed dimension" +msgstr "中間サイズのリサイズ値" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "中間サイズの画像はこの値にリサイズされます。たとえばもし”幅”を選択した場合、幅はその値でリサイズされ、画像の高さは自動的に計算されてリサイズされます。" + +msgid "Medium image fixed size" +msgstr "中間サイズのリサイズ" + +msgid "Width or height will be automatically calculated." +msgstr "幅または高さは自動的に計算されます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "透かし" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "有効にすると、ロゴやアップロードされる全ての画像に透かしが入ります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "警告: %s へ書き込みできません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "透かし使用 ON/OFF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "ゲストユーザのアップロードに透かしを入れる" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "ユーザのアップロードに透かしを入れる" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "管理者のアップロードに透かしを入れる" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "透かしファイルのON/OFF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "GIF画像のアップロードに透かしを入れる" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "透かし適用に画像サイズの最低値を指定する。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "画像が指定のサイズより小さい場合には透かしが入りません。画像サイズの最低値を指定しない場合には、ゼロ(0)を指定してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "透かし" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "ドロップシャドウ付きの装飾なしのロゴが、最適です。出来る限り推奨サイズに近い、大きなファイルサイズを使ってください(最大16KBを推奨)。また、PNGのみです。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "透かしの位置" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "左上部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "左中央" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "左下部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "中央上部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "中央" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "中央下部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "右上部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "右中央" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "右下部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "透かしは相対位置です。最初が水平、次が垂直となります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "透かしのパーセンテージ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "透かしのパーセンテージは、ターゲットイメージエリアとの相対値になります。1~100の間で指定してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "透かしの余白" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "画像の最下部から透かしまでの余白を入力してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "透かしの透明度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "最終の透かし画像の透明度。値は0から100で入力してください。" + +msgid "Dashboard > Settings > Website" +msgstr "ダッシュボード>設定>Webサイト" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "カテゴリーは”探索”機能が無効になっている状態だと動作しません。この設定を戻すには%sに移動してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "カテゴリ: %s を本当に削除しますか?削除すると元に戻せません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "注意:カテゴリ名を削除してもカテゴリに属する画像は削除されません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "カテゴリの編集" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "期限" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "本当にIPアドレス: %s のアクセス禁止を解除しますか? 解除すると戻せません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "アクセス禁止にされたIPアドレスは、このウェブサイトへアクセスできなくなります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "アクセス禁止IPアドレスの編集" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "新規アカウントの登録を有効にする" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "ゲストに新規アカウントの登録を許可する場合に有効にしてください。" + +msgid "Enable user content delete" +msgstr "ユーザーのコンテンツの消去を許可" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "ユーザーに自分のコンテンツの削除を許可する。この設定は管理者には影響しません。" + +msgid "Minimum age required" +msgstr "最低年齢の要求" + +msgid "Empty" +msgstr "空白" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "空白の状態だとこのサイトを利用するのに必要な年齢の要求を行いません。" + +msgid "Notify on user signup" +msgstr "ユーザーの会員登録時に通知する" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "ユーザーが会員登録する際にメールで通知が欲しい場合は有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "ユーザのURL形式の選択" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "URLを %s/user/username の替わりに %s/username を使いたい場合に有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "メールアドレスの確認が必要" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "アカウント作成時にメールアドレスの確認を必須とする場合に有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "ソーシャルネットワーク経由でのログインを使用するためにはメールアドレスが必要" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "ユーザがソーシャルネットワーク経由でのログインを使用するために、メールアドレスの登録を必須とする場合に有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "ユーザーアバターの最大ファイルサイズ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "ユーザーアバター画像の最大サイズ. (最大 %s に制限されます。)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "ユーザー背景画像の最大ファイルサイズ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "ユーザ背景画像の最大サイズ(最大 %s に制限されます。)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Webサイトにアクセスする前にコンセント画面を表示します。成人向けコンテンツを含むサイトを運用する場合に便利です。" + +msgid "Enable consent screen" +msgstr "コンセント画面を有効にする" + +msgid "Consent screen cover image" +msgstr "コンセント画面のカバー画像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "既定の時間内に許可されたアップロード数を超えた場合に、IPアドレスで画像のアップロードをブロックします。どれくらいの投稿数でブロックを行うかを設定します。この設定は管理者には影響しません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "電子メールで知らせる" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "有効にされている場合、フラッディング攻撃があった場合メールで通知します。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "1分間の許容量" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "1時間の許容量" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "1日の許容量" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "1週間の許容量" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "1ヶ月の許容量" + +#, php-format +msgid "Lock %s editing" +msgstr "%s の編集をロック " + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "これを有効にすると、ユーザーがNSFWフラグを変更できなくなります。有効にすると、管理者と管理者のみがこの権限を持つことになります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "リスト中にファミリーセーフティに接触するコンテンツが含まれている場合でも表示する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "リスト内に不適切なコンテンツを表示したい場合に有効にしてください。なお、この設定は管理者と自分自身で設定を行っている場合には適用されません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "リスト内のNSFW(不適切なコンテンツ)をボカす。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "リスト内のNSFW(不適切なコンテンツ)をボカす場合、ONにする。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "バナー中にファミリーセーフティに接触するコンテンツがある場合でも表示する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "有効を選択すると、バナー中にファミリーセーフティに接触するなコンテンツが含まれていた場合にも表示します。この設定は管理者には影響しません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "ランダム表示でのコンテンツにファミリーセーフティに接触するものが含まれている場合でも表示する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "1ページへの表示アイテム数" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "1ページに表示するアイテム数をいくつにしますか?" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "ページネーション方法の選択" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "無限スクロール" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "通常のページネーション" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "どのようなページネーションを使用しますか?" + +msgid "Listing viewer" +msgstr "リスト型ビューワー" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "画像をクリックした際にリスト型のビューワーを使う場合は有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "表示される画像のサイズ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "フレキシブル" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "固定" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "どちらも固定の幅になりますが、フレキシブルを選択すると高さは自動となります。" + +msgid "Album listing images requirement" +msgstr "アルバムをリスト化する際に必要な画像の枚数" + +msgid "explore" +msgstr "もっと見る" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "アルバムを「もっと見る」ページに表示するために必要な画像の最低枚数を設定してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "表示する列数" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "ここで、ターゲットデバイス毎にいくつの列を使用するか設定することができます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "スマートフォン" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "ファブレット" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "タブレット" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "ラップトップ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "デスクトップ" + +msgid "theme editing" +msgstr "テーマ編集" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "テーマは%sフォルダへ入れて下さい。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "色調" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "明るく" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "暗く" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "メインカラー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "16進数の色の値" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "メインのテーマ色を設定するにはこちらをご利用ください。値は、<a href=\"%s\" target=\"_blank\">16進数</a>で入力する必要があります。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "トップバーのボタンの色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "青" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "緑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "橙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "赤" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "灰色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "黒" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "白" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "トップの”アカウントを作成”ボタンなどの色を設定します。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "ベクターロゴを有効" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "高密度ピクセルのデバイスでは、ベクターロゴの画質を上げる" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "ベクターロゴ画像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "サイトのロゴにベクター画像、または、SVGフォーマット画像を使用できます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "ラスターロゴ画像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "透かしに使用するビットマップ画像、又はPNGフォーマットの画像。あならのサイトログはいかがですか?" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "ロゴの高さ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "値がありません" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "ロゴの高さが必要な場合、こちらを使用して下さい。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "faviconは高さと幅が同じでないといけません。" + +msgid "Image load max. filesize" +msgstr "画像の最大ファイルサイズ" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "このファイルサイズを超えたものは、オリジナル画像表示用のボタンが表示されます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "ダウンロードボタンを有効にする" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "画像ダウンロードボタンを表示したい場合に有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "画像上での右クリックを可能にする" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "イメージビューアーページで右クリックを許可したい場合に有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Exifデータを表示する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Exifデータを表示したい場合に、この設定を有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "ソーシャルネットワークでの共有を有効可" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "ソーシャルネットワークでコンテンツを共有するボタンを表示する場合に有効にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "埋込みコード(コンテンツへのリンク)を有効にする" + +msgid "Everybody" +msgstr "すべての人" + +msgid "Users only" +msgstr "ユーザーのみ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "コンテンツへの埋込みコードを表示したい場合に有効にします。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "ファミリーセーフティに接触するコンテンツのチェックボックスを表示する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "ファミリーセーフティに接触するコンテンツをアップロードする警告を表示する場合に有効にします。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "カスタムCSSコード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "カスタムCSSコードをここへ入力します。 ヘッダタグの閉じられる寸前の</head>前に<style>タグとして挿入されます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "カスタムJSコード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "カスタムJSコードをここへ入力します。ヘッダタグの閉じられる寸前の</head>前に<script>タグとして挿入されます。" + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "マークアップ %s は、ここでは使用できません。ここはjavascriptコードのためで、HTML用ではありません。HTMLタグを使用するとサイトに不具合が発生します。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "スタイル" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "ランディングページ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "ランディング + 画像 を分割" + +#, php-format +msgid "Route %s" +msgstr "ルート%s" + +msgid "upload" +msgstr "アップロード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "ホームページのスタイルを選択。 カスタマイズを行う場合は app/themes/%s/views/index.php を編集します。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "カバー画像" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "この画像を削除しますか?削除後は元に戻せません。" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "画像を削除" + +msgid "Add new cover image" +msgstr "ヘッダ画像を新規追加" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "ベクターバージョンまたはSVG形式のサイトロゴ(ホームページのみ)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "ビットマップバージョンまたは通常のサイトロゴ(ホームページのみ)PNG形式がおすすめです。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "トップページに %s タグが追加されます。既定のコンテンツを使う場合は空欄にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "段落" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "アクションボタンの色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "トップページに戻るボタンの色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "アウトラインスタイルボタン" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "トップページに戻るボタンにアウトラインスタイルを適用" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "機能" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "アップローダー起動" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "独自URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URLを呼び出し" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "絶対パス、または相対パスを入力" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "%r のような相対URLは、%l に変換されます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTMLの呼び出し" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr " <a> タグを追加する機能です。既定のコンテンツを使用する場合は空欄にしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "ユーザID" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "コンマ区切りの対象ユーザーIDにホームページの画像を表示します。空欄、またはゼロの場合は、最近の画像を表示します。" + +msgid "banners" +msgstr "広告バナー" + +msgid "Automatic updates check" +msgstr "アップデートを自動でチェック" + +msgid "When enabled the system will automatically check for new updates." +msgstr "システムが自動でアップデートをチェックします。" + +msgid "Display available updates notification" +msgstr "アップデートの通知を有効化" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "システムアップデートがリリースされた場合に歳重用通知として表示を有効化" + +msgid "Dump update query" +msgstr "アップデートクエリーを削除" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "ユーザーごとに適切な言語を自動的に検出したい場合に有効にします。" + +#, php-format +msgid "SEO %s URLs" +msgstr "%s のSEO対応URL" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "%s URLsのSEOを有効化" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "コードを圧縮" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "CSS、jsファイルを自動で圧縮する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "メンテナンスモード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "有効にされている場合、メンテナンスモードと表示されます。この設定は管理者には影響しません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "暗号化のためのキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "数字のIDをアルファベット変換する際に使用されるキーです。インストール時に生成されています。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHPエラーレポート" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "PHPが作成する <a %s>error_reporting()</a>を表示する。運用時はOFFにしてください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "デバッグレベル" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "なし" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "エラーログ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "エラーログなしでのエラー表示" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "エラー表示(ログを含む)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "デバッグレベルの設定は <a %s>debug documentation</a>を確認してください。 ディフォルトは \"Error log\" (1)です。" + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "ルーティングは、既定のルートに直ちに反映されます。英数字、ハイフン、アンダースコアのみ有効です。ルートの新規追加、更新は、%sを確認してください。" + +msgid "Image routing" +msgstr "画像ルーティング" + +#, php-format +msgid "Routing for %s" +msgstr "%sへのルート" + +msgid "Album routing" +msgstr "アルバムへのルーティング" + +msgid "Hostname" +msgstr "ホスト名" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "ホスト名のサブドメインをワイルドカードで追加します。" + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "この設定は、%s で上書されます。" + +msgid "Language subdomains" +msgstr "サブドメインの言語" + +msgid "languages" +msgstr "言語" + +msgid "Enable to use %s for %t." +msgstr "%t 用に %s を使用" + +msgid "Username subdomains" +msgstr "サブドメインのユーザ名" + +msgid "user profiles" +msgstr "ユーザープロファイル" + +msgid "Custom language strings" +msgstr "個別の言語文字列" + +msgid "language strings" +msgstr "言語" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "既定の言語" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "既定の言語として使用" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "言語を自動で選択" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "各ユーザ毎に言語を自動で設定する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "言語選択" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "言語の選択を可能にする" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "選択できる言語" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "チェックされていない言語はサイトで使用出来ません。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "HTTPSの有効/無効の切替" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "このストレージの有効/無効の切替" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "クォータ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "アクティブ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "保存方法" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "アクティブな外部ストレージがない場合、ローカルストレージが使用されます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "ヘルプは <a %s>storage documentation</a> です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "ストレージの編集" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "送信元名" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "ユーザに送信するメールの送信元名" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "電子メールモード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "どのようにメールを送信しますか?SMTPがお勧めです。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTPサーバーとポート番号" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTPサーバー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTPユーザ名" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTPパスワード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTPセキュリティ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "セキュリティで保護されていません" + +msgid "Decode ID" +msgstr "デコードID" + +msgid "Encode ID" +msgstr "エンコードID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "テストメールを送信する" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "メールアドレスにどのように送信されるかをテストする場合にこちらを利用してください。%sを使用することをお勧めします。" + +msgid "Export a user" +msgstr "ユーザーをエクスポート" + +msgid "Export user" +msgstr "ユーザーをエクスポート" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "JSONフォーマットで、ユーザーの標準的な個人情報をダウンロードすることができます。" + +msgid "Regenerate external storage stats" +msgstr "外部ストレージの統計情報を再構築" + +msgid "Storage id" +msgstr "ストレージID" + +msgid "Regenerate" +msgstr "再構築" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "指定された外部ストレージと再計算された保存画像の合計を紐付けます。" + +msgid "Migrate image records from one external storage to another" +msgstr "外部ストレージから別の外部ストレージに画像を移動します。" + +msgid "Source storage id" +msgstr "元になるストレージID" + +msgid "Target storage id" +msgstr "ターゲットのストレージID" + +msgid "Migrate" +msgstr "移動" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "これはデータベースの更新のみす。ファイルは、ご自身でターゲット先に移動してください。URLの書換も推奨します。ローカルストレージを使用するには、ゼロ(0)を使用します。" + +msgid "social networks" +msgstr "ソーシャル・ネットワーク" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "この機能を使用するためには、<a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebookアプリ</a>が必要です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "フェイスブック アプリID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebookアプリシークレットキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "この機能を使用するためには、<a href=\"https://apps.twitter.com\" target=\"_blank\">Twitterアプリ</a>が必要です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter APIキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API シークレットキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitterアカウント" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "この機能を使用するためには、<a href=\"https://cloud.google.com/console\" target=\"_blank\">Googleアプリ</a>が必要です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google クライアントID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google クライアントシークレットキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "この機能を使用するためには、<a href=\"http://vk.com/dev\" target=\"_blank\">VK アプリ</a>が必要です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VKクライアントID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VKクライアントシークレットキー" + +#, php-format +msgid "%s spam protection" +msgstr "%s スパム保護" + +msgid "user generated content" +msgstr "ユーザー作成のコンテンツ" + +msgid "Enable this to use %l to block spam on %c." +msgstr "%l を使用して %c のスパムをブロックを有効化" + +#, php-format +msgid "%s API key" +msgstr "%s API key" + +msgid "user signup" +msgstr "ユーザーアカウント作成" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "画像認証を使用するためには、<a href=\"%s\" target=\"_blank\">reCAPTCHA キー</a>が必要です。" + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "reCAPTCHAのバージョンとキーはセットです。バージョンを上げる場合にはキーの更新も忘れないようにしてください。" + +#, php-format +msgid "%s site key" +msgstr "%s サイトキー" + +#, php-format +msgid "%s secret key" +msgstr "%s シークレットキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "閾値(失敗)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "何回の失敗でreCAPTCHAを有効にしますか?ゼロ(0)だと常にreCAPTCHAが表示されます。" + +#, php-format +msgid "Force %s on contact page" +msgstr "コンタクトページ上で %s を行わせる" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "コンタクトページに %s を常に表示する場合" + +msgid "Comments API" +msgstr "コメントAPI" + +#, php-format +msgid "Disqus API works with %s." +msgstr "%s でDisqus APIが動作します。" + +msgid "Disqus shortname" +msgstr "Disqus ショートネーム" + +#, php-format +msgid "%s public key" +msgstr "%s パブリックキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "コメントコード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus,Facebookなどが必要な場合には、イメージ表示を使って下さい。" + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "%s を使用してコンテンツを自動で判定する。" + +msgid "Automatic approve" +msgstr "自動承認" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "このサービスによってモデレートされたコンテンツを自動的に承認するには、これを有効にします。" + +msgid "Block content" +msgstr "コンテンツをブロック" + +msgid "Adult" +msgstr "アダルト" + +msgid "Teen and adult" +msgstr "未成年とアダルト" + +msgid "Flag NSFW" +msgstr "NSFW印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "アクセス解析用コード" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analyticsや他の解析コードが必要な場合に入力してください。テーマのフッタ部分に追加されます。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "APIのドキュメントは <a %s>API documentation</a>です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 キー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "<a %s>API v1</a>を使用するときは、このキーを使用します。" + +msgid "Plugin route" +msgstr "プラグインルート" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "%uでプラグインの説明を表示する。これらの説明は、メニューに%sを追加します。この設定は管理者には影響しません。" + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "%pのカスタムURLをセットするのに使用。手動でこのURLを%sで複製してください。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "法律に準拠したクッキー" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "EU法に準拠したメッセージを表示するためにONにする。注) あなたのWebサイトがEU内でホスティングされており、クッキーでのトラッキングを行う場合に必要です。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "変更を保存" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "次へ進むためにエラーをチェックして下さい。" + +msgid "Play GIF" +msgstr "GIF再生" + +msgid "Load full resolution" +msgstr "最大解像度で表示" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "選択されたコンテンツを本当に削除しますか?一度削除すると元には戻せません。" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "%a へ追加してカテゴリ名: %c に分類" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "%sに追加" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "%s へアップロード" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "%sにアップロード" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Exifデータをたたむ" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "さらにExifデータを表示" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "画像を共有" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "アルバムID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "このアルバム内" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "アップロードして画像を共有する。" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "アップロードする画像をドラッグ&ドロップすると、すぐにアップロードが始まります。最大%sまでの画像をアップロードできます。 画像へのダイレクトURL、 BBCode とHTML サムネイルなどが利用できます。" + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "アップロード開始" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "すべての機能を利用するためにアカウントを作成しましょう。" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "あなたのコンテンツを管理したり、非公開アルバムを作成したり、プロフィールのカスタマイズなどが行えます。" + +msgid "Sign in with your account" +msgstr "アカウントへログイン" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "アカウントがありませんか?今すぐ<a href='%s'>アカウントを作成</a>しましょう。" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "ログアウトしました。" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "あなたは%sからログアウトしました。またのご利用をお待ちしています。" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "ホームへ戻る" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "現在、メンテナンス中です。" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "大変申し訳ありませんが、現在、定期メンテナンスを行っています。しばらくしてから再度アクセスしてください。" + +msgid "This content is password protected." +msgstr "このコンテンツはパスワードで保護されています。" + +msgid "Please enter your password to continue." +msgstr "続けるにはパスワードを入力してください。" + +msgid "Send" +msgstr "送信" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "このアップロードプラグインのインストールされている、Webサイト、ブログ、またはフォーラムから画像をアップロードして追加する。画像の追加に必要なコードを自動で扱うボタンの設置されたWebサイトへ画像をアップロードします。ドラッグ&ドロップやリモートアップロード、画像のリサイズなどの機能も全てふくまれています。" + +msgid "Supported software" +msgstr "サポートするソフトウェア" + +msgid "supported software" +msgstr "サポートするソフトウェア" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "プラグインは、ユーザーがコンテンツを編集可能なWebサイトや%sの編集用エディタに特別なカスタマイズなしで、画像のアップロートボタンを追加します。" + +msgid "Add it to your website" +msgstr "あなたのWebサイトへ追加" + +msgid "options" +msgstr "オプション" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "WebサイトのHTMLへコードをコピーして貼りつけます(head内が最適です)。豊富な%oが合わせます。" + +msgid "Basic options" +msgstr "基本オプション" + +msgid "Color palette" +msgstr "カラーパレット" + +msgid "Button color scheme" +msgstr "ボタン色スキーマ" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "エディターボックスに自動でコードを埋め込む" + +msgid "Sibling selector" +msgstr "兄弟セレクター" + +msgid "Sibling element selector where to place the button next to" +msgstr "ボタンの隣の兄弟セレクター" + +msgid "Sibling position" +msgstr "兄弟ポジション" + +msgid "After" +msgstr "アフター" + +msgid "Before" +msgstr "ビフォー" + +msgid "Position relative to sibling element" +msgstr "兄弟エレメントとrelativeに" + +msgid "Advanced options" +msgstr "追加オプション" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "プラグインには、フルカスタマイズするための豊富な追加オプションセットがあります。カスタムHTML,カスタムCSS、カラーパレットなどが使えます。追加オプションセットを使いこなすには、%dか、プラグインのソースを参照してください。" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "このページにアクセスする権利がないか、または、期限切れのリンクです。" + +msgid "Search results" +msgstr "検索結果" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "本当にこのユーザを削除しますか?削除すると元には戻せません。" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "ユーザを削除" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "登録日" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "登録元IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "有効" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "追放済み" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "メールアドレス待ち" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "確認待ち" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i 文字以上 %f 文字以下で<br>半角英文字, 数字と \"_\"が使えます。" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "アップロードを自動削除する" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "この設定はデフォルトでアップロードされる全ての画像に適用されます。アップロード毎にこの設定を変更することが可能です。" + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "画像の <a %s>Exifデータ</a>を保持する" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "ニュースレター" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "%sに関するニュースをメールで送信します。" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "現在の設定" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "不適切なコンテンツをリストに表示しない(他のユーザーのコンテンツ)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "言語" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "タイムゾーン" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "現在のパスワード" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "現在のパスワードを入力して下さい。" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "新しいパスワード" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "新しいパスワードの確認" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "ユーザ名、または、メールアドレスを使ってパスワードを設定して下さい。" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "このユーザはパスワードを設定していません。このフォームから設定して下さい。" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "パスワードを入力して下さい。" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "新しいパスワード(確認)" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "パスワードを再度入力して下さい。" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "新規画像のアップロード" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "アップロード済みの画像を削除" + +msgid "Make my profile and identity totally private" +msgstr "プロフィールなどを非公開にする" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "匿名ユーザとなる" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "これはユーザー名ではなく、表示名です。" + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "自己紹介" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "あなたについて少し教えてください。" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "ユーザは何も接続していません。" + +msgid "Link your account to external services to be able to login here." +msgstr "あなたのアカウントでの外部サービスへログイン、コンテンツの共有を行うリンク" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "%sのアカウントとの接続を解除してもよろしいですか?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "このアカウントは、%sに接続されています。" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "本当に%sアカウントへの接続を解除してもよろしいですか?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "ログアウトすると、%sのアカウントを使用してログイン出来なくなります。" + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "あなたのアカウントは%sへ接続されています。" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "接続を解除" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "%sと接続" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "お気軽に共有設定しているアルバムと画像をご覧下さい。" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "ボタン" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "全ての画像を見る" + +msgid "Login" +msgstr "ログイン" + +#, php-format +msgid "Already have an account? %s now." +msgstr "既にアカウントをお持ちであれば %s へどうぞ。" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "アカウント有効の再通知" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "アカウント申込みが完了している場合は、%s へ有効化を申請してください。 " + +#, php-format +msgid "You can also %s." +msgstr "%s も使用できます。" + +#, php-format +msgid "I'm at least %s years old" +msgstr "私は%s歳以上です。" + +msgid "terms" +msgstr "利用規約" + +msgid "privacy policy" +msgstr "プライバシーポリシー" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "私は、%terms_link と %privacy_link に同意します" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "プロフィールの背景をアップロード" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "背景を変更" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "このプロフィールの背景画像は削除されます。削除すると、元には戻せません。本当に削除して構いませんか?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "背景の削除" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "フォロワー" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "フォロー" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "あなたは、このウェブサイトを使うことができません。" + +msgid "Plugin" +msgstr "プラグイン" + +#, php-format +msgid "Page %s" +msgstr "%sページ" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "一般的な質問/コメント" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "デジタルミレニアム著作権法" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "有効なメッセージではありません。" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "有効な件名ではありません。" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "メールでエラーが発生しました。" + +msgid "Message sent" +msgstr "メッセージを送信しました。" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "メッセージを送信しました。まもなく私どもから連絡を差し上げます。" + +msgid "If you want to send a message fill the form below." +msgstr "メッセージを送信するには、以下のフォームに入力してください。" + +msgid "Your name" +msgstr "氏名" + +msgid "Subject" +msgstr "件名" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "続行すると、行った全ての変更が破棄されます。" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "変更の保存が完了しました。" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "フォームへ戻る" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "とにかく続ける" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "保存中" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "送信中" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "確認を行う" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "情報" + diff --git a/app/languages/ko.po b/app/languages/ko.po new file mode 100644 index 0000000..a06f707 --- /dev/null +++ b/app/languages/ko.po @@ -0,0 +1,5388 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-25 18:53+0000\n" +"PO-Revision-Date: 2020-09-25 18:53+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "이메일 주소가 잘못되었습니다" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "잘못된 사용자명" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "잘못된 암호" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "잘못된 웹사이트 모드" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "보내는 이메일 주소" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "사용자에게 이메일을 보낼 때 사용하는 이메일 주소입니다." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "받는 이메일 주소" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "시스템 경고 및 문의하기 폼메일로부터 작성된 메시지를 받는 이메일 주소입니다." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "웹사이트 모드" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "웹사이트 모드는 언제든지 바꿀 수 있습니다." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "모임" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "개인용" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "설치된 버전은 v%s 입니다" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "%s에 연결할 수 없습니다" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "사용 가능한 최신 버전은 v%s 입니다" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "업데이트가 필요합니다. 다운로드 진행 중" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "업데이트가 필요하지 않습니다" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "시스템 파일이 이미 최신 상태입니다" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "v%s 버전 다운로드를 시작 중" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s 을(를) 다운로드했습니다. 압축을 해제하는 중입니다" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "v%s 의 압축을 해제하는 중입니다" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "압축 해제가 완료되었습니다" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "업데이트를 설치하는중 입니다" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "업데이트가 실패하였습니다" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "업데이트가 진행 중입니다" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "%s 파일이 없습니다" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "라이선스 정보가 잘못되었습니다" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "라이선스 키가 잘못되었습니다" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "파일을 저장할 수 업습니다" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "%s를 다운로드 할 수 없습니다" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "%s의 압축을 해제할 수 없습니다" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "%s 디렉터리를 만들 수 없습니다 -%e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "%s 파일을 업데이트할 수 없습니다 - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "계속하려면 잘못된 입력 내용을 수정해주세요." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "앨범 이름은 필수 요소입니다." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "확인" + +msgid "The content has been approved." +msgstr "게시물을 승인하였습니다." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "기존 앨범 선택하기" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "오류가 발생했습니다. 잠시 후에 다시 시도해주세요." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "올바른 이미지 파일 유형을 선택하십시오." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "최대 %s 크기의 이미지를 선택해주세요." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "프로필 이미지가 업데이트되었습니다." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "프로필 배경 이미지가 업데이트되었습니다." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "프로필 배경 이미지가 삭제되었습니다." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "프로필 배경 이미지를 삭제하는 동안 오류가 발생했습니다." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "비밀번호가 일치하지 않습니다" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "v%s 버전 업데이트가 가능합니다" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "시스템에 적용할 수 있는 업데이트가 발견되었습니다. 이 업데이트를 자동으로 다운로드하여 설치하거나 %s 로(으로) 이동하여 파일 다운로드를 진행할 수 있습니다." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "이 업데이트의 릴리즈 노트는 다음과 같습니다:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "업데이트 하기" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "또는" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "취소" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "이 웹사이트는 최신 %s 버전을 사용 중입니다" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "불러오는 중" + +msgid "Toggle select" +msgstr "선택 토글" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "좋아요" + +msgid "Toggle flag" +msgstr "플래그 토글" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "편집" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "앨범" + +msgid "Approve" +msgstr "승인" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "삭제" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "닫기" + +msgid "Previous" +msgstr "앞으로" + +msgid "Next" +msgstr "뒤로" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "클립보드 이미지" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "파일이 너무 큽니다." + +msgid "Invalid or unsupported file format." +msgstr "파일이 잘못되었거나 지원하지 않는 형식입니다." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "일부 파일을 추가하지 못했습니다" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "이미지" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s의 앨범" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "이미지 편집이 완료되었습니다." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "비공개" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "앨범 편집이 완료되었습니다." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "URL 키가 잘못되었습니다." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "카테고리 URL 키가 이미 사용 중입니다." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "카테고리 삭제가 완료되었습니다." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "%s 카테고리가 추가되었습니다." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "만료 날짜가 잘못되었습니다." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "%s IP 주소는 이미 차단되었습니다." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "%s IP 주소가 차단되었습니다." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP 차단 삭제가 완료되었습니다." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "모든 필수 요소를 채워주세요." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "저장소 용량이 잘못되었습니다. 유효한 형식인지 확인해주세요." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "저장소 용량은 현재 사용량 (%s) 보다 작을 수 없습니다." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL이 잘못되었습니다." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "저장소 편집이 완료되었습니다." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "사용자 추가가 완료되었습니다." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "게시물이 삭제되었습니다." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "게시물이 이동되었습니다." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "선택" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "선택 해제" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "게시물이 편집되었습니다." + +#, javascript-format +msgid "Import job ID %s added successfully, you can process the import now" +msgstr "가져오기 작업 ID %s 이(가) 추가되었습니다. 지금 가져오기를 처리할 수 있습니다" + +msgid "Select number of threads" +msgstr "스래드 개수를 선택해주세요" + +#, javascript-format +msgid "Import job ID %s is being processed now" +msgstr "가져오기 작업 ID %s 이(가) 지금 처리 중입니다" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "가져오기 작업 ID %s 이(가) 제거되었습니다" + +msgid "Spam detected" +msgstr "스팸이 감지되었습니다" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "앨범" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "헤비 업로드가 감지되었습니다. %time% 동안 %content%는 %limit% 만큼 업로드할 수 있습니다" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "제목 없음" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s님의 이미지" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "참고: 이 게시물은 비공개(링크)로 설정되어 있습니다. 링크를 통해 열람이 가능합니다." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "참고: 이 게시물은 비공개(비밀번호)로 설정되어 있습니다. 공유된 게시물을 열람하려면 비밀번호가 필요합니다." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "참고: 이 게시물은 비공개(개인)로 설정되어 있습니다. 공유하려면 공개 범위 설정을 \"공개\"로 변경해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "비공개" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "공개" + +msgid "Me" +msgstr "나만" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "링크" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "암호" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "조회" + +msgid "After %n %t" +msgstr "%n%t 후" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "분" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "시간" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "일" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "주" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "개월" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "년" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "자동 삭제를 하지 않음" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "중복된 업로드" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "비공개 업로드" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "좋아요" + +msgid "Recent" +msgstr "최신 게시물" + +msgid "Trending" +msgstr "트렌드" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "최고 사용자" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "최신순" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "오래된순" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "조회순" + +msgid "Popular" +msgstr "인기" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "인기순" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "탐색" + +msgid "Animated" +msgstr "움짤" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "찾아보기" + +msgid "People" +msgstr "사람" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "사용자" + +msgid "adult" +msgstr "성인" + +msgid "teen" +msgstr "미성년자" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "%s 목적지 디렉터리를 찾을 수 없습니다" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "쓰기 위해 %s 을(를) 열 수 없습니다" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "내부" + +msgid "Can't insert storage." +msgstr "저장소를 설정할 수 없습니다." + +msgid "Can't update storage details." +msgstr "저장소 상세정보를 업데이트 할 수 없습니다." + +#, php-format +msgid "requires %s" +msgstr "%s 필요" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "제한 없음" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "사용됨" + +msgid "Private profile" +msgstr "비공개 프로필" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "초" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s 전" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "방금 전" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "대시보드" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "시스템 업데이트가 가능합니다. %s 로 이동하여 이 업데이트를 다운로드하고 설치해주세요." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "시스템 데이터베이스가 오래되었습니다. <a href=\"%s\">업데이트</a> 도구를 실행해주세요." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "웹사이트가 유지보수 모드 상태입니다. 이 설정을 되돌리려면 <a href=\"%s\">대시보드 > 설정</a>으로 이동해주세요." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "실 사용 환경에서는 PHP 에러 보고 기능을 비활성화해주세요. 이 설정을 되돌리려면 <a href='%s'>시스템</a> 설정으로 이동해주세요." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "아직 기본 이메일 설정을 변경하지 않았습니다. 이 설정을 수정하려면 <a href='%s'>이메일</a> 설정으로 이동해주세요." + +msgid "There is an update available for your Chevereto based website." +msgstr "Chevereto 기반 웹사이트에 대한 업데이트가 있습니다." + +msgid "admin dashboard" +msgstr "관리자 대시보드" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "이 업데이트를 %a에서 직접 적용시키거나 %s에서 다운로드하여 수동으로 설치할 수 있습니다." + +#, php-format +msgid "view on %s" +msgstr "%s에서 보기" + +msgid "cookie policy" +msgstr "쿠키 정책" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "이 웹사이트는 개인화되고 맞춤화된 서비스를 제공하기 위해서, 사용자의 정보를 저장하고 수시로 불러오는 쿠키(cookie)를 사용합니다. 웹사이트 이용을 계속하는 것은 %cookie_policy_link에 동의하는 것으로 간주합니다." + +msgid "I understand" +msgstr "동의합니다." + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "암호를 잊으셨나요?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "암호 재설정" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "계정 활성화 메일 다시보내기" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "이메일 주소를 넣어주세요" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "이메일 주소가 변경됨" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s 가 현재 사용자를 로봇으로 보고했습니다" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "사용자 이름 또는 이메일 주소가 잘못되었습니다" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "이메일 주소가 없는 사용자입니다." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "요청이 거부됨" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "이 기능을 사용하려면 계정이 활성화되어야 합니다" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "계정이 이미 활성화됨" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "이메일을 다시 보내기 위해서는 최대 15분이 필요합니다. 잠시 후에 다시 시도해주세요." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "귀하의 암호 재설정하기 - %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "%s에서 확인해주셔야 할 내용이 있습니다." + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "%s에 방문하신 것을 환영합니다" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "이메일 주소가 이미 사용 중입니다" + +msgid "Password required" +msgstr "암호 필요" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "공유하기" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "퍼가기" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "상세 정보" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%w에서 호스팅하는 %a 앨범" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "서버 상태" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "이미지" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "앨범" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "사용자" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "설정" + +msgid "Bulk importer" +msgstr "한꺼번에 가져오기" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto 버전" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "업데이트 설치하기" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "업데이트 확인하기" + +msgid "Support" +msgstr "지원" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "도움이 필요하세요? %s을 방문하시면 빠르게 도움을 받을 수 있습니다." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP 버전" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "서버" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL 버전" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL 서버 정보" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD 라이브러리" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "파일 업로드" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "활성화" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "비활성화" + +msgid "Max. upload file size" +msgstr "최대 업로드 파일 크기" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "최대 게시물 크기" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "최대 실행 시간" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d 초" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "메모리 제한용량" + +msgid "Rebuild stats" +msgstr "서버 상태 다시 읽기" + +msgid "Connecting IP" +msgstr "접속 중인 IP 주소" + +msgid "Not your IP?" +msgstr "이 IP가 아닌가요?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "링크" + +msgid "Collaboration" +msgstr "협력하기" + +msgid "Documentation" +msgstr "문서보기" + +msgid "Changelog" +msgstr "변경 내역" + +msgid "Bug tracking" +msgstr "버그 추적" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "웹사이트" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "게시물" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "페이지" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "목록" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "이미지 업로드" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "범주" + +msgid "Consent screen" +msgstr "동의 화면" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "헤비 업로드 제한" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "테마" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "홈페이지" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "배너" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "시스템" + +msgid "Routing" +msgstr "라우팅" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "언어" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "외부 저장소" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "전자우편" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "소셜 네트워크" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "외부 서비스" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP 차단" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "추가 설정" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "도구" + +msgid "Can't delete all homepage cover images" +msgstr "최소한 하나의 홈페이지 커버 이미지는 필요합니다" + +msgid "Homepage cover image deleted" +msgstr "홈페이지 커버 이미지가 삭제되었습니다" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "내부" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "외부" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "전체" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "게시물 찾아보기" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "페이지 추가하기" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "페이지 ID %s 편집하기" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "페이지 추가가 완료되었습니다." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "페이지가 삭제되었습니다." + +msgid "homepage" +msgstr "홈페이지" + +#, php-format +msgid "Before main title (%s)" +msgstr "메인 타이틀 앞 (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "콜투액션 뒤 (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "커버 뒤 (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "목록 뒤 (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "페이지네이션 앞" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "페이지네이션 뒤" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "게시물 (이미지 및 앨범)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "정보 칼럼 탭" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "댓글 앞" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "이미지 페이지" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "뷰어의 상단 (이미지 페이지)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "뷰어의 하단 (이미지 페이지)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "이미지 뷰어 뒤 (이미지 페이지)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "헤더 앞 (이미지 페이지)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "헤더 뒤 (이미지 페이지)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "푸터 (이미지 페이지)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "앨범 페이지" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "헤더 앞 (앨범 페이지)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "헤더 뒤 (앨범 페이지)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "사용자 프로필 페이지" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "상단 뒤 (사용자 프로필)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "목록 앞 (사용자 프로필)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "둘러보기 페이지" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "상단 뒤 (둘러보기 페이지)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "후방주의" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "웹사이트 이름이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "언어 설정이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "시간대 설정이 잘못되었습니다" + +#, php-format +msgid "Invalid value: %s" +msgstr "값이 잘못되었습니다: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "업로드 저장소 모드가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "업로드 파일 이름이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "미리보기 이미지 너비가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "미리보기 이미지 높이가 잘못되었습니다" + +msgid "Invalid medium size" +msgstr "일반 이미지 크기가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "워터마크 비율이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "워터마크 투명도가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "테마가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "값이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "잘못된 테마 톤" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "테마 주 색상이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "테마 상단 바 버튼 색상이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "테마 이미지 목록 크기가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "사용자 ID가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "이메일 모드가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "SMTP 포트가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "SMTP 보안연결이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "개인 모드 사용자 ID가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "라우팅 경로가 잘못되었거나 사용 중입니다" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "웹사이트 공개 범위 모드가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "웹사이트 게시물 공개 범위 모드가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "홈페이지 스타일이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "홈페이지 콜투액션 버튼 색상이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "홈페이지 콜투액션 기능이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "제목이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "상태가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "유형이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "가시성이 잘못되었습니다" + +msgid "Invalid internal type" +msgstr "내부 유형이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "대상 속성이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "관계(rel) 속성이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "아이콘이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "URL 키가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "파일 경로가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "링크 URL이 잘못되었습니다" + +msgid "Invalid user minimum age" +msgstr "사용자 최소 연령이 잘못되었습니다" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "영문자와 숫자, 하이픈(-) 그리고 밑줄 문자(_)만 사용 가능합니다" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL이 잘못되었습니다" + +msgid "Routes can't be the same" +msgstr "라우팅 경로는 같을 수 없습니다" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "업로드 이미지 경로가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "콜투액션 URL이 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "최대 허용 %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "%m을(를) 기존 폴더 (%f)로(으로) 맵핑할 수 없습니다" + +msgid "Can't map %m to an existing route (%r)" +msgstr "%m을(를) 기존 라우팅 경로 (%r)로(으로) 맵핑할 수 없습니다" + +msgid "Can't map %m to %r (username collision)" +msgstr "%m을(를) %r로(으로) 맵핑할 수 없습니다 (사용자 이름 충돌)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "SMTP 서버 주소가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "SMTP 사용자 이름이 잘못되었습니다" + +msgid "Invalid key" +msgstr "키가 잘못되었습니다" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "이 URL 키는 이미 다른 페이지 (ID %s) 에서 사용 중입니다" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "이 파일 경로는 이미 다른 페이지 (ID %s) 에서 사용 중입니다" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "페이지 내용을 저장할 수 없습니다: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "팔로잉" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "정보" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "이미지 ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "업로드 IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "IP 차단하기" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP 주소가 이미 차단되었습니다" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "업로드 날짜" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "%a 앨범의 이미지 %i" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "%c 카테고리의 이미지 %i" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "%w 호스팅 이미지 %i" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "다이렉트 링크" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "이미지 링크" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "원본 이미지 URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "미리보기 이미지 URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "일반 이미지 URL" + +msgid "Full image" +msgstr "원본 이미지" + +msgid "Full image (linked)" +msgstr "원본 이미지 (링크)" + +msgid "Medium image (linked)" +msgstr "일반 이미지 (링크)" + +msgid "Thumbnail image (linked)" +msgstr "미리보기 이미지 (링크)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "로그인이 필요합니다" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP 주소가 이미 차단되었습니다" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "값이 설정되지 않았습니다" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "권한 설정이 잘못되었습니다" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "사용자 이름이 이미 사용 중입니다" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "%s을(를) 삭제하기 전에 비밀번호나 다른 소셜 네트워크 연결을 추가해주세요" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "%s을(를) 삭제하기 전에 이메일 주소나 다른 소셜 네트워크 연결을 추가해주세요" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s은(는) 연결이 해제되었습니다." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "%s로(으로)부터 %t 에 수신된 테스트 이메일입니다" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "테스트 이메일입니다." + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "%s로(으로) 테스트 이메일을 보냈습니다." + +#, php-format +msgid "Downloading %s data" +msgstr "%s 데이터를 다운로드하는 중입니다" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "사용자 %s님이 팔로우했습니다" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "사용자 %s님이 팔로우를 해제했습니다" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "좋아하는 게시물" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "싫어하는 게시물" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u님이 %c %t을(를) 좋아합니다" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u님이 팔로잉 합니다" + +msgid "A private user" +msgstr "비공개 사용자" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "사용자 이름 또는 이메일 주소의 비밀번호가 잘못되었습니다" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "로그인" + +msgid "Moderate" +msgstr "중재하기" + +msgid "Upload images" +msgstr "이미지 업로드" + +msgid "Upload plugin" +msgstr "업로드 플러그인" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "%s로(으로) 찾은 이미지" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "%s로(으로) 찾은 앨범" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "%s로(으로) 찾은 사용자" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "계정" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "프로필" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "연결된 계정" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "이미지 만료가 잘못되었습니다: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "계정 활성화를 위한 안내 이메일을<br>%s로(으로) 보냈습니다" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "이름이 잘못되었습니다" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "웹사이트가 잘못되었습니다" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "틀린 암호" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "새로운 암호 사용하기" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "변경 사항이 저장되었습니다." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "암호가 변경되었습니다." + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "암호가 생성되었습니다." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "사용자 이름 또는 이메일 주소가 잘못되었습니다" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "%s 설정 내용" + +msgid "You must agree to the terms and privacy policy" +msgstr "이용 약관과 개인 정보 보호 정책에 동의해야 합니다" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "이 웹사이트를 이용하려면 최소 %s세 이상이어야 합니다." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "계정 만들기" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "업로드" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s님의 이미지" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "검색 결과 " + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%s님의 좋아요" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "좋아요" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "팔로워" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%w의 %n (%u) 앨범" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%w의 %n (%u)" + +msgid "Discovery" +msgstr "전체 게시물" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "자세히 찾아보기" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "아무거나" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "알림 (%s)" + +msgid "Lights" +msgstr "다크 모드" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "알림" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "알림 내용이 없습니다" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "내 프로필" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "로그아웃" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "저희는 %w의 <a href=\"%u\">%n</a> 계정에 대한 이메일 주소 변경 요청을 받았습니다." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "이메일 주소를 변경하려면 <a href=\"%s\"> 이메일 주소 활성화</a>를 해주세요." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "또는 브라우저의 주소창에 다음의 URL을 복사하여 붙여 넣어주세요:<br><br><a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "의도하지 않은 경우 이 이메일 메시지를 무시해주세요." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "<br>이 요청은 다음의 IP 에서 받았습니다: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "저희는 %w의 %n 계정에 대한 등록 요청을 받았습니다." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "계정을 등록하려면 <a href=\"%s\"> 계정 활성화</a>를 해주세요." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "저희는 <a href=\"%u\">%n</a> 계정에 대한 비밀번호의 재설정 요청을 받았습니다." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "비밀번호를 재설정하려면 <a href=\"%s\"> 링크</a>를 클릭해주세요." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "안녕하세요 %n님, %w 가입을 환영합니다." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "이제 이미지 업로드, 앨범 만들기, 게시물의 공개 범위 설정을 하실 수 있는 계정이 준비되었습니다. 이 외에도 다양한 멋진 것들을 찾아보실 수 있습니다." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "일단, 여기 <a href=\"%u\">%n</a>님의 프로필 페이지가 있습니다. 방문하셔서 멋지게 꾸며보세요!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "등록해주셔서 감사합니다" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "이 이메일은 <a href=\"%u\">%w</a>에서 보냈습니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "여기에 이미지를 끌어놓기 또는 붙여넣기" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "업로드할 이미지를 선택해주세요" + +msgid "browse from your computer" +msgstr "컴퓨터에서 탐색" + +msgid "add image URLs" +msgstr "이미지 URL 추가" + +msgid "You can also %i or %u." +msgstr "%i하거나 %u를 통해 업로드할 수도 있습니다." + +msgid "browse from your device" +msgstr "기기에서 탐색" + +msgid "take a picture" +msgstr "사진 찍기" + +msgid "You can also %i, %c or %u." +msgstr "%i하거나 %c 또는 %u를 통해 업로드할 수도 있습니다." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "이미지 미리보기를 클릭하면<br>이미지를 편집하거나 사이즈를 조절할 수 있습니다." + +msgid "Edit any image by touching the image preview" +msgstr "이미지 미리보기를 탭하면<br>이미지를 편집하거나 사이즈를 조절할 수 있습니다." + +msgid "your computer" +msgstr "컴퓨터" + +msgid "You can add more images from %i or %u." +msgstr "%i나 %u를 통해 이미지를 더 추가할 수 있습니다." + +msgid "your device" +msgstr "기기" + +msgid "You can add more images from %i, %c or %u." +msgstr "%i나 %c 또는 %u를 통해 이미지를 더 추가할 수 있습니다." + +msgid "Uploading %q %o" +msgstr "업로드 중 %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "완료" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "대기열을 업로드하고 있습니다. 완료하는데 몇 초밖에 걸리지 않습니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "업로드가 완료되었습니다" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "업로드한 게시물이 %s 앨범에 추가되었습니다." + +msgid "You can %c with the content just uploaded or %m." +msgstr "업로드된 게시물은 %c 또는 %m를 할 수 있습니다." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "업로드된 게시물은 %c를 할 수 있습니다." + +msgid "create a new album" +msgstr "새 앨범 만들기" + +msgid "move it to an existing album" +msgstr "기존 앨범에 넣기" + +msgid "You must %s or %l to save this content into your account." +msgstr "계정에 이 게시물을 저장하려면 %s 또는 %l 해야 합니다." + +msgid "create an account" +msgstr "계정 만들기" + +msgid "sign in" +msgstr "로그인" + +#, php-format +msgid "No %s have been uploaded" +msgstr "%s이(가) 업로드되지 않았습니다" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "업로드 중 일부 이미지에 오류가 발생하여 시스템이 처리하지 못했습니다." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "카테고리" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "카테고리를 선택해주세요" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "업로드하는 게시물이 다른 사용자에게 불쾌감을 줄 수 있거나 19금 등의 후방주의가 필요하다면 체크해주세요" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "후방주의 업로드" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "업로드 중" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "남아있는 업로드 취소" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "참고: 일부 이미지를 업로드하지 못했습니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "더 알아보기" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "자세한 내용은 <a data-modal=\"simple\" data-target=\"failed-upload-result\">오류 보고서</a>를 참고해주세요." + +#, php-format +msgid "Register to get %s" +msgstr "%s을(를) 얻으려면 가입해주세요" + +msgid "reset" +msgstr "초기화" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "닫기" + +msgid "Note" +msgstr "비고" + +msgid "copy" +msgstr "복사" + +msgid "insert" +msgstr "삽입" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "제거" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "제목" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "선택사항" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "이미지 크기 조절" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "너비" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "높이" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "참고: 움직이는 GIF 이미지는 크기를 조절할 수 없습니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "자동 이미지 삭제" + +msgid "Sign up" +msgstr "가입하기" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s은(는) 이미지 자동 삭제를 사용자화하거나 비활성화할 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "이미지가 다른 사용자에게 불쾌감을 줄 수 있거나 19금 등의 후방주의가 필요하다면 체크해주세요" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "후방주의 플래그 설정" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "설명" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "이 이미지에 대해 알려주세요" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "이미지 URL로 추가하기" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "여기에 이​​미지 URL주소를 넣어주세요" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "앨범 만들기" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "업로드한 게시물은 새로 만든 앨범으로 이동됩니다." + +msgid "existing album" +msgstr "기존 앨범" + +msgid "You can also move the content to an %a." +msgstr "또는 %a으로 게시물을 이동시킬 수 있습니다." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "나중에 이 앨범을 편집하려면 %s 또는 %l 해야합니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "앨범으로 이동" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "업로드한 게시물을 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "오류 보고서" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "뷰어 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML 코드" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML 원본 이미지" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML 원본 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML 일반 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML 미리보기 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCode 코드" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode 원본 이미지" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode 원본 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode 일반 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode 미리보기 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "마크다운 원본 이미지" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "마크다운 원본 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "마크다운 일반 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "마크다운 미리보기 이미지 링크" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "모든 단어로 찾아보기" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "키워드가 될만한 단어를 넣어주세요. 예) 네눈박이 진돗개 블랙탄 강아지" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "입력 내용 그대로 찾아보기" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "따옴표로 입력 내용을 묶어주세요. 예) \"시베리안 허스키\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "입력 내용만 빼고 찾아보기" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "원치 않는 입력 내용 앞에 빼기 표시를 해주세요. 예) -퍼그 -\"래브라도 리트리버\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "저장소" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP 주소" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "앨범 이름" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "기존 앨범으로 이동" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "앨범 설명" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "이 앨범에 대해 알려주세요" + +msgid "Album privacy" +msgstr "앨범 공개 범위" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "이 게시물에 대한 공개 범위" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "비공개(개인)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "비공개(링크)" + +msgid "Private (password protected)" +msgstr "비공개 (암호로 보호 됨)" + +msgid "Album password" +msgstr "앨범 암호" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "이름" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "카테고리 이름" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL 키" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "카테고리 URL 키" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "문자와 숫자, 붙임표(하이픈)만 가능합니다" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "이 카테고리에 대해 알려주세요" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "제목 없는 이미지" + +msgid "Flag not safe" +msgstr "미안전 표기" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "경로" + +msgid "Local path (absolute)" +msgstr "내부 경로 (절대 경로)" + +msgid "Directory structure" +msgstr "디렉터리 구조" + +msgid "Parse top level folders as users (username)" +msgstr "최상위 폴더를 사용자 (사용자 이름)으로 구문분석(파싱)" + +msgid "Parse top level folders as albums" +msgstr "최상위 폴더를 앨범으로 구문분석(파싱)" + +msgid "Don't parse folders" +msgstr "폴더를 구문분석(파싱)하지 않기" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "최상위 폴더를 사용자로 구문분석(파싱)할 때 그 이하의 폴더는 사용자 앨범으로 구문분석(파싱)됩니다. 최상위 폴더를 앨범으로 구문분석(파싱)하면 이 폴더들은 손님 앨범으로 추가됩니다." + +msgid "Threads" +msgstr "스레드" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "가져오기 처리를 얼마나 빠르게 할 것인지 결정합니다. 공유 서버에서는 스래드를 %s개 이상 사용하지 마세요." + +msgid "You can use wildcard * characters." +msgstr "와일드카드 문자(*)를 사용할 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "만료 날짜" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "예제" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "IP를 언제까지 차단할 것인지 설정합니다. 만료시키지 않으려면 공란으로 비워두세요." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "메시지" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "텍스트 메시지나 HTML 또는 넘김(리다이렉션) URL을 입력해주세요" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "기존 앨범" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "새 앨범 만들기" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "저장소 이름" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "지역" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "저장소 위치" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "저장소 버킷" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "키" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "저장소 키" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "시크릿 코드(Secret)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "저장소 시크릿 코드(Storage Secret)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "비공개 키" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON 키" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "비공개 키는 <a %s>서비스 계정</a>이 필요합니다." + +msgid "Service name" +msgstr "서비스 이름" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identity URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identity API 종단점" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "OpenStack identity를 위한 API 종단점" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "사용자 이름" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "컨테이너" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "저장소 컨테이너" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant id (계정 id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant 이름" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant 이름 (계정 name)" + +msgid "Storage endpoint" +msgstr "저장소 종단점" + +msgid "Server address" +msgstr "서버 주소" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "저장소의 호스트 이름 또는 IP 주소" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "서버 경로" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "%p 로그인 콘텍스트에 파일이 저장될 절대 경로입니다. 루트 경로에 %s를 사용해주세요." + +msgid "Server login" +msgstr "서버 사용자 이름" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "서버 암호" + +msgid "Local path" +msgstr "내부 경로" + +msgid "Local path where the files will be stored" +msgstr "파일이 저장될 내부 경로입니다" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "저장소 용량" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "예) 20 GB, 1 TB, 기타." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "이 저장소는 저장 게시물이 설정한 용량에 도달하면 사용할 수 없게 됩니다. 저장 용량 제한을 없애려면 공란으로 두거나 0을 넣어주세요." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "저장소 URL 주소" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "시스템은 이 저장소의 이미지를 설정한 URL로 맵핑합니다." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "더 보기" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "더 불러오기" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "모두 선택" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "선택 해제" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "선택" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "액션" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "퍼가기 코드" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "카테고리 할당" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "후방주의 플래그 해제" + +msgid "Create new album" +msgstr "새 앨범 만들기" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "다른 계정으로 로그인하기" + +msgid "Continue with %label%" +msgstr "%label%로(으로) 계속하기" + +msgid "Home" +msgstr "홈" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "볼 수 있는 게시물이 없습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "모든 이미지는 새로 만든 앨범으로 이동됩니다. 또는 <a class=\"modal-switch\" data-switch=\"move-existing-album\">기존 앨범</a>으로 이동시킬 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "이미지를 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "앨범 내의 게시물을 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "선택한 이미지를 이동시킬 앨범을 선택해주세요. 또는 <a class=\"modal-switch\" data-switch=\"move-new-album\">새 앨범 만들기</a>를 하고 해당 앨범으로 이동시킬 수 있습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "선택한 이미지에 할당할 카테고리를 선택해주세요." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "카테고리가 없습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "후방주의 플래그 해제 확인" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "선택한 게시물의 후방주의 플래그 설정을 해제하시겠습니까?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "후방주의 플래그 설정 확인" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "선택한 게시물에 후방주의 플래그를 설정하시겠습니까?" + +msgid "Confirm approval" +msgstr "승인 확인" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "삭제 확인" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "이 게시물을 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "선택한 게시물을 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +msgid "Fullscreen" +msgstr "전체화면" + +msgid "Exit fullscreen" +msgstr "전체화면 나가기" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "손님" + +msgid "Keyboard shortcuts" +msgstr "키보드 단축키" + +msgid "Private album" +msgstr "비공개 앨범" + +msgid "Password protected" +msgstr "암호로 보호 됨" + +msgid "Uploaded by guest" +msgstr "손님의 업로드" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "%s" + +msgid "Uploaded by private" +msgstr "비공개 업로드" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "%u님의 이미지" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "후방주의 플래그 토글" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "페이지가 존재하지 않습니다" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "요청하신 페이지를 찾을 수 없습니다." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "다른 것 찾아보기" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "사용자가 삭제되었습니다" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "계정이 거의<br>준비되었습니다" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "계정 활성화를 위한 안내 이메일을<br>%s로(으로) 보냈습니다.<br>계정 활성화 링크는 48시간 동안 유효합니다.<br>이메일을 못 받으셨다면 정크 메일함이나<br>스팸 필터를 확인해주세요." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "활성화 메일 다시 보내기" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "%s로(으로)<br>이메일 주소 변경이 완료되었습니다." + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "내 프로필 페이지로 가기" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "계정 활성화를 위한 안내 사항과 함께 확인 링크를 입력하신 이메일로 보내드립니다." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "이메일 주소" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "확인" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "비밀번호 재설정을 위한 안내 이메일을<br>입력하신 이메일 주소로 보냈습니다.<br>이메일을 못 받으셨다면<br>정크 메일함이나 스팸 필터를 확인해주세요." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "이전에 비밀번호 재설정을 위한<br>안내 이메일을 보내드렸었습니다.<br>이메일을 못 받으셨다면<br>정크 메일함이나 스팸 필터를 확인해주세요." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "안내 사항 다시 보내기" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "계속하려면<br>사용자 이름 또는 이메일 주소를 넣어주세요.<br>%s 메일 주소를<br>화이트리스트에 등록해야 하거나<br>정크 메일함을 확인해야 할 수 있습니다." + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "사용자 이름 또는 이메일 주소" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "비밀번호가 변경되었습니다.<br>이제 새 비밀번호로 로그인할 수 있습니다." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "바로 로그인하기" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "새로운 비밀번호를 입력해주세요" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "최소 %d개의 문자를 입력해주세요" + +msgid "Password strength" +msgstr "암호 강도" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "새로운 비밀번호를 다시 입력해주세요" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "계정 활성화를 위한 안내 이메일을 %s로(으로) 보내드렸습니다. 계정 활성화 링크는 48시간 동안 유효합니다. 이메일을 못 받으셨다면 정크 메일함이나 스팸 필터를 확인해주세요." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "이 게시물은 비공개 게시물입니다" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "이 앨범과 앨범의 모든 이미지를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "좋아하는 게시물입니다" + +msgid "Upload to album" +msgstr "앨범에 업로드" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "앨범 링크" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "계속하기 전에 다음 조건을 읽고 준수해주세요:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "이 웹사이트에는 성적으로 노골적인 자료의 정보, 링크 및 이미지가 포함되어있습니다. %s세 미만인 경우, 이러한 자료가 여러분을 불쾌하게 하거나 커뮤니티에서 이러한 자료를 보는 것이 불법인 경우, 입장하지 말아 주세요.\n\n나는 적어도 %s세 이상의 나이이며, 성인으로서 성적으로 노골적인 자료를 받고 보는 것은 나의 양도할 수 없는 권리라고 믿습니다. 이에 따라 성적으로 노골적인 자료를 받고 보겠습니다.\n\n나는 상호 동의하에 성인들 사이의 성행위는 불쾌하지 않으며 음란하지 않다고 생각합니다. 성적으로 노골적인 자료를 보고 읽거나 다운로드하는 것은 나의 지역사회, 마을, 도시, 주 또는 국가의 기준을 위반하는 것이 아닙니다.\n\n내가 보는 성적으로 노골적인 자료는 나의 개인 용도로 사용되며 미성년자에게 해당 자료를 노출시키지 않겠습니다.\n\n나는 본 웹사이트의 자료를 보고 읽거나 다운로드하는 것에 대한 잘못된 결과나 법적 결과에 대해 전적으로 나에게 책임이 있음을 이해합니다. 또한 본 웹사이트 혹은 그 계열사에게 본 웹사이트의 부정 입장 또는 사용으로 인해 발생하는 모든 법적 결과에 대해 책임을 지겠습니다.\n\n이 동의 화면은 본 웹사이트와 귀하 그리고/또는 귀하가 법적 또는 공평한 지분을 가지고 있는 모든 기업 간의 법적 계약을 구성합니다. 관할 법원에서 본 계약의 일부를 집행할 수 없다고 판단될 경우, 본 계약의 다른 부분의 집행 가능성에 영향을 미치지 않습니다." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "\"동의합니다\"를 클릭하면 위에서 언급한 모든 조건을 읽고 이해하였음을 선언하는 것입니다." + +msgid "I Agree" +msgstr "동의합니다" + +msgid "documentation" +msgstr "문서" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "%s에 대한 자세한 내용은 %d를 참조해주세요." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "연결 IP는 %var% 서버 변수를 사용하여 결정됩니다. 탐지된 IP가 사용자의 것과 일치하지 않으면 웹 서버가 프락시 아래에 있고 실제 연결 IP를 설정하기 위해 서버의 설정 내용을 변경해야 함을 의미합니다." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Nginx의 경우, %nginx%를 사용해야 합니다. Apache의 경우, %apache%입니다." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "시스템은 정확한 IP 탐지에 의존하여 기본 기능을 제공하고 스팸, 헤비 업로드, 비밀번호 무차별 대입 공격으로부터 보호하므로 이 문제를 해결해야 합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "디스크 사용량" + +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." +msgstr "이 도구를 사용하면 가져올 내용물의 시스템 경로를 지정하여 웹사이트에 내용물을 대량으로 추가할 수 있습니다. 폴더 기반 구조를 사용하여 사용자, 앨범 및 이미지의 추가를 지원합니다." + +msgid "Automatic importing" +msgstr "자동으로 가져오기" + +msgid "The system automatically parses any content by a continuous observation of the %path% path." +msgstr "시스템은 %path% 경로를 지속적으로 감시하여 자동으로 내용물을 구문 분석합니다." + +msgid "Completed jobs will be automatically re-started after %n %m." +msgstr "완료된 작업은 %n %m 후에 자동으로 재시작됩니다." + +msgid "Reset to clear stats and logs." +msgstr "통계 및 로그를 지우려면 재설정해주세요." + +msgid "Queued" +msgstr "대기열에 등록됨" + +msgid "Working" +msgstr "작업 중" + +msgid "Paused" +msgstr "멈춤" + +msgid "Canceled" +msgstr "취소" + +msgid "Completed" +msgstr "완료" + +msgid "Actions" +msgstr "액션" + +msgid "Reset" +msgstr "재설정" + +msgid "Pause" +msgstr "멈춤" + +msgid "Resume" +msgstr "재시작" + +msgid "Process log" +msgstr "처리 로그" + +msgid "Errors" +msgstr "오류" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "상태" + +msgid "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." +msgstr "시스템은 예약된 명령으로 지속적으로 가져오기를 처리합니다. crontab 항목이 필요합니다." + +msgid "You can run the command in parallel by changing the integer value of %s%." +msgstr "%s% 의 정수 값을 변경하여 명령을 병렬로 다중 실행할 수 있습니다." + +msgid "All file-system permissions must be granted for the crontab user at %path%" +msgstr "crontab 사용자에게 %path% 경로의 모든 파일 시스템 권한을 부여해야 합니다." + +msgid "Add import job" +msgstr "가져오기 작업 추가하기" + +msgid "Process import" +msgstr "가져오기 실행하기" + +#, php-format +msgid "Top level folders as %s" +msgstr "최상위 폴더를 %s로(으로) 구문분석(파싱)" + +msgid "Process" +msgstr "실행하기" + +msgid "Cancel" +msgstr "취소" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "가져오기 작업 ID %s을(를) 삭제하시겠습니까?" + +msgid "Manual importing" +msgstr "수동으로 가져오기" + +msgid "The system will parse the contents of any available filesystem path." +msgstr "시스템은 사용 가능한 파일 시스템 경로의 내용을 구문분석합니다." + +msgid "These processes must be manually created and handled with the web browser tab open." +msgstr "이러한 프로세스는 웹 브라우저 탭을 열고 수동으로 생성 및 처리해야 합니다." + +msgid "Parser" +msgstr "파싱 구분" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "사용자 추가" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "역할" + +msgid "Manager" +msgstr "관리자" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "최고관리자" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "이메일 주소" + +msgid "This setting is always diabled when using personal website mode." +msgstr "이 설정은 개인 웹사이트 모드로 설정한 경우 비활성화됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "카테고리 추가" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "IP 차단 추가" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "저장소 추가" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "페이지로 돌아가기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "웹사이트 이름" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "웹사이트 문서제목" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "웹사이트 설명" + +msgid "Powered by" +msgstr "Powered by" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "푸터에 \"%s\" 링크를 보여주려면 이 옵션을 활성화로 설정해주세요." + +msgid "Automatic" +msgstr "자동 설정" + +msgid "Forced" +msgstr "강제 설정" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a은 서버 측에서 HTTPS 감지를 사용합니다(권장됨). %f은 서버 설정에 관계없이 HTTPS를 사용합니다. %d는 HTTPS를 전혀 사용하지 않습니다." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "이 옵션은 URL에 사용된 프로토콜만 제어하며 서버가 HTTPS를 지원하고 사용하도록 구성되어있지 않으면 웹사이트를 유효한 HTTPS 웹사이트로 전환하지 않습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "기본 시간대" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "지역 선택" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "검색어를 입력하여 이미지, 앨범 및 사용자를 검색할 수 있도록 하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "활성화 하면 공개된 업로드 이미지를 탐색할 수 있습니다. 또한 카테고리를 활성화합니다." + +msgid "guests" +msgstr "손님" + +msgid "Enables explore for guests." +msgstr "활성화 하면 손님이 공개된 업로드 이미지를 탐색할 수 있습니다." + +msgid "Enables to browse images randomly." +msgstr "활성화 하면 이미지를 임의로 탐색할 수 있습니다." + +msgid "Likes" +msgstr "좋아요" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "사용자가 게시물에 좋아요를 표시하거나 목록에서 인기순 탐색을 할 수 있도록 하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Followers allows users to follow each other." +msgstr "활성화 하면 사용자간 팔로우/언팔로우를 할 수 있습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "개인 모드 대상 사용자" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "사용자 ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "현재 사용자 id: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "개인 모드 대상 사용자의 숫자 형식의 ID 입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "개인 모드 라우팅" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "/사용자_이름 을 /다른_이름 으로 맵핑합니다. \"/\" 는 홈페이지에 맵핑합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "웹사이트 공개 범위 모드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "비공개 모드는 등록된 사용자만 게시물을 볼 수 있습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "게시물 비공개 모드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "기본값" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "강제 비공개(개인)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "강제 비공개(링크)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "사용자가 선택한 공개 범위를 여기에서 설정한 공개 범위로 강제로 대체합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "페이지 제목" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "페이지 상태" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "활성 페이지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "비활성 페이지 (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "활성 페이지에만 액세스할 수 있습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "유형" + +msgid "Terms of service" +msgstr "이용약관" + +msgid "Privacy" +msgstr "개인 정보 보호 정책" + +msgid "Contact" +msgstr "문의" + +msgid "Extra page" +msgstr "추가 페이지" + +msgid "Internal page type" +msgstr "내부 페이지 유형" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "추가 페이지는 여러 개 설정할 수 있지만, 특수 내부 페이지 유형은 하나씩만 설정 가능합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "페이지 가시성" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "보이는 페이지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "감춰진 페이지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "감춰진 페이지는 시스템 메뉴에서 보이지 않습니다. 하지만 링크로 누구나 액세스가 가능합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "영문자와 숫자, 하이픈(-) 그리고 빗금 문자(/)만 사용 가능합니다" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "파일 경로" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "%f 파일은 %s에 있습니다" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "메타 키워드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "메타 설명" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "소스 코드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "%s 경로에 쓰기 권한이 없습니다. 외부 편집기를 사용하여 이 파일을 추가해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "%s에 쓰기 권한이 없습니다. 외부 편집기를 사용하여 이 파일의 내용을 편집해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "가져온 경로: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "링크 URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "링크 대상 속성" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "새 창에서 페이지 또는 링크를 열려면 %s를 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "링크 관계(rel) 속성" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "영문자와 숫자, 하이픈(-) 그리고 공백 문자(스페이스)만 사용 가능합니다" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s 속성" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "링크 아이콘" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "지원되는 아이콘은 <a %s>아이콘 참조 목록</a>을 참조해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "표시 정렬 순서" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "메뉴 및 목록에 대한 페이지 표시 정렬 순서입니다. \"1\"이 최우선 순위입니다." + +msgid "pages" +msgstr "페이지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "페이지 ID %s을(를) 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +msgid "Enabled image formats" +msgstr "활성화된 이미지 형식" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "선택하지 않은 이미지 형식은 업로드할 수 없습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "업로드 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "이미지 업로드를 허용하려면 이 옵션을 활성화로 설정해주세요. 이 설정은 관리자에게 영향을 주지 않습니다." + +msgid "Upload user interface" +msgstr "업로드 사용자 인터페이스" + +msgid "On-page container" +msgstr "온페이지 컨테이너" + +msgid "route" +msgstr "라우팅" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "손님 업로드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "미등록 사용자의 업로드를 허용하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Moderate uploads" +msgstr "올려놓기 중재" + +msgid "Guests" +msgstr "손님" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "활성화하면 올려놓기 요청을 중재합니다. 대상 게시물은 중재를 통한 승인이 요구됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "퍼가기 코드 활성화 (업로드 창)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "업로드가 완료되었을 때 업로드 창에서 퍼가기 코드를 보여주려면 이 옵션을 활성화로 설정해주세요." + +msgid "Upload threads" +msgstr "업로드 스레드" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "동시에 업로드하는 스레드 개수입니다. (병렬 업로드)" + +msgid "Redirect on single upload" +msgstr "단일 업로드 바로 넘김(리다이렉션)" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "단일 업로드를 한 경우 이미지 페이지로 바로 넘기려면 이 옵션을 활성화로 선택해주세요." + +msgid "Enable duplicate uploads" +msgstr "중복 업로드 활성화" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "같은 IP 주소에서 24시간 내에 중복된 업로드를 하는 것을 허용하려면 이 옵션을 활성화로 선택해주세요. 이 설정은 관리자에게 영향을 주지 않습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "기간 만료 업로드 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "자동 삭제 옵션으로 업로드하는 것을 허용하려면 이 옵션을 활성화로 선택해주세요." + +msgid "Auto delete guest uploads" +msgstr "손님 업로드 자동 삭제" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "손님이 업로드한 게시물을 특정 시간후에 자동으로 삭제하려면 이 옵션을 설정해주세요." + +msgid "Maximum image size" +msgstr "최대 이미지 크기" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "설정한 크기보다 큰 이미지는 자동으로 크기를 줄입니다. 크기 제한을 설정하지 않으려면 값을 0으로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "이미지 Exif 정보" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "유지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "업로드 시 이미지의 Exif 정보에 대한 기본 설정을 선택합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "이미지 Exif 정보 (사용자 설정)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "사용자가 업로드한 이미지의 Exif 정보를 설정할 수 있게 하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Maximum upload file size" +msgstr "최대 업로드 파일 크기" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "서버에서 허용된 최대 크기는 %s입니다. 서버의 크기 제한은 %u 및 %p (%f 값)에서 설정됩니다." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "손님에게 적용되는 \"%s\"입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "이미지 경로" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Chevereto 웹페이지 루트의 상대 경로" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "이미지를 저장할 경로를 설정합니다. Chevereto 웹 페이지 루트에 대한 상대 경로입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "저장 모드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "날짜 폴더" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "이미지 경로에 직접" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "날짜 폴더는 %s 구조의 폴더를 만들어 저장합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "파일 이름 생성 방법" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "원본" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "원본 + 아무 거나" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"원본\"은 이미지 원본 이름을 그대로 유지하지만 \"아무 거나\"는 임의의 이름을 생성하여 적용합니다. \"ID\"는 이미지 ID와 같이 이미지 이름을 적용합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "미리보기 이미지 크기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "미리보기 이미지의 너비와 높이를 지정한 값으로 고정합니다." + +msgid "Medium image fixed dimension" +msgstr "일반 이미지 고정 공간" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "일반 이미지를 설정한 공간으로 고정합니다. 예를 들어, \"너비\"를 선택하면 해당 공간을 고정하고 이미지 높이를 자동으로 계산합니다." + +msgid "Medium image fixed size" +msgstr "일반 이미지 고정 크기" + +msgid "Width or height will be automatically calculated." +msgstr "너비 또는 높이는 자동으로 계산됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "워터마크" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "업로드 이미지에 로고나 원하는 내용을 덧붙이려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "경고: %s에는 쓸 수 없습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "워터마크 사용자 토글" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "손님 업로드에 워터마크 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "사용자 업로드에 워터마크 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "관리자 업로드에 워터마크 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "워터마크 파일 토글" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "GIF 이미지 업로드에 워터마크 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "워터마크 적용에 필요한 최소 이미지 크기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "설정된 값보다 작은 이미지는 워터마크가 적용되지 않습니다. 이미지 크기를 제한하지 않으려면 값을 0으로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "워터마크 이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "그림자를 드리우는 일반 로고로 최상의 결과를 얻을 수 있습니다. 파일 크기가 크지 않는 한 큰 이미지를 사용할 수 있습니다.(권장 최대 크기는 16KB입니다) PNG 파일 형식만 가능합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "워터마크 위치" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "좌측 상단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "좌측 중앙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "좌측 하단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "중앙 상단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "정중앙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "중앙 하단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "우측 상단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "우측 중앙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "우측 하단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "워터마크 이미지의 상대적인 위치입니다. 수평을 먼저 맞추고 수직을 맞추어 배치합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "워터마크 비율" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "대상 이미지 영역에 대한 상대적인 워터마크 비율입니다. 값은 1에서 100 사이입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "워터마크 여백" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "이미지의 테두리로부터 워터마크까지의 여백입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "워터마크 투명도" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "이미지에 배치되는 워터마크 이미지의 투명도 입니다. 값은 0(투명)부터 100(불투명)입니다." + +msgid "Dashboard > Settings > Website" +msgstr "대시보드 > 설정 > 웹사이트" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "둘러보기 기능이 꺼져있으면 카테고리가 작동하지 않습니다. 이 설정을 되돌리려면 %s로 이동해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "%s 카테고리를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "참고: 카테고리를 삭제하여도 카테고리에 속한 이미지는 삭제되지 않습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "카테고리 속성 편집" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "만료 날짜" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "차단된 IP %s 설정을 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "차단된 IP 주소는 전체 웹사이트를 사용할 수 없습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "IP 차단 속성 편집" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "가입 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "방문자의 가입을 허용하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Enable user content delete" +msgstr "사용자 게시물 삭제 활성화" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "사용자가 자신의 게시물을 삭제할수 있도록 하려면 이 옵션을 활성화로 설정해주세요. 이 설정은 관리자에게 영향을 주지 않습니다." + +msgid "Minimum age required" +msgstr "최소 연령 제한" + +msgid "Empty" +msgstr "없음" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "웹사이트 사용에 나이 제한을 두지 않으려면 \"없음\"으로 설정해주세요" + +msgid "Notify on user signup" +msgstr "사용자 가입 알림" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "사용자가 가입할때 이메일로 알람을 받으려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "사용자 이름 URL 라우팅" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "사용자의 URL을 %s/user/username 대신 %s/username을 사용하려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "전자우편 확인 요구" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "가입시 사용자의 이메일 주소 정상 여부를 확인하려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "소셜 네트워크 가입시 이메일 인증 요청" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "소셜 네트워크 계정으로 가입한 사용자에게 이메일 주소 등록을 요청하고 정상 여부를 확인하려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "사용자 프로필 이미지 최대 크기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "사용자 프로필에 사용되는 이미지 파일의 최대 크기 입니다. (서버에서 허용된 최대 크기는 %s입니다)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "사용자 프로필 배경 이미지 최대 크기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "사용자 프로필 배경에 사용되는 이미지 파일의 최대 크기 입니다. (서버에서 허용된 최대 크기는 %s입니다.)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "웹사이트에 액세스하기 전에 동의 화면을 표시합니다. 미성년자를 허용해서는 안 되는 성인 콘텐츠 웹사이트에 유용합니다." + +msgid "Enable consent screen" +msgstr "동의 화면 활성화" + +msgid "Consent screen cover image" +msgstr "동의 화면 커버 이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "시스템이 사용자 IP를 기준으로 과도한 시간당 업로드 수를 감지하면 업로드를 차단합니다. 이 설정은 관리자에게 영향을 주지 않습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "이메일 알림" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "활성화하면 과도한 업로드가 발생한 경우 시스템이 받는 이메일 주소로 이메일을 보냅니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "분당 업로드 제한" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "시간당 업로드 제한" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "일일 업로드 제한" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "주간 업로드 제한" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "월간 업로드 제한" + +#, php-format +msgid "Lock %s editing" +msgstr "%s의 편집 잠금" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "목록에 후방주의 게시물 노출" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "목록에 후방주의 게시물을 노출시키려면 이 옵션을 활성화로 선택해주세요. 이 설정은 관리자에게 영향을 주지 않으며 사용자의 설정에 의해 재정의될 수 있습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "후방주의 게시물을 목록에서 흐리게 표시" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "목록에서 후방주의 게시물에 흐림(Blur) 효과를 주려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "후방주의 게시물에 배너 표시" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "후방주의 게시물에 배너를 표시하려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "아무거나 보기에서 후방주의 게시물 노출" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "페이지당 표시 항목" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "한 페이지에 표시되는 항목 개수를 설정합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "목록 페이지네이션 모드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "무한 스크롤" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "일반 페이지네이션" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "페이지네이션 방법을 설정합니다." + +msgid "Listing viewer" +msgstr "목록 뷰어" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "이미지를 클릭했을 때 목록 뷰어를 사용하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "이미지 목록 크기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "유연한" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "고정된" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "두 가지 방법 모두 고정된 이미지 너비를 사용하지만 유연한 이미지 목록은 자동으로 계산된 이미지 높이를 사용합니다." + +msgid "Album listing images requirement" +msgstr "앨범 목록 표시 필요 이미지" + +msgid "explore" +msgstr "둘러보기" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "둘러보기에서 앨범을 표시하는데 필요한 최소 이미지 개수를 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "목록 칼럼 개수" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "각 대상 기기에 따라 사용되는 목록의 칼럼 개수를 설정할 수 있습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "전화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "패블릿" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "태블릿" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "노트북" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "데스크톱" + +msgid "theme editing" +msgstr "테마 설정" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "테마는 %s 폴더에 넣어주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "테마 톤" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "밝게" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "어둡게" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "주 색상" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "16진수 색상 코드(헥스 코드)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "주 테마 색상을 설정하려면 이 옵션을 설정해주세요. 설정 값은 <a href=\"%s\" target=\"_blank\">헥스 코드</a>이어야 합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "상단 바 버튼 색상" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "파랑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "초록" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "주황" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "빨강" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "회색" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "검정" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "하양" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "상단 바 버튼의 색상은 \"계정 만들기\" 버튼의 색상과 같이 사용됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "벡터 로고 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "고해상도의 기기에서 고품질의 로고를 표시하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "벡터 로고 이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "웹사이트에서 사용하는 SVG 파일 형식의 백터 이미지입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "비트맵 로고 이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "웹사이트에서 사용하는 비트맵 이미지입니다. PNG 파일 형식을 권장합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "로고 높이" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "값 없음" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "로고의 높이가 필요한 경우 이 옵션을 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "파비콘 이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "파비콘 이미지입니다. 이미지의 너비와 높이는 같아야 합니다." + +msgid "Image load max. filesize" +msgstr "이미지 로딩 최대 파일 크기" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "이미지 크기가 설정한 값보다 큰 경우 원본 이미지 보기 버튼을 표시합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "다운로드 버튼 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "이미지 다운로드 버튼을 제공하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "이미지 우클릭 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "이미지 뷰어 페이지에서 우클릭을 허용하려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Exif 정보 표시 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "이미지 Exif 정보를 보여주려면 이 옵션을 활성화로 설정해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "소셜 공유 활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "게시물을 공유하는 소셜 네트워크 버튼을 제공하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "퍼가기 코드 활성화 (게시물)" + +msgid "Everybody" +msgstr "누구나" + +msgid "Users only" +msgstr "사용자만" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "게시물에 퍼가기 코드를 보여주려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "업로드 창에 후방주의 체크박스 표시" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "업로드 창에 후방주의 체크박스를 제공하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "사용자 정의 CSS 코드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "사용자 정의 CSS 코드를 여기에 넣어주세요. 닫는 </head> 태그 바로 앞에 <style>로 배치됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "사용자 정의 JS 코드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "사용자 정의 JS 코드를 여기에 넣어주세요. 닫는 </head> 태그 바로 앞에 <style>로 배치됩니다." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "여기에 %s 마크업을 사용하지 마세요. HTML 스크립트 태그가 아닌 일반 JS 코드를 위한 공간입니다. 스크립트 태그를 사용하면 웹사이트가 손상됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "스타일" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "방문 페이지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "잘라낸 방문 페이지 + 이미지" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "홈페이지 스타일을 선택해주세요. 추가 편집은 app/themes/%s/views/index.php에서 할 수 있습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "커버 이미지" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "이 이미지를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "이미지 삭제하기" + +msgid "Add new cover image" +msgstr "새 커버 이미지 추가" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "벡터 버전 또는 SVG 형식의 웹사이트 로고 (홈페이지 전용)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "비트맵 버전 또는 웹사이트 로고 (홈페이지 전용). PNG 파일 형식을 사용하는 것이 좋습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "홈페이지 %s 태그 안에 추가됩니다. 기본 내용을 사용하려면 비워두세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "문단" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "콜투액션 버튼 색상" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "홈페이지 콜투액션 버튼의 색상입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "콜투액션 아웃라인 스타일 버튼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "홈페이지 콜투액션 버튼을 아웃라인 스타일로 설정하려면 이 옵션을 활성화 해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "콜투액션 기능" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "업로더 트리거" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "URL 열기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "콜투액션 URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "절대 또는 상대 경로의 URL을 입력해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "상대 경로 URL은 %r과 같은 형식이며 %l로 맵핑됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "콜투액션 HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "콜투액션 <a> 태그 안에 추가됩니다. 기본 내용을 사용하려면 비워두세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "사용자 ID" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "홈페이지에서 가장 최근 이미지를 표시하기 위한 쉼표로 구분된 대상 사용자 ID(정수) 목록입니다. 트랜드 이미지를 보여주려면 비워두세요." + +msgid "banners" +msgstr "배너" + +msgid "Automatic updates check" +msgstr "자동 업데이트 확인하기" + +msgid "When enabled the system will automatically check for new updates." +msgstr "활성화하면 시스템은 자동으로 새로운 업데이트를 체크합니다." + +msgid "Display available updates notification" +msgstr "업데이트 가능 알림 표시" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "사용 가능한 새로운 시스템 업데이트에 대한 알림을 상단 알림에 표시하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Dump update query" +msgstr "업데이트 쿼리 덤프 뜨기" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "활성화하면 자동으로 언어를 감자하여 각 사용자에게 맞는 언어로 설정합니다." + +#, php-format +msgid "SEO %s URLs" +msgstr "검색엔진 최적화 %s URL" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "검색엔진 최적화 %s URL을 사용하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "코드 최소화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "CSS 및 JS 코드를 자동으로 최소화하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "유지보수" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "이 옵션을 활성화하면 웹사이트는 사용자에게 유지보수 메시지를 보여줍니다. 이 설정은 관리자에게 영향을 주지 않습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "암호화 솔트(Crypt salt)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "이 옵션은 숫자 ID를 영숫자로 변환할 때 사용하는 문자열입니다. 솔트 문자열은 설치시 생성되었습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP 오류 보고" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "PHP 오류 보고에서 생성된 오류를 출력하려면 이 옵션을 활성화로 선택해주세요. 실 사용 구성에서는 이 옵션을 비활성화해야 합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "디버그 수준" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "없음" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "에러 로그" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "에러 로그 없이 오류 출력" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "에러 로그와 오류 출력" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "디버그 수준을 구성하려면 <a %s>디버그 문서</a>를 참조해주세요. 기본 수준은 \"Error log\" (1) 입니다." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "라우팅을 사용하면 기본 경로 바인딩을 바로 사용자화할 수 있습니다. 영문자와 숫자, 하이픈(-) 그리고 밑줄 문자(_)만 사용 가능합니다. 새 라우팅을 추가하거나 대체하려면 %s를 참조해주세요." + +msgid "Image routing" +msgstr "이미지 라우팅" + +#, php-format +msgid "Routing for %s" +msgstr "%s을(를) 위한 라우팅" + +msgid "Album routing" +msgstr "앨범 라우팅" + +msgid "Hostname" +msgstr "호스트네임" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "서브도메인 와일드카드가 추가될 호스트 이름입니다." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "이 설정은 %s에 의해 대체될 수 있습니다." + +msgid "Language subdomains" +msgstr "언어 서브도메인" + +msgid "languages" +msgstr "언어" + +msgid "Enable to use %s for %t." +msgstr "%t 서브도메인을 붙여 %s처럼 사용하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Username subdomains" +msgstr "사용자 이름 서브도메인" + +msgid "user profiles" +msgstr "사용자 프로필" + +msgid "Custom language strings" +msgstr "언어 문자열 사용자화" + +msgid "language strings" +msgstr "언어 문자열" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "기본 언어" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "기본으로 사용될 언어입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "자동 언어" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "액세스한 사용자에게 적합한 언어를 감지하여 자동으로 적용시키려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "언어 선택" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "사용자가 언어를 선택할 수 있도록 하려면 이 옵션을 활성화로 선택해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "활성화된 언어" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "체크 해제된 언어는 웹사이트에서 사용되지 않습니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "HTTPS를 활성화 또는 비활성화하려면 이 옵션을 토글 해주세요" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "이 저장소를 활성화 또는 비활성화하려면 이 옵션을 토글 해주세요" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "한도" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "활성화" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "저장 방법" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "활성화된 외부 저장소가 없는 경우 내부 저장소가 사용됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "도움이 필요하다면 <a %s>저장소 문서</a>를 참조해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "저장소 속성 편집" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "보내는 사람 이름" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "사용자에게 보내는 이메일에 표시할 보내는 사람 이름입니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "이메일 모드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "이메일을 보내는 방식을 설정합니다. SMTP 방식을 권장합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP 서버 및 포트" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP 서버" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP 사용자 이름" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP 사용자 암호" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP 보안 연결 방법" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "보안 연결 안 함" + +msgid "Decode ID" +msgstr "ID 디코딩(복호화)" + +msgid "Encode ID" +msgstr "ID 인코딩(암호화)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "테스트 이메일 보내기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "설정한 이메일이 정상 작동하는지 테스트해볼 수 있습니다. %s을(를) 사용해보는 것을 권장합니다." + +msgid "Export a user" +msgstr "사용자 정보 내보내기" + +msgid "Export user" +msgstr "사용자 정보 내보내기" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "사용자의 일반 정보를 JSON 형식으로 다운로드 할 수 있습니다." + +msgid "Regenerate external storage stats" +msgstr "외부 저장소 통계 재생성" + +msgid "Storage id" +msgstr "저장소 id" + +msgid "Regenerate" +msgstr "재생성하기" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "대상 외부 저장소와 관련된 모든 이미지 레코드 합계를 다시 계산합니다." + +msgid "Migrate image records from one external storage to another" +msgstr "외부 저장소에서 다른 외부저장소로 이미지 레코드 마이그레이션" + +msgid "Source storage id" +msgstr "소스 외부 저장소 id" + +msgid "Target storage id" +msgstr "대상 외부 저장소 id" + +msgid "Migrate" +msgstr "마이그레이션하기" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "마이그레이션은 데이터베이스만 업데이트하며 실제 파일은 대상 외부 저장소 컨테이너로 직접 옮겨야 합니다. URL을 다시 작성하는 것이 좋습니다. 내부 저장소에는 0을 사용해주세요." + +msgid "social networks" +msgstr "소셜 네트워크" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "연동 하려면 <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook 앱</a>이 필요합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook 앱 id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook 앱 시크릿 코드(secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "연동 하려면 <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter 앱 </a>이 필요합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API 키" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API 시크릿 코드(secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter 계정" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "연동 하려면 <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google 앱</a>이 필요합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google 클라이언트 id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google 클라이언트 시크릿 코드(secret)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "연동하려면 <a href=\"http://vk.com/dev\" target=\"_blank\">VK 앱</a>이 필요합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK 클라이언트 id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK client 시크릿 코드(secret)" + +#, php-format +msgid "%s spam protection" +msgstr "%s 스팸 보호" + +msgid "user generated content" +msgstr "사용자 생성 게시물" + +msgid "Enable this to use %l to block spam on %c." +msgstr "%l을(를) 사용하여 %c 스팸을 차단하려면 이 옵션을 활성화로 설정해주세요." + +#, php-format +msgid "%s API key" +msgstr "%s API 키" + +msgid "user signup" +msgstr "사용자 가입" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "연동하려면 <a href=\"%s\" target=\"_blank\">reCAPTCHA 키</a>가 필요합니다." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "각 reCAPTCHA 버전에는 고유한 키 세트가 필요합니다. 버전을 변경하는 경우 키를 업데이트하는 것을 잊지 마세요." + +#, php-format +msgid "%s site key" +msgstr "%s 사이트 키(site key)" + +#, php-format +msgid "%s secret key" +msgstr "%s 비밀 키(secert key)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA 한도" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "reCAPTCHA 호출에 필요한 실패 시도 횟수를 설정해주세요.항상 reCAPTCHA를 표시하려면 0으로 설정해주세요." + +#, php-format +msgid "Force %s on contact page" +msgstr "문의하기 페이지 %s 강제적용" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "문의하기 페이지에 %s를 항상 사용하려면 이 옵션을 활성화로 설정해주세요." + +msgid "Comments API" +msgstr "댓글 API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API 는 %s로 작동합니다." + +msgid "Disqus shortname" +msgstr "Disqus 짧은 이름(shortname)" + +#, php-format +msgid "%s public key" +msgstr "%s 공개 키" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "댓글 코드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook 또는 다른 원하는 서비스의 코드를 넣어주세요. 댓글은 이미지 뷰어에 사용됩니다." + +msgid "Automatic approve" +msgstr "자동 승인" + +msgid "Block content" +msgstr "블럭한 게시물" + +msgid "Adult" +msgstr "성인" + +msgid "Teen and adult" +msgstr "미성년자와 성인" + +msgid "Flag NSFW" +msgstr "후방주의 표기" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "접속 통계 코드" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google 애널리틱스 또는 다른 원하는 서비스의 코드를 넣어주세요. 접속 통계는 테마의 푸터에 추가됩니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "API에 대해 설명서가 필요하다면 <a %s>API 문서</a>를 참조해주세요." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 키" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "<a %s>API v1</a>을 사용하려면 이 키를 사용해주세요." + +msgid "Plugin route" +msgstr "Plugin 라우팅" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "%u에 플러그인 사용방법을 표시하려면 이 옵션을 활성화로 설정해주세요. %s 메뉴에 사용방법에 대한 링크가 추가됩니다. 이 설정은 관리자에게 영향을 주지 않습니다." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "%p의 URL을 사용자화 합니다. 이 URL에 %s를 수동으로 복사해서 붙여 넣어야 합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Cookie 법률 준수" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "EU 쿠키 법률 요구 사항을 준수하는 메시지를 표시하려면 이 옵션을 활성화로 설정해주세요. 참고: 웹사이트가 EU에서 호스팅 되고 추적 쿠키를 추가하는 경우에만 이 옵션이 필요합니다." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "변경 사항 저장" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "계속 하려면 오류를 확인해주세요." + +msgid "Play GIF" +msgstr "GIF 재생" + +msgid "Load full resolution" +msgstr "원본 이미지 보기" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "%c 카테고리로 %a 앨범에 추가됨" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "%s 앨범에 추가됨" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "%s 카테고리로 업로드됨" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "%s에 업로드됨" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Exif 정보 간략히" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Exif 정보 자세히" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "이미지 공유" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "앨범 ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "앨범 게시물" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "이미지를 업로드 하고<br>공유해보세요." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "원하는 곳 어디든 끌어놓기로 이미지를 바로 업로드해보세요.(이미지당 %s 가능)<br>다이렉트 링크, BBCode 및 HTML 미리보기등을 제공해드립니다." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "업로드 하기" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "지금 가입하시고<br>다양한 기능을 누려 보세요" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "게시물을 관리하고 비공개 앨범을 만들거나<br>프로필을 입맛에 맞게 꾸며보는 등의<br>다채로운 것들을 해볼 수 있습니다." + +msgid "Sign in with your account" +msgstr "계정으로 로그인하기" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "계정이 없으신가요?<br>바로 <a href='%s'>가입</a>할 수 있습니다." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "로그아웃 되었습니다" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "%s에서 로그아웃되었습니다. 조만간 다시 뵈어요!" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "홈페이지로 이동하기" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "웹사이트가 유지보수 중입니다" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "웹사이트에서 예정된 유지보수 작업을 수행하고 있습니다.<br>잠시 후에 다시 방문해주세요." + +msgid "This content is password protected." +msgstr "이 게시물은 비밀번호로 보호되었습니다." + +msgid "Please enter your password to continue." +msgstr "계속하려면 비밀번호를 넣어주세요." + +msgid "Send" +msgstr "확인" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "업로드 플러그인을 설치하여 웹사이트, 블로그 또는 포럼에 이미지 업로드를 추가해보세요. 사용자가 이 웹사이트 서비스에 이미지를 직접 업로드할 수 있는 버튼을 배치하여 어떤 웹사이트라도 이미지 업로드를 제공하거나 이미지 삽입에 필요한 자동으로 처리된 코드를 얻어 사용할 수 있습니다. 끌어놓기, 원격 업로드, 이미지 크기 조정 등과 같은 다양한 기능이 포함되어 있습니다." + +msgid "Supported software" +msgstr "지원 소프트웨어" + +msgid "supported software" +msgstr "지원 소프트웨어" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "플러그인은 사용자가 편집할 수 있는 콘텐츠가 있는 모든 웹사이트에서 작동하며 %sv의 경우, 대상 편집기 도구 모음과 일치하는 업로드 버튼을 배치하므로 추가로 사용자화할 필요가 없습니다." + +msgid "Add it to your website" +msgstr "웹사이트에 추가" + +msgid "options" +msgstr "옵션" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "플러그인 코드를 복사하여 웹사이트 HTML 코드(주로 헤드 섹션 안)에 붙여넣기만 하면 됩니다. 이 외에도 필요에 따라 사용할 수 있는 알맞는 %o이 많이 있습니다." + +msgid "Basic options" +msgstr "기본 옵션" + +msgid "Color palette" +msgstr "색상 팔레트" + +msgid "Button color scheme" +msgstr "버튼 색상 구성" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "편집기에 자동으로 삽입되는 퍼가기 코드" + +msgid "Sibling selector" +msgstr "형제(시블링) 선택자" + +msgid "Sibling element selector where to place the button next to" +msgstr "옆에 버튼을 배치할 형제(시블링) 요소 선택자" + +msgid "Sibling position" +msgstr "형제(시블링) 위치" + +msgid "After" +msgstr "뒤에" + +msgid "Before" +msgstr "앞에" + +msgid "Position relative to sibling element" +msgstr "형제(시블링) 요소에 대한 상대 위치" + +msgid "Advanced options" +msgstr "고급 옵션" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "플러그인에는 전체를 사용자화할 수 있는 다양한 추가 옵션 세트가 있습니다. HTML, CSS, 자체 색상 팔레트, 관찰자 등을 사용자화할 수 있습니다. 이러한 고급 옵션에 대해 더 자세히 알아보려면 %d 및 플러그인 소스를 참조해주세요." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "이 페이지에 액세스할 수 있는 권한이 없거나 링크가 만료되었습니다." + +msgid "Search results" +msgstr "검색 결과" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "이 사용자를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "사용자 삭제하기" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "가입 날짜" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "가입 IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "인증됨" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "추방됨" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "이메일 인증 대기 중" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "확인 대기 중" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i ~ %f자의 영문자, 숫자와 특수기호(_)만 사용 가능합니다." + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "자동 삭제 업로드" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "이 설정은 모든 이미지 업로드에 기본값으로 설정합니다. 업로드할 때마다 이 설정을 바꿔서 적용할 수 있습니다." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "업로드 시 이미지 <a %s>Exif 정보</a> 유지하기" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "뉴스 레터" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "%s에 대한 새소식을 내 이메일로 보내기" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "게시물 설정" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "목록에서 다른 사용자의 후방주의 게시물 보기" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "언어" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "시간대" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "현재 암호" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "귀하의 현재 암호를 입력해주세요." + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "새 암호" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "새 암호 확인" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "사용자 이름 또는 이메일 주소로 로그인 하려면 비밀번호를 넣어주세요." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "이 사용자는 비밀번호를 설정하지 않았습니다. 여기서 비밀번호를 설정해주세요." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "암호를 입력해주세요." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "암호 확인" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "암호를 다시 입력해주세요." + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "새 이미지 업로드하기" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "기존 이미지 삭제하기" + +msgid "Make my profile and identity totally private" +msgstr "내 프로필과 개인 정보를 완전히 비공개로 설정하기" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "익명 사용자처럼 행동하려면 이 옵션을 활성화로 선택해주세요" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "사용자 이름이 아닌 실제 이름입니다." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "소개" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "간단한 자기 소개를 해주세요." + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "이 사용자는 연결된 계정이 없습니다." + +msgid "Link your account to external services to be able to login here." +msgstr "외부 서비스로 로그인하려면 계정을 연결해주세요." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "이 계정을 %s 계정과 연결을 해제하시겠습니까?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "이 계정은 %s에 연결되어있습니다." + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "%s 계정과 연결을 해제하시겠습니까?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "계속하면 로그아웃되고 이 %s 계정을 사용해서 현재 계정으로 로그인할 수 없게 됩니다." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "이 계정은 %s 계정과 연결되었습니다." + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "연결 해제하기" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "%s 계정과 연결하기" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "공유된 모든 이미지와 앨범을 자유롭게 찾아보고 검색해보세요." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "버튼" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "내 이미지 모두 보기" + +msgid "Login" +msgstr "로그인" + +#, php-format +msgid "Already have an account? %s now." +msgstr "등록한 계정이 있으시다면 %s해보세요." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "계정 활성화 메일 다시보내기" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "이미 계정 등록을 하셨다면 %s에 계정을 활성화하도록 요청해야 할 수 있습니다." + +#, php-format +msgid "You can also %s." +msgstr "<br>또는 %s를<br>할 수 있습니다." + +#, php-format +msgid "I'm at least %s years old" +msgstr "나는 %s세 이상입니다." + +msgid "terms" +msgstr "이용 약관" + +msgid "privacy policy" +msgstr "개인 정보 보호 정책" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "%terms_link 및 %privacy_link에 동의합니다" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "프로필 배경 업로드하기" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "배경 바꾸기" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "배경 지우기는 프로필 배경 이미지를 삭제합니다. 프로필 배경 이미지를 삭제하시겠습니까? 이 작업은 원래대로 되돌릴 수 없습니다." + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "배경 지우기" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "팔로워" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "팔로우" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "이 웹사이트를 사용하는 것이 금지되었습니다." + +msgid "Plugin" +msgstr "플러그인" + +#, php-format +msgid "Page %s" +msgstr "페이지 %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "일반적인 질문 및 의견" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "저작권법 위반 내용 접수" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "메시지 내용이 잘못되었습니다" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "주제가 잘못되었습니다" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "이메일 오류" + +msgid "Message sent" +msgstr "메시지를 보냈습니다." + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "메시지를 보냈습니다. 빠른 시일내에 답변드리겠습니다." + +msgid "If you want to send a message fill the form below." +msgstr "메시지를 보내시려면 아래의 양식을 채워주세요." + +msgid "Your name" +msgstr "보내는 분 이름" + +msgid "Subject" +msgstr "주제" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "계속하면 변경한 내용이 모두 손실됩니다." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "변경한 내용 저장이 완료되었습니다." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "입력폼으로 되돌아가기" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "입력폼에서 나가기" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "저장하는 중" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "처리 중" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "내용 확인" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "정보" + diff --git a/app/languages/lt-LT.po b/app/languages/lt-LT.po new file mode 100644 index 0000000..26f62f0 --- /dev/null +++ b/app/languages/lt-LT.po @@ -0,0 +1,2068 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-04-16 20:33+0000\n" +"PO-Revision-Date: 2020-04-16 20:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: lt_LT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Neteisingas el.paštas" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Neteisingas vartotojo vardas" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Neteisingas slaptažodis" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Neteisingas svetainės režimas" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Iš el.pašto" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Laiškų siuntimo vartotojams el.paštas" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Įeinantis el. paštas" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Kontaktinės formos ir sistemos perspėjimų gavėjas." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Svetainės režimas" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Svetainės režimą galite pakeisti bet kada." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Bendruomenė" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Asmeninė" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Įdiegta versija yra v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Nepavyksta prisijungti prie %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Paskutinis galimas leidimas yra v%s" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Nereikia atnaujinti" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Sistemos failai jau atnaujinti" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Pradedamas v%s atsisiuntimas" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Atnaujinti nepavyko" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Trūksta %s failo" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Negalima išsaugoti failo" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Pasitikrinkite klaidas ir tęskite." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Patvirtinti" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Slaptažodžiai nesutampa" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "ar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "atšaukti" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "kraunama" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Redaguoti" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album." +msgstr[1] "Album." +msgstr[2] "Album." +msgstr[3] "Album." + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Pašalinti" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Uždaryti" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "paveiksl." +msgstr[1] "paveiksl." +msgstr[2] "paveiksl." +msgstr[3] "paveiksl." + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s albumai" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privatus" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Atminties talpa negali būti mažesnė nei dabartinis jos naudojimas (%s)" + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Neteisingas URL." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Turinys buvo pašalintas" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Rinktis" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album." +msgstr[1] "album." +msgstr[2] "album." +msgstr[3] "album." + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Aptiktas piktnaudžiavimas. Galite įkelti tik %limit% %content% per %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Be pavadinimo" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s paveikslėliai" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Perspėjimas: Turinys yra privatus. Pakeiskite privatumo lygį į \"viešą\" ir galėsite dalintis." + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Viešas" + +msgid "Me" +msgstr "Aš" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Nuoroda" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Slaptažodis" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "perž." +msgstr[1] "perž." +msgstr[2] "perž." +msgstr[3] "perž." + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "min." +msgstr[1] "min." +msgstr[2] "min." +msgstr[3] "min." + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "val." +msgstr[1] "val." +msgstr[2] "val." +msgstr[3] "val." + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "d." +msgstr[1] "d." +msgstr[2] "d." +msgstr[3] "d." + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "sav." +msgstr[1] "sav." +msgstr[2] "sav." +msgstr[3] "sav." + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mėn." +msgstr[1] "mėn." +msgstr[2] "mėn." +msgstr[3] "mėn." + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "m." +msgstr[1] "m." +msgstr[2] "m." +msgstr[3] "m." + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privatus įkėlimas" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top vartotojai" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Naujausia" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Seniausia" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Labiausiai žiūrima" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Naršyti" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Ieškoti" + +msgid "People" +msgstr "Žmonės" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Paveikslėlis" +msgstr[1] "Paveikslėliai" +msgstr[2] "Paveikslėliai" +msgstr[3] "Paveikslėliai" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Vartotojas" +msgstr[1] "Vartotojai" +msgstr[2] "Vartotojai" +msgstr[3] "Vartotojai" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Be apribojimo" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "naudojama" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "s." +msgstr[1] "s." +msgstr[2] "s." +msgstr[3] "s." + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "prieš %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "ką tik" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Skydelis" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Pamiršote slaptažodį?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Atnaujinti slaptažodį" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Aktyvuoti paskyrą" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Įrašykite savo el.paštą" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "El.paštas pakeistas" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Neteisingas Vartotojo vardas/El.paštas" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Vartotojas neturi el.pašto." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Užklausa atmesta" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Paskyra reikalauja aktyvacijos" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Paskyra jau yra aktyvuota" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Palaukite apie 15 minučių el.laiško. Taip pat galite bandyti vėliau dar kartą." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Atnaujinti slaptažodį %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Reikalauja patvirtinimo %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Sveiki atvykę į %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Šis el.paštas jau naudojamas" + +msgid "Password required" +msgstr "Būtinas slaptažodis" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Dalintis" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Dalinimosi kodas" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Pilna informacija" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistika" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "paveikslėliai" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albumai" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Vartotojai" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Nustatymai" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto versija" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "tikrinti atnaujinimus" + +msgid "Support" +msgstr "Pagalba" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP versija" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Serveris" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL versija" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL serverio informacija" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD biblioteka" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Failų įkėlimas" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Įjungta" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Išjungta" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maksimalus aprašymo dydis" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maksimalus vykdymo laikas" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sek." +msgstr[1] "%d sek." +msgstr[2] "%d sek." +msgstr[3] "%d sek." + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Atminties limitas" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Nuorodos" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Svetainė" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Turinys" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Skelbimai" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "paveikslėlio įkėlimas" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorijos" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Apsauga nuo floodo" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Namų puslapis" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Baneriai" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistema" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Kalbos" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Išorinė saugykla" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "El.paštas" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Socialiniai tinklai" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Išorinės tarnybos" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Užblokuoti IP" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Vietinis" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Išorinis" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Visi" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "ieškoti" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Neteisingas svetainės pavadinimas" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Neteisinga kalba" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Neteisinga laiko juosta" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Neteisingas įkėlimo saugojimo režimas" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Neteisingi įkeliamų failų pavadinimai" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Neteisingas miniatiūros plotis" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Neteisingas miniatiūros aukštis" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Neteisinga tema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Neteisingas dydis" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Neteisingas temos tonas" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Neteisingas temos paveikslėlių sąrašo dydis" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Neteisingas vartotojo id" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Neteisingas el.pašto režimas" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Neteisingas SMTP portas" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Neteisinga SMTP apsauga" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Neteisingas svetainės turinio privatumo režimas" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Neteisingas URL" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Neteisingas įkeliamo paveikslėlio kelias" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maks. galima %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Neteisingas SMTP serveris" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Neteisingas SMTP vartotojo vardas" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Apie" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Paveikslėlio ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Įkėlėjo ID" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Įkėlimo data" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Tiesioginės nuorodos" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Paveikslėlio nuoroda" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Paveikslėlio URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Miniatiūros URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Vidutinio dydžio URL" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Reikia prisijungti" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP adresas jau yra užblokuotas" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Dingę dydžiai" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Neteisinga rolė" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Toks vartotojo vardas jau naudojamas" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s atsijungęs." + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Netesinga vartotojo vardo/el.pašto kombinacija" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Prisijungti" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Paskyra" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profilis" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Susiję profiliai" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Laiškas buvo išsiųstas į %s el. paštą su elektroninio pašto aktyvavimo instrukcijomis" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Neteisingas vardas" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Neteisinga svetainė" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Neteisingas slaptažodis" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Naudokite naują slaptažodį" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Pakeitimai išsaugoti." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Slaptažodis pakeistas" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Slaptažodis sukurtas." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Neteisingi vartotojo vardo/el.pašto dydžiai" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "%s nustatymai" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Sukurti paskyrą" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Įkelti" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s paveikslėliai" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Išplėstinė paieška" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Atsitiktinis" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Pranešimai (%s)" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Mano profilis" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Atsijungti" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Gavome prašymą pakeisti el.paštą jūsų <a href=\"%u\">%n</a> paskyroje %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Proceso užbaigimui turite <a href=\"%s\">aktyvuoti savo el.paštą</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Taip pat galite kopijuoti ir įklijuoti URL adresą į naršyklę: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Jei tai buvote ne jūs - nekreipkite dėmesio į šį pranešimą." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Prašymas buvo pateiktas iš IP adreso: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Gavome prašymą užregistruoti %n paskyrą %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Proceso užbaigimui turite <a href=\"%s\">turite aktyvuoti savo paskyrą</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Gavome užklausą atnaujinti slaptažodį jūsų <a href=\"%u\">%n</a> paskyrai." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Tam, kad atnaujintumėte slaptažodį <a href=\"%s\">spauskite šią nuorodą</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Labas %n, sveiki atvykę į %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Dabar, kai jūsų paskyra sukurta - mėgaukitės įkeltomis nuotraukomis ir paveikslėliais, kurkite naujus albumus, dalinkitės jais su draugais." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Čia yra jūsų profilio puslapis: <a href=\"%u\">%n</a>. Nustatykite jį pagal savo skonį ir poreikius!." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Ačiū už registraciją" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Šis laiškas buvo išsiųstas iš %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Rinkitės paveikslėlius įkėlimui" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Įkėlimas baigtas" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Dėl tam tikrų klaidų sistema negalėjo apdoroti jūsų užklausos" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategorija" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Rinktis kategoriją" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Pažymėkite, jei įkėlimas neskirtas peržiūrėti visai šeimai" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Įkėlimas neskirtas peržiūrėti visai šeimai" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Įkėlimas" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "atšaukti likusius" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Pastaba: Kai kurie paveikslėliai negalėjo būti įkelti." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "sužinoti daugiau" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Peržiūrėkite <a data-modal=\"simple\" data-target=\"failed-upload-result\">klaidų ataskaitas,</a> jei norite sužinoti daugiau." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "uždaryti" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Pavadinimas" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "nebūtina" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Pažymėkite, jei paveikslėlis skirtas peržiūrėti ne visai šeimai" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Žymėti kaip nesaugų" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Aprašymas" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Trumpas paveikslėlio aprašymas" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Įkelti paveikslėlio URL" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Čia įkelkite paveikslėlio URL" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Sukurti albumą" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Perkelti į albumą" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Rinkitės jau esantį albumą ir patalpinkite jame ką tik įkeltą turinį. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir talpinti ką tik įkeltus elementus jame." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Pranešimas apie klaidą" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Peržiūros nuorodos" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML kodai" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML vidutinės kokybės nuoroda" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML miniatiūros nuoroda" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBkodai" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBkodo vidutinės kokybės nuoroda" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBkodo miniatiūros nuoroda" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Visi šie žodžiai" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Įveskite svarbius žodžius: trispalvė žiurkė terjeras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Tai tikslus žodis ar frazė" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Įdėkite tikslius žodžius į kabutes: \"žiurkių terjeras\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Nė vienas iš šių žodžių" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Įdėkite minusą prieš žodžius, kurių nenorite: -terjeras - \"Džeko Raselo\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Saugojimas" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP adresas" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albumo pavadinimas" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "perkelti į jau esantį albumą" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Albumo aprašymas" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Trumpas albumo aprašymas" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Kas gali matyti šį turinį" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privatus (tik man)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privatus (kitiems pagal nuorodą)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Vardas" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategorijos pavadinimas" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL raktas" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategorijos URL raktas" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Tik raidės, skaičiai ir brūkšneliai" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Kategorijos trumpas aprašymas" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Paveikslėlis be pavadinimo" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Path" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Galiojimo data" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Pavyzdys" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Kuriam laikui šis IP adresas bus užblokuotas? Palikite tuščią, jei blokuosite visam laikui." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Žinutė" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Teksto žinutė, HTML arba nukreipimo URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Esantis albumas" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Sukurti naują albumą" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Laikmenos pavadinimas" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Regionas" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Storage bucket" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Raktas" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Laikmenos raktas" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Storage secret" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Vartotojo vardas" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname or IP of the storage server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Server path" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Serverio slaptažodis" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Storage capacity" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Example: 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Storage URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "The system will map the images of this storage to this URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "žiūrėti daugiau" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Įkelti daugiau" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Pasirinkti viską" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Išvalyti pažymėtus" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Pasirinkimas" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Veiksmai" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Gauti dalinimosi kodus" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Priskirti kategoriją" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Žymėti kaip saugų" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Prisijungti su kita paskyra" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Nėra ką rodyti." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Redaguoti paveikslėlio detales" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Albumo redagavimo detalės" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Visi paveikslėliai bus perkelti į naujai sukurtą albumą. Taip pat galite perkelti paveikslėlius ir į jau <a class=\"modal-switch\" data-switch=\"move-existing-album\">esantį albumą</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Rinkitės jau esantį albumą ir perkelkite paveikslėlius. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir perkelti paveikslėlius ten." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Rinkitės jau esantį albumą, jei norite perkelti ten savo pakeislėlius. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir perkelti paveikslėlius ten." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Rinkitės jau esantį albumą, jei norite perkelti ten savo pakeislėlius. Taip pat galite <a class=\"modal-switch\" data-switch=\"move-new-album\">sukurti naują albumą</a> ir perkelti paveikslėlius ten." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Visi atrinkti vaizdai bus priskirtas šiai kategorijai." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Nėra kategorijų." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Patvirtinkite turinio žymėjimą kaip saugų" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Ar tikrai norite pažymėti turinį kaip saugų?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Patvirtinkite turinio žymėjimą kaip nesaugų" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Ar tikrai norite pažymėti turinį kaip nesaugų?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Patvirtinti šalinimą" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Ar tikrai norite pašalinti šį turinį? Veiksmas vėliau negalės būti atšauktas" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Ar tikrai norite pašalinti visą pasirinktą turinį? Veiksmas vėliau negalės būti atšauktas" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Svečiai" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Nuo %s" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Puslapis neegzistuoja" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Puslapis nerastas" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Ko nors ieškoti" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Vartotojas buvo pašalintas" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Jūsų paskyra beveik sukurta" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Laiškas su paskyros aktyvavimo instrukcijomis buvo išsiųstas į %s . Paskyros aktyvavimo nuoroda galios 48 valandas. Jei laiško negaunate - pasitikrinkite savo el.pašto spamo ir šiukšlių direktorijas." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Aktyvuoti iš naujo" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Jūs sėkmingai pakeitėte paskyros el.paštą į %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Eiti į mano profilį" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Patvirtinimo nuoroda bus išsiųsta šiuo el.paštu kartu su instrukcija, kaip aktyvuoti paskyrą." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Jūsų el.pašto adresas" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Vartotojo vardas arba el.pašto adresas" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Prisijungti dabar" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Jūsų naujas slaptažodis" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Pakartotinai įrašyti naują slaptažodį" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Pašalinti albumą" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Albumo nuoroda" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Užimta vietos" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Statusas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administratorius" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "El.pašto adresas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Svetainės pavadinimas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Svetainės aprašymas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Vartotojo ID" + +msgid "Privacy" +msgstr "Privatumas" + +msgid "Contact" +msgstr "Kontaktai" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Ar tikrai norite pašalinti šį paveikslėlį? Veiksmo atšaukti nebus galima" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Pašalinti paveikslėlį" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Kalba pagal nutylėjimą" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Išsaugoti pakeitimus" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Įkelta į %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Įkelta %s" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Dalintis paveikslėliu" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Šiame albume" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Dar neturite paskyros? <a href='%s'>Registruokitės</a> dabar." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Atsijungta" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Į namų puslapį" + +msgid "Search results" +msgstr "Paieškos rezultatai" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Ar tikrai norite pašalinti šį vartotoją? Veiksmo atšaukti nebus galima." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Pašalinti vartotoją" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Registracijos data" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Naujienlaiškis" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Kalba" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Laiko zona" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Dabartinis slaptažodis" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Įrašykite dabartinį slaptažodį" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Naujas slaptažodis" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Patvirtinti naują slaptažodį" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Pakartoti slaptažodį" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Įkelti naują paveikslėlį" + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://jususvetaine.lt" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Biografija" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Žiūrėti visus mano paveikslėlius" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Įkelti profilio fono paveikslėlį" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Keisti fono paveikslėlį" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Pašalinti fono paveikslėlį" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Redaguoti profilį" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Sekti" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Jums draudžiama naudotis šia svetaine." + +msgid "Plugin" +msgstr "Įskiepis" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Bendrieji klausimai/komentarai" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA skundas" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Neteisinga žinutė" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Neteisinga tema" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Pašto klaida" + +msgid "Message sent" +msgstr "Žinutė išsiųsta" + +msgid "Your name" +msgstr "Jūsų vardas" + +msgid "Subject" +msgstr "Tema" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informacija" + diff --git a/app/languages/nb.po b/app/languages/nb.po new file mode 100644 index 0000000..f71f306 --- /dev/null +++ b/app/languages/nb.po @@ -0,0 +1,5245 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2019-12-12 15:27+0000\n" +"PO-Revision-Date: 2019-12-12 15:27+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Ugyldig e-post" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Ugyldig brukernavn" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Ugyldig passord" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Ugyldig modus" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Avsenders e-postadresse" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Avsenders adresse for e-post til brukere." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Innkommende e-postadresse" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Mottaker for kontaktskjema og systemvarsler." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Modus for nettsted" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Du kan bytte nettstedsmodus når som helst." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Samfunn" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Personlig" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Installert versjon er v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Kan ikke koble til %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Siste tilgjengelige versjon er v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Oppdatering nødvendig, fortsetter til nedlasting" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Ingen oppdatering er nødvendig" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Systemfiler er allerede oppdaterte" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Starter nedlasting av v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Lastet ned v%s, fortsetter til utpakking" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Forsøker å pakke ut v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Utpakking fullført" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Fortsetter installasjon av oppdateringen" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Oppdatering mislyktes" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Oppdatering pågår" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Mangler fil %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Ugyldig lisensinformasjon" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Ugyldig lisensnøkkel" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Kan ikke lagre filen" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Kan ikke laste ned %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Kan ikke pakke ut %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Kan ikke opprette %s mappen - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Kan ikke oppdatere %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Sjekk feil i skjemaet for å fortsette." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Du må skrive inn et albumnavn." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Bekreft" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Velg eksisterende album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "En feil oppsto. Vennligst forsøk senere." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Velg en gyldig bildefil." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Velg et bilde på maksimalt %s størrelse." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profilbilde oppdatert." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Profilbakgrunnsbilde oppdatert." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Profilbakgrunnsbilde slettet." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Feil ved sletting av profilbakgrunnsbilde." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Passordene er ikke like" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Oppdatering tilgjengelig v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "En oppdatering for systemet er tilgjengelig. Du kan automatisk laste ned og installere denne oppdateringen eller gå til %s for å laste ned filen manuelt." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Utgivelsesnotat for denne oppdateringen er:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Oppdater nå" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "eller" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "avbryt" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Nettstedet kjører siste %s versjon." + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Laster inn" + +msgid "Toggle select" +msgstr "Merk valg" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Like" + +msgid "Toggle flag" +msgstr "Merk flagg" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Rediger" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Album" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Slett" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Lukk" + +msgid "Previous" +msgstr "Forrige" + +msgid "Next" +msgstr "Neste" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Utklippstavlebilde" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Fil for stor." + +msgid "Invalid or unsupported file format." +msgstr "Ugyldig eller ikke støttet filformat." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Noen filer kunne ikke legges til" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "bilde" +msgstr[1] "bilder" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%ss album" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Bilderedigering fullført." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privat" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album oppdatert uten problemer." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Ugyldig URL-nøkkel." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Kategori-URL-nøkkel er allerede i bruk." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategorien er slettet." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Kategori %s lagt til." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Ugyldig utløpsdato." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s er allerede blokkert." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s blokkert." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP-blokkering slettet." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Vennligst fyll ut alle de påkrevde feltene." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Ugyldig verdi for lagringskapasitet. Sørg for å bruke et gyldig format." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Lagringskapasiteten kan ikke være lavere enn dagens bruk (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Ugyldig URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Lagring er vellykket redigert." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Bruker vellykket lagt til." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Innholdet er slettet." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Innholdet har blitt flyttet." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Velg" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Fjern merking" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Innholdet har blitt redigert." + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Uten navn" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%ss bilder" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Merk: Dette innholdet er privat, men alle som har linken vil være i stand til å se dette." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Merk: Dette innholdet er passordbeskyttet. Husk å levere passord for å dele." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "PS: Dette innlegget er privat. Endre personvern til \"offentlig\" for å dele." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privat" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Offentlig" + +msgid "Me" +msgstr "Meg" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Lenke" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Passord" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "visning" +msgstr[1] "visninger" + +msgid "After %n %t" +msgstr "Etter %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minutt" +msgstr[1] "minutter" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "time" +msgstr[1] "timer" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dag" +msgstr[1] "dager" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "uke" +msgstr[1] "uker" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "måned" +msgstr[1] "måneder" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "år" +msgstr[1] "år" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Ikke slett automatisk" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplikat lastet opp" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privat opplasting" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Liker" +msgstr[1] "Liker" + +msgid "Recent" +msgstr "Nylig" + +msgid "Trending" +msgstr "Trender" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Toppbrukere" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Nylige" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Eldste" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Mest vist" + +msgid "Popular" +msgstr "Populært" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Mest likt" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Utforsk" + +msgid "Animated" +msgstr "Animert" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Søk" + +msgid "People" +msgstr "Folk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Bilde" +msgstr[1] "Bilder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Bruker" +msgstr[1] "Brukere" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Kan ikke opprette %s mappe målet" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Kan ikke åpne %s for skriving" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Lokalt" + +msgid "Can't insert storage." +msgstr "Kan ikke sette lagring." + +msgid "Can't update storage details." +msgstr "Kan ikke oppdatere lagringsdetaljer." + +#, php-format +msgid "requires %s" +msgstr "krever %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Ubegrenset" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "brukt" + +msgid "Private profile" +msgstr "Privat profil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekund" +msgstr[1] "sekunder" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s siden" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "for kort tid siden" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Kontrollpanel" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Det er en oppdatering tilgjengelig for systemet. Gå til %s for å laste ned og installere denne oppdateringen." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Systemdatabasen er utdatert. Du må kjøre <a href=\"%s\">oppdateringsverktøyet</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Nettstedet er i vedlikeholdsmodus. For å endre tilbake, gå til <a href=\"%s\">Dashboard > Innstillinger</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Du bør deaktivere PHP-feilrapportering for produksjonsmiljøer. Gå til <a href='%s'>Systeminnstillinger</a>for å endre dette." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Du har ikke endret standard e-postinnstillinger. Gå til <a href='%s'>E-postinnstillinger</a> for å fikse dette." + +msgid "There is an update available for your Chevereto based website." +msgstr "Det er en oppdatering tilgjengelig for ditt Chevereto-baserte nettsted." + +msgid "admin dashboard" +msgstr "administratordashboard" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Du kan bruke denne oppdateringen direkte fra %a eller laste den ned fra %s og deretter manuelt installere den." + +#, php-format +msgid "view on %s" +msgstr "sett på %s" + +msgid "cookie policy" +msgstr "retningslinjer for informasjonskapsler" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Vi bruker våre egne samt tredjeparts informasjonskapsler for å forbedre din opplevelse av nettstedet og tjenestene våre. Hvis du fortsetter å bruke nettstedet betyr det at du aksepterer våre %cookie_policy_link." + +msgid "I understand" +msgstr "Jeg forstår" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Du har blitt sperret fra å benytte denne siden." + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Føl deg fri til å bla gjennom og oppdage alle mine delte bilder og album." + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Vis alle mine bilder" + +msgid "Plugin" +msgstr "Utvidelse" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Forespørsel avslått" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Denne siden eksisterer ikke" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Glemt passord?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Nullstill passord" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Send kontoaktivering på nytt" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Legg inn din e-postadresse" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-post endret" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s sier du er en robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Ugyldig brukernavn/e-postadresse" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Brukeren har ikke registrert e-postadresse." + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Kontoen må aktiveres for å benytte denne funksjonen" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Konto er allerede aktivert" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Vent inntil 15 minutter på e-posten. Du kan forsøke igjen senere." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Nullstill ditt passord på %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Bekreftelse kreves på %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Velkommen til %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "E-postadressen er allerede i bruk" + +msgid "Password required" +msgstr "Passord kreves" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Del" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Integrasjonskoder" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Detaljer" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album lagres hos %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistikk" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Bilder" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Album" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Brukere" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Innstillinger" + +msgid "Bulk importer" +msgstr "Masseimportering" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto-versjon" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "installer oppdatering" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "se etter oppdateringer" + +msgid "Support" +msgstr "Brukerstøtte" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Trenger du hjelp? Gå til %s for å få hjelp raskt." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP-versjon" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL-versjon" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL-serverinformasjon" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD-bibliotek" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Filopplastinger" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Aktivert" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Deaktivert" + +msgid "Max. upload file size" +msgstr "Maks opplastingsstørrelse" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maks poststørrelse" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maks kjøretid" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekunder" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Minnebegrensning" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Lenker" + +msgid "Documentation" +msgstr "Dokumentasjon" + +msgid "Changelog" +msgstr "Endringslogg" + +msgid "Bug tracking" +msgstr "Problemsporing" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Nettside" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Innhold" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Sider" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Oppføringer" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Bildeopplastning" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorier" + +msgid "Consent screen" +msgstr "Samtykkeskjema" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Spambeskyttelse" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Utseende" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Hjemmeside" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Bannere" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "System" + +msgid "Routing" +msgstr "Ruting" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Språk" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Ekstern lagring" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-post" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sosiale nettverk" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Eksterne tjenester" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP-blokkeringer" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Andre innstillinger" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Verktøy" + +msgid "Can't delete all homepage cover images" +msgstr "Kan ikke slette alle forsidebilder" + +msgid "Homepage cover image deleted" +msgstr "Forsidebilde slettet" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokal" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Ekstern" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Alle" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "Søk i innhold" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Legg til side" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Rediger side %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Siden har blitt lagt til." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Siden har blitt slettet." + +msgid "homepage" +msgstr "hjemmeside" + +#, php-format +msgid "Before main title (%s)" +msgstr "Før hovedtittel (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Etter forespørsel om handling (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Etter cover (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Etter oppføring (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Før sideinndeling" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Etter sideinndeling" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Innhold (bilde og album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Tab om kolonne" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Før kommentarer" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Bildeside" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Innvendig visning topp (bildeside)" + +#: ../../../app/routes/route.dashboard.php:413 +#: ../../../app/routes/route.dashboard.php:417 +msgid "Expected banner size 728x90" +msgstr "Forventet bannerstørrelse 728x90" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Innvendig visning bunn (bildeside)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Etter bildeviser (bildeside)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Før header (bildeside)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Etter header (bildeside)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Bunn (bildeside)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Albumside" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Før header (albumside)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Etter header (albumside)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Brukerprofilside" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Etter toppen (brukerprofil)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Før oppføring (brukerprofil)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Utforsk siden" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Etter toppen (utforsk siden)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "ITPJ" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Ugyldig navn på nettsted" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Ugyldig språk" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Ugyldig tidssone" + +#, php-format +msgid "Invalid value: %s" +msgstr "Ugyldig verdi: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Ugyldig lagringsmetode" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Ugyldig filnavngiving på opplasting" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Ugyldig bredde på miniatyrbilde" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Ugyldig høyde på miniatyrbilde" + +msgid "Invalid medium size" +msgstr "Ugyldig middels-størrelse" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Ugyldig vannmerkeprosent" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Ugyldig gjennomsiktighet på vannmerke" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Ugyldig tema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Ugyldig verdi" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Ugyldig tematone" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Ugyldig hovedfarge på tema" + +#: ../../../app/routes/route.dashboard.php:632 +msgid "Invalid theme top bar color" +msgstr "Ugyldig farge på temaets toppfarge" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Ugyldig farge på temaets knappefarge" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Ugyldig størrelse på temaets bildeoppføring" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Ugyldig brukerID" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Ugyldig e-post-modus" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Ugyldig SMTP-port" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Ugyldig SMTP-sikkerhet" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Ugyldig personlig modus brukerID" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Ugyldig eller reservert rute" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Ugyldig personvernmodus for nettstedet" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Ugyldig personvernmodus for innhold på nettstedet" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Ugyldig stil for nettstedet" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Ugyldig farge på hjemmesidens handlingsknapp" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Ugyldig funksjonalitet på hjemmesidens handlingsknapp" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Ugyldig tittel" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Ugyldig status" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Ugyldig type" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Ugyldig synlighet" + +msgid "Invalid internal type" +msgstr "Ugyldig intern type" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Ugyldig målattributt" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Ugyldig rel-attributt" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Ugyldig ikon" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Ugyldig URL-nøkkel" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Ugyldig filbane" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Ugyldig lenke-URL" + +msgid "Invalid user minimum age" +msgstr "Ugyldig minstealder" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Bare alfanumeriske, bindestrek og understrek-tegn er tillatte" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Ugyldig URL" + +msgid "Routes can't be the same" +msgstr "Rutene kan ikke være like" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Ugyldig opplastningssti" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Ugyldig oppfordring til handling-URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maks tillatt %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Kan ikke tilordne %m til en eksisterende mappe (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Kan ikke tilordne %m til en eksisterende rute (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Kan ikke tilordne %m til %r (brukernavnkollisjon)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Ugyldig SMTP-server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Ugyldig SMTP-brukernavn" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Denne URL-nøkkelen brukes allerede av en annen side (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Denne filbanen er allerede i bruk av en annen side (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Kan ikke lagre sideinnholdet: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Følger" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Om oss" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Bilde-ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Opplastnings-IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Blokker IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP allerede blokkert" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Opplastningsdato" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Bilde %i i %a album" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Bilde %i i kategorien %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Bilde %i lagret i %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direktelenker" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Bildelenke" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Bildeadresse" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Miniatyrbilde" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Medium URL" + +msgid "Full image" +msgstr "Bildet i fullstørrelse" + +msgid "Full image (linked)" +msgstr "Bilde i fullstørelse (lenke)" + +msgid "Medium image (linked)" +msgstr "Medium størrelse (1024px bredde) (lenke)" + +msgid "Thumbnail image (linked)" +msgstr "Miniatyrbilde (lenke)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Login kreves" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP-adressen er allerede blokkert" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Mangler verdier" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Ugyldig rolle" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Brukernavnet er allerede i bruk" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Legg inn et passord eller en annen sosial tilkobling før du sletter %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Legg til en e-post eller annen sosial tilkobling før %s slettes." + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s har blitt koblet fra." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Test e-post fra %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Dette er bare en test" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Test e-post sendt til %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Laster ned %s data" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Følger bruker %s." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Følger ikke bruker %s lenger." + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Innhold likt" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Innhold mislikt" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u liker ditt %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u har begynt å følge deg" + +msgid "A private user" +msgstr "En privat bruker" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Feil kombinasjon av brukernavn/e-postadresse og passord" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Logg inn" + +msgid "Upload images" +msgstr "Last opp bilder" + +msgid "Upload plugin" +msgstr "Last opp utvidelse" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Bilderesultater for %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Albumresultater for %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Brukerresultater for %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Konto" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Tilkoblede kontoer" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Ugyldig utløpsdato for bilde: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "En e-post har blitt sent til %s med instruksjoner om hvordan man aktiverer denne e-posten." + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Ugyldig navn" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Ugyldig nettadresse" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Feil passord" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Bruk et nytt passord" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Endringene ble lagret." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Passordet har blitt endret" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Passord har blitt opprettet." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Ugyldige verdier for brukernavn/e-postadresse" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Innstillinger for %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Du må akseptere retningslinjene for bruk" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Du må være minst %s år for å benytte denne websiden." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Opprett konto" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Last opp bilde" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%ss bilder" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultater for" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Likt av %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Mine liker" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Følgere" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) album på %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) på %w" + +msgid "Discovery" +msgstr "Oppdagelse" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Avansert søk" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Tilfeldig" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Notiser (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Varsler" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Du har ingen varsler" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Min profil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Logg ut" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Vi har mottatt en forespørsel om å endre e-postadressen for konto <a href=\"%u\">%n</a> på %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "For å fullføre registreringen må du <a href=\"%s\">aktivere din konto</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativt kan du kopiere og lime inn denne linken i din nettleser: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Hvis du ikke har bedt om dette kan du ignorere denne e-posten." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Denne forespørselen ble sendt fra IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Vi har mottatt en forespørsel for registrering av konto med brukernavn %n på %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "For å fullføre registreringen må du <a href=\"%s\">aktivere din konto</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Vi har mottatt en forespørsel om å endre passord på konto <a href=\"%u\">%n</a>" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "For å nullstille passordet ditt, <a href=\"%s\">trykk på denne lenken</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hei %n. Velkommen til %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Nå som kontoen din er klar kan du kose deg med alle fordelene. Lage album, laste opp bilder, dele med venner og mye mer du vil oppdage." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Forresten, vi har også gitt deg din egen profil: <a href=\"%u\">%n</a>. Tilpass den og gjør som du vil!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Takk for at du registrerte deg" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Denne e-posten er sendt fra %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Dra bildene du ønsker å laste opp, hit" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Velg bilde(r) som skal lastes opp" + +msgid "browse from your computer" +msgstr "finn filer på din datamaskin" + +msgid "add image URLs" +msgstr "legg til bilde-URLer" + +msgid "You can also %i or %u." +msgstr "Du kan også %i eller %u." + +msgid "browse from your device" +msgstr "se gjennom fra din enhet" + +msgid "take a picture" +msgstr "ta et bilde" + +msgid "You can also %i, %c or %u." +msgstr "Du kan også %i, %c eller %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Rediger eller endre størrelse på hvilket som helst bilde ved å klikke på forhåndsvisningen" + +msgid "Edit any image by touching the image preview" +msgstr "Rediger et bilde ved å ta på miniatyrbildet" + +msgid "your computer" +msgstr "din datamaskin" + +msgid "You can add more images from %i or %u." +msgstr "Du kan legge til flere bilder fra %i eller %u." + +msgid "your device" +msgstr "din enhet" + +msgid "You can add more images from %i, %c or %u." +msgstr "Du kan legge til flere bilder fra %i, %c eller %u." + +msgid "Uploading %q %o" +msgstr "Laster opp %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "fullført" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Køen lastes opp. Dette burde bare ta noen få sekunder å fullføre." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Opplasting fullført" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Opplastet innhold lagt til i %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Du kan %c med innholdet du nettopp lastet opp, eller %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Du kan %c med innholdet du nettopp lastet opp." + +msgid "create a new album" +msgstr "opprett nytt album" + +msgid "move it to an existing album" +msgstr "flytt til eksisterende album" + +msgid "You must %s or %l to save this content into your account." +msgstr "Du må %s eller %l for å lagre dette innholdet til kontoen din." + +msgid "create an account" +msgstr "opprett konto" + +msgid "sign in" +msgstr "logg inn" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Ingen %s ble lastet opp." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Noe gikk galt og systemet kunne ikke fullføre handlingen." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Velg kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Trykk her dersom bildet er uegnet for personer under 18 år" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Ikke egnet for barn" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Laster opp" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "avbryt gjenstående" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Advarsel: Noen av bildene kunne ikke lastes opp." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Lær mer" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Sjekk <a data-modal=\"simple\" data-target=\"failed-upload-result\">feilmeldingen</a> for mer informasjon." + +#, php-format +msgid "Register to get %s" +msgstr "Registrer deg for å få %s" + +msgid "reset" +msgstr "nullstill" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "lukk" + +msgid "copy" +msgstr "kopier" + +msgid "insert" +msgstr "sett inn" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Fjern" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Rediger bilde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Tittel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "valgfritt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Endre størrelse på bilde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Bredde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Høyde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "NB: Animerte GIF-bilder vil ikke få endret størrelse." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Slett bilde automatisk" + +msgid "Sign up" +msgstr "Registrer deg" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s for å kunne tilpasse eller deaktivere automatisk sletting av bilder." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Trykk her dersom bildet er uegnet for barn" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Marker som uegnet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Beskrivelse" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Kort beskrivelse av bildet" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Legg inn bildeadresse" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Lim inn bildeadressen her" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Opprett album" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Det opplastede innholdet vil bli flyttet til det nylig opprettede albumet." + +msgid "existing album" +msgstr "eksisterende album" + +msgid "You can also move the content to an %a." +msgstr "Du kan også flytte innholdet til en %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Du må %s eller %l hvis du ønsker å endre dette albumet senere." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Flytt til album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Velg et eksiterende album for å flytte bildene du har lastet opp. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte bildene dit." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Feilmelding" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "album" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Visningslenker" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML-koder" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML-bilde" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML full link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML medium link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML minibilde-link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBkoder:" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBkode (full):" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBkode (fullstørrelse med lenke)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBkode (mediumstørrelse med lenke)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBkode (miniatyrbilde med lenke)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Full markdown" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown full linket" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown medium linket" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown thumbnail linket" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Alle disse ordene" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Skriv inn søkeord" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Eksakt ord eller frase" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Skriv inn eksakte ord i anførselstegn: \"20kg lange\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Ingen av disse ordene" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Sett et minustegn foran ord du ikke vil ha : -lange -\"20kg\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Lagring" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP-adresse" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albumnavn" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "flytt til eksisterende album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Albumbeskrivelse" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Kort beskrivelse av albumet" + +msgid "Album privacy" +msgstr "Privat album?" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Hvem kan se dette innholdet" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privat (bare meg)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privat (alle med link)" + +msgid "Private (password protected)" +msgstr "Privat (passordbeskyttet)" + +msgid "Album password" +msgstr "Albumpassord" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Navn" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategorinavn" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL-nøkkel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategori URL-nøkkel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Bare bokstaver, tall og bindestrek" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Kort beskrivelse av denne kategorien" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Bilde uten navn" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Sti" + +msgid "Local path (absolute)" +msgstr "Lokal sti (absolutt)" + +msgid "Directory structure" +msgstr "Mappestruktur" + +msgid "Parse top level folders as users (username)" +msgstr "Tolk toppnivåmapper som brukere (brukernavn)" + +msgid "Parse top level folders as albums" +msgstr "Tolk toppnivåmapper som album" + +msgid "Don't parse folders" +msgstr "Ikke tolk mapper" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Når toppnivåmapper tolkes som brukere, vil andrenivåmapper bli tolket som brukeralbum. Tolking av toppnivåmapper som album legger disse til som gjestealbum." + +msgid "Threads" +msgstr "Tråder" + +msgid "Select number of threads" +msgstr "Velg antall tråder" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Dette avgjør hvor intensiv og rask importeringsprosessen vil være. Ikke bruk flere enn %s tråder på en delt server." + +msgid "You can use wildcard * characters." +msgstr "Du kan bruke jokertegn (*)." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Utløpsdato" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "ÅÅÅÅ-MM-DD TT:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Eksempel" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Frem til hvilken dato skal IP-adressen blokkeres? La stå blank om du ikke ønsker utløpsdato." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Melding" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Tekstmelding, HTML eller en nettadresse for viderekobling" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Eksisterende album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "opprett nytt album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Lagringsnavn" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "lagringsregion" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Lagringsplass" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Nøkkel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Lagringsnøkkel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Hemmelig" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Lagringshemmelighet" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Privatnøkkel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON-nøkkel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Du trenger en <a %s>tjenestekonto</a> for dette." + +msgid "Service name" +msgstr "tjenestenavn" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identitets-URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identitet API-endepunkt" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API-endepunkt for Openstack-identitet" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Brukernavn" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Beholder" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Lagerbeholder" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Leietaker-ID" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Leietaker-ID (konto-ID)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Leietakers navn" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Leietakers navn (brukernavn)" + +msgid "Storage endpoint" +msgstr "Endepunkt for lagring" + +msgid "Server address" +msgstr "Serveradresse" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostnavn eller IP-adresse til lagringsserveren" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Serversti" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Absolutt sti hvor filene vil lagres i kontekst av %p-innloggingen. Bruk %s for rotsti." + +msgid "Server login" +msgstr "Serverinnlogging" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Serverpassord" + +msgid "Local path" +msgstr "Lokal sti" + +msgid "Local path where the files will be stored" +msgstr "Lokal sti hvor filene vil bli lagret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Lagringskapasitet" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Eksempel: 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Denne lagringsplassen vil bli deaktivert når brukt plass når denne grensen. La stå tom eller skriv inn null for ubegrenset." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "lagrings-URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Systemet vil koble bildene mot lagringen på denne adressen." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "Se mer" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Last inn mer" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Velg alle" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Velg ingen" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Utvalg" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Handling" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Hent integrasjonskoder" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Tildel kategori" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Merk som trygt" + +msgid "Create new album" +msgstr "Opprett nytt album" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Logg inn med en annen konto" + +msgid "Home" +msgstr "Hjem" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Ingenting å vise her." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Rediger bildedetaljer" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Endre albumdetaljer" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Alle bildene vil bli flyttet til det nyopprettede albumet. Du kan også flytte bildene til et <a class=\"modal-switch\" data-switch=\"move-existing-album\">eksisterende album</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Velg et eksisterende album å flytte bildet til. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte bildet dit." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Velg et eksisterende album å flytte albuminnhold til. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte album innholdet der." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Velg et eksisterende album å flytte bildene til. Du kan også <a class=\"modal-switch\" data-switch=\"move-new-album\">opprette et nytt album</a> og flytte bildene dit." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "De valgte bildene vil bli tilordnet denne kategorien." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Det finnes ingen kategorier." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Flagget bekrefter innhold som trygt" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Er du sikker på du vil flagge dette innholdet som trygt?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Flagg dette innholdet som utrygt?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Er du sikker på at du ønsker å flagge dette innholdet som utrygt?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Bekreft sletting" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Er du sikker på at du vil slette? Dette kan ikke angres." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Er du sikker på at du vil slette alt det merkede innholdet? Dette kan ikke angres." + +msgid "Fullscreen" +msgstr "Fullskjerm" + +msgid "Exit fullscreen" +msgstr "Avslutt fullskjerm" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Gjest" + +msgid "Keyboard shortcuts" +msgstr "Tastatursnarveier" + +msgid "Uploaded by guest" +msgstr "Lastet opp av gjest" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Fra %s" + +msgid "Uploaded by private" +msgstr "Lastet opp av privat" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "av %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Merk som utrygt innhold" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Den etterspurte siden ble ikke funnet." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Søk etter noe annet" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Denne brukeren har blitt slettet" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Kontoen din er nesten klar" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "En e-post har har blitt sendt til %s med instruksjoner for aktivering av konto. Aktiveringslinken er gyldig i 48 timer. Hvis du ikke har mottatt e-posten, sjekk spamfilteret ditt." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Send e-post med aktiveringslink på nytt" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Du har endret kontoe-post til %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Gå til min profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "En bekreftelseslenke vil bli sendt til denne e-posten med detaljer for å aktivere kontoen din." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Din e-postadresse" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Utfør" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "En e-post med instruksjoner for å nullstille passordet ditt har blitt sendt til e-postadressen du har registrert. Hvis du ikke mottar instruksjonene, sjekk spamfilteret ditt." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Det har allerede blitt sendt en e-post for å nullstille ditt passord. Hvis du ikke har mottatt e-posten, sjekk spamfilteret ditt." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Send på nytt" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Angi brukernavn eller epostadresse for å fortsette. Du kan måtte sjekke søppelpostmappen din eller legge til %s på en klareringsliste (whitelist)" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Brukernavn eller e-postadresse" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Passordet ditt er endret. Du kan nå logge inn med det nye passordet." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Logg inn nå" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Skriv inn ditt nye passord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "minst %d tegn" + +msgid "Password strength" +msgstr "Passordstyrke" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Skriv inn ditt nye passord igjen" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "En e-post til %s er sendt med instruksjoner for å aktivere kontoen din. Hvis du ikke mottar instruksjonene prøve å sjekke søppelpost eller spam-filtre." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Dette innholdet er privat" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Er du sikker på at du vil slette dette albumet og alle bildene? Dette kan ikke angres." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Slett album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Du liker dette" + +msgid "Upload to album" +msgstr "Last opp til album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Album-lenke" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Vennligst les og aksepter følgende betingelser før du fortsetter:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Dette nettstedet kan inneholde informasjon, linker og bilder av eksplisitt seksuell natur. Hvis du er under %s år, blir støtt av slikt materiale eller om lokal lovgivning forbyr visning av slikt materiale, bør du ikke fortsette registreringen.\n\nJeg bekrefter at jeg er minst %s år, og at det som voksen er min umistelige rett til å motta/vise materiale av eksplisitt seksuell natur. Jeg bekrefter med dette at jeg ønsker å motta/vise materiale av eksplisitt seksuell natur.\n\nJeg synes ikke at seksuelle omgang mellom samtykkende voksne er verken støtende eller obskønt. Visning, lesing og nedlasting av materiale av eksplisitt seksuell natur bryter ikke normer eller regler for mitt lokalsamfunn, by, fylke eller land.\n\nDet materialet av eksplisitt seksuell natur jeg ser på er for mitt eget personlig bruk, og jeg vil ikke tillate mindreårige å se dette materialet.\n\nJeg er selv ansvarlig for eventuelle uriktige opplysninger eller juridiske konsekvenser av visning, lese eller laste ned materiale av eksplisitt seksuell natur fra dette nettstedet .\n\nDette samtykket på skjerm utgjør en juridisk bindende avtale mellom denne nettsiden og deg, og/eller enhver virksomhet som du har noen juridisk eller likeverdig interessei. Hvis noen del av denne avtalen anses ugjennomførlig av en kompetent domstol, skal det ikke påvirke gyldigheten av de andre deler av avtalen." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Ved å klikke på \"Jeg aksepterer\" erklærer du at du har lest og forstått alle vilkårene nevnt ovenfor." + +msgid "I Agree" +msgstr "Jeg aksepterer" + +msgid "documentation" +msgstr "dokumentasjon" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "Lær mer om %s på vår %d." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Diskplass brukt" + +msgid "Add import job" +msgstr "Legg til importeringsjobb" + +#, php-format +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure. You can learn more about the folder structure, adding metadata, and all about this tool in our %d." +msgstr "Dette verktøyet lar deg masseimportere innhold til nettstedet ved å angi en systemsti der innholdet du ønsker å importere, ligger. Det støtter importering av brukere, album og bilder basert på en mappestruktur. Du kan lære mer om mappestrukturen, å legge til metadata og alt annet om dette verktøyet i %d." + +msgid "Process import" +msgstr "Prosessér importering" + +#, php-format +msgid "Top level folders as %s" +msgstr "Toppnivåmapper som %s" + +msgid "Actions" +msgstr "Handlinger" + +msgid "Process" +msgstr "Prosessér" + +msgid "Pause" +msgstr "Pause" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Process log" +msgstr "Progresjonslogg" + +msgid "Errors" +msgstr "Feil" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Vil du virkelig fjerne import-IDen %s?" + +msgid "Queued" +msgstr "I kø" + +msgid "Working" +msgstr "Jobber" + +msgid "Paused" +msgstr "Pauset" + +msgid "Canceled" +msgstr "Avbrutt" + +msgid "Completed" +msgstr "Fullført" + +msgid "Parser" +msgstr "Tolker" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Legg til bruker" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rolle" + +msgid "Manager" +msgstr "Håndterer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrator" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-postadresse" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Denne innstillingen er deaktivert når personlig webside modus benyttes." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Legg til kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Legg til en IP-blokkering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Legg til lagringsplass" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Returner til sider" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Navn på nettsted" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Tittel på nettsted" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Beskrivelse av nettsted" + +msgid "Automatic" +msgstr "Automatisk" + +msgid "Forced" +msgstr "Tvunget" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a vil bruke HTTPS-deteksjon på serversiden (anbefalt). %f vil bruke HTTPS uavhengig av serveroppsettet ditt. %d for å ikke bruke HTTPS i det hele tatt." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Dette kontrollerer kun protokollen brukt i URLer, det vil ikke forvandle nettstedet ditt til et gyldig HTTPS-nettsted med mindre serveren er satt opp til å støtte og bruke HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Standard tidssone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Velg region" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Tillat søk etter bilder, album og brukere basert på en egendefinert søkestreng." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Aktiverer visning av offentlige bilder. Det aktiverer også kategorier." + +msgid "guests" +msgstr "gjester" + +msgid "Enables explore for guests." +msgstr "Aktiverer utforsking for gjester." + +msgid "Enables to browse images randomly." +msgstr "Aktiverer mulighet for å bla tilfeldig i bilder" + +msgid "Likes" +msgstr "Liker" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Tillat brukere å like innhold" + +msgid "Followers allows users to follow each other." +msgstr "Følgere tillater brukere å følge hverandre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Personlig modus målbruker" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Bruker-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Din bruker-ID er: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Numerisk ID for målbrukeren for personlig modus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Ruting for personlig modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Tilpasset rute for å tilordne /brukernavn til /noe. Bruk \"/\" å tilordne til hjemmesiden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Nettstedsmodus for personvern" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Privatmodus vil gjøre siden tilgjengelig kun for registrerte brukere." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Innhold privatmodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Standard" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Tving privat (egen)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Tvinge privat (alle med link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Tvunget personvernmodus vil overstyre brukers valg av personvern." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Sidetittel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Sidestatus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktiv side" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Inaktiv side (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "bare aktive sider vil være tilgjengelige." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Type" + +msgid "Terms of service" +msgstr "Betingelser for bruk" + +msgid "Privacy" +msgstr "Personvern" + +msgid "Contact" +msgstr "Kontakt" + +msgid "Extra page" +msgstr "Ekstra side" + +msgid "Internal page type" +msgstr "Intern sidetype" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Du kan ha flere ekstra sider, men kun én av de andre spesielle interne typene." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Sidesynlighet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Synlig side" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Skjult side" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Skjulte sider blir ikke vist i systemmenyer, men alle kan få tilgang til dem med direkte link." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Bare alfanumeriske tegn, bindestrek og skråstrek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Filsti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "En %f fil i forhold til %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Metasøkeord" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Metabeskrivelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Kildekode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Ingen skrivetilgang i %s stien, du må legge til denne filen med et eksternt redigeringsprogram." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Ingen skrivetilgang i %s, du må legge til denne filen med et eksternt redigeringsprogram." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Tatt fra: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Link-URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Link til målattributtet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Velg %s for å åpne siden eller lenke i et nytt vindu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Link rel-attributt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Bare alfanumeriske tegn, bindestreker og mellomrom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s-attributt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Lenkeikon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Sjekk <a %s>ikon-oversikten</a> for en komplett liste over støttede ikoner." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Sorteringsrekkefølge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Side-sorteringsrekkefølge for menyer og oppføringer. Bruk \"1\" for høyeste prioritet." + +msgid "pages" +msgstr "sider" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Er du sikker på at du vil slette sideID %s? Dette kan ikke angres." + +msgid "Enabled image formats" +msgstr "Aktiverte bildeformater" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Uavkryssede bildeformater vil ikke bli tillatt lastet opp." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Aktiver opplastninger." + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Aktiver denne dersom du ønsker å tillate opplastning av bilder. Innstillingen berører ikke administratorer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Gjesteopplastinger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Aktiver dersom du vil at uregistrerte brukere skal kunne laste opp." + +msgid "Upload user interface" +msgstr "Last opp brukergrensesnitt" + +msgid "On-page container" +msgstr "På-side beholder" + +msgid "route" +msgstr "rute" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Aktiver integrasjonskoder (opplastning)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Aktiver denne hvis du vil vise integrasjonskoder når opplastningen er fullført." + +msgid "Upload threads" +msgstr "Opplastingstråder" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Antall samtidige opplastingstråder (parallelle opplastinger)" + +msgid "Redirect on single upload" +msgstr "Omdirigere ved enkel opplasting" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Aktiver dette alternativet hvis du vil viderekoble til bildesiden ved enkel opplasting." + +msgid "Enable duplicate uploads" +msgstr "Aktiver duplikatopplastinger" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Aktiver dette alternativet hvis du vil tillate duplikatopplastinger fra samme IP innen 24 timer. Denne innstillingen påvirker ikke administratorer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Aktiver utløpsdato på bilder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Aktiver dersom du vil tillate opplastninger med valg om automatisk sletting." + +msgid "Auto delete guest uploads" +msgstr "Automatisk sletting av gjesteopplastinger" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Aktiver dersom du ønsker å tvinge automatisk sletting av gjesteopplastinger etter en gitt tid." + +msgid "Maximum image size" +msgstr "Maks bildestørrelse" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Bilder som overskrider denne størrelsesbegrensningen vil automatisk bli nedskalert. Angi null (0) for å ikke ha noen begrensninger." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Exif-data på bilder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Beholde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Velg standardinnstilling for bilde <a %s>Exif-data</a> på opplasting." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Exif-data (brukerinnstilling)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Aktiver denne hvis du vil at brukere selv kan velge hvordan Exif-data behandles." + +msgid "Maximum upload file size" +msgstr "Maks filstørrelse for opplasting." + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Den maksimale størrelsen tillatt av serveren er %s. Denne begrensningen er avkortet av %u og %p (%f-verdier)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Samme som \"%s\", men for gjester." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Bildesti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativ til Cheveretos rotmappe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Hvor skal bildene lagres? Relativ sti til Cheveretos rotmappe." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Lagringsmodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datamapper" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direkte" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datamapper opprettes i %s struktur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Filnavngivingsmetoden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Bland original + tilfeldig" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Original\" vil forsøke å beholde kildefilens navn mens \"Tilfeldig\" vil generere et tilfeldig navn. \"ID\" vil gi samme navnet som bilde-ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Miniatyrbildestørrelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Miniatyrbilder vil bli endret til denne størrelsen." + +msgid "Medium image fixed dimension" +msgstr "Mellomstore bilder, faste størrelser" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Mellomstore bilder vil bli låst til denne dimensjonen. For eksempel, hvis du velger \"bredde\", vil den verdien bli låst, mens høyden på bildet blir automatisk beregnet." + +msgid "Medium image fixed size" +msgstr "Mellomstore bilde med fast størrelse" + +msgid "Width or height will be automatically calculated." +msgstr "Bredde eller høyde beregnes automatisk." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Vannmerke" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Aktiver denne for å legge til logo eller det du ønsker på opplastninger." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Advarsel: Kan ikke skrive i %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Vannmerke brukerveksler" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Aktiver vannmerke på gjesteopplastninger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Aktiver vannmerke på brukeropplastninger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Aktiver vannmerke på adminopplastninger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Vannmerke filveksler" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Aktiver opplastninger på GIF-bildeopplastninger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Minimum bildestørrelse for å legge til vannmerke" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Bilder mindre enn dette vil ikke bli vannmerket. Bruk null (0) for å ikke angi minimumsgrense for bildestørrelse." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Vannmerkebilde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Du vil få best resultat med vanlige logoer med skygge. Du kan bruke et stort bilde hvis filstørrelsen er ikke så stor (anbefalt maks. er 16KB). Må være et PNG-bilde." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Vannmerkeposisjon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "øverst til venstre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "senter til venstre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "nederst til venstre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "øverst i midten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "midt i bildet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "nederst i midten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "øverst til høyre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "senter til høyre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "nederst til høyre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Plassering av vannmerkebilde. Juster først horisontal plassering, deretter vertikal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Vannmerkeprosent" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Vannmerkets prosentvise størrelse i forhold til målets bildeområde. Verdier er 1-100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Vannmerkemargin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margin fra kanten av bildet til vannmerkebildet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Vannmerkets gjennomsiktighet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Gjennomsiktigheten av vannmerket i det endelige, vannmerkede bildet. Verdier er 0-100." + +msgid "Dashboard > Settings > Website" +msgstr "Kontrollpanel > Innstillinger > Webside" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Kategorier vil ikke fungere når utforskingsfunksjonen er slått av. For å reversere denne innstillingen gå til %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Er du sikker på at du vil slette kategorien %s? Dette kan ikke angres." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "NB: Selv om du sletter en kategori vil ikke bildene tilhørende i denne kategorien bli slettet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Rediger kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Utløper" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Vil du virkelig fjerne blokkeringen av IP %s? Dette kan ikke gjøres om." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "IP-adresser som er svartelistet vil bli blokkert fra hele nettstedet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Rediger IP-blokkering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Aktiver registrering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Aktiver hvis du vil tillate registrering av nye brukere." + +msgid "Enable user content delete" +msgstr "Aktiver sletting av brukerinnhold" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Aktiver hvis du vil la brukere slette sitt eget innhold. Denne innstillingen berører ikke administratorer." + +msgid "Minimum age required" +msgstr "Minimum alder som kreves" + +msgid "Empty" +msgstr "Tom" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "La denne være blank dersom det ikke er noen aldersbegrensning for å benytte nettstedet." + +msgid "Notify on user signup" +msgstr "Varsle ved brukerregistrering" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Aktiver dette hvis du ønsker å få en epostvarsling for hver ny brukerregistrering." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Brukernavn-ruting" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Aktiver hvis du vil benytte URLer i formatet %s/brukernavn istedenfor %s/bruker/brukernavn." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Krev e-postbekreftelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Aktiver for å kreve at brukere må bekrefte e-postadressen sin når de registrerer seg." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Krever e-post for sosial registrering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Aktiver hvis brukere som benytter sosial tilkobling må oppgi e-postadresse." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Brukeravatar maks filstørrelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Maks tillatt størrelse for brukeravatar. (Maks tillatt av server er %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Personlig bakgrunnsbilde maks størrelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Maks tillatt filstørrelse for personlig bakgrunnsbilde. (Maks tillatt av server er %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Vis en samtykke-side før man kommer inn på siden. Benyttes f.eks. for nettsteder med seksuelt innhold." + +msgid "Enable consent screen" +msgstr "Aktiver samtykke-side" + +msgid "Consent screen cover image" +msgstr "Bilde for samtykke-side" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Blokker bildeopplastning på IP hvis systemet merker høy trafikk basert på antall opplastninger per tidsperiode. Denne innstillingen berører ikke administratorer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Varsle til e-post" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Hvis aktivert vil systemet sende en e-post når spamming skjer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minuttbegrensning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Timebegrensning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Daglig begrensning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Ukentlig begrensning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Månedlig begrensning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Viser utrygt innhold i lister" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Aktiver dette hvis du ønsker å vise utrygt innhold i lister. Denne innstillingen berører ikke administratorer og kan bli overstyrt av brukerens egne innstillinger." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Gjør NSFW-innhold i lister uskarpt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Aktiver dette alternativet hvis du vil bruke en dimmeeffekt på NSFW-bilder i lister." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Vis bannere i utrygt innhold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Aktiver dette alternativet hvis du ønsker å vise bannere på utrygge innholdssider." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Vis utrygt innhold i tilfeldig modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Bilder pr. side" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Hvor mange bilder som skal vises pr. side." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Sideinndelingsmodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Endeløs rulling" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klassisk sideinndeling" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Hvilken sideinndelingsmodus som skal brukes." + +msgid "Listing viewer" +msgstr "Listeviser" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Aktiver dette for å bruke listeviseren når et bilde klikkes." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Bildeoppføringsstørrelse" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Flytende" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fast" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Begge metodene bruker en fast bredde, men den flytende metoden regner automatisk ut høyden." + +msgid "Album listing images requirement" +msgstr "Albumlistekrav for bilder" + +msgid "explore" +msgstr "utforsk" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Angir minimum antall bilder som trengs for å vise et album i utforskingsmodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Antall kolonner for oppføringer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Her kan du angi hvor mange kolonner som brukes basert på hver enhet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Nettbrett" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Bærbar PC" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Stasjonær PC" + +msgid "theme editing" +msgstr "temaredigering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Last opp temaer i mappen %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Tone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Lys" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Mørk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Hovedfarge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Heksadesimal fargeverdi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Bruk denne til å angi hovedtemaets farge. Verdien må være i <a href=\"%s\" target=\"_blank\">heksadesimalt format</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Top bar color" +msgstr "Topplinjefarge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Svart" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Hvit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1210 +msgid "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." +msgstr "Hvis du setter denne til \"hvit\", blir topplinjen og alle svarttoner bli endret til hvittoner." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Topplinjens knappefarge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Blå" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Grønn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Oransje" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Rød" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Grå" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Farge på topplinjens knapper, som \"Opprett konto\" -knappen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Aktiver vektorlogo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Aktiver vektorlogo for høykvalitets logo på enheter med høy pikseltetthet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Vektor-logobilde." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Logoen din i vektorformat (.svg)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Raster-logobilde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Logoen din i bitmapformat. PNG-format er anbefalt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "logohøyde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Ingen verdi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Bruk denne for å sette logohøyde hvis nødvendig." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "favicon-bilde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon-bilde: Bildet må ha samme bredde og høyde." + +msgid "Image load max. filesize" +msgstr "Bildelasting maks filstørrelse" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Bilder større enn angitt grense vil vise en knapp for å laste inn bildet i full størrelse." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Aktiver nedlastingsknapp" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Aktiver dette alternativet hvis du vil vise nedlastingsknappen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Aktiver høyreklikk på bildet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Aktiver dette alternativet hvis du vil tillate høyreklikk på bilder." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Aktiver visning av Exif-data" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Aktiver denne hvis du vil vise Exif-data." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Aktiver sosial deling" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Aktiver dette alternativet hvis du ønsker å vise knapper for sosiale nettverk for å dele innhold." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Aktiver integrasjonskoder (innhold)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Aktiver denne hvis du vil vise integrasjonskoder for innholdet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "\"Utrygt innhold\" avkryssingsboks i opplastningsvinduet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Aktiver dette alternativet hvis du vil vise en avkrysningsboks for å indikere utrygt innhold ved opplasting." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Egendefinert CSS-kode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Legg inn din egendefinerte CSS-kode her. Den vil bli plassert som en <style>-tag rett før </head>-tagen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Egendefinert JS-kode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Legg inn din egendefinerte JS-kode her. Den vil bli plassert som en <script>-tag rett for </head>-tagen." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Ikke bruk %s-markup her. Dette er for ren JS-kode, ikke for HTML-tags. Hvis du bruker scripttags her vil det føre til at nettstedet slutter å fungere." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Stil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Landingsside" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Delt landingsside + bilder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +msgid "Route explore" +msgstr "Rute: utforske" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Velg stil for startsiden. For å tilpasse stilen ytterligere, rediger app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Forsidebilde" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Er du sikker på at du vil slette dette bildet? Dette kan ikke angres." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Slett bilde" + +msgid "Add new cover image" +msgstr "Legg til nytt forsidebilde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Logoen din i vektorformat (.svg) (Kun for forsiden)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Logoen din i bitmapformat (PNG er anbefalt) (Kun for forsiden)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Dette vil bli lagt inn på hjemmesiden %s som tag. La det stå tomt for å bruke standardinnholdet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Avsnitt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Registreringsknappfarge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Farge på registreringsknappen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "konturstil på registreringsknappen, utvendige linjer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Aktiver denne for å bruke konturstil for registreringsknappen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Registreringsknappens funksjon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Trigger-opplasting" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Åpne URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Oppfordring til handlings-URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Skriv en absolutt eller relativ URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "En relativ URL som %r skal tilordnes %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML-tekst på forsiden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Dette vil bli lagt inn i handlingsknappens <a>-tag. La stå tomt for å bruke standardinnholdet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "BrukerIDer" + +msgid "banners" +msgstr "bannere" + +msgid "Automatic updates check" +msgstr "Automatisk sjekk etter oppdateringer" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Når aktivert vil systemet automatisk se etter nye oppdateringer." + +msgid "Display available updates notification" +msgstr "Vis varsler for tilgjengelige oppdateringer" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Aktiver for å vise en melding på toppen med informasjon om tilgjengelige systemoppdateringer." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URLer" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Aktiver dette hvis du ønsker å bruke SEO %s URLer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Minify-kode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Aktiver hvis du vil automatisk bruke minify for CSS- og JS-kode." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Vedlikehold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Når aktivert vil nettstedet vise en vedlikeholdsmelding. Denne innstillingen berører ikke administratorer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "kryptosalt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Dette kryptosalt som brukes til å konvertere numeriske IDer til alfanumeriske. Kryptosaltet ble automatisk generert ved installeringen av programmet." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP-feilrapportering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Aktiver dette alternativet hvis du vil vise feil generert av PHP <a %s>error_reporting()</a>. Dette bør være deaktivert i produksjonsmiljøer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Feilsøkingsnivå" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Ingen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Feillogg" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Vis feil uten feilloggen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Vis og logg feil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "For å konfigurere feilsøkingsnivå, se gjennom <a %s>feilsøkingsdokumentasjonen</a>. Standardnivået er \"Feillogg (Error log)\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "Ruting lar deg tilpasse standardruten fortløpende. Bare alfanumeriske tegn, bindestrek og understrek er tillatt. Se gjennom %s dersom du ønsker å overstyre eller legge til nye ruter." + +msgid "Image routing" +msgstr "Bilde-ruting" + +#, php-format +msgid "Routing for %s" +msgstr "Rute for %s" + +msgid "Album routing" +msgstr "Album-ruting" + +msgid "Language subdomains" +msgstr "Språk for underdomener" + +msgid "Enable to use %s for %t." +msgstr "Aktiver dette for å bruke %s for %t." + +msgid "Username subdomains" +msgstr "Brukernavn for underdomener" + +msgid "user profiles" +msgstr "brukerprofiler" + +msgid "Custom language strings" +msgstr "Egendefinerte språkstrenger" + +msgid "language strings" +msgstr "språkstrenger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Standardspråk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Bruk dette som standardspråk." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automatisk valg av språk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Aktiver denne hvis du vil at språk skal settes automatisk for hver bruker." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Språkvelger" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Aktiver denne dersom du vil tillate valg av språk." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Tilgjengelige språk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Umerkede språk vil ikke bli brukt på siden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Aktiver for å aktivere eller deaktivere HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Aktiver denne for å aktivere eller deaktivere denne lagringsenheten" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kvote" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktiv" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Lagringsmetode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Lokal lagring brukes som standard, eller når ingen ekstern lagring er aktivert." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Hvis du trenger hjelp, se gjennom <a %s>lagringsdokumentasjonen</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Rediger lagringsenheter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Fra navn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Visningsnavn for e-post sendt til brukere" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-postmodus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Hvordan skal e-post sendes? SMTP anbefales." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP-server og -port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP-server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP-brukernavn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP-passord" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP-sikkerhet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Usikret" + +msgid "Decode ID" +msgstr "Dekodings-ID" + +msgid "Encode ID" +msgstr "Kodings-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Send test-e-post" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Bruk denne for å teste hvordan e-post blir levert. Vi anbefaler å bruke %s." + +msgid "Export a user" +msgstr "Eksporter en bruker" + +msgid "Export user" +msgstr "Eksporter bruker" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Dette lar deg laste ned en brukers personlige standardinformasjon i JSON-format." + +msgid "Regenerate external storage stats" +msgstr "Regenerer ekstern lagringsstatus" + +msgid "Storage id" +msgstr "LagringsID" + +msgid "Regenerate" +msgstr "Regenerer" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Dette vil rekalkulere summen av alle bildeoppføringer assosiert med den eksterne lagringen." + +msgid "Migrate image records from one external storage to another" +msgstr "Migrer bildeoppføringer fra en ekstern lagring til en annen" + +msgid "Source storage id" +msgstr "LagringsID for kilde" + +msgid "Target storage id" +msgstr "LagringsID for mål" + +msgid "Migrate" +msgstr "Migrer" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Dette oppdaterer bare databasen. Du må overføre de faktiske filene til mållagringsområdet selv. URL-omskriving er sterkt anbefalt. Bruk null (0) for lokal lagring." + +msgid "social networks" +msgstr "sosiale nettverk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Du trenger en <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook-app</a> for dette." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook-app-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook-app-hemmelighet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Du trenger en <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter-app</a> for dette." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter-API-nøkkel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter-API-hemmelighet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter-konto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Du trenger en <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google-app</a> for dette." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google-klient-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google-klient-hemmelighet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Du trenger en <a href=\"http://vk.com/dev\" target=\"_blank\">VK-app</a> for dette." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK-klient-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK-klient-hemmelighet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Du trenger en <a href=\"%s\" target=\"_blank\">reCAPTCHA-nøkkel</a> for dette." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Merk at hver reCAPTCHA-versjon trenger sitt eget sett nøkler. Ikke glem å oppdatere nøklene hvis du bytter mellom versjoner." + +#, php-format +msgid "%s site key" +msgstr "%s sidenøkkel" + +#, php-format +msgid "%s secret key" +msgstr "%s hemmelig nøkkel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA-terskel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Hvor mange mislykkede forsøk er nødvendig før reCAPTCHA etterspørres? Bruk null (0) for å alltid vise reCAPTCHA." + +msgid "Comments API" +msgstr "Kommentar-API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus-API virker med %s." + +msgid "Disqus shortname" +msgstr "Disqus kort navn" + +#, php-format +msgid "%s public key" +msgstr "%s offentlig nøkkel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "kommentarkode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook eller noe du ønsker vil bli brukt i bildevisningen ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics-kode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics eller hva du vil. Det vil bli lagt til temaets bunntekst." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "For dokumentasjon om API, se gjennom <a %s>API-dokumentasjonen</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1-nøkkel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Bruk denne nøkkelen når du bruker <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Utvidelsesrute" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Aktiver denne for å vise instruksjoner for utvidelsen på %u. En lenke til disse instruksjonene vil bli lagt til %s-menyen. Denne innstillingen påvirker ikke administratorer." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Bruk denne for å sette en egendefinert URL for %p. Påse at du manuelt må replikere %s i denne URLen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Lovgivningssamsvar for bruk av cookies" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Aktiver dette for å vise en melding som er i samsvar med EUs lovmessige krav angående cookies. Du trenger bare dette alternativet hvis nettstedet ditt er lokalisert i EU, eller hvis du legger til sporing av informasjonskapsler ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Lagre endringer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Se gjennom feilene for å fortsette." + +msgid "Play GIF" +msgstr "Spill av GIF-animasjon" + +msgid "Load full resolution" +msgstr "Last fulloppløst bilde" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Lagt til i %a og kategorisert i %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Lagt til i %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Lastet opp til %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Lastet opp %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Skjul Exif-data" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Mer Exif-data" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Del bilde" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album-ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "I dette albumet" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Last opp og del bildene dine." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Dra og slipp bildene hvor som helst og start opplastning med en gang. Begrensning: %s. Direkte bildelink, BBCode for forum og HTML-miniatyrbilder." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Start opplasting" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registrer deg for å låse opp alle funksjonene" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Administrer ditt innhold, opprett private album, tilpass din profil og mer." + +msgid "Sign in with your account" +msgstr "Logg inn med din konto" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Har du ikke en konto? <a href='%s'>Registrer</a> deg nå." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Logget ut" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Du har blitt logget ut fra %s. Velkommen tilbake!" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Tilbake til startsiden" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Nettstedet er under vedlikehold" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Vi utfører planlagt vedlikehold på nettstedet. Vennligst forsøk igjen senere." + +msgid "This content is password protected." +msgstr "Dette innholdet er passordbeskyttet." + +msgid "Please enter your password to continue." +msgstr "Vennligst skriv inn passordet ditt for å fortsette." + +msgid "Send" +msgstr "Send" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Legg til bildeopplasting på nettsiden, bloggen eller forumet ditt ved å installere opplastingsutvidelsen vår. Den tilbyr bildeopplasting til en hvilken som helst nettside ved å legge til en knapp som lar brukerne dine laste opp bilder direkte til vår tjeneste, og håndterer automatisk kodene for å legge dem til. Alle funksjoner som dra-og-slipp, fjernopplasting, bildeskalering m.m. er tilgjengelige." + +msgid "Supported software" +msgstr "Støttet programvare" + +msgid "supported software" +msgstr "støttet programvare" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Utvidelsen fungerer på alle nettsteder med bruker-redigerbart innhold, og for %sv vil den plassere en knapp som passer med målets redigeringsverktøylinje, slik at ingen ekstra tilpassing er nødvendig." + +msgid "Add it to your website" +msgstr "Legg den til nettstedet ditt" + +msgid "options" +msgstr "alternativer" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Kopier og lim inn koden for utvidelsen direkte i HTML-kilden for nettstedet ditt (helst i HEAD-området). Det finnes mange %o for å la den bedre passe dine behov." + +msgid "Basic options" +msgstr "Grunnleggende alternativer" + +msgid "Color palette" +msgstr "Fargepalett" + +msgid "Button color scheme" +msgstr "Fargetema for knapper" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Innbyggingskoder som automatisk blir fylt ut i redigeringsfeltet" + +msgid "Sibling selector" +msgstr "Valg for beslektet element" + +msgid "Sibling element selector where to place the button next to" +msgstr "Beslektet element å plassere knappen ved siden av" + +msgid "Sibling position" +msgstr "Plassering av beslektet element" + +msgid "After" +msgstr "Etter" + +msgid "Before" +msgstr "Før" + +msgid "Position relative to sibling element" +msgstr "Plassering relativ til beslektet element" + +msgid "Advanced options" +msgstr "Avanserte alternativer" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Utvidelsen har et stort utvalg utvidete alternativer som gir full tilpassingskontroll. Du kan bruke egen HTML, CSS, egen fargepalett, settobservatører og mer til. Sjekk ut %d og kildekoden for utvidelsen for å få en bedre forståelse av disse avanserte alternativene." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Enten har du ikke tillatelse til denne siden eller linken er utløpt." + +msgid "Search results" +msgstr "Søkeresultater" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Er du sikker på at du vil slette denne brukeren? Dette kan ikke angres." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Slett bruker" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Registreringsdato" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Registrerings-IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Gyldig" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Utestengt" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Venter på e-post" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Venter på bekreftelse" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i til %f tegn<br>Bokstaver, nummer og \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Slett opplastinger automatisk" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Denne innstillingen vil gjelde for alle bilder du har lastet opp. Du kan overstyre denne innstillingen for hver enkelt opplasting." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Behold <a %s>Exif-data</a> ved opplasting" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Nyhetsbrev" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Send meg e-poster med nyheter fra %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Innholdsinnstillinger" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Vis utrygt innhold fra andre brukere" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Språk" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Tidssone" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Nåværende passord" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Skriv inn ditt nåværende passord" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nytt passord" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Bekreft nytt passord" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Skriv inn et passord for å kunne logge inn med ditt brukernavn eller e-postadresse" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Denne brukeren har ikke passord. Legg til et ved å bruke dette skjemaet." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Skriv inn ditt passord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Bekreft passord" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Skriv inn ditt passord på nytt" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Last opp nytt profilbilde" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Slett eksisterende bilde" + +msgid "Make my profile and identity totally private" +msgstr "Gjør min profil og identitet fullstendig privat" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Aktiver dette hvis du ønsker å opptre som en anonym bruker" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Dette er ditt ekte navn, ikke brukernavnet ditt." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://example.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Biografi" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Skriv litt om deg selv" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Bruker har ingen forbindelser." + +#: ../../../app/themes/Peafowl/views/settings.php:391 +msgid "Link your account to external services to be able to login and share content." +msgstr "Koble kontoen din til eksterne tjenester for å kunne logge på og dele innhold lettere." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Vil du virkelig koble %s fra denne kontoen?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Denne kontoen er koblet til %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Vil du virkelig koble fra %s kontoen?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Du vil bli logget ut, og du vil ikke være i stand til å logge inn på kontoen din ved hjelp av denne %s kontoen." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Kontoen din er koblet til %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "koble fra" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "koble til %s" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Knapp" + +msgid "Login" +msgstr "Logg inn" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Har du allerede en konto? %s nå." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "send konto-aktivering på nytt" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Hvis du allerede har registrert deg, trenger du kanskje å be om %s for å aktivere kontoen din." + +#, php-format +msgid "You can also %s." +msgstr "Du kan også %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Jeg er minst %s år gammel" + +msgid "terms" +msgstr "betingelser" + +msgid "privacy policy" +msgstr "behandling av personopplysninger" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Jeg aksepterer %terms_link og %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Last opp nytt profilbakgrunnsbilde" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Bytt bakgrunnsbilde" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Bakgrunnsbildet vil bli slettet. Dette kan ikke angres. Er du sikker på at du vil slette bakgrunnsbildet for profilen?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Slett bakgrunn" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Rediger profil" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Følger" +msgstr[1] "Følgere" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Følg" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Generelle spørsmål/kommentarer" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Brudd på opphavsrettigheter" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Ugyldig melding" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Ugyldig emne" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "E-postfeil" + +msgid "Message sent" +msgstr "Melding sendt" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Meldingen er sendt. Vi vil svare deg så fort vi kan." + +msgid "If you want to send a message fill the form below." +msgstr "Hvis du ønsker å sende en melding, fyll ut skjemaet under." + +msgid "Your name" +msgstr "Ditt navn" + +msgid "Subject" +msgstr "Emne" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Alle endringene du har gjort vil gå tapt hvis du fortsetter." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Endringer vellykket lagret." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Gå tilbake til skjemaet" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "fortsett likevel" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "lagrer" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Sender" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Bekreft handling" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "Informasjon" + diff --git a/app/languages/nl.po b/app/languages/nl.po new file mode 100644 index 0000000..4abfc92 --- /dev/null +++ b/app/languages/nl.po @@ -0,0 +1,5313 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-07 13:29+0000\n" +"PO-Revision-Date: 2021-06-07 13:29+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Ongeldig e-mailadres" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Ongeldige gebruikersnaam" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Ongeldig wachtwoord" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Geïnstalleerde versie: v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Kan niet verbinden met %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Laatst beschikbare release is v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Update nodig, doorgestuurd naar downloaden" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Geen update nodig" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Systeembestanden zijn reeds bijgewerkt." + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Start downloaden van v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s is gedownload, verder met uitpakken" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Bezig met uitpakken van v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Uitpakken gereed" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Bezig met installeren van de update" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Bijwerken mislukt" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Bezig met bijwerken" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Missende %s bestand" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Ongeldige licentie info" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Kan bestand niet opslaan" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Kan %s niet uitpakken" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Kan directory %s niet aanmaken - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Kan bestand %s niet updaten - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Controleer de fouten in het formulier om verder te gaan." + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Let op: deze inhoud is privé, maar is zichtbaar voor iedereen met de link." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Opmerking: deze inhoud is beschermd met een wachtwoord. Denk eraan het wachtwoord mee te sturen bij het delen." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Let op: deze inhoud is privé. Wijzig de privacy-instellingen naar \" publiek\" om deze te delen met buitenstaanders." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "U moet nog een albumnaam invoeren." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Bevestigen" + +msgid "The content has been approved." +msgstr "De inhoud is goedgekeurd." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Selecteer bestaand album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Er is een fout opgetreden. Probeer het later nog eens." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Selecteer a.u.b. een geldig afbeeldingformaat" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Selecteer a.u.b. een foto met maximale grootte %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profielfoto is geüpdatet." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Achtergrondafbeelding is geüpdatet." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Achtergrondafbeelding is verwijderd." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Fout bij het verwijderen van uw profielachtergrond." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Wachtwoorden komen niet overeen" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Update naar v%s beschikbaar" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Er is een update beschikbaar voor uw systeem. U kunt deze automatisch downloaden installeren of ga naar %s om het updatebestand te downloaden." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "De releaseopmerkingen voor deze update zijn:" + +msgid "system requirements" +msgstr "Systeemvereisten" + +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "Ik bevestig dat deze server voldoet aan %s voor deze update" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Nu bijwerken" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Deze website gebruikt de laatste %s versie" + +msgid "Please review the system requirements before proceeding" +msgstr "Bekijk alstublieft de systeemvereisten voordat u verder gaat" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "laden" + +msgid "Toggle select" +msgstr "Selectiekeuze" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Waardeer" + +msgid "Toggle flag" +msgstr "Vlagkeuze" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Bewerken" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albums" + +msgid "Approve" +msgstr "Goedkeuren" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Verwijder" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Sluiten" + +msgid "Previous" +msgstr "Vorige" + +msgid "Next" +msgstr "Volgende" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Klembord afbeelding" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Bestand is te groot." + +msgid "Invalid or unsupported file format." +msgstr "Ongeldig of niet ondersteund bestandsformaat." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Sommige bestanden kunnen niet toegevoegd worden" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "afbeelding" +msgstr[1] "afbeeldingen" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s's albums" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Afbeelding is aangepast" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privé" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album is aangepast" + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Ongeldige URL sleutel." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Categorie URL sleutel is al in gebruik." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Categorie succesvol verwijderd." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Categorie %s is toegevoegd." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Ongeldige vervaldatum." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s is reeds geblokkeerd." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s is geblokkeerd." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP blokkering is verwijderd." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Vul alstublieft de verplichte velden in." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Ongeldige waarde voor de opslagcapaciteit. Controleer op juistheid formaat." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Opslagcapaciteit kan niet lager zijn dan wat er nu in gebruik is (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Ongeldige URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Opslag succesvol gewijzigd." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Gebruiker is toegevoegd." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "De inhoud is verwijderd" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "De inhoud is verplaatst" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Selecteer" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Deselecteer" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "De inhoud is aangepast" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "Import nummer %s verwijderd" + +msgid "Spam detected" +msgstr "Spam gedetecteerd" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albums" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Flooding gedetecteerd. U kunt enkel %limit%%content% uploaden per %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Naamloos" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s's afbeeldingen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privé" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Publiek" + +msgid "Me" +msgstr "Mijn" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Wachtwoord" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "weergave" +msgstr[1] "weergaven" + +msgid "After %n %t" +msgstr "Na %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuut" +msgstr[1] "minuten" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "uur" +msgstr[1] "uren" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dag" +msgstr[1] "dagen" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "week" +msgstr[1] "weken" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "maand" +msgstr[1] "maanden" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "jaar" +msgstr[1] "jaren" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Niet automatisch verwijderen" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Kan %s niet openen om te schrijven" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Dubbele upload" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privé-upload" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "like" +msgstr[1] "likes" + +msgid "Recent" +msgstr "Recent" + +msgid "Trending" +msgstr "Trending" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Topgebruikers" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Meest recent" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Oudste" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Meest bekeken" + +msgid "Popular" +msgstr "Populair" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "meest geliked" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Verkennen" + +msgid "Animated" +msgstr "Geanimeerde" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Zoeken" + +msgid "People" +msgstr "Mensen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Afbeelding" +msgstr[1] "Afbeeldingen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Gebruiker" +msgstr[1] "Gebruikers" + +msgid "adult" +msgstr "Volwassene" + +msgid "teen" +msgstr "Tienier" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "%s inhoud is niet toegestaan." + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Kan doelmap %s niet maken" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Intern" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Ongelimiteerd" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "gebruikt" + +msgid "Private profile" +msgstr "Privéprofiel" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "seconde" +msgstr[1] "seconden" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s geleden" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "zojuist" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Dashboard" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Er is een update beschikbaar voor uw systeem. Ga naar %s om deze update te downloaden en te installeren." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Systeemdatabase is verouderd. Het is noodzakelijk om deze te <a href=\"%s\">updaten</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Website is in onderhoudsmodus. Om deze instelling ongedaan te maken, ga naar <a href=\"%s\">Dashboard > Instellingen</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Het is aanbevolen om PHP foutmeldingen uit te schakelen in de productieomgeving. Ga naar <a href='%s'>Systeeminstellingen</a> om deze instelling uit te schakelen." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Het standaard e-mailadres is niet gewijzigd. Ga naar <a href='%s'>E-mailinstellingen</a> om dit aan te passen." + +msgid "There is an update available for your Chevereto based website." +msgstr "Er is een update beschikbaar voor uw Chevereto website." + +msgid "admin dashboard" +msgstr "Beheer dashboard" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "U kunt deze update direct uitvoeren via %a of deze downloaden vanaf %s en dan handmatig installeren." + +#, php-format +msgid "view on %s" +msgstr "Bekijk op %s" + +msgid "cookie policy" +msgstr "Cookie beleid" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Wij gebruiken onze eigen cookies en cookies van derden om uw surfervaring en onze services te verbeteren. Als u doorgaat met het gebruik van onze website betekent dit dat u deze %cookie_policy_link accepteert." + +msgid "I understand" +msgstr "Ik begrijp het" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Wachtwoord vergeten?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Wachtwoord opnieuw instellen" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Activatie opnieuw verzenden" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Voeg uw e-mailadres toe" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mailadres veranderd" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s geeft aan dat u een robot bent" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Ongeldige gebruikersnaam of e-mailadres" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Deze gebruiker heeft geen e-mailadres." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Aanvraag niet toegestaan" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Gebruikersaccount moet geactiveerd zijn om deze optie te gebruiken!" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Gebruikersccount is al geactiveerd" + +msgid "Account banned" +msgstr "Account geblokkeerd" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Wacht a.u.b. 15 minuten op het ontvangen van een e-mail. U kunt het later opnieuw proberen." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Wachtwoord resetten op %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Bevestiging nodig voor %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Welkom bij %s." + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "E-mailadres wordt al gebruikt door iemand anders" + +msgid "Password required" +msgstr "Wachtwoord vereist" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Insluitcodes" + +msgid "Sub albums" +msgstr "Subalbums" + +msgid "Info" +msgstr "Informatie" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album hosted in %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistieken" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Afbeeldingen" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albums" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Gebruikers" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Instellingen" + +msgid "Bulk importer" +msgstr "Invoer in bulk" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Update installeren" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "controleer op updates" + +msgid "Contributing" +msgstr "Bijdrage" + +msgid "Support" +msgstr "Ondersteuning" + +msgid "Bug tracking" +msgstr "Bug tracking" + +msgid "Documentation" +msgstr "Documentatie" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP versie" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL versie" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL server informatie" + +msgid "Graphics Library" +msgstr "Grafische bibliotheek" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Uploads" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Ingeschakeld" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Uitgeschakeld" + +msgid "Max. upload file size" +msgstr "Max. upload bestandsgrootte" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maximale berichtgrootte" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maximale laadtijd uploaden" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d seconde" +msgstr[1] "%d secondes" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Geheugenlimiet" + +msgid "Rebuild stats" +msgstr "Statistieken verversen" + +msgid "Connecting IP" +msgstr "Verbonden IP" + +msgid "Not your IP?" +msgstr "Niet jouw IP?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Website" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Inhoud" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Pagina's" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Inhoud" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Upload" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Categorieën" + +msgid "Consent screen" +msgstr "Toestemmingsscherm" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Spambeveiliging (Flood Protection)" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Thema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Startpagina" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Advertenties" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Systeem" + +msgid "Routing" +msgstr "Routering" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Talen" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Externe opslag" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Social media" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Externe services" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP bans" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Extra instellingen" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Gereedschappen" + +msgid "Can't delete all homepage cover images" +msgstr "Kan niet alle homepage omslagafbeeldingen verwijderen" + +msgid "Homepage cover image deleted" +msgstr "Homepage omslagafbeelding verwijderd" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokaal" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Extern" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Alles" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "Zoek inhoud" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Pagina toevoegen" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Wijzig paginanummer %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "De pagina is succesvol toegevoegd." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "De pagina is verwijderd." + +msgid "homepage" +msgstr "homepage" + +#, php-format +msgid "Before main title (%s)" +msgstr "Voor hoofdtitel (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Na oproep tot actie (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Na omslag (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Na lijst (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Voor paginanummering" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Na paginanummering" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Inhoud (afbeelding en album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Tab over kolom" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Voor opmerkingen" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Weergavepagina afbeelding" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Vanboven in de afbeelding viewer (weergavepagina afbeelding)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Vanonder in de afbeelding viewer (weergavepagina afbeelding)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Achter de afbeelding (weergavepagina afbeelding)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Voor de header(afbeeldings pagina)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Achter de header (weergavepagina afbeelding)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Footer (weergavepagina afbeelding)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Album pagina" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Voor header (Album pagina)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Achter de header (Album pagina)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Profielpagina" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Achter bovenzijde (profiel)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Achter afbeeldinglijst (startpagina)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Verkenningspagina" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Achter bovenzijde (verkenning pagina)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Ongeldige websitenaam" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Ongeldige taal" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Ongeldige tijdzone" + +#, php-format +msgid "Invalid value: %s" +msgstr "Ongeldigde waarde: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Ongeldige opslagmodus" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Ongeldige bestandsnaam" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Ongeldige thumbnailbreedte" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Ongeldige thumbnailhoogte" + +msgid "Invalid medium size" +msgstr "Ongeldige medium grootte" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Ongeldig watermerk percentage" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Ongeldige transparantie watermerk." + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Ongeldig thema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Ongeldige waarde" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Ongeldige thema toonzetting" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Ongeldige hoofdkleur thema" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Ongeldige topbalk knop kleur" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Ongeldige thema afbeelding lijstgrootte" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Ongeldige gebruikers-ID" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Ongeldige e-mailinstellingen" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Ongeldige SMTP-poort" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Ongeldige SMTP-beveiliging" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Ongeldige websitemodus" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Ongeldige user ID persoonlijke mode" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Ongeldige of gereserveerde route" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Ongeldige website privé mode" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Ongeldige privacy-instelling" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Ongeldige homepage stijl" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Ongeldige startpagina oproep tot actie knop kleur" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Ongeldige startpagina oproep tot actie functionaliteit" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Ongeldige titel" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Ongeldige status" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Ongeldig type" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Ongeldige zichtbaarheid" + +msgid "Invalid internal type" +msgstr "Ongeldig intern type" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Ongeldig doelattribuut" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Ongeldig rel attribuut" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Ongeldig icoon" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Ongeldige URL sleutel" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Ongeldig bestandspad" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Ongeldige link URL" + +msgid "Invalid user minimum age" +msgstr "Ongeldige minimum leeftijd voor gebruiker" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Enkel alfanumeriek, koppelteken en underscore karakters zijn toegestaan" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Ongeldige URL" + +msgid "Routes can't be the same" +msgstr "Routes kunnen niet hetzelfde zijn" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Ongeldig uploadpad voor afbeeldingen" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Ongeldige call to action URL" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maximum toegestaan: %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Kan %m niet koppelen aan een bestaande map (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Kan %m niet koppelen aan een bestaande route (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Kan %m niet koppelen aan %r (gebruikersnaam conflict)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Ongeldige SMTP-server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Ongeldige SMTP-gebruikernaam" + +msgid "Invalid key" +msgstr "Ongeldige sleutel" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Deze URL sleutel is al in gebruik door een andere pagina (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Dit bestandspad is alreeds in gebruik door andere pagina (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Kan pagina inhoud niet opslaan: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Volgend" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Over" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Afbeelding ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Uploader IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Blokkeer IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP reeds geblokkeerd." + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Upload datum" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Afbeelding %i in %a album" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Afbeelding %i in %c categorie" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Afbeelding %i gehost in %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Directe link" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Afbeelding link" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Afbeelding URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Thumbnail URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Medium URL" + +msgid "Full image" +msgstr "Volledige afbeelding" + +msgid "Full image (linked)" +msgstr "Volledige afbeelding (gelinkt)" + +msgid "Medium image (linked)" +msgstr "Medium afbeelding (gelinkt)" + +msgid "Thumbnail image (linked)" +msgstr "Thumbnail afbeelding (gelinkt)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Inloggen vereist" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP adres is reeds geblokkeerd." + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Ontbrekende waarden" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Ongeldige rol" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Gebruikersnaam is al in gebruik" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Voeg een wachtwoord of een andere sociale connectie toe voor het verwijderen van %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Voeg een e-mail adres of een andere sociale connectie toe voor het verwijderen van %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s is verbroken." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Test email van %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Dit is slechts een test" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Test email verzonden naar %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Download %s data" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Gebruiker %s wordt gevolgd." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Gebruiker %s wordt niet meer gevolgd." + +msgid "Album cover altered" +msgstr "Album cover aangepast" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Inhoud gewaardeerd" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Inhoud niet meer gewaardeerd" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u waardeert uw %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u volgt u nu" + +msgid "A private user" +msgstr "Een prive-gebruiker" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Verkeerde inloggegevens" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Inloggen" + +msgid "Moderate" +msgstr "Modereren" + +msgid "Upload images" +msgstr "Upload afbeeldingen" + +msgid "Upload plugin" +msgstr "Upload plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Zoekresultaten afbeelding voor %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Zoekresultaten album voor %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Zoekresultaten gebruiker voor %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Account" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profiel" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Gekoppelde accounts" + +msgid "Powered by" +msgstr "Ondersteunt door" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Ongeldige afbeelding expiratie: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Een e-mail is verzonden naar %s met instructies om dit e-mailadres te activeren." + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Ongeldige naam" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Ongeldige website" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Verkeerd wachtwoord" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Gebruik een nieuw wachtwoord" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Wijziging is opgeslagen" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Wachtwoord is gewijzigd" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Wachtwoord is aangemaakt." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Verkeerde inloggegevens" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Instellingen voor %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "U moet akkoord gaan met de voorwaarden en het privacybeleid" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "U moet minimaal %s jaar oud zijn om deze website te gebruiken." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Maak een account" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Upload" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s's Afbeeldingen" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultaten voor" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Geliked door %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Liked" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Volgers" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albums in %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) in %w" + +msgid "Discovery" +msgstr "Ontdekken" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Willekeurig" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Geavanceerd zoeken" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Mededelingen (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Berichten" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "U hebt geen berichten" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Mijn profiel" + +msgid "Lights" +msgstr "Donker/licht" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Log uit" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Wij hebben een aanvraag ontvangen om het volgende e-mailadres <a href=\"%u\">%n</a> te wijzigen op %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Om uw e-mailadres te activeren, klik op <a href=\"%s\">deze link</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "U kunt ook deze link in uw adresbalk plakken: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Heeft u niet om dit bericht gevraagd, dan kunt u dit bericht negeren." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Deze aanvraag is gedaan vanaf IP adres: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Wij hebben een aanvraag ontvangen om het account %n te registreren op %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Om uw account te activeren, klik op <a href=\"%s\">deze link</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Wij hebben een aanvraag ontvangen om het wachtwoord <a href=\"%u\">%n</a> te wijzigen." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Om uw wachtwoord te wijzigen <a href=\"%s\">volgt u deze link</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hallo %n, welkom bij %w." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Nu uw account klaar is, kunt u foto's gaan uploaden, albums aanmaken , krijgt u de mogelijkheid om de privacy-instellingen te kiezen voor uw foto's en kunt u verder nog veel meer leuke dingen gaan ontdekken." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Hier is uw eigen profiel: <a href=\"%u\">%n</a>. Ga nu snel aan de slag en maak deze meer persoonlijk." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Bedankt voor het registreren" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Deze e-mail is verzonden van %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Sleep afbeeldingen naar dit veld of plak afbeeldingen hier om ze te uploaden" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Selecteer afbeeldingen om te uploaden" + +msgid "browse from your computer" +msgstr "vanaf uw computer bladeren" + +msgid "add image URLs" +msgstr "voeg afbeeldingen URL's toe" + +msgid "You can also %i or %u." +msgstr "U kunt ook %i of %u." + +msgid "browse from your device" +msgstr "vanaf uw toestel bladeren" + +msgid "take a picture" +msgstr "neem een foto" + +msgid "You can also %i, %c or %u." +msgstr "U kunt ook %i, %c of %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Bewerk of pas formaat aan van de afbeelding door op de voorvertoning te klikken" + +msgid "Edit any image by touching the image preview" +msgstr "Bewerk iedere afbeelding door het voorbeeld aan te raken" + +msgid "your computer" +msgstr "uw computer" + +msgid "You can add more images from %i or %u." +msgstr "U kunt meer afbeeldingen toevoegen vanaf %i of %u." + +msgid "your device" +msgstr "uw apparaat" + +msgid "You can add more images from %i, %c or %u." +msgstr "U kunt meer afbeeldingen toevoegen vanaf %i, %c of %u." + +msgid "Uploading %q %o" +msgstr "Uploading %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "afgerond" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "De wachtrij wordt geupload, dit duurt een aantal seconden voordat het gereed is." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Upload voltooid" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Geuploade afbeeldingen toegevoegd aan %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "U kunt %c met de afbeeldingen die net zijn geupload of %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "U kunt %c met de afbeeldingen die net zijn geupload." + +msgid "create a new album" +msgstr "een nieuw album maken" + +msgid "move it to an existing album" +msgstr "verplaats naar een bestaand album" + +msgid "You must %s or %l to save this content into your account." +msgstr "U moet %s of %l om de informatie op te slaan in uw account." + +msgid "create an account" +msgstr "Maak een account" + +msgid "sign in" +msgstr "Log in" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Geen %s is geupload" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Er zijn een aantal fouten gebeurd waardoor uw aanvraag niet verwerkt kon worden." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Categorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Selecteer categorie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Markeer dit wanneer de inhoud onveilige inhoud bevat (NSFW)" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Onveilige (NSFW) upload" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Uploaden" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "of" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "annuleren" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "annuleer resterende" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Opmerking: bepaalde afbeeldingen kunnen niet geüpload worden." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Meer informatie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Zie het <a data-modal=\"simple\" data-target=\"failed-upload-result\">foutrapport</a> voor meer informatie!" + +#, php-format +msgid "Register to get %s" +msgstr "Registreer om %s te krijgen" + +msgid "reset" +msgstr "reset" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "sluiten" + +msgid "Note" +msgstr "Opmerking" + +msgid "We must approve the uploaded content before being able to share." +msgstr "We moeten de geüploade inhoud goedkeuren voordat deze gedeeld kan worden." + +msgid "copy" +msgstr "Kopieër" + +msgid "insert" +msgstr "invoegen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Verwijder" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Titel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "optioneel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Verander grootte foto" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Breedte" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Hoogte" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Opmerking: bewegende GIF foto's worden niet in grootte gewijzigd." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Verwijder automatisch foto" + +msgid "Sign up" +msgstr "Registreer" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s om het automatisch verwijderen van foto's te kunnen aanpassen of uit te schakelen." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Markeer dit wanneer de inhoud onveilige inhoud bevat (NSFW)" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Markeer als onveilig (NSFW)" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Omschrijving" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Omschrijving van deze afbeelding" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Afbeelding-URL's toevoegen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Voeg hier de afbeelding-URL toe" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Nieuw album" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "De geuploade gegevens worden verplaatst naar dit nieuw aangemaakte album." + +msgid "existing album" +msgstr "Bestaand album" + +msgid "You can also move the content to an %a." +msgstr "U kunt de gegevens ook verplaatsten naar een %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "U moet %s of %l als u dit album later aan wilt passen." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Verplaats naar album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Selecteer een bestaand album om de geüploade content naar te verplaatsen. U kunt ook <a class=\"modal-switch\" data-switch=\"move-new-album\">een nieuw album maken</a> en de inhoud daarheen verplaatsen." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Foutrapport" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Links" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Kijker" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML codes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML foto" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML groot met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML medium met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML thumbnail met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BB codes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BB code groot" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BB code groot met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BB code medium met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BB code thumbnails met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown groot" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown groot met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown medium met link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown thumbnail met link" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Al deze woorden" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Voer de belangrijke woorden in: tri-colour rat terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Precieze woord of zin" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Type dezelfde woorden in tussen aanhalingstekens: \"rat terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Geen van deze woorden" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Voer een minteken in voor de woorden die u niet wilt: -rodent - Jack Russell\"." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Opslag" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP adres" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Album naam" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "verplaats naar bestaande album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Album omschrijving" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Korte omschrijving van dit album" + +msgid "Album privacy" +msgstr "Album privacy" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Wie kan deze inhoud zien?" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Prive (alleen ik)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privé (iedereen met link)" + +msgid "Private (password protected)" +msgstr "Privé (wachtwoord beveiligd)" + +msgid "Album password" +msgstr "Album wachtwoord" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Naam" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Categorie naam" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL sleutel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Categorie URL sleutel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Alleen letters, cijfers en koppeltekens" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Korte omschrijving van deze categorie" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Naamloze afbeelding" + +msgid "Mark this if the image is not safe for work" +msgstr "Markeer dit als het beeld niet veilig is voor het werk" + +msgid "Flag not safe" +msgstr "Vlag niet veilig" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Pad" + +msgid "Local path (absolute)" +msgstr "Lokaal pad (absoluut)" + +msgid "Directory structure" +msgstr "Mapstructuur" + +msgid "Parse top level folders as users (username)" +msgstr "Parse top level folders als gebruikers (gebruikersnaam)" + +msgid "Parse top level folders as albums" +msgstr "Parse top level mappen als album" + +msgid "Don't parse folders" +msgstr "Parseer geen mappen" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Bij het parseren van mappen op het hoogste niveau als gebruiker, worden mappen op het tweede niveau geparsed als gebruikersalbums. Het parseren van mappen op het hoogste niveau als albums voegt deze toe als gastalbums." + +msgid "Threads" +msgstr "Threads" + +msgid "Select number of threads" +msgstr "Selecteer aantal threads" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Dit bepaalt hoe intensief en snel het importproces zal zijn. Gebruik niet meer dan %s threads op een gedeelde server." + +msgid "You can use wildcard * characters." +msgstr "U kunt wildcard * karakters gebruiken." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Vervaldatum" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Voorbeeld" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Tot welke datum moet dit IP geblokkeerd worden? Leeg laten is oneindig." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Bericht" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Tekstbericht, HTML of verwijs URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Bestaand album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "maak nieuw album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Opslagnaam" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Regio" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Opslagregio" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Opslagvoorraad" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Sleutel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Opslagsleutel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Geheim" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Opslag secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Privé sleutel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON sleutel" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "U hebt hiervoor een <a %s>service abonnement</a> nodig." + +msgid "Service name" +msgstr "Service name" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identity URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identity API endpoint" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API endpoint for OpenStack identity" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Gebruikersnaam" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Opslagcontainer" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant id (account id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant name" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant name (account name)" + +msgid "Storage endpoint" +msgstr "Opslageindpunt" + +msgid "Server address" +msgstr "Serveradres" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname of IP van de opslagserver" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Serverpad" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Absoluut pad waar de bestanden worden opgeslagen in de context van de %p login. Gebruik %s voor root pad." + +msgid "Server login" +msgstr "Server login" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Server wachtwoord" + +msgid "Local path" +msgstr "Lokaal pad" + +msgid "Local path where the files will be stored" +msgstr "Lokaal pad waar de bestanden zullen worden opgeslagen" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Opslagcapaciteit" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Voorbeeld: 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Deze opslag zal worden uitgeschakeld als de capaciteit is bereikt. Laat leeg of vul o (nul) in voor geen limiet." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Opslag URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Het systeem zal de afbeeldingen uit deze opslag spiegelen naar deze URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "bekijk meer" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Laad meer" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Alles selecteren" + +msgid "Clear" +msgstr "Leegmaken" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Bekijk codes voor insluiten" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Categorie toewijzen" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Markeer als vellig" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Selectie verwijderen" + +msgid "Create new album" +msgstr "Maak een nieuw album" + +msgid "Create sub album" +msgstr "Subalbum maken" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Delen" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Met een ander account inloggen" + +msgid "Continue with %label%" +msgstr "Doorgaan met %label%" + +msgid "Home" +msgstr "Home" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Er is hier niets te zien" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Alle geselecteerde afbeeldingen worden toegewezen aan deze categorie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Er zijn geen categorieën." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Bevestig dat content veilig is" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Weet u zeker dat u deze inhoud als veilig wilt markeren?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Bevestig dat deze content onveilig is" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Weet u zeker dat u deze inhoud als onveilig wilt markeren?" + +msgid "Confirm approval" +msgstr "Bevestig goedkeuring" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "Wilt u echt alle geselecteerde inhoud verwijderen? Dit kan niet ongedaan worden gemaakt." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Bevestig verwijderen" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Wilt u deze inhoud echt verwijderen? Dit kan niet ongedaan gemaakt worden." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Wilt u echt alle geselecteerde inhoud verwijderen? Dit kan niet ongedaan worden gemaakt." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Wilt u deze selectie echt verwijderen? Dit kan niet ongedaan gemaakt worden." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Bezoeker" + +msgid "Keyboard shortcuts" +msgstr "Toetsenbord shortcuts" + +msgid "Private album" +msgstr "Privé-album" + +msgid "Password protected" +msgstr "Wachtwoord beschermd" + +msgid "Uploaded by guest" +msgstr "Toegevoegd door een bezoeker" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Van %s" + +msgid "Uploaded by private" +msgstr "Toegevoegd door privé" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "door %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Selecteer onveilig" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Deze pagina is niet beschikbaar" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "De gevraagde pagina is niet gevonden" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "De gebruiker is verwijderd" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Uw account is bijna klaar voor gebruik" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Een e-mail werd verstuurd naar %s met instructies om uw account te activeren. De activatielink is slechts 48 uur geldig. Indien u deze niet heeft ontvangen, controleer dan uw spam-folder." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Activatie opnieuw verzenden" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "U heeft met succes uw e-mailadres aangepast naar %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Naar mijn profiel" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Er wordt een bevestigingslink naar dit e-mailadres gestuurd met de nodige gegevens om uw account te activeren." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Uw e-mailadres" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Versturen" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Een e-mail met instructies om uw wachtwoord te resetten is verstuurd naar het opgegeven e-mailadres. Indien u deze niet heeft ontvangen, controleer dan uw spam-folder." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Een eerdere e-mail is verstuurd met instructies om uw wachtwoord te resetten. Indien u deze niet heeft ontvangen, controleer dan uw spam-folder." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Instructies opnieuw verzenden" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Voer uw gebruikersnaam of emailadres in om verder te gaan. Mogelijk dat u de spam map na moet kijken of whitelist %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Gebruikersnaam of e-mailadres" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Uw wachtwoord is aangepast. U kunt vanaf nu inloggen met uw nieuw wachtwoord." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Nu inloggen" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Voer een nieuw wachtwoord in" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "minimaal %d tekens" + +msgid "Password strength" +msgstr "Wachtwoord sterkte" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Wachtwoord nogmaals invoeren" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Een email is verzonden naar %s met instructies om uw account te activeren. Mocht u deze instructies niet ontvangen, kijk dan ook in de junk of spammail" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Deze inhoud is privé" + +msgid "Sub album" +msgstr "Subalbum" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Weet u zeker dat u dit album inclusief afbeeldingen wil verwijderen? Dit kan niet ongedaan gemaakt worden." + +msgid "Upload to album" +msgstr "Upload naar album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "U waardeert dit" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Lees en voldoen aan de volgende voorwaarden voordat u verder gaat:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Deze website bevat informatie, links en afbeeldingen van seksueel expliciet materiaal. Als u jonger bent dan de leeftijd van %s, als dergelijk materiaal u beledigt of als het illegaal is om dergelijk materiaal te bekijken in uw gemeenschap, ga dan niet verder.\n\nIk ben ten minste %s jaar en ik geloof dat als volwassene het mijn onvervreemdbaar recht is om seksueel expliciet materiaal te ontvangen en te bekijken. Ik wens seksueel expliciet materiaal te ontvangen en te bekijken.\n\nIk geloof dat seksuele handelingen tussen instemmende volwassenen niet beledigend zijn, noch obsceen. Het bekijken, lezen en downloaden van seksueel expliciete materiaal schend niet de normen van mijn gemeenschap, stad, staat of land.\n\nHet seksueel expliciet materiaal dat ik bekijk is voor mijn eigen persoonlijk gebruik en ik zal niet minderjarigen blootstellen aan het materiaal.\n\nIk ben als enige verantwoordelijk voor valse onthullingen of juridische gevolgen van het bekijken, lezen of downloaden van materiaal op deze site. Bovendien is deze website, noch haar gelieerde ondernemingen verantwoordelijk voor enige juridische gevolgen als gevolg van frauduleuze toegang tot of gebruik van deze website.\n\nDit toestemming scherm vormt een wettelijke overeenkomst tussen deze website en u en/of elk bedrijf waarin u een wettelijk of billijk belang heeft . Als enig deel van deze overeenkomst niet afdwingbaar wordt geacht door een bevoegde rechtbank, zal niet van invloed zijn op de afdwingbaarheid van de andere delen van de overeenkomst." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Middels klikken op 'Ik bevestig' verklaart u alle bovengenoemde voorwaarden als gelezen en begrepen." + +msgid "I Agree" +msgstr "Ik bevestig" + +msgid "documentation" +msgstr "documentatie" + +#, php-format +msgid "Learn about %s settings at our %d." +msgstr "Meer informatie over %s instellingen op onze %d." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "Het verbindende IP wordt bepaald met behulp van de servervariabele %var%. Als het gedetecteerde IP niet overeenkomt met het uwe, betekent dit dat uw webserver onder een proxy staat en dat u uw server moet aanpassen om het echte verbindende IP in te stellen." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Voor Nginx moet u %nginx% gebruiken, voor Apache %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Zorg ervoor dat u dit probleem aanpakt, want het systeem vertrouwt op nauwkeurige IP-detecties om basisfunctionaliteiten te bieden en te beschermen tegen spam, flooding en brute force-aanvallen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Schijfverbruik" + +msgid "Queued" +msgstr "In de wachtrij" + +msgid "Working" +msgstr "Werken" + +msgid "Paused" +msgstr "Gepauzeerd" + +msgid "Canceled" +msgstr "Geannuleerd" + +msgid "Completed" +msgstr "Afgerond" + +#, php-format +msgid "Top level folders as %s" +msgstr "Top level mappen als %s" + +msgid "Actions" +msgstr "Acties" + +msgid "Process" +msgstr "Proces" + +msgid "Pause" +msgstr "Pauze" + +msgid "Cancel" +msgstr "Annuleer" + +msgid "Process log" +msgstr "Proceslogboek" + +msgid "Errors" +msgstr "Fouten" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Wilt u echt de import ID %s verwijderen?" + +msgid "Reset" +msgstr "Reset" + +msgid "Resume" +msgstr "Hervatten" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +msgid "Run the following command to import content to Chevereto:" +msgstr "Voer het volgende commando uit om inhoud naar Chevereto te importeren:" + +#, php-format +msgid "Read the %s for more information about this feature." +msgstr "Lees de %s voor meer informatie over deze functie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Gebruiker toevoegen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rol" + +msgid "Manager" +msgstr "Manager" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Beheerder" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-mailadres" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Deze instelling is altijd uitgeschakeld bij persoonlijk gebruik van de website." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Categorie toevoegen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "IP ban toevoegen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Opslag toevoegen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Ga terug naar pagina's" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Website naam" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Website titel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Website omschrijving" + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Forced" +msgstr "Geforceerd" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a gebruikt HTTPS-detectie aan de serverzijde (aanbevolen). %f zal HTTPS gebruiken ongeacht de configuratie van uw server. %d om helemaal geen HTTPS te gebruiken." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Dit regelt alleen het protocol dat in de URL's wordt gebruikt, het maakt van uw website geen geldige HTTPS-website, tenzij uw server is geconfigureerd voor ondersteuning en gebruik van HTTPS." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Standaard tijdzone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Selecteer regio" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Maakt het mogelijk om te zoeken op foto's, albums en gebruikers op basis van een bepaalde zoekopdracht." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Staat toe om te bladeren in publiek toegevoegde afbeeldingen. Het zet ook de categorieën aan." + +msgid "guests" +msgstr "bezoekers" + +msgid "Enables explore for guests." +msgstr "Schakel verkennen in voor bezoekers." + +msgid "Enables to browse images randomly." +msgstr "Sta toe om willekeurig afbeeldingen te bladeren." + +msgid "Likes" +msgstr "Waarderingen" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Staat gebruikers toe om inhoud te waarderen en lijsten met 'Meest gewaardeerd' te maken." + +msgid "Followers allows users to follow each other." +msgstr "Volgers staan gebruikers toe om elkaar te volgen." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Websitemodus" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Community" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Persoonlijk" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "U kunt de websitemodus altijd wijzigen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Persoonlijke modus doelgebruiker" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Gebruikers ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Uuw gebruikersnummer is: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Numeriek nummer van de doelgebruiker voor persoonlijke modus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Persoonlijke mode route" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Persoonlijke route voor verwijzing naar /gebruikersnaam of /iets. Gebruik \"/\" om naar de homepage te verwijzen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Website privé mode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Privémodus zorgt ervoor dat alleen geregistreerde gebruikers de website kunnen gebruiken" + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Privacy-instellingen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Standaard" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Forceer privé (alleen ik)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Forceer privé (iedereen met link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Geforceerde privacy-instellingen zullen gebruikersinstellingen vervangen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Titel pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Status pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Actieve pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Inactieve pagina (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Alleen actieve pagina's zijn toegankelijk." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Type" + +msgid "Terms of service" +msgstr "Gebruikersvoorwaarden" + +msgid "Privacy" +msgstr "Privacy" + +msgid "Contact" +msgstr "Contact" + +msgid "Extra page" +msgstr "Extra pagina" + +msgid "Internal page type" +msgstr "Intern paginatype" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "U kunt meerdere extra pagina's hebben, maar slechts één van de andere speciale interne types." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Zichtbaarheid pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Zichtbare pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Verborgen pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Verborgen pagina's worden niet systeemmenu's getoond, maar iedereen met de link heeft toegang." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Alleen alfanumeriek, koppeltekens en slash" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Bedtandspad" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Een %f bestand ten opzichte van %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta sleutelwoorden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta omschrijving" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Broncode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Geen schrijfrechten in pad %s, gebruik een externe editor om dit bestand toe te voegen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Geen schrijfrechten voor %s, gebruik een externe editor om de inhoud van dit bestand te wijzigen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Genomen van: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Link URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Link doelattribuut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Selecteer %s om de pagina of link te openen in een nieuw scherm." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Link rel attribuut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Alleen alfanumeriek, koppeltekens en spaties" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s attribuut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Link icoon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Controleer de referentie <a %s>referentie icoon</a> voor de volledige lijst met ondersteunde iconen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Sorteervolgorde weergave" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Pagina sorteervolgorde weergave voor menu's en lijsten. Gebruik \"1\" voor de hoogste prioriteit." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Wilt u echt pagina ID %s verwijderen? Dit kan niet ongedaan worden gemaakt." + +msgid "Enabled image formats" +msgstr "Ingeschakelde afbeeldingsformaten" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Niet geselecteerde bestandsformaten zijn niet toegestaan om te uploaden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Schakel uploads in" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Schakel dit in indien u het uploaden van afbeeldingen wilt toestaan​​. Deze instelling heeft geen invloed op beheerders." + +msgid "Upload user interface" +msgstr "Gebruikersinterface uploaden" + +msgid "On-page container" +msgstr "Container op pagina" + +msgid "route" +msgstr "route" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Bezoeker uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Schakel dit in om bezoeker uploads toe te staan" + +msgid "Moderate uploads" +msgstr "Modereer uploads" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Schakel dit in om inkomende uploads te modereren. De inhoud zal moderatie vereisen voor goedkeuring." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Insluitcodes inschakelen (uploader)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Selecteer dit om de insluitcodes te tonen als de upload gereed is." + +msgid "Upload threads" +msgstr "Upload threads" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Aantal gelijktijdige uploads" + +msgid "Redirect on single upload" +msgstr "Doorverwijzing naar enkelvoudige upload" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Schakel dit in voor het doorverwijzen naar de pagina met het plaatje met een enkelvoudige upload." + +msgid "Enable duplicate uploads" +msgstr "Sta dubbele uploads toe" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Schakel dit in indien u het uploaden van van dubbele afbeeldingen vanaf hetzelfde IP wilt toestaan binnen 24 uur​​. Deze instelling heeft geen invloed op beheerders." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Sta tijd gebonden uploads toe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Schakel dit in om uploads met automatisch verwijderen toe te staan." + +msgid "Auto delete guest uploads" +msgstr "Automatisch verwijderen van uploads van bezoekers" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Schakel dit in om automatisch afbeeldingen van bezoekers te verwijderen na een bepaalde tijd." + +msgid "Maximum image size" +msgstr "Maximale afbeeldingsgrootte" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Afbeeldingen groter dan dit formaat worden automatisch verkleind. Gebruik nul (0) om geen limiet in te stellen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Foto Exif gegevens" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Bewaar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Kies de standaard waarde voor de <a %s>Exif data</a> van de afbeelding bij uploaden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Foto Exif gegevens (gebruikers instelling)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Schakel dit in om iedere gebruiker toe te staan om aan te geven hoe afbeeldings EXIF gegevens worden behandeld." + +msgid "Maximum upload file size" +msgstr "Maximale upload bestandsgrootte" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Maximum grootte toegestaan door de server is %s. Deze limiet is ingesteld via %u en %p (%f waarden)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "Hetzelfde als \"%s\" maar dan voor bezoekers." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Pad" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relatief aan de hoofdmap van Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Waar wilt u de afbeeldingen opslaan? Relatief aan de Chevereto hoofdmap" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Opslagwijze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datummappen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direct" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Structuur van datummappen: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Bestandsnaamlogica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Orgineel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Meng origineel en willekeurig" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Origineel\" probeert de echte bestandsnaam te behouden terwijl \"Willekeurig\" een gegenereerde naam krijgt. Met \"ID\" krijgt de afbeelding enkel het afbeelding ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Thumbnail formaat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Thumbnails worden aangepast naar dit formaat." + +msgid "Medium image fixed dimension" +msgstr "Medium afbeelding vaste dimensie" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Medium formaat afbeeldingen worden vastgezet op deze waarden. Bijvoorbeeld, als u 'breedte' selecteert zal die waarde worden vastgezet en zal de afbeeldingshoogte automatisch worden berekend." + +msgid "Medium image fixed size" +msgstr "Medium afbeelding vaste grootte" + +msgid "Width or height will be automatically calculated." +msgstr "Breedte of hoogte wordt automatisch berekend." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Watermerken" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Schakel dit in om een ​​logo of wat anders in het uploadveld te plaatsen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Watermerk opties t.b.v. gebruikers" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Schakel watermerk in bij upload van bezoekers" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Schakel watermerk in bij upload van gebruikers" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Schakel watermerk in bij upload van beheerders" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Watermerk opties t.b.v. bestanden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Schakel watermerk in bij upload van GIF plaatjes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Minimum grootte foto om watermerk toe te voegen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Foto's kleiner dan dit krijgen geen watermerk. Gebruik nul (0) om geen minimum limiet grootte in te stellen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Watermerk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "U krijgt de beste resultaten met duidelijke logo's met druppelschaduw. U kunt een grote afbeelding gebruiken als de bestandsgrootte niet zo groot is (aanbevolen maximum is 16KB). Het moet een PNG zijn." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Positie watermerk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "links bovenaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "links midden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "links onderaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "midden bovenaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "midden midden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "midden onderaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "rechts bovenaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "rechts midden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "rechts onderaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Relatieve positie van het watermerk. Eerst horizontaal uitlijnen en vervolgens verticaal uitlijnen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Watermerk percentage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Watermerk percentuele grootte ten opzichte van het doelbeeldgebied. Waarden 1 tot 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Marge watermerk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Marge tussen de rand van het watermerk en de afbeelding (in pixels)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Doorzichtigheid watermerk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Doorzichtigheid van het watermerk: van 0 voor transparant tot 100 voor volledig zichtbaar." + +msgid "Dashboard > Settings > Website" +msgstr "Dashboard > Instellingen > Website" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Categorieën werken niet als de verkenner functie is uitgeschakeld. Om deze instelling aan te passen, ga naar %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Zeker weten dat categorie %s moet worden verwijderd? Dit kan niet ongedaan worden gemaakt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Opmerking: verwijderen van een categorie heeft geen invloed op de plaatjes die bij de categorie horen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Wijzig categorie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Verloopt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Zeker weten dat IP ban %s ongedaan moet worden gemaakt? Dit kan niet ongedaan worden gemaakt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Verbannen IP adressen kunnen de gehele website niet meer gebruiken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Wijzig IP ban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Schakel registraties in" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Schakel dit in om registraties toe te staan" + +msgid "Enable user content delete" +msgstr "Sta gebruikers toe hun inhoud te verwijderen" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Schakel dit in om gebruikers zelf hun eigen inhoud te verwijderen. Deze instelling heeft geen invloed op de beheerders." + +msgid "Minimum age required" +msgstr "Vereiste minimum leeftijd" + +msgid "Empty" +msgstr "Leeg" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Laat leeg als er geen minimum leeftijd is vereist om de website te gebruiken." + +msgid "Notify on user signup" +msgstr "Stuur kennisgeving bij registratie gebruiker" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Schakel dit in als je een email notificatie wilt ontvangen bij registratie van een nieuwe gebruiker." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Gebruikersnaam routering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Selecteer indien u %s/gebruikersnaam wilt gebruiken in plaats van %s/gebruiker/gebruikersnaam." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Verplicht email bevestiging" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Selecteer indien gebruikers hun emailadres moeten valideren bij lid worden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Email verplicht voor registeren via sociaal netwerk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Selecteer indien gebruikers welke een sociaal netwerk gebruiken een emailadres moeten instellen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Maximale bestandsgrootte avatar gebruiker." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Maximaal toegestane bestandsgrootte voor avatar gebruiker (maximaal toegestaan door server is %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Maximale bestandsgrootte achtergrond gebruiker" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Maximaal toegestane bestandsgrootte voor achtergrond gebruiker (maximaal toegestaan door server is %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Toont een toestemmingsformulier scherm voordat de toegang tot de website mogelijk is. Handig voor adult content websites waar minderjarigen niet toegestaan zijn." + +msgid "Enable consent screen" +msgstr "Schakel toestemmingsformulier scherm in" + +msgid "Consent screen cover image" +msgstr "Toestemmingsformulier scherm afbeelding" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Blokkeer afbeelding uploads per IP wanneer het systeem merkt dat er een spamgolf bezig is op basis van het aantal uploads per periode. Deze instelling heeft geen invloed op beheerders." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Stuur meldingen naar email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Schakel dit in om een e-mail te ontvangen bij spam uploads" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minuutlimiet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Uurlimiet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Dagelijks limiet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Weeklimiet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Maandlimiet" + +#, php-format +msgid "Lock %s editing" +msgstr "Blokkeer %s wijzigen" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "Schakel dit in om te voorkomen dat gebruikers de NSFW-vlag wijzigen. Indien ingeschakeld, zullen alleen admin en managers deze toestemming hebben." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Geef onveilige (NFSW) inhoud weer" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Schakel dit in als u onveilige inhoud wilt weergeven in lijsten. Deze instelling heeft geen invloed op beheerders en kan worden overschreven door gebruikersinstellingen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Vervaag NSFW inhoud in lijstoverzicht" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Schakel dit in als u het vervaag effect wilt inschakelen in lijstoverzicht." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Geef banners weer bij onveilige (NFSW) inhoud" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Schakel dit in om banners weer te geven bij onveilige inhoud" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Toon onveilige (NSFW) inhoud in willekeurige modus." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Items per pagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Hoeveel items moeten zichtbaar zijn per pagina ?" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Paginanummering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Oneindig scrollen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Standaard paginanummering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Wat voor paginanummering moet er gebruikt worden?" + +msgid "Listing viewer" +msgstr "Lijst viewer" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Schakel dit in om de lijst viewer te gebruiken wanneer er op een afbeelding wordt geklikt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Afbeeldingen lijstgrootte" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Niet vast" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Vast" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Beide methodes gebruiken een vaste breedte maar de niet vaste methode gebruikt automatische hoogte." + +msgid "Album listing images requirement" +msgstr "Album lijst afbeeldingen eis" + +msgid "explore" +msgstr "Verken" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Geef het minimum aantal afbeeldingen aan om albums weer te geven in verkenner." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Toon aantal kolommen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Hier kunt u instellen hoeveel kolommen er gebruikt moeten worden, gebaseerd op het gebruikte apparaat." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefoon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Desktop (PC)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Plaats uw thema in de map %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Kleur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Licht" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Donker" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Hoofdkleur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Hexadecimale kleurwaarde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Gebruik dit om de hoofdkleur van het thema te kiezen. Waarde moet in <a href=\"%s\" target=\"_blank\">hex formaat</a> zijn." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Topbalk knop kleur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Blauw" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Groen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Oranje" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Rood" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Grijs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Zwart" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Wit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Kleur voor de knoppen in de bovenste balk, bijvoorbeeld voor 'Nieuw account'" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Gebruik vectorieel logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Gebruik vectorieel logo op retinaschermen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Logo in vectorformaat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Logo in vectorformaat (SVG)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Logo in rasterformaat" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Bitmap-versie van uw logo. Bij voorkeur in .png formaat." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Hoogte logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Geen waarde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Gebruik dit om indien nodig de hoogte van het logo aan te geven." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon. De afbeelding moet dezelfde breedte en hoogte hebben." + +msgid "Image load max. filesize" +msgstr "Laden afbeelding max. grootte" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Afbeeldingen groter dan dit formaat worden voorzien van een knop om de afbeelding in volledig formaat te laden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Schakel downloadknop in" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Schakel dit in om de downloadknop wilt tonen bij afbeeldingen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Rechts klikken op afbeelding toestaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Selecteer dit om rechts klikken op de afbeeldingen viewer toe te staan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Toon Exif data" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Schakel dit in indien Exif data van de afbeelding getoond moet worden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Aanzetten sociaal delen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Selecteer dit om knoppen voor sociale netwerken te tonen om inhoud te delen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Insluitcodes inschakelen (inhoud)" + +msgid "Everybody" +msgstr "Iedereen" + +msgid "Users only" +msgstr "Alleen gebruikers" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Selecteer dit om de insluitcodes voor de inhoud te tonen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Onveilige (NSFW) inhoud checkbox bij uploaden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Schakel dit in om een checkbox te weergeven voor onveilige inhoud bij het uploaden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Eigen CSS code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Zet uw aangepaste CSS-code hier. Het zal als <style> geplaatst worden net vóór de afsluitende </head>-tag." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Eigen JS code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Zet uw aangepaste JS-code hier. Het zal als <script> geplaatst worden net vóór de afsluitende </head>-tag." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Gebruik hier geen %s markup. Dit is voor gewone JS-code, niet voor HTML-scripttags. Als u hier scripttags gebruikt zal u u website breken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Stijl" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Beginpagina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Opdelen beginpagina en afbeeldingen" + +#, php-format +msgid "Route %s" +msgstr "Route %s" + +msgid "upload" +msgstr "upload" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Selecteer de homepage stijl. Om het verder aan te passen, wijzig app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Omslagafbeelding" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Wilt u deze afbeelding echt verwijderen? Dit kan niet ongedaan gemaakt worden." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Verwijder afbeelding" + +msgid "Add new cover image" +msgstr "Voeg een nieuwe omslagafbeelding toe." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Dit wordt toegevoegd aan de startpagina %s-tag. Laat het leeg om de standaardinhoud te gebruiken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragraaf" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Oproep tot actie knop kleur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Kleur van de startpagina oproep tot actie knop." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Oproep tot actie overzicht opmaak knop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Schakel dit in om de overzichts opmaak voor de startpagina oproep tot actie knop te gebruiken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Oproep tot actie functionaliteit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Selecteer uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Open URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Oproep tot actie URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Voer een absolute of relatieve URL in" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Een relatieve URL zoals %r zal worden gekoppeld aan %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Oproep tot actie HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Dit wordt toegevoegd aan de oproep tot actie <a>-tag. Laat het leeg om de standaardinhoud te gebruiken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Gebruikers ID's" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Een vergelijkende lijst van gebruikers-ID's om afbeeldingen op de homepage te tonen. Laat het leeg of nul om alle recente afbeeldingen weer te geven." + +msgid "Automatic updates check" +msgstr "Controleer automatisch op updates" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Wanneer ingeschakeld controleert het systeem automatisch op nieuwe updates." + +msgid "Display available updates notification" +msgstr "Toon melding voor beschikbare updates" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Schakel in om bovenaan de pagina een waarschuwing te krijgen als er een nieuwe systeemupdate is." + +msgid "Dump update query" +msgstr "Dump update zoekopdracht" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Schakel dit in als u automatisch de juiste taal voor elke gebruiker wilt detecteren en instellen." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URL's" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Activeer deze optie als u SEO %s URL's wilt gebruiken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Onderhoud" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Wanneer ingesteld is op de website een onderhoudsmelding te zien. Deze instelling is niet van toepassing voor beheerders." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Dit is de unieke code die gebruikt wordt om numerieke ID te converteren naar alfanumeriek. Het werd gegenereerd bij de installatie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP foutmelding rapportage" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Schakel dit in om fouten van PHP <a %s>error reporting()</a> weer te geven. Dit moet uitgeschakeld staan in een productieomgeving." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Debug niveau" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Geen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Error log" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Toon errors zonder error log" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Toon en sla errors op" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Om het debug niveau in te stellen, kijk in de <A %s>debug documentatie</a>. Standaard niveau is \"Error log\" (1)." + +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." +msgstr "Routing maakt het mogelijk om standaard route binds on the fly aan te passen. Alleen alfanumerieke tekens, koppeltekens en onderstrepingstekens zijn toegestaan." + +msgid "Image routing" +msgstr "Afbeelding routering" + +#, php-format +msgid "Routing for %s" +msgstr "Routering voor %s" + +msgid "Album routing" +msgstr "Album routering" + +msgid "Hostname" +msgstr "Hostnaam" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Hostnaam waarop sub-domein wildcards zullen worden toegevoegd." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Deze instelling kan met %s worden overschreven." + +msgid "Language subdomains" +msgstr "Taal subdomeinen" + +msgid "languages" +msgstr "talen" + +msgid "Enable to use %s for %t." +msgstr "Inschakelen van %s voor %t." + +msgid "Username subdomains" +msgstr "Gebruikersnaam subdomeinen" + +msgid "user profiles" +msgstr "Gebruikersprofielen" + +msgid "Custom language strings" +msgstr "Aangepaste taalreeksen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Standaardtaal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Standaardtaal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automatische taalherkenning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Schakel dit in om de taalselectie automatisch uit te voeren en in te stellen voor elke gebruiker." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Taalkeuze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Schakel dit in als u taalkeuze toe wilt staan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Ingeschakelde talen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Niet geselecteerde talen worden niet gebruikt op uw website." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Selecteer om HTTPS in of uit te schakelen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Selecteer om deze opslag in of uit te schakelen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Quotum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Actief" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Opslagwijze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Standaard wordt lokale opslag gebruikt of wanneer er geen externe opslag actief is." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Indien hulp nodig is, bekijk de <a %s>opslag documentatie</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Wijzig opslag" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Van naam" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Naam afzender voor e-mails verstuurd naar gebruikers." + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Van e-mailadres" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Naam afzender voor e-mails verstuurd naar gebruikers." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Inkomend e-mailadres" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Ontvanger voor contactformulier en systeem waarschuwingen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-mail modus" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Hoe wilt u e-mails verzenden? SMTP wordt aangeraden." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server en -poort" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP gebruikersnaam" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP wachtwoord" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP beveiliging" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Onbewaakt" + +msgid "Decode ID" +msgstr "Decodeer ID" + +msgid "Encode ID" +msgstr "Codeer ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Verstuur test e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Gebruik dit om te testen hoe e-mails worden afgeleverd. We adviseren u om %s te gebruiken." + +msgid "Export a user" +msgstr "Exporteer een gebruiker" + +msgid "Export user" +msgstr "Exporteer gebruiker" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Hiermee kunt u de standaard persoonlijke gegevens van een gebruiker downloaden in JSON-formaat." + +msgid "Regenerate external storage stats" +msgstr "Regenereren van externe opslagstatistieken" + +msgid "Storage id" +msgstr "Opslag id" + +msgid "Regenerate" +msgstr "Regenereer" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Hiermee wordt het aantal van alle beeldrecords die bij de externe opslag van het doel horen, opnieuw berekend." + +msgid "Migrate image records from one external storage to another" +msgstr "Beeldrecords van de ene externe opslag naar de andere migreren" + +msgid "Source storage id" +msgstr "Bron opslag id" + +msgid "Target storage id" +msgstr "Doel opslag id" + +msgid "Migrate" +msgstr "Migreer" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Hiermee wordt alleen de database bijgewerkt. U moet de eigenlijke bestanden overbrengen naar de doelcontainer op uw eigenlijke opslagcontainer. URL-herschrijven wordt sterk aanbevolen. Gebruik nul (0) voor lokale opslag." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Maak een <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> aan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook App ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook App Secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Maak een <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> aan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API sleutel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API geheim" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitteraccount" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Maak een <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> aan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Maak een <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> aan." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK gebruikers ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK gebruikers secret" + +#, php-format +msgid "%s spam protection" +msgstr "%s spam bescherming" + +msgid "user generated content" +msgstr "door de gebruiker gegenereerde inhoud" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Schakel dit in om %l te gebruiken om spam te blokkeren op %c." + +#, php-format +msgid "%s API key" +msgstr "%s API sleutel" + +msgid "user signup" +msgstr "gebruikersregistratie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Er is een <a href=\"%s\" target=\"_blank\">reCAPTCHA code</a> nodig om dit te kunnen gebruiken." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Houd er rekening mee dat elke reCAPTCHA-versie een eigen set sleutels nodig heeft. Vergeet niet om de sleutels bij te werken als u van versie verandert." + +#, php-format +msgid "%s site key" +msgstr "%s site sleutel" + +#, php-format +msgid "%s secret key" +msgstr "%s geheime sleutel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA drempel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Hoeveel foute pogingen zijn nodig om te vragen om reCAPTCHA? Voer 0 (nul) in om er altijd om te vragen." + +#, php-format +msgid "Force %s on contact page" +msgstr "Dwing %s op contactpagina" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Activeer dit om altijd %s te tonen op de contactpagina." + +msgid "Comments API" +msgstr "Opmerkingen API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API werkt met %s." + +msgid "Disqus shortname" +msgstr "Disqus korte naam" + +#, php-format +msgid "%s public key" +msgstr "%s publieke sleutel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Opmerking code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook of wat u maar wilt. Het zal worden gebruikt in de afbeelding viewer." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "Automatisch modereren van de inhoud met behulp van de %s service." + +msgid "Automatic approve" +msgstr "Automatisch goedkeuren" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Schakel dit in om de inhoud die door deze dienst gemodereerd wordt automatisch goed te keuren." + +msgid "Block content" +msgstr "Blokkeer inhoud" + +msgid "Adult" +msgstr "Volwassene" + +msgid "Teen and adult" +msgstr "Tiener en volwassene" + +msgid "Flag NSFW" +msgstr "Vlag NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Google Analytics-code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics of wat u maar wilt. Het zal worden toegevoegd aan de footer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Gebruik deze sleutel wanneer de <a %s>API v1</a> gebruikt wordt." + +msgid "Plugin route" +msgstr "Plugin route" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Schakel dit in om de plugin instructies op %u te tonen. Een link naar deze instructies wordt toegevoegd aan het %s menu. Deze instelling is niet van toepassing voor beheerders." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Gebruik dit om een eigen URL in te schakelen voor %p. Let op dat het noodzakelijk is om handmatig %s toe te voegen in deze URL." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Cookiewet naleving" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Schakel dit in om een bericht weer te geven die voldoet aan de eisen van de EU-cookie wetgeving. Opmerking: dit heeft u alleen nodig als uw website in de EU gehost wordt en u trackingcookies toevoegt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Wijzigingen opslaan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Controleer de fouten om verder te gaan" + +msgid "Play GIF" +msgstr "Speel GIF af" + +msgid "Load 360° view" +msgstr "Laad 360° beeld" + +msgid "Load full resolution" +msgstr "Laadt de volledige resolutie" + +#, php-format +msgid "%s image" +msgstr "%s afbeelding" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "Wilt u echt alle geselecteerde inhoud verwijderen? Dit kan niet ongedaan worden gemaakt." + +msgid "This is the album cover" +msgstr "Dit is de albumomslag" + +msgid "Cover" +msgstr "Omslag" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Toegevoegd aan %a en gecategoriseerd in %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Toegevoegd aan %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Geupload naar %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Geüpload: %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Minder Exif data" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Meer Exif data" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Upload en deel uw afbeeldingen" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Sleep en plak waar u wil en start het uploaden van de afbeeldingen direct. %s limiet. Directe afbeeldingen links, BB code en HTML thumbnails." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Start uploaden" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registreer om gebruik te maken van de mogelijkheden van deze website." + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Beheer uw inhoud, maak privé-albums, personaliseer uw profiel en nog veel meer." + +msgid "Sign in with your account" +msgstr "Log in met uw account" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Nog geen account? <a href='%s'>Registreer</a> nu." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Uitgelogd " + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "U bent nu uitgelogd van %s. Hopelijk tot snel." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Naar de startpagina" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Website is in onderhoud." + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "We hebben op dit moment gepland onderhoud aan de website. Kijk over een paar minuten nog eens." + +msgid "This content is password protected." +msgstr "De inhoud is beschermd met een wachtwoord." + +msgid "Please enter your password to continue." +msgstr "Voer het wachtwoord in om verder te gaan." + +msgid "Send" +msgstr "Verzenden" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Voeg het uploaden van afbeeldingen toe aan uw website, blog of forum door onze upload plugin te installeren. Het biedt het uploaden van afbeeldingen naar elke website door een knop te plaatsen waarmee jouw gebruikers direct afbeeldingen kunnen uploaden naar onze service en het zal automatisch de codes verwerken die nodig zijn voor het invoegen. Alle functies zijn inbegrepen, zoals slepen en neerzetten, uploaden op afstand, beeldvergroting en nog veel meer." + +msgid "Supported software" +msgstr "Ondersteunde software" + +msgid "supported software" +msgstr "ondersteunde software" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "De plugin werkt in elke website met een gebruiker aanpasbare inhoud en voor %sv, het zal een upload knop plaatsen die overeenkomt met de doel editor werkbalk zodat er geen extra aanpassing nodig is." + +msgid "Add it to your website" +msgstr "Toevoegen aan uw website" + +msgid "options" +msgstr "opties" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Kopieer en plak de plugin code in uw website HTML-code (bij voorkeur in de kopsectie). Er zijn tal van %o om het beter op uw behoeften af te stemmen." + +msgid "Basic options" +msgstr "Basis opties" + +msgid "Color palette" +msgstr "Kleurenpalet" + +msgid "Button color scheme" +msgstr "Knop kleurstelling" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Ingebedde codes die automatisch in het reactievak worden geplaatst" + +msgid "Sibling selector" +msgstr "Zuster keuzeschakelaar" + +msgid "Sibling element selector where to place the button next to" +msgstr "Keuzeschakelaar van het zuster element waar de knop naast geplaatst moet worden" + +msgid "Sibling position" +msgstr "Zusterpositie" + +msgid "After" +msgstr "Na" + +msgid "Before" +msgstr "Voor" + +msgid "Position relative to sibling element" +msgstr "Relatieve positie tot het zuster element" + +msgid "Advanced options" +msgstr "Geavanceerde opties" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "De plugin heeft een grote set extra opties die volledige aanpassing mogelijk maken. U kunt aangepaste HTML, CSS, eigen kleurenpalet, waarnemers en meer gebruiken. Controleer de %d en plugin bron om een beter beeld te krijgen van deze geavanceerde opties." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "U heeft geen toegang tot deze pagina of de link is verlopen." + +msgid "Search results" +msgstr "Zoekresultaten" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Wilt u deze gebruiker echt verwijderen? Dit kan niet ongedaan gemaakt worden." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Verwijder gebruiker" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Registratiedatum" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Registratie IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Geldig" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Geblokkeerd" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "E-mail afwachten" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Wachtend op bevestiging" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i tot %f tekens<br>Letters, nummers en \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Automatisch verwijderen uploads" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Deze instelling geldt standaard voor al uw geuploade afbeeldingen. U kunt dit overrulen bij iedere upload." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Behoud <a %s>Exif data</a> van afbeelding bij uploaden" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Nieuwsbrief" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Stuur mij emails met nieuws over %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Instellingen inhoud" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Geef onveilige (NFSW) inhoud weer in overzichten (van anderen)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Taal" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Tijdzone" + +msgid "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." +msgstr "Deze dienst wordt geleverd door %website_name%, wij zijn een onafhankelijke dienstverlener. Hartelijk dank voor uw voortdurende steun." + +msgid "At %website_name% we are proudly using and supporting %software%." +msgstr "Bij %website_name% zijn we er trots op %software% te gebruiken en te ondersteunen." + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Huidig wachtwoord" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Voer uw huidige wachtwoord in" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nieuw wachtwoord" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Bevestig nieuw wachtwoord" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Voeg een wachtwoord toe om in te loggen met gebruikersnaam of email." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Deze gebruiker heeft geen wachtwoord. Gebruik dit tekstveld om een wachtwoord aan te maken." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Voer uw wachtwoord in" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Wachtwoord bevestigen" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Wachtwoord opnieuw invoeren" + +msgid "Upload avatar" +msgstr "Upload avatar" + +msgid "Make my profile and identity totally private" +msgstr "Maak mijn profiel en identiteit geheim" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Schakel dit in om als anonieme gebruiker getoond te worden" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Dit is uw echte naam, niet uw gebruikersnaam." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://uwwebsite.domein" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Biografie" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Vertel meer over uzelf" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Deze gebruiker heeft geen connecties." + +msgid "Link your account to external services to be able to login here." +msgstr "Koppel uw account aan externe diensten om in te kunnen loggen en inhoud te kunnen delen." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Wilt u %s echt van dit account ontkoppelen?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Dit account is gekoppeld aan %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Wilt u uw %s-account echt ontkoppelen?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "U wordt afgemeld en u zult niet meer kunnen inloggen via account %s." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Dit account is gekoppeld aan %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "ontkoppelen" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Verbind %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Voel u vrij om mijn gedeelde foto's en albums door te bladeren." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Knop" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Bekijk al mijn foto's" + +msgid "Login" +msgstr "Inloggen" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Heeft u reeds een account? %s nu." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "activatie opnieuw verzenden" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Als u zich al hebt aangemeld, moet u misschien een verzoek indienen bij %s om uw account te activeren." + +#, php-format +msgid "You can also %s." +msgstr "U kunt ook %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Ik ben minimaal %s jaar oud" + +msgid "terms" +msgstr "voorwaarden" + +msgid "privacy policy" +msgstr "privacybeleid" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Ik ga akkoord met de %terms_link en het %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Upload een achtergrondafbeelding" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Verander achtergrond" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Upload nieuwe afbeelding" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Uw achtergrondafbeelding zal worden verwijderd. Dit kan niet ongedaan gemaakt worden. Weet u zeker dat u uw achtergrondafbeelding wilt verwijderen?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Verwijder achtergrond" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Volger" +msgstr[1] "Volgers" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Volgen" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "U bent verbannen van deze website." + +msgid "Plugin" +msgstr "Plugin" + +#, php-format +msgid "Page %s" +msgstr "Pagina %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Algemene vragen en opmerkingen" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA klacht" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Ongeldig bericht" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Ongeldig onderwerp" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Mail fout" + +msgid "Message sent" +msgstr "Bericht verzonden" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Bericht verzonden. We nemen zo spoedig mogelijk contact op." + +msgid "If you want to send a message fill the form below." +msgstr "Indien u een bericht wilt versturen, vul dan het formulier in." + +msgid "Your name" +msgstr "Uw naam" + +msgid "Subject" +msgstr "Onderwerp" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "De wijzigingen gaan verloren als u verder gaat." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "De wijzigingen zijn opgeslagen." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Terug naar het formulier" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "toch doorgaan" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Opslaan" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Verzenden" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Bevestig actie" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informatie" + diff --git a/app/languages/pl.po b/app/languages/pl.po new file mode 100644 index 0000000..fbaf76c --- /dev/null +++ b/app/languages/pl.po @@ -0,0 +1,3595 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2019-02-19 21:59+0000\n" +"PO-Revision-Date: 2019-02-19 21:59+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Błędny adres e-mail" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Błędna nazwa użytkownika" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Błędne hasło" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Błędny tryb strony" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Adres e-mail nadawcy" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Adres e-mail dla wiadomości wysyłanych do użytkowników." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Adres poczty przychodzącej" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Odbiorca wiadomości z formularza kontaktowego i ostrzeżeń systemowych." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Tryb strony" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Możesz przełączyć tryb strony w każdym momencie." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Społeczność" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Osobiste" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Aktualizacja w toku" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Brak pliku %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Nieprawidłowa informacje licencji" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Nieprawidłowy klucz licencji" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Nie można zapisać pliku" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Nie można pobrać pliku %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Nie można rozpakować %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Nie można utworzyć katalogu %s - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Nie można zaktualizować pliku %s - %e" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Bez nazwy" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Grafiki użytkownika %s" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Uwaga: Ta zawartość jest prywatna, ale każda osoba posiadająca link może ją zobaczyć." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Uwaga: Ta zawartość jest chroniona hasłem. Pamiętaj podać hasło gdy udostępniasz link innym osobom." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Informacja: Ta zawartość jest prywatna. Zmień prywatność na \"publiczny\", aby udostępnić." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Prywatna" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Publiczny" + +msgid "Me" +msgstr "Ja" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Odnośnik" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Hasło" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "wyświetlenie" +msgstr[1] "wyświetlenia" +msgstr[2] "wyświetleń" + +msgid "After %n %t" +msgstr "Po %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuta" +msgstr[1] "minuty" +msgstr[2] "minut" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "godzina" +msgstr[1] "godziny" +msgstr[2] "godzin" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dzień" +msgstr[1] "dni" +msgstr[2] "dni" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "tydzień" +msgstr[1] "tygodnie" +msgstr[2] "tygodni" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "miesiąc" +msgstr[1] "miesiące" +msgstr[2] "miesięcy" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "rok" +msgstr[1] "lata" +msgstr[2] "lat" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Nie usuwaj automatycznie" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplikat" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Prywatny" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "polubienie" +msgstr[1] "polubienia" +msgstr[2] "polubień" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "grafika" +msgstr[1] "grafiki" +msgstr[2] "grafik" + +msgid "Recent" +msgstr "Ostatnie" + +msgid "Trending" +msgstr "Na czasie" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Najlepsi użytkownicy" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Najnowsze" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Najstarsze" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Najczęściej wyświetlane" + +msgid "Popular" +msgstr "Popularne" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Najbardziej lubiane" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Eksploruj" + +msgid "Animated" +msgstr "Animowane" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Szukaj" + +msgid "People" +msgstr "Ludzie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Grafika" +msgstr[1] "Grafiki" +msgstr[2] "Grafik" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "album" +msgstr[1] "albumy" +msgstr[2] "albumów" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Użytkownik" +msgstr[1] "Użytkownicy" +msgstr[2] "Użytkowników" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Nie można utworzyć katalogu docelowego %s" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Wewnętrzny" + +#, php-format +msgid "requires %s" +msgstr "wymaga %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Bez ograniczeń" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "użyte" + +msgid "Private profile" +msgstr "Profil prywatny" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekunda" +msgstr[1] "sekundy" +msgstr[2] "sekund" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s temu" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "chwilę temu" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Panel kontrolny" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Baza danych systemu jest nieaktualna. Należy uruchomić narzędzie <a href=\"%s\">aktualizacji</a>." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Informacje o aktualizacji:" + +#, php-format +msgid "view on %s" +msgstr "zobacz na %s" + +msgid "cookie policy" +msgstr "polityka plików cookie" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Używamy własnych i zewnętrznych plików cookie w celu poprawy jakości przeglądania i naszych usług. Jeśli nadal korzystasz z naszej strony internetowej, oświadczasz, że akceptujesz %cookie_policy_link." + +msgid "I understand" +msgstr "rozumiem" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Dostęp do tej strony został zablokowany." + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Zapraszam do przeglądania i odkrywania wszystkich moich udostępnionych zdjęć i albumów." + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Wszystkie moje grafiki" + +msgid "Plugin" +msgstr "Wtyczka" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Ta strona nie istnieje" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Nie pamiętasz hasła?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Zresetuj hasło" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Wyślij ponownie wiadomość aktywacyjną" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Dodaj swój adres -email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Adres e-mail został zmieniony" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Błędna nazwa użytkownika lub adres e-mail" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Użytkownik nie ma adresu e-mail." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Żądanie odrzucone" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Aby używać tej funkcji konto musi zostać aktywowane" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Konto już aktywowane" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Poczekaj 15 minut na wiadomość e-mail. Możesz spróbować ponownie później." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Reset hasła na %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Potwierdzenie wymagane na %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Witamy w %s" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Hasła nie pasują do siebie" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Adres e-mail jest już w użyciu" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Sprawdź błędy w formularzu, aby kontynuować" + +msgid "Password required" +msgstr "Hasło jest wymagane" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Udostępnij" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Kody do osadzania" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Pełne informacje" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statystyki" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Grafiki" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albumy" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Użytkownicy" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Ustawienia" + +msgid "Bulk importer" +msgstr "Importuj masowo" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Wersja Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "zainstaluj aktualizację" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "sprawdź aktualizacje" + +msgid "Support" +msgstr "Pomoc" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Potrzebujesz pomocy? Przejdź do %s, aby szybko ją otrzymać." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Wersja PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Serwer" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Wersja MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Informacje o serwerze MySQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "Biblioteka GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Wysyłka plików" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Włączona" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Wyłączona" + +msgid "Max. upload file size" +msgstr "Maksymalny rozmiar pliku " + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maksymalny rozmiar posta" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maksymalny czas wykonywania" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekundy" +msgstr[2] "%d sekund" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Limit pamięci" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Odnośniki" + +msgid "Documentation" +msgstr "Dokumentacja" + +msgid "Changelog" +msgstr "Historia zmian" + +msgid "Request new features" +msgstr "Poproś o nowe funkcje" + +msgid "Bug tracking" +msgstr "Śledzenie błędów" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Strona" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Treść" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Strony" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Listy" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Wysyłanie grafiki" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorie" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Zabezpieczenie antyfloodowe" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Styl" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Strona główna" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Banery" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "System" + +msgid "Routing" +msgstr "Routing" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Języki" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Zewnętrza pamięć" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sieci społecznościowe" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Usługi zewnętrzne" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Blokady IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Dodatkowe ustawienia" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Narzędzia" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Lokalne" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Zewnętrzne" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Wszystko" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "wyszukaj zawartość" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Dodaj stronę" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Edytuj identyfikator strony %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Strona została dodana pomyślnie." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Strona została usunięta." + +msgid "homepage" +msgstr "strona główna" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Przed stronicowaniem" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Za stronicowaniem" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Treść (grafika i album)" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Przed komentarzami" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Strona grafiki" + +#: ../../../app/routes/route.dashboard.php:413 +#: ../../../app/routes/route.dashboard.php:417 +msgid "Expected banner size 728x90" +msgstr "Oczekiwany rozmiar baneru 728x90" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Strona albumu" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Strona profilu użytkownika" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Strona odkrywania" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Błędna nazwa strony" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Błędny język" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Błędna strefa czasowa" + +#, php-format +msgid "Invalid value: %s" +msgstr "Nieprawidłowa wartość: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Błędny tryb przechowywania plików" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Błędne nazewnictwo wysyłanych plików" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Błędna szerokość miniaturki" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Błędna wysokość miniaturki" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Błędny styl" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Błędna wartość" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Błędny identyfikator użytkownika" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Błędny tryb e-maili" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Błędny port SMTP" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Błędne zabezpieczenia SMTP" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Błędny tryb prywatności" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Błędny tytuł" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Nieprawidłowy status" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Błędny typ" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Błędna ikona" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Niepoprawna ścieżka pliku" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Niepoprawny link URL" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Błędny URL" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Błędna ścieżka wysyłania grafik" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maksymalny dozwolony %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Błędny serwer SMTPs" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Błędna nazwa użytkownika SMTP" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Informacje" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Identyfikator grafiki" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Adres IP wysyłającego" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Zablokuj IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP już zbanowany" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Data wysłania" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Odnośniki bezpośrednie" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Odnośnik do obrazka" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Adres grafiki" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Odnośnik do miniaturki" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Odnośnik do średniej grafiki" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Logowanie wymagane" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Adres IP jest już zablokowany" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Brakujące wartości" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Nazwa użytkownika jest już używana" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s został odłączony." + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "To tylko test" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u polubił Twój %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u zaczął Cię śledzić" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Błędna kombinacja nazwy użytkownika lub adresu e-mail i hasła" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Zaloguj" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Wylogowano" + +msgid "Upload images" +msgstr "Wyślij obrazy" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Konto" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Połączone konta" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Wiadomość z instrukcjami aktywacji konta została wysłana na adres %s" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Błędna nazwa" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Błędna strona" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Błędne hasło" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Użyj nowego hasła" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Zmiany zostały zapisane." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Hasło zostało zmienione" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Hasło zostało utworzone." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Błędna nazwa użytkownika lub adres e-mail" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Ustawienia dla %s" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Utwórz konto" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Wyślij" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Grafiki użytkownika %s" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Albumy użytkownika %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Wyniki dla" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%s polubień" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Polubień" + +msgid "Discovery" +msgstr "Odkrywaj" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Zamknij" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Wyszukiwanie zaawansowane" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Losowa" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Powiadomienia" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "ładowanie" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Nie masz żadnych powiadomień" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Mój profil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Wyloguj się" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Otrzymaliśmy prośbę zmiany adresu e-mail twojego konta <a href=\"%u\">%n</a> na %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Aby zakończyć proces musisz <a href=\"%s\">aktywować swój e-mail</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Możesz również skopiować adres i wkleić go w swojej przeglądarce: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Jeśli tego nie chcesz, po prostu zignoruj tę wiadomość." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Prośba została dodana z następującego adresu IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Otrzymaliśmy prośbę o rejestrację konta %n na %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Aby zakończyć proces musisz <a href=\"%s\">aktywować swoje konto</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Otrzymaliśmy prośbę o reset hasła do twojego konta <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Aby zresetować hasło <a href=\"%s\">kliknij w ten odnośnik</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Cześć %n, witamy w %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Teraz, gdy Twoje konto jest gotowe, możesz cieszyć się wysyłaniem grafik, tworzeniem albumów i ustawianiem prywatności, a także odkrywaniem innych wspaniałych funkcji." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Tak przy okazji, tutaj jest Twoja własna wspaniała strona profilowa: <a href=\"%u\">%n</a>. Rozejrzyj się i ją spersonalizuj, jest Twoja!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Dziękujemy za dołączenie do nas" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Ta wiadomość e-mail została wysłana z %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Przeciągnij lub wklej obrazy tutaj" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Wybierz grafikę do wysłania" + +msgid "browse from your computer" +msgstr "przejrzeć swój komputer" + +msgid "add image URLs" +msgstr "dodać adresy obrazów" + +msgid "You can also %i or %u." +msgstr "Możesz także %i lub %u." + +msgid "browse from your device" +msgstr "przeglądaj ze swojego urządzenia" + +msgid "take a picture" +msgstr "zrób zdjęcie" + +msgid "You can also %i, %c or %u." +msgstr "Możesz także %i, %c lub %u." + +msgid "your computer" +msgstr "twój komputer" + +msgid "your device" +msgstr "twoje urządzenie" + +msgid "Uploading %q %o" +msgstr "Wysyłanie %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "zakończono" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Wysyłanie zakończone" + +msgid "create a new album" +msgstr "utwórz nowy album" + +msgid "move it to an existing album" +msgstr "przenieś do istniejącego albumu" + +msgid "create an account" +msgstr "utwórz konto" + +msgid "sign in" +msgstr "zaloguj" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Wystąpiły błędy przez co system nie mógł przetworzyć żądania." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Wybierz kategorię" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Oznacz tę pozycję jako tylko dla dorosłych" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Treść tylko dla dorosłych" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Wysyłanie" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "lub" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "anuluj" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "anuluj pozostałe" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Informacja: część grafik nie może zostać wysłana." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "dowiedz się więcej" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Sprawdź <a data-modal=\"simple\" data-target=\"failed-upload-result\">raport błędu</a>, aby uzyskać więcej informacji." + +msgid "reset" +msgstr "resetuj" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "zamknij" + +msgid "copy" +msgstr "kopiuj" + +msgid "insert" +msgstr "wstaw" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Edytuj" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Usuń" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Edytuj grafikę" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Tytuł" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "opcjonalny" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Zmień rozmiar grafiki" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Szerokość" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Wysokość" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Uwaga: nie można zmienić rozmiaru animowanych GIFów" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Automatycznie usuń grafikę" + +msgid "Sign up" +msgstr "Zaloguj" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Zaznacz to, jeśli treść jest odpowiednia tylko dla dorosłych" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Ustaw ograniczenia wiekowe" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Opis" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Krótki opis tej grafiki" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Dodaj adresy obrazów" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Dodaj tutaj adresy grafik" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Utwórz album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Przenieś do albumu" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Wybierz istniejący album do przeniesienia wysłanej zawartości. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść ją do niego." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Raport błędu" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albumy" +msgstr[2] "albumów" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Odnośniki do przeglądarki" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Kody HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "obraz HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "Kod HTML do średniej grafiki z odnośnikiem" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "Kod HTML do miniaturki z odnośnikiem" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode do średniej grafiki z odnośnikiem" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode do miniaturki z odnośnikiem" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Adres IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nazwa albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "przenieś do istniejącego albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Opis albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Krótki opis tego albumu" + +msgid "Album privacy" +msgstr "Prywatność albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Kto może wyświetlać tę zawartość" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Prywatny (tylko ja)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Prywatny (każda osoba z linkiem)" + +msgid "Private (password protected)" +msgstr "Prywatny (chroniony hasłem)" + +msgid "Album password" +msgstr "Hasło albumu" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Imię" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nazwa kategorii" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Klucz URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Klucz URL kategorii" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Krótki opis tej kategorii" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Grafika bez nazwy" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Ścieżka" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Data wygasania" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "RRRR-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Przykład" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Wiadomość" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Istniejący album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "utwórz nowy album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Klucz" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Klucz prywatny" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Nazwa użytkownika" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Ścieżka serwera" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Hasło serwera" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Na przykład: 20 GB, 1 TB itp." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "wyświetl więcej" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Załaduj więcej" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Wybierz wszystkie" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Wyczyść zaznaczenie" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Wybór" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Akcja" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Przypisz kategorię" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Usuń ograniczenia wiekowe" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Usuń" + +msgid "Create new album" +msgstr "Utwórz nowy album" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Zaloguj się przy użyciu innego konta" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Nie ma tutaj nic do wyświetlenia." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Edytuj szczegóły grafiki" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Edytuj szczegóły albumu" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Wysłane grafiki zostaną przeniesione do tego nowego albumu. Możesz również przenieść je do <a class=\"modal-switch\" data-switch=\"move-existing-album\">istniejącego albumu</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Wybierz istniejący album do przeniesienia grafiki. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść ją do niego." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Wybierz istniejący album do przeniesienia zawartości. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść zawartość do niego." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Wybierz istniejący album, aby przenieść grafiki. Możesz również <a class=\"modal-switch\" data-switch=\"move-new-album\">utworzyć nowy album</a> i przenieść grafiki do niego." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Wszystkie wybrane grafiki zostaną przypisane do tej kategorii." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Brak kategorii." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Potwierdź usunięcie ograniczeń wiekowych" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Czy naprawdę chcesz usunąć ograniczenia wiekowe tej zawartości?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Potwierdź ustawienie ograniczeń wiekowych" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Czy naprawdę chcesz ustawić ograniczenia wiekowe tej zawartości?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Potwierdź usunięcie" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Na pewno chcesz usunąć tę zawartość? Nie można tego cofnąć." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Na pewno chcesz usunąć całą wybraną zawartość? Nie można tego cofnąć." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Gość" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Lubię to" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Od %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Wybierz" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Przełącz ustawienia wiekowe" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Żądana strona nie została znaleziona." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Wyszukaj coś innego" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Użytkownik został usunięty" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Zawartość została usunięta." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Twoje konto jest niemal gotowe" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Na adres %s została wysłana wiadomość z instrukcjami aktywacji konta. Odnośnik jest ważny przez 48 godzin. Jeśli nie otrzymasz instrukcji sprawdź wiadomości w folderze ze spamem." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Wyślij ponownie e-mail aktywacyjny" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Pomyślnie zmieniono adres e-mail na %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Przejdź do mojego profilu" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Odnośnik potwierdzający zostanie wysłany na ten adres razem z instrukcjami aktywacji konta." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Twój adres e-mail" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Wyślij" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Wiadomość z instrukcjami resetowania hasła została wysłana na przypisany adres e-mail. Jeśli nie otrzymasz instrukcji sprawdź wiadomości w folderze ze spamem." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Poprzednia wiadomość z instrukcjami resetowania hasła została wysłana. Jeśli jej nie otrzymałeś sprawdź wiadomości w folderze ze spamem." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Wyślij instrukcje ponownie" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Nazwa użytkownika lub adres e-mail" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Hasło zostało zmienione. Spróbuj zalogować się przy użyciu nowego hasła." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Zaloguj się teraz" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Wpisz swoje nowe hasło" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "minimum %d znaków" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Wpisz ponownie swoje nowe hasło" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Ta zawartość jest prywatna" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Na pewno chcesz usunąć ten album razem ze wszystkimi grafikami? Nie można tego cofnąć." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Usuń album" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Lubisz to" + +msgid "Upload to album" +msgstr "Wyślij do albumu" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Odnośnik do albumu" + +msgid "I Agree" +msgstr "Zgadzam się" + +msgid "documentation" +msgstr "dokumentacja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Zajęta powierzchnia dyskowa" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Dodaj użytkownika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rola" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrator" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Adres e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Dodaj kategorię" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Dodaj blokadę IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nazwa strony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Doctitle strony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Opis strony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Domyślna strefa czasowa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Wybierz region" + +msgid "Likes" +msgstr "Polubienia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Identyfikator użytkownika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Twój identyfikator użytkownika: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Tryb prywatny pozwoli na wyświetlanie strony tylko zarejestrowanym użytkownikom." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Z prywatną treścią" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Domyślna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Tytuł strony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Status strony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktywna strona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Nieaktywna strona (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Tylko aktywne strony będą dostępne." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Rodzaj" + +msgid "Privacy" +msgstr "Prywatność" + +msgid "Contact" +msgstr "Kontakt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Widoczność strony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Widoczna strona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Ukryta strona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Ścieżka do pliku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Słowa kluczowe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Kod źródłowy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Adres URL" + +msgid "pages" +msgstr "stron" + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Włącz wysyłanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Włącz to, jeśli chcesz umożliwić wysyłanie grafik. To ustawienie nie ma wpływu na administratorów." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Wysyłanie dla gości" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Włącz to, aby umożliwić wysyłanie dla osób niezarejestrowanych" + +msgid "Maximum image size" +msgstr "Maksymalny rozmiar obrazu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Dane EXIF obrazu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Zachowaj" + +msgid "Maximum upload file size" +msgstr "Maksymalny rozmiar wysyłanego pliku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Ścieżka do grafiki" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Względna do głównego katalogu Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Gdzie przechowywać grafiki? Względnie do głównego katalogu Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Tryb przechowywania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Foldery z datami" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Bezposrednio" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Foldery z datami tworzą strukturę %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Metoda nazewnictwa plików" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Oryginalna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Rozmiar miniaturki" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Miniaturki zostaną dopasowane do tego rozmiaru." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Znaki wodne" + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Uwaga: Nie można zapisać w %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Grafika znaku wodnego" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Położenie znaku wodnego" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "po lewej na górze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "po lewej na środku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "po lewej na dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "na środku na górze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "na środku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "na środku na dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "po prawej na górze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "po prawej na środku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "po prawej na dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Margines znaku wodnego" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margines od brzegu grafiki do znaku wodnego." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Pamiętaj: Usunięcie kategorii nie spowoduje usunięcia grafik do niej należących." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Edytuj kategorię" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Wygasa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Edytuj blokadę IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Włącz rejestrację" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Włącz to, jeśli chcesz pozwolić użytkownikom na rejestrację." + +msgid "Empty" +msgstr "Pusty" + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Routing nazwy użytkownika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Wymagaj potwierdzenia adresu e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Włącz to, jeśli użytkownicy muszą potwierdzić swój adres e-mail po rejestracji." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Zablokuj wysyłanie grafik z danego adresu IP po wykryciu podejrzanego zachowania bazując na liczbie plików wysłanych w danym czasie. To ustawienie nie dotyczy administratorów." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Powiadom adres" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Jeśli włączone, system wyśle wiadomość po wykryciu podejrzanego zachowania." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Limit minutowy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Limit godzinowy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Limit dzienny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Limit tygodniowy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Limit miesięczny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Pokaż na listach zawartości tylko dla dorosłych" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Ilość pozycji wyświetlana na każdej stronie listy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Nieskończone przewijanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klasyczne stronicowanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Metoda stronicowania, która ma być używana." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Płynna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Stała" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Obie metody używają stałej szerokości, ale metoda \"płynna\" używa automatycznej wysokości." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Komputer stacjonarny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Umieść swoje style w folderze %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Jasny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Ciemny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Główny kolor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Heksadecymalna wartość koloru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Top bar color" +msgstr "Kolor górnego paska" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Czarny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Biały" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Kolor przycisków górnego paska" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Niebieski" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Zielony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Pomarańczowy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Czerwony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Szary" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Kolor przycisków takich jak \"Załóż konto\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Włącz logo wektorowe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Logo wektorowe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Wysokość logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Brak wartości" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Włącz przycisk pobierania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Włącz to, jeśli chcesz wyświetlać przycisk pobierania grafiki." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Włącz udostępnianie w sieciach społecznościowych." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Włącz to, jeśli chcesz wyświetlać przyciski do udostępniania treści w sieciach społecznościowych." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Własny kod CSS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Dodaj tutaj własny kod CSS. Zostanie on dodany jako <style> tuż przed znacznikiem zamykającym </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Własny kod JS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Dodaj tutaj własny kod JS. Zostanie on dodany jako <script> tuż przed znacznikiem zamykającym </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Styl" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Okładka" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Na pewno chcesz usunąć tę grafikę? Nie można tego cofnąć." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Usuń grafikę" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Akapit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Otwórz URL" + +msgid "Automatic updates check" +msgstr "Automatycznie sprawdź aktualizacje" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Konserwacja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Sól szyfrowania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Jest to sól używana do konwersji identyfikatorów numerycznych na alfanumeryczne. Została ona wygenerowana przy instalacji." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Raportowanie błędów PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Poziom debugowania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Brak" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Dziennik błędów" + +msgid "Image routing" +msgstr "Routing grafiki" + +#, php-format +msgid "Routing for %s" +msgstr "Routing dla %s" + +msgid "Album routing" +msgstr "Routing albumu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Domyślny język" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Domyślny język podstawowy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Automatyczny język" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Włącz to, jeśli chcesz automatycznie wykrywać i ustawiać język dla każdego użytkownika." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Wybór języka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Włącz to, jeśli chcesz pozwolić na wybór języka." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Włączone języki" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Niezaznaczone języki nie będą dostępne na stronie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Przełącz to, aby włączyć lub wyłączyć HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Udział" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktywna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Metoda przychowywania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Nazwa nadawcy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nazwa nadawcy wiadomości e-mail wysyłanych do użytkowników." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Tryb e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Jak wysyłać wiadomości e-mail? Rekomendowane jest SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "Serwer i port SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "Serwer SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Nazwa użytkownika SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Hasło SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Bezpieczeństwo SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Niezabezpieczony" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Wyślij testową wiadomość e-mail" + +msgid "social networks" +msgstr "sieci społecznościowe" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Potrzebujesz do tego <a href=\"https://developers.facebook.com/\" target=\"_blank\">aplikacji Facebook</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID aplikacji Facebooka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "\"Sekret\" aplikacji Facebooka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Potrzebujesz do tego <a href=\"https://apps.twitter.com\" target=\"_blank\">aplikacji Twitter</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Klucz API Twittera" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "\"Sekret\" API Twittera" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Konto na Twitterze" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Potrzebujesz do tego <a href=\"https://cloud.google.com/console\" target=\"_blank\">aplikacji Google</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "ID klienta Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "\"Sekret\" klienta Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Potrzebujesz do tego <a href=\"http://vk.com/dev\" target=\"_blank\">aplikacji VK</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Potrzebujesz do tego <a href=\"%s\" target=\"_blank\">klucza reCAPTCHA</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "Próg reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kod komentarzy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook lub cokolwiek innego. Zostanie użyty w widoku grafiki." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Kod Analytics" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics lub cokolwiek innego. Zostanie dodany w stopce stylu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Klucz API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Zgodność z przepisami dotyczącymi plików cookie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Zapisz zmiany" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Sprawdź błędy, aby kontynuować." + +msgid "Play GIF" +msgstr "Odtwórz GIF" + +msgid "Load full resolution" +msgstr "Załaduj w pełnej rozdzielczości" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Dodano do %a i przypisano do kategorii %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Dodano do %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Wysłano do %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Wysłano %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Mniej danych Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Więcej danych Exif" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Udostępnij grafikę" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Identyfikator albumu" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "W tym albumie" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Wyślij i udostępnij swoje grafiki" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Przeciągnij i upuść pliki w dowolnym miejscu aby zacząć przesyłać swoje zdjęcia. Limit %s. Bezpośrednie linki do obrazów, BBCode oraz miniaturki HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Rozpocznij wysyłanie" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Zarejestruj się, aby odblokować nowe funkcje" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Zarządzaj swoimi grafikami, twórz prywatne albumy, dostosowuj profil i wiele, wiele więcej." + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Nie masz konta? <a href='%s'>Zarejestruj się</a> teraz." + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Wylogowano pomyślnie, %s. Mamy nadzieję, że wrócisz tu wkrótce." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Przejdź do strony głównej" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Strona w trakcie konserwacji" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Wykonujemy zaplanowane prace konserwacyjne. Spróbuj ponownie za klika minut." + +msgid "This content is password protected." +msgstr "Zawartość chroniona hasłem" + +msgid "Please enter your password to continue." +msgstr "Aby kontynuować podaj hasło" + +msgid "Send" +msgstr "Wyslij" + +msgid "Supported software" +msgstr "Obsługiwane oprogramowanie" + +msgid "supported software" +msgstr "obsługiwane oprogramowanie" + +msgid "options" +msgstr "opcje" + +msgid "Basic options" +msgstr "Opcje podstawowe" + +msgid "Color palette" +msgstr "Paleta kolorów" + +msgid "After" +msgstr "Po" + +msgid "Before" +msgstr "Przed" + +msgid "Advanced options" +msgstr "Opcje zaawansowane" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Nie masz uprawnień do dostępu do tej strony albo odnośnik już wygasł." + +msgid "Search results" +msgstr "Wyniki wyszukiwania" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Na pewno chcesz usunąć tego użytkownika? Nie można tego cofnąć." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Usuń użytkownika" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Data rejestracji" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Adres IP rejestracji" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Poprawny" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Zbanowany" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Oczekujący e-mail" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Oczekujący na potwierdzenie" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "Od %i do %f znaków<br>Litery, liczby i \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Automatycznie usuń wysłane pliki" + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Zachowaj <a %s>dane Exif</a> przy wysyłaniu" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Biuletyn" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Wyślij mi wiadomości email z nowościami na %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Ustawienia zawartości" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Pokazuj na listach zawartości tylko dla dorosłych (od innych użytkowników)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Język" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Strefa czasowa" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Aktualne hasło" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Wpisz swoje aktualne hasło" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nowe hasło" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Potwierdź nowe hasło" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Dodaj hasło, aby móc logować się przy użyciu nazwy użytkownika lub adresu e-mail." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Ten użytkownik nie ma żadnego hasła. Dodaj je w tym formularzu." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Wpisz swoje hasło" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Potwierdź hasło" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Wpisz ponownie swoje hasło" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Wyślij nową grafikę" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Usuń istniejącą grafikę" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "To twoje prawdziwe imię, a nie nazwa użytkownika" + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://twojastrona.pl" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Opowiedz trochę o sobie" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Użytkownik nie ma połączeń" + +#: ../../../app/themes/Peafowl/views/settings.php:391 +msgid "Link your account to external services to be able to login and share content." +msgstr "Połącz swoje konto z zewnętrznymi usługami, aby logować się i udostępniać zawartość" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Na pewno chcesz odłączyć %s od swojego konta?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "To konto jest połączone z %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Na pewno chcesz odłączyć swoje konto %s?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Zostaniesz wylogowany i nie będziesz mógł się zalogować przy użyciu konta %s." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Twoje konto jest połączone z %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "odłącz" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Połącz %s" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Przycisk" + +#, php-format +msgid "I'm at least %s years old" +msgstr "Mam co najmniej %s lat" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Wyślij tło profilu" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Zmień tło" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Grafika tła profilu zostanie usunięta. Nie można tego cofnąć. Na pewno chcesz ją usunąć?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Usuń tło" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Edytuj profil" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "obserwujący" +msgstr[1] "obserwujących" +msgstr[2] "obserwujących" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Obserwuj" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Ogólne pytania lub komentarze" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Skarga DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Błędna wiadomość" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Błędny temat" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Błąd poczty" + +msgid "Message sent" +msgstr "Wiadomość wysłana" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Wiadomość wysłana. Skontaktujemy się wkrótce." + +msgid "If you want to send a message fill the form below." +msgstr "Aby wysłać wiadomość wypełni poniższy formularz" + +msgid "Your name" +msgstr "Twoje imię" + +msgid "Subject" +msgstr "Temat" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Zainstalowana wersja: v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Nie można połączyć się z %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Najnowsza wersja: v%s" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Aktualizacja niepotrzebna" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Pliki systemowe są już aktualne" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Pobieranie v%s rozpoczęte" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Pobieranie v%s zakończone, kontynuacja do rozpakowywania" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Rozpakowywanie v%s rozpoczęte" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Rozpakowywanie zakończone" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Kontynuacja do instalacji aktualizacji" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Niepowodzenie aktualizacji" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Musisz wpisać nazwę albumu" + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Potwierdź" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Wybierz istniejący album" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Wystąpił błąd. Spróbuj ponownie później." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Wybierz poprawne rozszerzenie grafiki" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Wybierz grafikę o maksymalnym rozmiarze %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Grafika profilowa została zaktualizowana." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Grafika tła profilu została zaktualizowana." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Grafika tła profilu została usunięta." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Wystąpił błąd podczas usuwanie grafiki tła profilu." + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Dostępna aktualizacja v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Dla Twojego systemu dostępna jest aktualizacja. Możesz pobrać i zainstalować tę aktualizację automatycznie lub przejść do %s, aby pobrać plik." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Aktualizuj teraz" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Masz najnowszą wersję %s" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Plik jest zbyt duży." + +msgid "Invalid or unsupported file format." +msgstr "Nieprawidłowy lub nieobsługiwany format pliku." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Część plików nie mogła zostać dodana" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Grafika została edytowana pomyślnie." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "prywatny" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Album został edytowany pomyślnie." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Błędny klucz URL." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Klucz URL kategorii jest już używany." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategoria została pomyślnie usunięta." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Kategoria %s została dodana." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Błędna data wygasania." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s już zablokowany." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s zablokowany." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Blokada IP usunięta" + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Wypełnij wszystkie wymagane pola." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Błędny URL" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Użytkownik został pomyślnie dodany." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Zawartość została przeniesiona." + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Usuń wybór" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Zawartość została edytowana." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Jeśli kontynuujesz, wszystkie dokonane zmiany zostaną utracone." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Zmiany zostały pomyślnie zapisane" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Wróć do formularza" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "kontynuuj mimo wszystko" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Zapisywanie" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Wysyłanie" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Potwierdź akcję" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "informacja" + diff --git a/app/languages/pt-BR.po b/app/languages/pt-BR.po new file mode 100644 index 0000000..1b4b316 --- /dev/null +++ b/app/languages/pt-BR.po @@ -0,0 +1,4974 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2019-12-12 15:27+0000\n" +"PO-Revision-Date: 2019-12-12 15:27+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "E-mail inválido" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Nome de usuário inválido" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Senha inválida" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Modo do site inválido" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "A partir do endereço de e-mail" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "E-mail do remetente para os e-mails enviados aos usuários." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Endereço do email de entrada" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Endereço para o formulário de contato e alertas do sistema." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Modo do site" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Você pode mudar a qualquer momento o modo do site." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Comunidade" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Pessoal" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "A versão instalada é v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Não foi possível conectar á %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Último lançamento disponível é v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Atualização necessária, prosseguindo para o download" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Não é necessário atualizar" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Os arquivos do sistema já estão atualizados" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Começando a atualização para a versão %s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Versão %s já está baixada, prosseguindo para a extração" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Extraindo versão %s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Extração concluída" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Prosseguindo para a instalação da atualização" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Atualização falhou" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Atualização em progresso" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Faltando %s arquivo" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Informação da licença inválida" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Chave de licença inválida" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Não foi possível salvar arquivo" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Não foi possível baixar %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Não foi possível extrair %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Não foi possível criar %s diretório - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Não foi possível atualizar o arquivo %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Verifique os erros no formulário para continuar." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Você deve indicar o nome do álbum." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Confirmar" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Selecione um álbum existente" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Ocorreu um erro. Por favor, tente novamente mais tarde." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Por favor, selecione um tipo de imagem válido." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Por favor selecione uma imagem com o máximo %s tamanho.." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Imagem do perfil atualizada." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Imagem de fundo atualizada." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Imagem de fundo apagada." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Erro ao apagar imagem de fundo do perfil" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "As senhas não coincidem" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Atualização disponível v %s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Há uma atualização disponível para o seu sistema. Você pode fazer o download automático e instalar esta atualização ou ir para %s para proceder ao download do arquivo." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "As notas de lançamento desta atualização são:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Atualizar agora" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "ou" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "Cancelar" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "O seu site está rodando a última versão do %s" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "carregando" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Curtir" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Editar" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Álbum" +msgstr[1] "Álbuns" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Apagar" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Fechar" + +msgid "Previous" +msgstr "Anterior" + +msgid "Next" +msgstr "Próximo" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Prancheta" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Arquivo muito grande." + +msgid "Invalid or unsupported file format." +msgstr "Formato de arquivo inválido ou não suportado." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Alguns arquivos não puderam ser adiccionados" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "imagem" +msgstr[1] "imagens" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Álbuns de %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Imagem editada com sucesso." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "Privado" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Álbum editado com sucesso." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Chave URL inválida." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Chave de URL da categoria já está a ser usada." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Categoria apagada com sucesso." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Categoria %s adicionada." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Data de validade inválida." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "O IP %s já se encontra banido." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s banido." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Banimento de IP apagado com sucesso." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Por favor preencha todos os campos." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Valor para a capacidade de armazenamento inválido. Verifique se está a usar o formato correto." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "A capacidade de armazenamento não pode ser menor do que está sendo usada atualmente (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL inválido." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Armazenamento editado com sucesso," + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Usuário adicionado com sucesso." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "O conteúdo foi eliminado." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "O conteúdo foi movido." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Selecionar" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Cancelar seleção" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "O conteúdo foi editado." + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Sem título" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Imagens de %s" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Aviso: Esse conteúdo é privado, mas qualquer pessoa com o link pode ver." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Aviso: Esse conteúdo é protegido por senha, lembre-se de passar a senha para compartilhar o conteúdo." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Aviso: Este conteúdo é privado. Mude a privacidade para \"público\" para o compartilhar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privado" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Público" + +msgid "Me" +msgstr "Eu" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Senha" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "visualização" +msgstr[1] "visualizações" + +msgid "After %n %t" +msgstr "Depois de %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minutos" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "horas" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dia" +msgstr[1] "dias" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "semana" +msgstr[1] "semanas" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mês" +msgstr[1] "meses" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "ano" +msgstr[1] "anos" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Desabilitar apagamento automático" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Envio duplicado" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Envio privado" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "curtir" +msgstr[1] "curtidas" + +msgid "Recent" +msgstr "Recentes" + +msgid "Trending" +msgstr "Tendências" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Principais usuários" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Mais recentes" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Mais antigas" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Mais vistas" + +msgid "Popular" +msgstr "Populares" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Mais curtidas" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Galeria" + +msgid "Animated" +msgstr "Animadas" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Pesquisar" + +msgid "People" +msgstr "Pessoas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Imagem" +msgstr[1] "Imagens" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Usuário" +msgstr[1] "Usuários" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Não foi possível criar %s destino dir" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Não foi possível abrir %s para escrita" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interno" + +msgid "Can't insert storage." +msgstr "Não foi possível inserir armazenamento." + +msgid "Can't update storage details." +msgstr "Não foi possível atualizar dados de armazenamento." + +#, php-format +msgid "requires %s" +msgstr "Requer %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Ilimitado" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "usado" + +msgid "Private profile" +msgstr "Perfil privado" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "segundo" +msgstr[1] "segundos" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "a %s atrás" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "a momentos atrás" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Administração" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Existe uma atualização disponível para o seu sistema, Vá até %s para baixar e instalar a atualização." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "A base de dados do sistema está desatualizada. É necessário usar a ferramenta de <a href=\"%s\">atualização</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "O site está em modo de manutenção. Para reverter esta configuração vá até a página de <a href=\"%s\">Administração</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Você deve desligar as notificações de erro do PHP. Vá até as<a href='%s'> Configurações do sistema</a> para reverter essa configuração." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Você não mudou as configurações padrões do e-mail. Vá até as <a href='%s'>Configurações de e-mail</a> para arrumar." + +msgid "There is an update available for your Chevereto based website." +msgstr "Há uma atualização disponível para o seu site." + +msgid "admin dashboard" +msgstr "Painel de administração" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Você pode aplicar essa atualização diretamente da sua %a ou baixa-lá da %s e assim instalar manualmente." + +#, php-format +msgid "view on %s" +msgstr "ver no %s" + +msgid "cookie policy" +msgstr "política de cookies" + +msgid "I understand" +msgstr "Eu entendi" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Você foi proibido de usar este site." + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Sinta-se livre para navegar e descobrir todas minhas imagens e álbuns compartilhados." + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Visualize todas minhas imagens" + +msgid "Plugin" +msgstr "Plugin" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Pedido negado" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Esta página não existe" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Esqueceu sua senha?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Redefinir senha" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Reenviar ativação da conta" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Adicione o seu endereço de email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mail alterado" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Nome de usuário ou e-mail inválido" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "O usuário não tem um e-mail." + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "A sua conta precisa ser ativada antes de poder usar este recurso" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Conta já ativada" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Aguarde até 15 minutos para receber o e-mail. Você poderá tentar novamente mais tarde." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Mude a sua senha em %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Confirme sua conta na %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Bem-vindo a %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Esse e-mail já está sendo utilizado" + +msgid "Password required" +msgstr "É necessário uma senha" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Compartilhar" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Códigos para incorporar" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Informação completa" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Álbum %a salvo em %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Estatísticas" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Imagens" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Álbuns" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Usuários" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Configurações" + +msgid "Bulk importer" +msgstr "Importação em massa" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Versão" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Instalar atualização" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "procurar atualizações" + +msgid "Support" +msgstr "Suporte" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Precisa de ajuda ? Vá até %s e você vai achar ajuda rapidamente." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Versão do PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Servidor" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Versão do MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Informação do servidor MySQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "Biblioteca GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Envios de arquivos" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Ativado" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Desativado" + +msgid "Max. upload file size" +msgstr "Tamanho máximo do arquivo" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Tamanho maximo do envio" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Tempo máximo de execução" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d segundo" +msgstr[1] "%d segundos" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Limite de memória" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Links" + +msgid "Documentation" +msgstr "Documentação" + +msgid "Changelog" +msgstr "Log de mudanças" + +msgid "Bug tracking" +msgstr "Rastreamento de Bugs" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Site" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Conteúdo" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Páginas" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Resultados" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Envio de imagem" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Categorias" + +msgid "Consent screen" +msgstr "Tela de conscientização" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Proteção contra flood" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Página principal" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Banners" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistema" + +msgid "Routing" +msgstr "Rotas" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Idiomas" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Armazenamento externo " + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Redes sociais" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Serviços externos" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Banimentos por IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Configurações adicionais" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Ferramentas" + +msgid "Can't delete all homepage cover images" +msgstr "Não é possível apagar todos as imagens de capa da página inicial" + +msgid "Homepage cover image deleted" +msgstr "Imagem da capa apagada" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Local" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Externo" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Todas" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "conteúdo de pesquisa" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Adicionar página" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Editar página ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "A página foi adicionada com sucesso." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "A página foi removida." + +msgid "homepage" +msgstr "página inicial" + +#, php-format +msgid "Before main title (%s)" +msgstr "Depois do título principal (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Depois da Call to action (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Depois da capa (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Depois dos resultados (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Antes da paginação" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Depois da paginação" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Conteúdo (imagem e álbum)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Guia sobre a coluna" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Antes dos comentários" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Página da imagem" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Vista interna superior (página da imagem)" + +#: ../../../app/routes/route.dashboard.php:413 +#: ../../../app/routes/route.dashboard.php:417 +msgid "Expected banner size 728x90" +msgstr "Tamanho do banner 728x90" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Vista interna do rodapé (página da imagem)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Após à visualização da imagem (página da imagem)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Antes do topo (página da imagem)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Depois do topo (página da imagem)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Rodapé (página imagem)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Pagina do álbum" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Antes do cabeçalho (página do álbum)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Depois do cabeçalho (página do álbum)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Página do perfil do usuário" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Depois de topo (perfil do usuário)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Antes da paginação (perfil do usuário)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Pagina de exploração" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Depois do topo (página explorar)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nome do site inválido" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Idioma inválido" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Fuso horário inválido" + +#, php-format +msgid "Invalid value: %s" +msgstr "Valor inválido: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Modo de armazenamento do envio inválido" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Nomeação do envio inválido" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Largura da miniatura inválida" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Altura da miniatura inválida" + +msgid "Invalid medium size" +msgstr "Tamanha médio inválido" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Percentual de marca d'água inválido" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Opacidade de marca d'água inválido" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Tema inválido" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Valor inválido" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Tom de tema inválido" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Cor principal do tema inválida" + +#: ../../../app/routes/route.dashboard.php:632 +msgid "Invalid theme top bar color" +msgstr "Cor do menu no topo inválida" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Cor dos botões do menu no topo inválida" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Tamanho para os resultados do tema inválido" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "ID de usuário Inválido" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Modo de e-mail inválido" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Porta SMTP inválida" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Segurança inválida SMTP " + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Inválido modo pessoal ID de usuário" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Rota inválida ou reservada" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Modo de privacidade do site inválido" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Modo de conteúdo do site privacidade inválido" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Estilo da página principal inválido" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Chamada da página inicial inválida para o botão do Call to action" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Chamada da página inicial inválida para a funcionalidade de ação" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Título inválido" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Status inválido" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Tipo inválido" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Visibilidade inválida" + +msgid "Invalid internal type" +msgstr "Tipo interno inválido" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Atributo de destino inválido" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Atributo rel inválido" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Ícone inválido" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Chave URL inválido" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Caminho de arquivo inválido" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Link de URL inválido" + +msgid "Invalid user minimum age" +msgstr "Idade mínima inválida" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Apenas caracteres alfanuméricos, hífen e caracteres são permitidos" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL inválido" + +msgid "Routes can't be the same" +msgstr "As rotas não podem ser iguais" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Caminho para o envio de imagens inválido" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "URL da Call to action inválido" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Máximo permitido %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Não foi possível mapear %m para uma pasta existente (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Não foi possível mapear %m para uma rota existente (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Não foi possível mapear %m para %r (colisão de usuário)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Servidor SMTP inválido" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Nome de usuário SMTP inválido" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Esta chave de URL já está sendo usado por outra página (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Este caminho de arquivo já está sendo usado por outra página (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Não foi possível salvar o conteúdo da página: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Seguindo" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Sobre" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID da imagem" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP do usuário que enviou" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Banir IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "Esse IP já se encontra banido" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Data de envio" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Imagem %i no álbum %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Imagem %i na categoria %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Imagem %i salva em %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Links Diretos" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Link da imagem" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL da imagem" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL Thumbnail" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL Médio" + +msgid "Full image" +msgstr "Imagem completa" + +msgid "Full image (linked)" +msgstr "Imagem completa (com link)" + +msgid "Medium image (linked)" +msgstr "Imagem média (com link)" + +msgid "Thumbnail image (linked)" +msgstr "Imagem miniatura (com link)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "É necessário iniciar sessão" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Endereço de IP já está banido" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Valores em falta" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Papel inválido" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Nome de usuário já está sendo utilizado" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Adicione uma senha ou outra conexão social antes de apagar %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Adicione um e-mail ou outra conexão social antes de apagar %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s foi desconectado." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Teste de e-mail %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Este é apenas um teste" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "E-mail enviado para teste %s." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "O usuário %s foi seguido" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "O usuário %s não é mais seguido" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Conteúdo curtido" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Conteúdo não curtido" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u curtiu sua %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u agora está seguindo você" + +msgid "A private user" +msgstr "Um usuário privado" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Nome de usuário errado ou combinação de senha - email" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Entrar" + +msgid "Upload images" +msgstr "Enviar imagens" + +msgid "Upload plugin" +msgstr "Plugin de Upload" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Resultados de imagens contendo %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Resultados de álbuns contendo %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Resultados de utilizadores contendo %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Conta" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Perfil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Contas vinculadas" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Validade da imagem inválida: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Um email foi enviado para %s com instruções para ativar" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nome inválido" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Página inválida" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "A senha está incorreta" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Use uma nova senha" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "As alterações foram salvas." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "A senha foi alterada" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "A senha foi criada" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Nome de utilizador ou e-mail errado " + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Configurações para %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Você concorda com os termos e politicas de privacidade" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Você deve ter ao menos %s anos para usar o site." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Criar conta" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Enviar" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Imagens de %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultados para" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Curtido por %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Curtido" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Seguidores" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) álbuns sobre %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) em %w" + +msgid "Discovery" +msgstr "Descubra" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Pesquisa avançada" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Aleatório" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Notificações (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Notificações" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Você não tem nenhuma notificação" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Perfil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Sair" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Recebemos uma pedido de alteração do e-mail associado a sua <a href=\"%u\">%n</a> conta no site %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Para completar o processo, você deve <a href=\"%s\">ativar aqui o seu e-mail</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Você pode também pode optar por copiar e colar a seguinte URL no seu navegador: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Se não pretendia fazer isto, ignore esta mensagem." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Este pedido foi feito apartir do IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Recebemos o seu pedido para registar sua conta %n na %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Para completar o processo, você deve <a href=\"%s\"> ativar a sua conta </a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Recebemos um pedido para redefinir a senha da sua conta na <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Para redefinir sua senha <a href=\"%s\">clique neste link</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Olá %n, seja bem-vindo a %w." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Agora que a sua conta está ativada, você poderá desfrutar do envio de imagens, criar álbuns e definir a sua privacidade, bem como partilhar as suas imagens nos mais variados locais." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Aliás, aqui está a sua fantástica página de perfil: <a href=\"%u\">%n</a>. Vá até lá e edite-a a seu gosto. Ela é toda sua!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Obrigado por se juntar a nós" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Este e-mail foi enviado pelo sistema automático da %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Cole, araste ou solte aqui para enviar imagens" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Selecionar as imagens para envio" + +msgid "browse from your computer" +msgstr "procurar no seu computador" + +msgid "add image URLs" +msgstr "adicionar imagens pela URL" + +msgid "You can also %i or %u." +msgstr "Você também pode %i ou %u." + +msgid "browse from your device" +msgstr "procurar no seu computador" + +msgid "take a picture" +msgstr "tire uma foto" + +msgid "You can also %i, %c or %u." +msgstr "Você também pode %i, %c ou %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Edite ou redimensione qualquer imagem clicando na visualização da imagem" + +msgid "Edit any image by touching the image preview" +msgstr "Edite ou redimensione qualquer imagem tocando na visualização da imagem" + +msgid "your computer" +msgstr "seu computador" + +msgid "You can add more images from %i or %u." +msgstr "Você pode adicionar mais imagens de %i ou de %u." + +msgid "your device" +msgstr "seu dispositivo" + +msgid "You can add more images from %i, %c or %u." +msgstr "Você pode continuar adicionando mais imagens de %i, %c ou %u." + +msgid "Uploading %q %o" +msgstr "Enviando %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "completo" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Suas imagens estão sendo enviadas, deve levar apenas alguns segundos para o envio ser totalmente concluído." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Envio completo" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Conteúdo enviado adicionado a %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Você pode %c com o conteúdo apenas enviado ou %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Você pode %c com o conteúdo acabado de ser enviado." + +msgid "create a new album" +msgstr "criar um álbum novo" + +msgid "move it to an existing album" +msgstr "mover para um álbum existente" + +msgid "create an account" +msgstr "criar uma conta" + +msgid "sign in" +msgstr "entrar" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Nenhum %s foi carregado" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Alguns erros ocorreram e o sistema não pode processar o seu pedido." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Categoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Selecione a categoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Marque esta opção se o envio é de conteúdo impróprio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Envio de conteúdo impróprio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Enviando" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Cancelar restantes" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Nota: Algumas imagens não puderam ser enviadas." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Saber mais" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Verifique o <a data-modal=\"simple\" data-target=\"failed-upload-result\">relatório de erro</a> para mais informações." + +msgid "reset" +msgstr "resetar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "fechar" + +msgid "copy" +msgstr "copiar" + +msgid "insert" +msgstr "insira" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Remover" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154 +msgid "Edit image" +msgstr "Modificar imagem" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Título" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "Opcional" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Redimensionar imagem" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Largura" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Altura" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Nota: imagens GIF animadas não será redimensionada." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Apagar imagem automaticamente" + +msgid "Sign up" +msgstr "Cadastrar" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s para poder personalizar ou desabilitar a exclusão automática da imagem." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Marque esta opção se a imagem é de conteúdo impróprio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Marcar como inseguro" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Descrição" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Breve descrição desta imagem" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Adicionar imagens pela URL" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Adicione os URLs de imagem aqui" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Criar álbum" + +msgid "existing album" +msgstr "álbum existente" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Mover para o álbum" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Selecione um álbum existente para mover o conteúdo enviado. Você também pode <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover o conteúdo para lá." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Relatório de erro" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "álbum" +msgstr[1] "álbuns" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Ver links" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Códigos HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "Imagem HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML completo" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML médio" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML da miniatura" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "Códigos BB" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode completo" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode completo" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Código BBCode do tamanho médio" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Código BBCode da miniatura" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Todas estas palavras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Introduza as palavras importantes: cachorro" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Esta palavra ou frase exata" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Introduza palavras exatas entre aspas: \"rato terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Nenhuma destas palavras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Coloque um sinal de subtracção antes das palavras que não lhe interessam: -roedor -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Armazenamento" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Endereço de IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nome do álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "mover para um álbum existente" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Descrição do álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Breve descrição deste álbum" + +msgid "Album privacy" +msgstr "Privacidade do álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Quem pode visualizar este conteúdo" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privado (apenas eu)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privado (qualquer pessoa com o link)" + +msgid "Private (password protected)" +msgstr "Privado (protegido por senha)" + +msgid "Album password" +msgstr "Senha do álbum" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nome" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nome da categoria" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Chave URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Chave URL da categoria" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Apenas letras, números ou hyfens" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Breve descrição desta categoria" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Imagem sem titulo" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Caminho" + +msgid "Local path (absolute)" +msgstr "Caminho Local (absoluto)" + +msgid "Directory structure" +msgstr "Estrutura do diretório" + +msgid "Threads" +msgstr "Threads" + +msgid "Select number of threads" +msgstr "Selecionar número de threads" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Data de validade" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "AAAA-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Exemplo" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Até quando este endereço de IP ficará banido? Deixe em branco para permanente." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Mensagem" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Mensagem de texto, HTML ou um redireccionamento URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Álbum existente" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Criar novo álbum " + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Nome do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Região" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Região de armazenamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Banco de alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Chave" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Chave do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Segredo" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Segredo do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Chave privada" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Chave Google Cloud JSON" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Você vai precisar de um <a %s> conta de serviço </a> para isso." + +msgid "Service name" +msgstr "Nome do serviço" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "URL identidade" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Endpoint API Indentificação" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Endpoint API para a identidade OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Nome de usuário" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Recipiente" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Recipiente de armazenamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID Tenant" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID de Tenant (ID de conta)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Nome Tenant" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Nome Tenant (nome da conta)" + +msgid "Server address" +msgstr "Endereço do Servidor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname ou IP do servidor de alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Caminho do servidor" + +msgid "Server login" +msgstr "Login do Servidor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Senha do servidor" + +msgid "Local path" +msgstr "Caminho Local" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Capacidade do armazenamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Exemplo: 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Este armazenamento será desligado quando atingir esta capacidade. Deixe em branco ou zero para ilimitado." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL do armazenamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "O sistema irá mapear as imagens deste alojamento neste URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "ver mais" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Carregar mais" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Selecionar tudo" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Limpar seleção" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Seleção" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Ação" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Obter códigos para compartilhar" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Definir categoria" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Marcar como seguro" + +msgid "Create new album" +msgstr "Criar um álbum novo" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Entre com outra conta" + +msgid "Home" +msgstr "Início" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Não há nada para ver aqui." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Editar os detalhes da imagem" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Editar detalhes do álbum" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Todas as imagens serão transferidas para este álbum recém criado. Pode também mover as imagens para um <a class=\"modal-switch\" data-switch=\"move-existing-album\">álbum já existente</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Selecione um álbum existente para mover a imagem. Você pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover a imagem para lá." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Selecione um álbum existente para mover os álbuns. Você pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover todos os conteúdos do álbum para lá." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Selecione um álbum existente para mover as imagens. Você pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover a imagem para lá." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Todas as imagens selecionadas serão movidas para esta categoria." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Não existem categorias." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Confirme que o conteúdo é seguro" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Quer mesmo confirmar isto como sendo conteúdo seguro?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Confirme o conteúdo como imprórpio" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Deseja mesmo denunciar este conteúdo como impróprio?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Confirme a eliminação" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Deseja mesmo remover este conteúdo? Isto não pode ser revertido." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Deseja mesmo remover todo o conteúdo seleccionado? Isto não pode ser revertido." + +msgid "Fullscreen" +msgstr "Tela Cheia" + +msgid "Exit fullscreen" +msgstr "Sair de Tela Cheia" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Convidado" + +msgid "Keyboard shortcuts" +msgstr "Atalhos de Teclado" + +msgid "Uploaded by guest" +msgstr "Enviado por um visitante" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "De %s" + +msgid "Uploaded by private" +msgstr "Envio privado" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "Enviado por %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Alterar para conteúdo imprópio" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "A página solicitada não foi encontrada." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Procure por algo mais" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "O usuário foi apagado" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "A sua conta está quase pronta" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Um e-mail para foi enviado para %s com as instruções para ativar a sua conta. O link de ativação só é válido por 48 horas. \nSe você não receber as instruções verifique a sua pasta de spam ou lixo." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Reenviar ativação" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Você alterou com sucesso a sua conta de e-mail para %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Ir para o meu perfil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Um link de confirmação será enviado para este e-mail com os detalhes para ativar sua conta." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "O seu endereço de email" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Enviar" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Um e-mail com instruções para redefinir sua senha foi enviado para o endereço de e-mail da sua conta. Se você não receber as instruções verifique a sua pasta de spam ou lixeira." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Um email anterior foi enviado com instruções para redefinir a sua palavra passe. Se não recebeu as instruções verifique a sua pasta de correio não solicitado/spam/Lixo." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Reenviar instruções" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Nome de usuário ou Endereço de e-mail" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "A sua senha foi alterada com sucesso. Agora você pode iniciar sessão com a sua nova senha." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Entrar agora" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Introduza sua nova senha" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d caracteres mínimos" + +msgid "Password strength" +msgstr "Força da Senha" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Digite novamente a sua nova senha" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Um e-mail para %s foi enviado com instruções para ativar sua conta. Se você não receber as instruções tente verificar os seus filtros de spam ou caixa de spam." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Este conteúdo é privado" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Quer mesmo apagar este álbum e todas as suas imagens? Esta operação não poderá ser revertida." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Apagar álbum" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Você curtiu isso" + +msgid "Upload to album" +msgstr "Enviar para o álbum" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Link do álbum" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Por favor, leia e compreenda as seguintes condições antes de você continuar:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Este site contém informações, links e imagens de material sexualmente explícito. Se você tem menos de %s anos, se tal material o ofende ou se é ilegal ver esse material na sua comunidade, por favor, não continue.\n\nTenho pelo menos %s anos de idade e acredito que, como adulto, é o meu direito inalienável de receber / ver material sexualmente explícito. Eu desejo receber / ver material sexualmente explícito.\n\nAcredito que os atos sexuais entre adultos consentâneos não são nem ofensivos nem obscenos. A visualização, leitura e download de materiais sexualmente explícitos não viola os padrões da minha comunidade, cidade, cidade, estado ou país.\n\nO material sexualmente explícito que estou vendo é para meu uso pessoal e não vou expor os menores ao material.\n\nEu sou o único responsável por quaisquer divulgações falsas ou ramificações legais de visualização, leitura ou download de qualquer material neste site. Além disso, este site nem suas afiliadas serão responsáveis ​​por quaisquer ramificações legais decorrentes da entrada ou uso fraudulento deste site.\n\nEsta tela de consentimento constitui um acordo legal entre este site e você e / ou qualquer negócio em que você tenha qualquer interesse legal ou equitativo. Se qualquer parte deste contrato for considerada inaplicável por um tribunal de jurisdição competente, não afetará a exequibilidade das outras partes do contrato." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Clicando em \"Eu aceito\" você declara que você leu e entendeu todas as condições mencionadas." + +msgid "I Agree" +msgstr "Eu aceito" + +msgid "documentation" +msgstr "documentação" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "Aprenda mais sobre %s em nosso %d." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Espaço usado" + +msgid "Add import job" +msgstr "Adicionar trabalho de importação" + +msgid "Process import" +msgstr "Processo de importação" + +msgid "Actions" +msgstr "Ações" + +msgid "Process" +msgstr "Processo" + +msgid "Pause" +msgstr "Pausar" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Process log" +msgstr "Log de Processamento" + +msgid "Errors" +msgstr "Erros" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Você tem certeza que quer remover a importação ID %s?" + +msgid "Queued" +msgstr "Fila" + +msgid "Working" +msgstr "Trabalhando" + +msgid "Paused" +msgstr "Pausado" + +msgid "Canceled" +msgstr "Cancelado" + +msgid "Completed" +msgstr "Completado" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Estado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Adicionar usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Papel" + +msgid "Manager" +msgstr "Gerente" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrador" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Endereço de email" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Esta configuração estará sempre desativada quando você utilizar o modo pessoal do site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Adicionar categoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Adicionar banimento de IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Adicionar armazanamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Retornar às páginas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nome da página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Subtítulo " + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Descrição da página" + +msgid "Automatic" +msgstr "Automático" + +msgid "Forced" +msgstr "Forçado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Fuso horário padrão" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Selecionar região" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Permitir a procura de imagens, álbuns e usuários baseado na determinada consulta de pesquisa." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Permite procurar imagens públicas enviadas. Também ativa as categorias." + +msgid "guests" +msgstr "visitantes" + +msgid "Enables explore for guests." +msgstr "Habilitar exploração para os visitantes" + +msgid "Enables to browse images randomly." +msgstr "Ativar a procura de imagens randomicamente." + +msgid "Likes" +msgstr "Curtidas" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Permite aos usuários curtir conteúdos e aparecer na lista de \"Mais curtidas\"." + +msgid "Followers allows users to follow each other." +msgstr "Seguidores permitem usuários a seguirem uns aos outros." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Modo pessoal de usuário de destino" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID de utilizador" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Seu ID de usuário é: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "ID numérico do usuário-alvo para o modo pessoal." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Roteamento modo Pessoal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Rota personalizada para mapear / nome de usuário para / algo. Use \"/\" para mapear a homepage." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Modo de privacidade do site" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Modo privado fará com que o site só esteja disponível para usuários registados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Modo de privacidade conteúdo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Padrão" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Forçar privado (auto)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Forçar privado (qualquer pessoa com o link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Modos de privacidade forçadas substituirá preferência de privacidade de usuário." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Título da página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "O status da página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Página ativa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Página Inativa (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Somente páginas ativas estarão acessíveis." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Tipo" + +msgid "Terms of service" +msgstr "Termos de serviço" + +msgid "Privacy" +msgstr "Privacidade" + +msgid "Contact" +msgstr "Contato" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Visibilidade página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Página visível" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Página escondida" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Páginas ocultas não serão mostradas em menus do sistema, mas qualquer pessoa pode acessar a ela com o link." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Apenas alfanuméricos, hífens e barra" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Caminho de arquivo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Um %f arquivo relativo para %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta palavras-chave" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta Descrição" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Código fonte" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Sem permissão de escrita em %s caminho que você vai precisar adicionar este arquivo utilizando um editor externo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Sem permissão de escrita em %s você precisará editar o conteúdo deste arquivo usando um editor externo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Retirado de: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "URL do link" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Atributo destino do link" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Selecione %s para abrir a página ou link em uma nova janela." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Link rel atributo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Apenas alfanuméricos, hífens e espaços em branco" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s atributo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Link do ícone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Verifique a <a %s> referência ícone </a> para a lista completa de ícones suportados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Exibição da ordem de classificação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Exibição ordem de classificação página para os menus e listas. Use \"1\" para prioridade." + +msgid "pages" +msgstr "páginas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Você realmente quer apagar a página com o ID %s ? Isso não pode ser desfeito." + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Imagens com formatos não marcados não serão aceitas para o envio." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Ativar envios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Ative esta opção se quiser permitir envios de imagens. Esta configuração não afeta administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Envios de visitantes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Ative isto se quiser permitir que os usuários não registados façam envios." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Ativar códigos embed (usuário)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Ative isto para mostrar os códigos embed quando o envio terminar." + +msgid "Upload threads" +msgstr "Linhas de envio" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Número de threads simultâneos de envio (envio paralelo)" + +msgid "Redirect on single upload" +msgstr "Redirecionar em caso de envio único" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Ative isto se você quiser que redirecione para a imagem logo após um envio único." + +msgid "Enable duplicate uploads" +msgstr "Ativar envios duplicados" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Ative esta opção se quiser permitir envio duplicado do mesmo IP dentro de 24 horas. Essa configuração não afeta os administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Ativar envios expiráveis" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Ative esta opção se você deseja permitir envios com uma opção de exclusão automática." + +msgid "Auto delete guest uploads" +msgstr "Excluir automaticamente envio de visitantes" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Ative isso se desejar forçar os envios dos visitantes a serem excluídos automaticamente após certo tempo." + +msgid "Maximum image size" +msgstr "Tamanho máximo da imagem" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "As imagens maiores que esse tamanho serão automaticamente reduzidas. Use zero (0) para não definir um limite." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Dados EXIF da imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Manter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Selecione a configuração padrão para os dados <a %s> EXIF </a> de uma imagem em um envio." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Dados EXIF da imagem (definição do usuário)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Habilite esta se você quiser permitir que cada usuário configure como imagem de dados EXIF ​​serão tratadas." + +msgid "Maximum upload file size" +msgstr "Tamanho máximo do arquivo para envio" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "O tamanho máximo permitido pelo servidor é %s. Esse limite é limitado por %u e %p (valores %f)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Caminho da imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativo ao root do Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Onde armazenar as imagens? Relativo ao root do Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Modo de armazenamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Pastas de dados" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datefolders cria %s estrutura" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Método de nomeação do arquivo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Original Mix + aleatória" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Original\" irá tentar manter o nome da fonte de imagem enquanto \"AUTO\" vai gerar um nome aleatório. \"ID\" será o nome a imagem exatamente como o ID de imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Tamanho da miniatura" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "As miniaturas serão ajustadas para este tamanho." + +msgid "Medium image fixed dimension" +msgstr "Imagem média com dimensão fixa" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Imagens médias serão fixado a esta dimensão. Por exemplo, se você selecionar \"largura\" essa dimensão será fixa e a altura da imagem será automaticamente calculada." + +msgid "Medium image fixed size" +msgstr "Imagem média de tamanho fixo" + +msgid "Width or height will be automatically calculated." +msgstr "Largura ou altura será calculado automaticamente." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Marcas d'água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Ative para colocar uma marca de água em todos os envios de imagens." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Aviso: Não é possível escrever em %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Alterna a marca d'água do usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Habilitar marca d'água em envios de visitantes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Habilitar marca d'água em envios de usuários" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Habilitar marca d'água em envios da administração" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Alterna arquivo marca d'água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Habilitar marca d'água em uploads de imagem GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Tamanho mínimo de imagem necessária para aplicar marca d'água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Imagens menores que isso não vai utilizar marca d'água. Use zero (0) para não definir um limite de tamanho mínimo da imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Imagem de marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Você vai ter melhores resultados com logotipos simples com sombra. Você pode usar uma imagem grande, se o tamanho do arquivo não é tão grande (máximo recomendado. É 16KB). Deve ser um PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Posição da marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "Topo esquerdo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "Centro esquerda" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "Canto inferior esquerdo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "Topo centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "Centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "Centro na parte inferior" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "Topo direita" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "Centro direita" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "Inferior direito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Posição relativa da imagem de marca de água. Primeiro alinhamento horizontal e depois alinhamento vertical." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Percentual marca d'água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Marca d'água tamanho percentual em relação à área da imagem de destino. Valores de 1 a 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Margem da marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margem da borda para a imagem de marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Opacidade da marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Opacidade da marca de água na imagem final. Valores de 0 a 100." + +msgid "Dashboard > Settings > Website" +msgstr "Painel > Configurações > Site" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "As categorias não estão ativas, esta funcionalidade está desativada. Para reverter isso vá até %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Você quer realmente apagar a categoria %s? Esta operação não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Aviso: Apagar a categoria não apagará as imagens que ela contém." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Editar categoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Expira" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Quer mesmo remover o ban do IP %s? Esta operação não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Endereço de IP banido será proibido de usar todo o site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Editar IP do ban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Ativar as inscrições" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Ative esta opção para permitir que os utilizadores possam registar-se." + +msgid "Enable user content delete" +msgstr "Ativar códigos embed (conteúdo)" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Ative isto se você deseja permitir que os usuários deletem o próprio conteúdo. Esta opção não afeta administradores." + +msgid "Minimum age required" +msgstr "Idade mínima" + +msgid "Empty" +msgstr "Vazio" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Deixa vazio para não requerer uma idade mínima para usar o site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Rota do nome de usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Ative isto se desejar usar %s/nome_de_usuário em vez de %s/usuários/nome_de_usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Requerer confirmação de email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Ative isto se desejar que os utilizadores necessitem de validar o e-mail quando criam conta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Requerer confirmação de email quando criam conta através de uma rede social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Ative isto se desejar que os utilizadores necessitem de validar o e-mail quando criam conta através de uma rede social." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Tamanho máximo do arquivo do avatar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Tamanho máximo permitido para a imagem do avatar do usuário. (Máximo permitido pelo servidor é %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Tamanha da imagem de fundo do usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Tamanho máximo permitido para a imagem de fundo do usuário. (Máximo permitido pelo servidor é %s)" + +msgid "Enable consent screen" +msgstr "Ativar tela de conscientização" + +msgid "Consent screen cover image" +msgstr "Plano de fundo da página de conscientização" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Bloquear envios de imagens por IP se o sistema de detectar um comportamento de inundação com base no número de envios por período de tempo. Esta configuração não afecta administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Notificar para o e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Se habilitado, o sistema irá enviar um e-mail sobre incidentes de flood." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Limite por minuto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Limite por hora" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Limite por dia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Limite por semana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Limite por mês" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Mostrar conteúdo não seguro em listas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Habilite esta se você quer mostrar o conteúdo não seguro em listas. Essa configuração não afeta os administradores e podem ser substituídas pelas configurações próprios usuários." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Blur conteúdo NSFW em anúncios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Habilitar se você deseja aplicar um efeito de blur nas imagens NSFW em listas." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Mostrar banners em conteúdo não seguro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Ative esta opção se quiser mostrar banners em páginas de conteúdo não seguras." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Mostrar conteúdo não seguro em modo aleatório" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "itens da lista por página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Quantos itens devem ser mostrador por página de listagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Modo Lista de paginação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Rolagem Infinita" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Paginação clássica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Qual método de paginação deve ser usado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Tamanho listagem imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fluido" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fixo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Ambos os métodos utilizam uma largura fixa, mas método utiliza fluido alturas automáticas." + +msgid "explore" +msgstr "explorar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Número de colunas Listando" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Aqui você pode definir quantas colunas são usados ​​com base em cada dispositivo de destino." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Desktop" + +msgid "theme editing" +msgstr "edição do tema" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Coloque seus temas na pasta %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Tom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Luz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Escuro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Cor principal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Valor da cor hexadecimal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Top bar color" +msgstr "Cor da barra superior" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Preto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Branco" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Cor do botão da barra superior" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Azul" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Verde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Laranja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Vermelho" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Cinza" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Cor para botões da barra do topo como o \"Criar conta\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Ativar logo em imagem vetorial" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Ativar logo vetor para o logótipo de alta qualidade em dispositivos com alta resolução." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Imagem do logotipo Vetor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Versão Vetor ou o seu logótipo em formato SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Imagem do logotipo raster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Versão Bitmap ou teu logotipo. O formato PNG é recomendado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Tamanho da logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Sem valor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Use isto para determinar o tamanho da logo, se for preciso" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Imagem do favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Imagem Favicon. A imagem deve ter a mesma largura e altura." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Ativar botão de download" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Ative esta opção se quiser mostrar o botão de download da imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Ativar clique com o botão direito na imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Ative isto que você quiser habilitar o clique com o botão direito na página de visualização da imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Mostrar dados EXIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Ative isto se você quiser mostrar os dados EXIF da imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Ativar compartilhamento Social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Ative isto se você quiser mostrar os botões de compartilhamento em redes sociais." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Ativar códigos embed (conteúdo)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Ative isto se você quiser mostrar códigos embed para o conteúdo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Caixa de conteúdo inseguro para o usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Ative esta opção se quiser mostrar uma caixa de seleção para indicar upload de conteúdo não seguro." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Código CSS personalizado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Coloca o teu código CSS personalizado aqui. Ele será colocado como <style> antes da tag </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr " Código personalizado JS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Coloca o teu código JS personalizado aqui. Ele será colocado como <script> antes da tag </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Estilo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Landing Page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +msgid "Route explore" +msgstr "Explorador de rota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Selecione o estilo da página inicial. Para customizar edite app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Imagem de capa" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Você realmente quer apagar esta imagem? Esta ação não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Apagar imagem" + +msgid "Add new cover image" +msgstr "Adicionar nova imagem de capa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragrafo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Cor do botão da chamada para ação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Cor do botão da chamada para ação da página inicial" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Funcionalidade do botão da chamada para ação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Abrir URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL da chamada para ação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Insira uma URL absoluta ou relativa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTLM da chamada para ação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "IDs dos usuários" + +msgid "banners" +msgstr "banners" + +msgid "Automatic updates check" +msgstr "Verificação por atualizações automática" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Quando ativado o sistema irá procurar por atualizações automaticamente." + +msgid "Display available updates notification" +msgstr "Mostrar notificações de novas atualizações" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Ative isto para mostrar um aviso no topo avisando você sobre as novas atualizações do sistema disponíveis." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URLs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Código Minify" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Habilite se você deseja o auto minify CSS e código JS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Manutenção" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Quando ativo o site irá mostrar uma mensagem de manutenção. Esta configuração não afeta os administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Salto criptográfico" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Reportar erro do PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Nível de depuração" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Nenhum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Registro de erros" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Imprimir sem registro de erros" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Imprimir com registro de erros" + +msgid "Image routing" +msgstr "Rota da imagem" + +#, php-format +msgid "Routing for %s" +msgstr "Rota para %s" + +msgid "Album routing" +msgstr "Rota do álbum" + +msgid "Language subdomains" +msgstr "Idioma de subdomínios" + +msgid "Custom language strings" +msgstr "Cadeias de idiomas personalizáveis" + +msgid "language strings" +msgstr "Cadeias de idiomas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Idioma padrão" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Idioma base para usar como padrão." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Idioma automático" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Ative isto para automaticamente detectar a língua do usuário e mudar para a mesma." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Selecionador de idioma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Ative isto se você quiser ativar a seleção de línguas." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Ativar diferentes línguas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Línguas não marcadas não serão usadas no site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Altere isto para ativar dos desativar o HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Altere isto para ativar ou desativar esse armazenamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Cota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Ativo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Método de armazenamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "O armazenamento local é usado por padrão ou não há um armazenamento externo ativo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Se você precisar de ajudar vá até a <a %s>documentação de armazenamento</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Editar armazenamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Do nome" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nome do remetente dos e-mails enviados para os utilizadores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Modo de e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Como enviar e-mails? SMTP é recomedado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "Servidor SMTP e porta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "Servidor SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Nome de utilizador SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Palavra passe SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Segurança SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Inseguro" + +msgid "Decode ID" +msgstr "Decode ID" + +msgid "Encode ID" +msgstr "Encode ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Enviar e-mail de teste" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Use esta ferramente para ver como os seus e-mails serão entregues. Nós recomendamos você usar %s." + +msgid "Export a user" +msgstr "Exportar um usuário" + +msgid "Export user" +msgstr "Exportar usuário" + +msgid "Regenerate" +msgstr "Regenerar" + +msgid "Migrate" +msgstr "Migrar" + +msgid "social networks" +msgstr "redes sociais" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Você precisa de um <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> para este." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Id app Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Chave secreta do aplicativo do Facebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Você precisa de um <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> para esta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Chave da API do Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Segredo da API do Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Conta Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Você precisa de um <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> para esta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "ID de cliente do Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Segredo do cliente Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Você precisa de um <a href=\"http://vk.com/dev\" target=\"_blank\">Aplicativo VK</a> para isso." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "ID do cliente VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Segredo do cliente VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Você precisas de uma chave <a href=\"%s\" target=\"_blank\"> reCAPTCHA </a> para isto." + +#, php-format +msgid "%s site key" +msgstr "%s chave local" + +#, php-format +msgid "%s secret key" +msgstr "%s chave secreta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "Limite do reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Quantas tentativas falhadas são necessárias para pedir reCAPTCHA ? Use zero para sempre pedir o reCAPTCHA." + +msgid "Comments API" +msgstr "Comentários da API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "A API do Disqus funciona com %s" + +msgid "Disqus shortname" +msgstr "Nome no Disqus" + +#, php-format +msgid "%s public key" +msgstr "%s chave pública" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Código para comentários" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook ou qualquer coisa que você quiser. Será utilizado no modo de exibição de imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Código do Analytics" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics ou qualquer coisa que você quiser. Será adicionado ao rodapé tema." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Para ver a documentação sobre a API vá até <a %s>API documentation</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Chave API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Use esta chave quando estiver usando a <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Rota do plugin" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Ative para mostrar instruções do plugin no %u. Um link para as instruções será adicionado para o %s menu. Esta opção não afeta administradores." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Use isto para definir uma URL customizada para %p. Por favor, note que você precisa replicar manualmente %s nessa URL." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Cumprimento da legislação de Cookies" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Ative esta opção para exibir uma mensagem que está em conformidade com os requisitos da lei dos Cookies da União Européia.\nNota: Você só precisa disto se o seu site estiver hospedado na União Européia e se você adicionar cookies de rastreamento." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Salvar as alterações" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Verifique os erros para continuar." + +msgid "Play GIF" +msgstr "Abrir GIF" + +msgid "Load full resolution" +msgstr "Carregar visualização completa" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Adicionado a %a e categorizado em %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Adicionar a %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Enviado para %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Enviado %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Menos dados EXIF" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Mais dados EXIF" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Compartilhar imagem" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID do álbum" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Neste album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Envie e compartilhe as suas imagens." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Arraste e solte ou cole para começar a enviar suas imagens agora. Limite de %s. Links direto para a imagem, Códigos BB e miniaturas em HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Começar a enviar" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registre-se para desbloquear todas as funcionalidades do site" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Gerencie suas imagens, crie álbuns privados, personalize seu perfil e muito mais." + +msgid "Sign in with your account" +msgstr "Entre com sua conta" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Você não tem uma conta? <a href='%s'> Registre-se </a> agora." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Você saiu" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Você saiu da sua conta. Esperamos vê-lo novamente em breve." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Ir para página inicial" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "O site está em manutenção" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Estamos no momento em manutenção. Por favor, volte em alguns minutos." + +msgid "This content is password protected." +msgstr "Este conteúdo é protegido por uma senha." + +msgid "Please enter your password to continue." +msgstr "Por favor, digite sua senha para continuar." + +msgid "Send" +msgstr "Enviar" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Adicione o upload da imagem ao seu site, blog ou fórum, instalando nosso plugin de upload. Ele fornece o upload de imagens para qualquer site, colocando um botão que permitirá que seus usuários enviem imagens diretamente para o nosso serviço e ele irá manipular automaticamente os códigos necessários para a inserção. Todos os recursos incluídos como arrastar e soltar, upload remoto, redimensionamento de imagem e muito mais." + +msgid "Supported software" +msgstr "Software suportado" + +msgid "supported software" +msgstr "software suportado" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "O plugin funciona em qualquer site com conteúdo editável pelo usuário e para %sv, ele colocará um botão de upload que irá corresponder à barra de ferramentas do editor de destino para que não seja necessária nenhuma personalização adicional." + +msgid "Add it to your website" +msgstr "Adicione-o ao seu site" + +msgid "options" +msgstr "opções" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Copie e cole o código do plugin no código HTML do seu site (de preferência dentro da seção principal). Há uma abundância de %o para adequá-lo melhor às suas necessidades." + +msgid "Basic options" +msgstr "Opções básicas" + +msgid "Color palette" +msgstr "Paleta de cores" + +msgid "Button color scheme" +msgstr "Esquema de cores do botão" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Códigos de incorporação que serão inseridos automaticamente na caixa de editor" + +msgid "Sibling selector" +msgstr "Seletor Sibling" + +msgid "Sibling element selector where to place the button next to" +msgstr "Onde colocar o botão perto do elemento Sibling" + +msgid "Sibling position" +msgstr "Posição do Sibling" + +msgid "After" +msgstr "Depois" + +msgid "Before" +msgstr "Antes" + +msgid "Position relative to sibling element" +msgstr "Posição relativa ao elemento Sibling" + +msgid "Advanced options" +msgstr "Opções avançadas" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "O plugin possui um grande conjunto de opções adicionais que permitem a personalização completa. Você pode usar HTML, CSS, paleta de cores própria, configurar observadores e muito mais. Verifique o %d e a fonte do plugin para ter uma melhor ideia dessas opções avançadas." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Ou você não tem permissão para acessar esta página ou o link expirou." + +msgid "Search results" +msgstr "Procurar resultados" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Você realmente deseja excluir este usuário? esta ação não pode ser desfeita." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Apagar usuário" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Data de registo" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP de registro" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Válido" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Banido" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Aguardando e-mail" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Aguardando confirmação" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i para %f caracteres<br>Letras, números e \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Apagar automaticamente os envios" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Essa configuração será aplicada para todos os seus envios de imagens por padrão. Você poderá mudar essa configuração em cada envio." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Manter os dados <a %s>EXIF</a> no envio" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Receber novidades" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Enviar e-mails com novidades sobre o %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Configurações do conteúdo" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Mostrar conteúdos impróprios nas listagens (de outros)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Idioma" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Fuso horário" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Senha atual" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Digite sua senha atual" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nova senha" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Confirme sua nova senha" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Adicione uma senha para ser poder fazer login usando o seu nome de usuário ou e-mail." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Este usuário não tem uma senha. Adicione uma usando este formulário." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Digite a sua senha" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Confirme sua senha" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Digite novamente a sua senha" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Carregar nova imagem" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Apagar a imagem existente" + +msgid "Make my profile and identity totally private" +msgstr "Tornar meu perfil e identidade totalmente privados" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Ative isto se você quiser atuar como um usuário anonimo" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Este é o seu verdadeiro nome, não o seu nome de usuário." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://omeusite.com.br" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Descrição" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Conte-nos um pouco mais sobre você" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "O usuário não tem conexões." + +#: ../../../app/themes/Peafowl/views/settings.php:391 +msgid "Link your account to external services to be able to login and share content." +msgstr "Vincular a sua conta para serviços externos para poder entrar e compartilhar conteúdo." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Você realmente deseja sair %s desta conta?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Esta conta está conectada a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Você realmente quer desligar o %s conta?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Você será desconectado e você não será capaz de acessar sua conta usando este %s conta." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Sua conta está conectada a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "Desconectar" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Conectar ao %s" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Botão" + +msgid "Login" +msgstr "Login" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "re-enviar ativação da conta" + +#, php-format +msgid "I'm at least %s years old" +msgstr "Eu tenho ao menos %s anos" + +msgid "terms" +msgstr "termos" + +msgid "privacy policy" +msgstr "política de privacidade" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Carregar imagem de fundo do perfil" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Alterar a imagem de fundo" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "A imagem de fundo do perfil será apagada. Isto não poderá ser desfeito. Você tem certeza que deseja fazer isso ?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Apagar a imagem de fundo" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Editar o perfil" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Seguidor" +msgstr[1] "Seguidores" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Seguir" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Questões gerais ou comentários" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Denúncia de DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Mensagem inválida" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Assunto inválido" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Erro de correio" + +msgid "Message sent" +msgstr "Enviar mensagem" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "A mensagem foi enviada. Nós entraremos em contato em breve." + +msgid "If you want to send a message fill the form below." +msgstr "Se você quiser enviar uma mensagem preencha o formulário abaixo." + +msgid "Your name" +msgstr "Seu nome" + +msgid "Subject" +msgstr "Assunto" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Todas as mudanças que fez serão perdidas se continuar." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Alterações salvas com sucesso." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Voltar para o formulário" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "Continuar assim mesmo" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Salvando" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Enviando" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Confirmar ação" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "Informação" + diff --git a/app/languages/pt.po b/app/languages/pt.po new file mode 100644 index 0000000..0d9341b --- /dev/null +++ b/app/languages/pt.po @@ -0,0 +1,3361 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:16+0000\n" +"PO-Revision-Date: 2020-09-02 17:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "E-mail inválido" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Nome de utilizador inválido" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Senha inválida" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Modo de website inválido" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "A partir do endereço de e-mail" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "E-mail do remetente para os e-mails enviados aos utilizadores." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Endereço de email de entrada" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Destinatário para formulário de contacto e alertas do sistema." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Modo do Site" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Pode trocar o modo do site a qualquer altura." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Comunidade" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Pessoal" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Versão instalada é a v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Não é possível ligar a %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Versão mais recente disponível é a v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Actualização necessária, a ir para o download" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Não é preciso actualizar" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Os ficheiros de sistema já estão actualizados" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "A iniciar o download da v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "v%s descarregada, a iniciar a extracção" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "A tentar extrair a v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Extracção completa" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "A instalar a actualização" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Actualização falhou" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Actualização em progresso" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Falta o ficheiro %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Informação de licença inválida" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Chave de licença inválida" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Não é possível gravar o ficheiro" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Não é possível descarregar o %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Não é possível extrair o %s" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Verifique os erros no formulário para continuar." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Deve indicar o nome do álbum." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Confirmar" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Selecione um álbum existente" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Ocorreu um erro. Por favor, tente novamente mais tarde." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Por favor, seleccione um tipo de ficheiro de imagem válido." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Por favor seleccione uma imagem com o máximo %s tamanho.." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Imagem de perfil actualizada." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Imagem de fundo actualizada." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Imagem de fundo eliminada." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Erro apagar imagem de fundo do perfil" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "As senhas não coincidem" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Actualização disponível v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Actualizar agora" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "ou" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "Cancelar" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Carregando" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Gostar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Editar" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Álbum" +msgstr[1] "Álbuns" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Eliminar" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Fechar" + +msgid "Previous" +msgstr "Anterior" + +msgid "Next" +msgstr "Próximo" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Colocar imagem na área de transferência" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Ficheiro muito grande." + +msgid "Invalid or unsupported file format." +msgstr "Formato de ficheiro inválido ou não suportado." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Alguns arquivos não puderam ser adiccionados" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "imagem" +msgstr[1] "imagens" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Álbuns de %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Imagem editada com sucesso." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "Privado" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Álbum editado com sucesso." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Chave URL inválida." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Chave de URL da categoria já está a ser usada." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Categoria apagada com sucesso." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Categoria %s adicionada." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Data de validade inválida." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "O IP %s já se encontra banido." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s banido." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Banimento de IP apagado com sucesso." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Por favor preencha todos os campos." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Valor para a capacidade de alojamento inválido. Verifique se está a usar o formato correcto." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "A capacidade do alojamento não pode ser menor que a que está a ser usada actualmente (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL inválido." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Alojamento editado com sucesso," + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Utilizador adicionado com sucesso." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "O conteúdo foi eliminado." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "O conteúdo foi movido." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Seleccionar" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Cancelar selecção" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "O conteúdo foi editado." + +msgid "Spam detected" +msgstr "Spam detectado" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "álbum" +msgstr[1] "álbuns" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Sem título" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Imagens de %s" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Nota: Este conteúdo é priovado mas quem tenha o link poderá vê-lo." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Nota: Este conteúdo é privado. Mude a privacidade para \"público\" para o partilhar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privado" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Público" + +msgid "Me" +msgstr "Eu" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Senha" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "Vista" +msgstr[1] "visualizações" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minutos" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "horas" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dia" +msgstr[1] "dias" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "semana" +msgstr[1] "semanas" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mês" +msgstr[1] "meses" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "ano" +msgstr[1] "anos" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Não apagar automaticamente" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Envio duplicado" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Envio privado" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "gosto" +msgstr[1] "gostos" + +msgid "Recent" +msgstr "Recente" + +msgid "Trending" +msgstr "Popular agora" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top utilizadores" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Mais recentes" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Mais antigas" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Mais vistas" + +msgid "Popular" +msgstr "Popular" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Com mais gostos" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Explorar" + +msgid "Animated" +msgstr "Animadas" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Pesquisar" + +msgid "People" +msgstr "Pessoas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "imagem" +msgstr[1] "imagens" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Utilizador" +msgstr[1] "Utilizadores" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Interno" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Ilimitado" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "usado" + +msgid "Private profile" +msgstr "Perfil privado" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "segundo" +msgstr[1] "segundos" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s atrás" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "à momentos atrás" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Administração" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "O sistema da base de dados está desactualizado. É necessário correr a ferramenta de <a href=\"%s\">actualização</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "O site encontrasse em modo de manutenção. Para reverter esta configuração dirija-se a página de <a href=\"%s\">Administração</a>." + +msgid "admin dashboard" +msgstr "área de administração" + +#, php-format +msgid "view on %s" +msgstr "ver em %s" + +msgid "cookie policy" +msgstr "política de cookies" + +msgid "I understand" +msgstr "Percebi" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Esqueceu-se da senha?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Redefinir senha" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Reenviar ativação de conta" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Adicione o seu endereço de email" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mail alterado" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Nome de usuário inválido / Email" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "O utilizador não tem um e-mail." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Pedido negado" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "A conta precisa ser ativada antes de poder usar este recurso" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Conta activada" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Aguarde até 15 minutos pela recepção do e-mail. Poderá tentar novamente mais tarde." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Restabeleça a sua senha em %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Confirmação necessária no %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Bem-vindo ao %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Esse e-mail já está a ser utilizado" + +msgid "Password required" +msgstr "É preciso senha" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Partilhar" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Códigos para Incorporar" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Informação completa" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Álbum %a alojado em %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Estatísticas" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Imagens" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Álbuns" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Utilizadores" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Configurações" + +msgid "Bulk importer" +msgstr "Importador em massa" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Versão Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Instalar actualização" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "procurar por actualizações" + +msgid "Support" +msgstr "Suport" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Versão do PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Servidor" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Versão do MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Informação do servidor MySQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "Biblioteca GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Envios de ficheiros" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Ativado" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Desactivado" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Max. post size" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Tempo máximo de execução" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d segundo" +msgstr[1] "%d segundos" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Limite de memória" + +msgid "Rebuild stats" +msgstr "Estatísticas de reconstrução" + +msgid "Not your IP?" +msgstr "Não é o seu IP?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Links" + +msgid "Collaboration" +msgstr "Colaboração" + +msgid "Documentation" +msgstr "Documentação" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Site" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Conteúdo" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Páginas" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Resultados" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Envio de imagem" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Categorias" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Protecção contra as inundações" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Página principal" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Banners" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistema" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Idiomas" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Alojamento externo" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Redes sociais" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Serviços externos" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Banimentos por IP" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Local" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Externo" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Todas" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "conteúdo de pesquisa" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Antes de paginação" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Depois de paginação" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Content (image and album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Tab about column" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Antes dos comentários" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Página da imagem" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Topo da página para visualizar a imagem" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Inside viewer foot (image page)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "After image viewer (image page)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Before header (image page)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "After header (image page)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Rodapé (página imagem)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Página album" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Antes do cabeçalho (página do álbum)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Depois do cabeçalho (página do álbum)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Página de perfil do utilizador" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Depois de topo (perfil do utlizador)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Before listing (user profile)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Explore page" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Depois do topo (página explorar)" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Nome da página inválido" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Idioma inválido" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Fuso horário inválido" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Invalid upload storage mode" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Invalid upload filenaming" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "largura da miniatura inválida" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Altura da miniatura inválida" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Tema inválido" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Valor inválido" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Tom de tema inválido" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Cor principal do tema inválida" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Cor dos botões do menu no topo inválida" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Tamanho para os resultados do tema inválido" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "ID de usuário Inválido" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Modo de e-mail inválido" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Porta SMTP inválida" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Segurança inválida SMTP " + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "modo de conteúdo do site privacidade inválido" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Estilo da página principal inválido" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "URL inválido" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Caminho para o envio de imagens inválido" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Máximo permitido %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Servidor SMTP inválido" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Nome de usuário SMTP inválido" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Sobre" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID da imagem" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP do uploader" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Banir IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "Esse IP já se encontra banido" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Data de carregamento" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Imagem %i no álbum %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Imagem %i na categoria %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Imagem %i alojada em %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Links Diretos" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Link da imagem" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL da imagem" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL Thumbnail" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL Médio" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Necessário iniciar sessão" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Endereço de IP já banido" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Valores em falta" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Papel inválido" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Nome de utilizador já está a ser utilizado" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s foi desconectado." + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Nome de utilizador errado / combinação de senha - email" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Iniciar sessão" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Resultados de imagens contendo %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Resultados de álbuns contendo %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Resultados de utilizadores contendo %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Conta" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Perfil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Contas vinculadas" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Um email foi enviado para %s com instruções para ativar" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Nome inválido" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Página inválida" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Senha errada" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Use uma nova senha" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "As alterações foram guardadas." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "A senha foi alterada" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "A senha foi criada" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Nome de utilizador/e-mail errado " + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Configurações para %s" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Criar conta" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Enviar" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Imagens de %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultados para" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Pesquisa avançada" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Aleatório" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Notificações (%s)" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "O meu perfil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Terminar sessão" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Recebemos uma pedido de alteração do e-mail associado a sua <a href=\"%u\">%n</a> conta no site %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Para completar o processo, deve <a href=\"%s\">ativar aqui o seu e-mail</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Poderá também optar por copiar e colar o seguinte URL no seu browser: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Se não pretendia isto, ignore esta mensagem." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Este pedido foi feito apartir do IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Recebemos um pedido para registar a conta %n no site %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Para completar o processo, deverá <a href=\"%s\"> ativar a sua conta </a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Recebemos um pedido para redefinir a senha da sua conta <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Para redefinir sua senha <a href=\"%s\">Clique neste link</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Olá %n, bem-vindo ao %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Agora que a sua conta está activada, poderá desfrutar do envio de imagens, criar álbuns e definir a sua privacidade, bem como partilhar as suas imagens nos mais variados locais." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Aliás, aqui está a sua fantástica página de perfil: <a href=\"%u\">%n</a>. Vá até la e edite-a a seu gosto. É toda sua!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Obrigado por se juntar a nós" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Este e-mail foi enviado por %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Selecionar as imagens para envio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "completo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Envio completo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Alguns erros ocorreram e o sistema não pode processar o seu pedido." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Categoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Seleccione a categoria" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Marque esta opção se o envio é de conteúdo impróprio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Envio de conteúdo impróprio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "A enviar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Cancelar restantes" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Nota: Algumas imagens não puderam ser enviadas." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Saber mais" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Verifique o <a data-modal=\"simple\" data-target=\"failed-upload-result\">relatório de erro</a> para mais informações." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "fechar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Titulo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "Opcional" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Marque esta opção se a imagem é de conteúdo impróprio" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Assinalar como inseguro" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Descrição" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Breve descrição desta imagem" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Adicionar URLs de imagem" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Adicione os URLs de imagem aqui" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Criar álbum" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Mover para o álbum" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Selecione um álbum existente para mover o conteúdo enviado. Pode <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover o conteúdo para lá." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Relatório de erro" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Ver links" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Códigos HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML médio" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML da miniatura" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Código BBCode do tamanho médio" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "Código BBCode da miniatura" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Todas estas palavras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Introduza as palavras importantes: tri-color rato terrier" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Esta palavra ou frase exacta" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Introduza palavras exactas entre aspas: \"rato terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Nenhuma destas palavras" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Coloque um sinal de subtracção antes das palavras que não lhe interessam: -roedor -\"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Endereço de IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Nome do álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "mover para um álbum existente" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Descrição do álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Breve descrição deste álbum" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Quem pode visualizar este conteúdo" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privado (apenas eu)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Privado (qualquer pessoa com o link)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Nome" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Nome da categoria" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Chave URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Chave URL da categoria" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Apenas letras, números ou hyfens" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Breve descrição desta categoria" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Imagem sem titulo" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Caminho" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Data de validade" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "AAAA-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Exemplo" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Até quando este endereço de IP ficará banido? Deixe em branco para permanente." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Mensagem" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Mensagem de texto, HTML ou um redireccionamento URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Álbum existente" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Criar novo álbum " + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Nome do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Região" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Banco de alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Chave" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Chave do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Segredo" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Segredo do alojamento" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Nome de utilizador" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname ou IP do servidor de alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Caminho do servidor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Senha do servidor" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Capacidade do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Exemplo: 20 GB, 1 TB, etc." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Este alojamento será desligado quando atingir esta capacidade. Deixe em branco ou zero para ilimitado." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL do alojamento" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "O sistema irá mapear as imagens deste alojamento neste URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "ver mais" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Carregar mais" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Seleccionar tudo" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Limpar selecção" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Selecção" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Acção" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Obter códigos para partilha" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Definir categoria" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Assinalar como seguro" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Entre com outra conta" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Não há nada para ver aqui." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Todas as imagens serão transferidas para este álbum recém criado. Pode também mover as imagens para um <a class=\"modal-switch\" data-switch=\"move-existing-album\">álbum já existente</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Selecione um álbum existente para mover a imagem. Pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover a imagem para lá." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Selecione um álbum existente para mover as imagens. Pode também <a class=\"modal-switch\" data-switch=\"move-new-album\">criar um novo álbum</a> e mover as imagens para ali." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Todas as imagens seleccionadas serão movidas para esta categoria." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Não existem categorias." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Confirme que o conteúdo é seguro" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Quer mesmo confirmar isto como sendo conteúdo seguro?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Confirme o conteúdo como imprórpio" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Deseja mesmo denunciar este conteúdo como impróprio?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Confirme a eliminação" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Deseja mesmo remover este conteúdo? Isto não pode ser revertido." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Deseja mesmo remover todo o conteúdo seleccionado? Isto não pode ser revertido." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Convidado" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "De %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Alterar para conteúdo imprópio" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Esta página não existe" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "A página solicitada não foi encontrada." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Search something else" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "O utilizador foi eliminado" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "A sua conta está quase pronta" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Um e-mail para foi enviado para %s com as instruções para activar a sua conta. O link de activação só é válido por 48 horas. Se não receber as instruções verifique a sua pasta de correio não solicitado/spam/Lixo." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Reenviar ativação" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Alrerou com sucesso a sua conta de e-mail para %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Ir para o meu perfil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Um link de confirmação será enviado para este e-mail com os detalhes para ativar sua conta." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "O seu endereço de email" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Submeter" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Um e-mail com instruções para redefinir sua senha foi enviado para o endereço de e-mail de registo. Se não receber as instruções verifique a sua pasta de correio não solicitado/spam/Lixo." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Um email anterior foi enviado com instruções para redefinir a sua palavra passe. Se não recebeu as instruções verifique a sua pasta de correio não solicitado/spam/Lixo." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Reenviar instruções" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Nome de usuário ou Endereço de e-mail" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "A sua palavra passe foi alterada, Agora pode iniciar sessão com a sua nova senha." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Entrar agora" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "introduza a nova senha" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d caracteres mínimos" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Re-digite a nova senha" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Este conteúdo é privado" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Quer mesmo apagar este álbum e todas as suas imagens? Esta operação não poderá ser revertida." + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Link do álbum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Espaço usado" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Estado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Adicionar usuário" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Papel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrador" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Endereço de email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Adicionar categoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Adicionar banimento de IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Adicionar alojamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Nome da página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Subtítulo " + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Descrição da página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Fuso horário padrão" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Seleccionar região" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID de utilizador" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Modo privado fará com que o site só esteja disponível para usuários registados." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Modo de privacidade conteúdo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Padrão" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Forçar privado (auto)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Forçar privado (qualquer pessoa com o link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Modos de privacidade forçadas substituirá preferência de privacidade de usuário." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Activar envios" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Active esta opção se quiser permitir envios de imagens. Esta configuração não afecta administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Envios de visitantes" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Ative isto se quiser permitir que os utilizadores não registados façam envios." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Caminho da imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relativo ao root do Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Onde alojar as imagens? Relativo ao root do Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Modo de armazenamento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datefolders" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Directo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datefolders cria %s estrutura" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Método de nomeação do arquivo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Tamanho da miniatura" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "As miniaturas serão ajustadas para este tamanho." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Marcas de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Active para colocar uma marca de água em todos os envios de imagens." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Aviso: Não é possível escrever em %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Imagem de marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Posição da marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "Topo esquerdo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "Centro esquerda" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "Canto inferior esquerdo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "Topo centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "Centro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "Centro na parte inferior" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "Topo direita" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "Centro direita" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "Inferior direito" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Posição relativa da imagem de marca de água. Primeiro alinhamento horizontal e depois alinhamento vertical." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Margem da marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margem da borda para a imagem de marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Opacidade da marca de água" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Opacidade da marca de água na imagem final. Valores de 0 a 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Quer realmente apagar a categoria %s? Esta operação não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Nota: Apagar a categoria não apagará as imagens que ela contém." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Editar categoria" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Expira" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Quer mesmo remover o ban do IP %s? Esta operação não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Endereço de IP banido será proibido de usar todo o site." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Editar IP do ban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Activar as inscrições" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Active esta opção para permitir que os utilizadores possam registar-se." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Routing de nome de utilizador" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Active isto se desejar usar %s/nome_de_utilizador em vez de %s/utilizador/nome_de_utilizador" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Requerer confirmação de email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Active isto se desejar que os utilizadores necessitem de validar o email quando criam conta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Requerer confirmação de email quando criam conta através de uma rede social" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Active isto se desejar que os utilizadores necessitem de validar o email quando criam conta através de uma rede social." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Tamanho máximo do ficheiro de avatar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Tamanho máximo do ficheiro para o avatar do utilizador. (O tamanho máximo permitido pelo servidor é %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Tamanho máximo para o fundo do utilizador" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Bloquear envios de imagens por IP se o sistema de detectar um comportamento de inundação com base no número de envios por período de tempo. Esta configuração não afecta administradores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Notificar para o e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Se habilitado, o sistema irá enviar um e-mail sobre incidentes de flood." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Limite por minuto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Limite por hora" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Limite por dia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Limite por semana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Limite por mês" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Mostrar conteúdo não seguro em listas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Mostrar banners em conteúdo não seguro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Ative esta opção se quiser mostrar banners em páginas de conteúdo não seguras." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "itens da lista por página" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Quantos itens devem ser mostrador por página de listagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Modo Lista de paginação" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Rolagem Infinita" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Paginação clássica" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Qual método de paginação deve ser usado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Fluído" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fixo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefone" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Portátil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Computador" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Coloque seus temas na pasta %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Tom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Claro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Escuro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Cor principal" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Valor hexadecimal da cor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Cor dos botões na barra do topo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Azul" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Verde" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Laranja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Vermelho" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Cinzento" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Preto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Branco" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Cor dos botões na barra do topo como o botão de \"Criar conta\"" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Activar logo em imagem vectorial" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Activar logo vector para o logótipo de alta qualidade em dispositivos com alta resolução." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Imagem do logotipo Vetor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Versão Vector ou o seu logótipo em formato SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Imagem do logotipo raster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Versão Bitmap ou teu logotipo. O formato PNG é recomendado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Altura do logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Sem valor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Utilize este quadro para definir a altura do logo, caso seja necessário." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Imagem do favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Imagem Favicon. A imagem deve ter a mesma largura e altura." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Ativar botão de download" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Active esta opção se quiser mostrar o botão de download da imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Activar clique direito sobre a imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Active isto se desejar activar a função de clicar com o botão direito do rato sobre a imagem na página de visualização das imagens" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Activar partilhas sociais" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Active isto se desejar activar os botões das redes sociais de modo a poder partilhar as suas imagens" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Não é seguro checkbox conteúdo em Uploader" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Ative esta opção se quiser mostrar uma caixa de seleção para indicar upload de conteúdo não seguro." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Código CSS personalizado" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Coloca o teu código CSS personalizado aqui. Ele será colocado como <style> antes da tag </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr " Código personalizado JS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Coloca o teu código JS personalizado aqui. Ele será colocado como <script> antes da tag </head>." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Você realmente quer eliminar esta imagem? Esta acção não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Apagar imagem" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Idioma padrão" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Idioma base para usar como padrão." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Idioma automático" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Selecção de Idioma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Active isto se desejar que os utilizadores possam escolher o seu próprio Idioma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Activar Idiomas" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Idiomas não selecionados não serão usados no seu website." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Use isto para activar ou desactivar o HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Cota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Activo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Do nome" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Nome do remetente dos e-mails enviados para os utilizadores." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Modo de e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Como enviar e-mails? SMTP é recomedado." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "Servidor SMTP e porta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "Servidor SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Nome de utilizador SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Palavra passe SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Segurança SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Inseguro" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Você precisa de um <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> para este." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Id app Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Tu precisas de um <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> para esta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Conta Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Você precisa de um <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> para esta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "ID de cliente do Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "ID do cliente VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Segredo do cliente VK" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Você precisas de uma chave <a href=\"%s\" target=\"_blank\"> reCAPTCHA </a> para isto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "limiar reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Código para comentários" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook ou qualquer coisa que você quiser. Será utilizado no modo de exibição de imagem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Código do Analytics" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics ou qualquer coisa que você quiser. Será adicionado ao rodapé tema." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Chave API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Salvar as alterações" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Verifique os erros para continuar." + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Adicionar a %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Uploaded %s" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Partilhar imagem" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID do álbum" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Neste album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Envie e compartilhe as suas imagens." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registre-se agora Grátis" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Gerencie suas imagens, crie álbuns privados, personalize seu perfil e muito mais." + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Não tem uma conta? <a href='%s'> Registe-se </a> agora." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Desligado" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Terminou sessão %s. Esperamos vê-lo em breve." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Ir para página inicial" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Website sob manutenção" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Estamos a efectuar as manutenções necessárias no website . Por favor, volte mais tarde." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Ou não têm permissão para acessar esta página ou o link expirou." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Deseja realmente excluir este utilizador? Esta acção não pode ser revertida." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Apagar utilizador" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Data de registo" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Válido" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Banido" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Aguardando e-mail" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Aguardando confirmação" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "Caractéres de %i a %f<br>Letras, números e \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Subscrição" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Enviem-me emails de notícias sobre o %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Configurações de conteúdo" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Mostrar conteúdo marcado como impróprio nas listas (de outros)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Idioma" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Fuso horário" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Palavra passe actual" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Digite a sua palavra passe atual" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nova palavra passe" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Confirmar nova palavra passe" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Adicionar uma palavra passe para ser capaz de fazer login usando o seu nome de utilizador ou e-mail." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Este utilizador não têm uma palavra passe definida. Adicionar uma usando este formulário." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Digite sua senha" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Confirme a nova senha" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Re-digite a sua palavra passe" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Carregar nova imagem" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Apagar a imagem existente" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Este é o seu verdadeiro nome, não o seu nome de utilizador." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://omeusite.pt" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Bio" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Conte-nos um pouco sobre si" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "O utilizador não tem conexões." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Deseja realmente desconectar %s desta conta?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Esta conta está ligada a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Deseja realmente desligar o %s da sua conta?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Será desconectado e não será capaz de acessar a sua conta usando este %s conta." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "A sua conta está ligada a %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "Desligar" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Conectar %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Carregar fundo de perfil" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Alterar a imagem de fundo" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "A imagem de fundo de perfil será apagada. Esta acção não pode ser revertida. Têm a certeza que quer apagar esta imagem de fundo de perfil?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Apagar a imagem de fundo" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Foi proibido de usar este site." + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Questões gerais / comentários" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Denúncia de DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Mensagem inválida" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Assunto inválido" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Erro de correio" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Todas as mudanças que fez serão perdidas se continuar." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Alterações guardadas com sucesso." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Voltar para o formulário" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "Continuar assim mesmo" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "A guardar" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "A enviar" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Confirmar acção" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "Informação" + diff --git a/app/languages/ru.po b/app/languages/ru.po new file mode 100644 index 0000000..d16384a --- /dev/null +++ b/app/languages/ru.po @@ -0,0 +1,5302 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:16+0000\n" +"PO-Revision-Date: 2020-09-02 17:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Неверный e-mail адрес" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Неверное имя пользователя" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Неверный пароль" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Неверный режим работы сайта" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "E-mail отправителя" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "E-mail отправителя для рассылки сообщений пользователям." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "E-mail для входящих сообщений" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "E-mail для формы обратной связи и системных уведомлений." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Режим работы сайта" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Вы можете сменить режим работы сайта в любое время." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Сообщество" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Частный" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "У Вас установлена версия - v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Невозможно подкючиться к %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Последняя доступная версия - v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Доступно обновление, приступаю к загрузке" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Обновления отсутствуют" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Системные файлы уже находятся в актуальном состоянии" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Запускаю загрузку версии v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Версия v%s загружена, приступаю к распаковке" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Выполняю распаковку v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Распаковка выполнена" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Приступаю к установке обновления" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Ошибка обновления" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Выполняется обновление" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Отсутствует файл %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Неверные данные лицензии" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Неверный лицензионный ключ" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Невозможно сохранить файл" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Невозможно загрузить %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Невозможно распаковать %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Невозможно создать %s директорию - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Невозможно обновить %s файл - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Перед тем как продолжить, проверьте правильность заполнения формы." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Вы должны ввести название альбома." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Подтвердить" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Выберите существующий альбом" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "В процессе выполнения произошла ошибка. Пожалуйста попробуйте позже." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Пожалуйста выберите правильный формат изображения." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Пожалуйста выберите изображение не более %s размером." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Изображение профиля обновлено." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Фон профиля обновлен." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Фон профиля удален." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "При удалении фона профиля возникла ошибка." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Пароли не совпадают" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Доступное обновление до v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Для Вашей системы доступно обновление. Вы можете автоматически загрузить и установить его, или перейти на %s для загрузки файла." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Список изменений для данного обновления:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Обновить" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "или" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "отменить" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Вы используете последнюю версию Chevereto - %s" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "загрузка" + +msgid "Toggle select" +msgstr "выбранное" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Нравится" + +msgid "Toggle flag" +msgstr "Переключить" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Редактировать" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Альбом" +msgstr[1] "Альбомы" +msgstr[2] "Альбомов" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Удалить" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Закрыть" + +msgid "Previous" +msgstr "Предыдущая" + +msgid "Next" +msgstr "Следующая" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Изображение из буфера обмена" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Файл слишком большой." + +msgid "Invalid or unsupported file format." +msgstr "Неверный или не поддерживаемый формат файла." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Некоторые файлы не были добавлены." + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "изображение" +msgstr[1] "изображения" +msgstr[2] "изображений" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Альбомы %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Изображение успешно отредактировано." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "скрытое" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Альбом успешно отредактирован." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Неверный URL ключ." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Такой URL-ключ уже используется." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Категория удалена." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Категория %s добавлена." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Неверный срок действия." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP-адрес %s уже заблокирован" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP-адрес %s заблокирован" + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP-адрес разблокирован." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Пожалуйста заполните все необходимые поля." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Неверное значение доступного дискового пространства. Убедитесь, что вы используете допустимый формат." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Доступное дисковое пространство не может быть меньше использованного в данный момент (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Неверный адрес." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Хранилище изменено." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Пользователь добавлен." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Содержимое удалено." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Содержимое перемещено." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Выделить" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Снять выделение" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Содержимое отредактировано." + +msgid "Select number of threads" +msgstr "Выберите количество потоков" + +msgid "Spam detected" +msgstr "Обнаружен спам" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "альбом" +msgstr[1] "альбома" +msgstr[2] "альбомов" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Безымянный" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "изображения %s" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Внимание: Это скрытое содержимое, но любой, кто знает ссылку сможет его увидеть." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Внимание: Это содержимое защищено паролем. Не забудьте сообщить пароль." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Внимание: Это скрытое содержимое. Чтобы поделиться им, измените настройки видимости на \"Публичное\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Частный" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Публичный" + +msgid "Me" +msgstr "Я" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Ссылка" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Пароль" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "просмотр" +msgstr[1] "просмотра" +msgstr[2] "просмотров" + +msgid "After %n %t" +msgstr "Через %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "минута" +msgstr[1] "минуты" +msgstr[2] "минут" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "час" +msgstr[1] "часа" +msgstr[2] "часов" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "день" +msgstr[1] "дня" +msgstr[2] "дней" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "неделя" +msgstr[1] "недели" +msgstr[2] "недель" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "месяц" +msgstr[1] "месяца" +msgstr[2] "месяцев" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "год" +msgstr[1] "года" +msgstr[2] "лет" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Никогда не удалять" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Повторяющаяся загрузка" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Скрытая загрузка" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "понравилось" +msgstr[1] "понравилось" +msgstr[2] "понравилось" + +msgid "Recent" +msgstr "Новые" + +msgid "Trending" +msgstr "В тренде" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Самые активные" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Новые" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Старые" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Популярные" + +msgid "Popular" +msgstr "Популярные" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Избранные" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Обзор" + +msgid "Animated" +msgstr "Анимации" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Поиск" + +msgid "People" +msgstr "Люди" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Изображение" +msgstr[1] "Изображения" +msgstr[2] "Изображений" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Пользователь" +msgstr[1] "Пользователи" +msgstr[2] "Пользователей" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Невозможно создать каталог %s" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Невозможно открыть %s для записи" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Внутреннее" + +msgid "Can't insert storage." +msgstr "Невозможно добавить хранилище." + +msgid "Can't update storage details." +msgstr "Невозможно получить подробную информацию о хранилище." + +#, php-format +msgid "requires %s" +msgstr "требует %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Без лимита" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "использовано" + +msgid "Private profile" +msgstr "Скрытый профиль" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "секунда" +msgstr[1] "секунды" +msgstr[2] "секунд" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s назад" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "минут назад" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Панель управления" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Для вашей системы доступно обновление. Перейдите на %s, чтобы загрузить и установить его." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "База данных системы устарела. Пожалуйста запустите <a href=\"%s\">службу обновления</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Сайт находится в режиме технического обслуживания. Чтобы выйти из этого режима, перейдите в <a href=\"%s\">Панель управления</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Вы должны отключить отображение ошибок PHP при выходе из пробного режима. Перейдите в <a href='%s'>Настройки системы</a>, чтобы применить эту настройку." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Вы не изменили настройки email по-умолчанию. Перейдите в <a href='%s'>Настройки Email</a>, чтобы исправить это." + +msgid "There is an update available for your Chevereto based website." +msgstr "Для вашего Chevereto доступно обновление." + +msgid "admin dashboard" +msgstr "панель управления" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Вы можете обновить систему через %a или скачать архив с %s и установить обновление вручную." + +#, php-format +msgid "view on %s" +msgstr "посмотреть на %s" + +msgid "cookie policy" +msgstr "политикой использования cookie" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Мы используем cookie-файлы, чтобы сделать наши ваше прибывание на сайте максимально комфортным. Работая с этим сайтом, вы даете свое согласие с нашей %cookie_policy_link." + +msgid "I understand" +msgstr "Хорошо" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Забыли пароль?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Сбросить пароль" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Повторить отправку ссылки для активации" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Добавить адрес электронной почты" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Адрес электронной почты изменен" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s сообщает, что Вы робот" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Неверное Имя пользователя/E-mail" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Для этого пользователя не задан адрес электронной почты." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "В запросе отказано" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Для использования этой функции, аккаунт должен быть активирован" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Аккаунт уже активирован" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Подождите сообщение хотя бы 15 минут. После этого попробуйте ещё раз." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Сброс пароля на %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Подтверждение регистрации на %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Добро пожаловать на %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "E-mail уже используется" + +msgid "Password required" +msgstr "Требуется указать пароль" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Поделиться" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Коды для встраивания" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Подробная информация" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "Альбом %a расположенный в %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Статистика" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Изображения" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Альбомы" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Пользователи" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Настройки" + +msgid "Bulk importer" +msgstr "Пакетный импорт" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Версия Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "установить обновление" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "проверить обновления" + +msgid "Support" +msgstr "Поддержка" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Нужна помощь? Посетите %s и мы быстро поможем вам." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Версия PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Сервер" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Версия MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Информация о сервере MySQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "Библиотека GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Загрузка файлов" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Вкл." + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Выкл." + +msgid "Max. upload file size" +msgstr "Макс. размер файла" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Макс. размер POST-запроса" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Макс. время выполнения" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d секунда" +msgstr[1] "%d секунды" +msgstr[2] "%d секунд" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Ограничение памяти" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Ссылки" + +msgid "Collaboration" +msgstr "Команда" + +msgid "Documentation" +msgstr "Документация" + +msgid "Changelog" +msgstr "Список изменений" + +msgid "Bug tracking" +msgstr "Баг трекер" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Сайт" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Содержимое" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Страницы" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Списки" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Загрузка и хранение" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Категории" + +msgid "Consent screen" +msgstr "Возрастной ценз" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Защита от флуда" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Тема" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Главная страница" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Баннеры" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Система" + +msgid "Routing" +msgstr "Маршрутизация" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Языки" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Внешнее хранилище" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Социальные сети" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Сторонние сервисы" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Блокировка по IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Другое" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Инструменты" + +msgid "Can't delete all homepage cover images" +msgstr "Невозможно удалить все обложки сайта." + +msgid "Homepage cover image deleted" +msgstr "Изображение обложки удалено" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Локальное" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Внешнее" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Все" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "поиск содержимого" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Добавить страницу" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Редактировать ID страницы %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Страница успешно создана." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Страница удалена." + +msgid "homepage" +msgstr "главная страница" + +#, php-format +msgid "Before main title (%s)" +msgstr "Перед главным заголовком (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "После кнопки призыва к действию (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "После обложки (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "После списка изображений (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Перед разделителем страниц" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "После разделителя страниц" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Содержимое (изображения и альбомы)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "В информации об изображении" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Перед комментариями" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Страница изображения" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "В заголовке просмотрщика (страница изображения)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Внизу просмотрщика (страница изображения)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "После изображения (страница изображения)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Перед заголовком (страница изображения)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "После заголовка (страница изображения)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Нижний колонтитул (страница изображения)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Страница альбома" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Перед заголовком (страница альбома)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "После заголовка (страница альбома)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Профиль пользователя" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "После заголовка (профиль пользователя)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Перед списком изображений (профиль пользователя)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Страница Обзор" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "После заголовка (страница обзор)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "Небезопасное" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Неверное название сайта" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Неверный язык" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Неверный часовой пояс" + +#, php-format +msgid "Invalid value: %s" +msgstr "Неверное значение: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Неверный способ хранения файлов." + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Неверный метод хранения имен файлов" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Неверная ширина миниатюры" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Неверная высота миниатюры" + +msgid "Invalid medium size" +msgstr "Неверный средний размер изображения" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Неверный относительный размер водяного знака" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Неверное значение непрозрачности водяных знаков" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Неверный стиль" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Неверное значение" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Неверный стиль темы" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Неверный цвет темы" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Неверный цвет кнопок панели" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Неверный размер изображения для списков" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Неправильный id пользователя" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Неверный режим электронной почты" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Неверный SMTP порт" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Неверные настройки безопасности SMTP сервера" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Неверный ID пользователя частного режима" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Неверный или зарезервированный маршрут" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Неверный режим видимости сайта" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Неверный режим видимости содержимого" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Неверный стиль главной страницы" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Неверный цвет кнопки на главной" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Неверное действие кнопки на главной" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Неверный заголовок" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Неверный статус" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Неверный тип" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Неверная видимость" + +msgid "Invalid internal type" +msgstr "Неверный тип" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Неверный аттрибут target" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Неверный аттрибут rel" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Неверная иконка" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Неверный URL-ключ" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Неверный путь к файлу" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Неверный адрес ссылки" + +msgid "Invalid user minimum age" +msgstr "Неверно указан минимальный возраст пользователя" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Только цифры, латинские буквы, дефис и нижнее подчеркивание" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Неверный URL" + +msgid "Routes can't be the same" +msgstr "Маршрут должен быть уникальным" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Неверная папка загрузки изображений" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Неверный URL кнопки" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Макс. разрешено %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "Не могу создать %m для существующей папки (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "Не могу создать %m для существующего маршрута (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "Не могу создать %m для %r (существует пользователь с таким именем)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Неверный SMTP сервер" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Неверное SMTP имя" + +msgid "Invalid key" +msgstr "Неверный ключ" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Этот URL-ключ уже используется для другой страницы (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Этот файл уже используется для другой страницы (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Невозможно сохранить содержимое страницы: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Подписан" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Информация" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID изображения" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP автора" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Заблокировать" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP-адрес уже заблокирован" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Дата загрузки" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Изображение %i в альбоме %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Изображение %i в категории %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Изображение %i расположенное в %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Прямые ссылки" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Оригинал" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Прямая ссылка" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Миниатюра" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Средний размер" + +msgid "Full image" +msgstr "Код изображения в полном размере" + +msgid "Full image (linked)" +msgstr "Код изображения оригинальный размер со ссылкой" + +msgid "Medium image (linked)" +msgstr "Код среднего размера со ссылкой" + +msgid "Thumbnail image (linked)" +msgstr "Код миниатюры со ссылкой" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Необходим вход" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP-адрес уже заблокирован" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Пропущенные значения" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Неверная роль" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Пользователь с таким именем уже существует." + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Перед удалением %s, добавьте пароль или привяжите другую учетную запись" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Перед удалением %s, добавьте email или привяжите другую учетную запись" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s отключен." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Тестовое сообщение от %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Это просто тест" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Тестовое сообщение отправлено на %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Загружаю данные %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Вы подписались на загрузки пользователя %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Вы отписались от загрузок пользователя %s" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Содержимое понравилось" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Содержимое не понравилось" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "Пользователю %u понравилось %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u подписался на Вашу ленту" + +msgid "A private user" +msgstr "Скрытый пользователь" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Неверное имя пользователя или пароль" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Войти" + +msgid "Upload images" +msgstr "Загрузить изображения" + +msgid "Upload plugin" +msgstr "Загрузить плагин" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Результаты поиска изображений по запросу %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Результаты поиска альбомов по запросу %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Результаты поиска пользователей по запросу %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Аккаунт" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Профиль" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Сервисы" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Неверный срок хранения изображения: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "На %s было отправлено сообщение с инструкциями по активации" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Неверное имя" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Неправильний веб-сайт" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Неверный пароль" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Используйте новый пароль" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Изменения сохранены." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Пароль успешно изменен" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Пароль успешно создан." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Неверное Имя пользователя/Email" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Настройки %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Вы должны согласится с правилами и политикой конфиденциальности" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Для использования данного сайта вам должно быть как минимум %s лет." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Зарегистрироваться" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Загрузка" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Изображения %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Результаты для" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Понравилось %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Понравилось" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Подписчиков" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) альбомов на %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) на %w" + +msgid "Discovery" +msgstr "Подборки" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Расширенный поиск" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Случайное" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Уведомления (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Уведомления" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "У Вас нет новых уведомлений" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Мой профиль" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Выйти" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Здравствуйте! Мы получили запрос на смену адреса электронной почты для Вашего аккаунта <a href=\"%u\">%n</a> на %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Чтобы завершить регистрацию, вы должны <a href=\"%s\">активировать свой Email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Вы также можете скопировать этот адрес и вставить в адресную строку вашего браузера: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Если вы не делали этого запроса, просто проигнорируйте это письмо." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "IP-адрес, с которого был сделан запрос: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Здравствуйте! Мы получили запрос на регистрацию аккаунта %n на %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Чтобы завершить регистрацию, вы должны <a href=\"%s\">активировать свой аккаунт</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Здравствуйте! Мы получили запрос на сброс пароля для Вашего аккаунта <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Чтобы сбросить пароль, <a href=\"%s\">пройдите по этой ссылке</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Привет %n! Добро пожаловать на %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Теперь когда регистрация завершена, вы можете наслаждаться загрузкой изображений, созданием альбомов, изменением настроек видимости содержимого, а также многими другими преимуществами." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Кстати, ваша личная страница расположена по адресу: <a href=\"%u\">%n</a>. Вы можете настроить её по своему вкусу. Она ваша!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Спасибо за то, что вы с нами" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Это сообщение было отправлено с %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Перетащите или вставьте изображения для начала загрузки" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Выберите изображения для загрузки" + +msgid "browse from your computer" +msgstr "обзор изображений с компьютера" + +msgid "add image URLs" +msgstr "добавить ссылки на изображения" + +msgid "You can also %i or %u." +msgstr "Вы также можете %i или %u.\n" + +msgid "browse from your device" +msgstr "обзор изображений с устройства" + +msgid "take a picture" +msgstr "сделать фото" + +msgid "You can also %i, %c or %u." +msgstr "Вы также можете %i, %c или %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Нажмите на миниатюру, чтобы отредактировать изображение или изменить его размер" + +msgid "Edit any image by touching the image preview" +msgstr "Отредактируйте изображение касанием окна предпросмотра." + +msgid "your computer" +msgstr "вашего компьютера" + +msgid "You can add more images from %i or %u." +msgstr "Вы можете добавить изображения с %i или %u." + +msgid "your device" +msgstr "вашего устройства" + +msgid "You can add more images from %i, %c or %u." +msgstr "Вы можете добавить изображения с %i, %c или %u." + +msgid "Uploading %q %o" +msgstr "Загружается %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "завершено" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Загружается очередь изображений. Это может занять некоторое время." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Загрузка завершена" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Загруженное содержимое добавлено к альбому %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Вы можете %c с загруженным содержимым или %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Вы можете %c с загруженным содержимым." + +msgid "create a new album" +msgstr "создать новый альбом" + +msgid "move it to an existing album" +msgstr "переместить его в существующий" + +msgid "You must %s or %l to save this content into your account." +msgstr "Вы должны %s или %l, чтобы сохранить это содержимое в свой аккаунт." + +msgid "create an account" +msgstr "создать аккаунт" + +msgid "sign in" +msgstr "войти" + +#, php-format +msgid "No %s have been uploaded" +msgstr "Не было загружено ни одного %s." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "В процессе обработки вашего запроса произошла ошибка." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Категория" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Выберите категорию" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Пометить это изображение как неподходящее для семейного просмотра" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Небезопасное содержимое" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Загружается" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "отменить оставшиеся" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Внимание: Некоторые изображения не были загружены." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "подробнее" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Проверьте <a data-modal=\"simple\" data-target=\"failed-upload-result\">отчет об ошибках</a> для получения более подробной информации." + +#, php-format +msgid "Register to get %s" +msgstr "Зарегистрируйтесь, чтобы получить %s" + +msgid "reset" +msgstr "сброс" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "закрыть" + +msgid "copy" +msgstr "копировать" + +msgid "insert" +msgstr "вставить" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Удалить" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Заголовок" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "необязательно" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Изменить размер изображения" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Ширина" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Высота" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Внимание: Размер анимированных изображений в формате GIF не будет изменен." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Автоудаление изображений" + +msgid "Sign up" +msgstr "Зарегистрируйтесь" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s, чтобы получить дополнительные возможности или отключить автоматическое удаление изображений." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Пометить это изображение как небезопасное" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Небезопасное" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Описание" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Краткое описание изображения" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Добавьте ссылки на изображения" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Добавьте сюда ссылки на изображения" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Создать альбом" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Загруженный контент будет перемещен в новый альбом" + +msgid "existing album" +msgstr "существующий альбом" + +msgid "You can also move the content to an %a." +msgstr "Вы можете также переместить содержимое в виде %a." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Вы должны %s или %l, если хотите отредактировать этот альбом позже." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Переместить в альбом" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Выберите существующий альбом для перемещения загруженного содержимого. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> и переместить содержимое в него." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Отчет об ошибках" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Ссылки на просмотр" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML-коды" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML-код изображения" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML-код полноразмерного со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML-код среднего размера со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML-код миниатюры со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BB-коды" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BB-код полноразмерного" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BB-код полноразмерного со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BB-код среднего размера со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BB-код миниатюры со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown-разметка полноразмерного" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown-разметка полноразмерного со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown-разметка среднего размера со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown-разметка миниатюры со ссылкой" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Со словами" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Введите ключевые слова: русский черный терьер" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Со словосочетанием" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Заключите словосочетание в кавычки: \"черный терьер\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Без слов" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Поставьте знак минуса перед словами: -цвет -\"русский той\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Хранилище" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP-адрес" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Название альбома" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "переместить в существующий" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Описание альбома" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Краткое описание этого альбома" + +msgid "Album privacy" +msgstr "Защита альбома" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Кто может просматривать это содержимое" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Скрытое (только я)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Скрытое (только по ссылке)" + +msgid "Private (password protected)" +msgstr "Скрытое (с паролем)" + +msgid "Album password" +msgstr "Пароль альбома" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Имя" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Название категории" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Ключ для URL-адреса" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Ключ для URL-адреса категории" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Только буквы, цифры и дефисы" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Краткое описание этой категории" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Безымянное" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Путь" + +msgid "Local path (absolute)" +msgstr "Локальный путь (абсолютный)" + +msgid "Directory structure" +msgstr "Структура папок" + +msgid "Parse top level folders as users (username)" +msgstr "Обрабатывать имена папок как пользователей (логины)" + +msgid "Parse top level folders as albums" +msgstr "Обрабатывать имена папок как альбомы" + +msgid "Don't parse folders" +msgstr "Не обрабатывать имена папок" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "При обработке папок верхнего уровня, как имени пользователя, папки второго уровня будут обработаны, как альбомы. Обработка папок верхнего уровня как альбомы, включает в том числе и альбомы гостей." + +msgid "Threads" +msgstr "Потоки" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Определяет насколько быстрым и ресурсоемким будет процесс импорта. Не используйте больше %s потоков на совместном хостинге." + +msgid "You can use wildcard * characters." +msgstr "Вы можете использовать символы * для задания маски." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Срок блокировки" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "ГГГГ-ММ-ДД ЧЧ:ММ:СС" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Пример" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Срок блокировки этого IP-адреса. Для бессрочной блокировки оставьте это поле пустым." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Сообщение" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Текстовое сообщение, HTML-код или ссылка для переадресации" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Существующий альбом" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "создать новый альбом" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Название хранилища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Регион" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Регион" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Корзина хранилища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Ключ хранилища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Секретный ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Секретный ключ хранилища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Закрытый ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "JSON-ключ Google Cloud" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Для использования этой возможности, вам понадобится <a %s>аккаунт</a>." + +msgid "Service name" +msgstr "Название службы" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Адрес профиля" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Конечная точка API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Конечная точка API для пользователя OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Имя пользователя" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Контейнер" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Контейнер хранилища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "ID клиента" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "ID клиента(аккаунта)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Имя клиента" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Имя клиента(аккаунта)" + +msgid "Storage endpoint" +msgstr "Адрес хранилища" + +msgid "Server address" +msgstr "Адрес сервера" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Адрес или IP сервера" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Путь" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Абсолютный путь к хранилищу файлов для пользователя %p. Используйте %s для корневой директории." + +msgid "Server login" +msgstr "Логин сервера" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Пароль" + +msgid "Local path" +msgstr "Локальный путь" + +msgid "Local path where the files will be stored" +msgstr "Локальный путь, где будут храниться файлы" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Доступное пространство" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Например 20 GB, 1 TB и т. п." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Хранилище будет оключено при достижении этого лимита. Оставьте поле пустым или укажите ноль для отключения лимита." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Адрес хранилища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Система будет использовать данный адрес при формировании ссылок на изображения из этого хранилища." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "показать ещё" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Загрузить ещё" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Выделить все" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Снять выделение" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "С выделенными" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Действие" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Получить коды для встраивания" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Присвоить категорию" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Безопасное" + +msgid "Create new album" +msgstr "Создать альбом" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Войти через" + +msgid "Continue with %label%" +msgstr "Продолжить с %label%" + +msgid "Home" +msgstr "Главная" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Нет элементов для отображения." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Все изображения будут помещены в этот новый альбом. Вы также можете переместить изображения в <a class=\"modal-switch\" data-switch=\"move-existing-album\">существующий альбом</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Выберите существующий альбом, чтобы переместить изображение. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> и переместить изображение в него." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Выберите существующий альбом в который будет перемещено содержимое. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> для этого содержимого." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Выберите существующий альбом, чтобы переместить изображения. Вы также можете <a class=\"modal-switch\" data-switch=\"move-new-album\">создать новый альбом</a> и переместить изображения в него." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Выбранные изображения будут перемещены в данную категорию." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Категории не заданы." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Подтвердить пометку содержимого как безопасное" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Вы действительно хотите пометить это содержимое как безопасное?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Подтвердить пометку содержимого как небезопасное" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Вы действительно хотите пометить это содержимое как небезопасное?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Подтвердите удаление" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Вы действительно хотите удалить данное содержимое? Это действие необратимо." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Вы действительно хотите удалить выделенное содержимое? Это действие необратимо." + +msgid "Fullscreen" +msgstr "Полный экран" + +msgid "Exit fullscreen" +msgstr "Выход из режима полного экрана" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Гость" + +msgid "Keyboard shortcuts" +msgstr "Горячие клавиши" + +msgid "Private album" +msgstr "Скрытый альбом" + +msgid "Password protected" +msgstr "Защищенный паролем" + +msgid "Uploaded by guest" +msgstr "Загружено гостем" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Из альбома %s" + +msgid "Uploaded by private" +msgstr "Загружено анонимом" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "от %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Включить отметку о небезопасном содержимом" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Эта страница не существует" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Запрошеная страница не найдена" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Найти что-нибудь ещё" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Пользователь удален" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Ваша учетная запись почти готова" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Инструкции по активации вашего аккаунта были отправлены на %s. Ссылка для активации действительна в течение 48 часов. Если вы не получили сообщение проверьте папку Спам." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Выслать письмо с активацией аккаунта еще раз" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Вы успешно поменяли адрес электронной почты на %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Перейти в мой профиль" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "На ваш адрес будет отправлена ссылка для активации аккаунта." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Ваш адрес электронной почты" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Отправить" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Инструкции по сбросу пароля были оправлены на ваш адрес. Если вы их не получили, проверьте папку Спам." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Вам уже было отправлено сообщение с инструкциями по сбросу пароля. Если вы не получили сообщения, проверьте папку Спам." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Повторить отправку инструкций" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Чтобы продолжить, введите имя пользователя или e-mail. Не забудьте проверить папку со спамом %s" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Имя пользователя или Email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Пароль успешно изменен. Вы можете войти используя ваш новый пароль." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Войти сейчас" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Введите ваш новый пароль" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "мин. %d символов" + +msgid "Password strength" +msgstr "Надежность пароля" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Повторите новый пароль" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Инструкции по активации вашей учетной записи были отправлены на %s. Если вы не получили сообщение, проверьте папку Спам." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Скрытое содержимое" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Вы действительно хотите удалить этот альбом со всеми изображениями? Это действие необратимо." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Вам это нравится" + +msgid "Upload to album" +msgstr "Загрузить в альбом" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Ссылка на альбом" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Прежде чем продолжить, прочтите и согласитесь с условиями ниже:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Этот сайт содержит информацию, ссылки и изображения откровенного сексуального характера. Если Вам еще не исполнилось %s лет, подобный материал запрещен в вашей стране или Вы считаете такой материал оскорбительным, пожалуйста, покиньте сайт.\n\nЯ подтверждаю, что мне исполнилось %s лет и считаю своим правом возможность просматривать материал откровенного сексуального характера.\n\nЯ не считаю добровольный половой акт между партнерами, достигшими совершеннолетия, оскорбительным или непристойным. Просмотр, чтение или загрузка материалов, откровенного сексуального характера не нарушает законы и порядки моего сообщества, города, области или страны.\n\nПросматриваемый мной материал откровенного сексуального характера, предназначен для личного пользования и не предназначен для демонстрации лицам, не достигшим совершеннолетия.\n\nЯ полностью отвечаю за все правовые последствия просмотра, чтения или загрузки материалов с данного сайта. Ни данный сайт, ни его партнеры не будут нести ответственность за неправомерное использование материалов данного сайта.\n\nЭтот документ служит соглашением между данным сайтом и конечным пользователем. В случае если одна из частей данного соглашения признается недействительной в суде, другие части соглашения не теряют юридическую силу." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Нажимая на кнопку \"Я согласен\" вы подтверждаете, что прочитали и поняли все условия, указанные выше." + +msgid "I Agree" +msgstr "Я согласен" + +msgid "documentation" +msgstr "документации" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "Узнайте больше о %s в %d." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Для Nginx необходимо использовать %nginx%. Для Apache, %apache%." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Использовано места на диске" + +msgid "Automatic importing" +msgstr "Автоматический импорт" + +msgid "Reset to clear stats and logs." +msgstr "Сброс, для очистки статистики и журналов." + +msgid "Queued" +msgstr "В очереди" + +msgid "Working" +msgstr "Обрабатывается" + +msgid "Paused" +msgstr "Приостановлено" + +msgid "Canceled" +msgstr "Отменено" + +msgid "Completed" +msgstr "Завершено" + +msgid "Actions" +msgstr "Действия" + +msgid "Reset" +msgstr "Сброс" + +msgid "Pause" +msgstr "Пауза" + +msgid "Process log" +msgstr "Журнал импорта" + +msgid "Errors" +msgstr "Ошибки" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Статус" + +msgid "Add import job" +msgstr "Добавить задачу импорта" + +msgid "Process import" +msgstr "Импорт" + +#, php-format +msgid "Top level folders as %s" +msgstr "Папки верхнего уровня как %s" + +msgid "Process" +msgstr "Процесс" + +msgid "Cancel" +msgstr "Отмена" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "Вы действительно хотите удалить задачу с ID %s?" + +msgid "Manual importing" +msgstr "Ручной импорт" + +msgid "Parser" +msgstr "Парсер" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Добавить пользователя" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Роль" + +msgid "Manager" +msgstr "Менеджер" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Администратор" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Адрес электронной почты" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Данная настройка всегда выключена, если вы используете персональный режим." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Добавить категорию" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Заблокировать IP-адрес" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Добавить хранилище" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Вернутся к страницам" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Название сайта" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Заголовок сайта" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Описание сайта" + +msgid "Powered by" +msgstr "Работает на" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "Включите, чтобы показывать кнопки соцсетей." + +msgid "Automatic" +msgstr "Автоматически" + +msgid "Forced" +msgstr "Принудительный" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a будет использовать обнаружение HTTPS на стороне сервера (рекомендовано). %f будет использовать HTTPS независимо от настроек сервера. %d полностью отключает использование HTTPS." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Эта настройка влияет только на ссылки. Её включение не сделает ваш сайт доступным по HTTPS, без соответствующих настроек веб-сервера." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Часовой пояс по-умолчанию" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Выберите регион" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Позволяет производить поиск изображений, альбомов и пользователей на основании заданного поискового запроса." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Позволяет просмотр публичных изображений и категорий." + +msgid "guests" +msgstr "гости" + +msgid "Enables explore for guests." +msgstr "Включает обозреватель для гостей." + +msgid "Enables to browse images randomly." +msgstr "Позволяет просмотр случайных изображений." + +msgid "Likes" +msgstr "Понравилось" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Позволяет пользователям отмечать контент, как понравившийся и формирует список \"Самые популярные\"." + +msgid "Followers allows users to follow each other." +msgstr "Система подписки позволяет пользователям подписываться на контент друг друга." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Пользователь в частном режиме" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID пользователя" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Ваш ID пользователя: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Числовой ID пользователя в частном режиме." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Маршрутизация в частном режиме" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Собственный маршрут для переадресации запросов вида /имя_пользователя на /новый_адрес. Используйте \"/\" для перехода на главную страницу." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Режим видимости сайта" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Частный сайт будет доступен только для зарегистрированных пользователей." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Режим видимости содержимого" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "По-умолчанию" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Скрытые (только владелец)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Скрытые (только по ссылке)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "При включении принудительных режимов видимости, указанные пользователями значения будут проигнорированы." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Заголовок страницы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Статус страницы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Активная" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Неактивная (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Только активные страницы будут доступны пользователям" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Тип" + +msgid "Terms of service" +msgstr "Правила" + +msgid "Privacy" +msgstr "Анонимность" + +msgid "Contact" +msgstr "Обратная связь" + +msgid "Extra page" +msgstr "Дополнительная страница" + +msgid "Internal page type" +msgstr "Тип страницы" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Вы можете добавить не более одной страницы каждого типа." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Видимость страницы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Видимая" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Скрытая" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Скрытые страницы не видны в меню, но будут доступны по прямой ссылке." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Только цифры, латинские буквы, дефис и нижнее подчеркивание" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Путь к файлу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "Файл %f относительно %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Ключевые слова" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Описание" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Исходный код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Недостаточно привелегий для записи в %s. Вам необходимо создать этот файл с помощью стороннего редактора." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Недостаточно привелегий для записи в %s. Вам необходимо изменить содержимое этого файла с помощью стороннего редактора." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Взято из: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Адрес ссылки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Аттрибут target для ссылки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Выберите %s чтобы открывать страницу или ссылку в новом окне." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Аттрибут rel для ссылки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Только цифры, буквы, дефисы и пробелы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "Аттрибут %s для HTML-тэга &lt;a&gt;" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Изображение ссылки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Проверьте список поддерживаемых форматов в <a %s>документации по иконкам</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Порядок при сортировке" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Порядок отображения в меню и списках. Используйте \"1\" как вершину списка." + +msgid "pages" +msgstr "страницы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Вы действительно хотите удалить страницу с ID %s? Это действие необратимо." + +msgid "Enabled image formats" +msgstr "Включенные форматы файлов" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "Только отмеченные форматы будут доступны для загрузки." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Включить загрузку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Включите, если вы хотите разрешить загрузку изображений. Эта настройка не влияет на администраторов." + +msgid "Upload user interface" +msgstr "Загрузить интерфейс пользователя" + +msgid "On-page container" +msgstr "Контейнер страницы" + +msgid "route" +msgstr "маршрут" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Гостевые загрузки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Включите, если хотите позволить загружать изображения незарегистрированным пользователям." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Коды для встраивания (в загрузчике)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Включите эту настройку, если вы хотите показывать коды для встраивания по завершении загрузки." + +msgid "Upload threads" +msgstr "Потоки загрузки" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Количество одновременных (параллельных) загрузок" + +msgid "Redirect on single upload" +msgstr "Переадресация при одиночной загрузке" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Включите, если вы хотите выполнять переадресацию на страницу просмотра, при загрузке одного изображения." + +msgid "Enable duplicate uploads" +msgstr "Разрешить повторные загрузки" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "Включите, если хотите разрешить загрузки одинакового содержимого с одного IP-адреса, в течение 24 часов. Эта настройка не влияет на администраторов." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Включить временные загрузки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Включите, чтобы разрешить загрузки с указанием срока хранения." + +msgid "Auto delete guest uploads" +msgstr "Автоматически удалять гостевые загрузки" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Включите, чтобы автоматически удалять гостевые загрузки через заданный интервал времени." + +msgid "Maximum image size" +msgstr "Максимальный размер изображения" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Изображения, размер которых, больше данного лимита, будут автоматически уменьшены. Чтобы не ограничивать максимальный размер изображения, укажите значение ноль(0)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Данные Exif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Сохранять" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Выберите настройку по-умолчанию для обработки <a %s>данных Exif</a> при загрузке." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Данные Exif (пользовательская настройка)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Включите, чтобы разрешить каждому пользователю задавать способ обработки данных Exif." + +msgid "Maximum upload file size" +msgstr "Максимальный размер файла" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Ограничение сервера - %s. Это ограничение обусловлено %u и %p (значения %f)." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "То же, что и \"%s\" но для гостей." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Путь к изображениям" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Относительно пути к Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Где хранить изображения? Относительно пути к Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Режим хранения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "По датам" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "В одной папке" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Режим \"По датам\" создает структуру вида %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Формат имени файла" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Исходный" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Дополнять исходное имя случайными символами" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Исходный\" попытается сохранить изначальное имя файла, \"Случайный\" создаст случайное имя, а \"ID\" - использует ID изображения в качестве имени файла." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Размер миниатюры" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Миниатюра будет ограничена этим размером." + +msgid "Medium image fixed dimension" +msgstr "Фиксированная сторона среднего" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Изображения среднего размера будут приведены к этой стороне. Например, если вы укажите значение \"ширина\", эта сторона будет зафиксирована, а высота будет рассчитана автоматически." + +msgid "Medium image fixed size" +msgstr "Фиксированный размер среднего" + +msgid "Width or height will be automatically calculated." +msgstr "Ширина или высота будут рассчитаны автоматически." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Водяные знаки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Включите, чтобы поместить логотип или любое другое изображение на все загрузки." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Внимание: Не могу записать в %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Условия добавления водяных знаков для пользователей" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Добавлять водяные знаки к гостевым загрузкам" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Добавлять водяные знаки к пользовательским загрузкам" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Добавлять водяные знаки к администраторским загрузкам" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Условия добавления водяных знаков для файлов" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Включить добавление водяных знаков к изображениям в формате GIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Минимальный размер изображения для добавления водяных знаков" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Водяные знаки не будут добавляться к изображениям, размер которых меньше указанного значения. Чтобы добавлять водяные знаки ко всем изображениям, независимо от размера, укажите значение ноль(0)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Изображение водяного знака" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Для достижения наилучшего результата, используйте простые логотипы с тенью. Вы можете использовать изображения большого размера с небольшим размером файла (рекомендуемый размер файла: не более 16КБ). Изображение должно быть в формате PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Положение водяного знака" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "слева сверху" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "слева по центру" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "слева снизу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "по центру сверху" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "по центру" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "по центру снизу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "справа сверху" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "справа по центру" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "справа снизу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Относительное положение водяного знака. Первым указано положение по горизонтали, вторым по вертикали." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Относительный размер водяного знака" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Размер водяного знака, в процентах, относительно размера загружаемого изображения. Укажите значение от 1 до 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Поля водяного знака" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Поля от границы изображения до водяного знака." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Прозрачность водяного знака" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Прозрачность водяного знака при наложении на изображение. Должно быть в диапазоне от 0 до 100." + +msgid "Dashboard > Settings > Website" +msgstr "Панель управления > Настройки > Сайт" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Категории не будут работать при отключенном обзоре изображений. Чтобы отменить эту настройку перейдите на %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Вы действительно хотите удалить категорию %s? Это действие необратимо." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Внимание: Удаление категории не повлечет за собой удаление изображений." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Изменить категорию" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Истекает" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Вы действительно хотите разблокировать IP-адрес %s? Это действие необратимо." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Пользователям, чьи IP-адреса заблокированы, будет недоступен весь сайт." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Редактировать" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Включить регистрацию" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Включите, чтобы разрешить регистрацию пользователей." + +msgid "Enable user content delete" +msgstr "Разрешить пользователям удаление содержимого" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Включите, чтобы позволить пользователям удалять свое содержимое. Эта настройка не влияет на администраторов." + +msgid "Minimum age required" +msgstr "Минимальный возраст посетителя" + +msgid "Empty" +msgstr "Пусто" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Оставьте поле пустым, если ваш сайт не предполагает возрастного ограничения." + +msgid "Notify on user signup" +msgstr "Уведомлять о новых пользователях" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Включите, чтобы получать email-уведомления о новых пользователях." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Адресация пользователей" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Включите, если вы хотите использовать адреса профилей вида %s/имя_пользователя вместо %s/user/имя_пользователя." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Требовать подтверждение электронной почты" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Включите, чтобы требовать подтверждение адреса электронной почты при регистрации." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Требовать email-адрес при регистрации через социальную сеть" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Включите, если вы хотите, чтобы пользователям, регистрирующимся через социальные сети, необходимо было указывать email-адрес." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Максимальный размер аватара" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Максимально допустимый размер файла для аватара пользователя. (Ограничение сервера: %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Максимальный размер фона профиля" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Максимально допустимый размер файла для фона профиля пользователя. (Ограничение сервера: %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Показывает экран возрастного ограничения перед посещением сайта. Полезно сайтам \"для взрослых\", куда не стоит пускать несовершеннолетних." + +msgid "Enable consent screen" +msgstr "Включить экран возрастного ценза" + +msgid "Consent screen cover image" +msgstr "Обложка экрана возрастного ценза" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Блокировать загрузку изображений по IP, если на основании количества загрузок, система обнаружит подозрение на флуд. Эта настройка не влияет на администраторов." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Уведомить по электронной почте" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "При включении этой настройки, система будет уведомлять о флуд-атаках по почте." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Загрузок в минуту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Загрузок в час" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Загрузок в день" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Загрузок в неделю" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Загрузок в месяц" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Показывать небезопасное содержимое" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Включите, чтобы отображать небезопасное содержимое. Эта настройка не влияет на администраторов и может быть переопределена пользователем." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Размытие небезопасных изображений в списках" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Включите, чтобы применять эффект размытия к небезопасным изображениям." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Показывать баннеры на страницах с небезопасным содержимым." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Включите, если вы хотите показывать баннеры на страницах с небезопасным содержимым." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Показывать небезопасное содержимое в режиме случайного изображения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Элементов на страницу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Сколько изображений отображать на одну страницу." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Режим разбиения на страницы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Бесконечная прокрутка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Нумерованные страницы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Какой способ разбиения на станицы использовать." + +msgid "Listing viewer" +msgstr "Карусель" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Включите, чтобы использовать карусель для просмотра изображений." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Размер миниатюр в списке" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Адаптивный" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Фиксированный" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Оба метода используют фиксированную ширину, но в адаптивном методе, высота вычисляется с сохранением пропорций изображения." + +msgid "Album listing images requirement" +msgstr "Требования к альбомам для карусели" + +msgid "explore" +msgstr "обзор" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Устанавливает минимальное число изображений, необходимое для показа альбомов в обозревателе." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Количество столбцов в списках изображений" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Здесь можно указать количество столбцов для каждого устройства." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Телефон" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Фаблет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Планшет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Ноутбук" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "ПК" + +msgid "theme editing" +msgstr "редактирование темы" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Поместите свои темы в папку %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Стиль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Светлый" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Темный" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Основной цвет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Шестнадцатеричный код цвета" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Используйте это поле, чтобы указать основной цвет темы. Значение должно быть указано в <a href=\"%s\" target=\"_blank\">шестнадцатеричном формате</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Цвет кнопок верхней панели" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Синий" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Зеленый" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Оранжевый" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Красный" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Серый" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Черный" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Белый" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Цвет кнопок на верхней панели, таких как \"Зарегистрироваться\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Включить векторный логотип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Включите векторный логотип для повышения качества изображения на дисплеях с большой плотностью пикселей." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Векторный логотип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Векторный логотип вашего сайта в формате SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Растровый логотип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Растровый логотип вашего сайта. Рекомендуется использовать формат PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Высота логотипа" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Нет значения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Используйте это поле, если необходимо указать высоту логотипа." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Иконка сайта" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Иконка вашего сайта. Ширина и высота данного изображения должны быть одинаковы." + +msgid "Image load max. filesize" +msgstr "Макс. размер файла в просмотре" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "При просмотре изображений большего размера, будет отображаться кнопка загрузки полной версии." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Включить кнопку загрузки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Включите, чтобы показывать кнопку загрузки изображения." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Разрешить нажатие правой кнопкой мыши на изображении" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Включите, если вы хотите разрешить показ меню браузера при нажатии правой кнопки мыши на изображений." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Показывать Exif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Включите, чтобы показывать данные Exif для изображений." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Включить опцию \"поделиться\"" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Включите эту настройку, чтобы показывать кнопки социальных сетей." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Коды для встраивания (в просмотре)" + +msgid "Everybody" +msgstr "Все пользователи" + +msgid "Users only" +msgstr "Только зарегистрированные" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Включите эту настройку, если вы хотите показывать коды для встраивания в просмотре изображений." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Показывать в загрузчике настройку для небезопасного содержимого" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Включите, чтобы дать пользователям возможность указывать безопасность изображения при загрузке." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Дополнительный CSS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Вставьте сюда ваш собственный CSS код. Он будет вставлен с помощью тега <style> перед закрывающим тегом </head>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Дополнительный JS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Вставьте сюда ваш собственный JS код. Он будет вставлен с помощью тега <script> перед закрывающим тегом </head>." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Это поле предназначено для JS-кода. Не используйте в нем %s разметку. Использование разметки в этом поле, приведет к нарушению работы сайта." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Стиль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Целевая страница" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Целевая страница + изображения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Выберите стиль отображения главной страницы. Для получения больших возможностей, Вы можете отредактировать файл app/themes/%s/views/index.php." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Обложка" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Вы действительно хотите удалить данное избражение? Это действие необратимо." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Удалить" + +msgid "Add new cover image" +msgstr "Добавить новую обложку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Векторный логотип вашего сайта в формате SVG (только для домашней страницы)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Растровый логотип вашего сайта (только для домашней страницы). Рекомендуется использовать формат PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Это содержимое будет добавлено в %s тэг на главной странице. Чтобы использовать значение по-умолчанию, оставьте это поле пустым." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Текст" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Цвет кнопки на главной" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Цвет кнопки вызова действия на главной странице." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Контурная кнопка на главной" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Включите, чтобы отображать кнопку на главной странице в виде контура." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Действие кнопки на главной" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Отобразить загрузчик" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Перейти по адресу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL кнопки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Введите абсолютный или относительный адрес" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Относительные адреса, наподобие %r, будут переадресованы на %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML-код кнопки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Этот адрес будет указан в тэге <a> кнопки на главной странице. Чтобы использовать адрес по-умолчанию, оставьте это поле пустым." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "ID пользователей" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Список числовых идентификаторов пользователей (через запятую), изображения которых, будут показываться на главной странице. Оставьте поле пустым или укажите ноль, чтобы показывать все новые изображения." + +msgid "banners" +msgstr "баннеры" + +msgid "Automatic updates check" +msgstr "Автоматическая проверка обновлений" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Если включить данную настройку, то система будет автоматически проверять обновления" + +msgid "Display available updates notification" +msgstr "Показывать уведомление об обновлении" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Включите, чтобы показывать уведомления об обновлении в верхней части экрана." + +msgid "Dump update query" +msgstr "Просмотреть текст запроса" + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URLs" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "Включите этот параметр, если вы хотите использовать SEO %s URL-адреса." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Сжимать код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Включите, чтобы автоматически сжимать CSS и JS код." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Обслуживание" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "При включении, отображает на сайте сообщение о техническом обслуживании. Эта настройка не влияет на администраторов." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Криптографическая соль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Эта соль используется для преобразования цифровых ID в буквенные. Она была создана при установке." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Отчеты об ошибках PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Включите, если вы хотите выводить ошибки, сгенерированные функцией <a %s>error_reporting()</a>. Эта настройка должна быть выключена на общедоступных сайтах." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Уровень отладки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Выкл." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Записывать в журнал" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Выводить ошибки без записи в журнал" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Выводить ошибки с записью в журнал" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Подробнее об уровнях отладки можно узнать в <a %s>документации</a>. Значение по-умолчанию: \"Записывать в журнал\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "Маршрутизация позволяет изменять адреса ресурсов. В качестве имени маршрута можно использовать только цифры, латинские буквы, дефис и нижнее подчеркивание. Посмотрите нашу %s если вы хотите изменить маршрут или добавить новый." + +msgid "Image routing" +msgstr "Маршрутизация изображений" + +#, php-format +msgid "Routing for %s" +msgstr "Маршрутизация для %s" + +msgid "Album routing" +msgstr "Маршрутизация альбомов" + +msgid "Hostname" +msgstr "Имя узла" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Имя узла к которому будут добавлены субдомены." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Эта настройка может быть переопределена %s." + +msgid "Language subdomains" +msgstr "Локальные поддомены" + +msgid "languages" +msgstr "языки" + +msgid "Enable to use %s for %t." +msgstr "Включите, чтобы использовать %s для %t." + +msgid "Username subdomains" +msgstr "Пользовательские поддомены" + +msgid "user profiles" +msgstr "профили пользователя" + +msgid "Custom language strings" +msgstr "Дополнительные строки перевода" + +msgid "language strings" +msgstr "переводе" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Язык по-умолчанию" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Используемый по-умолчанию язык." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Автоматический выбор языка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Включите, чтобы автоматически определять язык пользователя." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Меню выбора языка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Включите, чтобы предоставить пользователям возможность выбирать язык." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Доступные языки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Не отмеченные здесь языки, не будут использоваться на сайте." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Измените эту настройку чтобы включить или отключить HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Измените эту настройку чтобы включить или отключить это хранилище" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Квота" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Активное" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Тип хранилища" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Локальное хранилище используется по-умолчанию или при отсутствии активных внешних хранилищ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Если вам нужна помощь, обратитесь к <a %s>документации</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Изменить" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Отправитель" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Имя отправителя для рассылки сообщений пользователям." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Режим электронной почты" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Как отправлять сообщения? Рекомендуется использовать SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP сервер и порт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP сервер" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Имя пользователя SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Пароль SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Безопасность SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Небезопасный" + +msgid "Decode ID" +msgstr "Декодировать ID" + +msgid "Encode ID" +msgstr "Закодировать ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Отправить тестовое сообщение" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Используйте эту форму для проверки доставки сообщений. Мы рекомендуем Вам использовать %s." + +msgid "Export a user" +msgstr "Экспортировать пользователя" + +msgid "Export user" +msgstr "Экспортировать пользователя" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Это позволит Вам скачать информацию о пользователе в формате JSON." + +msgid "Regenerate external storage stats" +msgstr "Регенерация статистики внешнего хранилища" + +msgid "Storage id" +msgstr "ID хранилища" + +msgid "Regenerate" +msgstr "Регенерировать" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "При этом будет пересчитана сумма всех записей изображений, связанных с целевым внешним хранилищем." + +msgid "Migrate image records from one external storage to another" +msgstr "Перенос записей изображений из одного внешнего хранилища в другое" + +msgid "Source storage id" +msgstr "Идентификатор хранилища источника" + +msgid "Target storage id" +msgstr "Идентификатор целевого хранилища" + +msgid "Migrate" +msgstr "Мигрировать" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Обновляет только базу данных. Вы должны вручную переместить файлы в новое место. Используйте ноль(0) для указания локального хранилища." + +msgid "social networks" +msgstr "социальные сети" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Для этого вам необходимы <a href=\"https://developers.facebook.com/\" target=\"_blank\">инструменты разработчика Facebook</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID Facebook app" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Секретный ключ Facebook app" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Для этого вам необходимы <a href=\"https://apps.twitter.com\" target=\"_blank\">инструменты разработчика Twitter</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Ключ Twitter API" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Секретный ключ Twitter API" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Аккаунт в Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Для этого вам необходимы <a href=\"https://cloud.google.com/console\" target=\"_blank\">инструменты разработчика Google</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "ID клиента Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Секретный ключ Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Для этого вам необходимы <a href=\"http://vk.com/dev\" target=\"_blank\">инструменты разработчика ВКонтакте</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "ID клиента ВКонтакте" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Секретный ключ клиента ВКонтакте" + +#, php-format +msgid "%s spam protection" +msgstr "защита от спама %s" + +msgid "user generated content" +msgstr "загрузках пользователей" + +msgid "Enable this to use %l to block spam on %c." +msgstr "Включите, чтобы использовать %i, для блокирования спама на %c." + +#, php-format +msgid "%s API key" +msgstr "Ключ API %s" + +msgid "user signup" +msgstr "регистрация" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Для этого вам необходим <a href=\"%s\" target=\"_blank\">ключ reCAPTCHA</a>." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Каждая версия reCAPTCHA требует отдельных ключей. Пожалуйста, не забудьте обновить ключи при смене версии." + +#, php-format +msgid "%s site key" +msgstr "%s ключ сайта" + +#, php-format +msgid "%s secret key" +msgstr "%s секретный ключ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "Порог срабатывания reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Через сколько неудачных попыток показывать reCAPTCHA? Укажите ноль(0), чтобы всегда показывать reCAPTCHA." + +#, php-format +msgid "Force %s on contact page" +msgstr "Принудительная %s на странице обратной связи" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Включите, чтобы всегда показывать %s на странице обратной связи." + +msgid "Comments API" +msgstr "API системы комментариев" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API работает с %s." + +msgid "Disqus shortname" +msgstr "Идентификатор Disqus" + +#, php-format +msgid "%s public key" +msgstr "%s публичный ключ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Код для системы комментариев" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook или любая система на ваш выбор. Она будет использована при просмотре изображения." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Код для сбора статистики" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics или система сбора статистики на ваш выбор. Этот код будет добавлен в \"подвал\" темы." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Чтобы получить подробную информацию об API, обратитесь к <a %s>документации</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Ключ API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Используйте этот ключ с <a %s>API v1</a>." + +msgid "Plugin route" +msgstr "Маршрут плагина" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "Включите, чтобы показывать инструкцию по использованию плагина в %u. Ссылка на них будет добавлена в меню %s. Эта настройка не влияет на администраторов." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "Установите собственный адрес для %p. Вам необходимо будет вручную указать в этом адресе %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Соответствие закону Евросоюза о cookies" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Включите, чтобы отображать информационное сообщение об использовании cookies, в соответствии с законом Евросоюза о cookies. Примечание: Вы обязаны включать эту опцию только в том случае случае, если сайт расположен в ЕС и вы используете cookies для отслеживания посетителей." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Сохранить изменения" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Перед тем как продолжить, проверьте правильность заполнения." + +msgid "Play GIF" +msgstr "Воспроизвести GIF" + +msgid "Load full resolution" +msgstr "Загрузить полную версию" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Добавлено к %a в категорию %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Добавлено к %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Загружено в %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Загружено %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Свернуть Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Развернуть Exif" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Поделиться" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID альбома" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "В этом альбоме" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Загружайте и делитесь изображениями." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Начните загружать изображения простым перетаскиванием в любое место окна прямо сейчас. Ограничение на размер изображения %s. После загрузки, Вам будут доступны прямые ссылки, BB-коды и миниатюры." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Начать загрузку" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Зарегистрируйтесь, чтобы получить больше возможностей." + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Управляйте аккаунтом, создавайте альбомы, изменяйте свой профиль и многое другое." + +msgid "Sign in with your account" +msgstr "Войдите в свою учетную запись" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "У вас ещё нет аккаунта? <a href='%s'>Зарегистрируйтесь</a> сейчас!" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Выход из системы" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Успешный выход из системы. До скорых встреч на %s." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "На главную" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Сайт находится в режиме технического обслуживания." + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Мы выполняем запланированные задачи по обслуживанию сайта. Попробуйте зайти позже." + +msgid "This content is password protected." +msgstr "Содержимое защищено паролем" + +msgid "Please enter your password to continue." +msgstr "Пожалуйста, введите пароль и нажмите Enter." + +msgid "Send" +msgstr "Отправить" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Добавьте возможность загружать изображение на ваш сайт, блог или форум установив наш плагин. Он предоставляет возможность загружать изображение путем установки кнопки, которая позволит вашим пользователям напрямую загружать изображения на наш сервис и автоматически предоставит коды для вставки. Плагин включает все возможности, такие как загрузка через перетаскивание, удаленная загрузка, изменение размера изображений и другие." + +msgid "Supported software" +msgstr "Поддерживаемое ПО" + +msgid "supported software" +msgstr "поддерживаемое ПО" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Плагин работает на любом сайте с редактируемым содержимым и для %s, он размещает кнопку рядом с панелью управления редактором, что позволит избежать необходимости внесения дополнительных изменений." + +msgid "Add it to your website" +msgstr "Добавить на сайт" + +msgid "options" +msgstr "настройки" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Вставьте код плагина в HTML-код вашего сайта (желательно в раздел head). Плагин имеет множество %o для лучшей интеграции с вашим сайтом." + +msgid "Basic options" +msgstr "Основные настройки" + +msgid "Color palette" +msgstr "Палитра цветов" + +msgid "Button color scheme" +msgstr "Цветовая схема кнопки" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Коды для встраивания, которые будут автоматически вставлены в редактор" + +msgid "Sibling selector" +msgstr "Селектор элемента" + +msgid "Sibling element selector where to place the button next to" +msgstr "Селектор элемента, рядом с котором будет размещена кнопка" + +msgid "Sibling position" +msgstr "Позиция элемента" + +msgid "After" +msgstr "После" + +msgid "Before" +msgstr "Перед" + +msgid "Position relative to sibling element" +msgstr "Позиция относительно элемента" + +msgid "Advanced options" +msgstr "Дополнительные настройки" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Плагин имеет большое число дополнительных настроек позволяющих осуществить бесшовную интеграцию с вашим проектом. Вы можете задать собственный HTML, CSS, собственную палитру цветов, устанавливать наблюдатели за изменениями и многое другое. Более подробную информацию об этих дополнительных настройках вы можете посмотреть в исходном коде плагина или в %d." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "У вас нет прав на доступ к данной странице или ссылка устарела." + +msgid "Search results" +msgstr "Результаты поиска" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Вы действительно хотите удалить данного пользователя? Это действие необратимо." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Удалить" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Дата регистрации" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP-адрес при регистрации" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Подтвержденный" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Заблокирован" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Ожидает сообщения" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Ожидает подтверждения" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "от %i до %f знаков<br>Буквы, цифры и \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Автоматически удалять загрузки" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Эта настройка по-умолчанию будет примется ко всем загрузкам. Вы можете выбрать другое значение при каждой загрузке." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Сохранять <a %s>данные Exif</a> при загрузке" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Рассылка" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Отправлять мне информацию и новости %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Настройки содержимого" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Показывать небезопасное содержимое (загруженное другими пользователями) в списках" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Язык" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Часовой пояс" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Текущий пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Введите ваш текущий пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Новый пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Подтвердите пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Добавьте пароль, чтобы иметь возможность входить с использованием имени пользователя или адреса электронной почты." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "У этого пользователя не установлен пароль. Добавьте его через эту форму." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Введите ваш пароль" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Подтвердите пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Повторите пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Загрузить изображение" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Удалить" + +msgid "Make my profile and identity totally private" +msgstr "Сделать мой профиль полностью закрытым" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Включите, если вы хотите быть анонимным пользователем" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Это ваше настоящее имя, а не имя пользователя." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.ru" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "О себе" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Расскажите нам немного о себе" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "У пользователя нет связей с другими аккаунтами." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Вы действительно хотите отвязать %s от этого аккаунта?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Этот аккаунт связан с %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Вы действительно хотите отвязать ваш аккаунт %s?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Будет выполнен выход из системы и вы больше не сможете входить через аккаунт %s." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Ваш аккаунт связан с %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "отвязать" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Связать с %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Чувствуйте себя как дома и наслаждайтесь моими изображениями и альбомами." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Кнопка" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Показать мои изображения" + +msgid "Login" +msgstr "Вход" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Уже есть аккаунт? %s сейчас." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "Повторить отправку сообщения для активации аккаунта" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Если вы уже зарегистрировались, возможно Вам необходимо обратиться к %s , чтобы активировать аккаунт." + +#, php-format +msgid "You can also %s." +msgstr "Вы также можете %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "Мне %s лет или больше." + +msgid "terms" +msgstr "правила" + +msgid "privacy policy" +msgstr "политики конфиденциальности" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Я согласен с %terms_link и %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Загрузить фон профиля" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Изменить фон" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Фон профиля будет удален. Это действие необратимо. Вы действительно хотите удалить фон профиля?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Удалить фон" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Подписчик" +msgstr[1] "Подписчика" +msgstr[2] "Подписчиков" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Подписаться" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Вам запрещено использовать этот сайт." + +msgid "Plugin" +msgstr "Плагин" + +#, php-format +msgid "Page %s" +msgstr "Страница %s" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Общие вопросы/комментарии" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA жалоба" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Неверное сообщение" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Неверная тема" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Ошибка электронной почты" + +msgid "Message sent" +msgstr "Сообщение отправлено" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Сообщение успешно отправлено. Мы ответим на него в кратчайшие сроки." + +msgid "If you want to send a message fill the form below." +msgstr "Заполните форму, если Вы хотите отправить сообщение." + +msgid "Your name" +msgstr "Ваше имя" + +msgid "Subject" +msgstr "Тема" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Если вы продолжите, все сделаные вами изменения будут потеряны." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Изменения успешно сохранены." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Вернуться к форме" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "все равно продолжить" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Сохранение" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Отправка" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Подтвердите действие" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "информация" + diff --git a/app/languages/sk.po b/app/languages/sk.po new file mode 100644 index 0000000..7aa3b9e --- /dev/null +++ b/app/languages/sk.po @@ -0,0 +1,4038 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2015-05-28 17:49+0000\n" +"PO-Revision-Date: 2015-05-28 17:49+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ../../../app/install/installer.php:911 +#: ../../../app/install/installer.php:920 +#: ../../../app/install/installer.php:923 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:551 +#: ../../../app/routes/route.settings.php:178 +#: ../../../app/routes/route.signup.php:97 +#: ../../../app/themes/Peafowl/pages/contact.php:31 +msgid "Invalid email" +msgstr "Neplatný e-mail" + +#: ../../../app/install/installer.php:914 +#: ../../../app/routes/route.json.php:546 +#: ../../../app/routes/route.settings.php:174 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Neplatné užívateľské meno" + +#: ../../../app/install/installer.php:917 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:556 +#: ../../../app/routes/route.settings.php:308 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Neplatné heslo" + +#: ../../../app/install/installer.php:926 +#: ../../../app/routes/route.dashboard.php:426 +msgid "Invalid website mode" +msgstr "Neplatný režim stránky" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1519 +msgid "From email address" +msgstr "Z e-mailovej adresy" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1522 +msgid "Sender email for emails sent to users." +msgstr "E-mail odosielateľa uvedený v e-mailoch odoslaných užívateľom." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1525 +msgid "Incoming email address" +msgstr "Príchodzia e-mailová adresa" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1528 +msgid "Recipient for contact form and system alerts." +msgstr "Príjemca pre kontaktovanie v prípade systémových varovaní." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:302 +msgid "Website mode" +msgstr "Mód webu" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:309 +msgid "You can switch the website mode anytime." +msgstr "Vždy môžeš zmeniť mód webstránky." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Community" +msgstr "Skupina" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Personal" +msgstr "Súkromné" + +#: ../../../app/lib/classes/class.album.php:94 +msgid "Untitled" +msgstr "Nepomenované" + +#: ../../../app/lib/classes/class.album.php:318 +#: ../../../app/lib/classes/class.user.php:105 +#, php-format +msgid "%s's images" +msgstr "%s obrázky" + +#: ../../../app/lib/classes/class.image.php:497 +#: ../../../app/lib/classes/class.image.php:571 +msgid "Duplicated upload" +msgstr "Duplicitný záznam" + +#: ../../../app/lib/classes/class.image.php:720 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Private upload" +msgstr "Súkromné nahrávánie" + +#: ../../../app/lib/classes/class.image.php:979 +msgid "view" +msgid_plural "views" +msgstr[0] "zobrazenie" +msgstr[1] "zobrazenia" +msgstr[2] "zobrazenia" +msgstr[3] "zobrazenia" + +#: ../../../app/lib/classes/class.listing.php:238 +#: ../../../app/routes/route.album.php:169 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:87 +#: ../../../app/lib/chevereto.js:1908 ../../../app/lib/chevereto.min.js:92 +msgid "image" +msgid_plural "images" +msgstr[0] "obrázok" +msgstr[1] "obrázkov" +msgstr[2] "obrázkov" +msgstr[3] "obrázky" + +#: ../../../app/lib/classes/class.storage.php:408 +#: ../../../app/lib/classes/class.storage.php:468 +msgid "Can't verify storage credentials." +msgstr "Nemôžeme overiť vaše prihlasovacie údaje." + +#: ../../../app/lib/classes/class.storage.php:449 +#: ../../../app/lib/chevereto.js:2762 ../../../app/lib/chevereto.min.js:136 +#, python-format, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Veľkosť úložiska nemôže byť menšia ako tá, ktorú používáte teraz (%s)." + +#: ../../../app/lib/classes/class.storage.php:715 +msgid "Unlimited" +msgstr "Neobmedzené" + +#: ../../../app/lib/classes/class.storage.php:715 +msgid "used" +msgstr "využívané" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "rok" +msgstr[1] "rokov" +msgstr[2] "rokov" +msgstr[3] "roky" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mesiac" +msgstr[1] "mesiacov" +msgstr[2] "mesiacov" +msgstr[3] "mesiacov" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "týždeň" +msgstr[1] "týždňov" +msgstr[2] "týždňov" +msgstr[3] "týždňov" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "deň" +msgstr[1] "dní" +msgstr[2] "dní" +msgstr[3] "dní" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hodina" +msgstr[1] "hodín" +msgstr[2] "hodín" +msgstr[3] "hodín" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minúta" +msgstr[1] "minút" +msgstr[2] "minút" +msgstr[3] "minút" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekunda" +msgstr[1] "sekúnd" +msgstr[2] "sekúnd" +msgstr[3] "sekúnd" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "pred %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "pred pár okamžikmi" + +#: ../../../app/lib/functions.php:197 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Databázový systém je zastaralý. Potrebujete spustiť <a href=\"%s\">aktualizačný</a> nástroj." + +#: ../../../app/lib/functions.php:200 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Na stránke prebieha údržba. Na ukončenie údržby potrebujete ísť do <a href=\"%s\">Administrácia > Nastavenia</a>." + +#: ../../../app/lib/functions.php:205 +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Dashboard > Settings > Email</a> to fix this." +msgstr "Nezmenil ste si nastavenie predvoleného e-mailu. Choďte do <a href='%s'>Administrácia > Nastavenia > E-mail</a> pre zmenu." + +#: ../../../app/lib/functions.render.php:274 +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this cookie policy." +msgstr "Používame vlastné a treťostranné cookies na vylepšenie prezerania a našich služieb. Ak budete pokračovať používať našu stránku, rozumiete používaniu týchto cookies." + +#: ../../../app/loader.php:177 +msgid "You have been forbidden to use this website." +msgstr "Bol vám zamedzený prístup na stránku." + +#: ../../../app/loader.php:272 +#: ../../../app/themes/Peafowl/views/settings.php:399 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Prezri si a objav všetky moje zdielané obrázky a albumy." + +#: ../../../app/loader.php:275 +#: ../../../app/themes/Peafowl/views/settings.php:405 +msgid "View all my images" +msgstr "Zobraz všetky moje obrázky" + +#: ../../../app/loader.php:375 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Táto stránka neexistuje" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:257 +msgid "Forgot password?" +msgstr "Zabudnuté heslo?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Resetovať heslo" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Znovu zaslať aktivačné informácie" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Pridajte vašu e-mailovú adresu." + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-mail zmenený" + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:136 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "Kód reCAPTCHA nebol opísaný správne." + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Neplatné uživateľské meno alebo e-mail." + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Užívateľ nemá žiadnu e-mailovú adresu." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 +#: ../../../app/routes/route.json.php:533 +#: ../../../app/routes/route.json.php:595 +#: ../../../app/routes/route.json.php:644 +#: ../../../app/routes/route.json.php:691 +#: ../../../app/themes/Peafowl/pages/contact.php:17 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +msgid "Request denied" +msgstr "Požiadavka zamietnutá" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Pre použitie tejto funkcie si musíte svoj účet najprv aktivovať." + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Účet bol už aktivovaný" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Skúste to prosím neskôr. E-mail by mal doraziť do 15 minút." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Resetujte si svoje heslo na %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:268 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Je vyžadovaný súhlas na %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Vitajte na %s" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:312 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:271 +#: ../../../app/themes/Peafowl/views/settings.php:288 +#: ../../../app/lib/chevereto.js:1290 ../../../app/lib/chevereto.min.js:55 +msgid "Passwords don't match" +msgstr "Heslá sa nezhodujú" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:571 +#: ../../../app/routes/route.settings.php:228 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "E-mailová adresa už v systéme existuje" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../app/themes/Peafowl/pages/contact.php:146 +#: ../../../lib/Peafowl/peafowl.js:195 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Aby ste mohli pokračovať, skontrolujte chyby vo formulári." + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:706 +#: ../../../app/routes/route.dashboard.php:735 +#: ../../../app/routes/route.dashboard.php:764 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.user.php:139 +#: ../../../app/routes/route.user.php:177 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Najnovšie" + +#: ../../../app/routes/route.album.php:88 +#: ../../../app/routes/route.category.php:56 +#: ../../../app/routes/route.dashboard.php:714 +#: ../../../app/routes/route.dashboard.php:743 +#: ../../../app/routes/route.dashboard.php:772 +#: ../../../app/routes/route.explore.php:42 +#: ../../../app/routes/route.user.php:147 +#: ../../../app/routes/route.user.php:183 +msgid "Oldest" +msgstr "Najstaršie" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:722 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.user.php:155 +msgid "Most viewed" +msgstr "Najsledovanejšie" + +#: ../../../app/routes/route.album.php:107 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:91 +msgid "Share" +msgstr "Zdielať" + +#: ../../../app/routes/route.album.php:116 +#: ../../../app/routes/route.image.php:132 +msgid "Full info" +msgstr "Kompletné informácie" + +#: ../../../app/routes/route.album.php:151 +msgid "%a album hosted in %w" +msgstr "%a album hosťovaný na %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Štatistiky" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:83 +#: ../../../app/routes/route.user.php:199 +#: ../../../app/themes/Peafowl/views/settings.php:73 +#: ../../../app/themes/Peafowl/views/user.php:125 +msgid "Images" +msgstr "Obrázky" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:90 +#: ../../../app/routes/route.user.php:205 +#: ../../../app/themes/Peafowl/header.php:368 +#: ../../../app/themes/Peafowl/views/settings.php:77 +#: ../../../app/themes/Peafowl/views/user.php:125 +msgid "Albums" +msgstr "Albumy" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:222 +#: ../../../app/routes/route.search.php:97 +msgid "Users" +msgstr "Užívatelia" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:483 +#: ../../../app/themes/Peafowl/header.php:369 +msgid "Settings" +msgstr "Nastavenia" + +#: ../../../app/routes/route.dashboard.php:153 +msgid "Chevereto version" +msgstr "Verzia chevereta" + +#: ../../../app/routes/route.dashboard.php:154 +msgid "update" +msgstr "aktualizácia" + +#: ../../../app/routes/route.dashboard.php:154 +msgid "check for updates" +msgstr "Skontrolovať aktualizácie" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "PHP version" +msgstr "PHP verzia" + +#: ../../../app/routes/route.dashboard.php:165 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "MySQL version" +msgstr "MySQL verzia" + +#: ../../../app/routes/route.dashboard.php:173 +msgid "MySQL server info" +msgstr "Informácie o MySQL servere" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "GD Library" +msgstr "GDL knihovňa" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "File uploads" +msgstr "Nahraných súborov" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:374 +#: ../../../app/themes/Peafowl/views/dashboard.php:383 +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +#: ../../../app/themes/Peafowl/views/dashboard.php:474 +#: ../../../app/themes/Peafowl/views/dashboard.php:484 +#: ../../../app/themes/Peafowl/views/dashboard.php:494 +#: ../../../app/themes/Peafowl/views/dashboard.php:646 +#: ../../../app/themes/Peafowl/views/dashboard.php:659 +#: ../../../app/themes/Peafowl/views/dashboard.php:681 +#: ../../../app/themes/Peafowl/views/dashboard.php:690 +#: ../../../app/themes/Peafowl/views/dashboard.php:719 +#: ../../../app/themes/Peafowl/views/dashboard.php:729 +#: ../../../app/themes/Peafowl/views/dashboard.php:768 +#: ../../../app/themes/Peafowl/views/dashboard.php:777 +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +#: ../../../app/themes/Peafowl/views/dashboard.php:796 +#: ../../../app/themes/Peafowl/views/dashboard.php:942 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +#: ../../../app/themes/Peafowl/views/dashboard.php:1041 +#: ../../../app/themes/Peafowl/views/dashboard.php:1051 +#: ../../../app/themes/Peafowl/views/dashboard.php:1063 +#: ../../../app/themes/Peafowl/views/dashboard.php:1170 +#: ../../../app/themes/Peafowl/views/dashboard.php:1331 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1350 +#: ../../../app/themes/Peafowl/views/dashboard.php:1386 +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +#: ../../../app/themes/Peafowl/views/dashboard.php:1586 +#: ../../../app/themes/Peafowl/views/dashboard.php:1612 +#: ../../../app/themes/Peafowl/views/dashboard.php:1645 +#: ../../../app/themes/Peafowl/views/dashboard.php:1671 +#: ../../../app/themes/Peafowl/views/dashboard.php:1697 +#: ../../../app/themes/Peafowl/views/dashboard.php:1716 +#: ../../../app/themes/Peafowl/views/dashboard.php:1761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1783 +msgid "Enabled" +msgstr "Zapnuté" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:374 +#: ../../../app/themes/Peafowl/views/dashboard.php:383 +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +#: ../../../app/themes/Peafowl/views/dashboard.php:474 +#: ../../../app/themes/Peafowl/views/dashboard.php:484 +#: ../../../app/themes/Peafowl/views/dashboard.php:494 +#: ../../../app/themes/Peafowl/views/dashboard.php:646 +#: ../../../app/themes/Peafowl/views/dashboard.php:659 +#: ../../../app/themes/Peafowl/views/dashboard.php:681 +#: ../../../app/themes/Peafowl/views/dashboard.php:690 +#: ../../../app/themes/Peafowl/views/dashboard.php:719 +#: ../../../app/themes/Peafowl/views/dashboard.php:729 +#: ../../../app/themes/Peafowl/views/dashboard.php:768 +#: ../../../app/themes/Peafowl/views/dashboard.php:777 +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +#: ../../../app/themes/Peafowl/views/dashboard.php:796 +#: ../../../app/themes/Peafowl/views/dashboard.php:942 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +#: ../../../app/themes/Peafowl/views/dashboard.php:1041 +#: ../../../app/themes/Peafowl/views/dashboard.php:1051 +#: ../../../app/themes/Peafowl/views/dashboard.php:1063 +#: ../../../app/themes/Peafowl/views/dashboard.php:1170 +#: ../../../app/themes/Peafowl/views/dashboard.php:1331 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1350 +#: ../../../app/themes/Peafowl/views/dashboard.php:1386 +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +#: ../../../app/themes/Peafowl/views/dashboard.php:1586 +#: ../../../app/themes/Peafowl/views/dashboard.php:1612 +#: ../../../app/themes/Peafowl/views/dashboard.php:1645 +#: ../../../app/themes/Peafowl/views/dashboard.php:1671 +#: ../../../app/themes/Peafowl/views/dashboard.php:1697 +#: ../../../app/themes/Peafowl/views/dashboard.php:1716 +#: ../../../app/themes/Peafowl/views/dashboard.php:1761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1783 +msgid "Disabled" +msgstr "Vypnuté" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "Max. upload size" +msgstr "Max. veľkosť nahrávania" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "Max. post size" +msgstr "Max. veľkosť zasielania" + +#: ../../../app/routes/route.dashboard.php:193 +msgid "Max. execution time" +msgstr "Max. čas požiadavky" + +#: ../../../app/routes/route.dashboard.php:194 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekúnd" +msgstr[2] "%d sekúnd" +msgstr[3] "%d sekúnd" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Memory limit" +msgstr "Limit pamäte" + +#: ../../../app/routes/route.dashboard.php:217 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Website" +msgstr "Webová stránka" + +#: ../../../app/routes/route.dashboard.php:218 +msgid "Content" +msgstr "Obsah" + +#: ../../../app/routes/route.dashboard.php:219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1235 +msgid "Listings" +msgstr "Výpis" + +#: ../../../app/routes/route.dashboard.php:220 +msgid "Image upload" +msgstr "Nahrávánie obrázkov" + +#: ../../../app/routes/route.dashboard.php:221 +msgid "Categories" +msgstr "Kategórie" + +#: ../../../app/routes/route.dashboard.php:223 +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "Flood protection" +msgstr "Ochrana proti zahlteniu" + +#: ../../../app/routes/route.dashboard.php:224 +#: ../../../app/themes/Peafowl/views/dashboard.php:864 +msgid "Theme" +msgstr "Téma" + +#: ../../../app/routes/route.dashboard.php:225 +#: ../../../app/routes/route.settings.php:62 +#: ../../../app/themes/Peafowl/views/dashboard.php:669 +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +msgid "Homepage" +msgstr "Domovská stránka" + +#: ../../../app/routes/route.dashboard.php:226 +msgid "Banners" +msgstr "Banery" + +#: ../../../app/routes/route.dashboard.php:227 +msgid "System" +msgstr "Systém" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Languages" +msgstr "Jazyky" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "External storage" +msgstr "Externé úložisko" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-mail" + +#: ../../../app/routes/route.dashboard.php:231 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sociálne siete" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "External services" +msgstr "Externé služby" + +#: ../../../app/routes/route.dashboard.php:233 +msgid "IP bans" +msgstr "IP bany" + +#: ../../../app/routes/route.dashboard.php:235 +msgid "Additional settings" +msgstr "Ďalšie nastavenia" + +#: ../../../app/routes/route.dashboard.php:261 +msgid "Local" +msgstr "Miestne" + +#: ../../../app/routes/route.dashboard.php:265 +msgid "External" +msgstr "Externé" + +#: ../../../app/routes/route.dashboard.php:270 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Všetky" + +#: ../../../app/routes/route.dashboard.php:275 +#: ../../../app/routes/route.image.php:147 +#: ../../../app/themes/Peafowl/views/dashboard.php:1469 +msgid "search content" +msgstr "vyhľadať obsah" + +#: ../../../app/routes/route.dashboard.php:326 +msgid "Invalid website name" +msgstr "Neplatné meno webovej stránky" + +#: ../../../app/routes/route.dashboard.php:331 +msgid "Invalid language" +msgstr "Neplatný jazyk" + +#: ../../../app/routes/route.dashboard.php:336 +msgid "Invalid timezone" +msgstr "Neplatná časová zóna" + +#: ../../../app/routes/route.dashboard.php:341 +#: ../../../app/routes/route.dashboard.php:376 +#: ../../../app/routes/route.dashboard.php:501 +#: ../../../app/routes/route.dashboard.php:648 +msgid "Invalid value" +msgstr "Neplatná hodnota" + +#: ../../../app/routes/route.dashboard.php:346 +msgid "Invalid upload storage mode" +msgstr "Neplatný spôsob nahrávania do úložiska" + +#: ../../../app/routes/route.dashboard.php:351 +msgid "Invalid upload filenaming" +msgstr "Neplatné pomenovanie nahrávaných súborov" + +#: ../../../app/routes/route.dashboard.php:356 +msgid "Invalid thumb width" +msgstr "Nesprávna šířka miniatúry" + +#: ../../../app/routes/route.dashboard.php:361 +msgid "Invalid thumb height" +msgstr "Nesprávna výška miniatúry" + +#: ../../../app/routes/route.dashboard.php:366 +msgid "Invalid medium width" +msgstr "Nesprávna šírka strednej zmenšeniny" + +#: ../../../app/routes/route.dashboard.php:371 +msgid "Invalid theme" +msgstr "Nesprávna téma" + +#: ../../../app/routes/route.dashboard.php:381 +msgid "Invalid theme tone" +msgstr "Neplatný tón témy" + +#: ../../../app/routes/route.dashboard.php:386 +msgid "Invalid theme main color" +msgstr "Neplatná základná farba témy" + +#: ../../../app/routes/route.dashboard.php:391 +msgid "Invalid theme top bar color" +msgstr "Neplatná farba horného menu" + +#: ../../../app/routes/route.dashboard.php:396 +msgid "Invalid theme top bar button color" +msgstr "Neplatná farba tlačidla v hornom menu" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Invalid theme image listing size" +msgstr "Neplatná veľkosť náhľadového obrázku témy" + +#: ../../../app/routes/route.dashboard.php:406 +msgid "Invalid user id" +msgstr "Neplatné ID užívateľa" + +#: ../../../app/routes/route.dashboard.php:411 +msgid "Invalid email mode" +msgstr "Nesprávny e-mailový mód" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Invalid SMTP port" +msgstr "Nesprávny SMTP port" + +#: ../../../app/routes/route.dashboard.php:421 +msgid "Invalid SMTP security" +msgstr "Neplatné zabezpečenie SMTP" + +#: ../../../app/routes/route.dashboard.php:431 +#: ../../../app/routes/route.dashboard.php:545 +msgid "Invalid personal mode user ID" +msgstr "Neplatné ID užívateľa v súkromnom móde" + +#: ../../../app/routes/route.dashboard.php:436 +msgid "Invalid or reserved route" +msgstr "Neplatná alebo rezervovaná cesta" + +#: ../../../app/routes/route.dashboard.php:441 +msgid "Invalid website privacy mode" +msgstr "Neplatný režim súkromia stránky" + +#: ../../../app/routes/route.dashboard.php:446 +msgid "Invalid website content privacy mode" +msgstr "Neplatný režim bezpečnosti stránky" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Invalid homepage style" +msgstr "Neplatný štýl domovskej stránky" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Invalid homepage call to action button color" +msgstr "Neplatná farba tlačidla akcie domovskej stránky" + +#: ../../../app/routes/route.dashboard.php:461 +msgid "Invalid homepage call to action functionality" +msgstr "Neplatná funkcia tlačidla akcie domovskej stránky" + +#: ../../../app/routes/route.dashboard.php:477 +msgid "Invalid upload image path" +msgstr "Neplatná cesta nahrávaného obrázka" + +#: ../../../app/routes/route.dashboard.php:490 +msgid "Invalid call to action URL" +msgstr "Nesprávna URL akcie" + +#: ../../../app/routes/route.dashboard.php:504 +#, php-format +msgid "Max. allowed %s" +msgstr "Max. povolené %s" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid SMTP server" +msgstr "Nesprávny SMTP server" + +#: ../../../app/routes/route.dashboard.php:568 +msgid "Invalid SMTP username" +msgstr "Nesprávne SMTP užívateľské meno" + +#: ../../../app/routes/route.dashboard.php:630 +msgid "Invalid URL" +msgstr "Neplatná URL" + +#: ../../../app/routes/route.dashboard.php:756 +msgid "Top users" +msgstr "Top užívatelia" + +#: ../../../app/routes/route.dashboard.php:818 +#: ../../../app/themes/Peafowl/header.php:371 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Administrácia" + +#: ../../../app/routes/route.explore.php:81 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:280 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Preskúmať" + +#: ../../../app/routes/route.image.php:118 +#: ../../../app/themes/Peafowl/header.php:385 +msgid "About" +msgstr "O ..." + +#: ../../../app/routes/route.image.php:125 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:85 +msgid "Embed codes" +msgstr "Kódy na vloženie" + +#: ../../../app/routes/route.image.php:142 +msgid "Image ID" +msgstr "ID obrázka" + +#: ../../../app/routes/route.image.php:146 +msgid "Uploader IP" +msgstr "IP adresa autora" + +#: ../../../app/routes/route.image.php:147 +msgid "Ban IP" +msgstr "IP bany" + +#: ../../../app/routes/route.image.php:147 +msgid "IP already banned" +msgstr "IP je už banovaná" + +#: ../../../app/routes/route.image.php:150 +msgid "Upload date" +msgstr "Dátum nahrávania" + +#: ../../../app/routes/route.image.php:175 +#, php-format +msgid "%s images" +msgstr "%s obrázkov" + +#: ../../../app/routes/route.image.php:183 +msgid "Image %i in %a album" +msgstr "Obrázok %i v %a albume" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %c category" +msgstr "Obrázok %i v %c kategórii" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i hosted in %w" +msgstr "Obrázok %i hosťovaný na %w" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:232 +#: ../../../app/routes/route.json.php:718 +#: ../../../app/routes/route.json.php:782 +#: ../../../app/routes/route.json.php:883 +#: ../../../app/routes/route.json.php:1026 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Vyžadované prihlásenie" + +#: ../../../app/routes/route.json.php:471 +#: ../../../app/routes/route.json.php:662 +msgid "IP address already banned" +msgstr "IP adresa je už banovaná" + +#: ../../../app/routes/route.json.php:540 +#: ../../../app/routes/route.json.php:602 +msgid "Missing values" +msgstr "Chýbajú hodnoty" + +#: ../../../app/routes/route.json.php:561 +msgid "Invalid role" +msgstr "Neplatná úloha" + +#: ../../../app/routes/route.json.php:566 +msgid "Username already being used" +msgstr "Užívateľské meno je obsadené" + +#: ../../../app/routes/route.json.php:1063 +#, php-format +msgid "%s has been disconnected." +msgstr "%s bol odpojený." + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Nesprávna kombinácia prihlasovacieho mena alebo e-mailu a hesla" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Prihlásiť" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Odhlásené" + +#: ../../../app/routes/route.search.php:118 +#, php-format +msgid "Image search results for %s" +msgstr "Výsledky vyhľadávania obrázku pre %s" + +#: ../../../app/routes/route.search.php:121 +#, php-format +msgid "Album search results for %s" +msgstr "Výsledky vyhľadávania albumu pre %s" + +#: ../../../app/routes/route.search.php:124 +#, php-format +msgid "User search results for %s" +msgstr "Výsledky vyhľadávania užívateľa pre %s" + +#: ../../../app/routes/route.search.php:129 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:270 +msgid "Search" +msgstr "Hľadať" + +#: ../../../app/routes/route.settings.php:58 +msgid "Account" +msgstr "Účet" + +#: ../../../app/routes/route.settings.php:59 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:60 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:280 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Heslo" + +#: ../../../app/routes/route.settings.php:61 +msgid "Linked accounts" +msgstr "Prepojené účty" + +#: ../../../app/routes/route.settings.php:254 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "E-mail s inštrukciami aktivácie bol odoslaný na %s" + +#: ../../../app/routes/route.settings.php:287 +#: ../../../app/themes/Peafowl/pages/contact.php:22 +msgid "Invalid name" +msgstr "Neplatné meno" + +#: ../../../app/routes/route.settings.php:290 +msgid "Invalid website" +msgstr "Neplatná webová stránka" + +#: ../../../app/routes/route.settings.php:298 +msgid "Wrong password" +msgstr "Neplatné heslo" + +#: ../../../app/routes/route.settings.php:301 +msgid "Use a new password" +msgstr "Použijte nové heslo" + +#: ../../../app/routes/route.settings.php:401 +#: ../../../app/themes/Peafowl/views/dashboard.php:1819 +#: ../../../app/themes/Peafowl/views/settings.php:435 +msgid "Changes have been saved." +msgstr "Zmeny boly uložené." + +#: ../../../app/routes/route.settings.php:420 +msgid "Password has been changed" +msgstr "Heslo bolo zmenené" + +#: ../../../app/routes/route.settings.php:425 +msgid "Password has been created." +msgstr "Heslo bolo vytvorené." + +#: ../../../app/routes/route.settings.php:440 +msgid "Wrong Username/Email values" +msgstr "Nesprávne hodnoty prihlasovacieho mena alebo e-mailu" + +#: ../../../app/routes/route.settings.php:483 +#, php-format +msgid "Settings for %s" +msgstr "Nastavenia pre %s" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Vytvoriť účet" + +#: ../../../app/routes/route.user.php:274 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albumy na %w" + +#: ../../../app/routes/route.user.php:279 +msgid "%n (%u) on %w" +msgstr "%n (%u) na %w" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Images" +msgstr "%s Obrázky" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Albums" +msgstr "%s Albumy" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Zavrieť" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Pokročilé vyhľadávanie" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:290 +#: ../../../app/themes/Peafowl/views/dashboard.php:417 +msgid "Random" +msgstr "Náhodne" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Oznamy (%s)" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Upload" +msgstr "Nahrať" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Prihlásiť sa s iným účtom" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:32 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:1796 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:312 +#: ../../../app/themes/Peafowl/views/settings.php:421 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../lib/Peafowl/peafowl.js:483 ../../../lib/Peafowl/peafowl.js:2224 +#: ../../../lib/Peafowl/peafowl.min.js:30 +#: ../../../lib/Peafowl/peafowl.min.js:125 +msgid "or" +msgstr "alebo" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Užívateľské meno alebo e-mailová adresa" + +#: ../../../app/themes/Peafowl/header.php:294 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "Zostať prihlásený/a" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Nemáte účet? <a href='%s'>Registrujte sa</a>." + +#: ../../../app/themes/Peafowl/header.php:328 +msgid "Sign up with another account" +msgstr "Zaregistrovať sa iným účtom" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/pages/contact.php:106 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:149 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +msgid "Email address" +msgstr "E-mailová adresa" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:137 +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Užívateľské meno" + +#: ../../../app/themes/Peafowl/header.php:341 +#: ../../../app/themes/Peafowl/views/signup.php:65 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "Registráciou vyjadrujete súhlas s našimi <a href=\"%s\">Podmienkami používania</a>" + +#: ../../../app/themes/Peafowl/header.php:367 +msgid "My Profile" +msgstr "Môj profil" + +#: ../../../app/themes/Peafowl/header.php:373 +msgid "Sign out" +msgstr "Odhlásiť" + +#: ../../../app/themes/Peafowl/header.php:389 +msgid "Terms of service" +msgstr "Podmienky používania" + +#: ../../../app/themes/Peafowl/header.php:390 +msgid "Privacy" +msgstr "Súkromie" + +#: ../../../app/themes/Peafowl/header.php:391 +#: ../../../app/themes/Peafowl/pages/contact.php:4 +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Contact" +msgstr "Kontakt" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Zaznamenali sme pokus o zmenu e-mailu vašeho <a href=\"%u\">%n</a> účtu na %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Pre dokončenie musíte <a href=\"%s\">aktivovať váš e-mail.</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternatívne môžete skopírovať a vložiť URL adresu priamo do adresného riadku vašeho prehliadača: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Ak ste žiadosť o zmenu neodosielali, stačí keď budete túto správu ignorovať." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Táto požiadavka bola vytvorená z IP adresy: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Obdržali sme žiadosť o registráciu %n účtu na %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Pre dokončenie musíte <a href=\"%s\">aktivovať váš účet</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Obdržali sme žiadosť o reset hesla k vašemu <a href=\"%u\">%n</a> účtu." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Pre resetovanie hesla <a href=\"%s\">kliknite na tento odkaz</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Ahoj %n, vitaj na %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Teraz keď je váš účet konečne pripravený k používaniu, môžete si naplno užívať nahrávanie obrázkov, vytváranie albumov, nastavovať ich súkromie a veľa ďalších vlastností, ktoré určite skoro objavíte!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Mimochodom, tu sa nachádza vaša výnimočná profilová stránka: <a href=\"%u\">%n</a>. Vstúpte a prenstavte si ju podľa prianí!." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Ďakujeme, že ste sa k nám pridali" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Tento e-mail bol odoslaný od %w %u" + +#: ../../../app/themes/Peafowl/pages/contact.php:10 +msgid "General questions/comments" +msgstr "Základné dotazy a komentáre" + +#: ../../../app/themes/Peafowl/pages/contact.php:11 +msgid "DMCA complaint" +msgstr "Nahlásiť porušenie autorského zákona" + +#: ../../../app/themes/Peafowl/pages/contact.php:25 +msgid "Invalid message" +msgstr "Neplatná správa" + +#: ../../../app/themes/Peafowl/pages/contact.php:28 +msgid "Invalid subject" +msgstr "Neplatný predmet" + +#: ../../../app/themes/Peafowl/pages/contact.php:36 +msgid "Invalid reCAPTCHA" +msgstr "Nesprávne opísaný kód reCAPTCHA" + +#: ../../../app/themes/Peafowl/pages/contact.php:81 +msgid "Mail error" +msgstr "Chyba e-mailu" + +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Message sent" +msgstr "Správa odoslaná" + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "We will be in touch soon." +msgstr "Čoskoro dovidenia." + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "If you want to send a message fill the form below." +msgstr "Ak chcete odoslať správu, vyplňte prosím formulár nižšie." + +#: ../../../app/themes/Peafowl/pages/contact.php:101 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:559 +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +#: ../../../app/themes/Peafowl/views/settings.php:322 +msgid "Name" +msgstr "Meno" + +#: ../../../app/themes/Peafowl/pages/contact.php:102 +msgid "Your name" +msgstr "Vaše meno" + +#: ../../../app/themes/Peafowl/pages/contact.php:107 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:150 +msgid "Your email address" +msgstr "Vaša e-mailová adresa" + +#: ../../../app/themes/Peafowl/pages/contact.php:111 +msgid "Subject" +msgstr "Predmet" + +#: ../../../app/themes/Peafowl/pages/contact.php:125 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +msgid "Message" +msgstr "Správa" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +msgid "Send message" +msgstr "Odoslať správu" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +#: ../../../app/themes/Peafowl/views/dashboard.php:1796 +#: ../../../app/themes/Peafowl/views/settings.php:421 +#: ../../../lib/Peafowl/peafowl.js:2225 +#: ../../../lib/Peafowl/peafowl.min.js:125 +msgid "cancel" +msgstr "zrušiť" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop images here to upload" +msgstr "Obrázky potiahnite sem." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Zvoľte obrázky na nahratie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:15 +msgid "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "Obrázky môžete tiež <a data-trigger=\"anywhere-upload-input\">vybrať z vašeho zariadenia</a> alebo <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">zadať internetovú adresu URL</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:16 +msgid "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." +msgstr "Môžete sa tiež <a data-trigger=\"anywhere-upload-input-camera\">odfotiť</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:20 +msgid "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" +msgstr "Nahrávam <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">obrázkov</span>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:20 +msgid "complete" +msgstr "hotovo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:21 +msgid "The queue is being uploaded. It will take just a few seconds to complete." +msgstr "Obrázky sa práve nahrávajú. Bude to trvať iba pár sekúnd." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:25 +msgid "Upload complete" +msgstr "Nahrávanie dokončené" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +#, php-format +msgid "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." +msgstr "Obsah bol pridaný do <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">verejného zoznamu</a>. Môžete <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">vytvoriť album</a> alebo <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">presunúť <span data-text=\"queue-objects\">obrázky</span></a> do iného albumu." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:28 +msgid "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." +msgstr "Môžete si tiež <a href=\"%s\">vytvoriť účet</a> alebo sa <a href=\"%l\">prihlásiť</a>. Pomocou tohoto si budete môcť uchovávať a spravovať vaše budúce nahrané obrázky pod svojim účtom." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:33 +msgid "No <span data-text=\"queue-objects\">images</span> have been uploaded" +msgstr "Žiadne <span data-text=\"queue-objects\">obrázky</span> neboli nahrané" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:34 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Bohužiaľ sa vyskytli nejaké chyby a server nemohol dokončiť vaše požiadavky." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:54 +msgid "Select category" +msgstr "Vyberte kategóriu" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Change upload privacy" +msgstr "Zmeniť súkromie" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Mark this if the upload is not family safe" +msgstr "Označte ak nahrávaný súbor nieje vhodný pre deti a mladistvých." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Not family safe upload" +msgstr "Obrázok nieje vhodný pre deti a mladistvých" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +msgid "Uploading" +msgstr "Nahrávam" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "cancel remaining" +msgstr "zrušiť zostávajúce" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "Note: Some images couldn't be uploaded." +msgstr "Upozornenie: Niekteré obrázky nejde nahrať." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "learn more" +msgstr "dozvedieť sa viac" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:79 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Skontrolujte <a data-modal=\"simple\" data-target=\"failed-upload-result\">chybovú správu</a>, kde sa dozviete viac informácií." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:82 +msgid "max" +msgstr "max" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:84 +msgid "close" +msgstr "zavrieť" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:143 +msgid "Add image URLs" +msgstr "Pridať URL obrázka" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:145 +msgid "Add the image URLs here" +msgstr "Pridajte URL obrázka tu" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:160 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Vytvoriť album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:161 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Nahrané obrázky budú presunuté do tohoto novo vytvoreného albumu. Samozrejme, môžete presunúť obrázky i do <a class=\"modal-switch\" data-switch=\"move-existing-album\">existujúceho albumu</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:172 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Presunúť do albumu" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Vyberte existujúci album na nahranie obrázkov. Samozrejme, môžete tiež <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť album</a> a nahrať obrázky do neho." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:189 +msgid "Error report" +msgstr "Chybová správa" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:87 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albumy" +msgstr[2] "albumy" +msgstr[3] "albumy" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Odkazy" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Odkaz s náhľadom" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Priamy odkaz" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML kódy" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML obrázok" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML linka plný náhľad" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "stredne veľký obrázok s odkazom na originál" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "miniatúra obrázku s odkazom na originál" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "do fóra (BBCode)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBkód plný náhľad" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBkód linka plný náhľad" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "Kód do fóra so strednou zmenšeninou obrázku a odkazom." + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "miniatúra obrázku s odkazom na originál" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Všetky tieto slová" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Zadajte popisné slová: červený trpaslík" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Presné slovo alebo fráza" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Zadajte presný výraz do úvodzoviek: \"červený trpaslík\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Žiadne zo slov" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Zadajte znak mínus pred slová, ktoré si neželáte: -seriál -\"chladná hviezda\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategória" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Úložisko" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:81 +msgid "Uploader IP address" +msgstr "IP adresa autora" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +msgid "Album name" +msgstr "Meno albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Untitled album" +msgstr "Nepomenovaný album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "move to existing album" +msgstr "presunúť do existujúceho albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +msgid "Album description" +msgstr "Popis albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:1113 +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "optional" +msgstr "voliteľné" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Brief description of this album" +msgstr "Stručný popis tohoto albumu" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:24 +msgid "Album Privacy" +msgstr "Súkromné albumy" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:25 +msgid "Who can view this content" +msgstr "Kto môže zobraziť tento obsah" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:26 +#: ../../../app/themes/Peafowl/views/dashboard.php:341 +msgid "Public" +msgstr "Verejné" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:27 +msgid "Private (just me)" +msgstr "Súkromné (iba ja)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:28 +msgid "Private (anyone with the link)" +msgstr "Súkromné (pre každého s linkou)" + +#: ../../../app/themes/Peafowl/snippets/form_category.php:9 +msgid "No category" +msgstr "Žiadna kategória" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Meno kategórie" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:560 +msgid "URL key" +msgstr "URL kľúč" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "URL kľúč kategórie" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Iba písmena, čísla a pomlčky" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:561 +msgid "Description" +msgstr "Popis" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Stručný popis tejto kategórie" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:1135 +#: ../../../app/themes/Peafowl/views/settings.php:392 +msgid "Title" +msgstr "Titulok" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Nepomenovaný obrázok" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Označte ak obrázok nieje vhodný pre deti a mladistvých." + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:37 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Označiť ako nevhodné" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Stručný popis obrázku" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP adresa" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Dátum expirácie" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "RRRR-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Príklad" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Do ktorého dňa bude IP adresa banovaná? Ponechajte prázdne pre instatný ban." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Textová správa, HTML alebo presmerovanie na URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Existujúci album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Albumov" +msgstr[2] "Albumov" +msgstr[3] "Albumy" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2383 ../../../app/lib/chevereto.js:3323 +#: ../../../app/lib/chevereto.min.js:119 ../../../app/lib/chevereto.min.js:167 +msgid "private" +msgstr "súkromný" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Vytvoriť nový album" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Meno úložiska" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Región" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Bucket úložiska" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Kľúč" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Kľúč úložiska" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Šifra" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Šifra úložiska" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:73 +msgid "Client email" +msgstr "Klientský e-mail" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:74 +msgid "Google Cloud client email" +msgstr "Google cloud klientský e-mail" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Potrebuješ <a %s>konto služby</a> pre toto." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Súkromný kľúč" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google cloud kľúč JSON" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "URL identita" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "API identity koncová cesta" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API koncová cesta pre OpenStack identitu" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Oblasť ukladania" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Kontajner" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Kontajner úložiska" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant ID" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant ID (ID konta)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant meno" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant meno (meno konta)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname alebo IP servera s úložiskom" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Cesta" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Serverová cesta" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path where the files will be stored" +msgstr "Serverová cesta, kde sa budú ukladať súbory" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:123 +msgid "Server username" +msgstr "Serverové uživateľské meno" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Serverové heslo" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Kapacita úložiska" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Príklad: 20 GB, 1 TB, atp." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Toto úložisko prestane byť používané akonáhle bude dosiahnutá zvolená kapacita. Ponechajte prázdné alebo nastavte 0, ak nechcete nastaviť kapacitu." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL úložisko" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Sytém namapuje obrázky v úložisku na túto URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "zobraziť viac" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Načítať viac" + +#: ../../../app/themes/Peafowl/snippets/listing.php:91 +msgid "Previous" +msgstr "Predchádzajúci" + +#: ../../../app/themes/Peafowl/snippets/listing.php:98 +msgid "Next" +msgstr "Ďalší" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Vybrať všetko" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:42 +msgid "Clear selection" +msgstr "Zrušiť výber" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Výber" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Akcia" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Zobraziť kódy na vloženie" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:35 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Priradiť kategóriu" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:36 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Označiť ako bezpečné" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:41 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:568 +#: ../../../app/themes/Peafowl/views/dashboard.php:617 +msgid "Delete" +msgstr "Zmazať" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "Aby ste mohli používať všetky funkcie, musíte byť prihlásený/á. Ak ešte nemáte svoj účet, môžete sa <a href=\"%s\">registrovať</a> práve teraz." + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +msgid "forgot?" +msgstr "zabudnúť?" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +msgid "Link" +msgstr "Odkaz" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:282 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Poznámka: Tento obsah je súkromý. Pre umožnenie zdielania je potrebné zmeniť súkromie na \"verejné\"." + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Nenachádza sa tu nič na zobrazenie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:75 +#: ../../../app/themes/Peafowl/views/image.php:441 +msgid "Edit image details" +msgstr "Upraviť detaily obrázku" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Uprav informácie o albume" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Všetky obrázky budú presunuté do novo vytvoreného albmu. Samozrejme, môžete obrázky tiež presunúť do <a class=\"modal-switch\" data-switch=\"move-existing-album\">existujúceho albumu</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Vyberte existujúci album na presun obrázkov. Samozrejme, tiež môžete <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť nový album</a> a obrázky presunúť do neho." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Vyberte existujúci album na premiestnenie obsahu súčasného albumu. Samozrejme, tiež môžete <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť nový album</a> a obsah súčastného albumu premiestniť tam." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Vyberte existujúci album na presun obrázkov. Samozrejme tiež môžete <a class=\"modal-switch\" data-switch=\"move-new-album\">vytvoriť nový album</a> a obrázky presunúť do neho." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Všetky vybrané obrázky budú zaradené do tejto kategórie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Niesu tu kategórie." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Potvrďte, že obrázok je bezpečný" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Naozaj si prajete tento obsah označiť ako bezpečný?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Potvrďte, že obrázok nieje vhodný" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Naozaj si prajete tento obsah označiť ako nevhodný?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Potvrďte odstránenie" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Naozaj chcete odstrániť tento obsah? Nevratná akcia!" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Naozaj si prajete odstrániť vybraný obsah? Nevratná akcia!" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_guest.php:2 +msgid "Uploaded by guest to Public" +msgstr "Nahrané hosťom do Verejných" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Od %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +msgid "From %a by %u" +msgstr "Od %a %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/lib/chevereto.js:3238 ../../../app/lib/chevereto.min.js:162 +#: ../../../lib/Peafowl/peafowl.js:628 ../../../lib/Peafowl/peafowl.min.js:37 +msgid "Select" +msgstr "Vybrať" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Uprav" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Prepni medzi vhodnosťou obashu" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Požadovaná stránka nenájdená." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Hľadajte niečo iného" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Užívateľ bol zmazaný" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:158 +#: ../../../app/lib/chevereto.js:3216 ../../../app/lib/chevereto.min.js:160 +msgid "The content has been deleted." +msgstr "Obsah bol zmazaný." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Váš účet je takmer pripravený" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "E-mail pre %s bol práve odoslaný. E-mail obsahuje inštrukcie o tom ako aktivovať váš účet. Aktiváciu je možné vykonať do 48 hodín. Ak e-mailovú správu neobdržíte, potom prosím skontrolujte váš adresár so spamom." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Ísť na úvodnú stránku" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Znovu odoslať aktiváciu" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Úspešne ste zmenili e-mail k vašemu účtu na %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Ísť na môj profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Odkaz na potvrdenie bude zaslaný na e-mail spolu s detailami k aktivácii účtu." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:26 +msgid "Add email" +msgstr "Pridať e-mail" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "E-mail s inštrukciami ako resetovať vaše heslo bol práve odeslaný na e-mailovú adresu, ktorú ste uviedli pri registrácii. Ak ste e-mail s inštrukciami neobdržali, potom prosím skontrolujte váš adresár so spamom či ostatnú filtrovanú poštu." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Zaslať inštrukcie znova" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1009 ../../../app/lib/chevereto.js:1085 +#: ../../../app/lib/chevereto.js:1163 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.min.js:45 ../../../app/lib/chevereto.min.js:49 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:56 +#: ../../../lib/Peafowl/peafowl.js:2456 ../../../lib/Peafowl/peafowl.js:2971 +#: ../../../lib/Peafowl/peafowl.min.js:144 +#: ../../../lib/Peafowl/peafowl.min.js:175 +msgid "An error occurred. Please try again later." +msgstr "Došlo k chybe. Prosím, skúste opakovať akciu neskôr." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "E-mail s inštrukciami k resetovaniu vašeho hesla sme už odoslali. Ak vám nedorazil, potom si prosím skontrolujte váš adresár so spamom." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "Vložte vaše prihlasovacie meno alebo e-mailovú adresu, ktorú ste uviedli behom registrácie." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:408 ../../../lib/Peafowl/peafowl.js:2223 +#: ../../../lib/Peafowl/peafowl.min.js:24 +#: ../../../lib/Peafowl/peafowl.min.js:125 +msgid "Submit" +msgstr "Odoslať" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Vaše heslo bolo úspešne zmenené. Teraz sa môžete prihlásiť s vašim novým heslom." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Prihlásiť sa" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "Vložte nové heslo, ktoré chcete používať." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "Nové Heslo" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:264 +#: ../../../app/themes/Peafowl/views/settings.php:281 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d znakov minimálne" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:264 +msgid "Enter your new password" +msgstr "Vložte vaše nové heslo" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:286 +msgid "Confirm password" +msgstr "Potvrďte heslo" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:270 +msgid "Re-enter your new password" +msgstr "Znovu vyplňte nové heslo" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Bol vám zaslaný e-mail na %s s inštrukciami na aktiváciu vašeho konta. Ak ste neobdržali takýto e-mail, skontrolujte si spam." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:19 +msgid "Enter the username or email address that you used to create your account to continue." +msgstr "Zadajte užívateľské meno alebo e-mail, ktorý ste zadali pri registrácii." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +msgid "This content is private" +msgstr "Tento obsah je súkromný" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Naozaj si prajete odstrániť tento album a všetky obrázky do neho zaradené? Nevratná akcia!" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Zmazať album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Link albumu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Obrázok" +msgstr[1] "Obrázkov" +msgstr[2] "Obrázkov" +msgstr[3] "Obrázky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:120 +msgid "User" +msgid_plural "Users" +msgstr[0] "Užívateľ" +msgstr[1] "Uživateľov" +msgstr[2] "Uživateľov" +msgstr[3] "Užívatelia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1491 +msgid "Disk used" +msgstr "Využitie disku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Pridať užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:115 +msgid "Role" +msgstr "Úloha" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:119 +msgid "Administrator" +msgstr "Administrátor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Pridať kategóriu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:225 +msgid "Add IP ban" +msgstr "Pridať IP ban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Pridať úložisko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:197 +msgid "Website name" +msgstr "Názov webu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:202 +msgid "Website doctitle" +msgstr "Nadpis webovej stránky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:206 +msgid "Website description" +msgstr "Popis webu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:211 +msgid "Website keywords" +msgstr "Kľúčové slová stránky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:232 +msgid "Default time zone" +msgstr "Východzie časové pásmo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +#: ../../../app/themes/Peafowl/views/settings.php:208 +msgid "Select region" +msgstr "Vyberte región" + +#: ../../../app/themes/Peafowl/views/dashboard.php:276 +msgid "Enable this if you want to allow the search feature." +msgstr "Povoľte toto, ak chcete umožniť funkciu hladania." + +#: ../../../app/themes/Peafowl/views/dashboard.php:286 +msgid "Enable this if you want to allow the explore page." +msgstr "Povoľte toto, ak chcete umožniť prehliadanie stránky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:296 +msgid "Enable this if you want to allow the random feature." +msgstr "Povoľte toto, ak chcete umožniť funkciu náhodného zobrazovania." + +#: ../../../app/themes/Peafowl/views/dashboard.php:319 +msgid "Personal mode target user" +msgstr "Súkromný mód cieľového užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:320 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Užívateľské ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:320 +#: ../../../app/themes/Peafowl/views/dashboard.php:1209 +#, php-format +msgid "Your user id is: %s" +msgstr "Vaše užívateľské ID je: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:322 +msgid "Numeric ID of the target user for personal mode." +msgstr "Číselné ID cieľového užívateľa pre súkromný mód." + +#: ../../../app/themes/Peafowl/views/dashboard.php:325 +msgid "Personal mode routing" +msgstr "Smerovanie súkromného módu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:328 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Vlastné smerovanie na zmenu z /username na /something. Používaj \"/\" na smerovanie do domovskej stránky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +msgid "Website privacy mode" +msgstr "Súkromný mód webu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:341 +msgid "Private" +msgstr "Súkromný" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +msgid "Private mode will make the website only available for registered users." +msgstr "Súkromný režim spôsobí, že stránka bude dostupná iba registrovaným užívateľom." + +#: ../../../app/themes/Peafowl/views/dashboard.php:351 +msgid "Content privacy mode" +msgstr "Obsah súkromného módu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:355 +#: ../../../app/themes/Peafowl/views/dashboard.php:920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1158 +msgid "Default" +msgstr "Východzí" + +#: ../../../app/themes/Peafowl/views/dashboard.php:356 +msgid "Force private (self)" +msgstr "Vynútiť súkromie (iba ja)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:357 +msgid "Force private (anyone with the link)" +msgstr "Vynútiť súkromie (ktokoľvek má link)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:362 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Vynútenie súkromia ovplyvní i to, čo mal užívateľ nastavené." + +#: ../../../app/themes/Peafowl/views/dashboard.php:371 +msgid "Enable uploads" +msgstr "Povoliť nahrávanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:377 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Povoľte toto, ak chcete umožniť nahrávanie. Toto nastavenie nemá vplyv na administrátorov." + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +msgid "Guest uploads" +msgstr "Nahrané hosťom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:386 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Povoľte toto, ak chcete umožniť neregistrovaným uživateľom nahrávanie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +#: ../../../app/themes/Peafowl/views/dashboard.php:650 +#: ../../../app/themes/Peafowl/views/dashboard.php:663 +msgid "This setting is disabled when personal mode is active." +msgstr "Toto nastavenie je deaktivované, ak súkromný mód je aktívny." + +#: ../../../app/themes/Peafowl/views/dashboard.php:393 +msgid "Max. filesize" +msgstr "Max. veľkosť súboru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:396 +#, php-format +msgid "Max. allowed filesize. (Max allowed by server is %s)" +msgstr "Maximálne povolená veľkosť súboru. (Maximálna povolená veľkosť na servere je %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:399 +msgid "Image path" +msgstr "Cesta k obrázku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:400 +msgid "Relative to Chevereto root" +msgstr "Relatívna cesta k Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:402 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Kde ukladať obrázky? Relatívne k chevereto rootu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:405 +msgid "Storage mode" +msgstr "Režim ukladania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:408 +msgid "Datefolders" +msgstr "Adresáre podľa dáta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:408 +msgid "Direct" +msgstr "Priamy" + +#: ../../../app/themes/Peafowl/views/dashboard.php:411 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Adresár podľa dáta vytvorí %s štruktúru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:414 +msgid "File naming method" +msgstr "Spôsob pomenovania súborov" + +#: ../../../app/themes/Peafowl/views/dashboard.php:417 +msgid "Original" +msgstr "Originálne" + +#: ../../../app/themes/Peafowl/views/dashboard.php:417 +msgid "Mixed" +msgstr "Zmiešané" + +#: ../../../app/themes/Peafowl/views/dashboard.php:420 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." +msgstr "Voľba \"originál\" sa pokúsi ponechať pôvodné meno zdrojového súboru, zatiaľčo \"náhodne\" bude generovať náhodné meno. \"Mix\" znamená kombináciu oboch vyššie uvedených metód." + +#: ../../../app/themes/Peafowl/views/dashboard.php:426 +msgid "Thumb size" +msgstr "Veľkosť miniatúry" + +#: ../../../app/themes/Peafowl/views/dashboard.php:437 +msgid "Thumbnails will be fixed to this size." +msgstr "Miniatúry budú nastavené na túto veľkosť" + +#: ../../../app/themes/Peafowl/views/dashboard.php:440 +msgid "Medium size" +msgstr "Veľkosť stredných zmenšenín" + +#: ../../../app/themes/Peafowl/views/dashboard.php:445 +msgid "Height will be automatic calculated." +msgstr "Výška bude automaticky vypočítana" + +#: ../../../app/themes/Peafowl/views/dashboard.php:451 +msgid "Watermarks" +msgstr "Vodoznaky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Povoľte toto, ak chcete vložiť logo alebo čokoľvek iného do nahrávania obrázkov." + +#: ../../../app/themes/Peafowl/views/dashboard.php:465 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Výstraha: Nemôžem zapisovať do %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:471 +msgid "Watermark guest images" +msgstr "Vodoznak obrázku návštevníka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Enable this if you want to watermark guest uploads." +msgstr "Povoľte toto, ak chcete umiestniť vodoznak na návštevníkové obrázky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:481 +msgid "Watermark user images" +msgstr "Vodoznak obrázku registrovaného užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:488 +msgid "Enable this if you want to watermark user uploads." +msgstr "Povoľte toto, ak chcete umiestniť vodoznak na obrázky registrovaného užívateľa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:491 +msgid "Watermark admin images" +msgstr "Vodoznak obrázku administrátora" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +msgid "Enable this if you want to watermark admin user uploads." +msgstr "Povoľte toto, ak chcete umiestniť vodoznak na obrázky administrátora." + +#: ../../../app/themes/Peafowl/views/dashboard.php:502 +msgid "Watermark image" +msgstr "Súbor s vodoznakom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:508 +msgid "Watermark image to use. Must be a PNG." +msgstr "Súbor s vodoznakom. Musí byť vo formáte PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:511 +msgid "Watermark position" +msgstr "Pozícia vodoznaku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "left top" +msgstr "vpravo hore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:516 +msgid "left center" +msgstr "vľavo uprostred" + +#: ../../../app/themes/Peafowl/views/dashboard.php:517 +msgid "left bottom" +msgstr "vľavo dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:518 +msgid "center top" +msgstr "v strede hore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +msgid "center center" +msgstr "v strede" + +#: ../../../app/themes/Peafowl/views/dashboard.php:520 +msgid "center bottom" +msgstr "v strede dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:521 +msgid "right top" +msgstr "vpravo hore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:522 +msgid "right center" +msgstr "vpravo v strede" + +#: ../../../app/themes/Peafowl/views/dashboard.php:523 +msgid "right bottom" +msgstr "vpravo dole" + +#: ../../../app/themes/Peafowl/views/dashboard.php:528 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Relatívna pozícia vodoznaku. Prvá hodnota je horizontálna, druhá vertikálna." + +#: ../../../app/themes/Peafowl/views/dashboard.php:531 +msgid "Watermark margin" +msgstr "Odsadenie vodoznaku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:536 +msgid "Margin from the border of the image to the watermark image." +msgstr "Odsadenie od okraju obrázka po vodoznak." + +#: ../../../app/themes/Peafowl/views/dashboard.php:539 +msgid "Watermark opacity" +msgstr "Priehľadnosť vodoznaku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:544 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Priehľadnosť vodoznaku vzhľadom k obrázku. Hodnoty od 0 do 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:568 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Naozaj chcete odstrániť túto %s kategóriu? Nevratná akcia!" + +#: ../../../app/themes/Peafowl/views/dashboard.php:584 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Upozornenie: Odstránenie kategórie nespôsobí odstránenie obrázkov do nej zaradených." + +#: ../../../app/themes/Peafowl/views/dashboard.php:586 +msgid "Edit category" +msgstr "Uprav kategóriu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:609 +msgid "Expires" +msgstr "Vyprší" + +#: ../../../app/themes/Peafowl/views/dashboard.php:617 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Naozaj chcete odstrániť ban z IP %s? Toto je nevratný proces." + +#: ../../../app/themes/Peafowl/views/dashboard.php:631 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Zabanované IP adresy budú mať odoprený prístup na celú túto stránku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +msgid "Edit IP ban" +msgstr "Upraviť IP ban" + +#: ../../../app/themes/Peafowl/views/dashboard.php:643 +msgid "Enable signups" +msgstr "Povoliť registrácie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable this if you want to allow users to signup." +msgstr "Povoľte toto, ak chcete povoliť užívateľom registrácie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:656 +msgid "Username routing" +msgstr "Smerovanie užívateľského mena" + +#: ../../../app/themes/Peafowl/views/dashboard.php:662 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Povoľte toto, ak chcete používať URL vo formáte %s/uzivatelskemeno namiesto %s/uzivatel/username." + +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Logged user logo link" +msgstr "Link loga prihláseného užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:669 +msgid "User profile" +msgstr "Užívateľský profil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:672 +msgid "Configure the link used in the logo when user is logged in." +msgstr "Nastavte link používaný v logu, keď je užívateľ prihlásený." + +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +msgid "Require email confirmation" +msgstr "Je vyžadované potvrdenie e-mailu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:684 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Povoľte, ak užívatelia musia potvrdiť svoju e-mailovú adresu počas registrácie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:687 +msgid "Require email for social signup" +msgstr "K prihláseniu cez sociálnu sieť je vyžadovaný e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Povoľte, ak užívatelia využívajíci k registrácii sociálne siete, musia tiež potvrdiť svoju e-mailovú adresu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:699 +msgid "User avatar max. filesize" +msgstr "Max. veľkosť avatara užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:702 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Max. povolená veľkosť pre užívateľského avatara. (Max hodnota servera je %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:705 +msgid "User background max. filesize" +msgstr "Max. veľkosť pozadia užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:708 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Max. povolená veľkosť užívateľského pozadia. (Max hodnota servera je %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:714 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Zablokovať nahrávanie obrázkov pre zvolenú IP adresu a ochrana proti preťaženiu na základe maximálneho počtu nahraných souborov za časový úsek. Toto nastavenie neovplyvňuje administrátorov." + +#: ../../../app/themes/Peafowl/views/dashboard.php:726 +msgid "Notify to email" +msgstr "Upozorniť na e-mail" + +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Ak je zapnuté, potom vás systém o pokuse o preťaženie varuje e-mailom." + +#: ../../../app/themes/Peafowl/views/dashboard.php:735 +msgid "Minute limit" +msgstr "Minútový limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:740 +msgid "Hourly limit" +msgstr "Hodinový limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:745 +msgid "Daily limit" +msgstr "Denný limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +msgid "Weekly limit" +msgstr "Týždenný limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:755 +msgid "Monthly limit" +msgstr "Mesačný limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:765 +msgid "Show not safe content in listings" +msgstr "V zozname publikovať i nevhodný obsah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:771 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Povoľte toto, ak chcete zobraziť nevhodné obrázky v zozname. Toto nastavenie neplatí pre administrátorov a môže byť zmenené užívateľským nastavením." + +#: ../../../app/themes/Peafowl/views/dashboard.php:774 +msgid "Blur NSFW content in listings" +msgstr "Rozostri NSFW obsah v záznamoch" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Povoľte toto ak chcete použiť rozostrenie na NSFW obrázky v záznamoch." + +#: ../../../app/themes/Peafowl/views/dashboard.php:783 +msgid "Show banners in not safe content" +msgstr "Zobraziť banery v nevhodnom obsahu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Povoľte toto, ak chcete zobrazovať banery i medzi nevhodným obsahom." + +#: ../../../app/themes/Peafowl/views/dashboard.php:793 +msgid "Show not safe content in random mode" +msgstr "V náhodnom móde publikovať i nevhodný obsah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:804 +msgid "List items per page" +msgstr "Počet obrázkov na stránku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:807 +msgid "How many items should be displayed per page listing." +msgstr "Koľko položiek môže byť zobrazených na jednej stránke výpisu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:811 +msgid "List pagination mode" +msgstr "Listovacie stránkovanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:814 +msgid "Endless scrolling" +msgstr "Nekonečné skrolovanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:814 +msgid "Classic pagination" +msgstr "Klasické stránkovanie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:818 +msgid "What pagination method should be used." +msgstr "Aký spôsob stránkovania má byť použitý?" + +#: ../../../app/themes/Peafowl/views/dashboard.php:822 +msgid "Image listing size" +msgstr "Veľkosť náhľadu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "Fluid" +msgstr "Plynulý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "Fixed" +msgstr "Pevný" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Obe metódy používajú pevnú šírku, ale plynulá využíva premennú výšku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:835 +msgid "Listing columns number" +msgstr "Počet riadkov zoznamu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Tu môžete nastaviť počet riadkov pre každý typ zariadenia." + +#: ../../../app/themes/Peafowl/views/dashboard.php:838 +msgid "Phone" +msgstr "Mobil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:842 +msgid "Phablet" +msgstr "Smartfón" + +#: ../../../app/themes/Peafowl/views/dashboard.php:846 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:850 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:854 +msgid "Desktop" +msgstr "Počítač" + +#: ../../../app/themes/Peafowl/views/dashboard.php:862 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Vlož svoju tému do adresára %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:881 +msgid "Tone" +msgstr "Tón" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +msgid "Light" +msgstr "Svetlý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +msgid "Dark" +msgstr "Tmavý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:891 +msgid "Main color" +msgstr "Základná farba" + +#: ../../../app/themes/Peafowl/views/dashboard.php:892 +msgid "Hexadecimal color value" +msgstr "Hexadecimálna hodnota farby" + +#: ../../../app/themes/Peafowl/views/dashboard.php:894 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Použite toto na nastavenie základnej farby témy. Hodnota musí byť v <a href=\"%s\" target=\"_blank\">hex formáte</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +msgid "Top bar color" +msgstr "Farba horného menu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:901 +#: ../../../app/themes/Peafowl/views/dashboard.php:918 +#: ../../../app/themes/Peafowl/views/dashboard.php:1156 +msgid "Black" +msgstr "Čierna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:901 +#: ../../../app/themes/Peafowl/views/dashboard.php:919 +#: ../../../app/themes/Peafowl/views/dashboard.php:1157 +msgid "White" +msgstr "Biela" + +#: ../../../app/themes/Peafowl/views/dashboard.php:905 +msgid "If you set this to \"white\" the top bar and all the black tones will be changed to white tones." +msgstr "Ak nastavíte \"bielu\", horné menu a všetky čierne odtiene budú zmenené na biele tóny." + +#: ../../../app/themes/Peafowl/views/dashboard.php:909 +msgid "Top bar button color" +msgstr "Farba tlačidla v hornom menu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:913 +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Blue" +msgstr "Modrá" + +#: ../../../app/themes/Peafowl/views/dashboard.php:914 +#: ../../../app/themes/Peafowl/views/dashboard.php:1152 +msgid "Green" +msgstr "Zelená" + +#: ../../../app/themes/Peafowl/views/dashboard.php:915 +#: ../../../app/themes/Peafowl/views/dashboard.php:1153 +msgid "Orange" +msgstr "Oranžová" + +#: ../../../app/themes/Peafowl/views/dashboard.php:916 +#: ../../../app/themes/Peafowl/views/dashboard.php:1154 +msgid "Red" +msgstr "Červená" + +#: ../../../app/themes/Peafowl/views/dashboard.php:917 +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Grey" +msgstr "Šedá" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Farba pre tlačidlá v hornom menu, ako napríklad \"Vytvoriť konto\"." + +#: ../../../app/themes/Peafowl/views/dashboard.php:939 +msgid "Enable vector logo" +msgstr "Zapnúť vektorové logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:946 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Zapnúť vektorové logo pre vysokú kvalitu na HD displejoch." + +#: ../../../app/themes/Peafowl/views/dashboard.php:951 +#: ../../../app/themes/Peafowl/views/dashboard.php:1113 +msgid "Vector logo image" +msgstr "Súbor s vektorovým logom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:957 +msgid "Vector version or your website logo in SVG format." +msgstr "Vektorová verzia loga vašej webovej stránky vo formáte SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "Raster logo image" +msgstr "Súbor s rastrovým logom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:969 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Rastrová verzia loga vašej webovej stránky, najlepšie vo formáte PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:973 +msgid "Logo height" +msgstr "Výška loga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:974 +#: ../../../app/themes/Peafowl/views/dashboard.php:1209 +msgid "No value" +msgstr "Žiadna hodnota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:976 +msgid "Use this to set the logo height if needed." +msgstr "Toto použijte pre natavenie výšky loga, ak je to potrebné." + +#: ../../../app/themes/Peafowl/views/dashboard.php:982 +msgid "Favicon image" +msgstr "Favicon ikona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:988 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon musí mať rovnakú šířku a výšku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:994 +msgid "Enable download button" +msgstr "Aktivovať tlačítko Stiahnuť" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1000 +msgid "Enable this if you want to show the image download button." +msgstr "Povoľte toto, ak chcete užívateľom nechať zobrazovať tlačítko na stiahnutie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "Enable right click on image" +msgstr "Povoliť pravý klik na obrázok" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Povoľ toto, ak si želáš povolenie pravého kliku na obrázok v zobrazení obrázku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1016 +msgid "Enable show Exif data" +msgstr "Povoliť zobrazenie Exif údajov" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1022 +msgid "Enable this if you want to show image Exif data." +msgstr "Povoľ toto, ak chceš zobrazovať Exif údaje." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1028 +msgid "Enable social share" +msgstr "Povoliť zdielanie cez sociálne siete" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Povoľte toto, ak chcete povoliť zobrazovanie tlačítiek sociálnych sietí u obsahu (zdielanie, lajkovanie...)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1038 +msgid "Enable embed codes (content)" +msgstr "Povoliť vkladacie odkazy (obsah)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1044 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Povoľte toto, ak chcete v obsahu zobrazovať vkladacie obsahy." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1048 +msgid "Enable embed codes (uploader)" +msgstr "Povoliť vkladacie odkazy (v nahrávaciom nástroji)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1054 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Povoľte toto, ak chcete umožniť zobrazovanie vkladacích odkazov akonáhle bude obrázok úspešne nahraný." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Not safe content checkbox in uploader" +msgstr "Nepovoliť voľbu nevhodného obsahu v nahrávaní" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1066 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Povoľte toto, ak chcete užívateľom dovoliť nastavovanie nevhodného obsahu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1072 +msgid "Custom CSS code" +msgstr "Vlastný CSS kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Vložte váš vlastný CSS kód sem. Bude umiestnený ako <style> tesne pred koncom hlavičky (</head>) html kódu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1077 +msgid "Custom JS code" +msgstr "Vlastný JS kód" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1078 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Vložte váš vlastný JS kód sem. Bude umiestnený ako <script> tesne pred koncom hlavičky (</head>) html kódu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Style" +msgstr "Štýl" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1089 +msgid "Landing page" +msgstr "Prístupová stránka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1090 +msgid "Split landing + images" +msgstr "Rozdeliť uvítacia stránka + obrázky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +msgid "Route explore" +msgstr "Preskúmať cestu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1096 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Nastavte štýl domovskej stránky. Pre nastavenie pozmente app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +msgid "Cover image" +msgstr "Obrázok pokrytia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Vektorová verzia loga vašej webovej stránky vo formáte SVG (iba pre domovskú stránku)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1129 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Rastrová verzia loga vašej webovej stránky (iba pre domovskú stránku), najlepšie vo formáte PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1136 +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Toto bude vložené dovnútra tagu domovskej stránky %s. Ponechajte prázdne pre základný obsah." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +#: ../../../app/themes/Peafowl/views/settings.php:398 +msgid "Paragraph" +msgstr "Pragraf" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Call to action button color" +msgstr "Farba tlačidla akcie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1163 +msgid "Color of the homepage call to action button." +msgstr "Farba tlačidla akcie pre domovskú stránku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +msgid "Call to action outline style button" +msgstr "Štýl pre tlačidlo akcie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1174 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Povoľte toto, ak si želáte použiť štýl na tlačidlo akcie na domovskej stránke." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1178 +msgid "Call to action functionality" +msgstr "Funkcia tlačidla akcie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1182 +msgid "Trigger uploader" +msgstr "Spúšťač nahrávania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1183 +msgid "Open URL" +msgstr "Otvoriť URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1192 +msgid "Call to action URL" +msgstr "Volanie akcie URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1193 +msgid "Enter an absolute or relative URL" +msgstr "Zadajte absolútnu alebo relatívnu URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1195 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Relatívna URL ako %r bude premapovaná na %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1201 +msgid "Call to action HTML" +msgstr "HTML akcie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1202 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Toto bude vložené dovnútra tagu <a>. Ponechajte prázdne pre základný obsah." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1208 +msgid "User IDs" +msgstr "ID užívateľa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1211 +msgid "Comma-separated list of target user IDs to show images on homepage. Leave it blank or zero to display all recent images." +msgstr "Zoznam oddelený čiarkou ID cielených užívateľov pre zobrazenie na domovskej stránke. Ponechajte prázdne alebo zadajte nulu, ak chcete zobraziť všetky posledné obrázky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +msgid "Here you can set the codes for the predefined ad spaces." +msgstr "Tu môžete nastaviť kódy pre preddefinované pozície reklám." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +msgid "Before cover (homepage)" +msgstr "Pred coverom (titulka)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1227 +msgid "After cover (homepage)" +msgstr "Za coverom (titulka)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1231 +msgid "After listing (homepage)" +msgstr "Za výpisom (titulka)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1237 +msgid "Before pagination" +msgstr "Pred stránkovaním" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1241 +msgid "After pagination" +msgstr "Za stránkováním" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +msgid "Content (image and album)" +msgstr "Obsah (obrázok a album)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1249 +msgid "Tab about column" +msgstr "Tabuľka so stĺpcom \"O ...\"" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1253 +msgid "Before comments" +msgstr "Pred komentármi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1259 +msgid "Image page" +msgstr "Stránka s obrázkom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1261 +msgid "Inside viewer top (image page)" +msgstr "Vovnútri prehliadača nahore (stránka s obrázkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1263 +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +msgid "Expected banner size 728x90" +msgstr "Očakávaná veľkosť banera je 728×90px" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1266 +msgid "Inside viewer foot (image page)" +msgstr "Vovnútri prehliadača dole (stránka s obrázkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1271 +msgid "After image viewer (image page)" +msgstr "Za prehliadačom obrázku (stránka s obrázkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1275 +msgid "Before header (image page)" +msgstr "Pred hlavičkou (stránka s obrázkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +msgid "After header (image page)" +msgstr "Za hlavičkou (stránka s obrázkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1283 +msgid "Footer (image page)" +msgstr "Pätička (stránka s obrázkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1289 +msgid "Album page" +msgstr "Stránka s albumom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1291 +msgid "Before header (album page)" +msgstr "Pred hlavičkou (stránka s albumom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1295 +msgid "After header (album page)" +msgstr "za hlavičkou (stránka s albumom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1301 +msgid "User profile page" +msgstr "Stránka s užívateľským profilom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1303 +msgid "After top (user profile)" +msgstr "Za hlavičkou (stránka s uživateľským profilom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1307 +msgid "Before listing (user profile)" +msgstr "Pred výpisom (stránka s užívateľským profilom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1313 +msgid "Explore page" +msgstr "Preskúmať stránku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "After top (explore page)" +msgstr "Za hlavičkou (stránka prechádzania)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1323 +msgid "Crypt salt" +msgstr "Kryptografická soľ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1325 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Toto je \"salt\" (kryptografická soľ) používaná k prevodu číselného ID na alfanumerický. Bol vygenerovaný počas inštalácie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1328 +msgid "Minify code" +msgstr "Kód minify" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1334 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Povoľte toto, ak chcete automaticky minify CSS a JS kód." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1337 +msgid "Maintenance" +msgstr "Údržba" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Ak je toto povolené, užívateľom sa zobrazí hlásenie údržby systému. Toto nemá vplyv na administrátorov." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1347 +msgid "PHP error reporting" +msgstr "PHP chybové hlásenia" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Povoľte toto, ak si želáte vypísať chyby generované PHP <a %s>error_reporting()</a>. Toto bude deaktivované v prevádzke." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +msgid "Debug level" +msgstr "Úroveň debugovania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "None" +msgstr "Žiaden" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Error log" +msgstr "Error log" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Print errors without error log" +msgstr "Vypíš chyby bez error logu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Print and log errors" +msgstr "Vypíš a loguj chyby" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1362 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Pre nastavenie úrovne debugovania, si prezri <a %s>dokumentáciu debugovania</a>. Základná úroveň je \"Error log\" (1)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1370 +msgid "Default language" +msgstr "Východzí jazyk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1379 +msgid "Default base language to use." +msgstr "Východzí jazyk na používanie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Auto language" +msgstr "Jazyk automaticky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1389 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Povoľte toto, ak chcete automaticky zistiť a nastaviť jazyk pre každého užívateľa." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1393 +msgid "Language chooser" +msgstr "Voľba jazyka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1399 +msgid "Enable this if you want to allow language selection." +msgstr "Povoľte toto, ak chcete povolit voľbu jazyka." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Enabled languages" +msgstr "Povolené jazyky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1415 +msgid "Unchecked languages won't be used in your website." +msgstr "Neoznačené jazyky nebudú použité na vašej stránke." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1438 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Prepnite pre zapnutie HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1439 +msgid "Toggle this to enable or disable this storage" +msgstr "Prepnite pre povolenie alebo zakázanie tohoto úložiska." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1455 +msgid "Quota" +msgstr "Kvóta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Active" +msgstr "Aktívne" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1490 +msgid "Storage method" +msgstr "Spôsob ukladania" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1501 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Vo východziom stave je natavené miestne ukladanie. Používa sa i keď nieje aktívne žiadne externé úložisko." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1501 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Ak potrebujete pomoc, prezrite si <a %s>dokumentáciu úložiska</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1503 +msgid "Edit storage" +msgstr "Upraviť úložisko" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "From name" +msgstr "Z mena" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1516 +msgid "Sender name for emails sent to users." +msgstr "Meno odesielateľa uvedeného v e-mailoch odoslaných užívateľom." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1531 +msgid "Email mode" +msgstr "Režim e-mailu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1538 +msgid "How to send emails? SMTP recommended." +msgstr "Spôsob odesielania e-mailov. Doporučená metóda SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1543 +msgid "SMTP server and port" +msgstr "SMTP server a port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1546 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1559 +msgid "SMTP username" +msgstr "Užívateľské meno na SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1564 +msgid "SMTP password" +msgstr "Heslo na SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1569 +msgid "SMTP security" +msgstr "SMTP zabezpečenie" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1572 +msgid "Unsecured" +msgstr "Nezabezpečené" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Potrebujete <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> pre toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1594 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1599 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Potrebujete <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> pre toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1625 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1632 +msgid "Twitter account" +msgstr "Twitter account" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1648 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Potrebujete <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> pre toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1653 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1658 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1674 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Potrebujete <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> pre toto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "VK client id" +msgstr "VK client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1684 +msgid "VK client secret" +msgstr "VK client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1700 +#, php-format +msgid "CDN allows you to offload static content to several edge servers making your website faster. If you don't have a CDN provider you should try %s." +msgstr "CDN umožňuje rýchlejšie načítanie obsahu pomocou používania čiastočne statického obsahu na niektorých edgeServeroch. Ak nemáte CDN poskytovateľa, mali by ste to skúsiť %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1719 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Potrebujete <a href=\"%s\" target=\"_blank\">reCAPTCHA kľúč</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1725 +msgid "reCAPTCHA public key" +msgstr "reCAPTCHA verejný kľúč" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1730 +msgid "reCAPTCHA private key" +msgstr "reCAPTCHA súkromný kľúč" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1737 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA prah" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Koľko neplatných pokusov je potrebných na požadovanie reCAPTCHA? Použite nula (0) na stále zobrazovanie reCAPTCHA." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1748 +msgid "Comment code" +msgstr "Kód komentáru" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1749 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook alebo čokoľvek iného. Bude použité v zobrazení obrázku." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1753 +msgid "Analytics code" +msgstr "Kód analytics." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics alebo čokoľvek iného. Bude pridané do pätičky." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1764 +#, php-format +msgid "Cloudflare is auto detected using %s." +msgstr "Cloudflare detekovalo použitie %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Pre dokumentáciu o API, prezrite si <a %s>dokumentáciu API</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1771 +msgid "API v1 key" +msgstr "API v1 kľúč" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1774 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Použite tento kľúč, keď používate <a %s>API v1</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1780 +msgid "Cookie law compliance" +msgstr "Dodržanie cookie politiky" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1786 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Povoľte toto na zobrazenie správy, ktorá informuje o EU vyžadovania cookie. Poznámka: Potrebujete toto iba ak, je vaša stránka umiestnená v EU a ak používate cookie na sledovanie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1796 +#: ../../../app/themes/Peafowl/views/settings.php:421 +#: ../../../lib/Peafowl/peafowl.js:408 ../../../lib/Peafowl/peafowl.min.js:24 +msgid "Save changes" +msgstr "Uložiť zmeny" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1819 +#: ../../../app/themes/Peafowl/views/settings.php:435 +msgid "Check the errors to proceed." +msgstr "Pred pokračovaním skontrolujte chyby" + +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "Guest" +msgstr "Hosť" + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Naozaj chcete obrázok vymazať? Nevratná akcia!" + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Delete image" +msgstr "Zmazať obrázok" + +#: ../../../app/themes/Peafowl/views/image.php:142 +msgid "Added to %a and categorized in %c" +msgstr "Pridané do %a a zakategorizované v %c" + +#: ../../../app/themes/Peafowl/views/image.php:144 +#, php-format +msgid "Added to %s" +msgstr "Pridané do %s" + +#: ../../../app/themes/Peafowl/views/image.php:149 +#, php-format +msgid "Uploaded to %s" +msgstr "Nahrané do %s" + +#: ../../../app/themes/Peafowl/views/image.php:151 +#, php-format +msgid "Uploaded %s" +msgstr "Nahrané %s" + +#: ../../../app/themes/Peafowl/views/image.php:163 +msgid "Less Exif data" +msgstr "Skry Exif dáta" + +#: ../../../app/themes/Peafowl/views/image.php:163 +msgid "More Exif data" +msgstr "Zobraz Exif dáta" + +#: ../../../app/themes/Peafowl/views/image.php:188 +#: ../../../app/themes/Peafowl/views/image.php:249 +msgid "Share image" +msgstr "Zdielať obrázok" + +#: ../../../app/themes/Peafowl/views/image.php:204 +#: ../../../app/themes/Peafowl/views/image.php:210 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/image.php:260 +msgid "In this album" +msgstr "V tomto albume" + +#: ../../../app/themes/Peafowl/views/image.php:287 +msgid "Image links" +msgstr "Odkazy obrázkov" + +#: ../../../app/themes/Peafowl/views/image.php:289 +msgid "Image URL" +msgstr "URL obrázka" + +#: ../../../app/themes/Peafowl/views/image.php:295 +msgid "Image link" +msgstr "Odkaz obrázka" + +#: ../../../app/themes/Peafowl/views/image.php:301 +msgid "Thumbnail URL" +msgstr "URL miniatúry" + +#: ../../../app/themes/Peafowl/views/image.php:310 +msgid "Medium URL" +msgstr "URL stredná zmenšenina" + +#: ../../../app/themes/Peafowl/views/image.php:328 +#: ../../../app/themes/Peafowl/views/image.php:348 +#: ../../../app/themes/Peafowl/views/image.php:371 +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Image embed codes" +msgstr "Kódy na vloženie obrázkov" + +#: ../../../app/themes/Peafowl/views/image.php:348 +msgid "Linked image" +msgstr "Odkazovaný obrázok" + +#: ../../../app/themes/Peafowl/views/image.php:371 +msgid "Linked medium" +msgstr "Odkazovaný obrázok (stredná veľkosť)" + +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Linked thumbnail" +msgstr "Odkazovaná miniatúra" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Nahrajte a zdielajte obrázky." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Presuňte obrázky hockde na stránku a nahrávajte už teraz. %s limit. Priame odkazy na obrázky, BB-kód a HTML zmenšeniny." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Nahraj teraz" + +#: ../../../app/themes/Peafowl/views/index.php:63 +#, php-format +msgid "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." +msgstr "Vyplňte túto časť nahrávania obrázkov do %s účtu.<br> Cieľ môžete editovať v administrácii webu." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Zaregistrujte sa pre sprístupnenie všetkých funkcií" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Spravujte váš obsah, vytvárajte súkromé albumy, inovujte váš profil a veľa iného.." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:281 +msgid "Enter your password" +msgstr "Vložte vaše heslo" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Odhlásenie z webu %s prebehlo úspešne. Čoskoro dovidenia." + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Na stránke prebieha údržba" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Máme plánovanú údržbu systému. Prosím, vráťte sa sem o niekoľko minút." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Nemáte oprávnenie k prehliadaniu tejto stránky alebo odkaz z ktorého ste sa sem dostali už expiroval." + +#: ../../../app/themes/Peafowl/views/search.php:8 +#: ../../../app/themes/Peafowl/views/user.php:111 +msgid "Results for" +msgstr "Výsledky pre" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Naozaj chcete odstrániť tohoto užívateľa? Nevratná akcia!" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Delete user" +msgstr "Odstrániť užívateľa" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Dátum registrácie" + +#: ../../../app/themes/Peafowl/views/settings.php:99 +msgid "Status" +msgstr "Stav" + +#: ../../../app/themes/Peafowl/views/settings.php:103 +msgid "Valid" +msgstr "Platný" + +#: ../../../app/themes/Peafowl/views/settings.php:104 +msgid "Banned" +msgstr "Zabanovaný" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Awaiting email" +msgstr "Čaká sa na e-mail" + +#: ../../../app/themes/Peafowl/views/settings.php:106 +msgid "Awaiting confirmation" +msgstr "Čaká sa na potvrdenie" + +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i do %f znakov<br>Písmena, čísla a \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:159 +msgid "Newsletter" +msgstr "Novinky" + +#: ../../../app/themes/Peafowl/views/settings.php:160 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Zašlite mi e-maily s novinkami o %s" + +#: ../../../app/themes/Peafowl/views/settings.php:164 +msgid "Content settings" +msgstr "Nastavenie obsahu" + +#: ../../../app/themes/Peafowl/views/settings.php:165 +msgid "Check this if you want to see not family safe content. This setting doesn't affect your content" +msgstr "Označte toto, ak chcete vidieť aj obrázky nevhodné pre deti a mladistvých. Toto nastavenie neovplyvní váš obsah." + +#: ../../../app/themes/Peafowl/views/settings.php:165 +msgid "Show not safe content in listings (from others)" +msgstr "Zobraz obsah nevhodný pre deti a mladistvých v zozname (od ostatných)" + +#: ../../../app/themes/Peafowl/views/settings.php:173 +msgid "Language" +msgstr "Jazyk" + +#: ../../../app/themes/Peafowl/views/settings.php:203 +msgid "Timezone" +msgstr "Časová zóna" + +#: ../../../app/themes/Peafowl/views/settings.php:254 +msgid "Current password" +msgstr "Súčasné heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:255 +msgid "Enter your current password" +msgstr "Vložte svoje súčasné heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:263 +msgid "New password" +msgstr "Nové heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:269 +msgid "Confirm new password" +msgstr "Potvrdiť nové heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:277 +msgid "Add a password to be able to login using your username or email." +msgstr "K tomu, aby ste boli schopní sa prihlásiť uživatelským menom alebo e-mailom, je potrebné pridať heslo." + +#: ../../../app/themes/Peafowl/views/settings.php:277 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Tento užívateľ nemá uložené žiadne heslo. Heslo pridajte týmto formulárom." + +#: ../../../app/themes/Peafowl/views/settings.php:287 +msgid "Re-enter your password" +msgstr "Znovu vyplňte heslo" + +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../lib/Peafowl/peafowl.js:3394 +#: ../../../lib/Peafowl/peafowl.min.js:214 +msgid "loading" +msgstr "načítanie" + +#: ../../../app/themes/Peafowl/views/settings.php:310 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Nahrať nový súbor" + +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Delete existing image" +msgstr "Zmazať existujúci obrázok" + +#: ../../../app/themes/Peafowl/views/settings.php:325 +msgid "This is your real name, not your username." +msgstr "Toto je vaše ozajstné meno, nie užívateľské." + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "http://yourwebsite.com" +msgstr "http://vasastranka.com" + +#: ../../../app/themes/Peafowl/views/settings.php:333 +msgid "Bio" +msgstr "Bio" + +#: ../../../app/themes/Peafowl/views/settings.php:334 +msgid "Tell us a little bit about you" +msgstr "Povedzte niečo o sebe" + +#: ../../../app/themes/Peafowl/views/settings.php:345 +msgid "User has no connections." +msgstr "Užívateľ nemá žiadne prepojenie." + +#: ../../../app/themes/Peafowl/views/settings.php:349 +msgid "Link your account to external services to be able to login and share content." +msgstr "Prepojte váš účet s externými službami pre prihlásenie a zdielanie obsahu." + +#: ../../../app/themes/Peafowl/views/settings.php:356 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Naozaj sa chcete odpojiť %s od tohoto účtu?" + +#: ../../../app/themes/Peafowl/views/settings.php:357 +#, php-format +msgid "This account is connected to %s" +msgstr "Tento účet je prepojený s %s" + +#: ../../../app/themes/Peafowl/views/settings.php:359 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Naozaj chcete odpojiť váš %s účet?" + +#: ../../../app/themes/Peafowl/views/settings.php:361 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Budete odhlásený/á a už sa nebudete môcť prihlásiť ku svojemu účtu prostredníctvom tohoto %s účtu." + +#: ../../../app/themes/Peafowl/views/settings.php:363 +#, php-format +msgid "Your account is connected to %s" +msgstr "Váš účet je prepojený s %s" + +#: ../../../app/themes/Peafowl/views/settings.php:368 +msgid "disconnect" +msgstr "odpojiť" + +#: ../../../app/themes/Peafowl/views/settings.php:381 +#, php-format +msgid "Connect %s" +msgstr "Prepojiť %s" + +#: ../../../app/themes/Peafowl/views/settings.php:404 +msgid "Button" +msgstr "Tlačidlo" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "znovupreposlať aktiváciu konta" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +#, php-format +msgid "If you have already signed up maybe you need to request to %s" +msgstr "Ak ste sa už zaregistrovali, možnože chcete prejsť sem %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Nahrať pozadie profilu" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Zmeniť pozadie" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Profilový obrázok pozadia bude odstránený. Túto akciu nejde vrátiť. Naozaj si prajete pokračovať?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Odstrániť pozadie" + +#: ../../../app/themes/Peafowl/views/user.php:64 +msgid "Edit profile" +msgstr "Upraviť profil" + +#: ../../../app/lib/chevereto.js:515 ../../../app/lib/chevereto.js:587 +#: ../../../app/lib/chevereto.js:770 ../../../app/lib/chevereto.js:2197 +#: ../../../app/lib/chevereto.js:2250 ../../../app/lib/chevereto.js:2348 +#: ../../../app/lib/chevereto.min.js:25 ../../../app/lib/chevereto.min.js:29 +#: ../../../app/lib/chevereto.min.js:35 ../../../app/lib/chevereto.min.js:111 +#: ../../../app/lib/chevereto.min.js:114 ../../../app/lib/chevereto.min.js:118 +msgid "You must enter the album name." +msgstr "Musíte vložiť názov albumu." + +#: ../../../app/lib/chevereto.js:629 ../../../app/lib/chevereto.js:816 +#: ../../../app/lib/chevereto.js:912 ../../../app/lib/chevereto.min.js:32 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:41 +#: ../../../lib/Peafowl/peafowl.js:2257 +#: ../../../lib/Peafowl/peafowl.min.js:128 +msgid "Confirm" +msgstr "Potvrdiť" + +#: ../../../app/lib/chevereto.js:748 ../../../app/lib/chevereto.min.js:34 +msgid "Select existing album" +msgstr "Vyberte existujúci album" + +#: ../../../app/lib/chevereto.js:1031 ../../../app/lib/chevereto.js:1111 +#: ../../../app/lib/chevereto.min.js:46 ../../../app/lib/chevereto.min.js:51 +msgid "Please select a valid image file type." +msgstr "Prosím, vyberte prípustné typy obrázkov." + +#: ../../../app/lib/chevereto.js:1036 ../../../app/lib/chevereto.js:1116 +#: ../../../app/lib/chevereto.min.js:47 ../../../app/lib/chevereto.min.js:52 +#, python-format, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Prosím, vyberte obrázok s maximálnov %s veľkosťou." + +#: ../../../app/lib/chevereto.js:1083 ../../../app/lib/chevereto.min.js:49 +msgid "Profile image updated." +msgstr "Profilový obrázok bol aktualizovaný." + +#: ../../../app/lib/chevereto.js:1153 ../../../app/lib/chevereto.min.js:53 +msgid "Profile background image updated." +msgstr "Pozadie profilu bolo aktualizované." + +#: ../../../app/lib/chevereto.js:1227 ../../../app/lib/chevereto.min.js:54 +msgid "Profile background image deleted." +msgstr "Profilové pozadie bolo odstranené." + +#: ../../../app/lib/chevereto.js:1232 ../../../app/lib/chevereto.min.js:54 +msgid "Error deleting profile background image." +msgstr "Nastala chyba pri odstraňovaní obrázku profilového pozadia." + +#: ../../../app/lib/chevereto.js:1321 ../../../app/lib/chevereto.min.js:57 +#, python-format, javascript-format +msgid "Update available (%s)" +msgstr "K dispozíci je aktualizácia (%s)" + +#: ../../../app/lib/chevereto.js:1322 ../../../app/lib/chevereto.min.js:57 +#, python-format, javascript-format +msgid "There is an update available for your system. Go to %s to proceed to download the file." +msgstr "Pre váš systém je dostupná aktualizácia. Prejdite na %s a pokračujte stiahnutím súboru." + +#: ../../../app/lib/chevereto.js:1322 ../../../app/lib/chevereto.min.js:57 +msgid "The release notes for the update available are:" +msgstr "Poznámky vydané k novej aktualizácii sú:" + +#: ../../../app/lib/chevereto.js:1326 ../../../app/lib/chevereto.min.js:57 +msgid "Your website is running the latest version of Chevereto." +msgstr "Vaša stránka beží na aktuálnej verzii Chevereta." + +#: ../../../app/lib/chevereto.js:1734 ../../../app/lib/chevereto.min.js:77 +msgid "File too big." +msgstr "Súbor je príliš veľký." + +#: ../../../app/lib/chevereto.js:1745 ../../../app/lib/chevereto.js:1891 +#: ../../../app/lib/chevereto.min.js:79 ../../../app/lib/chevereto.min.js:91 +msgid "Some files couldn't be added" +msgstr "Niektoré súbory nebolo možné pridať" + +#: ../../../app/lib/chevereto.js:2325 ../../../app/lib/chevereto.min.js:118 +msgid "Image edited successfully." +msgstr "Obrázok bol úspešne upravený." + +#: ../../../app/lib/chevereto.js:2388 ../../../app/lib/chevereto.min.js:119 +msgid "Album edited successfully." +msgstr "Album úspešne upravený." + +#: ../../../app/lib/chevereto.js:2406 ../../../app/lib/chevereto.min.js:120 +msgid "Invalid URL key." +msgstr "Neplatný kľúč URL." + +#: ../../../app/lib/chevereto.js:2421 ../../../app/lib/chevereto.min.js:122 +msgid "Category URL key already being used." +msgstr "URL kľúč kategórie sa už používa." + +#: ../../../app/lib/chevereto.js:2499 ../../../app/lib/chevereto.min.js:124 +msgid "Category successfully deleted." +msgstr "Kategória bola úspešne odstránená." + +#: ../../../app/lib/chevereto.js:2545 ../../../app/lib/chevereto.min.js:126 +#, python-format, javascript-format +msgid "Category %s added." +msgstr "Pridaná %s kategória." + +#: ../../../app/lib/chevereto.js:2566 ../../../app/lib/chevereto.min.js:127 +msgid "Invalid expiration date." +msgstr "Neplatný dátum expirácie." + +#: ../../../app/lib/chevereto.js:2581 ../../../app/lib/chevereto.min.js:129 +#, python-format, javascript-format +msgid "IP %s already banned." +msgstr "IP %s je už zabanovaná." + +#: ../../../app/lib/chevereto.js:2632 ../../../app/lib/chevereto.min.js:133 +#, python-format, javascript-format +msgid "IP %s banned." +msgstr "IP %s zabanovaná." + +#: ../../../app/lib/chevereto.js:2712 ../../../app/lib/chevereto.min.js:134 +msgid "IP ban successfully deleted." +msgstr "IP ban úspešne odstránený." + +#: ../../../app/lib/chevereto.js:2749 ../../../app/lib/chevereto.js:2999 +#: ../../../app/lib/chevereto.js:3028 ../../../app/lib/chevereto.min.js:135 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:151 +msgid "Please fill all the required fields." +msgstr "Prosím, vyplňte všetky požadované polia." + +#: ../../../app/lib/chevereto.js:2760 ../../../app/lib/chevereto.min.js:136 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Neplatná veľkosť úložiska. Prosím overte, že je v správnom formáte." + +#: ../../../app/lib/chevereto.js:2772 ../../../app/lib/chevereto.min.js:138 +msgid "Invalid URL." +msgstr "Neplatná URL." + +#: ../../../app/lib/chevereto.js:2823 ../../../app/lib/chevereto.min.js:141 +msgid "Storage successfully edited." +msgstr "Úložisko bolo úspešne upravené." + +#: ../../../app/lib/chevereto.js:3047 ../../../app/lib/chevereto.min.js:152 +msgid "User added successfully." +msgstr "Užívateľ bol pridaný úspešne." + +#: ../../../app/lib/chevereto.js:3224 ../../../app/lib/chevereto.js:3315 +#: ../../../app/lib/chevereto.js:3398 ../../../app/lib/chevereto.js:3407 +#: ../../../app/lib/chevereto.min.js:161 ../../../app/lib/chevereto.min.js:167 +#: ../../../app/lib/chevereto.min.js:169 +msgid "The content has been moved." +msgstr "Obsah bol presunutý." + +#: ../../../app/lib/chevereto.js:3246 ../../../app/lib/chevereto.min.js:162 +msgid "Unselect" +msgstr "Odobrať" + +#: ../../../app/lib/chevereto.js:3315 ../../../app/lib/chevereto.min.js:167 +msgid "The content has been edited." +msgstr "Obsah bol upravený." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:483 +#: ../../../lib/Peafowl/peafowl.min.js:1 +#: ../../../lib/Peafowl/peafowl.min.js:30 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Všetky zmeny, které ste vykonal(a), budú stratené ak budete pokračovať." + +#: ../../../lib/Peafowl/peafowl.js:467 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "Changes saved successfully." +msgstr "Zmeny boli úspešne uložené." + +#: ../../../lib/Peafowl/peafowl.js:483 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Go back to form" +msgstr "Vrátiť sa späť na formulár" + +#: ../../../lib/Peafowl/peafowl.js:483 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "continue anyway" +msgstr "ajtak pokračovať" + +#: ../../../lib/Peafowl/peafowl.js:2402 +#: ../../../lib/Peafowl/peafowl.min.js:141 +msgid "Saving" +msgstr "Ukladanie" + +#: ../../../lib/Peafowl/peafowl.js:2407 +#: ../../../lib/Peafowl/peafowl.min.js:141 +msgid "Sending" +msgstr "Odosielanie" + +#: ../../../lib/Peafowl/peafowl.js:2487 +#: ../../../lib/Peafowl/peafowl.min.js:144 +msgid "Confirm action" +msgstr "Potvrdiť akciu" + +#: ../../../lib/Peafowl/peafowl.js:2499 +#: ../../../lib/Peafowl/peafowl.min.js:145 +msgid "information" +msgstr "informácia" + diff --git a/app/languages/sr-RS.po b/app/languages/sr-RS.po new file mode 100644 index 0000000..8717ae6 --- /dev/null +++ b/app/languages/sr-RS.po @@ -0,0 +1,2856 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2015-04-13 17:55+0000\n" +"PO-Revision-Date: 2015-04-13 17:55+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: sr_RS\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../../../app/install/installer.php:826 +#: ../../../app/install/installer.php:835 +#: ../../../app/install/installer.php:838 +#: ../../../app/routes/route.account.php:402 +#: ../../../app/routes/route.json.php:551 +#: ../../../app/routes/route.settings.php:170 +#: ../../../app/routes/route.signup.php:95 +#: ../../../app/themes/Peafowl/pages/contact.php:31 +msgid "Invalid email" +msgstr "Neispravan email" + +#: ../../../app/install/installer.php:829 +#: ../../../app/routes/route.json.php:546 +#: ../../../app/routes/route.settings.php:166 +#: ../../../app/routes/route.signup.php:98 +msgid "Invalid username" +msgstr "Pogrešno korisničko ime" + +#: ../../../app/install/installer.php:832 +#: ../../../app/routes/route.account.php:345 +#: ../../../app/routes/route.json.php:556 +#: ../../../app/routes/route.settings.php:300 +#: ../../../app/routes/route.signup.php:101 +msgid "Invalid password" +msgstr "Pogrešna lozinka" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "From email address" +msgstr "Sa email adresee" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1466 +msgid "Sender email for emails sent to users." +msgstr "Email pošiljaoca za emailove poslate korisnicima." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1469 +msgid "Incoming email address" +msgstr "Dolazeća email adresa" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Recipient for contact form and system alerts." +msgstr "Email adresa za sistemske i kontakt emailove." + +#: ../../../app/lib/classes/class.album.php:94 +msgid "Untitled" +msgstr "Bez naslova" + +#: ../../../app/lib/classes/class.album.php:318 +#: ../../../app/lib/classes/class.user.php:105 +#, php-format +msgid "%s's images" +msgstr "%s slike" + +#: ../../../app/lib/classes/class.image.php:695 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Private upload" +msgstr "Privatni upload" + +#: ../../../app/lib/classes/class.image.php:954 +msgid "view" +msgid_plural "views" +msgstr[0] "pregled" +msgstr[1] "pregleda" +msgstr[2] "pregleda" + +#: ../../../app/lib/classes/class.listing.php:238 +#: ../../../app/routes/route.album.php:169 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:87 +#: ../../../app/lib/chevereto.js:1866 ../../../app/lib/chevereto.min.js:88 +msgid "image" +msgid_plural "images" +msgstr[0] "slika" +msgstr[1] "slika" +msgstr[2] "slika" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "godina" +msgstr[1] "godina" +msgstr[2] "godina" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "mesec" +msgstr[1] "meseci" +msgstr[2] "meseci" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "sedmica" +msgstr[1] "sedmica" +msgstr[2] "sedmica" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dan" +msgstr[1] "dana" +msgstr[2] "dana" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "sat" +msgstr[1] "sati" +msgstr[2] "sati" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuta" +msgstr[1] "minuta" +msgstr[2] "minuta" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekunda" +msgstr[1] "sekundi" +msgstr[2] "sekundi" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "pre %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "upravo" + +#: ../../../app/loader.php:326 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Ova strana ne postoji" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Resetuj lozinku" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Pošalji aktivacijski link" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Dodajte vašu email adresu" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Email promena" + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:128 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "reCAPTCHA nije upisana tačno" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:260 +msgid "Invalid Username/Email" +msgstr "Neispravno korisničko ime/lozinka" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Korisnik nema email" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:287 +#: ../../../app/routes/route.account.php:309 +#: ../../../app/routes/route.account.php:376 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 +#: ../../../app/routes/route.json.php:533 +#: ../../../app/routes/route.json.php:595 +#: ../../../app/routes/route.json.php:644 +#: ../../../app/routes/route.json.php:691 +#: ../../../app/themes/Peafowl/pages/contact.php:17 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +msgid "Request denied" +msgstr "Zahtev odbijen" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Nalog treba biti aktiviran da biste koristili ovu mogućnost" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Nalog je već aktivan" + +#: ../../../app/routes/route.account.php:181 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Dopustite do 15 minuta da email stigne. Možete probati ponovo kasnije" + +#: ../../../app/routes/route.account.php:220 +#, php-format +msgid "Reset your password at %s" +msgstr "Resetujte vašu lozinku na %s" + +#: ../../../app/routes/route.account.php:222 +#: ../../../app/routes/route.account.php:442 +#: ../../../app/routes/route.settings.php:260 +#: ../../../app/routes/route.signup.php:180 +#, php-format +msgid "Confirmation required at %s" +msgstr "Potvrda neophodna na %s" + +#: ../../../app/routes/route.account.php:330 +#: ../../../app/routes/route.signup.php:203 +#, php-format +msgid "Welcome to %s" +msgstr "Dobrodošli %s" + +#: ../../../app/routes/route.account.php:348 +#: ../../../app/routes/route.settings.php:304 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:265 +#: ../../../app/themes/Peafowl/views/settings.php:282 +#: ../../../app/lib/chevereto.js:1270 ../../../app/lib/chevereto.min.js:54 +msgid "Passwords don't match" +msgstr "Šifre se ne poklapaju" + +#: ../../../app/routes/route.account.php:410 +#: ../../../app/routes/route.json.php:571 +#: ../../../app/routes/route.settings.php:220 +#: ../../../app/routes/route.signup.php:137 +msgid "Email already being used" +msgstr "Email je već u upotrebi" + +#: ../../../app/routes/route.account.php:496 +#: ../../../app/routes/route.signup.php:223 +#: ../../../app/themes/Peafowl/pages/contact.php:146 +#: ../../../lib/Peafowl/peafowl.js:194 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Proverite greške u formi kako biste nastavili." + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:663 +#: ../../../app/routes/route.dashboard.php:692 +#: ../../../app/routes/route.dashboard.php:721 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.user.php:131 +#: ../../../app/routes/route.user.php:169 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Najnovije" + +#: ../../../app/routes/route.album.php:88 +#: ../../../app/routes/route.category.php:56 +#: ../../../app/routes/route.dashboard.php:671 +#: ../../../app/routes/route.dashboard.php:700 +#: ../../../app/routes/route.dashboard.php:729 +#: ../../../app/routes/route.explore.php:42 +#: ../../../app/routes/route.user.php:139 +#: ../../../app/routes/route.user.php:175 +msgid "Oldest" +msgstr "Najstarije" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:679 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.user.php:147 +msgid "Most viewed" +msgstr "Najviše pregleda" + +#: ../../../app/routes/route.album.php:107 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:91 +msgid "Share" +msgstr "Podeli" + +#: ../../../app/routes/route.album.php:116 +#: ../../../app/routes/route.image.php:132 +msgid "Full info" +msgstr "Detaljnije informacije" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistika" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:90 +#: ../../../app/routes/route.user.php:197 +#: ../../../app/themes/Peafowl/header.php:364 +#: ../../../app/themes/Peafowl/views/settings.php:77 +#: ../../../app/themes/Peafowl/views/user.php:125 +msgid "Albums" +msgstr "Albumi" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:222 +#: ../../../app/routes/route.search.php:97 +msgid "Users" +msgstr "Korisnici" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:442 +#: ../../../app/themes/Peafowl/header.php:365 +msgid "Settings" +msgstr "Podešavanja" + +#: ../../../app/routes/route.dashboard.php:153 +msgid "Chevereto version" +msgstr "Verzija Chevereto-a" + +#: ../../../app/routes/route.dashboard.php:154 +msgid "update" +msgstr "ažuriranje" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "PHP version" +msgstr "Verzija PHP-a" + +#: ../../../app/routes/route.dashboard.php:165 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:39 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:40 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "MySQL version" +msgstr "MySQL verzija" + +#: ../../../app/routes/route.dashboard.php:173 +msgid "MySQL server info" +msgstr "MySQL informacije o serveru" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "GD Library" +msgstr "GD Bibilioteka" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "File uploads" +msgstr "Fajl otpremanja" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +#: ../../../app/themes/Peafowl/views/dashboard.php:418 +#: ../../../app/themes/Peafowl/views/dashboard.php:438 +#: ../../../app/themes/Peafowl/views/dashboard.php:448 +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +#: ../../../app/themes/Peafowl/views/dashboard.php:623 +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +#: ../../../app/themes/Peafowl/views/dashboard.php:654 +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +#: ../../../app/themes/Peafowl/views/dashboard.php:742 +#: ../../../app/themes/Peafowl/views/dashboard.php:752 +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +#: ../../../app/themes/Peafowl/views/dashboard.php:953 +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:987 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1126 +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +#: ../../../app/themes/Peafowl/views/dashboard.php:1296 +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +#: ../../../app/themes/Peafowl/views/dashboard.php:1330 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1530 +#: ../../../app/themes/Peafowl/views/dashboard.php:1556 +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +#: ../../../app/themes/Peafowl/views/dashboard.php:1641 +#: ../../../app/themes/Peafowl/views/dashboard.php:1660 +#: ../../../app/themes/Peafowl/views/dashboard.php:1705 +msgid "Enabled" +msgstr "Omogućeno" + +#: ../../../app/routes/route.dashboard.php:182 +#: ../../../app/themes/Peafowl/views/dashboard.php:273 +#: ../../../app/themes/Peafowl/views/dashboard.php:283 +#: ../../../app/themes/Peafowl/views/dashboard.php:293 +#: ../../../app/themes/Peafowl/views/dashboard.php:338 +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +#: ../../../app/themes/Peafowl/views/dashboard.php:418 +#: ../../../app/themes/Peafowl/views/dashboard.php:438 +#: ../../../app/themes/Peafowl/views/dashboard.php:448 +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:610 +#: ../../../app/themes/Peafowl/views/dashboard.php:623 +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +#: ../../../app/themes/Peafowl/views/dashboard.php:654 +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +#: ../../../app/themes/Peafowl/views/dashboard.php:693 +#: ../../../app/themes/Peafowl/views/dashboard.php:732 +#: ../../../app/themes/Peafowl/views/dashboard.php:742 +#: ../../../app/themes/Peafowl/views/dashboard.php:752 +#: ../../../app/themes/Peafowl/views/dashboard.php:898 +#: ../../../app/themes/Peafowl/views/dashboard.php:953 +#: ../../../app/themes/Peafowl/views/dashboard.php:963 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:987 +#: ../../../app/themes/Peafowl/views/dashboard.php:997 +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +#: ../../../app/themes/Peafowl/views/dashboard.php:1126 +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +#: ../../../app/themes/Peafowl/views/dashboard.php:1296 +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +#: ../../../app/themes/Peafowl/views/dashboard.php:1330 +#: ../../../app/themes/Peafowl/views/dashboard.php:1340 +#: ../../../app/themes/Peafowl/views/dashboard.php:1530 +#: ../../../app/themes/Peafowl/views/dashboard.php:1556 +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +#: ../../../app/themes/Peafowl/views/dashboard.php:1615 +#: ../../../app/themes/Peafowl/views/dashboard.php:1641 +#: ../../../app/themes/Peafowl/views/dashboard.php:1660 +#: ../../../app/themes/Peafowl/views/dashboard.php:1705 +msgid "Disabled" +msgstr "Onemogućeno" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "Max. upload size" +msgstr "Maksimalna veličina otpremanja" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "Max. post size" +msgstr "Maksimalna veličina objave" + +#: ../../../app/routes/route.dashboard.php:193 +msgid "Max. execution time" +msgstr "Maksimalno vreme izvršavanja" + +#: ../../../app/routes/route.dashboard.php:194 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekundi" +msgstr[2] "%d sekundi" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Memory limit" +msgstr "Ograničenje memorije" + +#: ../../../app/routes/route.dashboard.php:217 +#: ../../../app/themes/Peafowl/views/settings.php:322 +msgid "Website" +msgstr "Web sajt" + +#: ../../../app/routes/route.dashboard.php:218 +msgid "Content" +msgstr "Sadržaj" + +#: ../../../app/routes/route.dashboard.php:219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1191 +msgid "Listings" +msgstr "Listings" + +#: ../../../app/routes/route.dashboard.php:220 +msgid "Image upload" +msgstr "Upload slika" + +#: ../../../app/routes/route.dashboard.php:221 +msgid "Categories" +msgstr "Kategorije" + +#: ../../../app/routes/route.dashboard.php:223 +#: ../../../app/themes/Peafowl/views/dashboard.php:680 +msgid "Flood protection" +msgstr "Zaštita od poplava" + +#: ../../../app/routes/route.dashboard.php:224 +#: ../../../app/themes/Peafowl/views/dashboard.php:820 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:225 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:1177 +msgid "Homepage" +msgstr "Početna" + +#: ../../../app/routes/route.dashboard.php:226 +msgid "Banners" +msgstr "Baneri" + +#: ../../../app/routes/route.dashboard.php:227 +msgid "System" +msgstr "Sistem" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:231 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Socijalne mreže" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "External services" +msgstr "Spoljni servisi" + +#: ../../../app/routes/route.dashboard.php:269 +#: ../../../app/themes/Peafowl/header.php:174 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Sve" + +#: ../../../app/routes/route.dashboard.php:274 +#: ../../../app/routes/route.image.php:147 +#: ../../../app/themes/Peafowl/views/dashboard.php:1413 +msgid "search content" +msgstr "pretraži sadržaj" + +#: ../../../app/routes/route.dashboard.php:311 +msgid "Invalid website name" +msgstr "Neispravno ime web sajta" + +#: ../../../app/routes/route.dashboard.php:316 +msgid "Invalid language" +msgstr "Neispravan jezik" + +#: ../../../app/routes/route.dashboard.php:321 +msgid "Invalid timezone" +msgstr "Neispravna vremenska zona" + +#: ../../../app/routes/route.dashboard.php:326 +#: ../../../app/routes/route.dashboard.php:361 +#: ../../../app/routes/route.dashboard.php:471 +#: ../../../app/routes/route.dashboard.php:605 +msgid "Invalid value" +msgstr "Neispravna vrednost" + +#: ../../../app/routes/route.dashboard.php:331 +msgid "Invalid upload storage mode" +msgstr "Režim skladištenja uploada slika" + +#: ../../../app/routes/route.dashboard.php:336 +msgid "Invalid upload filenaming" +msgstr "Neispravno imenovanje uploada" + +#: ../../../app/routes/route.dashboard.php:341 +msgid "Invalid thumb width" +msgstr "Neispravna veličina sličice" + +#: ../../../app/routes/route.dashboard.php:346 +msgid "Invalid thumb height" +msgstr "Pogrešna visina slike za pregled" + +#: ../../../app/routes/route.dashboard.php:351 +msgid "Invalid medium width" +msgstr "Pogrešna srednja širina" + +#: ../../../app/routes/route.dashboard.php:356 +msgid "Invalid theme" +msgstr "Neispravna tema" + +#: ../../../app/routes/route.dashboard.php:366 +msgid "Invalid theme tone" +msgstr "Pogrešna vrsta teme" + +#: ../../../app/routes/route.dashboard.php:386 +msgid "Invalid theme image listing size" +msgstr "Pogrešna veličina slike za listanje u temi" + +#: ../../../app/routes/route.dashboard.php:391 +msgid "Invalid user id" +msgstr "Pogrešan korisnički ID" + +#: ../../../app/routes/route.dashboard.php:396 +msgid "Invalid email mode" +msgstr "Neispravan email mod" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Invalid SMTP port" +msgstr "Neispravan SMTP port" + +#: ../../../app/routes/route.dashboard.php:406 +msgid "Invalid SMTP security" +msgstr "Pogrešna SMTP sigurnost" + +#: ../../../app/routes/route.dashboard.php:411 +msgid "Invalid website mode" +msgstr "Neispravan mod sajta" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Invalid website content privacy mode" +msgstr "Neispravan mod privatnosti sadržaja sajta" + +#: ../../../app/routes/route.dashboard.php:447 +msgid "Invalid upload image path" +msgstr "Neispravna putanja za upload slika" + +#: ../../../app/routes/route.dashboard.php:474 +#, php-format +msgid "Max. allowed %s" +msgstr "Max. dopušteno %s" + +#: ../../../app/routes/route.dashboard.php:524 +msgid "Invalid SMTP server" +msgstr "Neispravan SMTP server" + +#: ../../../app/routes/route.dashboard.php:525 +msgid "Invalid SMTP username" +msgstr "Neispravno SMTP korisničko ime" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid URL" +msgstr "Pogrešan URL" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Top users" +msgstr "Top članovi" + +#: ../../../app/routes/route.dashboard.php:775 +#: ../../../app/themes/Peafowl/header.php:367 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Panel" + +#: ../../../app/routes/route.explore.php:81 +#: ../../../app/themes/Peafowl/header.php:184 +#: ../../../app/themes/Peafowl/header.php:202 +#: ../../../app/themes/Peafowl/views/dashboard.php:280 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Istraži" + +#: ../../../app/routes/route.image.php:118 +#: ../../../app/themes/Peafowl/header.php:381 +msgid "About" +msgstr "O nama" + +#: ../../../app/routes/route.image.php:125 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:85 +msgid "Embed codes" +msgstr "Kodovi" + +#: ../../../app/routes/route.image.php:142 +msgid "Image ID" +msgstr "ID slike" + +#: ../../../app/routes/route.image.php:146 +msgid "Uploader IP" +msgstr "IP Uploadera" + +#: ../../../app/routes/route.image.php:150 +msgid "Upload date" +msgstr "Datum uploada" + +#: ../../../app/routes/route.image.php:175 +#, php-format +msgid "%s images" +msgstr "%s slike" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:232 +#: ../../../app/routes/route.json.php:718 +#: ../../../app/routes/route.json.php:782 +#: ../../../app/routes/route.json.php:883 +#: ../../../app/routes/route.json.php:1026 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Neophodna prijava" + +#: ../../../app/routes/route.json.php:540 +#: ../../../app/routes/route.json.php:602 +msgid "Missing values" +msgstr "Nedostaju vrijednosti" + +#: ../../../app/routes/route.json.php:561 +msgid "Invalid role" +msgstr "Pogrešna uloga" + +#: ../../../app/routes/route.json.php:566 +msgid "Username already being used" +msgstr "Korisničko ime je zauzeto" + +#: ../../../app/routes/route.json.php:1063 +#, php-format +msgid "%s has been disconnected." +msgstr "%s je diskonektovan." + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Pogrešena kombinacija korisničkog imena/email i lozinke" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:265 +#: ../../../app/themes/Peafowl/header.php:271 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Prijavi se" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Odjavi se" + +#: ../../../app/routes/route.search.php:129 +#: ../../../app/themes/Peafowl/header.php:211 +#: ../../../app/themes/Peafowl/header.php:216 +#: ../../../app/themes/Peafowl/views/dashboard.php:270 +msgid "Search" +msgstr "Pretraga" + +#: ../../../app/routes/route.settings.php:58 +msgid "Account" +msgstr "Nalog" + +#: ../../../app/routes/route.settings.php:59 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:60 +#: ../../../app/themes/Peafowl/header.php:288 +#: ../../../app/themes/Peafowl/header.php:336 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:51 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:274 +#: ../../../app/themes/Peafowl/views/signup.php:44 +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "Password" +msgstr "Lozinka" + +#: ../../../app/routes/route.settings.php:61 +msgid "Linked accounts" +msgstr "Povezani nalozi" + +#: ../../../app/routes/route.settings.php:246 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Email je poslat na %s sa uputstvom za aktivaciju ovog email naloga" + +#: ../../../app/routes/route.settings.php:279 +#: ../../../app/themes/Peafowl/pages/contact.php:22 +msgid "Invalid name" +msgstr "Pogrešno ime" + +#: ../../../app/routes/route.settings.php:282 +msgid "Invalid website" +msgstr "Pogrešan vebsajt" + +#: ../../../app/routes/route.settings.php:290 +msgid "Wrong password" +msgstr "Pogrešna lozinka" + +#: ../../../app/routes/route.settings.php:293 +msgid "Use a new password" +msgstr "Koristi novu lozinku" + +#: ../../../app/routes/route.settings.php:360 +#: ../../../app/themes/Peafowl/views/dashboard.php:1751 +#: ../../../app/themes/Peafowl/views/settings.php:409 +msgid "Changes have been saved." +msgstr "Promene su sačuvane" + +#: ../../../app/routes/route.settings.php:379 +msgid "Password has been changed" +msgstr "Lozinka je promenjena" + +#: ../../../app/routes/route.settings.php:384 +msgid "Password has been created." +msgstr "Lozinka je kreirana" + +#: ../../../app/routes/route.settings.php:399 +msgid "Wrong Username/Email values" +msgstr "Pogrešno korisničko ime ili email" + +#: ../../../app/routes/route.settings.php:442 +#, php-format +msgid "Settings for %s" +msgstr "Podešavanja za %s" + +#: ../../../app/routes/route.signup.php:238 +#: ../../../app/themes/Peafowl/header.php:312 +#: ../../../app/themes/Peafowl/header.php:318 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:58 +msgid "Create account" +msgstr "Napravi nalog" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Images" +msgstr "%s's Slike" + +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/user.php:124 +#, php-format +msgid "%s's Albums" +msgstr "%s's Albume" + +#: ../../../app/themes/Peafowl/header.php:229 +#: ../../../app/themes/Peafowl/views/dashboard.php:290 +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Random" +msgstr "Nasumično" + +#: ../../../app/themes/Peafowl/header.php:254 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Upload" +msgstr "Upload" + +#: ../../../app/themes/Peafowl/header.php:277 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:71 +msgid "Sign in with another account" +msgstr "Prijavite se sa drugim nalogom" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/header.php:328 +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:32 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:68 +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.js:2192 +#: ../../../lib/Peafowl/peafowl.min.js:29 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "or" +msgstr "ili" + +#: ../../../app/themes/Peafowl/header.php:287 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Korisničko ime ili Email adresa" + +#: ../../../app/themes/Peafowl/header.php:290 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "Ostavi me prijavljenog" + +#: ../../../app/themes/Peafowl/header.php:297 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Nemate nalog? <a href='%s'>Registrujte se</a> odmah." + +#: ../../../app/themes/Peafowl/header.php:324 +msgid "Sign up with another account" +msgstr "Registrujte se sa drugim nalogom" + +#: ../../../app/themes/Peafowl/header.php:334 +#: ../../../app/themes/Peafowl/pages/contact.php:106 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +msgid "Email address" +msgstr "Email adresa" + +#: ../../../app/themes/Peafowl/header.php:335 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:137 +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Korisničko ime" + +#: ../../../app/themes/Peafowl/header.php:337 +#: ../../../app/themes/Peafowl/views/signup.php:60 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "Registracijom se slažete sa našim <a href=\"%s\">Uslovima korišćenja</a>" + +#: ../../../app/themes/Peafowl/header.php:363 +msgid "My Profile" +msgstr "Moj Profil" + +#: ../../../app/themes/Peafowl/header.php:369 +msgid "Sign out" +msgstr "Odjavi se" + +#: ../../../app/themes/Peafowl/header.php:385 +msgid "Terms of service" +msgstr "Uslovi korišćenja" + +#: ../../../app/themes/Peafowl/header.php:386 +msgid "Privacy" +msgstr "Politika privatnosti" + +#: ../../../app/themes/Peafowl/header.php:387 +#: ../../../app/themes/Peafowl/pages/contact.php:4 +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Contact" +msgstr "Kontakt" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Primi smo zahtev za promenu email adrese <a href=\"%u\">%n</a> na %w" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Da dovršite proces morate <a href=\"%s\">aktivirati vaš email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativno možete kopirati i preneti URL u vaš browser <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Ako niste hteli ovo, samo ignorirajte ovu poruku" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Zahtev je urađen sa IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Primi smo zathev za registraciju %n naloga na%w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Da dovršite proces morate <a href=\"%s\">aktivirati vaš nalog</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Primi smo zahtev za reset vaše lozinke za vaš <a href=\"%u\">%n</a> nalog." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Da resetujte lozinku <a href=\"%s\">pratite ovaj link</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Ćao %n, dobrodošli na %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Sada kada imate nalog spremni ste da uživate upload-ujući slike, kreirati albume i još mnogo toga." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Hvala vam što ste se pridružili" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Email je poslan sa %w %u" + +#: ../../../app/themes/Peafowl/pages/contact.php:10 +msgid "General questions/comments" +msgstr "Generalna pitanja/komentari" + +#: ../../../app/themes/Peafowl/pages/contact.php:11 +msgid "DMCA complaint" +msgstr "DMCA žalba" + +#: ../../../app/themes/Peafowl/pages/contact.php:25 +msgid "Invalid message" +msgstr "Neispravna poruka" + +#: ../../../app/themes/Peafowl/pages/contact.php:28 +msgid "Invalid subject" +msgstr "Neispravan naslov" + +#: ../../../app/themes/Peafowl/pages/contact.php:36 +msgid "Invalid reCAPTCHA" +msgstr "Neispravan reCAPTCHA" + +#: ../../../app/themes/Peafowl/pages/contact.php:81 +msgid "Mail error" +msgstr "Greška email-a" + +#: ../../../app/themes/Peafowl/pages/contact.php:93 +msgid "Message sent" +msgstr "Poruka poslata" + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "We will be in touch soon." +msgstr "Uskoro ćemo vas kontaktirati" + +#: ../../../app/themes/Peafowl/pages/contact.php:99 +msgid "If you want to send a message fill the form below." +msgstr "Ako želite da pošaljete poruku, popunite formular ispod." + +#: ../../../app/themes/Peafowl/pages/contact.php:101 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:523 +#: ../../../app/themes/Peafowl/views/dashboard.php:1396 +#: ../../../app/themes/Peafowl/views/settings.php:316 +msgid "Name" +msgstr "Ime" + +#: ../../../app/themes/Peafowl/pages/contact.php:102 +msgid "Your name" +msgstr "Vaše ime" + +#: ../../../app/themes/Peafowl/pages/contact.php:107 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:144 +msgid "Your email address" +msgstr "Vaša email adresa" + +#: ../../../app/themes/Peafowl/pages/contact.php:111 +msgid "Subject" +msgstr "Naslov" + +#: ../../../app/themes/Peafowl/pages/contact.php:125 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Message" +msgstr "Poruka" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +msgid "Send message" +msgstr "Pošalji poruku" + +#: ../../../app/themes/Peafowl/pages/contact.php:137 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../lib/Peafowl/peafowl.js:2193 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "cancel" +msgstr "otkaži" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop images here to upload" +msgstr "Prevuci i pusti slike ovde za upload" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Izaberite slike za upload" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:15 +msgid "You can also <a data-trigger=\"anywhere-upload-input\">browse from your computer</a> or <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">add image URLs</a>." +msgstr "Možete takođe <a data-trigger=\"anywhere-upload-input\">potražiti slike na vašem računaru</a> ili <a data-modal=\"form\" data-target=\"anywhere-upload-paste-url\">dodajte URL slike</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:16 +msgid "You can also <a data-trigger=\"anywhere-upload-input-camera\">take a picture</a>." +msgstr "Možete takođte <a data-trigger=\"anywhere-upload-input-camera\">da slika</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:20 +msgid "Uploading <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">images</span>" +msgstr "Upload <span data-text=\"queue-size\">0</span> <span data-text=\"queue-objects\">slika</span>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:21 +msgid "The queue is being uploaded. It will take just a few seconds to complete." +msgstr "Upload slika koje čekaju u redu je u toku. Još nekoliko sekundi do kraja." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:25 +msgid "Upload complete" +msgstr "Upload je završen" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +#, php-format +msgid "Content added to <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">public stream</a>. You can <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">create an album</a> or <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">move the <span data-text=\"queue-objects\">images</span></a> to an existing album." +msgstr "Sadržaj dodat u <a data-text=\"upload-target\" data-link=\"upload-target\" href=\"%s\">javni pregled</a>. Možete <a data-modal=\"form\" data-target=\"form-uploaded-create-album\">kreirati album</a> ili <a data-modal=\"form\" data-target=\"form-uploaded-move-album\">premestiti <span data-text=\"queue-objects\">slike</span></a> u postojeći album." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:28 +msgid "You can <a href=\"%s\">create an account</a> or <a href=\"%l\">sign in</a> to save future uploads in your account." +msgstr "Možete <a href=\"%s\">kreirati nalog</a> ili <a href=\"%l\">prijaviti</a> da sačuvate buduće uploade na nalog." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:33 +msgid "No <span data-text=\"queue-objects\">images</span> have been uploaded" +msgstr "Nema uploadovanih <span data-text=\"queue-objects\">slika</span>" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:34 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Došlo je do greške i sistem ne može da obradi vaš zahtev." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:54 +msgid "Select category" +msgstr "Izaberi kategoriju" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:69 +msgid "Change upload privacy" +msgstr "Promeni privatnost uploada" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Mark this if the upload is not family safe" +msgstr "Označi ovo ako je upload neprikladnog sadržaja" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:70 +msgid "Not family safe upload" +msgstr "Upload neprikladnog sadržaja" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +msgid "Uploading" +msgstr "Uploadovanje" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:73 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "cancel remaining" +msgstr "otkaži preostalo" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "Note: Some images couldn't be uploaded." +msgstr "Napomena: Neke slike nije moguće uploadovati" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:78 +msgid "learn more" +msgstr "saznaj više" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:79 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Proveri <a data-modal=\"simple\" data-target=\"failed-upload-result\">izveštaj o greškama</a> za više informacija." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:82 +msgid "max" +msgstr "maksimalno" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:84 +msgid "close" +msgstr "zatvori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:143 +msgid "Add image URLs" +msgstr "Dodaj URL adrese slika" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:145 +msgid "Add the image URLs here" +msgstr "Dodaj URL slika ovde" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:160 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:26 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Napravi album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:161 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Uploadovani sadržaj biće premešten u novi album. Takođe možete premestiti sadržaj u <a class=\"modal-switch\" data-switch=\"move-existing-album\">postojeći album</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:172 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Premestu u album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Označi postojeći album kako bi premestio upload sadržaj. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">napraviti novi album</a> i premestiti sadržaj tamo." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:189 +msgid "Error report" +msgstr "Izveštaj o greškama" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:87 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "albuma" +msgstr[2] "albumi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Linkovi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Linkovi za pregled" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direktni linkovi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML kodovi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML embed" +msgstr "HTML ugradnja" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML original linked" +msgstr "HTML originalno linkovano" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML srednji link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML link slike za pregled" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBKodovi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode embed" +msgstr "BBKod ugradnja" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode original linked" +msgstr "BBKod originalno linkovano" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode medij linkovan" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBKod linkovana slika za pregled" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategorija" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +msgid "Album name" +msgstr "Ime albuma" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Untitled album" +msgstr "Neimenovani album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "move to existing album" +msgstr "premesti u postojeći album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +msgid "Album description" +msgstr "Opis albuma" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:18 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:1069 +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "optional" +msgstr "opcionalno" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Brief description of this album" +msgstr "Kratak opis ovog albuma" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:24 +msgid "Album Privacy" +msgstr "Privatnost albuma" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:25 +msgid "Who can view this content" +msgstr "Ko može videti sadržaj" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:26 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Public" +msgstr "Javno" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:27 +msgid "Private (just me)" +msgstr "Privatno (samo ja)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:28 +msgid "Private (anyone with the link)" +msgstr "Privatno (samo sa linkom)" + +#: ../../../app/themes/Peafowl/snippets/form_category.php:9 +msgid "No category" +msgstr "Nema kategorije" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Naziv kategorije" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:524 +msgid "URL key" +msgstr "URL ključ" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "URL ključ kategorije" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +msgid "Description" +msgstr "Opis" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Kratak opis ove kategorije" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Označi ovo ukoliko je slika neprikladnog sadržaja" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:36 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Označi kao neprikladno" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Kratak opis ove slike" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Postojeći album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2341 ../../../app/lib/chevereto.js:3254 +#: ../../../app/lib/chevereto.min.js:115 ../../../app/lib/chevereto.min.js:162 +msgid "private" +msgstr "privatno" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "kreiraj novu album" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "pogledaj više" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Učitaj više" + +#: ../../../app/themes/Peafowl/snippets/listing.php:91 +msgid "Previous" +msgstr "Prethodno" + +#: ../../../app/themes/Peafowl/snippets/listing.php:98 +msgid "Next" +msgstr "Sledeće" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Označi sve" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:11 +msgid "Selection" +msgstr "Izbor" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:12 +msgid "Action" +msgstr "Radnja" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:19 +msgid "Get embed codes" +msgstr "Preuzmi kodove" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:35 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Označi kao provereno" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:40 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#: ../../../app/themes/Peafowl/views/dashboard.php:581 +msgid "Delete" +msgstr "Obriši" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:41 +msgid "Clear selection" +msgstr "Poništi označeno" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "Da biste koristili sve ove mogućnosti morate biti prijavljeni. Ukoliko nemate nalog možete se <a href=\"%s\">registrovati</a> odmah." + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +msgid "forgot?" +msgstr "zaboravili?" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +msgid "Link" +msgstr "Link" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:282 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Napomena: Ovaj sadržaj je privatan. Promenite privatnost u \"javno\" da biste podelili." + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Nema šta ovde da se pokaže." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:75 +#: ../../../app/themes/Peafowl/views/image.php:441 +msgid "Edit image details" +msgstr "Izmeni detalje slike" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Izmeni detalje albuma" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Sve ove slike biće premeštene u novi napravljeni album. Takođe možete premestiti slike u <a class=\"modal-switch\" data-switch=\"move-existing-album\">postojeći album</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Označite postojeći album kako biste premestili sliku. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">napraviti novi album</a> i premestiti sliku tamo." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Izaberite postojeći album da prebacite sadržaj albuma. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">kreirati novi album</a> i prebaciti saržaj tu." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Označite postojeći album kako biste premestili slike. Takođe možete <a class=\"modal-switch\" data-switch=\"move-new-album\">napraviti novi album</a> i premestiti slike tamo." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Potvrdi oznaku oznaku sadržaja kao proverenu" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Da li zaista hoćete da označite ovaj sadržaj kao proveren?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Potvrdi oznaku sadržaja kao neproverenu" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Da li zaista hoćete da označite ovaj sadržaj kao neproveren?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Potvrdite brisanje" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Da li ste sigurni da želite da ukolnite ovaj sadržaj? Ovo je trajno." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Da li ste sigurni da želite da ukolnite ceo ovaj označeni sadržaj? Ovo je trajno." + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_guest.php:2 +msgid "Uploaded by guest to Public" +msgstr "Uploaduj kao gost za javnost" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Od %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +msgid "From %a by %u" +msgstr "Od %a po %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/lib/chevereto.js:3186 ../../../app/lib/chevereto.min.js:157 +#: ../../../lib/Peafowl/peafowl.js:625 ../../../lib/Peafowl/peafowl.min.js:36 +msgid "Select" +msgstr "Izaberi" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Izmeni" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Tražena strana nije nađena" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Potražite nešta drugo" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Korisnik je obrisan" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:158 +#: ../../../app/lib/chevereto.js:3163 ../../../app/lib/chevereto.min.js:155 +msgid "The content has been deleted." +msgstr "Sadržaj je obrisan" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Vaš nalog je skoro spreman" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Email je poslan na %s sa uputstvima za aktiviranje naloga. Aktivacijski link je valjan 48 sati." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Idi na naslovnu" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Pošalji ponovo aktivaciju" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Uspešno ste promenili email naloga u %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Idi na moj profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Potvrdni link će biti poslan sa detaljima kako aktivirati nalog" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:26 +msgid "Add email" +msgstr "Dodaj email" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Email sa instrukcijama za resetovanje lozinke je poslat na vaš email koji ste koristili prilikom registracije. Ako niste primili email proverite vaše foldere za Junk/Spam." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Ponovo pošalji instrukcije" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:989 ../../../app/lib/chevereto.js:1065 +#: ../../../app/lib/chevereto.js:1143 ../../../app/lib/chevereto.js:1293 +#: ../../../app/lib/chevereto.min.js:44 ../../../app/lib/chevereto.min.js:48 +#: ../../../app/lib/chevereto.min.js:52 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2422 ../../../lib/Peafowl/peafowl.js:2937 +#: ../../../lib/Peafowl/peafowl.min.js:138 +#: ../../../lib/Peafowl/peafowl.min.js:169 +msgid "An error occurred. Please try again later." +msgstr "Došlo je do greške. Molimo pokušajte ponovo kasnije." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Prethodni email je poslan sa instrukcijama za reset, ako ga niste dobili proverite vaš folder za email smeće." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "Upišite vaše korisničko ime ili email adresu koju ste koristili prilikom pravljenja naloga." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:407 ../../../lib/Peafowl/peafowl.js:2191 +#: ../../../lib/Peafowl/peafowl.min.js:23 +#: ../../../lib/Peafowl/peafowl.min.js:120 +msgid "Submit" +msgstr "Pošalji" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Vaša lozinkia je promenjenea. Možete se sada probati prijaviti sa novom lozinkom" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Prijavi se sada" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "Upišite novu lozinku koju želite da koristite." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "Nova lozinka" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:258 +#: ../../../app/themes/Peafowl/views/settings.php:275 +#: ../../../app/themes/Peafowl/views/signup.php:45 +#, php-format +msgid "%d characters min" +msgstr "min znakova %d" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:258 +msgid "Enter your new password" +msgstr "Upišite vašu novu lozinku" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:280 +msgid "Confirm password" +msgstr "Potvrdite novu lozinku" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:264 +msgid "Re-enter your new password" +msgstr "Ponovite novu lozinku" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account.n\\If you don't receive the instructions try checking your junk or spam filters." +msgstr "Email za %s je poslat sa instrukcijama kako aktivirati vaš nalog.n\\Ako niste primili email proverite vaše foldere za Junk/Spam." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:19 +msgid "Enter the email address that you used to create your account to continue." +msgstr "Da nastavite, upišite email adresu koju ste koristili prilikom otvaranja naloga." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +msgid "This content is private" +msgstr "Sadžaj je privatan" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Dali stvarno želite obrisati ovaj album i sve slike? Ovo je nepovratno" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Obriši album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Link albuma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "slika" +msgstr[1] "slika" +msgstr[2] "slika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:120 +msgid "User" +msgid_plural "Users" +msgstr[0] "Član" +msgstr[1] "Članova" +msgstr[2] "Članova" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1435 +msgid "Disk used" +msgstr "Iskorišćenost prostora" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Dodaj korisnika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:115 +msgid "Role" +msgstr "Uloga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:119 +msgid "Administrator" +msgstr "Administrator" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Dodaj kategoriju" + +#: ../../../app/themes/Peafowl/views/dashboard.php:197 +msgid "Website name" +msgstr "Naziv vebsajta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:202 +msgid "Website doctitle" +msgstr "Podnaslov vebsajta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:206 +msgid "Website description" +msgstr "Opis vebsajta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:211 +msgid "Website keywords" +msgstr "Ključne riječi websajta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:232 +msgid "Default time zone" +msgstr "Podrazumevana vremenska zona" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Select region" +msgstr "Izaberi region" + +#: ../../../app/themes/Peafowl/views/dashboard.php:286 +msgid "Enable this if you want to allow the explore page." +msgstr "Aktivirate ovo ako želite omogućiti ISTRAŽI stranicu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:302 +msgid "Website mode" +msgstr "Mod sajta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +msgid "Private" +msgstr "Privatno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:309 +msgid "Private mode will make the website only available for registered users." +msgstr "Privatni mod će sajt prikazivati samo registrovanim korisnicima." + +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +msgid "Content privacy mode" +msgstr "Privatni mod sadržaja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:319 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +#: ../../../app/themes/Peafowl/views/dashboard.php:1114 +msgid "Default" +msgstr "Podrazumevani" + +#: ../../../app/themes/Peafowl/views/dashboard.php:320 +msgid "Force private (self)" +msgstr "Forsiraj privatni (za sebe)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:321 +msgid "Force private (anyone with the link)" +msgstr "Forsiraj privatni (za sve sa linkom)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:326 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Forsirani privatni mod će zaobići korisnički izabranu privatnost" + +#: ../../../app/themes/Peafowl/views/dashboard.php:335 +msgid "Enable uploads" +msgstr "Uključi upload" + +#: ../../../app/themes/Peafowl/views/dashboard.php:341 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Aktivirajte ovu opciju ako želite da omogućite uplaod. Ovo podešavanje ne utiče na administratore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Guest uploads" +msgstr "Upload za goste" + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Omogućite ovo ako želite da gosti uploaduju slike." + +#: ../../../app/themes/Peafowl/views/dashboard.php:357 +msgid "Max. filesize" +msgstr "Maksimalna veličina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:360 +#, php-format +msgid "Max. allowed filesize. (Max allowed by server is %s)" +msgstr "Maksimalna dopuštena veličina (maksimalno dopušteno od strane servera %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Image path" +msgstr "Putanja slike" + +#: ../../../app/themes/Peafowl/views/dashboard.php:364 +msgid "Relative to Chevereto root" +msgstr "Relativna prema Chevereto bazi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Gdje želite sačuvati slike? Relativno to Chevereto glavnom folderu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:369 +msgid "Storage mode" +msgstr "Mod čuvanja" + +#: ../../../app/themes/Peafowl/views/dashboard.php:372 +msgid "Datefolders" +msgstr "Vremenski naziv foldera" + +#: ../../../app/themes/Peafowl/views/dashboard.php:372 +msgid "Direct" +msgstr "Direktno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:375 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Vremenski nazivi foldera kreiraju strukturu %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:378 +msgid "File naming method" +msgstr "Metoda označavanja naziva fajla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Original" +msgstr "Izvorno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Mixed" +msgstr "Izmešano" + +#: ../../../app/themes/Peafowl/views/dashboard.php:384 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"Mixed\" is a combination of both methods." +msgstr "\"Orginalno\" će probati da zadrži ime slike dok će \"Nasumično\" kreirati nasumično ime. \"Miješano\" je kombinacije ove dve metode." + +#: ../../../app/themes/Peafowl/views/dashboard.php:390 +msgid "Thumb size" +msgstr "Veličina slike za pregled" + +#: ../../../app/themes/Peafowl/views/dashboard.php:401 +msgid "Thumbnails will be fixed to this size." +msgstr "Slike za pregled biće fiksirane na ovu veličinu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:404 +msgid "Medium size" +msgstr "Srednja veličina" + +#: ../../../app/themes/Peafowl/views/dashboard.php:409 +msgid "Height will be automatic calculated." +msgstr "Visina će automatski biti izračunata." + +#: ../../../app/themes/Peafowl/views/dashboard.php:422 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Aktivirajte ovo ako želite dodati logo ili bilo šta drugo na stranici uploada" + +#: ../../../app/themes/Peafowl/views/dashboard.php:429 +#: ../../../app/themes/Peafowl/views/dashboard.php:889 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Upozorenje. Nemoguć upis u %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:466 +msgid "Watermark image" +msgstr "Vodeni žig" + +#: ../../../app/themes/Peafowl/views/dashboard.php:472 +msgid "Watermark image to use. Must be a PNG." +msgstr "Slika vodenog žiga za korištenje. Mora biti PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Watermark position" +msgstr "Pozicija vodenog žiga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:479 +msgid "left top" +msgstr "levo vrh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:480 +msgid "left center" +msgstr "levo centar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:481 +msgid "left bottom" +msgstr "levo dno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "center top" +msgstr "centar vrh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:483 +msgid "center center" +msgstr "centar centar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:484 +msgid "center bottom" +msgstr "centar dno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:485 +msgid "right top" +msgstr "desno vrh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +msgid "right center" +msgstr "desno centar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "right bottom" +msgstr "desno dno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:492 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Relativna pozicija slike vodenog žiga. Prvo horizontalno poravnanje a zatim vertikalno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:495 +msgid "Watermark margin" +msgstr "Margina vodenog žiga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:500 +msgid "Margin from the border of the image to the watermark image." +msgstr "Margina od granica slike do slike vodenog žiga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Watermark opacity" +msgstr "Providnost vodenog žiga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:508 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Providnost vodenog žiga na finalnoj slici. Može biti od 0 do 100" + +#: ../../../app/themes/Peafowl/views/dashboard.php:548 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Napomena: Brisanjem kategorije se ne brišu i slike koje pripadaju toj kategoriji." + +#: ../../../app/themes/Peafowl/views/dashboard.php:550 +msgid "Edit category" +msgstr "Izmeni kategoriju" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +msgid "Enable signups" +msgstr "Aktiviraj registracije" + +#: ../../../app/themes/Peafowl/views/dashboard.php:613 +msgid "Enable this if you want to allow users to signup." +msgstr "Aktivirate ovo ako želite dopustiti registracije" + +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Blokira upload slika po IP adresi ako sistem primjeti veliki upload slika odjednom" + +#: ../../../app/themes/Peafowl/views/dashboard.php:690 +msgid "Notify to email" +msgstr "Obavesti putem email-a" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Ako je aktivno sistem će poslati obavest o velikom broju pokušaja uploada slika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:699 +msgid "Minute limit" +msgstr "Limit po minuti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Hourly limit" +msgstr "Limit po satu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:709 +msgid "Daily limit" +msgstr "Dnevni limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:714 +msgid "Weekly limit" +msgstr "Sedmični limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:719 +msgid "Monthly limit" +msgstr "Mesečni limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:729 +msgid "Show not safe content in listings" +msgstr "Prikaži nesigurne sadržaje u pregledu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:739 +msgid "Show banners in not safe content" +msgstr "Prikaži banere u neprikladnim sadržajima" + +#: ../../../app/themes/Peafowl/views/dashboard.php:745 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Omogućite ovu opciju ukoliko želite da prikažete banere na stranama sa neprikladnim sadržajem." + +#: ../../../app/themes/Peafowl/views/dashboard.php:749 +msgid "Show not safe content in random mode" +msgstr "Prikaži neprikladan sadržaj u nasumičnom modu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:760 +msgid "List items per page" +msgstr "Prikaži sadržaje po stranici" + +#: ../../../app/themes/Peafowl/views/dashboard.php:763 +msgid "How many items should be displayed per page listing." +msgstr "Koliko sadržaja treba da bude prikazano po stranici" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "List pagination mode" +msgstr "Izlistaj mod paginacije" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Endless scrolling" +msgstr "Beskonačno skrulovanje" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Classic pagination" +msgstr "Klasična paginacija" + +#: ../../../app/themes/Peafowl/views/dashboard.php:774 +msgid "What pagination method should be used." +msgstr "Koja metoda paginacije treba da se koristi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:778 +msgid "Image listing size" +msgstr "Veličina slike za listanje" + +#: ../../../app/themes/Peafowl/views/dashboard.php:781 +msgid "Fluid" +msgstr "Fluidno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:781 +msgid "Fixed" +msgstr "Fiksno" + +#: ../../../app/themes/Peafowl/views/dashboard.php:785 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Obe metode koriste fiksnu širinu međutim fluidna metoda koristi automatski proračunatu visinu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:818 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Dodajte vašu temu u %s folder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:837 +msgid "Tone" +msgstr "Vrsta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:840 +msgid "Light" +msgstr "Svetla" + +#: ../../../app/themes/Peafowl/views/dashboard.php:840 +msgid "Dark" +msgstr "Tamna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:895 +msgid "Enable vector logo" +msgstr "Aktiviraj vektorski logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Aktiviratje vektor logo za visoko kvalitetni logo za uređjate velike rezolucije i broja piksela" + +#: ../../../app/themes/Peafowl/views/dashboard.php:907 +#: ../../../app/themes/Peafowl/views/dashboard.php:1069 +msgid "Vector logo image" +msgstr "Slika vektorskog loga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:913 +msgid "Vector version or your website logo in SVG format." +msgstr "Vektorska verzija na vašem sajtu loga u SVG formatu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:919 +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Raster logo image" +msgstr "Raster slika loga" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Bitmap verzija vašeg loga. PNG format je preporučen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:938 +msgid "Favicon image" +msgstr "Favicon slika" + +#: ../../../app/themes/Peafowl/views/dashboard.php:944 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicion slika. Slika mora imati visinu i širinu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:950 +msgid "Enable download button" +msgstr "Aktiviraj download dugme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:956 +msgid "Enable this if you want to show the image download button." +msgstr "Aktivirajte ovo ako želite omogućiti download slika." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1016 +msgid "Not safe content checkbox in uploader" +msgstr "Polje za potvrdu neprikladnog sadržaja prilikom uploada" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1022 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Omogućite ovo ukoliko želite da prikažete polje za potvrdu neprikladnog sadržaja prilikom uploada." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1028 +msgid "Custom CSS code" +msgstr "Poseban CSS kod" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1029 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Dodajte vaš CSS kod, biće ubačen između <style>odmah prije </head> taga." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1033 +msgid "Custom JS code" +msgstr "Poseban JS kod" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Dodajte vaš JS kod, biće ubačen između <script>odmah prije </head> taga." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1176 +msgid "Here you can set the codes for the predefined ad spaces." +msgstr "Ovde možete ubaciti kodove za predefinirate oglasne prostore" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1179 +msgid "Before cover (homepage)" +msgstr "Before cover (početna)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1183 +msgid "After cover (homepage)" +msgstr "After cover (početna)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1187 +msgid "After listing (homepage)" +msgstr "After listing (početna)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1193 +msgid "Before pagination" +msgstr "Pre paginacije" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "After pagination" +msgstr "Posle paginacije" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1203 +msgid "Content (image and album)" +msgstr "Sadržaj (slika i album)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1205 +msgid "Tab about column" +msgstr "Tab about column" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1209 +msgid "Before comments" +msgstr "Pre komentara" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1215 +msgid "Image page" +msgstr "Stranica slike" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1217 +msgid "Inside viewer top (image page)" +msgstr "Inside viewer top (image page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +msgid "Expected banner size 728x90" +msgstr "Očekivana veličina banera 728x90" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +msgid "Inside viewer foot (image page)" +msgstr "Inside viewer foot (image page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1227 +msgid "After image viewer (image page)" +msgstr "After image viewer (image page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1231 +msgid "Before header (image page)" +msgstr "Before header (image page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1235 +msgid "After header (image page)" +msgstr "After header (image page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1239 +msgid "Footer (image page)" +msgstr "Footer (image page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1245 +msgid "Album page" +msgstr "Album page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +msgid "Before header (album page)" +msgstr "Before header (album page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "After header (album page)" +msgstr "After header (album page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1257 +msgid "User profile page" +msgstr "User profile page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1259 +msgid "After top (user profile)" +msgstr "After top (user profile)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1263 +msgid "Before listing (user profile)" +msgstr "Before listing (user profile)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1269 +msgid "Explore page" +msgstr "Explore page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1271 +msgid "After top (explore page)" +msgstr "After top (explore page)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Ovo se koristi da konvertuje numerički ID u alfanumerički. Generisan je pri instalaciji." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Error reporting" +msgstr "Izveštaj o grešakama" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable this if you need to debug PHP errors." +msgstr "Omogućite ovo ukoliko vam trebaju izveštaji o PHP greškama." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1314 +msgid "Default language" +msgstr "Podrazumevani jezik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1323 +msgid "Default base language to use." +msgstr "Podrazumevani osnovni jezik za korišćenje" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Auto language" +msgstr "Automatski jezik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "From name" +msgstr "Od" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Sender name for emails sent to users." +msgstr "Ime pošiljaoca za emailove poslate korisnicima." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +msgid "Email mode" +msgstr "Email mod" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1482 +msgid "How to send emails? SMTP recommended." +msgstr "Kako poslati emailove? SMTP je preporučeno." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "SMTP server and port" +msgstr "SMTP server i port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1490 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1503 +msgid "SMTP username" +msgstr "SMTP korisničko ime" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1508 +msgid "SMTP password" +msgstr "SMTP lozinka" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "SMTP security" +msgstr "SMTP sigurnost" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1516 +msgid "Unsecured" +msgstr "Bez sigurnosti" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1533 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Treba vam <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook aplikacija</a> za ovo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1538 +msgid "Facebook app id" +msgstr "Facebook identifikacioni ključ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1543 +msgid "Facebook app secret" +msgstr "Facebook tajni ključ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1559 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Treba vam <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter aplikacija</a> za ovo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1564 +msgid "Twitter API key" +msgstr "Twitter API ključ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1569 +msgid "Twitter API secret" +msgstr "Twitter API tajna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Twitter account" +msgstr "Twitter nalog" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Treba vam <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google aplikacija</a> za ovo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1597 +msgid "Google client id" +msgstr "Google ID klijenta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1602 +msgid "Google client secret" +msgstr "Google klijent tajna" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1644 +#, php-format +msgid "CDN allows you to offload static content to several edge servers making your website faster. If you don't have a CDN provider you should try %s." +msgstr "CDN ti omogućava brže učitavanje stranica sa statičnim sadržajem putem drugih servera. Ukoliko nemaš nalog kod CDN provajdera, trebalo bi da probaš %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1663 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Za ovo trabate <a href=\"%s\" target=\"_blank\">reCAPTCHA ključ</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1669 +msgid "reCAPTCHA public key" +msgstr "reCAPTCHA javni ključ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1674 +msgid "reCAPTCHA private key" +msgstr "reCAPTCHA privatni ključ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1681 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA prag" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1692 +msgid "Comment code" +msgstr "Kod za komentare" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook ili šta god vam treba. Biće korišćeno prilikom pregleda slika." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1697 +msgid "Analytics code" +msgstr "Kod za statistiku" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analitika ili šta god hoćete. Biće dodato u podnožju teme." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1708 +msgid "Enable this if you are using Cloudflare." +msgstr "Omogućite ovo ako koristite Cloudflare." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1713 +msgid "For documentation about the API check <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" +msgstr "Dokumentacija vezana za API proveru <a href=\"http://chevereto.com/docs/api\" target=\"_blank\">docs/api</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1715 +msgid "API v1 key" +msgstr "API v1 ključ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1718 +msgid "Use this key when using the API v1. <a href=\"https://chevereto.com/docs/api-v1\">Learn more</a>." +msgstr "Koristite ovaj ključ kada koristite API v1. <a href=\"https://chevereto.com/docs/api-v1\">Saznaj više</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1728 +#: ../../../app/themes/Peafowl/views/settings.php:395 +#: ../../../lib/Peafowl/peafowl.js:407 ../../../lib/Peafowl/peafowl.min.js:23 +msgid "Save changes" +msgstr "Sačuvaj promene" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1751 +#: ../../../app/themes/Peafowl/views/settings.php:409 +msgid "Check the errors to proceed." +msgstr "Proverite greške da biste nastavili" + +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "Guest" +msgstr "Gost" + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Da li zaista želite da obrišete ovu sliku? Ovo je trajno." + +#: ../../../app/themes/Peafowl/views/image.php:78 +msgid "Delete image" +msgstr "Obriši sliku" + +#: ../../../app/themes/Peafowl/views/image.php:142 +msgid "Added to %a and categorized in %c" +msgstr "Dodato u %a i kategorisano u %c" + +#: ../../../app/themes/Peafowl/views/image.php:144 +#, php-format +msgid "Added to %s" +msgstr "Dodato u %s" + +#: ../../../app/themes/Peafowl/views/image.php:149 +#, php-format +msgid "Uploaded to %s" +msgstr "Uploadovano u %s" + +#: ../../../app/themes/Peafowl/views/image.php:151 +#, php-format +msgid "Uploaded %s" +msgstr "Uploadovano %s" + +#: ../../../app/themes/Peafowl/views/image.php:188 +#: ../../../app/themes/Peafowl/views/image.php:249 +msgid "Share image" +msgstr "Podeli sliku" + +#: ../../../app/themes/Peafowl/views/image.php:204 +#: ../../../app/themes/Peafowl/views/image.php:210 +msgid "Album ID" +msgstr "ID albuma" + +#: ../../../app/themes/Peafowl/views/image.php:260 +msgid "In this album" +msgstr "u ovom albumu" + +#: ../../../app/themes/Peafowl/views/image.php:287 +msgid "Image links" +msgstr "Linkovi slike" + +#: ../../../app/themes/Peafowl/views/image.php:289 +msgid "Image URL" +msgstr "URL slike" + +#: ../../../app/themes/Peafowl/views/image.php:295 +msgid "Image link" +msgstr "Link slike" + +#: ../../../app/themes/Peafowl/views/image.php:301 +msgid "Thumbnail URL" +msgstr "URL slike za pregled" + +#: ../../../app/themes/Peafowl/views/image.php:310 +msgid "Medium URL" +msgstr "Srednji URL" + +#: ../../../app/themes/Peafowl/views/image.php:328 +#: ../../../app/themes/Peafowl/views/image.php:348 +#: ../../../app/themes/Peafowl/views/image.php:371 +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Image embed codes" +msgstr "Kodovi slike" + +#: ../../../app/themes/Peafowl/views/image.php:348 +msgid "Linked image" +msgstr "Linked image" + +#: ../../../app/themes/Peafowl/views/image.php:371 +msgid "Linked medium" +msgstr "Linked medium" + +#: ../../../app/themes/Peafowl/views/image.php:396 +msgid "Linked thumbnail" +msgstr "Linked thumbnail" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Uploadujte i podelite vaše slike" + +#: ../../../app/themes/Peafowl/views/index.php:63 +#, php-format +msgid "Fill this section uploading pictures to %s account.<br>You can edit the target user in your dashboard settings." +msgstr "Ispunite ovu sekciju uploadom slika na %s nalog.<br>Možete izmeniti ciljani korisnički ID u podešavanjama u Panelu.." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registrujte se da otključate sve mogućnosti" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Uređujte vaš sadržaj, kreirajte privatne albume, uređujte vaš profil i više" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:275 +msgid "Enter your password" +msgstr "Upišite lozinku" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Odjavljeni ste sa %s. Nadamo se da ćemo vas videti uskoro." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Nemate ovlašćenje za pristup ovoj strani ili je link istekao." + +#: ../../../app/themes/Peafowl/views/search.php:8 +#: ../../../app/themes/Peafowl/views/user.php:111 +msgid "Results for" +msgstr "Rezultati za" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Dali stvarno želite obrisati ovoga korisnika? Ovo je nepovratno" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:68 +msgid "Delete user" +msgstr "Obriši korisnika" + +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID korisnika" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Datum registracije" + +#: ../../../app/themes/Peafowl/views/settings.php:99 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/settings.php:103 +msgid "Valid" +msgstr "Validnost" + +#: ../../../app/themes/Peafowl/views/settings.php:104 +msgid "Banned" +msgstr "Banovan" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Awaiting email" +msgstr "Čekanja email-a" + +#: ../../../app/themes/Peafowl/views/settings.php:106 +msgid "Awaiting confirmation" +msgstr "Čekanje potvrde" + +#: ../../../app/themes/Peafowl/views/settings.php:138 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i za %f znakova<br>Slova, brojevi i \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:167 +msgid "Language" +msgstr "Jezik" + +#: ../../../app/themes/Peafowl/views/settings.php:197 +msgid "Timezone" +msgstr "Vremenska zona" + +#: ../../../app/themes/Peafowl/views/settings.php:248 +msgid "Current password" +msgstr "Trenutna lozinka" + +#: ../../../app/themes/Peafowl/views/settings.php:249 +msgid "Enter your current password" +msgstr "Unesite vašu lozinku" + +#: ../../../app/themes/Peafowl/views/settings.php:257 +msgid "New password" +msgstr "Nova lozinka" + +#: ../../../app/themes/Peafowl/views/settings.php:263 +msgid "Confirm new password" +msgstr "Potvrdite novu lozinku" + +#: ../../../app/themes/Peafowl/views/settings.php:271 +msgid "Add a password to be able to login using your username or email." +msgstr "Dodajte lozinku da biste se mogli prijaviti koristeći vaše korisničko ime ili email." + +#: ../../../app/themes/Peafowl/views/settings.php:271 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Ovaj korisnik nema lozinku. Dodajte jednu koristeći ovaj formular." + +#: ../../../app/themes/Peafowl/views/settings.php:281 +msgid "Re-enter your password" +msgstr "Ponovite vašu lozinku" + +#: ../../../app/themes/Peafowl/views/settings.php:300 +#: ../../../lib/Peafowl/peafowl.js:3356 +#: ../../../lib/Peafowl/peafowl.min.js:207 +msgid "loading" +msgstr "učitavanje" + +#: ../../../app/themes/Peafowl/views/settings.php:304 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Uploaduj novu sliku" + +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Delete existing image" +msgstr "Obrišite postojeće slike" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This is your real name, not your username." +msgstr "Ovo je vaše pravo ime, ne korisničko ime" + +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "http://yourwebsite.com" +msgstr "http://vassajt.com" + +#: ../../../app/themes/Peafowl/views/settings.php:339 +msgid "User has no connections." +msgstr "Korisnik nema veza." + +#: ../../../app/themes/Peafowl/views/settings.php:343 +msgid "Link your account to external services to be able to login and share content." +msgstr "Link do vašeg naloga kod drugih provajdera da biste se mogli prijaviti i deliti sadržaj." + +#: ../../../app/themes/Peafowl/views/settings.php:350 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Dali stvarno želite da se diskonektujete sa ovog naloga %s?" + +#: ../../../app/themes/Peafowl/views/settings.php:351 +#, php-format +msgid "This account is connected to %s" +msgstr "Ovaj nalog je povezan sa %s" + +#: ../../../app/themes/Peafowl/views/settings.php:353 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Dali stvarno želite da se diskonektujete vaš nalog %s?" + +#: ../../../app/themes/Peafowl/views/settings.php:355 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Bićete odjavljeni i neće se moći prijaviti više koristeći ovaj nalog %s" + +#: ../../../app/themes/Peafowl/views/settings.php:357 +#, php-format +msgid "Your account is connected to %s" +msgstr "Vaš nalog je povezan sa %s" + +#: ../../../app/themes/Peafowl/views/settings.php:362 +msgid "disconnect" +msgstr "diskonektu" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +#, php-format +msgid "Connect %s" +msgstr "Poveži %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Dodaj pozadinu profila" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Promeni pozadinu" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Pozadinska profilna slika će biti obrisana. Ovo je nepovratno. Dali sigurno želite obrisati?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Obriši pozadinu" + +#: ../../../app/themes/Peafowl/views/user.php:64 +msgid "Edit profile" +msgstr "Izmeni profil" + +#: ../../../app/lib/chevereto.js:496 ../../../app/lib/chevereto.js:568 +#: ../../../app/lib/chevereto.js:750 ../../../app/lib/chevereto.js:2155 +#: ../../../app/lib/chevereto.js:2208 ../../../app/lib/chevereto.js:2306 +#: ../../../app/lib/chevereto.min.js:20 ../../../app/lib/chevereto.min.js:24 +#: ../../../app/lib/chevereto.min.js:30 ../../../app/lib/chevereto.min.js:107 +#: ../../../app/lib/chevereto.min.js:110 ../../../app/lib/chevereto.min.js:114 +msgid "You must enter the album name." +msgstr "Morate uneti ime albuma." + +#: ../../../app/lib/chevereto.js:610 ../../../app/lib/chevereto.js:796 +#: ../../../app/lib/chevereto.js:892 ../../../app/lib/chevereto.min.js:27 +#: ../../../app/lib/chevereto.min.js:34 ../../../app/lib/chevereto.min.js:36 +#: ../../../lib/Peafowl/peafowl.js:2225 +#: ../../../lib/Peafowl/peafowl.min.js:123 +msgid "Confirm" +msgstr "Potvrid" + +#: ../../../app/lib/chevereto.js:728 ../../../app/lib/chevereto.min.js:29 +msgid "Select existing album" +msgstr "Izaberite postojeći album" + +#: ../../../app/lib/chevereto.js:1011 ../../../app/lib/chevereto.js:1091 +#: ../../../app/lib/chevereto.min.js:45 ../../../app/lib/chevereto.min.js:50 +msgid "Please select a valid image file type." +msgstr "Molimo odaberite validan format slike." + +#: ../../../app/lib/chevereto.js:1016 ../../../app/lib/chevereto.js:1096 +#: ../../../app/lib/chevereto.min.js:46 ../../../app/lib/chevereto.min.js:51 +#, python-format, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Molimo označite sliku od najviše veličine od %s." + +#: ../../../app/lib/chevereto.js:1063 ../../../app/lib/chevereto.min.js:48 +msgid "Profile image updated." +msgstr "Profilna slika ažurirana." + +#: ../../../app/lib/chevereto.js:1133 ../../../app/lib/chevereto.min.js:52 +msgid "Profile background image updated." +msgstr "Slika pozadine profila ažurirana." + +#: ../../../app/lib/chevereto.js:1207 ../../../app/lib/chevereto.min.js:53 +msgid "Profile background image deleted." +msgstr "Slika pozadine profila obrisana." + +#: ../../../app/lib/chevereto.js:1212 ../../../app/lib/chevereto.min.js:53 +msgid "Error deleting profile background image." +msgstr "Došlo je do greške tokom brisanja slike pozadine profila." + +#: ../../../app/lib/chevereto.js:1690 ../../../app/lib/chevereto.min.js:74 +msgid "File too big." +msgstr "Fajl je prevelik." + +#: ../../../app/lib/chevereto.js:1701 ../../../app/lib/chevereto.js:1849 +#: ../../../app/lib/chevereto.min.js:76 ../../../app/lib/chevereto.min.js:87 +msgid "Some files couldn't be added" +msgstr "Neki fajlovi nisu mogli da se dodaju" + +#: ../../../app/lib/chevereto.js:2283 ../../../app/lib/chevereto.min.js:114 +msgid "Image edited successfully." +msgstr "Slika izmenjena uspešno." + +#: ../../../app/lib/chevereto.js:2346 ../../../app/lib/chevereto.min.js:115 +msgid "Album edited successfully." +msgstr "Album izmenjen uspešno." + +#: ../../../app/lib/chevereto.js:3171 ../../../app/lib/chevereto.js:3246 +#: ../../../app/lib/chevereto.js:3329 ../../../app/lib/chevereto.js:3338 +#: ../../../app/lib/chevereto.min.js:156 ../../../app/lib/chevereto.min.js:162 +#: ../../../app/lib/chevereto.min.js:164 +msgid "The content has been moved." +msgstr "Sadržaj je premešten." + +#: ../../../app/lib/chevereto.js:3191 ../../../app/lib/chevereto.min.js:157 +msgid "Unselect" +msgstr "Odselektuj" + +#: ../../../app/lib/chevereto.js:3246 ../../../app/lib/chevereto.min.js:162 +msgid "The content has been edited." +msgstr "Sadržaj je izmenjen." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:480 +#: ../../../lib/Peafowl/peafowl.min.js:1 +#: ../../../lib/Peafowl/peafowl.min.js:29 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Sve promene koje ste uradili biće izgubljene ako nastavite" + +#: ../../../lib/Peafowl/peafowl.js:464 ../../../lib/Peafowl/peafowl.min.js:28 +msgid "Changes saved successfully." +msgstr "Promene su uspešno sačuvane" + +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "Go back to form" +msgstr "Idi nazad na formular" + +#: ../../../lib/Peafowl/peafowl.js:480 ../../../lib/Peafowl/peafowl.min.js:29 +msgid "continue anyway" +msgstr "svedno nastavi" + +#: ../../../lib/Peafowl/peafowl.js:2368 +#: ../../../lib/Peafowl/peafowl.min.js:135 +msgid "Saving" +msgstr "Čuvanje" + +#: ../../../lib/Peafowl/peafowl.js:2373 +#: ../../../lib/Peafowl/peafowl.min.js:135 +msgid "Sending" +msgstr "Slanje" + +#: ../../../lib/Peafowl/peafowl.js:2453 +#: ../../../lib/Peafowl/peafowl.min.js:138 +msgid "Confirm action" +msgstr "Potvrdi radnju" + diff --git a/app/languages/sv.po b/app/languages/sv.po new file mode 100644 index 0000000..74b6e17 --- /dev/null +++ b/app/languages/sv.po @@ -0,0 +1,2565 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2017-07-10 19:51+0000\n" +"PO-Revision-Date: 2017-07-10 19:51+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Felaktig e-postadress" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Felaktigt användarnamn" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Felaktigt lösenord" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Okänt webbplatsläge" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Avsändarens email" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Avsändarens e-postadress som skickas till användare" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Inkommande e-post" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Mottagare för kontaktformuläret samt systemmeddelanden" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Webbplatsläge" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Du kan byta hemsidans läge närsomhelst." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Gemenskap" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Personligt" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Uppdatering pågår" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Något gick fel, vänligen prova igen senare." + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Saknad %s fil" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Ogiltig licensinformation" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Ogiltig licensnyckel" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Kan inte spara fil" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Kan inte ladda ned %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Kan inte extrahera %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Kan inte skapa %s register - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Kan inte uppdatera %s fil - %e" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Namnlös" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s's bilder" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Notera: Detta innehåll är privat men kan ses av alla som har länken." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Notera: Detta innehåll är lösenordsskyddat. Kom ihåg att dela lösenordet med andra om du vill att de ska kunna se det." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Notera: Detta innehåll är privat, ändra sekretess till \"publikt\" för att dela." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Privat" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Publikt" + +msgid "Me" +msgstr "Jag" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Länk" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Lösenord" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "visning" +msgstr[1] "visningar" + +msgid "After %n %t" +msgstr "Efter %n %t" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Radera inte automatiskt" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minut" +msgstr[1] "minuter" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "timme" +msgstr[1] "timmar" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "dag" +msgstr[1] "dagar" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Duplicerad uppladdning" + +msgid "Error storing file in external storage server" +msgstr "Fel vid lagring av fil i extern lagringsserver" + +msgid "External storage has failed" +msgstr "Extern lagring misslyckad" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Privat uppladdning" + +msgid "Upload switched to local storage" +msgstr "Uppladdning flyttad till lokalt lagringsutrymme" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Gilla" +msgstr[1] "gillar" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "bild" +msgstr[1] "bilder" + +msgid "Recent" +msgstr "Nyliga" + +msgid "Trending" +msgstr "Trendar" + +msgid "Popular" +msgstr "Populärt" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Aktivaste användarna" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Nyast" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Äldst" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Flest visningar" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Mest gillad" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Bläddra" + +msgid "Animated" +msgstr "GIFar" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Sök" + +msgid "People" +msgstr "Gillar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Bild" +msgstr[1] "Bilder" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Album" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Användare" +msgstr[1] "Användare" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "år" +msgstr[1] "år" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "månad" +msgstr[1] "månader" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "vecka" +msgstr[1] "veckor" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "sekund" +msgstr[1] "sekunder" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s sedan" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "alldeles nyss" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Kontrollpanel" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Hemsidan är i underhållsläge. För att ångra denna inställning, gå till <a href=\"%s\">Instrumentpanel > Inställningar</a>." + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Välkommen att se och upptäcka alla mina delade bilder och album." + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Sidan existerar inte" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Glömt lösenord?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Återställ lösenord" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Skicka aktiveringsmeddelande igen" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Lägg till din e-postadress" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-postadress ändrad" + +#: ../../../app/routes/route.account.php:95 +#: ../../../app/routes/route.login.php:71 +#: ../../../app/routes/route.settings.php:140 +#: ../../../app/routes/route.signup.php:73 +msgid "The reCAPTCHA wasn't entered correctly" +msgstr "Felaktig reCAPTCHA" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Ogiltigt användarnamn/e-postadress" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Användaren har ingen e-postadress." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Begäran nekad" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Kontot måste vara aktiverat för att göra detta" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Kontot är redan aktiverat" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Det kan ta upp till 15 minuter för e-postmeddelandet att skickas." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Återställ ditt lösenord på %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Bekräftelse krävs på %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Välkommen till %s" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Lösenorden matchar inte" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Denna e-post används redan av en annan användare." + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Kontrollera felen innan du går vidare." + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Dela" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Inbäddningskoder" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Full info" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Statistik" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Album" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Användare" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Inställningar" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto version" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP version" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Server" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL version" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL server info" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD Bibliotek" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Filuppladdningar" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Aktiverat" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Inaktiverat" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Max. poststorlek" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Max. execution time" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekunder" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Minnesgräns" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Länkar" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Hemsida" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Innehåll" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Bilduppladdning" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategorier" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Antiflood" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Hemsida" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Banners" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "System" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "E-post" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sociala nätverk" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Externa tjänster" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Alla" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "Sök innehåll" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Före kommentarer" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Bild sida" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Album sida" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Användarprofil sida" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Ogiltigt namn på hemsidan" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Ogiltigt språk" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Ogiltig tidszon" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Ogiltig uppladdning till lagringsläge" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Ogiltig uppladdning filnamn" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Ogiltig bredd på miniatyrbild" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Ogiltig tumnagelhöjd" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Ogiltigt tema" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Ogiltigt värde" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Okänd användar ID" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Invalid email mode" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Felaktig SMTP port" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Fel SMTP-säkerhet" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Ogiltig webbplatsinnehåll privat läge" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Ogiltlig sökväg för bilduppladdning" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Max tillåtna %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Felaktig SMTP server" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Felaktigt SMTP användarnamn" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Om" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Bild ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Uppladdarens IP" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Uppladdad datum" + +#: ../../../app/routes/route.image.php:177 +#, php-format +msgid "%s images" +msgstr "%s bilder" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direktlänkar" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Direktlänk" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Bildlänk" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Liten miniatyrbild" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Medelstor miniatyrbild" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Inloggning krävs" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Värden saknas" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Ogitlig roll" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Användarnamn används redan" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s har " + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Felaktigt användarnamn/lösenord" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Logga in" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Utloggad" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "General questions/comments" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Ogiltigt namn" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Ogiltigt meddelande" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Ogiltigt ämne" + +#: ../../../app/routes/route.page.php:85 +#: ../../../content/pages/default/contact.php:33 +msgid "Invalid reCAPTCHA" +msgstr "Ogiltig reCAPTCHA" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "E-postfel" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Konto" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Profil" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Länkade konton" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Ett email har skickats till %s med instruktioner." + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Ogiltig hemsida" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Felaktigt lösenord" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Använd ett nytt lösenord" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Ändringarna har sparats." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Lösenordet har ändrats" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Lösenordet har skapats" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Felaktigt användarnamn/e-post" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Inställningar för %s" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Skapa konto" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s's Bilder" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s's Album" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Resultat för" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Slumpvald" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Ladda upp" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Logga in med ett annat konto" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "eller" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Användarnamn eller e-postadress" + +#: ../../../app/themes/Peafowl/header.php:294 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:23 +#: ../../../app/themes/Peafowl/views/login.php:53 +msgid "Keep me logged in" +msgstr "Kom ihåg mig" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Har du inget konto? <a href='%s'>Skaffa ett</a> nu." + +#: ../../../app/themes/Peafowl/header.php:328 +msgid "Sign up with another account" +msgstr "Registrera med ett annat konto" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-postadress" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Användarnamn" + +#: ../../../app/themes/Peafowl/header.php:341 +#: ../../../app/themes/Peafowl/views/signup.php:65 +#, php-format +msgid "By signing up you agree to our <a href=\"%s\">Terms of service</a>" +msgstr "Genom att registrera dig accepterar du våra <a href=\"%s\">villkor</a>" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "laddar" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Min profil" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Logga ut" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "För att slutföra processen måste du <a href=\"%s\">bekräfta din email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternativt kan du kopiera och klistra in adressen i webbläsaren: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Om detta inte stämmer kan du ignorera detta mail." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Begäran gjordes från IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Du (förhoppningsvis) vill registrera kontot %n hos %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "För att slutföra registreringen måste du <a href=\"%s\">aktivera ditt konto</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Vi har mottagit en begäran om att återställa lösenordet för kontot <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "För att återställa lösenordet, <a href=\"%s\">klicka här</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Hej %n, välkommen till %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Kul att du registrerade dig! Du kan nu ladda upp bilder, skapa album och dela (eller inte dela) med dina nära och kära!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Tack för att du registrerade dig" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Detta mail skickades från %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Välj bilder att ladda upp" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Uppladdning klar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Det blev ett fel och systemet kunde inte hantera din begärda åtgärd." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Välj kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Markera denna om uppladdningen inte är familjesäker" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Inte familje säker uppladdning" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Laddar upp" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "avbryt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "avbryt kvarvarande" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Notis: Vissa bilder kunde inte laddas upp" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "läs mer" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Kolla <a data-modal=\"simple\" data-target=\"failed-upload-result\">felrapporteringen</a> för mer information." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:89 +msgid "max" +msgstr "max" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "stäng" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Redigera" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "valfritt" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Markera som osäkert" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Beskrivning" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Kort beskrivning av bilden" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Lägg till URL till bild" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Lägg till URL till bild här" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Skapa album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:224 +msgid "The uploaded content will be moved to this newly created album. You can also move the content to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Allt uppladdat innehåll kommer att flyttas till detta nya album. Du kan också flytta innehållet till ett <a class=\"modal-switch\" data-switch=\"move-existing-album\">existerande album</a>." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Flytta till album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Välj ett existerande album för att flytta innehållet. Du kan också <a class=\"modal-switch\" data-switch=\"move-new-album\">skapa ett nytt album</a> och flytta allt innehåll dit." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Felrapport" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" +msgstr[1] "album" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Kortlänkar" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML-kod" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML-länk mediumstor" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML-länk miniatyrbild" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode mellanstor link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode länk miniatyrbild" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albumnamn" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "flytta till befintligt album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Album beskrivning" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Vem kan se detta innehåll" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Privat (bara jag)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Namn" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategori namn" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL nyckel" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategori URL nyckel" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Meddelande" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Existerande album" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Skapa nytt album" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "se mer" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Ladda mer" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Välj alla" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Plocka bort val" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Funktion" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Markera som säker uppladdning" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Radera" + +#: ../../../app/themes/Peafowl/snippets/modal_login.php:5 +#, php-format +msgid "To use all the features of this site you must be logged in. If you don't have an account you can <a href=\"%s\">sign up</a> right now." +msgstr "För att använda alla funktioner på denna webbplats måste du logga in. Om du inte har ett konto kan du <a href=\"%s\">skapa ett nu</a>." + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Finns inget att visa här" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16 +#: ../../../app/themes/Peafowl/views/image.php:69 +#: ../../../app/themes/Peafowl/views/image.php:457 +msgid "Edit image details" +msgstr "Ändra bilddetaljer" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:18 +#: ../../../app/themes/Peafowl/views/album.php:22 +#: ../../../app/themes/Peafowl/views/album.php:118 +msgid "Edit album details" +msgstr "Ändra albumdetaljer" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Alla bilder kommer att flyttas till detta nya album. Du kan också flytta bilderna till <a class=\"modal-switch\" data-switch=\"move-existing-album\">ett existerande album</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Välj ett redan existerande album att flytta bilderna till. Du kan också <a class=\"modal-switch\" data-switch=\"move-new-album\">skapa ett nytt album</a> och flytta bilderna dit." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Välj ett redan existerande album att flytta bilderna till. Du kan också <a class=\"modal-switch\" data-switch=\"move-new-album\">skapa ett nytt album</a> och flytta bilderna dit." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Bekräfta radering" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Vill du verkligen radera detta innehåll? Detta kan inte ångras." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Vill du verkligen radera dessa valda delar? Detta kan inte ångras." + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Från %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Markera" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Den begärda sidan kunde inte hittas" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Sök efter något annat" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Användaren har raderats" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Innehållet har raderats." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Ditt konto är nästan klart" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Ett e-postmeddelande har skickats till %s med instruktioner för hur du aktiverar ditt konto. Länken i e-postmeddelandet är giltig i 48 timmar. Glöm inte att kolla skräpmappen." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Gå till startsidan" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Skicka aktivering igen" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Du har ändrat din e-post till %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Gå till min profil" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "En aktiveringslänk kommer skickas till mailen." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Din e-postadress" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:26 +msgid "Add email" +msgstr "Lägg till e-postadress" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Ett e-postmeddelande med instruktioner om hur du byter lösenord har skickats till angiven e-postadress. Om du inte få meddelandet direkt kolla så att det inte har fastnat i något spamfilter." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Skicka instruktioner igen" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:32 +msgid "Enter your username or the email address that you used to create your account." +msgstr "Ange ditt användarnamn eller e-postadress så skickar vi dina uppgifter." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Skicka" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Ditt lösenord har ändrats. Du kan nu logga in." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Logga in nu" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:22 +msgid "Enter the new password that you want to use." +msgstr "Ange det nya lösenordet du vill använda." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:28 +msgid "New Password" +msgstr "Nytt lösenord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "%d characters min" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Ange ditt nya lösenord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Bekräfta lösenord" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Skriv in lösenordet igen" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Detta innehåll är privat" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Vill du verkligen radera albumet och alla dess bilder? Detta kan inte ångras." + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Delete album" +msgstr "Radera album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Länk till album" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Använt utrymme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Lägg till användare" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Roll" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administratör" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Lägg till kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Hemsidans namn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Hemsidans doctitle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Hemsidans beskrivning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:236 +msgid "Website keywords" +msgstr "Nyckelord för sidan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Standard tidszon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Välj region" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Användar-ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Innehåll privat läge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Standard" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Tvinga privat (själv)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Tvinga privat (Alla med en länk)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Aktivera uppladdningar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Tillåt uppladdning av bilder. Detta påverkar inte administratörer." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Gästuppladdningar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Aktivera detta om du vill tillåta icke registrerade användare att ladda upp." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Sökväg för bild" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Relative to Chevereto root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Var ska bilderna lagras?" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Lagringsläge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Datummappar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Direkt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datummappar skapar %s struktur" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Metod för att namnge bilder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Original" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Storlek på miniatyrbild" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Miniatyrbilder kommer att fastställas till den här storleken." + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Aktivera denna för att lägga till en logotyp eller vad du vill i bilduppladdning." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Varning: Kan inte skriva till %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Vattenmärkningsbild" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Position för vattenmärkning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "vänster övre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "vänster center" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "vänster nedre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "center övre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "center center" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "center nedre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "höger övre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "höger center" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "höger nedre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Relativ position av vattenmärkning. Först är vågrätt och sen lodrätt led" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Marginal av vattenmärkning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Marginal från ramen i bilden till vattenmärkning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Opacitet av vattenmärkning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Opacitet av vattenmärkning i den slutliga bilden. Värden från 0 till 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Ändra kategori" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Aktivera registreringar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Aktivera om du vill tillåta användare att registrera sig." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Kräv epost validering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Notify to email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "If enabled the system will send an email on flood incidents." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minutgräns" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Timgräns" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Dagsgräns" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Veckogräns" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Månadsgräns" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Lista objekt per sida" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Hur många poster ska visas per sida." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Lista paginering läge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Oändlig skrollning" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klassisk paginering" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Vilken paginerings metod ska användas." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Flytande" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Fixerad" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Lägg dina teman i %s mappen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Aktivera vektor logotyp" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Logotyp i vektor format" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon bild" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Aktivera nerladdningsknapp" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Aktivera om du vill visa bild nerladdningsknappen" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Anpassad CSS kod" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Sätt in din anpassade CSS kod här. Den kommer att läggas till inom <style> precis före </head> taggen." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Anpassad JS kod" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Sätt in din anpassade JS kod här. Den kommer att läggas till inom <script> precis före </head> taggen." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Vill du verkligen radera bilden? Kan ej ångras." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Radera bild" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Standardspråk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Standardspråk att använda" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Sätt språk automatiskt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Avsändarens namn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Avsändarens namn för e-post skickat till användare" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-postläge" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "How to send emails? SMTP recommended." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server och port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP användarnamn" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP lösenord" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP säkerhet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Osäker" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Du behöver en <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> för detta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Du behöver <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> för detta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter konto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Du behöver <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> för detta." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Comment code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook eller det du vill kommer att användas i bildvyn." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics eller det du vill använda kommer att läggas till i footern på temat." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API nyckel v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Spara ändringar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Undersök felen innan du fortsätter." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Gäst" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Tillagt i %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Uppladdad till %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Uppladdad %s" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Dela bild" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "I detta album" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Ladda upp och dela dina bilder." + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Registrera dig för att låsa upp alla funktioner" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Hantera ditt innehåll, skapa privata album, anpassa din profil och mer." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Ange ditt lösenord" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Du har loggats ut från %s. På återseende!" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Du har inte tillåtelse att besöka denna sida, alternativt har länken dött." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Vill du verkligen radera denna användare? Går ej att ångra." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Radera användare" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Blev medlem" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Status" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Aktiv" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Bannad" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Väntar e-post" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Väntar på aktivering" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i till %f tecken<br>Bokstäver, siffror och \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Språk" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Tidszon" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Nuvarande lösenord" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Ange ditt nuvarande lösenord" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Nytt lösenord" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Bekräfta nytt lösenord" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Lägg till ett lösenord för att kunna logga in med ditt användarnamn eller e-post." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Denna användare har inget lösenord. Ange ett med detta formulär." + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Ange ditt lösenord igen" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Ladda upp ny bild" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Radera existerande bild" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Detta är ditt riktiga namn, inte ditt användarnamn." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://minsida.se" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Användaren har inga anslutningar." + +#: ../../../app/themes/Peafowl/views/settings.php:391 +msgid "Link your account to external services to be able to login and share content." +msgstr "Länka ditt konto till de externa tjänsterna för att logga in och dela innehållet." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Vill du verkligen koppla bort %s från detta konto?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Detta konto är anslutet till %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Vill du verkligen koppla bort ditt %s konto?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Du kommer att loggas ut och du kommer inte att kunna logga in med %s kontot." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Ditt konto är kopplat till %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "stäng av" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Anslut %s" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Ladda upp profilbakgrund" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Ändra bakgrund" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Bakgrundsbilden kommer att raderas. Detta kan inte bli ogjort. Är du säker på att du vill radera bakgrundsbilden?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Radera bakgrund" + +#: ../../../app/themes/Peafowl/views/user.php:61 +msgid "Edit profile" +msgstr "Redigera profil" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Du måste ange ett namn på albumet." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Bekräfta" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Välj befintligt album" + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Vänligen välj en giltig filtyp för bilder." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Bilden får inte vara större än %s." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profilbild uppdaterad." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Profilbakgrund uppdaterad." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Profilbakgrund raderad." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Fel, kunde inte radera profilbakgrunden." + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Filen är för stor." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Vissa filer kunde inte läggas till" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Bilden har ändrats." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "privat" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Albumet har ändrats." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Innehållet har flyttats." + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Avmarkera" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Innehållet har ändrats." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Alla ändringar kommer försvinna." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Ändringarna sparades." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Gå tillbaka till formulär" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "Fortsätt ändå" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Sparar" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Skickar" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Bekräfta" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "Information" + diff --git a/app/languages/th.po b/app/languages/th.po new file mode 100644 index 0000000..0560305 --- /dev/null +++ b/app/languages/th.po @@ -0,0 +1,4997 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:16+0000\n" +"PO-Revision-Date: 2020-09-02 17:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "อีเมลผิดพลาด" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "ยูสเซอร์เนมผิดพลาด" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "พาสเวิร์ดผิดพลาด" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "โหมดของเว็บไซด์ผิดพลาด" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "จากอีเมล" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "อีเมลของผู้ส่ง สำหรับส่งไปยังผู้ใช้" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "อีเมลขาเข้า" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "ผู้รับแบบฟอร์มการติดต่อและระบบจะแจ้งเตือน" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "โหมดเว็บไซต์" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "คุณสามารถสลับไปยังโหมดเว็บไซต์ได้ตลอดเวลา" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "ชุมชน" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "ส่วนบุคคล" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "รุ่นที่ติดตั้งคือ v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "ไม่สามารถเชื่อมต่อกับ %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "รุ่นที่เผยแพร่ครั้งล่าสุดคือ v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "ต้องอัปเดตดำเนินการต่อในการดาวน์โหลด" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "ไม่จำเป็นต้องอัพเดต" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "ไฟล์ระบบอัปเดตแล้ว" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "กำลังเริ่มดาวน์โหลด v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "ดาวน์โหลด v%s, แล้วดำเนินการต่อในการสกัด" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "กำลังพยายามดึง v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "การสกัดเสร็จสิ้นแล้ว" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "ขั้นตอนการติดตั้งการปรับปรุง" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "การอัพเดทล้มเหลว" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "ความคืบหน้าอัปเดต" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "ไฟล์ %s หายไป" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "ข้อมูลใบอนุญาตไม่ถูกต้อง" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "คีย์ใบอนุญาตไม่ถูกต้อง" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "ไม่สามารถบันทึกไฟล์" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "ดาวน์โหลด %s ไม่ได้" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "ไม่สามารถแยก %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "ไม่สามารถสร้าง %s ไดเรกทอรี - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "ไม่สามารถอัปเดต %s ไฟล์ - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "เช็คคำผิดในฟอร์มและทำอีกครั้ง" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "คุณต้องป้อนชื่ออัลบั้ม" + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "ยืนยัน" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "เลือกอัลบั้มที่มีอยู่" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "เกิดข้อผิดพลาด. กรุณาลองใหม่อีกครั้งในภายหลัง." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "กรุณาเลือกประเภทของไฟล์ภาพที่ถูกต้อง" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "โปรดเลือกรูปภาพขนาดไม่ใหญ่กว่า %s" + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "เปลี่ยนภาพโปรไฟล์" + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "อัปเดตภาพพื้นหลังของโปรไฟล์แล้ว" + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "ลบภาพพื้นหลังโปรไฟล์แล้ว" + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "เกิดข้อผิดพลาดในการลบภาพพื้นหลังโปรไฟล์" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "รหัสผ่านไม่ตรงกัน" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "อัปเดต v%s ที่พร้อมใช้งาน" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "มีการอัปเดตสำหรับระบบของคุณ คุณสามารถดาวน์โหลดและติดตั้งโปรแกรมปรับปรุงนี้โดยอัตโนมัติหรือไปที่ %s เพื่อดำเนินการดาวน์โหลดไฟล์ต่อ" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "บันทึกรุ่นสำหรับการปรับปรุงนี้:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "อัปเดตเดี๋ยวนี้" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "หรือ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "ยกเลิก" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "เว็บไซต์นี้กำลังเรียกใช้เวอร์ชัน %s ล่าสุด" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "โหลด" + +msgid "Toggle select" +msgstr "สลับการเลือก" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "ถูกใจ" + +msgid "Toggle flag" +msgstr "สลับสถานะ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "แก้ไข" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "อัลบั้ม" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "ลบ" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "ปิด" + +msgid "Previous" +msgstr "ก่อนหน้า" + +msgid "Next" +msgstr "ถัดไป" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "ภาพคลิปบอร์ด" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "ไฟล์ใหญ่เกินไป" + +msgid "Invalid or unsupported file format." +msgstr "รูปแบบไฟล์ที่ไม่ถูกต้องหรือไม่สนับสนุน" + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "ไฟล์บางไฟล์ไม่สามารถเพิ่มได้" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "รูป" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "อัลบั้มของ %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "แก้ไขภาพที่ประสบความสำเร็จ" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "ส่วนตัว" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "อัลบั้มประสบความสำเร็จในการแก้ไข" + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "คีย์ URL ไม่ถูกต้อง" + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "มีการใช้คีย์ URL นี้อยู่แล้ว" + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "ลบหมวดหมู่สำเร็จแล้ว" + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "เพิ่มประเภท %s แล้ว" + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "วันหมดอายุไม่ถูกต้อง" + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "ไอพี %s นี้โดนแบนอยู่แล้ว" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "ไอพี %s โดนแบน" + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "ลบ IP เรียบร้อยแล้ว" + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "โปรดกรอกข้อมูลในฟิลด์ที่จำเป็นทั้งหมด" + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "ค่าความสามารถจัดเก็บไม่ถูกต้อง ให้แน่ใจว่าจะใช้รูปแบบที่ถูกต้อง" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "พื้นที่จัดเก็บไม่สามารถกำหนดให้ต่ำกว่า การใช้งานในปัจจุบันได้ (%s)" + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL ไม่ถูกต้อง." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "ประสบความสำเร็จในการจัดเก็บข้อมูลการแก้ไข" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "เพิ่มผู้ใช้สำเร็จแล้ว" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "ลบเนื้อหาแล้ว" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "ย้ายเนื้อหาไปแล้ว" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "เลือก" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "ยกเลิกการเลือก" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "เนื้อหาที่ได้รับการแก้ไข" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "อัลบั้ม" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "ไม่มีชื่อ" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s รูป" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "หมายเหตุ: เนื้อหานี้เป็นส่วนตัว แต่ทุกคนที่มีการเชื่อมโยงจะสามารถเห็นได้" + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "หมายเหตุ: เนื้อหานี้มีรหัสผ่านป้องกัน อย่าลืมส่งรหัสผ่านเนื้อหาที่จะแบ่งปัน" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "หมายเหตุ: เนื้อหานี้มีความเป็นส่วนตัว เปลี่ยนความเป็นส่วนตัวเป็น \"สาธารณะ\" เพื่อที่จะแบ่งปัน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "ส่วนตัว" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "สาธารณะ" + +msgid "Me" +msgstr "ฉัน" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "ลิงก์" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "รหัสผ่าน" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "จำนวนคนดู" + +msgid "After %n %t" +msgstr "หลังจาก %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "นาที" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "ชั่วโมง" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "วัน" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "อาทิตย์" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "เดือน" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "ปี" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "ไม่ต้องลบออโต้" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "การอัพโหลดซ้ำ" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "อัพโหลดแบบ ส่วนตัว" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "ถูกใจ" + +msgid "Recent" +msgstr "เมื่อเร็ว ๆ นี้" + +msgid "Trending" +msgstr "ได้รับความนิยม" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "ผู้ใช้งานสูงสุด" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "ผู้ชมเพิ่งเข้ามากที่สุด" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "เก่าที่สุด" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "ผู้ชมมากที่สุด" + +msgid "Popular" +msgstr "เป็นที่นิยม" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "ถูกใจมากที่สุด" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "รวมภาพ" + +msgid "Animated" +msgstr "เคลื่อนไหว" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "ค้นหา" + +msgid "People" +msgstr "คน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "รูป" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "ผู้ใช้งาน" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "สร้างโฟลเดอร์ %s ปลายทางไม่ได้" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "เปิด %s สำหรับการเขียนไม่ได้" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "ภายใน" + +msgid "Can't insert storage." +msgstr "ไม่สามารถแทรกการจัดเก็บข้อมูล" + +msgid "Can't update storage details." +msgstr "ไม่สามารถอัปเดตรายละเอียดการจัดเก็บข้อมูล" + +#, php-format +msgid "requires %s" +msgstr "ต้องมี %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "ไม่จำกัด" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "ใช้แล้ว" + +msgid "Private profile" +msgstr "รายละเอียดส่วนตัว" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "วินาที" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s ก่อนหน้านี้" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "เดือนที่แล้ว" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "แผงควบคุม" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "มีการอัปเดตพร้อมใช้งานสำหรับระบบของคุณ ไปที่ %s เพื่อดาวน์โหลดและติดตั้งโปรแกรมปรับปรุงนี้" + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "ระบบฐานข้อมูลล้าสมัยแล้ว คุณจำเป็นต้องใช้เครื่องมือในการ <a href=\"%s\">อัปเดต</a>" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "เว็บไซต์อยู่ในโหมดการบำรุงรักษา เปลี่ยนการตั้งค่านี้ได้ที่ <a href=\"%s\"> แดชบอร์ด > การตั้งค่า</a>" + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "คุณควรจะปิดการใช้งานข้อผิดพลาด PHP รายงานสำหรับระบบการผลิต ไปที่ <a href='%s'>การตั้งค่าระบบ</a> ที่จะเปลี่ยนการตั้งค่านี้" + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "คุณไม่ได้เปลี่ยนการตั้งค่าอีเมลเริ่มต้น ไปที่ <a href='%s'>การตั้งค่าอีเมล์</a> เพื่อแก้ไขปัญหานี้" + +msgid "There is an update available for your Chevereto based website." +msgstr "มีการอัปเดตพร้อมใช้งานสำหรับ Chevereto เว็บไซต์ของคุณ" + +msgid "admin dashboard" +msgstr "แผงควบคุมของผู้ดูแลระบบ" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "คุณสามารถใช้การปรับปรุงนี้โดยตรงจาก %a ของคุณหรือดาวน์โหลดได้จาก %s แล้วติดตั้งด้วยตนเอง" + +#, php-format +msgid "view on %s" +msgstr "ดูได้ที่ %s" + +msgid "cookie policy" +msgstr "นโยบายคุกกี้" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "เราใช้คุกกี้ของเราเองและของบุคคลที่สามเพื่อปรับปรุงประสบการณ์การท่องเว็บและบริการของเรา หากคุณใช้เว็บไซต์ของเราต่อไปถือว่าคุณยอมรับสิ่งนี้ %cookie_policy_link" + +msgid "I understand" +msgstr "ฉันเข้าใจ" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "ลืมรหัสผ่าน?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "ตั้งรหัสผ่านใหม่" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "ส่งรหัสปลดล็อคใหม่" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "เพิ่มที่อยู่อีเมลของคุณ" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "เปลี่ยนอีเมลแล้ว" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s บอกว่าคุณเป็นเป็นโรบอท" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "ยูสเซอร์หรือพาสเวิร์ดผิด" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "ผู้ใช้ไม่ได้อีเมล" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "คำขอไม่สามารถเข้าถึงได้" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "บัญชีผู้ใช้ต้องทำการปลดล็อคเพื่อใช้งานส่วนนี้" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "บัญชีได้ถูกทำการปลดล็อคไปแล้ว" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "อนุญาตให้ถึง 15 นาทีสำหรับอีเมล คุณสามารถลองอีกครั้งในภายหลัง" + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "ตั้งรหัสผ่านใหม่ %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "ยืนยันจำเป็นต้องใช้ %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "ยินดีต้อนรับ %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "อีเมลโดนใช้ไปแล้ว" + +msgid "Password required" +msgstr "ต้องใช้รหัสผ่าน" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "แชร์" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "แนบโค๊ด" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "ข้อมูลแบบสมบูรณ์" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a อัลบั้มที่โฮสต์อยู่ใน %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "สถิติ" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "รูป" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "อัลบั้ม" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "ผู้ใช้งาน" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "ตั้งค่า" + +msgid "Bulk importer" +msgstr "คุณนำเข้ามากเกินไป" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "เวอร์ชั่นของ Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "ติดตั้งโปรแกรมปรับปรุง" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "เช็คเพื่ออัพเดท" + +msgid "Support" +msgstr "สนับสนุน" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "ต้องการความช่วยเหลือ? ไปที่ %s และคุณจะได้รับความช่วยเหลือได้อย่างรวดเร็ว" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP เวอร์ชั่น" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "เซิฟเวอร์" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL เวอร์ชั่น" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "ข้อมูลของ MySQL เซิฟเวอร์" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "ไลบรารี GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "ไฟล์สำหรับอัพโหลด" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "เปิดใช้งาน" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "ไม่เปิดใช้งาน" + +msgid "Max. upload file size" +msgstr "อัพโหลดขนาดไฟล์สูงสุด" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "ขนาดโพสต์สูงสุด" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "เวลาดำเนินการ มากที่สุด" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d วินาที" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "ขีดจำกัดของหน่วยความจำ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "ลิงค์" + +msgid "Documentation" +msgstr "เอกสาร" + +msgid "Changelog" +msgstr "การเปลี่ยนแปลง" + +msgid "Bug tracking" +msgstr "การติดตามข้อผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "เว็บไซด์" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "เนื่้อหา" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "หน้า" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "รายการ" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "อัพโหลดรูป" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "หมวดหมู่" + +msgid "Consent screen" +msgstr "หน้าจอได้รับความยินยอม" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "ป้องกันการฟลัด" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "ธีม" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "หน้าแรก" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "แบนเนอร์" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "ระบบ" + +msgid "Routing" +msgstr "กำหนดเส้นทาง" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "ภาษา" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "หน่วยความจำภายนอก" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "อีเมล" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "เครือข่ายทางสังคม" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "บริการภายนอก" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "ไอพี แบน" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "ตั้งค่าเพิ่มเติม" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "เครื่องมือ" + +msgid "Can't delete all homepage cover images" +msgstr "ไม่สามารถลบภาพหน้าปกหน้าแรก" + +msgid "Homepage cover image deleted" +msgstr "ลบภาพปกหน้าแรก" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "ภายใน" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "ภายนอก" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "ทั้งหมด" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "ค้นหา เนื้อหา" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "เพิ่มหน้า" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "แก้ไขหน้าไอดี %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "หน้านี้ถูกเพิ่มเรียบร้อยแล้ว" + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "หน้านี้ถูกลบเรียบร้อยแล้ว" + +msgid "homepage" +msgstr "หน้าแรก" + +#, php-format +msgid "Before main title (%s)" +msgstr "ก่อนชื่อเรื่องหลัก (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "หลังจากเรียกร้องให้ดำเนินการ (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "หลังจากหน้าปก (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "หลังจากรายการ (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "ก่อนเลขหน้า" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "หลังเลขหน้า" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "เนื้อหา (ภาพและอัลบั้ม)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "แท็บเกี่ยวกับคอลัมน์" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "ก่อนแสดงความคิดเห็น" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "หน้าภาพ" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "ด้านบนภายใน (หน้าภาพ)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "ด้านท้ายของผู้ชมภายใน (หน้าภาพ)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "หลังจากดูภาพ (หน้าภาพ)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "ก่อนส่วนหัว (หน้าภาพ)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "หลังจากที่ส่วนหัว (หน้าภาพ)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "ส่วนท้าย (หน้าภาพ)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "หน้าอัลบั้ม" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "ก่อนส่วนหัว (หน้าอัลบั้ม)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "หลังจากที่ส่วนหัว (หน้าอัลบั้ม)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "หน้าโปรไฟล์ของผู้ใช้" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "หลังจากด้านบน (หน้าโปรไฟล์)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "ก่อนที่รายการ (หน้าโปรไฟล์)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "หน้ารวมภาพ" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "หลังจากด้านบน (หน้ารวมภาพ)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "ไม่ปลอดภัย/ไม่เหมาะสม อาจมีเนื้อหาที่ลามกอนาจาร" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "ชื่อเว็บไซด์ผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "ภาษาผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "ไทม์โซนเวลาผิดพลาด" + +#, php-format +msgid "Invalid value: %s" +msgstr "ค่าไม่ถูกต้อง: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "โหมดอัพโหลดข้อมูลไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "อัพโหลชื่อไฟล์ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "ความกว้างของภาพขนาดย่อไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "ความสูงของภาพขนาดย่อไม่ถูกต้อง" + +msgid "Invalid medium size" +msgstr "ขนาดกลางไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "เปอร์เซ็นต์ลายน้ำไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "ความทึบของลายน้ำไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "ธีมผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "ค่าไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "เสียงรูปแบบไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "ธีมสีหลักไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "รูปแบบแถบด้านบนปุ่มสีไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "รูปแบบขนาดรายการภาพไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "ชื่อผู้ใช้งานผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "โหมดอีเมลผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "SMTP port ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "SMTP security ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "ID ผู้ใช้โหมดส่วนบุคคลที่ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "ห้ามใช้หรือเส้นทางไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "ความเป็นส่วนตัว" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "ความเป็นส่วนตัวเนื้อหา" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "สไตล์หน้าแรกไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "การกระทำสีปุ่มเรียกหน้าแรกไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "การกระทำเรียกหน้าแรกของฟังก์ชั่นไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "ชื่อเรื่องไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "สถานะที่ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "ประเภทไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "การแสดงผลที่ไม่ถูกต้อง" + +msgid "Invalid internal type" +msgstr "ไฟล์ไม่ถูกกับประเภทที่ต้องการ" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "แอตทริบิวต์เป้าหมายไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "แอตทริบิวต์ rel ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "ไอคอนไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "คีย์ URL ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "เส้นทางของไฟล์ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "URL ของลิงก์ไม่ถูกต้อง" + +msgid "Invalid user minimum age" +msgstr "อายุขั้นต่ำของผู้ใช้ไม่ถูกต้อง" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "อนุญาตเฉพาะตัวอักษรผสมตัวเลขและ( _ )เท่านั้น" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "ลิงค์ผู้ใช้งานผิดพลาด" + +msgid "Routes can't be the same" +msgstr "เส้นทางต้องไม่เหมือนกัน" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "พาร์ทของรูปที่อัพโหลดผิดพลาด" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "การดำเนินการเรียก URL ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "ที่ได้รับอนุญาตมากสุด %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "ไม่สามารถแม็ป %m ไปยังโฟลเดอร์ (%f) ที่มีอยู่" + +msgid "Can't map %m to an existing route (%r)" +msgstr "ไม่สามารถแม็ป %m ไปยังเส้นทาง (%r) ที่มีอยู่ได้" + +msgid "Can't map %m to %r (username collision)" +msgstr "ไม่สามารถแม็ป %m ไปยัง %r (username ซ้ำ)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "SMTP server ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "SMTP username ไม่ถูกต้อง" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "คีย์ URL นี้ถูกใช้โดยหน้าอื่น (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "พาธของไฟล์นี้ถูกใช้โดยหน้าอื่นอยู่แล้ว (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "ไม่สามารถบันทึกเนื้อหาของหน้า: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "ที่เราติดตาม" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "เกี่ยวกับ" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ไอดีรูปภาพ" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "ที่อยู่ IP ของผู้อัพโหลด" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "แบนไอพี" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "ไอพีนี้โดนแบนอยู่แล้ว" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "วันที่อัพโหลด" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "รูป %i ในอัลบั้ม %a" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "รูปภาพ %i ในหมวดหมู่ %c" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "รูปภาพ %i ของ %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "ลิงค์ตรง" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "ลิงก์รูปภาพ" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL รูปภาพ" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL ขนาดย่อ" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL ขนาดกลาง" + +msgid "Full image" +msgstr "ภาพเต็ม" + +msgid "Full image (linked)" +msgstr "ภาพเต็ม (ลิงก์)" + +msgid "Medium image (linked)" +msgstr "รูปภาพขนาดกลาง (ลิงก์)" + +msgid "Thumbnail image (linked)" +msgstr "ภาพขนาดย่อ (ลิงก์)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "ต้องการการล็อคอิน" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "ไอพีนี้โดนแบนแล้ว" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "ไม่มีค่า" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "หน้าที่ไม่ถูกต้อง" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "ชื่อผู้ใช้งานนี้ได้โดนใช้งานไปแล้ว" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "เพิ่มรหัสผ่านหรือการเชื่อมต่อทางสังคมอื่นก่อนที่จะลบ %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "เพิ่มอีเมลหรือการเชื่อมต่อทางสังคมอื่นก่อนที่จะลบ %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s ถูกตัดการเชื่อมต่อแล้ว" + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "ทดสอบอีเมลจาก %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "นี่เป็นเพียงการทดสอบเท่านั้น" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "ทดสอบอีเมลที่ส่งไปยัง %s." + +#, php-format +msgid "Downloading %s data" +msgstr "กำลังดาวน์โหลดข้อมูล %s" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "ผู้ใช้ %s ติดตาม" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "ผู้ใช้ %s เลิกติดตาม" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "เนื้อหาที่ถูกใจ" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "เนื้อหาที่ไม่ถูกใจ" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u ที่คุณถูกใจ %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u ตอนนี้ติดตามคุณอยู่" + +msgid "A private user" +msgstr "ผู้ใช้ส่วนตัว" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "ชื่อผู้ใช้ที่ไม่ถูกต้อง / รหัสผ่านอีเมล์ไม่ถูกต้อง" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "เข้าสู่ระบบ" + +msgid "Upload images" +msgstr "อัพโหลดรูปภาพ" + +msgid "Upload plugin" +msgstr "อัพโหลดปลั๊กอิน" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "ผลการค้นหาภาพสำหรับ %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "ผลการค้นหาอัลบั้มสำหรับ %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "ผลการค้นหาของผู้ใช้สำหรับ %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "บัญชี" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "ข้อมูลส่วนตัว" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "เชื่อมต่อบัญชี" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "การหมดอายุของรูปภาพไม่ถูกต้อง: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "อีเมลถูกส่งไปยัง %s พร้อมด้วยคำแนะนำเพื่อเปิดใช้อีเมลนี้" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "ชื่อไม่ถูกต้อง" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "เว็บไซต์ไม่ถูกต้อง" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "รหัสผ่านที่ไม่ถูกต้อง" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "โปรดใช้รหัสผ่านใหม่" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "การเปลี่ยนแปลงได้ถูกบันทึกแล้ว" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "เปลี่ยนแปลง Password เรียบร้อย" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "รหัสผ่านได้ถูกตั้งแล้ว" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Username หรือ Email ไม่ถูกต้อง" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "การตั้งค่าสำหรับ %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "คุณต้องยอมรับข้อกำหนดและนโยบายความเป็นส่วน" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "คุณต้องมีอายุอย่างน้อย %s ปีจึงจะสามารถใช้งานเว็บไซต์นี้ได้" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "สมัครสมาชิก" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "อัพโหลด" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s รูปทั้งหมด" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "ผลการค้นหาสำหรับ" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "ถูกใจโดย %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "ถูกใจ" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "ผู้ติดตาม" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) อัลบั้มใน %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) ใน %w" + +msgid "Discovery" +msgstr "สิ่งที่ค้นพบ" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "การค้นหาแบบละเอียด" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "สุ่ม" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "คำชี้แจง %s" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "การแจ้งเตือน" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "คุณไม่มีการแจ้งเตือน" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "โปรไฟล์ของฉัน" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "ออกจากระบบ" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "เราได้รับคำขอที่จะเปลี่ยนอีเมลของคุณ <a href=\"%u\">%n</a> บัญชีของคุณ %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "ถ้าจะให้เสร็จสิ้นกระบวนการคุณต้อง <a href=\"%s\">ยืนยันอีเมล์ของท่าน</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "หรือคุณสามารถคัดลอกและวาง URL ลงในเบราว์เซอร์ของคุณ: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "ถ้าคุณไม่ได้ตั้งไม่ต้องสนใจข้อความนี้" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "คำขอนี้ถูกสร้างขึ้นจาก IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "เราได้รับการร้องขอในการลงทะเบียน %n บัญชีที่ %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "ให้เสร็จสิ้นกระบวนการที่คุณต้อง <a href=\"%s\"> เปิดใช้งานบัญชีของคุณ </a>" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "เราได้รับคำขอเพื่อรีเซ็ตรหัสผ่านสำหรับ <a href=\"%u\">%n</a> บัญชีของคุณ." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "ถ้าต้องการรีเซ็ตรหัสผ่านของคุณ <a href=\"%s\">โปรดคลิกที่ลิ้งค์นี้</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "สวัสดี %n, ยินดีต้อนรับสู่ %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "ตอนนี้บัญชีคุณพร้อมแล้ว คุณสามารถเพลิดเพลินกับการอัพโหลดรูปของคุณ สร้างอัลบั้ม และ ตั้งค่าความเป็นส่วนตัวของเนื้อหาของคุณ และอีกมากมายที่เจ๋งๆที่คุณจะสามารถสำรวจได้จากที่นี่ !" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "ยังไงซะ, นี่คือหน้าโปรไฟล์ที่น่าสนใจของตัวเองมาก: <a href=\"%u\">%n</a>. ไปข้างหน้าและปรับแต่ง, มันเป็นของคุณ!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "ขอบคุณสำหรับการเข้าร่วม" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "อีเมลนี้จะถูกส่งมาจาก %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "ลากและวางภาพที่นี่เพื่ออัพโหลด" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "เลือกรูปภาพเพื่ออัพโหลด" + +msgid "browse from your computer" +msgstr "เรียกดูจากคอมพิวเตอร์ของคุณ" + +msgid "add image URLs" +msgstr "เพิ่ม URL ภาพ" + +msgid "You can also %i or %u." +msgstr "นอกจากนี้คุณยังสามารถ %i หรือ %u." + +msgid "browse from your device" +msgstr "เรียกดูจากอุปกรณ์ของคุณ" + +msgid "take a picture" +msgstr "ถ่ายภาพ" + +msgid "You can also %i, %c or %u." +msgstr "นอกจากนี้คุณยังสามารถ %i, %c หรือ %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "แก้ไขหรือปรับขนาดภาพโดยคลิกที่ภาพตัวอย่าง" + +msgid "Edit any image by touching the image preview" +msgstr "แก้ไขภาพโดยแตะภาพตัวอย่าง" + +msgid "your computer" +msgstr "คอมพิวเตอร์ของคุณ" + +msgid "You can add more images from %i or %u." +msgstr "คุณสามารถเพิ่มภาพจาก %i หรือ %u ได้" + +msgid "your device" +msgstr "อุปกรณ์ของคุณ" + +msgid "You can add more images from %i, %c or %u." +msgstr "คุณสามารถเพิ่มภาพจาก %i, %c หรือ %u ได้" + +msgid "Uploading %q %o" +msgstr "อัพโหลด %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "สมบูรณ์" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "คิวกำลังถูกอัพโหลดจะใช้เวลาเพียงไม่กี่วินาทีในการดำเนินการ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "อัพโหลดเสร็จสิ้น" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "อัพโหลดเนื้อหาไปที่ %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "คุณสามารถ %c ได้ด้วยเนื้อหาที่เพิ่งอัพโหลดหรือ %m" + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "คุณสามารถ %c ได้ด้วยเนื้อหาที่เพิ่งอัพโหลด" + +msgid "create a new album" +msgstr "สร้างอัลบั้มใหม่" + +msgid "move it to an existing album" +msgstr "ย้ายไปยังอัลบั้มที่มีอยู่" + +msgid "You must %s or %l to save this content into your account." +msgstr "คุณต้อง %s หรือ %l เพื่อบันทึกเนื้อหานี้ไว้ในบัญชีของคุณ" + +msgid "create an account" +msgstr "สร้างบัญชี" + +msgid "sign in" +msgstr "ลงชื่อเข้าใช้" + +#, php-format +msgid "No %s have been uploaded" +msgstr "ไม่มี %s ถูกอัพโหลด" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "ข้อผิดพลาดที่เกิดขึ้นในบางครั้ง ซึ่งระบบไม่สามารถดำเนินการตามคำขอของคุณได้" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "หมวดหมู่" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "เลือกหมวดหมู่" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "เลือก ถ้าอัพโหลดนี้ไม่ปลอดภัยสำหรับครอบครัว" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "ไม่ปลอดภัยสำหรับครอบครัว" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "กำลังอัพโหลด..." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "ยกเลิกที่เหลือ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "ข้อควรจำ:รูปไม่สามารถอัพโหลดได้" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "เรียนรู้เพิ่ม" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "ตรวจสอบ <a data-modal=\"simple\" data-target=\"failed-upload-result\">การรายงานข้อผิดพลาด</a> สำหรับข้อมูลเพิ่มเติม" + +#, php-format +msgid "Register to get %s" +msgstr "ลงทะเบียนเพื่อรับ %s" + +msgid "reset" +msgstr "รีเซ็ต" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "ปิด" + +msgid "copy" +msgstr "คัดลอก" + +msgid "insert" +msgstr "แทรก" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "ลบ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "หัวข้อ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "ทางเลือก" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "ปรับขนาดรูปภาพ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "ความกว้าง" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "ความสูง" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "หมายเหตุ: ภาพ .GIF เคลื่อนไหวจะไม่ได้รับการปรับขนาด" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "ลบภาพอัตโนมัติ" + +msgid "Sign up" +msgstr "รับสมัคร" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s เพื่อให้สามารถปรับแต่งหรือปิดใช้งานการลบภาพอัตโนมัติ" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "เลือกว่ารูปนี้ไม่เหมาะสำหรับครอบครัว" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "ปักหมุดว่าไม่ปลอดภัย" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "รายละเอียด" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "อธิบายสั้นๆเกี่ยวกับรูปนี้" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "เพิ่ม URLs ของรูป" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "ใส่ URLs ของรูปตรงนี้" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "สร้างอัลบั้ม" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "เนื้อหาที่อัปโหลดจะถูกย้ายไปที่อัลบั้มที่สร้างขึ้นใหม่" + +msgid "existing album" +msgstr "อัลบั้มที่มีอยู่" + +msgid "You can also move the content to an %a." +msgstr "คุณสามารถย้ายเนื้อหาไปยัง %a ได้เช่นกัน" + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "คุณต้อง %s หรือ %l ถ้าคุณต้องการแก้ไขอัลบั้มนี้ในภายหลัง" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "ย้ายไปสู่อัลบั้ม" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "เลือกอัลบั้มที่มีอยู่เพื่อย้ายเนื้อหาที่อัพโหลด นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a> และย้ายเนื้อหาไปที่นั่น" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "รายงานข้อผิดพลาด" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "ผู้ชมลิ้งค์" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "รหัส html" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML ภาพ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML ลิงก์ภาพขนาดเต็ม" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML ลิงก์ภาพขนาดกลาง" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML ลิงก์ภาพขนาดย่อ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "บีบีโค้ด" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "บีบีโค้ด เต็ม" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "บีบีโค้ด ภาพขนาดเต็ม" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "บีบีโค้ด ภาพขนาดกลาง" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "บีบีโค้ด ภาพขนาดย่อ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown เต็ม" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown ภาพขนาดเต็ม" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown ภาพขนาดกลาง" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown ภาพขนาดย่อ" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "คำเหล่านี้ทั้งหมด" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "พิมพ์คำที่สำคัญ: แจ็ค รัสเซลล์ เทอร์เรีย สามสี" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "คำนี้หรือวลี" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "ใส่คำที่แน่นอนในเครื่องหมายคำพูด: \"หนู Terrier\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "ไม่มีคำพูดเหล่านี้" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "ใส่เครื่องหมายลบก่อนคำที่คุณไม่ต้องการ: -สัตว์ฟันแทะ- \"แจ๊ครัสเซล\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "เนื้อที่" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "ที่อยู่ของ IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "ชื่ออัลบั้ม" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "ย้ายไปสู่อัลบั้มที่มีอยู่แล้ว" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "รายละเอียดของอัลบั้ม" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "อธิบายสั้นๆเกี่ยวกับอัลบั้มนี้" + +msgid "Album privacy" +msgstr "อัลบั้มความเป็นส่วนตัวหรือสาธารณะ" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "ใครสามารถดูเนื้อหานี้ได้บ้าง" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "ส่วนตัว" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "ส่วนตัว (สำหรับผู้มีลิงค์)" + +msgid "Private (password protected)" +msgstr "ส่วนตัว (ป้องกันด้วยรหัสผ่าน)" + +msgid "Album password" +msgstr "รหัสผ่านอัลบั้ม" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "ชื่อ" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "หมวดหมู่ชื่อ" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "คีย์ URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "คีย์ URL หมวดหมู่" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "ตัวอักษร ตัวเลขและอักขระพิเศษ" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "อธิบายสั้นๆเกี่ยวกับอัลบั้มนี้" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "รูปไม่มีชื่อ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "เส้นทาง" + +msgid "Local path (absolute)" +msgstr "ตำแหน่งที่แน้นอน" + +msgid "Directory structure" +msgstr "โครงสร้างไดเรกทอรี" + +msgid "Parse top level folders as users (username)" +msgstr "แยกโฟลเดอร์ในระดับผู้ใช้" + +msgid "You can use wildcard * characters." +msgstr "คุณสามารถใช้อักขระตัว * ได้" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "วันหมดอายุ" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "ปี-เดือน-วัน ชั่วโมง:นาที:วินาที" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "ตัวอย่าง" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "IP นี้จะถูกห้ามจนกว่าจะถึงวันที่? ปล่อยให้มันว่างเปล่าไม่มีวันหมดอายุ" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "ข้อความ" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "ข้อความ, HTML หรือ URL การเปลี่ยนเส้นทาง" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "อัลบั้มที่มีอยู่" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "สร้างอัลบั้มใหม่" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "ชื่อของพื้นที่เก็บข้อมูล" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "เอพีไอ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "สัญชาติ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "พื้นที่จัดเก็บของภูมิภาค" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "ขนาดพื้นที่จัดเก็บ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "คีย์" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "คีย์ที่เก็บข้อมูล" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "ลับสุดยอด" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "การเก็บรักษาความลับ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "คีย์ส่วนตัว" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "คีย์ Google Cloud JSON" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "คุณต้องมี <a %s>บัญชีบริการ</a> สำหรับข้อมูลนี้" + +msgid "Service name" +msgstr "ชื่อบริการ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "URL ข้อมูลประจำตัว" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "API ข้อมูลประจำตัวปลายทาง" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API ปลายทางข้อมูลประจำตัว OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "ผู้ใช้งาน" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "ที่จัดเก็บ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "พื้นที่จัดเก็บ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Id ผู้เช่า" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Id ผู้เช่า (Id บัญชี)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "ชื่อผู้เช่า" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "ชื่อผู้เช่า (ชื่อบัญชี)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "ชื่อโฮสต์หรือ IP ของเซิร์ฟเวอร์ที่เก็บข้อมูล" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "เส้นทางของเซิร์ฟเวอร์" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "รหัสผ่านของเซิร์ฟเวอร์" + +msgid "Local path" +msgstr "ตำแหน่งที่ตั้งภายใน" + +msgid "Local path where the files will be stored" +msgstr "ตำแหน่งที่ตั้งภายในที่จะเก็บไฟล์ไว้" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "ความจุ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "ตัวอย่าง: 20 GB, 1 TB เป็นต้น" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "พื้นที่เก็บข้อมูลนี้จะถูกปิดใช้งานเมื่อถึงขีดความสามารถนี้ ปล่อยให้ว่างหรือศูนย์ไม่จำกัด" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "URL ที่จัดเก็บ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "ระบบจะแม็ปภาพของที่เก็บข้อมูลนี้กับ URL นี้" + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "ดูเพิ่มเติม" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "โหลดเพิ่มเติม" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "เลือกทั้งหมด" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "ล้างทั้งหมด" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "เลือก" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "การดำเนินการ" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "รับรหัสโค๊ด" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "กำหนดหมวดหมู่" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "ตั้งค่าสถานะให้ปลอดภัย" + +msgid "Create new album" +msgstr "สร้างอัลบั้มใหม่" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "ล็อคอินโดยใช้บัญชีอื่น" + +msgid "Home" +msgstr "หน้าแรก" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "ไม่มีอะไรที่จะแสดงที่นี่" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "ภาพทั้งหมดจะถูกย้ายไปที่อัลบั้มที่สร้างขึ้นใหม่นี้ นอกจากนี้คุณยังสามารถย้ายภาพไปที่ <a class=\"modal-switch\" data-switch=\"move-existing-album\">อัลบั้มที่มีอยู่</a>" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "เลือกอัลบั้มที่มีอยู่เพื่อย้ายภาพ นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a>และย้ายภาพที่มี" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "เลือกอัลบั้มที่มีอยู่เพื่อย้ายเนื้อหาในอัลบั้ม นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a> และย้ายเนื้อหาในอัลบั้ม" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "เลือกอัลบั้มที่มีอยู่เพื่อย้ายภาพ นอกจากนี้คุณยังสามารถ <a class=\"modal-switch\" data-switch=\"move-new-album\">สร้างอัลบั้มใหม่</a>และย้ายภาพที่มี" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "ภาพที่เลือกทั้งหมดจะถูกกำหนดให้กับหมวดหมู่นี้" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "ไม่มีหมวดหมู่" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "ยืนยันป้ายชื่อของเนื้อหาว่าปลอดภัย" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "คุณต้องการติดป้ายชื่อทำเครื่องหมายเนื้อหานี้ว่าปลอดภัยหรือไม่?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "ยืนยันป้ายชื่อของเนื้อหาว่าไม่ปลอดภัย" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "คุณต้องการติดป้ายชื่อทำเครื่องหมายเนื้อหานี้ว่าไม่ปลอดภัยหรือไม่?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "ยืนยันการลบ" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "คุณต้องการลบเนื้อหานี้หรือไม่? ไม่สามารถเลิกทำได้" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "คุณต้องการลบเนื้อหาที่เลือกทั้งหมดหรือไม่? ไม่สามารถเลิกทำได้" + +msgid "Fullscreen" +msgstr "เต็มหน้าจอ" + +msgid "Exit fullscreen" +msgstr "ออกจากโหมดเต็มหน้าจอ" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "บุคคลทั่วไป" + +msgid "Keyboard shortcuts" +msgstr "แป้นพิมพ์ลัด" + +msgid "Uploaded by guest" +msgstr "อัปโหลดโดย บุคคลทั่วไป" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "จาก %s" + +msgid "Uploaded by private" +msgstr "อัพโหลดแบบส่วนตัว" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "โดย %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "สลับสถานะที่ไม่ปลอดภัย" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "ไม่สามารถใช้งานหน้าเว็บไซต์นี้ได้" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "ไม่พบหน้าที่คุณค้นหา" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "ค้นหาอะไร" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "บัญชีผู้ใช้ถูกลบออกจากระบบ" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "บัญชีของคุณเกือบจะพร้อมแล้ว" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "ส่งอีเมลไปยัง %s ได้รับการส่งไปพร้อมกับคำแนะนำในการเปิดใช้งานบัญชีของคุณ การเชื่อมโยงการเปิดใช้งานจะใช้ได้เฉพาะสำหรับ 48 ชั่วโมง ถ้าคุณไม่ได้รับคำแนะนำให้ลองตรวจสอบขยะหรือสแปมตัวกรองของคุณ" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "ยืนยันการใช้งานอีกครั้ง" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "คุณได้เปลี่ยนอีเมลบัญชีของคุณไปที่ %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "ไปที่หน้าโปรไฟล์" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "ลิงค์ยืนยันจะถูกส่งไปยังอีเมลนี้มีรายละเอียดเพื่อเปิดใช้งานบัญชีของคุณ" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "ที่อยู่อีเมลของคุณ" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "ยืนยัน" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "อีเมลที่มีคำแนะนำในการรีเซ็ตรหัสผ่านของคุณได้ถูกส่งไปยังที่อยู่อีเมลที่ลงทะเบียน ถ้าคุณไม่ได้รับคำแนะนำลองตรวจสอบตัวกรองขยะหรือสแปมของคุณ" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "อีเมลก่อนหน้านี้ได้รับการส่งไปพร้อมกับคำแนะนำในการรีเซ็ตรหัสผ่านของคุณ หากคุณไม่ได้รับคำแนะนำลองตรวจสอบตัวกรองขยะหรือสแปมของคุณ" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "ส่งคำแนะนำใหม่" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "กรอกชื่อผู้ใช้หรืออีเมลของคุณเพื่อดำเนินการต่อ คุณอาจต้องตรวจสอบโฟลเดอร์สแปมหรือรายการที่อนุญาต %s ของคุณ" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "บัญชีผู้ใช้หรือที่อยู่อีเมล" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "รหัสผ่านของคุณมีการเปลี่ยนแปลง ตอนนี้คุณสามารถลองเข้าสู่ระบบโดยใช้รหัสผ่านใหม่" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "เข้าสู่ระบบเดี๋ยวนี้" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "กรอกรหัสผ่านใหม่ของคุณ" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "ตัวอักษรอย่างน้อย %d ตัว" + +msgid "Password strength" +msgstr "ความปลอดภัยรหัสผ่าน" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "ป้อนรหัสผ่านใหม่" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "ส่งอีเมลไปยัง %s พร้อมคำแนะนำเพื่อเปิดใช้งานบัญชีของคุณ หากคุณไม่ได้รับคำแนะนำลองตรวจสอบตัวกรองขยะหรือสแปมของคุณ" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "นี่เป็นเนื้อหาส่วนตัว" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "คุณต้องการที่จะลบอัลบั้มนี้และทุกภาพของตนหรือไม่?" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "คุณถูกใจสิ่งนี้" + +msgid "Upload to album" +msgstr "อัพโหลดไปยังอัลบั้ม" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "ลิงก์อัลบั้ม" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "โปรดอ่านและปฏิบัติตามเงื่อนไขดังต่อไปนี้ก่อนที่คุณจะดำเนินการต่อ:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "เว็บไซต์นี้มีอาจมีข้อมูลการเชื่อมโยงและภาพของเนื้อหาทางเพศที่โจ่งแจ้ง ถ้าคุณอายุต่ำกว่า %s, ถ้าเนื้อหาดังกล่าวขัดต่อคุณหรือหากดูเนื้อหาดังกล่าวในชุมชนของคุณอย่างผิดกฎหมายโปรดอย่าดำเนินการต่อ.\n\nฉัน %s ปีและฉันเชื่อว่าในฐานะที่เป็นผู้ใหญ่มันเป็นสิทธิที่จะได้รับ / ดูเนื้อหาที่ไม่เหมาะสมทางเพศ ฉันต้องการรับ / ดูเนื้อหาที่มีเนื้อหาทางเพศที่โจ่งแจ้ง.\n\nผมเชื่อว่าการกระทำทางเพศระหว่างผู้ใหญ่ที่ยินยอมจะไม่เป็นที่รังเกียจและหยาบคาย การดูการอ่านและการดาวน์โหลดเนื้อหาที่มีเนื้อหาทางเพศไม่เป็นการละเมิดมาตรฐานของชุมชนเมืองเมืองรัฐหรือประเทศของฉัน.\n\nเนื้อหาที่โจ่งแจ้งทางเพศที่ฉันดูคือการใช้ส่วนตัวของฉันเองและฉันจะไม่เปิดเผยเนื้อหาดังกล่าวแก่ผู้เยาว์.\n\nฉันเป็นผู้รับผิดชอบต่อการเปิดเผยข้อมูลที่ผิดพลาดหรือข้อ จำกัด ทางกฎหมายในการดูอ่านหรือดาวน์โหลดเนื้อหาใด ๆ ในไซต์นี้ นอกจากนี้เว็บไซต์นี้หรือ บริษัท ในเครือจะไม่รับผิดชอบต่อผลกระทบทางกฎหมายใด ๆ ที่เกิดจากการเข้าหรือใช้งานเว็บไซต์นี้โดยฉ้อฉล.\n\nหน้าจอความยินยอมนี้ถือเป็นข้อตกลงทางกฎหมายระหว่างเว็บไซต์นี้กับคุณและ / หรือธุรกิจใด ๆ ที่คุณมีส่วนได้เสียตามกฎหมายหรือเป็นธรรม หากส่วนใดส่วนหนึ่งของข้อตกลงนี้ถือว่าไม่สามารถบังคับได้โดยศาลที่มีเขตอำนาจศาลจะไม่ส่งผลกระทบต่อการบังคับใช้ส่วนอื่น ๆ ของข้อตกลง." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "เมื่อคลิกที่ \"ฉันยอมรับ\" คุณได้ประกาศว่าคุณได้อ่านและเข้าใจเงื่อนไขทั้งหมดที่กล่าวมาแล้วข้างต้น" + +msgid "I Agree" +msgstr "ฉันเห็นด้วย" + +msgid "documentation" +msgstr "เอกสาร" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "เรียนรู้เพิ่มเติมเกี่ยวกับ %s ที่ %d ของเรา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "พื้นที่ใช้ไป" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "สถานะ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "เพิ่มผู้ใช้งาน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "หน้าที่" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "ผู้ดูแล" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "ที่อยู่อีเมล" + +msgid "This setting is always diabled when using personal website mode." +msgstr "การตั้งค่านี้มักใช้เมื่อใช้โหมดเว็บไซต์ส่วนตัว" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "เพิ่มหมวดหมู่" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "เพิ่มไอพีที่ต้องการระงับ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "เพิ่มที่จัดเก็บ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "กลับไปที่หน้าเว็บ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "ชื่อเว็บไซต์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "ชื่อสารบรรณ เว็บไซต์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "คำอธิบายเว็บไซต์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "เขตเวลาเริ่มต้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "เลือกภูมิภาค" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "จะช่วยให้การค้นหาภาพอัลบั้มและผู้ใช้ตามคำค้นหาที่กำหนด" + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "เปิดการค้นหาภาพที่อัพโหลดแบบสาธารณะ รวมถึงในในหมวดหมู่" + +msgid "guests" +msgstr "ผู้มาเยือน" + +msgid "Enables explore for guests." +msgstr "ช่วยให้การสำรวจสำหรับผู้มาเยือน" + +msgid "Enables to browse images randomly." +msgstr "ช่วยให้การเรียกดูภาพแบบสุ่ม" + +msgid "Likes" +msgstr "ถูกใจ" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "ช่วยให้ผู้ใช้ชอบเนื้อหาและเติม \"ส่วนใหญ่ถูกใจ\" รายการ" + +msgid "Followers allows users to follow each other." +msgstr "ช่วยให้ผู้ติดตามปฏิบัติตามคนอื่น ๆ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "โหมดผู้ใช้ตั้งเป็นส่วนบุคคล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID ผู้ใช้งาน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "ไอดีผู้ใช้ของคุณ: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "ตัวเลข ID ของผู้ใช้เป้าหมายสำหรับโหมดส่วนตัว" + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "การกำหนดเส้นทางโหมดส่วนบุคคล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "เส้นทางที่กำหนดเองเพื่อ map / ชื่อผู้ใช้ไปยัง / บางสิ่งบางอย่าง ใช้ \"/\" เพื่อทำแผนที่ไว้ในหน้าแรก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "ความเป็นส่วนตัวของเว็บไซต์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "โหมดส่วนตัวจะทำให้เว็บไซต์ที่มีเฉพาะสำหรับผู้ใช้ที่ลงทะเบียน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "ความเป็นส่วนตัวเนื้อหา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "ค่าเริ่มต้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "บังคับให้ส่วนตัว (ตัวเอง)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "บังคับให้ส่วนตัว (ทุกคนที่มีการเชื่อมโยง)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "โหมดบังคับความเป็นส่วนตัวจะแทนที่ความเป็นส่วนตัวของผู้ใช้ที่เลือก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "ชื่อหน้า" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "หน้าสถานะ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "หน้าเว็บที่ใช้งานอยู่" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "หน้าเว็บที่ไม่ใช้งาน (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "คุณสามารถเข้าถึงหน้าเว็บที่ใช้งานได้เท่านั้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "ชนิด" + +msgid "Privacy" +msgstr "ความเป็นส่วนตัว" + +msgid "Contact" +msgstr "ติดต่อ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "การเปิดเผยหน้าเว็บ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "หน้าเว็บที่มองเห็นได้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "หน้าซ่อน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "หน้าเว็บที่ซ่อนจะไม่แสดงในเมนูระบบ แต่ทุกคนสามารถเข้าถึงได้โดยใช้ลิงก์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "เฉพาะตัวอักขระทั้งหมด, (-) และ (/)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "เส้นทางของไฟล์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "ไฟล์ %f เทียบกับ %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "คำหลัก Meta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "รายละเอียด Meta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "คำสั่งหรือโค๊ด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "ไม่มีสิทธิ์ในการเขียนในเส้นทาง %s ที่คุณจะต้องเพิ่มไฟล์นี้โดยใช้ตัวแก้ไขภายนอก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "ไม่มีสิทธิ์เขียนใน %s คุณจะต้องแก้ไขเนื้อหาของไฟล์นี้โดยใช้ตัวแก้ไขภายนอก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "นำมาจาก:%s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "ลิงก์ URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "ลิงก์แอตทริบิวต์เป้าหมาย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "เลือก %s เพื่อเปิดเพจหรือลิงค์ในหน้าต่างใหม่" + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "ลิงก์แอตทริบิวต์ rel" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "เฉพาะตัวอักขระทั้งหมด, (-) และ (เว้นว่าง)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s แอตทริบิวต์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "ลิงก์ไอคอน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "ตรวจสอบ <a %s>การอ้างอิงไอคอน</a> สำหรับรายการไอคอนที่สนับสนุนทั้งหมด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "เรียงลำดับการแสดงผล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "การเรียงลำดับหน้าเว็บสำหรับเมนูและรายชื่อ ใช้ \"1\" สำหรับความสำคัญสูงสุด" + +msgid "pages" +msgstr "หน้า" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "คุณต้องการลบ ID หน้า %s? ไม่สามารถเลิกทำได้" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "รูปแบบรูปภาพที่ไม่ได้ตรวจสอบจะไม่ได้รับอนุญาตให้อัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "เปิดใช้งานการอัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะยอมให้การอัพโหลดภาพ การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้บริหาร" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "บุคคลทั่วไป อัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้ผู้ที่ไม่ได้ลงทะเบียนในการอัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "เปิดใช้โค้ดสำหรับฝัง (ผู้อัพโหลด)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "เปิดใช้งานนี้หากคุณต้องการแสดงรหัสฝังเมื่ออัพโหลดเสร็จสิ้น" + +msgid "Upload threads" +msgstr "อัพโหลดหัวข้อ" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "จำนวนเธรดการอัพโหลดพร้อมกัน (การอัพโหลดแบบขนาน)" + +msgid "Redirect on single upload" +msgstr "เปลี่ยนเส้นทางในการอัพโหลดเดียว" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะเปลี่ยนเส้นทางไปยังหน้าภาพอัพโหลดเดียว" + +msgid "Enable duplicate uploads" +msgstr "เปิดใช้งานอัพโหลดที่ซ้ำกัน" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้อัปโหลดซ้ำกันจาก IP เดียวกันภายใน 24 ชั่วโมง การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้บริหาร" + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "เปิดใช้งานอัพโหลด หมดอายุ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้อัพโหลดที่มีตัวเลือกลบอัตโนมัติ" + +msgid "Auto delete guest uploads" +msgstr "ลบผู้เข้าชมที่อัพโหลดโดยอัตโนมัติ" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการบังคับให้การอัพโหลดจากผู้เข้าชมจะถูกลบโดยอัตโนมัติหลังจากผ่านไประยะเวลาหนึ่ง" + +msgid "Maximum image size" +msgstr "ขนาดภาพสูงสุด" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "รูปภาพที่ใหญ่กว่าขนาดนี้จะถูกลดขนาดลงโดยอัตโนมัติ ใช้ศูนย์ (0) เพื่อไม่กำหนดลิมิต" + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "ข้อมูลภาพ EXIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "เก็บ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "เลือกการตั้งค่าเริ่มต้นสำหรับภาพ <a %s>ค่าต่างๆ ของรูปภาพ</a> อัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "ข้อมูลภาพ Exif (การตั้งค่าของผู้ใช้)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะอนุญาตให้ผู้ใช้แต่ละคนในการกำหนดค่าว่าภาพข้อมูล EXIF จะถูกจัดการ" + +msgid "Maximum upload file size" +msgstr "ขนาดไฟล์อัพโหลดสูงสุด" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "ขนาดสูงสุดที่อนุญาตโดยเซิร์ฟเวอร์คือ %s ขีดจำกัดนี้ จำกัดโดย %u และ %p (ค่า %f )" + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "เช่นเดียวกับ \"%s\" แต่สำหรับผู้เข้าชม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "เส้นทางภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "เทียบกับราก Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "เก็บภาพไว้ที่ไหน? เทียบกับราก Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "โหมดที่เก็บข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "วันที่โฟลเดอร์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "โดยตรง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "วันที่โฟลเดอร์สร้างโครงสร้าง %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "วิธีตั้งชื่อไฟล์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "ดั้งเดิม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "ผสมต้นฉบับ + สุ่ม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"ต้นฉบับ\" จะพยายามที่จะให้ชื่อแหล่งภาพขณะที่ \"สุ่ม\" จะสร้างชื่อแบบสุ่ม \"id\" จะตั้งชื่อภาพเช่นเดียวกับรหัสภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "ขนาด Thumb" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "ภาพขนาดย่อจะคงที่ขนาดนี้" + +msgid "Medium image fixed dimension" +msgstr "ขนาดคงที่ของภาพขนาดกลาง" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "รูปภาพขนาดกลางจะถูกกำหนดไว้ในมิติข้อมูลนี้ ตัวอย่างเช่นหากคุณเลือก \"width\" มิติข้อมูลจะได้รับการแก้ไขและความสูงของภาพจะได้รับการคำนวณโดยอัตโนมัติ" + +msgid "Medium image fixed size" +msgstr "ขนาดภาพปานกลาง" + +msgid "Width or height will be automatically calculated." +msgstr "ความกว้างหรือความสูงจะถูกคำนวณโดยอัตโนมัติ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "ลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "เปิดใช้งานได้โดยใส่โลโก้หรือสิ่งที่คุณต้องการในการอัพโหลดภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "คำเตือน: ไม่สามารถเขียนได้ %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "สลับการใช้ลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "เปิดใช้งานลายน้ำอัพโหลดภาพของบุคคลทั่วไป" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "เปิดใช้งาน watermark สำหรับสมาชิก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "เปิดใช้งาน watermark ในโหมดผู้ดูแล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "สลับการใช้ลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "เปิดใช้งานลายน้ำบนภาพเคลื่อนไหว" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "ขนาดของภาพขั้นต่ำที่จำเป็นในการใช้ลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "ภาพที่มีขนาดเล็กกว่านี้จะไม่ถูกใส่ลายน้ำดิจิตอล ใส่ศูนย์ (0) จะไม่กำหนดขั้นต่ำขนาดภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "รูปลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "คุณจะได้รับผลลัพธ์ที่ดีที่สุด และสามารถใช้ภาพที่มีขนาดใหญ่ถ้าขนาดของไฟล์ไม่ใหญ่ (แนะนำสูงสุด. เป็น 16KB) ต้องเป็น PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "ตำแหน่งลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "ด้านบนซ้าย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "ซ้ายตรงกลาง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "ด้านล่างซ้าย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "กลางด้านบน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "ศูนย์กลาง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "กลางล่าง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "ด้านบนขวา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "ขวากลาง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "ล่างขวา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "ตำแหน่งสัมพัทธ์ของภาพลายน้ำ จัดแนวแนวนอนครั้งแรกในแนวตั้ง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "เปอร์เซ็นต์ลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "ขนาดลายน้ำที่เกี่ยวข้องกับพื้นที่เป้าหมาย ค่า 1 ถึง 100" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "ขอบของลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "ขอบจากเส้นขอบของภาพไปยังรูปลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "ความทึบของลายน้ำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "ความทึบของลายน้ำในภาพลายน้ำสุดท้าย ค่า 0 ถึง 100" + +msgid "Dashboard > Settings > Website" +msgstr "หน้าแดชบอร์ด> การตั้งค่า> เว็บไซต์" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "หมวดหมู่จะไม่ทำงานเมื่อคุณลักษณะหน้ารวมภาพถูกปิด ย้อนกลับการตั้งค่านี้ไป %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "คุณต้องการลบหมวด %s หรือไม่? ไม่สามารถเลิกทำได้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "หมายเหตุ: การลบหมวดหมู่จะไม่ลบรูปภาพที่อยู่ในหมวดหมู่นั้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "แก้ไขหมวดหมู่" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "หมดอายุ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "คุณต้องการลบแบนไป IP %s หรือไม่? ไม่สามารถเลิกทำได้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "ที่อยู่ IP โดนแบนจะถูกห้ามไม่ให้ใช้เว็บไซต์ทั้งหมด .." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "ห้ามแก้ไข IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "เปิดใช้งานการลงชื่อสมัครเข้าใช้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะช่วยให้ผู้ใช้การลงชื่อสมัครใช้" + +msgid "Enable user content delete" +msgstr "เปิดใช้การลบเนื้อหาผู้ใช้" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการอนุญาตให้ผู้ใช้ลบเนื้อหาของตนเอง การตั้งค่านี้ไม่มีผลกับผู้ดูแลระบบ" + +msgid "Minimum age required" +msgstr "อายุขั้นต่ำที่จำเป็น" + +msgid "Empty" +msgstr "ว่างเปล่า" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "ปล่อยให้มันว่างเปล่าเพื่อไม่จำเป็นต้องมีอายุขั้นต่ำในการใช้เว็บไซต์" + +msgid "Notify on user signup" +msgstr "แจ้งเมื่อลงชื่อสมัครใช้ของผู้ใช้" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการรับการแจ้งเตือนทางอีเมลสำหรับการลงทะเบียนผู้ใช้ใหม่แต่ละราย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "ชื่อผู้ใช้กำหนดเส้นทาง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะใช้ URL %s/ ชื่อผู้ใช้ URL ที่แทน %s/ ผู้ใช้ / ชื่อผู้ใช้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "จำเป็นต้องมีการยืนยันทางอีเมล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "เปิดใช้งานนี้หากผู้ใช้จะต้องตรวจสอบที่อยู่อีเมลของพวกเขาที่ลงทะเบียน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "ต้องใช้อีเมลสำหรับ social signup" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "เปิดใช้งานหากผู้ใช้ที่ใช้เครือข่ายสังคมในการลงทะเบียนต้องระบุที่อยู่อีเมล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "จำนวนมากสุดของขนาดไฟล์ Avatar ผู้ใช้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "แม็กซ์. อนุญาตให้มีขนาดไฟล์สำหรับอวาตาร์ของผู้ใช้ (สูงสุดที่อนุญาตโดยเซิร์ฟเวอร์คือ %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "พื้นหลังของผู้ใช้สูงสุด. ขนาดไฟล์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "แม็กซ์. อนุญาตให้มีขนาดไฟล์สำหรับภาพพื้นหลังของผู้ใช้ (สูงสุดที่อนุญาตโดยเซิร์ฟเวอร์คือ %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "แสดงหน้าจอความยินยอมก่อนเข้าถึงเว็บไซต์ เป็นประโยชน์สำหรับเว็บไซต์เนื้อหาสำหรับผู้ใหญ่ที่ผู้เยาว์ไม่ควรได้รับอนุญาต" + +msgid "Enable consent screen" +msgstr "เปิดใช้งานหน้าจอความยินยอม" + +msgid "Consent screen cover image" +msgstr "ภาพปกหน้าจอความยินยอม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "การอัพโหลดภาพที่ถูกบล็อกโดย IP ถ้าระบบทราบพฤติกรรมของการฟลัดขึ้นอยู่กับจำนวนของการอัพโหลดต่อช่วงเวลา การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้ดูแล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "แจ้งไปยังอีเมล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "หากเปิดใช้งานระบบจะส่งอีเมลในเหตุการณ์ฟลัด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "ขีดจำกัด นาที" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "ขีดจำกัด รายชั่วโมง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "ขีดจำกัด รายวัน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "ขีดจำกัด รายสัปดาห์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "ขีดจำกัด รายเดือน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "แสดงเนื้อหาที่ไม่ปลอดภัยในรายชื่อ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะแสดงเนื้อหาที่ไม่ปลอดภัยในรายการ การตั้งค่านี้ไม่ส่งผลกระทบต่อดูแลเว็บและสามารถแทนที่โดยการตั้งค่าของผู้ใช้เอง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "เบลอเนื้อหา NSFW ในรายการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการใช้เอฟเฟ็กต์ภาพเบลอบนภาพ NSFW ในรายการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "แสดงแบนเนอร์ด้วยเนื้อหาที่ไม่ปลอดภัย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงแบนเนอร์ในหน้าเนื้อหาที่ไม่ปลอดภัย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "แสดงเนื้อหาที่ไม่ปลอดภัยในโหมดสุ่ม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "รายการต่อหนึ่งหน้า" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "จำนวนรายการที่ควรจะแสดงรายชื่อหน้าต่อ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "โหมดการแบ่งหน้ารายการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "เลื่อนไม่สิ้นสุด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "การแบ่งลำดับแบบคลาสสิก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "การแบ่งหน้าควรจะใช้อะไร" + +msgid "Listing viewer" +msgstr "ผู้ดูรายการ" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "เปิดใช้งานคุณลักษณะนี้เพื่อใช้โปรแกรมดูรายชื่อเมื่อคลิกที่รูปภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "ขนาดรายการภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "ที่ไหลได้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "ปรับปรุงแล้ว" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "ทั้งสองวิธีใช้ความกว้างคงที่ แต่ความสูงอัตโนมัติ" + +msgid "Album listing images requirement" +msgstr "ความต้องการภาพอัลบั้ม" + +msgid "explore" +msgstr "สำรวจ" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "ตั้งจำนวนภาพขั้นต่ำที่ต้องการเพื่อแสดงอัลบั้มในการสำรวจ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "จำนวนรายการคอลัมน์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "ที่นี่คุณสามารถกำหนดจำนวนคอลัมน์ที่มีการใช้ขึ้นอยู่กับอุปกรณ์เป้าหมาย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "โทรศัพท์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "แฟบเล็ต" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "แท็บเล็ต" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "แล็ปท็อป" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "เดสก์ทอป" + +msgid "theme editing" +msgstr "การแก้ไขชุดรูปแบบ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "วางรูปแบบของคุณในโฟลเดอร์ %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "โทน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "สว่าง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "มืด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "สีหลัก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "ค่าสีฐานสิบหก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "ใช้ปุ่มนี้เพื่อกำหนดสีของธีมหลัก ค่าต้องอยู่ใน <a href=\"%s\" target=\"_blank\">รูปแบบ hex</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "สีปุ่มแถบด้านบน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "สีน้ำเงิน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "สีเขียว" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "ส้ม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "สีแดง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "สีเทา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "ดำ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "สีขาว" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "สีสำหรับปุ่มแถบด้านบนเช่นปุ่ม \"สมัครสมาชิก\"" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "เปิดใช้งานโลโก้เวกเตอร์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "เปิดใช้งานโลโก้เวกเตอร์สำหรับโลโก้ที่มีคุณภาพสูงในอุปกรณ์ที่มีความหนาแน่นของพิกเซลสูง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "ภาพโลโก้เวกเตอร์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "รุ่นเวกเตอร์หรือโลโก้เว็บไซต์ของคุณในรูปแบบ SVG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "ภาพโลโก้ Raster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "รุ่นของ Bitmap หรือโลโก้เว็บไซต์ของคุณ ขอแนะนำรูปแบบ PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "ความสูงของโลโก้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "ไม่มีค่า" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "ใช้ตัวเลือกนี้เพื่อกำหนดความสูงของโลโก้หากจำเป็น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "ภาพ Favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "ภาพ Favicon รูปภาพต้องมีความกว้างและความสูงเท่ากัน" + +msgid "Image load max. filesize" +msgstr "รูปภาพโหลดสูงสุด ขนาดไฟล์" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "รูปภาพที่ใหญ่กว่าขนาดนี้จะแสดงปุ่มเพื่อโหลดภาพความละเอียดเต็มรูปแบบ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "เปิดใช้ปุ่มดาวน์โหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงปุ่มดาวน์โหลดรูปภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "เปิดใช้งานคลิกขวาที่รูปภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการให้คลิกขวาที่หน้าโปรแกรมดูรูปภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "เปิดใช้งานข้อมูล Exif ที่แสดง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะแสดงภาพข้อมูล EXIF" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "เปิดใช้งานการแบ่งปันทางสังคม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงปุ่มเครือข่ายสังคมเพื่อแชร์เนื้อหา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "เปิดใช้โค้ดสำหรับฝัง (เนื้อหา)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "เปิดใช้งานนี้หากคุณต้องการแสดงโค้ดฝังสำหรับเนื้อหา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "ช่องทำเครื่องหมายเนื้อหาที่ไม่ปลอดภัยในโปรแกรมอัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการแสดงช่องทำเครื่องหมายเพื่อระบุว่าไม่อัปโหลดเนื้อหาที่ปลอดภัย" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "โค้ด CSS ที่กำหนดเอง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "ใส่โค้ด CSS ที่กำหนดเองของคุณที่นี่ มันจะถูกวางไว้เป็น <style> ก่อนปิด </head>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "โค้ด JS แบบกำหนดเอง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "ใส่รหัส JS ที่กำหนดเองของคุณที่นี่ มันจะถูกวางไว้เป็น <script> ก่อนปิด </head>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Style" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "หน้า Landing Page" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "แบ่งภาพ + ภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "เลือกรูปแบบหน้าแรก หากต้องการปรับแต่งเพิ่มเติมให้แก้ไข app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "ภาพหน้าปก" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "คุณต้องการที่จะลบภาพนี้หรือไม่?" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "ลบรูปภาพ" + +msgid "Add new cover image" +msgstr "เพิ่มภาพหน้าปกใหม่" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "รุ่นเวกเตอร์หรือโลโก้เว็บไซต์ของคุณในรูปแบบ SVG (เฉพาะสำหรับหน้าแรก)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "รุ่น Bitmap หรือโลโก้เว็บไซต์ของคุณ (เฉพาะสำหรับหน้าแรก) ขอแนะนำรูปแบบ PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "ซึ่งจะถูกเพิ่มลงในแท็ก %s ของหน้าแรก เว้นว่างไว้เพื่อใช้เนื้อหาเริ่มต้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "ย่อหน้า" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "สีของปุ่มเรียกร้องให้ดำเนินการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "สีของปุ่มเรียกร้องให้ดำเนินการในหน้าแรก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "ปุ่มสไตล์การเรียกร้องให้ดำเนินการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "เปิดใช้งานรูปแบบนี้เพื่อใช้สไตล์เค้าร่างสำหรับปุ่มเรียกร้องให้ดำเนินการในหน้าแรก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "ฟังก์ชันการเรียกร้องให้ดำเนินการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "เรียกใช้โปรแกรมอัพโหลด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "เปิด URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "URL เรียกร้องให้ดำเนินการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "ป้อน URL แบบสัมบูรณ์หรือสัมพัทธ์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "URL ที่คนรู้จักถูกใจ %r จะถูกแมปไปยัง %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "HTML เรียกร้องให้ดำเนินการ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "ซึ่งจะถูกเพิ่มลงในแท็ก <a> การเรียกร้องให้ดำเนินการ เว้นว่างไว้เพื่อใช้เนื้อหาเริ่มต้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "ผู้ใช้งาน IDs" + +msgid "banners" +msgstr "แบนเนอร์" + +msgid "Automatic updates check" +msgstr "ตรวจสอบการอัปเดตอัตโนมัติ" + +msgid "When enabled the system will automatically check for new updates." +msgstr "เมื่อเปิดใช้งานระบบจะตรวจหาการอัปเดตใหม่โดยอัตโนมัติ" + +msgid "Display available updates notification" +msgstr "แสดงการแจ้งเตือนการอัปเดตที่พร้อมใช้งาน" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "เปิดใช้งานคุณลักษณะนี้เพื่อแสดงการแจ้งเตือนด้านบนเพื่อเตือนคุณเกี่ยวกับการอัปเดตระบบใหม่ที่พร้อมใช้งาน" + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URLs" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "เปิดใช้งานนี้ หากคุณต้องการใช้ SEO %s URLs" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "ย่อรหัส" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "เปิดใช้งานนี้หากคุณต้องการลดขนาดโค้ด CSS และ JS โดยอัตโนมัติ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "ซ่อมบำรุง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "เมื่อเปิดใช้งานเว็บไซต์จะแสดงข้อความการบำรุงรักษา การตั้งค่านี้ไม่ส่งผลกระทบต่อผู้ดูแล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "เข้ารหัส salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "นี่คือเครื่องมือที่ใช้ในการแปลงรหัสตัวเลขเป็นตัวอักษรและตัวเลข มันถูกสร้างขึ้นเมื่อติดตั้ง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "การรายงานข้อผิดพลาด PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการพิมพ์ข้อผิดพลาดที่เกิดขึ้นจาก PHP <a %s>error_reporting()</a> ควรปิดใช้งานในการผลิต" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "ระดับดีบัก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "ไม่มี" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "บันทึกข้อผิดพลาด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "พิมพ์ข้อผิดพลาดโดยไม่บันทึกข้อผิดพลาด" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "ข้อผิดพลาดในการพิมพ์และบันทึก" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "ในการกำหนดค่าระดับตรวจแก้จุดบกพร่องให้ตรวจสอบ <a %s>เอกสารการแก้ปัญหา</a> ระดับค่าเริ่มต้นคือ \"บันทึกข้อผิดพลาด\" (1)" + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "การกำหนดเส้นทางช่วยให้คุณสามารถกำหนดค่าการเชื่อมโยงเส้นทางดีฟอลต์ได้ทันที อนุญาตเฉพาะตัวอักษรผสมตัวเลขและยัติภังค์เท่านั้น ตรวจสอบ %s ของเราถ้าคุณต้องการแทนที่หรือเพิ่มเส้นทางใหม่" + +msgid "Image routing" +msgstr "การกำหนดเส้นทางรูปภาพ" + +#, php-format +msgid "Routing for %s" +msgstr "กำหนดเส้นทางสำหรับ %s" + +msgid "Album routing" +msgstr "การกำหนดเส้นทางอัลบั้ม" + +msgid "Custom language strings" +msgstr "สตริงภาษาที่กำหนดเอง" + +msgid "language strings" +msgstr "สตริงภาษา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "ภาษาเริ่มต้น" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "ภาษาพื้นฐานที่จะใช้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "เลือกภาษาอัตโนมัติ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "เปิดใช้งานคุณลักษณะนี้หากคุณต้องการตรวจหาและตั้งค่าภาษาที่ถูกต้องสำหรับผู้ใช้แต่ละรายโดยอัตโนมัติ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "ตัวเลือกภาษา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "เปิดใช้งานนี้หากคุณต้องการอนุญาตการเลือกภาษา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "เปิดใช้งานภาษา" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "ระบบจะไม่ใช้ภาษาที่ไม่ได้รับการตรวจสอบในเว็บไซต์ของคุณ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "เปิดใช้งานเพื่อเปิดหรือปิดใช้งาน HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "สลับเพื่อเปิดหรือปิดการจัดเก็บข้อมูลนี้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "อ้างอิง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "ใช้งาน" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "วิธีการเก็บข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "พื้นที่จัดเก็บข้อมูลภายในจะถูกใช้เป็นค่าเริ่มต้นหรือเมื่อไม่มีการใช้ที่เก็บข้อมูลภายนอก." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "หากต้องการความช่วยเหลือโปรดตรวจสอบ <a %s>เอกสารข้อมูลการจัดเก็บ</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "แก้ไขการจัดเก็บข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "จากชื่อ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "ชื่อผู้ส่งสำหรับอีเมลที่ส่งถึงผู้ใช้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "โหมดอีเมล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "วิธีการส่งอีเมล? แนะนำ SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "เซิร์ฟเวอร์ SMTP และพอร์ต" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "เซิร์ฟเวอร์ SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "ชื่อผู้ใช้ SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "รหัสผ่าน SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "การรักษาความปลอดภัย SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "ไม่มั่นคง" + +msgid "Decode ID" +msgstr "ถอดรหัส ID" + +msgid "Encode ID" +msgstr "เข้ารหัส ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "ทดสอบส่งเมล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "ใช้วิธีนี้เพื่อทดสอบว่ามีการส่งอีเมลของคุณอย่างไร เราขอแนะนำให้คุณใช้ %s" + +msgid "Export a user" +msgstr "ส่งออกผู้ใช้" + +msgid "Export user" +msgstr "ส่งออกผู้ใช้" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "ซึ่งจะช่วยให้คุณสามารถดาวน์โหลดข้อมูลส่วนบุคคลมาตรฐานของผู้ใช้ในรูปแบบ JSON ได้" + +msgid "Regenerate external storage stats" +msgstr "สร้างสถิติการจัดเก็บข้อมูลภายนอกใหม่" + +msgid "Storage id" +msgstr "ไอดีที่เก็บข้อมูล" + +msgid "Regenerate" +msgstr "สร้างใหม่" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "การคำนวณนี้จะเป็นการคำนวณผลรวมของรูปภาพทั้งหมดที่ได้เชื่อมโยงกับเป้าหมายพื้นที่เก็บข้อมูลภายนอก" + +msgid "Migrate image records from one external storage to another" +msgstr "ย้ายข้อมูลระเบียนภาพจากที่จัดเก็บข้อมูลภายนอกหนึ่งไปยังอีกที่หนึ่ง" + +msgid "Source storage id" +msgstr "ต้นทางไอดีที่เก็บข้อมูล" + +msgid "Target storage id" +msgstr "ปลายทางไอดีที่เก็บข้อมูล" + +msgid "social networks" +msgstr "สังคมออนไลน์" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "คุณต้องมี <a href=\"https://developers.facebook.com/\" target=\"_blank\">แอป Facebook</a> สำหรับข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook แอพไอดี" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook แอพซีเคร็ท" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "คุณต้องมี <a href=\"https://apps.twitter.com\" target=\"_blank\">แอป Twitter</a> สำหรับข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "บัญชี Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "คุณต้องมี <a href=\"https://cloud.google.com/console\" target=\"_blank\">แอป Google</a> สำหรับข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "คุณต้องมี <a href=\"http://vk.com/dev\" target=\"_blank\">แอป VK</a> สำหรับข้อมูล" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "คุณต้องมี <a href=\"%s\" target=\"_blank\">คีย์ reCAPTCHA</a> สำหรับข้อมูล" + +#, php-format +msgid "%s site key" +msgstr "%s site key" + +#, php-format +msgid "%s secret key" +msgstr "%s secret key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "ต้องมีกี่ครั้งที่ล้มเหลวในการขอ reCAPTCHA? ใช้ศูนย์ (0) เพื่อแสดง reCAPTCHA เสมอ" + +#, php-format +msgid "%s public key" +msgstr "รหัสการเข้าถึง | %s " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "ไม่อนุญาต, Facebook หรือสิ่งที่คุณต้องการ จะใช้ในมุมมองภาพ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics หรือสิ่งที่คุณต้องการ จะถูกเพิ่มลงในส่วนท้ายของรูปแบบ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "สำหรับเอกสารเกี่ยวกับ API ให้ตรวจสอบ <a %s>เอกสาร API</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "ใช้คีย์นี้เมื่อใช้ <a %s>API v1</a>" + +msgid "Plugin route" +msgstr "เส้นทางปลั๊กอิน" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "เปิดใช้งานคุณลักษณะนี้เพื่อแสดงคำแนะนำปลั๊กอินที่ %u. ลิงก์ไปยังคำแนะนำเหล่านี้จะถูกเพิ่มลงในเมนู %s การตั้งค่านี้ไม่มีผลกับผู้ดูแลระบบ" + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "ใช้ตัวเลือกนี้เพื่อกำหนด URL ที่กำหนดเองสำหรับ %p. โปรดทราบว่าคุณต้องจำลอง %s ใน URL นี้ด้วยตนเอง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "การปฏิบัติตามกฎหมายคุกกี้" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "เปิดใช้งานคุณลักษณะนี้เพื่อแสดงข้อความที่สอดคล้องกับข้อกำหนดของกฎหมายคุกกี้ของสหภาพยุโรป หมายเหตุ: คุณจำเป็นต้องทำเช่นนี้หากเว็บไซต์ของคุณเป็นโฮสต์ในสหภาพยุโรปและหากคุณเพิ่มคุกกี้ติดตาม" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "บันทึกการเปลี่ยนแปลง" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "ตรวจสอบข้อผิดพลาดเพื่อดำเนินการต่อ" + +msgid "Play GIF" +msgstr "เล่น GIF" + +msgid "Load full resolution" +msgstr "โหลดความละเอียดเต็มรูปแบบ" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "เพิ่มไปยัง %a และจัดหมวดหมู่เป็น %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "เพิ่มไปยัง %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "อัพโหลดไปยัง %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "อัปโหลดแล้ว %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Exif ข้อมูลน้อยลง" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "ข้อมูล Exif เพิ่มเติม" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "แบ่งปันรูป" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "อัลบั้ม ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "ในอัลบั้มนี้" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "อัพโหลดและแชร์รูปภาพของคุณ" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "ลากหรือวางเพื่อเริ่มต้นการอัพโหลด.ขนาดขีดจำกัด %s . การเชื่อมโยงภาพโดยตรง BBCode และภาพขนาดย่อของ HTML." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "เริ่มการอัพโหลด" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "ลงชื่อสมัครใช้เพื่อปลดล็อกคุณลักษณะทั้งหมด" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "จัดการเนื้อหาของคุณสร้างอัลบั้มส่วนตัว, ปรับแต่งโปรไฟล์ของคุณและอื่น ๆ อีกมากมาย" + +msgid "Sign in with your account" +msgstr "เข้าสู่ระบบด้วยบัญชีของคุณ" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "ไม่ได้มีบัญชีอยู่แล้ว? <a href='%s'>ลงทะเบียน</a>ในขณะนี้" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "ออกจากระบบ" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "คุณได้ออกจากระบบ %s หวังว่าจะได้พบคุณเร็ว ๆ นี้." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "ไปที่หน้าแรก" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "เว็บไซต์ภายใต้การบำรุงรักษา" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "เรากำลังดำเนินการบำรุงรักษาตามกำหนดเวลาในเว็บไซต์ โปรดกลับมาในอีกสักครู่" + +msgid "This content is password protected." +msgstr "เนื้อหานี้ได้รับการป้องกันด้วยรหัสผ่าน" + +msgid "Please enter your password to continue." +msgstr "โปรดป้อนรหัสผ่านของคุณเพื่อดำเนินการต่อ" + +msgid "Send" +msgstr "ส่ง" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "เพิ่มการอัพโหลดรูปภาพไปยังเว็บไซต์บล็อกหรือฟอรัมโดยการติดตั้งปลั๊กอินอัพโหลดของเรา ให้ภาพอัพโหลดไปยังเว็บไซต์ใด ๆ โดยการวางปุ่มที่จะช่วยให้ผู้ใช้ของคุณโดยตรงอัพโหลดภาพไปยังบริการของเราและมันจะจัดการกับรหัสที่จำเป็นสำหรับการแทรก คุณลักษณะทั้งหมดที่รวมไว้เช่นการลากและวางการอัพโหลดระยะไกลการปรับขนาดภาพและอื่น ๆ" + +msgid "Supported software" +msgstr "ซอฟต์แวร์ที่สนับสนุน" + +msgid "supported software" +msgstr "ซอฟต์แวร์ที่สนับสนุน" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "ปลั๊กอินทำงานได้ในเว็บไซต์ใด ๆ ที่มีเนื้อหาที่ผู้ใช้สามารถแก้ไขได้และสำหรับ %sv, จะวางปุ่มอัปโหลดที่จะตรงกับแถบเครื่องมือตัวแก้ไขเป้าหมายเพื่อไม่จำเป็นต้องปรับแต่งเป็นพิเศษ" + +msgid "Add it to your website" +msgstr "เพิ่มเว็บไซต์ของคุณ" + +msgid "options" +msgstr "ตัวเลือก" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "คัดลอกและวางโค้ดปลั๊กอินลงในโค้ด HTML ของเว็บไซต์ของคุณ (โดยเฉพาะภายในส่วนหัว) มีมากมาย %o เพื่อให้พอดีกับความต้องการของคุณ" + +msgid "Basic options" +msgstr "ตัวเลือกพื้นฐาน" + +msgid "Color palette" +msgstr "จานสี" + +msgid "Button color scheme" +msgstr "โทนสีของปุ่ม" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "ฝังโค้ดที่จะแทรกอัตโนมัติในกล่องแก้ไข" + +msgid "Sibling selector" +msgstr "ตัวเลือกพี่น้อง" + +msgid "Sibling element selector where to place the button next to" +msgstr "ตัวเลือกองค์ประกอบพี่น้องที่จะวางปุ่มไว้ข้างๆ" + +msgid "Sibling position" +msgstr "ตำแหน่งพี่น้อง" + +msgid "After" +msgstr "หลัง" + +msgid "Before" +msgstr "ก่อน" + +msgid "Position relative to sibling element" +msgstr "ตำแหน่งเทียบกับองค์ประกอบพี่น้อง" + +msgid "Advanced options" +msgstr "ตัวเลือกขั้นสูง" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "ปลั๊กอินมีชุดตัวเลือกเพิ่มเติมมากมายที่อนุญาตให้มีการปรับแต่งแบบเต็มรูปแบบได้ คุณสามารถใช้ HTML, CSS, จานสีของผู้สังเกตการณ์และอื่น ๆ ตรวจสอบ %d และแหล่งของปลั๊กอินเพื่อให้ทราบถึงตัวเลือกขั้นสูงเหล่านี้" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "คุณไม่มีสิทธิ์เข้าถึงหน้านี้หรือลิงก์หมดอายุแล้ว" + +msgid "Search results" +msgstr "ผลการค้นหา" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "คุณต้องการที่จะลบผู้ใช้นี้หรือไม่?" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "ลบผู้ใช้" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "วันที่ลงทะเบียน" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP ที่ลงทะเบียน" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "ยินยอม" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "ห้าม" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "รออีเมล" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "รอการยืนยัน" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i ถึง %f ตัวอักษร<br>ตัวอักษร, ตัวเลขและ \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "ลบอัตโนมัติการอัพโหลด" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "ตั้งค่านี้จะนำไปใช้กับการอัปโหลดภาพของคุณโดยค่าเริ่มต้น คุณสามารถแทนที่การตั้งค่านี้ในแต่ละอัปโหลด" + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "เก็บภาพ <a %s>ข้อมูล EXIF</a> ในอัปโหลด" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "จดหมายข่าว" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "ส่งอีเมลหาฉันถ้ามีข่าวใหม่ๆ %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "การตั้งค่าเนื้อหา" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "แสดงเนื้อหาที่ไม่ปลอดภัยในรายการ (จากคนอื่น ๆ )" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "ภาษา" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "เขตเวลา" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "รหัสผ่านปัจจุบัน" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "ป้อนรหัสผ่านปัจจุบันของคุณ" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "รหัสผ่านใหม่" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "ยืนยันรหัสผ่านใหม่" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "เพิ่มรหัสผ่านเพื่อให้สามารถเข้าสู่ระบบได้โดยใช้ชื่อผู้ใช้หรืออีเมลของคุณ" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "ผู้ใช้รายนี้ไม่มีรหัสผ่าน. เพิ่มข้อมูลโดยใช้แบบฟอร์มนี้" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "ป้อนรหัสผ่านของคุณ" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "ยืนยันรหัสผ่านใหม่ของคุณ" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "ป้อนรหัสผ่านของคุณอีกครั้ง" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "อัพโหลดรูปภาพ" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "ลบภาพที่มีอยู่" + +msgid "Make my profile and identity totally private" +msgstr "ให้รายละเอียดและตัวตนของฉันส่วนตัวทั้งหมด" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "เปิดใช้งานนี้ถ้าคุณต้องการที่จะทำหน้าที่เหมือนเป็นผู้ใช้ที่ไม่ระบุชื่อ" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "นี่คือชื่อจริงของคุณ" + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "คำอธิบาย" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "บอกเรานิด ๆ หน่อย ๆ เกี่ยวกับคุณ" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "ผู้ใช้ไม่มีการเชื่อมต่อ" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "คุณต้องการตัดการเชื่อมต่อ %s จากบัญชีนี้หรือไม่?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "บัญชีนี้เชื่อมต่อกับ %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "คุณต้องการยกเลิกการเชื่อมต่อบัญชี %s ของคุณหรือไม่?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "คุณจะออกจากระบบและคุณจะไม่สามารถเข้าสู่บัญชีของคุณโดยใช้บัญชี %s นี้ได้" + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "บัญชีของคุณเชื่อมต่อกับ %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "ตัตเชื่อมต่อ" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "เชื่อมต่อ %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "อย่าลังเลที่จะเรียกดูและค้นพบภาพร่วมกันทั้งหมดของภาพและอัลบั้มฉัน" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "ปุ่ม" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "ดูภาพทั้งหมดของฉัน" + +msgid "Login" +msgstr "เข้าสู่ระบบ" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "ส่งการเปิดใช้งานบัญชี" + +#, php-format +msgid "I'm at least %s years old" +msgstr "อายุอย่างน้อยที่สุดฉัน %s ปี" + +msgid "terms" +msgstr "เงื่อนไข" + +msgid "privacy policy" +msgstr "นโยบายความเป็นส่วนตัว" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "ฉันยอมรับ %terms_link และ %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "อัพโหลดรูปภาพพื้นหลังโปรไฟล์ของคุณ" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "เปลี่ยนพื้นหลัง" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "ภาพพื้นหลังโปรไฟล์จะถูกลบ. ไม่สามารถเลิกทำได้ คุณแน่ใจหรือไม่ว่าต้องการลบภาพพื้นหลังโปรไฟล์?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "ลบพื้นหลัง" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "ผู้ติดตาม" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "ติดตาม" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "คุณถูกห้ามการใช้งานเว็บไซต์นี้" + +msgid "Plugin" +msgstr "ปลั๊กอิน" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "คำถามทั่วไป/แสดงความคิดเห็น" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "ร้องเรียน DMCA" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "ข้อความผิดพลาด" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "หัวข้อผิดพลาด" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "เมลผิดพลาด" + +msgid "Message sent" +msgstr "ส่งข้อความ" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "ส่งข้อความแล้ว. เราจะติดต่อกลับในเร็ว ๆ นี้" + +msgid "If you want to send a message fill the form below." +msgstr "หากคุณต้องการที่จะส่งข้อความกรอกแบบฟอร์มด้านล่าง" + +msgid "Your name" +msgstr "ชื่อของคุณ" + +msgid "Subject" +msgstr "เรื่อง" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "การเปลี่ยนแปลงทั้งหมดที่คุณทำจะหายไปหากคุณดำเนินการต่อ" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "บันทึกการเปลี่ยนแปลงเรียบร้อยแล้ว" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "กลับไปที่แบบฟอร์ม" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "ดำเนินการต่อ" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "กำลังบันทึก" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "กำลังส่ง" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "ยืนยันการดำเนินการ" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "ข้อมูล" + diff --git a/app/languages/tr.po b/app/languages/tr.po new file mode 100644 index 0000000..fc0c5e7 --- /dev/null +++ b/app/languages/tr.po @@ -0,0 +1,5440 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:14+0000\n" +"PO-Revision-Date: 2020-09-02 17:14+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Geçersiz Mail Adresi. Lütfen Kontrol Ediniz." + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Geçersiz Kullanıcı Adı" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Geçersiz Şifre. Lütfen kontrol ederek tekrar deneyiniz." + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Geçersiz website modu." + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Gönderen e-posta adresi" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "E-Posta gönderilecek kullanıcıların mail adres veya adreslerini belirtiniz." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Gelen e-posta adresi" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Hatalar ve sistem uyarıları için iletişim formu" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Website modu" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Web sayfası modunu dilediğiniz zaman değiştirebilirsiniz." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Topluluk" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Kişisel" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Yüklü sürüm % s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "%s'ye bağlanılamıyor" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Son kullanılabilir sürüm % s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Güncelleme gerekli, indirme işlemi devam ediyor" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Güncelleme gerekli değil" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Sistem dosyaları zaten güncel" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "V % s indiriliyor" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "İndirilen %s çıkarma işlemine devam ediliyor" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "%s dosyalar çıkarılmayı deneniyor" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Ekstraksiyon tamamlandı" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Güncellemeyi yüklemek için prosedür" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Güncelleme başarısız oldu" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Güncelleme devam ediyor" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "%s dosyası eksik" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Geçersiz lisans bilgisi" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Geçersiz lisans anahtarı" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Dosya kaydedilemedi" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "%s dosyası indirilemiyor" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "%s çıkartılamıyor" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "%s dizini oluşturulamıyor - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Dosya %s güncellenemedi - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Lütfen devam etmek için hataları kontrol ediniz." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Albüm ismi girmelisiniz." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Onayla" + +msgid "The content has been approved." +msgstr "İçerik onaylandı." + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Mevcut olan albümü seçin" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Bir hata oluştu. Lütfen daha sonra tekrar deneyin." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Lütfen geçerli bir dosya türü seçiniz." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Lütfen en fazla %s boyutunda bir resim seçiniz." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Profil resmini güncelledi." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Profil arka plan görüntüsü güncellendi." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Profil arka plan resim silindi." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Profil arka plan resmi silinirken hata oluştu" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Şifreleriniz eşleşmiyor" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Mevcut v % s güncellemesi" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Sisteminiz için bir güncelleme var. Bu güncellemeyi otomatik olarak indirebilir ve yükleyebilir veya dosyayı indirmeye devam etmek için % s öğesine gidebilirsiniz ." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Güncelleme için sürüm notları" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Şimdi güncelle" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "veya" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "İptal Et" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Bu web sitesi en son %s sürümünü çalıştırıyor" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Yükleniyor..." + +msgid "Toggle select" +msgstr "Seçimi değiştir" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Beğen" + +msgid "Toggle flag" +msgstr "Geçiş bayrağı" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Düzenle" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Albüm" +msgstr[1] "Albümler" + +msgid "Approve" +msgstr "Onayla" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Sil" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Çıkış" + +msgid "Previous" +msgstr "Önceki" + +msgid "Next" +msgstr "Sonraki" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Pano resmi" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Dosya çok büyük." + +msgid "Invalid or unsupported file format." +msgstr "Geçersiz veya desteklenmeyen dosya formatı." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Bazı dosyalar eklenemedi" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "resim" +msgstr[1] "resimler" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s Albümleri" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Resim başarıyla düzenlendi." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "Gizli" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Albüm başarıyla düzenlendi." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Geçersiz URL key" + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Kategori URL anahtarı zaten kullanılıyor." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Kategori başarıyla silindi." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Kategori %s eklendi." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Geçersiz son kullanma tarihi." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "İP %s zaten yasaklandı." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "İP % yasaklandı." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP yasağı başarıyla silindi." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Lütfen tüm gerekli alanları doldurun." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Geçersiz depolama kapasitesi değeri. Geçerli bir format kullandığınızdan emin olun." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Depolama kapasitesi bundan daha düşük olamaz. (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Geçersiz URL." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Depolama başarıyla düzenlenmiştir." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Kullanıcı başarıyla eklendi." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "İçerik başarıyla silindi." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "İçerik taşındı." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Seçiniz" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Seçimleri Sıfırla" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "İçerik düzenlendi." + +#, javascript-format +msgid "Import job ID %s added successfully, you can process the import now" +msgstr "%s alma iş kimliği başarıyla eklendi, içe aktarmayı şimdi işleyebilirsiniz" + +msgid "Select number of threads" +msgstr "Konu sayısını seçin" + +#, javascript-format +msgid "Import job ID %s is being processed now" +msgstr "%s içe aktarma işi kimliği şu anda işleniyor" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "%s ithalat kimliği kaldırıldı" + +msgid "Spam detected" +msgstr "Spam tespit edildi" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "albüm" +msgstr[1] "albümler" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Taşkın tespit edildi. %time% Zaman başına yalnızca %limit% %content% yükleyebilirsiniz" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Başlıksız / isimsiz" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s'in resimleri" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Not: Bu içerik özeldir ama linke sahip olan birisi içeriği görüntüleyebilir." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Not: Bu içerik şifre korumalıdır. İçerigi paylaşmak için şifreyide paylaşmanız gerekir." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Not: Bu içerik özeldir. Paylaşmak için gizlilik ayarlarını değiştirin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Özel" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Genel" + +msgid "Me" +msgstr "Ben" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Link" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Şifre" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "görüntüleme" +msgstr[1] "görüntülemeler" + +msgid "After %n %t" +msgstr "Sonra %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "dakika" +msgstr[1] "dakika" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "saat" +msgstr[1] "saat" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "gün" +msgstr[1] "gün" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "hafta" +msgstr[1] "hafta" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "ay" +msgstr[1] "ay" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "yıl" +msgstr[1] "yıl" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Otomatik silme" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Çift yüklendi" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Gizli yükleme" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "beğen" +msgstr[1] "beğeniler" + +msgid "Recent" +msgstr "Son yüklenen" + +msgid "Trending" +msgstr "Trend olanlar" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "En iyi kullanıcılar" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Yeni yüklenen resimler" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Eskiler" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "En çok görüntülenen resimler" + +msgid "Popular" +msgstr "Popüler" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Çok beğenilen" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Araştır (keşfet)" + +msgid "Animated" +msgstr "Hareketli" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Arama" + +msgid "People" +msgstr "İnsan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Resim" +msgstr[1] "Resimler" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Üye" +msgstr[1] "Üyeler" + +msgid "adult" +msgstr "yetişkin" + +msgid "teen" +msgstr "genç" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "%s türü içerikler yasaktır." + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "%s Hedef dizin oluşturulamıyor" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "%s yazı için açılamaz" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Intern" + +msgid "Can't insert storage." +msgstr "Depolama eklenemiyor." + +msgid "Can't update storage details." +msgstr "Depolama detayları güncellenemiyor." + +#, php-format +msgid "requires %s" +msgstr "gerektirir %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Sınırsız" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "Eski" + +msgid "Private profile" +msgstr "Özel profil" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "saniye" +msgstr[1] "saniye" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s önce" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "dakika önce" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Yönetim Paneli" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Sisteminiz için bir güncelleme var. Güncellemeyi indirmek ve yüklemek için %s gidin." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Veritabanı güncel değil. Güncelleme <a href=\"%s\">update</a> yazılımını çalıştırın." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Website bakım modunda. Geri almak için şuraya gidin <a href=\"%s\">Panel> Ayarları</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "PHP hata bildirimi canlı sistemlerde devre dışı bırakılmalıdır. Bu ayarı değiştirmek için <a href='%s'> sistem ayarlarına </a> gidin." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Varsayılan posta ayarlarını ayarlamadınız. Bunu düzeltmek için <a href='%s'>e-posta ayarlarına</a> gidininiz." + +msgid "There is an update available for your Chevereto based website." +msgstr "Chevereto tabanlı web siteniz için bir güncelleme var." + +msgid "admin dashboard" +msgstr "yönetici paneli" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Bu güncellemeyi doğrudan %a 'dan başlayabilir veya manuel olarak indirebilir ve %s 'den yükleyebilirsiniz." + +#, php-format +msgid "view on %s" +msgstr "%s üzerinde izle" + +msgid "cookie policy" +msgstr "Çerez politikası" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Tarama deneyiminizi ve hizmetlerimizi geliştirmek için kendi ve üçüncü taraf çerezleri kullanıyoruz. Web sitemizi kullanmaya devam ederseniz, bu %cookie_policy_link'i kabul ettiğinizi anlıyoruz." + +msgid "I understand" +msgstr "Anlıyorum" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Şifremi unuttum?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Şifrenizi sıfırlayın" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Hesap etkinleştirme kodunu tekrar gönder" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "E-posta adresinizi ekleyin" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "E-posta adresiniz değiştirildi" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s senin bir robot olduğunu söylüyor" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Geçersiz kullanıcı adı / e-posta adresi" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Kullanıcının e-posta hesabı yok." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "İstek reddedildi" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Bu hesabın kullanılması için etkinleştirilmesi gereklidir. Lütfen mail adresinizi kontrol ederek hesabınızı etkinleştiriniz." + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Hesap zaten aktif" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Mail için lütfen 15 dakika bekleyip tekrar kontrol ediniz." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "%s şifrenizi sıfırlayınız" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "%s onaylanması gerekli" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Hoşgeldin %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Bu mail adresi kullanılmaktadır." + +msgid "Password required" +msgstr "Şifre gerekli" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Paylaş" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Embed (Paylaşım) Kodları" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Geniş bilgi" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a oranında bir albüm saklanır" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "İstatistikler" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Resimler" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albümler" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Kullanıcılar" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Ayarlar" + +msgid "Bulk importer" +msgstr "Eylem çağrısı" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Chevereto versiyon" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Güncelleme yükleniyor" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "gücelleştirmeleri kontrol et" + +msgid "Support" +msgstr "Destek" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Yardıma mı ihtiyacınız var? %s adresine gidin ve hızlı bir şekilde yardım alın." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP versiyon" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Sunucu" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL versiyon" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL sunucusu bilgisi" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "GD Kütüphanesi" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Dosya yüklemeleri" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Açık" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Kapalı" + +msgid "Max. upload file size" +msgstr "Maksimum yükleme dosyası boyutu" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Maksimum mesaj boyutu" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Maksimum yürütme zamanı" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d saniye" +msgstr[1] "%d saniyeler" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Hafıza boyutu" + +msgid "Rebuild stats" +msgstr "İstatistikleri yeniden oluştur" + +msgid "Connecting IP" +msgstr "IP Bağlantısı" + +msgid "Not your IP?" +msgstr "IP adresiniz değil mi?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Linkler" + +msgid "Collaboration" +msgstr "İşbirliği" + +msgid "Documentation" +msgstr "Belgeleme" + +msgid "Changelog" +msgstr "Değişiklikler" + +msgid "Bug tracking" +msgstr "Hata izleme" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Site adresi" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "İçerik" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Sayfalar" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Listeler" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Resim Yükle" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Kategoriler" + +msgid "Consent screen" +msgstr "Onay mesajı" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Koruma" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Tema" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Anasayfa" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Bannerler" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Sistem" + +msgid "Routing" +msgstr "Yönlendirme" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Dil" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Harici depolama" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Mail" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Sosyal ağlar" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Dış hizmetler (harici servis)" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "İp banlama" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "İlave ayarlar" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Araçlar" + +msgid "Can't delete all homepage cover images" +msgstr "Tüm başlık resimleri silinemez" + +msgid "Homepage cover image deleted" +msgstr "Kapak resmi silinmiş" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Yerel" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Harici" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Hepsi" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "İçerik Arama" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Sayfa ekle" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Sayfa kimliğini düzenle %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Sayfa başarıyla eklendi." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Sayfa silindi." + +msgid "homepage" +msgstr "Web sitesi" + +#, php-format +msgid "Before main title (%s)" +msgstr "Ana başlıktan önce (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Call to Action\" (%s) tarafindan" + +#, php-format +msgid "After cover (%s)" +msgstr "Kapak resmine göre (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Listeleme göre (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Sayfa numaralandırmadan önce" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Sayfa numaralandırıldıktan sonra" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "İçerik (görüntü ve albüm)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Görüntü detaylarına ek olarak" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Yorumlardan önce" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Resim sayfası" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "İç izleyici üst (resim sayfası)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "İç izleyici ayak (resim sayfası)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Resim görüntüleyici (görüntü sayfası) sonra" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Başlıktan önce (resim sayfası)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Başlığından sonra (resim sayfası)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Alt (görüntü sayfası)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Albüm sayfası" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Başlıktan önce (albüm sayfası)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Başlığından sonra (albüm sayfası)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Kullanıcı Profil Sayfası" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Üst sonra (kullanıcı profili)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Listeleme önce (kullanıcı profili)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Sayfayı keşfedin" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Üst sonra (sayfa keşfetmek)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Geçersiz website adresi" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Geçersiz dil dosyası" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Geçersiz zaman dilimi" + +#, php-format +msgid "Invalid value: %s" +msgstr "Geçersiz değer: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Geçersiz resim yükleme modu" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Geçersiz resim isimleri" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Geçersiz küçük resim genişliği" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Geçersiz küçük (trumb) resim yüksekliği" + +msgid "Invalid medium size" +msgstr "Geçersiz medya boyutu" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Watermark yüzdesi geçersiz" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Opaklık değeri geçersiz" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Geçersiz Tema ! Lütfen Ayarlarınızı Kontrol Ediniz." + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Geçersiz değer" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Geçersiz tema tonu." + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Temanın geçersiz ana rengi" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Tema ana çubuğu düğmelerinin geçersiz rengi" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Geçersiz tema listeleme boyutu." + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Geçersiz Kullanıcı ID" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Geçersiz e-posta modu" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Geçersiz SMTP portu" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Geçersiz SMTP" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Özel mod için geçersiz kullanıcı kimliği" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Geçersiz veya ayrılmış rota" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Web sitesinin geçersiz gizlilik modu" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Geçersiz website içerik gizlilik modu." + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Geçersiz stil" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "\"Call to Action\" düğmesinin geçersiz rengi" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Geçersiz \"Call to Action\" işlevi" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Geçersiz başlık" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Geçersiz durum" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Geçersiz tür" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Geçersiz görünürlük" + +msgid "Invalid internal type" +msgstr "Geçersiz dahili tür" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Geçersiz hedefler özelliği" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Geçersiz rel-Attribut" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Geçersiz simge" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Geçersiz URL anahtarı" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Geçersiz dosya yolu" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Geçersiz bağlantı URL'si" + +msgid "Invalid user minimum age" +msgstr "Kullanıcı için geçersiz yaş" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Yalnızca alfasayısal karakterler, kısa çizgiler ve alt çizgiler girilebilir" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Geçersiz URL" + +msgid "Routes can't be the same" +msgstr "Yollar aynı olmamalı" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Geçersiz resim yükleme yolu" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Geçersiz \"Call to Action\" URL'si" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Maksimum izin verilen %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "%m mevcut klasörle eşlenemez (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "%m mevcut yolla eşlenemez (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "%m,%r ile eşleştirilemez (kullanıcı adı çarpışması)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Geçersiz SMTP server ayarı" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Geçersiz SMTP kullanıcı adı" + +msgid "Invalid key" +msgstr "Geçersiz anahtar" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Bu URL anahtarı zaten başka bir sayfa için kullanılıyor (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Bu dosya yolu zaten başka bir sayfa için kullanılıyor (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Sayfa içeriği kaydedilemiyor: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Takip" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Hakkımızda" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "Resim ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "Resim yükleyenin IP adresi" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "IP'yi yasakla" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP zaten yasaklı" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Yükleme Zamanı" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Resim %i - %a bir albümde" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Resim %i - %c kategorisinde" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Resim %i kaydedildi %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Direk linkler" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Resim link" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Resim URL Adresi" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Küçük Resim URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Resim URL" + +msgid "Full image" +msgstr "Tam boyut" + +msgid "Full image (linked)" +msgstr "Tam görünüm (bağlantılı)" + +msgid "Medium image (linked)" +msgstr "Orta resim (bağlantılı)" + +msgid "Thumbnail image (linked)" +msgstr "Küçük resim (bağlantılı)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "İşlem yapmak için giriş yapınız" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "İP adresi zaten yasaklandı." + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Eksik değerler" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Geçersiz rol" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Kullanıcı adı zaten kullanıyor." + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "%s’i silmeden önce bir şifre veya sosyal medya bağlantısı ekleyin." + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Lütfen %s'i silmeden önce bir e-posta adresi veya başka bir sosyal medya bağlantısı ekleyin." + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s bağlantısı kesildi" + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "E-postayı test %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Bu sadece bir test." + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Test e-postası %s adresine gönderildi." + +#, php-format +msgid "Downloading %s data" +msgstr "%s veri indiriliyor" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "%s kullanıcısı takip ediliyor." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "%s kullanıcısı artık takip edilmiyor." + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Içeriğinizi beğendin" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Artık içeriği beğenmiyorsun" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u kişi %t %c beğendi" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u seni takip ediyor" + +msgid "A private user" +msgstr "Özel kullanıcı" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Geçersiz kullanıcı adı ve şifre ! lütfen kullanıcı adı ve şifre ayarlarınızı kontrol ederek tekrar giriş yapınız. " + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Giriş Yap" + +msgid "Moderate" +msgstr "Denetlemek" + +msgid "Upload images" +msgstr "Resim yükle" + +msgid "Upload plugin" +msgstr "Upload-Plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "%s için resim arama sonuçları" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "%s için albüm arama sonuçları" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "%s için kullanıcı arama sonuçları" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Hesabım" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Kullanıcı Profili" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Bağlı hesaplar" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "Geçersiz son kullanma tarihi: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Lütfen %s Adresinize Gönderilen Aktivasyon Kodunu Onaylamanız Gerekmektedir. Aksi Takdirde Üyelik İşleminiz Onaylanmayacaktır." + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Geçersiz İsim (Ad) ! lütfen kontrol ediniz." + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Geçersiz website adresi ! lütfen kontrol ediniz." + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Geçersiz şifre ! lütfen şifrenizi kontrol ediniz." + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Şifrenizi mi unuttunuz ? yeni şifre oluşturmak için tıklayınız" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Değişiklikler başarıyla kaydedildi." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Şifreniz başarılı bir şekilde değiştirildi. Yeni şifre ile giriş yapabilirsiniz." + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Parola oluşturuldu." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Geçersiz kullanıcı adı / e-posta adresi ! lütfen kullanıcı adı ve/veya e-posta adresini kontrol ediniz." + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "%s Ayarları" + +msgid "You must agree to the terms and privacy policy" +msgstr "Şartları ve gizlilik politikasını kabul etmeniz gerekiyor" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Bu siteyi kullanabilmeniz için en az %s yaşında olmanız gereklidir." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Hesap Oluştur" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Resim Yükle" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s Resimleri" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Sonuçlar" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%s tarafından beğenildi" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Beğen" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Takipciler" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albümler %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) on %w" + +msgid "Discovery" +msgstr "Keşfet" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Gelişmiş arama" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Rastgele" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Bildirimler (%s)" + +msgid "Lights" +msgstr "Gündüz/Gece" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Bildirimler" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Bildirim yok :(" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Profilim" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Çıkış yap" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "%w adresinden <a href=\"%u\">%n</a> hesabınizin e-posta adresinizin değiştirmek için bir istek geldi." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Işleminizi tamamlamak için, <a href=\"%s\"> e-posta adresinizi onaylamanız gerekiyor. </a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Alternatif olarak linki kopyalayıp tarayıcınıza yapıştırınız. <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Böyle bir şey yapmadıysanız bu mesajı yoksayın." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Bu istek %s IP den yapıldı." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Hesabı %n kaydettirmek için %w bir istek aldık." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "İşlemi tamamlamak için <a href=\"%s\">hesabını etkinleştir</a>'e tıklayın." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "<a href=\"%u\">%n</a> hesabı için şifre sıfırlama talebi aldık." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "şifreni tazelemek için <a href=\"%s\">bu linki takip et</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Merhaba %n, %w hoşgeldin." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Hesabınız hazır. Şimdi resim yüklemenin ve daha bir çok özelliğin keyfini çıkarabilirisiniz." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Bu arada bu sizin profil sayfanız: <a href=\"%u\">%n</a>. İstediğiniz gibi düzenleyebilirsiniz." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Katıldığınız için teşekkür ederiz." + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Bu email %w %u tarafından gönderilmiştir" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Yüklemek istediğiniz resimleri sürükleyip bırakın" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Yüklemek istediğiniz resmi seçin." + +msgid "browse from your computer" +msgstr "bilgisayardan seç" + +msgid "add image URLs" +msgstr "Resim URL'leri" + +msgid "You can also %i or %u." +msgstr "%i veya %u da kullanabilirsiniz." + +msgid "browse from your device" +msgstr "Cihazınızı arayın" + +msgid "take a picture" +msgstr "Fotoğraf çekiniz" + +msgid "You can also %i, %c or %u." +msgstr "Ayrıca %i, %c veya %u da olabilir." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Önizlemeyi tıklayarak bir resmi düzenleyin veya ölçeklendirin" + +msgid "Edit any image by touching the image preview" +msgstr "Önizleme dokunarak bir görüntüyü düzenlenleyin" + +msgid "your computer" +msgstr "Bilgisayarınız" + +msgid "You can add more images from %i or %u." +msgstr "%i veya %u ’dan daha fazla resim ekleyebilirsiniz." + +msgid "your device" +msgstr "Cihazınız" + +msgid "You can add more images from %i, %c or %u." +msgstr "%i, %c veya %u ’dan daha fazla resim ekleyebilirsiniz." + +msgid "Uploading %q %o" +msgstr "%q %o yükleniyor" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "tamamlandı" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Sıra işlenir, bu birkaç saniye sürer." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Yükleme Tamamlandı" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Yüklenen resimler %s öğesine eklendi." + +msgid "You can %c with the content just uploaded or %m." +msgstr "Yeni yüklenen içerikle %c veya %m yapabilirsiniz." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "Yeni yüklenen içerikle %c yapabilirsiniz." + +msgid "create a new album" +msgstr "Yeni albüm oluştur" + +msgid "move it to an existing album" +msgstr "Mevcut albüme kaydır" + +msgid "You must %s or %l to save this content into your account." +msgstr "Bu içeriği hesabınıza kaydetmek için %s veya %l gerekir." + +msgid "create an account" +msgstr "Hesap oluştur" + +msgid "sign in" +msgstr "Giriş" + +#, php-format +msgid "No %s have been uploaded" +msgstr "%s yüklenmedi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Hata! Lütfen işlemlerini tekrar deneyiniz" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Kategori" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Kategori seçin" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Yükleyeceğiniz resim Aile için uygun değilse bu işareti seç" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Aile için güvenli bir yükleme değil" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Yükleniyor" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Yüklemeyi iptal et" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Not : Bazı resimler yüklenemedi." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "Daha fazla bilgi" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Daha fazla bilgi için <a data-modal=\"simple\" data-target=\"failed-upload-result\">hata raporunu</a> kontrol ediniz." + +#, php-format +msgid "Register to get %s" +msgstr "%s almak için kayıt olun" + +msgid "reset" +msgstr "Dönüştür" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "kapat" + +msgid "Note" +msgstr "Not" + +msgid "We must approve the uploaded content before being able to share." +msgstr "Paylaşmadan önce yüklenen içeriği onaylamamız gerekir." + +msgid "copy" +msgstr "Kopyala" + +msgid "insert" +msgstr "Ekle" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Kaldır" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Başlık" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "Opsiyonel" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Resmi yeniden boyutlandır" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Genişlik" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Yükseklik" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Not: Hareket içeren GIF görüntülerin boyutlarını değiştiremezsiniz." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Resimlerin otomatik olarak silinmesi" + +msgid "Sign up" +msgstr "Kayıt ol" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s görüntü otomatik silme özelliğini özelleştirebilme veya devre dışı bırakabilme." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "İçeriğin aile için güvenli olup olmadığını seçin" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Güvenli değil olarak işaretle" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Tanımlar" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Resmin kısa açılaması" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "URL ile Resim Yükle" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "URL ile resmi buradan yükleyin" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Yeni albüm oluştur" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "Yüklenen içerik bu yeni oluşturulan albüme taşınacak." + +msgid "existing album" +msgstr "mevcut albüm" + +msgid "You can also move the content to an %a." +msgstr "İçeriği ayrıca %a ya da taşıyabilirsiniz." + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "Bu albümü daha sonra düzenlemek isterseniz %s veya %l gerekir." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Resimleri albüme taşı" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Yüklenen resimleri taşımak için bir albüm seçiniz. İsterseniz <a class=\"modal-switch\" data-switch=\"move-new-album\">yeni bir albüm</a> oluşturarak resimlerinizi yeni albüme taşıyabilirsiniz." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Hata raporu" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Görüntülenen bağlantılar" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML Kodları" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML (tam görünüm)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML (tam görünüm bağlantısı)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML Standart resim link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML küçük resim link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBKodları" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode (tam görünüm)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode (tam görünüm bağlantısı)" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BB Standart resim link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BB küçük resim link" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown dolu" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown tam bağlantılı" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown orta bağlantılı" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "İşaretleme küçük resmi bağlantılı" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Tüm bu kelimeler" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Önemli olan kelimeleri giriniz: üç renkli sıçan terieri." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Bu kelime veya cümle" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Tırnak arasına kesin kelimeler koymak: \"osmanlı imparatorluğu\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Bu kelimelerden hiçbiri değil" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "İstemediğiniz kelimelerin hemen önünde bir eksi işareti koyun: -rodent - \"Jack Russell\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Depolama" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "İP adresi" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Albüm ismi" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "mevcut albümü taşı" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Albüm bilgileri" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Albüm hakkında kısa tanım" + +msgid "Album privacy" +msgstr "Albüm gizliliği" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Bu içeriği kimler görüntüleyebilir ?" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Özel ve gizli (sadece ben)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Özel (bağlantıya sahip herkes görebilir)" + +msgid "Private (password protected)" +msgstr "Özel (şifre korumalı)" + +msgid "Album password" +msgstr "Albüm şifre" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "İsim (Ad)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Kategori ismi" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "URL anahtarı" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Kategori URL anahtarı" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Sadece harfler, rakamlar ve tire" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Kategori hakkında kısa tanım" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "İsimsiz resim" + +msgid "Mark this if the image is not safe for work" +msgstr "Görüntü aile için güvenli değilse işaretleyin." + +msgid "Flag not safe" +msgstr "Güvenli değil olarak işaretle." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Yol" + +msgid "Local path (absolute)" +msgstr "Yerel yol (mutlak)" + +msgid "Directory structure" +msgstr "Dizin yapısı" + +msgid "Parse top level folders as users (username)" +msgstr "Üst düzey klasörleri kullanıcı olarak ayrıştır (kullanıcı adı)" + +msgid "Parse top level folders as albums" +msgstr "Üst düzey klasörleri albüm olarak ayrıştır" + +msgid "Don't parse folders" +msgstr "Klasörleri ayrıştırma" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "Üst düzey klasörleri kullanıcı olarak ayrıştırırken, ikinci düzey klasörler kullanıcı albümü olarak ayrıştırılır. Üst düzey klasörleri albüm olarak ayrıştırmak, bunları konuk albümleri olarak ekler." + +msgid "Threads" +msgstr "Konular" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "Bu, ithalat işleminin ne kadar yoğun ve hızlı olacağını belirler. Paylaşılan bir sunucuda %s den fazla iş parçacığı kullanmayın." + +msgid "You can use wildcard * characters." +msgstr "Joker karakterler kullanabilirsiniz (*)." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Son kullanma tarihi" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-AA-GG SS:DD:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Örnek" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "IP adresi ne zamana kadar engellenmeli? Hiçbir giriş son kullanma tarihi belirtmez." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Mesajınız" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Kısa mesaj, HTML veya yönlendirme URL'si" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Mevcut Albüm" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "Yeni Albüm Oluştur" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Depolayıcı ismi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Bölge" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Depolama bölgesi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Depolama kova" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Anahtar" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Depolama anahtarı" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Gizli" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Depolama gizli" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Özel anahtar" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON anahtarı" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Bu özellik için bir <a %s> hesabına </a> ihtiyacınız var." + +msgid "Service name" +msgstr "Hizmet adı" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Kimlik URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Kimlik API son nokta" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "OpenStack kimliği için API son noktası" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Kullanıcı adı" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "konteyner" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Depolama-Container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Kiracı kimliği" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Kiracı kimliği (hesap kimliği)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Kiracının adı" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Kiracı adı (hesap adı)" + +msgid "Storage endpoint" +msgstr "Depolama bitiş noktası" + +msgid "Server address" +msgstr "Sunucu adresi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Depolama sunucusunun adı veya ip adresi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Sunucu yolu" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "Dosyaların %p oturum açma bağlamında saklanacağı mutlak yol. Kök yolu için %s kullanın." + +msgid "Server login" +msgstr "Sunucu girişi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Sunucu şirfesi" + +msgid "Local path" +msgstr "Yerel yol" + +msgid "Local path where the files will be stored" +msgstr "Dosyaların depolanacağı yerel yol" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Depolama kapasitesi" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Örnek: 20 GB, 1 TB, vs." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Bu kapasiteye ulaştığında bu depolama devre dışı bırakılacak. Boş bırakın veya limitsiz için sıfır yazın." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Depolama URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Sistem bu mağazadaki dosyaları bu URL ile eşler." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "Daha fazlası" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Daha fazla yükle" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Hepsini Seç" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Seçimi temizle" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Seç" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Eylem" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Embed kodları alın" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Kategori atama" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Güvenli olarak işaretle" + +msgid "Create new album" +msgstr "Yeni albüm oluştur" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Başka bir hesap ile oturum açın" + +msgid "Continue with %label%" +msgstr "%label% ile devam et" + +msgid "Home" +msgstr "Anasayfa" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Burada gösterilecek birşey yok." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Resimleriniz yeni oluşturulacak bir albüme taşınacaktır. İsterseniz resimlerinizi <a class=\"modal-switch\" data-switch=\"move-existing-album\">mevcut albümlerden</a>.birisine taşıyabilirsiniz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Yüklenen resimleri taşımak için bir albüm seçiniz. İsterseniz <a class=\"modal-switch\" data-switch=\"move-new-album\">yeni bir albüm</a> oluşturarak resimlerinizi yeni albüme taşıyabilirsiniz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Lütfen albüm içeriklerini taşımak için varolan bir albüm seçiniz. Ayrıca <a class=\"modal-switch\" data-switch=\"move-new-album\">Buradan</a> yeni albüm yaratarak içeriklerinizi taşıyabilirsiniz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Yüklenen resimleri taşımak için bir albüm seçiniz. İsterseniz <a class=\"modal-switch\" data-switch=\"move-new-album\">yeni bir albüm</a> oluşturarak resimlerinizi yeni albüme taşıyabilirsiniz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Seçilen tüm görüntüler bu kategoriye tahsis edilecektir." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Kategori yok." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "İşaretli içeriği güvenli olarak onaylayın" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Bu içeriği gerçekten güvenli olarak işaretlemek istiyor musunuz?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "İşaretli içeriği rahatsız edici olarak onaylayın" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Bu içeriği gerçekten rahatsız edici olarak işaretlemek istiyor musunuz?" + +msgid "Confirm approval" +msgstr "Onayı onayla" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "Seçilen tüm içeriği gerçekten kaldırmak istiyor musunuz? Bu geri alınamaz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Silmek istediğinizden emin misiniz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Resim veya resimleri silmek istediğinizden eminmisiniz. Resimler geri dönüşümü olmaksızın silinecektir." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "Seçilen tüm içeriği gerçekten kaldırmak istiyor musunuz? Bu geri alınamaz." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Seçili resimleri silmek istediğinizden eminmisiniz ?. Resimler geri dönüşümü olmaksızın silinecektir." + +msgid "Fullscreen" +msgstr "Tam ekran" + +msgid "Exit fullscreen" +msgstr "Tam ekrandan çık" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Misafir Kullanıcı" + +msgid "Keyboard shortcuts" +msgstr "Klavye Kısayol" + +msgid "Private album" +msgstr "Özel albüm" + +msgid "Password protected" +msgstr "Şifre korumalı" + +msgid "Uploaded by guest" +msgstr "Bir misafir tarafından yüklendi" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Yükleyen %s" + +msgid "Uploaded by private" +msgstr "Özel olarak yüklendi" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "%u'dan" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Güvensiz işaretini tersine dönüştür" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Aradığınız sayfa bulunmamaktadır." + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Aradığınız sayfa bulunmamaktadır. Lütfen kontrol ederek tekrar deneyiniz." + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Başka bir şey ara" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Geçersiz veya silinmiş kullanıcı. Lütfen bilgilerinizi kontrol ederek tekrar deneyiniz." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Hesabınız nerdeyse hazır. Lütfen e-posta adresinize gelen aktivasyon işlemini gerçekleştiriniz." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "%s hesabınızı etkinleştirmek için mail gönderildi. Aktivasyon işlemi 48 saat için geçerlidir. Mail almadığınızı düşünüyorsanız lütfen spam veya önemsiz kutularını kontrol ediniz. " + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Aktivasyon e-postasını tekrar gönder" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Değiştirmiş olduğunuz e-posta adresi %s. Yanlışlık olduğunu veya hatalı olduğunu düşünüyorsanız ayarlarını kontrol ediniz veya bize ulaşınız." + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Profilime geri dön" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Onay linki ve hesapla ilgili bilgiler mail olarak gönderilecektir." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "E-posta adresi" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Gönder" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Şifrenizi sıfırlamak için gerekli bilgiler kayıtlı mail adresinize gönderildi. Bazı mail sunucularında mailler \"Spam, Önemsiz, Gereksiz mail\" kutularını düşebilmektedir. Kontrol etmeyi unutmayınız." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Önceki gönderilen eposta içerisinde şifrenizi sıfırlama talimatı bulunmaktaydı.Şayet talimatı almadıysanız eposta spam veya önemsiz klasörlerine kontrol ediniz." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Tekrar gönder" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "Şifrenizi sıfırlamak için kullanıcı adınızı veya e-posta adresinizi yazın. %s adresinden e-posta gelecektir." + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Kullanıcı adınız veya e-posta adresiniz" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Şifreniz başarıyla değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Giriş Yap" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Yeni Şifrenizi Yazınız" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "en az %d karakter" + +msgid "Password strength" +msgstr "Şifre güvenlik seviyesi" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Lütfen yeni şifrenizi tekrardan yazınız." + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Kullanıcı hesabını etkinleştirme talimatları ile %s adresine bir e-posta gönderildi. Talimatlara sahip bir e-posta almadıysanız, lütfen spam filtrenizi kontrol edininiz." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Özel içerik !" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Gerçekten bu albümü ve içindekileri silmek istiyormusun? Bu işlemin geri dönüşü yok." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Bunu beğendiniz" + +msgid "Upload to album" +msgstr "Albüme yükle" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Albüm link adresi" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Devam etmeden önce lütfen aşağıdaki koşulları okuyun ve onaylayın:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Bu web sitesi cinsel açıdan uygunsuz materyaller içeren bilgiler, bağlantılar ve resimler içermektedir. Eğer %s yıldan daha az iseniz, gösterilen materyallere herhangi bir şekilde katılmamalısınız ya da ülkenizde gösterilen materyaller yasa dışı ise, lütfen bu sayfadan çıkınız.\n\nEn az %s yaşındayım ve bir yetişkin olarak cinsel taciz edici materyalleri görmeye hakkım olduğuna inanıyorum. Cinsel olarak saldırgan materyalleri görmek veya almak istiyorum.\n\nYetişkin cinsel eylemlerinin ne müstehcen ne de saldırgan olduğu kanaatindeyim. Cinsel olarak müstehcen materyalleri görüntülemek, okumak ve indirmek, topluluklarım, şehri, eyaleti veya ülkemi yasaları ihlal etmemektedir.\n\nCinsel olarak rahatsız edici materyaller sadece kişisel kullanımım içindir ve malzemeyi küçüklere teslim etmeyeceğim.\n\nBu sitedeki materyalin görüntülenmesi, okunması ve indirilmesi sonucu ortaya çıkabilecek herhangi bir izinsiz yayın veya hukuki sonuçtan şahsen sorumluyum. Ayrıca, bu sitenin operatörü veya bu sitenin diğer herhangi bir ortakları, bu siteyi ziyaret ettiğim veya bu siteyi kullanmamdan kaynaklanan herhangi bir yasal sonuçtan sorumlu değildir.\n\nBu rıza bildirimi, kullanıcı ile bu web sitesinin operatörü arasında yasal olarak bağlayıcı bir anlaşma teşkil eder. Bu anlaşmanın herhangi bir kısmı yasal olarak geçersiz olursa, diğer tüm bileşenler etkilenmez." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "\"Kabul ediyorum\" u tıklayarak, yukarıdaki koşulları okuduğunuzu ve anladığınızı beyan etmiş olursunuz." + +msgid "I Agree" +msgstr "Kabul ediyorum" + +msgid "documentation" +msgstr "Belgeleme" + +#, php-format +msgid "Learn more about %s at our %d." +msgstr "%s hakkında %d hakkında daha fazla bilgi edinin." + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "Bağlanan IP, %var%. sunucu değişkeni kullanılarak belirlenir. Algılanan IP sizinkiyle eşleşmezse, web sunucunuzun bir proxy altında olduğu ve gerçek bağlantı IP'sini ayarlamak için sunucunuzu ayarlamanız gerektiği anlamına gelir." + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "Nginx için %nginx%. kullanmalısınız. Apache için %apache%." + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "Sistem, temel işlevler sağlamak ve spam, sel ve kaba kuvvet saldırılarına karşı koruma sağlamak için doğru IP algılamalarına bağlı olduğundan bu sorunu çözdüğünüzden emin olun." + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Kullanılan disk alanı" + +msgid "This tool allows to mass add content to your website by pointing a system path with the content you want to import. It supports the addition of users, albums, and images using a folder based structure." +msgstr "Bu araç, içe aktarmak istediğiniz içeriğin bulunduğu bir sistem yolunu işaretleyerek web sitenize toplu içerik eklemenize olanak tanır. Klasör tabanlı bir yapı kullanarak kullanıcıların, albümlerin ve görüntülerin eklenmesini destekler." + +msgid "Automatic importing" +msgstr "Otomatik içe aktarma" + +msgid "The system automatically parses any content by a continuous observation of the %path% path." +msgstr "Sistem, %path% yolunu sürekli gözlemleyerek herhangi bir içeriği otomatik olarak ayrıştırır." + +msgid "Completed jobs will be automatically re-started after %n %m." +msgstr "Tamamlanan işler %n %m sonra otomatik olarak yeniden başlatılacak." + +msgid "Reset to clear stats and logs." +msgstr "İstatistikleri ve günlükleri temizlemek için sıfırlayın." + +msgid "Queued" +msgstr "Sıraya alındı" + +msgid "Working" +msgstr "Çalışma" + +msgid "Paused" +msgstr "Durduruldu" + +msgid "Canceled" +msgstr "İptal edildi" + +msgid "Completed" +msgstr "Tamamlanan" + +msgid "Actions" +msgstr "Eylemler" + +msgid "Reset" +msgstr "Sıfırla" + +msgid "Pause" +msgstr "Duraklat" + +msgid "Resume" +msgstr "Devam et" + +msgid "Process log" +msgstr "İşlem günlüğü" + +msgid "Errors" +msgstr "Hatalar" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Durumu" + +msgid "The system works with a scheduled command to continuously process the importing. It requires a crontab entry." +msgstr "Sistem, içe aktarmayı sürekli olarak işlemek için zamanlanmış bir komutla çalışır. Bir crontab girişi gerektirir." + +msgid "You can run the command in parallel by changing the integer value of %s%." +msgstr "%s% tam sayı değerini değiştirerek komutu paralel olarak çalıştırabilirsiniz." + +msgid "All file-system permissions must be granted for the crontab user at %path%" +msgstr "%path% yolundaki crontab kullanıcısı için tüm dosya sistemi izinleri verilmelidir" + +msgid "Add import job" +msgstr "İçe aktarma işi ekle" + +msgid "Process import" +msgstr "İşlem içe aktarma" + +#, php-format +msgid "Top level folders as %s" +msgstr "%s olarak en üst düzey klasörler" + +msgid "Process" +msgstr "Süreç" + +msgid "Cancel" +msgstr "İptal et" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "%s alma kimliğini gerçekten kaldırmak istiyor musunuz?" + +msgid "Manual importing" +msgstr "Manuel içe aktarma" + +msgid "The system will parse the contents of any available filesystem path." +msgstr "Sistem, kullanılabilir herhangi bir dosya sistemi yolunun içeriğini ayrıştırır." + +msgid "These processes must be manually created and handled with the web browser tab open." +msgstr "Bu işlemler web tarayıcısı sekmesi açıkken manuel olarak oluşturulmalı ve ele alınmalıdır." + +msgid "Parser" +msgstr "Ayrıştırıcı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Kullanıcı ekle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Rolü" + +msgid "Manager" +msgstr "Yönetici" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Yönetici" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "E-posta adresi" + +msgid "This setting is always diabled when using personal website mode." +msgstr "Özel mod etkinse bu ayar her zaman devre dışı bırakılır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Kategori ekle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "İP yasağı ekle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Depolama ekle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Sayfalara dön" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Site adını yazınız." + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Sitenizin başlığını yazınız." + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Sitenizin açıklamasını yazınız." + +msgid "Powered by" +msgstr "Powered by" + +#, php-format +msgid "Enable this if you want to show a \"%s\" link at the footer." +msgstr "İçeriği paylaşacak sosyal ağ düğmelerini göstermek istiyorsanız bunu etkinleştirin." + +msgid "Automatic" +msgstr "Otomatik" + +msgid "Forced" +msgstr "Zorunlu" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a sunucu tarafında HTTPS algılamayı kullanacaktır (önerilir). %f sunucunuzun kurulumundan bağımsız olarak HTTPS kullanacaktır. %d HTTPS kullanmamak için." + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "Bu, yalnızca URL’lerde kullanılan protokolü kontrol eder, sunucunuz HTTPS’yi destekleyecek ve kullanacak şekilde yapılandırılmadıkça web sitenizi geçerli bir HTTPS web sitesine dönüştürmez." + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Varsayılan Zaman Dilimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Bölge Seçiniz." + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "Verilen arama sorgusuna göre resim, albüm ve kullanıcı aramanızı sağlar." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "Herkese açık görsellere göz atmayı sağlar. Kategoriler de aktive edilir." + +msgid "guests" +msgstr "Ziyaretçi" + +msgid "Enables explore for guests." +msgstr "Ziyaretçiler için \"Discover\" modunu aktifleştirin." + +msgid "Enables to browse images randomly." +msgstr "Görüntülerin rasgele taranmasını sağlar." + +msgid "Likes" +msgstr "Beğeniler" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "Kullanıcıların içeriği sevmesini ve en popüler içeriği görüntülemesini sağlar." + +msgid "Followers allows users to follow each other." +msgstr "\"Takipçiler\" işlevi diğer kullanıcıların içeriğini takip etmeyi mümkün kılar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Kişisel mod hedef kullanıcı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "Kullanıcı ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Kullanıcı kimliğiniz: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Kişisel mod için hedef kullanıcının sayısal kimliği." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Kişisel mod yönlendirmesi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Haritaya / kullanıcı adına / özel şeye özel yol. Ana sayfaya eşlemek için \"/\" kullanın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Web sitesi gizlilik modu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Özel mod, web sitesini yalnızca kayıtlı kullanıcılar tarafından kullanılabilir duruma getirir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "İçerik gizlilik modu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Varsayılan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Özel kişiyi zorla (öz)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Özel olarak zorla (bağlantıya sahip olan herkes)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "Zorla gizlilik modları, kullanıcının seçtiği gizliliği geçersiz kılar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Sayfa başlığı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Sayfa durumu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Aktif sayfa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Etkin olmayan sayfa (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Sadece aktif sayfalar erişilebilir olacaktır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Tip" + +msgid "Terms of service" +msgstr "Kullanım şartları" + +msgid "Privacy" +msgstr "Gizlilik" + +msgid "Contact" +msgstr "İletişim" + +msgid "Extra page" +msgstr "Ekstra sayfa" + +msgid "Internal page type" +msgstr "Dahili sayfa tipi" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "Birden fazla ekstra sayfanız olabilir, ancak diğer özel dahili türlerden yalnızca birini kullanabilirsiniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Sayfa görünürlüğü" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Görünür sayfa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Gizli sayfa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Gizli sayfalar sistem menülerinde gösterilmez, ancak herhangi biri buna link üzerinden erişebilir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Sadece alfanümerik, tire ve eğik çizgi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Dosya yolu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "%s ile ilişkili bir %f dosya" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Anahtar Kelimeler" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta açıklaması" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Kaynak kodu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "%s yolunda yazma izni yok, bu dosyayı harici bir editör kullanarak eklemeniz gerekir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "%s içindeki yazma izniniz yok, bu dosyanın içeriğini harici bir editör kullanarak düzenlemeniz gerekecek." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Alındığı kaynak: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Bağlantı URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Bağlantı hedefi özelliği" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Sayfayı açmak veya yeni pencerede bağlantı kurmak için %s seçeneğini seçin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Bağlantı rel özelliği" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Sadece alfanümerikler, kısa çizgiler ve boşluklar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s özelliği" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Bağlantı simgesi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Desteklenen simgelerin tam listesi için <a %s>simge referansını</a> kontrol edin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Sipariş ekranını sırala" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Menüler ve listeler için sayfa sıralama düzeni göstergesi. Öncelik için \"1\" kullanın." + +msgid "pages" +msgstr "sayfalar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "%s sayfa kimliğini gerçekten silmek istiyor musunuz? Bu işlem geri alınamaz." + +msgid "Enabled image formats" +msgstr "Etkin görüntü formatları" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "İşaretlenmemiş resim formatlarının yüklenmesine izin verilmiyor." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Desteklenen Formatlar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Resim yükleme izin vermek için bunu etkinleştirin. Bu ayar, yöneticilerin etkilemez." + +msgid "Upload user interface" +msgstr "Kullanıcı arayüzünü yükle" + +msgid "On-page container" +msgstr "Sayfa içi konteyner" + +msgid "route" +msgstr "rota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Misafirlerin Yüklediği Resimler" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Misafir Kullanıcıların Resim Yüklemesini İstiyorsanız Bunu Etkinleştirmeniz Gerekmektedir. " + +msgid "Moderate uploads" +msgstr "Yüklemeleri denetle" + +msgid "Guests" +msgstr "Ziyaretçiler" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "Gelen yüklemeleri denetlemek için bunu etkinleştirin. Hedef içerik, onay için denetim gerektirecektir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Katıştırma kodlarını etkinleştir (yükleyici)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Yükleme tamamlandığında katıştırma kodlarını göstermek istiyorsanız bunu etkinleştirin." + +msgid "Upload threads" +msgstr "Konuları yükle" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "Eşzamanlı yükleme iş parçacığı sayısı (paralel yükleme)" + +msgid "Redirect on single upload" +msgstr "Tek yüklemede yönlendir" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "Tekli yüklemede resim sayfasına yönlendirmek istiyorsanız bunu etkinleştirin." + +msgid "Enable duplicate uploads" +msgstr "Çift yüklemeleri etkinleştir" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "24 saat içinde aynı IP'den yinelenen yüklemelere izin vermek istiyorsanız bunu etkinleştirin. Bu ayar yöneticileri etkilemez." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Süresi aşılabilir yüklemeleri etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Otomatik silme seçeneğiyle yüklemelere izin vermek istiyorsanız bunu etkinleştirin." + +msgid "Auto delete guest uploads" +msgstr "Misafir yüklemelerini otomatik sil" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "Misafir yüklemelerini belirli bir süre sonra otomatik olarak silinmeye zorlamak istiyorsanız bunu etkinleştirin." + +msgid "Maximum image size" +msgstr "Maksimum görüntü boyutu" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "Bu boyuttan daha büyük resimler otomatik olarak küçültülür. Limit koymamak için sıfır (0) kullanın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Görüntü Exif verileri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Tut" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Yükleme sırasında resim <a %s>Exif verileri</a> için varsayılan ayarı seçin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Görüntü Exif verileri (kullanıcı ayarı)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Her bir kullanıcının Exif verilerinin nasıl işleneceğini görüntülemesine izin vermek istiyorsanız bunu etkinleştirin." + +msgid "Maximum upload file size" +msgstr "Maksimam dosya yükleme boyutu" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "Sunucunun izin verdiği maksimum boyut %s Bu limit %u ve %p (%f değerleri) ile sınırlandırılmıştır." + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "\"%s\" ile aynı, ancak misafirler için." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Resim Yolu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Chevereto Root (Ana Dizin) Yolu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Resimleri depolama yeri neresidir ?. Chevereto root dosyasına göre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Saklama (Depolama) Modu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Klasör Tarihleri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Doğrudan (Direk)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Klasör Tarihlerinin %s Yapısı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Dosya İsimlendirme Yöntemi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Orijinal İsmi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Orijinali + rastgele karıştır" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Orijinal\", resim kaynağı adını korumaya çalışacak, \"Rastgele\" ise rasgele bir isim oluşturacaktır. \"ID\" resme tıpkı resim kimliği gibi ad verir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Küçük resim boyutu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Resimlere eklenecek trumbnails (küçük logo) boyutunu." + +msgid "Medium image fixed dimension" +msgstr "Orta görüntü sabit boyut" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Orta boyutlu görüntüler bu boyuta sabitlenir. Örneğin, \"genişlik\" i seçerseniz, bu boyut sabitlenir ve görüntü yüksekliği otomatik olarak hesaplanır." + +msgid "Medium image fixed size" +msgstr "Orta görüntü sabit boyut" + +msgid "Width or height will be automatically calculated." +msgstr "Genişlik veya yükseklik otomatik olarak hesaplanacaktır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Filigranlar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Görüntü yüklemelerinde logo veya istediğiniz herhangi bir şeyi koymak için bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Uyarı: %s yazılamıyor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Filigran kullanıcısı geçiş yapar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Konukların yüklemelerine watermark uygulanmasını etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "kullanıcıların yüklemelerine watermark uygulanmasını etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "admin yüklemelerine watermark uygulanmasını etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Filigran dosyası geçiş yapar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "GIF resimler için de watermark'ı etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Minimum resim boyutundan küçük resimlere watermark uygulanamaz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Resim bundan küçükse watermark uygulanmayacaktır. Minimum resim boyutu sınırlaması istemiyorsanız (0) giriniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Filigran resmi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Gölge logolu düz logolarda en iyi sonuçları alacaksınız. Dosya boyutu o kadar büyük değilse büyük bir resim kullanabilirsiniz (önerilen maksimum 16 KB'dir). PNG olmalı." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Filigran konumu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "Sol üst" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "Sol orta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "Sol alt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "Üst orta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "Orta merkez" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "Alt orta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "Sağ üst" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "Sağ orta" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "Sağ alt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Filigran görüntüsünün göreceli konumu. İlk önce yatay hizalamayı dikey hizalayın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Filigran yüzdesi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Hedef görüntü alanına göre filigran yüzde büyüklüğü. 1 ila 100 arasındaki değerler." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Filigran kenar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Görüntünün sınırından filigran görüntüsüne kenar boşluğu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Filigran şeffaglığı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Filigranın son filigran görüntüsündeki opaklığı. 0 ila 100 arasındaki değerler." + +msgid "Dashboard > Settings > Website" +msgstr "Kontrol Paneli> Ayarlar> Web sitesi" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "Gezgin özelliği kapatıldığında kategoriler çalışmayacak. Bu ayarı geri almak için %s konumuna gidin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "%s kategorisini gerçekten silmek istiyor musunuz? Bu işlem geri alınamaz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Not: Bir kategoriyi silmek, o kategoriye ait görüntüleri silmez." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Kategori düzenle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Sona ermek" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Gerçekten %s IP'sindeki yasağı kaldırmak istiyor musunuz? Bu işlem geri alınamaz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Yasaklı IP adresinin tüm siteyi kullanması yasaktır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Banlı İP düzenleme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Üyelik kayıtları açık kalsın" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Kullanıcıların kayıt için izin vermek istiyorsanız bunu etkinleştirin." + +msgid "Enable user content delete" +msgstr "Kullanıcı içeriğini sil'i etkinleştir" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "Kullanıcıların kendi içeriklerini silmelerine izin vermek istiyorsanız bunu etkinleştirin. Bu ayar yöneticileri etkilemez." + +msgid "Minimum age required" +msgstr "Minimum yaş gerekli" + +msgid "Empty" +msgstr "Boş" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "Web sitesini kullanmak için minimum yaş gerektirmemesi için boş bırakın." + +msgid "Notify on user signup" +msgstr "Kullanıcı kaydında bildir" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "Her yeni kullanıcı kaydı için bir e-posta bildirimi almak istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Kullanıcı adı yönlendirme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "%s/username yerine %s/user/username URL’lerini kullanmak istiyorsanız bunu etkinleştirin.." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "E-posta onayı iste" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Bunu işaretlerseniz kullanıcılar e-posta adresini doğrulaması gerekecektir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Sosyal kaydolma için e-posta iste" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Kayıt olmak için sosyal ağları kullanan kullanıcıların bir e-posta adresi sağlamaları gerekiyorsa bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Kullanıcı avatar'ı için max. dosya boyutu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Maks. kullanıcı avatarı resmi için izin verilen dosya boyutu. (Sunucu tarafından izin verilen maksimum %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Kullanıcı arka plan resmi max. dosya boyutu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Maks. kullanıcı arka planı görüntüsü için izin verilen dosya boyutu. (Sunucu tarafından izin verilen maksimum %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "Web sitesine erişmeden önce bir onay ekranı gösterir. Küçüklere izin verilmemesi gereken yetişkinlere yönelik web siteleri için kullanışlıdır." + +msgid "Enable consent screen" +msgstr "Onay ekranını etkinleştir" + +msgid "Consent screen cover image" +msgstr "Onay ekranı kapak resmi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "IP başına yüklenecek resim sayısını ve periyodunu belirtiniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Durumu Mail Olarak Bildir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "Eğer etkinleştirilmişse taşma (flood) durumlarında sistem bir mail gönderecektir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Dakikada Resim Yükleme Sınırı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Saatte Resim Yükleme Sınırı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Günlük Resim Yükleme Sınırı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Haftalık Resim Yükleme Sınırı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Aylık Resim Yükleme Sınırı" + +#, php-format +msgid "Lock %s editing" +msgstr "%s düzenlemesini kilitle" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "Gelen yüklemeleri denetlemek için bunu etkinleştirin. Hedef içerik, onay için denetim gerektirecektir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Listelerde güvenli olmayan içeriği göster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Listelerde güvenli içerik olmadığını göstermek istiyorsanız bunu etkinleştirin. Bu ayar yöneticileri etkilemez ve kullanıcının kendi ayarları tarafından geçersiz kılınabilir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Bulanıklaştırılmış güvenli olmayan (NSFW) içerik." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Eğer sakıncalı bulduğunuz için görüntünün bulanıklaştırılmasını istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Bannerları güvenli olmayan içerikte göster" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Banner'ları güvensiz içerik sayfalarında göstermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Rasgele modda güvenli içerik gösterme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Sayfa başına Liste öğeleri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Listede Kaç Adet Resim Sergilemek İstiyorsanız Belirtiniz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Liste sayfalama modu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Sonsuz kaydırma" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Klasik sayfalama" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Hangi sayfalama yöntemi kullanılmalıdır." + +msgid "Listing viewer" +msgstr "Liste görüntüleyicisi" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "Bir görüntüye tıklarken liste görüntüleyiciyi kullanmak için bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Görüntü listeleme boyutu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Akışkan" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Çözüldü" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Her iki metod da genişliği sabit tutar ancak fluid (akışkan) metod yüksekliği otomatik ayarlar." + +msgid "Album listing images requirement" +msgstr "Albüm listeleme görüntüleri gereksinimi" + +msgid "explore" +msgstr "keşfetmek" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "Albümleri keşifte göstermek için gereken minimum resim sayısını ayarlar." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Sütun numarası listeleniyor" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Burada, her bir hedef cihaza göre kaç tane sütun kullanılacağını belirleyebilirsiniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Telefon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Phablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Tablet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Laptop" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "Masaüstü" + +msgid "theme editing" +msgstr "tema düzenleme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Tema Klasörü %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Ton" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Hafif (beyaz)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Koyu (siyah)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Ana renk" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Heksadesimal renk değeri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Ana tema rengi olarak bunu kullan. Değer<a href=\"%s\" target=\"_blank\">heksadesimal formatta</a> olmalı." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Üst çubuk düğme (button) rengi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Mavi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Yeşil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Turuncu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Kırmızı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Gri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Geri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Beyaz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "\"Hesap oluştur\" düğmesi gibi en üstteki çubuk düğmeleri için renk." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Vektorel logo acik" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Yüksek piksel yoğunluğuna sahip cihazlarda yüksek kaliteli logo için vektör logosunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Vektör logosu resmi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "SVG formatında web sitenizin logosunun vektör versiyonu." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Raster logo resmi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Bitmap sürümü veya web sitenizin logosu. PNG formatı olması önerilir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Logo yüksekliği" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Değersiz" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Gerekirse logo yüksekliğini ayarlamak için bunu kullanın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon resmi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Favicon görüntü. Görüntü aynı genişliğe ve yüksekliğe sahip olmalıdır." + +msgid "Image load max. filesize" +msgstr "Görüntü yükü maks. Dosya boyutu" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "Bu boyuttan büyük görüntüler tam çözünürlüklü görüntüyü yüklemek için bir düğme gösterecektir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "İndirme butonu açık." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Görüntü indirme düğmesini göstermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Resmin üzerinde sağ tıklamayı etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Resim görüntüleme sayfasında sağ tıklanmasına izin vermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Exif verilerini göstermeyi etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Görüntü Exif verilerini göstermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Sosyal paylaşma etkinleştir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Eğer içerik paylaşmak için sosyal ağ düğmelerini göstermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr " Embed kodları etkinleştirme (içerik)" + +msgid "Everybody" +msgstr "Herkes" + +msgid "Users only" +msgstr "Yalnızca kullanıcılar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "İçerik için embed kodları göstermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Yükleyicide güvenli içerik değil onay kutusu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Güvenli içerik yüklemesi olmadığını belirten bir onay kutusu göstermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Özel CSS kodu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Özel CSS kodunuzu buraya yerleştirin. Kapanışı </head> etiketinden hemen önce <style> olarak yerleştirilir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Özel JS kodu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Özel JS kodunuzu buraya yerleştirin. Kapanış </head> etiketinden hemen önce <script> olarak yerleştirilecektir." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "Burada %s işaretlemesi kullanmayın. Bu, HTML komut dosyası etiketleri için değil, düz JS kodu içindir. Burada script etiketleri kullanıyorsanız, web sitenizi kıracaksınız." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Stil" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Açılış sayfası" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Bölünmüş iniş + görüntüleri" + +#, php-format +msgid "Route %s" +msgstr "%s yolu" + +msgid "upload" +msgstr "yükle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Ana sayfa stilini seçin. Daha fazla düzenlemek için app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Kapak resmi" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Bu resmi silmek istediğinizden emin misiniz ?. Resim geri dönüşümü olmaksızın silinecektir." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Resmi Sil" + +msgid "Add new cover image" +msgstr "Yeni kapak resmi ekle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Web sitenizin logosunun SVG formatındaki vektör versiyonu (sadece ana sayfa için)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Bitmap sürümü veya web sitenizin logosu (sadece ana sayfa için). PNG formatı önerilir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Bu %s ana sayfasının içine eklenecek. Varsayılan içerikleri kullanmak için boş bırakın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Paragraf" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Harekete geçme düğmesinin rengi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Ana sayfanın rengi harekete geçirici düğmeyi işaretler." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Eylem anahat stili düğmesini ara" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Ana sayfa harekete geçirme düğmesinin anahat stilini kullanmak için bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Eylem işlevine çağrı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Tetikleyici yükleme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Link aç" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Eylem URL'sine ara" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Mutlak veya göreceli bir URL girin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "%r gibi göreceli bir URL %l ile eşlenir" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Eylem HTML’yi çağırın" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Bu, harekete geçirme ifadesine <a> etiketi eklenir. Varsayılan içerikleri kullanmak için boş bırakın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "Kullanıcı Kimlikleri" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "Ana sayfada görüntüleri göstermek için hedef kullanıcı kimliklerinin virgülle ayrılmış listesi. Tüm son resimleri görüntülemek için boş veya sıfır bırakın." + +msgid "banners" +msgstr "banner'lar" + +msgid "Automatic updates check" +msgstr "Otomatik güncellemeler kontrolü" + +msgid "When enabled the system will automatically check for new updates." +msgstr "Etkinleştirildiğinde, sistem otomatik olarak yeni güncellemeleri kontrol eder." + +msgid "Display available updates notification" +msgstr "Mevcut güncellemeler bildirimini görüntüle" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "Yeni mevcut sistem güncellemeleri hakkında sizi uyaran bir uyarı göstermek için bunu etkinleştirin." + +msgid "Dump update query" +msgstr "Güncelleme sorgusunu döküm" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "Her kullanıcı için doğru dili otomatik olarak algılayıp ayarlamak istiyorsanız bunu etkinleştirin." + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s URL'ler" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "SEO %s URL'lerini kullanmak istiyorsanız bunu etkinleştirin.." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Kodu küçült" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "CSS ve JS kodunu otomatik olarak küçültmek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Bakım" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "Etkinleştirildiğinde website bakım mesajı gösterecektir. Bu ayar, yöneticileri etkilemez." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Kullanıcı İD Kimlik Numarasıdır. Bu İD üzerinden işlemler yapılacaktır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP hata raporlama" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "PHP <a %s>error_reporting()</a>. T tarafından oluşturulan hataları yazdırmak istiyorsanız bunu etkinleştirin. Bu üretimde devre dışı bırakılmalıdır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Hata ayıklama düzeyi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Yok" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Hata günlüğü" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Hata günlüğü olmadan hataları yazdır" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Hataları yazdırma ve kaydetme" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Hata ayıklama seviyesini yapılandırmak için <a %s>hata ayıklama belgelerini</a>. kontrol edin. Varsayılan seviye \"Hata günlüğü\" (1)." + +#, php-format +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed. Check out our %s if you want to override or add new routes." +msgstr "Yönlendirme, anında varsayılan rota ciltlemelerini özelleştirmenizi sağlar. Yalnızca alfanümerik, kısa çizgi ve alt çizgi karakterlerine izin verilir. Yeni yollar eklemek veya geçersiz kılmak istiyorsanız %s değerimize göz atın." + +msgid "Image routing" +msgstr "Görüntü yönlendirme" + +#, php-format +msgid "Routing for %s" +msgstr "%s için yönlendirme" + +msgid "Album routing" +msgstr "Albüm yönlendirmesi" + +msgid "Hostname" +msgstr "Hostadı" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "Alt alan adı karakterlerinin ekleneceği ana bilgisayar adı." + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "Bu ayar %s tarafından geçersiz kılınabilir." + +msgid "Language subdomains" +msgstr "Dil alt alanları" + +msgid "languages" +msgstr "diller" + +msgid "Enable to use %s for %t." +msgstr "%t. %s kullanımı etkinleştirir." + +msgid "Username subdomains" +msgstr "Kullanıcı adı alt alanları" + +msgid "user profiles" +msgstr "Kullanıcı profilleri" + +msgid "Custom language strings" +msgstr "Özel dil dizeleri" + +msgid "language strings" +msgstr "Dil dizileri" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Varsayılan dil ayarını seçiniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Varsayılan temel dil ayarını belirtiniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Otomatik dil seçimi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Her kullanıcı için doğru dili otomatik olarak algılamak ve ayarlamak istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Dil seçicisi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Dil seçimine izin vermek istiyorsanız bunu etkinleştirin." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Etkin diller" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "İşaretlenmeyen diller web sitenizde kullanılmaz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "HTTPS'yi etkinleştirmek veya devre dışı bırakmak için bunu değiştirin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Bu depolamayı etkinleştirmek veya devre dışı bırakmak için bunu değiştirin" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Kota" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Aktif" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Depolama yöntemi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Yerel depolama varsayılan olarak veya harici depolama etkin olmadığında kullanılır." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Yardıma ihtiyacınız olursa <a %s>depolama belgelerini</a> kontrol edin.." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Depolamayı düzenle" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "İsminiz (Adınız)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Email gönderilecek kullanıcıların isim veya isimlerini yazınız.." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "E-posta modu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "E-postalar nasıl gönderilecek? SMTP önerilir." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server adresi ve port numarası" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP Kullanıcı Adı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP Şifre" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP Güvenliğini" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Güvensiz" + +msgid "Decode ID" +msgstr "Kod çözme ID" + +msgid "Encode ID" +msgstr "Kodlama ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Test e-postası gönder" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "E-postalarınızın nasıl teslim edildiğini test etmek için bunu kullanın. %s kullanmanızı tavsiye ederiz." + +msgid "Export a user" +msgstr "Bir kullanıcıyı dışa aktar" + +msgid "Export user" +msgstr "Kullanıcıyı dışa aktar" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "Bu, kullanıcının standart kişisel bilgilerini JSON formatında indirmenize izin verecektir." + +msgid "Regenerate external storage stats" +msgstr "Harici depolama istatistiklerini yeniden oluşturun" + +msgid "Storage id" +msgstr "Depolama kimliği" + +msgid "Regenerate" +msgstr "Tekrar Üret" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "Bu, hedef harici depolama birimiyle ilişkili tüm görüntü kayıtlarının toplamını yeniden hesaplar." + +msgid "Migrate image records from one external storage to another" +msgstr "Görüntü kayıtlarını bir harici depolama biriminden diğerine geçirme" + +msgid "Source storage id" +msgstr "Kaynak depolama kimliği" + +msgid "Target storage id" +msgstr "Hedef depolama kimliği" + +msgid "Migrate" +msgstr "Göç" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "Bu sadece veritabanını günceller. Gerçek dosyaları hedef depolama kabına kendiniz aktarmanız gerekir. URL yeniden yazma şiddetle tavsiye edilir. Yerel depolama için sıfır (0) kullanın." + +msgid "social networks" +msgstr "sosyal ağlar" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Bu modu kullanmak için Facebook uygulaması gerekmektedir. Örnek olarak <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app </a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret kodu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Bu modu kullanmak için Twitter uygulaması gerekmektedir. Örnek olarak <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API anahtarı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret kodu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter hesabı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Bu modu kullanmak için Google uygulaması gerekmektedir. Örnek olarak <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret kodu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Bunun için bir <a href=\"http://vk.com/dev\" target=\"_blank\">VK uygulamasına</a> ihtiyacınız var." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK müşteri kimliği" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK client secret" + +#, php-format +msgid "%s spam protection" +msgstr "%s spam koruması" + +msgid "user generated content" +msgstr "kullanıcı tarafından oluşturulan içerik" + +msgid "Enable this to use %l to block spam on %c." +msgstr "%c üzerindeki spam'ı engellemek için %l kullanmak için bunu etkinleştirin." + +#, php-format +msgid "%s API key" +msgstr "%s API anahtarı" + +msgid "user signup" +msgstr "kullanıcı kaydı" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Bunun için bir <a href=\"%s\" target=\"_blank\">reCAPTCHA anahtarına</a> ihtiyacınız var." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "Her reCAPTCHA sürümünün kendi anahtar kümesini gerektirdiğini lütfen unutmayın. Sürümleri değiştirirseniz anahtarları güncellemeyi unutmayın." + +#, php-format +msgid "%s site key" +msgstr "%s site key" + +#, php-format +msgid "%s secret key" +msgstr "%s secret key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "ReCAPTCHA'yı istemek için kaç başarısız girişimde bulunulmalı? ReCAPTCHA'yı her zaman göstermek için sıfır (0) kullanın." + +#, php-format +msgid "Force %s on contact page" +msgstr "Kişi sayfasını %s zorla" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "Kişi sayfasında her zaman %s göstermek için bunu etkinleştirin." + +msgid "Comments API" +msgstr "Yorumlar API'si" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API %s ile çalışır." + +msgid "Disqus shortname" +msgstr "Disqus shortname" + +#, php-format +msgid "%s public key" +msgstr "%s public key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Kodun İçeriği" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook veya başka bir yerden görüntü almak istiyorum. Alınacak görüntü profilde gösterilecektir." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "%s hizmetini kullanarak içeriği otomatik olarak denetleyin." + +msgid "Automatic approve" +msgstr "Otomatik onay" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "Bu hizmet tarafından denetlenen içeriği otomatik olarak onaylamak için bunu etkinleştirin." + +msgid "Block content" +msgstr "İçeriği engelle" + +msgid "Adult" +msgstr "Yetişkin" + +msgid "Teen and adult" +msgstr "Genç ve yetişkin" + +msgid "Flag NSFW" +msgstr "NSFW olarak işaretle." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Google Analytics kodunuzu giriniz." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google analitik kodununun özelliklerini sayfanın altında göstermek istiyormusunuz?" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "API ile ilgili belgeler için <a %s>API belgelerine</a> bakın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "<a %s>API v1</a> kullanırken bu anahtarı kullanın." + +msgid "Plugin route" +msgstr "Eklenti yolu" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "%u. konumundaki eklenti talimatlarını görüntülemek için bunu etkinleştirin. Bu talimatlara bir bağlantı %s menüsüne eklenecektir. Bu ayar yöneticileri etkilemez." + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "%p. için özel bir URL belirlemek için bunu kullanın. Lütfen bu URL’de %s yi manuel olarak çoğaltmanız gerektiğini unutmayın." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Çerez yasalarına uyum" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Bunu, AB Çerez Yasası şartlarına uygun bir mesaj görüntülemek için etkinleştirin. Not: Buna yalnızca web siteniz AB’de sunuluyorsa ve izleme çerezleri eklerseniz buna ihtiyacınız olur." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Değişiklikleri Kaydet" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Hataları denetlemek için devam edin." + +msgid "Play GIF" +msgstr "GIF Oynat" + +msgid "Load full resolution" +msgstr "Tam çözünürlük yükle" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "Seçilen tüm içeriği gerçekten kaldırmak istiyor musunuz? Bu geri alınamaz." + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "%a ya eklendi ve %c olarak kategorize edildi" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Eklenecek Resimler %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "%s adresine yüklendi" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Yüklenen resim %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Daha az Exif verisi" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Exif verileri" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Paylaşılan Resim" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Albüm No" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Albümü" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Resimlerinizi yükleyin veya paylaşin." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Resimleri yüklemek için sürükle ve bırak seçeneği ile. %s kadar yükleyebilir. Doğrudan linkler, BBcode veya Html küçük resimler seçeneği ile paylaşabilirsiniz." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Yüklemeye Başla" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Tüm özellikleri kullanmak icin kayıt olunuz" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Hesabınızı yönetin, özel albüm oluşturun, profilinizi özelleştirin ve daha fazlasi." + +msgid "Sign in with your account" +msgstr "Hesabınızla giriş yapın" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Hesabınız yok mu? <a href='%s'>Hesap aç</a>" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Çıkış " + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "%s. Sizi en kısa sürede tekrardan görmek dileğiyle" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Ana Sayfaya Dön" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Web sitesi bakım altında" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Web sitesinde zamanlanmış bakım işlemleri gerçekleştiriyoruz. Lütfen birkaç dakika sonra tekrar gelin." + +msgid "This content is password protected." +msgstr "Bu içerik şifre korumalıdır." + +msgid "Please enter your password to continue." +msgstr "Devam etmek için lütfen şifrenizi girin." + +msgid "Send" +msgstr "Gönder" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "Yükleme eklentimizi yükleyerek web sitenize, blogunuza veya forumunuza resim yükleme ekleyin. Kullanıcılarınızın görüntüleri doğrudan servisimize yüklemelerine izin verecek bir düğme yerleştirerek herhangi bir web sitesine görüntü yükleme olanağı sağlar ve yerleştirme için gereken kodları otomatik olarak yönetir. Sürükle ve bırak, uzaktan yükleme, görüntü yeniden boyutlandırma ve daha fazlası gibi tüm özellikler." + +msgid "Supported software" +msgstr "Desteklenen yazılım" + +msgid "supported software" +msgstr "desteklenen yazılım" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "Eklenti, kullanıcı tarafından düzenlenebilir içeriğe sahip herhangi bir web sitesinde çalışır ve %s için, hedef düzenleyici araç çubuğuna uyan bir yükleme butonu yerleştirir, böylece fazladan özelleştirme gerekmez." + +msgid "Add it to your website" +msgstr "Web sitene ekle" + +msgid "options" +msgstr "seçenekler" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "Eklenti kodunu kopyalayıp web sitenizin HTML kodunda ( head kodu bölümünden sonra ) yapıştırın. İhtiyaçlarınıza daha iyi uyması için %o bol miktarda ekleyin." + +msgid "Basic options" +msgstr "Temel seçenekler" + +msgid "Color palette" +msgstr "Renk paleti" + +msgid "Button color scheme" +msgstr "Düğme rengi şeması" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "Editör kutusuna otomatik olarak eklenecek kodları gömün" + +msgid "Sibling selector" +msgstr "Kardeş seçimi" + +msgid "Sibling element selector where to place the button next to" +msgstr "Kardeş eleman seçici, düğmenin yanına nereye yerleştirileceğini belirtin" + +msgid "Sibling position" +msgstr "Kardeş konumu" + +msgid "After" +msgstr "Sonra" + +msgid "Before" +msgstr "Önce" + +msgid "Position relative to sibling element" +msgstr "Kardeş elemanına göre konumlandırma" + +msgid "Advanced options" +msgstr "Gelişmiş seçenekler" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "Eklenti, tam özelleştirmeye izin veren geniş bir ek seçenek grubuna sahiptir. Özel HTML, CSS, kendi renk paleti kullanabilir, gözlemcileri ayarlayabilir ve daha fazlasını yapabilirsiniz. Bu gelişmiş seçenekler hakkında daha iyi bir fikir edinmek için %d ve eklenti kaynağını kontrol edin." + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Bu bağlantıya erişmek veya işlem yapmak için geçerli süreniz dolmuştur. Tekrar deneyiniz." + +msgid "Search results" +msgstr "Arama sonuçları" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Bu kullanıcıyı gerçekten silmek istiyor musunuz ? Bu işlem geri alınamaz !" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Kullanıcıyı Sil" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Kayıt Zamanı" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "Kayıt IP'si" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Geçerli" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Yasaklanmış" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Mail Bekleniyor." + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Onay Bekleniyor" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i - %f karakterleri<br>Harfler, rekamlar ve \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Yüklemeleri otomatik sil" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Bu ayar, varsayılan olarak tüm resim yüklemeleriniz için geçerli olacaktır. Her yüklemede bu ayarı geçersiz kılabilirsiniz." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Yüklemede <a %s>Exif verileri</a> görüntüsünü sakla" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Bülten" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Bana %s hakkındaki haberleri içeren e-postaları gönder" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "İçerik ayarları" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Listelerde güvenli olmayan içeriği göster (diğerlerinden)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Dil" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Saat Dilimi" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Şifrenizi Yazınız" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Lütfen kullandığınız şifreyi yazınız" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Yeni Şifrenizi Yazınız" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Yeni Şifrenizi Tekrar Yazınız." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Kullanıcı adınız veya e-postanız ile giriş yapabilmek için lütfen bir parola belirleyin." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Belirttiğiniz kullanıcı mevcut değildir. Lütfen yeni bir kullanıcı kaydı yapınız." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Şifrenizi Yazınız." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Şifrenizi Tekrardan Yazınız." + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Şifrenizi Tekrar Yazınız." + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Yeni Resim Yükle" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Kullandığınız resimlerden silmek istermisiniz ?" + +msgid "Make my profile and identity totally private" +msgstr "Profilimi ve kimliğimi tamamen özel yap" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Adsız bir kullanıcı gibi gözüküyor devam istiyorsanız bunu etkinleştirin" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Bu isimde bir kullanıcı adı bulunamadı." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://sizinsiteniz.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Biografi" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Bize biraz kendinizden bahsedin" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Kullanıcının bağlantısı yok." + +msgid "Link your account to external services to be able to login here." +msgstr "Giriş yapabilmek ve içerik paylaşmak için hesabınızı harici hizmetlere bağlayın." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "%s kullanıcısının bağlantısını kesmek istediğinizden eminmisiniz ?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Bu kullanıcı %s ile bağlanır." + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "%s kullanıcısı ile bağlantıyı kesmek istediğinizden eminmisiniz ?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Siz giriş yaptığınızda %s kullanıcıların hesabınıza girişi mümkün olmayacaktır." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Hesabınız %s bağlanır." + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "Bağlantıyı Kes" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Bağlan %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Tüm paylaşılan resimlerimi ve albümleri göz atın ve keşfedin" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Buton" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Bütün resimlerimi göster" + +msgid "Login" +msgstr "Giriş" + +#, php-format +msgid "Already have an account? %s now." +msgstr "Hesabınız var mı? %s yapın şimdi." + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "hesap aktivasyonunu tekrar gönder" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "Daha önce kaydolduysanız, hesabınızı etkinleştirmek için %s isteğinde bulunmanız gerekebilir." + +#, php-format +msgid "You can also %s." +msgstr "Hesabınız etkin değilse, %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "En az %s yaşındayım" + +msgid "terms" +msgstr "şartlar" + +msgid "privacy policy" +msgstr "gizlilik politikası" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "%terms_link ve %privacy_link’i kabul ediyorum" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Profilinizin arka planına resim yüklemek ister misiniz ?" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Arka planı değiştir." + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Profilinizin arkaplan resmi silinecektir. Bu işlem geri alınamaz. Silmek istediğinize emin misiniz?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Arka Planı Sil" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "takipçi" +msgstr[1] "İzleyiciler" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Takip et" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Bu siteyi kullanmanız yasaklanmıştır." + +msgid "Plugin" +msgstr "Eklenti" + +#, php-format +msgid "Page %s" +msgstr "%s sayfası" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Genel sorular/yorumlar" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA şikayet" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Geçersiz mesaj (ileti). Lütfen geçerli bir mesaj yazınız." + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Geçersiz konu. Lütfen geçerli bir konu yazınız." + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Hatalı (geçersiz) mail adresi." + +msgid "Message sent" +msgstr "Mesaj gönderildi" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Mesajınız gönderildi. Yakında iletişime geçeceğiz." + +msgid "If you want to send a message fill the form below." +msgstr "Mesaj göndermek istiyorsanız aşağıdaki formu doldurunuz." + +msgid "Your name" +msgstr "Adınız" + +msgid "Subject" +msgstr "konu" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Devam etmeniz durumunda yaptığınız değişiklikler kabul edilmeyecektir" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Değişiklikler başarıyla kaydedildi." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Form'a geri dön" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "Devam etmek istediğinizden emin misiniz ?" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Kaydet" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Gönder" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Eylemi onayla" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "bilgi" + diff --git a/app/languages/uk.po b/app/languages/uk.po new file mode 100644 index 0000000..229e4f5 --- /dev/null +++ b/app/languages/uk.po @@ -0,0 +1,4498 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:16+0000\n" +"PO-Revision-Date: 2020-09-02 17:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Неправильна адреса електронної пошти" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Неправильне ім'я користувача" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Неправильний пароль" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Неправильний режим веб-сайту" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Адреса відправника" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Адреса відправника для розсилки повідомлень користувачам." + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Адреса для вхідних повідомлень" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Адреса для форми зворотного зв'язку і системних повідомлень." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Режим роботи сайту" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Ви можете перемкнути режим веб-сайту в будь-який час." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Спільнота" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Особистий" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Встановлена версія v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Неможливо приєднатись до %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Останній доступний реліз v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Потрібне оновлення, почати завантаження" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Оновлення не потрібне" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Системні файли вже оновлені" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Почати завантаження v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Завантажено v%s, почати роспакування" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Спроба розпакувати v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Розпакування завершено" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Почати інсталяцію оновлення" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Оновлення зірвано" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Оновлення в процесі" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Відсутній %s файл" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Неправильна інформація про ліцензію" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Неправильний ключ ліцензії" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Неможливо зберегти файл" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Неможливо завантажити %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Неможливо витягнути %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Неможливо створити %s директорію - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Неможливо оновити %s файл - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Перед продовженням перевірте форму на наявність помилок" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Ви повинні ввести назву альбому." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Підтвердити" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Виберіть існуючий альбом" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "У процесі виконання сталася помилка. Будь ласка спробуйте пізніше." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Будь ласка виберіть правильний формат зображення." + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Будь ласка, виберіть зображення не більше %s розміром." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Зображення профілю оновлено." + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Фон профілю оновлений." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Фон профілю видалений." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "При видаленні фону профілю виникла помилка." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Паролі не збігаються" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Поновлення доступне v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Є поновлення для вашої системи. Ви можете автоматично скачати і встановити його або піти до %s для того щоб скачати його вручну." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Нотатки про випуск для цього оновлення:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Оновити зараз" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "або" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "скасувати" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "Завантаження" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Сподобалось" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Редагувати" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Альбом" +msgstr[1] "Альбоми" +msgstr[2] "Альбомів" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Видалити" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Закрити" + +msgid "Previous" +msgstr "Попередня" + +msgid "Next" +msgstr "Наступна" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Зображення у буфері обміну" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Файл занадто великий." + +msgid "Invalid or unsupported file format." +msgstr "Невірний або підтримуваний формат файлу." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Деякі файли не були додані." + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "зображення" +msgstr[1] "зображень" +msgstr[2] "зображень" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s Альбомів" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Зображення успішно змінене." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "приховане" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Альбом успішно відредагований." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Невірний URL ключ." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Такий URL ключ вже використовується." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Категорія вилучена." + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Категорія %s додана." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Неправильна дата закінчення терміну дії." + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP адреса %s вже заблокована" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s вже заблокована." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Блокування IP адреси успішно видалено." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Будь ласка заповніть всі необхідні поля." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Невірне значення доступного дискового простору. Переконайтеся, що ви використовуєте допустимий формат." + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Ємність не може бути нижчою, ніж його поточне використання (%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "Неправильна адреса." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Сховище змінено." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Користувач доданий." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Вміст видалено." + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Вміст переміщено." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Виділити" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Зняти виділення" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Вміст змінено." + +msgid "Spam detected" +msgstr "Виявлено спам" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "альбом" +msgstr[1] "альбомів" +msgstr[2] "альбомів" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Безіменний" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s зображень" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Примітка. Цей вміст є приватним, але кожен, хто має посилання, зможе це бачити." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Примітка. Цей вміст захищений паролем. Не забувайте передавати пароль для доступу до вмісту." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Примітка. Цей вміст є приватним. Змініть конфіденційність на «публічний», щоб поділитися." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Приватний" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Публічне" + +msgid "Me" +msgstr "Я" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Посилання" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Пароль" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "перегляд" +msgstr[1] "перегляда" +msgstr[2] "переглядів" + +msgid "After %n %t" +msgstr "Після %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "хвилина" +msgstr[1] "хвилин" +msgstr[2] "хвилин" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "година" +msgstr[1] "годин" +msgstr[2] "годин" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "день" +msgstr[1] "днів" +msgstr[2] "днів" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "тиждень" +msgstr[1] "тижнів" +msgstr[2] "тижнів" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "місяць" +msgstr[1] "місяців" +msgstr[2] "місяців" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "рік" +msgstr[1] "років" +msgstr[2] "років" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Не видаляти автоматично" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Подвійне завантаження" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Приватне завантаження" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "Подобається" +msgstr[1] "" +msgstr[2] "" + +msgid "Recent" +msgstr "Недавні" + +msgid "Trending" +msgstr "Популярні" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Топ користувачів" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Нові" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Старі" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Найпопулярніші" + +msgid "Popular" +msgstr "Популярні" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Найбільш сподобались" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Огляд" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Пошук" + +msgid "People" +msgstr "Люди" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Зображення" +msgstr[1] "Зображень" +msgstr[2] "Зображень" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Користувача" +msgstr[1] "Користувачів" +msgstr[2] "Користувачів" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Неможливо створити %s папку у призначеному місці" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Неможливо відкрити %s для запису" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Внутрішній" + +msgid "Can't insert storage." +msgstr "Неможливо додати сховище" + +msgid "Can't update storage details." +msgstr "Неможливо оновити дані сховища" + +#, php-format +msgid "requires %s" +msgstr "вимагається %s" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Необмежений" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "використано" + +msgid "Private profile" +msgstr "Прихований профіль" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "секунда" +msgstr[1] "секунд" +msgstr[2] "секунд" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s тому" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "хвилин тому" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Панель керування" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Доступне оновлення для вашої системи. Перейдіть до %s, щоб завантажити та встановити це оновлення." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Системна база даних застаріла. Вам необхідно запустити <a href=\"%s\">систему поновлення</a>" + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Сайт перебуває в режимі обслуговування. Щоб змінити параметри перейдіть у <a href=\"%s\">Панель управління> Налаштування</a>" + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Вам потрібно вимкнути показ помилок PHP. Для цього перейдіть у <a href='%s'>Налаштування</a> для зміни." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Ви не змінили налаштування електронної пошти за замовчуванням. Перейдіть у <a href='%s'>Налаштування Email</a> для зміни." + +msgid "There is an update available for your Chevereto based website." +msgstr "Існує оновлення для вашого веб-сайту на основі Chevereto." + +msgid "admin dashboard" +msgstr "панель адміністратора" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Ви можете застосувати це оновлення безпосередньо зі свого %a або завантажити його з %s, і потім встановити його вручну." + +#, php-format +msgid "view on %s" +msgstr "перегляд на %s" + +msgid "I understand" +msgstr "Я розумію" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Забули пароль?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Скинути пароль" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Повторити відправку посилання для активації" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Додати адресу електронної пошти" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Адреса електронної пошти змінена" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Неправильне ім'я користувача або email" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Для цього користувача не задано адресу електронної пошти." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "У запиті відмовлено" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Для використання цієї функції, акаунт повинен бути активований" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Акаунт вже активований" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Зачекайте повідомлення хоча б 15 хвилин. Після цього спробуйте ще раз." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Скинути пароль на %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Підтвердження реєстрації на %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Ласкаво просимо на %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Адреса вже використовується" + +msgid "Password required" +msgstr "Пароль обов'язковий" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Поділитися" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Коди для вбудовування" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Детальна інформація" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a альбом розміщений в %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Статистика" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Зображення" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Альбоми" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Користувачі" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Налаштування" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Версія Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "Інсталювати оновлення" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "перевірити оновлення" + +msgid "Support" +msgstr "Підтримка" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Потрібна допомога? Перейдіть до %s, і ви швидко отримаєте допомогу." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Версія PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Сервер" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Версія MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Інформація про сервер MySQL" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "Бібліотека GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Завантаження файлів" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Увімк." + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Вимк." + +msgid "Max. upload file size" +msgstr "Макс. розмір файлу що завантажується" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Макс. розмір POST-запиту" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Макс. час виконання" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d секунд" +msgstr[1] "%d секунди" +msgstr[2] "%d секунди" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Обмеження пам'яті" + +msgid "Not your IP?" +msgstr "Не ваш IP?" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Посилання" + +msgid "Documentation" +msgstr "Документація" + +msgid "Changelog" +msgstr "Список змін" + +msgid "Bug tracking" +msgstr "Простежування помилок" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Сайт" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Зміст" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Сторінки" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Списки" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Завантаження зображення" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Категорії" + +msgid "Consent screen" +msgstr "Екран угоди" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Захист від флуду" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Тема" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Головна сторінка" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Банери" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Система" + +msgid "Routing" +msgstr "Маршрутизація" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Мови" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Зовнішнє сховище" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Електронна пошта" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Соціальні мережі" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Сторонні сервіси" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP блокування" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Додаткові налаштування" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Інструменти" + +msgid "Can't delete all homepage cover images" +msgstr "Не вдалося видалити всі зображення обкладинки домашньої сторінки" + +msgid "Homepage cover image deleted" +msgstr "Зображення обкладинки домашньої сторінки видалено" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Локальне" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Зовнішнє" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Всі" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "пошук вмісту" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Додати сторінку" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Відредагувати сторінку ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Ця сторінка була успішно додана" + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Ця сторінка видалена" + +msgid "homepage" +msgstr "домашня сторінка" + +#, php-format +msgid "Before main title (%s)" +msgstr "Перед основним заголовком (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Після заклику до дії (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Перед роздільником сторінок" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Після роздільник сторінок" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Вміст (зображення та альбоми)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Вкладка про зображення" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Перед коментарями" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Сторінка зображення" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "У заголовку переглядача (сторінка зображення)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Внизу переглядача (сторінка зображення)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "Після зображення (сторінка зображення)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Перед заголовком (сторінка зображення)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "Після заголовка (сторінка зображення)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "Нижній колонтитул (сторінка зображення)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Сторінка альбому" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "Перед заголовком (сторінка альбому)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "Після заголовка (сторінка альбому)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Профіль користувача" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "Після заголовка (профіль користувача)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "Перед списком зображень (профіль користувача)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Сторінка Огляд" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "Після заголовка (сторінка огляд)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "NSFW" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Некоректна назва сайту" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Неправильна мова" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Неправильний часовий пояс" + +#, php-format +msgid "Invalid value: %s" +msgstr "Некоректне значення: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Неправильний спосіб зберігання файлів." + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Неправильний метод зберігання імен файлів" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Неправильна ширина мініатюри" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Неправильна висота мініатюри" + +msgid "Invalid medium size" +msgstr "Неправильний середній розмір" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Неправильний відсоток водяного знаку" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Неправильна прозорість водяного знаку" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Неправильний стиль" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Некоректне значення" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "Неправильний стиль теми" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "Неправильний основний колір теми" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Неправильний колір кнопки верхньої панелі теми" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "Неправильний розмір зображення для списків" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "Неправильний ідентифікатор користувача" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Неправильний режим електронної пошти" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Неправильний SMTP порт" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Неправильні налаштування безпеки SMTP сервера" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "Неправильний персональний режим користувача з ідентифікатором" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "Неправильний або зарезервований шлях" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Неправильний режим конфіденційності сайту" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "Неправильний режим видимості вмісту" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "Неправильний стиль домашньої сторінки" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Неправильний колір кнопки виклику домашньої сторінки" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Неправильний виклик дії" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Неправильна назва" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "Неправильний статус" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "Неправильний тип" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Неправильна видимість" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "Неправильний атрибут target" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Неправильний атрибут rel" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "Неправильнf іконка" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "Неправильний ключ посилання" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Неправильний шлях до файлу" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "Неправильне посилання URL" + +msgid "Invalid user minimum age" +msgstr "Неправильний мінімальний вік користувача" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Неправильне посилання" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Неправильна папка завантаження зображень" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Неправильна дія для посилання" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Макс. дозволено %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Неправильний SMTP сервер" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Неправильне SMTP ім'я" + +msgid "Invalid key" +msgstr "Неправильний ключ" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "Це посилання вже використовується іншою сторінкою (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Цей шлях вже використовується іншою сторінкою (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "Не можливо зберегти вміст сторінки: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "Слідувати" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Інформація" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID зображення" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP автора" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "Блокування IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP адреса вже заблокована" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Дата завантаження" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "Картинка %i в %a альбомі" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Картинка %i в %c категорії" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Картинка %i розміщена в %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Прямі посилання" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Посилання " + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "Пряме посилання" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "Мініатюра" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "Середній розмір" + +msgid "Full image" +msgstr "Повне зображення" + +msgid "Full image (linked)" +msgstr "Повне зображення (посилання)" + +msgid "Medium image (linked)" +msgstr "Середнє зображення (посилання)" + +msgid "Thumbnail image (linked)" +msgstr "Мініатюрне зображення (посилання)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Необхідний вхід" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP адреса вже заблокована" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Відсутні значення" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "Неправильна роль" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Користувач з таким ім'ям вже існує." + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Додайте пароль або інакше соц. підключення перед видаленням %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Додати електронну пошту або інше соц. підключення перед видаленням %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s вимкнено." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Тестовий лист від %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Це всього лише тестове повідомлення" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Тестове повідомлення надіслано %s." + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Користувач %s стежить" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Користувач %s не стежить" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Вміст сподобався" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Вміст не сподобався" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u сподобалася ваша %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u тепер стежить за вами" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Неправильне ім'я користувача або пароль" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Вхід" + +msgid "Upload images" +msgstr "Завантажити зображення" + +msgid "Upload plugin" +msgstr "Завантажити плагін" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Результат пошуку картинки для %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Результат пошуку альбома для %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Результат пошуку користувача для %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Акаунт" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Профіль" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Пов'язані акаунти" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "На %s було надіслано повідомлення з інструкціями щодо активації" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Неправильне ім'я" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Неправильний веб-сайт" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Неправильний пароль" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Використайте новий пароль" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Зміни збережені." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Пароль успішно змінений" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Пароль успішно створений." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Неправильне ім'я користувача або email" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Налаштування %s" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Створити обліковий запис" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Завантаження" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s Зображень" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Результати для" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Сподобалось %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Сподобалось" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Стежать" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) альбомів в %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) в %w" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Розширений пошук" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Випадкове" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Повідомлення (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Повідомлення" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "У Вас немає повідомлень" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Мій профіль" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Вийти" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Ми отримали запит на зміну адреси електронної пошти для вашого облікового запису <a href=\"%u\">%n</a> на %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Щоб завершити процес, ви повинні <a href=\"%s\">активувати</a> свою електронну пошту ." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Також ви можете скопіювати цю адресу і вставити її у вікно браузера: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Якщо ви не робили цього, просто ігноруйте це повідомлення." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "IP-адресу, з якої було зроблено запит:%s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Ми отримали запит на реєстрацію акаунта %n на %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Щоб завершити цю дію ви повинні <a href=\"%s\">активувати свій акаунт</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Ми отримали запит на скидання пароля вашого акаунта <a href=\"%u\">%n</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Щоб скинути пароль, <a href=\"%s\">перейдіть за цим посиланням</a>" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Привіт, %n. Ласкаво просимо на %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Тепер, коли реєстрація завершена, ви можете насолоджуватися завантаженням зображень, створенням альбомів, зміною налаштувань видимості вмісту, а також багатьма іншими перевагами." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "До речі, ваша особиста сторінка розташована за адресою: <a href=\"%u\">%n</a>. Ви можете налаштувати її за своїм смаком. Вона ваша!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Спасибі за те, що ви з нами" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Це повідомлення було надіслане з %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Перетягніть або вставте зображення тут для відвантаження" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Виберіть зображення для відвантаження" + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Відредагувати або змінити розмір будь-якого зображення натиснувши на попередній перегляд" + +msgid "Edit any image by touching the image preview" +msgstr "Відредагувати будь-яке зображення натиснувши на попередній перегляд" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "завершено" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Завантажується черга зображень. Це може зайняти деякий час." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Завантаження завершено" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "У процесі обробки запиту сталася помилка." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Категорія" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Виберіть категорію" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Помітити це зображення як невідповідне для сімейного перегляду" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Небезпечний вміст" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Завантажується" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "скасувати решту" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Увага: Деякі зображення не були завантажені." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "детальніше" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Перевірте <a data-modal=\"simple\" data-target=\"failed-upload-result\">звіт про помилки</a> для отримання більш докладної інформації." + +msgid "reset" +msgstr "скинути" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "закрити" + +msgid "copy" +msgstr "копіювати" + +msgid "insert" +msgstr "вставити" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "Видалити" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Заголовок" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "Не обов'язково" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Змінити розмір зображення" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Ширина" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Висота" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Примітка: Анімовані GIF зображення не можуть міняти розмір" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Автоматичне видалення зображення" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Помітити це зображення як небезпечне" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Помітити як небезпечне" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Опис" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Короткий опис зображення" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Додайте посилання на зображення" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Додайте сюди посилання на зображення" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "створити альбом" + +msgid "existing album" +msgstr "існуючий альбом" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Перемістити до альбому" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Виберіть існуючий альбом для переміщення завантаженого вмісту. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> і перемістити вміст в нього." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Звіт про помилки" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Посилання на перегляд" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML коди" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML зображення" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML код оригіналу з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML середнього розміру з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML код мініатюри з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BB-коди" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BB-код оригіналу з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BB-код оригіналу з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BB-код середнього розміру з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BB-код мініатюри з посиланням" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Розмітка повна" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Розмітка повна посилання" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Розмітка середня посилання" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Розмітка мініатюрами посилання" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "Зі словами" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "Введіть ключові слова: слава україні героям слава" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "Зі словосполученням" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "Укладіть словосполучення в лапки: \"слава україні\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "Без слів" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "Поставте знак мінуса перед словами: -колір - \"український той\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Сховище" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP адреса" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Назва альбому" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "перемістити в існуючий" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Опис альбому" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Короткий опис цього альбому" + +msgid "Album privacy" +msgstr "Видимість альбому" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Хто може переглядати цей контент" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Приховане (тільки я)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Приховане (тільки за посиланням)" + +msgid "Private (password protected)" +msgstr "Приватний (виявлено пароль)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Ім'я" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Назва категорії" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Ключ для посилання" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Ключ для посилання категорії" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "Тільки букви, цифри та дефіси" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Короткий опис цьої категорії" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "Безіменне" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Шлях" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "Дата закінчення" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "Приклад" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "До якого часу ця IP-адреса буде заблокована? Залиште його порожнім для безтермінового блокування." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Повідомлення" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Текстове повідомлення, HTML або перенаправлення URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Існуючий альбом" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "створити новий альбом" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Назва сховища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Регіон" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Регіон сховища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Корзина сховища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Ключ сховища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Секретний ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Секретний ключ сховища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Приватний ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON ключ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Вам потрібно <a %s>обліковий запис служби</a> для цього" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Ідентичне посилання" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Ідентична кінцева точка API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "Кінцева точка API для ідентифікації в OpenStack" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Ім'я користувача" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Контейнер" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Сховище контейнера" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Орендар ID" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Орендар ID (акаунт ID)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Ім'я орендара" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Орендар ім'я (ім'я облікового запису)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Адреса або IP сервера" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Шлях" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Пароль" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Доступний простір" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Наприклад 20 GB, 1 TB і т. д." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Сховище буде відключився при досягненні цього ліміту. Залиште поле порожнім або вкажіть нуль для відключення ліміту." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Адреса сховища" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Система буде використовувати дану адресу при формуванні посилань на зображення з цього сховища." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "показати ще" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Завантажити ще" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "виділити все" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Зняти виділення" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "З виділеними" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Дія" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Отримати коди для вбудовування" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "Присвоїти категорію" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Помітити як безпечне" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Увійти через" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Немає елементів для відображення." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Всі зображення будуть поміщені в цей новий альбом. Ви також можете перемістити зображення в <a class=\"modal-switch\" data-switch=\"move-existing-album\">існуючий альбом</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Виберіть існуючий альбом, щоб перемістити зображення. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> і перемістити зображення в нього." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Виберіть існуючий альбом в який буде переміщено вміст. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> для цього вмісту." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Виберіть існуючий альбом, щоб перемістити зображення. Ви також можете <a class=\"modal-switch\" data-switch=\"move-new-album\">створити новий альбом</a> і перемістити зображення в нього." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Вибрані зображення будуть переміщені в дану категорію." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Категорії не задані." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Підтвердити позначку вмісту як безпечний" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Ви дійсно хочете помітити це вміст як безпечний?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Підтвердити позначку вмісту як небезпечний" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Ви дійсно хочете помітити це вміст як небезпечний?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Підтвердіть видалення" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Ви дійсно хочете видалити даний вміст? Ця дія є незворотня." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Ви дійсно хочете видалити всі виділені зображення? Ця дія є незворотня." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Гість" + +msgid "Private album" +msgstr "Приватний альбом" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "З альбому %s" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "by %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Переключити в небезпечне" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "Такої сторінки не існує" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Сторінку не знайдено" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Знайти щось ще" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Користувач видалений" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Ваш обліковий запис майже готовий" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Інструкції з активації вашого аккаунта були відправлені на %s. Посилання для активації дійсне протягом 48 годин. Якщо ви не отримали повідомлення перевірте папку Спам." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Повторити відправку посилання для активації" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Ви успішно поміняли адресу електронної пошти на %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Перейти на мою сторінку" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "На вашу адресу буде надіслане посилання для активації облікового запису." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Ваша адреса електронної пошти" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Надіслати" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Інструкції по скиданню паролю були надіслані на вашу адресу. Якщо ви їх не отримали, перевірте папку Спам." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Вам вже було надіслано повідомлення з інструкціями щодо скидання пароля. Якщо ви не отримали повідомлення, перевірте папку Спам." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Повторити відправку інструкцій" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Ім'я користувача або Email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Пароль успішно змінений. Ви можете увійти використовуючи ваш новий пароль." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Увійти зараз" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Введіть ваш новий пароль" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "мін. %d символів" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Підтвердіть новий пароль" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Інструкції по активації облікового запису були відправлені на %s . Якщо ви не отримали повідомлення, перевірте папку Спам." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Цей контент приватний" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Ви дійсно хочете видалити цей альбом з усіма зображеннями? Ця дія є незворотньою." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Вам подобається це" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Посилання на альбом" + +msgid "I Agree" +msgstr "Я погоджуюся" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Використано місця на диску" + +msgid "Working" +msgstr "Працює" + +msgid "Paused" +msgstr "Призупинено" + +msgid "Canceled" +msgstr "Скасовано" + +msgid "Completed" +msgstr "Завершено" + +msgid "Actions" +msgstr "Дії" + +msgid "Reset" +msgstr "Скинути" + +msgid "Resume" +msgstr "Відновити" + +msgid "Errors" +msgstr "Помилки" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Статус" + +msgid "Cancel" +msgstr "Скасувати" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Додати користувача" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Роль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Адміністратор" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Адреса електронної пошти" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Додати категорію" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "Додати блокування по IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "Додати сховище" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "Повернутись до сторінок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Назва сайту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Заголовок сайту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Опис сайту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Часовий пояс за замовчуванням" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Оберіть регіон" + +msgid "guests" +msgstr "гості" + +msgid "Likes" +msgstr "Вподобання" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "Особистий режим цільового користувача" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "ID користувача" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "Ваш id користувача: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "Цифровий ідентифікатор цільового користувача для особистого режиму." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "Особистий режим направлення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "Звичайне перенаправлення з /ім'я-користувача в /кудась. Використовуйте \"/\" для направлення на домашню сторінку." + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "Режим конфіденційності сайту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Приватний сайт буде доступний тільки для зареєстрованих користувачів." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Режим видимості вмісту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "За замовчуванням" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Приховані (тільки власник)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Приховані (тільки за посиланням)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "При включенні примусових режимів видимості, зазначені користувачами значення будуть проігноровані." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "Заголовок сторінки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "Статус сторінки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "Активна сторінка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "Не активна сторінка (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "Тільки активні сторінки будуть доступні" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "Тип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "Видимість сторінки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "Видима сторінка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "Схована сторінка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "Схована сторінка не буде відображатись у головному меню, але кожен зможе зайти на неї по посиланню" + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "Тільки латинські букви і цифри, дефіс і коса риска" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "Шлях до файлу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "%f файл по відношенню до %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Мета ключові слова" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Мета опис" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "Код сторінки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "Немає прав на запис в %s шляху, вам потрібно додати цей файл іншим редактором" + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "Немає прав на запис в %s, вам потрібно відредагувати файл в зовнішньому редакторі" + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "Взято з: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "Посилання URL" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "Посилання атрибут" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "Виберіть %s щоб відкривати сторінку у новому вікні" + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "Атрибут rel посилання" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "Тільки латинські букви і цифри, дефіси та пропуски" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt;%s атрибути" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "Посилання на іконку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "Перевірте <a %s>настройки іконки</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "Порядок сортування" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "Порядок сортування сторінок для меню. Використовуйте \"1\" для вищого пріоритету" + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "Ви дійсно хочете видалити сторінку з ID %s? Це не можливо буде відмінити." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Включити завантаження" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Увімкніть цю опцію, якщо ви хочете дозволити завантаження зображень. Цей параметр не впливає на адміністраторів." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Гостьові завантаження" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Увімкніть цю опцію, якщо хочете дозволити завантажувати зображення незареєстрованим користувачам." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "Коди для вбудовування (у завантажувачі)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "Ввімкніть цю опцію, якщо ви хочете показувати коди для вбудовування після завершення завантаження." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "Включити автовидалення для завантажень" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "Включіть це якщо ви хочете щоб були завантаження з автоматичним видалення зображень" + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "Exif дані зображення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "Тримати" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "Виберіть налаштування для зображення <a %s>Exif дані</a> при загрузці" + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "Exif дані зображення (налаштування)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "Включити, якщо ви хочете, щоб кожен користувач для налаштування зображення даних Exif були оброблені." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Шлях до зображень" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Відносно шляху до Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Де зберігати зображення? Щодо шляху до Chevereto." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Режим зберігання" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Папки по датах" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Прямий" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "\"Папки по датах\" створює структуру виду %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "Назви файлів" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Оригінал" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "Змішане оригінал + випадкове" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"Оригінал\" намагатиметься зберегти ім'я джерела зображення, а \"Випадкова\" буде генерувати випадкове ім'я. \"ID\" назве зображення так само, як зображення ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Розмір мініатюри" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Мініатюра буде обмежена цим розміром." + +msgid "Medium image fixed dimension" +msgstr "Середній розмір зображення фіксований" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "Середні зображення будуть фіксовані до цього розміру. Для прикладу, якщо ви вибираєте \"ширина\", то розмір буде фіксованим і висота зображення будуть автоматично розраховані." + +msgid "Medium image fixed size" +msgstr "Середнє зображення фіксованого розміру" + +msgid "Width or height will be automatically calculated." +msgstr "Ширина або висота будуть автоматично розраховані" + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "Водяні знаки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Увімкніть, щоб помістити логотип або будь-яке інше зображення на всі завантаження." + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Увага: Не можу записати в %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "Перемикач водяного знаку користувача" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "Включити водяний знак для гостьових загрузок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "Включити водяний знак для загрузок користувачів" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "Включити водяний знак для загрузок адміністратора" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "Перемикач водяних знаків" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "Включити водяний знак на GIF зображенні при загрузці" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "Мінімальний розмір файлу потрібний для встановлення водяного знаку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "Зображення меньше за ... не буде ставитись водяний знак. Використовуйте 0 для того щоб не встановлювати мінімальний розмір зображення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Зображення захисного знаку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "Ви отримаєте кращі результати з простих логотипів з тінню. Ви можете використовувати збільшене зображення, якщо розмір файлу не такий великий (рекомендується макс. 16KB). Повинно бути PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Положення захисного знаку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "зліва зверху" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "зліва по центру" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "зліва знизу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "по центру зверху" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "по центру" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "по центру знизу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "праворуч зверху" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "праворуч по центру" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "праворуч знизу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "Відносне положення захисного знаку. Першим вказано положення по горизонталі, другий по вертикалі." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "Відсоток водяного знаку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "Відношення розміру водяного знаку по відношенню до розміру картинки. Від 1 до 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Поля захисного знаку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Поля від кордону зображення до захисного знаку." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Прозорість захисного знаку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "Прозорість захисного знаку при накладенні на зображення. Повинно бути в діапазоні від 0 до 100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Ви дійсно хочете видалити категорію %s? Ця дія незворотня" + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Замітка: Видалення категорії не спричинить за собою видалення зображень." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Змінити категорію" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "Закінчення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "Ви дійсно хочете зняти блокування IP %s ? Це не може бути скасовано." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "Заблокованій IP-адресі буде заборонено використовувати весь веб-сайт." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "Редагувати блокування IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Включити реєстрацію" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Увімкніть, щоб дозволити реєстрацію користувачів." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "Адресація користувачів" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Ввімкніть цю опцію, якщо ви хочете використовувати адреси профілів виду %s/ім'я_користувача замість %s/user/ім'я_користувача" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Вимагати підтвердження електронної пошти" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Ввімкніть цю опцію, щоб вимагати підтвердження адреси електронної пошти при реєстрації." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Вимагати Email-адресу при реєстрації через соціальну мережу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Ввімкніть цю опцію, якщо ви хочете, щоб користувачам, які реєструються через соціальні мережі, необхідно було вказувати адресу електронної пошти." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "Аватар користувача макс. розмір файлу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "Максимально дозволений розмір файлу для аватару користувача. (Макс. дозволено на сервері %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "Фонове зображення сторінки користувача макс. розмір файлу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "Максимально дозволений розмір файлу для фонового зображення сторінки користувача. (Макс. дозволено на сервері %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Блокувати завантаження зображень по IP, якщо на підставі кількості завантажень, система виявить підозру на флуд. Цей параметр не впливає на адміністраторів." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Повідомити електронною поштою" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "При включенні цієї опції, система буде повідомляти про флуд-атаках поштою." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Завантаження за хвилину" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Завантаження за годину" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Завантаження за день" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Завантаження за тиждень" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Завантаження за місяць" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Показувати небезпечний зміст" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "Увімкніть, щоб відображати небезпечний зміст. Ця установка не впливає на адміністраторів і може бути скасована користувачем з власних настройок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "Робити не чітким NSFW контент в списку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "Включіть це, якщо хочете використовувати розмите зображення для NSFW контенту в списку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Показувати банери на сторінках з небезпечним змістом." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "Увімкніть, якщо ви хочете показувати банери на сторінках з небезпечним змістом." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Показувати небезпечне зміст в режимі випадкового зображення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Елементів на сторінку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Скільки зображень відображати на сторінку." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Режим розбиття на сторінки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Нескінченна прокрутка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Нумеровані сторінки" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Який спосіб розбиття на сторінки використовувати." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "Розмір мініатюр в списку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "Адаптивний" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "Фіксований" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "Обидва методи використовують фіксовану ширину, але в адаптивному методі, висота обчислюється із збереженням пропорцій зображення." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "Кількість колонок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "Тут ви можете встановити, скільки стовпців використовуються на основі кожного цільового пристрою." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "Телефон" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "Фаблет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "Планшет" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "Ноутбук" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "ПК" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Помістіть свої теми в папку %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Стиль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Світлий" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Темний" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "Основний колір" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "Шістнадцяткове значення кольору" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "Використовуйте це, щоб встановити основну колірну тему. Значення має бути в <a href=\"%s\" target=\"_blank\">Hex форматі</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "Колір кнопки верхньої панелі" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "Синій" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "Зелений" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "Помаранчевий" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "Червоний" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "Сірий" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "Чорний" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "Білий" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "Колір кнопки \"Створити обліковий запис\" у верхній панелі кнопок ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Увімкнути векторний логотип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Увімкніть векторний логотип для підвищення якості зображення на дисплеях з великою щільністю пікселів." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Векторний логотип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "Векторний логотип вашого сайту у форматі SVG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "Растровий логотип" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Растровий логотип вашого сайту. Рекомендується використовувати формат PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Висота логотипу" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Немає значення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "Використовуйте це поле, якщо необхідно вказати висоту логотипу." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Іконка сайту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Іконка вашого сайту. Ширина і висота даного зображення повинні бути однакові." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Включити кнопку завантаження" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Увімкніть, щоб показувати кнопку завантаження зображення." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "Включити меню правої клавіши миші на зображенні" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "Включіть це, якщо Ви хочете дозволити меню правої клавіши миші" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "Включити показ Exif даних" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "Включіть це, якщо ви хочете показувати Exif дані." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Увімкнути опцію \"поділитися\"" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Ввімкніть цю опцію, щоб показувати кнопки соціальних мереж." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Коди для вбудовування (в перегляді)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Ввімкніть цю опцію, якщо ви хочете показувати коди для вбудовування в перегляді зображень." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "Показувати у завантажувачі настройку для небезпечного змісту" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "Увімкніть, щоб дати користувачам можливість вказувати безпеку зображення при завантаженні." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Власний CSS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Вставте сюди ваш власний CSS код. Він буде вставлений за допомогою тега <style> перед закриваючим тегом </head>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Власний JS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Вставте сюди ваш власний JS код. Він буде вставлений за допомогою тега <script> перед закриваючим тегом </head>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "Стиль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "Стартова сторінка" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "Стартова сторінка + зображення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "Виберіть стиль головної сторінки. Щоб налаштувати його відредагуйте app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "Зображення обкладинки" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Ви дійсно хочете видалити дане зображення? Ця дія є незворотньою" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Видалити зображення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1424 +msgid "Vector version or your website logo in SVG format (only for homepage)." +msgstr "Векторна версія логотипу вашого сайту у SVG форматі (тільки для домашньої сторінки)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1434 +msgid "Bitmap version or your website logo (only for homepage). PNG format is recommended." +msgstr "Растрова версія логотипу вашого сайту у PNG форматі (тільки для домашньої сторінки)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "Це буде додано в середину домашньої сторінки %s як тег. Залиште поле пустим, якщо ви хочете використати дані по-замовчуванню" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "Пункт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "Колір кнопки дії" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "Колір кнопки переходу на домашню сторінку" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "Контур кнопки для дії" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "Включіть це, щоб використовувати стиль обведення кнопки загрузки на стартовій сторінці." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "Заклик до дії" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "Трігери завантаження" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "Відкрити посилання" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "Дія для посилання" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "Введіть абсолютне або відносне посилання" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "Відносне посилання як %r буде відображено в %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "Дія для HTML" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "Це буде додано в дію для тега <a>. Залиште це поле порожнім, щоб використовувати вміст за замовчуванням." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "ID користувача" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1570 +msgid "Minify code" +msgstr "Мінімізувати код" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1576 +msgid "Enable this if you want to auto minify CSS and JS code." +msgstr "Включіть це, якщо ви хочете автоматично мінімізувати CSS та JS код." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "Обслуговування" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "При включенні, відображає на сайті повідомлення про технічне обслуговування. Ця установка не впливає на адміністраторів." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Криптографічна сіль" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Ця сіль використовується для перетворення цифрових ID в літерні. Вона була створена при установці." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "Звіти про помилки PHP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "Увімкніть це, якщо ви хочете щоб показувало помилки PHP <a %s>error_reporting()</a>. По замовчуванню це відключено." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "Рівень налагодження" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "Ні" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "Журнал помилок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "Друк помилок без журналу помилок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "Друк і журнал помилок" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "Щоб налаштувати рівень налагодження перевірте <a %s>документацію по налагодженню</a>. Рівень за замовчуванням є \"Журнал помилок\" (1)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Мова за замовчуванням" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Використовується за замовчуванням мова." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Автоматичний вибір мови" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "Включити це, якщо ви хочете, щоб автоматично виявлялась і встановлювалась правильна мова для кожного користувача." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "Вибір мови" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "Ввімкніть це, якщо хочете дозволити вибір мови" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "Дозволені мови" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "Не відзначені мови не будуть використовуватись на вашому сайті." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "Змініть цю настройку щоб включити або відключити HTTPS" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "Змініть цю настройку щоб включити або відключити це сховище" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "Квота" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "Активне" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "Тип сховища" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "Локальне сховище використовується за замовчуванням або за відсутності активних зовнішніх сховищ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "Якщо вам потрібна допомога зверніться до <a %s>документації</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "Змінити" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "Відправник" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Ім'я відправника для розсилки повідомлень користувачам." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Режим електронної пошти" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "Як відправляти повідомлення? Рекомендується використовувати SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP сервер та порт" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP сервер" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "Ім'я користувача SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "Пароль SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Безпека SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Небезпечний" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "Надіслати тестове повідомлення" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "Використовуйте це тестове повідомлення для перевірки доставки пошти, Ми рекомендуємо використовувати %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Для цього вам необхідні <a href=\"https://developers.facebook.com/\" target=\"_blank\"> інструменти розробника Facebook</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID Facebook app" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Секрет Facebook app" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "Для цього вам необхідні <a href=\"https://apps.twitter.com\" target=\"_blank\">інструменти розробника Twitter</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Ключ Twitter API" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Секрет Twitter API" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Акаунт в Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Для цього вам необхідні <a href=\"https://cloud.google.com/console\" target=\"_blank\"> інструменти розробника Google</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "ID клиента Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Секрет клієнта Google" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "Для цього вам необхідні <a href=\"http://vk.com/dev\" target=\"_blank\">інструменти розробника ВКонтакті</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "Для ID клієнта ВКонтакті" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "Секретний ключ клієнта ВКонтакті" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Для цього вам необхідний <a href=\"%s\" target=\"_blank\">ключ reCAPTCHA</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "Поріг спрацьовування reCAPTCHA" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "Після скількох невдалих спроб потрібно використовувати reCAPTCHA ? Використовуйте нуль (0), щоб завжди показувати reCAPTCHA." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Код для системи коментарів" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook або будь-яка система на ваш вибір. Вона буде використана при перегляді зображення." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Код для збору статистики" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics або система збору статистики на ваш вибір. Цей код буде додано до \"підвал\" теми." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2017 +#, php-format +msgid "For documentation about the API check the <a %s>API documentation</a>" +msgstr "Документація по API доступна за адресою <a %s>API документація</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "Ключ API v1" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "Використовуйте цей ключ для <a %s>API v1</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Дотримання правил куків" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "Цей параметр використовується для відображення повідомлення, що відповідає вимогам законодавства ЄС про куки. Примітка: Вам потрібно тільки це, якщо ваш сайт розміщений в ЄС, і якщо ви додали відстеження куків." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Зберегти зміни" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Перед тим як продовжити, перевірте правильність заповнення." + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "Додано до %a в категорію %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Додано до %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "Завантажені в %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Завантажено %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "Менше даних Exif" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "Більше даних Exif" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Поділитися" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "ID альбома" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "У цьому альбомі" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Завантажуйте і діліться зображеннями." + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "Перетягніть зображення яке Ви хочете загрузити в будь-яке місце і почніть завантажувати свої картинки. %s обмеження на один файл. Прямі посилання зображення, BBCode і HTML мініатюри." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "Почати завантаження" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Зареєструватися, щоб отримати більше можливостей." + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Керуйте аккаунтом, створюйте альбоми, змінюйте свій профіль і багато іншого." + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "У вас ще немає акаунта? <a href='%s'>Зареєструйтесь</a> зараз." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Вийти" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Успішний вихід з системи. До нових зустрічей на %s." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Головна" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "Сайт на обслуговуванні" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "Ми виконуємо планові роботи з технічного обслуговування на веб-сайті. Будь ласка, поверніться до нас трошки пізніше" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "У вас немає прав на доступ до даної сторінки або посилання застаріло." + +msgid "Search results" +msgstr "Результати пошуку" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Ви дійсно хочете видалити даного користувача? Ця дія є незворотньою." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Видалити користувача" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Дата реєстрації" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "IP при реєстрації" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Підтверджений" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Забанений" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Чекає повідомлення" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "В черзі" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "від %i до %f знаків<br>Букви, цифри і \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "Автоматичне видалення завантажень" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "Ця установка буде діяти у всіх ваших завантаження зображень за замовчуванням. Ви можете перевизначити цей параметр на кожне завантаження." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "Залишити налаштування для зображення <a %s>Exif дані</a> при загрузці" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "Інформаційна розсилка" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "Посилати мені листи з новинами про %s" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "Налаштування контенту" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "Показувати небезпечний зміст (від інших)" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Мова" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Часовий пояс" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Поточний пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Введіть ваш поточний пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Новий пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Повторіть новий пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Додайте пароль, щоб мати можливість входити з використанням імені користувача або адреси електронної" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "У цього користувача не встановлений пароль. Додайте його через дану форму." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Введите ваш пароль" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Підтвердіть пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Повторіть пароль" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Завантажити зображення" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Видалити" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Це ваше справжнє ім'я, а не ім'я користувача." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Біографія" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Розкажіть нам трошки про себе" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "У користувача немає зв'язків з іншими акаунтами." + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Ви дійсно хочете відв'язати %s від цього аккаунта?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Цей акаунт пов'язаний з %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Ви дійсно хочете відв'язати ваш аккаунт %s?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Буде виконаний вихід із системи і ви більше не зможете входити через акаунт %s." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Ваш аккаунт пов'язаний з %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "відв'язати" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Пов'язати %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Не соромтеся, щоб переглянути всі мої завантажені зображення та альбоми." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Кнопка" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Переглянути всі мої зображення" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "Повторити відправку посилання для активації" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Завантажити фон профілю" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Змінити фон" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "Фон профілю буде видалений. Ви дійсно хочете видалити фон профілю?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Видалити фон" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Послідовник" +msgstr[1] "" +msgstr[2] "" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Слідкувати" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Вам заборонено користуватися цим сайтом." + +msgid "Plugin" +msgstr "Плаґін" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Загальні питання / коментарі" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA скарга" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Неправильне повідомлення" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Неправильна тема" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Помилка електронної пошти" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Повідомлення надіслано. Ми зв'яжемося найближчим часом." + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Якщо ви продовжите, всі зроблені вами зміни будуть втрачені." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Зміни успішно збережені." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Повернуться до форми" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "все одно продовжити" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "збереження" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Відправка" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Підтвердіть дію" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "інформація" + diff --git a/app/languages/vi.po b/app/languages/vi.po new file mode 100644 index 0000000..277cf27 --- /dev/null +++ b/app/languages/vi.po @@ -0,0 +1,3652 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2020-09-02 17:16+0000\n" +"PO-Revision-Date: 2020-09-02 17:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "Email không hợp lệ" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "Sai tên tài khoản" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "Sai mật khẩu" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "Chế độ website bị sai" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "Địa chỉ email gửi" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "Email người gửi để gửi email đến người dùng" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "Có thư tới" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "Email để nhận cho đơn liên lạc và báo động hệ thống" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "Chế độ website" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "Bạn có thể đổi chế độ website bất cứ lúc nào." + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "Cộng đồng" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "Cá nhân" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "Phiên bản đã cài là v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "Không thể kết nối tới %s\n" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "Phiên bản hiện tại v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "Cập nhật cần thiết, tiến hành tải xuống\n" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "Không có cập nhật\n" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "Các file hệ thống đã cập nhật" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "Bắt đầu tải xuống v%s " + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "Đã tải xuống v%s, đang tiến hành giải nén" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "Đang giải nén v%s\n" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "Giải nén thành công" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "Tiến hành cài đặt bản cập nhật" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "Cập nhật thất bại" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "Đang tiến hành cập nhật" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "Thiếu file %s" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "Thông tin bản quyền không hợp lệ" + +#: ../../../app/install/update/updater.php:84 +msgid "Invalid license key" +msgstr "Mã key bản quyền không hợp lệ" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "Không thể lưu tệp" + +#: ../../../app/install/update/updater.php:100 +#, php-format +msgid "Can't download %s" +msgstr "Không thể tải xuống %s" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "Không thể trích xuất %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "Không thể tạo thư mục %s - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "Không thể cập nhật file %s - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "Kiểm tra lỗi trong biểu mẫu để tiếp tục." + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "Bạn phải đặt tên album." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "Xác nhận" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "Chọn album sẵn có" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "Có lỗi xảy ra, hãy quay lại sau." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "Hãy chọn loại ảnh phù hợp" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "Hãy chọn dung lượng ảnh tối đa %s" + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "Hình đại diện đã cập nhật" + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "Hình nền cá nhân đã cập nhật." + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "Hình nền cá nhân đã xóa." + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "Xóa hình nền bị lỗi." + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "Mật khẩu không khớp" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "Cập nhật có sẵn v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "Có bản cập nhật mới cho hệ thống của bạn. Bạn có thể tự động tải xuống và cài đặt bản cập nhật này hoặc truy cập %s để tải file xuống" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "Chú ý cho bản cập nhật này là:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "Cập nhật ngay" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "hoặc" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "hủy" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "Website này đang chạy phiên bản %s mới nhất" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "đang tải" + +msgid "Toggle select" +msgstr "Chọn chuyển đổi" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "Thích" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "Sửa" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Albums" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "Xóa" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "Đóng" + +msgid "Previous" +msgstr "Trước" + +msgid "Next" +msgstr "Tiếp" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "Lưu tạm ảnh" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "Hình quá lớn" + +msgid "Invalid or unsupported file format." +msgstr "Định dạng tệp không hợp lệ hoặc không được hỗ trợ." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "Một số tệp không thêm được." + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "ảnh" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "Album của %s" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "Sửa ảnh thành công." + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "riêng tư" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "Sửa album thành công." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "Khóa URL không hợp lệ." + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "Khóa URL của danh mục đã được sử dụng." + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "Danh mục đã xóa thành công " + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "Danh mục %s đã thêm." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "Ngày hết hạn không hợp lệ.\n" + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s đã bị cấm." + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s bị cấm." + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "Bỏ cấm IP thành công." + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "Vui lòng điền vào tất cả các vùng bắt buộc." + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "Sức chứa dung lượng lưu trữ không hợp lệ. Hãy đảm bảo sử dụng định dạng hợp lệ.\n" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "Dung lượng lưu trữ không thể thấp hơn hiện tại đang sử dụng (%s)" + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "URL không hợp lệ." + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "Đã chỉnh sửa kho lưu trữ thành công." + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "Thêm người dùng thành công." + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "Nội dung đã bị xóa" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "Nội dung đã được di chuyển." + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "Chọn" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "Bỏ chọn" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "Nội dung đã được chỉnh sửa." + +msgid "Spam detected" +msgstr "Phát hiện Spam" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "album" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "Phát hiện spam. Bạn chỉ có thể tải lên %limit% %content% trong %time%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "Chưa đặt tên" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "Ảnh của %s" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "Lưu ý: Nội dung này là riêng tư, nhưng bất kỳ ai có địa chỉ liên kết đều sẽ có thể vào xem." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "Lưu ý: Nội dung này được bảo vệ bằng mật khẩu. Hãy nhớ cho mật khẩu của nội dung khi chia sẻ." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "Nội dung này ở chế độ riêng tư. Đổi sang chế độ \"công khai\" để chia sẻ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "Riêng tư" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "Công cộng" + +msgid "Me" +msgstr "Tôi" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "Liên kết" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "Mật khẩu" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "lượt xem" + +msgid "After %n %t" +msgstr "Sau %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "phút" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "giờ" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "ngày" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "tuần" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "tháng" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "năm" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "Đừng tự động xoá" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "Upload trùng" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "Đăng ảnh bí mật" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "thích" + +msgid "Recent" +msgstr "Gần đây" + +msgid "Trending" +msgstr "Xu hướng" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "Top người dùng" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "Gần đây nhất" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "Cũ nhất" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "Xem nhiều nhất" + +msgid "Popular" +msgstr "Phổ biến" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "Được thích nhiều nhất" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "Khám phá ảnh" + +msgid "Animated" +msgstr "Ảnh động" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "Tìm kiếm" + +msgid "People" +msgstr "Mọi người" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "Ảnh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "Người dùng" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "Không thể tạo %s đường dẫn đích" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "Không thể mở %s để sửa" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "Nội bộ" + +msgid "Can't insert storage." +msgstr "Không thể chèn vào kho lưu trữ." + +msgid "Can't update storage details." +msgstr "Không thể cập nhật chi tiết kho lưu trữ." + +#, php-format +msgid "requires %s" +msgstr "đòi hỏi %s\n" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "Không giới hạn" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "đã dùng" + +msgid "Private profile" +msgstr "Hồ sơ bí mật" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "giây" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "cách đây %s" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "mới đây" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "Bảng chính" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "Đã có sẵn bản cập nhật cho hệ thống của bạn. Đi tới %s để tải xuống và cài đặt bản cập nhật này." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "Hệ thống dữ liệu đã cũ. Bạn cần phải chạy công cụ <a href=\"%s\">cập nhật</a>." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "Website đang bảo trì. Để tắt chế độ này vui lòng vào <a href=\"%s\">Dashboard > Settings</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "Bạn nên tắt báo cáo lỗi PHP . Truy cập <a href='%s'> Cài đặt hệ thống</a> để hoàn tác cài đặt này." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "Bạn chưa thay đổi cài đặt email mặc định. Truy cập <a href='%s'>Cài đặt Email </a> để khắc phục sự cố này." + +msgid "There is an update available for your Chevereto based website." +msgstr "Đã có sẵn bản cập nhật cho trang Chevereto của bạn." + +msgid "admin dashboard" +msgstr "bảng điều khiển " + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "Bạn có thể áp dụng cập nhật này trực tiếp từ %a của bạn hoặc tải nó từ %s và sau đó tự cài đặt nó." + +#, php-format +msgid "view on %s" +msgstr "xem trên %s\n" + +msgid "cookie policy" +msgstr "chính sách cookie" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "Chúng tôi sử dụng cookie của mình và các bên thứ ba để tối ưu hoá trải nghiệm người dùng của bạn cũng như các dịch vụ của mình. Nếu bạn tiếp tục truy cập website, đồng nghĩa với việc bạn hiểu và chấp nhận %cookie_policy_link." + +msgid "I understand" +msgstr "Tôi hiểu" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "Quên mật khẩu?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "Tạo lại mật khẩu" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "Gửi lại mã kích hoạt" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "Thêm email của bạn" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "Email đã đổi" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s cho rằng bạn là robot" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "Sai Tên / Email" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "Người dùng chưa có email" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "Yêu cầu bị từ chối" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "Phải kích hoạt tài khoản để dùng tính năng này" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "Tài khoản đã kích hoạt" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "Hãy đợi email trong vòng 15 phút. Hoặc bạn có thể thử lại sau." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "Tạo lại mật khẩu lúc %s" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "Xác nhận yêu cầu lúc %s" + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "Chào mừng %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "Email đã sử dụng" + +msgid "Password required" +msgstr "Yêu cầu mật khẩu" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "Chia sẻ" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "Mã nhúng" + +#: ../../../app/routes/route.album.php:124 +#: ../../../app/routes/route.image.php:134 +msgid "Full info" +msgstr "Thông tin đầy đủ" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a album được chia sẻ tại %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "Thống kê" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "Ảnh" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "Albums" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "Người dùng" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "Cài đặt" + +msgid "Bulk importer" +msgstr "Công cụ import số lượng lớn" + +#: ../../../app/routes/route.dashboard.php:161 +msgid "Chevereto version" +msgstr "Phiên bản Chevereto" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "cài đặt cập nhật" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "kiểm tra cập nhật" + +msgid "Support" +msgstr "Hỗ trợ" + +#, php-format +msgid "Need help? Go to %s and you will get help quickly." +msgstr "Cần giúp đỡ? Đi tới %s và bạn sẽ nhận được trợ giúp nhanh chóng." + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "Phiên bản PHP" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "Máy chủ" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "Phiên bản MySQL" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "Thông tin MySQL server" + +#: ../../../app/routes/route.dashboard.php:185 +msgid "GD Library" +msgstr "Thư viện GD" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "Ảnh upload" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "Đã bật" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "Đã tắt" + +msgid "Max. upload file size" +msgstr "Tập tin tải lên tối đa" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "Dung lượng đăng tối đa" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "Thời gian thi hành tối đa" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d giây" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "Giới hạn bộ nhớ" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "Đường dẫn" + +msgid "Documentation" +msgstr "Tài liệu" + +msgid "Changelog" +msgstr "Nhật ký thay đổi" + +msgid "Bug tracking" +msgstr "Theo dõi lỗi" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "Website" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "Nội dung" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "Trang" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "Danh sách" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "Hình upload" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "Chuyên mục" + +msgid "Consent screen" +msgstr "Màn hình ban đầu" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "Flood protection" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "Giao diện" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "Trang chủ" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "Banners" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "Hệ thống" + +msgid "Routing" +msgstr "Routing" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "Ngôn ngữ" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "Nguồn lưu trữ ngoài" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "Email" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "Mạng xã hội" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "Dịch vụ bên ngoài" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "Chặn IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "Thiết lập khác" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "Công cụ" + +msgid "Can't delete all homepage cover images" +msgstr "Không thể xoá tất cả ảnh trang chủ" + +msgid "Homepage cover image deleted" +msgstr "Ảnh đại diện trang chủ đã được xoá" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "Local" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "Bên ngoài" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "Tất cả" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "nội dung tìm kiếm" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "Thêm trang" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "Chỉnh sửa page ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "Trang được thêm vào thành công" + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "Trang đã được xoá" + +msgid "homepage" +msgstr "trang chủ" + +#, php-format +msgid "Before main title (%s)" +msgstr "Trước tiêu đề chính (%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "Sau nút CTA (%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "Sau ảnh (%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "Sau danh sách (%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "Trước phân trang" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "Phía sau phân trang" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "Nội dung (trong xem ảnh và album)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "Tab cột giới thiệu" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "Phía dưới bình luận" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "Tranh hình ảnh" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "Trong phần trên của trình duyệt ảnh (trang xem ảnh)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "Trong phần chân của trình duyệt ảnh (trang xem ảnh)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "Trước đầu trang (trang ảnh)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "Trang album" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "Trang thông tin thành viên" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "Trang khám phá" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "Ảnh nhạy cảm" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "Tên web bị sai" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "Sai ngôn ngữ" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "Sai múi giờ" + +#, php-format +msgid "Invalid value: %s" +msgstr "Giá trị không hợp lệ: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "Sai chế độ lưu trữ" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "Đặt tên upload sai" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "Chiều rộng thumb bị sai" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "Chiều cao thumb bị sai" + +msgid "Invalid medium size" +msgstr "Kích thước trung bình không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "Phần trăm vị trí của ảnh đóng dấu không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "Chỉ số trong suốt của ảnh đóng dấu không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "Sai theme" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "Sai giá trị" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "sai tông màu" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "sai màu chính" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "Sai màu nút trên topbar" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "sai size của danh sách hình ảnh" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "User ID không tồn tại" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "Sai chế độ email" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "Sai cổng SMTP" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "Sai bảo mật SMTP" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "ID người dùng chế độ cá nhân không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "Chế độ bảo mật website không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "sai chết độ riêng tư" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "sai style trang chủ" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "Sai màu của nút nhấp trên trang chủ" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "Hàm gọi hành động trên homepage không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "Tiêu đề không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "nhập không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "Hiển thị không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "Thuộc tính rel không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "icon không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "URL key không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "Đường dẫn file không hợp lệ" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "URL liên kết không hợp lệ" + +msgid "Invalid user minimum age" +msgstr "Độ tuổi tối thiểu của người dùng không hợp lệ" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "Chỉ chữ cái a-z, dấu gạch dưới và kí tự gạch ngang được chấp nhận" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "Sai URL" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "Sai đường dẫn ảnh upload" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "Địa chỉ đường dẫn của nút CTA không chính xác" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "Cho phép tối đa %s" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "Sai máy chủ SMTP" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "Sai tên người dùng SMTP" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "URL key này đã được một trang khác sử dụng (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "Đường dẫn file này đã được một trang khác sử dụng (ID %s)" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "Giới thiệu" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "ID ảnh" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "IP người up" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "ban IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "Những IP đã ban" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "Ngày tải lên" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "ảnh %i trong %a album" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "Ảnh %i trong %c chuyên mục" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "Ảnh %i lưu trữ tại %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "Link trực tiếp" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "Link ảnh" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "URL ảnh" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "URL ảnh thumbnail" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "URL ảnh trung bình" + +msgid "Full image" +msgstr "Ảnh gốc" + +msgid "Full image (linked)" +msgstr "Ảnh gốc (có liên kết)" + +msgid "Medium image (linked)" +msgstr "Ảnh cỡ vừa (có liên kết)" + +msgid "Thumbnail image (linked)" +msgstr "Ảnh thu nhỏ (có liên kết)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "Cần đăng nhập" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "Địa chỉ IP đã bị cấm" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "Thiếu dữ liệu" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "Tên tài khoản đã có người sử dụng" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "Nhập mật khẩu hoặc kết nối mạng xã hội khác trước khi xoá %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "Nhập email hoặc kết nối mạng xã hội khác trước khi xoá %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s đã bị ngắt" + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "Email kiểm tra từ %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "Đây chỉ là nội dung kiểm tra" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "Email kiểm tra đã gửi đến %s." + +#, php-format +msgid "Downloading %s data" +msgstr "Đang tải %s dữ liệu" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "Người dùng %s quan tâm" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "Người dùng %s bỏ theo dõi" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "Đã like" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "Đã disliked" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u đã thích %t %c của bạn" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u quan tâm ảnh của bạn" + +msgid "A private user" +msgstr "Người dùng RIêng tư" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "Tên người dùng hoặc mật khẩu bị sai" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "Đăng nhập" + +msgid "Upload images" +msgstr "Upload ảnh" + +msgid "Upload plugin" +msgstr "Upload plugin" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "Kết quả tìm kiếm hình ảnh cho truy vấn: %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "Kết quả tìm kiếm Album cho truy vấn: %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "Kết quả tìm kiếm người dùng cho truy vấn: %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "Tài khoản" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "Hồ sơ cá nhân" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "Các tài khoản liên kết" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "Một email đã được gửi đến %s với hướng dẫn kích hoạt" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "Sai tên" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "Sai trang web" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "Sai mật khẩu" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "Cần dùng mật khẩu mới" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "Đã lưu thay đổi" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "Đã đổi mật khẩu" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "Đã tạo mật khẩu" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "Tên người dùng/Email không chính xác" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "Thiết lập cho %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "Bạn phải đồng ý với các điều khoản và chính sách bảo mật" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "Bạn phải có ít nhất %s tuổi để sử dụng website này" + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "Đăng kí" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "Upload" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "Ảnh của %s" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "Kết quả cho" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "Được thích bởi %s" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "Đã thích" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "Người quan tâm" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) albums trên %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) trên %w" + +msgid "Discovery" +msgstr "Khám phá" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "Tìm kiếm nâng cao" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "Hình ngẫu nhiên" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "Thông báo (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "Thông báo" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "Bạn chưa có thông báo nào" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "Thông tin cá nhân" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "Thoát" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "Chúng tôi nhận được yêu cầu thay đổi email <a href=\"%u\">%n</a> tài khoản của bạn tại %w." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "Để hoàn tất vui lòng <a href=\"%s\">kích hoạt email</a>." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "Hoặc bạn có thê copy đoạn URL sau và dán vào thanh địa chỉ của trình duyệt để kích hoạt: <a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "Nếu bạn không có ý định này, chỉ cần bỏ qua thông báo này." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "Yêu cầu này xuất phát từ IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "Chúng tôi nhận được yêu cầu tạo tài khoản %n tại %w." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "Để hoàn tất vui lòng <a href=\"%s\">kích hoạt tài khoản</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "Chúng tôi nhận được yêu cầu khôi phục mật khẩu cho tài khoản <a href=\"%u\">%n</a> của bạn." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "Để reset lại mật khẩu xin vui lòng <a href=\"%s\">click vào link này</a>." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "Xin chào %n, rất vui khi bạn đến với %w" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "Tài khoản của bạn đã được kích hoạt thành công. Hãy bắt đầu upload ảnh của bạn, tạo album, set chế độ riêng tư hoặc công cộng cho hình ảnh của bạn và hàng đống chức năng khác đang chờ bạn khám phá." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "Nhân tiện, đây là trang cá nhân tuyệt vời của bạn: <a href=\"%u\">%n</a>. Hãy tiếp tục tùy chỉnh, nó là của bạn !." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "Cảm ơn bạn đã tham gia với chúng tôi." + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "Email này được gửi từ %w %u" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "Kéo thả hoặc paste (Ctrl + V) ảnh vào đây để upload" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "Chọn ảnh để upload" + +msgid "browse from your computer" +msgstr "tải lên từ máy tính" + +msgid "add image URLs" +msgstr "thêm địa chỉ ảnh" + +msgid "You can also %i or %u." +msgstr "Bạn có thể %i hoặc %u." + +msgid "browse from your device" +msgstr "tải từ thiết bị" + +msgid "take a picture" +msgstr "chụp ảnh" + +msgid "You can also %i, %c or %u." +msgstr "Bạn còn có thể %i, %c hoặc %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "Sửa hoặc chỉnh cỡ bất kì ảnh nào bởi nhấp vào xem thử" + +msgid "Edit any image by touching the image preview" +msgstr "Sửa bất kì ảnh nào bởi chạm vào xem thử" + +msgid "your computer" +msgstr "máy tính của bạn" + +msgid "You can add more images from %i or %u." +msgstr "Bạn có thể thêm nhiều ảnh nữa từ %i hoặc %u." + +msgid "your device" +msgstr "thiết bị của bạn" + +msgid "Uploading %q %o" +msgstr "Đang tải lên %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "Hoàn tất" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "Danh sách đang được tải lên, nó có thể mất đôi chút thời gian để hoàn thành." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "Upload xong rồi!" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "Đã tải nội dung lên %s." + +msgid "create a new album" +msgstr "tạo album mới" + +msgid "move it to an existing album" +msgstr "chuyển nó đến album đã có sẵn" + +msgid "create an account" +msgstr "tạo tài khoản" + +msgid "sign in" +msgstr "đăng nhập" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "Có lỗi xảy ra, hệ thống không thể xử lý yêu cầu vừa rồi của bạn." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "Danh sách" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "Chọn danh sách" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "Stick chọn cái này nếu tải lên là ảnh 18+. Không sẽ bị xoá không thương tiếc mà không cần báo trước nhé!!!" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "Đây là hình ảnh nhạy cảm hoặc18+" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "Đang đăng" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "Ngưng upload những ảnh còn lại" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "Lưu ý: Một số ảnh không được upload." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "xem tiếp" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "Chọn <a data-modal=\"simple\" data-target=\"failed-upload-result\">thông báo lỗi</a> để biết thêm chi tiết." + +msgid "reset" +msgstr "reset" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "đóng" + +msgid "copy" +msgstr "sao chép" + +msgid "insert" +msgstr "chèn" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "Tiêu đề" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "không bắt buộc" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "Chỉnh kích thước ảnh" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "Bề rộng" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "Chiều cao" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "Lưu ý: Ảnh động dạng gif sẽ không được resize." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "Tự động xoá ảnh" + +msgid "Sign up" +msgstr "Đăng ký" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "Stick chọn cái này nếu tải lên là ảnh 18+. Không sẽ bị xoá không thương tiếc mà không cần báo trước nhé!!!" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "Đánh dấu 18+" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "Chú thích" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "Mô tả ảnh" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "Thêm URLs ảnh" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "Thêm URLs ảnh vào đây" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "Tạo Album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "Chuyển vào Album" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "Chọn Album sẵn có để chuyển ảnh vào. Hoặc có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo Album mới</a> rồi chuyển hình ảnh vừa upload vào." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "Thông báo lỗi" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "Link người xem" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "Mã HTML" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML medium linked" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML thumbnail linked" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCodes" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "Nhúng diễn đàn BBCode" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "Nhúng diễn đàn BBCode kèm liên kết" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode medium linked" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode thumbnail linked" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "Lưu trữ" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "Địa chỉ IP" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "Tên Album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "chuyển vào Album sẵn có" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "Chú thích cho album" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "Mô tả tóm tắt của album này" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "Ai xem được nội dung này" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "Riêng tư (chỉ bạn thấy)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "Riêng tư (Có link sẽ xem được)" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "Tên" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "Tên của danh sách" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "Từ khóa URL" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "Từ khóa URL của danh sách" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "Mô tả tóm tắt của danh sách này" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "Đường dẫn" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "Đến ngày nào sẽ cấm IP này? để trống nếu muốn không thời hạn" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "Nội dung" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "Tin nhắn Text, HTML hoặc URL chuyển hướng" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "Album hiện có" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "tạo album mới" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "Tên bộ nhớ" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "Khu vực" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "Storage region" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "Storage bucket\n" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "Key" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "Storage key" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "Storage secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "Private key" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON key" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "Bạn cần một <a %s>service account</a> cho việc này" + +msgid "Service name" +msgstr "Service name" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identity URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identity API endpoint" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "API endpoint for OpenStack identity" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "Tên tài khoản" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "Container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "Storage container" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant id (account id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant name" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant name (account name)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "Hostname or IP of the storage server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "Đường dẫn Server" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "Server password" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "Storage capacity" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "Ví dụ: 20 GB, 1 TB, v.v." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "Bộ nhớ sẽ bị disabled khi nó đạt đến dung lượng này. Để trống hoặc điền 0 nếu không giới hạn." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "Storage URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "Hệ thống sẽ sử dụng địa chỉ này khi tạo link đến hình ảnh từ storage này." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "xem thêm" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "Hiện thêm" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "Chọn tất cả" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "Bỏ chọn" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Selection" +msgstr "Lựa chọn" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13 +msgid "Action" +msgstr "Hành động" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "Tạo mã nhúng" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "Ảnh an toàn" + +msgid "Create new album" +msgstr "Tạo album mới" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "Đăng nhập với tài khoản khác" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "Không có gì để hiện." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:32 +msgid "All the images will be moved to this newly created album. You can also move the images to an <a class=\"modal-switch\" data-switch=\"move-existing-album\">existing album</a>." +msgstr "Hình đã chuyển đến album mới tạo. Bạn cố thể chuyển hình đến <a class=\"modal-switch\" data-switch=\"move-existing-album\">album hiện có</a>." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:50 +msgid "Select an existing album to move the image. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the image there." +msgstr "Chọn album để chuyển hình đến đó. Bạn có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo album mới</a> và chuyển hình đến đó." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:52 +msgid "Select an existing album to move the album contents. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the album contents there." +msgstr "Chọn album để chuyển nội dung. Bạn còn có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo album mới</a> và chuyển hình đến đó." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:71 +msgid "Select an existing album to move the images. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the images there." +msgstr "Chọn album để chuyển hình đến đó. Bạn có thể <a class=\"modal-switch\" data-switch=\"move-new-album\">tạo album mới</a> và chuyển hình đến đó." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "Tất cả hình ảnh được chọn sẽ được gán cho danh mục này." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "Không có danh mục nào." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "Xác nhận đánh dấu hình ảnh an toàn" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "Chắc chán muốn đánh dấu hình ảnh an toàn?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "Xác nhận đánh dấu hình ảnh 18+" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "Chắc chán muốn đánh dấu hình ảnh 18+?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "Xác nhận xóa" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "Bạn có thực sự muốn xóa nội dung này? Việc này không thể hoàn tác." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "Bạn có thực sự muốn xóa các nội dụng được chọn? Việc này không thể hoàn tác." + +msgid "Fullscreen" +msgstr "Full screen" + +msgid "Exit fullscreen" +msgstr "Thoát full screen\n" + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "Khách" + +msgid "Keyboard shortcuts" +msgstr "Phím tắt" + +msgid "Uploaded by guest" +msgstr "Upload by khách" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "Từ %s" + +msgid "Uploaded by private" +msgstr "Upload by ẩn danh" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "bởi %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "Bật kiểm tra nội dung không an toàn" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "404: Trng này không tồn tại" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "Không tìm thấy trang yêu cầu" + +#: ../../../app/themes/Peafowl/views/404.php:11 +msgid "Search something else" +msgstr "Tìm hình khác" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "Người dùng đã bị xóa" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "Tài khoản bạn đã sẵn sàng" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Một email đến %s đã gửi. Link kích hoạt chỉ tồn tại trong 48 tiếng. Kiểm tra trong Spam nếu không có." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "Gửi kích hoạt lại" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "Chuyển thành công email sang %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "Đi tới trang cá nhân" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "Đã gửi email link kích hoạt tài khoản." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "Địa chỉ email của bạn" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "Gửi" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Chúng tôi đã gửi 1 email chứa mã reset và hướng dẫn cách reset lại mật khẩu đến địa chỉ email đăng ký tài khoản. Nếu không nhận được email nào trong vòng 10 phút, hãy kiểm tra lại hộp thư rác và Spam" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "Chúng tôi đã gửi email chứa mã reset mật khẩu và hướng dẫn. Nếu không nhận được email nào trong vòng 10 phút, hãy kiểm tra lại hộp thư rác và Spam" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "Gửi lại hướng dẫn" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "Tên người dùng hoặc Email" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "Mật khẩu của bạn đã đổi thành công. Từ giờ bạn có thể đăng nhập bằng mật khẩu mới." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "Đăng nhập" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "Nhập mật khẩu mới của bạn" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "tối thiểu phải %d ký tự" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "Nhập lại mật khẩu mới" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "Email đã gửi đến %s kèm theo hướng dẫn để kích hoạt tài khoản của bạn. Nếu bạn không nhận được hướng dẫn, hãy thử kiểm tra thư mục spam của bạn." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "Nội dung này được bảo mật" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "Bạn có muốn xoá tất cả hình ảnh album? Không phục hồi được nhé." + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "Bạn đã like" + +msgid "Upload to album" +msgstr "Tải lên album" + +#: ../../../app/themes/Peafowl/views/album.php:86 +msgid "Album link" +msgstr "Album link" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "Vui lòng đọc và chấp nhận với các điều khoản sau trước khi tiếp tục:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "Website này bao gồm các thông tin, liên kết và hình ảnh giới hạn độ tuổi. Nếu bạn dưới %s tuổi, hoặc nếu bạn cảm thấy các nội dung này không phù hợp hay là bất hợp pháp tại cộng đồng của mình, vui lòng không tiếp tục truy cập.\n\nTrong trường hợp bạn trên %s tuổi, và với tư cách là một người trưởng thành như một quyền lợi chính đáng và hợp pháp, bạn mong muốn được tiếp cận các nội dung này một cách tự nguyện.\n\nNgoài ra, bạn tin rằng hành vi tình dục giữa người lớn là hành vi không gây phản cảm hay khó chịu. Việc xem, đọc và tải các nội dung tình dục này không vi phạm các tiêu chuẩn của cộng đồng, khu vực, thành phố hay quốc gia sở tại nơi bạn phải chịu trách nhiệm pháp luật.\n\nBạn cũng phải cam kết sử dụng các tài liệu giới hạn độ tuổi trong website này chỉ cho bản thân, không phát tán và đặc biệt là chia sẻ với trẻ vị thành viên.\n\nMột khi bạn truy cập website và sử dụng các tính năng của website, bao gồm cả việc lưu trữ và chia sẻ, bạn đồng ý rằng bạn chịu trách nhiệm về mọi thông tin tiết lộ sai hoặc các quy định pháp lý về đọc, xem hoặc tải xuống bất kì tài liệu nào trong trang web này.\n\nMàn hình xác nhận này được coi như thoả thuận hợp pháp giữa website này và bạn hoặc bất kì tổ chức nào mà bạn có lợi ích hợp pháp liên quan. Nếu bất kì phần nào của thoả thuận này được coi là không thể thi hành bởi Toà án có thẩm quyền thì nó sẽ không ảnh hưởng tới các phần thực thi khác của thoả thuận này." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "Bằng việc đánh dấu \"Tôi đồng ý\", bạn xác nhận rằng bạn đã đọc và hiểu tất cả quy định ở trên." + +msgid "I Agree" +msgstr "Tôi đồng ý" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "Dung lượng đã sử dụng" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "Tình trạng" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "Thêm tài khoản" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "Quyền" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "Administrator" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Địa chỉ email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "Thêm danh sách" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "Tên trang web" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "Tên website" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "Mô tả website" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "Múi giờ mặc định" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "Chọn vùng" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "User ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "Trang web sẽ chỉ hoạt động đối với thành viên trong chế độ riêng tư" + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "Chế độ riêng tư" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "Mặc định" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "Bắt buộc bí mật (bản thân)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "Bắt buộc bí mất (bất cứ ai có link)" + +msgid "Contact" +msgstr "Liên hệ" + +msgid "pages" +msgstr "các trang" + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "Bật upload" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "Bật nếu bạn cho phép upload. Không ảnh hưởng đến ban quản trị." + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "Khách upload" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "Bật nếu muốn cho phép người dùng chưa đăng ký có thể upload." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "Đường dẫn ảnh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "Đến thư mục gốc của Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "Muốn lưu hình? Đến thư mục gốc của Chevereto" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "Chế độ lưu trữ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "Thư mục theo ngày" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "Trực tiếp" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "Datefolders creates %s structure" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "File naming method" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "Gốc" + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "Kích thước ảnh nhỏ" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "Ảnh nhỏ sẽ được giữ nguyên ở kích thước này" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "Chọn cái này để bỏ logo hoặc bất cứ thứ gì bạn muốn lên ảnh được upload" + +#: ../../../app/themes/Peafowl/views/dashboard.php:761 +#: ../../../app/themes/Peafowl/views/dashboard.php:1238 +#, php-format +msgid "Warning: Can't write in %s" +msgstr "Thông báo: Không thể ghi trong %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "Hình đóng dấu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "Vị trí hình đóng dấu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "trái - trên" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "trái - giữa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "trái - dưới" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "giữa - trên" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "giữa - giữa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "giữa - dưới" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "phải - trên" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "phải - giữa" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "phải - dưới" + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "Khoảng cách watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "Khoảng cách từ bìa ảnh đến ảnh watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "Độ mờ của watermark" + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "Bạn có thực sự muốn xóa mục %s? Hành động này không thể quay lại được." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "Hình ảnh sẽ không bị xóa nếu bạn xóa danh sách" + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "Chỉnh sửa danh sách" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "Cho phép đăng ký" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "Mở chức năng này để cho phép người dùng đăng ký" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "Chọn cái này để sử dụng địa chỉ %s/tên-tài-khoản thay vì %s/tài-khoản/tên-tài-khoản" + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "Yêu cầu xác nhận email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "Chọn cái này để bắt buộc người dùng xác nhận email khi đăng kí" + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "Yêu cầu email cho đăng kí qua mạng xã hội" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "Chọn cái này để bắt buộc người đăng kí dùng mạng xã hội phải xác nhận email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "Thông báo tới email" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "If enabled the system will send an email on flood incidents." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "Minute limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "Hourly limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "Daily limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "Weekly limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "Monthly limit" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "Hiển thị hình ảnh 18+ trong danh sách" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "Hiển thị banner trong hình ảnh 18+" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "Hiển thị ảnh 18+ trong chế độ ngẫu nhiên" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "Số ảnh trên mỗi trang" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "Số lượng hình ảnh hiển thị mỗi trang liệt kê" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "Chế độ phân trang" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "Tự động tải vĩnh cửu" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "Phân trang bình thường" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "Chọn chế độ phân trang" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "Đặt giao diện của bạn tại thư mục %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "Màu sắc" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "Sáng" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "Tối" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "Bật vector logo" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "Bật vector logo cho chất lượng hiển thị tốt trên màn hình độ phân giải cao" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "Logo vector" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "Logo định dạng Bitmap. Nên sử dụng ảnh PNG" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "Không có giá trị" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Hình favicon" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "Hình favicon. Chiều cao và chiều rộng phải bằng nhau" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "Mở nút download" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "Mở chức năng này để hiển thị nút download ảnh." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "Mở chức năng chia sẻ mạng xã hội" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "Mở chức năng hiện nút chia sẻ mạng xã hội" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "Mở mã nhúng" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "Mở chức năng hiện mã nhúng cho nội dung" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "Mã CSS tùy chỉnh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "Thêm tùy chỉnh CSS ở đây. Sẽ được thêm vào thẻ <style> và trước </head>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "Mã JS tùy chỉnh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "Thêm tùy chỉnh JS ở đây. Sẽ được thêm vào thẻ <script> và trước </head>" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "Bạn có thực sự muốn xóa ảnh này? Xóa rồi không hồi lại được đâu nha!" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "Xóa ảnh" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "Đây là mã salt dùng để chuyển đổi chữ số của ID sang dạng chữ cái. Mã này được tạo khi cài đặt." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "Ngôn ngữ mặc định" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "Ngôn ngữ sử dụng" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "Ngôn ngữ tự động" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "From name" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "Sender name for emails sent to users." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "Email mode" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "How to send emails? SMTP recommended." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP server and port" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP server" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP username" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP password" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "Chế độ bảo mật của SMTP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "Unsecured" + +msgid "Decode ID" +msgstr "Decode ID" + +msgid "Encode ID" +msgstr "Encode ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "Bạn cần <a href=\"https://developers.facebook.com/\" target=\"_blank\">Ứng Dụng Facebook</a> cho việc này." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "ID ứng dụng Facebook" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Tài khoản Twitter" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "Bạn cần có <a href=\"https://cloud.google.com/console\" target=\"_blank\">Ứng Dụng Google</a> cho việc này." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "Bạn cần 1 <a href=\"%s\" target=\"_blank\">khóa reCAPTCHA</a> cho nó." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "Comment code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "Disqus, Facebook or anything you want. It will be used in image view." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics code" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics hoặc bất cứ mã thống kê nào khác." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "Lưu thay đổi" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "Check the errors to proceed." + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "Hoàn thành thêm vào %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "Đã up lên %s" + +#: ../../../app/themes/Peafowl/views/image.php:182 +#: ../../../app/themes/Peafowl/views/image.php:241 +msgid "Share image" +msgstr "Chia sẻ ảnh này" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "Album ID" + +#: ../../../app/themes/Peafowl/views/image.php:252 +msgid "In this album" +msgstr "Trong tập ảnh này" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "Đăng và chia sẻ những bức ảnh của bạn" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "Đăng ký để sử dụng mọi chức năng của website" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "Quản lý hình ảnh, tạo album riêng tư, tùy chỉnh trang hồ sơ và hơn thế nữa" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "Chưa có tài khoản? <a href='%s'>Đăng ký </a> ngay!" + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "Đã đăng xuất" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "Bạn đã thoát khỏi tài khoản %s. Hẹn gặp lại sau!" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "Về trang chủ" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "Bạn không có quyền truy cập trang này hoặc trang này đã bị vô hiệu." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "Bạn có chắc là muốn xóa tài khoản này? Không hoàn lại được đâu nhé!" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "Xóa tài khoản" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "Ngày đăng ký" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "Hoạt động" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "Banned" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "Chờ email" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "Chờ xác nhận" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "từ %i đến %f ký tự<br>Chữ, số và \"_\"" + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "Ngôn ngữ" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "Múi giờ" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "Mật khẩu hiện tại" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "Nhập mật khẩu hiện tại" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "Mật khẩu mới" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "Xác nhận lại mật khẩu mới" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "Thêm mật khẩu để có thể đăng nhập bằng Tài khoản hoặc bằng Email" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "Người dùng này chưa nhập mật khẩu. Hãy thêm mật khẩu bằng mẫu bên dưới" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "Nhập mật khẩu của bạn" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "Xác nhận lại mật khẩu" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "Nhập lại mật khẩu mới" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "Tải lên ảnh mới" + +#: ../../../app/themes/Peafowl/views/settings.php:354 +msgid "Delete existing image" +msgstr "Xóa ảnh có sẵn" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "Bật tính năng này nếu bạn muốn sử dụng ẩn danh" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "Đây là tên thật của bạn chứ không phải tên Tài khoản đăng nhập đâu nha." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://trang-web-của-bạn.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "Tiểu sử" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "Cho chúng tôi biết một chút về bạn" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "Người dùng chưa có kết nối đến mạng xã hội" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "Bạn có chắc là muốn xóa liên kết đến %s của tài khoản" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "Tài khoản này hiện đang kết nối đến %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "Bạn có chắc là muốn xóa liên kết đến tài khoản %s" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "Bạn sẽ bị đăng xuất và bạn sẽ không thể đăng nhập lại bằng tài khoản %s" + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "Tài khoản của bạn hiện đang kết nối đến %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "ngắt kết nối" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "Kết nối %s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "Cứ thoải mái khám phá tất cả ảnh và album tôi đã chia sẻ công khai." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "Nút" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "Xem tất cả ảnh của tôi" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "gửi lại email kích hoạt tài khoản" + +#, php-format +msgid "I'm at least %s years old" +msgstr "Tôi ít nhất %s tuổi" + +msgid "terms" +msgstr "quy định" + +msgid "privacy policy" +msgstr "chính sách bảo mật" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "Tôi đồng ý với %terms_link và %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "Tải lên hình nền cho trang cá nhân" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "Đổi hình nền" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "ẢNh bìa hồ sơ sẽ bị xóa. Không thể hoàn tác thao tác này. Bạn có chắc chắn muốn xóa ảnh bìa cá nhân không?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "Xóa hình nền" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "Người theo dõi" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "Theo dõi" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "Bạn bị bắt buộc dùng website này" + +msgid "Plugin" +msgstr "Plugin\n" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "Hỏi đáp, thắc mắc, kiến nghị" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "Khiếu nại bản quyền hình ảnh" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "Tin nhắn không hợp lệ" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "Tiêu đề không hợp lệ" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "Lỗi mail" + +msgid "Message sent" +msgstr "Tin nhắn đã gửi" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "Nội dung đã được gửi thành công. Chúng tôi sẽ liên lạc lại với bạn sớm nhất có thể." + +msgid "If you want to send a message fill the form below." +msgstr "Nếu bạn muốn gửi một tin nhắn hãy điền vào mẫu dưới đây.\n" + +msgid "Your name" +msgstr "Tên bạn" + +msgid "Subject" +msgstr "Chủ đề" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "Nếu tiếp tục các thay đổi sẽ mất" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "Các thay đổi được lưu thành công." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "Quay trở lại biểu mẫu" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "vẫn tiếp tục" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "Đang lưu" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "Đang gửi" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "Xác nhận hành động" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "thông tin" + diff --git a/app/languages/zh-CN.po b/app/languages/zh-CN.po new file mode 100644 index 0000000..ef3327e --- /dev/null +++ b/app/languages/zh-CN.po @@ -0,0 +1,5297 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-19 15:47+0000\n" +"PO-Revision-Date: 2021-06-19 15:47+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "无效的电子邮箱" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "无效的用户名" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "无效的密码" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "当前版本为v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "无法连接到%s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "最新的可用版本为v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "需要更新,请继续下载" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "不需要更新" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "系统文件已经是最新的" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "开始下载v%s" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "已下载v%s, 继续解压" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "尝试解压v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "解压完成" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "正在安装这个更新" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "更新失败" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "正在更新" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "缺少 %s 文件" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "无效的许可证信息" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "无法保存文件" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "无法解压 %s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "无法创建 %s 目录 - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "无法更新 %s 文件 - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "继续前请检查表单中的错误." + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "注意: 此内容是私密的,但任何人通过链接将能够看到它。" + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "注意: 此内容已使用密码保护,请通过密码来分享。" + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "注意: 此内容是私密的。若要分享,请更改隐私设置为“公开”。" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "您必须输入相册名称." + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "确认" + +msgid "The content has been approved." +msgstr "内容已获批准。" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "选择现有的相册" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "发生错误。请稍后再试。" + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "请选择一个有效的图像文件类型。" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "请选择最大 %s 的图像。" + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "个人信息已更新。" + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "个人信息背景图片已更新。" + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "个人信息背景图片已删除。" + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "删除个人信息的背景图片时出错。" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "密码错误" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "有可用更新v%s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "有系统可用的更新。您可以自动下载并安装此更新或者前往 %s 继续下载该更新文件。" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "本次更新的发行说明:" + +msgid "system requirements" +msgstr "系统要求" + +#, javascript-format +msgid "I confirm that this server meets the %s for this update" +msgstr "我确认此服务器满足此次更新的 %s" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "现在更新" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "此网站正在运行最新版%s" + +msgid "Please review the system requirements before proceeding" +msgstr "请在继续之前查看系统要求" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "正在加载" + +msgid "Toggle select" +msgstr "选中/取消选中" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "喜欢" + +msgid "Toggle flag" +msgstr "标记或取消标记" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "编辑" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "相册" + +msgid "Approve" +msgstr "批准" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "删除" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "关闭" + +msgid "Previous" +msgstr "上一页" + +msgid "Next" +msgstr "下一页" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "剪贴板图像" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "文件过大。" + +msgid "Invalid or unsupported file format." +msgstr "无效或不支持的文件格式。" + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "有些文件无法添加" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "图片" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s 的相册" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "图片编辑成功。" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "私密" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "相册编辑成功。" + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "无效的 URL Key。" + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "此分类的 URL key 已被占用。" + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "当前分类删除成功。" + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "类别 %s 已增加。" + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "无效的截止日期。" + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s 已经被禁止访问。" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "成功封禁IP %s。" + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP 已从屏蔽列表中删除。" + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "请填写所有必填字段。" + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "无效的存储容量值。请务必使用一个有效的格式。" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "存储容量不能少于当前的使用情况(%s)。" + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "无效的 URL。" + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "储存编辑成功。" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "分类添加成功。" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "该图片已经被删除。" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "该图片已经被移动。" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "选择" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "取消选择" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "该内容已被编辑。" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "导入任务 ID %s 已删除" + +msgid "Spam detected" +msgstr "垃圾邮件检测" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "相册" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "检测到泛洪。 您只能每 %time% 上传 %limit% %content%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "无标题" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s 的图片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "仅注册用户" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "访客开放" + +msgid "Me" +msgstr "我" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "链接" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "密码" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "次浏览" + +msgid "After %n %t" +msgstr "经过 %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "分钟" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "小时" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "天" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "周" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "月" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "年" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "不自动删除" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "无法打开 %s 写入" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "重复上传" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "私密(只有本人可见)" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "喜欢" + +msgid "Recent" +msgstr "最新" + +msgid "Trending" +msgstr "热门" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "所有用户" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "最新的" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "最旧的" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "最热门的" + +msgid "Popular" +msgstr "最爱" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "最喜欢的" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "探索" + +msgid "Animated" +msgstr "动图" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "搜索" + +msgid "People" +msgstr "人" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "图片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "用户" + +msgid "adult" +msgstr "成人" + +msgid "teen" +msgstr "青少年" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "禁止上传 %s 内容" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "无法创建 %s 目标目录" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "内部" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "无限制" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "已使用" + +msgid "Private profile" +msgstr "私隐设置" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "秒" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s 前" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "刚刚" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "仪表盘" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "您的系统有一个可用更新. 转到 %s 下载并安装此更新." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "系统数据库已经过时. 您需要运行 <a href=\"%s\">更新</a> 工具." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "网站处于维护模式. 恢复设置 <a href=\"%s\">仪表盘 > 设置</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "您应该在生产环境中禁用PHP错误报告. 转到<a href='%s'>系统设置</a>恢复此设置." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "您没有改变默认的电子邮件设置. 转到<a href='%s'>电子邮件设置</a>以解决此问题." + +msgid "There is an update available for your Chevereto based website." +msgstr "Chevereto有可用更新" + +msgid "admin dashboard" +msgstr "管理仪表盘" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "您可以直接从 %a 安装此更新或从 %s 下载, 然后手动安装更新." + +#, php-format +msgid "view on %s" +msgstr "%s 已查看" + +msgid "cookie policy" +msgstr "cookie 政策" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "我们使用我们自己的和第三方的 cookie 来改善您的浏览体验和我们的服务。如果您继续使用我们的网站,即表示您接受此 %cookie_policy_link。" + +msgid "I understand" +msgstr "\"我\"明白了" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "忘记密码?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "重置密码" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "重新激活帐户" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "添加您的电子邮件地址" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "该电子邮件已修改" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s 说您是一个机器人" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "无效的用户名或电子邮件" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "用户没有设置电子邮件." + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "请求被拒绝" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "帐号需要激活才能使用此功能" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "帐户已经被激活" + +msgid "Account banned" +msgstr "帐号被禁止" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "已超过15分钟内发送电子邮件次数. 您可以稍后再试." + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "在 %s 重置您的密码" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "您在 %s 注册的账号已经准备好, 激活后可立即使用." + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "欢迎来到 %s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "该电子邮箱已经被使用" + +msgid "Password required" +msgstr "需要密码" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "嵌入代码" + +msgid "Sub albums" +msgstr "子相册" + +msgid "Info" +msgstr "详细" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a 相册托管在 %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "统计" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "图片" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "相册" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "用户" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "设置" + +msgid "Bulk importer" +msgstr "批量导入" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "安装更新" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "检查更新" + +msgid "Contributing" +msgstr "贡献" + +msgid "Support" +msgstr "客服支持" + +msgid "Bug tracking" +msgstr "错误跟踪" + +msgid "Documentation" +msgstr "文档" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP版本" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "服务器" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL数据库版本" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL数据库服务器信息" + +msgid "Graphics Library" +msgstr "图形库" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "文件上传" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "启用" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "禁用" + +msgid "Max. upload file size" +msgstr "最大的文件上传" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "最大的执行大小" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "最大的执行时间" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d 秒" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "内存限制" + +msgid "Rebuild stats" +msgstr "重建统计信息" + +msgid "Connecting IP" +msgstr "正在连接的IP" + +msgid "Not your IP?" +msgstr "这不是我的IP?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "网站" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "内容" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "页面" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "页面列表" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "图片上传" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "分类" + +msgid "Consent screen" +msgstr "内容警告" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "防洪保护" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "主题" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "主页" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "横幅广告" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "系统" + +msgid "Routing" +msgstr "路径" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "语言" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "外部存储" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "电子邮件" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "社交网络" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "外部服务" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "IP屏蔽" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "其他设置" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "工具" + +msgid "Can't delete all homepage cover images" +msgstr "不能删除所有的首页封面图片" + +msgid "Homepage cover image deleted" +msgstr "删除首页封面图片" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "本地" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "外部" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "所有" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "搜索内容" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "添加页面" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "编辑页面ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "该页面已成功添加." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "该页面已被删除." + +msgid "homepage" +msgstr "主页" + +#, php-format +msgid "Before main title (%s)" +msgstr "之前的主标题(%s)" + +#, php-format +msgid "After call to action (%s)" +msgstr "呼吁行动后(%s)" + +#, php-format +msgid "After cover (%s)" +msgstr "封面后(%s)" + +#, php-format +msgid "After listing (%s)" +msgstr "列表下方(%s)" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "分页前" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "分页后" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "内容(图像和相册)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "标签相关" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "评论前" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "图像页面" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "内部图像浏览器顶部(图像页)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "内部图像浏览器底部(图像页)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "图像浏览器后(图像页)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "图像信息前(图像页)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "图像信息前(图像页)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "页脚(图像页)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "相册页面" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "头前(相册页面)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "头后(相册页面)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "个人信息页" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "头前(个人信息页)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "列表(个人信息页)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "探索页" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "头前(探索页)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "不安全(NSFW)" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "无效的网站名称" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "无效的语言" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "无效的时区" + +#, php-format +msgid "Invalid value: %s" +msgstr "无效的值:%s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "无效的上传存储模式" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "无效的上传文件名" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "无效的缩略图宽度" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "无效的缩略图高度" + +msgid "Invalid medium size" +msgstr "无效的中等图片大小" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "无效的水印百分比" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "无效的水印不透明度" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "无效的主题" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "无效的值" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "无效的主题色调" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "无效的主题主要颜色" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "无效的主题顶部菜单栏按钮颜色" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "无效的主题图片列表样式" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "无效的用户ID" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "无效的电子邮件地址" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "无效的SMTP端口" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "无效的SMTP安全模式" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "无效的网站模式" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "无效的个人模式用户ID" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "无效的路由或已保留" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "无效的网站隐私模式" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "无效的网站内容隐私模式" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "无效的主页风格" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "无效的按钮颜色" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "无效的主页\"开始上传\"按钮功能" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "无效标题" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "无效的状态" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "无效的类型" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "无效的可见度" + +msgid "Invalid internal type" +msgstr "内部类型无效" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "无效的目标属性" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "无效的rel属性" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "无效的图标" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "无效的链接值" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "无效的文件路径" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "无效的链接网址" + +msgid "Invalid user minimum age" +msgstr "无效的用户最低年龄" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "只允许字母, 连字符和下划线字符是允许的" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "无效URL" + +msgid "Routes can't be the same" +msgstr "路径不能是相同的" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "无效的图像上传路径" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "无效的主页\"开始上传\"按钮网址" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "超过最大允许的 %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "无法将 %m 映射到现有文件夹 (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "无法将 %m 映射到现有路由 (%r)" + +msgid "Can't map %m to %r (username collision)" +msgstr "无法将 %m 映射到 %r(用户名冲突)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "无效的SMTP服务器" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "无效的SMTP用户名" + +msgid "Invalid key" +msgstr "无效的密钥" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "此链接值已被另一个页面使用 (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "此文件路径已被另一个页面使用 (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "无法保存页面内容: %s." + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "已关注" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "关于" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "图片ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "上传者IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "屏蔽IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP已被屏蔽" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "上传时间" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "图片 %i 在 %a 相册" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "图片 %i 在 %c 分类" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "图片 %i 托管在 %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "直接(源文件)链接" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "图片链接" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "图片URL链接" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "缩略图URL链接" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "中等图片大小的URL链接" + +msgid "Full image" +msgstr "完整图片" + +msgid "Full image (linked)" +msgstr "完整图片(链接)" + +msgid "Medium image (linked)" +msgstr "中等图片(链接)" + +msgid "Thumbnail image (linked)" +msgstr "缩略图(链接)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "需要登录" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP地址已被禁止" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "遗漏值" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "无效的角色" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "用户名已被使用" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "添加一个密码或其他社交连接之前删除 %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "添加一个电子邮件或其他社交连接之前删除 %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s 已断开." + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "测试邮件来自 %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "这只是一个测试" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "测试邮件发送到 %s." + +#, php-format +msgid "Downloading %s data" +msgstr "正在下载 %s 数据" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "用户 %s 已关注" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "用户 %s 取消关注" + +msgid "Album cover altered" +msgstr "相册封面更改了" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "喜欢的内容" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "不喜欢的内容" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u 喜欢您的 %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u 关注了您" + +msgid "A private user" +msgstr "私人用户" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "错误的用户名或密码" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "登录" + +msgid "Moderate" +msgstr "审核" + +msgid "Upload images" +msgstr "上传图片" + +msgid "Upload plugin" +msgstr "上传插件" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "图片搜索结果 %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "相册搜索结果 %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "用户搜索结果 %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "账户" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "个人资料" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "关联账户" + +msgid "Powered by" +msgstr "Powered by" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "无效的图片失效: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "一封电子邮件已发送至 %s,其中包含激活此电子邮件的说明" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "无效的名称" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "无效的网站" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "密码错误" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "使用新的密码" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "更改已保存." + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "密码已更改" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "密码已创建." + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "错误的用户名或邮箱" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "设置为 %s" + +msgid "You must agree to the terms and privacy policy" +msgstr "您必须同意我们的服务条款和隐私政策" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "您必须年满 %s 周岁才能继续访问这个网站." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "注册账户" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "上传" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s 的图片" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "结果" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "%s 的喜欢" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "喜欢" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "粉丝" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) 相册在 %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) 在 %w" + +msgid "Discovery" +msgstr "发现" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "随机" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "高级搜索" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "通知 (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "通知" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "您没有任何通知" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "我的图片" + +msgid "Lights" +msgstr "灯光" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "注销" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "我们收到了在 %w 更改 <a href=\"%u\">%n</a> 帐户电子邮件的要求." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "要完成此过程, 您必须 <a href=\"%s\">激活您的电子邮件</a> ." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "另外, 您可以复制并粘贴网址到浏览器:<a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "如果您不打算注册或不是您注册的, 请忽略此消息." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "请求注册用户的IP: %s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "您好, 我们收到了您在 %w 注册 %n 帐户的要求." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "要完成此过程, 您必须<a href=\"%s\">激活您的帐户</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "我们收到的请求重置密码为您的 <a href=\"%u\">%n</a> 帐户." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "要重置您的密码 <a href=\"%s\">请点击此链接</a> ." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "您好 %n, 欢迎光临 %w ." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "现在, 您的帐户已准备就绪, 您可以上传您的图片, 创建相册并设置您的内容的私密性, 以及许多很酷的事情, 您会发现和享受." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "By the way, 这里是您自己的个人资料页: <a href=\"%u\">%n</a>. 来吧, 定制您的个人主页!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "感谢您的加入" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "这封电子邮件是由 %w %u 发送" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "拖放或粘贴图像在这里上传" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "选择需要上传的图片" + +msgid "browse from your computer" +msgstr "浏览您的计算机" + +msgid "add image URLs" +msgstr "添加图像的URL" + +msgid "You can also %i or %u." +msgstr "您也可以%i或者%u。" + +msgid "browse from your device" +msgstr "浏览您的计算机" + +msgid "take a picture" +msgstr "拍照" + +msgid "You can also %i, %c or %u." +msgstr "您也可以%i,%c或者%u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "通过点击图像预览来编辑或调整任意图像的大小" + +msgid "Edit any image by touching the image preview" +msgstr "通过点击图像预览来调整任意图像" + +msgid "your computer" +msgstr "您的计算机" + +msgid "You can add more images from %i or %u." +msgstr "您可以从%i或者%u添加更多的图片." + +msgid "your device" +msgstr "您的设备" + +msgid "You can add more images from %i, %c or %u." +msgstr "您可以从%i,%c或者%u添加更多的图片." + +msgid "Uploading %q %o" +msgstr "上传 %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "完成" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "队列上传中. 顷刻间便能完成." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "上传完毕" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "图片已经添加到 %s." + +msgid "You can %c with the content just uploaded or %m." +msgstr "您可以将刚刚上传的图片 %c或 %m." + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "您可以将刚刚上传的图片 %c." + +msgid "create a new album" +msgstr "创建相册" + +msgid "move it to an existing album" +msgstr "移动到现有的相册" + +msgid "You must %s or %l to save this content into your account." +msgstr "您必须 %s 或 %l 才能将此内容保存到您的帐户中。" + +msgid "create an account" +msgstr "注册账户" + +msgid "sign in" +msgstr "登录" + +#, php-format +msgid "No %s have been uploaded" +msgstr "没有 %s被上传" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "发生错误, 系统无法处理您的请求." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "分类" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "选择类别" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "标记这个上传内容为不健康" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "标记为不健康" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "上传" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "或" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "取消" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "取消剩下的" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "注意: 一些图像不能上传." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "了解更多" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "检查 <a data-modal=\"simple\" data-target=\"failed-upload-result\">错误报告</a> 更多信息." + +#, php-format +msgid "Register to get %s" +msgstr "注册之后可上传大小:%s" + +msgid "reset" +msgstr "重置" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "关闭" + +msgid "Note" +msgstr "通知" + +msgid "We must approve the uploaded content before being able to share." +msgstr "我们必须对上传的内容进行严格审核,只有审核通过后的内容才能进行分享。" + +msgid "copy" +msgstr "复制" + +msgid "insert" +msgstr "插入" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "删除" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "标题" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "可选的" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "调整图像大小" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "宽度" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "高度" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "注意: 动画GIF图像将不会被调整." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "自动删除图片" + +msgid "Sign up" +msgstr "注册" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s以自定义或防止图片被自动删除" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "标记这个图像为不健康" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "标记为不安全" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "描述" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "这张图片的简略描述" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "增加图片的URL" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "添加图片到这里" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "创建相册" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "上传的内容将被移动到新创建的相册。" + +msgid "existing album" +msgstr "目前的相册" + +msgid "You can also move the content to an %a." +msgstr "您还可以将内容移动到 %a 。" + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "如果您想稍后编辑此相册,则必须为 %s 或 %l。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "移动相册" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "选择现有相册以移动上传的内容。您还可以<a class=\"modal-switch\" data-switch=\"move-new-album\">创建新相册</a>并将内容移动到那里。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "错误报告" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "查看链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML代码" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML图像" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML详细链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML中等大小图片链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML缩略图链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCode代码" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode详细" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode详细链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "中等大小的图片的BBCode链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode 缩略图链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown 详细信息" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown 详细链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown 中等大小图片链接" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown 缩略图链接" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "搜索全部关键字内容" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "按此格式码关键字: 风景 人物 摄影" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "精确搜索关键字(若关键字带空格请加双引号)" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "按此格式码关键字: \"风景 人物\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "排除的关键字(若关键字带空格请加双引号)" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "在关键字前加减号: -邓丽欣 -\"王 祖男\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "存储" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP地址" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "相册名称" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "移动到现有的相册" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "相册描述" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "简要的描述一下这个相册" + +msgid "Album privacy" +msgstr "相册加密" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "谁可以看到" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "加密(只有我)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "加密(通过相册链接可见)" + +msgid "Private (password protected)" +msgstr "加密(密码访问, 包括您)" + +msgid "Album password" +msgstr "相册密码" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "名称" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "类别名称" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "链接 key" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "分类 URL key" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "只允许字母, 数字和字符" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "简要描述这一类别" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "无标题图像" + +msgid "Mark this if the image is not safe for work" +msgstr "如果图像不安全(NSFW),请在此标记。" + +msgid "Flag not safe" +msgstr "标记不安全" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "路径" + +msgid "Local path (absolute)" +msgstr "本地路径(绝对)" + +msgid "Directory structure" +msgstr "目录结构" + +msgid "Parse top level folders as users (username)" +msgstr "将顶级文件夹解析为用户(用户名)" + +msgid "Parse top level folders as albums" +msgstr "将顶级文件夹解析为相册" + +msgid "Don't parse folders" +msgstr "不要解析文件夹" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "将顶级文件夹解析为用户时,第二级文件夹将被解析为用户相册。 将顶级文件夹解析为相册会将这些文件夹添加为访客相册。" + +msgid "Threads" +msgstr "线程" + +msgid "Select number of threads" +msgstr "选择线程数" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "这决定了导入过程的密集程度和速度。不要在共享服务器上使用超过 %s 的线程。" + +msgid "You can use wildcard * characters." +msgstr "您可以使用通配符 * 符号." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "截止日期" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS(例如: 2015-02-09 18:00:00)" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "例如" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "禁止IP到此日期? 留空则永久禁止." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "消息" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "文本消息, HTML或重定向URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "现有的相册" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "新建相册" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "存储名称" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "区域" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "存储区域" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "储存桶" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "访问密钥 ID" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "储存钥匙" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "私有访问密钥" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "存储秘密" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "私钥(Private key)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON key" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "您需要一个 <a %s>服务帐户</a> ." + +msgid "Service name" +msgstr "服务名称" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "身份网址" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "身份API端点" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "对于OpenStack的身份API端点" + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "用户名" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "容器" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "存储容器" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant id(用户id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant name" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant name(用户名)" + +msgid "Storage endpoint" +msgstr "存储端点" + +msgid "Server address" +msgstr "服务器地址" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "存储服务器主机名或IP" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "服务器路径" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "绝对路径存储在 %p 登录中,使用 %s 将其设置为根路径。" + +msgid "Server login" +msgstr "服务器登录" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "服务器密码" + +msgid "Local path" +msgstr "本地路径" + +msgid "Local path where the files will be stored" +msgstr "将存储文件的本地路径" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "存储容量" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "例如: 20 GB, 1 TB, 等." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "存储达到该值时将被禁用. 留空则不限制." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "存储URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "该系统将存储的图像映射到该URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "查看更多" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "加载更多" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "选择所有" + +msgid "Clear" +msgstr "清除" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "获取嵌入代码" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "添加分类" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "标记为安全" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "清除所选的" + +msgid "Create new album" +msgstr "新建相册" + +msgid "Create sub album" +msgstr "创建子相册" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "分享" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "登录您的帐户" + +msgid "Continue with %label%" +msgstr "用 %label% 账号登录" + +msgid "Home" +msgstr "首页" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "没有要显示的内容" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "所有选择的图像将会分配给此分类." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "没有此分类." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "确认标记内容为安全" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "您真的要标记这个内容为安全的?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "确认标记内容为不安全" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "您真的要标记这个内容为不安全?" + +msgid "Confirm approval" +msgstr "确认批准" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "您确定要执行这个操作吗?这是个无法挽回的操作" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "确认删除" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "您真的想删除此内容? 一旦删除将无法恢复." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "您确定要执行这个操作吗?这是个无法挽回的操作" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "您真的想删除所选内容? 一旦删除将无法恢复." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "访客" + +msgid "Keyboard shortcuts" +msgstr "键盘快捷键" + +msgid "Private album" +msgstr "私人相册" + +msgid "Password protected" +msgstr "密码保护" + +msgid "Uploaded by guest" +msgstr "来自访客" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "来自 %s" + +msgid "Uploaded by private" +msgstr "由私人上传" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "来自 %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "切换不安全标记" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "该页面不存在" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "所请求的页面不存在" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "用户已被删除" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "您的账号已经准备好" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "已向 %s 发送了一封电子邮件,其中包含激活您帐户的说明。激活链接仅在 48 小时内有效。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "重新激活" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "您已成功改变了您的帐户的电子邮件 %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "去我的图片" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "确认链接将被发送到这个邮箱, 详情请登录邮箱并激活您的帐户." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "您的电子邮件地址" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "提交" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "一封包含重置密码说明的电子邮件已发送到注册的电子邮件地址。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "之前的电子邮件已发送,其中包含重置密码的说明。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "重新发送" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "输入您的用户名或者电子邮箱地址后提交,您可能需要检查垃圾邮件文件夹或将 %s 添加到白名单" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "用户名或电子邮件地址" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "您的密码已被更改. 现在, 您可以尝试使用您的新密码登录." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "现在登录" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "请输入您的新密码" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "最少 %d 个字符" + +msgid "Password strength" +msgstr "密码强度" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "请再次输入新的密码" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "已向 %s 发送了一封电子邮件,其中包含激活您帐户的说明。如果您没有收到说明,请尝试检查您的垃圾邮件或垃圾邮件过滤器。" + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "此内容是私有的" + +msgid "Sub album" +msgstr "子相册" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "您真的要删除此相册及其所有图片吗?这是无法撤消的。" + +msgid "Upload to album" +msgstr "上传到相册" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "您喜欢它" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "请阅读并遵守以下条件, 然后再继续:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "本网站所包含的信息, 链接和色情内容的图像. 如果您是 %s 岁以下, 如果这种材料冒犯您, 或者如果在您的地区查看这些材料是违法的, 请不要继续访问.\n\n我已年满 %s 周岁, 我相信, 作为一个成年人, 这是我收到/浏览色情材料不可剥夺的权利. 我希望接收/观看色情材料.\n\n我相信, 同意的成年人之间的性行为既不进攻也不色情. 的露骨色情内容的浏览, 阅读和下载不违反我的地区, 镇, 市, 州或国家标准.\n\n我已观看的色情材料仅是我个人的使用, 我不会传播未成年人的材料.\n\n我为任何虚假信息或浏览, 阅读或在本网站下载任何材料的法律后果承担全部责任. 此外, 该网站及其分支机构将负责从欺诈性进入或使用本网站所产生的任何法律后果.\n\n此同意画面构成了这个网站, 您或您有任何法律或衡平法权益的任何商业之间的法律协议. 如果本协议的任何部分被视为无效由有管辖权的法院不得影响该协议的其他部分的可执行性." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "通过点击\"我同意\", 您可声明自己已阅读并理解上述的所有条件." + +msgid "I Agree" +msgstr "我同意" + +msgid "documentation" +msgstr "文档" + +#, php-format +msgid "Learn about %s settings at our %d." +msgstr "在我们的 %d 了解 %s 设置。" + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "连接IP是通过服务器变量 %var% 来确定的。如果检测到的IP与您的不一致,说明您的Web服务器是在代理服务器下,您需要调整您的服务器来设置真正的连接IP。" + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "对于Nginx,您必须使用 %nginx% ;对于Apache,使用 %apache% 。" + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "请确保解决此问题,因为系统依靠准确的IP检测来提供基本功能,并能防止垃圾邮件、洪水攻击和暴力破解攻击。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "已用大小" + +msgid "Queued" +msgstr "排队" + +msgid "Working" +msgstr "工作" + +msgid "Paused" +msgstr "已暂停" + +msgid "Canceled" +msgstr "取消" + +msgid "Completed" +msgstr "已完成" + +#, php-format +msgid "Top level folders as %s" +msgstr "顶级文件夹为 %s" + +msgid "Actions" +msgstr "操作" + +msgid "Process" +msgstr "处理" + +msgid "Pause" +msgstr "暂停" + +msgid "Cancel" +msgstr "取消" + +msgid "Process log" +msgstr "进程日志" + +msgid "Errors" +msgstr "错误" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "您真的要要删除导入ID:%s ?" + +msgid "Reset" +msgstr "重置" + +msgid "Resume" +msgstr "恢复" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "状态" + +msgid "Run the following command to import content to Chevereto:" +msgstr "运行以下命令将内容导入 Chevereto:" + +#, php-format +msgid "Read the %s for more information about this feature." +msgstr "阅读 %s 以了解有关此功能的更多信息。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "添加用户" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "角色" + +msgid "Manager" +msgstr "管理" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "管理员" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "Email地址" + +msgid "This setting is always diabled when using personal website mode." +msgstr "开启个人网站模式时, 该设置始终禁用." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "添加类别" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "添加IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "添加存储" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "返回页面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "网站名称" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "网站标题" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "网站描述" + +msgid "Automatic" +msgstr "自动" + +msgid "Forced" +msgstr "强制" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a 将在服务器端检测并自动使用HTTPS(推荐), %f 无论您的服务器如何设置,都将使用HTTPS, %d 禁用且完全不使用HTTPS。" + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "这仅控制URL中使用的协议,除非您的服务器配置为支持和使用HTTPS,否则它不会将您的网站变为有效的HTTPS网站。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "默认时区" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "选择区域" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "可以按特定的内容查询图片, 相册, 和用户." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "启用探索图库功能, 允许查看所有用户上传的图片(不含私隐),并可以按分类查看." + +msgid "guests" +msgstr "游客" + +msgid "Enables explore for guests." +msgstr "为游客启用探索." + +msgid "Enables to browse images randomly." +msgstr "启用随机浏览图片." + +msgid "Likes" +msgstr "喜欢" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "允许用户使用喜欢LIKE功能, 并显示用户已喜欢列表." + +msgid "Followers allows users to follow each other." +msgstr "关注者允许用户互相关注." + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "网站模式" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "社区" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "个人" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "您可以随时切换网站模式。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "个人模式的目标用户" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "用户ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "您的用户ID是: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "个人模式的数值是目标用户的ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "个人模式链接格式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "定制的链接格式 /username 到 /something. 使用 “/” 映射到主页。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "网站的隐私模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "启用私密模式后仅对注册用户开放使用." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "隐私模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "默认" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "全局隐私(只有用户本人可见)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "全局隐私(所有人通过链接可见)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "全局隐私模式将覆盖用户选择的隐私." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "页面标题" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "页面状态" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "活动页面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "无效页面(%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "只有活动页面可以访问." + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "类型" + +msgid "Terms of service" +msgstr "服务条款" + +msgid "Privacy" +msgstr "隐私" + +msgid "Contact" +msgstr "联系" + +msgid "Extra page" +msgstr "额外页面" + +msgid "Internal page type" +msgstr "内部页面类型" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "您可以有多个额外页面,但只有一个内部页面类型。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "页面可见度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "可见页面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "隐藏页面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "隐藏页将不被显示在系统的菜单, 但任何人都可以通过链接访问它." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "只允许字母数字, 连接符和正斜杠." + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "文件路径" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "%f 文件相对于 %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "Meta元数据关键字" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "Meta元数据描述" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "源代码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "在 %s 路径没有写入权限, 您将需要使用外部编辑器添加文件." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "在 %s 没有写入权限, 您将需要使用外部编辑器添加内容." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "摘自: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "链接网址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "链接目标属性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "选择 %s 在新窗口中打开网页或链接." + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "链接rel属性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "只允许字母数字, 连接符和空格." + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s 的属性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "链接图标" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "检查 <a %s>图标参考</a> 获得支持图标的完整列表." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "排序顺序显示" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "菜单和列表页面排序顺序显示. 使用\"1\"为最优先的." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "您真的要删除的页面ID %s? 这将不能撤消." + +msgid "Enabled image formats" +msgstr "启用的图像格式" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "不允许上传未经检查的图片格式." + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "启用上传" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "启用图片上传(如果您想允许图片上传请启用). 此设置不会影响管理员." + +msgid "Upload user interface" +msgstr "上传用户界面" + +msgid "On-page container" +msgstr "页面容器" + +msgid "route" +msgstr "路由" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "访客(不需注册)上传" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "启用它则允许未注册的用户上传图片" + +msgid "Moderate uploads" +msgstr "上传审核" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "启用后,需要对上传内容进行审核。目标内容被通过审核后才会予以展示。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "启用嵌入代码(上传者)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "如果您想图片上传完成后显示嵌入代码请启用这个功能." + +msgid "Upload threads" +msgstr "上传线程" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "最大同时上传的线程数(并行上传)" + +msgid "Redirect on single upload" +msgstr "单张图片上传跳转" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "启用后上传单张图片后跳转到该图片的图片页面." + +msgid "Enable duplicate uploads" +msgstr "启用重复上传" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "启用它, 则允许24小时内来自同一个IP的重复上传. 这个设置不会影响管理员." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "启用可过期上传" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "如果您想允许上传与自动删除选项启用它." + +msgid "Auto delete guest uploads" +msgstr "自动删除访客图片" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "如果要强制访客上传的图片在某段时间后自动删除,请启用此功能." + +msgid "Maximum image size" +msgstr "最大图片大小" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "大于此尺寸的图片将自动缩小尺寸.默认(0)则不设置限制." + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "图像的Exif数据" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "保留" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "选择默认的图片 <a %s>Exif数据</a> 上传." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "图像的Exif数据(用户设定)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "启用它, 如果您允许每个用户设置是否删除图像的Exif数据." + +msgid "Maximum upload file size" +msgstr "最大上传文件大小(MB)" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "服务器最大允许上传%s.因为参数%u和%p(文件:%f)" + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "跟\"%s\"一样,限制游客上传的最大文件大小." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "图像路径" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "相对于Chevereto的root" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "在哪里存储图像? 相对于Chevereto根目录." + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "存储方式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "日期文件夹" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "默认格式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "日期文件夹创建 %s 结构" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "文件的命名格式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "原始的" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "原始的 + 随机" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"原始的\"会尽量保持图像源名称, 而\"随机\"则生成一个随机名称. \"ID\"则使用生成的图像ID来命名." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "缩略图大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "固定大小的缩略图" + +msgid "Medium image fixed dimension" +msgstr "中等图片尺寸固定" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "中等图像将被固定至此分辨率. 例如, 如果您选择\"宽度\", 这方面将是固定的, 图像的高度将自动计算." + +msgid "Medium image fixed size" +msgstr "中等图片大小固定" + +msgid "Width or height will be automatically calculated." +msgstr "宽度或高度将自动计算." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "启用它, 把您想要一个水印添加到任何上传的图像(仅对启用后的上传有效)." + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "水印用户切换" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "启用访客上传水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "启用用户上传水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "启用管理员上传水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "水印文件切换" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "启用GIF图片上传水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "应用水印需要最小图像尺寸" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "小于这个像素比的图像不会被加上水印. 使用零(0),则不设置最低图像大小限制." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "水印图像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "您想获得最佳的普通的标志与阴影效果. 您可以使用一个大的图像, 如果文件大小并不大(建议最多为16KB). 必须是PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "水印位置" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "左上" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "左中" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "左下" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "中上" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "居中" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "中下" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "右上" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "右中" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "右下" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "水印图像的相对位置. 首先水平对齐, 然后垂直对齐." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "水印占图像比例" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "水印占对象图像的百分比. 值1到100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "水印填充边距" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "水印填充边距大小, 从水印图像边框开始计算." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "水印透明度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "水印的不透明度设置, 值由0到100." + +msgid "Dashboard > Settings > Website" +msgstr "仪表盘 > 设置 > 网站" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "当关闭图库功能时, 图片分类将不能正常工作. 恢复此设置前往 %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "您真的要删除%s类别? 这不能被撤销." + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "注意: 删除分类不会删除属于该类别中的图像." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "编辑类别" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "到期" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "您真的想要删除该已禁止的IP %s ? 这将是无法撤销的." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "被禁止的IP地址将禁止使用整个网站." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "编辑IP屏蔽列表" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "开放注册" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "启用它代表您允许用户自行注册账号." + +msgid "Enable user content delete" +msgstr "用户内容删除" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "如果要允许用户删除自己的内容,请启用此功能。 此设置不会影响管理员。" + +msgid "Minimum age required" +msgstr "最低年龄要求" + +msgid "Empty" +msgstr "空" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "留空则表示不设置最低年龄, 对所有年龄都有效." + +msgid "Notify on user signup" +msgstr "用户注册通知" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "启用之后,如果有人注册就会给您发送邮件通知." + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "用户名链接结构" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "启用它选项, 则使用(%s/用户名)的URL结构, 而不是(%s/user/用户名)的URL结构." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "需要电子邮件确认" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "启用此选项, 用户必须验证注册电子邮件地址." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "需要电子邮件社交注册" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "启用此选项, 使用社交网络注册的用户必须提供一个电子邮件地址." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "最大的用户头像大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "最大允许用户头像的文件大小.(由服务器最大允许 %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "最大的背景图片大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "最大允许背景图片的文件大小.(由服务器最大允许 %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "在访问网站之前显示屏幕的一个同意. 对于成人内容的网站,不应该让未成年人浏览." + +msgid "Enable consent screen" +msgstr "启用网站内容警告" + +msgid "Consent screen cover image" +msgstr "内容警告背景图片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "通过IP封锁图片上传, 如果系统发现根据每个时间段上传数量洪水的行为. 此设置不会影响管理员." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "以电子邮件通知" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "发现洪水攻击后系统自动发送电子邮件." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "每分钟的限额" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "每小时的限额" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "每日的限额" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "每周的限额" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "每月的限额" + +#, php-format +msgid "Lock %s editing" +msgstr "锁定 %s 编辑" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "启用此功能可防止用户更改NSFW标志。启用后,只有管理员和管理有此权限。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "在列表中显示不安全内容(NSFW)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "如果您想在列表中显示不安全的内容(NSFW),请启用此功能。此设置不影响管理员,可由用户自己的设置覆盖。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "在列表中模糊显示NSFW内容" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "如果您想对列表中的NSFW图片应用高斯模糊效果,请启用此功能。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "在不安全的内容中显示横幅广告" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "如果您想在不安全的内容页面中显示横幅广告,请启用此功能。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "在随机模式显示标记为不安全内容" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "每页列表项目" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "每页显示多少项目" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "列表分页模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "瀑布流模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "经典分页模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "应该用什么分页模式." + +msgid "Listing viewer" +msgstr "列表预览" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "启用之后,您在探索页面点击图片之后会有预览界面." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "图片列表样式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "自动" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "固定" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "首页图片列表样式. 这两种方法都使用固定宽度, 但“自动”的方法是使用自动图片的高度." + +msgid "Album listing images requirement" +msgstr "相册被列出所需图片数量" + +msgid "explore" +msgstr "探索" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "设置探索页中可以被展示出的相册所需的最少图像数量." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "页面显示列数" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "在这里您可以设置针对不同的设备显示多少列, 以优化各设备的显示体验." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "手机" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "大屏手机" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "平板电脑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "笔记本电脑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "桌面台式电脑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "把您的主题上传到 %s 文件夹" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "色调" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "白" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "黑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "主要颜色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "十六进制颜色值" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "使用此设置的主要主题颜色. 值必须是 <a href=\"%s\" target=\"_blank\">十六进制</a> 格式." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "顶部菜单栏按钮颜色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "蓝" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "绿" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "橙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "红" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "灰" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "黑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "白" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "顶栏的颜色按钮为\"创建帐户\"按钮." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "启用矢量Logo(SVG)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "在高像素密度的设备启用矢量标志为高品质的标志." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "矢量Logo图像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "SVG格式的矢量版本Logo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "光栅Logo图像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "PNG格式的位图版本Logo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Logo高度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "没有值" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "启用此选项, 以设置标志的高度." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "网站图标" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "网站图标. 所上传图像必须具有相同的宽度和高度." + +msgid "Image load max. filesize" +msgstr "最大文件大小" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "图片大小大于该值时将显示一个按钮以加载原图图." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "启用下载按钮" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "启用此代表在图片页显示原图下载按钮." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "启用右键点击图片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "启用此则允许在图片页使用鼠标右键功能." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "启用显示Exif数据" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "如果您想要显示图像的Exif数据, 启用此项." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "启用社会网站分享" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "启用此选项, 以启用社交网站分享功能." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "启用嵌入代码(内容)" + +msgid "Everybody" +msgstr "任何人" + +msgid "Users only" +msgstr "仅限用户" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "启用此选项, 以内容嵌入代码." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "在上传时显示\"标记不安全内容\"复选框" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "如果您想在上传页面显示一个复选框来标记\"不安全的内容(NSFW)\",请启用此功能。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "自定义CSS代码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "把您的自定义CSS代码在这里. 它会被放在 <style> 标签 </head> 前的位置." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "自定义JS代码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "把您的自定义JS代码在这里. 它会被放在 <script> 标签 </head> 前的位置." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "不要在这里使用 %s 标签。 这适用于纯JS代码,不适用于HTML脚本标签。 如果您在此处使用脚本标签,则会破坏您的网站。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "样式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "仅显示上传按钮" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "上传按钮 + 最新图片" + +#, php-format +msgid "Route %s" +msgstr "路径 %s" + +msgid "upload" +msgstr "上传" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "选择主页风格. 详细定制主页编辑此 app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "封面图片" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "您真的需要删除这张图片? 这将无法恢复." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "删除图片" + +msgid "Add new cover image" +msgstr "添加新的封面图片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "这将被添加在主页 %s 标记. 保持空白以使用默认内容." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "段落" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "“开始上传”按钮的颜色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "请选择“开始上传”按钮的颜色." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "主页“开始上传”按钮的背景透明" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "启用它, 则“开始上传”按钮的背景颜色改为透明样式." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "按钮功能" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "触发上传" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "打开网址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "按钮网址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "输入一个绝对或相对URL网址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "这样一个相对URL网址 %r 将映射到 %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "按钮HTML代码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "这将被添加在按钮 <a> 标记. 保持空白以使用默认内容." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "用户 ID" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "指定的用户ID显示在主页最新图片上, 多个用户用逗号分隔. 留空则显示所有全站最新的图片." + +msgid "Automatic updates check" +msgstr "自动更新检查" + +msgid "When enabled the system will automatically check for new updates." +msgstr "启用时, 系统将自动检查新更新." + +msgid "Display available updates notification" +msgstr "显示可用的更新通知" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "启用此则显示一个通知, 提示您关于新的可用系统更新." + +msgid "Dump update query" +msgstr "转储更新查询" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "启用此选项,可以为每个用户自动检测和设置正确的语言。" + +#, php-format +msgid "SEO %s URLs" +msgstr "%s URL地址SEO优化" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "如果要使用%s地址SEO优化,请启用此选项。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "维护模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "当启用该设置网站将重定向到维修页面. 此设置不影响管理员。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt 特殊码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "此ID为系统的一个特殊码, 相当于V2.x的“__CHV_CRYPT_SALT__”值, 本设置仅在安装或升级时才用到, 一经使用请勿修改." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "PHP错误报告" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "启用PHP <a %s>error_reporting()</a> 函数,以便显示PHP错误报告, 建议在生产环境中禁用。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "调试级别" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "无" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "错误日志" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "没有错误日志列出错误" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "列出错误日志" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "要配置调试级别请查看<a %s>调试文档</a>. 默认级别为\"错误日志\"(1)." + +msgid "Routing allows you to customize default route binds on the fly. Only alphanumeric, hyphen and underscore characters are allowed." +msgstr "路径允许您自定义默认路径。只允许使用字母数字、连字符和下划线字符。" + +msgid "Image routing" +msgstr "图像页面路径" + +#, php-format +msgid "Routing for %s" +msgstr "对于路径 %s" + +msgid "Album routing" +msgstr "相册路径" + +msgid "Hostname" +msgstr "主机名" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "将添加子域通配符的主机名。" + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "此设置可能被%s覆盖。" + +msgid "Language subdomains" +msgstr "语言子域" + +msgid "languages" +msgstr "语言" + +msgid "Enable to use %s for %t." +msgstr "启用 %s 用于 %t。" + +msgid "Username subdomains" +msgstr "用户名子域名" + +msgid "user profiles" +msgstr "用户资料" + +msgid "Custom language strings" +msgstr "自定义语言字符串" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "默认语言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "默认基本语言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "自动选择语言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "启用它, 如果您想自动检测并为每个用户设置正确的语言." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "语言选择器" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "启用这个如果您想允许用户选择语言." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "启用语言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "未选中的语言将不会在自己的网站中使用." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "切换此启用或禁用HTTPS链接" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "切换此启用或禁用此存储" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "配额" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "活动" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "存储方法" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "默认情况下使用本地存储, 或在外部存储没有处于激活状态." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "如果您需要帮助, 请查看<a %s>存储文档</a>." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "编辑存储" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "发送名称" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "接收到邮件显示的发送人名称" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "发件人的电子邮箱地址" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "在收件人处显示的发件人邮箱" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "收信电子邮箱地址" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "联系表单和系统警告的收件人" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "发送邮件的方式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "如何发送邮件? 推荐使用SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP服务器与端口" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP服务器" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP用户名" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP密码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP安全" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "不使用任何安全模式" + +msgid "Decode ID" +msgstr "解码 ID" + +msgid "Encode ID" +msgstr "编码 ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "发送测试邮件" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "使用此来测试您的电子邮件是否已发送. 我们建议您使用 %s." + +msgid "Export a user" +msgstr "导出用户(1个)" + +msgid "Export user" +msgstr "导出" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "这将让用户信息保存到 .Json 格式的文件中并下载" + +msgid "Regenerate external storage stats" +msgstr "重新生成外部存储统计信息" + +msgid "Storage id" +msgstr "存储 id" + +msgid "Regenerate" +msgstr "重建" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "这将重新计算与目标外部存储相关联的所有图像记录的总和。" + +msgid "Migrate image records from one external storage to another" +msgstr "将图像记录从一个外部存储迁移到另一个外部存储" + +msgid "Source storage id" +msgstr "源存储 id" + +msgid "Target storage id" +msgstr "目标存储 id" + +msgid "Migrate" +msgstr "迁移" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "这只会更新数据库。 您必须自己将实际文件传输到目标存储容器。 强烈建议进行URL重写。 使用零(0)进行本地存储。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "完成此您需要一个 <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> " + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app 应用 id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app 应用 secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "完成此您需要一个 <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app </a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API 应用密匙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API 应用 secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter账号" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "完成此您需要一个<a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google 客户端 id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google 客户端 secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "完成此您需要一个 <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK 客户端 id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK 客户端秘钥" + +#, php-format +msgid "%s spam protection" +msgstr "%s 垃圾邮件保护" + +msgid "user generated content" +msgstr "用户生成内容" + +msgid "Enable this to use %l to block spam on %c." +msgstr "启用 %l 来阻止 %c 中的垃圾邮件。" + +#, php-format +msgid "%s API key" +msgstr "%s API 密钥" + +msgid "user signup" +msgstr "用户注册" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "您需要一个 <a href=\"%s\" target=\"_blank\">验证码Key</a> 来完成此项设置." + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "请注意,每个reCAPTCHA版本都有一组对应的密钥。 如果您更改了版本,请不要忘记更新密钥。" + +#, php-format +msgid "%s site key" +msgstr "%s 站点密钥" + +#, php-format +msgid "%s secret key" +msgstr "%s 密钥" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "验证码阈值" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "登陆失败多少次后显示验证码? 键入\"0\"零则始终显示验证码." + +#, php-format +msgid "Force %s on contact page" +msgstr "在联系页面强制开启 %s" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "启用此选项可始终在联系人页面上显示 %s 。" + +msgid "Comments API" +msgstr "评论 API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "Disqus API 适用于 %s." + +msgid "Disqus shortname" +msgstr "Disqus 短名称" + +#, php-format +msgid "%s public key" +msgstr "%s 公共密钥" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "评论社会化代码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "DISQUS, Facebook或其他. 它将在图像视图中使用." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "使用 %s 服务来自动审核上传的图片。" + +msgid "Automatic approve" +msgstr "自动审核" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "启用此功能可自动审核本服务管理的所有内容。" + +msgid "Block content" +msgstr "屏蔽内容" + +msgid "Adult" +msgstr "成人" + +msgid "Teen and adult" +msgstr "儿童和成人" + +msgid "Flag NSFW" +msgstr "标记 NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics(分析)代码" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "谷歌Analytics(分析)或其他. 它将被添加到主题页脚." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 密钥" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "使用<a %s>API V1</a>时使用此值." + +msgid "Plugin route" +msgstr "上传插件" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "启用此功能可在%u页面显示插件说明。这些说明的链接将添加到%s菜单中。此设置不会影响管理员。" + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "使用它来设置%p的自定义URL。请注意,您需要手动复制此URL中的%s。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Cookie的法律法规" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "启用它, 显示一条消息, 符合欧盟的Cookie法律的要求. 注意: 您只需要这个, 如果您的网站托管在欧盟, 如果您添加跟踪Cookie." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "保存修改" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "请检查错误并继续." + +msgid "Play GIF" +msgstr "播放 GIF" + +msgid "Load 360° view" +msgstr "加载 360° 视图" + +msgid "Load full resolution" +msgstr "加载原图" + +#, php-format +msgid "%s image" +msgstr "%s 图片" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "您真的要删除所有选定的内容吗?这是无法撤消的。" + +msgid "This is the album cover" +msgstr "这是相册的封面" + +msgid "Cover" +msgstr "封面" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "加入 %a 和标记上 %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "加入 %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "上传到 %s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "已上传 %s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "关闭详细Exif数据" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "打开详细Exif数据" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "相册ID" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "上传与分享您的照片" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "任意拖放图片到这里, 即开始上传您的图片. 最大 %s 图片大小. 直接的源图片链接, BBCode代码和HTML缩略图显示." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "开始上传" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "注册即可解锁并体验所有的功能" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "管理您的内容, 建立您的个人相册, 自定义您的个人资料, 展示您的个人主页和更多." + +msgid "Sign in with your account" +msgstr "使用您的帐户登录" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "没有账号? <a href='%s'>马上注册</a>." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "注销" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "您已退出 %s , 希望很快再见到您." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "转到主页" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "网站正在维护中" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "我们正在网站上执行定期维护任务。请过几分钟回来。" + +msgid "This content is password protected." +msgstr "此内容已被密码保护." + +msgid "Please enter your password to continue." +msgstr "请输入您的密码以继续浏览." + +msgid "Send" +msgstr "发送" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "通过安装我们的上传插件,将图像上传到您的网站,博客或论坛。 它提供图像上传到任何网站,放置一个按钮,将允许您的用户直接上传图像到我们的服务,它将自动处理插入所需的代码。 所有功能包括拖放,远程上传,图像调整大小等。" + +msgid "Supported software" +msgstr "支持的项目" + +msgid "supported software" +msgstr "支持的项目" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "该插件适用于具有用户可编辑内容的任何网站,对于%sv,它将放置一个与目标编辑器工具栏匹配的上传按钮,因此不需要额外的自定义。" + +msgid "Add it to your website" +msgstr "将其添加到您的网站" + +msgid "options" +msgstr "选项" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "将插件代码复制并粘贴到您的网站HTML代码中(最好在head内)。 这里有更多%o来使其更好的满足您的需求。" + +msgid "Basic options" +msgstr "基本选项" + +msgid "Color palette" +msgstr "调色板" + +msgid "Button color scheme" +msgstr "按钮配色方案" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "嵌入代码将自动插入到编辑框中" + +msgid "Sibling selector" +msgstr "Sibling选择器" + +msgid "Sibling element selector where to place the button next to" +msgstr "Sibling元素选择器的旁边放置按钮" + +msgid "Sibling position" +msgstr "Sibling顺序" + +msgid "After" +msgstr "先" + +msgid "Before" +msgstr "后" + +msgid "Position relative to sibling element" +msgstr "相对于sibling元素的位置" + +msgid "Advanced options" +msgstr "高级选项" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "该插件具有大量附加选项,允许完全自定义。 您可以使用自定义HTML,CSS,自己的调色板,设置监控服务等。 查找%d和插件源以更好地了解这些高级选项。" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "您没有权限访问此网页或链接已过期." + +msgid "Search results" +msgstr "搜索结果" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "您真的要删除这个用户? 这将不能恢复." + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "删除用户" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "注册日期" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "注册IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "有效的" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "禁止" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "等待设置电子邮件" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "等待确认" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i 到 %f 个字符<br>字母, 数字 和 \"_\" 符号" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "自动删除上传内容" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "默认情况下,此设置将应用于您上传的所有图像。您可以在每次上传时覆盖此设置。" + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "在上传时, 保留图像的<a %s>Exif数据</a>" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "新闻稿" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "与 %s 的消息的电子邮件发送给我" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "内容设置" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "在列表中显示不安全内容(来自其他人) " + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "语言" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "时区" + +msgid "This service is provided by %website_name%, we are an independent service provider. Many thanks for your ongoing support." +msgstr "此服务由 %website_name% 提供,我们是独立的服务提供商。非常感谢您一直以来的支持。" + +msgid "At %website_name% we are proudly using and supporting %software%." +msgstr "在 %website_name%,我们自豪地使用和支持 %software%。" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "当前的密码" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "请输入您当前的密码" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "新密码" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "请输入新的密码" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "添加一个密码才能使用您的用户名或电子邮件地址登录." + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "这个用户没有输入密码. 新增一个使用这种形式." + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "请输入您的密码" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "请再次输入新密码确认" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "请再次输入您的密码" + +msgid "Upload avatar" +msgstr "上传头像" + +msgid "Make my profile and identity totally private" +msgstr "让我的个人资料和身份仅自己可见" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "如果您想把自己变成像匿名用户请启用它" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "这是您的个性昵称. 不是您的用户名." + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://YourWebsite.com(您的网站地址)" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "个人介绍" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "告诉我们一点关于您的信息" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "用户没有连接." + +msgid "Link your account to external services to be able to login here." +msgstr "将您的帐户连接到外部服务,以便能够快捷登录和分享内容。" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "您真的想从这个帐户断开 %s 吗?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "此帐户连接到 %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "您真的要断开您的 %s 帐户?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "您将被注销, 而您将无法使用此 %s 的帐户登录到您的帐户." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "您的帐户已连接到 %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "断开" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "绑定 %s 账号" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "随意浏览, 发现我所有的图片和相册共享." + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "按钮" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "查看我的所有图片" + +msgid "Login" +msgstr "登录" + +#, php-format +msgid "Already have an account? %s now." +msgstr "已经有账户了? %s 现在。" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "重新激活帐户" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "如果您已经注册,您可能需要请求 %s 来激活您的帐户。" + +#, php-format +msgid "You can also %s." +msgstr "您也可以 %s." + +#, php-format +msgid "I'm at least %s years old" +msgstr "我已年满 %s 周岁" + +msgid "terms" +msgstr "服务条款" + +msgid "privacy policy" +msgstr "隐私政策" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "我同意 %terms_link 和 %privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "上传背景图片" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "更新背景图片" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "上传新的图片" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "该个人信息的背景图像将被删除. 这将不能恢复. 您确定要删除个人信息的背景图片?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "删除背景图片" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "粉丝" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "关注" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "您已经被禁止使用本网站." + +msgid "Plugin" +msgstr "插件" + +#, php-format +msgid "Page %s" +msgstr "第 %s 页" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "一般问题/意见" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA(数字千年版权)投诉" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "无效的消息" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "无效的主题" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "邮件错误" + +msgid "Message sent" +msgstr "发送消息" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "消息已发送. 我们将很快和您取得了联系." + +msgid "If you want to send a message fill the form below." +msgstr "如果您想发送一个消息, 请填写下面表格." + +msgid "Your name" +msgstr "您的名字" + +msgid "Subject" +msgstr "主题" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "如果您继续您所做的所有更改将丢失." + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "成功保存更改." + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "返回表格" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "继续?" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "保存" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "发送中" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "操作确认" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "信息" + diff --git a/app/languages/zh-TW.po b/app/languages/zh-TW.po new file mode 100644 index 0000000..5a37f21 --- /dev/null +++ b/app/languages/zh-TW.po @@ -0,0 +1,5224 @@ +msgid "" +msgstr "" +"Project-Id-Version: VERSION\n" +"POT-Creation-Date: 2021-06-09 16:33+0000\n" +"PO-Revision-Date: 2021-06-09 16:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../../../app/install/installer.php:1168 +#: ../../../app/install/installer.php:1177 +#: ../../../app/install/installer.php:1180 +#: ../../../app/routes/route.account.php:414 +#: ../../../app/routes/route.json.php:579 +#: ../../../app/routes/route.json.php:1107 +#: ../../../app/routes/route.page.php:80 +#: ../../../app/routes/route.settings.php:185 +#: ../../../app/routes/route.signup.php:97 +#: ../../../content/pages/default/contact.php:28 +msgid "Invalid email" +msgstr "無效的電子信箱" + +#: ../../../app/install/installer.php:1171 +#: ../../../app/routes/route.json.php:574 +#: ../../../app/routes/route.settings.php:181 +#: ../../../app/routes/route.signup.php:100 +msgid "Invalid username" +msgstr "無效的用戶名" + +#: ../../../app/install/installer.php:1174 +#: ../../../app/routes/route.account.php:357 +#: ../../../app/routes/route.json.php:584 +#: ../../../app/routes/route.settings.php:323 +#: ../../../app/routes/route.signup.php:103 +msgid "Invalid password" +msgstr "無效的密碼" + +#: ../../../app/install/update/template/update.js:19 +#, javascript-format +msgid "Installed version is v%s" +msgstr "已安裝的版本為 v%s" + +#: ../../../app/install/update/template/update.js:26 +#: ../../../app/install/update/template/update.js:55 +#: ../../../app/install/update/template/update.js:78 +#, javascript-format +msgid "Can't connect to %s" +msgstr "無法連接到 %s" + +#: ../../../app/install/update/template/update.js:30 +#, javascript-format +msgid "Last available release is v%s" +msgstr "最新的發布版本為 v%s" + +#: ../../../app/install/update/template/update.js:33 +msgid "Update needed, proceeding to download" +msgstr "需要更新, 請繼續下載" + +#: ../../../app/install/update/template/update.js:40 +msgid "No update needed" +msgstr "目前沒有更新" + +#: ../../../app/install/update/template/update.js:41 +msgid "System files already up to date" +msgstr "系統檔案已是最新版本" + +#: ../../../app/install/update/template/update.js:49 +#, javascript-format +msgid "Starting v%s download" +msgstr "開始 v%s 下載" + +#: ../../../app/install/update/template/update.js:60 +#, javascript-format +msgid "Downloaded v%s, proceeding to extraction" +msgstr "下載 v%s 中, 程序正在匯出" + +#: ../../../app/install/update/template/update.js:72 +#, javascript-format +msgid "Attempting to extract v%s" +msgstr "嘗試解壓 v%s" + +#: ../../../app/install/update/template/update.js:82 +msgid "Extraction completed" +msgstr "匯出已完成" + +#: ../../../app/install/update/template/update.js:84 +msgid "Proceding to install the update" +msgstr "正在安裝此更新" + +#: ../../../app/install/update/template/update.js:111 +msgid "Update failed" +msgstr "更新已失敗" + +#: ../../../app/install/update/template/update.php:2 +msgid "Update in progress" +msgstr "正在更新" + +#: ../../../app/install/update/updater.php:72 +#, php-format +msgid "Missing %s file" +msgstr "缺少 %s 文件" + +#: ../../../app/install/update/updater.php:78 +msgid "Invalid license info" +msgstr "無效的許可證信息" + +#: ../../../app/install/update/updater.php:87 +msgid "Can't save file" +msgstr "無法保存文件" + +#: ../../../app/install/update/updater.php:126 +#, php-format +msgid "Can't extract %s" +msgstr "無法解壓%s" + +#, php-format +msgid "Can't create %s directory - %e" +msgstr "無法建立 %s 的資料夾 - %e" + +#, php-format +msgid "Can't update %s file - %e" +msgstr "無法更新 %s 檔案 - %e" + +#: ../../../app/routes/route.account.php:508 +#: ../../../app/routes/route.signup.php:236 +#: ../../../content/pages/default/contact.php:132 +#: ../../../app/lib/chevereto.js:283 ../../../app/lib/chevereto.min.js:16 +#: ../../../lib/Peafowl/peafowl.js:196 ../../../lib/Peafowl/peafowl.min.js:10 +msgid "Check the errors in the form to continue." +msgstr "請檢查表單中的錯誤以繼續" + +msgid "Note: This content is private but anyone with the link will be able to see this." +msgstr "筆記: 此內容是加密的, 但任何人擁有超連結時將能夠看見他." + +msgid "Note: This content is password protected. Remember to pass the content password to share." +msgstr "筆記: 此內容已使用密碼保護, 記得將密碼通過分享來使用." + +#: ../../../app/themes/Peafowl/snippets/modal_share.php:14 +#: ../../../app/themes/Peafowl/views/album.php:74 +#: ../../../app/themes/Peafowl/views/image.php:272 +msgid "Note: This content is private. Change privacy to \"public\" to share." +msgstr "注意:此內容是私密的。更改隱私為“公共”分享。" + +#: ../../../app/lib/chevereto.js:732 ../../../app/lib/chevereto.js:809 +#: ../../../app/lib/chevereto.js:998 ../../../app/lib/chevereto.js:2732 +#: ../../../app/lib/chevereto.js:2785 ../../../app/lib/chevereto.js:2888 +#: ../../../app/lib/chevereto.min.js:39 ../../../app/lib/chevereto.min.js:43 +#: ../../../app/lib/chevereto.min.js:49 ../../../app/lib/chevereto.min.js:147 +#: ../../../app/lib/chevereto.min.js:150 ../../../app/lib/chevereto.min.js:154 +msgid "You must enter the album name." +msgstr "您必須輸入相簿名稱" + +#: ../../../app/lib/chevereto.js:851 ../../../app/lib/chevereto.js:1044 +#: ../../../app/lib/chevereto.js:1140 ../../../app/lib/chevereto.min.js:46 +#: ../../../app/lib/chevereto.min.js:53 ../../../app/lib/chevereto.min.js:55 +#: ../../../lib/Peafowl/peafowl.js:2358 ../../../lib/Peafowl/peafowl.min.js:143 +msgid "Confirm" +msgstr "確認" + +msgid "The content has been approved." +msgstr "該內容已被批准" + +#: ../../../app/lib/chevereto.js:976 ../../../app/lib/chevereto.min.js:48 +msgid "Select existing album" +msgstr "選擇現有的相簿" + +#: ../../../app/install/update/updater.php:62 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22 +#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313 +#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539 +#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668 +#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63 +#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70 +#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77 +#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096 +#: ../../../lib/Peafowl/peafowl.min.js:158 +#: ../../../lib/Peafowl/peafowl.min.js:195 +msgid "An error occurred. Please try again later." +msgstr "發生錯誤. 請稍後再試." + +#: ../../../app/lib/chevereto.js:1259 ../../../app/lib/chevereto.js:1339 +#: ../../../app/lib/chevereto.min.js:60 ../../../app/lib/chevereto.min.js:65 +msgid "Please select a valid image file type." +msgstr "請選擇一個有效的圖片格式" + +#: ../../../app/lib/chevereto.js:1264 ../../../app/lib/chevereto.js:1344 +#: ../../../app/lib/chevereto.min.js:61 ../../../app/lib/chevereto.min.js:66 +#, javascript-format +msgid "Please select a picture of at most %s size." +msgstr "請選擇最大允許 %s 大小的圖像." + +#: ../../../app/lib/chevereto.js:1311 ../../../app/lib/chevereto.min.js:63 +msgid "Profile image updated." +msgstr "個人頭像已更新" + +#: ../../../app/lib/chevereto.js:1381 ../../../app/lib/chevereto.min.js:67 +msgid "Profile background image updated." +msgstr "個人主頁背景已更新" + +#: ../../../app/lib/chevereto.js:1453 ../../../app/lib/chevereto.min.js:68 +msgid "Profile background image deleted." +msgstr "個人主頁背景已刪除" + +#: ../../../app/lib/chevereto.js:1458 ../../../app/lib/chevereto.min.js:68 +msgid "Error deleting profile background image." +msgstr "在刪除個人主頁背景時發生錯誤" + +#: ../../../app/routes/route.account.php:360 +#: ../../../app/routes/route.settings.php:327 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:36 +#: ../../../app/themes/Peafowl/views/settings.php:313 +#: ../../../app/themes/Peafowl/views/settings.php:330 +#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69 +msgid "Passwords don't match" +msgstr "密碼不合" + +#: ../../../app/lib/chevereto.js:1547 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "Update available v%s" +msgstr "更新 v%s 已開放" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#, javascript-format +msgid "There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file." +msgstr "有可用的系統更新. 您可以自動下載並安裝此更新或者前往 %s 繼續下載該更新檔案." + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "The release notes for this update are:" +msgstr "本次發布的主要更新說明:" + +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +msgid "Update now" +msgstr "立刻更新" + +#, javascript-format +msgid "This website is running latest %s version" +msgstr "網站正在使用最新的%s版本" + +#: ../../../app/themes/Peafowl/header.php:381 +#: ../../../app/themes/Peafowl/views/settings.php:348 +#: ../../../lib/Peafowl/peafowl.js:3520 ../../../lib/Peafowl/peafowl.min.js:234 +msgid "loading" +msgstr "載入中" + +msgid "Toggle select" +msgstr "切換選擇" + +#: ../../../app/themes/Peafowl/views/image.php:85 +#: ../../../app/themes/Peafowl/views/image.php:86 +msgid "Like" +msgstr "喜歡" + +msgid "Toggle flag" +msgstr "切換標誌" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13 +msgid "Edit" +msgstr "編輯" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17 +#: ../../../app/themes/Peafowl/views/dashboard.php:28 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "相簿" + +msgid "Approve" +msgstr "批准" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:54 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:12 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:13 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:20 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +msgid "Delete" +msgstr "刪除" + +#: ../../../app/themes/Peafowl/header.php:222 +msgid "Close" +msgstr "關閉" + +msgid "Previous" +msgstr "前一個" + +msgid "Next" +msgstr "下一個" + +#: ../../../app/lib/chevereto.js:2112 ../../../app/lib/chevereto.min.js:101 +msgid "Clipboard image" +msgstr "剪貼板圖像" + +#: ../../../app/lib/chevereto.js:2194 ../../../app/lib/chevereto.min.js:106 +msgid "File too big." +msgstr "文件超出允許上傳的大小" + +msgid "Invalid or unsupported file format." +msgstr "無效或是不支援的檔案格式." + +#: ../../../app/lib/chevereto.js:2212 ../../../app/lib/chevereto.js:2395 +#: ../../../app/lib/chevereto.min.js:109 ../../../app/lib/chevereto.min.js:125 +msgid "Some files couldn't be added" +msgstr "有些文件無法加入" + +#: ../../../app/lib/classes/class.listing.php:296 +#: ../../../app/routes/route.album.php:177 +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25 +#: ../../../app/themes/Peafowl/views/album.php:34 +#: ../../../app/themes/Peafowl/views/user.php:98 +#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126 +msgid "image" +msgid_plural "images" +msgstr[0] "圖片" + +#: ../../../app/routes/route.user.php:89 +#: ../../../app/themes/Peafowl/header.php:56 +#, php-format, javascript-format +msgid "%s's Albums" +msgstr "%s 的相簿" + +#: ../../../app/lib/chevereto.js:2860 ../../../app/lib/chevereto.min.js:154 +msgid "Image edited successfully." +msgstr "圖片編輯成功" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:9 +#: ../../../app/lib/chevereto.js:2923 ../../../app/lib/chevereto.js:3863 +#: ../../../app/lib/chevereto.min.js:155 ../../../app/lib/chevereto.min.js:203 +msgid "private" +msgstr "私密" + +#: ../../../app/lib/chevereto.js:2928 ../../../app/lib/chevereto.min.js:155 +msgid "Album edited successfully." +msgstr "相簿編輯成功." + +#: ../../../app/lib/chevereto.js:2946 ../../../app/lib/chevereto.min.js:156 +msgid "Invalid URL key." +msgstr "無效的URL key" + +#: ../../../app/lib/chevereto.js:2961 ../../../app/lib/chevereto.min.js:158 +msgid "Category URL key already being used." +msgstr "此分類URL已被使用" + +#: ../../../app/lib/chevereto.js:3039 ../../../app/lib/chevereto.min.js:160 +msgid "Category successfully deleted." +msgstr "分類成功刪除" + +#: ../../../app/lib/chevereto.js:3085 ../../../app/lib/chevereto.min.js:162 +#, javascript-format +msgid "Category %s added." +msgstr "分類 %s 已增加." + +#: ../../../app/lib/chevereto.js:3106 ../../../app/lib/chevereto.min.js:163 +msgid "Invalid expiration date." +msgstr "無效的有效期限" + +#: ../../../app/lib/chevereto.js:3121 ../../../app/lib/chevereto.min.js:165 +#, javascript-format +msgid "IP %s already banned." +msgstr "IP %s 已經被禁止訪問" + +#: ../../../app/lib/chevereto.js:3172 ../../../app/lib/chevereto.min.js:169 +#, javascript-format +msgid "IP %s banned." +msgstr "IP %s 禁止訪問" + +#: ../../../app/lib/chevereto.js:3252 ../../../app/lib/chevereto.min.js:170 +msgid "IP ban successfully deleted." +msgstr "IP已從阻擋列表中刪除" + +#: ../../../app/lib/chevereto.js:3289 ../../../app/lib/chevereto.js:3539 +#: ../../../app/lib/chevereto.js:3568 ../../../app/lib/chevereto.min.js:171 +#: ../../../app/lib/chevereto.min.js:186 ../../../app/lib/chevereto.min.js:187 +msgid "Please fill all the required fields." +msgstr "請填寫所有必填字段" + +#: ../../../app/lib/chevereto.js:3300 ../../../app/lib/chevereto.min.js:172 +msgid "Invalid storage capacity value. Make sure to use a valid format." +msgstr "無效的儲存容量值. 請務必使用一個有效的格式" + +#: ../../../app/lib/classes/class.storage.php:450 +#: ../../../app/lib/chevereto.js:3302 ../../../app/lib/chevereto.min.js:172 +#, php-format, javascript-format +msgid "Storage capacity can't be lower than its current usage (%s)." +msgstr "儲存空間不能少於當前的使用情形(%s)." + +#: ../../../app/lib/chevereto.js:3312 ../../../app/lib/chevereto.min.js:174 +msgid "Invalid URL." +msgstr "無效URL" + +#: ../../../app/lib/chevereto.js:3363 ../../../app/lib/chevereto.min.js:177 +msgid "Storage successfully edited." +msgstr "儲存空間編輯成功" + +#: ../../../app/lib/chevereto.js:3587 ../../../app/lib/chevereto.min.js:188 +msgid "User added successfully." +msgstr "成功新增用戶" + +#: ../../../app/themes/Peafowl/views/404.php:22 +#: ../../../app/themes/Peafowl/views/album.php:134 +#: ../../../app/themes/Peafowl/views/user.php:171 +#: ../../../app/lib/chevereto.js:3756 ../../../app/lib/chevereto.min.js:196 +msgid "The content has been deleted." +msgstr "該內容已被刪除" + +#: ../../../app/lib/chevereto.js:3764 ../../../app/lib/chevereto.js:3855 +#: ../../../app/lib/chevereto.js:3938 ../../../app/lib/chevereto.js:3947 +#: ../../../app/lib/chevereto.min.js:197 ../../../app/lib/chevereto.min.js:203 +#: ../../../app/lib/chevereto.min.js:205 +msgid "The content has been moved." +msgstr "該內容已被移動" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:4 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:3 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_public_tools.php:4 +#: ../../../app/lib/chevereto.js:3778 ../../../app/lib/chevereto.min.js:198 +#: ../../../lib/Peafowl/peafowl.js:639 ../../../lib/Peafowl/peafowl.min.js:38 +msgid "Select" +msgstr "選擇" + +#: ../../../app/lib/chevereto.js:3786 ../../../app/lib/chevereto.min.js:198 +msgid "Unselect" +msgstr "未選取" + +#: ../../../app/lib/chevereto.js:3855 ../../../app/lib/chevereto.min.js:203 +msgid "The content has been edited." +msgstr "該內容已被編輯" + +#, javascript-format +msgid "Import ID %s removed" +msgstr "已刪除ID %s 的導入作業" + +msgid "Spam detected" +msgstr "檢測到SPAM" + +#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:26 +#: ../../../app/themes/Peafowl/views/user.php:99 +msgid "album" +msgid_plural "albums" +msgstr[0] "相簿" + +msgid "Flooding detected. You can only upload %limit% %content% per %time%" +msgstr "檢測到短時間內大量圖片上傳。 您只能每%time%上傳%limit%%content%" + +#: ../../../app/lib/classes/class.album.php:100 +msgid "Untitled" +msgstr "未命名標題" + +#: ../../../app/lib/classes/class.album.php:273 +#: ../../../app/lib/classes/class.user.php:114 +#, php-format +msgid "%s's images" +msgstr "%s的圖片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Private" +msgstr "私密" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:20 +#: ../../../app/themes/Peafowl/views/dashboard.php:366 +msgid "Public" +msgstr "公開" + +msgid "Me" +msgstr "我" + +#: ../../../app/lib/classes/class.page.php:137 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:10 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Link" +msgstr "連結" + +#: ../../../app/routes/route.settings.php:64 +#: ../../../app/themes/Peafowl/header.php:292 +#: ../../../app/themes/Peafowl/header.php:340 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:21 +#: ../../../app/themes/Peafowl/views/dashboard.php:104 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/login.php:39 +#: ../../../app/themes/Peafowl/views/settings.php:322 +#: ../../../app/themes/Peafowl/views/signup.php:49 +#: ../../../app/themes/Peafowl/views/signup.php:50 +msgid "Password" +msgstr "密碼" + +#: ../../../app/lib/classes/class.image.php:1230 +msgid "view" +msgid_plural "views" +msgstr[0] "瀏覽次數" + +msgid "After %n %t" +msgstr "經過 %n %t" + +#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "分鐘" + +#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53 +msgid "hour" +msgid_plural "hours" +msgstr[0] "小時" + +#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52 +msgid "day" +msgid_plural "days" +msgstr[0] "天" + +#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51 +msgid "week" +msgid_plural "weeks" +msgstr[0] "週" + +#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50 +msgid "month" +msgid_plural "months" +msgstr[0] "月" + +#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49 +msgid "year" +msgid_plural "years" +msgstr[0] "年" + +#: ../../../app/lib/classes/class.image.php:348 +msgid "Don't autodelete" +msgstr "不要自動刪除" + +#: ../../../app/lib/classes/class.page.php:126 +#, php-format +msgid "Can't open %s for writing" +msgstr "無法打開 %s 寫入" + +#: ../../../app/lib/classes/class.image.php:636 +#: ../../../app/lib/classes/class.image.php:742 +msgid "Duplicated upload" +msgstr "重複的上傳" + +#: ../../../app/lib/classes/class.image.php:955 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Private upload" +msgstr "私人上傳" + +#: ../../../app/lib/classes/class.image.php:1231 +msgid "like" +msgid_plural "likes" +msgstr[0] "喜歡" + +msgid "Recent" +msgstr "最新" + +msgid "Trending" +msgstr "最熱門" + +#: ../../../app/routes/route.dashboard.php:1163 +msgid "Top users" +msgstr "排名高的用戶" + +#: ../../../app/routes/route.album.php:80 +#: ../../../app/routes/route.category.php:48 +#: ../../../app/routes/route.dashboard.php:1105 +#: ../../../app/routes/route.dashboard.php:1142 +#: ../../../app/routes/route.dashboard.php:1171 +#: ../../../app/routes/route.explore.php:34 +#: ../../../app/routes/route.following.php:21 +#: ../../../app/routes/route.user.php:187 +#: ../../../app/routes/route.user.php:232 +#: ../../../app/routes/route.user.php:255 +#: ../../../app/themes/Peafowl/views/index.php:46 +msgid "Most recent" +msgstr "最新的" + +#: ../../../app/routes/route.dashboard.php:1113 +#: ../../../app/routes/route.dashboard.php:1150 +#: ../../../app/routes/route.dashboard.php:1179 +#: ../../../app/routes/route.user.php:238 +#: ../../../app/routes/route.user.php:261 +msgid "Oldest" +msgstr "最舊的" + +#: ../../../app/routes/route.album.php:96 +#: ../../../app/routes/route.category.php:64 +#: ../../../app/routes/route.dashboard.php:1121 +#: ../../../app/routes/route.explore.php:50 +#: ../../../app/routes/route.following.php:29 +#: ../../../app/routes/route.user.php:201 +msgid "Most viewed" +msgstr "最熱門的" + +msgid "Popular" +msgstr "最喜歡" + +#: ../../../app/routes/route.album.php:104 +#: ../../../app/routes/route.category.php:72 +#: ../../../app/routes/route.dashboard.php:1129 +#: ../../../app/routes/route.explore.php:58 +#: ../../../app/routes/route.following.php:37 +#: ../../../app/routes/route.user.php:207 +msgid "Most liked" +msgstr "最喜歡的" + +#: ../../../app/routes/route.explore.php:89 +#: ../../../app/themes/Peafowl/header.php:188 +#: ../../../app/themes/Peafowl/header.php:206 +#: ../../../app/themes/Peafowl/views/dashboard.php:305 +#: ../../../app/themes/Peafowl/views/explore.php:9 +msgid "Explore" +msgstr "探索" + +msgid "Animated" +msgstr "動圖" + +#: ../../../app/routes/route.search.php:130 +#: ../../../app/themes/Peafowl/header.php:215 +#: ../../../app/themes/Peafowl/header.php:220 +#: ../../../app/themes/Peafowl/views/dashboard.php:295 +msgid "Search" +msgstr "搜尋" + +msgid "People" +msgstr "人" + +#: ../../../app/themes/Peafowl/views/dashboard.php:22 +msgid "Image" +msgid_plural "Images" +msgstr[0] "圖片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:34 +#: ../../../app/themes/Peafowl/views/dashboard.php:90 +#: ../../../app/themes/Peafowl/views/settings.php:126 +msgid "User" +msgid_plural "Users" +msgstr[0] "使用者" + +msgid "adult" +msgstr "成人" + +msgid "teen" +msgstr "青年" + +#, php-format +msgid "Content of type %s is forbidden" +msgstr "%s 內容是被禁止的" + +#: ../../../app/lib/classes/class.page.php:108 +#, php-format +msgid "Can't create %s destination dir" +msgstr "無法創建 %s 目標目錄" + +#: ../../../app/lib/classes/class.page.php:136 +#: ../../../app/themes/Peafowl/views/dashboard.php:461 +msgid "Internal" +msgstr "內部" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "Unlimited" +msgstr "無限的" + +#: ../../../app/lib/classes/class.storage.php:720 +msgid "used" +msgstr "已用" + +msgid "Private profile" +msgstr "私人檔案" + +#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55 +msgid "second" +msgid_plural "seconds" +msgstr[0] "秒" + +#: ../../../app/lib/functions.php:67 +#, php-format +msgid "%s ago" +msgstr "%s 以前" + +#: ../../../app/lib/functions.php:67 +msgid "moments ago" +msgstr "剛剛" + +#: ../../../app/routes/route.dashboard.php:1223 +#: ../../../app/themes/Peafowl/header.php:407 +#: ../../../app/themes/Peafowl/views/dashboard.php:9 +msgid "Dashboard" +msgstr "主控台" + +#, php-format +msgid "There is an update available for your system. Go to %s to download and install this update." +msgstr "您的系統有一個可用更新. 前往 %s 下載並安裝此更新." + +#: ../../../app/lib/functions.php:218 +#, php-format +msgid "System database is outdated. You need to run the <a href=\"%s\">update</a> tool." +msgstr "系統資料庫已經過時. 你需要運行 <a href=\"%s\">更新</a> 工具." + +#: ../../../app/lib/functions.php:221 +#, php-format +msgid "Website is in maintenance mode. To revert this setting go to <a href=\"%s\">Dashboard > Settings</a>." +msgstr "網站處於維護模式. 欲恢復設置請前往 <a href=\"%s\">主控台 > 設定</a>." + +#, php-format +msgid "You should disable PHP error reporting for production enviroment. Go to <a href='%s'>System settings</a> to revert this setting." +msgstr "您應該禁用PHP錯誤報告在生產環境. 轉到 <a href='%s'>系統設定</a> 恢復此設置." + +#, php-format +msgid "You haven't changed the default email settings. Go to <a href='%s'>Email settings</a> to fix this." +msgstr "你沒有改變預設的電子郵件設定. 轉到 <a href='%s'>電子郵件設定</a> 以解決此問題." + +msgid "There is an update available for your Chevereto based website." +msgstr "Chevereto 基礎網站有可用的更新" + +msgid "admin dashboard" +msgstr "管理員主控台" + +msgid "You can apply this update directly from your %a or download it from %s and then manually install it." +msgstr "您可以直接從 %a 安裝此更新或從 %s 下載, 然後手動安裝更新." + +#, php-format +msgid "view on %s" +msgstr "%s 已查看" + +msgid "cookie policy" +msgstr "cookie 政策" + +#, php-format +msgid "We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link." +msgstr "我們使用了第三方cookie來改善您的瀏覽體驗和服務。如果您繼續使用我們的網站,則你需要理解並接受這個Cookie政策%cookie_policy_link。" + +msgid "I understand" +msgstr "我明白" + +#: ../../../app/routes/route.account.php:72 +#: ../../../app/themes/Peafowl/header.php:295 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:24 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8 +#: ../../../app/themes/Peafowl/views/login.php:41 +#: ../../../app/themes/Peafowl/views/settings.php:299 +msgid "Forgot password?" +msgstr "忘記密碼?" + +#: ../../../app/routes/route.account.php:73 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:8 +msgid "Reset password" +msgstr "重設密碼" + +#: ../../../app/routes/route.account.php:74 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8 +msgid "Resend account activation" +msgstr "重寄一封帳號確認信" + +#: ../../../app/routes/route.account.php:76 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:8 +msgid "Add your email address" +msgstr "增加您的電子郵件" + +#: ../../../app/routes/route.account.php:77 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:7 +msgid "Email changed" +msgstr "電子郵件已修改" + +#, php-format +msgid "%s says you are a robot" +msgstr "%s 認為你是機器人" + +#: ../../../app/routes/route.account.php:119 +#: ../../../app/routes/route.account.php:164 +#: ../../../app/routes/route.account.php:271 +msgid "Invalid Username/Email" +msgstr "無效的帳號或電子郵件" + +#: ../../../app/routes/route.account.php:129 +msgid "User doesn't have an email." +msgstr "使用者沒有設置電子郵件" + +#: ../../../app/routes/route.account.php:140 +#: ../../../app/routes/route.account.php:299 +#: ../../../app/routes/route.account.php:321 +#: ../../../app/routes/route.account.php:388 +#: ../../../app/routes/route.json.php:24 ../../../app/routes/route.json.php:37 +#: ../../../app/routes/route.json.php:49 ../../../app/routes/route.json.php:561 +#: ../../../app/routes/route.json.php:623 +#: ../../../app/routes/route.json.php:672 +#: ../../../app/routes/route.json.php:719 ../../../app/routes/route.page.php:66 +#: ../../../app/themes/Peafowl/views/request-denied.php:8 +#: ../../../content/pages/default/contact.php:14 +msgid "Request denied" +msgstr "請求被否定" + +#: ../../../app/routes/route.account.php:145 +msgid "Account needs to be activated to use this feature" +msgstr "要使用這項功能,帳號需要被啟用" + +#: ../../../app/routes/route.account.php:151 +msgid "Account already activated" +msgstr "帳號已經被啟用" + +#: ../../../app/routes/route.account.php:192 +msgid "Allow up to 15 minutes for the email. You can try again later." +msgstr "已超過15分鐘內發送電子郵件次數,您可以稍後再試" + +#: ../../../app/routes/route.account.php:231 +#, php-format +msgid "Reset your password at %s" +msgstr "在 %s 後重設您的密碼" + +#: ../../../app/routes/route.account.php:233 +#: ../../../app/routes/route.account.php:454 +#: ../../../app/routes/route.settings.php:283 +#: ../../../app/routes/route.signup.php:193 +#, php-format +msgid "Confirmation required at %s" +msgstr "您在 %s 註冊的帳號已經準備好,啟用後可立即使用." + +#: ../../../app/routes/route.account.php:342 +#: ../../../app/routes/route.signup.php:216 +#, php-format +msgid "Welcome to %s" +msgstr "歡迎到%s" + +#: ../../../app/routes/route.account.php:422 +#: ../../../app/routes/route.json.php:599 +#: ../../../app/routes/route.settings.php:243 +#: ../../../app/routes/route.signup.php:141 +msgid "Email already being used" +msgstr "此電子郵件已被使用" + +msgid "Password required" +msgstr "需要密碼" + +#: ../../../app/routes/route.image.php:127 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99 +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110 +msgid "Embed codes" +msgstr "嵌入代碼" + +#: ../../../app/routes/route.album.php:159 +msgid "%a album hosted in %w" +msgstr "%a 相簿儲存在 %w" + +#: ../../../app/routes/route.dashboard.php:38 +msgid "Stats" +msgstr "統計" + +#: ../../../app/routes/route.dashboard.php:39 +#: ../../../app/routes/route.search.php:85 +#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277 +#: ../../../app/themes/Peafowl/views/settings.php:73 +msgid "Images" +msgstr "圖片" + +#: ../../../app/routes/route.dashboard.php:40 +#: ../../../app/routes/route.search.php:92 +#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283 +#: ../../../app/themes/Peafowl/header.php:403 +#: ../../../app/themes/Peafowl/views/settings.php:77 +msgid "Albums" +msgstr "相簿" + +#: ../../../app/routes/route.dashboard.php:41 +#: ../../../app/routes/route.dashboard.php:233 +#: ../../../app/routes/route.search.php:99 +msgid "Users" +msgstr "使用者" + +#: ../../../app/routes/route.dashboard.php:42 +#: ../../../app/routes/route.settings.php:498 +#: ../../../app/themes/Peafowl/header.php:363 +#: ../../../app/themes/Peafowl/header.php:405 +msgid "Settings" +msgstr "設定" + +msgid "Bulk importer" +msgstr "批量導入工具" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "install update" +msgstr "安裝更新" + +#: ../../../app/routes/route.dashboard.php:162 +msgid "check for updates" +msgstr "檢查更新" + +msgid "Support" +msgstr "支援" + +msgid "Bug tracking" +msgstr "錯誤跟踪" + +msgid "Documentation" +msgstr "文件" + +#: ../../../app/routes/route.dashboard.php:169 +msgid "PHP version" +msgstr "PHP版本" + +#: ../../../app/routes/route.dashboard.php:173 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:114 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Server" +msgstr "伺服器" + +#: ../../../app/routes/route.dashboard.php:177 +msgid "MySQL version" +msgstr "MySQL版本" + +#: ../../../app/routes/route.dashboard.php:181 +msgid "MySQL server info" +msgstr "MySQL伺服器資訊" + +#: ../../../app/routes/route.dashboard.php:189 +msgid "File uploads" +msgstr "檔案上傳" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:678 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Enabled" +msgstr "啟用" + +#: ../../../app/routes/route.dashboard.php:190 +#: ../../../app/themes/Peafowl/views/dashboard.php:298 +#: ../../../app/themes/Peafowl/views/dashboard.php:308 +#: ../../../app/themes/Peafowl/views/dashboard.php:318 +#: ../../../app/themes/Peafowl/views/dashboard.php:633 +#: ../../../app/themes/Peafowl/views/dashboard.php:642 +#: ../../../app/themes/Peafowl/views/dashboard.php:652 +#: ../../../app/themes/Peafowl/views/dashboard.php:679 +#: ../../../app/themes/Peafowl/views/dashboard.php:750 +#: ../../../app/themes/Peafowl/views/dashboard.php:962 +#: ../../../app/themes/Peafowl/views/dashboard.php:975 +#: ../../../app/themes/Peafowl/views/dashboard.php:986 +#: ../../../app/themes/Peafowl/views/dashboard.php:995 +#: ../../../app/themes/Peafowl/views/dashboard.php:1024 +#: ../../../app/themes/Peafowl/views/dashboard.php:1034 +#: ../../../app/themes/Peafowl/views/dashboard.php:1073 +#: ../../../app/themes/Peafowl/views/dashboard.php:1082 +#: ../../../app/themes/Peafowl/views/dashboard.php:1091 +#: ../../../app/themes/Peafowl/views/dashboard.php:1101 +#: ../../../app/themes/Peafowl/views/dashboard.php:1247 +#: ../../../app/themes/Peafowl/views/dashboard.php:1302 +#: ../../../app/themes/Peafowl/views/dashboard.php:1312 +#: ../../../app/themes/Peafowl/views/dashboard.php:1324 +#: ../../../app/themes/Peafowl/views/dashboard.php:1336 +#: ../../../app/themes/Peafowl/views/dashboard.php:1346 +#: ../../../app/themes/Peafowl/views/dashboard.php:1356 +#: ../../../app/themes/Peafowl/views/dashboard.php:1368 +#: ../../../app/themes/Peafowl/views/dashboard.php:1475 +#: ../../../app/themes/Peafowl/views/dashboard.php:1573 +#: ../../../app/themes/Peafowl/views/dashboard.php:1582 +#: ../../../app/themes/Peafowl/views/dashboard.php:1592 +#: ../../../app/themes/Peafowl/views/dashboard.php:1627 +#: ../../../app/themes/Peafowl/views/dashboard.php:1637 +#: ../../../app/themes/Peafowl/views/dashboard.php:1835 +#: ../../../app/themes/Peafowl/views/dashboard.php:1861 +#: ../../../app/themes/Peafowl/views/dashboard.php:1894 +#: ../../../app/themes/Peafowl/views/dashboard.php:1920 +#: ../../../app/themes/Peafowl/views/dashboard.php:1946 +#: ../../../app/themes/Peafowl/views/dashboard.php:1965 +#: ../../../app/themes/Peafowl/views/dashboard.php:2010 +#: ../../../app/themes/Peafowl/views/dashboard.php:2031 +msgid "Disabled" +msgstr "禁用" + +msgid "Max. upload file size" +msgstr "最大上傳檔案大小" + +#: ../../../app/routes/route.dashboard.php:197 +msgid "Max. post size" +msgstr "最大的傳送大小" + +#: ../../../app/routes/route.dashboard.php:201 +msgid "Max. execution time" +msgstr "最大執行時間" + +#: ../../../app/routes/route.dashboard.php:202 +#, php-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d 秒" + +#: ../../../app/routes/route.dashboard.php:205 +msgid "Memory limit" +msgstr "記憶體限制" + +msgid "Rebuild stats" +msgstr "重建統計" + +msgid "Connecting IP" +msgstr "連接中的IP" + +msgid "Not your IP?" +msgstr "不是您的IP ?" + +#: ../../../app/routes/route.dashboard.php:227 +#: ../../../app/themes/Peafowl/views/settings.php:370 +msgid "Website" +msgstr "網站名稱" + +#: ../../../app/routes/route.dashboard.php:228 +msgid "Content" +msgstr "內容" + +#: ../../../app/routes/route.dashboard.php:229 +msgid "Pages" +msgstr "頁面" + +#: ../../../app/routes/route.dashboard.php:230 +#: ../../../app/routes/route.dashboard.php:387 +msgid "Listings" +msgstr "佇列" + +#: ../../../app/routes/route.dashboard.php:231 +msgid "Image upload" +msgstr "圖片上傳" + +#: ../../../app/routes/route.dashboard.php:232 +msgid "Categories" +msgstr "分類" + +msgid "Consent screen" +msgstr "內容警告" + +#: ../../../app/routes/route.dashboard.php:234 +#: ../../../app/themes/Peafowl/views/dashboard.php:1021 +msgid "Flood protection" +msgstr "流量攻擊防護" + +#: ../../../app/routes/route.dashboard.php:235 +#: ../../../app/themes/Peafowl/views/dashboard.php:1169 +msgid "Theme" +msgstr "主題" + +#: ../../../app/routes/route.dashboard.php:236 +#: ../../../app/routes/route.dashboard.php:373 +#: ../../../app/routes/route.settings.php:66 +msgid "Homepage" +msgstr "首頁" + +#: ../../../app/routes/route.dashboard.php:237 +msgid "Banners" +msgstr "廣告" + +#: ../../../app/routes/route.dashboard.php:238 +msgid "System" +msgstr "系統" + +msgid "Routing" +msgstr "路徑" + +#: ../../../app/routes/route.dashboard.php:239 +msgid "Languages" +msgstr "語言" + +#: ../../../app/routes/route.dashboard.php:240 +msgid "External storage" +msgstr "外部儲存空間" + +#: ../../../app/routes/route.dashboard.php:241 +#: ../../../app/themes/Peafowl/views/dashboard.php:99 +msgid "Email" +msgstr "電子郵件" + +#: ../../../app/routes/route.dashboard.php:242 +#: ../../../app/themes/Peafowl/views/album.php:79 +msgid "Social networks" +msgstr "社群網站" + +#: ../../../app/routes/route.dashboard.php:243 +msgid "External services" +msgstr "外部服務" + +#: ../../../app/routes/route.dashboard.php:244 +msgid "IP bans" +msgstr "封鎖IP" + +#: ../../../app/routes/route.dashboard.php:246 +msgid "Additional settings" +msgstr "其他設置" + +#: ../../../app/routes/route.dashboard.php:247 +msgid "Tools" +msgstr "工具" + +msgid "Can't delete all homepage cover images" +msgstr "不能刪除所有的首頁封面圖像" + +msgid "Homepage cover image deleted" +msgstr "首頁封面圖像已刪除" + +#: ../../../app/routes/route.dashboard.php:278 +msgid "Local" +msgstr "本地" + +#: ../../../app/routes/route.dashboard.php:282 +msgid "External" +msgstr "外部" + +#: ../../../app/routes/route.dashboard.php:287 +#: ../../../app/themes/Peafowl/header.php:178 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:37 +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:62 +msgid "All" +msgstr "全部" + +#: ../../../app/routes/route.dashboard.php:292 +#: ../../../app/routes/route.image.php:149 +#: ../../../app/themes/Peafowl/views/dashboard.php:1710 +msgid "search content" +msgstr "內容搜尋" + +#: ../../../app/routes/route.dashboard.php:306 +#: ../../../app/themes/Peafowl/views/dashboard.php:201 +msgid "Add page" +msgstr "添加頁面" + +#: ../../../app/routes/route.dashboard.php:325 +#, php-format +msgid "Edit page ID %s" +msgstr "編輯頁面ID %s" + +#: ../../../app/routes/route.dashboard.php:330 +msgid "The page has been added successfully." +msgstr "該頁面已成功添加." + +#: ../../../app/routes/route.dashboard.php:360 +msgid "The page has been deleted." +msgstr "該頁面已被刪除." + +msgid "homepage" +msgstr "首頁" + +#, php-format +msgid "Before main title (%s)" +msgstr "在主標題前 %s" + +#, php-format +msgid "After call to action (%s)" +msgstr "在按鈕後 %s" + +#, php-format +msgid "After cover (%s)" +msgstr "在封面後 %s" + +#, php-format +msgid "After listing (%s)" +msgstr "在列表後 %s" + +#: ../../../app/routes/route.dashboard.php:390 +msgid "Before pagination" +msgstr "分頁前" + +#: ../../../app/routes/route.dashboard.php:393 +msgid "After pagination" +msgstr "分頁後" + +#: ../../../app/routes/route.dashboard.php:398 +msgid "Content (image and album)" +msgstr "內容(圖片和相簿)" + +#: ../../../app/routes/route.dashboard.php:401 +msgid "Tab about column" +msgstr "相關標籤" + +#: ../../../app/routes/route.dashboard.php:404 +msgid "Before comments" +msgstr "留言前" + +#: ../../../app/routes/route.dashboard.php:409 +msgid "Image page" +msgstr "圖片頁面" + +#: ../../../app/routes/route.dashboard.php:412 +msgid "Inside viewer top (image page)" +msgstr "內部圖像瀏覽器頂部(圖像頁)" + +#: ../../../app/routes/route.dashboard.php:416 +msgid "Inside viewer foot (image page)" +msgstr "內部圖像瀏覽器底部(圖像頁)" + +#: ../../../app/routes/route.dashboard.php:420 +msgid "After image viewer (image page)" +msgstr "圖像瀏覽器後(圖像頁)" + +#: ../../../app/routes/route.dashboard.php:423 +msgid "Before header (image page)" +msgstr "頭前(圖像頁)" + +#: ../../../app/routes/route.dashboard.php:426 +msgid "After header (image page)" +msgstr "頭後(圖像頁)" + +#: ../../../app/routes/route.dashboard.php:429 +msgid "Footer (image page)" +msgstr "頁尾(圖像頁)" + +#: ../../../app/routes/route.dashboard.php:434 +msgid "Album page" +msgstr "相簿頁面" + +#: ../../../app/routes/route.dashboard.php:437 +msgid "Before header (album page)" +msgstr "頭前(相簿頁)" + +#: ../../../app/routes/route.dashboard.php:440 +msgid "After header (album page)" +msgstr "頭後(相簿頁)" + +#: ../../../app/routes/route.dashboard.php:445 +msgid "User profile page" +msgstr "個人主頁" + +#: ../../../app/routes/route.dashboard.php:448 +msgid "After top (user profile)" +msgstr "頭後(個人主頁)" + +#: ../../../app/routes/route.dashboard.php:451 +msgid "Before listing (user profile)" +msgstr "列表前(個人主頁)" + +#: ../../../app/routes/route.dashboard.php:456 +msgid "Explore page" +msgstr "探索頁面" + +#: ../../../app/routes/route.dashboard.php:459 +msgid "After top (explore page)" +msgstr "頭後(探索頁面)" + +#: ../../../app/routes/route.dashboard.php:468 +msgid "NSFW" +msgstr "非闔家皆宜" + +#: ../../../app/routes/route.dashboard.php:557 +msgid "Invalid website name" +msgstr "無效的網站名稱" + +#: ../../../app/routes/route.dashboard.php:562 +msgid "Invalid language" +msgstr "無效的語言" + +#: ../../../app/routes/route.dashboard.php:567 +msgid "Invalid timezone" +msgstr "無效的時區" + +#, php-format +msgid "Invalid value: %s" +msgstr "無效的值: %s" + +#: ../../../app/routes/route.dashboard.php:577 +msgid "Invalid upload storage mode" +msgstr "無效的上傳儲存空間模式" + +#: ../../../app/routes/route.dashboard.php:582 +msgid "Invalid upload filenaming" +msgstr "無效的上傳檔名" + +#: ../../../app/routes/route.dashboard.php:587 +msgid "Invalid thumb width" +msgstr "無效的縮圖寬度" + +#: ../../../app/routes/route.dashboard.php:592 +msgid "Invalid thumb height" +msgstr "無效的縮圖高度" + +msgid "Invalid medium size" +msgstr "無效的中等圖像大小" + +#: ../../../app/routes/route.dashboard.php:602 +msgid "Invalid watermark percentage" +msgstr "無效的水印百分比" + +#: ../../../app/routes/route.dashboard.php:607 +msgid "Invalid watermark opacity" +msgstr "無效的水印不透明度" + +#: ../../../app/routes/route.dashboard.php:612 +msgid "Invalid theme" +msgstr "無效的主題" + +#: ../../../app/routes/route.dashboard.php:572 +#: ../../../app/routes/route.dashboard.php:617 +#: ../../../app/routes/route.dashboard.php:794 +#: ../../../app/routes/route.dashboard.php:940 +msgid "Invalid value" +msgstr "無效的值" + +#: ../../../app/routes/route.dashboard.php:622 +msgid "Invalid theme tone" +msgstr "無效的主題色調" + +#: ../../../app/routes/route.dashboard.php:627 +msgid "Invalid theme main color" +msgstr "無效的主題主要顏色" + +#: ../../../app/routes/route.dashboard.php:637 +msgid "Invalid theme top bar button color" +msgstr "無效的主題頂部欄按鈕顏色" + +#: ../../../app/routes/route.dashboard.php:642 +msgid "Invalid theme image listing size" +msgstr "無效的主題圖片佇列大小" + +#: ../../../app/routes/route.dashboard.php:647 +msgid "Invalid user id" +msgstr "無效的使用者編號" + +#: ../../../app/routes/route.dashboard.php:652 +msgid "Invalid email mode" +msgstr "無效的電子郵件方式" + +#: ../../../app/routes/route.dashboard.php:657 +msgid "Invalid SMTP port" +msgstr "無效的SMTP端口" + +#: ../../../app/routes/route.dashboard.php:662 +msgid "Invalid SMTP security" +msgstr "無效的SMTP安全" + +#: ../../../app/install/installer.php:1183 +#: ../../../app/routes/route.dashboard.php:667 +msgid "Invalid website mode" +msgstr "無效的網站模式" + +#: ../../../app/routes/route.dashboard.php:672 +#: ../../../app/routes/route.dashboard.php:838 +msgid "Invalid personal mode user ID" +msgstr "無效的個人模式使用者ID" + +#: ../../../app/routes/route.dashboard.php:677 +msgid "Invalid or reserved route" +msgstr "無效的路徑" + +#: ../../../app/routes/route.dashboard.php:682 +msgid "Invalid website privacy mode" +msgstr "無效的網站隱私模式" + +#: ../../../app/routes/route.dashboard.php:687 +msgid "Invalid website content privacy mode" +msgstr "無效的網站內容隱私權設定" + +#: ../../../app/routes/route.dashboard.php:692 +msgid "Invalid homepage style" +msgstr "無效的主頁風格" + +#: ../../../app/routes/route.dashboard.php:697 +msgid "Invalid homepage call to action button color" +msgstr "無效的按鈕顏色" + +#: ../../../app/routes/route.dashboard.php:702 +msgid "Invalid homepage call to action functionality" +msgstr "無效的主頁「開始上傳」按鈕功能" + +#: ../../../app/routes/route.dashboard.php:708 +msgid "Invalid title" +msgstr "無效標題" + +#: ../../../app/routes/route.dashboard.php:713 +msgid "Invalid status" +msgstr "無效狀態" + +#: ../../../app/routes/route.dashboard.php:718 +msgid "Invalid type" +msgstr "無效的類型" + +#: ../../../app/routes/route.dashboard.php:723 +msgid "Invalid visibility" +msgstr "无效的可见度" + +msgid "Invalid internal type" +msgstr "內部類型無效" + +#: ../../../app/routes/route.dashboard.php:728 +msgid "Invalid target attribute" +msgstr "無效的目標屬性" + +#: ../../../app/routes/route.dashboard.php:733 +msgid "Invalid rel attribute" +msgstr "無效的rel屬性" + +#: ../../../app/routes/route.dashboard.php:738 +msgid "Invalid icon" +msgstr "無效的圖標" + +#: ../../../app/routes/route.dashboard.php:743 +msgid "Invalid URL key" +msgstr "無效的鏈接值" + +#: ../../../app/routes/route.dashboard.php:748 +msgid "Invalid file path" +msgstr "無效的文件路徑" + +#: ../../../app/routes/route.dashboard.php:753 +msgid "Invalid link URL" +msgstr "無效的鏈接網址" + +msgid "Invalid user minimum age" +msgstr "無效的使用者最低年齡" + +msgid "Only alphanumeric, hyphen and underscore characters are allowed" +msgstr "僅允許字母, 連字符號和下劃線符號是允許的" + +#: ../../../app/routes/route.dashboard.php:922 +msgid "Invalid URL" +msgstr "無效URL" + +msgid "Routes can't be the same" +msgstr "路徑是不能相同的" + +#: ../../../app/routes/route.dashboard.php:769 +msgid "Invalid upload image path" +msgstr "無效的圖像上傳路徑" + +#: ../../../app/routes/route.dashboard.php:783 +msgid "Invalid call to action URL" +msgstr "無效的主頁「開始上傳」按鈕網址" + +#: ../../../app/routes/route.dashboard.php:797 +#, php-format +msgid "Max. allowed %s" +msgstr "超過最大允許的 %s" + +msgid "Can't map %m to an existing folder (%f)" +msgstr "無法映射 %m 到現有的檔案夾 (%f)" + +msgid "Can't map %m to an existing route (%r)" +msgstr "無法映射 %m 到現有的路徑 (%f)" + +msgid "Can't map %m to %r (username collision)" +msgstr "無法映射 %m 至 %r (使用者名稱衝突)" + +#: ../../../app/routes/route.dashboard.php:860 +msgid "Invalid SMTP server" +msgstr "無效的SMTP服務器" + +#: ../../../app/routes/route.dashboard.php:861 +msgid "Invalid SMTP username" +msgstr "無效的SMTP用戶名" + +msgid "Invalid key" +msgstr "無效的密鑰" + +#: ../../../app/routes/route.dashboard.php:960 +#, php-format +msgid "This URL key is already being used by another page (ID %s)" +msgstr "此鏈接值已被另壹個頁面使用 (ID %s)" + +#: ../../../app/routes/route.dashboard.php:961 +#, php-format +msgid "This file path is already being used by another page (ID %s)" +msgstr "此文件路徑已被另壹個頁面使用 (ID %s)" + +#: ../../../app/routes/route.dashboard.php:992 +#, php-format +msgid "Can't save page contents: %s." +msgstr "无法保存页面内容: %s" + +#: ../../../app/routes/route.following.php:73 +#: ../../../app/routes/route.user.php:104 +#: ../../../app/themes/Peafowl/views/following.php:7 +#: ../../../app/themes/Peafowl/views/user.php:74 +#: ../../../app/themes/Peafowl/views/user.php:80 +msgid "Following" +msgstr "關註" + +#: ../../../app/routes/route.image.php:120 +#: ../../../app/themes/Peafowl/header.php:424 +msgid "About" +msgstr "關於" + +#: ../../../app/routes/route.image.php:144 +msgid "Image ID" +msgstr "圖片ID" + +#: ../../../app/routes/route.image.php:148 +msgid "Uploader IP" +msgstr "上傳者IP" + +#: ../../../app/routes/route.image.php:149 +msgid "Ban IP" +msgstr "阻擋IP" + +#: ../../../app/routes/route.image.php:149 +msgid "IP already banned" +msgstr "IP已被阻擋" + +#: ../../../app/routes/route.image.php:152 +msgid "Upload date" +msgstr "上傳時間" + +#: ../../../app/routes/route.image.php:185 +msgid "Image %i in %a album" +msgstr "圖片 %i 在 %a 相簿" + +#: ../../../app/routes/route.image.php:187 +msgid "Image %i in %c category" +msgstr "圖片 %i 在 %c 分類" + +#: ../../../app/routes/route.image.php:189 +msgid "Image %i hosted in %w" +msgstr "圖片 %i 儲存在 %w" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:14 +msgid "Direct links" +msgstr "直連URL" + +#: ../../../app/themes/Peafowl/views/image.php:285 +msgid "Image link" +msgstr "圖片連結" + +#: ../../../app/themes/Peafowl/views/image.php:279 +msgid "Image URL" +msgstr "圖片URL" + +#: ../../../app/themes/Peafowl/views/image.php:291 +msgid "Thumbnail URL" +msgstr "縮圖URL" + +#: ../../../app/themes/Peafowl/views/image.php:300 +msgid "Medium URL" +msgstr "中型圖片URL" + +msgid "Full image" +msgstr "全等圖像" + +msgid "Full image (linked)" +msgstr "全等圖像 (關聯)" + +msgid "Medium image (linked)" +msgstr "中等圖像 (關聯)" + +msgid "Thumbnail image (linked)" +msgstr "縮圖圖像 (關聯)" + +#: ../../../app/routes/route.json.php:44 ../../../app/routes/route.json.php:59 +#: ../../../app/routes/route.json.php:260 +#: ../../../app/routes/route.json.php:746 +#: ../../../app/routes/route.json.php:810 +#: ../../../app/routes/route.json.php:911 +#: ../../../app/routes/route.json.php:1055 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:4 +msgid "Login needed" +msgstr "需要登入" + +#: ../../../app/routes/route.json.php:499 +#: ../../../app/routes/route.json.php:690 +msgid "IP address already banned" +msgstr "IP位置已經被禁止訪問" + +#: ../../../app/routes/route.json.php:568 +#: ../../../app/routes/route.json.php:630 +msgid "Missing values" +msgstr "遺失的值" + +#: ../../../app/routes/route.json.php:589 +msgid "Invalid role" +msgstr "無效的角色" + +#: ../../../app/routes/route.json.php:594 +msgid "Username already being used" +msgstr "該使用者名稱已經被使用" + +#, php-format +msgid "Add a password or another social connection before deleting %s" +msgstr "增加一個密碼或者是在以往社群連接時刪除 %s" + +#, php-format +msgid "Add an email or another social connection before deleting %s" +msgstr "增加一個電子郵件或者是在以往社群連接時刪除 %s" + +#: ../../../app/routes/route.json.php:1092 +#, php-format +msgid "%s has been disconnected." +msgstr "%s 已經離線" + +#: ../../../app/routes/route.json.php:1109 +msgid "Test email from %s @ %t" +msgstr "測試郵件來自 %s @ %t" + +#: ../../../app/routes/route.json.php:1109 +msgid "This is just a test" +msgstr "這只是壹個測試" + +#: ../../../app/routes/route.json.php:1110 +#, php-format +msgid "Test email sent to %s." +msgstr "測試電子郵件發送到 %s." + +#, php-format +msgid "Downloading %s data" +msgstr "正在下載 %s 數據" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s followed" +msgstr "使用者 %s 已跟隨" + +#: ../../../app/routes/route.json.php:1128 +#, php-format +msgid "User %s unfollowed" +msgstr "使用者 %s 取消跟隨" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content liked" +msgstr "喜歡的內容" + +#: ../../../app/routes/route.json.php:1150 +msgid "Content disliked" +msgstr "不喜歡的內容" + +#: ../../../app/lib/classes/class.notification.php:75 +msgid "%u liked your %t %c" +msgstr "%u 喜歡你的 %t %c" + +#: ../../../app/lib/classes/class.notification.php:81 +#, php-format +msgid "%u is now following you" +msgstr "%u 關註了你" + +msgid "A private user" +msgstr "私人用戶" + +#: ../../../app/routes/route.login.php:133 +msgid "Wrong Username/Email password combination" +msgstr "錯誤的用戶名或密碼" + +#: ../../../app/routes/route.login.php:148 +#: ../../../app/themes/Peafowl/header.php:269 +#: ../../../app/themes/Peafowl/header.php:275 +#: ../../../app/themes/Peafowl/views/login.php:8 +#: ../../../app/themes/Peafowl/views/login.php:52 +msgid "Sign in" +msgstr "登入" + +msgid "Moderate" +msgstr "審核" + +msgid "Upload images" +msgstr "上傳圖片" + +msgid "Upload plugin" +msgstr "上載插件" + +#: ../../../app/routes/route.search.php:120 +#, php-format +msgid "Image search results for %s" +msgstr "圖片搜尋結果: %s" + +#: ../../../app/routes/route.search.php:123 +#, php-format +msgid "Album search results for %s" +msgstr "相簿搜尋結果: %s" + +#: ../../../app/routes/route.search.php:126 +#, php-format +msgid "User search results for %s" +msgstr "使用者搜尋結果: %s" + +#: ../../../app/routes/route.settings.php:62 +msgid "Account" +msgstr "帳戶" + +#: ../../../app/routes/route.settings.php:63 +msgid "Profile" +msgstr "個人資料" + +#: ../../../app/routes/route.settings.php:65 +msgid "Linked accounts" +msgstr "連結的帳號" + +msgid "Powered by" +msgstr "加持自" + +#, php-format +msgid "Invalid image expiration: %s" +msgstr "無效的有效期限: %s" + +#: ../../../app/routes/route.settings.php:269 +#, php-format +msgid "An email has been sent to %s with instructions to activate this email" +msgstr "這封郵件已發送至 %s 請登入信箱並啟用" + +#: ../../../app/routes/route.page.php:71 +#: ../../../app/routes/route.settings.php:302 +#: ../../../content/pages/default/contact.php:19 +msgid "Invalid name" +msgstr "無效的名稱" + +#: ../../../app/routes/route.settings.php:305 +msgid "Invalid website" +msgstr "無效的網站" + +#: ../../../app/routes/route.settings.php:313 +msgid "Wrong password" +msgstr "密碼錯誤" + +#: ../../../app/routes/route.settings.php:316 +msgid "Use a new password" +msgstr "使用新的密碼" + +#: ../../../app/routes/route.settings.php:416 +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Changes have been saved." +msgstr "已儲存改變" + +#: ../../../app/routes/route.settings.php:435 +msgid "Password has been changed" +msgstr "密碼已更改" + +#: ../../../app/routes/route.settings.php:440 +msgid "Password has been created." +msgstr "密碼已經建立" + +#: ../../../app/routes/route.settings.php:455 +msgid "Wrong Username/Email values" +msgstr "錯誤的用戶名或電子郵件" + +#: ../../../app/routes/route.settings.php:498 +#, php-format +msgid "Settings for %s" +msgstr "%s 的設定" + +msgid "You must agree to the terms and privacy policy" +msgstr "您必須同意條款和隱私政策" + +#, php-format +msgid "You must be at least %s years old to use this website." +msgstr "您必須年滿 %s 歲才能繼續使用網站." + +#: ../../../app/routes/route.signup.php:251 +#: ../../../app/themes/Peafowl/header.php:316 +#: ../../../app/themes/Peafowl/header.php:322 +#: ../../../app/themes/Peafowl/views/index.php:81 +#: ../../../app/themes/Peafowl/views/signup.php:8 +#: ../../../app/themes/Peafowl/views/signup.php:63 +msgid "Create account" +msgstr "註冊帳戶" + +#: ../../../app/themes/Peafowl/header.php:258 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +msgid "Upload" +msgstr "上傳" + +#: ../../../app/routes/route.user.php:84 +#: ../../../app/themes/Peafowl/header.php:56 +#: ../../../app/themes/Peafowl/views/index.php:46 +#, php-format +msgid "%s's Images" +msgstr "%s 的圖片" + +#: ../../../app/routes/route.user.php:99 +#: ../../../app/themes/Peafowl/views/search.php:8 +msgid "Results for" +msgstr "結果" + +#: ../../../app/routes/route.user.php:94 +#, php-format +msgid "Liked by %s" +msgstr "來自 %s 的喜歡" + +#: ../../../app/routes/route.user.php:95 +#: ../../../app/themes/Peafowl/header.php:404 +msgid "Liked" +msgstr "已喜歡" + +#: ../../../app/routes/route.user.php:109 +msgid "Followers" +msgstr "粉絲" + +#: ../../../app/routes/route.user.php:379 +msgid "%n (%u) albums on %w" +msgstr "%n (%u) 相簿在 %w" + +#: ../../../app/routes/route.user.php:384 +msgid "%n (%u) on %w" +msgstr "%n (%u) 在 %w" + +msgid "Discovery" +msgstr "探索" + +#: ../../../app/themes/Peafowl/header.php:233 +#: ../../../app/themes/Peafowl/views/dashboard.php:315 +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Random" +msgstr "隨機" + +#: ../../../app/themes/Peafowl/header.php:222 +#: ../../../app/themes/Peafowl/header.php:226 +msgid "Advanced search" +msgstr "進階搜尋" + +#: ../../../app/themes/Peafowl/header.php:243 +#, php-format +msgid "Notices (%s)" +msgstr "通知 (%s)" + +#: ../../../app/themes/Peafowl/header.php:362 +msgid "Notifications" +msgstr "通知" + +#: ../../../app/themes/Peafowl/header.php:384 +msgid "You don't have notifications" +msgstr "您沒有任何通知" + +#: ../../../app/themes/Peafowl/header.php:402 +msgid "My Profile" +msgstr "我的頁面" + +msgid "Lights" +msgstr "燈光" + +#: ../../../app/themes/Peafowl/header.php:409 +msgid "Sign out" +msgstr "登出" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:4 +msgid "We received a request to change the email of your <a href=\"%u\">%n</a> account at %w." +msgstr "我們收到了在 %w 更改 <a href=\"%u\">%n</a> 帳戶電子郵件的要求" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your email</a>." +msgstr "要完成此過程, 您必須 <a href=\"%s\">啟用您的電子郵件</a> ." + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:8 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:8 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:8 +#, php-format +msgid "Alternatively you can copy and paste the URL into your browser: <a href=\"%s\">%s</a>" +msgstr "另外, 您可以複製並貼上網址到瀏覽器:<a href=\"%s\">%s</a>" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:10 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:10 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:10 +msgid "If you didn't intend this just ignore this message." +msgstr "如果您不打算註冊或不是您註冊的, 請忽略此訊息" + +#: ../../../app/themes/Peafowl/mails/account-change-email.php:12 +#: ../../../app/themes/Peafowl/mails/account-confirm.php:12 +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:12 +#, php-format +msgid "This request was made from IP: %s" +msgstr "請求來自IP:%s" + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:4 +msgid "We received a request to register the %n account at %w." +msgstr "您好, 我們收到了您在 %w 註冊 %n 帳戶的要求." + +#: ../../../app/themes/Peafowl/mails/account-confirm.php:6 +#, php-format +msgid "To complete the process you must <a href=\"%s\">activate your account</a>." +msgstr "要完成此過程, 您必須<a href=\"%s\">啟用您的帳戶</a>." + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:4 +msgid "We received a request to reset the password for your <a href=\"%u\">%n</a> account." +msgstr "我們收到為您重置密碼 <a href=\"%u\">%n</a> 帳戶的請求" + +#: ../../../app/themes/Peafowl/mails/account-password-reset.php:6 +#, php-format +msgid "To reset your password <a href=\"%s\">follow this link</a>." +msgstr "要重設您的密碼 <a href=\"%s\">請點擊此連結</a> ." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:4 +msgid "Hi %n, welcome to %w" +msgstr "您好 %n, 歡迎來到 %w ." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:6 +msgid "Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover." +msgstr "現在, 您的帳戶已準備就緒, 您可以上傳你的圖片, 建立相簿並設訂您的內容的隱私, 以及許多很酷的事情, 你會探索和盡情享受." + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:8 +msgid "By the way, here is you very own awesome profile page: <a href=\"%u\">%n</a>. Go ahead and customize it, its yours!." +msgstr "此外, 這裡是你自己的個人資料頁: <a href=\"%u\">%n</a>. 來定製你的個人主頁吧,!" + +#: ../../../app/themes/Peafowl/mails/account-welcome.php:10 +msgid "Thank you for joining" +msgstr "感謝您的加入" + +#: ../../../app/themes/Peafowl/mails/footer.php:3 +msgid "This email was sent from %w %u" +msgstr "這封電子郵件是由 %w %u 發送" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13 +msgid "Drag and drop or paste images here to upload" +msgstr "拖拉或是直接貼上圖像在此進行上傳" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:14 +msgid "Select the images to upload" +msgstr "選擇需要上傳的圖片" + +msgid "browse from your computer" +msgstr "從電腦內選擇" + +msgid "add image URLs" +msgstr "加入圖片連結" + +msgid "You can also %i or %u." +msgstr "你可以從%i或%u" + +msgid "browse from your device" +msgstr "從您的設備瀏覽" + +msgid "take a picture" +msgstr "截圖" + +msgid "You can also %i, %c or %u." +msgstr "你也可以 %i, %c 或者 %u." + +msgid "Edit or resize any image by clicking the image preview" +msgstr "編輯或通過點擊圖像預覽調整圖像大小" + +msgid "Edit any image by touching the image preview" +msgstr "通過點擊圖像預覽來調整任意圖像" + +msgid "your computer" +msgstr "你的電腦" + +msgid "You can add more images from %i or %u." +msgstr "您可以從 %i 或 %u 添加更多圖像." + +msgid "your device" +msgstr "你的裝置" + +msgid "You can add more images from %i, %c or %u." +msgstr "您可以從 %i, %c 或%u添加更多圖像." + +msgid "Uploading %q %o" +msgstr "上傳中 %q %o" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:27 +msgid "complete" +msgstr "完成" + +msgid "The queue is being uploaded, it should take just a few seconds to complete." +msgstr "佇列上傳中. 需要一點時間來完成" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:32 +msgid "Upload complete" +msgstr "上傳完成" + +#, php-format +msgid "Uploaded content added to %s." +msgstr "上傳的內容已經添加到%s" + +msgid "You can %c with the content just uploaded or %m." +msgstr "您已經可以使用剛剛上傳的%c或是%m" + +#, php-format +msgid "You can %c with the content just uploaded." +msgstr "您已經可以使用剛剛上傳的%c" + +msgid "create a new album" +msgstr "建立新相簿" + +msgid "move it to an existing album" +msgstr "移動到現有的相簿" + +msgid "You must %s or %l to save this content into your account." +msgstr "您必須 %s 或 %l 才能將此內容保存到您的帳戶中。" + +msgid "create an account" +msgstr "建立新帳號" + +msgid "sign in" +msgstr "登入" + +#, php-format +msgid "No %s have been uploaded" +msgstr "沒有%s已經上傳" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:41 +msgid "Some errors have occured and the system couldn't process your request." +msgstr "發生錯誤, 系統無法處理您的請求." + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:41 +#: ../../../app/themes/Peafowl/snippets/form_category.php:3 +msgid "Category" +msgstr "分類" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:61 +msgid "Select category" +msgstr "選擇類別" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Mark this if the upload is not family safe" +msgstr "標記這個上傳內容為非闔家皆宜" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:77 +msgid "Not family safe upload" +msgstr "非闔家皆宜的上傳" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +msgid "Uploading" +msgstr "上傳中" + +#: ../../../app/themes/Peafowl/header.php:285 +#: ../../../app/themes/Peafowl/header.php:332 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:13 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:38 +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/login.php:22 +#: ../../../app/themes/Peafowl/views/login.php:62 +#: ../../../app/themes/Peafowl/views/settings.php:354 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../app/themes/Peafowl/views/signup.php:22 +#: ../../../app/themes/Peafowl/views/signup.php:73 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.js:2325 +#: ../../../lib/Peafowl/peafowl.min.js:31 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "or" +msgstr "或" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92 +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../content/pages/default/contact.php:123 +#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71 +#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140 +msgid "cancel" +msgstr "取消" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:93 +msgid "cancel remaining" +msgstr "取消剩下的" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "Note: Some images couldn't be uploaded." +msgstr "注意: 部分圖片無法上傳." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:85 +msgid "learn more" +msgstr "了解更多" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:86 +msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." +msgstr "檢查 <a data-modal=\"simple\" data-target=\"failed-upload-result\">錯誤報告</a> 來了解更多訊息." + +#, php-format +msgid "Register to get %s" +msgstr "註冊之後可上傳大小:%s" + +msgid "reset" +msgstr "重置" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91 +msgid "close" +msgstr "關閉" + +msgid "Note" +msgstr "注意" + +msgid "We must approve the uploaded content before being able to share." +msgstr "我們必須先批准上傳的內容,然後才能共享。" + +msgid "copy" +msgstr "複製" + +msgid "insert" +msgstr "插入" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148 +#: ../../../app/themes/Peafowl/views/dashboard.php:666 +msgid "Remove" +msgstr "移除" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/views/dashboard.php:441 +#: ../../../app/themes/Peafowl/views/dashboard.php:597 +#: ../../../app/themes/Peafowl/views/dashboard.php:1440 +#: ../../../app/themes/Peafowl/views/settings.php:434 +msgid "Title" +msgstr "標題" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158 +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:4 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "optional" +msgstr "選擇性的" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167 +msgid "Resize image" +msgstr "變更圖片大小" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:170 +#: ../../../app/themes/Peafowl/views/dashboard.php:725 +#: ../../../app/themes/Peafowl/views/dashboard.php:738 +#: ../../../app/themes/Peafowl/views/dashboard.php:798 +msgid "Width" +msgstr "寬度" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:173 +#: ../../../app/themes/Peafowl/views/dashboard.php:728 +#: ../../../app/themes/Peafowl/views/dashboard.php:801 +msgid "Height" +msgstr "高度" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176 +msgid "Note: Animated GIF images won't be resized." +msgstr "筆記: 動畫 GIF 圖像不會被調整大小." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180 +msgid "Auto delete image" +msgstr "自動刪除圖像" + +msgid "Sign up" +msgstr "註冊" + +#, php-format +msgid "%s to be able to customize or disable image auto delete." +msgstr "%s能夠自訂是否使用自動刪除圖片" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:192 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +msgid "Mark this if the image is not family safe" +msgstr "標記這個圖片為非闔家皆宜內容" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:194 +#: ../../../app/themes/Peafowl/snippets/form_image.php:25 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:46 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:8 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:8 +msgid "Flag as unsafe" +msgstr "標記為不安全" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200 +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12 +#: ../../../app/themes/Peafowl/snippets/form_image.php:28 +#: ../../../app/themes/Peafowl/views/dashboard.php:877 +msgid "Description" +msgstr "描述" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201 +#: ../../../app/themes/Peafowl/snippets/form_image.php:29 +msgid "Brief description of this image" +msgstr "簡短的圖片敘述" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:206 +msgid "Add image URLs" +msgstr "加入圖片URL" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:208 +msgid "Add the image URLs here" +msgstr "在此加入圖片URL" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:223 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:27 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:31 +msgid "Create album" +msgstr "建立相簿" + +msgid "The uploaded content will be moved to this newly created album." +msgstr "上傳的內容將被移動到此新創建的相冊。" + +msgid "existing album" +msgstr "現有相冊" + +msgid "You can also move the content to an %a." +msgstr "您還可以將內容移動到%a" + +msgid "You must %s or %l if you want to edit this album later on." +msgstr "如果你想稍後編輯此相冊,則必須為 %s 或 %l。" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:235 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:28 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:46 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:70 +msgid "Move to album" +msgstr "移動到相簿" + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:236 +msgid "Select an existing album to move the uploaded content. You can also <a class=\"modal-switch\" data-switch=\"move-new-album\">create a new album</a> and move the content there." +msgstr "選擇一個現有的相簿儲存將要上傳的圖片. 你也可以<a class=\"modal-switch\" data-switch=\"move-new-album\">建立一個新的相簿</a> 和移動圖片." + +#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:252 +msgid "Error report" +msgstr "錯誤報告" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:6 +msgid "Links" +msgstr "連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:9 +msgid "Viewer links" +msgstr "觀看者連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:21 +msgid "HTML Codes" +msgstr "HTML代碼" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:24 +msgid "HTML image" +msgstr "HTML圖片" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:29 +msgid "HTML full linked" +msgstr "HTML完整大小連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:34 +msgid "HTML medium linked" +msgstr "HTML中等圖片連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:39 +msgid "HTML thumbnail linked" +msgstr "HTML縮圖連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:46 +msgid "BBCodes" +msgstr "BBCode代碼" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:49 +msgid "BBCode full" +msgstr "BBCode完整大小" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:54 +msgid "BBCode full linked" +msgstr "BBCode完整大小連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:59 +msgid "BBCode medium linked" +msgstr "BBCode中等圖片連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:64 +msgid "BBCode thumbnail linked" +msgstr "BBCode縮圖連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:74 +msgid "Markdown full" +msgstr "Markdown 詳細訊息" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:79 +msgid "Markdown full linked" +msgstr "Markdown 詳細連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:84 +msgid "Markdown medium linked" +msgstr "Markdown 中等大小圖像連結" + +#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:89 +msgid "Markdown thumbnail linked" +msgstr "Markdown 縮圖連結" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:6 +msgid "All these words" +msgstr "全部關鍵字" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:7 +msgid "Type the important words: tri-colour rat terrier" +msgstr "輸入關鍵字: 風景 人物 攝影" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:10 +msgid "This exact word or phrase" +msgstr "精確搜索關鍵字(若關鍵字帶空格請加雙引號)" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:11 +msgid "Put exact words in quotes: \"rat terrier\"" +msgstr "按此格式輸入關鍵字: \"風景 人物\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:20 +msgid "None of these words" +msgstr "排除的關鍵字(若關鍵字帶空格請加雙引號)" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:21 +msgid "Put a minus sign just before words you don't want: -rodent -\"Jack Russell\"" +msgstr "在不需要的關鍵字前加減號: -鄧麗欣 -\"王 祖男\"" + +#: ../../../app/themes/Peafowl/snippets/form_advanced_search.php:66 +msgid "Storage" +msgstr "儲存空間" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:4 +msgid "IP address" +msgstr "IP位置" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:7 +#: ../../../app/themes/Peafowl/snippets/form_album.php:8 +msgid "Album name" +msgstr "相簿名稱" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:9 +msgid "move to existing album" +msgstr "移動到現有的相簿" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:12 +msgid "Album description" +msgstr "相簿描述" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:13 +msgid "Brief description of this album" +msgstr "簡短的相簿敘述" + +msgid "Album privacy" +msgstr "相簿隱私" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:19 +msgid "Who can view this content" +msgstr "誰可以看到" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:21 +msgid "Private (just me)" +msgstr "私密(只有我)" + +#: ../../../app/themes/Peafowl/snippets/form_album.php:22 +msgid "Private (anyone with the link)" +msgstr "私密(任何知道連結的人)" + +msgid "Private (password protected)" +msgstr "私人 (密碼保護)" + +msgid "Album password" +msgstr "相簿密碼" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3 +#: ../../../app/themes/Peafowl/views/dashboard.php:875 +#: ../../../app/themes/Peafowl/views/dashboard.php:1693 +#: ../../../app/themes/Peafowl/views/settings.php:364 +#: ../../../content/pages/default/contact.php:87 +msgid "Name" +msgstr "名字" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:5 +msgid "Category name" +msgstr "分類名稱" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:8 +#: ../../../app/themes/Peafowl/views/dashboard.php:486 +#: ../../../app/themes/Peafowl/views/dashboard.php:596 +#: ../../../app/themes/Peafowl/views/dashboard.php:876 +msgid "URL key" +msgstr "連結key" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Category URL key" +msgstr "分類連結key" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:9 +msgid "Only letters, numbers, and hyphens" +msgstr "只有字母, 數字和片語" + +#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:13 +msgid "Brief description of this category" +msgstr "簡短的類別敘述" + +#: ../../../app/themes/Peafowl/snippets/form_image.php:5 +msgid "Untitled image" +msgstr "未命名圖片" + +msgid "Mark this if the image is not safe for work" +msgstr "如果圖像不安全,請標記此標記" + +msgid "Flag not safe" +msgstr "標記為不安全" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:118 +msgid "Path" +msgstr "路徑" + +msgid "Local path (absolute)" +msgstr "絕對路徑" + +msgid "Directory structure" +msgstr "目錄結構" + +msgid "Parse top level folders as users (username)" +msgstr "將頂級文件夾解析為用戶(用戶名)" + +msgid "Parse top level folders as albums" +msgstr "將頂級文件夾解析為相冊" + +msgid "Don't parse folders" +msgstr "不解析文件夾" + +msgid "When parsing top level folders as users, second level folders will be parsed as user albums. Parsing top level folders as albums adds these as guest albums." +msgstr "當將頂級文件夾解析為用戶時,第二級文件夾將被解析為用戶相冊。 將頂級文件夾解析為相冊會將其添加為來賓相冊。" + +msgid "Threads" +msgstr "主題" + +msgid "Select number of threads" +msgstr "選擇線程數" + +#, php-format +msgid "This determines how intensive and fast will be the import process. Don't use more than %s threads on a shared server." +msgstr "這決定了導入過程的強度和速度。 在共享服務器上使用的線程不要超過 %s 個。" + +msgid "You can use wildcard * characters." +msgstr "您可以使用通配符*字符." + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9 +msgid "Expiration date" +msgstr "到期日" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "YYYY-MM-DD HH:MM:SS" +msgstr "YYYY-MM-DD HH:MM:SS (例如: 2015-02-09 18:00:00)" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:10 +msgid "Example" +msgstr "範例" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:12 +msgid "Until which date this IP address will be banned? Leave it empty for no expiration." +msgstr "阻擋此IP到多久? 留空則永久禁止" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:926 +#: ../../../content/pages/default/contact.php:111 +msgid "Message" +msgstr "訊息" + +#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:16 +msgid "Text message, HTML or a redirect URL" +msgstr "文字訊息, HTML或重導向至URL" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3 +msgid "Existing album" +msgstr "現有的相簿" + +#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:15 +msgid "create new album" +msgstr "建立新的相簿" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:4 +msgid "Storage name" +msgstr "儲存空間名稱" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:7 +msgid "API" +msgstr "API" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:48 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:96 +msgid "Region" +msgstr "地區" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:97 +msgid "Storage region" +msgstr "儲存空間區域" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:58 +msgid "Storage bucket" +msgstr "儲存bucket" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:63 +msgid "Key" +msgstr "金鑰" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:64 +msgid "Storage key" +msgstr "儲存金鑰" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:67 +msgid "Secret" +msgstr "Secret" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:68 +msgid "Storage secret" +msgstr "儲存空間秘密" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:78 +msgid "Private key" +msgstr "私密金鑰" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:79 +msgid "Google Cloud JSON key" +msgstr "Google Cloud JSON key" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:75 +#, php-format +msgid "You will need a <a %s>service account</a> for this." +msgstr "您需要一個 <a %s>服務帳戶</a> " + +msgid "Service name" +msgstr "服務名稱" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:84 +msgid "Identity URL" +msgstr "Identity URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "Identity API endpoint" +msgstr "Identity API endpoint" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:85 +msgid "API endpoint for OpenStack identity" +msgstr "OpenStack identity 的 API endpoint " + +#: ../../../app/themes/Peafowl/header.php:339 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:88 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:89 +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:122 +#: ../../../app/themes/Peafowl/views/dashboard.php:94 +#: ../../../app/themes/Peafowl/views/dashboard.php:95 +#: ../../../app/themes/Peafowl/views/settings.php:143 +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:39 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "Username" +msgstr "使用者名稱" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:100 +msgid "Container" +msgstr "儲存器" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:101 +msgid "Storage container" +msgstr "儲存器" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104 +msgid "Tenant id" +msgstr "Tenant id" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:105 +msgid "Tenant id (account id)" +msgstr "Tenant id (account id)" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108 +msgid "Tenant name" +msgstr "Tenant name" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:109 +msgid "Tenant name (account name)" +msgstr "Tenant name (account name)" + +msgid "Storage endpoint" +msgstr "存儲端點" + +msgid "Server address" +msgstr "服務器地址" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:115 +msgid "Hostname or IP of the storage server" +msgstr "儲存服務器主機名或IP" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:119 +msgid "Server path" +msgstr "伺服器路徑" + +msgid "Absolute path where the files will be stored in the context of the %p login. Use %s for root path." +msgstr "絕對路徑存儲在 %p 登錄中,使用 %s 將其設置為根路徑。" + +msgid "Server login" +msgstr "伺服器登錄" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:127 +msgid "Server password" +msgstr "伺服器密碼" + +msgid "Local path" +msgstr "本地路徑" + +msgid "Local path where the files will be stored" +msgstr "文件存儲的本地路徑" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:132 +msgid "Storage capacity" +msgstr "儲存容量" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:133 +msgid "Example: 20 GB, 1 TB, etc." +msgstr "例如: 20 GB, 1 TB ...等等" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:135 +msgid "This storage will be disabled when it reach this capacity. Leave it blank or zero for no limit." +msgstr "儲存達到該容量時將被禁用. 留空則不限制." + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:139 +msgid "Storage URL" +msgstr "儲存空間URL" + +#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:140 +msgid "The system will map the images of this storage to this URL." +msgstr "該系統將儲存空間的圖片映射到該URL." + +#: ../../../app/themes/Peafowl/snippets/image_album_slice.php:14 +msgid "view more" +msgstr "查看更多" + +#: ../../../app/themes/Peafowl/snippets/listing.php:22 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:6 +#: ../../../app/themes/Peafowl/snippets/templates_content_listing.php:9 +msgid "Load more" +msgstr "載入更多" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +msgid "Select all" +msgstr "選擇全部" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:20 +msgid "Get embed codes" +msgstr "獲取嵌入代碼" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:38 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:85 +msgid "Assign category" +msgstr "指派分類" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:45 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:9 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:9 +msgid "Flag as safe" +msgstr "標記為安全" + +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10 +#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56 +msgid "Clear selection" +msgstr "清除選擇" + +msgid "Create new album" +msgstr "建立新的相簿" + +#: ../../../app/routes/route.album.php:115 +#: ../../../app/themes/Peafowl/snippets/modal_share.php:4 +#: ../../../app/themes/Peafowl/views/album.php:36 +#: ../../../app/themes/Peafowl/views/image.php:89 +msgid "Share" +msgstr "分享" + +#: ../../../app/themes/Peafowl/header.php:281 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:11 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:40 +#: ../../../app/themes/Peafowl/views/login.php:18 +#: ../../../app/themes/Peafowl/views/login.php:65 +#: ../../../app/themes/Peafowl/views/signup.php:18 +#: ../../../app/themes/Peafowl/views/signup.php:76 +msgid "Sign in with another account" +msgstr "登入其他帳號" + +msgid "Continue with %label%" +msgstr "用 %label% 賬號登錄" + +msgid "Home" +msgstr "主頁" + +#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5 +#: ../../../app/themes/Peafowl/views/dashboard.php:618 +#: ../../../app/themes/Peafowl/views/index.php:63 +msgid "There's nothing to show here." +msgstr "沒有顯示的內容" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:87 +msgid "All the selected images will be assigned to this category." +msgstr "所有選擇的圖片將會分配給此分類." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:92 +msgid "There is no categories." +msgstr "沒有分類." + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:97 +msgid "Confirm flag content as safe" +msgstr "確認標記為安全內容" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:98 +msgid "Do you really want to flag this content as safe?" +msgstr "你真的要標記這個內容為安全的?" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:101 +msgid "Confirm flag content as unsafe" +msgstr "確定標記為不安全的內容" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:102 +msgid "Do you really want to flag this content as unsafe?" +msgstr "你真的要標記這個內容為不安全?" + +msgid "Confirm approval" +msgstr "確認批准" + +msgid "Do you really want to approve this content? This can't be undone." +msgstr "您真的要刪除所有選定的內容嗎? 這是無法撤消的。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:106 +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:110 +msgid "Confirm deletion" +msgstr "確認刪除" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:107 +msgid "Do you really want to remove this content? This can't be undone." +msgstr "你真的想刪除此內容? 一旦刪除將無法恢復." + +msgid "Do you really want to approve all the selected content? This can't be undone." +msgstr "您真的要刪除所有選定的內容嗎? 這是無法撤消的。" + +#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:111 +msgid "Do you really want to remove all the selected content? This can't be undone." +msgstr "你真的想刪除所選內容? 一旦刪除將無法恢復." + +#: ../../../app/themes/Peafowl/views/image.php:57 +msgid "Guest" +msgstr "訪客" + +msgid "Keyboard shortcuts" +msgstr "鍵盤快捷鍵" + +msgid "Private album" +msgstr "私人相簿" + +msgid "Password protected" +msgstr "密碼保護" + +msgid "Uploaded by guest" +msgstr "由訪客上傳" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_owner.php:2 +#, php-format +msgid "From %s" +msgstr "來自 %s" + +msgid "Uploaded by private" +msgstr "由私人上傳" + +#: ../../../app/themes/Peafowl/tpl_list_item/image_description_user.php:2 +#, php-format +msgid "by %u" +msgstr "by %u" + +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_admin_tools.php:7 +#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:7 +msgid "Toggle unsafe flag" +msgstr "切換不安全標記" + +#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6 +msgid "That page doesn't exist" +msgstr "該網頁不存在" + +#: ../../../app/themes/Peafowl/views/404.php:7 +msgid "The requested page was not found." +msgstr "所請求的頁面不存在" + +#: ../../../app/themes/Peafowl/views/404.php:22 +msgid "The user has been deleted" +msgstr "該使用者已被刪除" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:7 +msgid "Your account is almost ready" +msgstr "您的帳戶已經準備好" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:9 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters." +msgstr "啟用的電子郵件已發送到您的帳戶 %s. 啟用連結只適用於48小時以內. 如果您沒有收到請檢查您的垃圾郵件或垃圾郵件過濾器." + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +msgid "Resend activation" +msgstr "重新啟用" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:10 +#, php-format +msgid "You have successfully changed your account email to %s" +msgstr "您已成功改變了您的帳戶的電子郵件 %s" + +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +msgid "Go to my profile" +msgstr "前往我的頁面" + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:12 +msgid "A confirmation link will be sent to this email with details to activate your account." +msgstr "確認連結將被發送到這個郵箱, 詳情請登入信箱並啟用您的帳戶." + +#: ../../../app/themes/Peafowl/views/account/email-needed.php:16 +#: ../../../app/themes/Peafowl/views/settings.php:156 +#: ../../../content/pages/default/contact.php:93 +msgid "Your email address" +msgstr "您的電子郵件" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:47 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324 +#: ../../../lib/Peafowl/peafowl.min.js:25 +#: ../../../lib/Peafowl/peafowl.min.js:140 +msgid "Submit" +msgstr "送出" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:15 +msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." +msgstr "一封關於重新設定密碼的郵件已發送到您的郵箱. 如果你收不到請檢查你的垃圾郵件." + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:24 +msgid "A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters." +msgstr "剛才的電子郵件已發送和說明重置您的密碼. 如果您沒有收到郵件, 請嘗試檢查您的垃圾郵件或垃圾郵件過濾器" + +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +msgid "Resend instructions" +msgstr "重新發送" + +#, php-format +msgid "Enter your username or email address to continue. You may need to check your spam folder or whitelist %s" +msgstr "輸入您的用戶名或電子郵件地址以繼續。 您可能需要檢查垃圾郵件文件夾或將 %s 列入白名單" + +#: ../../../app/themes/Peafowl/header.php:291 +#: ../../../app/themes/Peafowl/snippets/modal_login.php:20 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23 +#: ../../../app/themes/Peafowl/views/login.php:34 +#: ../../../app/themes/Peafowl/views/login.php:35 +msgid "Username or Email address" +msgstr "使用者名稱或電子郵件地址" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:15 +msgid "Your password has been changed. You can now try logging in using your new password." +msgstr "您的密碼已被更改. 現在, 您可以嘗試使用您的新密碼登入." + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +msgid "Login now" +msgstr "現在登入" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/settings.php:306 +msgid "Enter your new password" +msgstr "輸入新密碼" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:29 +#: ../../../app/themes/Peafowl/views/dashboard.php:105 +#: ../../../app/themes/Peafowl/views/settings.php:306 +#: ../../../app/themes/Peafowl/views/settings.php:323 +#: ../../../app/themes/Peafowl/views/signup.php:50 +#, php-format +msgid "%d characters min" +msgstr "最少 %d 個字元" + +msgid "Password strength" +msgstr "密碼強度" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:35 +#: ../../../app/themes/Peafowl/views/settings.php:312 +msgid "Re-enter your new password" +msgstr "重新輸入新密碼" + +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:12 +#, php-format +msgid "An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters." +msgstr "一封啟用郵件已經發送至您的郵箱 %s . n\\ 如果你收不到請檢查你的垃圾郵件." + +#: ../../../app/themes/Peafowl/views/album.php:16 +#: ../../../app/themes/Peafowl/views/image.php:63 +msgid "This content is private" +msgstr "此內容是私人的" + +#: ../../../app/themes/Peafowl/views/album.php:25 +msgid "Do you really want to delete this album and all of its images? This can't be undone." +msgstr "你真的想刪除所選相簿和所有內容? 一旦刪除將無法恢復." + +msgid "Upload to album" +msgstr "上傳至相簿" + +#: ../../../app/themes/Peafowl/views/image.php:85 +msgid "You like this" +msgstr "您喜歡這個" + +msgid "Please read and comply with the following conditions before you continue:" +msgstr "請閱讀並遵守以下條款, 然後再繼續:" + +#, php-format +msgid "This website contains information, links and images of sexually explicit material. If you are under the age of %s, if such material offends you or if it's illegal to view such material in your community please do not continue.\n\nI am at least %s years of age and I believe that as an adult it is my inalienable right to receive/view sexually explicit material. I desire to receive/view sexually explicit material. \n\nI believe that sexual acts between consenting adults are neither offensive nor obscene. The viewing, reading and downloading of sexually explicit materials does not violate the standards of my community, town, city, state or country.\n\nThe sexually explicit material I am viewing is for my own personal use and I will not expose minors to the material.\n\nI am solely responsible for any false disclosures or legal ramifications of viewing, reading or downloading any material in this site. Furthermore this website nor its affiliates will be held responsible for any legal ramifications arising from fraudulent entry into or use of this website.\n\nThis consent screen constitutes a legal agreement between this website and you and/or any business in which you have any legal or equitable interest. If any portion of this agreement is deemed unenforceable by a court of competent jurisdiction it shall not affect the enforceability of the other portions of the agreement." +msgstr "本網站所包含的訊息, 超連結和色情內容的圖像. 如果您是 %s 歲以下, 如果這種素材冒犯您, 或者如果在你的地區查看這些素材是違法的, 請不要繼續瀏覽.\n\n我已年滿 %s 歲, 我相信, 作為一個成年人, 這是我收到/瀏覽色情素材不可剝奪的權利. 我希望接收/觀看色情素材.\n\n我相信, 同意成年人之間的性行為既不進攻也不色情. 露骨色情內容的瀏覽, 閱讀和下載不違反我的地區, 鎮, 市, 州或國家標準.\n\n我已觀看的色情素材僅是我個人的使用, 我不會傳播未成年人的素材.\n\n我為任何虛假訊息或瀏覽, 閱讀或在本網站下載任何素材的法律後果承擔全部責任. 此外, 該網站及其分支機構將負責從欺詐性進入或使用本網站所產生的任何法律後果.\n\n此同意畫面構成了這個網站, 你和/或您有任何法律或衡平法權益的任何商業之間的法律協議. 如果本協議的任何部分被視為無效由有管轄權的法院不得影響該協議的其他部分的可執行性." + +msgid "By clicking in \"I Agree\" you declare that you have read and understood all the conditions mentioned above." +msgstr "點擊 \"我同意\" 後您可申明自己已閱讀並理解上述的所有條件." + +msgid "I Agree" +msgstr "我同意" + +msgid "documentation" +msgstr "文件" + +msgid "The connecting IP is determined using the server variable %var%. If the detected IP doesn't match yours, it means that your web server is under a proxy and you need to tweak your server to set the real connecting IP." +msgstr "使用服務器變量 %var% 獲取真實IP。如果檢測到的IP與您的不匹配,這意味著您的Web服務器在代理下,您需要調整您的服務器設置,以便獲取真實IP。使用服務器變量 %var% 獲取真實IP。如果檢測到的IP與您的不匹配,這意味著您的Web服務器在代理下,您需要調整您的服務器設置,以便獲取真實IP。" + +msgid "For Nginx, you must use %nginx%. For Apache, %apache%." +msgstr "對於nginx,您必須使用 %nginx% ;對於Apache,%apache% 。" + +msgid "Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks." +msgstr "由於系統依賴準確的IP檢測來提供基本功能並防止SPAM、泛濫式圖片上傳及暴力破解,因此請確保您已解決此問題。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:40 +#: ../../../app/themes/Peafowl/views/dashboard.php:1732 +msgid "Disk used" +msgstr "已用大小" + +msgid "Queued" +msgstr "已排定" + +msgid "Working" +msgstr "工作中" + +msgid "Paused" +msgstr "已暫停" + +msgid "Canceled" +msgstr "取消" + +msgid "Completed" +msgstr "已完成" + +#, php-format +msgid "Top level folders as %s" +msgstr "頂級文件夾為 %s" + +msgid "Actions" +msgstr "動作" + +msgid "Process" +msgstr "處理" + +msgid "Pause" +msgstr "暫停" + +msgid "Cancel" +msgstr "取消" + +msgid "Process log" +msgstr "流程日誌" + +msgid "Errors" +msgstr "錯誤" + +#, php-format +msgid "Do you really want to remove the import ID %s?" +msgstr "您是否真的要刪除導入ID %s ?" + +msgid "Reset" +msgstr "重置" + +msgid "Resume" +msgstr "恢復" + +#: ../../../app/themes/Peafowl/views/settings.php:105 +msgid "Status" +msgstr "狀態" + +#: ../../../app/themes/Peafowl/views/dashboard.php:80 +#: ../../../app/themes/Peafowl/views/dashboard.php:84 +msgid "Add user" +msgstr "新增使用者" + +#: ../../../app/themes/Peafowl/views/dashboard.php:87 +#: ../../../app/themes/Peafowl/views/settings.php:121 +msgid "Role" +msgstr "規則" + +msgid "Manager" +msgstr "管理程式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:89 +#: ../../../app/themes/Peafowl/views/settings.php:125 +msgid "Administrator" +msgstr "管理員" + +#: ../../../app/themes/Peafowl/header.php:338 +#: ../../../app/themes/Peafowl/views/account/email-needed.php:15 +#: ../../../app/themes/Peafowl/views/dashboard.php:100 +#: ../../../app/themes/Peafowl/views/settings.php:155 +#: ../../../app/themes/Peafowl/views/signup.php:34 +#: ../../../app/themes/Peafowl/views/signup.php:35 +#: ../../../content/pages/default/contact.php:92 +msgid "Email address" +msgstr "電子郵件地址" + +msgid "This setting is always diabled when using personal website mode." +msgstr "個人網站模式被開啟時, 該設置始終禁用." + +#: ../../../app/themes/Peafowl/views/dashboard.php:152 +#: ../../../app/themes/Peafowl/views/dashboard.php:156 +msgid "Add category" +msgstr "新增分類" + +#: ../../../app/themes/Peafowl/views/dashboard.php:165 +#: ../../../app/themes/Peafowl/views/dashboard.php:169 +#: ../../../app/themes/Peafowl/views/image.php:219 +msgid "Add IP ban" +msgstr "新增阻擋IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:178 +#: ../../../app/themes/Peafowl/views/dashboard.php:182 +msgid "Add storage" +msgstr "增加儲存空間" + +#: ../../../app/themes/Peafowl/views/dashboard.php:195 +msgid "Return to pages" +msgstr "返回頁面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:222 +msgid "Website name" +msgstr "網站名稱" + +#: ../../../app/themes/Peafowl/views/dashboard.php:227 +msgid "Website doctitle" +msgstr "網站標題" + +#: ../../../app/themes/Peafowl/views/dashboard.php:231 +msgid "Website description" +msgstr "網站描述" + +msgid "Automatic" +msgstr "自動" + +msgid "Forced" +msgstr "強制" + +msgid "%a will use HTTPS detection on the server side (recommended). %f will use HTTPS regardless of your server setup. %d to don't use HTTPS at all." +msgstr "%a 將在服務器端檢測並自動使用HTTPS(推薦), %f 無論您的服務器如何設置,都將使用HTTPS, %d 禁用且完全不使用HTTPS。" + +msgid "This only controls the protocol used in the URLs, it won't turn your website into a valid HTTPS website unless your server is configured to support and use HTTPS." +msgstr "這僅控制URL中使用的協議,除非將服務器配置為支持和使用HTTPS,否則它不會將您的網站變成有效的HTTPS網站。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:257 +msgid "Default time zone" +msgstr "預設時區" + +#: ../../../app/themes/Peafowl/views/dashboard.php:261 +#: ../../../app/themes/Peafowl/views/settings.php:250 +msgid "Select region" +msgstr "選擇地區" + +msgid "Allows to search images, albums and users based on a given search query." +msgstr "可以按特定的內容查詢圖像, 相簿, 和用戶." + +msgid "Enables to browse public uploaded images. It also enables categories." +msgstr "啟用探索圖庫功能, 允許查看所有用戶上傳的圖像(不含隱私), 並可以按分類查看." + +msgid "guests" +msgstr "訪客" + +msgid "Enables explore for guests." +msgstr "為遊客啟用探索." + +msgid "Enables to browse images randomly." +msgstr "啟用隨機圖像瀏覽" + +msgid "Likes" +msgstr "喜歡" + +msgid "Allows users to like content and populate \"Most liked\" listings." +msgstr "允許用戶使用喜歡功能, 並顯示用戶已喜歡列表." + +msgid "Followers allows users to follow each other." +msgstr "跟隨者允許使用者互相跟隨" + +#: ../../../app/install/template/ready.php:44 +#: ../../../app/themes/Peafowl/views/dashboard.php:327 +msgid "Website mode" +msgstr "網站模式" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Community" +msgstr "社群" + +#: ../../../app/install/template/ready.php:47 +#: ../../../app/themes/Peafowl/views/dashboard.php:330 +msgid "Personal" +msgstr "個人" + +#: ../../../app/install/template/ready.php:45 +#: ../../../app/themes/Peafowl/views/dashboard.php:334 +msgid "You can switch the website mode anytime." +msgstr "你可以隨時切換網站模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:344 +msgid "Personal mode target user" +msgstr "個人模式的目標對象" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/settings.php:69 +msgid "User ID" +msgstr "使用者ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:345 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +#, php-format +msgid "Your user id is: %s" +msgstr "您的使用者ID為:%s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:347 +msgid "Numeric ID of the target user for personal mode." +msgstr "個人模式的數值是目標用戶的ID." + +#: ../../../app/themes/Peafowl/views/dashboard.php:350 +msgid "Personal mode routing" +msgstr "個人模式連結格式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:353 +msgid "Custom route to map /username to /something. Use \"/\" to map to homepage." +msgstr "定製的鏈接格式 /username 到 /something. 使用 「/」 映射到主頁。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:363 +msgid "Website privacy mode" +msgstr "網站隱私模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:370 +msgid "Private mode will make the website only available for registered users." +msgstr "啟用私密模式後僅對註冊用戶開放使用." + +#: ../../../app/themes/Peafowl/views/dashboard.php:376 +msgid "Content privacy mode" +msgstr "內容隱私模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:380 +#: ../../../app/themes/Peafowl/views/dashboard.php:1225 +#: ../../../app/themes/Peafowl/views/dashboard.php:1463 +msgid "Default" +msgstr "預設" + +#: ../../../app/themes/Peafowl/views/dashboard.php:381 +msgid "Force private (self)" +msgstr "私密(只有本人可見)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:382 +msgid "Force private (anyone with the link)" +msgstr "私密(任何知道連結的人)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:387 +msgid "Forced privacy modes will override user selected privacy." +msgstr "全局隱私模式將覆蓋用戶選擇的隱私." + +#: ../../../app/themes/Peafowl/views/dashboard.php:442 +msgid "Page title" +msgstr "頁面標題" + +#: ../../../app/themes/Peafowl/views/dashboard.php:447 +msgid "Page status" +msgstr "頁面狀態" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +msgid "Active page" +msgstr "活動頁面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:450 +#, php-format +msgid "Inactive page (%s)" +msgstr "無效頁面 (%s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:454 +msgid "Only active pages will be accessible." +msgstr "僅活動頁面可以瀏覽" + +#: ../../../app/themes/Peafowl/views/dashboard.php:458 +#: ../../../app/themes/Peafowl/views/dashboard.php:595 +msgid "Type" +msgstr "類型" + +msgid "Terms of service" +msgstr "服務條款" + +msgid "Privacy" +msgstr "隱私" + +msgid "Contact" +msgstr "聯繫" + +msgid "Extra page" +msgstr "額外頁面" + +msgid "Internal page type" +msgstr "內部頁面類型" + +msgid "You can have multiple extra pages, but only one of the other special internal types." +msgstr "您可以有多個額外的頁面,但只能是其他特殊內部類型之一。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:475 +msgid "Page visibility" +msgstr "頁面可見度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Visible page" +msgstr "可見頁面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:478 +msgid "Hidden page" +msgstr "隱藏頁面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:482 +msgid "Hidden pages won't be show in system menus, but anyone can access to it with the link." +msgstr "隱藏頁面將不會顯示在系統的選單, 但任何人擁有連結時可以瀏覽." + +#: ../../../app/themes/Peafowl/views/dashboard.php:487 +msgid "Only alphanumerics, hyphens and forward slash" +msgstr "只有字母, 數字和片語" + +#: ../../../app/themes/Peafowl/views/dashboard.php:493 +msgid "File path" +msgstr "檔案路徑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:498 +#, php-format +msgid "A %f file relative to %s" +msgstr "%f 檔案相對於 %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:503 +msgid "Meta keywords" +msgstr "中介關鍵字" + +#: ../../../app/themes/Peafowl/views/dashboard.php:509 +msgid "Meta description" +msgstr "中介說明" + +#: ../../../app/themes/Peafowl/views/dashboard.php:515 +msgid "Source code" +msgstr "原始碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:519 +#, php-format +msgid "No write permission in %s path you will need to add this file using an external editor." +msgstr "在 %s 路徑沒有寫入權限, 您將需要使用外部編輯器新增檔案." + +#: ../../../app/themes/Peafowl/views/dashboard.php:525 +#, php-format +msgid "No write permission in %s you will need to edit the contents of this file using an external editor." +msgstr "在 %s 沒有寫入權限, 您將需要使用外部編輯器新增內容." + +#: ../../../app/themes/Peafowl/views/dashboard.php:532 +#, php-format +msgid "Taken from: %s" +msgstr "摘自: %s" + +#: ../../../app/themes/Peafowl/views/dashboard.php:546 +msgid "Link URL" +msgstr "超連結" + +#: ../../../app/themes/Peafowl/views/dashboard.php:555 +msgid "Link target attribute" +msgstr "連結目標屬性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:562 +#, php-format +msgid "Select %s to open the page or link in a new window." +msgstr "選擇 %s 來打開新頁面或是新視窗" + +#: ../../../app/themes/Peafowl/views/dashboard.php:566 +msgid "Link rel attribute" +msgstr "連結 rel 屬性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:567 +#: ../../../app/themes/Peafowl/views/dashboard.php:574 +msgid "Only alphanumerics, hyphens and whitespaces" +msgstr "只有字母, 連字符號和空格" + +#: ../../../app/themes/Peafowl/views/dashboard.php:569 +#, php-format +msgid "HTML &lt;a&gt; %s attribute" +msgstr "HTML &lt;a&gt; %s 屬性" + +#: ../../../app/themes/Peafowl/views/dashboard.php:573 +msgid "Link icon" +msgstr "連結圖標" + +#: ../../../app/themes/Peafowl/views/dashboard.php:576 +#, php-format +msgid "Check the <a %s>icon reference</a> for the complete list of supported icons." +msgstr "檢查 <a %s>圖標參考</a> 獲得支援圖標的完整列表." + +#: ../../../app/themes/Peafowl/views/dashboard.php:580 +msgid "Sort order display" +msgstr "排序順序顯示" + +#: ../../../app/themes/Peafowl/views/dashboard.php:583 +msgid "Page sort order display for menus and listings. Use \"1\" for top priority." +msgstr "選單和列表頁面排序順序顯示. 使用\"1\"為最優先的." + +#: ../../../app/themes/Peafowl/views/dashboard.php:607 +#, php-format +msgid "Do you really want to delete the page ID %s? This can't be undone." +msgstr "你真的要刪除頁面 ID %s ? 這動作不能被復原" + +msgid "Enabled image formats" +msgstr "啟用的圖像格式" + +msgid "Unchecked image formats won't be allowed to be uploaded." +msgstr "不允許上傳未經檢查的圖片格式。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:630 +msgid "Enable uploads" +msgstr "啟動上傳" + +#: ../../../app/themes/Peafowl/views/dashboard.php:636 +msgid "Enable this if you want to allow image uploads. This setting doesn't affect administrators." +msgstr "啟用圖片上傳(如果你想允許圖片上傳請啟用). 此設置不會影響管理員." + +msgid "Upload user interface" +msgstr "上載使用者介面" + +msgid "On-page container" +msgstr "相同頁面中的上傳工具" + +msgid "route" +msgstr "路由" + +#: ../../../app/themes/Peafowl/views/dashboard.php:639 +msgid "Guest uploads" +msgstr "訪客上傳" + +#: ../../../app/themes/Peafowl/views/dashboard.php:645 +msgid "Enable this if you want to allow non registered users to upload." +msgstr "允許非註冊用戶上傳" + +msgid "Moderate uploads" +msgstr "審核上載" + +msgid "Enable this to moderate incoming uploads. Target content will require moderation for approval." +msgstr "啟用此選項可審核傳入的上載。 目標內容需要經過審核才能獲得批准。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1353 +msgid "Enable embed codes (uploader)" +msgstr "啟用嵌入代碼(上傳者)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1359 +msgid "Enable this if you want to show embed codes when upload gets completed." +msgstr "如果你想圖片上傳完成後顯示嵌入代碼請啟用這個功能." + +msgid "Upload threads" +msgstr "上傳序列" + +msgid "Number of simultaneous upload threads (parallel uploads)" +msgstr "同時上傳連線數量(並行上傳)" + +msgid "Redirect on single upload" +msgstr "跳轉單張上傳" + +msgid "Enable this if you want to redirect to image page on single upload." +msgstr "啟用後上傳單張圖片後跳轉到該圖像的頁面." + +msgid "Enable duplicate uploads" +msgstr "啟用重複上傳" + +msgid "Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators." +msgstr "啟用它, 則允許24小時內來自同一個IP的重複上傳. 這個設置不會影響管理員." + +#: ../../../app/themes/Peafowl/views/dashboard.php:649 +msgid "Enable expirable uploads" +msgstr "啟用限時上傳" + +#: ../../../app/themes/Peafowl/views/dashboard.php:655 +msgid "Enable this if you want to allow uploads with an automatic delete option." +msgstr "如果您想允許上傳與自動刪除選項請啟用它." + +msgid "Auto delete guest uploads" +msgstr "自動刪除訪客上傳" + +msgid "Enable this if you want to force guest uploads to be auto deleted after certain time." +msgstr "開啟後可再一定時間後自動刪除訪客上傳的圖片" + +msgid "Maximum image size" +msgstr "最大圖片大小" + +msgid "Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit." +msgstr "大於此尺寸的圖片將自動縮小尺寸,使用(0)則不設置限制" + +#: ../../../app/themes/Peafowl/views/dashboard.php:661 +#: ../../../app/themes/Peafowl/views/settings.php:183 +msgid "Image Exif data" +msgstr "圖像Exif資料" + +#: ../../../app/themes/Peafowl/views/dashboard.php:665 +msgid "Keep" +msgstr "保留" + +#: ../../../app/themes/Peafowl/views/dashboard.php:670 +#, php-format +msgid "Select the default setting for image <a %s>Exif data</a> on upload." +msgstr "選擇預設的圖像 <a %s>Exif資料</a> 上傳." + +#: ../../../app/themes/Peafowl/views/dashboard.php:674 +msgid "Image Exif data (user setting)" +msgstr "圖像Exif資料 (使用者設置)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:683 +msgid "Enable this if you want to allow each user to configure how image Exif data will be handled." +msgstr "啟用它, 如果您允許每個用戶設置是否刪除圖像的Exif資料." + +msgid "Maximum upload file size" +msgstr "最大上傳大小" + +msgid "Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values)." +msgstr "主機限制最大上傳大小是%s這個限制是因為%u以及%p(%f的數值)" + +#, php-format +msgid "Same as \"%s\" but for guests." +msgstr "跟\"%s\"一樣,遊客允許上傳大小." + +#: ../../../app/themes/Peafowl/views/dashboard.php:695 +msgid "Image path" +msgstr "圖片路徑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:696 +msgid "Relative to Chevereto root" +msgstr "相對於Chevereto根目錄" + +#: ../../../app/themes/Peafowl/views/dashboard.php:698 +msgid "Where to store the images? Relative to Chevereto root." +msgstr "圖片儲存的位置? 相對於Chevereto根目錄" + +#: ../../../app/themes/Peafowl/views/dashboard.php:701 +msgid "Storage mode" +msgstr "儲存空間模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Datefolders" +msgstr "利用時間建立資料夾" + +#: ../../../app/themes/Peafowl/views/dashboard.php:704 +msgid "Direct" +msgstr "直接儲存" + +#: ../../../app/themes/Peafowl/views/dashboard.php:707 +#, php-format +msgid "Datefolders creates %s structure" +msgstr "時間建立資料夾 %s 建立結構" + +#: ../../../app/themes/Peafowl/views/dashboard.php:710 +msgid "File naming method" +msgstr "檔案命名方式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Original" +msgstr "原始" + +#: ../../../app/themes/Peafowl/views/dashboard.php:713 +msgid "Mix original + random" +msgstr "原始 + 隨機" + +#: ../../../app/themes/Peafowl/views/dashboard.php:716 +msgid "\"Original\" will try to keep the image source name while \"Random\" will generate a random name. \"ID\" will name the image just like the image ID." +msgstr "\"原始的\"會盡量保持圖像原始名稱, 而\"隨機\"則產生一個隨機名稱. \"ID\"則使用圖像ID來產生命名." + +#: ../../../app/themes/Peafowl/views/dashboard.php:722 +msgid "Thumb size" +msgstr "縮圖大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:733 +msgid "Thumbnails will be fixed to this size." +msgstr "縮圖將會被固定在此大小" + +msgid "Medium image fixed dimension" +msgstr "中等圖像固定尺寸" + +msgid "Medium sized images will be fixed to this dimension. For example, if you select \"width\" that dimension will be fixed and image height will be automatically calculated." +msgstr "中等圖像將被固定至此分辨率. 例如, 如果您選擇\"寬度\", 這方面將是固定的, 圖像的高度將自動計算." + +msgid "Medium image fixed size" +msgstr "中等圖像固定大小" + +msgid "Width or height will be automatically calculated." +msgstr "寬度或是高度將自動計算." + +#: ../../../app/themes/Peafowl/views/dashboard.php:747 +msgid "Watermarks" +msgstr "浮水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:754 +msgid "Enable this to put a logo or anything you want in image uploads." +msgstr "開啟此選項將會套用浮水印於圖片上傳" + +#: ../../../app/themes/Peafowl/views/dashboard.php:767 +msgid "Watermark user toggles" +msgstr "浮水印使用者切換" + +#: ../../../app/themes/Peafowl/views/dashboard.php:770 +msgid "Enable watermark on guest uploads" +msgstr "啟用訪客上傳浮水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:775 +msgid "Enable watermark on user uploads" +msgstr "啟用使用者上傳浮水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:780 +msgid "Enable watermark on admin uploads" +msgstr "啟用管理員上傳浮水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:786 +msgid "Watermark file toggles" +msgstr "浮水印檔案切換" + +#: ../../../app/themes/Peafowl/views/dashboard.php:789 +msgid "Enable watermark on GIF image uploads" +msgstr "啟用 GIF 圖像的浮水印" + +#: ../../../app/themes/Peafowl/views/dashboard.php:795 +msgid "Minimum image size needed to apply watermark" +msgstr "應用浮水印的最小圖像大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:806 +msgid "Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit." +msgstr "小於這個像素比的圖像不會被加上浮水印. 使用零(0), 則不設置最低圖像大小限制." + +#: ../../../app/themes/Peafowl/views/dashboard.php:810 +msgid "Watermark image" +msgstr "浮水印圖片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:816 +msgid "You will get best results with plain logos with drop shadow. You can use a large image if the file size is not that big (recommended max. is 16KB). Must be a PNG." +msgstr "您想獲得最佳的標誌與陰影效果. 您可以使用一個大的圖像, 如果檔案大小並不大(建議最多為16KB). 必須是PNG." + +#: ../../../app/themes/Peafowl/views/dashboard.php:819 +msgid "Watermark position" +msgstr "浮水印位置" + +#: ../../../app/themes/Peafowl/views/dashboard.php:823 +msgid "left top" +msgstr "左上" + +#: ../../../app/themes/Peafowl/views/dashboard.php:824 +msgid "left center" +msgstr "左側中間" + +#: ../../../app/themes/Peafowl/views/dashboard.php:825 +msgid "left bottom" +msgstr "左側底端" + +#: ../../../app/themes/Peafowl/views/dashboard.php:826 +msgid "center top" +msgstr "中間最上" + +#: ../../../app/themes/Peafowl/views/dashboard.php:827 +msgid "center center" +msgstr "圖片正中" + +#: ../../../app/themes/Peafowl/views/dashboard.php:828 +msgid "center bottom" +msgstr "中間底部" + +#: ../../../app/themes/Peafowl/views/dashboard.php:829 +msgid "right top" +msgstr "右上" + +#: ../../../app/themes/Peafowl/views/dashboard.php:830 +msgid "right center" +msgstr "右側正中" + +#: ../../../app/themes/Peafowl/views/dashboard.php:831 +msgid "right bottom" +msgstr "右側底端" + +#: ../../../app/themes/Peafowl/views/dashboard.php:836 +msgid "Relative position of the watermark image. First horizontal align then vertical align." +msgstr "浮水印圖像的相對位置. 首先水平對齊, 然後垂直對齊." + +#: ../../../app/themes/Peafowl/views/dashboard.php:839 +msgid "Watermark percentage" +msgstr "浮水印佔圖像比例" + +#: ../../../app/themes/Peafowl/views/dashboard.php:844 +msgid "Watermark percentual size relative to the target image area. Values 1 to 100." +msgstr "浮水印佔目標圖像的百分比. 值為1到100." + +#: ../../../app/themes/Peafowl/views/dashboard.php:847 +msgid "Watermark margin" +msgstr "浮水印填充邊距" + +#: ../../../app/themes/Peafowl/views/dashboard.php:852 +msgid "Margin from the border of the image to the watermark image." +msgstr "填充邊距大小, 從浮水印圖像邊框開始計算." + +#: ../../../app/themes/Peafowl/views/dashboard.php:855 +msgid "Watermark opacity" +msgstr "浮水印透明度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:860 +msgid "Opacity of the watermark in the final watermarked image. Values 0 to 100." +msgstr "浮水印的不透明度設置, 值由0到100." + +msgid "Dashboard > Settings > Website" +msgstr "主控台 > 設定 > 網站" + +#, php-format +msgid "Categories won't work when the explorer feature is turned off. To revert this setting go to %s." +msgstr "當關閉圖庫功能時, 圖片分類將不能正常工作. 恢復此設置請前往 %s." + +#: ../../../app/themes/Peafowl/views/dashboard.php:884 +#, php-format +msgid "Do you really want to delete the %s category? This can't be undone." +msgstr "你真的要刪除 %s 類別? 這動作不能被復原" + +#: ../../../app/themes/Peafowl/views/dashboard.php:900 +msgid "Note: Deleting a category doesn't delete the images that belongs to that category." +msgstr "注意: 刪除分類不會刪除屬於該類別中的圖像." + +#: ../../../app/themes/Peafowl/views/dashboard.php:902 +msgid "Edit category" +msgstr "編輯分類" + +#: ../../../app/themes/Peafowl/views/dashboard.php:925 +msgid "Expires" +msgstr "到期" + +#: ../../../app/themes/Peafowl/views/dashboard.php:933 +#, php-format +msgid "Do you really want to remove the ban to the IP %s? This can't be undone." +msgstr "你真的想要刪除該已禁止的IP: %s ? 這將是無法撤銷的." + +#: ../../../app/themes/Peafowl/views/dashboard.php:947 +msgid "Banned IP address will be forbidden to use the entire website." +msgstr "被禁止的IP地址將禁止使用整個網站." + +#: ../../../app/themes/Peafowl/views/dashboard.php:949 +msgid "Edit IP ban" +msgstr "編輯阻擋的IP" + +#: ../../../app/themes/Peafowl/views/dashboard.php:959 +msgid "Enable signups" +msgstr "開放註冊" + +#: ../../../app/themes/Peafowl/views/dashboard.php:965 +msgid "Enable this if you want to allow users to signup." +msgstr "啟用此代表您允許用戶自行註冊賬號." + +msgid "Enable user content delete" +msgstr "啟用用戶內容刪除" + +msgid "Enable this if you want to allow users to delete their own content. This setting doesn't affect administrators." +msgstr "如果要允許用戶刪除自己的內容,請啟用此選項。 此設置不會影響管理員。" + +msgid "Minimum age required" +msgstr "最低年齡要求" + +msgid "Empty" +msgstr "空" + +msgid "Leave it empty to don't require a minimum age to use the website." +msgstr "留空則表示不設置最低年齡, 對所有年齡都有效." + +msgid "Notify on user signup" +msgstr "用户注册通知" + +msgid "Enable this if you want to get an email notification for each new user signup." +msgstr "如果要為每個新用戶註冊獲取電子郵件通知,請啟用此選項。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:972 +msgid "Username routing" +msgstr "用戶名連結結構" + +#: ../../../app/themes/Peafowl/views/dashboard.php:978 +#, php-format +msgid "Enable this if you want to use %s/username URLs instead of %s/user/username." +msgstr "啟用此選項, 則使用(%s/用戶名)的URL結構, 而不是(%s/用戶/用戶名)的URL結構." + +#: ../../../app/themes/Peafowl/views/dashboard.php:983 +msgid "Require email confirmation" +msgstr "需要電子郵件確認" + +#: ../../../app/themes/Peafowl/views/dashboard.php:989 +msgid "Enable this if users must validate their email address on sign up." +msgstr "啟用此選項, 用戶必須驗證註冊電子郵件地址." + +#: ../../../app/themes/Peafowl/views/dashboard.php:992 +msgid "Require email for social signup" +msgstr "需要電子郵件社交註冊" + +#: ../../../app/themes/Peafowl/views/dashboard.php:998 +msgid "Enable this if users using social networks to register must provide an email address." +msgstr "啟用此選項, 使用社交網絡註冊的用戶必須提供一個電子郵件地址." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1004 +msgid "User avatar max. filesize" +msgstr "最大的用戶頭像大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1007 +#, php-format +msgid "Max. allowed filesize for user avatar image. (Max allowed by server is %s)" +msgstr "最大允許用戶頭像的檔案大小. (伺服器最大允許: %s)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1010 +msgid "User background max. filesize" +msgstr "最大的背景圖片大小" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1013 +#, php-format +msgid "Max. allowed filesize for user background image. (Max allowed by server is %s)" +msgstr "最大允許背景圖片的檔案大小. (伺服器最大允許: %s)" + +msgid "Shows a consent screen before accessing the website. Useful for adult content websites where minors shouldn't be allowed." +msgstr "在瀏覽網站之前顯示螢幕的一個同意. 對於成人內容的網站,不應該讓未成年人瀏覽." + +msgid "Enable consent screen" +msgstr "啟用內容警告" + +msgid "Consent screen cover image" +msgstr "警告封面圖像內容" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1019 +msgid "Block image uploads by IP if the system notice a flood behavior based on the number of uploads per time period. This setting doesn't affect administrators." +msgstr "通過IP封鎖圖片上傳, 如果系統發現根據每個時間段上傳數量暴增的行為. 此設置不會影響管理員." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1031 +msgid "Notify to email" +msgstr "以電子郵件通知" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1037 +msgid "If enabled the system will send an email on flood incidents." +msgstr "發現流量攻擊後系統自動發送電子郵件." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1040 +msgid "Minute limit" +msgstr "每分鐘的限額" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1045 +msgid "Hourly limit" +msgstr "每小時的限額" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1050 +msgid "Daily limit" +msgstr "每天的限額" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1055 +msgid "Weekly limit" +msgstr "每周的限額" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1060 +msgid "Monthly limit" +msgstr "每月的限額" + +#, php-format +msgid "Lock %s editing" +msgstr "鎖定%s編輯" + +msgid "Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission." +msgstr "啟用此選項可防止用戶更改NSFW標誌。 啟用後,只有管理員和管理員才具有此權限。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1070 +msgid "Show not safe content in listings" +msgstr "在列表中顯示非安全內容" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1076 +msgid "Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings." +msgstr "如果要在列表中顯示不安全內容請啟用此功能. 此設置不會影響管理員, 並且可以由用戶自己的設置覆蓋." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1079 +msgid "Blur NSFW content in listings" +msgstr "模糊非闔家皆宜(標記為不安全)的內容顯示在列表" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1085 +msgid "Enable this if you want to apply a blur effect on the NSFW images in listings." +msgstr "如果您想為非闔家皆宜圖像列表開啟模糊效果,請啟用它." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1088 +msgid "Show banners in not safe content" +msgstr "在不安全的內容顯示廣告橫幅" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1094 +msgid "Enable this if you want to show banners in not safe content pages." +msgstr "如果你想顯示在不安全的內容頁面的橫幅請啟用這個功能." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1098 +msgid "Show not safe content in random mode" +msgstr "在隨機模式顯示標記為不安全內容" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1109 +msgid "List items per page" +msgstr "每頁列出清單數目" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1112 +msgid "How many items should be displayed per page listing." +msgstr "設定每頁的顯示數目" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1116 +msgid "List pagination mode" +msgstr "列表分頁模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Endless scrolling" +msgstr "瀑布流模式(無限載入)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1119 +msgid "Classic pagination" +msgstr "經典分頁模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1123 +msgid "What pagination method should be used." +msgstr "選擇使用什麼分頁模式." + +msgid "Listing viewer" +msgstr "列表預覽" + +msgid "Enable this to use the listing viewer when clicking on an image." +msgstr "啟用之後,你在探索頁麵點擊圖片之後會有預覽界面." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1127 +msgid "Image listing size" +msgstr "圖片列表大小樣式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fluid" +msgstr "浮動" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1130 +msgid "Fixed" +msgstr "固定" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1134 +msgid "Both methods use a fixed width but fluid method uses automatic heights." +msgstr "首頁圖片列表樣式. 這兩種方法都使用固定寬度, 但“自動”的方法是使用自動圖片的高度." + +msgid "Album listing images requirement" +msgstr "相冊被列出所需圖片數量" + +msgid "explore" +msgstr "探索" + +msgid "Sets the minimum image count needed to show albums in explore." +msgstr "設置在探索中顯示相冊所需的最小圖像數。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1140 +msgid "Listing columns number" +msgstr "頁面顯示列數" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1141 +msgid "Here you can set how many columns are used based on each target device." +msgstr "在這裡你可以設置針對不同的裝置顯示多少列, 以優化各裝置的顯示體驗." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1143 +msgid "Phone" +msgstr "手機" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1147 +msgid "Phablet" +msgstr "大螢幕手機" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1151 +msgid "Tablet" +msgstr "平板" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1155 +msgid "Laptop" +msgstr "筆電" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1159 +msgid "Desktop" +msgstr "桌電" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1167 +#, php-format +msgid "Put your themes in the %s folder" +msgstr "把你的主題上傳到 %s 資料夾" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1186 +msgid "Tone" +msgstr "色調" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Light" +msgstr "亮" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1189 +msgid "Dark" +msgstr "暗" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1196 +msgid "Main color" +msgstr "主要色彩" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1197 +msgid "Hexadecimal color value" +msgstr "十六進制顏色值(HEX)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1199 +#, php-format +msgid "Use this to set the main theme color. Value must be in <a href=\"%s\" target=\"_blank\">hex format</a>." +msgstr "設定主要主題顏色. 值必須是 <a href=\"%s\" target=\"_blank\">十六進制</a> 格式." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1214 +msgid "Top bar button color" +msgstr "頂部欄按鈕顏色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1218 +#: ../../../app/themes/Peafowl/views/dashboard.php:1456 +msgid "Blue" +msgstr "藍" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1219 +#: ../../../app/themes/Peafowl/views/dashboard.php:1457 +msgid "Green" +msgstr "綠" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1220 +#: ../../../app/themes/Peafowl/views/dashboard.php:1458 +msgid "Orange" +msgstr "橘" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1221 +#: ../../../app/themes/Peafowl/views/dashboard.php:1459 +msgid "Red" +msgstr "紅" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1222 +#: ../../../app/themes/Peafowl/views/dashboard.php:1460 +msgid "Grey" +msgstr "灰" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1223 +#: ../../../app/themes/Peafowl/views/dashboard.php:1461 +msgid "Black" +msgstr "黑" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1206 +#: ../../../app/themes/Peafowl/views/dashboard.php:1224 +#: ../../../app/themes/Peafowl/views/dashboard.php:1462 +msgid "White" +msgstr "白" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1230 +msgid "Color for the top bar buttons like the \"Create account\" button." +msgstr "頂欄的顏色按鈕為\"建立帳戶\"按鈕." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1244 +msgid "Enable vector logo" +msgstr "啟用向量Logo(SVG)" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1251 +msgid "Enable vector logo for high quality logo in devices with high pixel density." +msgstr "在高解析度的設備啟用向量logo為高品質的標誌." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1256 +#: ../../../app/themes/Peafowl/views/dashboard.php:1418 +msgid "Vector logo image" +msgstr "向量logo圖片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1262 +msgid "Vector version or your website logo in SVG format." +msgstr "SVG格式的向量版本Logo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1268 +#: ../../../app/themes/Peafowl/views/dashboard.php:1428 +msgid "Raster logo image" +msgstr "點陣圖Logo圖片" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1274 +msgid "Bitmap version or your website logo. PNG format is recommended." +msgstr "PNG格式的點陣圖版本Logo." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1278 +msgid "Logo height" +msgstr "Logo 高度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1279 +#: ../../../app/themes/Peafowl/views/dashboard.php:1514 +msgid "No value" +msgstr "未設定值" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1281 +msgid "Use this to set the logo height if needed." +msgstr "啟用此選項, 以設置 logo 的高度." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1287 +msgid "Favicon image" +msgstr "Favicon 圖樣" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1293 +msgid "Favicon image. Image must have same width and height." +msgstr "所上傳圖像必須具有相同的寬度和高度." + +msgid "Image load max. filesize" +msgstr "最大可載入圖片檔案大小" + +msgid "Images greater than this size will show a button to load full resolution image." +msgstr "大於此尺寸的圖片將顯示一個按鈕以加載最大解析度" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1299 +msgid "Enable download button" +msgstr "啟用下載按鈕" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1305 +msgid "Enable this if you want to show the image download button." +msgstr "啟用此代表在圖片頁顯示原圖下載按鈕." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1309 +msgid "Enable right click on image" +msgstr "啟用圖片右鍵點擊" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1315 +msgid "Enable this if you want to allow right click on image viewer page." +msgstr "啟用此則允許在圖片頁使用鼠標右鍵功能." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1321 +msgid "Enable show Exif data" +msgstr "啟用顯示Exif數據" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1327 +msgid "Enable this if you want to show image Exif data." +msgstr "如果您想要顯示圖像的Exif數據, 啟用此項." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1333 +msgid "Enable social share" +msgstr "啟用社群網站分享" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1339 +msgid "Enable this if you want to show social network buttons to share content." +msgstr "啟用此選項, 以啟用社群網站分享功能." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1343 +msgid "Enable embed codes (content)" +msgstr "啟用嵌入代碼(內容)" + +msgid "Everybody" +msgstr "任何人" + +msgid "Users only" +msgstr "用戶限定" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1349 +msgid "Enable this if you want to show embed codes for the content." +msgstr "啟用此選項, 允許用戶取得嵌入代碼 ." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1365 +msgid "Not safe content checkbox in uploader" +msgstr "上傳時顯示\"非安全內容\"的選項" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1371 +msgid "Enable this if you want to show a checkbox to indicate not safe content upload." +msgstr "如果你想顯示一個複選框, 表示非安全內容上傳請啟用這個功能." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1377 +msgid "Custom CSS code" +msgstr "自訂CSS代碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1378 +msgid "Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag." +msgstr "把你的自訂CSS代碼在這裡. 它會被放在 <style> 標籤 </head> 前的位置." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1382 +msgid "Custom JS code" +msgstr "自訂JS代碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1383 +msgid "Put your custom JS code here. It will be placed as <script> just before the closing </head> tag." +msgstr "把你的自訂JS代碼在這裡. 它會被放在 <script> 標籤 </head> 前的位置." + +#, php-format +msgid "Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website." +msgstr "不要在這裡使用 %s 標記。 這適用於普通的JS代碼,不適用於HTML script標籤。 如果您在此處使用script標籤,則會破壞您的網站。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1390 +msgid "Style" +msgstr "样式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1394 +msgid "Landing page" +msgstr "到達頁面" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1395 +msgid "Split landing + images" +msgstr "上傳按鈕 + 最新圖片" + +#, php-format +msgid "Route %s" +msgstr "路由%s" + +msgid "upload" +msgstr "上傳" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1401 +#, php-format +msgid "Select the homepage style. To customize it further edit app/themes/%s/views/index.php" +msgstr "選擇主頁風格. 詳細定製主頁請編輯此頁 app/themes/%s/views/index.php" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1406 +msgid "Cover image" +msgstr "封面圖片" + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Do you really want to delete this image? This can't be undone." +msgstr "您真的需要刪除這張圖片? 這將無法恢復." + +#: ../../../app/themes/Peafowl/views/image.php:72 +msgid "Delete image" +msgstr "刪除照片" + +msgid "Add new cover image" +msgstr "新增新的封面圖像" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1441 +#: ../../../app/themes/Peafowl/views/dashboard.php:1446 +#, php-format +msgid "This will be added inside the homepage %s tag. Leave it blank to use the default contents." +msgstr "這將被建立在主頁 %s 標記. 保持空白以使用預設內容." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1445 +#: ../../../app/themes/Peafowl/views/settings.php:440 +msgid "Paragraph" +msgstr "段落" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1452 +msgid "Call to action button color" +msgstr "「開始上傳」按鈕的顏色" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1468 +msgid "Color of the homepage call to action button." +msgstr "請選擇「開始上傳」按鈕的顏色." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1472 +msgid "Call to action outline style button" +msgstr "主頁「開始上傳」使用透明按鈕" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1479 +msgid "Enable this to use outline style for the homepage call to action button." +msgstr "啟用此, 則「開始上傳」按鈕的背景顏色改為透明樣式." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1483 +msgid "Call to action functionality" +msgstr "按鈕功能" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1487 +msgid "Trigger uploader" +msgstr "觸發上傳" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1488 +msgid "Open URL" +msgstr "打開網址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1497 +msgid "Call to action URL" +msgstr "按鈕網址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1498 +msgid "Enter an absolute or relative URL" +msgstr "輸入一個絕對或相對URL網址" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1500 +msgid "A relative URL like %r will be mapped to %l" +msgstr "這樣一個相對URL網址 %r 將映射到 %l" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1506 +msgid "Call to action HTML" +msgstr "按鈕HTML代碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1507 +msgid "This will be added inside the call to action <a> tag. Leave it blank to use the default contents." +msgstr "這將被建立在按鈕 <a> 標記. 保持空白以使用預設內容." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1513 +msgid "User IDs" +msgstr "用户IDs" + +msgid "Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images." +msgstr "用逗號分隔的目標用戶ID列表,以在首頁上顯示圖像。 保留為空白或零以顯示所有最近的圖像。" + +msgid "Automatic updates check" +msgstr "自動檢查升級" + +msgid "When enabled the system will automatically check for new updates." +msgstr "啟用時,系統將自動檢查新更新。" + +msgid "Display available updates notification" +msgstr "顯示可用的更新通知" + +msgid "Enable this to show a notice on top warning you about new available system updates." +msgstr "啟用此則顯示一個通知, 提示您關於新的可用系統更新." + +msgid "Dump update query" +msgstr "轉儲更新查詢" + +msgid "Enable this if you want to dump the update query to run it manually." +msgstr "如果要自動檢測並為每個用戶設置正確的語言,請啟用此選項。" + +#, php-format +msgid "SEO %s URLs" +msgstr "SEO %s 的網址" + +#, php-format +msgid "Enable this if you want to use SEO %s URLs." +msgstr "如果要使用SEO %s URL,請啟用此選項。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1579 +msgid "Maintenance" +msgstr "維護模式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1585 +msgid "When enabled the website will show a maintenance message. This setting doesn't affect administrators." +msgstr "當啟用該設置網站將重定向到維修頁面. 此設置不影響管理員。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1565 +msgid "Crypt salt" +msgstr "Crypt salt 特殊碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1567 +msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install." +msgstr "此ID為系統的一個特殊碼, 相當於V2.x的「__CHV_CRYPT_SALT__」值, 本設置僅在安裝或升級時才用到, 一經使用請勿修改." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1589 +msgid "PHP error reporting" +msgstr "顯示PHP 錯誤回報" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1595 +#, php-format +msgid "Enable this if you want to print errors generated by PHP <a %s>error_reporting()</a>. This should be disabled in production." +msgstr "允許顯示PHP錯誤回報 <a %s>error_reporting()</a> ,再發表產品後不應該開啟此選項" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1598 +msgid "Debug level" +msgstr "除錯層級" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "None" +msgstr "無" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Error log" +msgstr "寫入錯誤記錄" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print errors without error log" +msgstr "列出錯誤記錄但不寫入紀錄" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1601 +msgid "Print and log errors" +msgstr "列出錯誤記錄且寫入紀錄" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1604 +#, php-format +msgid "To configure the debug level check the <a %s>debug documentation</a>. Default level is \"Error log\" (1)." +msgstr "欲設定除錯層級請查看<a %s>除錯設定文件</a>,預設模式為 \"寫入錯誤記錄\"" + +msgid "Image routing" +msgstr "圖像路徑" + +#, php-format +msgid "Routing for %s" +msgstr "路徑 %s" + +msgid "Album routing" +msgstr "相簿路徑" + +msgid "Hostname" +msgstr "主機名" + +msgid "Hostname on which sub-domain wildcards will be added." +msgstr "將在其上添加子域通配符的主機名。" + +#, php-format +msgid "This setting may be overridden by %s." +msgstr "此設置可能被 %s 覆蓋。" + +msgid "Language subdomains" +msgstr "語言子域名" + +msgid "languages" +msgstr "語言" + +msgid "Enable to use %s for %t." +msgstr "啟用將 %s 用於 %t 。" + +msgid "Username subdomains" +msgstr "用戶子域名" + +msgid "user profiles" +msgstr "用戶資料" + +msgid "Custom language strings" +msgstr "其他語言字串" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1611 +msgid "Default language" +msgstr "預設語言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1620 +msgid "Default base language to use." +msgstr "預設基本語言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1624 +msgid "Auto language" +msgstr "自動偵測語言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1630 +msgid "Enable this if you want to automatically detect and set the right language for each user." +msgstr "啟用這個如果你想自動檢測並為每個用戶設置正確的語言." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1634 +msgid "Language chooser" +msgstr "用戶選擇語言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1640 +msgid "Enable this if you want to allow language selection." +msgstr "啟用這個如果你想允許用戶選擇語言." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1647 +msgid "Enabled languages" +msgstr "啟用多語言" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1656 +msgid "Unchecked languages won't be used in your website." +msgstr "未選中的語言將不會在自己的網站中使用." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1679 +msgid "Toggle this to enable or disable HTTPS" +msgstr "切換此啟用或禁用HTTPS鏈接" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1680 +msgid "Toggle this to enable or disable this storage" +msgstr "切換此啟用或禁用此儲存空間" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1696 +msgid "Quota" +msgstr "配額" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1698 +msgid "Active" +msgstr "啟用" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1731 +msgid "Storage method" +msgstr "儲存空間方式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +msgid "Local storage is used by default or when no external storage is active." +msgstr "預設情況下使用本地儲存空間, 或在外部儲存空間處於非啟用狀態." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1742 +#, php-format +msgid "If you need help check the <a %s>storage documentation</a>." +msgstr "如果您需要協助,請查看<a %s>儲存空間設定指南</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1744 +msgid "Edit storage" +msgstr "編輯儲存空間" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1754 +msgid "From name" +msgstr "發送名稱" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1757 +msgid "Sender name for emails sent to users." +msgstr "接收到郵件顯示的發送人名稱" + +#: ../../../app/install/template/ready.php:31 +#: ../../../app/themes/Peafowl/views/dashboard.php:1760 +msgid "From email address" +msgstr "發件人的電子郵件地址" + +#: ../../../app/install/template/ready.php:32 +#: ../../../app/themes/Peafowl/views/dashboard.php:1763 +msgid "Sender email for emails sent to users." +msgstr "發信給用戶的電郵來源地址" + +#: ../../../app/install/template/ready.php:36 +#: ../../../app/themes/Peafowl/views/dashboard.php:1766 +msgid "Incoming email address" +msgstr "接收郵件的電郵地址" + +#: ../../../app/install/template/ready.php:37 +#: ../../../app/themes/Peafowl/views/dashboard.php:1769 +msgid "Recipient for contact form and system alerts." +msgstr "\"聯絡我們\"和\"系統通知\"的收件者" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1772 +msgid "Email mode" +msgstr "發送郵件的方式" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1779 +msgid "How to send emails? SMTP recommended." +msgstr "如何發送郵件? 推薦使用SMTP." + +#: ../../../app/themes/Peafowl/views/dashboard.php:1784 +msgid "SMTP server and port" +msgstr "SMTP伺服器與端口" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1787 +msgid "SMTP server" +msgstr "SMTP伺服器" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1800 +msgid "SMTP username" +msgstr "SMTP用戶名" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1805 +msgid "SMTP password" +msgstr "SMTP密碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1810 +msgid "SMTP security" +msgstr "SMTP安全" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1813 +msgid "Unsecured" +msgstr "非安全" + +msgid "Decode ID" +msgstr "解碼 ID" + +msgid "Encode ID" +msgstr "編碼 ID" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1824 +#: ../../../app/themes/Peafowl/views/dashboard.php:1825 +msgid "Send test email" +msgstr "寄出測試郵件" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1826 +#, php-format +msgid "Use this to test how your emails are being delivered. We recommend you to use %s." +msgstr "使用這個來測試您的電子郵件是否已寄出. 我們建議您使用 %s." + +msgid "Export a user" +msgstr "導出用戶(1個)" + +msgid "Export user" +msgstr "導出" + +msgid "This will allow you to download a user's standard personal information in JSON format." +msgstr "這將讓用戶信息保存到 .Json 格式的文件中並下載" + +msgid "Regenerate external storage stats" +msgstr "重新生成外部存儲統計信息" + +msgid "Storage id" +msgstr "儲存編號" + +msgid "Regenerate" +msgstr "重新生成" + +msgid "This will re-calculate the sum of all the image records associated to the target external storage." +msgstr "這將重新計算與目標外部存儲關聯的所有圖像記錄的總和。" + +msgid "Migrate image records from one external storage to another" +msgstr "將圖像記錄從一個外部存儲遷移到另一個" + +msgid "Source storage id" +msgstr "來源存儲ID" + +msgid "Target storage id" +msgstr "目標存儲ID" + +msgid "Migrate" +msgstr "遷移" + +msgid "This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage." +msgstr "這只會更新數據庫。 您必須自行將實際文件傳輸到目標存儲容器。 強烈建議使用URL rewriting。 使用零(0)進行本地存儲。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1838 +msgid "You need a <a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a> for this." +msgstr "你需要一個<a href=\"https://developers.facebook.com/\" target=\"_blank\">Facebook app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1843 +msgid "Facebook app id" +msgstr "Facebook app id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1848 +msgid "Facebook app secret" +msgstr "Facebook app secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1864 +msgid "You need a <a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a> for this." +msgstr "你需要一個<a href=\"https://apps.twitter.com\" target=\"_blank\">Twitter app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1869 +msgid "Twitter API key" +msgstr "Twitter API key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1874 +msgid "Twitter API secret" +msgstr "Twitter API secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1881 +msgid "Twitter account" +msgstr "Twitter帳戶" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1897 +msgid "You need a <a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a> for this." +msgstr "你需要一個<a href=\"https://cloud.google.com/console\" target=\"_blank\">Google app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1902 +msgid "Google client id" +msgstr "Google client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1907 +msgid "Google client secret" +msgstr "Google client secret" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1923 +msgid "You need a <a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a> for this." +msgstr "你需要一個<a href=\"http://vk.com/dev\" target=\"_blank\">VK app</a>" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1928 +msgid "VK client id" +msgstr "VK client id" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1933 +msgid "VK client secret" +msgstr "VK client secret" + +#, php-format +msgid "%s spam protection" +msgstr "%s SPAM防護" + +msgid "user generated content" +msgstr "用戶生成的內容" + +msgid "Enable this to use %l to block spam on %c." +msgstr "啟用它以使用 %l 阻止%c 上的SPAM。" + +#, php-format +msgid "%s API key" +msgstr "%s API密鑰" + +msgid "user signup" +msgstr "用戶註冊" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1968 +#, php-format +msgid "You need a <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a> for this." +msgstr "你需要一個 <a href=\"%s\" target=\"_blank\">reCAPTCHA key</a>" + +msgid "Please note that each reCAPTCHA version require its own set of keys. Don't forget to update the keys if you change versions." +msgstr "請注意,每個reCAPTCHA版本都需要其自己的密鑰組合。 如果更改版本,請不要忘記更新密鑰。" + +#, php-format +msgid "%s site key" +msgstr "%s 網站鑰匙" + +#, php-format +msgid "%s secret key" +msgstr "%s 秘密鑰匙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1986 +msgid "reCAPTCHA threshold" +msgstr "reCAPTCHA threshold" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1991 +msgid "How many failed attempts are needed to ask for reCAPTCHA? Use zero (0) to always show reCAPTCHA." +msgstr "登入失敗多少次後顯示驗證碼? 鍵入\"0\"零則始終顯示驗證碼." + +#, php-format +msgid "Force %s on contact page" +msgstr "在聯繫頁面強制開啟 %s" + +#, php-format +msgid "Enable this to always show %s on contact page." +msgstr "啟用此選項可始終在聯繫頁面上顯示 %s 。" + +msgid "Comments API" +msgstr "評論 API" + +#, php-format +msgid "Disqus API works with %s." +msgstr "與 %s 工作的Disqus API" + +msgid "Disqus shortname" +msgstr "Disqus 短名" + +#, php-format +msgid "%s public key" +msgstr "%s 公開鑰匙" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1997 +msgid "Comment code" +msgstr "社群評論代碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:1998 +msgid "Disqus, Facebook or anything you want. It will be used in image view." +msgstr "DISQUS, Facebook或其他. 它將在圖片頁面中使用." + +#, php-format +msgid "Automatically moderate the content using the %s service." +msgstr "使用%s服務自動審核內容。" + +msgid "Automatic approve" +msgstr "自動批准" + +msgid "Enable this to automatically approve content moderated by this service." +msgstr "啟用此選項可自動批准此服務審核的內容。" + +msgid "Block content" +msgstr "封鎖內容" + +msgid "Adult" +msgstr "成人" + +msgid "Teen and adult" +msgstr "青年和成人" + +msgid "Flag NSFW" +msgstr "標記為NSFW" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2002 +msgid "Analytics code" +msgstr "Analytics(分析)代碼" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2003 +msgid "Google Analytics or anything you want. It will be added to the theme footer." +msgstr "Google Analytics(分析)或其他. 它將被添加到主題頁尾." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2019 +msgid "API v1 key" +msgstr "API v1 key" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2022 +#, php-format +msgid "Use this key when using the <a %s>API v1</a>." +msgstr "欲使用 <a %s>API v1</a>請用這個金鑰" + +msgid "Plugin route" +msgstr "上傳插件" + +#, php-format +msgid "Enable this to display plugin instructions at %u. A link to these instructions will be added to the %s menu. This setting doesn't affect administrators." +msgstr "啟用此選項可在%u顯示插件說明。 這些說明的鏈接將添加到%s菜單中。 此設置不會影響管理員。" + +msgid "Use this to set a custom URL for %p. Please note that you need to manually replicate %s in this URL." +msgstr "使用此選項可為%p設置自定義URL。 請注意,您需要在此URL中手動複製%s。" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2028 +msgid "Cookie law compliance" +msgstr "Cookie的法規" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2034 +msgid "Enable this to display a message that complies with the EU Cookie law requirements. Note: You only need this if your website is hosted in the EU and if you add tracking cookies." +msgstr "啟用它以顯示一條消息來符合歐盟的Cookie法規. 注意: 假如您的網站託管在歐盟又需要增加Cookie跟蹤, 您必須啟用它." + +#: ../../../app/themes/Peafowl/views/dashboard.php:2044 +#: ../../../app/themes/Peafowl/views/settings.php:463 +#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25 +msgid "Save changes" +msgstr "儲存變更" + +#: ../../../app/themes/Peafowl/views/dashboard.php:2067 +#: ../../../app/themes/Peafowl/views/settings.php:477 +msgid "Check the errors to proceed." +msgstr "請檢查錯誤後繼續" + +msgid "Play GIF" +msgstr "播放 GIF" + +msgid "Load full resolution" +msgstr "讀取全等解像度" + +msgid "Do you really want to approve this image? The image will go public if you approve it." +msgstr "您真的要刪除所有選定的內容嗎? 這是無法撤消的。" + +#: ../../../app/themes/Peafowl/views/image.php:136 +msgid "Added to %a and categorized in %c" +msgstr "加入 %a 和分類至 %c" + +#: ../../../app/themes/Peafowl/views/image.php:138 +#, php-format +msgid "Added to %s" +msgstr "加入 %s" + +#: ../../../app/themes/Peafowl/views/image.php:143 +#, php-format +msgid "Uploaded to %s" +msgstr "上傳至%s" + +#: ../../../app/themes/Peafowl/views/image.php:145 +#, php-format +msgid "Uploaded %s" +msgstr "已上傳至%s" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "Less Exif data" +msgstr "更少的Exif數據" + +#: ../../../app/themes/Peafowl/views/image.php:157 +msgid "More Exif data" +msgstr "更多的Exif數據" + +#: ../../../app/themes/Peafowl/views/image.php:198 +#: ../../../app/themes/Peafowl/views/image.php:204 +msgid "Album ID" +msgstr "相簿ID" + +#: ../../../app/themes/Peafowl/views/index.php:15 +msgid "Upload and share your images." +msgstr "上傳並分享你的照片" + +#: ../../../app/themes/Peafowl/views/index.php:17 +#, php-format +msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." +msgstr "拖放在您任何想要的地方進行圖像上傳. %s 的圖片大小限制, 直接的圖片連結, BBCode代碼, HTML代碼, 縮圖." + +#: ../../../app/themes/Peafowl/views/index.php:25 +msgid "Start uploading" +msgstr "開始上傳" + +#: ../../../app/themes/Peafowl/views/index.php:79 +msgid "Sign up to unlock all the features" +msgstr "註冊即可啟用所有的功能" + +#: ../../../app/themes/Peafowl/views/index.php:80 +msgid "Manage your content, create private albums, customize your profile and more." +msgstr "管理您的內容, 建立您的個人相簿, 自訂您的個人資料, 展示您的個人主頁和更多" + +msgid "Sign in with your account" +msgstr "使用您的帳戶登錄" + +#: ../../../app/themes/Peafowl/header.php:301 +#, php-format +msgid "Don't have an account? <a href='%s'>Sign up</a> now." +msgstr "沒有帳號? <a href='%s'>馬上註冊</a>." + +#: ../../../app/routes/route.logout.php:29 +#: ../../../app/themes/Peafowl/views/logout.php:8 +msgid "Logged out" +msgstr "登出" + +#: ../../../app/themes/Peafowl/views/logout.php:12 +#, php-format +msgid "You have been logged off %s. Hope to see you soon." +msgstr "您已登出 %s , 希望很快再見到您" + +#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10 +#: ../../../app/themes/Peafowl/views/account/email-changed.php:11 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16 +#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26 +#: ../../../app/themes/Peafowl/views/account/password-reset.php:16 +#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13 +#: ../../../app/themes/Peafowl/views/logout.php:13 +#: ../../../app/themes/Peafowl/views/request-denied.php:13 +msgid "Go to homepage" +msgstr "轉到主頁" + +#: ../../../app/themes/Peafowl/views/maintenance.php:7 +msgid "Website under maintenance" +msgstr "網站正在維護中" + +#: ../../../app/themes/Peafowl/views/maintenance.php:8 +msgid "We're performing scheduled maintenance tasks in the website. Please come back in a few minutes." +msgstr "我們在進行例行的網站維護任務. 請稍後再回來" + +msgid "This content is password protected." +msgstr "此內容已被密碼保護." + +msgid "Please enter your password to continue." +msgstr "請輸入您的密碼進行下一步." + +msgid "Send" +msgstr "寄出" + +msgid "Add image uploading to your website, blog or forum by installing our upload plugin. It provides image uploading to any website by placing a button that will allow your users to directly upload images to our service and it will automatically handle the codes needed for insertion. All features included like drag and drop, remote upload, image resizing and more." +msgstr "通過安裝我們的上傳插件,將圖片上傳到您的網站,博客或論壇。 它通過放置一個按鈕,允許您的用戶直接將圖像上傳到我們的服務,並將自動處理插入所需的代碼,從而將圖像上傳到任何網站。 所有功能包括拖放,遠程上傳,圖像大小調整等。" + +msgid "Supported software" +msgstr "支持的軟件" + +msgid "supported software" +msgstr "支持的軟件" + +#, php-format +msgid "The plugin works in any website with user-editable content and for %sv, it will place an upload button that will match the target editor toolbar so no extra customization is needed." +msgstr "該插件適用於任何具有用戶可編輯內容的網站,對於%sv,它將放置一個與目標編輯器工具欄匹配的上傳按鈕,因此無需額外的自定義。" + +msgid "Add it to your website" +msgstr "將其添加到您的網站" + +msgid "options" +msgstr "選項" + +#, php-format +msgid "Copy and paste the plugin code into your website HTML code (preferably inside the head section). There are plenty %o to make it fit better to your needs." +msgstr "將插件代碼複製並粘貼到您的網站HTML代碼中(最好在head內)。 有足夠的%o使它更適合您的需求。" + +msgid "Basic options" +msgstr "基本選項" + +msgid "Color palette" +msgstr "調色板" + +msgid "Button color scheme" +msgstr "按鈕配色方案" + +msgid "Embed codes that will be auto-inserted in editor box" +msgstr "嵌入代碼將自動插入到編輯框中" + +msgid "Sibling selector" +msgstr "Sibling 選擇器" + +msgid "Sibling element selector where to place the button next to" +msgstr "Sibling元素選擇器的旁邊放置按鈕" + +msgid "Sibling position" +msgstr "Sibling順序" + +msgid "After" +msgstr "後" + +msgid "Before" +msgstr "先" + +msgid "Position relative to sibling element" +msgstr "相對於sibling元素的位置" + +msgid "Advanced options" +msgstr "高級選項" + +#, php-format +msgid "The plugin has a large set of additional options that allow full customization. You can use custom HTML, CSS, own color palette, set observers and more. Check the %d and the plugin source to get a better idea of these advanced options." +msgstr "該插件有一大堆附加選項,可以完全自定義。 您可以使用自定義HTML,CSS,自己的調色板,設置监控服务等。 檢查%d和插件源以更好地了解這些高級選項。" + +#: ../../../app/themes/Peafowl/views/request-denied.php:12 +msgid "You either don't have permission to access this page or the link has expired." +msgstr "您沒有權限訪問此網頁或連結已過期" + +msgid "Search results" +msgstr "搜尋結果" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Do you really want to delete this user? This can't be undone." +msgstr "你真的要刪除這個用戶? 此操作不能恢復" + +#: ../../../app/themes/Peafowl/views/settings.php:36 +#: ../../../app/themes/Peafowl/views/user.php:65 +msgid "Delete user" +msgstr "刪除用戶" + +#: ../../../app/themes/Peafowl/views/settings.php:81 +msgid "Register date" +msgstr "註冊日期" + +#: ../../../app/themes/Peafowl/views/settings.php:91 +msgid "Registration IP" +msgstr "註冊 IP" + +#: ../../../app/themes/Peafowl/views/settings.php:109 +msgid "Valid" +msgstr "有效" + +#: ../../../app/themes/Peafowl/views/settings.php:110 +msgid "Banned" +msgstr "禁止訪問" + +#: ../../../app/themes/Peafowl/views/settings.php:111 +msgid "Awaiting email" +msgstr "等待啟用" + +#: ../../../app/themes/Peafowl/views/settings.php:112 +msgid "Awaiting confirmation" +msgstr "等待確認" + +#: ../../../app/themes/Peafowl/views/settings.php:144 +#: ../../../app/themes/Peafowl/views/signup.php:40 +msgid "%i to %f characters<br>Letters, numbers and \"_\"" +msgstr "%i 到 %f 個字元<br>字母, 數字 和 \"_\" 符號" + +#: ../../../app/themes/Peafowl/views/settings.php:166 +msgid "Auto delete uploads" +msgstr "自動刪除上傳" + +#: ../../../app/themes/Peafowl/views/settings.php:174 +msgid "This setting will apply to all your image uploads by default. You can override this setting on each upload." +msgstr "該設置將適用於在預設情況下所有的圖片上傳. 您可以使每個上傳應用此設置." + +#: ../../../app/themes/Peafowl/views/settings.php:186 +#, php-format +msgid "Keep image <a %s>Exif data</a> on upload" +msgstr "在上傳時保留圖像的 <a %s>Exif資料</a>" + +#: ../../../app/themes/Peafowl/views/settings.php:193 +msgid "Newsletter" +msgstr "電子報" + +#: ../../../app/themes/Peafowl/views/settings.php:196 +#, php-format +msgid "Send me emails with news about %s" +msgstr "寄給我與 %s 的消息的電子郵件" + +#: ../../../app/themes/Peafowl/views/settings.php:202 +msgid "Content settings" +msgstr "內容設定" + +#: ../../../app/themes/Peafowl/views/settings.php:205 +msgid "Show not safe content in listings (from others)" +msgstr "在列表中顯示不安全內容(來自其他人) " + +#: ../../../app/themes/Peafowl/views/settings.php:215 +msgid "Language" +msgstr "語言" + +#: ../../../app/themes/Peafowl/views/settings.php:245 +msgid "Timezone" +msgstr "時區" + +#: ../../../app/themes/Peafowl/views/settings.php:296 +msgid "Current password" +msgstr "目前的密碼" + +#: ../../../app/themes/Peafowl/views/settings.php:297 +msgid "Enter your current password" +msgstr "請輸入目前的密碼" + +#: ../../../app/themes/Peafowl/views/settings.php:305 +msgid "New password" +msgstr "新密碼" + +#: ../../../app/themes/Peafowl/views/settings.php:311 +msgid "Confirm new password" +msgstr "確認新密碼" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "Add a password to be able to login using your username or email." +msgstr "新增一個密碼才能使用您的用戶名或電子郵件地址登入" + +#: ../../../app/themes/Peafowl/views/settings.php:319 +msgid "This user doesn't have a password. Add one using this form." +msgstr "這個用戶沒有輸入密碼. 新增一個密碼使用這種形式登入" + +#: ../../../app/themes/Peafowl/views/login.php:40 +#: ../../../app/themes/Peafowl/views/settings.php:323 +msgid "Enter your password" +msgstr "請輸入您的密碼" + +#: ../../../app/themes/Peafowl/views/account/password-reset.php:34 +#: ../../../app/themes/Peafowl/views/settings.php:328 +msgid "Confirm password" +msgstr "確認密碼" + +#: ../../../app/themes/Peafowl/views/settings.php:329 +msgid "Re-enter your password" +msgstr "請再輸入您的密碼" + +msgid "Make my profile and identity totally private" +msgstr "僅自己可見我的個人資料" + +msgid "Enable this if you want to act like an anonymous user" +msgstr "如果您想把自己變成匿名使用者請啟用他" + +#: ../../../app/themes/Peafowl/views/settings.php:367 +msgid "This is your real name, not your username." +msgstr "這是你的個性暱稱. 不是你的用戶名" + +#: ../../../app/themes/Peafowl/views/settings.php:371 +msgid "http://yourwebsite.com" +msgstr "http://yourwebsite.com" + +#: ../../../app/themes/Peafowl/views/settings.php:375 +msgid "Bio" +msgstr "個人簡介" + +#: ../../../app/themes/Peafowl/views/settings.php:376 +msgid "Tell us a little bit about you" +msgstr "告訴我們一點關於你的資訊" + +#: ../../../app/themes/Peafowl/views/settings.php:387 +msgid "User has no connections." +msgstr "用戶沒有任何連結" + +msgid "Link your account to external services to be able to login here." +msgstr "將您的帳戶鏈接到外部服務,以便能夠登錄和共享內容。" + +#: ../../../app/themes/Peafowl/views/settings.php:398 +#, php-format +msgid "Do you really want to disconnect %s from this account?" +msgstr "你真的想從這個帳戶斷開 %s 嗎?" + +#: ../../../app/themes/Peafowl/views/settings.php:399 +#, php-format +msgid "This account is connected to %s" +msgstr "此帳戶連接到 %s" + +#: ../../../app/themes/Peafowl/views/settings.php:401 +#, php-format +msgid "Do you really want to disconnect your %s account?" +msgstr "你真的要斷開您的 %s 帳戶?" + +#: ../../../app/themes/Peafowl/views/settings.php:403 +#, php-format +msgid "You will be logged out and you won't be able to login to your account using this %s account." +msgstr "您將被登出, 而您將無法使用此 %s 的帳戶登入到您的帳戶." + +#: ../../../app/themes/Peafowl/views/settings.php:405 +#, php-format +msgid "Your account is connected to %s" +msgstr "您的帳戶已連接到 %s" + +#: ../../../app/themes/Peafowl/views/settings.php:410 +msgid "disconnect" +msgstr "斷開" + +#: ../../../app/themes/Peafowl/views/settings.php:423 +#, php-format +msgid "Connect %s" +msgstr "連結%s" + +#: ../../../app/loader.php:279 +#: ../../../app/themes/Peafowl/views/settings.php:441 +msgid "Feel free to browse and discover all my shared images and albums." +msgstr "隨意瀏覽, 探索我所有分享的圖片和相冊" + +#: ../../../app/themes/Peafowl/views/settings.php:446 +msgid "Button" +msgstr "按鈕" + +#: ../../../app/loader.php:282 +#: ../../../app/themes/Peafowl/views/settings.php:447 +msgid "View all my images" +msgstr "查看我所有的圖片" + +msgid "Login" +msgstr "登錄" + +#, php-format +msgid "Already have an account? %s now." +msgstr "已有帳號? 立即 %s。" + +#: ../../../app/themes/Peafowl/views/signup.php:45 +msgid "resend account activation" +msgstr "重寄帳號驗證" + +#, php-format +msgid "If you have already signed up maybe you need to request to %s to activate your account." +msgstr "如果您已經註冊,則可能需要請求 %s 以激活您的帳戶。" + +#, php-format +msgid "You can also %s." +msgstr "您也可以 %s 。" + +#, php-format +msgid "I'm at least %s years old" +msgstr "我已年滿 %s 歲" + +msgid "terms" +msgstr "條款" + +msgid "privacy policy" +msgstr "隱私政策" + +msgid "I agree to the %terms_link and %privacy_link" +msgstr "我同意%terms_link和%privacy_link" + +#: ../../../app/themes/Peafowl/views/user.php:15 +msgid "Upload profile background" +msgstr "上傳背景圖片" + +#: ../../../app/themes/Peafowl/views/user.php:17 +msgid "Change background" +msgstr "更新背景圖片" + +#: ../../../app/themes/Peafowl/views/settings.php:352 +#: ../../../app/themes/Peafowl/views/user.php:21 +msgid "Upload new image" +msgstr "上傳新圖片" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?" +msgstr "該個人主頁的背景圖片將被刪除. 這將不能恢復. 您確定要刪除個人主頁的背景圖片嗎?" + +#: ../../../app/themes/Peafowl/views/user.php:22 +msgid "Delete background" +msgstr "刪除背景" + +#: ../../../app/themes/Peafowl/views/user.php:75 +msgid "Follower" +msgid_plural "Followers" +msgstr[0] "粉絲" + +#: ../../../app/themes/Peafowl/views/user.php:81 +msgid "Follow" +msgstr "跟隨" + +#: ../../../app/loader.php:180 +msgid "You have been forbidden to use this website." +msgstr "你被禁止進入這個網站" + +msgid "Plugin" +msgstr "插件" + +#, php-format +msgid "Page %s" +msgstr "第 %s 頁" + +#: ../../../app/routes/route.page.php:61 +#: ../../../content/pages/default/contact.php:7 +msgid "General questions/comments" +msgstr "一般問題/意見" + +#: ../../../app/routes/route.page.php:62 +#: ../../../content/pages/default/contact.php:8 +msgid "DMCA complaint" +msgstr "DMCA檢舉" + +#: ../../../app/routes/route.page.php:74 +#: ../../../content/pages/default/contact.php:22 +msgid "Invalid message" +msgstr "無效的訊息" + +#: ../../../app/routes/route.page.php:77 +#: ../../../content/pages/default/contact.php:25 +msgid "Invalid subject" +msgstr "無效的主題" + +#: ../../../app/routes/route.page.php:122 +#: ../../../content/pages/default/contact.php:69 +msgid "Mail error" +msgstr "電子郵件錯誤" + +msgid "Message sent" +msgstr "訊息發送" + +#: ../../../app/routes/route.page.php:119 +msgid "Message sent. We will get in contact soon." +msgstr "訊息已寄出. 我們很快地與您聯絡." + +msgid "If you want to send a message fill the form below." +msgstr "如果您想發出一個訊息, 請填寫下面的表格." + +msgid "Your name" +msgstr "您的名字" + +msgid "Subject" +msgstr "主題" + +#: ../../../lib/Peafowl/peafowl.js:25 ../../../lib/Peafowl/peafowl.js:492 +#: ../../../lib/Peafowl/peafowl.min.js:1 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "All the changes that you have made will be lost if you continue." +msgstr "如果你繼續你所做的所有更改將消失" + +#: ../../../lib/Peafowl/peafowl.js:476 ../../../lib/Peafowl/peafowl.min.js:30 +msgid "Changes saved successfully." +msgstr "儲存成功" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "Go back to form" +msgstr "回到表單" + +#: ../../../lib/Peafowl/peafowl.js:492 ../../../lib/Peafowl/peafowl.min.js:31 +msgid "continue anyway" +msgstr "繼續" + +#: ../../../lib/Peafowl/peafowl.js:2506 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Saving" +msgstr "儲存中" + +#: ../../../lib/Peafowl/peafowl.js:2511 ../../../lib/Peafowl/peafowl.min.js:155 +msgid "Sending" +msgstr "傳送中" + +#: ../../../lib/Peafowl/peafowl.js:2591 ../../../lib/Peafowl/peafowl.min.js:158 +msgid "Confirm action" +msgstr "確認操作" + +#: ../../../lib/Peafowl/peafowl.js:2603 ../../../lib/Peafowl/peafowl.min.js:159 +msgid "information" +msgstr "資訊" + diff --git a/app/legacy/commands/bulk-importer.php b/app/legacy/commands/bulk-importer.php new file mode 100644 index 0000000..a13228a --- /dev/null +++ b/app/legacy/commands/bulk-importer.php @@ -0,0 +1,46 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Import; +use function Chevereto\Legacy\feedbackAlert; +use function Chevereto\Legacy\isSafeToExecute; +use function Chevereto\Vars\env; + +if (!(bool) env()['CHEVERETO_ENABLE_BULK_IMPORTER']) { + feedbackAlert('Bulk importer is disabled'); + die(255); +} +$threadID = getenv('THREAD_ID') ?: 0; +$loop = 1; +do { + Import::refresh(); + $jobs = Import::autoJobs(); + if ($jobs === []) { + echo "~They took our jobs!~\n"; + echo "[OK] No jobs left.\n"; + die(0); + } + $id = $jobs[0]['import_id']; + $import = new Import(); + $import->id = $id; + $import->thread = (int) $threadID; + $import->get(); + if ($import->isLocked()) { + $import->edit(['status' => 'paused']); + echo "> Job locked for id #$id\n"; + } else { + echo "* Processing job id #$id\n"; + $import->process(); + } + $loop++; +} while (isSafeToExecute()); +echo "--\n[OK] Automatic importing looped $loop times ~ /dashboard/bulk for stats\n"; +die(0); diff --git a/app/legacy/commands/cipher.php b/app/legacy/commands/cipher.php new file mode 100644 index 0000000..c65f9d8 --- /dev/null +++ b/app/legacy/commands/cipher.php @@ -0,0 +1,113 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Encryption\EncryptionInstance; +use Chevereto\Encryption\Interfaces\EncryptionInterface; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\Storage; +use Chevereto\Legacy\Classes\TwoFactor; +use function Chevereto\Legacy\feedback; +use function Chevereto\Legacy\feedbackAlert; +use function Chevereto\Legacy\feedbackSeparator; +use function Chevereto\Legacy\feedbackStep; + +/** + * @var EncryptionInterface $fromEncryption + * @var EncryptionInterface $toEncryption + * @var string $doing + */ + +feedbackAlert('👀 Secrets will be shown decrypted'); +feedbackStep($doing, 'settings'); +new EncryptionInstance($fromEncryption); +$settings = Settings::get(); +new EncryptionInstance($toEncryption); +foreach (Settings::ENCRYPTED_NAMES as $key) { + $value = $settings[$key] ?? ''; + feedback("- $key: $value"); + Settings::update([$key => $value]); +} +feedbackSeparator(); +feedbackStep($doing, 'storages'); +new EncryptionInstance($fromEncryption); +$storages = Storage::get(); +new EncryptionInstance($toEncryption); +foreach ($storages as $storage) { + feedback('> Storage #' . $storage['id']); + $values = []; + foreach (Storage::ENCRYPTED_NAMES as $key) { + $value = $storage[$key] ?? ''; + feedback(" $key: $value"); + $values[$key] = $value; + } + Storage::update( + id: $storage['id'], + values: $values, + checkCredentials: false + ); +} +feedbackSeparator(); +feedbackStep($doing, 'two-factor secrets'); +$twoFactors = DB::get('two_factors', [], 'AND', ['field' => 'id', 'order' => 'desc']); +foreach ($twoFactors as $twoFactor) { + new EncryptionInstance($fromEncryption); + $twoFactor = TwoFactor::get($twoFactor['two_factor_id']); + feedback('> Two-factor #' . $twoFactor['id']); + new EncryptionInstance($toEncryption); + $secret = $twoFactor['secret']; + $values = [ + 'secret' => $secret, + ]; + feedback("- secret: $secret"); + TwoFactor::update( + id: $twoFactor['id'], + values: $values, + ); +} +feedbackSeparator(); +feedbackStep($doing, 'login provider secrets'); +new EncryptionInstance($fromEncryption); +$loginProviders = Login::getProviders('all'); +new EncryptionInstance($toEncryption); +foreach ($loginProviders as $name => $loginProvider) { + feedback('> ' . $loginProvider['label']); + $values = []; + foreach (Login::ENCRYPTED_PROVIDER_NAMES as $key) { + $value = $loginProvider[$key] ?? ''; + feedback(" $key: $value"); + $values[$key] = $value; + } + Login::updateProvider( + provider: $name, + values: $values, + ); +} +feedbackSeparator(); +feedbackStep($doing, 'login connection tokens'); +$connections = DB::get(table: 'login_connections', values: 'all', sort: ['field' => 'id', 'order' => 'desc']); +foreach ($connections as $connection) { + new EncryptionInstance($fromEncryption); + $connection = Login::getConnection($connection['login_connection_id']); + feedback("> Login connection #" . $connection['id']); + new EncryptionInstance($toEncryption); + $token = $connection['token']; + $values = [ + 'token' => $token, + ]; + Login::updateConnection( + id: (int) $connection['id'], + values: $values, + ); + $tokenString = serialize($token); + feedback("- token: $tokenString"); +} diff --git a/app/legacy/commands/cron.php b/app/legacy/commands/cron.php new file mode 100644 index 0000000..bdede94 --- /dev/null +++ b/app/legacy/commands/cron.php @@ -0,0 +1,160 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Config\Config; +use function Chevereto\Legacy\checkUpdates; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Lock; +use Chevereto\Legacy\Classes\Queue; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\feedbackAlert; +use function Chevereto\Legacy\feedbackStep; +use function Chevereto\Legacy\G\datetime_add; +use function Chevereto\Legacy\G\datetime_sub; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\isSafeToExecute; +use function Chevereto\Legacy\updateCheveretoNews; +use function Chevereto\Vars\env; + +if (getSetting('maintenance')) { + echo "[!] Chevereto is in maintenance mode.\n"; + die(255); +} +$jobs = ['deleteExpiredImages', 'cleanUnconfirmedUsers', 'removeDeleteLog', 'checkForNews']; +if ((bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']) { + $jobs[] = 'storageDelete'; +} +if ((bool) env()['CHEVERETO_ENABLE_CHECK_UPDATES']) { + $jobs[] = 'checkForUpdates'; +} +if (Config::enabled()->htaccessCheck()) { + $jobs[] = 'checkHtaccess'; +} +shuffle($jobs); +foreach ($jobs as $job) { + if (!isSafeToExecute()) { + echo "[OK] Exit - (time is up)\n"; + writeLastRan(); + } + feedbackStep('Job:', $job); + $job(); +} +writeLastRan(); +function writeLastRan(): void +{ + $datetimegmt = datetimegmt(); + Settings::update(['cron_last_ran' => datetimegmt()]); + echo "--\n✅ [DONE] Cron tasks ran @ $datetimegmt\n"; +} +function echoLocked(string $job): void +{ + echo "* [!] Job $job is locked ~ skipping\n"; +} +function storageDelete(): void +{ + $job = 'storage-delete'; + $lock = new Lock($job); + if ($lock->create()) { + Queue::process(['type' => $job]); + $lock->destroy(); + + return; + } + echoLocked($job); +} +function deleteExpiredImages(): void +{ + $job = 'delete-expired-images'; + $lock = new Lock($job); + if ($lock->create()) { + Image::deleteExpired(50); + $lock->destroy(); + + return; + } + echoLocked($job); +} +function cleanUnconfirmedUsers(): void +{ + $job = 'clean-unconfirmed-users'; + $lock = new Lock($job); + if ($lock->create()) { + User::cleanUnconfirmed(5); + $lock->destroy(); + + return; + } + echoLocked($job); +} +function removeDeleteLog(): void +{ + $job = 'remove-delete-log'; + $lock = new Lock($job); + if ($lock->create()) { + $db = DB::getInstance(); + $db->query('DELETE FROM ' . DB::getTable('deletions') . ' WHERE deleted_date_gmt <= :time;'); + $db->bind(':time', datetime_sub(datetimegmt(), 'P3M')); + $db->exec(); + $lock->destroy(); + + return; + } + echoLocked($job); +} +function checkForNews(): void +{ + if (!checkoutUpdate('news_check_datetimegmt')) { + feedbackAlert('Skipping news check'); + + return; + } + L10n::setLocale(Settings::get('default_language')); + $job = 'check-news'; + $lock = new Lock($job); + if ($lock->create()) { + updateCheveretoNews(); + $lock->destroy(); + + return; + } + echoLocked($job); +} +function checkForUpdates(): void +{ + if (!checkoutUpdate('update_check_datetimegmt')) { + feedbackAlert('Skipping updates check'); + + return; + } + L10n::setLocale(Settings::get('default_language')); + $job = 'check-updates'; + $lock = new Lock($job); + if ($lock->create()) { + checkUpdates(); + $lock->destroy(); + + return; + } + echoLocked($job); +} +function checkoutUpdate(string $datetimeSetting): bool +{ + return is_null(Settings::get($datetimeSetting)) + || datetime_add(Settings::get($datetimeSetting), 'P1D') < datetimegmt(); +} +function checkHtaccess() +{ + include __DIR__ . '/htaccess-enforce.php'; +} diff --git a/app/legacy/commands/decrypt-secrets.php b/app/legacy/commands/decrypt-secrets.php new file mode 100644 index 0000000..84aaf24 --- /dev/null +++ b/app/legacy/commands/decrypt-secrets.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Encryption\assertEncryption; +use function Chevereto\Encryption\encryption; +use Chevereto\Encryption\NullEncryption; +use function Chevereto\Legacy\feedback; +use function Chevereto\Legacy\feedbackAlert; + +try { + assertEncryption(); +} catch (Throwable $e) { + feedbackAlert($e->getMessage()); + die(255); +} + +$doing = 'Decrypting'; +$fromEncryption = encryption(); +$toEncryption = new NullEncryption(); +feedbackAlert('🔐 Assuming database encrypted'); +require __DIR__ . '/cipher.php'; + +feedback('🔓 Secrets decrypted'); diff --git a/app/legacy/commands/encrypt-secrets.php b/app/legacy/commands/encrypt-secrets.php new file mode 100644 index 0000000..4e8228a --- /dev/null +++ b/app/legacy/commands/encrypt-secrets.php @@ -0,0 +1,40 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Encryption\assertEncryption; +use function Chevereto\Encryption\encryption; +use Chevereto\Encryption\Encryption; +use Chevereto\Encryption\Key; +use Chevereto\Encryption\NullEncryption; +use function Chevereto\Legacy\feedback; +use function Chevereto\Legacy\feedbackAlert; + +try { + assertEncryption(); +} catch (Throwable $e) { + feedbackAlert($e->getMessage()); + die(255); +} +$opts = getopt('C:k:') ?: []; +$key = $opts['k'] ?? ''; +$doing = 'Encrypting'; +$fromEncryption = $key === '' + ? new NullEncryption() + : new Encryption(new Key($opts['k'])); +$toEncryption = encryption(); +feedbackAlert( + $key === '' + ? '🔓 Assuming no database encryption' + : '🔑 Using provided key for decrypting database' +); +require __DIR__ . '/cipher.php'; + +feedback('🔐 Secrets encrypted'); diff --git a/app/legacy/commands/htaccess-checksum.php b/app/legacy/commands/htaccess-checksum.php new file mode 100644 index 0000000..bdc252e --- /dev/null +++ b/app/legacy/commands/htaccess-checksum.php @@ -0,0 +1,53 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\G\forward_slash; +use function Chevereto\Legacy\G\rrmdir; +use function Chevereto\Legacy\getSetting; +use function Safe\file_get_contents; +use function Safe\mkdir; + +echo "* Checksum Apache HTTP Web Server .htaccess files\n"; +$apacheDir = PATH_APP . 'apache/'; +$checksumFile = $apacheDir . 'checksums.php'; +rrmdir($apacheDir); +mkdir($apacheDir); +$files = glob(PATH_PUBLIC . "{*/,*/*/,*/*/*/}.htaccess", GLOB_BRACE); +$noPhpHtaccess = PATH_PUBLIC . 'content/.htaccess'; +$denyHtaccess = PATH_PUBLIC . 'app/.htaccess'; +$imagesHtaccess = PATH_PUBLIC . (getSetting('upload_image_path') ?? 'images') + . '/.htaccess'; +$importingHtaccess = PATH_PUBLIC . 'importing/.htaccess'; +if (!file_exists($imagesHtaccess)) { + $files[] = $imagesHtaccess; + file_put_contents($imagesHtaccess, file_get_contents($noPhpHtaccess)); +} +if (!file_exists($importingHtaccess)) { + $files[] = $importingHtaccess; + file_put_contents($importingHtaccess, file_get_contents($denyHtaccess)); +} +$files = array_unique($files); +$checksums = []; +foreach ($files as $file) { + $relativeFile = str_replace(PATH_PUBLIC, '', forward_slash($file)); + $md5File = md5_file($file); + file_put_contents($apacheDir . $md5File, file_get_contents($file)); + $checksums[$relativeFile] = $md5File; + echo ' - ' . $relativeFile . ' > ' . $md5File . "\n"; +} +file_put_contents( + $checksumFile, + '<?php return ' + . var_export($checksums, true) + . ';' +); +echo '✅ [DONE] Checksums stored at ' . $checksumFile . "\n"; +die(0); diff --git a/app/legacy/commands/htaccess-enforce.php b/app/legacy/commands/htaccess-enforce.php new file mode 100644 index 0000000..174ccc4 --- /dev/null +++ b/app/legacy/commands/htaccess-enforce.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +echo "* Enforce .htaccess files\n"; +$apacheDir = PATH_APP . 'apache/'; +$checksumFile = $apacheDir . 'checksums.php'; +$checksums = include $checksumFile; +$changed = false; +foreach ($checksums as $file => $md5) { + $absoluteFile = PATH_PUBLIC . $file; + $md5File = file_exists($absoluteFile) + ? md5_file($absoluteFile) + : null; + if ($md5File != $md5) { + if (file_exists($absoluteFile) && !is_writable($absoluteFile)) { + echo "Unable to write $absoluteFile file\n"; + die(255); + } + file_put_contents($absoluteFile, file_get_contents($apacheDir . $md5)); + $changed = true; + echo ' - Checksum enforced for ' . $file . "\n"; + } +} +$changedMessage = !$changed ? ' (everything OK)' : ''; +echo "✅ [DONE] Enforce completed$changedMessage\n"; diff --git a/app/legacy/commands/install.php b/app/legacy/commands/install.php new file mode 100644 index 0000000..9abeaa6 --- /dev/null +++ b/app/legacy/commands/install.php @@ -0,0 +1,18 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\getSetting; + +if (getSetting('chevereto_version_installed') !== null) { + echo "[ERROR] Chevereto is already installed, try with the update command\n"; + die(255); +} +require_once PATH_APP_LEGACY_INSTALL . 'installer.php'; diff --git a/app/legacy/commands/langs.php b/app/legacy/commands/langs.php new file mode 100644 index 0000000..2f3c6c1 --- /dev/null +++ b/app/legacy/commands/langs.php @@ -0,0 +1,59 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Filesystem\directoryForPath; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\G\Gettext; +use function Chevereto\Legacy\G\unlinkIfExists; +use function Chevereto\Legacy\get_available_languages; + +echo "* Re-cache all languages\n"; +echo "---\n"; +L10n::cacheFilesystemLocales(); +$languages = array_keys(get_available_languages()); +directoryForPath(L10n::PATH_CACHE)->createIfNotExists(); +directoryForPath(L10n::PATH_CACHE_OVERRIDES)->createIfNotExists(); +foreach ($languages as $lang) { + $filename = $lang . '.po'; + $language_file = PATH_APP_LANGUAGES . $filename; + $language_override_file = PATH_APP_LANGUAGES . 'overrides/' . $filename; + $language_handling = [ + 'base' => [ + 'file' => $language_file, + 'cache_path' => L10n::PATH_CACHE, + 'table' => [], + ], + 'override' => [ + 'file' => $language_override_file, + 'cache_path' => L10n::PATH_CACHE_OVERRIDES, + 'table' => [], + ] + ]; + foreach ($language_handling as $k => $v) { + $cache_path = $v['cache_path']; + $cache_file = basename($v['file']) . '.cache.php'; + if (!file_exists($v['file'])) { + continue; + } + $cache = $cache_path . $cache_file; + unlinkIfExists($cache); + new Gettext([ + 'file' => $v['file'], + 'cache_filepath' => $cache, + 'cache_header' => $k == 'base', + ]); + } + echo "$lang\n"; +} +echo "---\n"; +echo L10n::LOCALES_AVAILABLE_FILEPATH . "\n"; +echo "💯 [OK] Languages re-cached\n"; +die(0); diff --git a/app/legacy/commands/password-reset.php b/app/legacy/commands/password-reset.php new file mode 100644 index 0000000..824062d --- /dev/null +++ b/app/legacy/commands/password-reset.php @@ -0,0 +1,46 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\String\randomString; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\User; + +$opts = getopt('C:u:') ?: []; +$missing = []; +if (!isset($opts['u'])) { + echo "[Error] Missing username" . "\n"; + die(255); +} +$password = randomString(24); +$user = User::getSingle($opts['u'], 'username'); +if ($user === []) { + echo "[Error] User not found" . "\n"; + die(255); +} +$changed = Login::changePassword( + userId: $user['id'], + password: $password, + update_session: false +); +if (!$changed) { + // echo "[NOTICE] User doesn't have a password" . "\n"; + $added = Login::addPassword( + userId: $user['id'], + password: $password, + update_session: false + ); + if (!$added) { + echo "[Error] Failed to add password" . "\n"; + die(255); + } +} +echo $password . "\n"; +die(0); diff --git a/app/legacy/commands/setting-get.php b/app/legacy/commands/setting-get.php new file mode 100644 index 0000000..0268f7c --- /dev/null +++ b/app/legacy/commands/setting-get.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Type\getType; +use Chevereto\Legacy\Classes\Settings; + +$opts = getopt('C:k:t::') ?: []; +if (!isset($opts['k'])) { + echo "[ERROR] Missing setting key\n"; + die(255); +} +if (!Settings::hasKey($opts['k'])) { + echo "[ERROR] Setting key doesn't exists\n"; + die(255); +} +function toItalic(string $text): string +{ + return "\e[3m$text\e[0m"; +} +$value = Settings::get($opts['k']); +$echoValue = match (getType($value)) { + 'null' => toItalic('null'), + 'boolean' => toItalic($value ? 'true' : 'false'), + default => $value, +}; +echo "$echoValue\n"; +if (isset($opts['t'])) { + $typeset = Settings::getTypeset($opts['k']); + echo "%($typeset)\n"; +} +die(0); diff --git a/app/legacy/commands/setting-update.php b/app/legacy/commands/setting-update.php new file mode 100644 index 0000000..554e291 --- /dev/null +++ b/app/legacy/commands/setting-update.php @@ -0,0 +1,37 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Settings; + +$opts = getopt('C:v:k:') ?: []; +$missing = []; +foreach (['k', 'v'] as $opt) { + if (!isset($opts[$opt])) { + $missing[] = $opt; + } +} +if ($missing !== []) { + echo "[Error] Missing -" . implode(' -', $missing) . "\n"; + die(255); +} +if (!Settings::hasKey($opts['k'])) { + echo "[ERROR] Setting key doesn't exists\n"; + die(255); +} +/** @var int|string|null $value */ +$value = $opts['v'] ?? null; +$typeset = Settings::getTypeset($opts['k']); +if ($typeset === 'bool') { + $value = (int) ($value == 1 || strtolower($value) === 'true'); +} +Settings::update([$opts['k'] => $value]); +require 'setting-get.php'; +die(0); diff --git a/app/legacy/commands/update.php b/app/legacy/commands/update.php new file mode 100644 index 0000000..5f9c672 --- /dev/null +++ b/app/legacy/commands/update.php @@ -0,0 +1,18 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\getSetting; + +if (getSetting('chevereto_version_installed') === null) { + echo "[ERROR] Chevereto is not installed, try with the install command.\n"; + die(255); +} +require_once PATH_APP_LEGACY_INSTALL . 'installer.php'; diff --git a/app/legacy/entrypoints/cli.php b/app/legacy/entrypoints/cli.php new file mode 100644 index 0000000..3471695 --- /dev/null +++ b/app/legacy/entrypoints/cli.php @@ -0,0 +1,54 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\loaderHandler; + +if (PHP_SAPI !== 'cli') { + header('HTTP/1.0 403 Forbidden'); + die("403 Forbidden\n"); +} +$opts = getopt('C:') ?: []; +if ($opts === []) { + echo "Missing -C command\n"; + die(255); +} else { + $access = $opts['C']; + $options = [ + 'cron', + 'update', + 'encrypt-secrets', + 'decrypt-secrets', + 'htaccess-checksum', + 'htaccess-enforce', + 'bulk-importer', + 'install', + 'langs', + 'password-reset', + 'setting-get', + 'setting-update', + ]; + if (!in_array($access, $options)) { + echo "Invalid command\n"; + die(255); + } +} +define('ACCESS', $access); +require_once __DIR__ . '/../load/php-boot.php'; +require_once loaderHandler( + $_COOKIE, + $_ENV, + $_FILES, + $_GET, + $_POST, + $_REQUEST, + $_SERVER, + $_SESSION ?? [] +); diff --git a/app/legacy/entrypoints/index.php b/app/legacy/entrypoints/index.php new file mode 100644 index 0000000..23d216b --- /dev/null +++ b/app/legacy/entrypoints/index.php @@ -0,0 +1,26 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\loaderHandler; + +define('ACCESS', 'web'); + +require_once __DIR__ . '/../load/php-boot.php'; +require_once loaderHandler( + $_COOKIE, + $_ENV, + $_FILES, + $_GET, + $_POST, + $_REQUEST, + $_SERVER, + $_SESSION ?? [] +); diff --git a/app/legacy/install/installer.php b/app/legacy/install/installer.php new file mode 100644 index 0000000..c3bffbf --- /dev/null +++ b/app/legacy/install/installer.php @@ -0,0 +1,2269 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Filesystem\filePhpForPath; +use function Chevere\Message\message; +use function Chevere\String\randomString; +use Chevere\Throwable\Exceptions\LogicException; +use function Chevereto\Encryption\encryptValues; +use function Chevereto\Encryption\hasEncryption; +use function Chevereto\Encryption\randomKey; +use function Chevereto\Legacy\chevereto_die; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\bytes_to_mb; +use function Chevereto\Legacy\G\debug; +use function Chevereto\Legacy\G\get_ini_bytes; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\hasEnvDbInfo; +use function Chevereto\Legacy\G\logger; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\set_status_header; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\get_chevereto_version; +use function Chevereto\Legacy\getPreCodeHtml; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\env; +use function Chevereto\Vars\post; + +if (PHP_SAPI !== 'cli') { + /** @var Handler $handler */ + $context = $handler->request_array()[0] ?? false; + if (!$context) { + throw new LogicException(message('Missing context')); + } + if (!in_array($context, ['install', 'update'])) { + throw new LogicException(message('Invalid context')); + } +} +if (!is_null(getSetting('chevereto_version_installed')) && (PHP_SAPI !== 'cli' && !Login::isAdmin())) { + set_status_header(403); + + throw new LogicException(message('Request denied. You must be an admin to be here.'), 403); +} +if (function_exists('opcache_reset')) { + try { + opcache_reset(); + // @phpstan-ignore-next-line + } catch (Throwable) { + // Ignore, Zend OPcache API is restricted by "restrict_api" configuration directive + } +} +$doctitles = [ + 'connect' => 'Database connection', + 'ready' => 'Ready to install', + 'finished' => 'Installation complete', + 'env' => 'Update app/env.php', + 'already' => 'Already installed', + 'update' => 'Update needed', + 'updated' => 'Update complete', + 'update_failed' => 'Update failed', +]; +$doing = 'connect'; +$db_array = [ + 'db_host' => true, + 'db_name' => true, + 'db_user' => true, + 'db_pass' => false, + 'db_tablePrefix' => false, + 'db_port' => false, +]; +$error = false; +$db_conn_error = "Can't connect to the target database. The server replied with this:<br>%s<br><br>Please fix your MySQL info."; +$settings_updates = [ + '3.0.0' => [ + 'analytics_code' => '', + 'auto_language' => 1, + 'chevereto_version_installed' => APP_VERSION, + 'comment_code' => '', + 'crypt_salt' => randomString(8), + 'default_language' => 'en', + 'default_timezone' => 'America/Santiago', + 'email_from_email' => 'from@chevereto.example', + 'email_from_name' => 'Chevereto', + 'email_incoming_email' => 'incoming@chevereto.example', + 'email_mode' => 'mail', + 'email_smtp_server' => '', + 'email_smtp_server_password' => '', + 'email_smtp_server_port' => '', + 'email_smtp_server_security' => '', + 'email_smtp_server_username' => '', + 'enable_uploads' => 1, + // 'facebook' => 0, // Deprecated in 4.0.0-beta.11 + // 'facebook_app_id' => '', + // 'facebook_app_secret' => '', + 'flood_uploads_day' => '1000', + 'flood_uploads_hour' => '500', + 'flood_uploads_minute' => '50', + 'flood_uploads_month' => '10000', + 'flood_uploads_notify' => 0, + 'flood_uploads_protection' => 1, + 'flood_uploads_week' => '5000', + // 'google' => 0, // Deprecated in 4.0.0-beta.11 + // 'google_client_id' => '', + // 'google_client_secret' => '', + 'guest_uploads' => 1, + 'listing_items_per_page' => '24', + 'maintenance' => 0, + 'captcha' => 0, //recaptcha + 'captcha_secret' => '', //recaptcha_private_key + 'captcha_sitekey' => '', //recaptcha_public_key + 'captcha_threshold' => '5', //recaptcha_threshold + 'theme' => 'Peafowl', + // 'twitter' => 0, // Deprecated in 4.0.0-beta.11 + // 'twitter_api_key' => '', + // 'twitter_api_secret' => '', + 'upload_filenaming' => 'original', + 'upload_image_path' => 'images', + 'upload_max_filesize_mb' => (string) min(25, bytes_to_mb(get_ini_bytes(ini_get('upload_max_filesize')))), + 'upload_medium_size' => '500', // upload_medium_width + 'upload_storage_mode' => 'datefolder', + 'upload_thumb_height' => '320', + 'upload_thumb_width' => '320', + 'website_description' => 'A free image hosting service powered by Chevereto', + 'website_doctitle' => 'Chevereto image hosting', + 'website_name' => 'Chevereto', + ], + '3.0.1' => null, + '3.0.2' => null, + '3.0.3' => null, + '3.0.4' => null, + '3.0.5' => null, + + '3.1.0' => [ + 'website_explore_page' => 1, + //'theme_peafowl_home_uid' => '1' + ], + '3.1.1' => null, + '3.1.2' => null, + + '3.2.0' => [ + 'twitter_account' => 'chevereto', + //'theme_peafowl_download_button' => 1, + 'enable_signups' => 1, + ], + '3.2.1' => null, + '3.2.2' => [ + 'favicon_image' => 'default/favicon.png', + 'logo_image' => 'default/logo.png', + 'logo_vector' => 'default/logo.svg', + 'theme_custom_css_code' => '', + 'theme_custom_js_code' => '', + ], + '3.2.3' => [ + 'website_keywords' => 'image sharing, image hosting, chevereto', + // 'logo_vector_enable' => 1, + 'watermark_enable' => 0, + 'watermark_image' => 'default/watermark.png', + 'watermark_position' => 'center center', + 'watermark_margin' => '10', + 'watermark_opacity' => '50', + //'banner_home_before_cover' => NULL, + 'banner_home_after_cover' => '', + 'banner_home_after_listing' => '', + 'banner_image_image-viewer_foot' => '', + 'banner_image_image-viewer_top' => '', + 'banner_image_after_image-viewer' => '', + 'banner_image_after_header' => '', + 'banner_image_before_header' => '', + 'banner_image_footer' => '', + 'banner_content_tab-about_column' => '', + 'banner_content_before_comments' => '', + 'banner_explore_after_top' => '', + 'banner_user_after_top' => '', + 'banner_user_before_listing' => '', + 'banner_album_before_header' => '', + 'banner_album_after_header' => '', + ], + '3.2.4' => null, + '3.2.5' => [ + 'api_v1_key' => randomString(64), + ], + '3.2.6' => null, + + '3.3.0' => [ + 'listing_pagination_mode' => 'classic', + 'banner_listing_before_pagination' => '', + 'banner_listing_after_pagination' => '', + 'show_nsfw_in_listings' => 0, + 'show_banners_in_nsfw' => 0, + //'theme_peafowl_nsfw_upload_checkbox' => 1, + //'privacy_mode' => 'public', + //'website_mode' => 'public', + 'website_privacy_mode' => 'public', + 'website_content_privacy_mode' => 'default', + ], + '3.3.1' => null, + '3.3.2' => [ + 'show_nsfw_in_random_mode' => 0, + ], + + '3.4.0' => [ + //'theme_peafowl_tone' => 'light', + //'theme_peafowl_image_listing_size' => 'fixed' + ], + '3.4.1' => null, + '3.4.2' => null, + '3.4.3' => [ + 'cdn' => 0, + 'cdn_url' => '', + ], + '3.4.4' => [ + 'website_search' => 1, + 'website_random' => 1, + 'theme_logo_height' => '', + 'theme_show_social_share' => 1, + // 'theme_show_embed_content' => 1, // deprecated @3.14.2 + 'theme_show_embed_uploader' => 1, + ], + '3.4.5' => [ + // 'user_routing' => 1, // deprecated @4.0.0.beta.7 + 'require_user_email_confirmation' => 1, + 'require_user_email_social_signup' => 1, + ], + '3.4.6' => null, + '3.5.0' => [ + //'active_storage' => NULL // deprecated + ], + '3.5.1' => null, + '3.5.2' => null, + '3.5.3' => null, + '3.5.4' => null, + '3.5.5' => [ + 'last_used_storage' => '', + ], + '3.5.6' => null, + '3.5.7' => [ + // 'vk' => 0, // Deprecated in 4.0.0-beta.11 + // 'vk_client_id' => '', + // 'vk_client_secret' => '', + ], + '3.5.8' => null, + '3.5.9' => null, + '3.5.10' => null, + '3.5.11' => null, + '3.5.12' => [ + 'theme_download_button' => 1, + 'theme_nsfw_upload_checkbox' => 1, + // 'theme_tone' => 'light', // Renamed in 4.0.0.beta.5 + 'theme_image_listing_sizing' => 'fixed', + ], + '3.5.13' => null, + '3.5.14' => null, + '3.5.15' => [ + 'listing_columns_phone' => '3', + 'listing_columns_phablet' => '3', + 'listing_columns_tablet' => '4', + 'listing_columns_laptop' => '5', + 'listing_columns_desktop' => '6', + //'logged_user_logo_link' => 'homepage', // Removed in 3.7.0 + 'homepage_style' => 'landing', + 'homepage_cover_image' => 'default/home_cover.jpg', + 'homepage_uids' => '', + 'homepage_endless_mode' => 0, + ], + '3.5.16' => null, + '3.5.17' => null, + '3.5.18' => null, + '3.5.19' => [ + 'user_image_avatar_max_filesize_mb' => '1', + 'user_image_background_max_filesize_mb' => '2', + ], + '3.5.20' => [ + 'theme_image_right_click' => 0, + ], + '3.5.21' => null, + '3.6.0' => [ + // 'minify_enable' => 0, // Removed in 3.19 + 'theme_show_exif_data' => 1, + // 'theme_top_bar_color' => 'white', // Removed in 3.15.0 + //'theme_main_color' => null, // Removed in 4.0.0.beta.4 + //'theme_top_bar_button_color' => 'blue', // Removed in 4.0.0.beta.4 + 'logo_image_homepage' => 'default/logo_homepage.png', + 'logo_vector_homepage' => 'default/logo_homepage.svg', + 'homepage_cta_color' => 'black', + 'homepage_cta_outline' => 0, + 'watermark_enable_guest' => 1, + 'watermark_enable_user' => 1, + 'watermark_enable_admin' => 1, + ], + '3.6.1' => [ + 'homepage_title_html' => '', + 'homepage_paragraph_html' => '', + 'homepage_cta_html' => '', + 'homepage_cta_fn' => '', + 'homepage_cta_fn_extra' => '', + 'language_chooser_enable' => 1, + 'languages_disable' => '', + ], + '3.6.2' => [ + 'website_mode' => 'community', + 'website_mode_personal_routing' => '', //'single_user_mode_routing' + 'website_mode_personal_uid' => '', //'single_user_mode_id' + ], + '3.6.3' => null, + '3.6.4' => [ + 'enable_cookie_law' => 0, + 'theme_nsfw_blur' => 0, + ], + '3.6.5' => [ + 'watermark_target_min_width' => '100', + 'watermark_target_min_height' => '100', + 'watermark_percentage' => '4', + 'watermark_enable_file_gif' => 0, + ], + '3.6.6' => [ + 'id_padding' => '0', // 0-> Update | 5000-> new install + ], + '3.6.7' => null, + '3.6.8' => [ + 'upload_image_exif' => 1, + 'upload_image_exif_user_setting' => 1, + 'enable_expirable_uploads' => 1, + //'banner_home_before_cover_nsfw' => NULL, // Deprecate + 'banner_home_after_cover_nsfw' => '', + 'banner_home_after_listing_nsfw' => '', + 'banner_image_image-viewer_foot_nsfw' => '', + 'banner_image_image-viewer_top_nsfw' => '', + 'banner_image_after_image-viewer_nsfw' => '', + 'banner_image_after_header_nsfw' => '', + 'banner_image_before_header_nsfw' => '', + 'banner_image_footer_nsfw' => '', + 'banner_content_tab-about_column_nsfw' => '', + 'banner_content_before_comments_nsfw' => '', + 'banner_explore_after_top_nsfw' => '', + 'banner_user_after_top_nsfw' => '', + 'banner_user_before_listing_nsfw' => '', + 'banner_album_before_header_nsfw' => '', + 'banner_album_after_header_nsfw' => '', + 'banner_listing_before_pagination_nsfw' => '', + 'banner_listing_after_pagination_nsfw' => '', + ], + '3.6.9' => null, + '3.7.0' => null, + '3.7.1' => null, + '3.7.2' => [ + 'upload_medium_size' => '750', + 'upload_medium_fixed_dimension' => 'width', + ], + '3.7.3' => [ + 'enable_followers' => 1, + 'enable_likes' => 1, + 'enable_consent_screen' => 0, + 'user_minimum_age' => '', + 'consent_screen_cover_image' => 'default/consent-screen_cover.jpg', + ], + '3.7.4' => null, + '3.7.5' => [ + 'enable_redirect_single_upload' => 0, + 'route_image' => 'image', + 'route_album' => 'album', + ], + '3.8.0' => [ + 'enable_duplicate_uploads' => 0, + 'update_check_datetimegmt' => '', + 'update_check_notified_release' => APP_VERSION, + 'update_check_display_notification' => 1, + ], + '3.8.1' => null, + '3.8.2' => null, + '3.8.3' => null, // Chevereto Free hook + '3.8.4' => [ + 'banner_home_before_title' => '', + 'banner_home_after_cta' => '', + 'banner_home_before_title_nsfw' => '', + 'banner_home_after_cta_nsfw' => '', + // 'upload_enabled_image_formats' => 'jpg,png,bmp,gif', + 'upload_threads' => '2', + 'enable_automatic_updates_check' => 1, + 'comments_api' => 'js', + 'disqus_shortname' => '', + 'disqus_public_key' => '', + 'disqus_secret_key' => '', + ], + '3.8.5' => null, + '3.8.6' => null, + '3.8.7' => null, + '3.8.8' => null, + '3.8.9' => [ + 'image_load_max_filesize_mb' => '3', + ], + '3.8.10' => null, + '3.8.11' => null, + '3.8.12' => [ + 'upload_max_image_width' => '0', + 'upload_max_image_height' => '0', + ], + '3.8.13' => null, + '3.9.0' => [ + 'auto_delete_guest_uploads' => '', + ], + '3.9.1' => null, + '3.9.2' => null, + '3.9.3' => null, + '3.9.4' => null, + '3.9.5' => null, + '3.10.0' => null, + '3.10.1' => null, + '3.10.2' => [ + 'enable_user_content_delete' => 1, + ], + '3.10.3' => [ + 'enable_plugin_route' => 1, + 'sdk_pup_url' => '', + ], + '3.10.4' => null, + '3.10.5' => null, + '3.10.6' => [ + 'website_explore_page_guest' => 1, + 'explore_albums_min_image_count' => '1', + 'upload_max_filesize_mb_guest' => '0.5', + 'notify_user_signups' => 0, + 'listing_viewer' => 1, + ], + '3.10.7' => null, + '3.10.8' => null, + '3.10.9' => null, + '3.10.10' => null, + '3.10.11' => null, + '3.10.12' => null, + '3.10.13' => null, + '3.10.14' => null, + '3.10.15' => null, + '3.10.16' => null, + '3.10.17' => null, + '3.10.18' => null, + '3.11.0' => null, + '3.11.1' => [ + 'seo_image_urls' => 1, + 'seo_album_urls' => 1, + ], + '3.12.0' => [ + // 'website_https' => 'auto', + ], + '3.12.1' => null, + '3.12.2' => null, + '3.12.3' => null, + '3.12.4' => [ + 'upload_gui' => 'js', + 'captcha_api' => 'hcaptcha', //recaptcha_version(2,3),hcaptcha + ], + '3.12.5' => null, + '3.12.6' => null, + '3.12.7' => null, + '3.12.8' => [ + 'force_captcha_contact_page' => 1, //force_recaptcha_contact_page + ], + '3.12.9' => null, + '3.12.10' => null, + '3.13.0' => [ + 'dump_update_query' => 0, + ], + '3.13.1' => null, + '3.13.2' => null, + '3.13.3' => null, + '3.13.4' => [ + 'enable_powered_by' => 1, + 'akismet' => 0, + 'akismet_api_key' => '', + 'stopforumspam' => 0, + ], + '3.13.5' => null, + '3.14.0' => [ + 'upload_enabled_image_formats' => 'jpg,png,bmp,gif,webp', + ], + '3.14.1' => null, + '3.15.0' => [ + 'hostname' => null, + 'theme_show_embed_content_for' => 'all', // none,users,all + ], + '3.15.1' => null, + '3.15.2' => null, + '3.16.0' => [ + 'moderatecontent' => 0, + 'moderatecontent_key' => '', + 'moderatecontent_block_rating' => 'a', // ,a,t + 'moderatecontent_flag_nsfw' => 'a', // ,a,t + 'moderatecontent_auto_approve' => 0, + 'moderate_uploads' => '', // ,all,guest, + 'image_lock_nsfw_editing' => 0, + ], + '3.16.1' => null, + '3.16.2' => null, + '3.17.0' => null, + '3.17.1' => null, + '3.17.2' => null, + '3.18.0' => null, + '3.18.1' => null, + '3.18.2' => null, + '3.18.3' => null, + '3.20.0' => null, + '3.20.1' => null, + '3.20.2' => null, + '3.20.3' => null, + '3.20.4' => null, + '3.20.5' => null, + '3.20.6' => null, + '3.20.7' => null, + '3.20.8' => [ + 'enable_uploads_url' => 0, + ], + '3.20.9' => null, + '3.20.10' => null, + '3.20.11' => null, + '3.20.12' => null, + '3.20.13' => [ + 'chevereto_news' => 'a:0:{}', + 'cron_last_ran' => '0000-00-00 00:00:00', + ], + '3.20.14' => null, + '3.20.15' => null, + '3.20.16' => null, + '4.0.0.beta.1' => null, + '4.0.0.beta.2' => null, + '4.0.0.beta.3' => null, + '4.0.0.beta.4' => null, + '4.0.0.beta.5' => [ + 'logo_type' => 'vector', // vector,image,text, + 'theme_palette' => '0', + ], + '4.0.0.beta.6' => [ + 'enable_xr' => 0, + 'xr_host' => env()['CHEVERETO_SERVICING'] === 'docker' + ? 'host.docker.internal' + : 'localhost', + 'xr_port' => '27420', + 'xr_key' => '', + ], + '4.0.0.beta.7' => [ + 'route_user' => 'user', + 'root_route' => 'user', + ], + '4.0.0.beta.8' => null, + '4.0.0.beta.9' => [ + 'arachnid' => 0, + 'arachnid_key' => '', + 'image_first_tab' => 'info', //embeds,about,info + ], + '4.0.0-beta.10' => null, + '4.0.0-beta.11' => [ + 'website_random_guest' => 1, + 'website_search_guest' => 1, + 'debug_errors' => 0, + 'news_check_datetimegmt' => '', + ], + '4.0.0' => null, + '4.0.1' => null, + '4.0.2' => null, + '4.0.3' => null, + '4.0.4' => [ + 'stop_words' => + // https://dev.mysql.com/doc/refman/8.0/en/string-literals.html#character-escape-sequences + <<<'SPAM' + richard blank + costa rica[\\\'s]*? call center + call center sales + SPAM, + ], + '4.0.5' => null, +]; +$cheveretoFreeMap = [ + '1.0.0' => '3.8.3', + '1.0.1' => '3.8.3', + '1.0.2' => '3.8.3', + '1.0.3' => '3.8.4', + '1.0.4' => '3.8.4', + '1.0.5' => '3.8.8', + '1.0.6' => '3.8.10', + '1.0.7' => '3.8.11', + '1.0.8' => '3.8.13', + '1.0.9' => '3.9.5', + '1.0.10' => '3.10.5', + '1.0.11' => '3.10.5', + '1.0.12' => '3.10.5', + '1.0.13' => '3.10.5', + '1.1.0' => '3.10.18', + '1.1.1' => '3.10.18', + '1.1.2' => '3.10.18', + '1.1.3' => '3.10.18', + '1.1.4' => '3.10.18', + '1.2.0' => '3.15.2', + '1.2.1' => '3.15.2', + '1.2.2' => '3.15.2', + '1.2.3' => '3.15.2', + '1.3.0' => '3.16.2', + '1.4.0' => '3.16.2', + '1.5.0' => '3.16.2', + '1.6.0' => '3.16.2', + '1.6.1' => '3.16.2', + '1.6.2' => '3.16.2', +]; +$settings_delete = [ + 'banner_home_before_cover', + 'banner_home_before_cover_nsfw', + 'cloudflare', // 3.15.0 + 'theme_show_embed_content', // 3.15.0 + 'theme_top_bar_color', // 3.15.0 + 'minify_enable', // 3.19.0, + 'theme_main_color', + 'theme_top_bar_button_color', + 'website_https', // 4.0.5 +]; +$settings_rename = [ + // 3.5.12 + 'theme_peafowl_home_uid' => 'homepage_uids', + 'theme_peafowl_download_button' => 'theme_download_button', + 'theme_peafowl_nsfw_upload_checkbox' => 'theme_nsfw_upload_checkbox', + 'theme_peafowl_image_listing_size' => 'theme_image_listing_sizing', + // 3.5.15 + 'theme_home_uids' => 'homepage_uids', + 'theme_home_endless_mode' => 'homepage_endless_mode', + // 3.6.2 + 'single_user_mode_routing' => 'website_mode_personal_routing', + 'single_user_mode_id' => 'website_mode_personal_uid', + // 3.7.2 + 'upload_medium_width' => 'upload_medium_size', + // 4.0.3 + 'recaptcha_version' => 'captcha_api', + 'recaptcha' => 'captcha', + 'recaptcha_private_key' => 'captcha_secret', + 'recaptcha_public_key' => 'captcha_sitekey', + 'recaptcha_threshold' => 'captcha_threshold', + 'force_recaptcha_contact_page' => 'force_captcha_contact_page', +]; +$chv_initial_settings = []; +foreach ($settings_updates as $k => $v) { + if (is_null($v)) { + continue; + } + $chv_initial_settings += $v; +} + +try { + $is_2X = ((int) DB::get('info', ['key' => 'version'])) > 0; +} catch (Exception $e) { + $is_2X = false; +} +$isMariaDB = false; +if (hasEnvDbInfo()) { + if (!DB::hasInstance()) { + DB::fromEnv(); + } + $db = DB::getInstance(); + $sqlServerVersion = $db->getAttr(PDO::ATTR_SERVER_VERSION); + $db->closeCursor(); + $innoDBrequiresVersion = '5.6'; // default:mysql + if (stripos($sqlServerVersion, 'MariaDB') !== false) { + $isMariaDB = true; + $innoDBrequiresVersion = '10.0.5'; + $explodeSqlVersion = explode('-', $sqlServerVersion, 2); + foreach ($explodeSqlVersion as $pos => $ver) { + if (str_starts_with($ver, 'MariaDB')) { + continue; + } + $sqlServerVersion = $ver; + } + } + $doing = 'ready'; +} +$fulltext_engine = 'InnoDB'; +$installed_version = getSetting('chevereto_version_installed'); +$maintenance = getSetting('maintenance'); +if (isset($installed_version, $cheveretoFreeMap[$installed_version])) { + $installed_version = $cheveretoFreeMap[$installed_version]; +} +if (isset($installed_version)) { + $doing = 'already'; +} +$opts = getopt('C:') ?: []; +$safe_post = Handler::var('safe_post'); +if (!empty(post())) { + $params = post(); + if (isset(post()['debug'])) { + $params['debug'] = true; + } +} elseif ($opts !== []) { + if ($doing == 'already') { + $opts = getopt('C:d::'); + } else { + $opts = getopt('C:u:e:x:d::'); + $params = []; + $missing = []; + foreach ([ + 'username' => 'u', + 'email' => 'e', + 'password' => 'x', + ] as $k => $o) { + $params[$k] = $opts[$o] ?? null; + if (!isset($params[$k])) { + $missing[] = $k . " -$o"; + } + } + if ($missing !== []) { + logger('Missing ' . implode(', ', $missing) . "\n"); + die(255); + } + } + $params['dump'] = isset($opts['d']); +} +if ($isMariaDB && isset($sqlServerVersion)) { + $explodeMariaVersion = explode('.', $sqlServerVersion); + $mariaVersion = ($explodeMariaVersion[0] ?? '10') + . '.' + . ($explodeMariaVersion[1] ?? ''); + switch ($mariaVersion) { + case '10.0': + case '10.1': + case '10.2': + case '10.3': + $mysql_version = '5'; // 5.7 + + break; + case '10.4': + case '10.5': + case '10.6': + default: + $mysql_version = '8'; // 8.0 + + break; + } +} else { + $mysql_version = version_compare($sqlServerVersion ?? '8', '8', '>=') + ? '8' + : '5'; +} +$dbSchemaVer = sprintf('mysql-%s', $mysql_version); +$paramsCheck = $params ?? []; +unset($paramsCheck['dump']); + +$query_populate_stats = + <<<SQL + TRUNCATE TABLE `%table_prefix%stats`; + INSERT INTO `%table_prefix%stats` (stat_id, stat_date_gmt, stat_type) + VALUES ("1", NULL, "total") + ON DUPLICATE KEY UPDATE stat_type=stat_type; + + UPDATE `%table_prefix%stats` + SET stat_images = (SELECT IFNULL(COUNT(*), 0) FROM `%table_prefix%images`), + stat_albums = (SELECT IFNULL(COUNT(*), 0) FROM `%table_prefix%albums`), + stat_users = (SELECT IFNULL(COUNT(*), 0) FROM `%table_prefix%users`), + stat_image_views = (SELECT IFNULL(SUM(image_views), 0) FROM `%table_prefix%images`), + stat_disk_used = (SELECT IFNULL(SUM(image_size) + SUM(image_thumb_size) + SUM(image_medium_size), 0) + FROM `%table_prefix%images`) + WHERE stat_type = "total"; + + INSERT INTO `%table_prefix%stats` (stat_type, stat_date_gmt, stat_images, stat_image_views, stat_disk_used) + SELECT sb.stat_type, sb.stat_date_gmt, sb.stat_images, sb.stat_image_views, sb.stat_disk_used + FROM (SELECT "date" AS stat_type, + DATE(image_date_gmt) AS stat_date_gmt, + COUNT(*) AS stat_images, + SUM(image_views) AS stat_image_views, + SUM(image_size + image_thumb_size + image_medium_size) AS stat_disk_used + FROM `%table_prefix%images` + GROUP BY DATE(image_date_gmt)) AS sb + ON DUPLICATE KEY UPDATE stat_images = sb.stat_images; + + INSERT INTO `%table_prefix%stats` (stat_type, stat_date_gmt, stat_users) + SELECT sb.stat_type, sb.stat_date_gmt, sb.stat_users + FROM (SELECT "date" AS stat_type, DATE(user_date_gmt) AS stat_date_gmt, COUNT(*) AS stat_users + FROM `%table_prefix%users` + GROUP BY DATE(user_date_gmt)) AS sb + ON DUPLICATE KEY UPDATE stat_users = sb.stat_users; + + INSERT INTO `%table_prefix%stats` (stat_type, stat_date_gmt, stat_albums) + SELECT sb.stat_type, sb.stat_date_gmt, sb.stat_albums + FROM (SELECT "date" AS stat_type, DATE(album_date_gmt) AS stat_date_gmt, COUNT(*) AS stat_albums + FROM `%table_prefix%albums` + GROUP BY DATE(album_date_gmt)) AS sb + ON DUPLICATE KEY UPDATE stat_albums = sb.stat_albums; + + UPDATE `%table_prefix%users` + SET user_content_views = COALESCE( + (SELECT SUM(image_views) FROM `%table_prefix%images` WHERE image_user_id = user_id GROUP BY user_id), "0"); + SQL; + +if (isset($installed_version) && empty($paramsCheck)) { + $db_settings_keys = []; + + try { + $db_settings = DB::get('settings', 'all'); + foreach ($db_settings as $k => $v) { + $db_settings_keys[] = $v['setting_name']; + } + } catch (Exception $e) { + } + if (( + !empty($db_settings_keys) + && count($chv_initial_settings) !== count($db_settings_keys) + ) || (version_compare(APP_VERSION, $installed_version, '>')) + ) { + if (!array_key_exists(APP_VERSION, $settings_updates)) { + throw new LogicException( + message: message('Outdated installation files. Re-upload %folder% folder with the one from %version%') + ->withStrtr('%folder%', 'app/legacy/install') + ->withStrtr('%version%', APP_VERSION) + ); + } + $schema = []; + $raw_schema = DB::queryFetchAll('SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA="' . env()['CHEVERETO_DB_NAME'] . '" AND TABLE_NAME LIKE "' . env()['CHEVERETO_DB_TABLE_PREFIX'] . '%";'); + foreach ($raw_schema as $k => $v) { + $TABLE = preg_replace('#' . env()['CHEVERETO_DB_TABLE_PREFIX'] . '#i', '', strtolower($v['TABLE_NAME']), 1); + $COLUMN = $v['COLUMN_NAME']; + if (!array_key_exists($TABLE, $schema)) { + $schema[$TABLE] = []; + } + $schema[$TABLE][$COLUMN] = $v; + } + $triggers_to_remove = [ + 'album_insert', + 'album_delete', + 'follow_insert', + 'follow_delete', + 'image_insert', + 'image_update', + 'image_delete', + 'like_insert', + 'like_delete', + 'notification_insert', + 'notification_update', + 'notification_delete', + 'user_insert', + 'user_delete', + ]; + $db_triggers = DB::queryFetchAll('SELECT TRIGGER_NAME FROM INFORMATION_SCHEMA.TRIGGERS'); + if ($db_triggers) { + $drop_trigger_sql = null; + foreach ($db_triggers as $k => $v) { + $trigger = $v['TRIGGER_NAME']; + if (in_array($v['TRIGGER_NAME'], $triggers_to_remove)) { + $drop_trigger = 'DROP TRIGGER IF EXISTS `' . $v['TRIGGER_NAME'] . '`;' . "\n"; + $drop_trigger_sql .= $drop_trigger; + } + } + if (!is_null($drop_trigger_sql)) { + $drop_trigger_sql = rtrim($drop_trigger_sql, "\n"); + $remove_triggers = false; + $remove_triggers = DB::queryExecute($drop_trigger_sql); + if ($remove_triggers === 0) { + chevereto_die('', 'To proceed you will need to run these queries in your database server: <br><br> <textarea class="resize-vertical highlight r5">' . $drop_trigger_sql . '</textarea>', "Can't remove table triggers"); + } + } + } + $DB_indexes = []; + $raw_indexes = DB::queryFetchAll('SELECT DISTINCT TABLE_NAME, INDEX_NAME, INDEX_TYPE FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = "' . env()['CHEVERETO_DB_NAME'] . '"'); + foreach ($raw_indexes as $k => $v) { + $TABLE = preg_replace('#' . env()['CHEVERETO_DB_TABLE_PREFIX'] . '#i', '', strtolower($v['TABLE_NAME']), 1); + $INDEX_NAME = $v['INDEX_NAME']; + if (!array_key_exists($TABLE, $DB_indexes)) { + $DB_indexes[$TABLE] = []; + } + $DB_indexes[$TABLE][$INDEX_NAME] = $v; + } + $CHV_indexes = []; + foreach (new DirectoryIterator(PATH_APP . 'schemas/' . $dbSchemaVer) as $fileInfo) { + if ($fileInfo->isDot() || $fileInfo->isDir() || !array_key_exists($fileInfo->getBasename('.sql'), $schema)) { + continue; + } + $crate_table = file_get_contents(realpath($fileInfo->getPathname())); + if (preg_match_all('/(?:(?:FULLTEXT|UNIQUE)\s*)?KEY `(\w+)` \(.*\)/', $crate_table, $matches)) { + $CHV_indexes[$fileInfo->getBasename('.sql')] = array_combine($matches[1], $matches[0]); + } + } + $engines = []; + $raw_engines = DB::queryFetchAll('SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = "' . env()['CHEVERETO_DB_NAME'] . '" AND TABLE_NAME LIKE "' . env()['CHEVERETO_DB_TABLE_PREFIX'] . '%";'); + $update_table_storage = []; + foreach ($raw_engines as $k => $v) { + $TABLE = preg_replace('#' . env()['CHEVERETO_DB_TABLE_PREFIX'] . '#i', '', strtolower($v['TABLE_NAME']), 1); + $engines[$TABLE] = $v['ENGINE']; + if ($v['ENGINE'] !== 'InnoDB') { + $update_table_storage[] = 'ALTER TABLE ' . $v['TABLE_NAME'] . ' ENGINE = InnoDB;'; + } + } + if ($update_table_storage !== []) { + chevereto_die('', '<p>Database table storage engine needs to be updated to InnoDB. Run the following command(s) in your MySQL console:</p><textarea class="resize-vertical highlight r5">' . implode("\n", $update_table_storage) . '</textarea><p>Review <a href="https://dev.mysql.com/doc/refman/8.0/en/converting-tables-to-innodb.html" target="_blank">Converting Tables from MyISAM to InnoDB</a>.</p>', "Convert MyISAM tables to InnoDB"); + } + $isUtf8mb4 = version_compare($installed_version, '3.12.10', '>'); + if (version_compare($installed_version, '4.0.0-beta.11', '<')) { + $loginProviders = array_map( + function (string $value) { + return getSetting($value); + }, + [ + 'facebook' => 'facebook', + 'twitter' => 'twitter', + 'google' => 'google', + 'vk' => 'vk', + 'facebook_key' => 'facebook_app_id', + 'facebook_secret' => 'facebook_app_secret', + 'twitter_key' => 'twitter_api_key', + 'twitter_secret' => 'twitter_api_secret', + 'google_key' => 'google_client_id', + 'google_secret' => 'google_client_secret', + 'vk_key' => 'vk_client_id', + 'vk_secret' => 'vk_client_secret', + ] + ); + if (hasEncryption()) { + $loginProviders = encryptValues( + [ + 'facebook_key', + 'facebook_secret', + 'twitter_key', + 'twitter_secret', + 'google_key', + 'google_secret', + 'vk_key', + 'vk_secret', + ], + $loginProviders + ); + } + $queryLoginProviders = + <<<SQL + UPDATE `%table_prefix%login_providers` + SET `login_provider_key_id` = ':key', `login_provider_key_secret` = ':secret', `login_provider_is_enabled` = ':is_enabled' + WHERE `login_provider_name` = ':provider'; + SQL; + $loginProvidersBinds = []; + foreach (['facebook', 'twitter', 'google', 'vk'] as $provider) { + $loginProvidersBinds[] = [ + ':provider' => $provider === 'vk' ? 'Vkontakte' : $provider, + ':is_enabled' => (int) $loginProviders[$provider], + ':key' => addcslashes($loginProviders[$provider . '_key'] ?? '', "'"), + ':secret' => addcslashes($loginProviders[$provider . '_secret'] ?? '', "'") + ]; + } + $loginUpdateQueries = ''; + foreach ($loginProvidersBinds as $binds) { + $loginUpdateQueries .= strtr($queryLoginProviders, $binds); + } + } + if (version_compare($installed_version, '4.0.0', '<')) { + $passwordAlbums = DB::queryFetchAll( + DB::getQueryWithTablePrefix( + <<<SQL + SELECT album_id id, album_password password + FROM `%table_prefix%albums` + WHERE album_password IS NOT NULL; + SQL + ) + ); + $albumUpdateQueries = ''; + foreach ($passwordAlbums as $album) { + $hashAlbum = password_hash($album['password'], PASSWORD_BCRYPT); + $albumUpdateQueries .= + <<<SQL + UPDATE `%table_prefix%albums` + SET album_password = '{$hashAlbum}' + WHERE album_id = {$album['id']}; + + SQL; + } + } + $update_table = [ + '3.1.0' => [ + 'logins' => [ + 'login_resource_id' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + 'login_secret' => [ + 'op' => 'MODIFY', + 'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0 + 'prop' => "DEFAULT NULL COMMENT 'The secret part'", + ], + ], + 'users' => [ + 'user_name' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'settings' => [ + 'setting_value' => [ + 'op' => 'MODIFY', + 'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0 + 'prop' => null, + ], + 'setting_default' => [ + 'op' => 'MODIFY', + 'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0 + 'prop' => null, + ], + ], + ], + '3.3.0' => [ + 'albums' => [ + 'album_privacy' => [ + 'op' => 'MODIFY', + 'type' => "enum('public','password','private','private_but_link','custom')", + 'prop' => "DEFAULT 'public'", + ], + ], + ], + '3.4.0' => [ + 'images' => [ + 'image_category_id' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'albums' => [ + 'album_description' => [ + 'op' => 'ADD', + 'type' => 'text', + 'prop' => null, + ], + ], + 'categories' => [], + ], + '3.5.0' => [ + 'images' => [ + 'image_original_exifdata' => [ + 'op' => 'MODIFY', + 'type' => 'longtext', + 'prop' => null, + ], + 'image_storage' => [ + 'op' => 'CHANGE', + 'to' => 'image_storage_mode', + 'type' => "enum('datefolder','direct','old')", + 'prop' => "NOT NULL DEFAULT 'datefolder'", + ], + 'image_chain' => [ + 'op' => 'ADD', + 'type' => 'tinyint(128)', + 'prop' => 'NOT NULL', + 'tail' => + <<<SQL + UPDATE `%table_prefix%images` set `image_chain` = 7; + SQL, + ], + ], + 'storages' => [], + 'storage_apis' => [], + ], + '3.5.3' => [ + 'storages' => [ + 'storage_region' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.5.5' => [ + 'queues' => [], + 'storages' => [ + 'storage_server' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + 'storage_capacity' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => 'DEFAULT NULL', + ], + 'storage_space_used' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "DEFAULT '0'", + 'tail' => + <<<SQL + UPDATE `%table_prefix%storages` SET storage_space_used = (SELECT SUM(image_size) AS count + FROM `%table_prefix%images` + WHERE image_storage_id = `%table_prefix%storages`.storage_id); + SQL, + ], + ], + 'images' => [ + 'image_thumb_size' => [ + 'op' => 'ADD', + 'type' => 'int(11)', + 'prop' => 'NOT NULL', + ], + 'image_medium_size' => [ + 'op' => 'ADD', + 'type' => 'int(11)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + ], + '3.5.7' => [ + 'queues' => [ + 'queue_type' => [ + 'op' => 'MODIFY', + 'type' => "enum('storage-delete')", + 'prop' => 'NOT NULL', + 'tail' => + <<<SQL + UPDATE `%table_prefix%queues` SET queue_type='storage-delete'; + SQL, + ], + ], + 'storages' => [ + 'storage_server' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.5.8' => [ + 'images' => [ + 'op' => 'ALTER', + 'prop' => 'ENGINE=%table_engine%; CREATE FULLTEXT INDEX `searchindex` ON `%table_prefix%images`(image_name, image_description, image_original_filename)', + ], + 'albums' => [ + 'op' => 'ALTER', + 'prop' => 'ENGINE=%table_engine%; CREATE FULLTEXT INDEX `searchindex` ON `%table_prefix%albums`(album_name, album_description)', + ], + 'users' => [ + 'op' => 'ALTER', + 'prop' => 'ENGINE=%table_engine%; CREATE FULLTEXT INDEX `searchindex` ON `%table_prefix%users`(user_name, user_username)', + ], + ], + '3.5.9' => [ + 'images' => [ + 'image_title' => [ + 'op' => 'ADD', + 'type' => 'varchar(100)', // 3.6.5 + 'prop' => 'DEFAULT NULL', + 'tail' => + <<<SQL + DROP INDEX searchindex ON `%table_prefix%images`; + UPDATE `%table_prefix%images` SET `image_title` = SUBSTRING(`image_description`, 1, 100); + UPDATE `%table_prefix%images` SET image_description = NULL WHERE image_title = image_description; + CREATE FULLTEXT INDEX searchindex ON `%table_prefix%images`(image_name, image_title, image_description, image_original_filename); + SQL, + ], + ], + 'albums' => [ + 'album_name' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(100)', // 3.6.5 + 'prop' => 'NOT NULL', + ], + ], + ], + '3.5.11' => [ + 'queues' => [ + 'queue_attempts' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT 0', + ], + 'queue_status' => [ + 'op' => 'ADD', + 'type' => "enum('pending','failed')", + 'prop' => "NOT NULL DEFAULT 'pending'", + ], + ], + ], + '3.5.12' => [ + 'query' => + <<<SQL + UPDATE `%table_prefix%settings` SET `setting_value` = 0, `setting_default` = 0, `setting_typeset` = "bool" + WHERE `setting_name` = "maintenance"; + SQL, + ], + '3.5.14' => [ + 'ip_bans' => [], + ], + '3.6.0' => [ + 'users' => [ + 'user_newsletter_subscribe' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '1'", + ], + 'user_show_nsfw_listings' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'user_bio' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.6.2' => [ + 'storages' => [ + 'storage_key' => [ + 'op' => 'MODIFY', + 'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0 + 'prop' => null, + ], + 'storage_secret' => [ + 'op' => 'MODIFY', + 'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0 + 'prop' => null, + ], + ], + ], + '3.6.3' => [ + 'storages' => [ + 'storage_account_id' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + 'storage_account_name' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'query' => + <<<SQL + INSERT IGNORE INTO `%table_prefix%storage_apis` VALUES ('7', 'OpenStack', 'openstack'); + SQL, + ], + '3.6.4' => [ + 'query' => + <<<SQL + UPDATE `%table_prefix%settings` SET `setting_value`="mail" + WHERE setting_name = "email_mode" + AND `setting_value`="phpmail"; + UPDATE `%table_prefix%settings` SET `setting_default`="mail" + WHERE setting_name = "email_mode"; + SQL, + ], + '3.6.5' => [ + 'images' => [ + 'image_title' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(100)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'albums' => [ + 'album_name' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(100)', + 'prop' => 'NOT NULL', + ], + ], + ], + '3.6.7' => [ + 'pages' => [], + ], + '3.6.8' => [ + 'users' => [ + 'user_image_keep_exif' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '1'", + ], + 'user_image_expiration' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'images' => [ + 'image_expiration_date_gmt' => [ + 'op' => 'ADD', + 'type' => 'datetime', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.7.0' => [ + 'deletions' => [], + 'follows' => [], + 'likes' => [], + 'notifications' => [], + 'stats' => [], + 'albums' => [ + 'album_creation_ip' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'NOT NULL', + ], + 'album_likes' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'images' => [ + 'image_likes' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'users' => [ + 'user_registration_ip' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'NOT NULL', + ], + 'user_likes' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0' COMMENT 'Likes made to content owned by this user'", + ], + 'user_liked' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0' COMMENT 'Likes made by this user'", + ], + 'user_following' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'user_followers' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'user_content_views' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'user_notifications_unread' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'query' => $query_populate_stats, + ], + '3.7.5' => [ + 'users' => [ + 'user_is_private' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'storages' => [ + 'storage_service' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.8.0' => [ + 'images' => [ + 'image_is_animated' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'albums' => [ + 'album_password' => [ + 'op' => 'ADD', + 'type' => 'text', + 'prop' => null, + ], + ], + 'requests' => [ + //'request_type' => [], void in 4.0.0-beta.10 + 'request_content_id' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.9.0' => [ + 'albums' => [ + 'album_views' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'likes' => [ + 'like_content_type' => [ + 'op' => 'MODIFY', + 'type' => "enum('image','album')", + 'prop' => 'DEFAULT NULL', + ], + ], + 'notifications' => [ + 'notification_content_type' => [ + 'op' => 'MODIFY', + 'type' => "enum('user','image','album')", + 'prop' => 'NOT NULL', + ], + ], + 'stats' => [ + 'stat_album_views' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'stat_album_likes' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'stat_likes' => [ + 'op' => 'CHANGE', + 'to' => 'stat_image_likes', + 'type' => 'bigint(32)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + ], + '3.10.13' => [ + 'images' => [ + 'image_source_md5' => [ + 'op' => 'ADD', + 'type' => 'varchar(32)', + 'prop' => 'DEFAULT NULL', + ], + ], + ], + '3.11.0' => [ + 'query' => + <<<SQL + INSERT INTO `%table_prefix%storage_apis` VALUES ('8', 'Local', 'local') ON DUPLICATE KEY UPDATE storage_api_type = 'local'; + SQL, + ], + '3.12.0' => [ + 'imports' => [], + 'importing' => [], + 'images' => [ + 'image_storage_mode' => [ + 'op' => 'MODIFY', + 'type' => "enum('datefolder','direct','old','path')", + 'prop' => "NOT NULL DEFAULT 'datefolder'", + ], + 'image_path' => [ + 'op' => 'ADD', + 'type' => 'varchar(4096)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'albums' => [ + 'album_user_id' => [ + 'op' => 'MODIFY', + 'type' => 'bigint(32)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'users' => [ + 'user_is_manager' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + ], + 'query' => + <<<SQL + UPDATE `%table_prefix%pages` SET page_icon = "fas fa-landmark" WHERE page_url_key = "tos" AND page_icon IS NULL OR page_icon = ""; + UPDATE `%table_prefix%pages` SET page_icon = "fas fa-lock" WHERE page_url_key = "privacy" AND page_icon IS NULL OR page_icon = ""; + UPDATE `%table_prefix%pages` SET page_icon = "fas fa-at" WHERE page_url_key = "contact" AND page_icon IS NULL OR page_icon = ""; + INSERT INTO `%table_prefix%storage_apis` VALUES ("3", "Microsoft Azure", "azure") ON DUPLICATE KEY UPDATE storage_api_name = "Microsoft Azure"; + INSERT INTO `%table_prefix%storage_apis` VALUES ("9", "S3 compatible", "s3compatible") ON DUPLICATE KEY UPDATE storage_api_type = "s3compatible"; + INSERT INTO `%table_prefix%storage_apis` VALUES ("10", "Alibaba Cloud OSS", "oss") ON DUPLICATE KEY UPDATE storage_api_type = "oss"; + INSERT INTO `%table_prefix%storage_apis` VALUES ("11", "Backblaze B2 (legacy API)", "b2") ON DUPLICATE KEY UPDATE storage_api_type = "b2"; + SQL, + ], + '3.12.4' => [ + 'pages' => [ + 'page_internal' => [ + 'op' => 'ADD', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'query' => + <<<SQL + UPDATE `%table_prefix%pages` SET page_internal = "tos" WHERE page_url_key = "tos"; + UPDATE `%table_prefix%pages` SET page_internal = "privacy" WHERE page_url_key = "privacy"; + UPDATE `%table_prefix%pages` SET page_internal = "contact" WHERE page_url_key = "contact"; + SQL + ], + // 191 because old MyIsam tables. InnoDB 255 + '3.13.0' => [ + 'settings' => [ + 'setting_name' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'CHARACTER SET utf8 COLLATE utf8_bin NOT NULL', + ], + ], + 'deletions' => [ + 'deleted_content_ip' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'NOT NULL', + ], + ], + 'ip_bans' => [ + 'ip_ban_ip' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'NOT NULL', + ], + 'ip_ban_message' => [ + 'op' => 'MODIFY', + 'type' => 'text', + 'prop' => 'DEFAULT NULL', + ], + ], + 'pages' => [ + 'page_internal' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'users' => [ + 'user_username' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'NOT NULL', + ], + 'user_email' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + 'user_image_expiration' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + 'user_registration_ip' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'NOT NULL', + ], + ], + /* + * Note: The change from utf8 to utf8mb4 causes that TEXT changes to MEDIUMTEXT to ensure that the + * converted data will fit in the resulting column. Same goes for MEDIUMTEXT -> LONGTEXT + * + * https://dev.mysql.com/doc/refman/5.7/en/alter-table.html + * Look for "For a column that has a data type of VARCHAR or one" + */ + 'query' => ($DB_indexes['albums']['album_creation_ip'] ? 'DROP INDEX `album_creation_ip` ON `%table_prefix%albums`; +ALTER TABLE `%table_prefix%albums` ADD INDEX `album_creation_ip` (`album_creation_ip`(255)); +' : null) . ($DB_indexes['images']['image_name'] ? 'DROP INDEX `image_name` ON `%table_prefix%images`; +ALTER TABLE `%table_prefix%images` ADD INDEX `image_name` (`image_name`(255)); +' : null) . ($DB_indexes['images']['image_extension'] ? 'DROP INDEX `image_extension` ON `%table_prefix%images`; +ALTER TABLE `%table_prefix%images` ADD INDEX `image_extension` (`image_extension`(255)); +' : null) . ($DB_indexes['images']['image_uploader_ip'] ? 'DROP INDEX `image_uploader_ip` ON `%table_prefix%images`; +ALTER TABLE `%table_prefix%images` ADD INDEX `image_uploader_ip` (`image_uploader_ip`(255)); +' : null) . ($DB_indexes['images']['image_uploader_ip'] ? 'DROP INDEX `image_path` ON `%table_prefix%images`; +ALTER TABLE `%table_prefix%images` ADD INDEX `image_path` (`image_path`(255)); +' : null) . ($isUtf8mb4 ? null : 'ALTER TABLE `%table_prefix%images` ENGINE=%table_engine%; +ALTER TABLE `%table_prefix%albums` ENGINE=%table_engine%; +ALTER TABLE `%table_prefix%users` ENGINE=%table_engine%; +ALTER TABLE `%table_prefix%albums` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%categories` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%deletions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%images` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%ip_bans` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%pages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%settings` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%storages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `%table_prefix%users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'), + ], + '3.13.4' => [ + 'query' => + <<<SQL + ALTER TABLE `%table_prefix%logins` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + SQL, + ], + '3.14.0' => [ + 'deletions' => [ + 'deleted_content_original_filename' => [ + 'op' => 'MODIFY', + 'type' => 'varchar(255)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'logins' => [ + 'login_type' => [ + 'op' => 'MODIFY', + 'type' => "enum('password','session','cookie','facebook','twitter','google','vk','cookie_facebook','cookie_twitter','cookie_google','cookie_vk')", + 'prop' => 'NOT NULL', + ], + ], + ], + '3.15.0' => [ + 'imports' => [ + 'import_continuous' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ] + ], + 'query' => + <<<SQL + INSERT INTO `%table_prefix%imports` (`import_path`, `import_options`, `import_status`, `import_users`, `import_images`, `import_albums`, `import_time_created`, `import_time_updated`, `import_errors`, `import_started`, `import_continuous`) + SELECT '%rootPath%importing/no-parse', 'a:1:{s:4:\"root\";s:5:\"plain\";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '0', '1' FROM DUAL + WHERE NOT EXISTS (SELECT * FROM `%table_prefix%imports` WHERE `import_path`='%rootPath%importing/no-parse' AND `import_continuous`=1 LIMIT 1); + INSERT INTO `%table_prefix%imports` (`import_path`, `import_options`, `import_status`, `import_users`, `import_images`, `import_albums`, `import_time_created`, `import_time_updated`, `import_errors`, `import_started`, `import_continuous`) + SELECT '%rootPath%importing/parse-users', 'a:1:{s:4:\"root\";s:5:\"users\";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '0', '1' FROM DUAL + WHERE NOT EXISTS (SELECT * FROM `%table_prefix%imports` WHERE `import_path`='%rootPath%importing/parse-users' AND `import_continuous`=1 LIMIT 1); + INSERT INTO `%table_prefix%imports` (`import_path`, `import_options`, `import_status`, `import_users`, `import_images`, `import_albums`, `import_time_created`, `import_time_updated`, `import_errors`, `import_started`, `import_continuous`) + SELECT '%rootPath%importing/parse-albums', 'a:1:{s:4:\"root\";s:6:\"albums\";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '0', '1' FROM DUAL + WHERE NOT EXISTS (SELECT * FROM `%table_prefix%imports` WHERE `import_path`='%rootPath%importing/parse-albums' AND `import_continuous`=1 LIMIT 1); + SQL + ], + '3.16.0' => [ + 'locks' => [], + 'images' => [ + 'image_is_approved' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '1'", + ], + ], + ], + '3.17.0' => [ + 'albums' => [ + 'album_cover_id' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => 'DEFAULT NULL', + ], + 'album_parent_id' => [ + 'op' => 'ADD', + 'type' => 'bigint(32)', + 'prop' => 'DEFAULT NULL', + ], + ], + 'images' => [ + 'image_is_360' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ] + ], + 'query' => + <<<SQL + UPDATE %table_prefix%albums + SET album_cover_id = (SELECT image_id FROM %table_prefix%images WHERE image_album_id = album_id AND image_is_approved = 1 LIMIT 1) + WHERE album_cover_id IS NULL; + SQL + ], + '3.20.0' => [ + 'assets' => [], + 'pages' => [ + 'page_code' => [ + 'op' => 'ADD', + 'type' => 'text', + 'prop' => null, + ] + ], + 'query' => + <<<SQL + UPDATE `%table_prefix%settings` SET `setting_value`="default/favicon.png" WHERE `setting_name`="favicon_image" AND `setting_value`="favicon.png"; + UPDATE `%table_prefix%settings` SET `setting_value`="default/logo.png" WHERE `setting_name`="logo_image" AND `setting_value`="logo.png"; + UPDATE `%table_prefix%settings` SET `setting_value`="default/logo.svg" WHERE `setting_name`="logo_vector" AND `setting_value`="logo.svg"; + UPDATE `%table_prefix%settings` SET `setting_value`="default/home_cover.jpg" WHERE `setting_name`="homepage_cover_image" AND `setting_value`="home_cover.jpg"; + UPDATE `%table_prefix%settings` SET `setting_value`="default/home_cover.jpg" WHERE `setting_name`="homepage_cover_image" AND `setting_value` IS NULL; + UPDATE `%table_prefix%settings` SET `setting_value`="default/logo_homepage.png" WHERE `setting_name`="logo_image_homepage" AND `setting_value`="logo_homepage.png"; + UPDATE `%table_prefix%settings` SET `setting_value`="default/logo_homepage.svg" WHERE `setting_name`="logo_vector_homepage" AND `setting_value`="logo_homepage.svg"; + SQL + ], + '3.20.1' => [ + 'query' => + <<<SQL + UPDATE `%table_prefix%settings` SET `setting_value`="default/consent-screen_cover.jpg" + WHERE `setting_name`="consent_screen_cover_image" + AND `setting_value` IS NULL; + SQL + ], + '3.20.2' => [ + 'query' => + <<<SQL + ALTER TABLE `%table_prefix%importing` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + ALTER TABLE `%table_prefix%imports` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + SQL + ], + '3.20.4' => [ + 'query' => 'UPDATE `%table_prefix%settings` SET `setting_value`="default/watermark.png" WHERE `setting_name`="watermark_image" AND `setting_value`="watermark.png";' + ], + '3.20.5' => [ + 'query' => 'UPDATE `%table_prefix%settings` SET `setting_typeset`="string" WHERE `setting_name`="explore_albums_min_image_count";', + ], + '3.20.6' => [ + 'query' => + <<<SQL + UPDATE `%table_prefix%pages` SET `page_icon`="fas fa-landmark" WHERE `page_icon`="icon-text"; + UPDATE `%table_prefix%pages` SET `page_icon`="fas fa-lock" WHERE `page_icon`="icon-lock"; + UPDATE `%table_prefix%pages` SET `page_icon`="fas fa-at" WHERE `page_icon`="icon-mail"; + SQL, + ], + '4.0.0.beta.5' => [ + 'users' => [ + 'user_palette_id' => [ + 'op' => 'ADD', + 'type' => 'int(11)', + 'prop' => "NOT NULL DEFAULT '0'" + ], + ], + 'query' => version_compare($installed_version, '3.15.0', '>=') + ? 'ALTER TABLE `%table_prefix%users` DROP COLUMN `user_is_dark_mode`;' + : '', + ], + '4.0.0.beta.7' => [ + 'api_keys' => [], + 'images_hash' => [], + ], + '4.0.0-beta.10' => [ + 'two_factors' => [], + 'requests' => [ + 'request_type' => [ + 'op' => 'MODIFY', + 'type' => "enum('upload','signup','account-edit','account-password-forgot','account-password-reset','account-resend-activation','account-email-needed','account-change-email','account-activate','login','content-password','account-two-factor')", + 'prop' => 'NOT NULL', + ], + ] + ], + '4.0.0-beta.11' => [ + 'pages' => [ + 'page_code' => [ + 'op' => 'MODIFY', + 'type' => "mediumtext", + 'prop' => null, + ], + ], + 'login_connections' => [], + 'login_cookies' => [], + 'login_passwords' => [], + 'login_providers' => [], + 'query' => + <<<SQL + INSERT IGNORE INTO `%table_prefix%login_passwords` (login_password_user_id, login_password_date_gmt, login_password_hash) + SELECT login_user_id, max(login_date_gmt), login_secret + FROM `%table_prefix%logins` + WHERE login_type = "password" + GROUP BY login_user_id; + INSERT IGNORE INTO `%table_prefix%login_cookies` (login_cookie_user_id, login_cookie_connection_id, login_cookie_date_gmt, + login_cookie_ip, login_cookie_user_agent, login_cookie_hash) + SELECT login_user_id, 0, login_date_gmt, login_ip, login_hostname, login_secret + FROM `%table_prefix%logins` + WHERE login_type = "cookie" + GROUP BY login_date_gmt + ORDER BY login_date_gmt DESC; + INSERT IGNORE INTO `%table_prefix%login_connections` (login_connection_user_id, login_connection_provider_id, login_connection_date_gmt, + login_connection_resource_id, login_connection_resource_name, + login_connection_token) + SELECT login_user_id, login_provider_id, max(login_date_gmt), login_resource_id, login_resource_name, '' token + FROM `%table_prefix%logins` + JOIN `%table_prefix%login_providers` ON login_provider_name = login_type COLLATE utf8mb4_unicode_ci + WHERE login_type IN ('facebook', 'twitter', 'google', 'vk') + GROUP BY login_user_id, login_provider_id; + SQL + . + "\n" + . ($loginUpdateQueries ?? ''), + ], + '4.0.0' => [ + 'query' => $albumUpdateQueries ?? '', + ], + '4.0.1' => [ + 'query' => + <<<SQL + UPDATE `%table_prefix%settings` + SET setting_typeset = 'string', + setting_default = '' + WHERE setting_name = 'auto_delete_guest_uploads'; + SQL, + ], + ]; + $sql_update = []; + if (!$maintenance) { + $sql_update[] = "UPDATE `%table_prefix%settings` SET `setting_value` = 1 WHERE `setting_name` = 'maintenance';"; + } + $required_sql_files = []; + foreach ($update_table as $version => $changes) { + foreach ($changes as $table => $columns) { + if ($table == 'query') { + continue; + } + $schema_table = $schema[$table] ?? []; + $create_table = false; + if (!array_key_exists($table, $schema) && !in_array($table, $required_sql_files)) { + $create_table = true; + } elseif ($table == 'storages' && !array_key_exists('storage_bucket', $schema_table)) { + $create_table = true; + } + if (!in_array($table, $required_sql_files) && $create_table) { + $sql_update[] = file_get_contents(PATH_APP . 'schemas/' . $dbSchemaVer . '/' . $table . '.sql'); + $required_sql_files[] = $table; + } + if (in_array($table, $required_sql_files)) { + continue; + } + if (isset($columns['op'])) { + if ($columns['op'] === 'ALTER') { + if ($DB_indexes[$table]['searchindex'] && strpos($columns['prop'], 'CREATE FULLTEXT INDEX `searchindex`') !== false) { + continue 2; + } + $sql_update[] = strtr( + 'ALTER TABLE `%table_prefix%' . $table . '` %prop; %tail', + [ + '%prop' => $columns['prop'], + '%tail' => $columns['tail'] ?? '' + ] + ); + } + + continue; + } + foreach ($columns as $column => $column_meta) { + $query = null; + $schema_column = $schema_table[$column] ?? null; + switch ($column_meta['op']) { + case 'MODIFY': + if ( + array_key_exists($column, $schema[$table]) + && ( + $schema_column['COLUMN_TYPE'] !== $column_meta['type'] + || preg_match('/DEFAULT NULL/i', $column_meta['prop'] ?? '') + && $schema_column['IS_NULLABLE'] == 'NO' + ) + ) { + $query = '`%column` %type'; + } + + break; + case 'CHANGE': + if (array_key_exists($column, $schema[$table])) { + $query = '`%column` `%to` %type'; + } + + break; + case 'ADD': + if (!array_key_exists($column, $schema[$table])) { + $query = '`%column` %type'; + } + + break; + } + if (!is_null($query)) { + $stock_tr = ['op', 'type', 'to', 'prop', 'tail']; + $meta_tr = []; + foreach ($stock_tr as $v) { + $meta_tr['%' . $v] = $column_meta[$v] ?? ''; + } + $sql_update[] = strtr( + 'ALTER TABLE `%table_prefix%' . $table . '` %op ' . $query . ' %prop; %tail', + array_merge(['%column' => $column], $meta_tr) + ); + } + } + } + if (isset($changes['query']) && version_compare($version, $installed_version, '>')) { + $sql_update[] = $changes['query']; + } + } + foreach ($CHV_indexes as $table => $indexes) { + $field_prefix = DB::getFieldPrefix($table); + foreach ($indexes as $index => $indexProp) { + if ($index == 'searchindex' || $index == $field_prefix . '_id' || !starts_with($field_prefix . '_', $index)) { + continue; + } + if (!array_key_exists($index, $DB_indexes[$table])) { + $sql_update[] = 'ALTER TABLE `%table_prefix%' . $table . '` ADD ' . $indexProp . ';'; + } + } + } + $settings_flat = []; + foreach (array_keys(array_merge($settings_updates, $update_table)) as $k) { + $sql = null; + if (is_array($settings_updates[$k])) { + foreach ($settings_updates[$k] as $k => $v) { + $settings_flat[$k] = $v; + if (in_array($k, $db_settings_keys)) { + continue; + } + $value = (is_null($v) ? 'NULL' : "'" . $v . "'"); + $sql .= "INSERT INTO `%table_prefix%settings` (setting_name, setting_value, setting_default, setting_typeset) VALUES ('" . $k . "', " . $value . ', ' . $value . ", '" . Settings::getType($v) . "'); " . "\n"; + } + } + if ($sql !== null) { + $sql_update[] = $sql; + } + } + foreach ($settings_delete as $k) { + if (array_key_exists($k, Settings::get())) { + $sql_update[] = "DELETE FROM `%table_prefix%settings` WHERE `setting_name` = '$k';"; + } + } + foreach ($settings_rename as $k => $v) { + if (array_key_exists($k, Settings::get())) { + $settingValue = Settings::get()[$k]; + $value = is_null($settingValue) + ? 'NULL' + : "'$settingValue'"; + $sql_update[] = <<<SQL + UPDATE `%table_prefix%settings` SET `setting_value` = $value WHERE `setting_name` = '$v'; + DELETE FROM `%table_prefix%settings` WHERE `setting_name` = '$k'; + SQL; + } + } + $sql_update[] = 'UPDATE `%table_prefix%settings` SET `setting_value` = "' . APP_VERSION . '" WHERE `setting_name` = "chevereto_version_installed";'; + if (!$maintenance) { + $sql_update[] = 'UPDATE `%table_prefix%settings` SET `setting_value` = 0 WHERE `setting_name` = "maintenance";'; + } + $sql_update = implode("\r\n", $sql_update); + $sql_update = strtr($sql_update, [ + '%rootPath%' => PATH_PUBLIC, + '%table_prefix%' => env()['CHEVERETO_DB_TABLE_PREFIX'], + '%table_engine%' => $fulltext_engine, + ]); + $sql_update = preg_replace('/[ \t]+/', ' ', preg_replace('/\s*$^\s*/m', "\n", $sql_update)); + $isDumpUpdate = Settings::get('dump_update_query'); + if (($params['dump'] ?? null) === true) { + $isDumpUpdate = true; + } + if (!$isDumpUpdate && PHP_SAPI !== 'cli') { + $totalDb = DB::get('stats', ['type' => 'total'])[0] ?? null; + $totalImages = (int) ($totalDb['stat_images'] ?? 0); + $stopWordsRegex = '/add|alter|modify|change/i'; + $slowUpdate = preg_match_all($stopWordsRegex, $sql_update); + if ($slowUpdate && $totalImages >= 1000000) { + $sql_update = '# To protect your DB is mandatory to run this MySQL script directly in your database console.' + . "\n" . '# Database:' . env()['CHEVERETO_DB_NAME'] . "\n" . $sql_update; + $isDumpUpdate = true; + } + } + if ($isDumpUpdate) { + $dumpMessage = '# Dumped update query (to manually run in the database console)' + . "\n\n" + . $sql_update; + debug($dumpMessage); + xr($dumpMessage); + die(); + } + $updateMessageWrap = PHP_SAPI === 'cli' + ? <<<CLI + --- + %query% + --- + CLI + : getPreCodeHtml('%query%'); + $errorMessageWrap = PHP_SAPI === 'cli' + ? '>>> %error%' + : getPreCodeHtml('>>> %error%'); + $db = DB::getInstance(); + $db->query($sql_update); + xr($sql_update); + + try { + $updated = $db->exec(); + if ($updated) { + $chevereto_version_installed = DB::get('settings', ['name' => 'chevereto_version_installed'])[0]['setting_value']; + if (APP_VERSION !== $chevereto_version_installed) { + throw new LogicException( + message('Version mismatch.') + ); + } + } + } catch (Throwable $e) { + throw new LogicException( + message( + <<<MESSAGE + Error executing the Chevereto update query. + $errorMessageWrap + Try running each of the following statements in the database console to find the conflict. + $updateMessageWrap + MESSAGE + ) + ->withStrtr('%query%', $sql_update) + ->withStrtr('%error%', $e->getMessage()) + ); + } + if ($updated) { + $itWasUpdated = true; + } + $doing = 'updated'; + } else { + try { + $db = DB::getInstance(); + } catch (Exception $e) { + $error = true; + $error_message = sprintf($db_conn_error, $e->getMessage()); + } + $doing = $error ? 'connect' : 'ready'; + + if ($installed_version !== null) { + $itWasUpdated = false; + $doing = 'already'; + } + } +} +$input_errors = []; +if (!isset($installed_version) && !empty($params)) { + if (isset($params['username']) && !in_array($doing, ['already', 'update'])) { + $doing = 'ready'; + } + switch ($doing) { + case 'connect': + $db_details = []; + foreach ($db_array as $k => $v) { + if ($v && $params[$k] == '') { + $error = true; + + break; + } + $db_details[ltrim($k, 'db_')] = $params[$k] ?? null; + } + if ($error) { + $error_message = 'Please fill the database details.'; + } else { + $db_details['driver'] = 'mysql'; + + try { + $db_details['port'] = (int) ($db_details['port'] ?? 3306); + $db_details['pdoAttrs'] = []; + $db = new DB(...$db_details); + } catch (Exception $e) { + $error = true; + $error_message = sprintf($db_conn_error, $e->getMessage()); + } + if (!$error) { + $env = []; + $env['%encryptionKey%'] = randomKey()->base64(); + foreach ($db_details as $k => $v) { + $env["%$k%"] = $v; + } + $dotenvTemplate = <<<EOT +<?php + +return [ + 'CHEVERETO_DB_HOST' => '%host%', + 'CHEVERETO_DB_NAME' => '%name%', + 'CHEVERETO_DB_PASS' => '%pass%', + 'CHEVERETO_DB_PORT' => '%port%', + 'CHEVERETO_DB_USER' => '%user%', + 'CHEVERETO_DB_TABLE_PREFIX' => '%tablePrefix%', + 'CHEVERETO_ENCRYPTION_KEY' => '%encryptionKey%', +]; + +EOT; + $envDotPhpContents = strtr($dotenvTemplate, $env); + + try { + $envDotPhp = filePhpForPath(PATH_APP . 'env.php'); + $envDotPhp->file()->removeIfExists(); + $envDotPhp->file()->create(); + $envDotPhp->file()->put($envDotPhpContents); + $doing = 'ready'; + } catch (Throwable $e) { + $doing = 'env'; + } + } + if ($doing == 'ready') { + redirect('install'); + } + } + + break; + case 'ready': + if (!filter_var($params['email'], FILTER_VALIDATE_EMAIL)) { + $input_errors['email'] = _s('Invalid email'); + } + if (!User::isValidUsername($params['username'])) { + $input_errors['username'] = _s('Invalid username'); + } + if (!preg_match('/' . getSetting('user_password_pattern') . '/', $params['password'] ?? '')) { + $input_errors['password'] = _s('Invalid password'); + } + if (count($input_errors) > 0) { + $error = true; + $error_message = 'Please correct your data to continue.'; + } else { + $create_table = []; + foreach (new DirectoryIterator(PATH_APP . 'schemas/' . $dbSchemaVer) as $fileInfo) { + if ($fileInfo->isDot() || $fileInfo->isDir()) { + continue; + } + $create_table[$fileInfo->getBasename('.sql')] = realpath($fileInfo->getPathname()); + } + $install_sql = + <<<SQL + SET FOREIGN_KEY_CHECKS=0; + SQL; + if ($is_2X) { + // Need to sync this to avoid bad datefolder mapping due to MySQL time != PHP time + // In Chevereto v2.X date was TIMESTAMP and in v3.X is DATETIME + $DateTime = new DateTime(); + $offset = $DateTime->getOffset(); + $offsetHours = round(abs($offset) / 3600); + $offsetMinutes = round((abs($offset) - $offsetHours * 3600) / 60); + $offset = ($offset < 0 ? '-' : '+') + . (strlen((string) $offsetHours) < 2 ? '0' : '') + . $offsetHours + . ':' + . (strlen((string) $offsetMinutes) < 2 ? '0' : '') + . $offsetMinutes; + $install_sql .= + <<<SQL + SET time_zone = '" . $offset . "'; + ALTER TABLE `chv_images` + MODIFY `image_id` bigint(32) NOT NULL AUTO_INCREMENT, + MODIFY `image_name` varchar(255), + MODIFY `image_date` DATETIME, + CHANGE `image_type` `image_extension` varchar(255), + CHANGE `uploader_ip` `image_uploader_ip` varchar(255), + CHANGE `storage_id` `image_storage_id` bigint(32), + DROP `image_delete_hash`, + ADD `image_date_gmt` datetime NOT NULL AFTER `image_date`, + ADD `image_title` varchar(100) NOT NULL, + ADD `image_description` text, + ADD `image_nsfw` tinyint(1) NOT NULL DEFAULT '0', + ADD `image_user_id` bigint(32) DEFAULT NULL, + ADD `image_album_id` bigint(32) DEFAULT NULL, + ADD `image_md5` varchar(32) NOT NULL, + ADD `image_source_md5` varchar(32) DEFAULT NULL, + ADD `image_storage_mode` enum('datefolder','direct','old') NOT NULL DEFAULT 'datefolder', + ADD `image_original_filename` text NOT NULL, + ADD `image_original_exifdata` longtext, + ADD `image_views` bigint(32) NOT NULL DEFAULT '0', + ADD `image_category_id` bigint(32) DEFAULT NULL, + ADD `image_chain` tinyint(128) NOT NULL, + ADD `image_thumb_size` int(11) NOT NULL, + ADD `image_medium_size` int(11) NOT NULL DEFAULT '0', + ADD `image_expiration_date_gmt` datetime DEFAULT NULL, + ADD `image_likes` bigint(32) NOT NULL DEFAULT '0', + ADD `image_is_animated` tinyint(1) NOT NULL DEFAULT '0', + ADD INDEX `image_name` (`image_name`), + ADD INDEX `image_size` (`image_size`), + ADD INDEX `image_width` (`image_width`), + ADD INDEX `image_height` (`image_height`), + ADD INDEX `image_date_gmt` (`image_date_gmt`), + ADD INDEX `image_nsfw` (`image_nsfw`), + ADD INDEX `image_user_id` (`image_user_id`), + ADD INDEX `image_album_id` (`image_album_id`), + ADD INDEX `image_storage_id` (`image_storage_id`), + ADD INDEX `image_md5` (`image_md5`), + ADD INDEX `image_source_md5` (`image_source_md5`), + ADD INDEX `image_likes` (`image_views`), + ADD INDEX `image_views` (`image_views`), + ADD INDEX `image_category_id` (`image_category_id`), + ADD INDEX `image_expiration_date_gmt` (`image_expiration_date_gmt`), + ADD INDEX `image_is_animated` (`image_is_animated`), + ENGINE=$fulltext_engine; + + UPDATE `chv_images` + SET `image_date_gmt` = `image_date`, + `image_storage_mode` = CASE + WHEN `image_storage_id` IS NULL THEN 'datefolder' + WHEN `image_storage_id` = 0 THEN 'datefolder' + WHEN `image_storage_id` = 1 THEN 'old' + WHEN `image_storage_id` = 2 THEN 'direct' + END, + `image_storage_id` = NULL; + + CREATE FULLTEXT INDEX searchindex ON `chv_images`(image_name, image_title, image_description, image_original_filename); + + RENAME TABLE `chv_info` to `_chv_info`; + RENAME TABLE `chv_options` to `_chv_options`; + RENAME TABLE `chv_storages` to `_chv_storages`; + SQL; + unset($create_table['images']); + $chv_initial_settings['crypt_salt'] = $params['crypt_salt']; + $table_prefix = 'chv_'; + } else { + $table_prefix = env()['CHEVERETO_DB_TABLE_PREFIX']; + } + foreach ($create_table as $k => $v) { + $install_sql .= strtr(file_get_contents($v), [ + '%rootPath%' => PATH_PUBLIC, + '%table_prefix%' => $table_prefix, + '%table_engine%' => $fulltext_engine, + ]) . "\n\n"; + } + $chv_initial_settings['id_padding'] = $is_2X ? 0 : 5000; + $install_sql .= strtr($query_populate_stats, [ + '%rootPath%' => PATH_PUBLIC, + '%table_prefix%' => $table_prefix, + '%table_engine%' => $fulltext_engine, + ]); + // $params['dump'] = true; + if (($params['dump'] ?? false) === true) { + debug($install_sql); + logger("\n"); + die(0); + } + $db = DB::getInstance(); + $db->query($install_sql); + $db->exec(); + $db->closeCursor(); + Settings::insert($chv_initial_settings); + $insert_admin = User::insert([ + 'username' => $params['username'], + 'email' => $params['email'], + 'is_admin' => 1, + 'language' => $chv_initial_settings['default_language'], + 'timezone' => $chv_initial_settings['default_timezone'], + ]); + Login::addPassword($insert_admin, $params['password']); + $doing = 'finished'; + } + + break; + } +} +if (PHP_SAPI === 'cli') { + switch ($doing) { + case 'already': + logger( + ($itWasUpdated ?? false) + ? "[NOTICE] Chevereto is already installed\n" + : "[NOTICE] Chevereto is already updated\n" + ); + + break; + case 'finished': + logger("[OK] Chevereto has been installed\n"); + + break; + case 'updated': + logger( + ($itWasUpdated ?? false) + ? "[OK] Chevereto database has been updated\n" + : "[NOTICE] Chevereto is already updated\n" + ); + + break; + case 'update_failed': + logger("[ERROR] Chevereto database update failure\n"); + die(255); + } +} else { + $doctitle = $doctitles[$doing] . ' - Chevereto ' . get_chevereto_version(true); + $system_template = PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'template.php'; + $install_template = PATH_APP_LEGACY_INSTALL . 'template/' . $doing . '.php'; + ob_start(); + require_once $install_template; + $html = ob_get_contents(); + ob_end_clean(); + require_once $system_template; +} +die(0); diff --git a/app/legacy/install/template/already.php b/app/legacy/install/template/already.php new file mode 100644 index 0000000..e7cb1cd --- /dev/null +++ b/app/legacy/install/template/already.php @@ -0,0 +1,13 @@ +<?php +use function Chevereto\Legacy\G\get_base_url; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<h1><i class="far fa-check-circle"></i> Already installed</h1> +<p>Chevereto is already installed and updated.</p> +<div> + <a href="<?php echo get_base_url('dashboard'); ?>" class="action button radius"><span class="btn-icon fa-btn-icon fas fa-tachometer-alt"></span> Dashboard</a> + <a href="<?php echo get_base_url(); ?>" class="button radius"><span class="btn-icon fa-btn-icon fas fa-globe"></span> Website</a> +</div> diff --git a/app/legacy/install/template/connect.php b/app/legacy/install/template/connect.php new file mode 100644 index 0000000..6c59457 --- /dev/null +++ b/app/legacy/install/template/connect.php @@ -0,0 +1,41 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<h1><i class="fa fa-database"></i> Database connection</h1> +<p>To continue, provide your Chevereto MySQL database details.</p> +<?php if ($error ?? false) { ?> +<p class="highlight padding-10"><?php echo $error_message ?? ''; ?></p> +<?php } ?> +<form method="post" autocomplete="off"> + <div class="p input-label"> + <label for="db_host">Database host</label> + <input autocomplete="off" type="text" name="db_host" id="db_host" class="width-100p" placeholder="localhost" title="Database server host (default: localhost)" required> + </div> + <div class="p input-label"> + <label for="db_port">Database port</label> + <input autocomplete="off" type="number" min="0" name="db_port" id="db_port" class="width-100p" placeholder="3306" title="Database server port (default: 3306)" required> + </div> + <div class="p input-label"> + <label for="db_name">Database name</label> + <input autocomplete="off" type="text" name="db_name" id="db_name" class="width-100p" title="Name of the database where you want to install Chevereto" required> + </div> + <div class="p input-label"> + <label for="db_user">Database user</label> + <input autocomplete="off" type="text" name="db_user" id="db_user" class="width-100p" title="User with access to the above database" required> + </div> + <div class="p input-label"> + <label for="db_pass">Database user password</label> + <input autocomplete="off" type="password" name="db_pass" id="db_pass" class="width-100p" title="Password of the above user"> + </div> + <div class="p input-label"> + <label for="db_tablePrefix">Database table prefix</label> + <input autocomplete="off" type="text" name="db_tablePrefix" id="db_tablePrefix" class="width-100p" placeholder="chv_" title="Database table prefix. Use chv_ if you don't need this"> + </div> + <div> + <button class="action radius" type="submit">Connect</button> + </div> +</form> diff --git a/app/legacy/install/template/env.php b/app/legacy/install/template/env.php new file mode 100644 index 0000000..7d19781 --- /dev/null +++ b/app/legacy/install/template/env.php @@ -0,0 +1,14 @@ +<?php +use function Chevereto\Legacy\G\get_base_url; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<h1>Edit app/env.php</h1> +<p>The database details are correct, but the system was unable to put these at the <code>app/env.php</code> file.</p> +<p>You will require to edit the <code><?php echo PATH_APP . 'env.php'; ?></code> file with the contents below. Once done, re-load this window.</p> +<code class="display-block" data-click="select-all"><pre><?php echo htmlentities($envDotPhpContents ?? ''); ?></pre></code> +<div> + <a href="<?php echo get_base_url(); ?>" class="action button radius">Re-load</a> +</div> diff --git a/app/legacy/install/template/finished.php b/app/legacy/install/template/finished.php new file mode 100644 index 0000000..ec02992 --- /dev/null +++ b/app/legacy/install/template/finished.php @@ -0,0 +1,15 @@ +<?php +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\get_chevereto_version; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<h1><i class="far fa-check-circle"></i> Installation complete</h1> +<p><?php echo strtr('Chevereto has been successfully installed. You can now continue to the <a href="%u">admin dashboard</a> and configure your website.', ['%s' => get_chevereto_version(true), '%u' => get_base_url('dashboard')]); ?></p> +<div> + <a href="<?php echo get_base_url('dashboard'); ?>" class="action button radius">Dashboard</a> + <a href="<?php echo get_base_url(); ?>" class="button radius">Website</a> +</div> +<script>$(document).ready(function() { CHV.fn.system.checkUpdates(); });</script> diff --git a/app/legacy/install/template/ready.php b/app/legacy/install/template/ready.php new file mode 100644 index 0000000..6cdf326 --- /dev/null +++ b/app/legacy/install/template/ready.php @@ -0,0 +1,50 @@ +<?php +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<h1><i class="fa fa-box-open"></i> Ready to install</h1> +<p>Fill this form with the details of the initial admin account you want to use.</p> +<p>You can change this account later on.</p> +<?php if ($error ?? false) { ?> +<p class="highlight padding-10"><?php echo $error_message ?? ''; ?></p> +<?php } ?> +<form method="post"> + <div> + <div class="p input-label"> + <label for="username">Admin username</label> + <input type="text" name="username" id="username" class="width-100p" value="<?php echo $safe_post['username'] ?? ''; ?>" placeholder="Admin username" pattern="<?php echo getSetting('username_pattern'); ?>" title='<?php echo strtr('%i to %f characters<br>Letters, numbers and "_"', ['%i' => getSetting('username_min_length'), '%f' => getSetting('username_max_length')]); ?>' maxlength="<?php echo getSetting('username_max_length'); ?>" required> + <span class="input-warning red-warning"><?php echo $input_errors['username'] ?? ''; ?></span> + </div> + <div class="p input-label"> + <label for="email">Admin email</label> + <input type="email" name="email" id="email" class="width-100p" value="<?php echo $safe_post['email'] ?? ''; ?>" placeholder="Admin email" title="Valid email address for your admin account" required> + <span class="input-warning red-warning"><?php echo $input_errors['email'] ?? ''; ?></span> + </div> + <div class="p input-label input-password"> + <label for="password">Admin password</label> + <input type="password" name="password" id="password" class="width-100p" value="" placeholder="Admin password" title="Password to login" pattern="<?php echo getSetting('user_password_pattern'); ?>" required> + <div class="input-password-strength"><span style="width: 0%" data-content="password-meter-bar"></span></div> + <div class="input-warning red-warning" data-text="password-meter-message"><?php echo $input_errors['password'] ?? ''; ?></div> + </div> + </div> + <?php + if ($is_2X ?? false) { + ?> + <div> + <div class="p input-label"> + <label for="crypt_salt">__CHV_CRYPT_SALT__</label> + <input type="text" name="crypt_salt" id="crypt_salt" class="width-100p" value="<?php echo $safe_post['crypt_salt'] ?? ''; ?>" placeholder="Example: changeme" title="As defined in includes/definitions.php" required> + <span class="input-below highlight">Value from define("__CHV_CRYPT_SALT__", "changeme");</span> + <span class="input-warning red-warning"><?php echo $input_errors['crypt_salt'] ?? ''; ?></span> + </div> + </div> + <?php + } + ?> + <div> + <button class="action radius" type="submit">Install</button> + </div> +</form> diff --git a/app/legacy/install/template/update_failed.php b/app/legacy/install/template/update_failed.php new file mode 100644 index 0000000..6917d65 --- /dev/null +++ b/app/legacy/install/template/update_failed.php @@ -0,0 +1,11 @@ +<?php +// @phpstan-ignore-next-line +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<h1>Update failed</h1> +<p>The update process failed. Here is the error returned:</p> +<p class="highlight padding-10"><?php echo $error_message ?? ''; ?></p> +<p>If you update from an older version update your MyISAM tables to InnoDB table storage engine and try again.</p> +<p>If you have altered your database you will need to manually perform this update.</p> diff --git a/app/legacy/install/template/updated.php b/app/legacy/install/template/updated.php new file mode 100644 index 0000000..d4c54d3 --- /dev/null +++ b/app/legacy/install/template/updated.php @@ -0,0 +1,16 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\get_chevereto_version; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<h1><i class="far fa-check-circle"></i> Update complete</h1> +<p><?php echo strtr('Chevereto has been successfully updated to %s. You can now continue to the <a href="%u">admin dashboard</a> and configure your website.', ['%s' => get_chevereto_version(true), '%u' => get_base_url('dashboard')]); ?></p> +<div> + <a href="<?php echo get_base_url('dashboard'); ?>" class="action button radius">Dashboard</a> + <a href="<?php echo get_base_url(); ?>" class="button radius">Website</a> +</div> +<script>$(document).ready(function() { CHV.fn.system.checkUpdates(); });</script> diff --git a/app/legacy/load/app.php b/app/legacy/load/app.php new file mode 100644 index 0000000..7f2cd6c --- /dev/null +++ b/app/legacy/load/app.php @@ -0,0 +1,13 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +const APP_VERSION = '4.0.5'; +const APP_VERSION_AKA = 'macanudo'; diff --git a/app/legacy/load/integrity-check.php b/app/legacy/load/integrity-check.php new file mode 100644 index 0000000..a279c37 --- /dev/null +++ b/app/legacy/load/integrity-check.php @@ -0,0 +1,161 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy; + +use Chevereto\Config\Config; +use Chevereto\Config\SystemConfig; +use function Chevereto\Legacy\G\absolute_to_relative; +use function Chevereto\Legacy\G\is_writable; +use function Chevereto\Vars\server; +use Imagick; +use Throwable; + +function getFailingImageFormats(string $imageLibrary): array +{ + $mustHaveFormats = ['PNG', 'GIF', 'JPEG', 'BMP', 'WEBP']; + $image_formats_available = Config::system()->imageFormatsAvailable(); + if (is_array($image_formats_available)) { + $mustHaveFormats = $image_formats_available; + } + $failed_formats = []; + if ($imageLibrary === 'imagick') { + $imageFormats = Imagick::queryFormats(); + foreach ($mustHaveFormats as $format) { + if (!in_array($format, $imageFormats)) { + $failed_formats[] = $format; + } + } + } elseif ($imageLibrary === 'gd') { + $imageTypes = imagetypes(); + foreach ($mustHaveFormats as $format) { + if (!($imageTypes & constant("IMG_$format"))) { + $failed_formats[] = $format; + } + } + } + + return array_map('strtolower', $failed_formats); +} + +function filesystemPermissionsCheck(): void +{ + $errors = []; + $writing_paths = [CHV_PATH_IMAGES, PATH_PUBLIC_CONTENT, PATH_APP_CONTENT]; + foreach ($writing_paths as $v) { + if (!file_exists($v)) { + try { + mkdir($v); + } catch (Throwable $e) { + $errors[] = "<code>" . absolute_to_relative($v) . "</code> doesn't exists. Make sure to upload it."; + } + } else { + if (!is_writable($v)) { + $errors[] = 'No write permission for PHP user ' . get_current_user() . ' in <code>' . absolute_to_relative($v) . '</code> directory. Chevereto needs to be able to write in this directory.'; + } + } + } + dieChecksErrors($errors); +} + +function phpCheck(SystemConfig $systemConfig): void +{ + $errors = []; + $missing_tpl = '%n (<a href="http://php.net/manual/en/%t.%u.php" target="_blank">%f</a>) %t is disabled in this server. This %t must be enabled in your PHP configuration (php.ini) and/or you must add this missing %t.'; + if (version_compare(PHP_VERSION, '8.0.0', '<')) { + $errors[] = 'This server is currently running PHP version ' . PHP_VERSION . ' and Chevereto needs at least PHP 8.0.0 to run.'; + } + if (ini_get('allow_url_fopen') !== '1' && !function_exists('curl_init')) { + $errors[] = "cURL isn't installed and allow_url_fopen is disabled. Chevereto needs one of these to perform HTTP requests to remote servers."; + } + if (preg_match('/apache/i', server()['SERVER_SOFTWARE'] ?? '') && function_exists('apache_get_modules') && !in_array('mod_rewrite', apache_get_modules())) { + $errors[] = 'Apache <a href="http://httpd.apache.org/docs/2.1/rewrite/rewrite_intro.html" target="_blank">mod_rewrite</a> is not enabled in this server. This must be enabled to run Chevereto.'; + } + $extensionsRequired = [ + 'exif' => [ + '%label' => 'Exif', + '%name' => 'Exchangeable image information', + '%slug' => 'book.exif', + '%desc' => 'Exif is required to handle image metadata' + ], + 'pdo' => [ + '%label' => 'PDO', + '%name' => 'PHP Data Objects', + '%slug' => 'book.pdo', + '%desc' => 'PDO is needed to perform database operations' + ], + 'pdo_mysql' => [ + '%label' => 'PDO_MYSQL', + '%name' => 'PDO MySQL Functions', + '%slug' => 'ref.pdo-mysql', + '%desc' => 'PDO_MYSQL is needed to work with a MySQL database', + ], + 'fileinfo' => [ + '%label' => 'fileinfo', + '%name' => 'Fileinfo', + '%slug' => 'book.fileinfo', + '%desc' => 'Fileinfo is required for file handling', + ], + ]; + $php_image = [ + 'imagick' => [ + '%label' => 'imagick', + '%name' => 'Imagick', + '%slug' => 'book.imagick', + '%desc' => 'Imagick is needed for image processing', + ], + 'gd' => [ + '%label' => 'gd', + '%name' => 'gd', + '%slug' => 'book.gd', + '%desc' => 'GD is needed for image processing', + ] + ]; + $imageLibs = [ + 'gd' => extension_loaded('gd') && function_exists('gd_info'), + 'imagick' => extension_loaded('imagick'), + ]; + $systemConfigLib = $systemConfig->imageLibrary(); + if ($systemConfigLib === '') { + $errors[] = 'No image handling library in this server. Enable either Imagick extension or GD extension to perform image processing.'; + } else { + $extensionsRequired[$systemConfigLib] = $php_image[$systemConfigLib] ?? []; + } + + if (($imageLibs[$systemConfigLib] ?? null) === false) { + $errors[] = 'Configured image_library ' . $systemConfigLib . ' is not present in this system.'; + } + foreach ($extensionsRequired as $k => $v) { + if (!extension_loaded($k)) { + $errors[] = strtr('%name (<a href="http://www.php.net/manual/%slug.php">%label</a>) is not loaded in this server. %desc.', $v); + } + } + $disabled_classes = explode(',', preg_replace('/\s+/', '', ini_get('disable_classes'))); + if ($disabled_classes !== []) { + foreach (['DirectoryIterator', 'RegexIterator', 'Pdo', 'Exception'] as $k) { + if (in_array($k, $disabled_classes)) { + $errors[] = strtr(str_replace('%t', 'class', $missing_tpl), ['%n' => $k, '%f' => $k, '%u' => str_replace('_', '-', strtolower($k))]); + } + } + } + dieChecksErrors($errors); +} + +function dieChecksErrors(array $errors): void +{ + if ($errors === []) { + return; + } + if (PHP_SAPI === 'cli') { + vdd($errors); + } + chevereto_die($errors); +} diff --git a/app/legacy/load/l10n.php b/app/legacy/load/l10n.php new file mode 100644 index 0000000..ea2508c --- /dev/null +++ b/app/legacy/load/l10n.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\L10n; + +function _s(string $msg, $args = null) +{ + $msg = L10n::gettext($msg); + if ($msg && !is_null($args)) { + $fn = is_array($args) ? 'strtr' : 'sprintf'; + $msg = $fn($msg, $args); + } + + return $msg; +} + +function _se(string $msg, $args = null) +{ + echo _s($msg, $args); +} + +function _n(string $msg, string $msg_plural, string|int $count) +{ + return L10n::ngettext($msg, $msg_plural, (int) $count); +} + +function _ne(string $msg, string $msg_plural, string|int $count) +{ + echo _n($msg, $msg_plural, (int) $count); +} diff --git a/app/legacy/load/loader.php b/app/legacy/load/loader.php new file mode 100644 index 0000000..53e19cd --- /dev/null +++ b/app/legacy/load/loader.php @@ -0,0 +1,56 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\RuntimeException; +use function Chevere\VarDump\varDumpHtml; +use Chevere\VarDump\VarDumpInstance; +use function Chevere\Writer\streamFor; +use Chevere\Writer\StreamWriter; +use Chevere\Writer\Writers; +use Chevere\Writer\WritersInstance; + +define('TIME_EXECUTION_START', microtime(true)); +!defined('REPL') && define('REPL', false); +!defined('PACKAGING') && define('PACKAGING', false); +require_once __DIR__ . '/../../vendor/autoload.php'; +new WritersInstance( + (new Writers()) + ->withOutput( + new StreamWriter( + streamFor('php://output', 'w') + ) + ) + ->withError( + new StreamWriter( + streamFor('php://stderr', 'a') + ) + ) +); +if (PHP_SAPI !== 'cli') { + new VarDumpInstance(varDumpHtml()); +} +require_once __DIR__ . '/register-handlers.php'; +$posix_getuid = function_exists('posix_getuid') + ? posix_getuid() + : 'unknown'; +if ($posix_getuid === 0 + && !(REPL || PACKAGING)) { // @phpstan-ignore-line + $message = 'Unable to run as root (run this command as a regular user)'; + if (PHP_SAPI === 'cli') { + echo "[ERROR] $message\n"; + die(255); + } + + throw new RuntimeException( + message($message) + ); +} diff --git a/app/legacy/load/php-boot.php b/app/legacy/load/php-boot.php new file mode 100644 index 0000000..48a2987 --- /dev/null +++ b/app/legacy/load/php-boot.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (version_compare(PHP_VERSION, '8.0.0', '<')) { + if (PHP_SAPI !== 'cli') { + http_response_code(503); + } + echo 'This server is currently running PHP ' . PHP_VERSION . ' and Chevereto needs at least PHP 8.0.0 to run.' . PHP_EOL; + die(255); +} + +require_once __DIR__ . '/loader.php'; diff --git a/app/legacy/load/register-handlers.php b/app/legacy/load/register-handlers.php new file mode 100644 index 0000000..875f639 --- /dev/null +++ b/app/legacy/load/register-handlers.php @@ -0,0 +1,59 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevere\ThrowableHandler\Documents\ConsoleDocument; +use Chevere\ThrowableHandler\Documents\HtmlDocument; +use Chevere\ThrowableHandler\Documents\PlainDocument; +use function Chevere\ThrowableHandler\throwableHandler; +use Chevere\ThrowableHandler\ThrowableHandler; +use function Chevere\Writer\writers; +use function Chevere\Xr\throwableHandler as XrThrowableHandler; +use Chevereto\Config\Config; +use function Chevereto\Legacy\isDebug; + +set_error_handler(ThrowableHandler::ERROR_AS_EXCEPTION); +register_shutdown_function(ThrowableHandler::SHUTDOWN_ERROR_AS_EXCEPTION); +set_exception_handler(function (Throwable $throwable) { + $throwableHandler = throwableHandler($throwable); + if (PHP_SAPI === 'cli') { + $docInternal = new ConsoleDocument($throwableHandler); + } else { + $docInternal = new PlainDocument($throwableHandler); + if (!headers_sent()) { + http_response_code(500); + } + $isDebug = isDebug(); + + try { + $debugLevel = Config::system()->debugLevel(); + } catch (Throwable) { + $debugLevel = (int) ($_ENV['CHEVERETO_DEBUG_LEVEL'] ?? 1); + } + + $docPublic = new HtmlDocument( + $throwableHandler->withIsDebug( + in_array($debugLevel, [2, 3]) || $isDebug + ) + ); + writers()->output() + ->write($docPublic->__toString() . "\n"); + } + writers()->error() + ->write($docInternal->__toString() . "\n\n"); + + XrThrowableHandler( + $throwable, + <<<HTML + <div class="throwable-message">Incident ID: {$throwableHandler->id()}</div> + HTML + ); + die(255); +}); diff --git a/app/legacy/load/web.php b/app/legacy/load/web.php new file mode 100644 index 0000000..e575f3d --- /dev/null +++ b/app/legacy/load/web.php @@ -0,0 +1,492 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Config\Config; +use function Chevereto\Legacy\badgePaid; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\IpBan; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Page; +use Chevereto\Legacy\Classes\Palettes; +use Chevereto\Legacy\Classes\RequestLog; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_current_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\is_route_available; +use function Chevereto\Legacy\G\is_url; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\set_status_header; +use function Chevereto\Legacy\get_enabled_languages; +use function Chevereto\Legacy\getIdFromURLComponent; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSystemNotices; +use function Chevereto\Legacy\is_max_invalid_request; +use function Chevereto\Vars\cookie; +use function Chevereto\Vars\env; +use function Chevereto\Vars\get; +use function Chevereto\Vars\server; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +if (Settings::get('chevereto_version_installed') === null) { + new Handler( + loadTemplate: !REPL, // @phpstan-ignore-line + before: function ($handler) { + if ($handler->request_array()[0] !== 'install') { + redirect('install'); + } + }, + ); +} +$bannedIp = IpBan::getSingle(); +if ($bannedIp !== []) { + is_url($bannedIp['message']) + ? redirect($bannedIp['message']) + : ( + die(empty($bannedIp['message']) + ? _s('You have been forbidden to use this website.') + : $bannedIp['message'] + ) + ); +} +$hook_before = function (Handler $handler) { + header('Permissions-Policy: interest-cohort=()'); + header("Content-Security-Policy: frame-ancestors 'none'"); + $failed_access_requests = RequestLog::getCounts(['login', 'signup'], 'fail'); + if (is_max_invalid_request($failed_access_requests['day'])) { + set_status_header(403); + } else { + Login::tryLogin(); + } + $user_lang = cookie()['USER_SELECTED_LANG'] ?? getSetting('default_language'); + if (Login::isLoggedUser()) { + $user_lang = Login::getUser()['language']; + if (Login::getUser()['status'] === 'banned') { + set_status_header(403); + } + if (sessionVar()->hasKey('challenge_two_factor') + && !in_array($handler->getRoutePath(), ['account/two-factor', 'captcha-verify', 'logout']) + && $handler->request_array()[0] !== 'page' + ) { + redirect('account/two-factor'); + } + } + if (!getSetting('language_chooser_enable')) { + $user_lang = getSetting('default_language'); + } + new L10n( + $user_lang, + Login::isLoggedUser() + ? false + : getSetting('auto_language') + ); + if (http_response_code() == 403) { + die(); + } + if ($handler->request_array()[0] !== 'api' + && Settings::get('enable_uploads_url') && !Login::isAdmin()) { + Settings::setValue('enable_uploads_url', 0); + } + if (isset(get()['lang']) && array_key_exists(get()['lang'], get_enabled_languages())) { + if (Login::isLoggedUser() && Login::getUser()['language'] !== get()['lang']) { + User::update(Login::getUser()['id'], ['language' => get()['lang']]); + } + L10n::setCookieLang(get()['lang']); + L10n::processTranslation(get()['lang']); + define('PUSH_LANG', get()['lang']); + } + if (array_key_exists('agree-consent', get())) { + setcookie('AGREE_CONSENT', "1", time() + (60 * 60 * 24 * 30), Config::host()->hostnamePath()); + sessionVar()->put('agree-consent', true); + redirect(get_current_url(true, ['agree-consent'])); + } + $base = $handler::baseRequest(); + parse_str(server()['QUERY_STRING'] ?? '', $querystr); + $handler::setVar('auth_token', $handler::getAuthToken()); + $handler::setVar('doctitle', getSetting('website_name')); + $handler::setVar('meta_description', getSetting('website_description')); + $handler::setVar('logged_user', Login::getUser()); + $handler::setVar('failed_access_requests', $failed_access_requests); + $handler::setVar('header_logo_link', get_base_url()); + $handler::setCond('admin', Login::isAdmin()); + $handler::setCond('manager', Login::isManager()); + $showContentManager = Login::isAdmin() || Login::isManager(); + $handler::setCond('content_manager', $showContentManager); + $allowed_nsfw_flagging = !getSetting('image_lock_nsfw_editing'); + if ($handler::cond('content_manager')) { + $moderateLink = get_base_url('moderate'); + $moderateLabel = _s('Moderate'); + if (!(bool) env()['CHEVERETO_ENABLE_MODERATION']) { + if ((bool) env()['CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES']) { + $moderateLink = 'https://chevereto.com/pricing'; + $moderateLabel .= ' ' . badgePaid(); + } else { + $showContentManager = false; + } + } + $handler::setVar('moderate_link', $moderateLink); + $handler::setVar('moderate_label', $moderateLabel); + $allowed_nsfw_flagging = true; + } + $handler::setCond('show_content_manager', $showContentManager); + $handler::setCond('allowed_nsfw_flagging', $allowed_nsfw_flagging); + $handler::setCond('maintenance', getSetting('maintenance') and !Login::isAdmin()); + $handler::setCond( + 'show_consent_screen', + $base !== 'api' && ( + getSetting('enable_consent_screen') + ? !(Login::getUser() || isset(session()['agree-consent']) || isset(cookie()['AGREE_CONSENT'])) + : false + ) + ); + $handler::setCond('captcha_needed', getSetting('captcha') && getSetting('captcha_threshold') == 0); + $handler::setCond('show_header', !($handler::cond('maintenance') || $handler::cond('show_consent_screen'))); + $handler::setCond('show_notifications', getSetting('website_mode') == 'community' && (getSetting('enable_followers') || getSetting('enable_likes'))); + $handler::setCond('allowed_to_delete_content', Login::isAdmin() || getSetting('enable_user_content_delete')); + $handler::setVar('canonical', null); + $palettes = new Palettes(); + $handler::setVar('palettes', $palettes); + if (in_array($handler->request_array()[0], ['login', 'signup', 'account'])) { + $paletteId = 0; + } else { + $paletteId = Login::isLoggedUser() + ? Login::getUser()['palette_id'] + : Settings::get('theme_palette'); + } + $theme_palette_handle = $palettes->getHandle(intval($paletteId)); + if ($theme_palette_handle === '') { + $paletteId = 1; + $theme_palette_handle = $palettes->getHandle(intval($paletteId)); + } + $handler::setVar('theme_palette', $paletteId); + $handler::setVar('theme_palette_handle', $theme_palette_handle); + if ($handler::cond('maintenance') && $handler->request_array()[0] == 'dashboard') { + redirect('login'); + } + $langLinks = []; + $langToggleUrl = get_current_url(true, ['lang']); + parse_str(server()['QUERY_STRING'] ?? '', $qs); + unset($qs['lang']); + $qs = http_build_query($qs); + $langToggleUrl = rtrim($langToggleUrl, '/') . ($qs ? '&' : '/?') . 'lang='; + foreach (get_enabled_languages() as $k => $v) { + $hreflang = strtolower($k); + $langUrl = $langToggleUrl . $k; + $langLinks[$k] = [ + 'hreflang' => $hreflang, + 'name' => $v['name'], + 'url' => $langUrl, + ]; + } + $handler::setVar('langLinks', $langLinks); + if ($handler::cond('show_consent_screen')) { + $handler::setVar('consent_accept_url', get_current_url() . (parse_url(get_current_url(), PHP_URL_QUERY) ? '&' : '/?') . 'agree-consent'); + } + if (!Login::getUser()) { + if (getSetting('captcha') && $failed_access_requests['day'] >= getSetting('captcha_threshold')) { + $handler::setCond('captcha_needed', true); + } + } + if (getSetting('website_mode') == 'personal') { + if ($handler->request_array()[0] == '/' + && getSetting('website_mode_personal_routing') == '/' + && in_array(key($querystr), ['random']) + ) { + $handler->mapRoute('index'); + } elseif ($handler->request_array()[0] == 'search' + && in_array($handler->request_array()[1] ?? [], ['images', 'albums', 'users']) + ) { + $handler->mapRoute('search'); + } elseif ($handler->request_array()[0] == getSetting('website_mode_personal_routing') + || (getSetting('website_mode_personal_routing') == '/' + && in_array($handler->request_array()[0], ['albums', 'search'])) + ) { + $handler->mapRoute('user', [ + 'id' => getSetting('website_mode_personal_uid'), + ]); + } + if ($handler->request_array()[0] == '/' + && !in_array(key($querystr), ['random', 'lang']) + && !$handler::cond('mapped_route') + ) { + $personal_mode_user = User::getSingle(getSetting('website_mode_personal_uid')); + if ($personal_mode_user !== []) { + if (Settings::get('homepage_cta_html') == null) { + Settings::setValue('homepage_cta_html', _s('View all my images')); + } + if (Settings::get('homepage_title_html') == null) { + Settings::setValue('homepage_title_html', $personal_mode_user['name']); + } + if (Settings::get('homepage_paragraph_html') == null) { + Settings::setValue('homepage_paragraph_html', _s('Feel free to browse and discover all my shared images and albums.')); + } + if (Settings::get('homepage_cta_fn') !== 'cta-link') { + Settings::setValue('homepage_cta_fn', 'cta-link'); + Settings::setValue('homepage_cta_fn_extra', $personal_mode_user['url']); + } + if ($personal_mode_user['background']['url'] ?? false) { + Settings::setValue('homepage_cover_image', $personal_mode_user['background']['url']); + } + } + } + } else { + if ($base !== 'index' and !is_route_available($handler->request_array()[0])) { + $mapTo = getSetting('root_route'); + $handler->mapRoute($mapTo); + } + } + $virtualizable_routes = ['image', 'album', 'user']; + if (in_array($handler->request_array()[0], $virtualizable_routes)) { + $virtual_route = getSetting('route_' . $handler->request_array()[0]); + if ($handler->request_array()[0] !== $virtual_route) { + $virtualized_url = str_replace( + get_base_url($handler->request_array()[0]), + get_base_url($virtual_route), + get_current_url() + ); + redirect($virtualized_url); + + return; + } + } + if ($base !== 'index' && !is_route_available($handler->request_array()[0])) { + foreach ($virtualizable_routes as $k) { + if ($handler->request_array()[0] == getSetting('route_' . $k)) { + $handler->mapRoute($k); + } + } + } + if (getSetting('website_privacy_mode') == 'private' && !Login::getUser()) { + $allowed_requests = ['api', 'login', 'logout', 'page', 'account', 'connect', 'json', 'captcha-verify']; + foreach ($virtualizable_routes as $v) { + $v = getSetting('route_' . $v); + if (isset($v)) { + $allowed_requests[] = $v; + } + } + if (getSetting('enable_signups')) { + $allowed_requests[] = 'signup'; + } + if (!in_array($handler->request_array()[0], $allowed_requests)) { + redirect('login'); + } + } + $handler::setCond('private_gate', getSetting('website_privacy_mode') == 'private' and !Login::getUser()); + $handler::setCond('forced_private_mode', (getSetting('website_privacy_mode') == 'private' and getSetting('website_content_privacy_mode') !== 'default')); + $handler::setCond('explore_enabled', $handler::cond('content_manager') ?: (getSetting('website_explore_page') ? ((bool) Login::isLoggedUser() ?: getSetting('website_explore_page_guest')) : false)); + $handler::setCond( + 'search_enabled', + $handler::cond('content_manager') + ?: ( + getSetting('website_search') + && (Login::isLoggedUser() ?: getSetting('website_search_guest')) + ) + ); + $handler::setCond( + 'random_enabled', + $handler::cond('content_manager') + ?: ( + getSetting('website_random') + && (Login::isLoggedUser() ?: getSetting('website_random_guest')) + ) + ); + $moderate_uploads = false; + switch (getSetting('moderate_uploads')) { + case 'all': + $moderate_uploads = !$handler::cond('content_manager'); + + break; + case 'guest': + $moderate_uploads = !Login::isLoggedUser(); + + break; + } + $handler::setCond('moderate_uploads', $moderate_uploads); + $categories = []; + if ($handler::cond('explore_enabled') || $base == 'dashboard') { + try { + $categories_db = DB::queryFetchAll('SELECT * FROM ' . DB::getTable('categories') . ' ORDER BY category_name ASC;'); + if (count($categories_db) > 0) { + foreach ($categories_db as $k => $v) { + $key = $v['category_id']; + $categories[$key] = $v; + $categories[$key]['category_url'] = get_base_url('category/' . $v['category_url_key']); + $categories[$key] = DB::formatRow($categories[$key]); + } + } + } catch (Throwable $e) { + } + } + if ($handler::cond('explore_enabled') + && $categories === [] + && !(bool) env()['CHEVERETO_ENABLE_USERS'] + ) { + $handler::setCond('explore_enabled', false); + } + $handler::setVar('categories', $categories); + $explore_semantics = [ + 'recent' => [ + 'label' => _s('Recent'), + 'icon' => 'fas fa-history', + ], + 'trending' => [ + 'label' => _s('Trending'), + 'icon' => 'fas fa-poll', + ], + 'popular' => [ + 'label' => _s('Popular'), + 'icon' => 'fas fa-heart', + ], + 'animated' => [ + 'label' => _s('Animated'), + 'icon' => 'fas fa-play', + ], + ]; + if (!(bool) env()['CHEVERETO_ENABLE_USERS']) { + $explore_semantics = []; + } + if (!getSetting('enable_likes')) { + unset($explore_semantics['popular']); + } + if (!in_array('gif', Image::getEnabledImageFormats())) { + unset($explore_semantics['animated']); + } + foreach ($explore_semantics as $k => &$v) { + $v['url'] = get_base_url('explore/' . $k); + } + unset($v); + $handler::setVar('explore_semantics', $explore_semantics); + if (version_compare(Settings::get('chevereto_version_installed'), '3.6.7', '>=')) { + $pages_visible_db = Page::getAll(['is_active' => 1, 'is_link_visible' => 1], ['field' => 'sort_display', 'order' => 'ASC']); + $pageHandle = version_compare(Settings::get('chevereto_version_installed'), '3.12.4', '>=') ? 'internal' : 'url_key'; + $handler::setVar('page_tos', Page::getSingle('tos', $pageHandle)); + $handler::setVar('page_privacy', Page::getSingle('privacy', $pageHandle)); + } + $pages_visible = []; + if ((bool) env()['CHEVERETO_ENABLE_PAGES']) { + foreach ($pages_visible_db as $k => $v) { + if (!($v['is_active'] ?? false) && !($v['is_link_visible'] ?? false)) { + continue; + } + $pages_visible[$v['id']] = $v; + } + if (getSetting('enable_plugin_route')) { + $plugin_page = [ + 'type' => 'link', + 'link_url' => get_base_url('plugin'), + 'icon' => 'fas fa-code', + 'title' => _s('Plugin'), + 'is_active' => 1, + 'is_link_visible' => 1, + 'attr_target' => '_self', + 'sort_display' => 999, + ]; + Page::fill($plugin_page); + $pages_visible[] = $plugin_page; + } + } + $handler::setVar('pages_link_visible', $pages_visible); + $upload_enabled = Login::isAdmin() ?: getSetting('enable_uploads'); + $upload_allowed = $upload_enabled; + if (!Login::getUser()) { + if (!getSetting('guest_uploads') || getSetting('website_privacy_mode') == 'private' || $handler::cond('maintenance')) { + $upload_allowed = false; + } + } elseif (!Login::isAdmin() && getSetting('website_mode') == 'personal' && getSetting('website_mode_personal_uid') !== Login::getUser()['id']) { + $upload_allowed = false; + } + if (!Login::getUser() && $upload_allowed && getSetting('upload_max_filesize_mb_guest')) { + Settings::setValue('upload_max_filesize_mb_bak', getSetting('upload_max_filesize_mb')); + Settings::setValue('upload_max_filesize_mb', getSetting('upload_max_filesize_mb_guest')); + } + if ($upload_allowed && in_array($handler->request_array()[0], ['login', 'signup', 'account'])) { + $upload_allowed = false; + } + $handler::setCond('upload_enabled', $upload_enabled); // System allows to upload? + $handler::setCond('upload_allowed', $upload_allowed); // Target peer can upload? + if ($handler::cond('maintenance') || $handler::cond('show_consent_screen')) { + $handler::setCond('private_gate', true); + $allowed_requests = ['login', 'account', 'connect', 'captcha-verify', 'oembed']; + if (!in_array($handler->request_array()[0], $allowed_requests)) { + $handler->preventRoute($handler::cond('show_consent_screen') ? 'consent-screen' : 'maintenance'); + } + } + if ($handler->request_array()[0] == getSetting('route_image')) { + $id = getIdFromURLComponent($handler->request()[0] ?? ''); + if ($id !== 0) { + $image = Image::getSingle($id, false, true, $handler::var('logged_user')); + $userNotBanned = ($image['user']['status'] ?? '') != 'banned'; + if ($image !== [] && $image['is_approved'] && $userNotBanned && !in_array($image['album']['privacy'] ?? '', ['private', 'custom'])) { + $image_safe_html = safe_html($image); + $handler::setVar('oembed', [ + 'title' => ($image_safe_html['title'] ?? ($image_safe_html['name'] . '.' . $image['extension'])) . ' hosted at ' . getSetting('website_name'), + 'url' => $image['url_viewer'] + ]); + } + } + } + $handler::setVar('system_notices', Login::isAdmin() ? getSystemNotices() : []); + if (!in_array($handler->request_array()[0], ['login', 'signup', 'account', 'connect', 'logout', 'json', 'api', 'captcha-verify'])) { + sessionVar()->put('last_url', get_current_url()); + } + $detect = new Mobile_Detect(); + $isMobile = $detect->isMobile(); + $handler::setCond('mobile_device', (bool) $isMobile); + $handler::setCond('show_viewer_zero', false); + if ($handler->template() == 'request-denied') { + $handler::setVar('doctitle', _s("Request denied") . ' (403) - ' . getSetting('website_name')); + $handler->preventRoute('request-denied'); + } + $handler::setVar('tos_privacy_agreement', _s('I agree to the %terms_link and %privacy_link', [ + '%terms_link' => '<a ' . ($handler::var('page_tos')['link_attr'] ?? '') . '>' . _s('terms') . '</a>', + '%privacy_link' => '<a ' . ($handler::var('page_privacy')['link_attr'] ?? '') . '>' . _s('privacy policy') . '</a>' + ])); + $poweredBySiteWide = (bool) env()['CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE']; + $show_powered_by_footer = $poweredBySiteWide + ?: ($handler->getRoutePath() === 'index' && getSetting('enable_powered_by')); + if (in_array($handler->getRoutePath(false), ['settings', 'dashboard'])) { + $show_powered_by_footer = false; + } + $handler::setCond('show_powered_by_footer', $show_powered_by_footer); +}; +$hook_after = function (Handler $handler) { + if (array_key_exists('deleted', get()) && in_array($handler->template(), ['user', 'album'])) { + set_status_header(303); + } + if ($handler->template() == '404') { + if (sessionVar()->hasKey('last_url')) { + sessionVar()->remove('last_url'); + } + $handler::setVar('doctitle', _s("That page doesn't exist") . ' (404) - ' . getSetting('website_name')); + } + $list_params = $handler::var('list_params'); + if (isset($list_params) && $list_params['page_show']) { + $handler::setVar('doctitle', $handler::var('doctitle') . ' | ' . _s('Page %s', $list_params['page_show'])); + } + if (defined('PUSH_LANG')) { + $handler::setVar('doctitle', $handler::var('doctitle') . ' (' . get_enabled_languages()[PUSH_LANG]['name'] . ')'); + } + $handler::setVar('safe_html_website_name', safe_html(getSetting('website_name'))); + $handler::setVar('safe_html_doctitle', safe_html($handler::var('doctitle'))); + if ($handler::var('pre_doctitle')) { + $handler::setVar('safe_html_pre_doctitle', safe_html($handler::var('pre_doctitle'))); + } + $handler::setVar('safe_html_meta_description', safe_html($handler::var('meta_description'))); + sessionVar()->put('REQUEST_REFERER', get_current_url()); + header('X-Powered-By: Chevereto 4'); +}; +// @phpstan-ignore-next-line +new Handler(loadTemplate: !REPL, before: $hook_before, after: $hook_after, ); diff --git a/app/legacy/routes/account.php b/app/legacy/routes/account.php new file mode 100644 index 0000000..5dcb08d --- /dev/null +++ b/app/legacy/routes/account.php @@ -0,0 +1,523 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Config\Config; +use function Chevereto\Legacy\captcha_check; +use function Chevereto\Legacy\check_hashed_token; +use Chevereto\Legacy\Classes\Confirmation; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\RequestLog; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\TwoFactor; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetime_diff; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\generate_hashed_token; +use function Chevereto\Legacy\get_email_body_str; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\hashed_token_info; +use function Chevereto\Legacy\must_use_captcha; +use function Chevereto\Legacy\send_mail; +use function Chevereto\Vars\get; +use function Chevereto\Vars\post; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + $POST = post(); + $handler->setTemplate('404'); + $route = $handler->requestArray()[0]; + $doing = $handler->request()[0] ?? false; + if (!$doing || !in_array($doing, ['activate', 'password-reset', 'change-email-confirm', 'two-factor']) && $handler->isRequestLevel(3)) { + $handler->issueError(404); + + return; + } + if (!Settings::get('enable_signups') && in_array($doing, ['awaiting-confirmation', 'activate', 'email-changed'])) { + $handler->issueError(403); + + return; + } + $logged_user = Login::getUser(); + $loggedStatus = $logged_user['status'] ?? ''; + if (Login::isLoggedUser() && $doing !== 'email-needed' && $loggedStatus == 'awaiting-email') { + redirect('account/email-needed'); + } + + switch ($doing) { + case 'email-needed': + if (Login::isLoggedUser() && $loggedStatus !== 'awaiting-email') { + redirect($logged_user['url']); + } + + break; + case 'resend-activation': + case 'activate': + if (Login::isLoggedUser() && $loggedStatus !== 'awaiting-confirmation') { + redirect($logged_user['url'] ?? ''); + } + + break; + case 'two-factor': + if (!Login::isLoggedUser()) { + redirect(''); + } + if (!TwoFactor::hasFor($logged_user['id'])) { + redirect('settings/security'); + } + if (!sessionVar()->hasKey('challenge_two_factor')) { + redirect($logged_user['url'] ?? ''); + } + + break; + } + $captcha_needed = false; + $request_to_db = [ + 'password-forgot' => 'account-password-forgot', + 'password-reset' => 'account-password-forgot', + 'resend-activation' => 'account-activate', + 'activate' => 'account-activate', + 'email-needed' => 'account-email-needed', + 'change-email-confirm' => 'account-change-email', + 'two-factor' => 'account-two-factor', + ]; + $request_db_field = $request_to_db[$doing] ?? ''; + $pre_doctitles = [ + 'password-forgot' => _s('Forgot password?'), + 'password-reset' => _s('Reset password'), + 'resend-activation' => _s('Resend account activation'), + 'email-needed' => _s('Add your email address'), + 'awaiting-confirmation' => _s('Awaiting confirmation'), + 'two-factor' => _s('Two-factor authentication'), + 'email-changed' => _s('Email changed'), + ]; + $keysToCheck = $request_to_db; + unset($keysToCheck['change-email-confirm']); + $keysToCheck = array_keys($keysToCheck); + if (in_array($doing, $keysToCheck)) { + $request_log = RequestLog::getCounts($request_db_field, 'fail'); + $captcha_needed = getSettings()['captcha'] + ? must_use_captcha($request_log['day']) + : false; + } + $is_process_done = false; + $is_error = false; + $error_message = null; + $input_errors = []; + if ($captcha_needed && !empty($POST)) { + $captcha = captcha_check(); + if (!$captcha->is_valid) { + $is_error = true; + $error_message = _s('%s says you are a robot', 'CAPTCHA'); + } + } + $handler->setTemplate($route . '/' . $doing); + switch ($doing) { + case 'password-forgot': + case 'resend-activation': + if ($doing == 'password-forgot' && $loggedStatus == 'valid' || $doing == 'resend-activation' && $loggedStatus == 'awaiting-confirmation') { + $POST['user-subject'] = $logged_user['username']; + $is_error = false; + } + if ($POST !== [] && !$is_error) { + $subject_type = filter_var($POST['user-subject'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; + if (trim($POST['user-subject']) == '') { + $is_error = true; + $input_errors['user-subject'] = _s('Invalid Username/Email'); + } + if (!$is_error) { + $user = User::getSingle($POST['user-subject'], $subject_type); + if ($user !== []) { + if (!filter_var($user['email'], FILTER_VALIDATE_EMAIL)) { + $error_message = _s("User doesn't have an email."); + $is_error = true; + } + if ($doing == 'password-forgot') { + switch ($user['status']) { + case 'banned': + $handler->issueError(403); + + return; + + break; + case 'awaiting-email': + case 'awaiting-confirmation': + $is_error = true; + $error_message = _s('Account needs to be activated to use this feature'); + + break; + } + } else { //'resend-activation' + switch ($user['status']) { + case 'valid': + $is_error = true; + $error_message = _s('Account already activated'); + + break; + case 'banned': + $is_error = true; + $error_message = _s('Account banned'); + + break; + } + } + if ($handler->template() == '403') { + RequestLog::insert([ + 'type' => $request_db_field, + 'result' => 'fail', + 'user_id' => $user['id'] + ]); + + return; + } + } else { + $is_error = true; + $input_errors['user-subject'] = _s('Invalid Username/Email'); + } + if (!$is_error) { + $confirmation_db = Confirmation::get(['user_id' => $user['id'], 'type' => $request_db_field, 'status' => 'active'], ['field' => 'date', 'order' => 'desc'], 1); + if ($confirmation_db !== false) { + $minute_diff = $confirmation_db['confirmation_date_gmt'] ? datetime_diff($confirmation_db['confirmation_date_gmt'], null, 'm') : 15 + 1; + if ($minute_diff < 15) { // Mimic for the already submitted + $is_error = true; + $is_process_done = false; + $activation_email = $user['email']; + if ($subject_type == 'username') { // We won't disclose this email address + $activation_email = preg_replace('/(?<=.).(?=.*@)/u', '*', $activation_email); + $explode = explode('@', $activation_email); + while (strlen($explode[0]) < 4) { + $explode[0] .= '*'; + } + $activation_email = implode('@', $explode); + } + $handler::setVar('resend_activation_email', $activation_email); + $error_message = _s('Allow up to 15 minutes for the email. You can try again later.'); + } else { + Confirmation::delete(['user_id' => $user['id'], 'type' => $request_db_field]); + } + } + } + if (!$is_error) { + $hashed_token = generate_hashed_token((int) $user['id']); + $array_values = [ + 'type' => $request_db_field, + 'date' => datetime(), + 'date_gmt' => datetimegmt(), + 'token_hash' => $hashed_token['hash'], + ]; + if (!isset($user['confirmation_id'])) { + $array_values['user_id'] = $user['id']; + $confirmation_db_query = Confirmation::insert($array_values); + } else { + $confirmation_db_query = Confirmation::update($user['confirmation_id'], $array_values); + } + if ($confirmation_db_query) { + $recovery_link = get_public_url('account/' . ($doing == 'password-forgot' ? 'password-reset' : 'activate') . '/?token=' . $hashed_token['public_token_format']); + global $theme_mail; + $theme_mail = [ + 'user' => $user, + 'link' => $recovery_link, + ]; + if ($doing == 'password-forgot') { + $mail['subject'] = _s('Reset your password at %s', getSettings()['website_name']); + } else { + $mail['subject'] = _s('Confirmation required at %s', getSettings()['website_name']); + } + $mail['message'] = get_email_body_str('mails/account-' . ($doing == 'password-forgot' ? 'password-reset' : 'confirm')); + xr($mail); + if (send_mail($user['email'], $mail['subject'], $mail['message'])) { + $is_process_done = true; + } + if ($doing == 'resend-activation') { + Login::setSignup([ + 'status' => 'awaiting-confirmation', + 'email' => $user['email'], + ]); + redirect('account/awaiting-confirmation'); + } + $handler::setVar('password_forgot_email', $user['email']); + } else { + throw new Exception("Can't insert confirmation in DB", 400); + } + } + } + if ($is_error) { + RequestLog::insert([ + 'result' => 'fail', + 'type' => $request_db_field, + 'user_id' => $user['id'] ?? null + ]); + if (getSettings()['captcha'] + && isset($request_log) + && must_use_captcha($request_log['day'] + 1)) { + $captcha_needed = true; + } + if (!$error_message) { + $error_message = _s('Invalid Username/Email'); + } + } + } + + break; + case 'awaiting-confirmation': + if (!Login::hasSignup()) { + $handler->issueError(403); + + return; + + break; + } + if (Login::getSignup()['status'] != 'awaiting-confirmation') { + $handler->issueError(403); + + return; + } + $signup_email = Login::isLoggedUser() + ? $logged_user['email'] + : Login::getSignup()['email']; + $handler::setVar('signup_email', $signup_email); + + break; + case 'password-reset': + case 'activate': + case 'change-email-confirm': + $token = get()['token'] ?? ''; + $get_token_array = $token !== '' + ? explode(':', $token) + : []; + if (isset($request_log) + && $request_log['day'] > Config::limit()->invalidRequestsPerDay()) { + $get_token_array = []; + } + if ($get_token_array === [] || count($get_token_array) !== 2) { + RequestLog::insert([ + 'type' => $request_db_field, + 'result' => 'fail', + 'user_id' => null + ]); + $handler->issueError(403); + + return; + } + $user_id = decodeID($get_token_array[0]); + $get_token = hashed_token_info(get()['token']); + $confirmation_db = Confirmation::get(['type' => $request_db_field, 'user_id' => $get_token['id']]); + if ($confirmation_db === false) { + $handler->issueError(403); + + return; + } + $hash_match = check_hashed_token($confirmation_db['confirmation_token_hash'], get()['token']); + if (datetime_diff($confirmation_db['confirmation_date_gmt'], null, 'h') > 48) { + Confirmation::delete(['id' => $confirmation_db['confirmation_id']]); + $confirmation_db = false; + } + if (!$hash_match || !$confirmation_db) { + RequestLog::insert([ + 'type' => $request_db_field, + 'result' => 'fail', + 'user_id' => $user_id + ]); + $handler->issueError(403); + + return; + } + switch ($doing) { + case 'activate': + User::update($confirmation_db['confirmation_user_id'], ['status' => 'valid']); + Confirmation::delete(['id' => $confirmation_db['confirmation_id']]); + $logged_user = Login::login($confirmation_db['confirmation_user_id']); + Login::insertCookie('cookie', $logged_user['id']); + global $theme_mail; + $theme_mail = [ + 'user' => $logged_user, + 'link' => $logged_user['url'], + ]; + $mail['subject'] = _s('Welcome to %s', getSettings()['website_name']); + $mail['message'] = get_email_body_str('mails/account-welcome'); + if (send_mail($logged_user['email'], $mail['subject'], $mail['message'])) { + $is_process_done = true; + } + Login::unsetSignup(); + redirect($logged_user !== [] ? User::getUrl($logged_user) : null); + + break; + case 'password-reset': + if ($POST !== []) { + if (!preg_match('/' . getSetting('user_password_pattern') . '/', $POST['new-password'] ?? '')) { + $input_errors['new-password'] = _s('Invalid password'); + } + if ($POST['new-password'] !== $POST['new-password-confirm']) { + $input_errors['new-password-confirm'] = _s("Passwords don't match"); + } + if (count($input_errors) == 0) { + if (Login::hasPassword($user_id)) { + $is_process_done = Login::changePassword($user_id, $POST['new-password']); + } else { + $is_process_done = Login::addPassword($user_id, $POST['new-password']); + } + if ($is_process_done) { + Confirmation::delete(['type' => $request_db_field, 'user_id' => $user_id]); + } else { + throw new Exception('Unexpected error', 400); + } + } + } else { + $is_process_done = false; + } + + break; + case 'change-email-confirm': + $email_candidate = $confirmation_db['confirmation_extra']; + $email_db = DB::get('users', ['email' => $email_candidate]); + if ($email_db !== []) { + if ($email_db['user_status'] == 'valid') { + Confirmation::delete(['id' => $confirmation_db['confirmation_id']]); + RequestLog::insert([ + 'type' => $request_db_field, + 'result' => 'fail', + 'user_id' => $user_id + ]); + $handler->issueError(403); + + return; + } else { + DB::delete('users', ['id' => $email_db['user_id']]); + Confirmation::delete(['type' => 'account-change-email', 'user_id' => $email_db['user_id']]); + } + } + Confirmation::delete(['type' => 'account-change-email', 'user_id' => $user_id]); + sessionVar()->put('change-email-confirm', true); + User::update($user_id, ['email' => $email_candidate]); + Login::login($user_id); + redirect('account/email-changed'); + + break; + } + + break; + case 'email-needed': + if ($POST !== [] && !$is_error) { + if (!filter_var($POST['email'], FILTER_VALIDATE_EMAIL)) { + $is_error = true; + $input_errors['email'] = _s('Invalid email'); + } + if (!$is_error) { + $user = User::getSingle($POST['email'], 'email'); + if ($user !== []) { + $is_error = true; + $input_errors['email'] = _s('Email already being used'); + } + } + if (!$is_error) { + User::update($logged_user['id'], ['status' => getSetting('require_user_email_confirmation') ? 'awaiting-confirmation' : 'valid', 'email' => trim($POST['email'])]); + if (!getSetting('require_user_email_confirmation')) { + redirect($logged_user['url']); + } + $hashed_token = generate_hashed_token((int) $logged_user['id']); + $array_values = [ + 'type' => 'account-activate', + 'date' => datetime(), + 'date_gmt' => datetimegmt(), + 'token_hash' => $hashed_token['hash'], + ]; + $array_values['user_id'] = $logged_user['id']; + $confirmation_db_query = Confirmation::insert($array_values); + $activation_link = get_public_url('account/activate/?token=' . $hashed_token['public_token_format']); + global $theme_mail; + $theme_mail = [ + 'user' => $logged_user, + 'link' => $activation_link, + ]; + $mail['subject'] = _s('Confirmation required at %s', getSettings()['website_name']); + $mail['message'] = get_email_body_str('mails/account-confirm'); + if (send_mail($POST['email'], $mail['subject'], $mail['message'])) { + $is_process_done = true; + } + Login::setSignup([ + 'status' => 'awaiting-confirmation', + 'email' => $POST['email'], + ]); + redirect('account/awaiting-confirmation'); + } else { + RequestLog::insert( + [ + 'result' => 'fail', + 'type' => $request_db_field, + 'user_id' => $user['id'] ?? null + ] + ); + if (getSettings()['captcha'] + && isset($request_log) + && must_use_captcha($request_log['day'] + 1)) { + $captcha_needed = true; + } + } + if ($is_error) { + $error_message = $input_errors['email']; + } + } + + break; + case 'email-changed': + if (!isset(session()['change-email-confirm'])) { + $handler->issueError(404); + + return; + } + $handler->setTemplate($route . '/' . 'email-changed'); + + break; + case 'two-factor': + $handler->setTemplate($route . '/' . 'two-factor'); + if (!is_null($POST['user-two-factor'] ?? null) && !$is_error) { + $twoFactor = (new TwoFactor())->withSecret( + TwoFactor::getSecretFor(intval($logged_user['id'])) + ); + if ($twoFactor->verify($POST['user-two-factor'])) { + sessionVar()->remove('challenge_two_factor'); + redirect($logged_user['url']); + } else { + $is_error = true; + $input_errors['user-two-factor'] = _s('Invalid code'); + RequestLog::insert([ + 'type' => $request_db_field, + 'result' => 'fail', + 'user_id' => $logged_user['id'] + ]); + if (getSettings()['captcha'] + && isset($request_log) + && must_use_captcha($request_log['day'] + 1)) { + $captcha_needed = true; + } + } + } + + break; + default: + $handler->issueError(404); + + return; + } + $handler::setVar('pre_doctitle', $pre_doctitles[$doing]); + $handler::setCond('error', $is_error); + $handler::setCond('process_done', $is_process_done); + $handler::setVar('input_errors', $input_errors); + $handler::setVar('error', $error_message ?? _s('Check the errors in the form to continue.')); + $handler::setCond('captcha_needed', $captcha_needed); +}; diff --git a/app/legacy/routes/album.php b/app/legacy/routes/album.php new file mode 100644 index 0000000..85bd1bb --- /dev/null +++ b/app/legacy/routes/album.php @@ -0,0 +1,302 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\captcha_check; +use Chevereto\Legacy\Classes\Album; +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\RequestLog; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\get_current_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\url_to_relative; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getIdFromURLComponent; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\is_max_invalid_request; +use function Chevereto\Legacy\isShowEmbedContent; +use function Chevereto\Legacy\must_use_captcha; +use function Chevereto\Legacy\redirectIfRouting; +use function Chevereto\Vars\env; +use function Chevereto\Vars\get; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + redirectIfRouting('album', $handler->requestArray()[0]); + $albumIndex = getSetting('root_route') === 'album' + ? 0 + : 1; + $request_handle = $albumIndex === 0 + ? $handler->requestArray() + : $handler->request(); + if (($request_handle[0] ?? null) === null) { + $handler->issueError(404); + + return; + } + $id = getIdFromURLComponent($request_handle[0]); + if ($id == 0) { + $handler->issueError(404); + + return; + } + if ($handler->isRequestLevel(4)) { + $handler->issueError(404); + + return; + } + if (isset($request_handle[1]) && !in_array($request_handle[1], ['embeds', 'sub', 'info'])) { + $handler->issueError(404); + + return; + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + if (!isset(session()['album_view_stock'])) { + sessionVar()->put('album_view_stock', []); + } + $album = Album::getSingle( + id: $id, + sumview: !in_array($id, session()['album_view_stock']), + requester: $logged_user + ); + if ($album === []) { + $handler->issueError(404); + + return; + } + if (!(bool) env()['CHEVERETO_ENABLE_USERS'] + && ($album['user']['id'] ?? 'not-found') != getSetting('website_mode_personal_uid')) { + $handler->issueError(404); + + return; + } + if (!starts_with($album['url'], get_current_url())) { + if (server()['QUERY_STRING'] ?? false) { + $redirect = rtrim($album['url'], '/') . '/?' . server()['QUERY_STRING']; + } else { + $redirect = $album['url']; + } + redirect($redirect); + } + $handler::setVar( + 'canonical', + isset(get()['page']) ? null : $album['url'] + ); + $banned = isset($album['user']['status']) && $album['user']['status'] === 'banned'; + if (!$handler::cond('content_manager') && ($album == false || $banned)) { + $handler->issueError(404); + + return; + } + $is_owner = $album['user']['id'] && $album['user']['id'] == ($logged_user['id'] ?? 0); + if (getSetting('website_privacy_mode') == 'private') { + if ($handler::cond('forced_private_mode')) { + $album['privacy'] = getSetting('website_content_privacy_mode'); + } + if (!Login::getUser() && $album['privacy'] != 'private_but_link') { + redirect('login'); + } + } + if (!$handler::cond('content_manager') && !$is_owner && $album['privacy'] == 'password' && isset($album['password'])) { + $is_error = false; + $error_message = null; + $failed_access_requests = RequestLog::getCounts('content-password', 'fail'); + if (is_max_invalid_request($failed_access_requests['day'])) { + $handler->issueError(403); + + return; + } + $captcha_needed = $handler::cond('captcha_needed'); + if ($captcha_needed && (post()['content-password'] ?? false)) { + $captcha = captcha_check(); + if (!$captcha->is_valid) { + $is_error = true; + $error_message = _s('%s says you are a robot', 'CAPTCHA'); + } + } + if (!$is_error) { + if (isset(post()['content-password']) && Album::checkPassword($album['password'], post()['content-password'])) { + Album::storeUserPasswordHash($album['id'], post()['content-password']); + } elseif (!Album::checkSessionPassword($album)) { + $is_error = true; + if (isset(post()['content-password'])) { + RequestLog::insert([ + 'type' => 'content-password', + 'user_id' => ($logged_user['id'] ?? null), + 'content_id' => $album['id'], 'result' => 'fail' + ]); + $error_message = _s('Invalid password'); + } + } + } + $handler::setCond('error', $is_error); + $handler::setVar('error', $error_message); + if ($is_error) { + if (getSettings()['captcha'] && must_use_captcha($failed_access_requests['day'] + 1)) { + $captcha_needed = true; + } + $handler::setCond('captcha_needed', $captcha_needed); + $handler->setTemplate('password-gate'); + $handler::setVar('pre_doctitle', _s('Password required')); + + return; + } else { + $redirect_password = session()['redirect_password_to'] ?? null; + if (isset($redirect_password)) { + sessionVar()->remove('redirect_password_to'); + redirect($redirect_password); + } + } + } + if ($album['user']['is_private'] == 1 + && !$handler::cond('content_manager') + && $album["user"]["id"] != ($logged_user['id'] ?? null) + ) { + unset($album['user']); + $album['user'] = User::getPrivate(); + } + if (!$handler::cond('content_manager') && in_array($album['privacy'], ['private', 'custom']) && !$is_owner) { + $handler->issueError(404); + + return; + } + $safe_html_album = safe_html($album); + $safe_html_album['description'] = preg_replace('/[ \t]+/', ' ', preg_replace('/\s*$^\s*/m', "\n", $safe_html_album['description'] ?? '')); + $getParams = Listing::getParams(request()); + $handler::setVar('list_params', $getParams); + $type = 'images'; + $where = 'WHERE image_album_id=:image_album_id'; + $output_tpl = 'album/image'; + if (isset($request_handle[1]) && $request_handle[1] == 'sub') { + $type = 'albums'; + $where = 'WHERE album_parent_id=:image_album_id'; + $output_tpl = 'user/album'; + } + $listing = new Listing(); + $listing->setType($type); // images | users | albums + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setOwner((int) $album["user"]["id"]); + $listing->setRequester(Login::getUser()); + $listing->setWhere($where); + $listing->setPrivacy($album["privacy"]); + $listing->bind(":image_album_id", $album["id"]); + $listing->setOutputTpl($output_tpl); + if ($is_owner || $handler::cond('content_manager')) { + $listing->setTools(true); + } + $listing->exec(); + $handler::setVar('listing', $listing); + $baseUrl = url_to_relative($album['url']); + $tabs = Listing::getTabs([ + 'listing' => 'images', + 'basename' => $baseUrl, + 'params_hidden' => ['list' => 'images', 'from' => 'album', 'albumid' => $album['id_encoded']], + 'tools_available' => $album['user']['id'] ? [] : ['album' => false] + ]); + if (isShowEmbedContent()) { + $tabs[] = [ + 'icon' => 'fas fa-code', + 'list' => false, + 'tools' => false, + 'label' => _s('Embed codes'), + 'url' => $baseUrl . '/embeds', + 'id' => 'tab-embeds', + ]; + } + + $tabsSubAlbum = Listing::getTabs([ + 'listing' => 'albums', + 'basename' => $baseUrl . '/sub', + 'params_hidden' => ['list' => 'albums', 'from' => 'album', 'albumid' => $album['id_encoded']], + 'tools_available' => $album['user']['id'] ? [] : ['album' => false] + ], $getParams); + foreach ($tabsSubAlbum as $array) { + if ($array['label'] == 'AZ') { + $array['label'] = _s('Sub albums'); + $array['id'] = 'tab-sub'; + $array['url'] = $album['url'] . '/sub'; + $tabs[] = $array; + + break; + } + } + if (Login::isAdmin()) { + $tabs[] = [ + 'icon' => 'fas fa-info-circle', + 'list' => false, + 'tools' => false, + 'label' => _s('Info'), + 'id' => 'tab-info', + 'url' => $album['url'] . '/info' + ]; + } + $handler::setVar('current_tab', 0); + foreach ($tabs as $k => &$v) { + if (isset($request_handle[1])) { + $v['current'] = $v['id'] == ('tab-' . $request_handle[1]); + } + if (isset($v['current']) && $v['current'] === true) { + $handler::setVar('current_tab', $v['id']); + } + if (!isset($v['params'])) { + continue; + } + $class_tabs[$k]['disabled'] = $album['image_count'] == 0 ? !$v['current'] : false; + } + $handler::setCond('owner', $is_owner); + $handler::setVars([ + 'pre_doctitle' => strip_tags($album['name']), + 'album' => $album, + 'album_safe_html' => $safe_html_album, + 'tabs' => $tabs, + 'list' => $listing, + 'owner' => $album['user'] + ]); + if (isset($album['description'])) { + $meta_description = $album['description']; + } else { + $meta_description = _s('%a album hosted in %w', ['%a' => $album['name'], '%w' => getSetting('website_name')]); + } + $handler::setVar('meta_description', htmlspecialchars($meta_description)); + if ($handler::cond('content_manager') || $is_owner) { + $handler::setVar('user_items_editor', [ + "user_albums" => User::getAlbums((int) $album["user"]["id"]), + "type" => "images" + ]); + } + $share_element = [ + "HTML" => '<a href="__url__" title="__title__">__title__ (' . $album['image_count'] . ' ' . _n('image', 'images', $album['user']['image_count_display']) . ')</a>' + ]; + $share_links_array = get_share_links($share_element); + $handler::setVar('share_links_array', $share_links_array); + $handler::setVar('privacy', $album['privacy']); + $addValue = session()['album_view_stock']; + $addValue[] = $id; + sessionVar()->put('album_view_stock', $addValue); +}; diff --git a/app/legacy/routes/api.php b/app/legacy/routes/api.php new file mode 100644 index 0000000..1be3c18 --- /dev/null +++ b/app/legacy/routes/api.php @@ -0,0 +1,234 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * This API V1 was introduced in Chevereto V2 and it was carried over to V3. + * + * From Chevereto V4 onwards the API versioning follow the major version: + * + * - V2 -> API V1 + * - V3 -> API V1 + * - V4 -> API V4 + API V1.1 + */ + +use Chevereto\Legacy\Classes\Akismet; +use Chevereto\Legacy\Classes\ApiKey; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\getQsParams; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\is_image_url; +use function Chevereto\Legacy\G\is_url; +use function Chevereto\Legacy\G\json_error; +use function Chevereto\Legacy\G\json_output; +use function Chevereto\Legacy\G\random_string; +use function Chevereto\Legacy\G\timing_safe_compare; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\env; +use function Chevereto\Vars\files; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; + +return function (Handler $handler) { + try { + $user = []; + $REQUEST = request(); + $FILES = files(); + $SERVER = server(); + $format = $REQUEST['format'] ?? 'json'; + $version = $handler->request()[0] ?? null; + $action = $handler->request()[1] ?? null; + $key = $SERVER['HTTP_X_API_KEY'] ?? $REQUEST['key'] ?? null; + foreach (['version', 'action', 'key'] as $var) { + if ($$var === null) { + throw new Exception("No $var provided", 100); + } + } + if (!in_array($version, ['1'])) { + throw new Exception('Invalid API version.', 110); + } + $verify = ApiKey::verify($key); + if ($verify === []) { + if (!(bool) env()['CHEVERETO_ENABLE_API_GUEST']) { + throw new Exception("Guest API is disabled.", 400); + } + if ((getSetting('api_v1_key') ?? '') == '') { + throw new Exception("API V1 public key can't be null. Go to your dashboard and set the Guest API key.", 0); + } + if (!timing_safe_compare(getSetting('api_v1_key'), $key)) { + throw new Exception("Invalid guest API key.", 100); + } + } else { + $user = User::getSingle($verify['user_id']); + } + $isAdmin = boolval(($user['is_admin'] ?? false)); + if (Settings::get('enable_uploads_url') && !$isAdmin) { + Settings::setValue('enable_uploads_url', 0); + } + $upload_enabled = $isAdmin ?: getSetting('enable_uploads'); + $upload_allowed = $upload_enabled; + if ($user === []) { + if (!getSetting('guest_uploads') + || getSetting('website_privacy_mode') == 'private' + || $handler::cond('maintenance') + ) { + $upload_allowed = false; + } + } elseif (!$user['is_admin'] + && getSetting('website_mode') == 'personal' + && getSetting('website_mode_personal_uid') !== $user['id'] + ) { + $upload_allowed = false; + } + if (!$upload_allowed) { + throw new Exception(_s('Request denied'), 401); + } + $version_to_actions = [ + '1' => ['upload'] + ]; + if (!in_array($action, $version_to_actions[$version])) { + throw new Exception('Invalid API action.', 120); + } + $source = $FILES['source'] + ?? $REQUEST['source'] + ?? $REQUEST['image'] + ?? null; + if (is_null($source)) { + throw new Exception('Empty upload source.', 130); + } + switch (true) { + case isset($FILES['source'], $FILES['source']['tmp_name']): + $source = $FILES['source']; + + break; + case is_image_url($source) || is_url($source): + if (($SERVER['REQUEST_METHOD'] ?? '') === 'GET') { + $sourceQs = urldecode(getQsParams()['source']); + } + $source = $sourceQs ?? $source; + + break; + default: + if (($SERVER['REQUEST_METHOD'] ?? '') !== 'POST') { + throw new Exception('Upload using base64 source must be done using POST method.', 130); + } + $source = trim(preg_replace('/\s+/', '', $source)); + if (!timing_safe_compare(base64_encode(base64_decode($source)), $source)) { + throw new Exception('Invalid base64 string.', 120); + } + $api_temp_file = tempnam(sys_get_temp_dir(), 'chvtemp'); + if (!$api_temp_file || !is_writable($api_temp_file)) { + throw new Exception("Can't get a tempnam.", 200); + } + $fh = fopen($api_temp_file, 'w'); + stream_filter_append($fh, 'convert.base64-decode', STREAM_FILTER_WRITE); + fwrite($fh, $source); + fclose($fh); + $source = [ + 'name' => random_string(12) . '.jpg', + 'type' => 'image/jpeg', + 'tmp_name' => $api_temp_file, + 'error' => 'UPLOAD_ERR_OK', + 'size' => '1' + ]; + + break; + } + $isImgBBSpec = array_key_exists('image', $REQUEST); + $albumId = $REQUEST['album_id'] ?? null; + if ($albumId !== null) { + $albumId = decodeID($albumId); + } + $expiration = $REQUEST['expiration'] ?? null; + if (!is_null($expiration) && ctype_digit($expiration)) { + $expiration = Image::getExpirationFromSeconds($expiration); + } + $params = [ + 'album_id' => $albumId, + 'category_id' => $REQUEST['category_id'] ?? null, + 'description' => $REQUEST['description'] ?? null, + 'nsfw' => $REQUEST['nsfw'] ?? null, + 'title' => $REQUEST['title'] ?? $REQUEST['name'] ?? null, + 'width' => $REQUEST['width'] ?? null, + 'expiration' => $expiration, + ]; + $params = array_filter($params); + if (!$handler::cond('content_manager') && getSetting('akismet')) { + $user_source_db = [ + 'user_name' => $user['name'] ?? null, + 'user_username' => $user['username'] ?? null, + 'user_email' => $user['email'] ?? null, + ]; + Akismet::checkImage($params['title'] ?? null, $params['description'] ?? null, $user_source_db); + } + $uploadToWebsite = Image::uploadToWebsite($source, $user, $params); + $uploaded_id = intval($uploadToWebsite[0]); + $image = Image::formatArray(Image::getSingle($uploaded_id), true); + $image['delete_url'] = Image::getDeleteUrl(encodeID($uploaded_id), $uploadToWebsite[1]); + unset($image['user'], $image['album']); + if (!$image['is_approved']) { + unset($image['image']['url'], $image['thumb']['url'], $image['medium']['url'], $image['url'], $image['display_url']); + } + $json_array = []; + $json_array['status_code'] = 200; + if ($isImgBBSpec) { + $json_array['status'] = $json_array['status_code']; + $image['id'] = $image['id_encoded']; + } + $json_array['success'] = ['message' => 'image uploaded', 'code' => 200]; + $json_array[$isImgBBSpec ? 'data' : 'image'] = $image; + + if ($version == 1) { + switch ($format) { + default: + case 'json': + json_output($json_array); + + break; + case 'txt': + echo $image['url']; + + break; + case 'redirect': + if ($json_array['status_code'] === 200) { + $redirect_url = $image['path_viewer']; + header("Location: $redirect_url"); + } else { + die($json_array['status_code']); + } + + break; + } + die(); + } else { + json_output($json_array); + } + } catch (Exception $e) { + $json_array = json_error($e); + if ($version == 1) { + switch ($format) { + default: + case 'json': + json_output($json_array); + + break; + case 'txt': + case 'redirect': + die($json_array['error']['message']); + } + } else { + json_output($json_array); + } + } +}; diff --git a/app/legacy/routes/captcha-verify.php b/app/legacy/routes/captcha-verify.php new file mode 100644 index 0000000..5f37249 --- /dev/null +++ b/app/legacy/routes/captcha-verify.php @@ -0,0 +1,55 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\G\fetch_url; +use function Chevereto\Legacy\G\get_client_ip; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\get; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + $key = getSetting('captcha_secret') ?? ''; + if ($key === '') { + redirect(); + } + + try { + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); + header('Cache-Control: no-cache, must-revalidate'); + header('Pragma: no-cache'); + header('Content-type: application/json; charset=UTF-8'); + $endpoint = match (getSetting('captcha_api')) { + '3' => 'https://www.recaptcha.net/recaptcha/api/siteverify', + default => throw new Exception('Invalid captcha type'), + }; + $params = [ + 'secret' => getSetting('captcha_secret'), + 'response' => get()['token'] ?? '', + 'remoteip' => get_client_ip() + ]; + $fetch = fetch_url( + url: $endpoint, + options: [ + CURLOPT_POST => 1, + CURLOPT_POSTFIELDS => http_build_query($params), + ] + ); + $object = json_decode($fetch); + $isSuccess = (bool) $object->success; + sessionVar()->put('isHuman', $isSuccess); + sessionVar()->put('isBot', !$isSuccess); + die($fetch); + } catch (Exception $e) { + } + die(); +}; diff --git a/app/legacy/routes/category.php b/app/legacy/routes/category.php new file mode 100644 index 0000000..401b3be --- /dev/null +++ b/app/legacy/routes/category.php @@ -0,0 +1,76 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_route_name; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + if (!$handler::cond('explore_enabled')) { + $handler->issueError(404); + + return; + } + $category = null; + $categories = $handler::var('categories'); + $category_url_key = $handler->request()[0] ?? false; + if (!$category_url_key) { + redirect('explore'); + } + if ($category_url_key) { + foreach ($categories as $v) { + if ($v['url_key'] == $category_url_key) { + $category = $v; + + break; + } + } + if (!$category) { + $handler->issueError(404); + + return; + } + $handler::setVar('pre_doctitle', $category['name']); + } + $getParams = Listing::getParams(request()); + $tabs = Listing::getTabs([ + 'listing' => 'images', + 'basename' => get_route_name() . '/' . $category['url_key'], + 'params_hidden' => ['category_id' => $category['id'], 'hide_banned' => 1], + ], $getParams); + $handler::setVar('list_params', $getParams); + $listing = new Listing(); + $listing->setType('images'); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setCategory($category['id']); + $listing->setRequester(Login::getUser()); + $listing->exec(); + $meta_description = $category['description'] ?? ''; + $handler::setVar('meta_description', htmlspecialchars($meta_description)); + $handler::setVar('category', $category); + $handler::setVar('tabs', $tabs); + $handler::setVar('listing', $listing); + $handler->setTemplate('explore'); + $handler::setVar('share_links_array', get_share_links()); +}; diff --git a/app/legacy/routes/connect.php b/app/legacy/routes/connect.php new file mode 100644 index 0000000..dc1acba --- /dev/null +++ b/app/legacy/routes/connect.php @@ -0,0 +1,178 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Message\message; +use Chevereto\Legacy\Classes\HybridauthSession; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\getSetting; +use Hybridauth\Exception\InvalidAuthorizationStateException; +use Hybridauth\Hybridauth; + +return function (Handler $handler) { + if (!version_compare(Settings::get('chevereto_version_installed') ?? '', '4.0.0-beta.11', '>=')) { + echo 'Route not available until the system update gets installed.'; + die(); + } + $doing = $handler->request()[0] ?? ''; + $providersEnabled = Login::getProviders('enabled'); + $doable = array_keys($providersEnabled); + if (!in_array($doing, $doable)) { + $handler->issueError(404); + + return; + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + $cookieName = Login::getSocialCookieName($doing); + if ($logged_user !== []) { + $validate = Login::validateCookie($cookieName); + if ($validate['valid'] + && in_array($validate['id'], Login::getSession()['login_cookies'] ?? []) + ) { + redirect('settings/connections#' . $doing); + + return; + } + } + $config = [ + 'callback' => get_public_url('connect/' . $doing) . '/', + 'providers' => [], + ]; + foreach ($providersEnabled as $name => $provider) { + $config['providers'][$name] = [ + 'enabled' => $provider['is_enabled'], + 'keys' => [ + 'id' => $provider['key_id'], + 'secret' => $provider['key_secret'], + ] + ]; + } + $session = new HybridauthSession(); + $hybridauth = new Hybridauth(config: $config, storage: $session); + $adapter = $hybridauth->getAdapter($doing); + + try { + if (!$adapter->isConnected()) { + $adapter->authenticate(); + } else { + } + } catch (InvalidAuthorizationStateException) { + $session->clear(); + redirect('connect/' . $doing); + } + if ($adapter->isConnected()) { + $user = $logged_user; + $connectProfile = $adapter->getUserProfile(); + $connectedUserId = Login::getUserIdForResource( + $doing, + $connectProfile->identifier + ); + if ($connectedUserId !== 0) { + if ($user === []) { + $user = User::getSingle($connectedUserId); + } + if ($connectedUserId != ($user['id'] ?? 0)) { + Login::logout(); + redirect('connect/' . $doing); + } + } + if ($user === []) { + if (!Settings::get('enable_signups')) { + $handler->issueError(403); + + return; + } + $username = ''; + preg_match_all('/[\w]/', $connectProfile->displayName, $user_matches); + foreach ($user_matches[0] as $match) { + $username .= $match; + } + $baseUsername = substr(strtolower($username), 0, (int) getSetting('username_max_length')); + $username = $baseUsername; + $j = 1; + while (!User::isValidUsername($username)) { + if (strlen($username) > getSetting('username_max_length')) { + $username = substr($baseUsername, 0, -strlen(strval($j))) . $j; + } else { + $username .= $j; + } + $j++; + } + $i = 1; + while (User::getSingle($username, 'username', false)) { + if (strlen($username) > getSetting('username_max_length')) { + $username = substr($baseUsername, 0, -strlen(strval($i))) . $i; + } else { + $username .= $i; + } + $i++; + } + $insert_user_values = [ + 'username' => $username, + 'name' => $connectProfile->displayName, + 'status' => getSetting('require_user_email_social_signup') + ? 'awaiting-email' + : 'valid', + 'website' => $connectProfile->webSiteURL, + 'timezone' => getSetting('default_timezone'), + 'language' => L10n::getLocale(), + ]; + $insert_user_values = array_filter($insert_user_values); + // if (in_array($doing, ['twitter', 'facebook'])) { + // $insert_user_values[$doing . '_username'] = $connectProfile->displayName; + // } + $inserted_user = User::insert($insert_user_values); + $user = User::getSingle($inserted_user, 'id', true); + } + if ($user === []) { + throw new LogicException(message('User not found')); + } + $values = [ + 'user_id' => $user['id'], + 'resource_id' => $connectProfile->identifier, + 'resource_name' => $connectProfile->displayName, + 'token' => $adapter->getAccessToken(), + ]; + $connection = Login::getUserConnections((int) $user['id'])[$doing] ?? null; + if ($connection !== null) { + Login::updateConnection((int) $connection['id'], $values); + } else { + Login::insertConnection($doing, $values); + } + Login::insertCookie('cookie_' . $doing, $user['id']); + $adapter->disconnect(); + + // if (isset($connectProfile->photoURL) && !isset($user['avatar']['filename'])) { + // try { + // User::uploadPicture($user, 'avatar', $connectProfile->photoURL); + // } catch (Throwable) { + // } + // } + + $redirectTo = Login::redirectToAfterCookie( + $user['id'], + $logged_user === [] + ? $user['url'] + : 'settings/connections#' . $doing + ); + redirect($redirectTo); + } + + redirect(''); + + die(); +}; diff --git a/app/legacy/routes/dashboard.php b/app/legacy/routes/dashboard.php new file mode 100644 index 0000000..10bcb8d --- /dev/null +++ b/app/legacy/routes/dashboard.php @@ -0,0 +1,1593 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Config\Config; +use function Chevereto\Legacy\badgePaid; +use Chevereto\Legacy\Classes\Akismet; +use Chevereto\Legacy\Classes\Arachnid; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Mailer; +use Chevereto\Legacy\Classes\Page; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\Stat; +use Chevereto\Legacy\Classes\Upload; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\abbreviate_number; +use function Chevereto\Legacy\G\absolute_to_url; +use function Chevereto\Legacy\G\check_value; +use function Chevereto\Legacy\G\datetime_diff; +use function Chevereto\Legacy\G\fetch_url; +use function Chevereto\Legacy\G\format_bytes; +use function Chevereto\Legacy\G\get_app_version; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_ini_bytes; +use function Chevereto\Legacy\G\get_regex_match; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\is_integer; +use function Chevereto\Legacy\G\is_route_available; +use function Chevereto\Legacy\G\is_url; +use function Chevereto\Legacy\G\is_url_web; +use function Chevereto\Legacy\G\is_valid_url; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\sanitize_relative_path; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\timing_safe_compare; +use function Chevereto\Legacy\G\unlinkIfExists; +use function Chevereto\Legacy\get_available_languages; +use function Chevereto\Legacy\get_chv_default_setting; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\getSystemNotices; +use function Chevereto\Legacy\updateCheveretoNews; +use function Chevereto\Legacy\upload_to_content_images; +use function Chevereto\Vars\env; +use function Chevereto\Vars\files; +use function Chevereto\Vars\get; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use Intervention\Image\ImageManagerStatic; +use PHPMailer\PHPMailer\SMTP; + +return function (Handler $handler) { + $POST = post(); + if ($POST !== [] && !$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + $doing = $handler->request()[0] ?? 'stats'; + $logged_user = Login::getUser(); + if ($logged_user === []) { + redirect('login'); + } + if ($doing == 'user' && $handler::cond('content_manager')) { + $route = $handler->getRouteFn('settings'); + $handler::setCond('dashboard_user', true); + + return $route($handler); + } + if (!$logged_user['is_admin']) { + $handler->issueError(404); + + return; + } + $route_prefix = 'dashboard'; + $routes = [ + 'stats' => _s('Stats'), + 'images' => _s('Images'), + 'albums' => _s('Albums'), + 'users' => _s('Users'), + 'bulk-importer' => _s('Bulk importer'), + 'settings' => _s('Settings'), + ]; + $routesLinkLabels = $routes; + $paidRoutes = []; + $paidRoutesEnv = [ + 'images' => 'CHEVERETO_ENABLE_USERS', + 'albums' => 'CHEVERETO_ENABLE_USERS', + 'users' => 'CHEVERETO_ENABLE_USERS', + 'bulk-importer' => 'CHEVERETO_ENABLE_BULK_IMPORTER', + ]; + foreach ($paidRoutesEnv as $k => $v) { + if (!(bool) env()['CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES'] && !(bool) env()[$v]) { + unset($routes[$k]); + + continue; + } + if (!(bool) env()[$v]) { + array_push($paidRoutes, $k); + $routes[$k] .= ' ' . badgePaid(); + } + } + $icons = [ + 'stats' => 'fas fa-chart-bar', + 'images' => 'fas fa-image', + 'albums' => 'fas fa-images', + 'users' => 'fas fa-users', + 'settings' => 'fas fa-cog', + 'bulk-importer' => 'fas fa-layer-group', + ]; + $settings_sections = [ + 'website' => _s('Website'), + 'content' => _s('Content'), + 'listings' => _s('Listings'), + 'image-upload' => _s('Image upload'), + 'categories' => _s('Categories'), + 'theme' => _s('Theme'), + 'system' => _s('System'), + 'languages' => _s('Languages'), + 'email' => _s('Email'), + 'tools' => _s('Tools'), + 'logo' => _s('Logo'), + 'external-storage' => _s('External storage'), + 'homepage' => _s('Homepage'), + 'pages' => _s('Pages'), + 'routing' => _s('Routing'), + 'external-services' => _s('External services'), + 'login-providers' => _s('Login providers'), + 'upload-plugin' => _s('Upload plugin'), + 'cookie-compliance' => _s('Cookie compliance'), + 'consent-screen' => _s('Consent screen'), + 'flood-protection' => _s('Flood protection'), + 'banners' => _s('Banners'), + 'ip-bans' => _s('IP bans'), + 'users' => _s('Users'), + 'guest-api' => _s('Guest %s', 'API'), + 'watermarks' => _s('Watermarks'), + ]; + $settings_sections_icons = [ + 'upload-plugin' => 'fas fa-plus', + 'banners' => 'fas fa-scroll', + 'categories' => 'fas fa-columns', + 'consent-screen' => 'fas fa-desktop', + 'content' => 'fas fa-cubes', + 'cookie-compliance' => 'fas fa-cookie-bite', + 'email' => 'fas fa-at', + 'external-services' => 'fas fa-concierge-bell', + 'external-storage' => 'fas fa-hdd', + 'flood-protection' => 'fas fa-faucet', + 'guest-api' => 'fas fa-project-diagram', + 'homepage' => 'fas fa-home', + 'image-upload' => 'fas fa-cloud-upload-alt', + 'ip-bans' => 'fas fa-ban', + 'languages' => 'fas fa-language', + 'listings' => 'fas fa-th-list', + 'logo' => 'fas fa-gem', + 'login-providers' => 'fas fa-right-to-bracket', + 'pages' => 'fas fa-file', + 'routing' => 'fas fa-route', + 'system' => 'fas fa-server', + 'theme' => 'fas fa-paint-brush', + 'tools' => 'fas fa-tools', + 'users' => 'fas fa-users-cog', + 'website' => 'fas fa-globe', + 'upload-plugin' => 'fas fa-plug', + 'watermarks' => 'fas fa-tint', + ]; + $paidSettingsEnv = [ + 'banners' => 'CHEVERETO_ENABLE_BANNERS', + 'consent-screen' => 'CHEVERETO_ENABLE_CONSENT_SCREEN', + 'cookie-compliance' => 'CHEVERETO_ENABLE_COOKIE_COMPLIANCE', + 'external-services' => 'CHEVERETO_ENABLE_EXTERNAL_SERVICES', + 'external-storage' => 'CHEVERETO_ENABLE_EXTERNAL_STORAGE', + 'flood-protection' => 'CHEVERETO_ENABLE_UPLOAD_FLOOD_PROTECTION', + 'guest-api' => 'CHEVERETO_ENABLE_API_GUEST', + 'homepage' => 'CHEVERETO_ENABLE_USERS', + 'ip-bans' => 'CHEVERETO_ENABLE_IP_BANS', + 'logo' => 'CHEVERETO_ENABLE_LOGO', + 'login-providers' => 'CHEVERETO_ENABLE_LOGIN_PROVIDERS', + 'pages' => 'CHEVERETO_ENABLE_PAGES', + 'routing' => 'CHEVERETO_ENABLE_ROUTING', + 'upload-plugin' => 'CHEVERETO_ENABLE_UPLOAD_PLUGIN', + 'users' => 'CHEVERETO_ENABLE_USERS', + 'watermarks' => 'CHEVERETO_ENABLE_UPLOAD_WATERMARK', + ]; + $paidSettings = []; + $default_route = 'stats'; + if (!is_null($doing) && !array_key_exists($doing, $routes)) { + $handler->issueError(404); + + return; + } + if ($doing == '') { + $doing = $default_route; + } + foreach ($routes as $route => $label) { + $aux = str_replace('_', '-', $route); + $handler::setCond($route_prefix . '_' . $aux, $doing == $aux); + if ($handler::cond($route_prefix . '_' . $aux)) { + $handler::setVar($route_prefix, $aux); + } + $route_menu[$route] = [ + 'icon' => $icons[$route], + 'label' => $label, + 'url' => in_array($route, $paidRoutes) + ? 'https://chevereto.com/pricing' + : get_base_url($route_prefix . ($route == $default_route ? '' : '/' . $route)), + 'current' => $handler::cond($route_prefix . '_' . $aux) + ]; + } + $handler::setVar('docsBaseUrl', 'https://v4-docs.chevereto.com/'); + $handler::setVar('adminDocsBaseUrl', 'https://v4-admin.chevereto.com/'); + $handler::setVar('userDocsBaseUrl', 'https://v4-admin.chevereto.com/'); + $handler::setVar($route_prefix . '_menu', $route_menu); + $handler::setVar('tabs', $route_menu); + $is_error = false; + $is_changed = false; + $input_errors = []; + $error_message = null; + if ($doing == '') { + $doing = 'stats'; + } + if (in_array($doing, $paidRoutes)) { + $handler->issueError(404); + } + switch ($doing) { + case 'stats': + if (version_compare(getSetting('chevereto_version_installed'), '3.7.0', '<')) { + $totals = []; + } else { + $totals = Stat::getTotals(); + if ($totals === []) { + $totals = [ + 'date_gmt' => null, + 'users' => 0, + 'images' => 0, + 'albums' => 0, + 'image_views' => 0, + 'album_views' => 0, + 'image_likes' => 0, + 'album_likes' => 0, + 'disk_used' => 0, + ]; + } + } + $totals_display = []; + $total_handle = ['images', 'users', 'albums']; + foreach ($total_handle as $v) { + $totals_display[$v] = abbreviate_number($totals[$v]); + } + $format_disk_usage = explode(' ', format_bytes($totals['disk_used'])); + $totals_display['disk'] = ['used' => $format_disk_usage[0], 'unit' => $format_disk_usage[1]]; + if (empty($totals_display['disk']['used'])) { + $totals_display['disk'] = [ + 'used' => 0, + 'unit' => 'KB' + ]; + } + $db = DB::getInstance(); + $chevereto_news = unserialize(Settings::get('chevereto_news')); + if (!is_array($chevereto_news) || $chevereto_news === []) { + $chevereto_news = updateCheveretoNews(); + } + $handler::setVar('chevereto_news', $chevereto_news); + $chv_version = [ + 'files' => get_app_version(), + 'db' => getSetting('chevereto_version_installed') ?? '' + ]; + $linksButtons = ''; + $links = [ + [ + 'label' => _s('Documentation'), + 'icon' => 'fas fa-book', + 'href' => $handler::var('docsBaseUrl') + ], + [ + 'label' => _s('%s docs', _s('Admin')), + 'icon' => 'fas fa-user-tie', + 'href' => 'https://v4-admin.chevereto.com' + ], + [ + 'label' => _s('%s docs', _s('User')), + 'icon' => 'fas fa-user', + 'href' => 'https://v4-user.chevereto.com' + ], + ]; + if (env()['CHEVERETO_CONTEXT'] === 'saas') { + $links = array_merge($links, [ + [ + 'label' => _s('Support'), + 'icon' => 'fas fa-medkit', + 'href' => 'https://chevereto.cloud/support' + ], + ]); + } else { + $links = array_merge($links, [ + [ + 'label' => _s("Releases"), + 'icon' => 'fas fa-rocket', + 'href' => 'https://releases.chevereto.com' + ], + [ + 'label' => _s('Support'), + 'icon' => 'fas fa-medkit', + 'href' => 'https://chevereto.com/support' + ], + [ + 'label' => _s('Community'), + 'icon' => 'fas fa-users', + 'href' => 'https://chevereto.com/community' + ], + [ + 'label' => _s("License"), + 'icon' => 'fas fa-key', + 'href' => 'https://chevereto.com/panel/license' + ] + ]); + } + foreach ($links as $link) { + $linksButtons .= strtr('<a href="%href%" target="_blank" class="btn btn-small default margin-right-5 margin-top-5"><span class="btn-icon fa-btn-icon %icon%"></span> %label%</a>', [ + '%href%' => $link['href'], + '%icon%' => $link['icon'], + '%label%' => $link['label'], + ]); + } + $install_update_button = ''; + $version_check = ''; + $cronRemark = ''; + $errorLogRemark = ''; + $cron_last_ran = Settings::get('cron_last_ran'); + if (env()['CHEVERETO_CONTEXT'] !== 'saas') { + if (version_compare($chv_version['files'], $chv_version['db'], '>')) { + $install_update_button = $chv_version['db'] . ' DB <span class="fas fa-database"></span> <a href="' . get_base_url('update') . '">' . _s('install update') . '</a>'; + } + $version_check .= '<a data-action="check-for-updates" class="btn btn-small accent margin-right-5 margin-top-5"><span class="fas fa-arrow-alt-circle-up"></span> ' . _s("Check updates") . '</a>'; + if (datetime_diff($cron_last_ran, null, 'm') > 5) { + $cronRemark .= ' — <span class="color-fail"><span class="fas fa-exclamation-triangle"></span> ' . _s('not running') . '</span>'; + } + if ((env()['CHEVERETO_SERVICING'] ?? null) === 'docker') { + $cronRemark .= '<div><code class="code code--command display-inline-block" data-click="select-all" style="white-space: pre-wrap;">docker exec -it --user www-data ' . (gethostname() ?: 'chv-container') . ' app/bin/legacy -C cron</code></div>'; + $errorLogRemark .= '<div><code class="code code--command display-inline-block" data-click="select-all" style="white-space: pre-wrap;">docker logs ' . (gethostname() ?: 'chv-container') . ' -f 1>/dev/null</code></div>'; + } + } + $chv_versioning = explode('.', APP_VERSION); + $chv_version_major = $chv_versioning[0] . '.X'; + $chv_version_minor = $chv_versioning[0] . '.' . $chv_versioning[1]; + $system_values = [ + 'chv_version' => [ + 'label' => '<div class="text-align-center"><a href="https://chevereto.com" target="_blank"><img src="' . absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'chevereto-blue.svg') . '" alt="" width="50%"></a></div>', + 'content' => '<div class="phone-text-align-center">' + . '<h3 class="margin-bottom-10"><a target="_blank" href="https://releases.chevereto.com/' . $chv_version_major . '/' . $chv_version_minor . '/' . $chv_version['files'] . '">' + . $chv_version['files'] + . '<span class="btn-icon fas fas fa-code-branch"></span></a> <span class="software-version-name" title="' . APP_VERSION_AKA . '">' . APP_VERSION_AKA . '</span> </h3>' + . $install_update_button + . '<div class="margin-bottom-20">' . $version_check . $linksButtons . '</div> + </div>' + ], + 'max_upload_size' => [ + 'label' => _s('Max. upload file size'), + 'content' => '<i class="fas fa-upload"></i> ' . format_bytes(get_ini_bytes(ini_get('upload_max_filesize'))) + ], + 'graphics' => [ + 'label' => _s('Graphics Library'), + ], + 'rebuild_stats' => [ + 'label' => _s('Stats'), + 'content' => '<a data-action="dashboardTool" data-tool="rebuildStats"><span class="fas fa-sync-alt"></span> ' . _s('Rebuild stats') . '</a>' + ], + 'connecting_ip' => [ + 'label' => _s('Connecting IP'), + 'content' => '<i class="fas fa-network-wired"></i> ' . get_client_ip() . ' <a data-modal="simple" data-target="modal-connecting-ip"><i class="fas fa-question-circle margin-right-5"></i>' . _s('Not your IP?') . '</a>' + ], + ]; + if (env()['CHEVERETO_CONTEXT'] !== 'saas') { + $mysqlVersion = $db->getAttr(PDO::ATTR_SERVER_VERSION); + $db->closeCursor(); + $mysqlServerInfo = $db->getAttr(PDO::ATTR_SERVER_INFO); + $system_values_more = [ + 'cli' => [ + 'label' => 'CLI', + 'content' => '<i class="fas fa-terminal"></i> <span data-click="select-all">' . PATH_PUBLIC . 'app/bin/legacy</span>', + ], + 'cron' => [ + 'label' => _s('Cron last ran'), + 'content' => '<i class="fas fa-clock"></i> ' . $cron_last_ran . ' UTC' . $cronRemark, + ], + 'error_log' => [ + 'label' => 'Error log', + 'content' => '<i class="fas fa-scroll"></i> <span data-click="select-all">' . Config::system()->errorLog() . '</span>' . $errorLogRemark, + ], + 'php_version' => [ + 'label' => _s('PHP version'), + 'content' => '<span class="fab fa-php"></span> ' . PHP_VERSION . ' ' . php_ini_loaded_file() + ], + 'server' => [ + 'label' => _s('Server'), + 'content' => '<i class="fas fa-layer-group"></i> ' . ((server()['SERVER_SOFTWARE'] ?? '🐍') . ' ~ ' . gethostname() . ' ' . PHP_OS . '/' . PHP_SAPI . ((env()['CHEVERETO_SERVICING'] ?? null) === 'docker' ? ' <span class="fab fa-docker"></span> Docker' : '')) + ], + 'mysql_version' => [ + 'label' => _s('MySQL version'), + 'content' => '<i class="fas fa-database"></i> ' . $mysqlVersion + ], + 'mysql_server_info' => [ + 'label' => _s('MySQL server info'), + 'content' => '<i class="fas fa-info-circle"></i> ' . $mysqlServerInfo + ], + 'file_uploads' => [ + 'label' => _s('File uploads'), + 'content' => (int) ini_get('file_uploads') == 1 + ? '<i class="fas fa-check-circle color-success"></i> ' . _s('Enabled') + : '<i class="fas fa-times color-fail"></i> ' . _s('Disabled') + ], + 'max_execution_time' => [ + 'label' => _s('Max. execution time'), + 'content' => '<i class="fas fa-stopwatch"></i> ' . strtr(_n('%d second', '%d seconds', ini_get('max_execution_time')), ['%d' => ini_get('max_execution_time')]) + ], + 'memory_limit' => [ + 'label' => _s('Memory limit'), + 'content' => '<i class="fas fa-memory"></i> ' . format_bytes(get_ini_bytes(ini_get('memory_limit'))) + ], + ]; + $pos = array_search('max_upload_size', array_keys($system_values), true); + array_splice($system_values, $pos, 0, $system_values_more); + } + + $graphicsLibraryContent = '<i class="fas fa-feather"></i> '; + if (ImageManagerStatic::getManager()->config['driver'] === 'imagick') { + $graphicVersion = env()['CHEVERETO_CONTEXT'] === 'saas' + ? "ImageMagick" + : Imagick::getVersion()['versionString']; + $system_values['graphics']['content'] = $graphicsLibraryContent . $graphicVersion; + } else { + $graphicVersion = env()['CHEVERETO_CONTEXT'] === 'saas' + ? 'GD ' + : 'GD Version ' . gd_info()['GD Version']; + $system_values['graphics']['content'] = $graphicsLibraryContent . $graphicVersion + . ' JPEG:' . gd_info()['JPEG Support'] + . ' GIF:' . gd_info()['GIF Read Support'] . '/' . gd_info()['GIF Create Support'] + . ' PNG:' . gd_info()['PNG Support'] + . ' WEBP:' . (gd_info()['WebP Support'] ?? 0) + . ' WBMP:' . gd_info()['WBMP Support'] + . ' XBM:' . gd_info()['XBM Support']; + } + $handler::setVar('system_values', $system_values); + $handler::setVar('totals', $totals); + $handler::setVar('totals_display', $totals_display); + + break; + + case 'settings': + $max_request_level = ($handler->request()[1] ?? null) == 'pages' ? (in_array($handler->request()[2] ?? null, ['edit', 'delete']) ? 6 : 5) : 4; + if ($handler->isRequestLevel($max_request_level)) { + $handler->issueError(404); + + return; + } + $handler::setCond('show_submit', true); + $settingsSectionsTitles = $settings_sections; + if ((bool) env()['CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES']) { + foreach ($paidSettingsEnv as $k => $v) { + if (!(bool) env()[$v]) { + array_push($paidSettings, $k); + $settings_sections[$k] .= ' ' . badgePaid(); + } + } + } + foreach ($settings_sections as $k => $v) { + $current = ($handler->request()[1] ?? null) ? ($handler->request()[1] == $k) : ($k == 'website'); + $isPaidSetting = in_array($k, $paidSettings); + $settings_sections[$k] = [ + 'icon' => $settings_sections_icons[$k], + 'key' => $k, + 'label' => $v, + 'title' => $settingsSectionsTitles[$k], + 'url' => $isPaidSetting + ? 'https://chevereto.com/pricing' + : get_base_url($route_prefix . '/settings/' . $k), + 'current' => $current, + 'isPaid' => $isPaidSetting, + ]; + if ($current) { + $handler::setVar('settings', $settings_sections[$k]); + if (in_array($k, ['categories', 'ip-bans'])) { + $handler::setCond('show_submit', false); + } + } + } + if (!empty($handler->request()[1]) && !array_key_exists($handler->request()[1], $settings_sections)) { + $handler->issueError(404); + + return; + } + $handler::setVar('settings_menu', $settings_sections); + if (isset($handler->request()[1])) { + $requestSetting = $handler->request()[1]; + if (in_array($requestSetting, $paidSettings)) { + $requestSetting = ''; + $handler->issueError(404); + } + switch ($requestSetting) { + case 'homepage': + if ((get()['action'] ?? '') == 'delete-cover' && isset(get()['cover'])) { + $cover_index = get()['cover'] - 1; + $homecovers = getSetting('homepage_cover_images'); + $cover_target = $homecovers[$cover_index]; + if (!is_integer(get()['cover']) || !isset($cover_target)) { + $is_error = true; + $error_message = _s('Request denied'); + } + if (is_array($homecovers) && count($homecovers) == 1) { + $is_error = true; + $input_errors[sprintf('homepage_cover_image_%s', $cover_index)] = _s("Can't delete all homepage cover images"); + } + if (!$is_error) { + // Try to delete the image (disk) + if (!starts_with('default/', $cover_target['basename'])) { + $cover_file = PATH_PUBLIC_CONTENT_IMAGES_SYSTEM . $cover_target['basename']; + unlinkIfExists($cover_file); + } + unset($homecovers[$cover_index]); + $homecovers = array_values($homecovers); + $homecovers_db = []; + foreach ($homecovers as $v) { + $homecovers_db[] = $v['basename']; + } + Settings::update(['homepage_cover_image' => implode(',', $homecovers_db)]); + sessionVar()->put('is_changed', true); + redirect('dashboard/settings/homepage'); + } + } + if (session()['is_changed'] ?? false) { + $is_changed = true; + $changed_message = _s('Homepage cover image deleted'); + sessionVar()->remove('is_changed'); + } + + break; + + case 'tools': + $handler::setCond('show_submit', false); + + break; + + case 'external-storage': + $disk_used_all = Stat::getTotals()['disk_used']; + $disk_used_external = DB::queryFetchSingle('SELECT SUM(storage_space_used) space_used FROM ' . DB::getTable('storages') . ';')['space_used']; + $storage_usage = [ + 'local' => [ + 'label' => _s('Local'), + 'bytes' => $disk_used_all - $disk_used_external + ], + 'external' => [ + 'label' => _s('External'), + 'bytes' => $disk_used_external + ] + ]; + $storage_usage['all'] = [ + 'label' => _s('All'), + 'bytes' => $storage_usage['local']['bytes'] + $storage_usage['external']['bytes'] + ]; + foreach ($storage_usage as $k => &$v) { + if (empty($v['bytes'])) { + $v['bytes'] = 0; + } + $v['link'] = '<a class="btn btn-small default" href="' . get_base_url('search/images/?q=storage:' . $k) . '" target="_blank"><i class="fas fa-search margin-right-5"></i>' . _s('search content') . '</a>'; + $v['formatted_size'] = format_bytes($v['bytes'], 2); + } + + $handler::setVar('storage_usage', $storage_usage); + + break; + + case 'pages': + $settings_pages = []; + // Check the sub-request + if (isset($handler->request()[2])) { + switch ($handler->request()[2]) { + case 'add': + $settings_pages['title'] = _s('Add page'); + $settings_pages['doing'] = 'add'; + + break; + case 'edit': + case 'delete': + if (!filter_var($handler->request()[3], FILTER_VALIDATE_INT)) { + $handler->issueError(404); + + return; + } + $page = Page::getSingle($handler->request()[3], 'id'); + if ($page) { + // Workaround for default pages + if (starts_with('default/', $page['file_path'])) { + $page['file_path'] = null; + } + } else { + $handler->issueError(404); + + return; + } + $handler::setvar('page', $page); + if ($handler->request()[2] == 'edit') { + $settings_pages['title'] = '<i class="fas fa-edit"></i> ' . _s('Edit page ID %s', $page['id']); + $settings_pages['doing'] = 'edit'; + if (session()['dashboard_page_added'] ?? false) { + if (isset(session()['dashboard_page_added']['id']) && session()['dashboard_page_added']['id'] == $page['id']) { + $is_changed = true; + $changed_message = _s('The page has been added successfully.'); + } + sessionVar()->remove('dashboard_page_added'); + } + } + if ($handler->request()[2] == 'delete') { + if (!$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + Page::delete($page); + sessionVar()->put('dashboard_page_deleted', ['id' => $page['id']]); + redirect('dashboard/settings/pages'); + } + + break; + default: + $handler->issueError(404); + + return; + } + } else { + $pages = Page::getAll([], ['field' => 'sort_display', 'order' => 'asc']); + $handler::setVar('pages', $pages); + $settings_pages['doing'] = 'listing'; + if (session()['dashboard_page_deleted'] ?? false) { + $is_changed = true; + $changed_message = _s('The page has been deleted.'); + sessionVar()->remove('dashboard_page_deleted'); + } + $handler::setCond('show_submit', false); + } + + $handler::setvar('settings_pages', $settings_pages); + + break; + + case 'banners': + $stock_banners = [ + 'home' => [ + 'label' => _s('Homepage'), + 'placements' => [ + 'banner_home_before_title' => [ + 'label' => _s('Before main title (%s)', _s('homepage')) + ], + 'banner_home_after_cta' => [ + 'label' => _s('After call to action (%s)', _s('homepage')) + ], + 'banner_home_after_cover' => [ + 'label' => _s('After cover (%s)', _s('homepage')) + ], + 'banner_home_after_listing' => [ + 'label' => _s('After listing (%s)', _s('homepage')) + ] + ] + ], + 'listing' => [ + 'label' => _s('Listings'), + 'placements' => [ + 'banner_listing_before_pagination' => [ + 'label' => _s('Before pagination'), + ], + 'banner_listing_after_pagination' => [ + 'label' => _s('After pagination'), + ] + ] + ], + 'content' => [ + 'label' => _s('Content (image and album)'), + 'placements' => [ + 'banner_content_tab-about_column' => [ + 'label' => _s('Tab about column') + ], + 'banner_content_before_comments' => [ + 'label' => _s('Before comments') + ] + ] + ], + 'image' => [ + 'label' => _s('Image page'), + 'placements' => [ + 'banner_image_image-viewer_top' => [ + 'label' => _s('Inside viewer top (image page)'), + ], + 'banner_image_image-viewer_foot' => [ + 'label' => _s('Inside viewer foot (image page)'), + ], + 'banner_image_after_image-viewer' => [ + 'label' => _s('After image viewer (image page)') + ], + 'banner_image_before_header' => [ + 'label' => _s('Before header (image page)') + ], + 'banner_image_after_header' => [ + 'label' => _s('After header (image page)') + ], + 'banner_image_footer' => [ + 'label' => _s('Footer (image page)') + ] + ] + ], + 'album' => [ + 'label' => _s('Album page'), + 'placements' => [ + 'banner_album_before_header' => [ + 'label' => _s('Before header (album page)') + ], + 'banner_album_after_header' => [ + 'label' => _s('After header (album page)') + ] + ] + ], + 'user' => [ + 'label' => _s('User profile page'), + 'placements' => [ + 'banner_user_after_top' => [ + 'label' => _s('After top (user profile)') + ], + 'banner_user_before_listing' => [ + 'label' => _s('Before listing (user profile)') + ] + ] + ], + 'explore' => [ + 'label' => _s('Explore page'), + 'placements' => [ + 'banner_explore_after_top' => [ + 'label' => _s('After top (explore page)') + ] + ] + ] + ]; + $banners = []; + foreach ($stock_banners as $k => $stock_group) { + $banners[$k] = $stock_group; + $group_nsfw = [ + 'label' => $stock_group['label'] . ' [' . _s('NSFW') . ']', + 'placements' => [] + ]; + foreach ($stock_group['placements'] as $id => $placement) { + $group_nsfw['placements'][$id . '_nsfw'] = $placement; + } + $banners[$k . '_nsfw'] = $group_nsfw; + } + $handler::setVar('banners', $banners); + + break; + } + } + if ($POST !== []) { + if (!headers_sent()) { + header('X-XSS-Protection: 0'); + } + if (isset($POST['theme_home_uids'])) { + $POST['theme_home_uids'] = implode(',', array_keys(array_flip(explode(',', trim(preg_replace(['/\s+/', '/,+/'], ['', ','], $POST['theme_home_uids']), ','))))); + } + if (isset($POST['website_mode']) && $POST['website_mode'] == 'personal') { + $POST['website_mode_personal_routing'] = get_regex_match(getSetting('routing_regex'), $POST['website_mode_personal_routing'], '#', 1); + + if (!check_value($POST['website_mode_personal_routing'])) { + $POST['website_mode_personal_routing'] = '/'; + } + } + if (!empty($POST['homepage_cta_fn_extra'])) { + $POST['homepage_cta_fn_extra'] = trim($POST['homepage_cta_fn_extra']); + } + foreach (['phone', 'phablet', 'laptop', 'desktop'] as $k) { + if (isset($POST['listing_columns_' . $k])) { + $key = 'listing_columns_' . $k; + $val = $POST[$key]; + $POST[$key] = (filter_var($val, FILTER_VALIDATE_INT) && $val > 0) ? $val : get_chv_default_setting($key); + } + } + if (($handler->request()[1] ?? null) == 'pages') { + $page_file_path_clean = trim(sanitize_relative_path($POST['page_file_path']), '/'); + $POST['page_file_path'] = str_replace('default/', '', $page_file_path_clean); + $POST['page_file_path_absolute'] = Page::getPath($POST['page_file_path']); + if (!filter_var($POST['page_sort_display'], FILTER_VALIDATE_INT)) { + $POST['page_sort_display'] = null; + } + if (isset($POST['page_type']) && $POST['page_type'] == 'internal') { + if (!$POST['page_is_active']) { + $POST['page_is_link_visible'] = false; + } + } else { + $POST['page_is_link_visible'] = $POST['page_is_active']; + } + $handler::updateVar('safe_post', [ + 'page_is_active' => $POST['page_is_active'], + 'page_is_link_visible' => $POST['page_is_link_visible'], + 'page_file_path_absolute' => $POST['page_file_path_absolute'], + ]); + } + $validations = [ + 'website_name' => + [ + 'validate' => isset($POST['website_name']), + 'error_msg' => _s('Invalid website name') + ], + 'default_language' => + [ + 'validate' => isset($POST['default_language']) && get_available_languages()[$POST['default_language']] !== null, + 'error_msg' => _s('Invalid language') + ], + 'default_timezone' => + [ + 'validate' => isset($POST['default_timezone']) && in_array($POST['default_timezone'], timezone_identifiers_list()), + 'error_msg' => _s('Invalid timezone') + ], + 'listing_items_per_page' => + [ + 'validate' => isset($POST['listing_items_per_page']) && is_integer($POST['listing_items_per_page']), + 'error_msg' => _s('Invalid value: %s', $POST['listing_items_per_page'] ?? '') + ], + 'explore_albums_min_image_count' => + [ + 'validate' => isset($POST['explore_albums_min_image_count']) && is_integer($POST['explore_albums_min_image_count']), + 'error_msg' => _s('Invalid value: %s', $POST['explore_albums_min_image_count'] ?? '') + ], + 'upload_threads' => + [ + 'validate' => isset($POST['upload_threads']) && is_integer($POST['upload_threads']), + 'error_msg' => _s('Invalid value: %s', $POST['upload_threads'] ?? '') + ], + 'upload_storage_mode' => + [ + 'validate' => isset($POST['upload_storage_mode']) && in_array($POST['upload_storage_mode'], ['datefolder', 'direct']), + 'error_msg' => _s('Invalid upload storage mode') + ], + 'upload_filenaming' => + [ + 'validate' => isset($POST['upload_filenaming']) && in_array($POST['upload_filenaming'], ['original', 'random', 'mixed', 'id']), + 'error_msg' => _s('Invalid upload filenaming') + ], + 'upload_thumb_width' => + [ + 'validate' => isset($POST['upload_thumb_width']) && is_integer($POST['upload_thumb_width']), + 'error_msg' => _s('Invalid thumb width') + ], + 'upload_thumb_height' => + [ + 'validate' => isset($POST['upload_thumb_height']) && is_integer($POST['upload_thumb_height']), + 'error_msg' => _s('Invalid thumb height') + ], + 'upload_medium_size' => + [ + 'validate' => isset($POST['upload_medium_size']) && is_integer($POST['upload_medium_size']), + 'error_msg' => _s('Invalid medium size') + ], + 'watermark_percentage' => + [ + 'validate' => isset($POST['watermark_percentage']) && is_integer($POST['watermark_percentage']), + 'error_msg' => _s('Invalid watermark percentage') + ], + 'watermark_opacity' => + [ + 'validate' => isset($POST['watermark_opacity']) && is_integer($POST['watermark_opacity']), + 'error_msg' => _s('Invalid watermark opacity') + ], + 'theme' => + [ + 'validate' => isset($POST['theme']) && file_exists(PATH_PUBLIC_CONTENT_LEGACY_THEMES . $POST['theme']), + 'error_msg' => _s('Invalid theme') + ], + 'theme_logo_height' => + [ + 'validate' => empty($POST['theme_logo_height']) ? (true) : is_integer($POST['theme_logo_height']), + 'error_msg' => _s('Invalid value') + ], + 'theme_palette' => + [ + 'validate' => isset($POST['theme_palette']) && in_array( + $POST['theme_palette'], + array_keys($handler::var('palettes')->get()) + ), + 'error_msg' => _s('Invalid %s', _s('palette')) + ], + 'theme_image_listing_sizing' => + [ + 'validate' => isset($POST['theme_image_listing_sizing']) && in_array($POST['theme_image_listing_sizing'], ['fluid', 'fixed']), + 'error_msg' => _s('Invalid theme image listing size') + ], + 'theme_home_uids' => + [ + 'validate' => empty($POST['theme_home_uids']) ? true : preg_match('/^\d+(\,\d+)*$/', $POST['theme_home_uids']), + 'error_msg' => _s('Invalid user id') + ], + 'email_mode' => + [ + 'validate' => isset($POST['email_mode']) && in_array($POST['email_mode'], ['smtp', 'mail']), + 'error_msg' => _s('Invalid email mode') + ], + 'email_smtp_server_port' => + [ + 'validate' => isset($POST['email_smtp_server_port']) && in_array($POST['email_smtp_server_port'], [25, 80, 465, 587]), + 'error_msg' => _s('Invalid SMTP port') + ], + 'email_smtp_server_security' => + [ + 'validate' => isset($POST['email_smtp_server_security']) && in_array($POST['email_smtp_server_security'], ['tls', 'ssl', 'unsecured']), + 'error_msg' => _s('Invalid SMTP security') + ], + 'website_mode' => + [ + 'validate' => isset($POST['website_mode']) && in_array($POST['website_mode'], ['community', 'personal']), + 'error_msg' => _s('Invalid website mode') + ], + 'website_mode_personal_uid' => + [ + 'validate' => isset($POST['website_mode'], $POST['website_mode_personal_uid']) && $POST['website_mode'] == 'personal' ? (is_integer($POST['website_mode_personal_uid'])) : true, + 'error_msg' => _s('Invalid personal mode user ID') + ], + 'website_mode_personal_routing' => + [ + 'validate' => isset($POST['website_mode'], $POST['website_mode_personal_routing']) && $POST['website_mode'] == 'personal' ? !is_route_available($POST['website_mode_personal_routing']) : true, + 'error_msg' => _s('Invalid or reserved route') + ], + 'website_privacy_mode' => + [ + 'validate' => isset($POST['website_privacy_mode']) && in_array($POST['website_privacy_mode'], ['public', 'private']), + 'error_msg' => _s('Invalid website privacy mode') + ], + 'website_content_privacy_mode' => + [ + 'validate' => isset($POST['website_content_privacy_mode']) && in_array($POST['website_content_privacy_mode'], ['default', 'private', 'private_but_link']), + 'error_msg' => _s('Invalid website content privacy mode') + ], + 'homepage_style' => + [ + 'validate' => isset($POST['homepage_style']) && in_array($POST['homepage_style'], ['landing', 'split', 'route_explore', 'route_upload']), + 'error_msg' => _s('Invalid homepage style') + ], + 'homepage_cta_color' => + [ + 'validate' => isset($POST['homepage_cta_color']) && in_array($POST['homepage_cta_color'], getSetting('available_button_colors')), + 'error_msg' => _s('Invalid homepage call to action button color') + ], + 'homepage_cta_fn' => + [ + 'validate' => (isset($POST['homepage_style'], $POST['homepage_cta_fn']) + ? ($POST['homepage_style'] == 'route_explore' ? true : in_array($POST['homepage_cta_fn'], ['cta-upload', 'cta-link'])) + : false), + 'error_msg' => _s('Invalid homepage call to action functionality') + ], + 'page_title' => + [ + 'validate' => !empty($POST['page_title']), + 'error_msg' => _s('Invalid title') + ], + 'page_is_active' => + [ + 'validate' => isset($POST['page_is_active']) && in_array($POST['page_is_active'], ['1', '0']), + 'error_msg' => _s('Invalid status') + ], + 'page_type' => + [ + 'validate' => isset($POST['page_type']) && in_array($POST['page_type'], ['internal', 'link']), + 'error_msg' => _s('Invalid type') + ], + 'page_is_link_visible' => + [ + 'validate' => isset($POST['page_type'], $POST['page_is_link_visible']) && $POST['page_type'] == 'internal' ? in_array($POST['page_is_link_visible'], ['1', '0']) : true, + 'error_msg' => _s('Invalid visibility') + ], + 'page_internal' => + [ + 'validate' => isset($POST['page_type'], $POST['page_internal']) && ($POST['page_type'] == 'internal' && $POST['page_internal']) ? in_array($POST['page_internal'], ['tos', 'privacy', 'contact']) : true, + 'error_msg' => _s('Invalid internal type') + ], + 'page_attr_target' => + [ + 'validate' => isset($POST['page_attr_target']) && in_array($POST['page_attr_target'], ['_self', '_blank']), + 'error_msg' => _s('Invalid target attribute') + ], + 'page_attr_rel' => + [ + 'validate' => empty($POST['page_attr_rel']) ? true : preg_match('/^[\w\s\-]+$/', $POST['page_attr_rel']), + 'error_msg' => _s('Invalid rel attribute') + ], + 'page_icon' => + [ + 'validate' => empty($POST['page_icon']) ? true : preg_match('/^[\w\s\-]+$/', $POST['page_icon']), + 'error_msg' => _s('Invalid icon') + ], + 'page_url_key' => + [ + 'validate' => isset($POST['page_type'], $POST['page_url_key']) && $POST['page_type'] == 'internal' ? preg_match('/^[\w\-\_\/]+$/', $POST['page_url_key']) : true, + 'error_msg' => _s('Invalid URL key') + ], + 'page_file_path' => + [ + 'validate' => isset($POST['page_type'], $POST['page_file_path']) && $POST['page_type'] == 'internal' ? preg_match('/^[\w\-\_\/]+\.' . (Config::enabled()->phpPages() ? 'html|php' : 'html') . '$/', $POST['page_file_path']) : true, + 'error_msg' => _s('Invalid file path') + ], + 'page_link_url' => + [ + 'validate' => isset($POST['page_type'], $POST['page_link_url']) && $POST['page_type'] == 'link' ? is_url_web($POST['page_link_url']) : true, + 'error_msg' => _s('Invalid link URL') + ], + 'user_minimum_age' => + [ + 'validate' => isset($POST['user_minimum_age']) && $POST['user_minimum_age'] !== '' ? is_integer($POST['user_minimum_age']) : true, + 'error_msg' => _s('Invalid user minimum age') + ], + 'route_image' => + [ + 'validate' => isset($POST['route_image']) && preg_match('/^[\w\d\-\_]+$/', $POST['route_image']), + 'error_msg' => _s('Only alphanumeric, hyphen and underscore characters are allowed') + ], + 'route_album' => + [ + 'validate' => isset($POST['route_album']) && preg_match('/^[\w\d\-\_]+$/', $POST['route_album']), + 'error_msg' => _s('Only alphanumeric, hyphen and underscore characters are allowed') + ], + 'route_user' => + [ + 'validate' => isset($POST['route_user']) && preg_match('/^[\w\d\-\_]+$/', $POST['route_user']), + 'error_msg' => _s('Only alphanumeric, hyphen and underscore characters are allowed') + ], + 'image_load_max_filesize_mb' => + [ + 'validate' => isset($POST['image_load_max_filesize_mb']) && $POST['image_load_max_filesize_mb'] !== '' ? is_numeric($POST['image_load_max_filesize_mb']) : true, + 'error_msg' => _s('Invalid value: %s', $POST['image_load_max_filesize_mb'] ?? '') + ], + 'upload_max_image_width' => + [ + 'validate' => isset($POST['upload_max_image_width']) && is_integer($POST['upload_max_image_width']), + 'error_msg' => _s('Invalid value: %s', $POST['upload_max_image_width'] ?? '') + ], + 'upload_max_image_height' => + [ + 'validate' => isset($POST['upload_max_image_height']) && is_integer($POST['upload_max_image_height']), + 'error_msg' => _s('Invalid value: %s', $POST['upload_max_image_height'] ?? '') + ], + 'auto_delete_guest_uploads' => + [ + 'validate' => ($POST['auto_delete_guest_uploads'] ?? '') !== '' + ? array_key_exists($POST['auto_delete_guest_uploads'], Image::getAvailableExpirations()) + : true, + 'error_msg' => _s('Invalid value: %s', $POST['auto_delete_guest_uploads'] ?? 'empty string') + ], + 'sdk_pup_url' => + [ + 'validate' => isset($POST['sdk_pup_url']) && $POST['sdk_pup_url'] ? is_url_web($POST['sdk_pup_url']) : true, + 'error_msg' => _s('Invalid URL') + ], + 'akismet_api_key' => [ + 'validate' => ($POST['akismet'] ?? 0) == 1 && isset($POST['akismet_api_key']) + ? $POST['akismet_api_key'] !== '' + : true, + 'error_msg' => _s('Invalid key'), + ], + 'moderatecontent_key' => [ + 'validate' => ($POST['moderatecontent'] ?? 0) == 1 && isset($POST['moderatecontent_key']) + ? $POST['moderatecontent_key'] !== '' + : true, + 'error_msg' => _s('Invalid key'), + ], + 'arachnid_key' => [ + 'validate' => ($POST['arachnid'] ?? 0) == 1 && isset($POST['arachnid_key']) + ? $POST['arachnid_key'] !== '' + : true, + 'error_msg' => _s('Invalid key'), + ] + ]; + $customRoutes = []; + foreach (['image', 'album', 'user'] as $test) { + $tryValue = $POST['route_' . $test] ?? null; + if ($tryValue !== null) { + if (in_array($tryValue, $customRoutes)) { + $validations['route_' . $test] = [ + 'validate' => false, + 'error_msg' => _s("Routes can't be the same") + ]; + } else { + $customRoutes[] = $tryValue; + } + } + } + if (($handler->request()[1] ?? null) === 'login-providers') { + $loginProviders = Login::getProviders('all'); + foreach ($loginProviders as $providerName => $provider) { + $validate = in_array($POST[$providerName] ?? '', ['0', '1']); + if (!$validate) { + $validations[$v] = ['validate' => $validate]; + + continue; + } + $stored = [ + 'key_id' => $provider['key_id'] ?? '', + 'key_secret' => $provider['key_secret'] ?? '', + 'is_enabled' => $provider['is_enabled'] + ]; + $compare = [ + 'key_id' => $POST[$providerName . '_id'] ?? '', + 'key_secret' => $POST[$providerName . '_secret'] ?? '', + 'is_enabled' => (bool) ($POST[$providerName] ?? false), + ]; + if ($stored !== $compare) { + Login::updateProvider($providerName, $compare); + $providersChange[] = $providerName; + } + } + } + if (isset($POST['upload_image_path'])) { + $safe_upload_image_path = rtrim(sanitize_relative_path($POST['upload_image_path']), '/'); + $image_path = PATH_PUBLIC . $POST['upload_image_path']; + if (!file_exists($image_path)) { + $validations['upload_image_path'] = [ + 'validate' => false, + 'error_msg' => _s('Invalid upload image path') + ]; + } + } + if (isset($POST['homepage_style']) && $POST['homepage_style'] !== 'route_explore' && $POST['homepage_cta_fn'] == 'cta-link' && !is_url($POST['homepage_cta_fn_extra'])) { + if (!empty($POST['homepage_cta_fn_extra'])) { + $POST['homepage_cta_fn_extra'] = rtrim(sanitize_relative_path($POST['homepage_cta_fn_extra']), '/'); + $POST['homepage_cta_fn_extra'] = get_regex_match(getSetting('routing_regex_path'), '#', $POST['homepage_cta_fn_extra'], 1); + } else { + $validations['homepage_cta_fn_extra'] = [ + 'validate' => false, + 'error_msg' => _s('Invalid call to action URL') + ]; + } + } + foreach (['upload_max_filesize_mb', 'upload_max_filesize_mb_guest', 'user_image_avatar_max_filesize_mb', 'user_image_background_max_filesize_mb'] as $k) { + unset($error_max_filesize); + if (isset($POST[$k])) { + if (!is_numeric($POST[$k]) || $POST[$k] == 0) { + $error_max_filesize = _s('Invalid value'); + } elseif (get_bytes($POST[$k] . 'MB') > Settings::get('true_upload_max_filesize')) { + $error_max_filesize = _s('Max. allowed %s', format_bytes(Settings::get('true_upload_max_filesize'))); + } + $validations[$k] = ['validate' => !isset($error_max_filesize), 'error_msg' => $error_max_filesize ?? '']; + } + } + foreach (['image', 'album'] as $k) { + $route = 'route_' . $k; + if (!isset($POST[$route])) { + continue; + } + if (file_exists(PATH_PUBLIC . $POST[$route])) { + $validations[$route] = [ + 'validate' => false, + 'error_msg' => _s("Can't map %m to an existing folder (%f)", ['%m' => '/' . $k, '%f' => '/' . $POST[$route]]) + ]; + + continue; + } + if (isset($POST[$route]) && $POST[$route] !== $k && $validations[$route]['validate']) { + if (is_route_available($POST[$route])) { + $validations[$route] = [ + 'validate' => false, + 'error_msg' => _s("Can't map %m to an existing route (%r)", ['%m' => '/' . $k, '%r' => '/' . $POST[$route]]) + ]; + } else { + $user_exists = User::getSingle($POST[$route], 'username', false); + if ($user_exists !== []) { + $validations[$route] = [ + 'validate' => false, + 'error_msg' => _s("Can't map %m to %r (username collision)", ['%m' => '/' . $k, '%r' => '/' . $POST[$route]]) + ]; + } + } + } + } + if (isset($POST['image_format_enable']) && is_array($POST['image_format_enable'])) { + $image_format_enable = []; + foreach ($POST['image_format_enable'] as $v) { + if (in_array($v, Upload::getAvailableImageFormats())) { + $image_format_enable[] = $v; + } + } + $POST['upload_enabled_image_formats'] = implode(',', $image_format_enable); + } + if (isset($POST['default_language']) + && ($POST['language_chooser_enable'] ?? 0) == 0 + && array_key_exists($POST['default_language'], L10n::getEnabledLanguages()) + ) { + L10n::processTranslation($POST['default_language']); + } + if (isset($POST['languages_enable']) && is_array($POST['languages_enable'])) { + if (!in_array($POST['default_language'], $POST['languages_enable'])) { + $POST['languages_enable'][] = $POST['default_language']; + } + $enabled_languages = []; + $disabled_languages = get_available_languages(); + $POST['languages_disable'] = []; + foreach ($POST['languages_enable'] as $k) { + if (!array_key_exists($k, get_available_languages())) { + continue; + } + $enabled_languages[$k] = get_available_languages()[$k]; + unset($disabled_languages[$k]); + } + L10n::setStatic('disabled_languages', $disabled_languages); + L10n::setStatic('enabled_languages', $enabled_languages); + unset($POST['languages_enable']); + foreach (array_keys($disabled_languages) as $k) { + $POST['languages_disable'][] = $k; + } + $POST['languages_disable'] = implode(',', $POST['languages_disable']); + } + if (isset($POST['website_mode']) && $POST['website_mode'] == 'personal' && isset($POST['website_mode_personal_routing'])) { + if ($logged_user['id'] == $POST['website_mode_personal_uid']) { + $new_user_url = get_base_url($POST['website_mode_personal_routing'] !== '/' ? $POST['website_mode_personal_routing'] : ''); + Login::setUser('url', get_base_url($POST['website_mode_personal_routing'] !== '/' ? $POST['website_mode_personal_routing'] : '')); + Login::setUser('url_albums', User::getUrlAlbums(Login::getUser()['url'])); + } elseif (User::getSingle($POST['website_mode_personal_uid']) === []) { // Is a valid user id anyway? + $validations['website_mode_personal_uid'] = [ + 'validate' => false, + 'error_msg' => _s('Invalid personal mode user ID') + ]; + } + } + $content_image_props = []; + foreach (getSetting('homepage_cover_images') ?? [] as $k => $v) { + $content_image_props[] = sprintf('homepage_cover_image_%s', $k); + } + $content_image_props = array_merge($content_image_props, ['logo_vector', 'logo_image', 'favicon_image', 'watermark_image', 'consent_screen_cover_image', 'homepage_cover_image_add']); + foreach ($content_image_props as $k) { + if (!empty(files()[$k]['tmp_name'])) { + try { + upload_to_content_images(files()[$k], $k); + } catch (Throwable $e) { + $validations[$k] = [ + 'validate' => false, + 'error_msg' => $e->getMessage(), + ]; + } + } + } + + if (isset($POST['moderatecontent']) && $POST['moderatecontent'] == 1) { + $moderateContentKey = getSetting('moderatecontent_key'); + if (isset($POST['moderatecontent_key'])) { + $moderateContentKey = $POST['moderatecontent_key']; + } + $sample = 'http://www.moderatecontent.com/img/sample_face_2.jpg'; + $json = fetch_url('https://api.moderatecontent.com/moderate/?key=' . $moderateContentKey . '&url=' . $sample); + $data = json_decode($json); + if (property_exists($data, 'error') && $data->error !== null) { + $validations['moderatecontent_key'] = [ + 'validate' => false, + 'error_msg' => $data->error + ]; + } + } + + if (isset($POST['arachnid']) && $POST['arachnid'] == 1) { + $arachnidKey = getSetting('arachnid_key'); + if (isset($POST['arachnid_key'])) { + $arachnidKey = $POST['arachnid_key']; + } + $sample = PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'favicon.png'; + $arachnid = new Arachnid($arachnidKey, $sample); + if (!$arachnid->isSuccess()) { + $validations['arachnid_key'] = [ + 'validate' => false, + 'error_msg' => $arachnid->errorMessage() + ]; + } + } + + if (isset($POST['email_mode']) && $POST['email_mode'] == 'smtp') { + $email_smtp_validate = [ + 'email_smtp_server' => _s('Invalid SMTP server'), + 'email_smtp_server_username' => _s('Invalid SMTP username'), + ]; + foreach ($email_smtp_validate as $k => $v) { + $validations[$k] = ['validate' => (bool) $POST[$k], 'error_msg' => $v]; + } + + $email_validate = ['email_smtp_server', 'email_smtp_server_port', 'email_smtp_server_username', /*'email_smtp_server_password',*/ 'email_smtp_server_security']; + $email_error = false; + foreach ($email_validate as $k) { + if (!$validations[$k]['validate']) { + $email_error = true; + } + } + $valid_mail_credentials = false; + if (!$email_error) { + try { + $mail = new Mailer(true); + $mail->SMTPAuth = true; + $mail->SMTPSecure = $POST['email_smtp_server_security']; + $mail->SMTPAutoTLS = in_array($POST['email_smtp_server_security'], ['ssl', 'tls']); + $mail->Username = $POST['email_smtp_server_username']; + $mail->Password = $POST['email_smtp_server_password']; + $mail->Host = $POST['email_smtp_server']; + $mail->Port = $POST['email_smtp_server_port']; + if (in_array(Config::system()->debugLevel(), [2, 3])) { + $mail->SMTPDebug = SMTP::DEBUG_SERVER; + $GLOBALS['SMTPDebug'] = ''; + $mail->Debugoutput = function ($str) { + $GLOBALS['SMTPDebug'] .= "$str\n"; + }; + $GLOBALS['SMTPDebug'] = "SMTP Debug>>\n" . $GLOBALS['SMTPDebug']; + } + $valid_mail_credentials = $mail->SmtpConnect(); + } catch (Exception $e) { + $GLOBALS['SMTPDebug'] = "SMTP Exception>>\n" . ($mail->ErrorInfo ?: $e->getMessage()); + } + if (!$valid_mail_credentials) { + foreach (array_keys($email_smtp_validate) as $k) { + $validations[$k]['validate'] = false; + } + } + } + } + + if (isset($POST['akismet']) && $POST['akismet'] == 1 && $validations['akismet_api_key']['validate']) { + $akismet = new Akismet($POST['akismet_api_key']); + + try { + $verifyAkismet = $akismet->verifyKey(); + } catch (Throwable $e) { + $verifyAkismet = false; + } + $validations['akismet_api_key'] = [ + 'validate' => $verifyAkismet, + 'error_msg' => _s('Invalid key') + ]; + } + + if (isset($POST['cdn']) && $POST['cdn'] == 1) { + $cdn_url = trim($POST['cdn_url'], '/') . '/'; + if (!is_url($cdn_url)) { + $cdn_url = 'http://' . $cdn_url; + } + if (!is_url($cdn_url) && !is_valid_url($cdn_url)) { + $validations['cdn_url'] = [ + 'validate' => false, + 'error_msg' => _s('Invalid URL') + ]; + } else { + $POST['cdn_url'] = $cdn_url; + $handler::updateVar('safe_post', ['cdn_url' => $cdn_url]); + } + } + + if (isset($POST['captcha']) && $POST['captcha'] == 1) { + foreach (['captcha_sitekey', 'captcha_secret'] as $v) { + $validations[$v] = ['validate' => (bool) $POST[$v]]; + } + } + + foreach (array_keys($POST + files()) as $k) { + if (isset($validations[$k]) && !$validations[$k]['validate']) { + $input_errors[$k] = $validations[$k]['error_msg'] ?? _s('Invalid value'); + } + } + + if (isset($POST[$route]) && $POST[$route] == 'pages' && in_array($handler->request()[2], ['edit', 'add']) && $POST['page_type'] == 'internal') { + if ($page ?? false) { + $try_page_db = $page['url_key'] !== $POST['url_key']; + if (!$try_page_db) { + $page['file_path'] !== $POST['page_file_path']; + } + } else { + $try_page_db = true; + } + if ($try_page_db) { + $db = DB::getInstance(); + $db->query('SELECT * FROM ' . DB::getTable('pages') . ' WHERE page_url_key = :page_url_key OR page_file_path = :page_file_path'); + $db->bind(':page_url_key', $POST['page_url_key']); + $db->bind(':page_file_path', $POST['page_file_path']); + $page_fetch_db = $db->fetchAll(); + if ($page_fetch_db) { + foreach ($page_fetch_db as $k => $v) { + foreach ([ + 'page_url_key' => _s('This URL key is already being used by another page (ID %s)'), + 'page_file_path' => _s('This file path is already being used by another page (ID %s)') + ] as $kk => $vv) { + if (isset($page['id']) && $page['id'] == $v['page_id']) { + continue; // Skip on same thing + } + if (timing_safe_compare($v[$kk], $POST[$kk])) { + $input_errors[$kk] = sprintf($vv, $v['page_id']); + } + } + } + } + } + } + if (is_array($input_errors) && count($input_errors) == 0) { + if (isset($handler->request()[1]) && $handler->request()[1] == 'pages') { + if (in_array($handler->request()[2], ['edit', 'add']) && $POST['page_type'] == 'internal') { + $page_write_code = (array_key_exists('page_code', $POST)) ? (empty($POST['page_code']) ? null : html_entity_decode($POST['page_code'])) : null; + + try { + Page::writePage(['file_path' => $POST['page_file_path'], 'code' => $page_write_code]); + if ($handler->request()[2] == 'edit' && isset($page['file_path']) && !timing_safe_compare($page['file_path'], $POST['page_file_path'])) { + unlinkIfExists(Page::getPath($page['file_path'])); + } + if (isset($page['id'])) { + Page::update((int) $page['id'], ['code' => $page_write_code]); + } + } catch (Exception $e) { + $input_errors['page_code'] = _s("Can't save page contents: %s.", $e->getMessage()); + } + } + if (isset($POST['page_internal']) && $POST['page_internal'] == '') { + $POST['page_internal'] = null; + } + $page_fields = Page::getFields(); + $page_values = []; + foreach ($page_fields as $v) { + $postPage = $POST['page_' . $v]; + if ($handler->request()[2] == 'edit') { + if (timing_safe_compare($page[$v] ?? '', $postPage ?? '')) { + continue; + } // Skip not updated values + } + $page_values[$v] = $postPage; + } + if ($page_values !== []) { + if ($handler->request()[2] == 'add') { + $page_inserted = Page::insert($page_values); + sessionVar()->put('dashboard_page_added', ['id' => $page_inserted]); + redirect('dashboard/settings/pages/edit/' . $page_inserted); + } else { + if (isset($page['id'])) { + Page::update((int) $page['id'], $page_values); + } + $is_changed = true; + $pages_sort_changed = false; + foreach (['sort_display', 'is_active', 'is_link_visible'] as $k) { + if (isset($page[$k], $page_values[$k]) && $page[$k] !== $page_values[$k]) { + $pages_sort_changed = true; + + break; + } + } + // Update 'page' var + $page = array_merge($handler::var('page'), $page_values); + Page::fill($page); + $handler::updateVar('page', $page); + // Update pages_link_visible (menu) + $pages_link_visible = $handler::var('pages_link_visible'); + $pages_link_visible[$page['id']] = $page; // Either update or append + if (!$page['is_active'] || !$page['is_link_visible']) { + unset($pages_link_visible[$page['id']]); + } elseif ($pages_sort_changed) { // Need to update the sort display? + uasort($pages_link_visible, function ($a, $b) { + return $a['sort_display'] - $b['sort_display']; + }); + } + $handler::setVar('pages_link_visible', $pages_link_visible); + } + } + } else { // Settings + $update_settings = []; + foreach (array_keys(getSettings()) as $k) { + if (isset($POST[$k]) && $POST[$k] != (is_bool(getSetting($k)) ? (getSetting($k) ? 1 : 0) : getSetting($k))) { + $update_settings[$k] = $POST[$k]; + } + } + if ($update_settings !== [] && Settings::update($update_settings)) { + $oldSettings = Settings::get(); + new Settings(); + $diffSettings = array_diff_key($oldSettings, Settings::get()); + foreach ($diffSettings as $k => $v) { + Settings::setValue($k, $v); + } + $is_changed = true; + $reset_notices = false; + $settings_to_vars = [ + 'website_doctitle' => 'doctitle', + 'website_description' => 'meta_description', + ]; + foreach (array_keys($update_settings) as $k) { + if ($k == 'maintenance') { + $reset_notices = true; + } + if (array_key_exists($k, $settings_to_vars)) { + $handler::setVar($settings_to_vars[$k], getSetting($k)); + } + } + if ($reset_notices) { + $system_notices = getSystemNotices(); + $handler::setVar('system_notices', $system_notices); + } + } + } + } else { + $is_error = true; + } + } + + break; + + case 'images': + case 'albums': + case 'users': + $getParams = Listing::getParams(request()); + $tabs = Listing::getTabs([ + 'listing' => $doing, + 'tools' => true, + ], $getParams); + $type = $doing; + $current = false; + foreach ($tabs as $k => $v) { + if ($v['current']) { + $current = $k; + } + $tabs[$k]['type'] = $type; + $tabs[$k]['url'] = get_base_url('dashboard/' . $type . '/?' . $tabs[$k]['params']); + } + if (!$current) { + $current = 0; + $tabs[0]['current'] = true; + } + $handler::setVar('list_params', $getParams); + parse_str($tabs[$current]['params'], $tab_params); + preg_match( + '/(.*)\_(asc|desc)/', + empty(request()['sort']) + ? $tab_params['sort'] + : request()['sort'], + $sort_matches + ); + $getParams['sort'] = array_slice($sort_matches, 1); + $listing = new Listing(); + $listing->setType($type); // images | users | albums + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setRequester($logged_user); + $listing->setOutputTpl($type); + $listing->exec(); + + break; + } + if ($doing != 'stats') { + $pre_doctitle[] = $routesLinkLabels[$doing]; + if ($doing == 'settings' && isset($settings_sections)) { + reset($settings_sections); + $firstKey = key($settings_sections); + $dashSettingsProp = $handler::var('settings'); + if ($dashSettingsProp['key'] != $firstKey) { + $pre_doctitle[] = $dashSettingsProp['title']; + } + } + } + $pre_doctitle[] = _s('Dashboard'); + $handler::setVar('pre_doctitle', implode(' - ', $pre_doctitle)); + $handler::setCond('error', $is_error); + $handler::setCond('changed', $is_changed); + $handler::setVar('error_message', $error_message); + $handler::setVar('input_errors', $input_errors); + $handler::setVar('changed_message', $changed_message ?? null); + if (isset($tabs)) { + $handler::setVar('sub_tabs', $tabs); + } + if (isset($listing)) { + $handler::setVar('listing', $listing); + } + $handler::setVar('share_links_array', get_share_links()); + $handler::setVar('paid_settings', $paidSettings); +}; diff --git a/app/legacy/routes/explore.php b/app/legacy/routes/explore.php new file mode 100644 index 0000000..249d18d --- /dev/null +++ b/app/legacy/routes/explore.php @@ -0,0 +1,105 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_current_url; +use function Chevereto\Legacy\G\get_route_name; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + $logged_user = Login::getUser(); + if (!$handler::cond('explore_enabled') && !($logged_user['is_content_manager'] ?? false)) { + $handler->issueError(404); + + return; + } + $doing = $handler->request()[0] ?? null; + if (!isset($doing) && getSetting('homepage_style') == 'route_explore' && strpos(get_current_url(), get_base_url(get_route_name())) !== false) { + $redir = str_replace_first(get_base_url(get_route_name()), get_base_url(), get_current_url()); + redirect($redir); + } + $explore_semantics = $handler::var('explore_semantics'); + if (isset($doing) && !array_key_exists($doing, $explore_semantics)) { + $handler->issueError(404); + + return; + } + if ($handler->isRequestLevel(3)) { + $handler->issueError(404); + + return; + } // Allow only 3 levels + $basename = getSetting('homepage_style') == 'route_explore' && $handler->cond('mapped_route') + ? '' + : get_route_name(); + if ($doing) { + $basename .= ($basename ? '/' : '') . $doing; + } + $list = isset($doing) ? $explore_semantics[$doing] : ['label' => _s('Explore'), 'icon' => 'fas fa-images']; + $list['list'] = is_null($doing) ? get_route_name() : $doing; + $listingParams = [ + 'listing' => $list['list'], + 'basename' => $basename, + 'params_hidden' => [ + 'hide_empty' => 1, + 'hide_banned' => 1, + 'album_min_image_count' => getSetting('explore_albums_min_image_count'), + ], + ]; + if ($doing == 'animated') { + $listingParams['params_hidden']['is_animated'] = 1; + } + $getParams = Listing::getParams(request()); + $tabs = Listing::getTabs($listingParams, $getParams, true); + $currentKey = $tabs['currentKey']; + $type = $tabs['tabs'][$currentKey]['type']; + $tabs = $tabs['tabs']; + parse_str($tabs[$currentKey]['params'], $tabs_params); + $getParams['sort'] = explode('_', $tabs_params['sort']); // Hack this stuff + $handler::setVar('list_params', $getParams); + $listing = new Listing(); + $listing->setType($type); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views | likes + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setRequester(Login::getUser()); + $listing->setParamsHidden($listingParams['params_hidden']); + $listing->exec(); + $handler::setVar('list', $list); + $handler::setVar('listing', $listing); + if (getSetting('homepage_style') == 'route_explore') { + $handler::setVar('doctitle', Settings::get('website_doctitle')); + $handler::setVar('pre_doctitle', Settings::get('website_name')); + } else { + $handler::setVar('pre_doctitle', _s('Explore') . ' ' . $list['label']); + } + $handler::setVar('category', null); + $handler::setVar('tabs', $tabs); + if (isset($logged_user['is_content_manager']) && $logged_user['is_content_manager']) { + $handler::setVar('user_items_editor', false); + } + $handler::setVar('share_links_array', get_share_links()); +}; diff --git a/app/legacy/routes/following.php b/app/legacy/routes/following.php new file mode 100644 index 0000000..73efd1d --- /dev/null +++ b/app/legacy/routes/following.php @@ -0,0 +1,67 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\encodeID; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + if (version_compare(getSetting('chevereto_version_installed'), '3.7.0', '<') || !getSetting('enable_followers')) { + $handler->issueError(404); + + return; + } + $logged_user = Login::getUser(); + if ($logged_user === []) { + redirect('login'); + } + if ($handler->isRequestLevel(2)) { + $handler->issueError(404); + + return; + } + $getParams = Listing::getParams(request()); + $tabs = Listing::getTabs([ + 'listing' => 'images', + 'exclude_criterias' => ['most-oldest'], + 'params_hidden' => ['follow_user_id' => encodeID((int) $logged_user['id'])], + ], $getParams); + $where = 'WHERE follow_user_id=:user_id'; + $handler::setVar('list_params', $getParams); + $listing = new Listing(); + $listing->setType('images'); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setRequester(Login::getUser()); + $listing->setWhere($where); + $listing->bind(":user_id", $logged_user['id']); + $listing->exec(); + $handler::setVar('pre_doctitle', _s('Following')); + $handler::setVar('tabs', $tabs); + $handler::setVar('listing', $listing); + if (isset($logged_user['is_content_manager']) && $logged_user['is_content_manager']) { + $handler::setVar('user_items_editor', false); + } + $handler::setVar('share_links_array', get_share_links()); +}; diff --git a/app/legacy/routes/image.php b/app/legacy/routes/image.php new file mode 100644 index 0000000..bc71a72 --- /dev/null +++ b/app/legacy/routes/image.php @@ -0,0 +1,395 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Album; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\IpBan; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_current_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\html_to_bbcode; +use function Chevereto\Legacy\G\is_animated_image; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getIdFromURLComponent; +use function Chevereto\Legacy\getIpButtonsArray; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\isShowEmbedContent; +use function Chevereto\Legacy\redirectIfRouting; +use function Chevereto\Vars\env; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + redirectIfRouting('image', $handler->requestArray()[0]); + $imageIndex = getSetting('root_route') === 'image' + ? 0 + : 1; + $request_handle = $imageIndex == 0 + ? $handler->requestArray() + : $handler->request(); + if (($request_handle[0] ?? null) === null) { + $handler->issueError(404); + + return; + } + $id = getIdFromURLComponent($request_handle[0]); + if ($id == 0) { + $handler->issueError(404); + + return; + } + if (!isset(session()['image_view_stock'])) { + sessionVar()->put('image_view_stock', []); + } + + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + $image = Image::getSingle($id, !in_array($id, session()['image_view_stock']), true, $logged_user); + if ($image === [] || !isset($image['url'])) { + $handler->issueError(404); + + return; + } + if (!(bool) env()['CHEVERETO_ENABLE_USERS'] + && ($image['user']['id'] ?? 'not-found') != getSetting('website_mode_personal_uid')) { + $handler->issueError(404); + + return; + } + if ($handler->isRequestLevel(3)) { + if ($request_handle[1] === 'delete') { + $password = $request_handle[2] ?? ''; + if (Image::verifyPassword($id, $password)) { + Image::delete($id); + redirect($image['path_viewer'] . '?deleted'); + } + } + + $handler->issueError(404); + + return; + } + if (!$image['is_approved'] && (!($logged_user['is_manager'] ?? false) && !($logged_user['is_admin'] ?? false))) { + $handler->issueError(403); + + return; + } + if ($image['path_viewer'] != get_current_url(true, ['lang'])) { + redirect($image['path_viewer']); + } + $handler::setVar('canonical', $image['url_viewer']); + if ((!$handler::cond('content_manager') + && ($image['user']['status'] ?? null) == 'banned') + ) { + $handler->issueError(404); + + return; + } + sessionVar()->put('last_viewed_image', encodeID((int) $id)); + if ($image['file_resource']['type'] == 'path' && (!$image['is_animated'] && isset($image['file_resource']['chain']['image']) && is_animated_image($image['file_resource']['chain']['image']))) { + Image::update($id, ['is_animated' => 1]); + $image['is_animated'] = 1; + } + + $is_owner = isset($image['user']['id']) ? ($image['user']['id'] == ($logged_user['id'] ?? null)) : false; + if (getSetting('website_privacy_mode') == 'private') { + if ($handler::cond('forced_private_mode')) { + $image['album']['privacy'] = getSetting('website_content_privacy_mode'); + } + if (!Login::getUser() && ($image['album']['privacy'] ?? null) != 'private_but_link') { + redirect('login'); + } + } + if (!$handler::cond('content_manager') && !$is_owner && ($image['album']['privacy'] ?? null) == 'password' && !Album::checkSessionPassword($image['album'])) { + sessionVar()->put('redirect_password_to', $image['path_viewer']); + redirect($image['album']['url']); + } + if (isset($image['user']['is_private']) + && $image['user']['is_private'] == 1 + && !$handler::cond('content_manager') + && $image['user']['id'] != ($logged_user['id'] ?? null) + ) { + unset($image['user']); + $image['user'] = User::getPrivate(); + } + if (!$handler::cond('content_manager') && in_array($image['album']['privacy'] ?? null, ['private', 'custom']) && !$is_owner) { + $handler->issueError(404); + + return; + } + if (isset($image['user']['id'])) { + $image['user']['albums'] = User::getAlbums((int) $image["user"]["id"]); + } + $is_album_cover = false; + if (isset($image['album']['id'])) { + $album = Album::getSingle((int) $image['album']['id']); + $is_album_cover = ($album['cover_id'] ?? 0) == $image['id']; + $get_album_slice = Image::getAlbumSlice((int) $image['id'], (int) $image['album']['id'], 2); + $image_album_slice = array_merge($image['album'], $get_album_slice); + } + $handler::setCond('album_cover', $is_album_cover); + $image_safe_html = safe_html($image); + $image['alt'] = $image_safe_html['description'] ?? ($image_safe_html['title'] ?? $image_safe_html['name']); + $pre_doctitle = isset($image['title']) + ? strip_tags($image['title']) + : $image_safe_html['name'] . '.' . $image['extension'] . ' hosted at ' . getSetting('website_name'); + $tabs = []; + $tabs[] = [ + 'icon' => 'fas fa-image', + 'label' => _s('About'), + 'id' => 'tab-about', + 'current' => true, + ]; + if (isShowEmbedContent()) { + $tabs[] = [ + 'icon' => 'fas fa-code', + 'label' => _s('Embed codes'), + 'id' => 'tab-embeds', + ]; + } + if ($handler::cond('content_manager')) { + if ($handler::cond('admin')) { + $tabs[] = [ + 'icon' => 'fas fa-info-circle', + 'label' => _s('Info'), + 'id' => 'tab-info', + ]; + } + $bannedIp = IpBan::getSingle(['ip' => $image['uploader_ip']]); + $buttonSearchIp = ''; + $buttonBanIp = ''; + $ipBanNotice = ''; + if ((bool) env()['CHEVERETO_ENABLE_USERS']) { + $buttonSearchIp = '<a class="btn btn-small default" href="' . get_base_url('search/images/?q=ip:%1$s') . '"><i class="fas fa-search"></i> ' . _s('Search') . '</a>'; + } + if ((bool) env()['CHEVERETO_ENABLE_IP_BANS']) { + $buttonBanIp = ($bannedIp === [] ? ('<a class="btn btn-small default" data-modal="form" data-args="%IP" data-target="modal-add-ip_ban" data-options=\'{"forced": true}\' data-content="ban_ip"><i class="fas fa-ban"></i> ' . _s('Ban') . '</a>') : ''); + $ipBanNotice = '<span class="btn btn-small default disabled' . ($bannedIp !== [] ? '' : ' hidden') . '" data-content="banned_ip"><i class="fas fa-ban"></i> ' . _s('Banned') . '</span>'; + } + $image_admin_list_values = [ + [ + 'label' => _s('Image ID'), + 'content' => $image['id'] . ' (' . $image['id_encoded'] . ')', + ], + getIpButtonsArray($bannedIp, $image['uploader_ip']), + [ + 'label' => _s('Upload date'), + 'content' => $image['date'], + ], + [ + 'label' => '', + 'content' => $image['date_gmt'] . ' (GMT)', + ], + ]; + $handler::setVar('content_ip', $image['uploader_ip']); + $handler::setVar('image_admin_list_values', $image_admin_list_values); + $handler::setCond('banned_ip', $bannedIp !== []); + } + // tab-embeds, tab-about, tab-info + $firstTabSetting = getSetting('image_first_tab'); + if (!$handler::cond('admin') && $firstTabSetting == 'info') { + $firstTabSetting = 'embeds'; + } + if (!isShowEmbedContent() && $firstTabSetting == 'embeds') { + $firstTabSetting = 'about'; + } + $firstTab = 'tab-' . $firstTabSetting; + $currentTab = []; + $currentTabId = ''; + if (count($tabs) === 1) { + $tabs[0]['current'] = true; + $currentTabId = $tabs[0]['id']; + } else { + foreach ($tabs as $k => &$v) { + if ($v['id'] !== $firstTab) { + $v['current'] = false; + + continue; + } + $currentKey = $k; + $currentTabId = $v['id']; + $v['current'] = true; + $currentTab = $v; + } + if (isset($currentKey)) { + unset($tabs[$currentKey]); + } + array_unshift($tabs, $currentTab); + } + $handler::setVar('current_tab', str_replace_first('tab-', '', $currentTabId)); + $handler::setCond('owner', $is_owner); + $handler::setVar('pre_doctitle', $pre_doctitle); + $handler::setVar('image', $image); + $handler::setVar('image_safe_html', $image_safe_html); + $handler::setVar('image_album_slice', safe_html($image_album_slice ?? [])); + $handler::setVar('tabs', $tabs); + $handler::setVar('owner', $image['user'] ?? []); + if (isset($image['description'])) { + $meta_description = $image['description']; + } else { + $image_tr = [ + '%i' => $image[is_null($image['title']) ? 'filename' : 'title'], + '%a' => $image['album']['name'] ?? '', + '%w' => getSetting('website_name'), + '%c' => $image['category']['name'] ?? '', + ]; + if (isset($image['album']['id']) + || ( + !((bool) ($image['user']['is_private'] ?? false)) && isset($image['album']['name']) + )) { + $meta_description = _s('Image %i in %a album', $image_tr); + } elseif (isset($image['category']['id'])) { + $meta_description = _s('Image %i in %c category', $image_tr); + } else { + $meta_description = _s('Image %i hosted in %w', $image_tr); + } + } + $handler::setVar('meta_description', htmlspecialchars($meta_description ?? '')); + if ($handler::cond('content_manager') || $is_owner) { + $handler::setVar('user_items_editor', [ + 'user_albums' => $image['user']['albums'] ?? null, + 'type' => 'image', + 'album' => $image['album'] ?? null, + 'category_id' => $image['category_id'] ?? null, + ]); + } + $handler::setVar('share_links_array', get_share_links()); + $handler::setVar('privacy', $image['album']['privacy'] ?? ''); + $embed = []; + $embed['direct-links'] = [ + 'label' => _s('Direct links'), + 'entries' => [ + [ + 'label' => _s('Image link'), + 'value' => $image['url_short'], + ], + [ + 'label' => _s('Image URL'), + 'value' => $image['url'], + ], + [ + 'label' => _s('Thumbnail URL'), + 'value' => $image['thumb']['url'] ?? '', + ], + ], + ]; + if (isset($image['medium'])) { + $embed['direct-links']['entries'][] = [ + 'label' => _s('Medium URL'), + 'value' => $image['medium']['url'] ?? '', + ]; + } + $image_full = [ + 'html' => '<img src="' . $image['url'] . '" alt="' . $image['filename'] . '" border="0" />', + 'markdown' => '![' . $image['filename'] . '](' . $image['url'] . ')', + ]; + $image_full['bbcode'] = html_to_bbcode($image_full['html']); + $embed['full-image'] = [ + 'label' => _s('Full image'), + 'entries' => [ + [ + 'label' => 'HTML', + 'value' => htmlentities($image_full['html']), + ], + [ + 'label' => 'BBCode', + 'value' => $image_full['bbcode'], + ], + [ + 'label' => 'Markdown', + 'value' => $image_full['markdown'], + ], + ], + ]; + $embed_full_linked['html'] = '<a href="' . $image['url_short'] . '">' . $image_full['html'] . '</a>'; + $embed_full_linked['bbcode'] = html_to_bbcode($embed_full_linked['html']); + $embed_full_linked['markdown'] = '[![' . $image['filename'] . '](' . $image['url'] . ')](' . $image['url_short'] . ')'; + $embed['full-linked'] = [ + 'label' => _s('Full image (linked)'), + 'entries' => [ + [ + 'label' => 'HTML', + 'value' => htmlentities($embed_full_linked['html']), + ], + [ + 'label' => 'BBCode', + 'value' => $embed_full_linked['bbcode'], + ], + [ + 'label' => 'Markdown', + 'value' => $embed_full_linked['markdown'], + ], + ], + ]; + if (isset($image['medium'])) { + $embed_medium_linked = [ + 'html' => '<a href="' . $image['url_short'] . '"><img src="' . $image['medium']['url'] . '" alt="' . $image['filename'] . '" border="0" /></a>', + ]; + $embed_medium_linked['bbcode'] = html_to_bbcode($embed_medium_linked['html']); + $embed_medium_linked['markdown'] = '[![' . $image['medium']['filename'] . '](' . $image['medium']['url'] . ')](' . $image['url_short'] . ')'; + $embed['medium-linked'] = [ + 'label' => _s('Medium image (linked)'), + 'entries' => [ + [ + 'label' => 'HTML', + 'value' => htmlentities($embed_medium_linked['html']), + ], + [ + 'label' => 'BBCode', + 'value' => $embed_medium_linked['bbcode'], + ], + [ + 'label' => 'Markdown', + 'value' => $embed_medium_linked['markdown'], + ], + ], + ]; + } + $embed_thumb_linked = [ + 'html' => '<a href="' . $image['url_short'] . '"><img src="' . $image['thumb']['url'] . '" alt="' . $image['filename'] . '" border="0" /></a>', + ]; + $embed_thumb_linked['bbcode'] = html_to_bbcode($embed_thumb_linked['html']); + $embed_thumb_linked['markdown'] = '[![' . $image['thumb']['filename'] . '](' . $image['thumb']['url'] . ')](' . $image['url_short'] . ')'; + $embed['thumb-linked'] = [ + 'label' => _s('Thumbnail image (linked)'), + 'entries' => [ + [ + 'label' => 'HTML', + 'value' => htmlentities($embed_thumb_linked['html']), + ], + [ + 'label' => 'BBCode', + 'value' => $embed_thumb_linked['bbcode'], + ], + [ + 'label' => 'Markdown', + 'value' => $embed_thumb_linked['markdown'], + ], + ], + ]; + $embed_id = 1; + foreach ($embed as &$v) { + foreach ($v['entries'] as &$entry) { + $entry['id'] = 'embed-code-' . $embed_id; + ++$embed_id; + } + } + $handler::setVar('embed', $embed); + $addValue = session()['image_view_stock'] ?? []; + $addValue[] = $id; + sessionVar()->put('image_view_stock', $addValue); +}; diff --git a/app/legacy/routes/importer-jobs.php b/app/legacy/routes/importer-jobs.php new file mode 100644 index 0000000..30b6de7 --- /dev/null +++ b/app/legacy/routes/importer-jobs.php @@ -0,0 +1,44 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Import; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\G\Handler; + +return function (Handler $handler) { + if (!Login::isAdmin()) { + $handler->issueError(403); + + return; + } + // Allow 3 levels only -> /importer-jobs/X/process + if ($handler->isRequestLevel(4)) { + $handler->issueError(404); + + return; + } + if (is_null($handler->request()[0] ?? null) || is_null($handler->request()[1] ?? null)) { + $handler->issueError(404); + + return; + } + $filepath = Import::PATH_JOBS . sprintf('%1$s/%2$s.txt', $handler->request()[0], $handler->request()[1]); + if (!file_exists($filepath)) { + $handler->issueError(404); + + return; + } + if (!headers_sent()) { + header('Content-Type: text/plain'); + } + readfile($filepath); + exit; +}; diff --git a/app/legacy/routes/index.php b/app/legacy/routes/index.php new file mode 100644 index 0000000..e994a88 --- /dev/null +++ b/app/legacy/routes/index.php @@ -0,0 +1,255 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_current_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\random_values; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\env; +use function Chevereto\Vars\get; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + parse_str(server()['QUERY_STRING'] ?? '', $querystr); + if (key($querystr) != 'random' && starts_with('route_', Settings::get('homepage_style'))) { + $route = str_replace_first('route_', '', Settings::get('homepage_style')); + $handler->mapRoute($route); + $routeCallable = include PATH_APP_LEGACY_ROUTES . $route . '.php'; + + return $routeCallable($handler); + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + if (server()['QUERY_STRING'] ?? false) { + switch (key($querystr)) { + case 'random': + if (!$handler::cond('random_enabled')) { + redirect('/'); + } + $tables = DB::getTables(); + $db = DB::getInstance(); + $db->query('SELECT MIN(image_id) as min, MAX(image_id) as max FROM ' . $tables['images']); + $limit = $db->fetchSingle(); + $random_ids = random_values((int) $limit['min'], (int) $limit['max'], 100); + if (count($random_ids) == 1) { + $random_ids[] = $random_ids[0]; + } + if ($limit['min'] !== $limit['max']) { + $last_viewed_image = decodeID(session()['last_viewed_image'] ?? ''); + if (($key = array_search($last_viewed_image, $random_ids)) !== false) { + unset($random_ids[$key]); + } + } + $query = 'SELECT image_id FROM ' . $tables['images'] . ' LEFT JOIN ' . $tables['albums'] . ' ON ' . $tables['images'] . '.image_album_id = ' . $tables['albums'] . '.album_id WHERE image_is_approved = 1 AND image_id IN (' . implode(',', $random_ids) . ") AND (album_privacy = 'public' OR album_privacy IS NULL) "; + if (!getSetting('show_nsfw_in_random_mode')) { + if ($logged_user) { + $query .= 'AND (' . $tables['images'] . '.image_nsfw = 0 OR ' . $tables['images'] . '.image_user_id = ' . $logged_user['id'] . ') '; + } else { + $query .= 'AND ' . $tables['images'] . '.image_nsfw = 0 '; + } + } + if ($handler::cond('forced_private_mode')) { + $query .= 'AND ' . $tables['images'] . '.image_user_id = ' . $logged_user['id'] . ' '; + } + if (!(bool) env()['CHEVERETO_ENABLE_USERS']) { + $query .= 'AND ' . $tables['images'] . '.image_user_id=' . (getSetting('website_mode_personal_uid') ?? 0) . ' '; + } + $query .= 'ORDER BY RAND() LIMIT 1'; + $db->query($query); + $fetch = $db->fetchSingle(); + if (!$fetch) { + $image = false; + } else { + $imageId = (int) $fetch['image_id']; + $image = Image::getSingle(id: $imageId, pretty: true); + if (!isset($image['file_resource']['chain']['image'])) { + $image = false; + } + } + if (!$image) { + if ((session()['random_failure'] ?? 0) > 3) { + redirect(); + } else { + sessionVar()->put('random_failure', (session()['random_failure'] ?? 0) + 1); + } + } else { + if (isset(session()['random_failure'])) { + sessionVar()->remove('random_failure'); + } + } + redirect( + $image + ? $image['path_viewer'] + : '?random' + ); + + return; + case 'v': + if (preg_match('{^\w*\.jpg|png|gif$}', get()['v'] ?? '')) { + $explode = array_filter(explode('.', get()['v'])); + if (count($explode) == 2) { + $image = DB::get('images', ['name' => $explode[0], 'extension' => $explode[1]], 'AND', [], 1) ?: []; + if ($image !== []) { + $image = Image::formatArray($image); + redirect($image['path_viewer']); + } + } + } + $handler->issueError(404); + + return; + + break; + case 'list': + $handler->setTemplate('index'); + + break; + case 'lang': + case 'page': + case 'seek': + case 'peek': + // let it be + break; + default: + $handler->issueError(404); + + return; + + break; + } + } + if (Settings::get('homepage_style') == 'split') { + $tabs = [ + [ + 'tools' => true, + 'current' => true, + 'id' => 'home-pics', + 'type' => 'image', + ], + ]; + $home_uids = getSetting('homepage_uids'); + $home_uid_is_null = ($home_uids == '' || $home_uids == '0'); + $home_uid_arr = $home_uid_is_null ? false : explode(',', $home_uids); + if (is_array($home_uid_arr)) { + $home_uid_bind = []; + foreach ($home_uid_arr as $k => $v) { + $home_uid_bind[] = ':user_id_' . $k; + if ($v == 0) { + $home_uid_is_null = true; + } + } + $home_uid_bind = implode(',', $home_uid_bind); + } + $doing = is_array($home_uid_arr) ? 'recent' : 'trending'; + $explore_semantics = $handler::var('explore_semantics'); + $list = $explore_semantics[$doing]; + $list['list'] = $doing; + $getParams = Listing::getParams(request()); + $listing = new Listing(); + $listingParams = [ + 'listing' => $doing, + 'basename' => '/', + 'params_hidden' => [ + 'hide_empty' => 1, + 'hide_banned' => 1, + 'album_min_image_count' => getSetting('explore_albums_min_image_count'), + 'route' => 'index', + ], + ]; + $tabs = Listing::getTabs($listingParams, $getParams, true); + $currentKey = $tabs['currentKey']; + $currentTab = $tabs['tabs'][$currentKey]; + $type = $currentTab['type']; + $tabs = $tabs['tabs']; + parse_str($tabs[$currentKey]['params'], $tabs_params); + $getParams['sort'] = explode('_', $tabs_params['sort']); + $handler::setVar('list_params', $getParams); + $listing->setParamsHidden($listingParams['params_hidden']); + if (is_array($home_uid_arr)) { + foreach ($tabs as $k => &$v) { + if ($v['type'] == 'users') { + unset($tabs[$k]); + } + } + $prefix = DB::getFieldPrefix($type); + $where = 'WHERE ' . $prefix . '_user_id IN(' . $home_uid_bind . ')'; + if ($home_uid_is_null) { + $where .= ' OR ' . $prefix . '_user_id IS NULL'; + } + $listing->setWhere($where); + foreach ($home_uid_arr as $k => $v) { + $listing->bind(':user_id_' . $k, $v); + } + } else { + $canonical = str_replace_first(get_base_url(), get_base_url('explore/trending'), get_current_url()); + $handler::setVar('canonical', $canonical); + } + $listing->setType($type); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views | likes + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setRequester(Login::getUser()); + $listing->exec(); + $handler::setVar('list', $list); + $handler::setVar('tabs', $tabs); + $handler::setVar('listing', $listing); + } + $handler::setVar('doctitle', Settings::get('website_doctitle')); + $handler::setVar('pre_doctitle', Settings::get('website_name')); + if (isset($logged_user['is_content_manager']) && $logged_user['is_content_manager']) { + $handler::setVar('user_items_editor', false); + } + $handler::setVar('share_links_array', get_share_links()); + + $homepage_cta = [ + '<a', + getSetting('homepage_cta_fn') == 'cta-upload' + ? ( + getSetting('upload_gui') == 'js' && Handler::cond('upload_allowed') + ? 'data-trigger="anywhere-upload-input"' + : 'href="' . get_base_url('upload') . '"' + ) + : 'href="' + . getSetting('homepage_cta_fn_extra') + . '"', + (getSetting('homepage_cta_fn') == 'cta-upload' && !getSetting('guest_uploads')) + ? 'data-login-needed="true"' + : '', + 'class="btn btn-big accent">' + . (getSetting('homepage_cta_html') + ?: '<i class="fas fa-cloud-upload-alt"></i><span class="btn-text">' + . _s('Start uploading') . '</span>') + . '</a>' + ]; + $handler::setVar('homepage_cta', join(' ', $homepage_cta)); +}; diff --git a/app/legacy/routes/install.php b/app/legacy/routes/install.php new file mode 100644 index 0000000..a645743 --- /dev/null +++ b/app/legacy/routes/install.php @@ -0,0 +1,22 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; + +return function (Handler $handler) { + if (Settings::get('chevereto_version_installed') !== null) { + $handler->issueError(404); + + return; + } + require_once PATH_APP_LEGACY_INSTALL . 'installer.php'; +}; diff --git a/app/legacy/routes/json.php b/app/legacy/routes/json.php new file mode 100644 index 0000000..9b88810 --- /dev/null +++ b/app/legacy/routes/json.php @@ -0,0 +1,1616 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevere\ThrowableHandler\Documents\PlainDocument; +use function Chevere\ThrowableHandler\throwableHandler; +use function Chevere\Writer\writers; +use function Chevere\Xr\throwableHandler as XrThrowableHandler; +use Chevereto\Config\Config; +use Chevereto\Legacy\Classes\Akismet; +use Chevereto\Legacy\Classes\Album; +use Chevereto\Legacy\Classes\ApiKey; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Follow; +use Chevereto\Legacy\Classes\HybridauthSession; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Import; +use Chevereto\Legacy\Classes\IpBan; +use Chevereto\Legacy\Classes\Like; +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Notification; +use Chevereto\Legacy\Classes\Search; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\Stat; +use Chevereto\Legacy\Classes\Storage; +use Chevereto\Legacy\Classes\TwoFactor; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\array_filter_array; +use function Chevereto\Legacy\G\check_value; +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_current_url; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\json_output; +use function Chevereto\Legacy\G\nullify_string; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\isDebug; +use function Chevereto\Legacy\isShowEmbedContent; +use function Chevereto\Legacy\send_mail; +use function Chevereto\Legacy\time_elapsed_string; +use function Chevereto\Vars\files; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\session; +use Hybridauth\Hybridauth; + +return function (Handler $handler) { + try { + $REQUEST = request(); + $FILES = files(); + $POST = post(); + if (!$handler::checkAuthToken(request()['auth_token'] ?? '')) { + throw new Exception(_s('Request denied'), 401); + } + $logged_user = Login::getUser(); + $logged_user_source_db = [ + 'user_name' => $logged_user['name'] ?? null, + 'user_username' => $logged_user['username'] ?? null, + 'user_email' => $logged_user['email'] ?? null, + ]; + $doing = $REQUEST['action']; + if ($logged_user && $logged_user['status'] !== 'valid') { + $doing = 'deny'; + } + if (in_array($doing, ['importStats', 'importEdit', 'importDelete'])) { + if (Login::isAdmin() == false) { + throw new Exception(_s('Request denied'), 403); + } + $import = new Import(); + } + switch ($doing) { + case 'upload': // EX 100 + if (!$handler::cond('upload_allowed')) { + throw new Exception(_s('Request denied'), 403); + } + $source = $REQUEST['type'] == 'file' ? $FILES['source'] : $REQUEST['source']; + $type = $REQUEST['type']; + $owner_id = !empty($REQUEST['owner']) ? decodeID($REQUEST['owner']) : $logged_user['id'] ?? null; + if (isset($REQUEST['what']) && in_array($REQUEST['what'], ['avatar', 'background'])) { + if ($logged_user === []) { + throw new Exception(_s('Login needed'), 403); + } + if (!$handler::cond('content_manager') && $owner_id != $logged_user['id']) { + throw new Exception('Invalid content owner request', 115); + } + $user_picture_upload = User::uploadPicture($owner_id == $logged_user['id'] ? $logged_user : $owner_id, $REQUEST['what'], $source); + $json_array['success'] = ['image' => $user_picture_upload, 'message' => sprintf('%s picture uploaded', ucfirst($type)), 'code' => 200]; + + break; + } + if ($handler::cond('forced_private_mode')) { + $REQUEST['privacy'] = getSetting('website_content_privacy_mode'); + } + if (!empty($REQUEST['album_id'])) { + $REQUEST['album_id'] = decodeID($REQUEST['album_id']); + } + if (!$handler::cond('content_manager') && getSetting('akismet')) { + Akismet::checkImage( + $REQUEST['title'] ?? null, + $REQUEST['description'] ?? null, + $logged_user_source_db + ); + } + $uploadToWebsite = Image::uploadToWebsite($source, $logged_user, $REQUEST); + if ($logged_user !== []) { + session_write_close(); // guest session uploads + } + $uploaded_id = intval($uploadToWebsite[0]); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'image uploaded', 'code' => 200]; + $image = Image::getSingle($uploaded_id); + if ($image === []) { + throw new LogicException( + message('Missing image') + ); + } + $image = Image::formatArray($image, true); + $image['delete_url'] = Image::getDeleteUrl(encodeID($uploaded_id), $uploadToWebsite[1]); + if (!$image['is_approved']) { + unset($image['image']['url'], $image['thumb']['url'], $image['medium']['url'], $image['url'], $image['display_url']); + } + $json_array['image'] = $image; + + break; + case 'get-album-contents': + case 'list': // EX 200 + if ($doing == 'get-album-contents') { + if (!isShowEmbedContent()) { + throw new Exception(_s('Request denied'), 403); + } + $list_request = 'images'; + $aux = $REQUEST['albumid']; + $REQUEST = null; + $REQUEST['albumid'] = $aux; + } else { + $list_request = $REQUEST['list']; + } + if (!in_array($list_request, ['images', 'albums', 'users'])) { + throw new Exception('Invalid list request', 100); + } + $output_tpl = $list_request; + if (isset($REQUEST['params_hidden']) && is_array($REQUEST['params_hidden'])) { + $params_hidden = []; + foreach ($REQUEST['params_hidden'] as $k => $v) { + if (isset($REQUEST[$k])) { + $params_hidden[$k] = $v; + } + } + } + if (!empty($REQUEST['albumid'])) { + $album_id = decodeID($REQUEST['albumid']); + } + $owner_id = null; + $where = ''; + switch ($list_request) { + case 'images': + $binds = []; + $where = ''; + if (!empty($REQUEST['like_user_id'])) { + $where .= 'WHERE like_user_id=:image_user_id'; + $binds[] = [ + 'param' => ':image_user_id', + 'value' => decodeID($REQUEST['like_user_id']), + ]; + } + if (!empty($REQUEST['follow_user_id'])) { + $where .= ($where == '' ? 'WHERE' : ' AND') . ' follow_user_id=:image_user_id'; + $binds[] = [ + 'param' => ':image_user_id', + 'value' => decodeID($REQUEST['follow_user_id']), + ]; + } + if (!empty($REQUEST['userid'])) { + $owner_id = decodeID($REQUEST['userid']); + $where .= ($where == '' ? 'WHERE' : ' AND') . ' image_user_id=:image_user_id'; + $binds[] = [ + 'param' => ':image_user_id', + 'value' => $owner_id, + ]; + } + if (isset($album_id)) { + $where .= ($where == '' ? 'WHERE' : ' AND') . ' image_album_id=:image_album_id'; + $binds[] = [ + 'param' => ':image_album_id', + 'value' => $album_id, + ]; + $album = Album::getSingle($album_id); + if ($album['user']['id']) { + $owner_id = $album['user']['id']; + } + if ($album['privacy'] == 'password' && (!$handler::cond('content_manager') && $owner_id != $logged_user['id'] && !Album::checkSessionPassword($album))) { + throw new Exception(_s('Request denied'), 403); + } + } + if (!empty($REQUEST['category_id']) and is_numeric($REQUEST['category_id'])) { + $category = $REQUEST['category_id']; + } + if (isset($REQUEST['from'])) { + switch ($REQUEST['from']) { + case 'user': + $output_tpl = 'user/images'; + + break; + case 'album': + $output_tpl = 'album/images'; + + break; + } + } + + break; + case 'albums': + $binds = []; + $where = ''; + if (!empty($REQUEST['userid'])) { + $owner_id = decodeID($REQUEST['userid']); + $where .= 'WHERE album_user_id=:album_user_id'; + $binds[] = [ + 'param' => ':album_user_id', + 'value' => $owner_id, + ]; + } + if (isset($REQUEST['from'])) { + switch ($REQUEST['from']) { + case 'user': + $output_tpl = 'user/albums'; + + break; + case 'album': + $output_tpl = 'album'; + + break; + } + } + if (isset($album_id)) { + $where .= ($where == '' ? 'WHERE' : ' AND') . ' album_parent_id=:album_id'; + $binds[] = [ + 'param' => ':album_id', + 'value' => $album_id, + ]; + } + + break; + case 'users': + $where = ''; + if (getSetting('enable_followers') and (!empty($REQUEST['following_user_id']) or !empty($REQUEST['followers_user_id']))) { + $doing = !empty($REQUEST['following_user_id']) ? 'following' : 'followers'; + $user_id = decodeID($doing == 'following' ? $REQUEST['following_user_id'] : $REQUEST['followers_user_id']); + $where = 'WHERE follow' . ($doing == 'following' ? null : '_followed') . '_user_id=:user_id'; + $binds[] = [ + 'param' => ':user_id', + 'value' => $user_id, + ]; + } + + break; + } + if (!empty($REQUEST['q'])) { + $search = new Search(); + $search->q = $REQUEST['q']; + $search->type = $list_request; + $search->request = $REQUEST; + $search->requester = Login::getUser(); + $search->build(); + if (!check_value($search->q)) { + throw new Exception('Missing search term', 400); + } + $where .= $where == '' ? $search->wheres : preg_replace('/WHERE /', ' AND ', $search->wheres, 1); + $binds = array_merge($binds ?? [], $search->binds); + } + $getParams = Listing::getParams(request(), true); + if ($getParams['sort'][0] == 'likes' && !getSetting('enable_likes')) { + throw new Exception(_s('Request denied'), 403); + } + $album_fetch = 0; + if ($doing == 'get-album-contents' && isset($album['image_count'])) { + $album_fetch = min(1000, $album['image_count']); + $getParams = [ + 'items_per_page' => $album_fetch, + 'page' => 0, + 'limit' => $album_fetch, + 'offset' => 0, + 'sort' => ['date', 'desc'], + ]; + } + $listing = new Listing(); + if (array_key_exists('approved', $REQUEST)) { + if (Login::isAdmin() || $logged_user['is_manager']) { + $listing->setApproved((int) $REQUEST['approved']); + } else { + throw new Exception(_s('Request denied'), 403); + } + } + $listing->setType($list_request); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); + $listing->setSortType($getParams['sort'][0]); + $listing->setSortOrder($getParams['sort'][1]); + if (isset($category)) { + $listing->setCategory($category); + } + $home_uids = getSetting('homepage_uids'); + if (Settings::get('homepage_style') == 'split' && isset($home_uids) && isset($POST['params_hidden']['route']) && $POST['params_hidden']['route'] == 'index') { + $home_uid_is_null = ($home_uids == '' or $home_uids == '0' ? true : false); + $home_uid_arr = !$home_uid_is_null ? explode(',', $home_uids) : false; + if (is_array($home_uid_arr)) { + $home_uid_bind = []; + foreach ($home_uid_arr as $k => $v) { + $home_uid_bind[] = ':user_id_' . $k; + if ($v == 0) { + $home_uid_is_null = true; + } + } + $home_uid_bind = implode(',', $home_uid_bind); + } + if (is_array($home_uid_arr)) { + $prefix = DB::getFieldPrefix($list_request); + $where = 'WHERE ' . $prefix . '_user_id IN(' . $home_uid_bind . ')'; + if ($home_uid_is_null) { + $where .= ' OR ' . $prefix . '_user_id IS NULL'; + } + foreach ($home_uid_arr as $k => $v) { + $listing->bind(':user_id_' . $k, $v); + } + } + } + $listing->setWhere($where); + if (isset($owner_id)) { + $listing->setOwner((int) $owner_id); + } + $listing->setRequester($logged_user); + if (in_array($list_request, ['images', 'albums']) && ($handler::cond('content_manager') || ($logged_user !== [] && $owner_id == $logged_user['id']))) { + $listing->setTools(true); + } + if (!empty($params_hidden)) { + $listing->setParamsHidden($params_hidden); + } + if ($list_request == 'images' && !empty($REQUEST['albumid'])) { + if ($handler::cond('forced_private_mode')) { + $album['privacy'] = getSetting('website_content_privacy_mode'); + } + if (isset($album['privacy'])) { + $listing->setPrivacy($album['privacy']); + } + } + if (isset($binds)) { + foreach ($binds as $bind) { + $listing->bind($bind['param'], $bind['value']); + } + } + $listing->exec(); + $json_array['status_code'] = 200; + if ($doing == 'get-album-contents' + && isset($album, $album['image_count'])) { + $json_array['album'] = array_filter_array($album, ['id', 'creation_ip', 'password', 'user', 'privacy_extra', 'privacy_notes'], 'rest'); + $contents = []; + foreach ($listing->outputAssoc() as $v) { + $contents[] = array_filter_array($v, ['title', 'id_encoded', 'url', 'url_short', 'path_viewer', 'url_viewer', 'filename', 'medium', 'thumb'], 'exclusion'); + } + $json_array['is_output_truncated'] = $album['image_count'] > $album_fetch ? 1 : 0; + $json_array['contents'] = $contents; + } else { + $json_array['html'] = $listing->htmlOutput($output_tpl); + } + $json_array['seekEnd'] = $listing->seekEnd; + + break; + case 'edit': // EX 3X + if ($logged_user === []) { + throw new Exception(_s('Login needed'), 403); + } + $editing_request = $REQUEST['editing']; + $editing = $editing_request; + $type = $REQUEST['edit']; + $owner_id = !empty($REQUEST['owner']) ? decodeID($REQUEST['owner']) : $logged_user['id']; + if (!in_array($type, ['image', 'album', 'images', 'albums', 'category', 'storage', 'ip_ban'])) { + throw new Exception('Invalid edit request', 100); + } + if (is_null($editing['id'])) { + throw new Exception('Missing edit target id', 100); + } else { + $id = decodeID($editing['id']); + } + $editing['new_album'] = isset($editing['new_album']) && $editing['new_album'] == 'true'; + $allowed_to_edit = [ + 'image' => ['category_id', 'title', 'description', 'album_id', 'nsfw'], + 'album' => ['name', 'privacy', 'album_id', 'description', 'password'], + 'category' => ['name', 'description', 'url_key'], + 'storage' => ['name', 'bucket', 'region', 'url', 'server', 'capacity', 'is_https', 'is_active', 'api_id', 'key', 'secret', 'account_id', 'account_name'], + 'ip_ban' => ['ip', 'expires', 'message'], + ]; + $allowed_to_edit['images'] = $allowed_to_edit['image']; + $allowed_to_edit['albums'] = $allowed_to_edit['album']; + if ($editing['new_album']) { + $new_album = ['new_album', 'album_name', 'album_privacy', 'album_password', 'album_description']; + $allowed_to_edit['image'] = array_merge($allowed_to_edit['image'], $new_album); + $allowed_to_edit['album'] = array_merge($allowed_to_edit['album'], $new_album); + } + $editing = array_filter_array($editing, $allowed_to_edit[$type], 'exclusion'); + if ($handler::cond('forced_private_mode') and in_array($type, ['album', 'image'])) { + $editing[$type == 'album' ? 'privacy' : 'album_privacy'] = getSetting('website_content_privacy_mode'); + } + if (count($editing) == 0) { + throw new Exception('Invalid edit request', 403); + } + if (isset($editing['album_id']) && $editing['album_id'] !== '') { + $editing['album_id'] = decodeID($editing['album_id']); + } + switch ($type) { + case 'image': + $source_image_db = Image::getSingle($id); + if ($source_image_db === []) { + throw new Exception("Image doesn't exists", 100); + } + if ( + isset($editing['nsfw']) && $editing['nsfw'] != $source_image_db['image_nsfw'] + && getSetting('image_lock_nsfw_editing') + && !(Login::isAdmin() || $logged_user['is_manager']) + ) { + throw new Exception('Invalid request', 403); + } + if (!$handler::cond('content_manager') && $source_image_db['image_user_id'] != $logged_user['id']) { + throw new Exception('Invalid content owner request', 101); + } + if (isset($editing['new_album'])) { + if (!$handler::cond('content_manager') && getSetting('akismet')) { + Akismet::checkAlbum($editing['album_name'], $editing['album_description'], $source_image_db); + } + $inserted_album = Album::insert([ + 'name' => $editing['album_name'] ?? null, + 'user_id' => $source_image_db['image_user_id'] ?? null, + 'privacy' => $editing['album_privacy'] ?? null, + 'description' => $editing['album_description'] ?? null, + 'password' => $editing['album_password'] ?? null, + ]); + $editing['album_id'] = $inserted_album; + } + if (!empty($editing['category_id']) and !array_key_exists($editing['category_id'], $handler::var('categories'))) { + throw new Exception('Invalid category', 102); + } + unset($editing['album_privacy'], $editing['new_album'], $editing['album_name']); + if (!$handler::cond('content_manager') && getSetting('akismet')) { + Akismet::checkImage($editing['title'], $editing['description'], $source_image_db); + } + Image::update($id, $editing); + $image_edit_db = Image::getSingle($id); + if ($image_edit_db === []) { + throw new LogicException( + message('Missing image') + ); + } + if ($source_image_db['image_album_id'] !== $image_edit_db['image_album_id'] && $image_edit_db['image_album_id']) { + global $image_album_slice, $image_id; + $image_album_slice = Image::getAlbumSlice($id, (int) $image_edit_db['image_album_id'], 2); + $image_id = $image_edit_db['image_id']; + } + $album_id = $image_edit_db['image_album_id']; + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Image edited', 'code' => 200]; + $json_array['editing'] = $editing_request; + $json_array['image'] = Image::formatArray($image_edit_db, true); + if (isset($image_album_slice)) { + // Add the album URL to the slice + $image_album_slice['url'] = Album::getUrl(encodeID((int) $album_id)); + ob_start(); + include_theme_file('snippets/image_album_slice'); + $html = ob_get_contents(); + ob_end_clean(); + $json_array['image']['album']['slice'] = [ + 'next' => $image_album_slice['next']['path_viewer'] ?? '', + 'prev' => $image_album_slice['prev']['path_viewer'] ?? '', + 'html' => $html, + ]; + } else { + $json_array['image']['album']['slice'] = null; + } + + break; + case 'album': + $source_album_db = Album::getSingle( + id: $id, + pretty: false + ); + if ($source_album_db === []) { + throw new Exception("Album doesn't exists", 100); + } + if (!$handler::cond('content_manager') && $source_album_db['album_user_id'] != $logged_user['id']) { + throw new Exception('Invalid content owner request', 102); + } + if (isset($editing['album_id']) || isset($editing['new_album'])) { + $album_move = true; + if (isset($editing['new_album'])) { + if (!$handler::cond('content_manager') && getSetting('akismet')) { + Akismet::checkAlbum($editing['album_name'], $editing['album_description'], $source_album_db); + } + $editing['album_id'] = Album::insert([ + 'name' => $editing['album_name'], + 'user_id' => $source_album_db['album_user_id'], + 'privacy' => $editing['album_privacy'], + 'description' => $editing['album_description'], + 'password' => $editing['album_password'], + ]); + } else { + if ($editing['album_id'] === '') { + $editing['album_id'] = null; + } + } + Album::moveContents($id, $editing['album_id']); + } else { + unset($editing['album_privacy'], $editing['new_album'], $editing['album_name']); + if (!$handler::cond('content_manager') && getSetting('akismet')) { + Akismet::checkAlbum($editing['name'], $editing['description'], $source_album_db); + } + Album::update($id, $editing); + } + $album_edited = Album::getSingle((int) ($editing['album_id'] ?? $id)); + if ($album_edited === []) { + throw new Exception("Edited album doesn't exists", 100); + } + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Album edited', 'code' => 200]; + $json_array['album'] = $album_edited; + if (isset($album_move)) { + $json_array['old_album'] = Album::formatArray( + Album::getSingle(id: $id, pretty: false), + true + ); + $json_array['album']['html'] = Listing::getAlbumHtml($album_edited['id'] ?? ''); + $json_array['old_album']['html'] = Listing::getAlbumHtml($id); + } + + break; + case 'category': + if (!Login::isAdmin()) { + throw new Exception('Invalid content owner request', 107); + } + $id = $REQUEST['editing']['id']; + if (!array_key_exists($id, $handler::var('categories'))) { + throw new Exception('Invalid target category', 100); + } + if (!isset($editing['name'])) { + throw new Exception('Invalid category name', 101); + } + if (!preg_match('/^[\-\w]+$/', $editing['url_key'] ?? '')) { + throw new Exception('Invalid category URL key', 102); + } + if (is_array($handler::var('categories'))) { + foreach ($handler::var('categories') as $v) { + if ($v['id'] == $id) { + continue; + } + if ($v['url_key'] == $editing['url_key']) { + $category_error = true; + + break; + } + } + } + if ($category_error ?? false) { + throw new Exception('Category URL key already being used.', 103); + } + nullify_string($editing['description']); + $update_category = DB::update('categories', $editing, ['id' => $id]); + if (!$update_category) { + throw new Exception('Failed to edit category', 400); + } + $category = DB::get('categories', ['id' => $id])[0]; + $category['category_url'] = get_base_url('category/' . $category['category_url_key']); + $category = DB::formatRow($category); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Category edited', 'code' => 200]; + $json_array['category'] = $category; + + break; + case 'ip_ban': + if (!$handler::cond('content_manager')) { + throw new Exception('Invalid content owner request', 108); + } + $id = $REQUEST['editing']['id']; + IpBan::validateIP($editing['ip']); + if (!empty($editing['expires']) and !preg_match('/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}$/', $editing['expires'])) { + throw new Exception('Invalid expiration date format', 102); + } + + try { + $ipAlreadyBanned = IpBan::getSingle(['ip' => $editing['ip']]); + if (($ipAlreadyBanned['id'] ?? 0) !== $id) { + throw new Exception(_s('IP address already banned'), 103); + } + if (empty($editing['expires'])) { + $editing['expires'] = null; + } + $editing = array_merge($editing, ['expires_gmt' => is_null($editing['expires']) ? null : gmdate('Y-m-d H:i:s', strtotime($editing['expires']))]); + if (!IpBan::update(['id' => $id], $editing)) { + throw new Exception('Failed to edit IP ban', 400); + } + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'IP ban edited', 'code' => 200]; + $json_array['ip_ban'] = IpBan::getSingle(['id' => $id]); + } catch (Exception $throwable) { + $json_array = [ + 'status_code' => 403, + 'error' => ['message' => $throwable->getMessage(), $throwable->getCode()], + ]; + + break; + } + + break; + case 'storage': + if (!Login::isAdmin()) { + throw new Exception('Invalid content owner request', 109); + } + $id = (int) $REQUEST['editing']['id']; + Storage::update($id, $editing); + $storage = Storage::getSingle($id); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Storage edited', 'code' => 200]; + $json_array['storage'] = $storage; + + break; + } + + break; + case 'add-user': + if (!Login::isAdmin()) { + throw new Exception(_s('Request denied'), 403); + } + $user = $REQUEST['user']; + foreach (['username', 'email', 'password', 'role'] as $v) { + if ($user[$v] == '') { + throw new Exception(_s('Missing values'), 100); + } + } + if (!User::isValidUsername($user['username'])) { + throw new Exception(_s('Invalid username'), 101); + } + if (!filter_var($user['email'], FILTER_VALIDATE_EMAIL)) { + throw new Exception(_s('Invalid email'), 102); + } + if (!preg_match('/' . getSetting('user_password_pattern') . '/', $user['password'] ?? '')) { + throw new Exception(_s('Invalid password'), 103); + } + if (!in_array($user['role'], ['user', 'manager', 'admin'])) { + throw new Exception(_s('Invalid role'), 104); + } + if (DB::get('users', ['username' => $user['username']])) { + throw new Exception(_s('Username already being used'), 200); + } + if (DB::get('users', ['email' => $user['email']])) { + throw new Exception(_s('Email already being used'), 200); + } + $is_manager = 0; + $is_admin = 0; + switch ($user['role']) { + case 'manager': + $is_manager = 1; + + break; + case 'admin': + $is_admin = 1; + + break; + } + $add_user = User::insert([ + 'username' => $user['username'], + 'email' => $user['email'], + 'is_admin' => $is_admin, + 'is_manager' => $is_manager, + ]); + if ($add_user) { + Login::addPassword($add_user, $user['password'], false); + } + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'User added', 'code' => 200]; + + break; + case 'add-category': + if (!Login::isAdmin()) { + throw new Exception(_s('Request denied'), 403); + } + $category = $REQUEST['category']; + $category_error = false; + foreach (['name', 'url_key'] as $v) { + if ($category[$v] == '') { + throw new Exception(_s('Missing values'), 100); + } + } + if (!preg_match('/^[-\w]+$/', $category['url_key'] ?? '')) { + throw new Exception('Invalid category URL key', 102); + } + if ($handler::var('categories')) { + foreach ($handler::var('categories') as $v) { + if ($v['url_key'] == $category['url_key']) { + $category_error = true; + + break; + } + } + } + if ($category_error) { + throw new Exception('Category URL key already being used.', 103); + } + nullify_string($category['description']); + $category = array_filter_array($category, ['name', 'url_key', 'description'], 'exclusion'); + $add_category = DB::insert('categories', $category); + $category = DB::get('categories', ['id' => $add_category])[0]; + $category['category_url'] = get_base_url('category/' . $category['category_url_key']); + $category = DB::formatRow($category); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Category added', 'code' => 200]; + $json_array['category'] = $category; + + break; + case 'add-ip_ban': + if (!$handler::cond('content_manager')) { + throw new Exception(_s('Request denied'), 403); + } + $ip_ban = array_filter_array($REQUEST['ip_ban'], ['ip', 'expires', 'message'], 'exclusion'); + IpBan::validateIP($ip_ban['ip']); + if (!empty($ip_ban['expires']) and !preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $ip_ban['expires'])) { + throw new Exception('Invalid expiration date format', 102); + } + + try { + if (IpBan::getSingle(['ip' => $ip_ban['ip']]) !== []) { + throw new Exception(_s('IP address already banned'), 103); + } + if (empty($ip_ban['expires'])) { + $ip_ban['expires'] = null; + } + $ip_ban = array_merge($ip_ban, ['date' => datetime(), 'date_gmt' => datetimegmt(), 'expires_gmt' => is_null($ip_ban['expires']) ? null : gmdate('Y-m-d H:i:s', strtotime($ip_ban['expires']))]); + $add_ip_ban = IpBan::insert($ip_ban); + } catch (Exception $throwable) { + $json_array = [ + 'status_code' => 403, + 'error' => ['message' => $throwable->getMessage(), $throwable->getCode()], + ]; + + break; + } + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'IP ban added', 'code' => 200]; + $json_array['ip_ban'] = IpBan::getSingle(['id' => $add_ip_ban]); + + break; + case 'add-storage': + if (!Login::isAdmin()) { + throw new Exception(_s('Request denied'), 403); + } + $storage = $REQUEST['storage']; + $add_storage = Storage::insert($storage); + $storage = Storage::getSingle($add_storage); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Storage added', 'code' => 200]; + $json_array['storage'] = $storage; + + break; + case 'edit-category': + case 'flag-safe': + case 'flag-unsafe': + if ($logged_user === []) { + throw new Exception(_s('Login needed'), 403); + } + $editing = $REQUEST['editing']; + $owner_id = $logged_user['id']; + // Admin + if (!$handler::cond('content_manager') and $owner_id != $logged_user['id']) { + throw new Exception('Invalid content owner request', 110); + } + $ids = []; + foreach ($editing['ids'] as $id) { + $ids[] = decodeID($id); + } + $images = Image::getMultiple($ids); + $images_ids = []; + foreach ($images as $image) { + if (!$handler::cond('content_manager') and $image['image_user_id'] != $logged_user['id']) { + continue; + } + $images_ids[] = $image['image_id']; + } + if (!$images_ids) { + throw new Exception('Invalid content owner request', 111); + } + $prop = null; + $message = ''; + switch ($doing) { + case 'flag-safe': + case 'flag-unsafe': + if (getSetting('image_lock_nsfw_editing') + && !(Login::isAdmin() || $logged_user['is_manager']) + ) { + throw new Exception('Invalid request', 403); + } + $query_field = 'nsfw'; + $prop = intval($editing['nsfw'] == 1); + $message = 'Content flag changed'; + + break; + case 'edit-category': + $query_field = 'category_id'; + $prop = $editing['category_id'] ?: null; + $message = 'Content category edited'; + + break; + } + if (!isset($query_field)) { + throw new Exception('Invalid request', 403); + } + $db = DB::getInstance(); + $db->query('UPDATE `' . DB::getTable('images') . '` SET `image_' . $query_field . '`=:prop WHERE `image_id` IN (' . implode(',', $images_ids) . ')'); + $db->bind(':prop', $prop); + $db->exec(); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => $message, 'code' => 200]; + if ($query_field == 'category_id') { + $json_array['category_id'] = $prop; + } + + break; + case 'move': + case 'create-album': + $type = $REQUEST['type']; + if (!in_array($type, ['images', 'album', 'albums'])) { + throw new Exception('Invalid album ' . ($doing == 'move' ? 'move' : 'create') . ' request', 100); + } + $album = $REQUEST['album']; + $album['new'] = $album['new'] == 'true'; + if ($logged_user === [] && $album['new'] == false) { + throw new Exception('Invalid request', 403); + } + $owner_id = !empty($REQUEST['owner']) + ? decodeID($REQUEST['owner']) + : ($logged_user['id'] ?? null); + if (!$handler::cond('content_manager') && $owner_id != ($logged_user['id'] ?? null)) { + throw new Exception('Invalide content owner request' . var_export($owner_id, true), 112); + } + if ($handler::cond('forced_private_mode')) { + $album['privacy'] = getSetting('website_content_privacy_mode'); + } + if (!$handler::cond('content_manager') && getSetting('akismet') && $album['new']) { + Akismet::checkAlbum($album['name'], $album['description'], $owner_id == $logged_user['id'] ? $logged_user_source_db : null); + } + $album_id = $album['new'] + ? Album::insert([ + 'name' => $album['name'], + 'user_id' => $owner_id, + 'privacy' => $album['privacy'], + 'description' => $album['description'], + 'password' => $album['password'] ?? null, + 'parent_id' => isset($album['parent_id']) + ? decodeID($album['parent_id']) + : null, + ]) + : decodeID($album['id']); + $album_db = Album::getSingle(id: $album_id, pretty: false); + if (isset($album['ids']) && is_array($album['ids'])) { + if (count($album['ids']) == 0) { + throw new Exception('Invalid source album ids ' . ($doing == 'move' ? 'move' : 'create') . ' request', 100); + } + $ids = []; + foreach ($album['ids'] as $id) { + $ids[] = decodeID($id); + } + } + if (!empty($ids) && is_array($ids)) { + if ($type == 'images') { + $images = Image::getMultiple($ids); + $images_ids = []; + foreach ($images as $image) { + if ($logged_user === [] && in_array($image['image_id'], session()['guest_images'] ?? []) == false) { + continue; + } + if (!$handler::cond('content_manager') && $image['image_user_id'] != ($logged_user['id'] ?? null)) { + continue; + } + $images_ids[] = $image['image_id']; + } + if (!$images_ids) { + throw new Exception('Invalid content owner request', 104); + } + Album::addImages( + $album_db === [] + ? null + : (int) $album_db['album_id'], + $images_ids + ); + } else { + $album_move = true; + $albums = Album::getMultiple($ids); + $albums_ids = []; + foreach ($albums as $album) { + if (!$handler::cond('content_manager') && $album['album_user_id'] != $logged_user['id']) { + continue; + } + $albums_ids[] = $album['album_id']; + } + if (!$albums_ids) { + throw new Exception('Invalid content owner request', 105); + } + Album::moveContents($albums_ids, $album_id); + } + } + $album_move_db = isset($album_db['album_id']) + ? Album::getSingle(id: (int) $album_db['album_id'], pretty: false) + : User::getStreamAlbum($owner_id); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Content added to album', 'code' => 200]; + if ($album_move_db !== []) { + $json_array['album'] = Album::formatArray($album_move_db, true); + $json_array['album']['html'] = Listing::getAlbumHtml($album_move_db['album_id']); + } + if ($type == 'albums') { + $json_array['albums_old'] = []; + foreach ($ids ?? [] as $album_id) { + $album_id = (int) $album_id; + $album_item = Album::formatArray( + Album::getSingle(id: $album_id, pretty: false), + true + ); + $album_item['html'] = Listing::getAlbumHtml($album_id); + $json_array['albums_old'][] = $album_item; + } + } + + break; + case 'delete': + if ($logged_user === []) { + throw new Exception(_s('Login needed'), 403); + } + $deleting = $REQUEST['deleting'] ?? null; + $type = $REQUEST['delete'] ?? null; + if (is_null($type)) { + throw new Exception('Invalid delete request', 100); + } + if (!$handler::cond('content_manager') && !getSetting('enable_user_content_delete') && (starts_with('image', $type) || starts_with('album', $type))) { + throw new Exception('Forbidden action', 403); + } + $owner_id = isset($REQUEST['owner']) ? decodeID($REQUEST['owner']) : $logged_user['id']; + $multiple = ($REQUEST['multiple'] ?? null) == 'true'; + $single = ($REQUEST['single'] ?? null) == 'true'; + if (!$multiple) { + $single = true; + } + if ( + in_array($type, ['avatar', 'background', 'user', 'category', 'ip_ban', 'api_key', 'two_factor']) + && !$handler::cond('content_manager') && $owner_id != $logged_user['id'] + ) { + throw new Exception('Invalid content owner request', 113); + } + if (in_array($type, ['avatar', 'background'])) { + User::deletePicture($owner_id == $logged_user['id'] ? $logged_user : $owner_id, $type); + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'Profile background deleted', 'code' => 200]; + + break; + } + if ($type === 'two_factor') { + $userTarget = intval( + $owner_id == $logged_user['id'] + ? $logged_user['id'] + : $owner_id + ); + if (!TwoFactor::hasFor($userTarget)) { + $status_code = 403; + $message = 'Two-factor not enabled'; + } else { + TwoFactor::delete($userTarget); + $status_code = 200; + $message = 'Two-factor deleted'; + } + $json_array['status_code'] = $status_code; + $json_array['success'] = ['message' => $message, 'code' => $status_code]; + + break; + } + if ($type === 'api_key') { + $userTarget = intval( + $owner_id == $logged_user['id'] + ? $logged_user['id'] + : $owner_id + ); + $apiKey = ApiKey::getUserKey($userTarget); + if ($apiKey !== []) { + ApiKey::remove(intval($apiKey['id'])); + } + $json_array['status_code'] = 200; + $json_array['success'] = ['message' => 'API key deleted', 'code' => 200]; + + break; + } + if ($type == 'user') { + $delete_user_id = $owner_id == $logged_user['id'] ? $logged_user : $owner_id; + $delete_user = User::getSingle($delete_user_id, 'id'); + if ($delete_user === []) { + throw new Exception('User not found', 100); + } + if ($delete_user['is_content_manager'] && Login::isAdmin() == false) { + throw new Exception("Can't touch this!", 666); + } + User::delete($delete_user_id); + + break; + } + if ($single) { + if (is_null($deleting['id'] ?? null)) { + throw new Exception('Missing delete target id', 100); + } + } else { + if (is_array($deleting['ids']) && count($deleting['ids']) == 0) { + throw new Exception('Missing delete target ids', 100); + } + } + if ($type == 'category') { + if (!array_key_exists($deleting['id'], $handler::var('categories'))) { + throw new Exception('Invalid target category', 100); + } + $delete_category = DB::delete('categories', ['id' => $deleting['id']]); + if ($delete_category) { + $update_images = DB::update('images', ['category_id' => null], ['category_id' => $deleting['id']]); + } else { + throw new Exception('Error deleting category', 400); + } + + break; + } + if ($type == 'ip_ban') { + if (!IpBan::delete(['id' => $deleting['id']])) { + throw new Exception('Error deleting IP ban', 400); + } + + break; + } + if (!in_array($type, ['image', 'album', 'images', 'albums'])) { + throw new Exception('Invalid delete request', 100); + } + $db_field_prefix = in_array($type, ['image', 'images']) ? 'image' : 'album'; + switch ($type) { + case 'image': + case 'images': + $Class_fn = Image::class; + + break; + case 'album': + case 'albums': + $Class_fn = Album::class; + + break; + } + if (!isset($Class_fn)) { + throw new Exception('Invalid delete request', 100); + } + if ($single) { + if (is_null($deleting['id'])) { + throw new Exception('Missing delete target id', 100); + } else { + $id = decodeID($deleting['id']); + } + $content_db = $Class_fn::getSingle($id, false, false); + if ($content_db) { + if (!$handler::cond('content_manager') and $content_db[$db_field_prefix . '_user_id'] != $logged_user['id']) { + throw new Exception('Invalid content owner request', 114); + } + $delete = $Class_fn::delete($id); + } else { + throw new Exception("Content doesn't exists", 100); + } + $affected = $delete; + } else { + if (!is_array($deleting['ids'])) { + throw new Exception('Expecting ids array values, ' . gettype($deleting['ids']) . ' given', 100); + } + $ids = []; + if (count($deleting['ids']) > 0) { + foreach ($deleting['ids'] as $id) { + $ids[] = decodeID($id); + } + } + $contents_db = $Class_fn::getMultiple($ids); + $owned_ids = []; + foreach ($contents_db as $content_db) { + if (!$handler::cond('content_manager') and $content_db[$db_field_prefix . '_user_id'] != $logged_user['id']) { + continue; + } + if (isset($content_db[$db_field_prefix . '_id'])) { + $owned_ids[] = $content_db[$db_field_prefix . '_id']; + } + } + if (!$owned_ids) { + throw new Exception('Invalid content owner request', 106); + } + $delete = $Class_fn::deleteMultiple($owned_ids); + $affected = $delete; + } + $json_array['success'] = [ + 'message' => ucfirst($type) . ' deleted', + 'code' => 200, + 'affected' => $affected, + ]; + + break; + case 'disconnect': + if ($logged_user === []) { + throw new Exception(_s('Login needed'), 403); + } + $disconnect = strtolower($REQUEST['disconnect']); + $disconnect_label = ucfirst($disconnect); + $user_id = $REQUEST['user_id'] + ? decodeID($REQUEST['user_id']) + : null; // Optional param (allow admin to disconnect any user) + if (!Login::isAdmin() && $user_id && $user_id != $logged_user['id']) { + throw new Exception('Invalid request', 403); + } + $user = !$user_id ? $logged_user : User::getSingle($user_id, 'id'); + $login_connection = $user['login'][$disconnect] ?? false; + $providersEnabled = Login::getProviders('enabled'); + if (!array_key_exists($disconnect, $providersEnabled)) { + throw new Exception('Invalid disconnect value', 10); + } + if (!$login_connection) { + throw new Exception("Login connection doesn't exists", 11); + } + if ($user['connections_count'] == 1 && !Login::hasPassword($user_id)) { + throw new Exception(_s('Add a password or another social connection before deleting %s', $disconnect_label), 12); + } + $user_social_conn = 0; + foreach (array_keys($providersEnabled) as $k) { + if (array_key_exists($k, $user['login'])) { + ++$user_social_conn; + } + } + if ($user_social_conn == 1 + && Login::hasPassword($user['id'])) { + if (getSetting('require_user_email_confirmation') + && !$user['email']) { + throw new Exception(_s('Add an email or another social connection before deleting %s', $disconnect_label), 12); + } + } + $loginCookie = 'cookie_' . $disconnect; + Login::deleteCookies($loginCookie, ['user_id' => $user['id']]); + $delete_connection = Login::deleteConnection($disconnect, $user['id']); + if ($delete_connection) { + if (in_array($disconnect, ['twitter', 'facebook'])) { + User::update($user['id'], [$disconnect . '_username' => null]); + } + $json_array['success'] = [ + 'message' => _s('%s has been disconnected.', $disconnect_label), + 'code' => 200, + 'redirect' => '', + ]; + if ($loginCookie === Login::getSession()['type']) { + $config = [ + 'callback' => get_public_url('connect/' . $disconnect) . '/', + 'providers' => [], + ]; + $config['providers'][$disconnect] = [ + 'enabled' => $providersEnabled[$disconnect]['is_enabled'], + 'keys' => [ + 'id' => $providersEnabled[$disconnect]['key_id'], + 'secret' => $providersEnabled[$disconnect]['key_secret'], + ] + ]; + $session = new HybridauthSession(); + $hybridauth = new Hybridauth(config: $config, storage: $session); + $adapter = $hybridauth->getAdapter($disconnect); + if ($adapter->isConnected()) { + $adapter->disconnect(); + } + $session->clear(); + $json_array['success']['redirect'] = get_base_url('login'); + } + } else { + throw new Exception('Error deleting connection', 666); + } + + break; + case 'rebuildStats': + if (!Login::isAdmin()) { + throw new Exception('Invalid request', 403); + } + Stat::rebuildTotals(); + $json_array['success'] = [ + 'message' => 'OK', + 'code' => 200, + 'redirURL' => get_base_url('dashboard') + ]; + + break; + case 'testEmail': + if (!Login::isAdmin()) { + throw new Exception('Invalid request', 403); + } + $send_email = send_mail($REQUEST['email'], _s('Test email from %s @ %t', ['%s' => getSetting('website_name'), '%t' => datetime()]), '<p>' . _s('This is just a test') . '</p>'); + if ($send_email) { + $json_array['success'] = [ + 'message' => _s('Test email sent to %s.', $REQUEST['email']), + 'code' => 200, + ]; + } else { + $json_array['error'] = [ + 'code' => 500, + ]; + } + + break; + case 'encodeId': + case 'decodeId': + if (!Login::isAdmin()) { + throw new Exception('Invalid request', 403); + } + if ($REQUEST['id'] == null) { + throw new Exception('Invalid request', 100); + } + $thing = str_replace('Id', '', $doing); + $id = $REQUEST['id']; + if ($thing === 'encode') { + $res = encodeID((int) $id); + } else { + $res = decodeID($id); + } + $json_array['success'] = [ + 'message' => $id . ' == ' . $res, + 'code' => 200, + $thing => $res, + ]; + + break; + case 'exportUser': + if (!Login::isAdmin()) { + throw new Exception('Invalid request', 403); + } + // Validate id + if ($REQUEST['username'] == null) { + throw new Exception(_s('Invalid username'), 100); + } + $user = User::getSingle($REQUEST['username'], 'username', false); + if ($user == false) { + throw new Exception(_s('Invalid username'), 101); + } + $user = DB::formatRow($user); + if (!isset($REQUEST['download'])) { + $json_array['success'] = [ + 'message' => _s('Downloading %s data', "'" . $user['username'] . "'"), + 'code' => 200, + 'redirURL' => get_current_url() . '&action=exportUser&download=1', + ]; + } else { + $filename = $user['username'] . '.json'; + $user = array_filter_array($user, ['name', 'username', 'email', 'facebook_username', 'twitter_username', 'website', 'bio', 'timezone', 'language', 'is_private', 'newsletter_subscribe']); + $user = json_encode($user, JSON_PRETTY_PRINT); + header('Content-type: application/json'); + header('Content-Disposition: attachment; filename=' . $filename); + header('Last-Modified: ' . datetimegmt('D, d M Y H:i:s') . ' UTC'); + header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0'); + header('Pragma: anytextexeptno-cache', true); + header('Cache-control: private', false); + header('Expires: 0'); + echo $user; + die(); + } + + break; + case 'follow': + case 'unfollow': + if ($logged_user === [] + || !getSetting('enable_followers') + || $logged_user['is_private'] == 1 + ) { + throw new Exception('Invalid request', 403); + } + $follow_array = [ + 'user_id' => $logged_user['id'], + 'followed_user_id' => decodeID($REQUEST[$doing]['id']), + ]; + $return = $doing == 'follow' + ? Follow::insert($follow_array) + : Follow::delete($follow_array); + if ($return) { + unset($return['id']); + $json_array['success'] = [ + 'message' => $doing == 'follow' ? _s('User %s followed', $return['username']) : _s('User %s unfollowed', $return['username']), + 'code' => 200, + ]; + $json_array['user_followed'] = $return; + } + + break; + case 'album-cover-set': + case 'album-cover-unset': + if ($logged_user === []) { + throw new Exception('Invalid request', 403); + } + $image_pub_id = $POST[$doing]['image_id']; + $album_pub_id = $POST[$doing]['album_id']; + $image_id = decodeID($image_pub_id); + $album_id = decodeID($album_pub_id); + $image = Image::getSingle(id: $image_id, pretty: true); + if ($image === []) { + throw new LogicException( + message('Missing image') + ); + } + $album = Album::getSingle($album_id); + if ($image['album']['id'] !== ($album['id'] ?? 0)) { + throw new Exception("Image doesn't belong to this album", 100); + } + if (isset($logged_user['id'])) { + $isLoggedOwner = ($image['user']['id'] ?? null) == $logged_user['id'] + || ($album['user']['id'] ?? null) == $logged_user['id']; + } else { + $isLoggedOwner = false; + } + if (!$handler::cond('content_manager') && !$isLoggedOwner) { + throw new Exception('Invalid content owner request', 101); + } + Album::update($album_id, ['cover_id' => $doing == 'album-cover-unset' ? null : $image_id]); + $json_array['success'] = [ + 'message' => _s('Album cover altered'), + 'code' => 200, + ]; + + break; + case 'like': + case 'dislike': + if ($logged_user === [] || !getSetting('enable_likes')) { + throw new Exception('Invalid request', 403); + } + $like_array = [ + 'user_id' => $logged_user['id'], + 'content_id' => decodeID($REQUEST[$doing]['id']), + 'content_type' => $REQUEST[$doing]['object'], + ]; + $return = $doing == 'like' ? Like::insert($like_array) : Like::delete($like_array); + if ($return) { + $return['id_encoded'] = encodeID((int) $return['id']); + unset($return['id']); + $json_array['success'] = [ + 'message' => $doing == 'like' ? _s('Content liked', $return['content']['id_encoded'] ?? '') : _s('Content disliked', $return['content']['id_encoded'] ?? ''), + 'code' => 200, + ]; + $json_array['content'] = $return; + } + + break; + case 'regenStorageStats': + if (!Login::isAdmin()) { + throw new Exception('Invalid request', 403); + } + $res = Storage::regenStorageStats($REQUEST['storageId']); + $json_array['success'] = [ + 'message' => $res, + 'code' => 200, + ]; + + break; + case 'migrateStorage': + if (!Login::isAdmin()) { + throw new Exception('Invalid request', 403); + } + $res = Storage::migrateStorage($REQUEST['sourceStorageId'], $REQUEST['targetStorageId']); + $json_array['success'] = [ + 'message' => $res, + 'code' => 200, + ]; + + break; + case 'notifications': + if ($logged_user === []) { + throw new Exception('Invalid request', 403); + } + $notification_array = [ + 'user_id' => $logged_user['id'], + ]; + $notifications = Notification::get($notification_array); + Notification::markAsRead($notification_array); + $json_array['status_code'] = 200; + if ($notifications !== []) { + $json_array['html'] = ''; + $template = '<li%class>%avatar<span class="notification-text">%message</span><span class="how-long-ago">%how_long_ago</span></li>'; + $avatar_src_tpl = [ + 0 => '<span class="user-image default-user-image"><span class="icon fas fa-user-circle"></span></span>', + 1 => '<img class="user-image" src="%user_avatar_url" alt="%user_name_short_html">', + ]; + $avatar_tpl = [ + 0 => $avatar_src_tpl[0], + 1 => '<a href="%user_url">%user_avatar</a>', + ]; + foreach ($notifications as $k => $v) { + $content_type = $v['content_type']; + switch ($v['type']) { + case 'like': + $message = _s('%u liked your %t %c', [ + '%t' => _s($content_type), + '%c' => '<a href="' . $v[$content_type]['url_short'] . '">' . $v[$content_type][($content_type == 'image' ? 'title' : 'name') . '_truncated_html'] . '</a>', + ]); + + break; + case 'follow': + $message = _s('%u is now following you'); + + break; + } + if (!isset($v['user']['id'])) { + continue; + } + $v['message'] = strtr($message ?? '', [ + '%u' => $v['user']['is_private'] == 1 + ? _s('A private user') + : ('<a href="' . $v['user']['url'] . '">' . $v['user']['name_short_html'] . '</a>'), + ]); + if ($v['user']['is_private'] == 1) { + $avatar = $avatar_tpl[0]; + } else { + $avatar = strtr($avatar_tpl[1], [ + '%user_url' => $v['user']['url'], + '%user_avatar' => strtr($avatar_src_tpl[isset($v['user']['avatar']) ? 1 : 0], [ + '%user_avatar_url' => $v['user']['avatar']['url'] ?? '', + '%user_name_short_html' => $v['user']['name_short_html'], + ]), + ]); + } + $json_array['html'] .= strtr($template, [ + '%class' => !$v['is_read'] ? ' class="new"' : null, + '%avatar' => $avatar, + '%user_url' => $v['user']['url'], + '%message' => $v['message'], + '%how_long_ago' => time_elapsed_string($v['date_gmt']), + ]); + } + unset($content_type); + } else { + $json_array['html'] = null; + } + + break; + case 'importStats': + case 'importEdit': + case 'importDelete': + case 'importReset': + case 'importResume': + if ($REQUEST['id'] == false) { + throw new Exception('Missing id parameter', 100); + } + $import->id = (int) $REQUEST['id']; + $import->get(); + + break; + case 'paletteSet': + if ($logged_user === []) { + throw new Exception('Invalid request', 403); + } + $palette_id = (int) $REQUEST['palette_id']; + User::update($logged_user['id'], ['palette_id' => $palette_id]); + $json_array['status_code'] = 200; + $logged_user = User::getSingle($logged_user['id']); + $json_array['palette_id'] = (int) $logged_user['palette_id']; + + break; + case 'approve': + if (!(Login::isAdmin() || $logged_user['is_manager'])) { + throw new Exception('Invalid request', 403); + } + $approve_ids = []; + $approving = $REQUEST['approving']; + if (($REQUEST['multiple'] ?? null) == 'true') { + $approve_ids = $approving['ids']; + } else { + $approve_ids = [$approving['id']]; + } + if ($approve_ids == []) { + throw new Exception('Missing approve target ids', 600); + } + $ids = []; + foreach ($approve_ids as $value) { + $ids[] = decodeID($value); + } + $affected = DB::queryExecute(sprintf('UPDATE ' . DB::getTable('images') . ' SET image_is_approved = 1 WHERE image_id IN (%s)', implode(',', $ids))); + $json_array['status_code'] = 200; + $json_array['affected'] = $affected; + + break; + case 'user_ban': + case 'user_unban': + if (!$handler::cond('content_manager')) { + throw new Exception('Invalid content owner request', 108); + } + $user_id = decodeID($REQUEST[$doing]['user_id'] ?? ''); + if ($user_id === 0) { + throw new Exception('Invalid user id', 109); + } + $user = User::getSingle($user_id); + if ($user === []) { + throw new Exception('User not found', 404); + } + User::update($user_id, ['status' => $doing == 'user_ban' ? 'banned' : 'valid']); + $json_array['status_code'] = 200; + + break; + case 'deny': + throw new Exception(_s('Request denied'), 403); + default: // EX X + throw new Exception( + !check_value($doing) + ? 'empty action' + : "invalid action $doing", + ); + } + if (isset($import->id)) { + switch ($doing) { + case 'importStats': + $json_array['status_code'] = 200; + $json_array['import'] = $import->parsedImport; + + break; + case 'importEdit': + if ($REQUEST['values'] == false) { + throw new Exception('Missing values parameter', 101); + } + if (is_array($REQUEST['values']) == false) { + throw new Exception('Expecting array values', 102); + } + $import->edit($REQUEST['values']); + $import->get(); + $json_array['import'] = $import->parsedImport; + $json_array['status_code'] = 200; + + break; + case 'importReset': + $import->reset(); + $json_array['import'] = $import->parsedImport; + $json_array['status_code'] = 200; + + break; + case 'importResume': + $import->resume(); + $json_array['import'] = $import->parsedImport; + $json_array['status_code'] = 200; + + break; + case 'importDelete': + $import->delete(); + $json_array['status_code'] = 200; + $json_array['import'] = $import->parsedImport; + + break; + } + } + if (isset($json_array['success']) and !isset($json_array['status_code'])) { + $json_array['status_code'] = 200; + } + $json_array['request'] = $REQUEST; + } catch (Throwable $throwable) { + $throwableHandler = throwableHandler($throwable); + $docInternal = new PlainDocument($throwableHandler); + if ($throwable->getCode() < 100 || $throwable->getCode() >= 500) { + writers()->error() + ->write($docInternal->__toString() . "\n\n"); + XrThrowableHandler( + $throwable, + <<<HTML + <div class="throwable-message">Incident ID: {$throwableHandler->id()}</div> + HTML + ); + } + $message = $throwable->getMessage() . ' (' . $throwable->getCode() . ')'; + $debugLevel = Config::system()->debugLevel(); + $errorCanSurface = $throwable->getCode() === 999 + || ($throwable->getCode() > 99 && $throwable->getCode() < 600); + $isDebug = in_array($debugLevel, [2, 3]) || isDebug(); + if (!$isDebug && !$errorCanSurface) { + $message = '⭕️ ' + . _s('Something went wrong') + . ' • ' + . strtr( + 'Incident ID:%id%', + ['%id%' => '' . $throwableHandler->id()] + ); + } + + $json_array = [ + 'status_code' => 500, + 'error' => [ + 'message' => $message, + 'type' => $throwable::class, + 'time' => $throwableHandler->dateTimeUtc() + ->format(DateTimeInterface::ATOM), + 'code' => $throwable->getCode(), + 'id' => $throwableHandler->id(), + ] + ]; + } + json_output($json_array); +}; diff --git a/app/legacy/routes/login.php b/app/legacy/routes/login.php new file mode 100644 index 0000000..266668a --- /dev/null +++ b/app/legacy/routes/login.php @@ -0,0 +1,123 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\captcha_check; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\RequestLog; +use Chevereto\Legacy\Classes\TwoFactor; +use Chevereto\Legacy\Classes\User; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\must_use_captcha; +use function Chevereto\Vars\env; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + if (post() !== [] && !$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + if ($handler->isRequestLevel(2)) { + $handler->issueError(404); + + return; + } // Allow only 1 level + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + if ($logged_user) { + redirect(User::getUrl($logged_user)); + } + $request_log_insert = ['type' => 'login', 'user_id' => null]; + $failed_access_requests = $handler::var('failed_access_requests'); + $SAFE_POST = $handler::var('safe_post'); + $is_error = false; + $captcha_needed = $handler::cond('captcha_needed'); + $error_message = null; + if ($captcha_needed && !empty(post())) { + $captcha = captcha_check(); + if (!$captcha->is_valid) { + $is_error = true; + $error_message = _s('%s says you are a robot', 'CAPTCHA'); + } + } + if (post() !== [] && !$is_error) { + $login_by = filter_var(post()['login-subject'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; + if (trim(post()['login-subject']) == '' || trim(post()['password']) == '') { + $is_error = true; + } + if (!$is_error) { + $user = User::getSingle( + trim(post()['login-subject']), + $login_by, + true + ); + if ($user !== []) { + $user['id'] = (int) $user['id']; + $request_log_insert['user_id'] = $user['id']; + switch ($user['status']) { + case 'awaiting-confirmation': + Login::setSignup([ + 'status' => 'awaiting-confirmation', + 'email' => $user['email'] + ]); + redirect('account/awaiting-confirmation'); + + break; + case 'banned': + $handler->issueError(403); + + return; + } + $is_login = !(bool) env()['CHEVERETO_ENABLE_USERS'] && getSetting('website_mode_personal_uid') != $user['id'] + ? false + : Login::checkPassword($user['id'], post()['password']); + } + if ($is_login ?? false) { + $request_log_insert['result'] = 'success'; + RequestLog::insert($request_log_insert); + $logged_user = Login::login($user['id']); + Login::insertCookie('cookie', $user['id']); + $redirect_to = User::getUrl(Login::getUser()); + if (TwoFactor::hasFor($user['id'])) { + sessionVar()->put('challenge_two_factor', $user['id']); + $redirect_to = 'account/two-factor'; + } elseif (isset(session()['last_url'])) { + $redirect_to = session()['last_url']; + } + if ($user['status'] == 'awaiting-email') { + $redirect_to = 'account/email-needed'; + } + + redirect($redirect_to); + } else { + $is_error = true; + } + } + if ($is_error) { + $request_log_insert['result'] = 'fail'; + RequestLog::insert($request_log_insert); + $error_message = _s('Wrong Username/Email password combination'); + if (getSettings()['captcha'] && must_use_captcha($failed_access_requests['day'] + 1)) { + $captcha_needed = true; + } + } + } + $handler::setCond('error', $is_error); + $handler::setCond('captcha_needed', $captcha_needed); + $handler::setVar('pre_doctitle', _s('Sign in')); + $handler::setVar('error', $error_message); +}; diff --git a/app/legacy/routes/logout.php b/app/legacy/routes/logout.php new file mode 100644 index 0000000..1edf0ca --- /dev/null +++ b/app/legacy/routes/logout.php @@ -0,0 +1,27 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + if (!$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + if (Login::isLoggedUser()) { + Login::logout(); + $access_token = $handler::getAuthToken(); + $handler::setVar('auth_token', $access_token); + } +}; diff --git a/app/legacy/routes/moderate.php b/app/legacy/routes/moderate.php new file mode 100644 index 0000000..dafbf81 --- /dev/null +++ b/app/legacy/routes/moderate.php @@ -0,0 +1,75 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_route_name; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Vars\env; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + if (!$handler::cond('content_manager')) { + $handler->issueError(404); + + return; + } + if (!(bool) env()['CHEVERETO_ENABLE_MODERATION']) { + $handler->issueError(403); + + return; + } + $list = ['label' => _s('Moderate'), 'icon' => 'fas fa-check-double']; + $list['list'] = get_route_name(); + $listingParams = [ + 'listing' => $list['list'], + 'basename' => get_route_name(), + 'params_hidden' => [ + 'approved' => 0, + 'hide_empty' => 0, + 'hide_banned' => 0, + 'album_min_image_count' => 0, + ], + 'exclude_criterias' => ['most-viewed', 'most-liked'], + 'order' => ['most-oldest', 'most-recent'] + ]; + $getParams = Listing::getParams(request()); + $tabs = Listing::getTabs($listingParams, $getParams, true); + $currentKey = $tabs['currentKey']; + $type = $tabs['tabs'][$currentKey]['type']; + $tabs = $tabs['tabs']; + parse_str($tabs[$currentKey]['params'], $tabs_params); + $getParams['sort'] = explode('_', $tabs_params['sort']); // Hack this stuff + $handler::setVar('list_params', $getParams); + $listing = new Listing(); + $listing->setApproved(0); + $listing->setType($type); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views | likes + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setRequester(Login::getUser()); + $listing->setParamsHidden($listingParams['params_hidden']); + $listing->exec(); + $handler::setVar('list', $list); + $handler::setVar('listing', $listing); + $handler::setVar('pre_doctitle', _s('Moderate')); + $handler::setVar('category', null); + $handler::setVar('tabs', $tabs); + $handler::setVar('share_links_array', get_share_links()); +}; diff --git a/app/legacy/routes/oembed.php b/app/legacy/routes/oembed.php new file mode 100644 index 0000000..bba1689 --- /dev/null +++ b/app/legacy/routes/oembed.php @@ -0,0 +1,120 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\json_output; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\set_status_header; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\G\str_replace_last; +use function Chevereto\Legacy\G\xml_output; +use function Chevereto\Legacy\getIdFromURLComponent; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\get; + +return function (Handler $handler) { + if ($handler->isRequestLevel(2)) { + $handler->issueError(404); + + return; + } + $viewer = Image::getUrlViewer('%id'); + $viewer = str_replace('/', '\/', $viewer); + $regex = str_replace_last('%id', '(.*)', $viewer); + $regex = str_replace_first('https:', 'https?:', $regex); + $regex = str_replace_first('http:', 'https?:', $regex); + if (!preg_match('#^' . $regex . '$#', get()['url'] ?? '', $matches)) { + set_status_header(403); + die(); + } + $id = getIdFromURLComponent($matches[1]); + if ($id == 0) { + set_status_header(404); + die(); + } + $image = Image::getSingle(id: $id, pretty: true); + if ($image === []) { + set_status_header(404); + die(); + } + if (!$image['is_approved']) { + set_status_header(403); + die(); + } + if (in_array($image['album']['privacy'] ?? '', ['password', 'private', 'custom'])) { + set_status_header(401); + die(); + } + if (($image['user']['is_private'] ?? false) == 1) { + unset($image['user']); + $image['user'] = User::getPrivate(); + } + $data = [ + 'version' => '1.0', + 'type' => 'photo', + 'provider_name' => safe_html(Settings::get('website_name')), + 'provider_url' => get_public_url(), + 'title' => safe_html($image['title']), + 'url' => $image['display_url'], + 'web_page' => $image['url_viewer'], + 'width' => $image['width'], + 'height' => $image['height'], + ]; + if (isset($image['user'])) { + $data = array_merge($data, [ + 'author_name' => safe_html($image['user']['username']), + 'author_url' => $image['user']['url'], + ]); + } + $thumb = 'display_url'; + $maxWidth = isset(get()['maxwidth']) ? (int) get()['maxwidth'] : $image['width']; + $maxHeight = isset(get()['maxHeight']) ? (int) get()['maxHeight'] : $image['height']; + if ($image['display_width'] > $maxWidth || $image['display_height'] > $maxHeight) { + $thumb = null; + if (getSetting('upload_thumb_width') <= $maxWidth && getSetting('upload_thumb_height') <= $maxHeight) { + $thumb = 'thumb'; + } + } + if ($thumb !== null) { + if ($thumb == 'thumb') { + $display_url = $image['thumb']['url']; + $display_width = (int) getSetting('upload_thumb_width'); + $display_height = (int) getSetting('upload_thumb_height'); + } else { + $display_url = $image['display_url']; + $display_width = (int) $image['display_width']; + $display_height = (int) $image['display_height']; + } + $data = array_merge($data, [ + 'thumbnail_url' => $display_url, + 'thumbnail_width' => $display_width, + 'thumbnail_height' => $display_height, + ]); + } + + switch (get()['format'] ?? '') { + case 'xml': + xml_output(['oembed' => $data]); + + break; + case 'json': + default: + json_output($data); + + break; + } + + die(); +}; diff --git a/app/legacy/routes/page.php b/app/legacy/routes/page.php new file mode 100644 index 0000000..a68ad03 --- /dev/null +++ b/app/legacy/routes/page.php @@ -0,0 +1,54 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Page; +use function Chevereto\Legacy\G\add_ending_slash; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Vars\env; + +return function (Handler $handler) { + if (!(bool) env()['CHEVERETO_ENABLE_PAGES']) { + $this->issueError(404); + + return; + } + $request_url_key = implode('/', $handler->request()); + $page = Page::getSingle($request_url_key); + if (!$page || !$page['is_active'] || $page['type'] !== 'internal') { + $handler->issueError(404); + + return; + } + if (!$page['file_path_absolute']) { + $handler->issueError(404); + + return; + } + if (!file_exists($page['file_path_absolute'])) { + $handler->issueError(404); + + return; + } + $pathinfo = pathinfo($page['file_path_absolute']); + $handler->setPathTheme(add_ending_slash($pathinfo['dirname'])); + $handler->setTemplate($pathinfo['filename']); + $page_metas = [ + 'pre_doctitle' => $page['title'], + 'meta_description' => htmlspecialchars($page['description'] ?? ''), + 'meta_keywords' => htmlspecialchars($page['keywords'] ?? '') + ]; + foreach ($page_metas as $k => $v) { + if ($v === null) { + continue; + } + $handler->setVar($k, $v); + } +}; diff --git a/app/legacy/routes/plugin.php b/app/legacy/routes/plugin.php new file mode 100644 index 0000000..4a137be --- /dev/null +++ b/app/legacy/routes/plugin.php @@ -0,0 +1,110 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_global; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\getSetting; + +return function (Handler $handler) { + if (!getSetting('enable_plugin_route') && !Login::isAdmin()) { + $handler->issueError(404); + + return; + } + $src = getSetting('sdk_pup_url') ?: get_public_url('sdk/pup.js'); + $src = str_replace_first('https:', '', $src); + include_theme_file('snippets/embed'); + $embed_share_tpl = get_global('embed_share_tpl'); + $embed = []; + foreach ($embed_share_tpl as $vGroup) { + foreach ($vGroup['options'] as $k => $v) { + if ($k == 'bbcode-embed-medium') { + $k = null; + } + $embed[$k] = $v['label']; + } + } + $tagAttrs = [ + 'async' => '', + 'src' => $src, + 'data-url' => get_public_url('upload') + ]; + $tagCode = '<script'; + foreach ($tagAttrs as $k => $v) { + $tagCode .= ' ' . $k; + if ($v !== '') { + $tagCode .= '="' . $v . '"'; + } + } + $tagCode .= '></script>'; + $plugin = [ + 'tagAttrs' => $tagAttrs, + 'tagCode' => $tagCode, + 'table' => [ + '%cClass' => 'chevereto-pup-container', + '%bClass' => 'chevereto-pup-button', + '%iClass' => 'chevereto-pup-button-icon', + '%iconSvg' => '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M76.7 87.5c12.8 0 23.3-13.3 23.3-29.4 0-13.6-5.2-25.7-15.4-27.5 0 0-3.5-0.7-5.6 1.7 0 0 0.6 9.4-2.9 12.6 0 0 8.7-32.4-23.7-32.4 -29.3 0-22.5 34.5-22.5 34.5 -5-6.4-0.6-19.6-0.6-19.6 -2.5-2.6-6.1-2.5-6.1-2.5C10.9 25 0 39.1 0 54.6c0 15.5 9.3 32.7 29.3 32.7 2 0 6.4 0 11.7 0V68.5h-13l22-22 22 22H59v18.8C68.6 87.4 76.7 87.5 76.7 87.5z"/></svg>', + ], + 'vendors' => [ + 'bbPress', + 'Discourse', + 'Discuz!', + 'Invision Power Board', + 'MyBB', + 'NodeBB', + 'ProBoards', + 'phpBB', + 'Simple Machines Forum', + 'Vanilla Forums', + 'vBulletin', + 'WoltLab', + 'XenForo' + ], + 'palettes' => [ + 'default' => ['#ececec', '#000', '#2980b9', '#fff'], + 'clear' => ['inherit', 'inherit', 'inherit', '#2980b9'], + 'turquoise' => ['#16a085', '#fff', '#1abc9c', '#fff'], + 'green' => ['#27ae60', '#fff', '#2ecc71', '#fff'], + 'blue' => ['#2980b9', '#fff', '#3498db', '#fff'], + 'purple' => ['#8e44ad', '#fff', '#9b59b6', '#fff'], + 'darkblue' => ['#2c3e50', '#fff', '#34495e', '#fff'], + 'yellow' => ['#f39c12', '#fff', '#f1c40f', '#fff'], + 'orange' => ['#d35400', '#fff', '#e67e22', '#fff'], + 'red' => ['#c0392b', '#fff', '#e74c3c', '#fff'], + 'grey' => ['#ececec', '#000', '#e0e0e0', '#000'], + 'black' => ['#333', '#fff', '#666', '#fff'] + ], + 'button' => '<div class="%cClass"><button id="pup-preview" class="%bClass %bClass--palette-default"><span class="%iClass">%iconSvg</span><span class="%tClass">' . _s('Upload images') . '</span></button></div>', + 'baseCss' => '.%cClass{display:inline-block;margin-top:5px;margin-bottom:5px}.%bClass{-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s;outline:0;border:none;cursor:pointer;border:1px solid rgba(0,0,0,.05);border-radius:.2em;padding:.5em 1em;font-size:12px;font-weight:700;text-shadow:none}.%bClass:hover{border-top-color:rgba(255,255,255,.1);border-right-color:rgba(0,0,0,.05);border-bottom-color:rgba(0,0,0,.1);border-left-color:rgba(0,0,0,.05);}.%iClass{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-item-align:center;align-self:center;position:relative;height:1em;width:1em;margin-right:.25em}.%iClass img,.%iClass svg{width:1em;height:1em;bottom:-.125em;position:absolute}.%iClass svg{fill:currentColor}', + 'paletteCss' => '.%bClass--palette-%palette{color:%2;background:%1}.%bClass--palette-%palette:hover{background:%3;color:%4}', + 'embed' => $embed, + ]; + $palette_css_rules = ''; + foreach ($plugin['palettes'] as $palette => $colors) { + $paletteTable = $plugin['table']; + $paletteTable['%palette'] = $palette; + foreach ($colors as $index => $color) { + $paletteTable['%' . ($index + 1)] = $color; + } + $palette_css_rules .= strtr($plugin['paletteCss'], $paletteTable); + } + foreach (['button', 'baseCss'] as $v) { + $plugin[$v] = strtr($plugin[$v], $plugin['table']); + } + $plugin['stylesheet'] = '<style type="text/css" id="chevereto-pup-style">' . $plugin['baseCss'] . $palette_css_rules . '</style>'; + $handler::setVar('plugin', $plugin); + $handler::setVar('pre_doctitle', _s('Upload plugin')); +}; diff --git a/app/legacy/routes/redirect.php b/app/legacy/routes/redirect.php new file mode 100644 index 0000000..46534d6 --- /dev/null +++ b/app/legacy/routes/redirect.php @@ -0,0 +1,45 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\decryptString; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\is_url_web; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Vars\get; + +/** + * This is an internal redirection try to avoid spammers trying to get some + * SEO juice by putting links all over your Chevereto website. + * + * It also avoids spammers to use this redirection to hang spam and whatnot in + * third-party websites (auth_token stuff). + * + * The redirection is only issued if the URL was generated by crypt(). + */ +return function (Handler $handler) { + $encrypted = get()['to'] ?? null; + if ($encrypted === null) { + $handler->issueError(404); + + return; + } + $url = decryptString($encrypted); + $validations = [ + is_url_web($url), + $handler::checkAuthToken(get()['auth_token'] ?? '') + ]; + if (in_array(false, $validations)) { + $handler->issueError(404); + + return; + } + redirect($url, 302); +}; diff --git a/app/legacy/routes/search.php b/app/legacy/routes/search.php new file mode 100644 index 0000000..0d98120 --- /dev/null +++ b/app/legacy/routes/search.php @@ -0,0 +1,130 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Search; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\check_value; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Vars\env; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + if (!(bool) env()['CHEVERETO_ENABLE_USERS']) { + $handler->issueError(403); + + return; + } + if ($handler::cond('search_enabled') == false) { + $handler->issueError(404); + + return; + } + if (post() !== [] && !$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + if ($handler->isRequestLevel(4)) { + $handler->issueError(404); + + return; + } // Allow only 3 levels + if (is_null($handler->request()[0] ?? null)) { + $handler->issueError(404); + + return; + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + if (!in_array($handler->request()[0], ['images', 'albums', 'users'])) { + $handler->issueError(404); + + return; + } + $search = new Search(); + $search->q = request()['q'] ?? null; + $search->type = $handler->request()[0]; + $search->request = request(); + $search->requester = Login::getUser(); + $search->build(); + if (!check_value($search->q)) { + redirect(); + + return; + } + $safe_html_search = safe_html($search->display); + + try { + $getParams = Listing::getParams(request()); + $handler::setVar('list_params', $getParams); + $listing = new Listing(); + $listing->setType($search->type); + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setWhere($search->wheres); + $listing->setRequester(Login::getUser()); + foreach ($search->binds as $v) { + $listing->bind($v['param'], $v['value']); + } + $listing->setOutputTpl($search->type); + $listing->exec(); + $handler::setVar('listing', $listing); + } catch (Exception $e) { + $getParams = []; + } + $tabs = Listing::getTabs([ + 'listing' => 'search', + 'basename' => 'search', + 'params' => ['q' => $safe_html_search['q'], 'page' => '1'], + 'params_remove_keys' => ['sort'], + ], $getParams); + foreach ($tabs as $k => &$v) { + $v['current'] = $v['type'] == $search->type; + } + $meta_description = ''; + switch ($search->type) { + case 'images': + $meta_description = _s('Image search results for %s'); + + break; + case 'albums': + $meta_description = _s('Album search results for %s'); + + break; + case 'users': + $meta_description = _s('User search results for %s'); + + break; + } + $handler::setVar('pre_doctitle', $search->q . ' - ' . _s('Search')); + $handler::setVar('meta_description', sprintf($meta_description, $safe_html_search['q'])); + $handler::setVar('search', $search->display); + $handler::setVar('safe_html_search', $safe_html_search); + $handler::setVar('tabs', $tabs); + if ($handler::cond('content_manager')) { + $handler::setVar('user_items_editor', false); + } + $handler::setVar('share_links_array', get_share_links()); +}; diff --git a/app/legacy/routes/settings.php b/app/legacy/routes/settings.php new file mode 100644 index 0000000..73c4b0d --- /dev/null +++ b/app/legacy/routes/settings.php @@ -0,0 +1,573 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Akismet; +use Chevereto\Legacy\Classes\ApiKey; +use Chevereto\Legacy\Classes\Confirmation; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\IpBan; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\RequestLog; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\TwoFactor; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\array_filter_array; +use function Chevereto\Legacy\G\dateinterval; +use function Chevereto\Legacy\G\datetime_diff; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\is_url_web; +use function Chevereto\Legacy\G\nullify_string; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\timing_safe_compare; +use function Chevereto\Legacy\generate_hashed_token; +use function Chevereto\Legacy\get_available_languages; +use function Chevereto\Legacy\getIpButtonsArray; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\send_mail; +use function Chevereto\Vars\env; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; + +return function (Handler $handler) { + $POST = post(); + if ($POST !== [] and !$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + $logged_user = Login::getUser(); + if ($logged_user === []) { + redirect('login'); + } + User::statusRedirect($logged_user['status'] ?? null); + $handler->setTemplate('settings'); + $is_dashboard_user = $handler::cond('dashboard_user'); + if (!$is_dashboard_user) { + RequestLog::getCounts('account-edit', 'fail'); + } + $allowed_to_edit = ['name', 'username', 'email', 'avatar_filename', 'website', 'background_filename', 'timezone', 'language', 'image_keep_exif', 'image_expiration', 'newsletter_subscribe', 'bio', 'show_nsfw_listings', 'is_private', 'status']; + if ($is_dashboard_user) { + $allowed_to_edit = array_merge($allowed_to_edit, ['is_admin', 'is_manager']); + } + if (!getSetting('enable_expirable_uploads')) { + $key = array_search('image_expiration', $allowed_to_edit); + unset($allowed_to_edit[$key]); + } + $user = $is_dashboard_user + ? User::getSingle($handler->request()[1], 'id') + : $logged_user; + if ($user === []) { + $handler->issueError(404); + + return; + } + $is_owner = $user['id'] == Login::getUser()['id']; + if ($is_dashboard_user && $user['is_content_manager'] && Login::isAdmin() == false) { + $handler->issueError(404); + + return; + } + if (in_array('language', $allowed_to_edit) + && isset($POST['language']) + && $logged_user['language'] !== $POST['language'] + && $logged_user['id'] == $user['id'] + && array_key_exists($POST['language'], L10n::getEnabledLanguages()) + ) { + L10n::processTranslation($POST['language']); + } + $routes = [ + 'account' => _s('Account'), + 'profile' => _s('Profile'), + 'password' => _s('Password'), + 'security' => _s('Security'), + 'api' => 'API', + 'connections' => _s('Connections'), + 'homepage' => _s('Homepage'), + 'powered' => _s('Powered by'), + ]; + $icons = [ + 'account' => 'fas fa-user', + 'profile' => 'fas fa-id-card', + 'api' => 'fas fa-project-diagram', + 'password' => 'fas fa-key', + 'security' => 'fas fa-shield-alt', + 'connections' => 'fas fa-plug', + 'homepage' => 'fas fa-home', + 'powered' => 'fas fa-power-off', + ]; + $default_route = 'account'; + $route_homepage = false; + if (getSetting('website_mode') == 'personal' and getSetting('website_mode_personal_routing') !== '/' and $logged_user['id'] == getSetting('website_mode_personal_uid')) { + $route_homepage = true; + } + $is_email_required = (bool) getSetting('require_user_email_confirmation'); + if ($handler::cond('content_manager') && $is_owner == false) { + $is_email_required = false; + } + $providersEnabled = Login::getProviders('enabled'); + if ($is_email_required && getSetting('require_user_email_social_signup') == false) { + foreach (array_keys($providersEnabled) as $k) { + if (array_key_exists($k, $user['login'])) { + $is_email_required = false; + + break; + } + } + } + $doing_level = $is_dashboard_user ? 2 : 0; + $doing = $handler->request()[$doing_level] ?? $default_route; + if (!$user || isset($handler->request()[$doing_level + 1]) || (!is_null($doing) and !array_key_exists($doing, $routes))) { + $handler->issueError(404); + + return; + } + if ($doing == '') { + $doing = $default_route; + } + $tabs = []; + foreach ($routes as $route => $label) { + $aux = str_replace('_', '-', $route); + $handler::setCond('settings_' . $aux, $doing == $aux); + if ($handler::cond('settings_' . $aux)) { + $handler::setVar('setting', $aux); + } + if ($aux == 'homepage' and !$route_homepage) { + continue; + } + $tabs[$aux] = [ + 'icon' => $icons[$route], + 'label' => $label, + 'url' => get_base_url( + ($is_dashboard_user ? ('dashboard/user/' . $user['id']) : 'settings') + . ($route == $default_route ? '' : '/' . $route) + ), + 'current' => $handler::cond('settings_' . $aux) + ]; + } + if (count($providersEnabled) == 0 || ($is_dashboard_user && Login::isAdmin() == false)) { + unset($routes['connections']); + $tabs = array_filter_array($tabs, ['connections'], 'rest'); + } + $handler::setVar('tabs', $tabs); + + if (!array_key_exists($doing, $routes)) { + $handler->issueError(404); + + return; + } + $SAFE_POST = $handler::var('safe_post'); + $is_error = false; + $is_changed = false; + $captcha_needed = false; + $input_errors = []; + $error_message = null; + $changed_email_message = null; + if ($POST !== []) { + $field_limits = 255; + foreach ($allowed_to_edit as $k) { + if (isset($POST[$k])) { + $POST[$k] = substr($POST[$k], 0, $field_limits); + } + } + switch ($doing) { + case null: + case 'account': + $checkboxes = ['upload_image_exif', 'newsletter_subscribe', 'show_nsfw_listings', 'is_private']; + foreach ($checkboxes as $k) { + if (!isset($POST[$k])) { + continue; + } + $POST[$k] = in_array($POST[$k], ['On', 1]) ? 1 : 0; + } + nullify_string($POST['image_expiration']); + $__post = []; + $__safe_post = []; + foreach (['username', 'email'] as $v) { + if (isset($POST[$v])) { + $POST[$v] = $v == 'email' ? trim($POST[$v]) : strtolower(trim($POST[$v])); + $__post[$v] = $POST[$v]; + $__safe_post[$v] = safe_html($POST[$v]); + } + } + $handler::updateVar('post', $__post); + $handler::updateVar('safe_post', $__safe_post); + if (!User::isValidUsername($POST['username'])) { + $input_errors['username'] = _s('Invalid username'); + } + if ($is_email_required and !filter_var($POST['email'], FILTER_VALIDATE_EMAIL)) { + $input_errors['email'] = _s('Invalid email'); + } + if (getSetting('enable_expirable_uploads')) { + if ($POST['image_expiration'] !== null && (!dateinterval($POST['image_expiration']) || !array_key_exists($POST['image_expiration'], Image::getAvailableExpirations()))) { + $input_errors['image_expiration'] = _s('Invalid image expiration: %s', $POST['image_expiration']); + } + } + if (getSetting('language_chooser_enable') && !array_key_exists($POST['language'], get_available_languages())) { + $POST['language'] = getSetting('default_language'); + } + if (!in_array($POST['timezone'], timezone_identifiers_list())) { + $POST['timezone'] = date_default_timezone_get(); + } + if (is_array($input_errors) && count($input_errors) > 0) { + $is_error = true; + } + if (!$is_error) { + $user_db = DB::get('users', ['username' => $POST['username'], 'email' => $POST['email']], 'OR', []); + if ($user_db) { + foreach ($user_db as $row) { + if ($row['user_id'] == $user['id']) { + continue; + } // Same guy? + if (!in_array($row['user_status'], ['valid', 'banned'])) { // Don't touch the valid and banned users + $must_delete_old_user = false; + $confirmation_db = Confirmation::get(['user_id' => $row['user_id']]); + if ($confirmation_db !== false) { + if (datetime_diff($confirmation_db['confirmation_date_gmt'], null, 'h') > 48) { + Confirmation::delete(['id' => $confirmation_db['confirmation_id']]); + $must_delete_old_user = true; + } + } else { + $must_delete_old_user = true; + } + if ($must_delete_old_user) { + DB::delete('users', ['id' => $row['user_id']]); + + continue; + } + } + if (timing_safe_compare($row['user_username'], $POST['username']) and $user['username'] !== $row['user_username']) { + $input_errors['username'] = 'Username already being used'; + } + if ( + !empty($POST['email']) && timing_safe_compare($row['user_email'], $POST['email']) && + $user['email'] !== $row['user_email'] + ) { + $input_errors['email'] = _s('Email already being used'); + } + } + if (count($input_errors) > 0) { + $is_error = true; + } + } + } + if (!$is_error && $is_email_required && !empty($POST['email']) && !timing_safe_compare($user['email'] ?? '', $POST['email'])) { + Confirmation::delete(['type' => 'account-change-email', 'user_id' => $user['id']]); + $hashed_token = generate_hashed_token((int) $user['id']); + Confirmation::insert([ + 'type' => 'account-change-email', + 'user_id' => $user['id'], + 'token_hash' => $hashed_token['hash'], + 'status' => 'active', + 'extra' => $POST['email'] + ]); + $email_confirm_link = get_public_url( + 'account/change-email-confirm/?token=' + . $hashed_token['public_token_format'] + ); + $changed_email_message = _s('An email has been sent to %s with instructions to activate this email', $SAFE_POST['email']); + global $theme_mail; + $theme_mail = [ + 'user' => $user, + 'link' => $email_confirm_link + ]; + ob_start(); + require_once PATH_PUBLIC_LEGACY_THEME . 'mails/account-change-email.php'; + $mail_body = ob_get_contents(); + ob_end_clean(); + $mail['subject'] = _s('Confirmation required at %s', getSettings()['website_name']); + $mail['message'] = $mail_body; + send_mail($POST['email'], $mail['subject'], $mail['message']); + unset($POST['email']); + } + + break; + case 'profile': + if (!preg_match('/^.{1,60}$/', $POST['name'] ?? '')) { + $input_errors['name'] = _s('Invalid name'); + } + if (!empty($POST['website'])) { + if (!is_url_web($POST['website'])) { + $input_errors['website'] = _s('Invalid website'); + } + } + if (!$handler::cond('content_manager') && getSetting('akismet')) { + $akismet = new Akismet(); + $isSpam = $akismet->isSpam($POST['bio'], $POST['name'], $user['email'], $POST['website']); + $is_error = $isSpam; + $error_message = _s('Spam detected'); + } + + break; + + case 'password': + if (!$is_dashboard_user) { + if (isset($POST['current-password'])) { + if (!Login::checkPassword($user['id'], $POST['current-password'])) { + $input_errors['current-password'] = _s('Wrong password'); + } + if ($POST['current-password'] == ($POST['new-password'] ?? null)) { + $input_errors['new-password'] = _s('Use a new password'); + $handler::updateVar('safe_post', ['current-password' => null]); + } + } + } + if (!preg_match('/' . getSetting('user_password_pattern') . '/', $POST['new-password'] ?? '')) { + $input_errors['new-password'] = _s('Invalid password'); + } + if ($POST['new-password'] !== $POST['new-password-confirm']) { + $input_errors['new-password-confirm'] = _s("Passwords don't match"); + } + + break; + + case 'security': + if (!TwoFactor::hasFor($user['id']) && sessionVar()->hasKey('two_factor_secret')) { + $twoFactor = new TwoFactor(); + $twoFactor = $twoFactor->withSecret(session()['two_factor_secret']); + sessionVar()->remove('two_factor_secret'); + if (!$twoFactor->verify($POST['two-factor-code'])) { + $input_errors['two-factor-code'] = _s('Invalid code'); + } else { + $twoFactor->insert($user['id']); + } + } + + break; + + case 'homepage': + if (!array_key_exists($doing, $routes)) { + $handler->issueError(404); + + return; + } + $allowed_to_edit = ['homepage_title_html', 'homepage_paragraph_html', 'homepage_cta_html']; + $editing_array = array_filter_array($POST, $allowed_to_edit, 'exclusion'); + $update_settings = []; + foreach ($allowed_to_edit as $k) { + if (!array_key_exists($k, Settings::get()) or Settings::get($k) == $editing_array[$k]) { + continue; + } + $update_settings[$k] = $editing_array[$k]; + } + if ($update_settings !== []) { + $db = DB::getInstance(); + $db->beginTransaction(); + $db->query('UPDATE ' . DB::getTable('settings') . ' SET setting_value = :value WHERE setting_name = :name;'); + foreach ($update_settings as $k => $v) { + $db->bind(':name', $k); + $db->bind(':value', $v); + $db->exec(); + } + if ($db->endTransaction()) { + $is_changed = true; + foreach ($update_settings as $k => $v) { + Settings::setValue($k, $v); + } + } + } + + break; + + default: + $handler->issueError(404); + + return; + + break; + } + if (is_array($input_errors) && count($input_errors) > 0) { + $is_error = true; + } + if (!$is_error) { + if (in_array($doing, [null, 'account', 'profile'])) { + foreach ($POST as $k => $v) { + if (($user[$k] ?? null) !== $v) { + $is_changed = true; + } + } + if ($is_changed) { + $editing_array = array_filter_array($POST, $allowed_to_edit, 'exclusion'); + if (!$is_dashboard_user) { + unset($editing_array['status'], $editing_array['is_admin'], $editing_array['is_manager']); + } else { + if (!in_array($editing_array['status'] ?? null, ['valid', 'banned', 'awaiting-confirmation', 'awaiting-email'])) { + unset($editing_array['status']); + } + if ($logged_user['is_manager']) { + unset($POST['email'], $editing_array['email']); + } + } + if ($logged_user['is_admin'] && isset($POST['role'])) { + $is_manager = 0; + $is_admin = 0; + switch ($POST['role']) { + case 'manager': + $is_manager = 1; + + break; + case 'admin': + $is_admin = 1; + + break; + } + if ($user['is_admin'] != $is_admin) { + $handler::setCond('admin', (bool) $is_admin); + $editing_array['is_admin'] = $is_admin; + } + if ($user['is_manager'] != $is_manager) { + $editing_array['is_manager'] = $is_manager; + } + if ($POST['role'] == 'admin') { + $editing_array['status'] = 'valid'; + } + unset($POST['role']); + } + if (empty($POST['email'])) { + unset($editing_array['email']); + } + if (User::update($user['id'], $editing_array)) { + $user = array_merge($user, $editing_array); + $handler::updateVar('safe_post', [ + 'name' => safe_html($user['name']), + ]); + } + + if (!$is_dashboard_user) { + $logged_user = User::getSingle($user['id']); + } else { + $user = User::getSingle($user['id'], 'id'); + } + $changed_message = _s('Changes have been saved.'); + } + } + if ($doing == 'password') { + if (Login::hasPassword($user['id'])) { + Login::deleteCookies('cookie', ['user_id' => $user['id']]); + Login::deleteCookies('session', ['user_id' => $user['id']]); + $is_changed = Login::changePassword((int) $user['id'], $POST['new-password']); // This inserts the session login + $changed_message = _s('Password has been changed'); + } else { + $is_changed = Login::addPassword((int) $user['id'], $POST['new-password']); + $changed_message = _s('Password has been created.'); + if (!$is_dashboard_user || $logged_user['id'] == $user['id']) { + $logged_user = Login::login($user['id']); + } + } + if (!$is_dashboard_user) { + Login::insertCookie('cookie', $user['id']); + } + $unsets = ['current-password', 'new-password', 'new-password-confirm']; + foreach ($unsets as $unset) { + $handler::updateVar('safe_post', [$unset => null]); + } + } + } else { + if (in_array($doing, ['', 'account']) && !$is_dashboard_user) { + RequestLog::insert([ + 'type' => 'account-edit', + 'result' => 'fail' + ]); + $error_message = _s('Wrong Username/Email values'); + } + } + } + if ($doing == 'connections') { + $connections = Login::getUserConnections($user['id']); + $has_password = Login::hasPassword($user['id']); + $handler::setCond('has_password', $has_password); + $handler::setVar('connections', $connections); + $handler::setVar('providers_enabled', $providersEnabled); + } + if ($doing === 'api') { + if (!ApiKey::has(intval($user['id']))) { + $apiCreated = ApiKey::insert(intval($user['id'])); + $handler::setVar('api_v1_key', $apiCreated); + } + $apiPub = ApiKey::getUserPublic(intval($user['id'])); + $handler::setVar('api_v1_public_display', $apiPub['public']); + $handler::setVar('api_v1_date_created', $apiPub['date_gmt']); + } + $hasTwoFactor = TwoFactor::hasFor($user['id']); + if ($doing === 'security' && !$hasTwoFactor) { + $twoFactor = new TwoFactor(); + $twoFactorArgs = [ + 'company' => Settings::get('website_name') . ' ' . env()['CHEVERETO_HOSTNAME'], + 'holder' => $user['username'] . '#' . $user['id_encoded'], + ]; + $qrImage = $twoFactor->getQRCodeInline(...$twoFactorArgs); + $handler::setVar('totp_qr_image', $qrImage); + sessionVar()->put('two_factor_secret', $twoFactor->secret()); + } + $pre_doctitle = [$routes[$doing]]; + $pre_doctitle[] = $is_dashboard_user + ? _s('Settings for %s', $user['username']) + : _s('Settings'); + $handler::setCond('two_factor_enabled', $hasTwoFactor); + $handler::setCond('owner', $is_owner); + $handler::setCond('error', $is_error); + $handler::setCond('changed', $is_changed); + $handler::setCond('dashboard_user', $is_dashboard_user); + $handler::setCond('email_required', $is_email_required); + $handler::setCond('captcha_needed', $captcha_needed); + $handler::setVar('content_ip', $user['registration_ip']); + $handler::setVar('pre_doctitle', implode(' - ', $pre_doctitle)); + $handler::setVar('error_message', $error_message); + $handler::setVar('input_errors', $input_errors); + $handler::setVar('changed_message', $changed_message ?? null); + $handler::setVar('changed_email_message', $changed_email_message); + $handler::setVar('user', $is_dashboard_user ? $user : $logged_user); + $handler::setVar('safe_html_user', safe_html($handler::var('user'))); + if ($doing === 'account') { + $bannedIp = IpBan::getSingle(['ip' => $handler::var('user')['registration_ip']]); + $user_list_values = [ + [ + 'label' => _s('Username'), + 'content' => '<a href="' . $handler::var('user')['url'] . '" class="btn btn-small default"><span class="icon fas fa-user-circle"></span><span class="margin-left-5">' . $handler::var('user')['username'] . '</span></a>' . ( + $handler::cond('dashboard_user') + ? (' <a class="btn btn-small default" data-confirm="' . _s("Do you really want to delete this user? This can't be undone.") . '" data-submit-fn="CHV.fn.user.delete.submit" data-ajax-deferred="CHV.fn.complete_resource_delete" data-ajax-url="' . get_base_url("json") . '"><span class="icon fas fa-trash-alt"></span><span class="phone-hide margin-left-5">' . _s('Delete user') . '</span></a>') + : '' + ) + ], + [ + 'label' => _s('User ID'), + 'content' => $handler::var('user')['id'] . ' (' . $handler::var('user')['id_encoded'] . ')' + ], + [ + 'label' => _s('Images'), + 'content' => $handler::var('user')['image_count'] + ], + [ + 'label' => _s('Albums'), + 'content' => $handler::var('user')['album_count'] + ], + [ + 'label' => _s('Register date'), + 'content' => $handler::var('user')['date'] + ], + [ + 'label' => '<span class="visibility-hidden">' . _s('Register date') . '</span>', + 'content' => $handler::var('user')['date_gmt'] . ' (GMT)' + ] + ]; + if ($handler::var('user')['registration_ip']) { + $user_list_values[] = getIpButtonsArray($bannedIp, $handler::var('user')['registration_ip']); + } + $handler::setVar('user_list_values', $user_list_values); + } +}; diff --git a/app/legacy/routes/signup.php b/app/legacy/routes/signup.php new file mode 100644 index 0000000..ce2ce7c --- /dev/null +++ b/app/legacy/routes/signup.php @@ -0,0 +1,245 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\captcha_check; +use Chevereto\Legacy\Classes\Confirmation; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\RequestLog; +use Chevereto\Legacy\Classes\StopForumSpam; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\datetime_diff; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\timing_safe_compare; +use function Chevereto\Legacy\generate_hashed_token; +use function Chevereto\Legacy\get_email_body_str; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\must_use_captcha; +use function Chevereto\Legacy\send_mail; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; + +return function (Handler $handler) { + $POST = post(); + $SAFE_POST = $handler::var('safe_post'); + if (!getSetting('enable_signups')) { + $handler->issueError(404); + + return; + } + if ($POST !== [] && !$handler::checkAuthToken(request()['auth_token'] ?? '')) { + $handler->issueError(403); + + return; + } + if ($handler->isRequestLevel(2)) { + $handler->issueError(404); + + return; + } // Allow only 1 level + if (Login::hasSignup()) { + $SAFE_POST['email'] = Login::getSignup()['email']; + redirect('account/awaiting-confirmation'); + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + if ($logged_user) { + redirect(User::getUrl($logged_user)); + } + $failed_access_requests = $handler::var('failed_access_requests'); + $is_error = false; + $input_errors = []; + $error_message = null; + $captcha_needed = $handler::cond('captcha_needed'); + if ($captcha_needed && $POST !== []) { + $captcha = captcha_check(); + if (!$captcha->is_valid) { + $is_error = true; + $error_message = _s('%s says you are a robot', 'CAPTCHA'); + } + } + $handler::setCond('show_resend_activation', false); + if ($POST !== [] && !$is_error && !Login::hasSignup()) { + $__post = []; + $__safe_post = []; + foreach (['username', 'email'] as $v) { + if (isset($POST[$v])) { + $POST[$v] = $v == 'email' ? trim($POST[$v]) : strtolower(trim($POST[$v])); + $__post[$v] = $POST[$v]; + $__safe_post[$v] = safe_html($POST[$v]); + } + } + $handler::updateVar('post', $__post); + $handler::updateVar('safe_post', $__safe_post); + if (!filter_var($POST['email'], FILTER_VALIDATE_EMAIL)) { + $input_errors['email'] = _s('Invalid email'); + } + if (!User::isValidUsername($POST['username'])) { + $input_errors['username'] = _s('Invalid username'); + } + if (!preg_match('/' . getSetting('user_password_pattern') . '/', $POST['password'] ?? '')) { + $input_errors['password'] = _s('Invalid password'); + } + if (!filter_var($POST['email'], FILTER_VALIDATE_EMAIL)) { + $input_errors['email'] = _s('Invalid email'); + } + if ($POST['signup-accept-terms-policies'] != 1) { + $input_errors['signup-accept-terms-policies'] = _s('You must agree to the terms and privacy policy'); + } + if (getSetting('user_minimum_age') > 0 && !isset($POST['minimum-age-signup'])) { + $input_errors['minimum-age-signup'] = _s('You must be at least %s years old to use this website.', getSetting('user_minimum_age')); + } + if (count($input_errors) > 0) { + $is_error = true; + } elseif (getSetting('stopforumspam')) { + $sfs = new StopForumSpam(get_client_ip(), $POST['email'], $POST['username']); + if ($sfs->isSpam()) { + $is_error = true; + $error_message = _s('Spam detected'); + } + } + if (!$is_error) { + $user_db = DB::get('users', ['username' => $POST['username'], 'email' => $POST['email']], 'OR', []); + if ($user_db !== []) { + $is_error = true; + $show_resend_activation = false; + foreach ($user_db as $row) { + if (!in_array($row['user_status'], ['valid', 'banned'])) { // Don't touch the valid and banned users + $must_delete_old_user = false; + $confirmation_db = Confirmation::get(['user_id' => $row['user_id']]); + if ($confirmation_db !== false) { + // 24x2 = 48 tic tac tic tac + if (datetime_diff($confirmation_db['confirmation_date_gmt'], null, 'h') > 48) { + Confirmation::delete(['id' => $confirmation_db['confirmation_id']]); + $must_delete_old_user = true; + } + } else { + $must_delete_old_user = true; + } + if ($must_delete_old_user) { + DB::delete('users', ['id' => $row['user_id']]); + + continue; + } + } + if (timing_safe_compare($row['user_username'], $POST['username'])) { + $input_errors['username'] = 'Username already being used'; + } + if (timing_safe_compare($row['user_email'], $POST['email'])) { + $input_errors['email'] = _s('Email already being used'); + } + if (!$show_resend_activation) { + $show_resend_activation = $row['user_status'] == 'awaiting-confirmation'; + } + } + $handler::setCond('show_resend_activation', $show_resend_activation); + } else { + $user_array = [ + 'username' => $POST['username'], + 'email' => $POST['email'], + 'timezone' => getSetting('default_timezone'), + 'language' => L10n::getLocale(), + 'status' => getSetting('require_user_email_confirmation') ? 'awaiting-confirmation' : 'valid' + ]; + + try { + $inserted_user = User::insert($user_array); + } catch (Exception $e) { + if ($e->getCode() === 666) { + $handler->issueError(403); + + return; + } elseif ($e->getCode() === 999) { + $is_error = true; + $error_message = $e->getMessage(); + } else { + throw new Exception($e, $e->getCode(), $e); + } + } + if (!$is_error) { + if ($inserted_user !== 0) { + $insert_password = Login::addPassword($inserted_user, $POST['password']); + } + if (!$inserted_user || !$insert_password) { + throw new Exception("Can't insert user to the DB", 400); + } elseif (getSetting('require_user_email_confirmation')) { + $hashed_token = generate_hashed_token($inserted_user); + Confirmation::insert([ + 'user_id' => $inserted_user, + 'type' => 'account-activate', + 'token_hash' => $hashed_token['hash'], + 'status' => 'active' + ]); + $activation_link = get_public_url( + 'account/activate/?token=' + . $hashed_token['public_token_format'] + ); + global $theme_mail; + $theme_mail = [ + 'user' => $user_array, + 'link' => $activation_link + ]; + $mail['subject'] = _s('Confirmation required at %s', getSettings()['website_name']); + $mail['message'] = get_email_body_str('mails/account-confirm'); + if (send_mail($POST['email'], $mail['subject'], $mail['message'])) { + $is_process_done = true; + } + } else { + $user = User::getSingle($inserted_user, 'id'); + $logged_user = Login::login($user['id']); + Login::insertCookie('cookie', $inserted_user); + + try { + global $theme_mail; + $theme_mail = [ + 'user' => $logged_user, + 'link' => $logged_user['url'] + ]; + + $mail['subject'] = _s('Welcome to %s', getSetting('website_name')); + $mail['message'] = get_email_body_str('mails/account-welcome'); + send_mail($logged_user['email'], $mail['subject'], $mail['message']); + } catch (Exception $e) { + } // Silence + redirect($user['url']); + } + Login::setSignup([ + 'status' => 'awaiting-confirmation', + 'email' => $SAFE_POST['email'] + ]); + redirect('account/awaiting-confirmation'); + } + } + } + if ($is_error) { + RequestLog::insert([ + 'type' => 'signup', + 'result' => 'fail' + ]); + $error_message = $error_message ?? _s('Check the errors in the form to continue.'); + if (getSettings()['captcha'] && must_use_captcha($failed_access_requests['day'] + 1)) { + $captcha_needed = true; + } + } + } + $handler::setCond('error', $is_error); + $handler::setCond('captcha_needed', $captcha_needed); + $handler::setVar('pre_doctitle', _s('Create account')); + $handler::setVar('error', $error_message); + $handler::setVar('input_errors', $input_errors); + $handler::setVar('signup_email', $SAFE_POST['email'] ?? null); +}; diff --git a/app/legacy/routes/update.php b/app/legacy/routes/update.php new file mode 100644 index 0000000..f647569 --- /dev/null +++ b/app/legacy/routes/update.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Vars\env; + +return function (Handler $handler) { + if (!(bool) env()['CHEVERETO_ENABLE_UPDATE_HTTP'] + || Settings::get('chevereto_version_installed') === null + ) { + $handler->issueError(404); + + return; + } + if (!Login::isAdmin()) { + $handler->issueError(403); + + return; + } + require_once PATH_APP_LEGACY_INSTALL . 'installer.php'; +}; diff --git a/app/legacy/routes/upload.php b/app/legacy/routes/upload.php new file mode 100644 index 0000000..9fd7504 --- /dev/null +++ b/app/legacy/routes/upload.php @@ -0,0 +1,53 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Album; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\get; + +return function (Handler $handler) { + if (!$handler::cond('upload_allowed')) { + if (Login::isLoggedUser()) { + $handler->issueError(403); + + return; + } else { + redirect('login'); + } + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + $album = null; + if (isset(get()['toAlbum'])) { + $toAlbumId = decodeID(get()['toAlbum']); + $album = Album::getSingle(id: $toAlbumId, requester: $logged_user); + $is_owner = isset($album['user']['id']) && $album['user']['id'] == $logged_user['id']; + if (!$is_owner) { + $album = []; + } + } + $handler::setVar('album', $album); + $handler::setVar('pre_doctitle', _s('Upload')); + if (getSetting('homepage_style') == 'route_upload') { + if ($handler->requestArray()[0] === '/') { + $handler::setVar('doctitle', Settings::get('website_doctitle')); + $handler::setVar('pre_doctitle', Settings::get('website_name')); + } + $handler::setVar('canonical', get_base_url('')); + } +}; diff --git a/app/legacy/routes/user.php b/app/legacy/routes/user.php new file mode 100644 index 0000000..92ecbed --- /dev/null +++ b/app/legacy/routes/user.php @@ -0,0 +1,423 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevere\String\ModifyString; +use Chevereto\Legacy\Classes\Follow; +use Chevereto\Legacy\Classes\Listing; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\get_current_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\get_share_links; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\redirectIfRouting; +use function Chevereto\Vars\env; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; + +return function (Handler $handler) { + $currentUrl = get_current_url(); + redirectIfRouting('user', $handler->requestArray()[0]); + $userIndex = (getSetting('root_route') === 'user' + || getSetting('website_mode') == 'personal') + ? 0 + : 1; + if ($handler->isRequestLevel($handler::cond('mapped_route') ? 4 : 5)) { + $handler->issueError(404); + + return; + } + $request_handle = $userIndex === 0 + ? $handler->requestArray() + : $handler->request(); + if (getSetting('website_mode') == 'personal' + && getSetting('website_mode_personal_routing') == '/' + && in_array($request_handle[0], ['albums', 'search', 'following', 'followers']) + ) { + $personal_mode_user = User::getSingle(getSetting('website_mode_personal_uid')); + if ($personal_mode_user !== []) { + $request_handle = [ + 0 => $personal_mode_user['username'], + 1 => $request_handle[0] + ]; + } + } + if ($request_handle[0] === getSetting('route_user') && getSetting('root_route') !== 'user') { + array_shift($request_handle); + } + $username = $request_handle[0] ?? null; + if ($handler::cond('mapped_route') && $handler::mappedArgs() !== []) { + $mapped_args = $handler::mappedArgs(); + } + if (isset($mapped_args['id'])) { + $id = $handler::mappedArgs()['id']; + } + if (!isset($username) && isset($id)) { + $handler->issueError(404); + + return; + } + $logged_user = Login::getUser(); + User::statusRedirect($logged_user['status'] ?? null); + $userHandle = isset($id) ? 'id' : 'username'; + $user = $personal_mode_user ?? User::getSingle($$userHandle, $userHandle); + $is_owner = false; + if (isset($user['id'], $logged_user['id'])) { + $is_owner = $user['id'] == $logged_user['id']; + } + if (!$user + || ($user['status'] ?? '') !== 'valid' + && ($logged_user === [] || !$handler::cond('content_manager'))) { + $handler->issueError(404); + + return; + } + if (!$is_owner && !$handler::cond('content_manager') && (bool) $user['is_private']) { + $handler->issueError(404); + + return; + } + if (!(bool) env()['CHEVERETO_ENABLE_USERS'] && $user['id'] != getSetting('website_mode_personal_uid')) { + $handler->issueError(404); + + return; + } + if (getSetting('website_mode') == 'personal' && getSetting('website_mode_personal_routing') === '/') { + if (str_starts_with($currentUrl, '/' . $user['username'])) { + $redirectTo = (new ModifyString($currentUrl)) + ->withReplaceFirst('/' . $user['username'], '') + ->__toString(); + redirect($redirectTo); + } + } + $pre_doctitle = ''; + $user_routes = []; + $user_views = [ + 'images' => [ + 'title' => _s("Images by %s"), + 'title_short' => _s("Images"), + ], + 'albums' => [ + 'title' => _s("Albums by %s"), + 'title_short' => _s("Albums"), + ], + 'search' => [ + 'title' => _s('Search'), + 'title_short' => _s('Search'), + ], + ]; + foreach (array_keys($user_views) as $k) { // Need to use $k => $v to fetch array key easily + $user_routes[] = $k == 'images' ? $username : $k; + } + if (getSetting('enable_likes')) { + $user_views['liked'] = [ + 'title' => _s("Liked by %s"), + 'title_short' => _s("Liked"), + ]; + $user_routes[] = 'liked'; + } + if (getSetting('enable_followers')) { + $user_views['following'] = [ + 'title' => _s("People followed by %s"), + 'title_short' => _s('Following'), + ]; + $user_views['followers'] = [ + 'title' => _s("People following %s"), + 'title_short' => _s('Followers'), + ]; + $user_routes[] = 'following'; + $user_routes[] = 'followers'; + } + foreach (array_keys($user_views) as $k) { + $user_views[$k]['current'] = false; + } + if (isset($request_handle[1])) { + if ($request_handle[1] == 'search') { + if (!$handler::cond('search_enabled')) { + $handler->issueError(404); + + return; + } + if (!(request()['q'] ?? false)) { + redirect($user['url']); + } + $user['search'] = [ + 'type' => empty(request()['list']) ? 'images' : request()['list'], + 'q' => request()['q'], + 'd' => strlen(request()['q']) >= 25 ? (substr(request()['q'], 0, 22) . '...') : request()['q'] + ]; + } + if ($request_handle[1] !== server()['QUERY_STRING'] && !in_array($request_handle[1], $user_routes)) { + $handler->issueError(404); + + return; + } + if ($request_handle[1] == 'search') { + if (!server()['QUERY_STRING']) { + $handler->issueError(404); + + return; + } + if (!empty(request()['list']) && !in_array(request()['list'], ['images', 'albums', 'users'])) { + $handler->issueError(404); + + return; + } + } + if (array_key_exists($request_handle[1], $user_views)) { + $user_views[$request_handle[1]]['current'] = true; + } + } else { + $user_views['images']['current'] = true; + } + $user['followed'] = false; + $show_follow_button = false; + if (getSetting('website_mode') != 'personal') { + $user['followed'] = false; + $show_follow_button = false; + if ($logged_user !== []) { + $user['followed'] = ($user['id'] == $logged_user['id']) + ? false + : Follow::doesFollow( + (int) $logged_user['id'], + (int) $user['id'] + ); + $show_follow_button = $user['id'] != $logged_user['id'] + && $logged_user['is_private'] == 0; + } + } + $handler::setCond('show_follow_button', $show_follow_button); + $base_user_url = $user['url']; + $type = 'images'; + $current_view = 'images'; + $tools = false; + foreach ($user_views as $k => $v) { + $handler::setCond('user_' . $k, (bool) $v['current']); + if ($v['current']) { + $current_view = $k; + if ($current_view !== 'images') { + $base_user_url .= $k; + } + } + } + $currentKey = 0; + $safe_html_user = safe_html($user); + switch ($current_view) { + case 'images': + case 'liked': + $type = "images"; + $tools = $is_owner || $handler::cond('content_manager'); + if ($current_view == 'liked') { + $tools_available = $handler::cond('content_manager') ? ['delete', 'category', 'flag'] : ['embed']; + } + + break; + case 'following': + case 'followers': + $type = 'users'; + $tools = false; + $params_hidden = [$current_view . '_user_id' => $user['id_encoded']]; + $params_remove_keys = ['list']; + + break; + case 'albums': + $icon = 'fas fa-images'; + $type = "albums"; + $tools = true; + + break; + case 'search': + $icon = 'fas fa-search'; + $type = $user['search']['type']; + $currentKey = (isset(request()['list']) && request()['list'] == 'images') || !isset(request()['list']) + ? 0 : 1; + $tabs = [ + [ + 'icon' => 'fas fa-image', + 'type' => 'images', + 'label' => _n('Image', 'Images', 2), + 'id' => 'list-user-images', + 'current' => $currentKey === 0, + ], + [ + 'icon' => 'fas fa-images', + 'type' => 'albums', + 'label' => _n('Album', 'Albums', 2), + 'id' => 'list-user-albums', + 'current' => $currentKey === 1, + ] + ]; + foreach ($tabs as $k => $v) { + $params = [ + 'list' => $v['type'], + 'q' => $safe_html_user['search']['q'], + 'sort' => 'date_desc', + 'page' => '1', + ]; + $tabs[$k]['params'] = http_build_query($params); + $tabs[$k]['url'] = $base_user_url . '/?' . $tabs[$k]['params']; + } + + break; + } + $icon = 'fas fa-id-card'; + $icon = [ + 'images' => 'fas fa-id-card', + 'albums' => 'fas fa-images', + 'liked' => 'fas fa-heart', + 'following' => 'fas fa-rss', + 'followers' => 'fas fa-users', + 'search' => 'fas fa-search', + ][$current_view]; + if ($user_views['albums']['current']) { + $params_hidden['list'] = 'albums'; + } + $params_hidden[$current_view == 'liked' ? 'like_user_id' : 'userid'] = $user['id_encoded']; + $params_hidden['from'] = 'user'; + if (!isset($tabs)) { + $tabs = Listing::getTabs([ + 'listing' => $type, + 'basename' => $base_user_url, + 'tools' => $tools, + 'tools_available' => $tools_available ?? null, + 'params_hidden' => $params_hidden, + 'params_remove_keys' => $params_remove_keys ?? null, + ], [], true); + $currentKey = $tabs['currentKey']; + $tabs = $tabs['tabs']; + } + foreach ($tabs as $k => &$v) { + if (!array_key_exists('params_hidden', $tabs)) { + $tabs[$k]['params_hidden'] = http_build_query($params_hidden); + } + $v['disabled'] = $user[($user_views['images']['current'] ? 'image' : 'album') . '_count'] == 0 ? !$v['current'] : false; + } + $listing = new Listing(); + if ($user["image_count"] > 0 + || $user["album_count"] > 0 + || in_array($current_view, ['liked', 'following', 'followers'])) { + $getParams = Listing::getParams(request()); + Listing::fillCurrentTabPeekSeek($tabs, $currentKey, $getParams); + $handler::setVar('list_params', $getParams); + if ($getParams['sort'][0] == 'likes' && !getSetting('enable_likes')) { + $handler->issueError(404); + + return; + } + $tpl = $type; + switch ($current_view) { + case 'liked': + $where = 'WHERE like_user_id=:user_id'; + $tpl = 'liked'; + + break; + case 'following': + $where = 'WHERE follow_user_id=:user_id'; + + break; + case 'followers': + $where = 'WHERE follow_followed_user_id=:user_id'; + + break; + default: + $where = $type == 'images' + ? 'WHERE image_user_id=:user_id' + : 'WHERE album_user_id=:user_id AND album_parent_id IS NULL'; + + break; + } + $output_tpl = 'user/' . $tpl; + if ($user_views['search']['current']) { + $type = $user["search"]["type"]; + $where = $user["search"]["type"] == "images" ? "WHERE image_user_id=:user_id AND MATCH(image_name, image_title, image_description, image_original_filename) AGAINST(:q)" : "WHERE album_user_id=:user_id AND MATCH(album_name, album_description) AGAINST(:q)"; + } + $show_user_items_editor = Login::isLoggedUser(); + if ($type == 'albums') { + $show_user_items_editor = false; + } + + try { + $listing = new Listing(); + $listing->setType($type); // images | users | albums + if (isset($getParams['reverse'])) { + $listing->setReverse($getParams['reverse']); + } + if (isset($getParams['seek'])) { + $listing->setSeek($getParams['seek']); + } + $listing->setOffset($getParams['offset']); + $listing->setLimit($getParams['limit']); // how many results? + $listing->setSortType($getParams['sort'][0]); // date | size | views | likes + $listing->setSortOrder($getParams['sort'][1]); // asc | desc + $listing->setWhere($where); + $listing->setOwner((int) $user["id"]); + $listing->setRequester(Login::getUser()); + if ($is_owner || $handler::cond('content_manager')) { + if ($type == 'users') { + $listing->setTools(false); + $show_user_items_editor = false; + } elseif ($current_view == 'liked') { + $listing->setTools( + $user['id'] == $logged_user['id'] + ? ['embed'] + : false + ); + } else { + $listing->setTools(true); + } + } + $listing->bind(":user_id", $user["id"]); + if ($user_views['search']['current'] && !empty($user['search']['q'])) { + $listing->bind(':q', $user['search']['q']); + } + $listing->setOutputTpl($output_tpl); + $listing->exec(); + } catch (Exception $e) { + } // Silence to avoid wrong input queries + } + $title = sprintf($user_views[$current_view]['title'], $user['name_short_html']); + $title_short = sprintf($user_views[$current_view]['title_short'], $user['firstname_html']); + if ($safe_html_user['search']['d'] ?? false) { + $title = _s('Search results for %s', '<em><b>' . $user['search']['d'] . '</b></em>'); + $pre_doctitle .= $user['search']['d'] . ' - '; + } + $pre_doctitle .= sprintf($user_views[$current_view]['title'], $user['name_html']); + if (getSetting('website_mode') == 'community' || $user['id'] !== getSetting('website_mode_personal_uid')) { + $pre_doctitle .= ' (' . $user['username'] . ')'; + } + $handler::setVar('pre_doctitle', $pre_doctitle); + $handler::setCond('owner', (bool) $is_owner); + $handler::setCond('show_user_items_editor', $show_user_items_editor ?? false); + $handler::setVar('user', $user); + $handler::setVar('safe_html_user', $safe_html_user); + $handler::setVar('title', $title); + $handler::setVar('title_short', $title_short); + $handler::setVar('tabs', $tabs); + $handler::setVar('listing', $listing); + $handler::setVar('icon', $icon); + if ($user_views['albums']['current']) { + $meta_description = _s('%n (%u) albums on %w'); + } elseif ($user['bio'] ?? false) { + $meta_description = $safe_html_user['bio']; + } else { + $meta_description = _s('%n (%u) on %w'); + } + $handler::setVar('meta_description', strtr($meta_description, ['%n' => $user['name'], '%u' => $user['username'], '%w' => getSetting('website_name')])); + if ($handler::cond('content_manager') || $is_owner) { + $handler::setVar('user_items_editor', [ + "user_albums" => User::getAlbums($user), + "type" => $user_views['albums']['current'] ? "albums" : "images" + ]); + } + $handler::setVar('share_links_array', get_share_links()); +}; diff --git a/app/phpstan-bootstrap.php b/app/phpstan-bootstrap.php new file mode 100644 index 0000000..c714b40 --- /dev/null +++ b/app/phpstan-bootstrap.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +const ACCESS = 'web'; +const APP_NAME = 'chevereto'; +const CHV_PATH_IMAGES = '/path/'; +const HTTP_APP_PROTOCOL = 'http'; +const IMAGE_FORMATS_FAILING = []; +const PATH_APP = '/path/'; +const PATH_APP_CACHE = '/path/'; +const PATH_APP_CONTENT = '/path/'; +const PATH_APP_LANGUAGES = '/path/'; +const PATH_APP_LEGACY = '/path/'; +const PATH_APP_LEGACY_INSTALL = '/path/'; +const PATH_APP_LEGACY_ROUTES = '/path/'; +const PATH_APP_LEGACY_ROUTES_OVERRIDES = '/path/'; +const PATH_PUBLIC = '/path/'; +const PATH_PUBLIC_CONTENT = '/path/'; +const PATH_PUBLIC_CONTENT_IMAGES_SYSTEM = '/path/'; +const PATH_PUBLIC_CONTENT_IMAGES_USERS = '/path/'; +const PATH_PUBLIC_CONTENT_LEGACY_SYSTEM = '/path/'; +const PATH_PUBLIC_CONTENT_LEGACY_THEMES = '/path/'; +const PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB = '/path/'; +const PATH_PUBLIC_CONTENT_PAGES = '/path/'; +const PATH_PUBLIC_LEGACY_THEME = '/path/'; +const REPL = false; +const TIME_EXECUTION_START = 0; +const URL_APP_PUBLIC = 'https://chevereto.com/'; +const URL_APP_PUBLIC_STATIC = 'https://chevereto.com/'; +const URL_APP_THEME = 'https://chevereto.com/'; diff --git a/app/phpstan.neon b/app/phpstan.neon new file mode 100644 index 0000000..e01858e --- /dev/null +++ b/app/phpstan.neon @@ -0,0 +1,12 @@ +parameters: + level: 5 + bootstrapFiles: + - phpstan-bootstrap.php + paths: + - bin + - src/Legacy + - src/Encryption + - ../content/ + excludePaths: + - src/Legacy/Classes/Akismet.php + - src/Legacy/G/Gettext.php diff --git a/app/phpunit-report.xml b/app/phpunit-report.xml new file mode 100644 index 0000000..055eb93 --- /dev/null +++ b/app/phpunit-report.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + colors="true" + verbose="true" + cacheResult="false" + failOnRisky="true" + failOnWarning="true" + testdox="true"> + <php> + <const name="PHPUNIT_CHEVERETO_TESTSUITE" value="true"/> + </php> + <testsuites> + <testsuite name="Chevereto unit tests"> + <directory suffix="Test.php">tests/Unit/</directory> + </testsuite> + </testsuites> + <coverage cacheDirectory=".phpunit.cache/code-coverage" processUncoveredFiles="true" ignoreDeprecatedCodeUnits="true"> + <include> + <directory suffix=".php">src/</directory> + </include> + <exclude> + <directory suffix=".php">src/Components/Legacy/</directory> + <directory suffix=".php">src/Components/Legacy/**/</directory> + <directory suffix="workflow.php">src/</directory> + </exclude> + <report> + <clover outputFile="build/coverage/clover.xml"/> + <html outputDirectory="build/coverage/html" lowUpperBound="50" highLowerBound="90"/> + </report> + </coverage> +</phpunit> \ No newline at end of file diff --git a/app/phpunit.xml b/app/phpunit.xml new file mode 100644 index 0000000..a56f35d --- /dev/null +++ b/app/phpunit.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + colors="true" + verbose="true" + stderr="true" + cacheResult="false" + failOnRisky="true" + failOnWarning="true" + testdox="false" + processIsolation="true"> + <php> + <const name="PHPUNIT_CHEVERETO_TESTSUITE" value="true"/> + </php> + <testsuites> + <testsuite name="Chevereto integration tests"> + <directory suffix="Test.php">tests/Integration</directory> + </testsuite> + </testsuites> + <coverage cacheDirectory=".phpunit.cache/code-coverage" processUncoveredFiles="true" ignoreDeprecatedCodeUnits="true"> + <include> + <directory suffix=".php">src/</directory> + </include> + <exclude> + <directory suffix=".php">src/Components/Legacy/</directory> + <directory suffix=".php">src/Components/Legacy/**/</directory> + <directory suffix="workflow.php">src/</directory> + </exclude> + <report> + <clover outputFile="build/coverage/clover.xml"/> + <html outputDirectory="build/coverage/html" lowUpperBound="50" highLowerBound="90"/> + </report> + </coverage> +</phpunit> \ No newline at end of file diff --git a/app/rector.php b/app/rector.php new file mode 100644 index 0000000..f17612f --- /dev/null +++ b/app/rector.php @@ -0,0 +1,35 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +use Rector\Core\Configuration\Option; +use Rector\Core\ValueObject\PhpVersion; +use Rector\Php74\Rector\Property\TypedPropertyRector; +use Rector\Set\ValueObject\SetList; +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; + +return static function (ContainerConfigurator $containerConfigurator): void { + // get parameters + $parameters = $containerConfigurator->parameters(); + $parameters->set(Option::PATHS, [ + __DIR__ . '/app' + ]); + + // Define what rule sets will be applied + $containerConfigurator->import(SetList::DEAD_CODE); + $containerConfigurator->import(SetList::PHP_80); + $parameters->set(Option::PHP_VERSION_FEATURES, PhpVersion::PHP_81); + // get services (needed for register a single rule) + // $services = $containerConfigurator->services(); + + // register a single rule + // $services->set(TypedPropertyRector::class); +}; diff --git a/app/routing/admin.api-v4.php b/app/routing/admin.api-v4.php new file mode 100644 index 0000000..092d468 --- /dev/null +++ b/app/routing/admin.api-v4.php @@ -0,0 +1,121 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Router\route; +use function Chevere\Router\routes; +use Chevereto\Controllers\Api\V4\Ban\Ip\BanIpDeleteController; +use Chevereto\Controllers\Api\V4\Ban\Ip\BanIpPatchController; +use Chevereto\Controllers\Api\V4\Ban\Ip\BanIpPostController; +use Chevereto\Controllers\Api\V4\Category\CategoryPostController; +use Chevereto\Controllers\Api\V4\Image\Bulk\ImageBulkPatchController; +use Chevereto\Controllers\Api\V4\Stat\Rebuild\StatRebuildPostController; +use Chevereto\Controllers\Api\V4\Storage\Migrate\StorageMigratePostController; +use Chevereto\Controllers\Api\V4\Storage\Stat\Regen\StorageStatRegenPostController; +use Chevereto\Controllers\Api\V4\Storage\StoragePostController; +use Chevereto\Controllers\Api\V4\Tool\Id\Decode\ToolDecodeIdGetController; +use Chevereto\Controllers\Api\V4\Tool\Id\Encode\ToolEncodeIdGetController; +use Chevereto\Controllers\Api\V4\Tool\Probe\Email\ToolProbeEmailPostController; +use Chevereto\Controllers\Api\V4\User\Export\UserExportGetController; +use Chevereto\Controllers\Api\V4\User\UserGetController; +use Chevereto\Controllers\Api\V4\User\UserPostController; + +$prefix = '/api/4/admin/'; + +return routes( + route( + path: $prefix . 'bans/ip/', + POST: new BanIpPostController(), + ), + route( + path: $prefix . 'bans/ip/{ip}/', + DELETE: new BanIpDeleteController(), + PATCH: new BanIpPatchController(), + ), + route( + path: $prefix . 'categories/', + POST: new CategoryPostController(), + ), + route( + path: $prefix . 'categories/{id}/', + // DELETE: , + // PATCH: , + ), + route( + path: $prefix . 'images/bulk/approve/', + PATCH: new ImageBulkPatchController(), + ), + route( + path: $prefix . 'imports/', + // POST: , + ), + route( + path: $prefix . 'imports/{id}/', + // DELETE: , + // GET: , + // PATCH: , + ), + route( + path: $prefix . 'imports/{id}/process/', + // POST: , + ), + route( + path: $prefix . 'imports/{id}/reset/', + // POST: , + ), + route( + path: $prefix . 'imports/{id}/resume/', + // POST: , + ), + route( + path: $prefix . 'stats/rebuild/', + POST: new StatRebuildPostController(), + ), + route( + path: $prefix . 'storages/', + POST: new StoragePostController(), + ), + route( + path: $prefix . 'storages/{id}/', + // PATCH: , + ), + route( + path: $prefix . 'storages/{id}/migrate/', + POST: new StorageMigratePostController(), + ), + route( + path: $prefix . 'storages/{id}/stats/regen/', + POST: new StorageStatRegenPostController(), + ), + route( + path: $prefix . 'tools/id/{id}/decode/', + GET: new ToolDecodeIdGetController(), + ), + route( + path: $prefix . 'tools/id/{id}/encode/', + GET: new ToolEncodeIdGetController(), + ), + route( + path: $prefix . 'tools/probe/email/', + POST: new ToolProbeEmailPostController(), + ), + route( + path: $prefix . 'users/', + POST: new UserPostController(), + ), + route( + path: $prefix . 'users/{id}/', + GET: new UserGetController(), + ), + route( + path: $prefix . 'users/{id}/export/', + GET: new UserExportGetController(), + ), +); diff --git a/app/routing/admin.web.php b/app/routing/admin.web.php new file mode 100644 index 0000000..a8335de --- /dev/null +++ b/app/routing/admin.web.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function App\Controllers\legacyController; +use function Chevere\Router\route; +use function Chevere\Router\routes; + +return routes( + route( + name: 'dashboard', + path: '/dashboard/', + GET: legacyController('route.dashboard.php'), + POST: legacyController('route.dashboard.php'), + ), + route( + name: 'importer-jobs', + path: '/importer-jobs/', + GET: legacyController('route.importer-jobs.php'), + ), + route( + name: 'install', + path: '/install/', + GET: legacyController('route.install.php'), + POST: legacyController('route.install.php'), + ), + route( + name: 'update', + path: '/update/', + POST: legacyController('route.update.php'), + ), +); diff --git a/app/routing/user.api-v1.php b/app/routing/user.api-v1.php new file mode 100644 index 0000000..42fcae6 --- /dev/null +++ b/app/routing/user.api-v1.php @@ -0,0 +1,21 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevere\Router\route; +use function Chevere\Router\routes; +use Chevereto\Controllers\Api\V1\Upload\UploadPostController; + +return routes( + route( + path: '/api/1/upload/', + POST: new UploadPostController() + ), +); diff --git a/app/routing/user.api-v4.php b/app/routing/user.api-v4.php new file mode 100644 index 0000000..9d481ae --- /dev/null +++ b/app/routing/user.api-v4.php @@ -0,0 +1,127 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +use function Chevere\Router\route; +use function Chevere\Router\routes; +use Chevereto\Controllers\Api\V4\Album\AlbumDeleteController; +use Chevereto\Controllers\Api\V4\Album\AlbumGetController; +use Chevereto\Controllers\Api\V4\Album\AlbumPatchController; +use Chevereto\Controllers\Api\V4\Album\AlbumPostController; +use Chevereto\Controllers\Api\V4\Album\Like\AlbumLikeDeleteController; +use Chevereto\Controllers\Api\V4\Album\Like\AlbumLikePostController; +use Chevereto\Controllers\Api\V4\Image\Bulk\ImageBulkPatchController; +use Chevereto\Controllers\Api\V4\Image\ImageGetController; +use Chevereto\Controllers\Api\V4\Image\ImagePatchController; +use Chevereto\Controllers\Api\V4\Image\ImagePostController; +use Chevereto\Controllers\Api\V4\Image\Like\ImageLikeDeleteController; +use Chevereto\Controllers\Api\V4\Image\Like\ImageLikePostController; +use Chevereto\Controllers\Api\V4\User\Asset\Avatar\UserAssetAvatarDeleteController; +use Chevereto\Controllers\Api\V4\User\Asset\Avatar\UserAssetAvatarPostController; +use Chevereto\Controllers\Api\V4\User\Asset\Background\UserAssetBackgroundDeleteController; +use Chevereto\Controllers\Api\V4\User\Asset\Background\UserAssetBackgroundPostController; +use Chevereto\Controllers\Api\V4\User\Follow\UserFollowDeleteController; +use Chevereto\Controllers\Api\V4\User\Follow\UserFollowPostController; +use Chevereto\Controllers\Api\V4\User\Setting\UserSettingPatchController; + +$prefix = '/api/4/user/'; + +return routes( + route( + path: $prefix . 'account/notifications/social/', + // GET: , + ), + route( + path: $prefix . 'account/notifications/social/{id}/', + // PATCH: , + ), + route( + path: $prefix . 'account/settings/', + PATCH: new UserSettingPatchController(), + ), + route( + path: $prefix . 'account/login/{service}/', + // DELETE: , + ), + route( + path: $prefix . 'albums/', + POST: new AlbumPostController(), + ), + route( + path: $prefix . 'albums/{id}/', + DELETE: new AlbumDeleteController(), + GET: new AlbumGetController(), + PATCH: new AlbumPatchController(), + ), + route( + path: $prefix . 'albums/{id}/contents/', + // GET: , + ), + route( + path: $prefix . 'albums/{id}/like/', + DELETE: new AlbumLikeDeleteController(), + POST: new AlbumLikePostController(), + ), + route( + path: $prefix . 'albums/bulk/', + // DELETE: , + ), + route( + path: $prefix . 'albums/bulk/parent/', + // PATCH: , + ), + route( + path: $prefix . 'albums/list/', + // GET: + ), + route( + path: $prefix . 'images/', + POST: new ImagePostController(), + ), + route( + path: $prefix . 'images/{id}/', + // DELETE: , + GET: new ImageGetController(), + PATCH: new ImagePatchController(), + ), + route( + path: $prefix . 'images/{id}/like/', + DELETE: new ImageLikeDeleteController(), + POST: new ImageLikePostController(), + ), + route( + path: $prefix . 'images/bulk/', + PATCH: new ImageBulkPatchController(), + ), + route( + path: $prefix . 'images/list/', + // GET: + ), + route( + path: $prefix . 'user/{username}/assets/avatar/', + DELETE: new UserAssetAvatarDeleteController(), + POST: new UserAssetAvatarPostController() + ), + route( + path: $prefix . 'user/{username}/assets/background/', + DELETE: new UserAssetBackgroundDeleteController(), + POST: new UserAssetBackgroundPostController() + ), + route( + path: $prefix . 'users/{username}/follow/', + DELETE: new UserFollowDeleteController(), + POST: new UserFollowPostController(), + ), + route( + path: $prefix . 'users/list/', + // GET:, + ), +); diff --git a/app/routing/user.web.php b/app/routing/user.web.php new file mode 100644 index 0000000..46dce2e --- /dev/null +++ b/app/routing/user.web.php @@ -0,0 +1,127 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function App\Controllers\legacyController; +use function Chevere\Router\route; +use function Chevere\Router\routes; + +return routes( + route( + name: 'index', + path: '/', + ), + route( + name: 'account', + path: '/account/', + GET: legacyController('account.php'), + POST: legacyController('account.php'), + ), + route( + name: 'album', + path: '/album/', + GET: legacyController('album.php'), + POST: legacyController('album.php'), + ), + route( + name: 'category', + path: '/category/', + GET: legacyController('category.php'), + ), + route( + name: 'connect', + path: '/connect/', + GET: legacyController('connect.php'), + ), + route( + name: 'explore', + path: '/explore/', + GET: legacyController('explore.php'), + ), + route( + name: 'following', + path: '/following/', + GET: legacyController('following.php'), + ), + route( + name: 'image', + path: '/image/', + GET: legacyController('image.php'), + ), + route( + name: 'login', + path: '/login/', + GET: legacyController('login.php'), + POST: legacyController('login.php'), + ), + route( + name: 'logout', + path: '/logout/', + GET: legacyController('logout.php'), + ), + route( + name: 'moderate', + path: '/moderate/', + GET: legacyController('moderate.php'), + ), + route( + name: 'oembed', + path: '/oembed/', + GET: legacyController('oembed.php'), + ), + route( + name: 'page', + path: '/page/', + GET: legacyController('page.php'), + ), + route( + name: 'plugin', + path: '/plugin/', + GET: legacyController('plugin.php'), + ), + route( + name: 'captcha-verify', + path: '/captcha-verify/', + GET: legacyController('captcha-verify.php'), + ), + route( + name: 'redirect', + path: '/redirect/', + GET: legacyController('redirect.php'), + ), + route( + name: 'search', + path: '/search/', + GET: legacyController('search.php'), + POST: legacyController('search.php'), + ), + route( + name: 'settings', + path: '/settings/', + GET: legacyController('settings.php'), + POST: legacyController('settings.php'), + ), + route( + name: 'signup', + path: '/signup/', + GET: legacyController('signup.php'), + POST: legacyController('signup.php'), + ), + route( + name: 'upload', + path: '/upload/', + GET: legacyController('upload.php'), + ), + route( + name: 'user', + path: '/user/', + GET: legacyController('user.php'), + ), +); diff --git a/app/schemas/mysql-5/albums.sql b/app/schemas/mysql-5/albums.sql new file mode 100644 index 0000000..833a86c --- /dev/null +++ b/app/schemas/mysql-5/albums.sql @@ -0,0 +1,26 @@ +DROP TABLE IF EXISTS `%table_prefix%albums`; +CREATE TABLE `%table_prefix%albums` ( + `album_id` bigint(32) NOT NULL AUTO_INCREMENT, + `album_name` varchar(100) NOT NULL, + `album_user_id` bigint(32) DEFAULT NULL, + `album_date` datetime NOT NULL, + `album_date_gmt` datetime NOT NULL, + `album_creation_ip` varchar(255) NOT NULL, + `album_privacy` enum('public','password','private','private_but_link','custom') DEFAULT 'public', + `album_privacy_extra` mediumtext, + `album_password` mediumtext, + `album_image_count` bigint(32) NOT NULL DEFAULT '0', + `album_description` mediumtext, + `album_likes` bigint(32) NOT NULL DEFAULT '0', + `album_views` bigint(32) NOT NULL DEFAULT '0', + `album_cover_id` bigint(32) DEFAULT NULL, + `album_parent_id` bigint(32) DEFAULT NULL, + PRIMARY KEY (`album_id`), + KEY `album_name` (`album_name`), + KEY `album_user_id` (`album_user_id`), + KEY `album_date_gmt` (`album_date_gmt`), + KEY `album_privacy` (`album_privacy`), + KEY `album_image_count` (`album_image_count`), + KEY `album_creation_ip` (`album_creation_ip`), + FULLTEXT KEY `searchindex` (`album_name`,`album_description`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/api_keys.sql b/app/schemas/mysql-5/api_keys.sql new file mode 100644 index 0000000..b0a83c1 --- /dev/null +++ b/app/schemas/mysql-5/api_keys.sql @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS `%table_prefix%api_keys`; +CREATE TABLE `%table_prefix%api_keys` ( + `api_key_id` bigint(32) NOT NULL AUTO_INCREMENT, + `api_key_user_id` bigint(32) DEFAULT NULL, + `api_key_name` varchar(100) DEFAULT NULL, + `api_key_date_gmt` datetime NOT NULL, + `api_key_hash` mediumtext NOT NULL, + PRIMARY KEY (`api_key_id`), + KEY `api_key_user_id` (`api_key_user_id`), + KEY `api_key_name` (`api_key_name`), + KEY `api_key_date_gmt` (`api_key_date_gmt`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/assets.sql b/app/schemas/mysql-5/assets.sql new file mode 100644 index 0000000..2eade0c --- /dev/null +++ b/app/schemas/mysql-5/assets.sql @@ -0,0 +1,14 @@ +DROP TABLE IF EXISTS `%table_prefix%assets`; +CREATE TABLE `%table_prefix%assets` ( + `asset_id` bigint(32) NOT NULL AUTO_INCREMENT, + `asset_key` varchar(255) NOT NULL, + `asset_md5` varchar(32) NOT NULL, + `asset_filename` varchar(255) NOT NULL, + `asset_file_path` varchar(255) NOT NULL, + `asset_blob` blob, + PRIMARY KEY (`asset_id`), + UNIQUE KEY `key` (`asset_key`(191)) USING BTREE, + KEY `md5` (`asset_md5`), + KEY `filename` (`asset_filename`), + KEY `file_path` (`asset_file_path`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/categories.sql b/app/schemas/mysql-5/categories.sql new file mode 100644 index 0000000..35f5bf5 --- /dev/null +++ b/app/schemas/mysql-5/categories.sql @@ -0,0 +1,9 @@ +DROP TABLE IF EXISTS `%table_prefix%categories`; +CREATE TABLE `%table_prefix%categories` ( + `category_id` bigint(32) NOT NULL AUTO_INCREMENT, + `category_name` varchar(32) NOT NULL, + `category_url_key` varchar(32) NOT NULL, + `category_description` mediumtext, + PRIMARY KEY (`category_id`), + UNIQUE KEY `url_key` (`category_url_key`) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/confirmations.sql b/app/schemas/mysql-5/confirmations.sql new file mode 100644 index 0000000..e65a5f1 --- /dev/null +++ b/app/schemas/mysql-5/confirmations.sql @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS `%table_prefix%confirmations`; +CREATE TABLE `%table_prefix%confirmations` ( + `confirmation_id` bigint(32) NOT NULL AUTO_INCREMENT, + `confirmation_user_id` bigint(32) NOT NULL, + `confirmation_type` enum('account-activate','account-change-email','account-password-forgot') NOT NULL, + `confirmation_date` datetime NOT NULL, + `confirmation_date_gmt` datetime NOT NULL, + `confirmation_token_hash` varchar(255) NOT NULL, + `confirmation_status` enum('active','valid','invalid') NOT NULL, + `confirmation_extra` mediumtext, + PRIMARY KEY (`confirmation_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/deletions.sql b/app/schemas/mysql-5/deletions.sql new file mode 100644 index 0000000..1aca667 --- /dev/null +++ b/app/schemas/mysql-5/deletions.sql @@ -0,0 +1,20 @@ +DROP TABLE IF EXISTS `%table_prefix%deletions`; +CREATE TABLE `%table_prefix%deletions` ( + `deleted_id` bigint(32) NOT NULL AUTO_INCREMENT, + `deleted_date_gmt` datetime NOT NULL, + `deleted_content_id` bigint(32) NOT NULL, + `deleted_content_date_gmt` datetime NOT NULL, + `deleted_content_user_id` bigint(32) DEFAULT NULL, + `deleted_content_ip` varchar(255) NOT NULL, + `deleted_content_md5` varchar(32) DEFAULT NULL, + `deleted_content_original_filename` varchar(255) DEFAULT NULL, + `deleted_content_views` bigint(32) NOT NULL DEFAULT '0', + `deleted_content_likes` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`deleted_id`), + KEY `deleted_content_id` (`deleted_content_id`), + KEY `deleted_content_user_id` (`deleted_content_user_id`), + KEY `deleted_content_ip` (`deleted_content_ip`), + KEY `deleted_content_md5` (`deleted_content_md5`), + KEY `deleted_content_views` (`deleted_content_views`), + KEY `deleted_content_likes` (`deleted_content_likes`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/follows.sql b/app/schemas/mysql-5/follows.sql new file mode 100644 index 0000000..5e51ed9 --- /dev/null +++ b/app/schemas/mysql-5/follows.sql @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS `%table_prefix%follows`; +CREATE TABLE `%table_prefix%follows` ( + `follow_id` bigint(32) NOT NULL AUTO_INCREMENT, + `follow_date` datetime NOT NULL, + `follow_date_gmt` datetime NOT NULL, + `follow_user_id` bigint(32) NOT NULL, + `follow_followed_user_id` bigint(32) NOT NULL, + `follow_ip` varchar(255) NOT NULL, + PRIMARY KEY (`follow_id`), + KEY `follow_user_id` (`follow_user_id`), + KEY `follow_followed_user_id` (`follow_followed_user_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/images.sql b/app/schemas/mysql-5/images.sql new file mode 100644 index 0000000..14b785d --- /dev/null +++ b/app/schemas/mysql-5/images.sql @@ -0,0 +1,60 @@ +DROP TABLE IF EXISTS `%table_prefix%images`; +CREATE TABLE `%table_prefix%images` ( + `image_id` bigint(32) NOT NULL AUTO_INCREMENT, + `image_name` varchar(255) NOT NULL, + `image_extension` varchar(255) NOT NULL, + `image_size` int(11) NOT NULL, + `image_width` int(11) NOT NULL, + `image_height` int(11) NOT NULL, + `image_date` datetime NOT NULL, + `image_date_gmt` datetime NOT NULL, + `image_title` varchar(100) DEFAULT NULL, + `image_description` mediumtext, + `image_nsfw` tinyint(1) NOT NULL DEFAULT '0', + `image_user_id` bigint(32) DEFAULT NULL, + `image_album_id` bigint(32) DEFAULT NULL, + `image_uploader_ip` varchar(255) NOT NULL, + `image_storage_mode` enum('datefolder','direct','old','path') NOT NULL DEFAULT 'datefolder', + `image_path` varchar(4096) DEFAULT NULL, + `image_storage_id` bigint(32) DEFAULT NULL, + `image_md5` varchar(32) NOT NULL, + `image_source_md5` varchar(32) DEFAULT NULL, + `image_original_filename` varchar(255) NOT NULL, + `image_original_exifdata` longtext, + `image_views` bigint(32) NOT NULL DEFAULT '0', + `image_category_id` bigint(32) DEFAULT NULL, + `image_chain` tinyint(128) NOT NULL, + `image_thumb_size` int(11) NOT NULL, + `image_medium_size` int(11) NOT NULL DEFAULT '0', + `image_expiration_date_gmt` datetime DEFAULT NULL, + `image_likes` bigint(32) NOT NULL DEFAULT '0', + `image_is_animated` tinyint(1) NOT NULL DEFAULT '0', + `image_is_approved` tinyint(1) NOT NULL DEFAULT '1', + `image_is_360` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`image_id`), + KEY `image_name` (`image_name`), + KEY `image_extension` (`image_extension`), + KEY `image_size` (`image_size`), + KEY `image_width` (`image_width`), + KEY `image_height` (`image_height`), + KEY `image_date_gmt` (`image_date_gmt`), + KEY `image_nsfw` (`image_nsfw`), + KEY `image_user_id` (`image_user_id`), + KEY `image_album_id` (`image_album_id`), + KEY `image_uploader_ip` (`image_uploader_ip`), + KEY `image_storage_mode` (`image_storage_mode`), + KEY `image_path` (`image_path`(255)), + KEY `image_storage_id` (`image_storage_id`), + KEY `image_md5` (`image_md5`), + KEY `image_source_md5` (`image_source_md5`), + KEY `image_views` (`image_views`), + KEY `image_category_id` (`image_category_id`), + KEY `image_chain` (`image_chain`), + KEY `image_expiration_date_gmt` (`image_expiration_date_gmt`), + KEY `image_likes` (`image_likes`), + KEY `image_is_animated` (`image_is_animated`), + KEY `image_is_approved` (`image_is_approved`), + KEY `image_is_360` (`image_is_360`), + KEY `image_album_id_image_id` (`image_album_id`, `image_id`), + FULLTEXT KEY `searchindex` (`image_name`,`image_title`,`image_description`,`image_original_filename`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/images_hash.sql b/app/schemas/mysql-5/images_hash.sql new file mode 100644 index 0000000..d5e819e --- /dev/null +++ b/app/schemas/mysql-5/images_hash.sql @@ -0,0 +1,6 @@ +DROP TABLE IF EXISTS `%table_prefix%images_hash`; +CREATE TABLE `%table_prefix%images_hash` ( + `image_hash_image_id` bigint(32) NOT NULL, + `image_hash_hash` mediumtext NOT NULL, + PRIMARY KEY (`image_hash_image_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/importing.sql b/app/schemas/mysql-5/importing.sql new file mode 100644 index 0000000..020db9f --- /dev/null +++ b/app/schemas/mysql-5/importing.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `%table_prefix%importing`; +CREATE TABLE `%table_prefix%importing` ( + `importing_id` bigint(32) NOT NULL AUTO_INCREMENT, + `importing_import_id` bigint(32) NOT NULL, + `importing_path` varchar(4096) NOT NULL, + `importing_content_type` enum('user','album','image') NOT NULL, + `importing_content_id` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`importing_id`), + UNIQUE KEY `importing_path` (`importing_path`(191)) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/imports.sql b/app/schemas/mysql-5/imports.sql new file mode 100644 index 0000000..af44023 --- /dev/null +++ b/app/schemas/mysql-5/imports.sql @@ -0,0 +1,21 @@ +DROP TABLE IF EXISTS `%table_prefix%imports`; +CREATE TABLE `%table_prefix%imports` ( + `import_id` bigint(32) NOT NULL AUTO_INCREMENT, + `import_path` varchar(4096) NOT NULL, + `import_options` varchar(255) DEFAULT NULL, + `import_status` enum('queued','working','paused','canceled','completed') NOT NULL, + `import_users` bigint(32) NOT NULL DEFAULT '0', + `import_images` bigint(32) NOT NULL DEFAULT '0', + `import_albums` bigint(32) NOT NULL DEFAULT '0', + `import_time_created` datetime DEFAULT NULL, + `import_time_updated` datetime DEFAULT NULL, + `import_errors` tinyint(1) NOT NULL DEFAULT '0', + `import_started` tinyint(1) NOT NULL DEFAULT '0', + `import_continuous` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`import_id`), + KEY `import_path` (`import_path`(191)) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; + +INSERT INTO `%table_prefix%imports` VALUES ('1', '%rootPath%importing/no-parse', 'a:1:{s:4:"root";s:5:"plain";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '1', '1'); +INSERT INTO `%table_prefix%imports` VALUES ('2', '%rootPath%importing/parse-users', 'a:1:{s:4:"root";s:5:"users";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '1', '1'); +INSERT INTO `%table_prefix%imports` VALUES ('3', '%rootPath%importing/parse-albums', 'a:1:{s:4:"root";s:6:"albums";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '1', '1'); diff --git a/app/schemas/mysql-5/ip_bans.sql b/app/schemas/mysql-5/ip_bans.sql new file mode 100644 index 0000000..72f2c1c --- /dev/null +++ b/app/schemas/mysql-5/ip_bans.sql @@ -0,0 +1,13 @@ +DROP TABLE IF EXISTS `%table_prefix%ip_bans`; +CREATE TABLE `%table_prefix%ip_bans` ( + `ip_ban_id` bigint(20) NOT NULL AUTO_INCREMENT, + `ip_ban_date` datetime NOT NULL, + `ip_ban_date_gmt` datetime NOT NULL, + `ip_ban_expires` datetime DEFAULT NULL, + `ip_ban_expires_gmt` datetime DEFAULT NULL, + `ip_ban_ip` varchar(255) NOT NULL, + `ip_ban_message` text, + PRIMARY KEY (`ip_ban_id`), + KEY `ip_ban_date_gmt` (`ip_ban_date_gmt`), + UNIQUE KEY `ip_ban_ip` (`ip_ban_ip`(191)) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/likes.sql b/app/schemas/mysql-5/likes.sql new file mode 100644 index 0000000..4e92ad0 --- /dev/null +++ b/app/schemas/mysql-5/likes.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%likes`; +CREATE TABLE `%table_prefix%likes` ( + `like_id` bigint(32) NOT NULL AUTO_INCREMENT, + `like_date` datetime NOT NULL, + `like_date_gmt` datetime NOT NULL, + `like_user_id` bigint(32) DEFAULT NULL, + `like_content_type` enum('image','album') DEFAULT NULL, + `like_content_id` bigint(32) NOT NULL, + `like_content_user_id` bigint(32) DEFAULT NULL, + `like_ip` varchar(255) NOT NULL, + PRIMARY KEY (`like_id`), + KEY `like_date_gmt` (`like_date_gmt`), + KEY `like_user_id` (`like_user_id`), + KEY `like_content_type` (`like_content_type`), + KEY `like_content_id` (`like_content_id`), + KEY `like_content_user_id` (`like_content_user_id`), + KEY `like_ip` (`like_ip`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/locks.sql b/app/schemas/mysql-5/locks.sql new file mode 100644 index 0000000..db3b44a --- /dev/null +++ b/app/schemas/mysql-5/locks.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS `%table_prefix%locks`; +CREATE TABLE `%table_prefix%locks` ( + `lock_id` bigint(20) NOT NULL AUTO_INCREMENT, + `lock_name` varchar(255) NOT NULL, + `lock_date_gmt` datetime NOT NULL, + `lock_expires_gmt` datetime DEFAULT NULL, + PRIMARY KEY (`lock_id`), + KEY `lock_date_gmt` (`lock_date_gmt`), + KEY `lock_expires_gmt` (`lock_expires_gmt`), + UNIQUE KEY `lock_name` (`lock_name`(191)) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/login_connections.sql b/app/schemas/mysql-5/login_connections.sql new file mode 100644 index 0000000..2626ce6 --- /dev/null +++ b/app/schemas/mysql-5/login_connections.sql @@ -0,0 +1,15 @@ +DROP TABLE IF EXISTS `%table_prefix%login_connections`; +CREATE TABLE `%table_prefix%login_connections` ( + `login_connection_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_connection_user_id` bigint(32) NOT NULL, + `login_connection_provider_id` bigint(32) NOT NULL, + `login_connection_date_gmt` datetime NOT NULL, + `login_connection_resource_id` varchar(255) NOT NULL, + `login_connection_resource_name` mediumtext, + `login_connection_token` mediumtext NOT NULL COMMENT 'Ciphertext', + PRIMARY KEY (`login_connection_id`), + UNIQUE KEY `login_connection_unique` (`login_connection_user_id`,`login_connection_provider_id`), + KEY `login_connection_user_id` (`login_connection_user_id`), + KEY `login_connection_date_gmt` (`login_connection_date_gmt`), + KEY `login_connection_provider_id` (`login_connection_provider_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/login_cookies.sql b/app/schemas/mysql-5/login_cookies.sql new file mode 100644 index 0000000..7ef2a80 --- /dev/null +++ b/app/schemas/mysql-5/login_cookies.sql @@ -0,0 +1,16 @@ +DROP TABLE IF EXISTS `%table_prefix%login_cookies`; +CREATE TABLE `%table_prefix%login_cookies` ( + `login_cookie_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_cookie_user_id` bigint(32) NOT NULL, + `login_cookie_connection_id` bigint(32) DEFAULT 0, + `login_cookie_date_gmt` datetime NOT NULL, + `login_cookie_ip` varchar(255) DEFAULT NULL, + `login_cookie_user_agent` mediumtext NOT NULL, + `login_cookie_hash` mediumtext NOT NULL, + PRIMARY KEY (`login_cookie_id`), + UNIQUE KEY `login_cookie_unique` (`login_cookie_user_id`,`login_cookie_connection_id`,`login_cookie_date_gmt`), + KEY `login_cookie_user_id_date_gmt` (`login_cookie_user_id`, `login_cookie_date_gmt`), + KEY `login_cookie_user_id` (`login_cookie_user_id`), + KEY `login_cookie_ip` (`login_cookie_ip`), + KEY `login_cookie_connection_id` (`login_cookie_connection_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/login_passwords.sql b/app/schemas/mysql-5/login_passwords.sql new file mode 100644 index 0000000..58d6b52 --- /dev/null +++ b/app/schemas/mysql-5/login_passwords.sql @@ -0,0 +1,9 @@ +DROP TABLE IF EXISTS `%table_prefix%login_passwords`; +CREATE TABLE `%table_prefix%login_passwords` ( + `login_password_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_password_user_id` bigint(32) NOT NULL, + `login_password_date_gmt` datetime NOT NULL, + `login_password_hash` mediumtext NOT NULL, + PRIMARY KEY (`login_password_id`), + UNIQUE KEY `login_password_user_id` (`login_password_user_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/login_providers.sql b/app/schemas/mysql-5/login_providers.sql new file mode 100644 index 0000000..97c0574 --- /dev/null +++ b/app/schemas/mysql-5/login_providers.sql @@ -0,0 +1,43 @@ +DROP TABLE IF EXISTS `%table_prefix%login_providers`; +CREATE TABLE `%table_prefix%login_providers` ( + `login_provider_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_provider_name` varchar(255) DEFAULT NULL, + `login_provider_label` varchar(255) DEFAULT NULL, + `login_provider_key_id` mediumtext DEFAULT NULL, + `login_provider_key_secret` mediumtext DEFAULT NULL, + `login_provider_is_enabled` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`login_provider_id`), + UNIQUE KEY `login_provider_name` (`login_provider_name`(191)), + KEY `login_provider_is_enabled` (`login_provider_is_enabled`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; +INSERT INTO `%table_prefix%login_providers` VALUES ('1', 'facebook', 'Facebook', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('2', 'twitter', 'Twitter', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('3', 'google', 'Google', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('4', 'vkontakte', 'VK', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('5', 'apple', 'Apple', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('6', 'amazon', 'Amazon', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('7', 'bitbucket', 'BitBucket', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('8', 'discord', 'Discord', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('9', 'dribbble', 'Dribbble', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('10', 'dropbox', 'Dropbox', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('11', 'github', 'GitHub', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('12', 'gitlab', 'GitLab', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('13', 'instagram', 'Instagram', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('14', 'linkedin', 'LinkedIn', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('15', 'mailru', 'Mailru', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('16', 'medium', 'Medium', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('17', 'odnoklassniki', 'Odnoklassniki', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('18', 'orcid', 'ORCID', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('19', 'reddit', 'Reddit', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('20', 'spotify', 'Spotify', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('21', 'steam', 'Steam', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('22', 'strava', 'Strava', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('23', 'telegram', 'Telegram', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('24', 'tumblr', 'Tumblr', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('25', 'twitchtv', 'Twitch', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('26', 'wechat', 'WeChat', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('27', 'wordpress', 'WordPress', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('28', 'yandex', 'Yandex', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('29', 'yahoo', 'Yahoo', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('30', 'qq', 'QQ', null, null, '0'); + diff --git a/app/schemas/mysql-5/logins.sql b/app/schemas/mysql-5/logins.sql new file mode 100644 index 0000000..ba60dd3 --- /dev/null +++ b/app/schemas/mysql-5/logins.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%logins`; +CREATE TABLE `%table_prefix%logins` ( + `login_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_user_id` bigint(32) NOT NULL, + `login_type` enum('password','session','cookie','facebook','twitter','google','vk','cookie_facebook','cookie_twitter','cookie_google','cookie_vk') NOT NULL, + `login_ip` varchar(255) DEFAULT NULL, + `login_hostname` mediumtext, + `login_date` datetime NOT NULL, + `login_date_gmt` datetime NOT NULL, + `login_resource_id` varchar(255) DEFAULT NULL, + `login_resource_name` mediumtext, + `login_resource_avatar` mediumtext, + `login_resource_url` mediumtext, + `login_secret` mediumtext DEFAULT NULL COMMENT 'The secret part', + `login_token_hash` mediumtext COMMENT 'Hashed complement to secret if needed', + PRIMARY KEY (`login_id`), + KEY `login_user_id` (`login_user_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/notifications.sql b/app/schemas/mysql-5/notifications.sql new file mode 100644 index 0000000..51044c3 --- /dev/null +++ b/app/schemas/mysql-5/notifications.sql @@ -0,0 +1,19 @@ +DROP TABLE IF EXISTS `%table_prefix%notifications`; +CREATE TABLE `%table_prefix%notifications` ( + `notification_id` bigint(32) NOT NULL AUTO_INCREMENT, + `notification_date_gmt` datetime NOT NULL, + `notification_user_id` bigint(32) NOT NULL, + `notification_trigger_user_id` bigint(32) DEFAULT NULL, + `notification_type` enum('follow','like') NOT NULL, + `notification_content_type` enum('user','image','album') NOT NULL, + `notification_type_id` bigint(32) NOT NULL COMMENT 'type_id based on action (type) table', + `notification_is_read` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`notification_id`), + KEY `notification_date_gmt` (`notification_date_gmt`), + KEY `notification_user_id` (`notification_user_id`), + KEY `notification_trigger_user_id` (`notification_trigger_user_id`), + KEY `notification_type` (`notification_type`), + KEY `notification_content_type` (`notification_content_type`), + KEY `notification_type_id` (`notification_type_id`), + KEY `notification_is_read` (`notification_is_read`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/pages.sql b/app/schemas/mysql-5/pages.sql new file mode 100644 index 0000000..826fa03 --- /dev/null +++ b/app/schemas/mysql-5/pages.sql @@ -0,0 +1,29 @@ +DROP TABLE IF EXISTS `%table_prefix%pages`; +CREATE TABLE `%table_prefix%pages` ( + `page_id` bigint(32) NOT NULL AUTO_INCREMENT, + `page_url_key` varchar(32) DEFAULT NULL, + `page_type` enum('internal','link') NOT NULL DEFAULT 'internal', + `page_file_path` varchar(255) DEFAULT NULL, + `page_link_url` mediumtext, + `page_icon` varchar(255) DEFAULT NULL, + `page_title` varchar(255) NOT NULL, + `page_description` mediumtext, + `page_keywords` mediumtext, + `page_is_active` tinyint(1) NOT NULL DEFAULT '1', + `page_is_link_visible` tinyint(1) NOT NULL DEFAULT '1', + `page_attr_target` enum('_self','_blank') DEFAULT '_self', + `page_attr_rel` varchar(255) DEFAULT NULL, + `page_sort_display` int(11) DEFAULT NULL, + `page_internal` varchar(255) DEFAULT NULL, + `page_code` mediumtext, + PRIMARY KEY (`page_id`), + UNIQUE KEY `page_internal` (`page_internal`(191)), + KEY `page_url_key` (`page_url_key`), + KEY `page_type` (`page_type`), + KEY `page_is_active` (`page_is_active`), + KEY `page_is_link_visible` (`page_is_link_visible`), + KEY `page_sort_display` (`page_sort_display`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; +INSERT INTO `%table_prefix%pages` VALUES ('1', 'tos', 'internal', null, null, 'fas fa-landmark', 'Terms of service', null, null, '1', '1', '_self', null, '1', 'tos', null); +INSERT INTO `%table_prefix%pages` VALUES ('2', 'privacy', 'internal', null, null, 'fas fa-lock', 'Privacy', null, null, '1', '1', '_self', null, '2', 'privacy', null); +INSERT INTO `%table_prefix%pages` VALUES ('3', 'contact', 'internal', null, null, 'fas fa-at', 'Contact', null, null, '1', '1', '_self', null, '3', 'contact', null); diff --git a/app/schemas/mysql-5/queues.sql b/app/schemas/mysql-5/queues.sql new file mode 100644 index 0000000..bf5e918 --- /dev/null +++ b/app/schemas/mysql-5/queues.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS `%table_prefix%queues`; +CREATE TABLE `%table_prefix%queues` ( + `queue_id` bigint(32) NOT NULL AUTO_INCREMENT, + `queue_type` enum('storage-delete') NOT NULL, + `queue_date_gmt` datetime NOT NULL, + `queue_args` longtext NOT NULL, + `queue_join` bigint(32) NOT NULL, + `queue_attempts` varchar(255) DEFAULT '0', + `queue_status` enum('pending','failed') NOT NULL DEFAULT 'pending', + PRIMARY KEY (`queue_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/requests.sql b/app/schemas/mysql-5/requests.sql new file mode 100644 index 0000000..3814600 --- /dev/null +++ b/app/schemas/mysql-5/requests.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%requests`; +CREATE TABLE `%table_prefix%requests` ( + `request_id` bigint(32) NOT NULL AUTO_INCREMENT, + `request_type` enum('upload','signup','account-edit','account-password-forgot','account-password-reset','account-resend-activation','account-email-needed','account-change-email','account-activate','login', 'content-password', 'account-two-factor') NOT NULL, + `request_user_id` bigint(32) DEFAULT NULL, + `request_content_id` bigint(32) DEFAULT NULL, + `request_ip` varchar(255) NOT NULL, + `request_date` datetime NOT NULL, + `request_date_gmt` datetime NOT NULL, + `request_result` enum('success','fail') NOT NULL, + PRIMARY KEY (`request_id`), + KEY `request_type` (`request_type`), + KEY `request_user_id` (`request_user_id`), + KEY `request_content_id` (`request_content_id`), + KEY `request_ip` (`request_ip`), + KEY `request_date_gmt` (`request_date_gmt`), + KEY `request_result` (`request_result`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/settings.sql b/app/schemas/mysql-5/settings.sql new file mode 100644 index 0000000..297784a --- /dev/null +++ b/app/schemas/mysql-5/settings.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `%table_prefix%settings`; +CREATE TABLE `%table_prefix%settings` ( + `setting_id` int(11) NOT NULL AUTO_INCREMENT, + `setting_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `setting_value` mediumtext, + `setting_default` mediumtext, + `setting_typeset` enum('string','bool') DEFAULT 'string', + PRIMARY KEY (`setting_id`), + KEY `setting_name` (`setting_name`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/stats.sql b/app/schemas/mysql-5/stats.sql new file mode 100644 index 0000000..ec83675 --- /dev/null +++ b/app/schemas/mysql-5/stats.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%stats`; +CREATE TABLE `%table_prefix%stats` ( + `stat_id` bigint(32) NOT NULL AUTO_INCREMENT, + `stat_type` enum('total','date') NOT NULL, + `stat_date_gmt` date DEFAULT NULL, + `stat_users` bigint(32) NOT NULL DEFAULT '0', + `stat_images` bigint(32) NOT NULL DEFAULT '0', + `stat_albums` bigint(32) NOT NULL DEFAULT '0', + `stat_image_views` bigint(32) NOT NULL DEFAULT '0', + `stat_album_views` bigint(32) NOT NULL DEFAULT '0', + `stat_image_likes` bigint(32) NOT NULL DEFAULT '0', + `stat_album_likes` bigint(32) NOT NULL DEFAULT '0', + `stat_disk_used` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`stat_id`), + UNIQUE KEY `stat_date_gmt` (`stat_date_gmt`) USING BTREE, + KEY `stat_type` (`stat_type`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; +INSERT INTO `%table_prefix%stats` VALUES ('1', 'total', NULL, '0', '0', '0', '0', '0', '0', '0', '0'); diff --git a/app/schemas/mysql-5/storage_apis.sql b/app/schemas/mysql-5/storage_apis.sql new file mode 100644 index 0000000..b917bd4 --- /dev/null +++ b/app/schemas/mysql-5/storage_apis.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%storage_apis`; +CREATE TABLE `%table_prefix%storage_apis` ( + `storage_api_id` bigint(32) NOT NULL AUTO_INCREMENT, + `storage_api_name` varchar(255) NOT NULL, + `storage_api_type` varchar(255) NOT NULL, + PRIMARY KEY (`storage_api_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; +INSERT INTO `%table_prefix%storage_apis` VALUES ('1', 'Amazon S3', 's3'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('2', 'Google Cloud', 'gcloud'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('3', 'Microsoft Azure', 'azure'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('4', 'Chevereto Grid', 'chvgrid'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('5', 'FTP', 'ftp'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('6', 'SFTP', 'sftp'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('7', 'OpenStack', 'openstack'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('8', 'Local', 'local'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('9', 'S3 compatible', 's3compatible'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('10', 'Alibaba Cloud OSS', 'oss'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('11', 'Backblaze B2', 'b2'); diff --git a/app/schemas/mysql-5/storages.sql b/app/schemas/mysql-5/storages.sql new file mode 100644 index 0000000..f6e3c1b --- /dev/null +++ b/app/schemas/mysql-5/storages.sql @@ -0,0 +1,22 @@ +DROP TABLE IF EXISTS `%table_prefix%storages`; +CREATE TABLE `%table_prefix%storages` ( + `storage_id` bigint(32) NOT NULL AUTO_INCREMENT, + `storage_api_id` bigint(32) NOT NULL, + `storage_name` varchar(255) NOT NULL, + `storage_service` varchar(255) DEFAULT NULL, + `storage_url` varchar(255) NOT NULL, + `storage_bucket` varchar(255) DEFAULT NULL, + `storage_region` varchar(255) DEFAULT NULL, + `storage_server` varchar(255) DEFAULT NULL, + `storage_account_id` varchar(255) DEFAULT NULL, + `storage_account_name` varchar(255) DEFAULT NULL, + `storage_key` mediumtext, + `storage_secret` mediumtext, + `storage_is_https` tinyint(1) NOT NULL DEFAULT '0', + `storage_is_active` tinyint(1) NOT NULL DEFAULT '0', + `storage_capacity` bigint(32) DEFAULT NULL, + `storage_space_used` bigint(32) DEFAULT '0', + PRIMARY KEY (`storage_id`), + KEY `storage_api_id` (`storage_api_id`), + KEY `storage_is_active` (`storage_is_active`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/two_factors.sql b/app/schemas/mysql-5/two_factors.sql new file mode 100644 index 0000000..9aab054 --- /dev/null +++ b/app/schemas/mysql-5/two_factors.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `%table_prefix%two_factors`; +CREATE TABLE `%table_prefix%two_factors` ( + `two_factor_id` bigint(32) NOT NULL AUTO_INCREMENT, + `two_factor_user_id` bigint(32) DEFAULT NULL, + `two_factor_date_gmt` datetime NOT NULL, + `two_factor_secret` mediumtext NOT NULL, + PRIMARY KEY (`two_factor_id`), + KEY `two_factor_user_id` (`two_factor_user_id`), + KEY `two_factor_date_gmt` (`two_factor_date_gmt`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-5/users.sql b/app/schemas/mysql-5/users.sql new file mode 100644 index 0000000..193c454 --- /dev/null +++ b/app/schemas/mysql-5/users.sql @@ -0,0 +1,57 @@ +DROP TABLE IF EXISTS `%table_prefix%users`; +CREATE TABLE `%table_prefix%users` ( + `user_id` bigint(32) NOT NULL AUTO_INCREMENT, + `user_name` varchar(255) DEFAULT NULL, + `user_username` varchar(255) NOT NULL, + `user_date` datetime NOT NULL, + `user_date_gmt` datetime NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `user_avatar_filename` varchar(255) DEFAULT NULL, + `user_facebook_username` varchar(255) DEFAULT NULL, + `user_twitter_username` varchar(255) DEFAULT NULL, + `user_website` varchar(255) DEFAULT NULL, + `user_background_filename` varchar(255) DEFAULT NULL, + `user_bio` varchar(255) DEFAULT NULL, + `user_timezone` varchar(255) NOT NULL, + `user_language` varchar(255) DEFAULT NULL, + `user_status` enum('valid','awaiting-confirmation','awaiting-email','banned') NOT NULL, + `user_is_admin` tinyint(1) NOT NULL DEFAULT '0', + `user_is_manager` tinyint(1) NOT NULL DEFAULT '0', + `user_is_private` tinyint(1) NOT NULL DEFAULT '0', + `user_palette_id` int(11) NOT NULL DEFAULT '0', + `user_newsletter_subscribe` tinyint(1) NOT NULL DEFAULT '1', + `user_show_nsfw_listings` tinyint(1) NOT NULL DEFAULT '0', + `user_image_count` bigint(32) NOT NULL DEFAULT '0', + `user_album_count` bigint(32) NOT NULL DEFAULT '0', + `user_image_keep_exif` tinyint(1) NOT NULL DEFAULT '1', + `user_image_expiration` varchar(255) DEFAULT NULL, + `user_registration_ip` varchar(255) NOT NULL, + `user_likes` bigint(32) NOT NULL DEFAULT '0' COMMENT 'Likes made to content owned by this user', + `user_liked` bigint(32) NOT NULL DEFAULT '0' COMMENT 'Likes made by this user', + `user_following` bigint(32) NOT NULL DEFAULT '0', + `user_followers` bigint(32) NOT NULL DEFAULT '0', + `user_content_views` bigint(32) NOT NULL DEFAULT '0', + `user_notifications_unread` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`), + UNIQUE KEY `username` (`user_username`(191)) USING BTREE, + UNIQUE KEY `email` (`user_email`(191)) USING BTREE, + KEY `user_date_gmt` (`user_date_gmt`), + KEY `user_status` (`user_status`), + KEY `user_is_admin` (`user_is_admin`), + KEY `user_is_manager` (`user_is_manager`), + KEY `user_is_private` (`user_is_private`), + KEY `user_palette_id` (`user_palette_id`), + KEY `user_newsletter_subscribe` (`user_newsletter_subscribe`), + KEY `user_show_nsfw_listings` (`user_show_nsfw_listings`), + KEY `user_image_count` (`user_image_count`), + KEY `user_album_count` (`user_album_count`), + KEY `user_image_keep_exif` (`user_image_keep_exif`), + KEY `user_image_expiration` (`user_image_expiration`), + KEY `user_registration_ip` (`user_registration_ip`), + KEY `user_likes` (`user_likes`), + KEY `user_following` (`user_following`), + KEY `user_followers` (`user_followers`), + KEY `user_liked` (`user_liked`), + KEY `user_content_views` (`user_content_views`), + FULLTEXT KEY `searchindex` (`user_name`,`user_username`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-8/albums.sql b/app/schemas/mysql-8/albums.sql new file mode 100644 index 0000000..0fa568e --- /dev/null +++ b/app/schemas/mysql-8/albums.sql @@ -0,0 +1,26 @@ +DROP TABLE IF EXISTS `%table_prefix%albums`; +CREATE TABLE `%table_prefix%albums` ( + `album_id` bigint(32) NOT NULL AUTO_INCREMENT, + `album_name` varchar(100) NOT NULL, + `album_user_id` bigint(32) DEFAULT NULL, + `album_date` datetime NOT NULL, + `album_date_gmt` datetime NOT NULL, + `album_creation_ip` varchar(255) NOT NULL, + `album_privacy` enum('public','password','private','private_but_link','custom') DEFAULT 'public', + `album_privacy_extra` mediumtext, + `album_password` mediumtext, + `album_image_count` bigint(32) NOT NULL DEFAULT '0', + `album_description` mediumtext, + `album_likes` bigint(32) NOT NULL DEFAULT '0', + `album_views` bigint(32) NOT NULL DEFAULT '0', + `album_cover_id` bigint(32) DEFAULT NULL, + `album_parent_id` bigint(32) DEFAULT NULL, + PRIMARY KEY (`album_id`), + KEY `album_name` (`album_name`), + KEY `album_user_id` (`album_user_id`), + KEY `album_date_gmt` (`album_date_gmt`), + KEY `album_privacy` (`album_privacy`), + KEY `album_image_count` (`album_image_count`), + KEY `album_creation_ip` (`album_creation_ip`), + FULLTEXT KEY `searchindex` (`album_name`,`album_description`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/api_keys.sql b/app/schemas/mysql-8/api_keys.sql new file mode 100644 index 0000000..64d3677 --- /dev/null +++ b/app/schemas/mysql-8/api_keys.sql @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS `%table_prefix%api_keys`; +CREATE TABLE `%table_prefix%api_keys` ( + `api_key_id` bigint(32) NOT NULL AUTO_INCREMENT, + `api_key_user_id` bigint(32) DEFAULT NULL, + `api_key_name` varchar(100) DEFAULT NULL, + `api_key_date_gmt` datetime NOT NULL, + `api_key_hash` mediumtext NOT NULL, + PRIMARY KEY (`api_key_id`), + KEY `api_key_user_id` (`api_key_user_id`), + KEY `api_key_name` (`api_key_name`), + KEY `api_key_date_gmt` (`api_key_date_gmt`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/assets.sql b/app/schemas/mysql-8/assets.sql new file mode 100644 index 0000000..1851dbe --- /dev/null +++ b/app/schemas/mysql-8/assets.sql @@ -0,0 +1,14 @@ +DROP TABLE IF EXISTS `%table_prefix%assets`; +CREATE TABLE `%table_prefix%assets` ( + `asset_id` bigint(32) NOT NULL AUTO_INCREMENT, + `asset_key` varchar(255) NOT NULL, + `asset_md5` varchar(32) NOT NULL, + `asset_filename` varchar(255) NOT NULL, + `asset_file_path` varchar(255) NOT NULL, + `asset_blob` blob, + PRIMARY KEY (`asset_id`), + UNIQUE KEY `key` (`asset_key`) USING BTREE, + KEY `md5` (`asset_md5`), + KEY `filename` (`asset_filename`), + KEY `file_path` (`asset_file_path`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/categories.sql b/app/schemas/mysql-8/categories.sql new file mode 100644 index 0000000..e9cd8d8 --- /dev/null +++ b/app/schemas/mysql-8/categories.sql @@ -0,0 +1,9 @@ +DROP TABLE IF EXISTS `%table_prefix%categories`; +CREATE TABLE `%table_prefix%categories` ( + `category_id` bigint(32) NOT NULL AUTO_INCREMENT, + `category_name` varchar(32) NOT NULL, + `category_url_key` varchar(32) NOT NULL, + `category_description` mediumtext, + PRIMARY KEY (`category_id`), + UNIQUE KEY `url_key` (`category_url_key`) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/confirmations.sql b/app/schemas/mysql-8/confirmations.sql new file mode 100644 index 0000000..db27811 --- /dev/null +++ b/app/schemas/mysql-8/confirmations.sql @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS `%table_prefix%confirmations`; +CREATE TABLE `%table_prefix%confirmations` ( + `confirmation_id` bigint(32) NOT NULL AUTO_INCREMENT, + `confirmation_user_id` bigint(32) NOT NULL, + `confirmation_type` enum('account-activate','account-change-email','account-password-forgot') NOT NULL, + `confirmation_date` datetime NOT NULL, + `confirmation_date_gmt` datetime NOT NULL, + `confirmation_token_hash` varchar(255) NOT NULL, + `confirmation_status` enum('active','valid','invalid') NOT NULL, + `confirmation_extra` mediumtext, + PRIMARY KEY (`confirmation_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/app/schemas/mysql-8/deletions.sql b/app/schemas/mysql-8/deletions.sql new file mode 100644 index 0000000..b5b732a --- /dev/null +++ b/app/schemas/mysql-8/deletions.sql @@ -0,0 +1,20 @@ +DROP TABLE IF EXISTS `%table_prefix%deletions`; +CREATE TABLE `%table_prefix%deletions` ( + `deleted_id` bigint(32) NOT NULL AUTO_INCREMENT, + `deleted_date_gmt` datetime NOT NULL, + `deleted_content_id` bigint(32) NOT NULL, + `deleted_content_date_gmt` datetime NOT NULL, + `deleted_content_user_id` bigint(32) DEFAULT NULL, + `deleted_content_ip` varchar(255) NOT NULL, + `deleted_content_md5` varchar(32) DEFAULT NULL, + `deleted_content_original_filename` varchar(255) DEFAULT NULL, + `deleted_content_views` bigint(32) NOT NULL DEFAULT '0', + `deleted_content_likes` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`deleted_id`), + KEY `deleted_content_id` (`deleted_content_id`), + KEY `deleted_content_user_id` (`deleted_content_user_id`), + KEY `deleted_content_ip` (`deleted_content_ip`), + KEY `deleted_content_md5` (`deleted_content_md5`), + KEY `deleted_content_views` (`deleted_content_views`), + KEY `deleted_content_likes` (`deleted_content_likes`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/follows.sql b/app/schemas/mysql-8/follows.sql new file mode 100644 index 0000000..211af22 --- /dev/null +++ b/app/schemas/mysql-8/follows.sql @@ -0,0 +1,12 @@ +DROP TABLE IF EXISTS `%table_prefix%follows`; +CREATE TABLE `%table_prefix%follows` ( + `follow_id` bigint(32) NOT NULL AUTO_INCREMENT, + `follow_date` datetime NOT NULL, + `follow_date_gmt` datetime NOT NULL, + `follow_user_id` bigint(32) NOT NULL, + `follow_followed_user_id` bigint(32) NOT NULL, + `follow_ip` varchar(255) NOT NULL, + PRIMARY KEY (`follow_id`), + KEY `follow_user_id` (`follow_user_id`), + KEY `follow_followed_user_id` (`follow_followed_user_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/app/schemas/mysql-8/images.sql b/app/schemas/mysql-8/images.sql new file mode 100644 index 0000000..0c8f5f0 --- /dev/null +++ b/app/schemas/mysql-8/images.sql @@ -0,0 +1,60 @@ +DROP TABLE IF EXISTS `%table_prefix%images`; +CREATE TABLE `%table_prefix%images` ( + `image_id` bigint(32) NOT NULL AUTO_INCREMENT, + `image_name` varchar(255) NOT NULL, + `image_extension` varchar(255) NOT NULL, + `image_size` int(11) NOT NULL, + `image_width` int(11) NOT NULL, + `image_height` int(11) NOT NULL, + `image_date` datetime NOT NULL, + `image_date_gmt` datetime NOT NULL, + `image_title` varchar(100) DEFAULT NULL, + `image_description` mediumtext, + `image_nsfw` tinyint(1) NOT NULL DEFAULT '0', + `image_user_id` bigint(32) DEFAULT NULL, + `image_album_id` bigint(32) DEFAULT NULL, + `image_uploader_ip` varchar(255) NOT NULL, + `image_storage_mode` enum('datefolder','direct','old','path') NOT NULL DEFAULT 'datefolder', + `image_path` varchar(4096) DEFAULT NULL, + `image_storage_id` bigint(32) DEFAULT NULL, + `image_md5` varchar(32) NOT NULL, + `image_source_md5` varchar(32) DEFAULT NULL, + `image_original_filename` varchar(255) NOT NULL, + `image_original_exifdata` longtext, + `image_views` bigint(32) NOT NULL DEFAULT '0', + `image_category_id` bigint(32) DEFAULT NULL, + `image_chain` tinyint(128) NOT NULL, + `image_thumb_size` int(11) NOT NULL, + `image_medium_size` int(11) NOT NULL DEFAULT '0', + `image_expiration_date_gmt` datetime DEFAULT NULL, + `image_likes` bigint(32) NOT NULL DEFAULT '0', + `image_is_animated` tinyint(1) NOT NULL DEFAULT '0', + `image_is_approved` tinyint(1) NOT NULL DEFAULT '1', + `image_is_360` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`image_id`), + KEY `image_name` (`image_name`), + KEY `image_extension` (`image_extension`), + KEY `image_size` (`image_size`), + KEY `image_width` (`image_width`), + KEY `image_height` (`image_height`), + KEY `image_date_gmt` (`image_date_gmt`), + KEY `image_nsfw` (`image_nsfw`), + KEY `image_user_id` (`image_user_id`), + KEY `image_album_id` (`image_album_id`), + KEY `image_uploader_ip` (`image_uploader_ip`), + KEY `image_storage_mode` (`image_storage_mode`), + KEY `image_path` (`image_path`(255)), + KEY `image_storage_id` (`image_storage_id`), + KEY `image_md5` (`image_md5`), + KEY `image_source_md5` (`image_source_md5`), + KEY `image_views` (`image_views`), + KEY `image_category_id` (`image_category_id`), + KEY `image_chain` (`image_chain`), + KEY `image_expiration_date_gmt` (`image_expiration_date_gmt`), + KEY `image_likes` (`image_likes`), + KEY `image_is_animated` (`image_is_animated`), + KEY `image_is_approved` (`image_is_approved`), + KEY `image_is_360` (`image_is_360`), + KEY `image_album_id_image_id` (`image_album_id`, `image_id`), + FULLTEXT KEY `searchindex` (`image_name`,`image_title`,`image_description`,`image_original_filename`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/images_hash.sql b/app/schemas/mysql-8/images_hash.sql new file mode 100644 index 0000000..0ef0a0e --- /dev/null +++ b/app/schemas/mysql-8/images_hash.sql @@ -0,0 +1,6 @@ +DROP TABLE IF EXISTS `%table_prefix%images_hash`; +CREATE TABLE `%table_prefix%images_hash` ( + `image_hash_image_id` bigint(32) NOT NULL, + `image_hash_hash` mediumtext NOT NULL, + PRIMARY KEY (`image_hash_image_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/importing.sql b/app/schemas/mysql-8/importing.sql new file mode 100644 index 0000000..c4aef57 --- /dev/null +++ b/app/schemas/mysql-8/importing.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `%table_prefix%importing`; +CREATE TABLE `%table_prefix%importing` ( + `importing_id` bigint(32) NOT NULL AUTO_INCREMENT, + `importing_import_id` bigint(32) NOT NULL, + `importing_path` varchar(4096) NOT NULL, + `importing_content_type` enum('user','album','image') NOT NULL, + `importing_content_id` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`importing_id`), + UNIQUE KEY `importing_path` (`importing_path`(767)) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/imports.sql b/app/schemas/mysql-8/imports.sql new file mode 100644 index 0000000..5745158 --- /dev/null +++ b/app/schemas/mysql-8/imports.sql @@ -0,0 +1,21 @@ +DROP TABLE IF EXISTS `%table_prefix%imports`; +CREATE TABLE `%table_prefix%imports` ( + `import_id` bigint(32) NOT NULL AUTO_INCREMENT, + `import_path` varchar(4096) NOT NULL, + `import_options` varchar(255) DEFAULT NULL, + `import_status` enum('queued','working','paused','canceled','completed') NOT NULL, + `import_users` bigint(32) NOT NULL DEFAULT '0', + `import_images` bigint(32) NOT NULL DEFAULT '0', + `import_albums` bigint(32) NOT NULL DEFAULT '0', + `import_time_created` datetime DEFAULT NULL, + `import_time_updated` datetime DEFAULT NULL, + `import_errors` tinyint(1) NOT NULL DEFAULT '0', + `import_started` tinyint(1) NOT NULL DEFAULT '0', + `import_continuous` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`import_id`), + KEY `import_path` (`import_path`(767)) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; + +INSERT INTO `%table_prefix%imports` VALUES ('1', '%rootPath%importing/no-parse', 'a:1:{s:4:"root";s:5:"plain";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '1', '1'); +INSERT INTO `%table_prefix%imports` VALUES ('2', '%rootPath%importing/parse-users', 'a:1:{s:4:"root";s:5:"users";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '1', '1'); +INSERT INTO `%table_prefix%imports` VALUES ('3', '%rootPath%importing/parse-albums', 'a:1:{s:4:"root";s:6:"albums";}', 'working', '0', '0', '0', NOW(), NOW(), '0', '1', '1'); \ No newline at end of file diff --git a/app/schemas/mysql-8/ip_bans.sql b/app/schemas/mysql-8/ip_bans.sql new file mode 100644 index 0000000..dd5bf2b --- /dev/null +++ b/app/schemas/mysql-8/ip_bans.sql @@ -0,0 +1,13 @@ +DROP TABLE IF EXISTS `%table_prefix%ip_bans`; +CREATE TABLE `%table_prefix%ip_bans` ( + `ip_ban_id` bigint(20) NOT NULL AUTO_INCREMENT, + `ip_ban_date` datetime NOT NULL, + `ip_ban_date_gmt` datetime NOT NULL, + `ip_ban_expires` datetime DEFAULT NULL, + `ip_ban_expires_gmt` datetime DEFAULT NULL, + `ip_ban_ip` varchar(255) NOT NULL, + `ip_ban_message` text, + PRIMARY KEY (`ip_ban_id`), + KEY `ip_ban_date_gmt` (`ip_ban_date_gmt`), + UNIQUE KEY `ip_ban_ip` (`ip_ban_ip`) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/likes.sql b/app/schemas/mysql-8/likes.sql new file mode 100644 index 0000000..8d9d4b1 --- /dev/null +++ b/app/schemas/mysql-8/likes.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%likes`; +CREATE TABLE `%table_prefix%likes` ( + `like_id` bigint(32) NOT NULL AUTO_INCREMENT, + `like_date` datetime NOT NULL, + `like_date_gmt` datetime NOT NULL, + `like_user_id` bigint(32) DEFAULT NULL, + `like_content_type` enum('image','album') DEFAULT NULL, + `like_content_id` bigint(32) NOT NULL, + `like_content_user_id` bigint(32) DEFAULT NULL, + `like_ip` varchar(255) NOT NULL, + PRIMARY KEY (`like_id`), + KEY `like_date_gmt` (`like_date_gmt`), + KEY `like_user_id` (`like_user_id`), + KEY `like_content_type` (`like_content_type`), + KEY `like_content_id` (`like_content_id`), + KEY `like_content_user_id` (`like_content_user_id`), + KEY `like_ip` (`like_ip`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; diff --git a/app/schemas/mysql-8/locks.sql b/app/schemas/mysql-8/locks.sql new file mode 100644 index 0000000..d9ba8e2 --- /dev/null +++ b/app/schemas/mysql-8/locks.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS `%table_prefix%locks`; +CREATE TABLE `%table_prefix%locks` ( + `lock_id` bigint(20) NOT NULL AUTO_INCREMENT, + `lock_name` varchar(255) NOT NULL, + `lock_date_gmt` datetime NOT NULL, + `lock_expires_gmt` datetime DEFAULT NULL, + PRIMARY KEY (`lock_id`), + KEY `lock_date_gmt` (`lock_date_gmt`), + KEY `lock_expires_gmt` (`lock_expires_gmt`), + UNIQUE KEY `lock_name` (`lock_name`) USING BTREE +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/login_connections.sql b/app/schemas/mysql-8/login_connections.sql new file mode 100644 index 0000000..87c14e1 --- /dev/null +++ b/app/schemas/mysql-8/login_connections.sql @@ -0,0 +1,16 @@ +DROP TABLE IF EXISTS `%table_prefix%login_connections`; +CREATE TABLE `%table_prefix%login_connections` ( + `login_connection_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_connection_user_id` bigint(32) NOT NULL, + `login_connection_provider_id` bigint(32) NOT NULL, + `login_connection_date_gmt` datetime NOT NULL, + `login_connection_resource_id` varchar(255) NOT NULL, + `login_connection_resource_name` mediumtext, + `login_connection_token` mediumtext NOT NULL COMMENT 'Ciphertext', + PRIMARY KEY (`login_connection_id`), + UNIQUE KEY `login_connection_unique` (`login_connection_user_id`,`login_connection_provider_id`), + KEY `login_connection_user_id` (`login_connection_user_id`), + KEY `login_connection_date_gmt` (`login_connection_date_gmt`), + KEY `login_connection_provider_id` (`login_connection_provider_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; + diff --git a/app/schemas/mysql-8/login_cookies.sql b/app/schemas/mysql-8/login_cookies.sql new file mode 100644 index 0000000..d41def3 --- /dev/null +++ b/app/schemas/mysql-8/login_cookies.sql @@ -0,0 +1,16 @@ +DROP TABLE IF EXISTS `%table_prefix%login_cookies`; +CREATE TABLE `%table_prefix%login_cookies` ( + `login_cookie_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_cookie_user_id` bigint(32) NOT NULL, + `login_cookie_connection_id` bigint(32) DEFAULT 0, + `login_cookie_date_gmt` datetime NOT NULL, + `login_cookie_ip` varchar(255) DEFAULT NULL, + `login_cookie_user_agent` mediumtext NOT NULL, + `login_cookie_hash` mediumtext NOT NULL, + PRIMARY KEY (`login_cookie_id`), + UNIQUE KEY `login_cookie_unique` (`login_cookie_user_id`,`login_cookie_connection_id`,`login_cookie_date_gmt`), + KEY `login_cookie_user_id_date_gmt` (`login_cookie_user_id`, `login_cookie_date_gmt`), + KEY `login_cookie_user_id` (`login_cookie_user_id`), + KEY `login_cookie_ip` (`login_cookie_ip`), + KEY `login_cookie_connection_id` (`login_cookie_connection_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/login_passwords.sql b/app/schemas/mysql-8/login_passwords.sql new file mode 100644 index 0000000..91200f2 --- /dev/null +++ b/app/schemas/mysql-8/login_passwords.sql @@ -0,0 +1,9 @@ +DROP TABLE IF EXISTS `%table_prefix%login_passwords`; +CREATE TABLE `%table_prefix%login_passwords` ( + `login_password_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_password_user_id` bigint(32) NOT NULL, + `login_password_date_gmt` datetime NOT NULL, + `login_password_hash` mediumtext NOT NULL, + PRIMARY KEY (`login_password_id`), + UNIQUE KEY `login_password_user_id` (`login_password_user_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/login_providers.sql b/app/schemas/mysql-8/login_providers.sql new file mode 100644 index 0000000..7aa3ba1 --- /dev/null +++ b/app/schemas/mysql-8/login_providers.sql @@ -0,0 +1,42 @@ +DROP TABLE IF EXISTS `%table_prefix%login_providers`; +CREATE TABLE `%table_prefix%login_providers` ( + `login_provider_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_provider_name` varchar(255) DEFAULT NULL, + `login_provider_label` varchar(255) DEFAULT NULL, + `login_provider_key_id` mediumtext DEFAULT NULL, + `login_provider_key_secret` mediumtext DEFAULT NULL, + `login_provider_is_enabled` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`login_provider_id`), + UNIQUE KEY `login_provider_name` (`login_provider_name`), + KEY `login_provider_is_enabled` (`login_provider_is_enabled`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; +INSERT INTO `%table_prefix%login_providers` VALUES ('1', 'facebook', 'Facebook', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('2', 'twitter', 'Twitter', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('3', 'google', 'Google', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('4', 'vkontakte', 'VK', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('5', 'apple', 'Apple', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('6', 'amazon', 'Amazon', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('7', 'bitbucket', 'BitBucket', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('8', 'discord', 'Discord', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('9', 'dribbble', 'Dribbble', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('10', 'dropbox', 'Dropbox', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('11', 'github', 'GitHub', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('12', 'gitlab', 'GitLab', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('13', 'instagram', 'Instagram', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('14', 'linkedin', 'LinkedIn', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('15', 'mailru', 'Mailru', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('16', 'medium', 'Medium', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('17', 'odnoklassniki', 'Odnoklassniki', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('18', 'orcid', 'ORCID', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('19', 'reddit', 'Reddit', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('20', 'spotify', 'Spotify', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('21', 'steam', 'Steam', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('22', 'strava', 'Strava', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('23', 'telegram', 'Telegram', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('24', 'tumblr', 'Tumblr', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('25', 'twitchtv', 'Twitch', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('26', 'wechat', 'WeChat', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('27', 'wordpress', 'WordPress', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('28', 'yandex', 'Yandex', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('29', 'yahoo', 'Yahoo', null, null, '0'); +INSERT INTO `%table_prefix%login_providers` VALUES ('30', 'qq', 'QQ', null, null, '0'); diff --git a/app/schemas/mysql-8/logins.sql b/app/schemas/mysql-8/logins.sql new file mode 100644 index 0000000..fbfe247 --- /dev/null +++ b/app/schemas/mysql-8/logins.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%logins`; +CREATE TABLE `%table_prefix%logins` ( + `login_id` bigint(32) NOT NULL AUTO_INCREMENT, + `login_user_id` bigint(32) NOT NULL, + `login_type` enum('password','session','cookie','facebook','twitter','google','vk','cookie_facebook','cookie_twitter','cookie_google','cookie_vk') NOT NULL, + `login_ip` varchar(255) DEFAULT NULL, + `login_hostname` mediumtext, + `login_date` datetime NOT NULL, + `login_date_gmt` datetime NOT NULL, + `login_resource_id` varchar(255) DEFAULT NULL, + `login_resource_name` mediumtext, + `login_resource_avatar` mediumtext, + `login_resource_url` mediumtext, + `login_secret` mediumtext DEFAULT NULL COMMENT 'The secret part', + `login_token_hash` mediumtext COMMENT 'Hashed complement to secret if needed', + PRIMARY KEY (`login_id`), + KEY `login_user_id` (`login_user_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/notifications.sql b/app/schemas/mysql-8/notifications.sql new file mode 100644 index 0000000..a5880c9 --- /dev/null +++ b/app/schemas/mysql-8/notifications.sql @@ -0,0 +1,19 @@ +DROP TABLE IF EXISTS `%table_prefix%notifications`; +CREATE TABLE `%table_prefix%notifications` ( + `notification_id` bigint(32) NOT NULL AUTO_INCREMENT, + `notification_date_gmt` datetime NOT NULL, + `notification_user_id` bigint(32) NOT NULL, + `notification_trigger_user_id` bigint(32) DEFAULT NULL, + `notification_type` enum('follow','like') NOT NULL, + `notification_content_type` enum('user','image','album') NOT NULL, + `notification_type_id` bigint(32) NOT NULL COMMENT 'type_id based on action (type) table', + `notification_is_read` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`notification_id`), + KEY `notification_date_gmt` (`notification_date_gmt`), + KEY `notification_user_id` (`notification_user_id`), + KEY `notification_trigger_user_id` (`notification_trigger_user_id`), + KEY `notification_type` (`notification_type`), + KEY `notification_content_type` (`notification_content_type`), + KEY `notification_type_id` (`notification_type_id`), + KEY `notification_is_read` (`notification_is_read`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/app/schemas/mysql-8/pages.sql b/app/schemas/mysql-8/pages.sql new file mode 100644 index 0000000..15d0e94 --- /dev/null +++ b/app/schemas/mysql-8/pages.sql @@ -0,0 +1,29 @@ +DROP TABLE IF EXISTS `%table_prefix%pages`; +CREATE TABLE `%table_prefix%pages` ( + `page_id` bigint(32) NOT NULL AUTO_INCREMENT, + `page_url_key` varchar(32) DEFAULT NULL, + `page_type` enum('internal','link') NOT NULL DEFAULT 'internal', + `page_file_path` varchar(255) DEFAULT NULL, + `page_link_url` mediumtext, + `page_icon` varchar(255) DEFAULT NULL, + `page_title` varchar(255) NOT NULL, + `page_description` mediumtext, + `page_keywords` mediumtext, + `page_is_active` tinyint(1) NOT NULL DEFAULT '1', + `page_is_link_visible` tinyint(1) NOT NULL DEFAULT '1', + `page_attr_target` enum('_self','_blank') DEFAULT '_self', + `page_attr_rel` varchar(255) DEFAULT NULL, + `page_sort_display` int(11) DEFAULT NULL, + `page_internal` varchar(255) DEFAULT NULL, + `page_code` mediumtext, + PRIMARY KEY (`page_id`), + UNIQUE KEY `page_internal` (`page_internal`), + KEY `page_url_key` (`page_url_key`), + KEY `page_type` (`page_type`), + KEY `page_is_active` (`page_is_active`), + KEY `page_is_link_visible` (`page_is_link_visible`), + KEY `page_sort_display` (`page_sort_display`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; +INSERT INTO `%table_prefix%pages` VALUES ('1', 'tos', 'internal', null, null, 'fas fa-landmark', 'Terms of service', null, null, '1', '1', '_self', null, '1', 'tos', null); +INSERT INTO `%table_prefix%pages` VALUES ('2', 'privacy', 'internal', null, null, 'fas fa-lock', 'Privacy', null, null, '1', '1', '_self', null, '2', 'privacy', null); +INSERT INTO `%table_prefix%pages` VALUES ('3', 'contact', 'internal', null, null, 'fas fa-at', 'Contact', null, null, '1', '1', '_self', null, '3', 'contact', null); diff --git a/app/schemas/mysql-8/queues.sql b/app/schemas/mysql-8/queues.sql new file mode 100644 index 0000000..8e863e0 --- /dev/null +++ b/app/schemas/mysql-8/queues.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS `%table_prefix%queues`; +CREATE TABLE `%table_prefix%queues` ( + `queue_id` bigint(32) NOT NULL AUTO_INCREMENT, + `queue_type` enum('storage-delete') NOT NULL, + `queue_date_gmt` datetime NOT NULL, + `queue_args` longtext NOT NULL, + `queue_join` bigint(32) NOT NULL, + `queue_attempts` varchar(255) DEFAULT '0', + `queue_status` enum('pending','failed') NOT NULL DEFAULT 'pending', + PRIMARY KEY (`queue_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/app/schemas/mysql-8/requests.sql b/app/schemas/mysql-8/requests.sql new file mode 100644 index 0000000..f55e6e9 --- /dev/null +++ b/app/schemas/mysql-8/requests.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%requests`; +CREATE TABLE `%table_prefix%requests` ( + `request_id` bigint(32) NOT NULL AUTO_INCREMENT, + `request_type` enum('upload','signup','account-edit','account-password-forgot','account-password-reset','account-resend-activation','account-email-needed','account-change-email','account-activate','login', 'content-password', 'account-two-factor') NOT NULL, + `request_user_id` bigint(32) DEFAULT NULL, + `request_content_id` bigint(32) DEFAULT NULL, + `request_ip` varchar(255) NOT NULL, + `request_date` datetime NOT NULL, + `request_date_gmt` datetime NOT NULL, + `request_result` enum('success','fail') NOT NULL, + PRIMARY KEY (`request_id`), + KEY `request_type` (`request_type`), + KEY `request_user_id` (`request_user_id`), + KEY `request_content_id` (`request_content_id`), + KEY `request_ip` (`request_ip`), + KEY `request_date_gmt` (`request_date_gmt`), + KEY `request_result` (`request_result`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; diff --git a/app/schemas/mysql-8/settings.sql b/app/schemas/mysql-8/settings.sql new file mode 100644 index 0000000..9c4a685 --- /dev/null +++ b/app/schemas/mysql-8/settings.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `%table_prefix%settings`; +CREATE TABLE `%table_prefix%settings` ( + `setting_id` int(11) NOT NULL AUTO_INCREMENT, + `setting_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `setting_value` mediumtext, + `setting_default` mediumtext, + `setting_typeset` enum('string','bool') DEFAULT 'string', + PRIMARY KEY (`setting_id`), + KEY `setting_name` (`setting_name`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/stats.sql b/app/schemas/mysql-8/stats.sql new file mode 100644 index 0000000..2b8beaf --- /dev/null +++ b/app/schemas/mysql-8/stats.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%stats`; +CREATE TABLE `%table_prefix%stats` ( + `stat_id` bigint(32) NOT NULL AUTO_INCREMENT, + `stat_type` enum('total','date') NOT NULL, + `stat_date_gmt` date DEFAULT NULL, + `stat_users` bigint(32) NOT NULL DEFAULT '0', + `stat_images` bigint(32) NOT NULL DEFAULT '0', + `stat_albums` bigint(32) NOT NULL DEFAULT '0', + `stat_image_views` bigint(32) NOT NULL DEFAULT '0', + `stat_album_views` bigint(32) NOT NULL DEFAULT '0', + `stat_image_likes` bigint(32) NOT NULL DEFAULT '0', + `stat_album_likes` bigint(32) NOT NULL DEFAULT '0', + `stat_disk_used` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`stat_id`), + UNIQUE KEY `stat_date_gmt` (`stat_date_gmt`) USING BTREE, + KEY `stat_type` (`stat_type`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; +INSERT INTO `%table_prefix%stats` VALUES ('1', 'total', NULL, '0', '0', '0', '0', '0', '0', '0', '0'); \ No newline at end of file diff --git a/app/schemas/mysql-8/storage_apis.sql b/app/schemas/mysql-8/storage_apis.sql new file mode 100644 index 0000000..886244c --- /dev/null +++ b/app/schemas/mysql-8/storage_apis.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS `%table_prefix%storage_apis`; +CREATE TABLE `%table_prefix%storage_apis` ( + `storage_api_id` bigint(32) NOT NULL AUTO_INCREMENT, + `storage_api_name` varchar(255) NOT NULL, + `storage_api_type` varchar(255) NOT NULL, + PRIMARY KEY (`storage_api_id`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8; +INSERT INTO `%table_prefix%storage_apis` VALUES ('1', 'Amazon S3', 's3'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('2', 'Google Cloud', 'gcloud'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('3', 'Microsoft Azure', 'azure'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('4', 'Chevereto Grid', 'chvgrid'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('5', 'FTP', 'ftp'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('6', 'SFTP', 'sftp'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('7', 'OpenStack', 'openstack'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('8', 'Local', 'local'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('9', 'S3 compatible', 's3compatible'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('10', 'Alibaba Cloud OSS', 'oss'); +INSERT INTO `%table_prefix%storage_apis` VALUES ('11', 'Backblaze B2', 'b2'); \ No newline at end of file diff --git a/app/schemas/mysql-8/storages.sql b/app/schemas/mysql-8/storages.sql new file mode 100644 index 0000000..f300bbb --- /dev/null +++ b/app/schemas/mysql-8/storages.sql @@ -0,0 +1,22 @@ +DROP TABLE IF EXISTS `%table_prefix%storages`; +CREATE TABLE `%table_prefix%storages` ( + `storage_id` bigint(32) NOT NULL AUTO_INCREMENT, + `storage_api_id` bigint(32) NOT NULL, + `storage_name` varchar(255) NOT NULL, + `storage_service` varchar(255) DEFAULT NULL, + `storage_url` varchar(255) NOT NULL, + `storage_bucket` varchar(255) DEFAULT NULL, + `storage_region` varchar(255) DEFAULT NULL, + `storage_server` varchar(255) DEFAULT NULL, + `storage_account_id` varchar(255) DEFAULT NULL, + `storage_account_name` varchar(255) DEFAULT NULL, + `storage_key` mediumtext, + `storage_secret` mediumtext, + `storage_is_https` tinyint(1) NOT NULL DEFAULT '0', + `storage_is_active` tinyint(1) NOT NULL DEFAULT '0', + `storage_capacity` bigint(32) DEFAULT NULL, + `storage_space_used` bigint(32) DEFAULT '0', + PRIMARY KEY (`storage_id`), + KEY `storage_api_id` (`storage_api_id`), + KEY `storage_is_active` (`storage_is_active`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/schemas/mysql-8/two_factors.sql b/app/schemas/mysql-8/two_factors.sql new file mode 100644 index 0000000..8234045 --- /dev/null +++ b/app/schemas/mysql-8/two_factors.sql @@ -0,0 +1,10 @@ +DROP TABLE IF EXISTS `%table_prefix%two_factors`; +CREATE TABLE `%table_prefix%two_factors` ( + `two_factor_id` bigint(32) NOT NULL AUTO_INCREMENT, + `two_factor_user_id` bigint(32) DEFAULT NULL, + `two_factor_date_gmt` datetime NOT NULL, + `two_factor_secret` mediumtext NOT NULL, + PRIMARY KEY (`two_factor_id`), + KEY `two_factor_user_id` (`two_factor_user_id`), + KEY `two_factor_date_gmt` (`two_factor_date_gmt`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/schemas/mysql-8/users.sql b/app/schemas/mysql-8/users.sql new file mode 100644 index 0000000..b18ed51 --- /dev/null +++ b/app/schemas/mysql-8/users.sql @@ -0,0 +1,57 @@ +DROP TABLE IF EXISTS `%table_prefix%users`; +CREATE TABLE `%table_prefix%users` ( + `user_id` bigint(32) NOT NULL AUTO_INCREMENT, + `user_name` varchar(255) DEFAULT NULL, + `user_username` varchar(255) NOT NULL, + `user_date` datetime NOT NULL, + `user_date_gmt` datetime NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `user_avatar_filename` varchar(255) DEFAULT NULL, + `user_facebook_username` varchar(255) DEFAULT NULL, + `user_twitter_username` varchar(255) DEFAULT NULL, + `user_website` varchar(255) DEFAULT NULL, + `user_background_filename` varchar(255) DEFAULT NULL, + `user_bio` varchar(255) DEFAULT NULL, + `user_timezone` varchar(255) NOT NULL, + `user_language` varchar(255) DEFAULT NULL, + `user_status` enum('valid','awaiting-confirmation','awaiting-email','banned') NOT NULL, + `user_is_admin` tinyint(1) NOT NULL DEFAULT '0', + `user_is_manager` tinyint(1) NOT NULL DEFAULT '0', + `user_is_private` tinyint(1) NOT NULL DEFAULT '0', + `user_palette_id` int(11) NOT NULL DEFAULT '0', + `user_newsletter_subscribe` tinyint(1) NOT NULL DEFAULT '1', + `user_show_nsfw_listings` tinyint(1) NOT NULL DEFAULT '0', + `user_image_count` bigint(32) NOT NULL DEFAULT '0', + `user_album_count` bigint(32) NOT NULL DEFAULT '0', + `user_image_keep_exif` tinyint(1) NOT NULL DEFAULT '1', + `user_image_expiration` varchar(255) DEFAULT NULL, + `user_registration_ip` varchar(255) NOT NULL, + `user_likes` bigint(32) NOT NULL DEFAULT '0' COMMENT 'Likes made to content owned by this user', + `user_liked` bigint(32) NOT NULL DEFAULT '0' COMMENT 'Likes made by this user', + `user_following` bigint(32) NOT NULL DEFAULT '0', + `user_followers` bigint(32) NOT NULL DEFAULT '0', + `user_content_views` bigint(32) NOT NULL DEFAULT '0', + `user_notifications_unread` bigint(32) NOT NULL DEFAULT '0', + PRIMARY KEY (`user_id`), + UNIQUE KEY `username` (`user_username`) USING BTREE, + UNIQUE KEY `email` (`user_email`) USING BTREE, + KEY `user_date_gmt` (`user_date_gmt`), + KEY `user_status` (`user_status`), + KEY `user_is_admin` (`user_is_admin`), + KEY `user_is_manager` (`user_is_manager`), + KEY `user_is_private` (`user_is_private`), + KEY `user_palette_id` (`user_palette_id`), + KEY `user_newsletter_subscribe` (`user_newsletter_subscribe`), + KEY `user_show_nsfw_listings` (`user_show_nsfw_listings`), + KEY `user_image_count` (`user_image_count`), + KEY `user_album_count` (`user_album_count`), + KEY `user_image_keep_exif` (`user_image_keep_exif`), + KEY `user_image_expiration` (`user_image_expiration`), + KEY `user_registration_ip` (`user_registration_ip`), + KEY `user_likes` (`user_likes`), + KEY `user_following` (`user_following`), + KEY `user_followers` (`user_followers`), + KEY `user_liked` (`user_liked`), + KEY `user_content_views` (`user_content_views`), + FULLTEXT KEY `searchindex` (`user_name`,`user_username`) +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file diff --git a/app/src/Actions/Auth/AuthVerifyCSRFTokenAction.php b/app/src/Actions/Auth/AuthVerifyCSRFTokenAction.php new file mode 100644 index 0000000..c6c041f --- /dev/null +++ b/app/src/Actions/Auth/AuthVerifyCSRFTokenAction.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Auth; + +use Chevere\Action\Action; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\String\AssertString; + +final class AuthVerifyCSRFTokenAction extends Action +{ + public function run( + #[ParameterAttribute(description: 'Token granted to the user session.')] + string $sessionValue, + #[ParameterAttribute(description: 'Token provided by the user.')] + string $userInput + ): array { + (new AssertString($sessionValue)) + ->same($userInput); + + return []; + } +} diff --git a/app/src/Actions/Auth/AuthVerifyRepositoryAccessAction.php b/app/src/Actions/Auth/AuthVerifyRepositoryAccessAction.php new file mode 100644 index 0000000..0ed0599 --- /dev/null +++ b/app/src/Actions/Auth/AuthVerifyRepositoryAccessAction.php @@ -0,0 +1,47 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Auth; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; + +class AuthVerifyRepositoryAccessAction extends Action +{ + public function getResponseParameters(): ParametersInterface + { + return parameters( + grant: stringParameter( + description: 'Describes the permission grantee.', + ) + ); + } + + public function run( + #[ParameterAttribute(description: 'User id for the user requesting this resource.')] + string $requesterUserId, + #[ParameterAttribute(description: 'Repository name to check access.')] + string $repository, + #[ParameterAttribute( + description: 'Permission level to check.', + regex: '/^(read|write|execute)$/' + )] + string $level + ): array { + return data( + grant: 'isAdmin' + ); + } +} diff --git a/app/src/Actions/Auth/AuthVerifyResourceAccessAction.php b/app/src/Actions/Auth/AuthVerifyResourceAccessAction.php new file mode 100644 index 0000000..4f11771 --- /dev/null +++ b/app/src/Actions/Auth/AuthVerifyResourceAccessAction.php @@ -0,0 +1,56 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Auth; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; + +class AuthVerifyResourceAccessAction extends Action +{ + public function run( + #[ParameterAttribute( + description: 'User id for the user requesting this resource.' + )] + int $requesterUserId, + #[ParameterAttribute( + description: 'User id for the owner of the resource.' + )] + int $ownerUserId, + #[ParameterAttribute( + description: 'Resource name to check access.' + )] + string $resource, + #[ + ParameterAttribute( + description: 'Permission level to check.', + regex: '/^(read|write|execute)$/' + )] + string $level + ): array { + return data( + grant: 'isAdmin' + ); + } + + public function getResponseParameters(): ParametersInterface + { + return parameters( + grant: stringParameter( + description: 'Describes the permission grantee.', + ) + ); + } +} diff --git a/app/src/Actions/Database/DatabaseReserveRowAction.php b/app/src/Actions/Database/DatabaseReserveRowAction.php new file mode 100644 index 0000000..d442a49 --- /dev/null +++ b/app/src/Actions/Database/DatabaseReserveRowAction.php @@ -0,0 +1,64 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Database; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use function Chevere\Parameter\integerParameter; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use Chevere\Parameter\Parameters; +use function Chevere\Parameter\parameters; +use Chevereto\Database\Database; + +/** + * Reserves a row in the database. + * + * Arguments: + * + * ```php + * table: string, + * ``` + * + * Response: + * + * ```php + * id: int, + * ``` + */ +class DatabaseReserveRowAction extends Action +{ + private Database $database; + + public function getContainerParameters(): ParametersInterface + { + return new Parameters( + database: objectParameter(Database::class) + ); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + id: integerParameter() + ); + } + + public function run(string $table): array + { + // $db->insert row + return data( + id: 123 + ); + } +} diff --git a/app/src/Actions/File/FileFetchSourceAction.php b/app/src/Actions/File/FileFetchSourceAction.php new file mode 100644 index 0000000..b566ed9 --- /dev/null +++ b/app/src/Actions/File/FileFetchSourceAction.php @@ -0,0 +1,61 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\File; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; +use Chevere\Serialize\Deserialize; +use function Chevereto\Encoding\assertBase64; +use function Chevereto\Encoding\storeDecodedBase64; +use function Chevereto\File\storeDownloadedUrl; +use Laminas\Uri\UriFactory; +use Throwable; + +final class FileFetchSourceAction extends Action +{ + public function getResponseParameters(): ParametersInterface + { + return + parameters( + filepath: stringParameter(), + ); + } + + public function run( + #[ParameterAttribute( + description: 'A binary file, base64 data, or an URL for a file.', + )] + string $source + ): array { + try { + $deserialize = new Deserialize($source); + $filepath = $deserialize->var()['tmp_name']; + } catch (Throwable) { + $filepath = tempnam(sys_get_temp_dir(), 'chv.temp'); + $uri = UriFactory::factory($source); + if ($uri->isValid()) { + storeDownloadedUrl($source, $filepath); + } else { + assertBase64($source); + storeDecodedBase64($source, $filepath); + } + } + + return data( + filepath: $filepath + ); + } +} diff --git a/app/src/Actions/File/FileNamingAction.php b/app/src/Actions/File/FileNamingAction.php new file mode 100644 index 0000000..549bf0f --- /dev/null +++ b/app/src/Actions/File/FileNamingAction.php @@ -0,0 +1,101 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\File; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Filesystem\Filename; +use Chevere\Filesystem\Interfaces\FilenameInterface; +use Chevere\Filesystem\Interfaces\PathInterface; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use function Chevere\String\randomString; +use Chevereto\Storage\Storage; + +/** + * Determines the best available target filename for the given storage, path and naming. + */ +class FileNamingAction extends Action +{ + public function run( + int $id, + #[ParameterAttribute( + regex: '/^.+\.[a-zA-Z]+$/' + )] + string $name, + Storage $storage, + PathInterface $path, + #[ParameterAttribute( + regex: '/^original|random|mixed|id$/' + )] + string $naming = 'original', + ): array { + $encodedId = 'encoded'; + $file = new Filename($name); + if ($naming === 'id') { + return ['filename' => new Filename($encodedId . '.' . $file->extension())]; + } + $name = $this->getName($naming, $file); + // USE OWN INDEX, REQUIRE STORAGE ID PARAM + while ($storage->adapter()->fileExists($path->getChild($name)->__toString())) { + if ($naming === 'original') { + $naming = 'mixed'; + } + $name = $this->getName($naming, $file); + } + + return data( + filename: new Filename($name) + ); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + filename: objectParameter( + className: Filename::class + ), + ); + } + + public function getName(string $naming, FilenameInterface $filename): string + { + return match ($naming) { + 'original' => $filename->__toString(), + 'random' => $this->getRandomName($filename), + 'mixed' => $this->getMixedName($filename), + }; + } + + private function getRandomName(FilenameInterface $filename): string + { + return randomString(32) . '.' . $filename->extension(); + } + + private function getMixedName(FilenameInterface $filename): string + { + $charsLength = 16; + $chars = randomString($charsLength); + $name = $filename->name(); + $nameLength = mb_strlen($name); + $withExtensionLength = mb_strlen($filename->extension()) + 1; + if ($nameLength + $charsLength > Filename::MAX_LENGTH_BYTES) { + $chop = Filename::MAX_LENGTH_BYTES - $charsLength - $nameLength - $withExtensionLength; + $name = mb_substr($name, 0, $chop); + } + + return $name . $chars . '.' . $filename->extension(); + } +} diff --git a/app/src/Actions/File/FileUploadAction.php b/app/src/Actions/File/FileUploadAction.php new file mode 100644 index 0000000..2249335 --- /dev/null +++ b/app/src/Actions/File/FileUploadAction.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\File; + +use Chevere\Action\Action; +use Chevere\Filesystem\Interfaces\FilenameInterface; +use Chevere\Filesystem\Interfaces\PathInterface; +use Chevereto\Storage\Storage; + +/** + * Upload the filename to the target storage. + * @TODO If this does storage, it should be under /Storage + */ +class FileUploadAction extends Action +{ + public function run( + string $filepath, + FilenameInterface $targetFilename, + Storage $storage, + PathInterface $path + ): array { + return []; + } +} diff --git a/app/src/Actions/File/FileValidateAction.php b/app/src/Actions/File/FileValidateAction.php new file mode 100644 index 0000000..34f0db2 --- /dev/null +++ b/app/src/Actions/File/FileValidateAction.php @@ -0,0 +1,131 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\File; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use function Chevere\Message\message; +use Chevere\Parameter\Attributes\ParameterAttribute; +use function Chevere\Parameter\integerParameter; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use function Safe\filesize; +use function Safe\md5_file; +use function Safe\mime_content_type; +use Throwable; + +/** + * Validate file type and its size. + */ +class FileValidateAction extends Action +{ + private array $mimes = []; + + private int $maxBytes = 0; + + private int $minBytes = 0; + + public function run( + #[ParameterAttribute( + description: 'Comma-separated list of allowed mime-types.', + regex: '/^([\w]+\/[\w\-\+\.]+)+(,([\w]+\/[\w\-\+\.]+))*$/' + )] + string $mimes, + string $filepath, + int $maxBytes = 0, + int $minBytes = 0, + ): array { + $this->mimes = explode(',', $mimes); + $this->minBytes = $minBytes; + $this->maxBytes = $maxBytes; + $bytes = $this->assertGetFileBytes($filepath); + $this->assertMaxBytes($bytes); + $this->assertMinBytes($bytes); + $mime = mime_content_type($filepath); + $this->assertMime($mime); + + return data( + bytes: $bytes, + mime: $mime, + md5: md5_file($filepath), + ); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + bytes : integerParameter(), + mime : stringParameter(), + md5 : stringParameter(), + ); + } + + /** + * @codeCoverageIgnore + */ + private function assertGetFileBytes(string $filepath): int + { + try { + return filesize($filepath); + } catch (Throwable $e) { + throw new InvalidArgumentException( + message($e->getMessage()), + 1000 + ); + } + } + + private function assertMinBytes(int $bytes): void + { + if ($this->minBytes === 0) { + return; + } + if ($bytes < $this->minBytes) { + throw new InvalidArgumentException( + message("Filesize (%fileSize%) doesn't meet the minimum bytes required (%required%)") + ->withCode('%fileSize%', (string) $bytes . ' B') + ->withCode('%required%', (string) $this->minBytes . ' B'), + 1001 + ); + } + } + + private function assertMaxBytes(int $bytes): void + { + if ($this->maxBytes === 0) { + return; + } + if ($bytes > $this->maxBytes) { + throw new InvalidArgumentException( + message('Filesize (%fileSize%) exceeds the maximum bytes allowed (%allowed%)') + ->withCode('%fileSize%', (string) $bytes . ' B') + ->withCode('%allowed%', (string) $this->maxBytes . ' B'), + 1002 + ); + } + } + + private function assertMime(string $mime): void + { + if (!in_array($mime, $this->mimes, true)) { + throw new InvalidArgumentException( + message('File mime-type %type% is not allowed (allows %allowed%)') + ->withCode('%type%', $mime) + ->withCode('%allowed%', implode(', ', $this->mimes)), + 1004 + ); + } + } +} diff --git a/app/src/Actions/File/FileVerifyNotDuplicateAction.php b/app/src/Actions/File/FileVerifyNotDuplicateAction.php new file mode 100644 index 0000000..5fe7348 --- /dev/null +++ b/app/src/Actions/File/FileVerifyNotDuplicateAction.php @@ -0,0 +1,49 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\File; + +use Chevere\Action\Action; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use Chevere\Parameter\Parameters; +use Chevereto\Database\Database; + +/** + * Detects file duplication based in both perceptual and file hashing, against the uploading frequency. + */ +class FileVerifyNotDuplicateAction extends Action +{ + private Database $database; + + public function getContainerParameters(): ParametersInterface + { + return new Parameters( + database: objectParameter(Database::class) + ); + } + + public function run( + #[ParameterAttribute(regex: '/^[a-f0-9]{32}$/')] + string $md5, + #[ParameterAttribute(regex: '/^[0-9A-F]+$/i')] + string $perceptual, + #[ParameterAttribute(regex: '/((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/')] + string $ip, + #[ParameterAttribute(regex: '/^[4|6]$/')] + string $ipVersion + ): array { + // $db->query hash, rate, HALT if dupe + + return []; + } +} diff --git a/app/src/Actions/Image/ImageFetchMetaAction.php b/app/src/Actions/Image/ImageFetchMetaAction.php new file mode 100644 index 0000000..a85e2ed --- /dev/null +++ b/app/src/Actions/Image/ImageFetchMetaAction.php @@ -0,0 +1,54 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Image; + +use Chevere\Action\Action; +use Chevere\Parameter\ArrayParameter; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use Intervention\Image\Image; +use JeroenDesloovere\XmpMetadataExtractor\XmpMetadataExtractor; + +/** + * Fetch image metadata. + * + * Response parameters: + * + * ```php + * exif: array, + * iptc: array, + * xmp: array, + * ``` + */ +class ImageFetchMetaAction extends Action +{ + public function run(Image $image): array + { + $data = array_fill_keys(['exif', 'iptc', 'xmp'], []); + $data['exif'] = $image->exif() ?? []; + $data['iptc'] = $image->iptc() ?? []; + $xmpDataExtractor = new XmpMetadataExtractor(); + $data['xmp'] = $xmpDataExtractor->extractFromFile($image->basePath()); + + return $data; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + exif: new ArrayParameter(), + iptc: new ArrayParameter(), + xmp: new ArrayParameter(), + ); + } +} diff --git a/app/src/Actions/Image/ImageFixOrientationAction.php b/app/src/Actions/Image/ImageFixOrientationAction.php new file mode 100644 index 0000000..029cd63 --- /dev/null +++ b/app/src/Actions/Image/ImageFixOrientationAction.php @@ -0,0 +1,28 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Image; + +use Chevere\Action\Action; +use Intervention\Image\Image; + +/** + * Fix the image orientation based on Exif Orientation (if any, if needed). + */ +class ImageFixOrientationAction extends Action +{ + public function run(Image $image): array + { + $image->orientate()->save(); + + return []; + } +} diff --git a/app/src/Actions/Image/ImageInsertAction.php b/app/src/Actions/Image/ImageInsertAction.php new file mode 100644 index 0000000..95bad4e --- /dev/null +++ b/app/src/Actions/Image/ImageInsertAction.php @@ -0,0 +1,43 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Image; + +use Chevere\Action\Action; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use Chevere\Parameter\Parameters; +use Chevereto\Database\Database; + +/** + * Insert the image in the database. + */ +class ImageInsertAction extends Action +{ + private Database $database; + + public function getContainerParameters(): ParametersInterface + { + return new Parameters( + database: objectParameter(Database::class) + ); + } + + public function run( + int $id, + int $expires, + int $userId, + int $albumId, + ): array { + // TODO: DB inserting + return []; + } +} diff --git a/app/src/Actions/Image/ImageStripMetaAction.php b/app/src/Actions/Image/ImageStripMetaAction.php new file mode 100644 index 0000000..6c6def4 --- /dev/null +++ b/app/src/Actions/Image/ImageStripMetaAction.php @@ -0,0 +1,41 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Image; + +use Chevere\Action\Action; +use Imagick; +use Intervention\Image\Image; + +/** + * Strip image metadata. + */ +class ImageStripMetaAction extends Action +{ + public function run(Image $image): array + { + /** @var Imagick $imagick */ + $imagick = $image->getCore(); + if (!($imagick instanceof Imagick)) { + return []; + } + $profiles = $imagick->getImageProfiles('icc', true); + $imagick->stripImage(); + // @codeCoverageIgnoreStart + if (!empty($profiles)) { + $imagick->profileImage('icc', $profiles['icc']); + } + // @codeCoverageIgnoreEnd + $image->save(); + + return []; + } +} diff --git a/app/src/Actions/Image/ImageVerifyMediaAction.php b/app/src/Actions/Image/ImageVerifyMediaAction.php new file mode 100644 index 0000000..313050d --- /dev/null +++ b/app/src/Actions/Image/ImageVerifyMediaAction.php @@ -0,0 +1,169 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Image; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Message\Interfaces\MessageInterface; +use function Chevere\Message\message; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use function Chevereto\Image\imageHash; +use function Chevereto\Image\imageManager; +use Intervention\Image\Image; +use Intervention\Image\ImageManager; +use Throwable; + +/** + * Validates an image against the image processing and image dimensions. + * + * Response parameters: + * + * ```php + * image: \Intervention\Image\Image, + * perceptual: string, + * ``` + */ +class ImageVerifyMediaAction extends Action +{ + private int $width = 0; + + private int $height = 0; + + private int $maxWidth = 0; + + private int $maxHeight = 0; + + private int $minWidth = 0; + + private int $minHeight = 0; + + public function run( + string $filepath, + int $maxHeight, + int $maxWidth, + int $minHeight, + int $minWidth, + ): array { + $image = $this->assertGetImage($filepath); + $this->width = $image->width(); + $this->height = $image->height(); + $this->maxWidth = $maxWidth; + $this->maxHeight = $maxHeight; + $this->minWidth = $minWidth; + $this->minHeight = $minHeight; + $this->assertMinHeight(); + $this->assertMaxHeight(); + $this->assertMinWidth(); + $this->assertMaxWidth(); + + return data( + image: $image, + perceptual: imageHash()->hash($filepath) + ); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + image: objectParameter( + className: Image::class + ), + perceptual: stringParameter(), + ); + } + + private function assertGetImage(string $filepath): Image + { + try { + return imageManager()->make($filepath); + } catch (Throwable $e) { + throw new InvalidArgumentException( + previous: $e, + code: 1000, + message: message("Filepath %filepath% provided can't be handled by %manager%") + ->withCode('%filepath%', $filepath) + ->withCode('%manager%', ImageManager::class) + ); + } + } + + private function assertMinHeight(): void + { + if ($this->height < $this->minHeight) { + throw new InvalidArgumentException( + $this->getMinExceptionMessage('height', $this->height), + 1001 + ); + } + } + + private function assertMaxHeight(): void + { + if ($this->height > $this->maxHeight) { + throw new InvalidArgumentException( + $this->getMaxExceptionMessage('height', $this->height), + 1002 + ); + } + } + + private function assertMinWidth(): void + { + if ($this->width < $this->minWidth) { + throw new InvalidArgumentException( + $this->getMinExceptionMessage('width', $this->width), + 1003 + ); + } + } + + private function assertMaxWidth(): void + { + if ($this->width > $this->maxWidth) { + throw new InvalidArgumentException( + $this->getMaxExceptionMessage('width', $this->width), + 1004 + ); + } + } + + private function getMinExceptionMessage(string $dimension, int $provided): MessageInterface + { + return message("Image %dimension% %provided% doesn't meet the the minimum required (%required%)") + ->withCode('%dimension%', $dimension) + ->withCode('%provided%', (string) $provided) + ->withCode('%required%', $this->getMinRequired()); + } + + private function getMinRequired(): string + { + return (string) $this->minWidth . 'x' . (string) $this->minHeight; + } + + private function getMaxExceptionMessage(string $dimension, int $provided): MessageInterface + { + return message('Image %dimension% %provided% exceeds the maximum allowed (%allowed%)') + ->withCode('%dimension%', $dimension) + ->withCode('%provided%', (string) $provided) + ->withCode('%allowed%', $this->getMaxAllowed()); + } + + private function getMaxAllowed(): string + { + return (string) $this->maxWidth . 'x' . (string) $this->maxHeight; + } +} diff --git a/app/src/Actions/Legacy/Api/V1/ImageInsertAction.php b/app/src/Actions/Legacy/Api/V1/ImageInsertAction.php new file mode 100644 index 0000000..b26d561 --- /dev/null +++ b/app/src/Actions/Legacy/Api/V1/ImageInsertAction.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Legacy\Api\V1; + +use Chevere\Action\Action; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use Chevere\Parameter\Parameters; +use Chevereto\Database\Database; + +class ImageInsertAction extends Action +{ + private Database $database; + + public function getContainerParameters(): ParametersInterface + { + return new Parameters( + database: objectParameter(Database::class) + ); + } + + public function run(int $id): array + { + // TODO: DB inserting + return []; + } +} diff --git a/app/src/Actions/Legacy/Api/V1/LegacyApiV1OutputAction.php b/app/src/Actions/Legacy/Api/V1/LegacyApiV1OutputAction.php new file mode 100644 index 0000000..4511488 --- /dev/null +++ b/app/src/Actions/Legacy/Api/V1/LegacyApiV1OutputAction.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Legacy\Api\V1; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; + +class LegacyApiV1OutputAction extends Action +{ + public function run( + #[ParameterAttribute(regex: '/^(json|txt|redirect)$/')] + string $format + ): array { + return data( + document: 'formatted_document' + ); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + document: stringParameter() + ); + } +} diff --git a/app/src/Actions/Legacy/Api/V1/LegacyApiV1VerifyKeyAction.php b/app/src/Actions/Legacy/Api/V1/LegacyApiV1VerifyKeyAction.php new file mode 100644 index 0000000..2e82b62 --- /dev/null +++ b/app/src/Actions/Legacy/Api/V1/LegacyApiV1VerifyKeyAction.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Legacy\Api\V1; + +use Chevere\Action\Action; +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\InvalidArgumentException; + +class LegacyApiV1VerifyKeyAction extends Action +{ + public function run( + string $key, + string $apiV1Key + ): array { + if ($key !== $apiV1Key) { + throw new InvalidArgumentException( + message: message('Invalid API V1 key provided'), + code: 100 + ); + } + + return []; + } +} diff --git a/app/src/Actions/Storage/StorageGetForAssetAction.php b/app/src/Actions/Storage/StorageGetForAssetAction.php new file mode 100644 index 0000000..446d19f --- /dev/null +++ b/app/src/Actions/Storage/StorageGetForAssetAction.php @@ -0,0 +1,61 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Storage; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use Chevere\Parameter\Parameters; +use function Chevere\Parameter\parameters; +use Chevereto\Database\Database; +use Chevereto\Storage\Storage; +use League\Flysystem\Local\LocalFilesystemAdapter; + +/** + * Finds a valid storage to allocate the bytes required. + * + * Response parameters: + * + * ```php + * storage: \Chevereto\Interfaces\Storage\StorageInterface, + * ``` + */ +class StorageGetForAssetAction extends Action +{ + public function getContainerParameters(): ParametersInterface + { + return new Parameters( + database: objectParameter(Database::class) + ); + } + + public function run(int $userId, int $bytesRequired): array + { + // $adapter = db->query storage for user assert; + $adapter = new LocalFilesystemAdapter(__DIR__); + + return data( + storage: new Storage(__DIR__) + ); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + storage: objectParameter( + className: Storage::class + ) + ); + } +} diff --git a/app/src/Actions/Storage/StorageGetForUserAction.php b/app/src/Actions/Storage/StorageGetForUserAction.php new file mode 100644 index 0000000..ddaba37 --- /dev/null +++ b/app/src/Actions/Storage/StorageGetForUserAction.php @@ -0,0 +1,58 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Actions\Storage; + +use Chevere\Action\Action; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use Chevere\Parameter\Parameters; +use function Chevere\Parameter\parameters; +use Chevereto\Database\Database; +use Chevereto\Storage\Storage; + +/** + * Finds a valid storage to allocate the bytes required. + * + * Response parameters: + * + * ```php + * storage: \Chevereto\Interfaces\Storage\StorageInterface, + * ``` + */ +class StorageGetForUserAction extends Action +{ + public function getContainerParameters(): ParametersInterface + { + return new Parameters( + database: objectParameter(Database::class) + ); + } + + public function run(int $userId, int $bytesRequired): array + { + // $adapter = db->query storage for user; + + return data( + storage: new Storage(__DIR__) + ); + } + + public function getResponseParameters(): ParametersInterface + { + return parameters( + storage: objectParameter( + className: Storage::class + ) + ); + } +} diff --git a/app/src/Config/AssetConfig.php b/app/src/Config/AssetConfig.php new file mode 100644 index 0000000..6c867a4 --- /dev/null +++ b/app/src/Config/AssetConfig.php @@ -0,0 +1,102 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Config; + +final class AssetConfig +{ + public function __construct( + private string $accountId = '', + private string $accountName = '', + private string $bucket = '', + private string $key = '', + private string $region = '', + private string $secret = '', + private string $server = '', + private string $service = '', + private string $url = '', + private string $type = 'local', + private string $name = 'assets', + ) { + } + + public function export() + { + return [ + 'accountId' => $this->accountId, + 'accountName' => $this->accountName, + 'bucket' => $this->bucket, + 'key' => $this->key, + 'region' => $this->region, + 'secret' => $this->secret, + 'server' => $this->server, + 'service' => $this->service, + 'url' => $this->url, + 'type' => $this->type, + 'name' => $this->name, + ]; + } + + public function accountId(): string + { + return $this->accountId; + } + + public function accountName(): string + { + return $this->accountName; + } + + public function bucket(): string + { + return $this->bucket; + } + + public function key(): string + { + return $this->key; + } + + public function name(): string + { + return $this->name; + } + + public function region(): string + { + return $this->region; + } + + public function secret(): string + { + return $this->secret; + } + + public function server(): string + { + return $this->server; + } + + public function service(): string + { + return $this->service; + } + + public function type(): string + { + return $this->type; + } + + public function url(): string + { + return $this->url; + } +} diff --git a/app/src/Config/Config.php b/app/src/Config/Config.php new file mode 100644 index 0000000..89a44b8 --- /dev/null +++ b/app/src/Config/Config.php @@ -0,0 +1,77 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Config; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevereto\Traits\Instance\AssertStaticInstanceTrait; + +final class Config +{ + use AssertStaticInstanceTrait; + + private static AssetConfig $asset; + + private static EnabledConfig $enabled; + + private static HostConfig $host; + + private static SystemConfig $system; + + private static LimitConfig $limit; + + public function __construct( + AssetConfig $asset, + EnabledConfig $enabled, + HostConfig $host, + SystemConfig $system, + LimitConfig $limit, + ) { + if (isset(static::$asset)) { + throw new LogicException( + message('An instance of %type% has been already created.') + ->withCode('%type%', static::class), + 600 + ); + } + static::$asset = $asset; + static::$enabled = $enabled; + static::$host = $host; + static::$system = $system; + static::$limit = $limit; + } + + public static function asset(): AssetConfig + { + return static::$asset; + } + + public static function enabled(): EnabledConfig + { + return static::$enabled; + } + + public static function host(): HostConfig + { + return static::$host; + } + + public static function system(): SystemConfig + { + return static::$system; + } + + public static function limit(): LimitConfig + { + return static::$limit; + } +} diff --git a/app/src/Config/DatabaseConfig.php b/app/src/Config/DatabaseConfig.php new file mode 100644 index 0000000..ddf2106 --- /dev/null +++ b/app/src/Config/DatabaseConfig.php @@ -0,0 +1,81 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Config; + +final class DatabaseConfig +{ + public function __construct( + private string $driver = 'mysql', + private string $host = 'localhost', + private string $name = 'chevereto', + private string $user = 'chevereto', + private string $pass = 'user_database_password', + private string $tablePrefix = 'chv_', + private array $pdoAttrs = [], + private int $port = 3306, + ) { + } + + public function export(): array + { + return [ + 'driver' => $this->driver, + 'host' => $this->host, + 'name' => $this->name, + 'user' => $this->user, + 'pass' => $this->pass, + 'tablePrefix' => $this->tablePrefix, + 'pdoAttrs' => $this->pdoAttrs, + 'port' => $this->port, + ]; + } + + public function driver(): string + { + return $this->driver; + } + + public function host(): string + { + return $this->host; + } + + public function name(): string + { + return $this->name; + } + + public function pass(): string + { + return $this->pass; + } + + public function pdoAttrs(): array + { + return $this->pdoAttrs; + } + + public function port(): int + { + return $this->port; + } + + public function tablePrefix(): string + { + return $this->tablePrefix; + } + + public function user(): string + { + return $this->user; + } +} diff --git a/app/src/Config/EnabledConfig.php b/app/src/Config/EnabledConfig.php new file mode 100644 index 0000000..6e922cc --- /dev/null +++ b/app/src/Config/EnabledConfig.php @@ -0,0 +1,43 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Config; + +final class EnabledConfig +{ + public function __construct( + private bool $phpPages = false, + private bool $updateCli = true, + private bool $updateHttp = true, + private bool $htaccessCheck = true, + ) { + } + + public function phpPages(): bool + { + return $this->phpPages; + } + + public function updateCli(): bool + { + return $this->updateCli; + } + + public function updateHttp(): bool + { + return $this->updateHttp; + } + + public function htaccessCheck(): bool + { + return $this->htaccessCheck; + } +} diff --git a/app/src/Config/HostConfig.php b/app/src/Config/HostConfig.php new file mode 100644 index 0000000..e343ce7 --- /dev/null +++ b/app/src/Config/HostConfig.php @@ -0,0 +1,37 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Config; + +final class HostConfig +{ + public function __construct( + private string $hostnamePath = '/', + private string $hostname = 'localhost', + private bool $isHttps = false, + ) { + } + + public function hostnamePath(): string + { + return $this->hostnamePath; + } + + public function hostname(): string + { + return $this->hostname; + } + + public function isHttps(): bool + { + return $this->isHttps; + } +} diff --git a/app/src/Config/LimitConfig.php b/app/src/Config/LimitConfig.php new file mode 100644 index 0000000..68632b7 --- /dev/null +++ b/app/src/Config/LimitConfig.php @@ -0,0 +1,26 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\Config; + +final class LimitConfig +{ + public function __construct( + private int $invalidRequestsPerDay = 25, + ) { + } + + public function invalidRequestsPerDay(): int + { + return $this->invalidRequestsPerDay; + } +} diff --git a/app/src/Config/SystemConfig.php b/app/src/Config/SystemConfig.php new file mode 100644 index 0000000..68b93d1 --- /dev/null +++ b/app/src/Config/SystemConfig.php @@ -0,0 +1,55 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Config; + +final class SystemConfig +{ + public function __construct( + private int $debugLevel = 1, + private string $errorLog = 'php://stderr', + private array $imageFormatsAvailable = ['PNG', 'GIF', 'JPEG', 'BMP', 'WEBP'], + private string $imageLibrary = 'imagick', + private string $sessionSaveHandler = 'files', + private string $sessionSavePath = '/tmp', + ) { + } + + public function debugLevel(): int + { + return $this->debugLevel; + } + + public function errorLog(): string + { + return $this->errorLog; + } + + public function imageFormatsAvailable(): array + { + return $this->imageFormatsAvailable; + } + + public function imageLibrary(): string + { + return $this->imageLibrary; + } + + public function sessionSaveHandler(): string + { + return $this->sessionSaveHandler; + } + + public function sessionSavePath(): string + { + return $this->sessionSavePath; + } +} diff --git a/app/src/Controllers/Api/V1/Upload/UploadPostController.php b/app/src/Controllers/Api/V1/Upload/UploadPostController.php new file mode 100644 index 0000000..b1313b2 --- /dev/null +++ b/app/src/Controllers/Api/V1/Upload/UploadPostController.php @@ -0,0 +1,52 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V1\Upload; + +use function Chevere\DataStructure\data; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; +use Chevere\Workflow\Attributes\Provider; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Legacy\LegacyUploadPostWorkflow; + +#[Provider(LegacyUploadPostWorkflow::class)] +final class UploadPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Uploads an image resource.'; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + document: stringParameter() + ); + } + + public function run( + #[ParameterAttribute(description: 'A binary file, base64 data, or an URL for an image.')] + string $source, // try: files + #[ParameterAttribute(description: 'API V1 key.')] + string $key, + #[ParameterAttribute( + description: 'Response document output format.', + regex: '/^(json|txt|redirect)$/' + )] + string $format = 'json' + ): array { + return data(); + } +} diff --git a/app/src/Controllers/Api/V4/Album/AlbumDeleteController.php b/app/src/Controllers/Api/V4/Album/AlbumDeleteController.php new file mode 100644 index 0000000..786b37e --- /dev/null +++ b/app/src/Controllers/Api/V4/Album/AlbumDeleteController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Album; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Album\AlbumDeleteWorkflow; + +#[RelationWorkflow(AlbumDeleteWorkflow::class)] +final class AlbumDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Delete an album identified by its id.'; + } + + public function run( + #[ParameterAttribute( + description: 'The identifier.', + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Album/AlbumGetController.php b/app/src/Controllers/Api/V4/Album/AlbumGetController.php new file mode 100644 index 0000000..1b540e2 --- /dev/null +++ b/app/src/Controllers/Api/V4/Album/AlbumGetController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Album; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Album\AlbumGetWorkflow; + +#[RelationWorkflow(AlbumGetWorkflow::class)] +final class AlbumGetController extends WorkflowController +{ + public function getDescription(): string + { + return 'Get an album identified by its id.'; + } + + public function run( + #[ParameterAttribute( + description: 'The identifier.', + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Album/AlbumPatchController.php b/app/src/Controllers/Api/V4/Album/AlbumPatchController.php new file mode 100644 index 0000000..62d6704 --- /dev/null +++ b/app/src/Controllers/Api/V4/Album/AlbumPatchController.php @@ -0,0 +1,52 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Album; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Album\AlbumPatchWorkflow; + +#[RelationWorkflow(AlbumPatchWorkflow::class)] +final class AlbumPatchController extends WorkflowController +{ + public function getDescription(): string + { + return 'Updates the album.'; + } + + public function run( + #[ParameterAttribute( + description: 'The identifier.', + regex: '/\w+/' + )] + string $id, + #[ParameterAttribute( + description: 'The image identifier.', + regex: '/\w+/' + )] + string $cover_id + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + image: objectParameter(Image::class) + ); + } +} diff --git a/app/src/Controllers/Api/V4/Album/AlbumPostController.php b/app/src/Controllers/Api/V4/Album/AlbumPostController.php new file mode 100644 index 0000000..9287ced --- /dev/null +++ b/app/src/Controllers/Api/V4/Album/AlbumPostController.php @@ -0,0 +1,48 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Album; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Album\AlbumPostWorkflow; + +#[RelationWorkflow(AlbumPostWorkflow::class)] +final class AlbumPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Creates an album.'; + } + + public function run( + string $description, + string $name, + string $parent_id, + string $password, + string $privacy, + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + album: objectParameter( + className: Album::class + ), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Album/Like/AlbumLikeDeleteController.php b/app/src/Controllers/Api/V4/Album/Like/AlbumLikeDeleteController.php new file mode 100644 index 0000000..985467d --- /dev/null +++ b/app/src/Controllers/Api/V4/Album/Like/AlbumLikeDeleteController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Album\Like; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Album\Like\AlbumLikeDeleteWorkflow; + +#[RelationWorkflow(AlbumLikeDeleteWorkflow::class)] +final class AlbumLikeDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Delete album like.'; + } + + public function run( + #[ParameterAttribute( + description: 'The identifier.', + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Album/Like/AlbumLikePostController.php b/app/src/Controllers/Api/V4/Album/Like/AlbumLikePostController.php new file mode 100644 index 0000000..440a1d7 --- /dev/null +++ b/app/src/Controllers/Api/V4/Album/Like/AlbumLikePostController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Album\Like; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Album\Like\AlbumLikePostWorkflow; + +#[RelationWorkflow(AlbumLikePostWorkflow::class)] +final class AlbumLikePostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Like the album.'; + } + + public function run( + #[ParameterAttribute( + description: 'The identifier.', + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Ban/Ip/BanIpDeleteController.php b/app/src/Controllers/Api/V4/Ban/Ip/BanIpDeleteController.php new file mode 100644 index 0000000..1857ad9 --- /dev/null +++ b/app/src/Controllers/Api/V4/Ban/Ip/BanIpDeleteController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Ban\Ip; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Ban\Ip\BanIpDeleteWorkflow; + +#[RelationWorkflow(BanIpDeleteWorkflow::class)] +final class BanIpDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Delete an IP ban identified by its id.'; + } + + public function run( + #[ParameterAttribute( + description: 'The identifier.', + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Ban/Ip/BanIpPatchController.php b/app/src/Controllers/Api/V4/Ban/Ip/BanIpPatchController.php new file mode 100644 index 0000000..3567677 --- /dev/null +++ b/app/src/Controllers/Api/V4/Ban/Ip/BanIpPatchController.php @@ -0,0 +1,52 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Ban\Ip; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Ban\Ip\BanIpPatchWorkflow; + +#[RelationWorkflow(BanIpPatchWorkflow::class)] +final class BanIpPatchController extends WorkflowController +{ + public function getDescription(): string + { + return 'Updates the album.'; + } + + public function run( + #[ParameterAttribute( + description: 'The album identifier.', + regex: '/\w+/' + )] + string $id, + #[ParameterAttribute( + description: 'The image identifier.', + regex: '/\w+/' + )] + string $cover_id = '' + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + image: objectParameter(Image::class) + ); + } +} diff --git a/app/src/Controllers/Api/V4/Ban/Ip/BanIpPostController.php b/app/src/Controllers/Api/V4/Ban/Ip/BanIpPostController.php new file mode 100644 index 0000000..0f15b02 --- /dev/null +++ b/app/src/Controllers/Api/V4/Ban/Ip/BanIpPostController.php @@ -0,0 +1,47 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Ban\Ip; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; + +final class BanIpPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Creates a IP ban.'; + } + + public function run( + string $ip, + #[ParameterAttribute( + regex: '/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/' + )] + string $expires, + string $message + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + ban_ip: objectParameter( + className: BanIp::class + ), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Category/CategoryPostController.php b/app/src/Controllers/Api/V4/Category/CategoryPostController.php new file mode 100644 index 0000000..4a66c46 --- /dev/null +++ b/app/src/Controllers/Api/V4/Category/CategoryPostController.php @@ -0,0 +1,48 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Category; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; + +final class CategoryPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Creates a category.'; + } + + public function run( + string $name, + #[ParameterAttribute( + description: 'Category URL key (slug)', + regex: '/^[-\w]+$/', + )] + string $url_key, + string $description + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + category: objectParameter( + className: Category::class + ), + ); + } +} diff --git a/app/src/Controllers/Api/V4/File/FilePostController.php b/app/src/Controllers/Api/V4/File/FilePostController.php new file mode 100644 index 0000000..23e82fb --- /dev/null +++ b/app/src/Controllers/Api/V4/File/FilePostController.php @@ -0,0 +1,24 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\File; + +use Chevere\Controller\Controller; +use function Chevere\DataStructure\data; + +abstract class FilePostController extends Controller +{ + public function run( + string $source + ): array { + return data(); + } +} diff --git a/app/src/Controllers/Api/V4/Image/Bulk/ImageBulkPatchController.php b/app/src/Controllers/Api/V4/Image/Bulk/ImageBulkPatchController.php new file mode 100644 index 0000000..240461a --- /dev/null +++ b/app/src/Controllers/Api/V4/Image/Bulk/ImageBulkPatchController.php @@ -0,0 +1,51 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Image\Bulk; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\ArrayParameter; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Image\Bulk\ImageBulkPatchWorkflow; + +#[RelationWorkflow(ImageBulkPatchWorkflow::class)] +class ImageBulkPatchController extends WorkflowController +{ + public function getDescription(): string + { + return 'Bulk image edit.'; + } + + public function run( + #[ParameterAttribute( + description: 'Comma-separated list of images to edit.', + regex: '/^\w+(,+\w+)*$/' + )] + string $image_ids, + string $category_id = '', + string $is_approved = '', + string $is_nsfw = '', + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + edited: new ArrayParameter(), + failed: new ArrayParameter(), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Image/ImageGetController.php b/app/src/Controllers/Api/V4/Image/ImageGetController.php new file mode 100644 index 0000000..fd57f3a --- /dev/null +++ b/app/src/Controllers/Api/V4/Image/ImageGetController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Image; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Image\ImageGetWorkflow; + +#[RelationWorkflow(ImageGetWorkflow::class)] +final class ImageGetController extends WorkflowController +{ + public function getDescription(): string + { + return 'Get the image identified by its id.'; + } + + public function run( + #[ParameterAttribute( + description: 'The image identifier.', + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Image/ImagePatchController.php b/app/src/Controllers/Api/V4/Image/ImagePatchController.php new file mode 100644 index 0000000..37ee74a --- /dev/null +++ b/app/src/Controllers/Api/V4/Image/ImagePatchController.php @@ -0,0 +1,56 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Image; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\Image\ImagePatchWorkflow; + +#[RelationWorkflow(ImagePatchWorkflow::class)] +class ImagePatchController extends WorkflowController +{ + public function getDescription(): string + { + return 'Edit the image resource.'; + } + + public function run( + #[ParameterAttribute( + description: 'The image identifier.', + regex: '/\w+/' + )] + string $id, + string $category_id, + #[ParameterAttribute( + regex: '/^(0|1)$/' + )] + string $is_approved, + #[ParameterAttribute( + regex: '/^(0|1)$/' + )] + string $is_nsfw + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + image: objectParameter(stdClass::class, Image::class), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Image/ImagePostController.php b/app/src/Controllers/Api/V4/Image/ImagePostController.php new file mode 100644 index 0000000..508af7b --- /dev/null +++ b/app/src/Controllers/Api/V4/Image/ImagePostController.php @@ -0,0 +1,63 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Image; + +use Chevere\Controller\Controller; +use function Chevere\DataStructure\data; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Workflows\Image\ImagePostWorkflow; + +final class ImagePostController extends Controller +{ + public function run( + #[ParameterAttribute( + description: 'A binary file, base64 data, or an URL for an image.', + // try: 'files' + )] + string $image, + string $album_id = '', + ): array { + $workflow = (new ImagePostWorkflow())->getWorkflow(); + // $source + // $mimes + // $max_bytes + // $min_bytes + // $max_width + // $max_height + // $min_width + // $min_height + // $ip + // $ip_version + // $user_id + // $table + // $name + // $naming + // $path + // $upload_filepath + // $expires + // $album_id + return data(); + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + image: objectParameter( + className: Image::class + ) + ); + } +} diff --git a/app/src/Controllers/Api/V4/Image/Like/ImageLikeDeleteController.php b/app/src/Controllers/Api/V4/Image/Like/ImageLikeDeleteController.php new file mode 100644 index 0000000..10c5ef8 --- /dev/null +++ b/app/src/Controllers/Api/V4/Image/Like/ImageLikeDeleteController.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Image\Like; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; + +class ImageLikeDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Delete image like.'; + } + + public function run( + #[ParameterAttribute( + description: 'The image identifier.', + regex: '/\w+/' + )] + string $id, + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Image/Like/ImageLikePostController.php b/app/src/Controllers/Api/V4/Image/Like/ImageLikePostController.php new file mode 100644 index 0000000..3a3c7c6 --- /dev/null +++ b/app/src/Controllers/Api/V4/Image/Like/ImageLikePostController.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Image\Like; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; + +class ImageLikePostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Like the image.'; + } + + public function run( + #[ParameterAttribute( + description: ('The image identifier.'), + regex: '/\w+/' + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Stat/Rebuild/StatRebuildPostController.php b/app/src/Controllers/Api/V4/Stat/Rebuild/StatRebuildPostController.php new file mode 100644 index 0000000..22aae27 --- /dev/null +++ b/app/src/Controllers/Api/V4/Stat/Rebuild/StatRebuildPostController.php @@ -0,0 +1,22 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Stat\Rebuild; + +use Chevereto\Controllers\WorkflowController; + +class StatRebuildPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Rebuild stats.'; + } +} diff --git a/app/src/Controllers/Api/V4/Storage/Migrate/StorageMigratePostController.php b/app/src/Controllers/Api/V4/Storage/Migrate/StorageMigratePostController.php new file mode 100644 index 0000000..209b34c --- /dev/null +++ b/app/src/Controllers/Api/V4/Storage/Migrate/StorageMigratePostController.php @@ -0,0 +1,27 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Storage\Migrate; + +use Chevereto\Controllers\WorkflowController; + +class StorageMigratePostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Migrate all stored content to another storage.'; + } + + public function run(string $storage_id): array + { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/Storage/Stat/Regen/StorageStatRegenPostController.php b/app/src/Controllers/Api/V4/Storage/Stat/Regen/StorageStatRegenPostController.php new file mode 100644 index 0000000..56dc12d --- /dev/null +++ b/app/src/Controllers/Api/V4/Storage/Stat/Regen/StorageStatRegenPostController.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Storage\Stat\Regen; + +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use stdClass; + +class StorageStatRegenPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Regenerate storage stats.'; + } + + public function run(string $storage_id): array + { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + storage: objectParameter(stdClass::class, Storage::class), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Storage/StoragePostController.php b/app/src/Controllers/Api/V4/Storage/StoragePostController.php new file mode 100644 index 0000000..d5468bb --- /dev/null +++ b/app/src/Controllers/Api/V4/Storage/StoragePostController.php @@ -0,0 +1,53 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Storage; + +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; + +class StoragePostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Creates a storage.'; + } + + public function run( + string $account_id, + string $account_name, + string $api_id, + string $bucket, + string $capacity, + string $id, + string $key, + string $name, + string $region, + string $secret, + string $server, + string $service, + string $url, + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + storage: objectParameter( + className: Storage::class + ), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Tool/Id/Decode/ToolDecodeIdGetController.php b/app/src/Controllers/Api/V4/Tool/Id/Decode/ToolDecodeIdGetController.php new file mode 100644 index 0000000..f4de8e3 --- /dev/null +++ b/app/src/Controllers/Api/V4/Tool/Id/Decode/ToolDecodeIdGetController.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Tool\Id\Decode; + +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; +use Chevereto\Controllers\WorkflowController; + +class ToolDecodeIdGetController extends WorkflowController +{ + public function getDescription(): string + { + return 'Retrieve a decoded representation of the Id.'; + } + + public function run(string $id): array + { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + data: stringParameter(), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Tool/Id/Encode/ToolEncodeIdGetController.php b/app/src/Controllers/Api/V4/Tool/Id/Encode/ToolEncodeIdGetController.php new file mode 100644 index 0000000..1a7e66a --- /dev/null +++ b/app/src/Controllers/Api/V4/Tool/Id/Encode/ToolEncodeIdGetController.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Tool\Id\Encode; + +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\parameters; +use function Chevere\Parameter\stringParameter; +use Chevereto\Controllers\WorkflowController; + +class ToolEncodeIdGetController extends WorkflowController +{ + public function getDescription(): string + { + return 'Retrieve an encoded representation of the Id.'; + } + + public function run(string $id): array + { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + data: stringParameter(), + ); + } +} diff --git a/app/src/Controllers/Api/V4/Tool/Probe/Email/ToolProbeEmailPostController.php b/app/src/Controllers/Api/V4/Tool/Probe/Email/ToolProbeEmailPostController.php new file mode 100644 index 0000000..b81569f --- /dev/null +++ b/app/src/Controllers/Api/V4/Tool/Probe/Email/ToolProbeEmailPostController.php @@ -0,0 +1,27 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\Tool\Probe\Email; + +use Chevereto\Controllers\WorkflowController; + +class ToolProbeEmailPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Probe email delivery.'; + } + + public function run(string $email): array + { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarDeleteController.php b/app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarDeleteController.php new file mode 100644 index 0000000..a8fa2b8 --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarDeleteController.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Asset\Avatar; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\User\Asset\Avatar\UserAssetAvatarDeleteWorkflow; + +#[RelationWorkflow(UserAssetAvatarDeleteWorkflow::class)] +final class UserAssetAvatarDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Delete the user avatar image resource.'; + } + + public function run( + #[ParameterAttribute( + description: 'The username.', + regex: '/\w+/' + )] + string $username + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarPostController.php b/app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarPostController.php new file mode 100644 index 0000000..5229cc2 --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Asset/Avatar/UserAssetAvatarPostController.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Asset\Avatar; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\Api\V4\File\FilePostController; +use Chevereto\Workflows\User\Asset\Avatar\UserAssetAvatarPostWorkflow; + +#[RelationWorkflow(UserAssetAvatarPostWorkflow::class)] +final class UserAssetAvatarPostController extends FilePostController +{ + public function getDescription(): string + { + return 'Uploads an image resource to be used as user avatar'; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + file_info: objectParameter( + className: FileInfo::class + ) + ); + } +} diff --git a/app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundDeleteController.php b/app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundDeleteController.php new file mode 100644 index 0000000..f592ce7 --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundDeleteController.php @@ -0,0 +1,25 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Asset\Background; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\User\Asset\Background\UserAssetBackgroundDeleteWorkflow; + +#[RelationWorkflow(UserAssetBackgroundDeleteWorkflow::class)] +final class UserAssetBackgroundDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Delete the user background image resource.'; + } +} diff --git a/app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundPostController.php b/app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundPostController.php new file mode 100644 index 0000000..ba7f5ae --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Asset/Background/UserAssetBackgroundPostController.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Asset\Background; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\Api\V4\File\FilePostController; +use Chevereto\Workflows\User\Asset\Background\UserAssetBackgroundPostWorkflow; + +#[RelationWorkflow(UserAssetBackgroundPostWorkflow::class)] +final class UserAssetBackgroundPostController extends FilePostController +{ + public function getDescription(): string + { + return 'Uploads an image resource to be used as user background.'; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + file_info: objectParameter( + className: FileInfo::class + ) + ); + } +} diff --git a/app/src/Controllers/Api/V4/User/Export/UserExportGetController.php b/app/src/Controllers/Api/V4/User/Export/UserExportGetController.php new file mode 100644 index 0000000..59516fa --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Export/UserExportGetController.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Export; + +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use stdClass; + +class UserExportGetController extends WorkflowController +{ + public function getDescription(): string + { + return 'Exports the user.'; + } + + public function run(string $username): array + { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + key: objectParameter(stdClass::class, 'className'), + ); + } +} diff --git a/app/src/Controllers/Api/V4/User/Follow/UserFollowDeleteController.php b/app/src/Controllers/Api/V4/User/Follow/UserFollowDeleteController.php new file mode 100644 index 0000000..4042a73 --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Follow/UserFollowDeleteController.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Follow; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; + +class UserFollowDeleteController extends WorkflowController +{ + public function getDescription(): string + { + return 'Unfollow the user.'; + } + + public function run( + #[ParameterAttribute( + description: 'The username.', + regex: '/\w+/' + )] + string $username + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/User/Follow/UserFollowPostController.php b/app/src/Controllers/Api/V4/User/Follow/UserFollowPostController.php new file mode 100644 index 0000000..7514dcb --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Follow/UserFollowPostController.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Follow; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; + +class UserFollowPostController extends WorkflowController +{ + public function getDescription(): string + { + return 'Follows the user.'; + } + + public function run( + #[ParameterAttribute( + description: 'The username.', + regex: '/\w+/' + )] + string $username + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/User/Setting/UserSettingPatchController.php b/app/src/Controllers/Api/V4/User/Setting/UserSettingPatchController.php new file mode 100644 index 0000000..873075a --- /dev/null +++ b/app/src/Controllers/Api/V4/User/Setting/UserSettingPatchController.php @@ -0,0 +1,46 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User\Setting; + +use Chevere\Controller\Attributes\RelationWorkflow; +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use stdClass; + +#[RelationWorkflow('')] +class UserSettingPatchController extends WorkflowController +{ + public function getDescription(): string + { + return 'Updates user settings.'; + } + + public function run( + #[ParameterAttribute( + description: 'The user identifier.' + )] + string $userId + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + key: objectParameter(stdClass::class, 'className'), + ); + } +} diff --git a/app/src/Controllers/Api/V4/User/UserGetController.php b/app/src/Controllers/Api/V4/User/UserGetController.php new file mode 100644 index 0000000..47cb91b --- /dev/null +++ b/app/src/Controllers/Api/V4/User/UserGetController.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevereto\Controllers\WorkflowController; + +final class UserGetController extends WorkflowController +{ + public function getDescription(): string + { + return 'Get an user identified by its id.'; + } + + public function run( + #[ParameterAttribute( + description: 'The user identifier.', + regex: '/\w+/', + )] + string $id + ): array { + return []; + } +} diff --git a/app/src/Controllers/Api/V4/User/UserPostController.php b/app/src/Controllers/Api/V4/User/UserPostController.php new file mode 100644 index 0000000..df86346 --- /dev/null +++ b/app/src/Controllers/Api/V4/User/UserPostController.php @@ -0,0 +1,60 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers\Api\V4\User; + +use Chevere\Parameter\Attributes\ParameterAttribute; +use Chevere\Parameter\Interfaces\ParametersInterface; +use function Chevere\Parameter\objectParameter; +use function Chevere\Parameter\parameters; +use Chevereto\Controllers\WorkflowController; +use Chevereto\Workflows\User\UserPostWorkflow; + +final class UserPostController extends WorkflowController +{ + public function getWorkflowName(): string + { + return UserPostWorkflow::class; + } + + public function getDescription(): string + { + return 'Creates an user.'; + } + + public function run( + #[ParameterAttribute( + regex: '/^[\w]{3,16}$/' + )] + string $username, + string $email, + #[ParameterAttribute( + regex: '/^.{6,128}$/' + )] + string $password, + #[ParameterAttribute( + regex: '/^(user|manager|admin)$/', + )] + string $role = 'user' + ): array { + return []; + } + + public function getResponseParameters(): ParametersInterface + { + return + parameters( + user: objectParameter( + className: User::class + ) + ); + } +} diff --git a/app/src/Controllers/LegacyController.php b/app/src/Controllers/LegacyController.php new file mode 100644 index 0000000..b9fbc1b --- /dev/null +++ b/app/src/Controllers/LegacyController.php @@ -0,0 +1,27 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers; + +use Chevere\Controller\Controller; +use Chevere\Parameter\Interfaces\ArgumentsInterface; +use Chevere\Response\Interfaces\ResponseInterface; + +final class LegacyController extends Controller +{ + final public function run(ArgumentsInterface $arguments): ResponseInterface + { + return $this + ->getResponse( + document: $arguments->getString('document'), + ); + } +} diff --git a/app/src/Controllers/WorkflowController.php b/app/src/Controllers/WorkflowController.php new file mode 100644 index 0000000..b472518 --- /dev/null +++ b/app/src/Controllers/WorkflowController.php @@ -0,0 +1,43 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Controllers; + +use Chevere\Controller\Controller; +use function Chevere\Message\message; +use Chevere\Workflow\Interfaces\WorkflowInterface; +use Chevere\Workflow\Interfaces\WorkflowProviderInterface; +use LogicException; + +abstract class WorkflowController extends Controller +{ + final public function getWorkflow(): WorkflowInterface + { + $relation = $this->relation(); + if ($relation === '') { + throw new LogicException( + message: message('Missing workflow provider relationship') + ); + } + if (!is_subclass_of($relation, WorkflowProviderInterface::class, true)) { + throw new LogicException( + message: message('Relation %relation% is not of type %type%') + ->withCode('%relation%', $relation) + ->withCode('%type%', WorkflowProviderInterface::class) + ); + } + /** @var WorkflowProviderInterface $workflowProvider */ + $workflowProvider = new $relation(); + + return $workflowProvider->getWorkflow(); + // $this->hook('getWorkflow:after', $workflow); + } +} diff --git a/app/src/Controllers/functions.php b/app/src/Controllers/functions.php new file mode 100644 index 0000000..97831c6 --- /dev/null +++ b/app/src/Controllers/functions.php @@ -0,0 +1,23 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace App\Controllers; + +use Chevereto\Controllers\LegacyController; + +/** + * @var String $route `name.php` file. + */ +function legacyController(string $route) +{ + return new LegacyController(dispatch: $route); +} diff --git a/app/src/Database/Database.php b/app/src/Database/Database.php new file mode 100644 index 0000000..b7ef8f1 --- /dev/null +++ b/app/src/Database/Database.php @@ -0,0 +1,33 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\Database; + +use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Query\QueryBuilder; + +final class Database +{ + private Connection $connection; + + private QueryBuilder $queryBuilder; + + public function __construct(Connection $connection) + { + $this->connection = $connection; + } + + public function getQueryBuilder(): QueryBuilder + { + return new QueryBuilder($this->connection); + } +} diff --git a/app/src/Database/EntitiesIo.php b/app/src/Database/EntitiesIo.php new file mode 100644 index 0000000..48e82ce --- /dev/null +++ b/app/src/Database/EntitiesIo.php @@ -0,0 +1,72 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Database; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\OutOfBoundsException; +use Chevereto\Database\Traits\GetWhereEqualsTrait; +use Doctrine\DBAL\Result; + +/** + * Provides database I/O for the X entities. + */ +abstract class EntitiesIo implements EntitiesIoInterface +{ + use GetWhereEqualsTrait; + + protected Database $database; + + public function __construct(Database $database) + { + $this->database = $database; + } + + abstract public function table(): string; + + public function selectWhereAllValues(array $columns = ['*'], string ...$values): array + { + return $this->selectWhereValues($columns, ...$values); + } + + public function selectWhereAnyValues(array $columns = ['*'], string ...$values): array + { + return $this->selectWhereValues($columns, ...$values); + } + + protected function selectWhereValues(array $columns = ['*'], string ...$values): array + { + $all = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]['function'] === 'selectWhereAllValues'; + $queryBuilder = $this->database->getQueryBuilder() + ->select(...$columns) + ->from($this->table()); + foreach ($values as $column => $value) { + $column = (string) $column; + $where = $this->getWhereEquals($column); + if ($all) { + $queryBuilder->andWhere($where); + } else { + $queryBuilder->orWhere($where); + } + $queryBuilder->setParameter($column, $value); + } + /** @var Result $result */ + $result = $queryBuilder->execute(); + $fetch = $result->fetchAllAssociative(); + if ($fetch === false) { + throw new OutOfBoundsException( + message: message('No record exists for values provided') + ); + } + + return $fetch; + } +} diff --git a/app/src/Database/EntitiesIoInterface.php b/app/src/Database/EntitiesIoInterface.php new file mode 100644 index 0000000..bb46d98 --- /dev/null +++ b/app/src/Database/EntitiesIoInterface.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Database; + +/** + * Describes the component in charge of providing multiple entity I/O interaction. + */ +interface EntitiesIoInterface +{ + public function __construct(Database $database); + + /** + * Defines the table name. + */ + public function table(): string; + + /** + * Select the entities for the given values (all). + * + * @return array Raw associative result. + */ + public function selectWhereAllValues(array $columns = ['*'], string ...$values): array; + + /** + * Select the entities for the given values (any). + * + * @return array Raw associative result. + */ + public function selectWhereAnyValues(array $columns = ['*'], string ...$values): array; +} diff --git a/app/src/Database/EntityIo.php b/app/src/Database/EntityIo.php new file mode 100644 index 0000000..3bcf887 --- /dev/null +++ b/app/src/Database/EntityIo.php @@ -0,0 +1,105 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Database; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\OutOfBoundsException; +use Chevereto\Database\Traits\GetWhereEqualsTrait; +use Doctrine\DBAL\ParameterType; +use Doctrine\DBAL\Result; + +/** + * Provides database I/O for the X entity. + */ +abstract class EntityIo implements EntityIoInterface +{ + use GetWhereEqualsTrait; + + protected Database $database; + + protected string $whereIdClause; + + public function __construct(Database $database) + { + $this->database = $database; + $this->whereIdClause = $this->getWhereEquals($this->id()); + } + + abstract public function table(): string; + + abstract public function id(): string; + + public function select(int $id, string ...$columns): array + { + $args = empty($columns) ? ['*'] : $columns; + $queryBuilder = $this->database->getQueryBuilder() + ->select(...$args) + ->from($this->table()) + ->where($this->whereIdClause) + ->setParameter($this->id(), $id, ParameterType::INTEGER); + /** @var Result $result */ + $result = $queryBuilder->execute(); + $fetch = $result->fetchAssociative(); + if ($fetch === false) { + throw new OutOfBoundsException( + message('No record exists for id %id%') + ->withCode('%id%', (string) $id) + ); + } + + return $fetch; + } + + public function delete(int $id): int + { + return $this->database->getQueryBuilder() + ->delete($this->table()) + ->where($this->whereIdClause) + ->setParameter($this->id(), $id, ParameterType::INTEGER) + ->execute(); + } + + public function update(int $id, string ...$values): int + { + $queryBuilder = $this->database->getQueryBuilder() + ->update($this->table()); + foreach ($values as $column => $value) { + $column = (string) $column; + $queryBuilder + ->set($column, ":${column}") + ->setParameter($column, $value); + } + + return $queryBuilder + ->where($this->whereIdClause) + ->setParameter($this->id(), $id, ParameterType::INTEGER) + ->execute(); + } + + public function insert(string ...$values): int + { + $queryBuilder = $this->database->getQueryBuilder() + ->insert($this->table()); + foreach ($values as $column => $value) { + $column = (string) $column; + $queryBuilder + ->setValue($column, ":${column}") + ->setParameter($column, $value); + } + $result = $queryBuilder->execute(); + if ($result === 1) { + return (int) $queryBuilder->getConnection()->lastInsertId(); + } + + return 0; + } +} diff --git a/app/src/Database/EntityIoInterface.php b/app/src/Database/EntityIoInterface.php new file mode 100644 index 0000000..a4646d2 --- /dev/null +++ b/app/src/Database/EntityIoInterface.php @@ -0,0 +1,52 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Database; + +/** + * Describes the component in charge of providing entity I/O interaction. + */ +interface EntityIoInterface +{ + public function __construct(Database $database); + + /** + * Defines the table name. + */ + public function table(): string; + + /** + * Defines the column id name. + */ + public function id(): string; + + /** + * Select the entity columns identified by its id. + * + * @return array Raw associative result. + */ + public function select(int $id, string ...$columns): array; + + /** + * @return int Number of deleted rows `0`, `1`. + */ + public function delete(int $id): int; + + /** + * @return int Number of updated rows. + */ + public function update(int $id, string ...$values): int; + + /** + * @return int Last inserted Id. + */ + public function insert(string ...$values): int; +} diff --git a/app/src/Database/Traits/GetWhereEqualsTrait.php b/app/src/Database/Traits/GetWhereEqualsTrait.php new file mode 100644 index 0000000..13f5ec2 --- /dev/null +++ b/app/src/Database/Traits/GetWhereEqualsTrait.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Database\Traits; + +trait GetWhereEqualsTrait +{ + private function getWhereEquals(string $column): string + { + return str_replace('%s', $column, '%s = :%s'); + } +} diff --git a/app/src/Encoding/functions.php b/app/src/Encoding/functions.php new file mode 100644 index 0000000..7f30fd9 --- /dev/null +++ b/app/src/Encoding/functions.php @@ -0,0 +1,71 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encoding; + +use function Chevere\Message\message; +use Chevere\Regex\Interfaces\RegexInterface; +use Chevere\Regex\Regex; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use Chevere\Throwable\Exceptions\RuntimeException; +use Safe\Exceptions\FilesystemException; +use Safe\Exceptions\StreamException; +use function Safe\fclose; +use function Safe\fopen; +use function Safe\fwrite; +use function Safe\stream_filter_append; + +/** + * @throws InvalidArgumentException + */ +function assertBase64(string $string): void +{ + $double = base64_encode(base64_decode($string, true)); + if ($string !== $double) { + // @codeCoverageIgnoreStart + throw new InvalidArgumentException( + message('Invalid base64 formatting'), + 600 + ); + // @codeCoverageIgnoreEnd + } + unset($double); +} + +/** + * @param string $base64 A base64 encoded string + * @param string $filepath Filename or stream to store decoded base64 + * + * @throws FilesystemException + * @throws StreamException + * @throws RuntimeException + */ +function storeDecodedBase64(string $base64, string $filepath): void +{ + $filter = 'convert.base64-decode'; + $fh = fopen($filepath, 'w'); + stream_filter_append($fh, $filter, STREAM_FILTER_WRITE); + if (fwrite($fh, $base64) === 0) { + // @codeCoverageIgnoreStart + throw new RuntimeException( + message('Unable to write %filter% provided string') + ->withCode('%filter%', $filter), + 1200 + ); + // @codeCoverageIgnoreEnd + } + fclose($fh); +} + +function getBase64Regex(): RegexInterface +{ + return new Regex('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/'); +} diff --git a/app/src/Encryption/Decode.php b/app/src/Encryption/Decode.php new file mode 100644 index 0000000..7d4241c --- /dev/null +++ b/app/src/Encryption/Decode.php @@ -0,0 +1,57 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use Chevereto\Encryption\Interfaces\DecodeInterface; +use Chevereto\Encryption\Interfaces\EncryptionInterface; + +final class Decode implements DecodeInterface +{ + private string $decoded; + + private string $nonce; + + private string $cipherText; + + public function __construct(string $encoded) + { + $this->decoded = base64_decode($encoded, true); + $this->nonce = mb_substr( + $this->decoded, + 0, + EncryptionInterface::NONCE_LENGTH, + self::ENCODING + ); + assertNonce($this->nonce); + $this->cipherText = mb_substr( + $this->decoded, + EncryptionInterface::NONCE_LENGTH, + null, + self::ENCODING + ); + } + + public function __toString(): string + { + return $this->decoded; + } + + public function nonce(): string + { + return $this->nonce; + } + + public function cipherText(): string + { + return $this->cipherText; + } +} diff --git a/app/src/Encryption/Encode.php b/app/src/Encryption/Encode.php new file mode 100644 index 0000000..296194c --- /dev/null +++ b/app/src/Encryption/Encode.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use Chevereto\Encryption\Interfaces\EncodeInterface; +use Chevereto\Encryption\Interfaces\EncryptionInterface; + +final class Encode implements EncodeInterface +{ + public function __construct( + private EncryptionInterface $encryption + ) { + } + + public function encrypt(string $text): string + { + return base64_encode( + $this->encryption->nonce() . $this->encryption->encrypt($text) + ); + } +} diff --git a/app/src/Encryption/Encryption.php b/app/src/Encryption/Encryption.php new file mode 100644 index 0000000..275dbd8 --- /dev/null +++ b/app/src/Encryption/Encryption.php @@ -0,0 +1,71 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use function Chevere\VariableSupport\deepCopy; +use Chevereto\Encryption\Interfaces\EncryptionInterface; +use Chevereto\Encryption\Interfaces\KeyInterface; +use phpseclib3\Crypt\ChaCha20; + +final class Encryption implements EncryptionInterface +{ + private ChaCha20 $cipher; + + private string $nonce; + + public function __construct(KeyInterface $key) + { + $this->nonce = randomNonce(); + $this->cipher = new ChaCha20(); + $this->cipher->setNonce($this->nonce); + $this->cipher->setKey((string) $key); + } + + public function __clone() + { + $this->cipher = deepCopy($this->cipher); + } + + public function nonce(): string + { + return $this->nonce; + } + + public function withNonce(string $nonce): self + { + assertNonce($nonce); + $new = clone $this; + $new->nonce = $nonce; + $new->cipher->setNonce($new->nonce); + + return $new; + } + + public function withRandomNonce(): self + { + $new = clone $this; + $new->nonce = randomNonce(); + $new->cipher->setNonce($new->nonce); + + return $new; + } + + public function encrypt(string $plainText): string + { + return $this->cipher->encrypt($plainText); + } + + public function decrypt(string $cipherText): string + { + return $this->cipher->decrypt($cipherText); + } +} diff --git a/app/src/Encryption/EncryptionInstance.php b/app/src/Encryption/EncryptionInstance.php new file mode 100644 index 0000000..c3d4e3c --- /dev/null +++ b/app/src/Encryption/EncryptionInstance.php @@ -0,0 +1,37 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevereto\Encryption\Interfaces\EncryptionInterface; + +final class EncryptionInstance +{ + private static ?EncryptionInterface $instance; + + public function __construct(EncryptionInterface $encryption) + { + self::$instance = $encryption; + } + + public static function get(): EncryptionInterface + { + if (!isset(self::$instance)) { + throw new LogicException( + message('No Encryption instance present') + ); + } + + return self::$instance; + } +} diff --git a/app/src/Encryption/Interfaces/DecodeInterface.php b/app/src/Encryption/Interfaces/DecodeInterface.php new file mode 100644 index 0000000..726d9e2 --- /dev/null +++ b/app/src/Encryption/Interfaces/DecodeInterface.php @@ -0,0 +1,26 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption\Interfaces; + +use Stringable; + +/** + * Describes the component in charge of defining the encoded string stored in database. + */ +interface DecodeInterface extends Stringable +{ + public const ENCODING = '8bit'; + + public function nonce(): string; + + public function cipherText(): string; +} diff --git a/app/src/Encryption/Interfaces/EncodeInterface.php b/app/src/Encryption/Interfaces/EncodeInterface.php new file mode 100644 index 0000000..2493430 --- /dev/null +++ b/app/src/Encryption/Interfaces/EncodeInterface.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption\Interfaces; + +/** + * Describes the component in charge of encoding nonce and cipher text for database storage. + */ +interface EncodeInterface +{ + public function encrypt(string $text): string; +} diff --git a/app/src/Encryption/Interfaces/EncryptionInterface.php b/app/src/Encryption/Interfaces/EncryptionInterface.php new file mode 100644 index 0000000..250da72 --- /dev/null +++ b/app/src/Encryption/Interfaces/EncryptionInterface.php @@ -0,0 +1,29 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption\Interfaces; + +interface EncryptionInterface +{ + public const NONCE_LENGTH = 12; + + public const KEY_LENGTH = 32; + + public function withNonce(string $nonce): self; + + public function withRandomNonce(): self; + + public function nonce(): string; + + public function encrypt(string $plainText): string; + + public function decrypt(string $cipherText): string; +} diff --git a/app/src/Encryption/Interfaces/KeyInterface.php b/app/src/Encryption/Interfaces/KeyInterface.php new file mode 100644 index 0000000..753fe56 --- /dev/null +++ b/app/src/Encryption/Interfaces/KeyInterface.php @@ -0,0 +1,22 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption\Interfaces; + +use Stringable; + +/** + * @method string __toString() The key as string + */ +interface KeyInterface extends Stringable +{ + public function base64(): string; +} diff --git a/app/src/Encryption/Key.php b/app/src/Encryption/Key.php new file mode 100644 index 0000000..013f6d5 --- /dev/null +++ b/app/src/Encryption/Key.php @@ -0,0 +1,44 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use Chevereto\Encryption\Interfaces\EncryptionInterface; +use Chevereto\Encryption\Interfaces\KeyInterface; +use function Safe\base64_decode; + +final class Key implements KeyInterface +{ + private string $key; + + public function __construct(private string $base64) + { + $this->key = base64_decode($base64); + if (strlen($this->key) !== EncryptionInterface::KEY_LENGTH) { + throw new InvalidArgumentException( + message('Requires a key size of %s') + ->withStrtr('%s', strval(EncryptionInterface::KEY_LENGTH)) + ); + } + } + + public function __toString() + { + return $this->key; + } + + public function base64(): string + { + return $this->base64; + } +} diff --git a/app/src/Encryption/NullEncryption.php b/app/src/Encryption/NullEncryption.php new file mode 100644 index 0000000..5a34bca --- /dev/null +++ b/app/src/Encryption/NullEncryption.php @@ -0,0 +1,42 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use Chevereto\Encryption\Interfaces\EncryptionInterface; + +final class NullEncryption implements EncryptionInterface +{ + public function withNonce(string $nonce): self + { + return clone $this; + } + + public function withRandomNonce(): self + { + return clone $this; + } + + public function nonce(): string + { + return ''; + } + + public function encrypt(string $plainText): string + { + return $plainText; + } + + public function decrypt(string $cipherText): string + { + return $cipherText; + } +} diff --git a/app/src/Encryption/functions.php b/app/src/Encryption/functions.php new file mode 100644 index 0000000..328016b --- /dev/null +++ b/app/src/Encryption/functions.php @@ -0,0 +1,137 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Encryption; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use Chevere\Throwable\Exceptions\LogicException; +use Chevereto\Encryption\Interfaces\EncryptionInterface; +use Chevereto\Encryption\Interfaces\KeyInterface; +use function Chevereto\Vars\env; +use phpseclib3\Crypt\Random; +use Throwable; + +function assertNonce(string $nonce): void +{ + if (!isValidNonce($nonce)) { + throw new InvalidArgumentException( + message('Requires a nonce size of %s') + ->withStrtr('%s', strval(EncryptionInterface::NONCE_LENGTH)) + ); + } +} + +function isValidNonce(string $nonce): bool +{ + return strlen($nonce) === EncryptionInterface::NONCE_LENGTH; +} + +function randomNonce(): string +{ + return Random::string(EncryptionInterface::NONCE_LENGTH); +} + +function randomKey(): KeyInterface +{ + return new Key( + base64_encode( + Random::string(EncryptionInterface::KEY_LENGTH) + ) + ); +} + +function encryption(): EncryptionInterface +{ + try { + return EncryptionInstance::get(); + } catch (Throwable) { + $base64 = env()['CHEVERETO_ENCRYPTION_KEY'] ?? ''; + new EncryptionInstance( + $base64 === '' + ? new NullEncryption() + : new Encryption( + new Key($base64) + ) + ); + + return EncryptionInstance::get(); + } +} + +function assertEncryption(): void +{ + if (!hasEncryption()) { + throw new LogicException( + message('Encryption is not enabled, set the %s environment variable to use encryption.') + ->withStrong('%s', 'CHEVERETO_ENCRYPTION_KEY') + ); + } +} + +function hasEncryption(): bool +{ + return !(encryption() instanceof NullEncryption); +} + +/** + * @return string A base64 encoded encrypted string with a nonce. + */ +function encrypt(string $plainText): string +{ + assertEncryption(); + $encode = new Encode(encryption()->withRandomNonce()); + + return $encode->encrypt($plainText); +} + +function decrypt(string $base64NonceCipherText): string +{ + assertEncryption(); + $decode = new Decode($base64NonceCipherText); + + return encryption() + ->withNonce($decode->nonce()) + ->decrypt($decode->cipherText()); +} + +function decryptValues(array $encryptedKeys, array $keyValues): array +{ + return mb_convert_encoding( + cipherValues($encryptedKeys, $keyValues, function (string $text) { + return decrypt($text); + }), + 'UTF-8' + ) ?: []; +} + +function encryptValues(array $encryptedKeys, array $keyValues): array +{ + return cipherValues($encryptedKeys, $keyValues, function (string $text) { + return encrypt($text); + }); +} + +function cipherValues(array $encryptedKeys, array $keyValues, callable $fn): array +{ + foreach ($encryptedKeys as $key) { + $value = $keyValues[$key] ?? ''; + if ($value !== '') { + try { + $cipher = $fn($value); + $keyValues[$key] = $cipher; + } catch (Throwable) { + } + } + } + + return $keyValues; +} diff --git a/app/src/File/functions.php b/app/src/File/functions.php new file mode 100644 index 0000000..3b3c127 --- /dev/null +++ b/app/src/File/functions.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\File; + +use Chevere\Throwable\Exceptions\LogicException; +use GuzzleHttp\Client; +use function Safe\file_put_contents; +use Throwable; + +function storeDownloadedUrl(string $url, string $filepath) +{ + $clientArgs = [ + 'base_uri' => $url, + 'timeout' => $_ENV['CHEVERETO_HTTP_TIMEOUT'] ?? 30, + ]; + // @codeCoverageIgnoreStart + if (isset($_ENV['CHEVERETO_HTTP_PROXY'])) { + $clientArgs['proxy'] = $_ENV['CHEVERETO_HTTP_PROXY']; + } + // @codeCoverageIgnoreEnd + try { + $httpClient = new Client($clientArgs); + $response = $httpClient->request('GET'); + } catch (Throwable $e) { + throw new LogicException(previous: $e); + } + file_put_contents($filepath, $response->getBody()); +} diff --git a/app/src/HashId/HashId.php b/app/src/HashId/HashId.php new file mode 100644 index 0000000..8de290d --- /dev/null +++ b/app/src/HashId/HashId.php @@ -0,0 +1,119 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\HashId; + +use function Chevere\Message\message; +use Chevere\String\AssertString; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use Throwable; + +/** + * Provides encoding/decoding for integer IDs. + */ +final class HashId +{ + private string $alphabet; + + private string $salt; + + private int $padding; + + private string $hash; + + private string $index; + + private array $table; + + private int $base; + + private string $baseString; + + public function __construct(string $salt) + { + $this->assertSalt($salt); + $this->salt = $salt; + $this->padding = 0; + $this->alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $index = str_split($this->alphabet, 1); + $this->hash = hash('sha256', $this->salt); + $this->table = []; + for ($n = 0; $n < strlen($this->alphabet); ++$n) { + $this->table[] = substr($this->hash, $n, 1); + } + array_multisort($this->table, SORT_DESC, $index); + $this->index = implode($index); + $this->base = strlen($this->index); + $this->baseString = (string) $this->base; + } + + public function withPadding(int $padding): self + { + $new = clone $this; + $this->assertPadding($padding); + $new->padding = $padding; + + return $new; + } + + public function decode(string $alpha): int + { + $out = 0; + $len = strlen($alpha) - 1; + for ($i = 0; $i <= $len; ++$i) { + $bcpow = bcpow($this->baseString, (string) ($len - $i)); + $out = $out + strpos($this->index, substr($alpha, $i, 1)) * $bcpow; + } + if ($this->padding > 0) { + $out = $out / $this->padding; + } + + return (int) $out; + } + + public function encode(int $id): string + { + if ($this->padding > 0) { + $id = $id * $this->padding; + } + $out = ''; + for ($i = floor(log((float) $id, $this->base)); $i >= 0; --$i) { + $bcpow = bcpow($this->baseString, (string) $i); + $start = floor($id / $bcpow) % $this->base; + $out = $out . substr($this->index, $start, 1); + $id = $id - ($start * $bcpow); + } + + return $out; + } + + private function assertSalt(string $salt): void + { + try { + (new AssertString($salt)) + ->notEmpty() + ->notCtypeSpace(); + } catch (Throwable) { + throw new InvalidArgumentException( + message('Invalid salt provided'), + ); + } + } + + private function assertPadding(int $padding): void + { + if ($padding < 0) { + throw new InvalidArgumentException( + message('Padding must be greater than zero'), + ); + } + } +} diff --git a/app/src/Image/ImageHashInstance.php b/app/src/Image/ImageHashInstance.php new file mode 100644 index 0000000..fbb305d --- /dev/null +++ b/app/src/Image/ImageHashInstance.php @@ -0,0 +1,41 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Image; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Jenssegers\ImageHash\ImageHash; + +/** + * @codeCoverageIgnore + */ +final class ImageHashInstance +{ + private static ?ImageHash $instance; + + public function __construct(ImageHash $imageHash) + { + self::$instance = $imageHash; + } + + public static function get(): ImageHash + { + if (!isset(self::$instance)) { + throw new LogicException( + message('No %instance% instance present') + ->withCode('%instance%', ImageHash::class) + ); + } + + return self::$instance; + } +} diff --git a/app/src/Image/ImageManagerInstance.php b/app/src/Image/ImageManagerInstance.php new file mode 100644 index 0000000..81a2f63 --- /dev/null +++ b/app/src/Image/ImageManagerInstance.php @@ -0,0 +1,40 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Image; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Intervention\Image\ImageManager; + +/** + * @codeCoverageIgnore + */ +final class ImageManagerInstance +{ + private static ?ImageManager $instance; + + public function __construct(ImageManager $imageManager) + { + self::$instance = $imageManager; + } + + public static function get(): ImageManager + { + if (!isset(self::$instance)) { + throw new LogicException( + message('No ImageManager instance present') + ); + } + + return self::$instance; + } +} diff --git a/app/src/Image/functions.php b/app/src/Image/functions.php new file mode 100644 index 0000000..973355f --- /dev/null +++ b/app/src/Image/functions.php @@ -0,0 +1,64 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Image; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\RuntimeException; +use Intervention\Image\ImageManager; +use Jenssegers\ImageHash\ImageHash; +use Jenssegers\ImageHash\Implementations\DifferenceHash; +use Throwable; + +function hasExtGd(): bool +{ + return extension_loaded('gd') && function_exists('gd_info'); +} + +function hasExtImagick(): bool +{ + return extension_loaded('imagick') && class_exists('Imagick'); +} + +function imageManager(): ImageManager +{ + try { + return ImageManagerInstance::get(); + } catch (Throwable) { + $driver = match (true) { + hasExtImagick() => 'Imagick', + hasExtGd() => 'Gd', + default => '', + }; + if ($driver === '') { + throw new RuntimeException( + message: message('No image driver available') + ); + } + $manager = new ImageManager(['driver' => $driver]); + new ImageManagerInstance($manager); + + return ImageManagerInstance::get(); + } +} + +function imageHash(): ImageHash +{ + try { + return ImageHashInstance::get(); + } catch (Throwable) { + new ImageHashInstance( + new ImageHash(new DifferenceHash(16)) + ); + + return ImageHashInstance::get(); + } +} diff --git a/app/src/Job/Job.php b/app/src/Job/Job.php new file mode 100644 index 0000000..4191aee --- /dev/null +++ b/app/src/Job/Job.php @@ -0,0 +1,48 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Job; + +use Chevere\Parameter\Interfaces\ArgumentsInterface; +use Chevereto\Controllers\WorkflowController; +use Ramsey\Uuid\Uuid; + +final class Job +{ + private string $id; + + private string $document; + + public function __construct( + private WorkflowController $controller, + private ArgumentsInterface $arguments + ) { + $this->id = Uuid::uuid4()->toString(); + } + + public function withDocument(string $document): self + { + $new = clone $this; + $new->document = $document; + + return $new; + } + + public function id(): string + { + return $this->id; + } + + public function document(): string + { + return $this->document ??= 'document'; + } +} diff --git a/app/src/Legacy/Classes/Album.php b/app/src/Legacy/Classes/Album.php new file mode 100644 index 0000000..17ad19f --- /dev/null +++ b/app/src/Legacy/Classes/Album.php @@ -0,0 +1,579 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\assertNotStopWords; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\check_value; +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\datetimegmt_convert_tz; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\G\nullify_string; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\seoUrlfy; +use function Chevereto\Legacy\G\truncate; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\send_mail; +use function Chevereto\Legacy\time_elapsed_string; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use Exception; + +class Album +{ + public const HASHED_NAMES = [ + 'password', + ]; + + public static function getSingle( + int $id, + bool $sumview = false, + bool $pretty = true, + array $requester = [] + ): array { + $tables = DB::getTables(); + $query = 'SELECT * FROM ' . $tables['albums'] . "\n"; + $joins = [ + 'LEFT JOIN ' . $tables['users'] . ' ON ' . $tables['albums'] . '.album_user_id = ' . $tables['users'] . '.user_id' + ]; + if ($requester !== []) { + if (version_compare(Settings::get('chevereto_version_installed'), '3.9.0', '>=')) { + $joins[] = 'LEFT JOIN ' . $tables['likes'] . ' ON ' . $tables['likes'] . '.like_content_type = "album" AND ' . $tables['albums'] . '.album_id = ' . $tables['likes'] . '.like_content_id AND ' . $tables['likes'] . '.like_user_id = ' . $requester['id']; + } + } + $query .= implode("\n", $joins) . "\n"; + $query .= 'WHERE album_id=:album_id;' . "\n"; + if ($sumview) { + $query .= 'UPDATE ' . $tables['albums'] . ' SET album_views = album_views + 1 WHERE album_id=:album_id'; + } + $db = DB::getInstance(); + $db->query($query); + $db->bind(':album_id', $id); + $album_db = $db->fetchSingle(); + if (!isset($album_db) + || !is_array($album_db) + || !$album_db) { + return []; + } + if ($sumview) { + $album_db['album_views'] ??= 0; + $album_db['album_views'] += 1; + Stat::track([ + 'action' => 'update', + 'table' => 'albums', + 'value' => '+1', + 'user_id' => $album_db['album_user_id'], + ]); + } + if ($requester !== []) { + $album_db['album_liked'] = (bool) $album_db['like_user_id']; + } + $return = $album_db; + + return $pretty + ? self::formatArray($return) + : $return; + } + + public static function getMultiple(array $ids, bool $pretty = false): array + { + if ($ids === []) { + throw new Exception('Empty ids provided', 600); + } + $tables = DB::getTables(); + $query = 'SELECT * FROM ' . $tables['albums'] . "\n"; + $joins = [ + 'LEFT JOIN ' . $tables['users'] . ' ON ' . $tables['albums'] . '.album_user_id = ' . $tables['users'] . '.user_id' + ]; + $query .= implode("\n", $joins) . "\n"; + $query .= 'WHERE album_id IN (' . implode(',', $ids) . ')' . "\n"; + $db = DB::getInstance(); + $db->query($query); + $db_rows = $db->fetchAll(); + if ($pretty) { + $return = []; + foreach ($db_rows as $k => $v) { + $return[$k] = self::formatArray($v); + } + + return $return; + } + + return $db_rows; + } + + public static function sumView(int $id, array $album = []): void + { + if (($album['id'] ?? 0) !== $id) { + $album = self::getSingle($id); + if ($album === []) { + throw new Exception(sprintf('Invalid album id %s', $id), 600); + } + } + $increment = '+1'; + DB::increment('albums', ['views' => $increment], ['id' => $id]); + Stat::track([ + 'action' => 'update', + 'table' => 'albums', + 'value' => $increment, + 'user_id' => $album['album_user_id'], + ]); + $addValue = session()['album_view_stock']; + $addValue[] = $id; + sessionVar()->put('album_view_stock', $id); + } + + public static function getUrl(string $id_encoded, string $title = null): string + { + $seo = seoUrlfy($title ?? ''); + $url = $seo == '' + ? $id_encoded + : ($seo . '.' . $id_encoded); + + return get_base_url( + (getSetting('root_route') === 'album' + ? '' + : getSetting('route_album') . '/') + . $url + ); + } + + public static function insert(array $values): int + { + Stat::assertMax('albums'); + if (!isset($values['user_id'])) { + $values['user_id'] = null; + } + if (!isset($values['description'])) { + $values['description'] = ''; + } + if (($values['privacy'] ?? null) == 'password') { + if (!check_value($values['password'])) { + throw new Exception('Missing album password', 100); + } + $values['password'] = password_hash($values['password'], PASSWORD_BCRYPT); + } + $flood = self::handleFlood(); + if ($flood !== []) { + throw new Exception( + _s( + 'Flooding detected. You can only upload %limit% %content% per %time%', + [ + '%content%' => _n('album', 'albums', $flood['limit']), + '%limit%' => $flood['limit'], + '%time%' => $flood['by'] + ] + ), + 130 + ); + } + if (!isset($values['name'])) { + $values['name'] = _s('Untitled') . ' ' . datetime(); + } + $privacyOpts = ['public', 'password', 'private_but_link']; + if (Login::isLoggedUser()) { + $privacyOpts[] = 'private'; + } + if (in_array($values['privacy'], $privacyOpts) == false) { + $values['privacy'] = 'public'; + } + nullify_string($values['description']); + if (empty($values['creation_ip'])) { + $values['creation_ip'] = get_client_ip(); + } + assertNotStopWords($values['name'] ?? '', $values['description'] ?? ''); + $album_array = [ + 'name' => $values['name'], + 'user_id' => $values['user_id'], + 'date' => datetime(), + 'date_gmt' => datetimegmt(), + 'privacy' => $values['privacy'], + 'password' => $values['privacy'] == 'password' ? $values['password'] : null, + 'description' => $values['description'], + 'creation_ip' => $values['creation_ip'], + 'parent_id' => $values['parent_id'] ?? null + ]; + $insert = DB::insert('albums', $album_array); + if (Login::isLoggedUser()) { + DB::increment('users', ['album_count' => '+1'], ['id' => $values['user_id']]); + } else { + $addValue = session()['guest_albums'] ?? []; + $addValue[] = $insert; + sessionVar()->put('guest_albums', $addValue); + } + Stat::track([ + 'action' => 'insert', + 'table' => 'albums', + 'value' => '+1', + 'date_gmt' => $album_array['date_gmt'] + ]); + + return $insert; + } + + public static function moveContents(int|string|array $from, ?int $to = null): bool + { + $ids = is_array($from) ? $from : [$from]; + $db = DB::getInstance(); + $db->query('UPDATE ' . DB::getTable('albums') . ' SET album_parent_id=:album_parent_id WHERE album_id IN (' . implode(',', $ids) . ')'); + $db->bind(':album_parent_id', $to); + + return $db->exec(); + } + + public static function addImage(int $album_id, int $id) + { + return self::addImages($album_id, [$id]); + } + + public static function addImages(?int $album_id, array $ids) + { + if ($ids === []) { + throw new Exception('Empty ids provided', 600); + } + $images = Image::getMultiple($ids, true); + $albums = []; + foreach ($images as $k => $v) { + if (isset($v['album']['id']) && $v['album']['id'] != $album_id) { + $album_k = $v['album']['id']; + if (!array_key_exists($album_k, $albums)) { + $albums[$album_k] = []; + } + $albums[$album_k][] = $v['id']; + } + } + $db = DB::getInstance(); + $db->query('UPDATE `' . DB::getTable('images') . '` SET `image_album_id`=:image_album_id WHERE `image_id` IN (' . implode(',', $ids) . ')'); + $db->bind(':image_album_id', $album_id); + $exec = $db->exec(); + if ($exec && $db->rowCount() > 0) { + if (!is_null($album_id)) { + self::updateImageCount($album_id, $db->rowCount()); + } + if ($albums !== []) { + $album_query = ''; + $album_query_tpl = 'UPDATE `' . DB::getTable('albums') . '` SET `album_image_count` = GREATEST(`album_image_count` - :counter, 0) WHERE `album_id` = :album_id;'; + foreach ($albums as $k => $v) { + $album_query .= strtr($album_query_tpl, [':counter' => count($v), ':album_id' => $k]); + } + $db = DB::getInstance(); + $db->query($album_query); + $db->exec(); + } + } + $db = DB::getInstance(); + $db->query('UPDATE `' . DB::getTable('albums') . '` SET `album_cover_id` = NULL WHERE `album_cover_id` IN(' . implode(',', $ids) . ');'); + $db->exec(); + $album = Album::getSingle((int) $album_id); + if (!isset($album['cover_id']) && is_int($album_id)) { + self::populateCover($album_id); + } + + return $exec; + } + + public static function update(int $id, array $values) + { + if (array_key_exists('description', $values)) { + nullify_string($values['description']); + } + assertNotStopWords($values['name'] ?? '', $values['description'] ?? ''); + if (($values['privacy'] ?? null) !== 'password') { + $values['password'] = null; + } + if (isset($values['password'])) { + $values['password'] = password_hash($values['password'], PASSWORD_BCRYPT); + } + + return DB::update('albums', $values, ['id' => $id]); + } + + public static function populateCover(int $id) + { + $db = DB::getInstance(); + $db->query('UPDATE `' . DB::getTable('albums') . '` + SET album_cover_id = (SELECT image_id FROM `' . DB::getTable('images') . '` WHERE image_album_id = album_id AND image_is_approved = 1 ORDER BY image_id DESC LIMIT 1) + WHERE album_id = :album_id;'); + $db->bind(':album_id', $id); + $db->exec(); + } + + public static function delete(int $id) + { + $images_deleted = 0; + $user_id = DB::get('albums', ['id' => $id])[0]['album_user_id'] ?? null; + $album = self::getSingle($id); + if ($album === []) { + return false; + } + foreach (DB::get('albums', ['parent_id' => $id]) as $child) { + $images_deleted += static::delete((int) $child['album_id']); + } + $delete = DB::delete('albums', ['id' => $id]); + if ($delete === 0) { + return false; + } + $db = DB::getInstance(); + $db->query('SELECT image_id FROM ' . DB::getTable('images') . ' WHERE image_album_id=:image_album_id'); + $db->bind(':image_album_id', $id); + $album_image_ids = $db->fetchAll(); + foreach ($album_image_ids as $k => $v) { + if (Image::delete((int) $v['image_id'], false) !== 0) { // We will update the user counts (image + album) at once + $images_deleted++; + } + } + if (isset($user_id)) { + $user_updated_counts = [ + 'album_count' => '-1', + 'image_count' => '-' . $images_deleted + ]; + DB::increment('users', $user_updated_counts, ['id' => $user_id]); + } + Stat::track([ + 'action' => 'delete', + 'table' => 'albums', + 'value' => '-1', + 'date_gmt' => $album['date_gmt'] + ]); + + return $images_deleted; + } + + public static function deleteMultiple(array $ids) + { + $affected = 0; + foreach ($ids as $id) { + $affected += self::delete((int) $id); + } + + return $affected; + } + + public static function updateImageCount(int $id, int $counter = 1, string $operator = '+') + { + $query = 'UPDATE `' . DB::getTable('albums') . '` SET `album_image_count` = '; + if (in_array($operator, ['+', '-'])) { + $query .= 'GREATEST(`album_image_count` ' . $operator . ' ' . $counter . ', 0)'; + } else { + $query .= $counter; + } + $query .= ' WHERE `album_id` = :album_id'; + $db = DB::getInstance(); + $db->query($query); + $db->bind(':album_id', $id); + + return $db->exec(); + } + + public static function fill(array &$album, array &$user = []) + { + $album['id_encoded'] = isset($album['id']) + ? encodeID((int) $album['id']) + : null; + if (!isset($album['name']) && isset($user['id'])) { + $album['name'] = _s("%s's images", $user['username']); + } + if (!isset($album['id'])) { + $album['url'] = $user !== [] ? User::getUrl($user['username']) : null; + $album['url_short'] = $album['url']; + } else { + $album['url'] = self::getUrl($album['id_encoded'], getSetting('seo_album_urls') ? $album['name'] : ''); + $album['url_short'] = self::getUrl($album['id_encoded'], ''); + } + $album['name_html'] = safe_html($album['name'] ?? ''); + if (!isset($album['privacy'])) { + $album['privacy'] = "public"; + } + switch ($album['privacy']) { + case 'private_but_link': + $album['privacy_notes'] = _s('Note: This content is private but anyone with the link will be able to see this.'); + + break; + case 'password': + $album['privacy_notes'] = _s('Note: This content is password protected. Remember to pass the content password to share.'); + + break; + case 'private': + $album['privacy_notes'] = _s('Note: This content is private. Change privacy to "public" to share.'); + + break; + default: + $album['privacy_notes'] = null; + + break; + } + $private_str = _s('Private'); + $privacy_to_label = [ + 'public' => _s('Public'), + 'private' => $private_str . '/' . _s('Me'), + 'private_but_link' => $private_str . '/' . _s('Link'), + 'password' => $private_str . '/' . _s('Password'), + ]; + $album['privacy_readable'] = $privacy_to_label[$album['privacy']]; + $album['name_with_privacy_readable'] = ($album['name'] ?? '') . ' (' . $album['privacy_readable'] . ')'; + $album['name_with_privacy_readable_html'] = safe_html($album['name_with_privacy_readable']); + $album['name_truncated'] = truncate($album['name'] ?? '', 28); + $album['name_truncated_html'] = safe_html($album['name_truncated']); + if (!empty($user)) { + User::fill($user); + } + $display_url = ''; + $display_width = ''; + $display_height = ''; + if (!empty($album['cover_id'])) { + $image = Image::getSingle((int) $album['cover_id']); + if ($image !== []) { + $image = DB::formatRow($image); + unset($image['album']); + Image::fill($image); + $display_url = $image['display_url']; + $display_width = $image['display_width']; + $display_height = $image['display_height']; + } + $album['cover_id_encoded'] = encodeID((int) $album['cover_id']); + } + if (!empty($album['parent_id'])) { + $album['parent_id_encoded'] = encodeID((int) $album['parent_id']); + } + $album['display_url'] = $display_url; + $album['display_width'] = $display_width; + $album['display_height'] = $display_height; + if (!isset($album['date_gmt'])) { + $album['date_gmt'] = $user['date_gmt'] ?? datetimegmt(); + } + $album['date_fixed_peer'] = Login::isLoggedUser() + ? datetimegmt_convert_tz($album['date_gmt'], Login::getUser()['timezone']) + : $album['date_gmt']; + } + + public static function formatArray(array $dbrow, bool $safe = false): array + { + $output = DB::formatRow($dbrow); + if (!isset($output['user'])) { + $output['user'] = []; + } + self::fill($output, $output['user']); + $output['views_label'] = _n('view', 'views', $output['views'] ?? 0); + $output['how_long_ago'] = time_elapsed_string($output['date_gmt'] ?? ''); + if (isset($output['images_slice'])) { + foreach ($output['images_slice'] as &$v) { + $v = Image::formatArray($v, $safe); + $v['flag'] = $v['nsfw'] ? 'unsafe' : 'safe'; + } + } + if ($safe) { + unset( + $output['id'], $output['privacy_extra'], $output['cover_id'], $output['parent_id'], + $output['user']['id'], + ); + } + + return $output; + } + + public static function checkPassword(string $hash, string $user_password): bool + { + return password_verify($user_password, $hash); + } + + public static function storeUserPasswordHash($album_id, $user_password): void + { + $addValue = session()['password']; + $addValue['album'][$album_id] = $user_password; + sessionVar()->put('password', $addValue); + } + + public static function checkSessionPassword($album = []): bool + { + $user_password_hash = session()['password']['album'][$album['id']] ?? null; + if (!isset($user_password_hash) || !password_verify($user_password_hash, $album['password'])) { + $removeValue = session()['password'] ?? null; + unset($removeValue['album'][$album['id']]); + sessionVar()->put('password', $removeValue); + + return false; + } + + return true; + } + + protected static function handleFlood(): array + { + if (!getSetting('flood_uploads_protection') || Login::isAdmin()) { + return []; + } + $flood_limit = [ + 'minute' => 20, + 'hour' => 200, + 'day' => 400, + 'week' => 2000, + 'month' => 10000 + ]; + + try { + $db = DB::getInstance(); + $flood_db = $db->queryFetchSingle( + "SELECT + COUNT(IF(album_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MINUTE), 1, NULL)) AS minute, + COUNT(IF(album_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 HOUR), 1, NULL)) AS hour, + COUNT(IF(album_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 DAY), 1, NULL)) AS day, + COUNT(IF(album_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 WEEK), 1, NULL)) AS week, + COUNT(IF(album_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH), 1, NULL)) AS month + FROM " . DB::getTable('albums') . " WHERE album_creation_ip='" . get_client_ip() . "' AND album_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH)" + ); + } catch (Exception $e) { + $flood_db = false; + } // Silence + if ($flood_db === false) { + return []; + } + $is_flood = false; + $flood_by = ''; + foreach (['minute', 'hour', 'day', 'week', 'month'] as $v) { + if ($flood_db[$v] >= $flood_limit[$v]) { + $flood_by = $v; + $is_flood = true; + + break; + } + } + if ($is_flood) { + if (!isset(session()['flood_albums_notify'], session()['flood_albums_notify'][$flood_by])) { + try { + $logged_user = Login::getUser(); + $message_report = '<html><body>' . "\n"; + $message_report .= strtr('Flooding IP <a href="' . get_public_url('search/images/?q=ip:%ip') . '">%ip</a>', ['%ip' => get_client_ip()]) . '<br>'; + $message_report .= 'User <a href="' . $logged_user['url'] . '">' . $logged_user['name'] . '</a><br>'; + $message_report .= '<br>'; + $message_report .= '<b>Albums per time period</b><br>'; + $message_report .= 'Minute: ' . $flood_db['minute'] . "<br>"; + $message_report .= 'Hour: ' . $flood_db['hour'] . "<br>"; + $message_report .= 'Week: ' . $flood_db['day'] . "<br>"; + $message_report .= 'Month: ' . $flood_db['week'] . "<br>"; + $message_report .= '</body></html>'; + send_mail(getSetting('email_incoming_email'), 'Flood report user ID ' . $logged_user['id'], $message_report); + $addValue = session()['flood_albums_notify']; + $addValue[$flood_by] = true; + sessionVar()->put('flood_albums_notify', $addValue); + } catch (Exception $e) { + } // Silence + } + + return ['flood' => true, 'limit' => $flood_limit[$flood_by], 'count' => $flood_db[$flood_by], 'by' => $flood_by]; + } + + return []; + } +} diff --git a/app/src/Legacy/Classes/ApiKey.php b/app/src/Legacy/Classes/ApiKey.php new file mode 100644 index 0000000..49186b8 --- /dev/null +++ b/app/src/Legacy/Classes/ApiKey.php @@ -0,0 +1,119 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use function Chevere\String\randomString; +use Chevere\Throwable\Exceptions\OutOfRangeException; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\datetimegmt; +use Throwable; + +class ApiKey +{ + public static function generate(int $id): string + { + return 'chv_' . encodeID($id) . '_' . randomString(128); + } + + public static function hash(string $key): string + { + return password_hash($key, PASSWORD_BCRYPT); + } + + public static function verify(string $key): array + { + $explode = explode('_', $key); + $idEncoded = $explode[1] ?? null; + if ($idEncoded === null) { + return []; + } + $id = decodeID($idEncoded); + $get = self::get($id); + if ($get === []) { + return []; + } + $verify = password_verify($key, $get['hash']); + if ($verify === false) { + return []; + } + + return [ + 'id' => $get['id'], + 'user_id' => $get['user_id'], + 'date_gmt' => $get['date_gmt'], + ]; + } + + public static function insert(int $userId): string + { + $values = [ + 'user_id' => $userId, + 'date_gmt' => datetimegmt(), + 'hash' => '', + ]; + $insert = DB::insert('api_keys', $values); + $key = self::generate($insert); + $hash = self::hash($key); + DB::update('api_keys', ['hash' => $hash], ['id' => $insert]); + + return $key; + } + + public static function remove(int $id): void + { + DB::delete('api_keys', ['id' => $id]); + } + + public static function has(int $userId): bool + { + return self::getUserKey($userId) !== []; + } + + public static function getUserPublic(int $userId): array + { + $get = self::getUserKey($userId); + if ($get === []) { + throw new OutOfRangeException( + message('The user does not have an API key') + ); + } + + return [ + 'public' => 'chv_' . encodeID($get['id']) . '_***', + 'date_gmt' => $get['date_gmt'], + ]; + } + + public static function get(int $id): array + { + try { + $get = DB::get('api_keys', ['id' => $id], 'AND', ['field' => 'id', 'order' => 'desc'])[0] ?? null; + } catch (Throwable) { + return []; + } + + return DB::formatRow($get, 'api_key') ?? []; + } + + public static function getUserKey(int $userId): array + { + try { + $get = DB::get('api_keys', ['user_id' => $userId], 'AND', ['field' => 'id', 'order' => 'desc'])[0] ?? null; + } catch (Throwable) { + return []; + } + + return DB::formatRow($get, 'api_key') ?? []; + } +} diff --git a/app/src/Legacy/Classes/AssetStorage.php b/app/src/Legacy/Classes/AssetStorage.php new file mode 100644 index 0000000..0a5ae5a --- /dev/null +++ b/app/src/Legacy/Classes/AssetStorage.php @@ -0,0 +1,56 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use Chevereto\Traits\Instance\AssertNoInstanceTrait; + +final class AssetStorage +{ + use AssertNoInstanceTrait; + + protected static array $storage = []; + + protected static ?LocalStorage $localStorage = null; + + protected static bool $isLocalLegacy; + + public function __construct(array $storage) + { + $this->assertNoInstance(); + self::$storage = $storage; + self::$isLocalLegacy = StorageApis::getApiType((int) $storage['api_id']) == 'local' + && PATH_PUBLIC === $storage['bucket']; + if (($storage['api_id'] ?? false) === 8) { + self::$localStorage = new LocalStorage($storage); + } + } + + public static function getStorage(): array + { + return self::$storage; + } + + public static function isLocalLegacy(): bool + { + return self::$isLocalLegacy; + } + + public static function uploadFiles(array $targets, array $options): void + { + Storage::uploadFiles($targets, self::getStorage(), $options); + } + + public static function deleteFiles(array $targets): void + { + Storage::deleteFiles($targets, self::getStorage()); + } +} diff --git a/app/src/Legacy/Classes/Confirmation.php b/app/src/Legacy/Classes/Confirmation.php new file mode 100644 index 0000000..8582a62 --- /dev/null +++ b/app/src/Legacy/Classes/Confirmation.php @@ -0,0 +1,47 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetimegmt; + +class Confirmation +{ + public static function get( + array|string $values, + array $sort = [], + int $limit = 1 + ): array|bool { + return DB::get('confirmations', $values, 'AND', $sort, $limit); + } + + public static function insert(array $values): int + { + if (!isset($values['status'])) { + $values['status'] = 'active'; + } + $values['date'] = datetime(); + $values['date_gmt'] = datetimegmt(); + + return DB::insert('confirmations', $values); + } + + public static function update($id, $values): bool + { + return DB::update('confirmations', $values, ['id' => $id]) > 0; + } + + public static function delete($values, $clause = 'AND'): int + { + return DB::delete('confirmations', $values, $clause); + } +} diff --git a/app/src/Legacy/Classes/DB.php b/app/src/Legacy/Classes/DB.php new file mode 100644 index 0000000..ea1f82c --- /dev/null +++ b/app/src/Legacy/Classes/DB.php @@ -0,0 +1,231 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use Chevereto\Legacy\G\DB as GDB; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Vars\env; +use PDO; + +class DB extends GDB +{ + public const TABLES = [ + 'albums', + 'api_keys', + 'categories', + 'confirmations', + 'deletions', + 'follows', + 'images_hash', + 'images', + 'import', + 'importing', + 'ip_bans', + 'likes', + 'logins', + 'login_connections', + 'login_cookies', + 'login_passwords', + 'login_providers', + 'notifications', + 'pages', + 'queue', + 'requests', + 'settings', + 'stats', + 'storage_apis', + 'storages', + 'two_factors', + 'users', + ]; + + public const PREFIX_TO_TABLE = [ + 'category' => 'categories', + 'deleted' => 'deletions', + 'image_hash' => 'images_hash', + ]; + + public const TABLES_TO_PREFIX = [ + 'categories' => 'category', + 'deletions' => 'deleted', + 'images_hash' => 'image_hash', + ]; + + public static function getTable(string $table): string + { + return env()['CHEVERETO_DB_TABLE_PREFIX'] . $table; + } + + public static function getTables(): array + { + $return = []; + foreach (self::TABLES as $table) { + $return[$table] = self::getTable($table); + } + + return $return; + } + + public static function get( + array|string $table, + array|string $values, + string $clause = 'AND', + array $sort = [], + int $limit = null, + int $fetch_style = PDO::FETCH_ASSOC + ): mixed { + $prefix = self::getFieldPrefix($table); + $values = self::getPrefixedValues($prefix, $values); + $sort = self::getPrefixedSort($prefix, $sort); + + return GDB::get($table, $values, $clause, $sort, $limit, $fetch_style); + } + + public static function update( + string $table, + array $values, + array $wheres, + string $clause = 'AND' + ): int { + $prefix = self::getFieldPrefix($table); + $values = self::getPrefixedValues($prefix, $values); + $wheres = self::getPrefixedValues($prefix, $wheres); + + return GDB::update($table, $values, $wheres, $clause); + } + + public static function insert($table, $values): int + { + $prefix = self::getFieldPrefix($table); + $values = self::getPrefixedValues($prefix, $values); + + return GDB::insert($table, $values); + } + + public static function increment( + string $table, + array $values, + array $wheres, + string $clause = 'AND' + ): int|false { + $prefix = self::getFieldPrefix($table); + $values = self::getPrefixedValues($prefix, $values); + $wheres = self::getPrefixedValues($prefix, $wheres); + + return GDB::increment($table, $values, $wheres, $clause); + } + + public static function delete( + string $table, + array $values, + string $clause = 'AND' + ): int { + $prefix = self::getFieldPrefix($table); + $values = self::getPrefixedValues($prefix, $values); + + return GDB::delete($table, $values, $clause); + } + + public static function formatRow(mixed $row, string $prefix = ''): mixed + { + if (!is_array($row)) { + return $row; + } + if ($prefix == '') { + $array = $row; + reset($array); + preg_match('/^([a-z0-9]+)_{1}/', (string) key($array), $match); + $prefix = $match[1] ?? ''; + } + $output = []; + foreach ($row as $k => $v) { + $k = (string) $k; + if (!starts_with($prefix, $k)) { + $new_key = preg_match('/^([a-z0-9]+)_/i', (string) $k, $new_key_match); + $new_key = $new_key_match[1] ?? null; + if ($new_key === null) { + continue; + } + $output[$new_key][str_replace($new_key . '_', '', $k)] = $v; + unset($output[$k]); + } else { + $output[str_replace($prefix . '_', '', $k)] = $v; + } + } + + return $output; + } + + public static function formatRows($get, string $prefix = '') + { + if (isset($get[0]) && is_array($get[0])) { + foreach ($get as $k => $v) { + self::formatRowValues($get[$k], $v, $prefix); + } + } elseif (!empty($get)) { + self::formatRowValues(values: $get, prefix: $prefix); + } + + return $get; + } + + public static function formatRowValues(array|string &$values, array|string $row = [], string $prefix = ''): void + { + $values = self::formatRow($row !== [] ? $row : $values, $prefix); + } + + public static function getTableFromFieldPrefix(string $prefix, bool $db_table_prefix = true): string + { + $table = array_key_exists($prefix, self::PREFIX_TO_TABLE) + ? self::PREFIX_TO_TABLE[$prefix] + : $prefix . 's'; + + return $db_table_prefix ? self::getTable($table) : $table; + } + + public static function getFieldPrefix(array|string $table): string + { + if (is_array($table)) { + $array = $table; + $table = $array['table']; + } + if (array_key_exists($table, self::TABLES_TO_PREFIX)) { + return self::TABLES_TO_PREFIX[$table]; + } else { + return rtrim($table, 's'); + } + } + + protected static function getPrefixedValues(string $prefix, array|string $values): array|string + { + if (!is_array($values)) { + return $values; + } + $values_prefix = []; + if (is_array($values)) { + foreach ($values as $k => $v) { + $values_prefix[$prefix . '_' . $k] = $v; + } + } + + return $values_prefix; + } + + protected static function getPrefixedSort(string $prefix, array $sort): array + { + if ($sort !== [] && !empty($sort['field'])) { + $sort['field'] = $prefix . '_' . $sort['field']; + } + + return $sort; + } +} diff --git a/app/src/Legacy/Classes/Image.php b/app/src/Legacy/Classes/Image.php new file mode 100644 index 0000000..f8846d4 --- /dev/null +++ b/app/src/Legacy/Classes/Image.php @@ -0,0 +1,1534 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use function Chevere\String\randomString; +use Chevere\Throwable\Exceptions\LogicException; +use function Chevereto\Legacy\assertNotStopWords; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\add_ending_slash; +use function Chevereto\Legacy\G\array_filter_array; +use function Chevereto\Legacy\G\array_utf8encode; +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetime_add; +use function Chevereto\Legacy\G\datetime_diff; +use function Chevereto\Legacy\G\datetime_modify; +use function Chevereto\Legacy\G\datetime_sub; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\datetimegmt_convert_tz; +use function Chevereto\Legacy\G\format_bytes; +use function Chevereto\Legacy\G\get_basename_without_extension; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_filename; +use function Chevereto\Legacy\G\get_image_fileinfo as GGet_image_fileinfo; +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\G\is_animated_image; +use function Chevereto\Legacy\G\name_unique_file; +use function Chevereto\Legacy\G\nullify_string; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\seoUrlfy; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\truncate; +use function Chevereto\Legacy\G\unlinkIfExists; +use function Chevereto\Legacy\G\url_to_relative; +use function Chevereto\Legacy\get_image_fileinfo; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\system_notification_email; +use function Chevereto\Legacy\time_elapsed_string; +use function Chevereto\Vars\env; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use DateTimeZone; +use Exception; +use Intervention\Image\ImageManagerStatic; +use PHPExif\Exif; +use function Safe\password_hash; +use Throwable; + +class Image +{ + public static array $table_chv_image = [ + 'name', + 'extension', + 'album_id', + 'size', + 'width', + 'height', + 'date', + 'date_gmt', + 'nsfw', + 'user_id', + 'uploader_ip', + 'storage_mode', + 'storage_id', + 'md5', + 'source_md5', + 'original_filename', + 'original_exifdata', + 'category_id', + 'description', + 'chain', + 'thumb_size', + 'medium_size', + 'title', + 'expiration_date_gmt', + 'likes', + 'is_animated', + 'is_approved', + 'is_360', + ]; + + protected static array $expirations = [ + ['minute', 5, 300], + ['minute', 15, 900], + ['minute', 30, 1800], + ['hour', 1, 3600], + ['hour', 3, 10800], + ['hour', 6, 21600], + ['hour', 12, 43200], + ['day', 1, 86400], + ['day', 2, 172800], + ['day', 3, 259200], + ['day', 4, 345600], + ['day', 5, 432000], + ['day', 6, 518400], + ['week', 1, 604800], + ['week', 2, 1209600], + ['week', 3, 1814400], + ['month', 1, 2630000], + ['month', 2, 5260000], + ['month', 3, 7890000], + ['month', 4, 10520000], + ['month', 5, 13150000], + ['month', 6, 15780000], + ['year', 1, 31536000], + ]; + + public static array $chain_sizes = ['original', 'image', 'medium', 'thumb']; + + public static function getSingle( + int $id, + bool $sumView = false, + bool $pretty = false, + array $requester = [] + ): array { + $tables = DB::getTables(); + $query = 'SELECT * FROM ' . $tables['images'] . "\n"; + $joins = [ + 'LEFT JOIN ' . $tables['storages'] . ' ON ' . $tables['images'] . '.image_storage_id = ' . $tables['storages'] . '.storage_id', + 'LEFT JOIN ' . $tables['storage_apis'] . ' ON ' . $tables['storages'] . '.storage_api_id = ' . $tables['storage_apis'] . '.storage_api_id', + 'LEFT JOIN ' . $tables['users'] . ' ON ' . $tables['images'] . '.image_user_id = ' . $tables['users'] . '.user_id', + 'LEFT JOIN ' . $tables['albums'] . ' ON ' . $tables['images'] . '.image_album_id = ' . $tables['albums'] . '.album_id' + ]; + if ($requester !== []) { + if (version_compare(Settings::get('chevereto_version_installed'), '3.7.0', '>=')) { + $joins[] = 'LEFT JOIN ' . $tables['likes'] . ' ON ' . $tables['likes'] . '.like_content_type = "image" AND ' . $tables['images'] . '.image_id = ' . $tables['likes'] . '.like_content_id AND ' . $tables['likes'] . '.like_user_id = ' . $requester['id']; + } + } + $query .= implode("\n", $joins) . "\n"; + $query .= 'WHERE image_id=:image_id;' . "\n"; + if ($sumView) { + $query .= 'UPDATE ' . $tables['images'] . ' SET image_views = image_views + 1 WHERE image_id=:image_id'; + } + $db = DB::getInstance(); + $db->query($query); + $db->bind(':image_id', $id); + $image_db = $db->fetchSingle(); + if (empty($image_db)) { + return []; + } + if ($sumView) { + $image_db['image_views'] += 1; + Stat::track([ + 'action' => 'update', + 'table' => 'images', + 'value' => '+1', + 'user_id' => $image_db['image_user_id'], + ]); + } + if ($requester !== []) { + $image_db['image_liked'] = (bool) $image_db['like_user_id']; + } + $return = $image_db; + $return = $pretty ? self::formatArray($return) : $return; + if (!isset($return['file_resource'])) { + $return['file_resource'] = self::getSrcTargetSingle($image_db); + } + + return $return; + } + + public static function getMultiple(array $ids, bool $pretty = false): array + { + if ($ids === []) { + throw new Exception('Null $ids provided in Image::get_multiple', 600); + } + $tables = DB::getTables(); + $query = 'SELECT * FROM ' . $tables['images'] . "\n"; + $joins = [ + 'LEFT JOIN ' . $tables['users'] . ' ON ' . $tables['images'] . '.image_user_id = ' . $tables['users'] . '.user_id', + 'LEFT JOIN ' . $tables['albums'] . ' ON ' . $tables['images'] . '.image_album_id = ' . $tables['albums'] . '.album_id' + ]; + $query .= implode("\n", $joins) . "\n"; + $query .= 'WHERE image_id IN (' . implode(',', $ids) . ')' . "\n"; + $db = DB::getInstance(); + $db->query($query); + $images_db = $db->fetchAll(); + if (!empty($images_db)) { + foreach ($images_db as $k => $v) { + $images_db[$k] = array_merge($v, self::getSrcTargetSingle($v, true)); // todo + } + } + if ($pretty) { + $return = []; + foreach ($images_db as $k => $v) { + $return[] = self::formatArray($v); + } + + return $return; + } + + return $images_db; + } + + public static function getAlbumSlice( + int $image_id, + int $album_id = null, + int $padding = 2 + ): array { + $tables = DB::getTables(); + if (!isset($album_id)) { + $db = DB::getInstance(); + $db->query('SELECT image_album_id FROM ' . $tables['images'] . ' WHERE image_id=:image_id'); + $db->bind(':image_id', $image_id); + $image_album_db = $db->fetchSingle(); + $album_id = $image_album_db['image_album_id']; + if (!isset($album_id)) { + return []; + } + } + if (!is_numeric($padding)) { + $padding = 2; + } + $prevListing = new Listing(); + $prevListing->setType('images'); + $prevListing->setLimit(($padding * 2) + 1); + $prevListing->setSortType('date'); + $prevListing->setSortOrder('desc'); + $prevListing->setRequester(Login::getUser()); + $prevListing->setWhere('WHERE image_album_id=' . $album_id . ' AND image_id <= ' . $image_id); + $prevListing->exec(); + $nextListing = new Listing(); + $nextListing->setType('images'); + $nextListing->setLimit($padding * 2); + $nextListing->setSortType('date'); + $nextListing->setSortOrder('asc'); + $nextListing->setRequester(Login::getUser()); + $nextListing->setWhere('WHERE image_album_id=' . $album_id . ' AND image_id > ' . $image_id); + $nextListing->exec(); + if (is_array($prevListing->output)) { + $prevListing->output = array_reverse($prevListing->output); + } + $list = array_merge($prevListing->output, $nextListing->output); + $album_offset = [ + 'top' => $prevListing->count - 1, + 'bottom' => $nextListing->count + ]; + $album_chop_count = count($list); + $album_iteration_times = $album_chop_count - ($padding * 2 + 1); + if ($album_chop_count > ($padding * 2 + 1)) { + if ($album_offset['top'] > $padding && $album_offset['bottom'] > $padding) { + for ($i = 0; $i < $album_offset['top'] - $padding; $i++) { + unset($list[$i]); + } + for ($i = 1; $i <= $album_offset['bottom'] - $padding; $i++) { + unset($list[$album_chop_count - $i]); + } + } elseif ($album_offset['top'] <= $padding) { + for ($i = 0; $i < $album_iteration_times; $i++) { + unset($list[$album_chop_count - 1 - $i]); + } + } elseif ($album_offset['bottom'] <= $padding) { + for ($i = 0; $i < $album_iteration_times; $i++) { + unset($list[$i]); + } + } + $list = array_values($list); + } + $images = []; + foreach ($list as $v) { + $format = self::formatArray($v); + $images[$format['id']] = $format; + } + if (is_array($prevListing->output) && $prevListing->count > 1) { + $prevLastKey = $prevListing->count - 2; + $prevLastId = $prevListing->output[$prevLastKey]['image_id']; + $slice['prev'] = $images[$prevLastId]; + } + if ($nextListing->output) { + $slice['next'] = $images[$nextListing->output[0]['image_id']]; + } + $slice['images'] = $images; + + return $slice; + } + + public static function getSrcTargetSingle(array $filearray, bool $prefix = true): array + { + $prefix = $prefix ? 'image_' : null; + $folder = CHV_PATH_IMAGES; + $pretty = !isset($filearray['image_id']); + $mode = $filearray[$prefix . 'storage_mode']; + $chain_mask = str_split( + (string) str_pad( + decbin((int) ($filearray[$pretty ? 'chain' : 'image_chain'])), + 4, + '0', + STR_PAD_LEFT + ) + ); + $chain_to_sufix = [ + 'image' => '.', + 'thumb' => '.th.', + 'medium' => '.md.' + ]; + if ($pretty) { + $type = isset($filearray['storage']['id']) ? 'url' : 'path'; + } else { + $type = isset($filearray['storage_id']) ? 'url' : 'path'; + } + if ($type == 'url') { // URL resource folder + $folder = add_ending_slash($pretty ? $filearray['storage']['url'] : $filearray['storage_url']); + } + switch ($mode) { + case 'datefolder': + $datetime = $filearray[$prefix . 'date']; + $datefolder = preg_replace('/(.*)(\s.*)/', '$1', str_replace('-', '/', $datetime)); + $folder .= add_ending_slash($datefolder); // Y/m/d/ + + break; + case 'old': + $folder .= 'old/'; + + break; + case 'direct': + // use direct $folder + break; + case 'path': + $folder = add_ending_slash($filearray['path']); + + break; + } + $targets = [ + 'type' => $type, + 'chain' => [ + 'image' => null, + 'thumb' => null, + 'medium' => null + ] + ]; + foreach (array_keys($targets['chain']) as $k) { + $targets['chain'][$k] = $folder . $filearray[$prefix . 'name'] . $chain_to_sufix[$k] . $filearray[$prefix . 'extension']; + } + if ($type == 'path') { + foreach ($targets['chain'] as $k => $v) { + if (!is_readable($v)) { + unset($targets['chain'][$k]); + } + } + } else { + foreach ($chain_mask as $k => $v) { + if (!(bool) $v) { + unset($targets['chain'][self::$chain_sizes[$k]]); + } + } + } + + return $targets; + } + + public static function getUrlViewer(string $id_encoded, string $title = ''): string + { + $seo = seoUrlfy($title); + $url = $seo == '' + ? $id_encoded + : ($seo . '.' . $id_encoded); + + return get_public_url( + (getSetting('root_route') === 'image' + ? '' + : getSetting('route_image') . '/') + . $url, + ); + } + + public static function getDeleteUrl(string $idEncoded, string $password): string + { + return self::getUrlViewer($idEncoded) . '/delete/' . $password; + } + + public static function getAvailableExpirations(): array + { + $string = _s('After %n %t'); + $translate = [ + 'minute' => _n('minute', 'minutes', 1), + 'hour' => _n('hour', 'hours', 1), + 'day' => _n('day', 'days', 1), + 'week' => _n('week', 'weeks', 1), + 'month' => _n('month', 'months', 1), + 'year' => _n('year', 'years', 1), + ]; + $return = [ + null => _s("Don't autodelete"), + ]; + $table = self::$expirations; + foreach ($table as $expire) { + $unit = $expire[0]; + $interval_spec = self::getPastTimeSpec($unit, $expire[1]); + $return[$interval_spec] = strtr($string, ['%n' => $expire[1], '%t' => _n($unit, $unit . 's', $expire[1])]); + } + + return $return; + } + + protected static function getPastTimeSpec(string $unit, string $value): string + { + return 'P' . + (in_array($unit, ['second', 'minute', 'hour']) + ? 'T' + : '') + . $value . strtoupper($unit[0]); + } + + public static function getExpirationFromSeconds(int $seconds): string + { + if ($seconds <= 0) { + return ''; + } + $previous = array_values(self::$expirations)[0]; + foreach (self::$expirations as $expires) { + if ($seconds < $expires[2]) { + return self::getPastTimeSpec(...$previous); + } + $previous = [strval($expires[0]), strval($expires[1])]; + } + $maxLimit = self::$expirations[count(self::$expirations) - 1]; + + return self::getPastTimeSpec(...$maxLimit); + } + + public static function watermarkFromDb(): void + { + $file = PATH_PUBLIC_CONTENT_IMAGES_SYSTEM . getSetting('watermark_image'); + $assetsDb = DB::get('assets', ['key' => 'watermark_image'], 'AND', [], 1); + if ($assetsDb === false) { + return; + } + if (file_exists($file) + && md5_file($file) != $assetsDb['asset_md5'] + && !starts_with('default/', getSetting('watermark_image')) + ) { + unlinkIfExists($file); + } + if (!file_exists($file)) { + $fh = fopen($file, 'w'); + $st = !$fh || fwrite($fh, $assetsDb['asset_blob']) === false ? false : true; + fclose($fh); + if (!$st) { + throw new LogicException( + message(_s("Can't open %s for writing", $file)), + 600 + ); + } + } + } + + public static function watermark(string $image_path, array $options = []): bool + { + $options = array_merge([ + 'ratio' => getSetting('watermark_percentage') / 100, + 'position' => explode(' ', getSetting('watermark_position')), + 'file' => PATH_PUBLIC_CONTENT_IMAGES_SYSTEM . getSetting('watermark_image') + ], $options); + self::watermarkFromDb(); + if (!is_readable($options['file'])) { + throw new Exception("Can't read watermark file at " . $options['file'], 600); + } + $image = ImageManagerStatic::make($image_path); + $options['ratio'] = min(1, (is_numeric($options['ratio']) ? max(0.01, $options['ratio']) : 0.01)); + if (!in_array($options['position'][0], ['left', 'center', 'right'])) { + $options['position'][0] = 'right'; + } + if (!in_array($options['position'][1], ['top', 'center', 'bottom'])) { + $options['position'][0] = 'bottom'; + } + $watermarkPos = []; + if ($options['position'][1] !== 'center') { + $watermarkPos[] = $options['position'][1]; + } + if ($options['position'][0] !== 'center') { + $watermarkPos[] = $options['position'][0]; + } + $watermark = ImageManagerStatic::make($options['file']); + $watermark_area = $image->getWidth() * $image->getHeight() * $options['ratio']; + $watermark_image_ratio = $watermark->getWidth() / $watermark->getHeight(); + $watermark_new_height = round(sqrt($watermark_area / $watermark_image_ratio), 0); + if ($watermark_new_height > $image->getHeight()) { + $watermark_new_height = $image->getHeight(); + } + if (getSetting('watermark_margin') && $options['position'][1] !== 'center' && $watermark_new_height + getSetting('watermark_margin') > $image->getHeight()) { + $watermark_new_height -= $watermark_new_height + 2 * getSetting('watermark_margin') - $image->getHeight(); + } + $watermark_new_width = round($watermark_image_ratio * $watermark_new_height, 0); + if ($watermark_new_width > $image->getWidth()) { + $watermark_new_width = $image->getWidth(); + } + if (getSetting('watermark_margin') && $options['position'][0] !== 'center' && $watermark_new_width + getSetting('watermark_margin') > $image->getWidth()) { + $watermark_new_width -= $watermark_new_width + 2 * getSetting('watermark_margin') - $image->getWidth(); + $watermark_new_height = $watermark_new_width / $watermark_image_ratio; + } + if ($watermark_new_width !== $watermark->getWidth()) { + $watermark->resize($watermark_new_width, null, function ($constraint) { + $constraint->aspectRatio(); + $constraint->upsize(); + }); + } + $watermark->opacity(getSetting('watermark_opacity')); + $image + ->insert( + $watermark, + $watermarkPos === [] + ? 'center' + : implode('-', $watermarkPos), + getSetting('watermark_margin'), + getSetting('watermark_margin') + ) + ->save(); + + return true; + } + + public static function upload( + array|string $source, + string $destination, + string|null $filename = null, + array $options = [], + int|null $storage_id = null, + bool $guestSessionHandle = true + ): array { + $default_options = Upload::getDefaultOptions(); + $options = array_merge($default_options, $options); + if (!is_null($filename) && !$options['filenaming']) { + $options['filenaming'] = 'original'; + } + $upload = new Upload(); + $upload->setSource($source); + $upload->setDestination($destination); + $upload->setOptions($options); + if (!is_null($storage_id)) { + $upload->setStorageId($storage_id); + } + if (!is_null($filename)) { + $upload->setFilename($filename); + } + if ($guestSessionHandle == false) { + $upload->detectFlood = false; + } + $upload->exec(); + $return = [ + 'uploaded' => $upload->uploaded(), + 'source' => $upload->source(), + ]; + if (property_exists($upload, 'moderation') && $upload->moderation() !== null) { + $return['moderation'] = $upload->moderation(); + } + + return $return; + } + + // Mostly for people uploading two times the same image to test or just bug you + // $mixed => $_FILES or md5 string + public static function isDuplicatedUpload(array|string $source, string $time_frame = 'P1D'): bool + { + if (is_array($source) && isset($source['tmp_name'])) { + $filename = $source['tmp_name']; + if (stream_resolve_include_path($filename) == false) { + throw new Exception("Concurrency: $filename is gone", 666); + } + $md5_file = md5_file($filename); + } else { + $filename = $source; + $md5_file = $filename; + } + if ($md5_file === false) { + throw new Exception('Unable to process md5_file', 600); + } + $db = DB::getInstance(); + $db->query('SELECT * FROM ' . DB::getTable('images') . ' WHERE (image_md5=:md5 OR image_source_md5=:md5) AND image_uploader_ip=:ip AND image_date_gmt > :date_gmt'); + $db->bind(':md5', $md5_file); + $db->bind(':ip', get_client_ip()); + $db->bind(':date_gmt', datetime_sub(datetimegmt(), $time_frame)); + $db->exec(); + + return (bool) $db->fetchColumn(); + } + + public static function uploadToWebsite( + array|string $source, + array $user = [], + array $params = [], + bool $guestSessionHandle = true, + string|null $ip = null + ): array { + $params['use_file_date'] = $params['use_file_date'] ?? false; + nullify_string($params['album_id']); + $datefolder = ''; + + try { + if ($user !== [] + && getSetting('upload_max_filesize_mb_bak') !== null + && getSetting('upload_max_filesize_mb') == getSetting('upload_max_filesize_mb_guest') + ) { + Settings::setValue('upload_max_filesize_mb', getSetting('upload_max_filesize_mb_bak')); + } + $do_dupe_check = !getSetting('enable_duplicate_uploads') && !($user['is_admin'] ?? false); + if ($do_dupe_check && self::isDuplicatedUpload($source)) { + throw new Exception(_s('Duplicated upload'), 101); + } + $storage_id = null; + $get_active_storages = env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE'] + ? Storage::get(['is_active' => 1]) + : []; + if ($get_active_storages !== []) { + if (count($get_active_storages) > 1) { + $last_used_storage = (int) getSetting('last_used_storage'); + } else { + $last_used_storage = null; + $storage_id = (int) $get_active_storages[0]['id']; + } + $last_used_storage_is_active = false; + $active_storages = []; + foreach ($get_active_storages as $i => $get_active_storage) { + $pointer = $get_active_storage['id']; + $active_storages[$pointer] = $get_active_storage; + if ($pointer === $last_used_storage) { + $last_used_storage_is_active = true; + } + } + if (!$last_used_storage_is_active) { + $storage_id = $get_active_storages[0]['id']; + } else { + unset($active_storages[$last_used_storage]); + $storage_keys = array_keys($active_storages); + shuffle($storage_keys); + $storage_id = $storage_keys[0]; + } + $storage = $active_storages[$storage_id]; + } + $storage_mode = getSetting('upload_storage_mode'); + $upload_path = ''; + switch ($storage_mode) { + case 'direct': + $upload_path = CHV_PATH_IMAGES; + + break; + case 'datefolder': + $stockDate = datetime(); + $stockDateGmt = datetimegmt(); + if (is_array($source) && $params['use_file_date'] && $source['type'] === 'image/jpeg') { + try { + $exifSource = \exif_read_data($source['tmp_name']); + } catch (Throwable $e) { + } + if (isset($exifSource['DateTime'])) { + $stockDateGmt = date_create_from_format("Y:m:d H:i:s", $exifSource['DateTime'], new DateTimeZone('UTC')); + $stockDateGmt = $stockDateGmt->format('Y-m-d H:i:s'); + $stockDate = datetimegmt_convert_tz($stockDateGmt, getSetting('default_timezone')); + } + } + $datefolder_stock = [ + 'date' => $stockDate, + 'date_gmt' => $stockDateGmt, + ]; + $datefolder = date('Y/m/d/', strtotime($datefolder_stock['date'])); + $upload_path = CHV_PATH_IMAGES . $datefolder; + + break; + } + $filenaming = getSetting('upload_filenaming'); + if ($filenaming !== 'id' && in_array($params['privacy'] ?? '', ['password', 'private', 'private_but_link'])) { + $filenaming = 'random'; + } + $upload_options = [ + 'max_size' => get_bytes(getSetting('upload_max_filesize_mb') . ' MB'), + 'exif' => (getSetting('upload_image_exif_user_setting') && $user !== []) + ? $user['image_keep_exif'] + : getSetting('upload_image_exif'), + ]; + if ($filenaming == 'id') { + try { + $dummy = [ + 'name' => '', + 'extension' => '', + 'size' => 0, + 'width' => 0, + 'height' => 0, + 'date' => '0000-01-01 00:00:00', + 'date_gmt' => '0000-01-01 00:00:00', + 'nsfw' => 0, + 'uploader_ip' => '', + 'md5' => '', + 'original_filename' => '', + 'chain' => 0, + 'thumb_size' => 0, + 'medium_size' => 0, + ]; + $dummy_insert = DB::insert('images', $dummy); + DB::delete('images', ['id' => $dummy_insert]); + $target_id = $dummy_insert; + } catch (Throwable $e) { + $filenaming = 'original'; + } + } + $upload_options['filenaming'] = $filenaming; + $upload_options['allowed_formats'] = self::getEnabledImageFormats(); + $image_upload = self::upload( + $source, + $upload_path, + ($filenaming == 'id' && isset($target_id)) + ? encodeID((int) $target_id) + : null, + $upload_options, + $storage_id, + $guestSessionHandle + ); + $chain_mask = [0, 1, 0, 1]; // original image medium thumb + if ($do_dupe_check && self::isDuplicatedUpload($image_upload['uploaded']['fileinfo']['md5'])) { + throw new Exception(_s('Duplicated upload'), 102); + } + $image_ratio = $image_upload['uploaded']['fileinfo']['width'] / $image_upload['uploaded']['fileinfo']['height']; + $must_resize = false; + $image_max_size_cfg = [ + 'width' => Settings::get('upload_max_image_width') ?: $image_upload['uploaded']['fileinfo']['width'], + 'height' => Settings::get('upload_max_image_height') ?: $image_upload['uploaded']['fileinfo']['height'], + ]; + if ($image_max_size_cfg['width'] < $image_upload['uploaded']['fileinfo']['width'] || $image_max_size_cfg['height'] < $image_upload['uploaded']['fileinfo']['height']) { + $image_max = $image_max_size_cfg; + $image_max['width'] = (int) round($image_max_size_cfg['height'] * $image_ratio); + $image_max['height'] = (int) round($image_max_size_cfg['width'] / $image_ratio); + if ($image_max['height'] > $image_max_size_cfg['height']) { + $image_max['height'] = $image_max_size_cfg['height']; + $image_max['width'] = (int) round($image_max['height'] * $image_ratio); + } + if ($image_max['width'] > $image_max_size_cfg['width']) { + $image_max['width'] = $image_max_size_cfg['width']; + $image_max['height'] = (int) round($image_max['width'] / $image_ratio); + } + if ($image_max !== ['width' => $image_upload['uploaded']['fileinfo']['width'], 'height' => $image_max_size_cfg['height']]) { // loose just in case.. + $must_resize = true; + $params['width'] = $image_max['width']; + $params['height'] = $image_max['height']; + } + } + foreach (['width', 'height'] as $k) { + if (!isset($params[$k]) || !is_numeric($params[$k])) { + continue; + } + if ($params[$k] != $image_upload['uploaded']['fileinfo'][$k]) { + $must_resize = true; + } + } + $is_360 = (bool) $image_upload['uploaded']['fileinfo']['is_360']; + if (is_animated_image($image_upload['uploaded']['file'])) { + $must_resize = false; + } + if ($must_resize) { + $source_md5 = $image_upload['uploaded']['fileinfo']['md5']; + if ($do_dupe_check && self::isDuplicatedUpload($source_md5)) { + throw new Exception(_s('Duplicated upload'), 103); + } + $image_ratio = $image_upload['uploaded']['fileinfo']['ratio']; + if (isset($params['width'], $params['height'])) { + $image_resize_options = [ + 'width' => $params['width'], + 'height' => $params['height'], + ]; + } else { + $image_resize_options = ['width' => $params['width']]; + } + $image_upload['uploaded'] = self::resize( + $image_upload['uploaded']['file'], + dirname($image_upload['uploaded']['file']), + null, + $image_resize_options + ); + $image_upload['uploaded']['fileinfo']['is_360'] = $is_360; + } + $image_thumb_options = [ + 'forced' => true, + 'over_resize' => true, + 'fitted' => true, + 'width' => getSetting('upload_thumb_width'), + 'height' => getSetting('upload_thumb_height'), + ]; + $medium_size = getSetting('upload_medium_size'); + $medium_fixed_dimension = getSetting('upload_medium_fixed_dimension'); + $is_animated_image = is_animated_image($image_upload['uploaded']['file']); + $image_thumb = self::resize( + source: $image_upload['uploaded']['file'], + destination: dirname($image_upload['uploaded']['file']), + filename: $image_upload['uploaded']['name'] . '.th', + options: $image_thumb_options + ); + $original_md5 = $image_upload['source']['fileinfo']['md5']; + $watermark_enable = getSetting('watermark_enable'); + if ($watermark_enable) { + $watermark_user = $user !== [] + ? ($user['is_admin'] ? 'admin' : 'user') + : 'guest'; + $watermark_enable = getSetting('watermark_enable_' . $watermark_user); + } + $watermark_gif = (bool) getSetting('watermark_enable_file_gif'); + $apply_watermark = $watermark_enable; + if ($is_animated_image || $image_upload['uploaded']['fileinfo']['is_360']) { + $apply_watermark = false; + } + if ($apply_watermark) { + foreach (['width', 'height'] as $k) { + $min_value = getSetting('watermark_target_min_' . $k); + if ($min_value == 0) { // Skip on zero + continue; + } + $apply_watermark = $image_upload['uploaded']['fileinfo'][$k] >= $min_value; + } + if ($apply_watermark && $image_upload['uploaded']['fileinfo']['extension'] == 'gif' && !$watermark_gif) { + $apply_watermark = false; + } + } + if ($apply_watermark && self::watermark($image_upload['uploaded']['file'])) { + $image_upload['uploaded']['fileinfo'] = GGet_image_fileinfo($image_upload['uploaded']['file']); // Remake the fileinfo array, new full array file info (todo: faster!) + $image_upload['uploaded']['fileinfo']['md5'] = $original_md5; // Preserve original MD5 for watermarked images + } + if ($image_upload['uploaded']['fileinfo'][$medium_fixed_dimension] > $medium_size || $is_animated_image) { + $image_medium_options = []; + $image_medium_options[$medium_fixed_dimension] = $medium_size; + if ($is_animated_image) { + $image_medium_options['forced'] = true; + $image_medium_options[$medium_fixed_dimension] = min($image_medium_options[$medium_fixed_dimension], $image_upload['uploaded']['fileinfo'][$medium_fixed_dimension]); + } + $image_medium = self::resize( + $image_upload['uploaded']['file'], + dirname($image_upload['uploaded']['file']), + $image_upload['uploaded']['name'] . '.md', + $image_medium_options + ); + $chain_mask[2] = 1; + } + $chain_value = bindec((string) implode('', $chain_mask)); + $disk_space_needed = $image_upload['uploaded']['fileinfo']['size']; + if (isset($image_thumb['fileinfo']['size'])) { + $disk_space_needed += $image_thumb['fileinfo']['size']; + } + if (isset($image_medium['fileinfo']['size'])) { + $disk_space_needed += $image_medium['fileinfo']['size']; + } + $switch_to_local = false; + if (isset($storage_id) + && !empty($storage['capacity']) + && $disk_space_needed > ($storage['capacity'] - $storage['space_used']) + ) { + if (isset($active_storages) && $active_storages !== []) { + $capable_storages = []; + foreach ($active_storages as $k => $v) { + if ($v['id'] == $storage_id || $disk_space_needed > ($v['capacity'] - $v['space_used'])) { + continue; + } + $capable_storages[] = $v['id']; + } + if (count($capable_storages) == 0) { + $switch_to_local = true; + } else { + $storage_id = (int) $capable_storages[0]; + $storage = $active_storages[$storage_id]; + } + } else { + $switch_to_local = true; + } + if ($switch_to_local) { + $storage_id = 0; + $downstream = $image_upload['uploaded']['file']; + $fixed_filename = $image_upload['uploaded']['filename']; + $uploaded_file = name_unique_file( + $upload_path, + $fixed_filename, + $upload_options['filenaming'] + ); + + try { + $renamed_uploaded = rename($downstream, $uploaded_file); + } catch (Throwable $e) { + $renamed_uploaded = file_exists($uploaded_file); + } + if (!$renamed_uploaded) { + throw new Exception("Can't re-allocate image to local storage", 600); + } + $image_upload['uploaded'] = [ + 'file' => $uploaded_file, + 'filename' => get_filename($uploaded_file), + 'name' => get_basename_without_extension($uploaded_file), + 'fileinfo' => GGet_image_fileinfo($uploaded_file) + ]; + $chain_props = [ + 'thumb' => ['suffix' => 'th'], + 'medium' => ['suffix' => 'md'] + ]; + if (!($image_medium ?? false)) { + unset($chain_props['medium']); + } + foreach ($chain_props as $k => $v) { + $chain_file = add_ending_slash(dirname($image_upload['uploaded']['file'])) . $image_upload['uploaded']['name'] . '.' . $v['suffix'] . '.' . ${"image_$k"}['fileinfo']['extension']; + + try { + $renamed_chain = rename(${"image_$k"}['file'], $chain_file); + } catch (Throwable $e) { + $renamed_chain = file_exists($chain_file); + } + if (!$renamed_chain) { + throw new Exception("Can't re-allocate image " . $k . " to local storage", 601); + } + ${"image_$k"} = [ + 'file' => $chain_file, + 'filename' => get_filename($chain_file), + 'name' => get_basename_without_extension($chain_file), + 'fileinfo' => GGet_image_fileinfo($chain_file) + ]; + } + } + } + $image_insert_values = [ + 'storage_mode' => $storage_mode, + 'storage_id' => $storage_id ?? null, + 'user_id' => $user['id'] ?? null, + 'album_id' => $params['album_id'] ?? null, + 'nsfw' => $params['nsfw'] ?? null, + 'category_id' => $params['category_id'] ?? null, + 'title' => $params['title'] ?? null, + 'description' => $params['description'] ?? null, + 'chain' => $chain_value, + 'thumb_size' => $image_thumb['fileinfo']['size'] ?? 0, + 'medium_size' => $image_medium['fileinfo']['size'] ?? 0, + 'is_animated' => $is_animated_image, + 'source_md5' => $source_md5 ?? null, + 'is_360' => $is_360 + ]; + if (isset($datefolder_stock)) { + foreach ($datefolder_stock as $k => $v) { + $image_insert_values[$k] = $v; + } + } + if (getSetting('enable_expirable_uploads')) { + if ($user === [] && getSetting('auto_delete_guest_uploads') !== null) { + $params['expiration'] = getSetting('auto_delete_guest_uploads'); + } + if (!isset($params['expiration']) && isset($user['image_expiration'])) { + $params['expiration'] = $user['image_expiration']; + } + + try { + if (!empty($params['expiration']) && array_key_exists($params['expiration'], self::getAvailableExpirations())) { + $params['expiration_date_gmt'] = datetime_add(datetimegmt(), strtoupper($params['expiration'])); + } + if (!empty($params['expiration_date_gmt'])) { + $expirable_diff = datetime_diff(datetimegmt(), $params['expiration_date_gmt'], 'm'); + $image_insert_values['expiration_date_gmt'] = $expirable_diff < 5 ? datetime_modify(datetimegmt(), '+5 minutes') : $params['expiration_date_gmt']; + } + } catch (Exception $e) { + } // Silence + } + if (isset($storage_id, $storage)) { + $toStorage = []; + foreach (self::$chain_sizes as $k => $v) { + if (!(bool) $chain_mask[$k]) { + continue; + } + switch ($v) { + case 'image': + $prop = $image_upload['uploaded']; + + break; + default: + $prop = ${"image_$v"}; + + break; + } + $toStorage[$v] = [ + 'file' => $prop['file'], + 'filename' => $prop['filename'], + 'mime' => $prop['fileinfo']['mime'], + ]; + } + Storage::uploadFiles($toStorage, $storage, [ + 'keyprefix' => $storage_mode == 'datefolder' + ? $datefolder + : null + ]); + } + /** @var ?Exif */ + $exifRead = $image_upload['source']['image_exif']; + if ($exifRead instanceof Exif) { + if (!array_key_exists('title', $params)) { + $title_from_exif = null; + if ($exifRead->getTitle() !== false) { + $title_from_exif = trim($exifRead->getTitle()); + } + if ($title_from_exif !== null) { + $title_from_exif = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $title_from_exif); + $image_title = $title_from_exif; + } else { + $title_from_filename = preg_replace('/[-_\s]+/', ' ', trim($image_upload['source']['name'])); + $image_title = $title_from_filename; + } + $image_insert_values['title'] = $image_title; + } + if (!array_key_exists('description', $params)) { + $description_from_exif = null; + if ($exifRead->getDescription() !== false) { + $description_from_exif = trim($exifRead->getDescription()); + } + if ($description_from_exif !== null) { + $description_from_exif = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $description_from_exif); + $image_insert_values['description'] = $description_from_exif; + } + } + } + if ($filenaming == 'id' && isset($target_id)) { // Insert as a reserved ID + $image_insert_values['id'] = $target_id; + } + $image_insert_values['title'] = mb_substr($image_insert_values['title'] ?? '', 0, 100, 'UTF-8'); + if ($user !== [] && isset($image_insert_values['album_id'])) { + $album = Album::getSingle((int) $image_insert_values['album_id']); + if (($album['user']['id'] ?? 0) != $user['id']) { + unset($image_insert_values['album_id'], $album); + } + } + if (isset($ip)) { + $image_insert_values['uploader_ip'] = $ip; + } + $uploaded_id = self::insert($image_upload, $user, $image_insert_values); + $deletePassword = randomString(48); + $deleteHash = password_hash($deletePassword, PASSWORD_BCRYPT); + DB::insert('images_hash', ['image_id' => $uploaded_id, 'hash' => $deleteHash]); + if (isset($toStorage)) { + foreach ($toStorage as $k => $v) { + unlinkIfExists($v['file']); // Remove the source image + } + } + $privacyTargets = ['private', 'private_but_link']; + if (in_array($params['privacy'] ?? '', $privacyTargets) + && (!in_array($album['privacy'] ?? '', $privacyTargets)) + ) { + $upload_timestamp = $params['timestamp'] ?? time(); + $session_handle = 'upload_' . $upload_timestamp; + $album = isset(session()[$session_handle]) + ? Album::getSingle(decodeID(session()[$session_handle])) + : null; + if (!empty($album) || !in_array($album['privacy'], $privacyTargets)) { + $inserted_album = Album::insert([ + 'name' => _s('Private upload') . ' ' . datetime('Y-m-d'), + 'user_id' => $user['id'], + 'privacy' => $params['privacy'] + ]); + sessionVar()->put($session_handle, $inserted_album); + $image_insert_values['album_id'] = $inserted_album; + } else { + $image_insert_values['album_id'] = $album['id']; + } + } + if (isset($image_insert_values['album_id'])) { + Album::addImage($image_insert_values['album_id'], $uploaded_id); + } + if ($user !== []) { + DB::increment('users', ['image_count' => '+1'], ['id' => $user['id']]); + } elseif ($guestSessionHandle == true) { + $addValue = session()['guest_images'] ?? []; + $addValue[] = $uploaded_id; + sessionVar()->put('guest_images', $addValue); + } + if ($switch_to_local) { + $image_viewer = self::getUrlViewer(encodeID((int) $uploaded_id)); + system_notification_email(['subject' => 'Upload switched to local storage', 'message' => strtr('System has switched to local storage due to not enough disk capacity (%c) in the external storage server(s). The image %s has been allocated to local storage.', ['%c' => $disk_space_needed . ' B', '%s' => '<a href="' . $image_viewer . '">' . $image_viewer . '</a>'])]); + } + + return [$uploaded_id, $deletePassword]; + } catch (Exception $e) { + if (isset($image_upload['uploaded'], $image_upload['uploaded']['file'])) { + unlinkIfExists($image_upload['uploaded']['file']); + } + if (isset($image_medium['file'])) { + unlinkIfExists($image_medium['file']); + } + if (isset($image_thumb['file'])) { + unlinkIfExists($image_thumb['file']); + } + + throw $e; + } + } + + public static function getEnabledImageFormats(): array + { + $formats = explode(',', Settings::get('upload_enabled_image_formats')); + if (in_array('jpg', $formats)) { + $formats[] = 'jpeg'; + } + + return $formats; + } + + public static function resize( + string $source, + ?string $destination, + ?string $filename = null, + array $options = [] + ): array { + $resize = new ImageResize($source); + $resize->setDestination($destination ?? ''); + if ($filename) { + $resize->setFilename($filename); + } + $resize->setOptions($options); + if (isset($options['width'])) { + $resize->setWidth((int) $options['width']); + } + if (isset($options['height'])) { + $resize->setHeight((int) $options['height']); + } + if (isset($options['forced']) && $options['forced'] === true) { + $resize->setOption('forced', true); + } + $resize->exec(); + + return $resize->resized(); + } + + protected static function insert(array $image_upload, array $user = [], array $values = []): int + { + Stat::assertMax('images'); + $table_chv_image = self::$table_chv_image; + foreach ($table_chv_image as $k => $v) { + $table_chv_image[$k] = 'image_' . $v; + } + if (empty($values['uploader_ip'])) { + $values['uploader_ip'] = get_client_ip(); + } + /** @var ?Exif $exifRead */ + $exifRead = $image_upload['source']['image_exif']; + $exifRaw = null; + if ($exifRead instanceof Exif) { + $exifRaw = $exifRead->getRawData(); + unset($exifRaw['MakerNote']); + } + $original_exifdata = $exifRaw !== null + ? json_encode(array_utf8encode($exifRaw)) + : null; + $values['nsfw'] = in_array(strval($values['nsfw']), ['0', '1']) ? $values['nsfw'] : 0; + if (Settings::get('moderatecontent') + && $values['nsfw'] == 0 + && Settings::get('moderatecontent_flag_nsfw') + && is_object($image_upload['moderation']) + ) { + switch ($image_upload['moderation']->rating_letter) { + case 'a': + $values['nsfw'] = '1'; + + break; + case 't': + if (Settings::get('moderatecontent_flag_nsfw') == 't') { + $values['nsfw'] = 1; + } + + break; + } + } + $is360 = false; + if (isset($image_upload['uploaded']['fileinfo']['is_360'])) { + $is360 = (bool) $image_upload['uploaded']['fileinfo']['is_360']; + } + $populate_values = [ + 'uploader_ip' => $values['uploader_ip'], + 'md5' => $image_upload['uploaded']['fileinfo']['md5'], + 'original_filename' => $image_upload['source']['filename'], + 'original_exifdata' => $original_exifdata, + 'is_360' => $is360, + ]; + if (!isset($values['date'])) { + $populate_values = array_merge($populate_values, [ + 'date' => datetime(), + 'date_gmt' => datetimegmt(), + ]); + } + $values = array_merge($image_upload['uploaded']['fileinfo'], $populate_values, $values); + assertNotStopWords( + $values['name'] ?? '', + $values['original_filename'] ?? '', + $values['title'] ?? '', + $values['description'] ?? '' + ); + foreach (['title', 'description', 'category_id', 'album_id'] as $v) { + nullify_string($values[$v]); + } + foreach (array_keys($values) as $k) { + if (!in_array('image_' . $k, $table_chv_image) && $k !== 'id') { + unset($values[$k]); + } + } + $values['is_approved'] = 1; + switch (Settings::get('moderate_uploads')) { + case 'all': + $values['is_approved'] = (int) (($user['is_admin'] ?? 0) || ($user['is_manager'] ?? 0)); + + break; + case 'guest': + $values['is_approved'] = (int) isset($values['user_id']); + + break; + } + if (Settings::get('moderatecontent_auto_approve') + && isset($image_upload['moderation']) + ) { + $values['is_approved'] = 1; + } + $insert = DB::insert('images', $values); + $disk_space_used = $values['size'] + $values['thumb_size'] + $values['medium_size']; + Stat::track([ + 'action' => 'insert', + 'table' => 'images', + 'value' => '+1', + 'date_gmt' => $values['date_gmt'], + 'disk_sum' => $disk_space_used, + ]); + if (!is_null($values['album_id']) && $insert) { + Album::updateImageCount((int) $values['album_id'], 1); + } + + return $insert; + } + + public static function update(int $id, array $values): int + { + $values = array_filter_array($values, self::$table_chv_image, 'exclusion'); + assertNotStopWords($values['title'] ?? '', $values['description'] ?? ''); + foreach (['title', 'description', 'category_id', 'album_id'] as $v) { + if (!array_key_exists($v, $values)) { + continue; + } + nullify_string($values[$v]); + } + if (isset($values['album_id'])) { + $image_db = self::getSingle($id); + $old_album = $image_db['image_album_id']; + $update = DB::update('images', $values, ['id' => $id]); + if ($update && $old_album !== $values['album_id']) { + if (!is_null($old_album)) { // Update the old album + Album::updateImageCount((int) $old_album, 1, '-'); + } + Album::updateImageCount((int) $values['album_id'], 1); + } + + return $update; + } else { + return DB::update('images', $values, ['id' => $id]); + } + } + + public static function delete(int $id, bool $update_user = true): int + { + $image = self::getSingle(id: $id, pretty: true); + $disk_space_used = $image['size'] + ($image['thumb']['size'] ?? 0) + ($image['medium']['size'] ?? 0); + if ($image['file_resource']['type'] == 'path') { + foreach ($image['file_resource']['chain'] as $file_delete) { + if (file_exists($file_delete) && !unlinkIfExists($file_delete)) { + throw new Exception("Can't delete file", 600); + } + } + } else { + $targets = []; + foreach ($image['file_resource']['chain'] as $k => $v) { + $targets[$k] = [ + 'key' => preg_replace('#' . add_ending_slash($image['storage']['url']) . '#', '', $v), + 'size' => $image[$k]['size'], + ]; + } + Storage::deleteFiles($targets, $image['storage']); + } + if ($update_user && isset($image['user']['id'])) { + DB::increment('users', ['image_count' => '-1'], ['id' => $image['user']['id']]); + } + if (isset($image['album']['id']) && $image['album']['id'] > 0) { + Album::updateImageCount((int) $image['album']['id'], 1, '-'); + } + if (isset($image['album']['cover_id']) && $image['album']['cover_id'] === $image['id']) { + Album::populateCover((int) $image['album']['id']); + } + Stat::track([ + 'action' => 'delete', + 'table' => 'images', + 'value' => '-1', + 'date_gmt' => $image['date_gmt'], + 'disk_sum' => $disk_space_used, + 'likes' => $image['likes'], + ]); + DB::queryExecute('UPDATE ' . DB::getTable('users') . ' INNER JOIN ' . DB::getTable('likes') . ' ON user_id = like_user_id AND like_content_type = "image" AND like_content_id = ' . $image['id'] . ' SET user_liked = GREATEST(cast(user_liked AS SIGNED) - 1, 0);'); + if (isset($image['user']['id'])) { + $autoliked = DB::get('likes', ['user_id' => $image['user']['id'], 'content_type' => 'image', 'content_id' => $image['id']])[0] ?? []; + $likes_counter = (int) $image['likes']; // This is stored as "bigint" but PDO MySQL get it as string. Fuck my code, fuck PHP. + if ($autoliked !== []) { + $likes_counter -= 1; + } + if ($likes_counter > 0) { + $likes_counter = 0 - $likes_counter; + } + if ($likes_counter !== 0) { + DB::increment('users', ['likes' => $likes_counter], ['id' => $image['user']['id']]); + } + Notification::delete([ + 'table' => 'images', + 'image_id' => $image['id'], + 'user_id' => $image['user']['id'], + ]); + } + DB::delete('likes', ['content_type' => 'image', 'content_id' => $image['id']]); + DB::insert('deletions', [ + 'date_gmt' => datetimegmt(), + 'content_id' => $image['id'], + 'content_date_gmt' => $image['date_gmt'], + 'content_user_id' => $image['user']['id'] ?? null, + 'content_ip' => $image['uploader_ip'], + 'content_views' => $image['views'], + 'content_md5' => $image['md5'], + 'content_likes' => $image['likes'], + 'content_original_filename' => $image['original_filename'], + ]); + + $result = DB::delete('images', ['id' => $id]); + DB::delete('images_hash', ['image_id' => $id]); + + return $result; + } + + public static function deleteMultiple(array $ids): int + { + $affected = 0; + foreach ($ids as $id) { + if (self::delete((int) $id) !== 0) { + $affected += 1; + } + } + + return $affected; + } + + public static function deleteExpired(int $limit = 50): void + { + if (!$limit || !is_numeric($limit)) { + $limit = 50; + } + $db = DB::getInstance(); + $db->query('SELECT image_id FROM ' . DB::getTable('images') . ' WHERE image_expiration_date_gmt IS NOT NULL AND image_expiration_date_gmt < :datetimegmt ORDER BY image_expiration_date_gmt DESC LIMIT ' . $limit . ';'); // Just 50 files per request to prevent CPU meltdown or something like that + $db->bind(':datetimegmt', datetimegmt()); + $expired_db = $db->fetchAll(); + if ($expired_db) { + $expired = []; + foreach ($expired_db as $k => $v) { + $expired[] = $v['image_id']; + } + self::deleteMultiple($expired); + } + } + + public static function verifyPassword(int $id, string $password): bool + { + $get = DB::get('images_hash', ['image_id' => $id])[0] ?? []; + if ($get === []) { + return false; + } + $get = DB::formatRow($get, 'image_hash'); + + return password_verify($password, $get['hash']); + } + + public static function fill(array &$image): void + { + $image['id_encoded'] = encodeID((int) $image['id']); + $targets = self::getSrcTargetSingle($image, false); + $medium_size = getSetting('upload_medium_size'); + $medium_fixed_dimension = getSetting('upload_medium_fixed_dimension'); + if ($targets['type'] == 'path') { + if ($image['size'] == 0) { + $get_image_fileinfo = GGet_image_fileinfo($targets['chain']['image']); + $update_missing_values = [ + 'width' => $get_image_fileinfo['width'], + 'height' => $get_image_fileinfo['height'], + 'size' => $get_image_fileinfo['size'], + ]; + foreach (['thumb', 'medium'] as $k) { + if (!array_key_exists($k, $targets['chain'])) { + continue; + } + if ($image[$k . '_size'] == 0) { + $update_missing_values[$k . '_size'] = GGet_image_fileinfo($targets['chain'][$k])['size']; + } + } + self::update($image['id'], $update_missing_values); + $image = array_merge($image, $update_missing_values); + } + $is_animated = isset($targets['chain']['image']) && is_animated_image($targets['chain']['image']); + if (count($targets['chain']) > 0 && !isset($targets['chain']['thumb'])) { + try { + $targets['chain']['thumb'] = self::resize( + $targets['chain']['image'], + pathinfo($targets['chain']['image'], PATHINFO_DIRNAME), + $image['name'] . '.th', + [ + 'width' => getSetting('upload_thumb_width'), + 'height' => getSetting('upload_thumb_height'), + 'forced' => $image['extension'] == 'gif' && $is_animated + ] + )['file']; + } catch (Exception $e) { + } + } + if ($image[$medium_fixed_dimension] > $medium_size + && count($targets['chain']) > 0 + && !isset($targets['chain']['medium']) + ) { + try { + $targets['chain']['medium'] = self::resize( + $targets['chain']['image'], + pathinfo($targets['chain']['image'], PATHINFO_DIRNAME), + $image['name'] . '.md', + [ + $medium_fixed_dimension => $medium_size, + 'forced' => $image['extension'] == 'gif' && $is_animated + ] + )['file']; + } catch (Throwable $e) { + } + } + if (count($targets['chain']) > 0) { + $original_md5 = $image['md5']; + $image = array_merge($image, get_image_fileinfo($targets['chain']['image'])); + $image['md5'] = $original_md5; + } + if ($is_animated && !$image['is_animated']) { + self::update($image['id'], ['is_animated' => 1]); + $image['is_animated'] = 1; + } + } else { + $image_fileinfo = [ + 'ratio' => $image['width'] / $image['height'], + 'size' => (int) $image['size'], + 'size_formatted' => format_bytes($image['size']) + ]; + $image = array_merge($image, get_image_fileinfo($targets['chain']['image']), $image_fileinfo); + } + $image['file_resource'] = $targets; + $image['url_viewer'] = self::getUrlViewer( + $image['id_encoded'], + getSetting('seo_image_urls') + ? ($image['title'] ?? '') + : '' + ); + $image['path_viewer'] = url_to_relative($image['url_viewer']); + $image['url_short'] = self::getUrlViewer($image['id_encoded']); + foreach ($targets['chain'] as $k => $v) { + if ($targets['type'] == 'path') { + $image[$k] = file_exists($v) ? get_image_fileinfo($v) : null; + } else { + $image[$k] = get_image_fileinfo($v); + } + $image[$k]['size'] = $image[($k == 'image' ? '' : $k . '_') . 'size']; + } + $image['size_formatted'] = format_bytes($image['size']); + $display_url = $image['url'] ?? ''; + $display_width = $image['width']; + $display_height = $image['height']; + if (!empty($image['medium'])) { + $display_url = $image['medium']['url']; + $image_ratio = $image['width'] / $image['height']; + switch ($medium_fixed_dimension) { + case 'width': + $display_width = $medium_size; + $display_height = (int) round($medium_size / $image_ratio); + + break; + case 'height': + $display_height = $medium_size; + $display_width = (int) round($medium_size * $image_ratio); + + break; + } + // if (!$image["is_animated"]) { + // // $display_url = $image['url'] ?? ''; + // } + } elseif ($image['size'] > get_bytes('200 KB')) { + $display_url = $image['thumb']['url'] ?? ''; + $display_width = getSetting('upload_thumb_width'); + $display_height = getSetting('upload_thumb_height'); + } + + $image['display_url'] = $display_url; + $image['display_width'] = $display_width; + $image['display_height'] = $display_height; + $image['views_label'] = _n('view', 'views', $image['views']); + $image['likes_label'] = _n('like', 'likes', $image['likes']); + $image['how_long_ago'] = time_elapsed_string($image['date_gmt']); + $image['date_fixed_peer'] = Login::isLoggedUser() + ? datetimegmt_convert_tz($image['date_gmt'], Login::getUser()['timezone']) + : $image['date_gmt']; + $image['title_truncated'] = truncate($image['title'] ?? '', 28); + $image['title_truncated_html'] = safe_html($image['title_truncated']); + $image['is_use_loader'] = getSetting('image_load_max_filesize_mb') !== '' ? ($image['size'] > get_bytes(getSetting('image_load_max_filesize_mb') . 'MB')) : false; + } + + public static function formatArray(array $dbRow, bool $safe = false): array + { + $output = DB::formatRow($dbRow); + if (isset($output['user']['id'])) { + User::fill($output['user']); + } else { + unset($output['user']); + } + if (isset($output['album']['id']) || isset($output['user']['id'])) { + $output['user'] = $output['user'] ?? []; + Album::fill($output['album'], $output['user']); + } else { + unset($output['album']); + } + self::fill($output); + if ($safe) { + unset( + $output['storage'], $output['id'], $output['path'], $output['uploader_ip'], + $output['album']['id'], $output['album']['privacy_extra'], $output['album']['user_id'], + $output['album']['password'], $output['album']['cover_id'], $output['album']['parent_id'], + $output['user']['id'], $output['user']['email'], + $output['file_resource'], + $output['file']['resource']['chain'], + ); + } + + return $output; + } +} diff --git a/app/src/Legacy/Classes/ImageConvert.php b/app/src/Legacy/Classes/ImageConvert.php new file mode 100644 index 0000000..4cc7f8d --- /dev/null +++ b/app/src/Legacy/Classes/ImageConvert.php @@ -0,0 +1,38 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use Intervention\Image\ImageManagerStatic; + +class ImageConvert +{ + private string $out; + + public function __construct( + array|string $source, + string $to, + string $destination, + int $quality = 90 + ) { + if (!in_array($to, ['jpg', 'jpeg', 'gif', 'png'])) { + return; + } + $image = ImageManagerStatic::make($source); + $image->encode($to, $quality)->save($destination); + $this->out = $destination; + } + + public function out(): string + { + return $this->out; + } +} diff --git a/app/src/Legacy/Classes/ImageResize.php b/app/src/Legacy/Classes/ImageResize.php new file mode 100644 index 0000000..bf17209 --- /dev/null +++ b/app/src/Legacy/Classes/ImageResize.php @@ -0,0 +1,186 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\RangeException; +use function Chevereto\Legacy\G\add_ending_slash; +use function Chevereto\Legacy\G\get_basename_without_extension; +use function Chevereto\Legacy\G\get_filename; +use function Chevereto\Legacy\G\get_image_fileinfo; +use function Chevereto\Legacy\G\is_writable; +use function Chevereto\Legacy\missing_values_to_exception; +use Exception; +use Intervention\Image\Image; +use Intervention\Image\ImageManagerStatic; + +class ImageResize +{ + private string $file_extension; + + // filename => name.ext + // file => /full/path/to/name.ext + // name => name + + private string $resized_file; + + private array $resized; + + private Image $image; + + private string $source; + + private string $destination = ''; + + private string $filename; + + private array $options = []; + + private int $width = 0; + + private int $height = 0; + + private array $source_image_fileinfo; + + public function __construct(string $source) + { + clearstatcache(true, $source); + $this->source = $source; + if (!file_exists($this->source)) { + throw new Exception("Source file doesn't exists", 600); + } + $this->image = ImageManagerStatic::make($source); + } + + public function setDestination(string $destination): void + { + $this->destination = $destination; + } + + public function setFilename(string $name): void + { + $this->filename = $name; + } + + public function setOptions(array $options): void + { + $this->options = $options; + } + + public function setOption(string $key, mixed $value): void + { + $this->options[$key] = $value; + } + + public function setWidth(int $width): void + { + $this->width = $width; + } + + public function setHeight(int $height): void + { + $this->height = $height; + } + + public function width(): int + { + return $this->width; + } + + public function resized(): array + { + return $this->resized; + } + + public function exec(): void + { + $this->validateInput(); // Exception 1xx + $source_filename = get_basename_without_extension($this->source); + $this->file_extension = $this->source_image_fileinfo['extension']; + if (!isset($this->filename)) { + $this->filename = $source_filename; + } + $this->destination = add_ending_slash($this->destination); + $this->resized_file = $this->destination . $this->filename . '.' . $this->file_extension; + $this->resize(); + $this->resized = [ + 'file' => $this->resized_file, + 'filename' => get_filename($this->resized_file), + 'name' => get_basename_without_extension($this->resized_file), + 'fileinfo' => get_image_fileinfo($this->resized_file), + ]; + } + + protected function validateInput(): void + { + $check_missing = ['source']; + missing_values_to_exception($this, Exception::class, $check_missing, 600); + if (!$this->width && !$this->height) { + throw new Exception('Missing width and/or height', 602); + } + if ($this->destination === '') { + $this->destination = add_ending_slash(dirname($this->source)); + } + $this->source_image_fileinfo = get_image_fileinfo($this->source); + if (!$this->source_image_fileinfo) { + throw new Exception("Can't get source image info", 611); + } + if (!is_dir($this->destination)) { + $old_umask = umask(0); + $make_destination = mkdir($this->destination, 0755, true); + umask($old_umask); + if (!$make_destination) { + throw new Exception('Destination ' . $this->destination . ' is not a dir', 620); + } + } + if (!is_writable($this->destination)) { + throw new Exception("Can't write target destination dir " . $this->destination, 622); + } + } + + protected function resize(): void + { + $this->options['over_resize'] ??= false; + $this->options['fitted'] ??= false; + if ($this->width > 0 && $this->height === 0) { + $this->height = (int) round($this->width / $this->source_image_fileinfo['ratio']); + } + if ($this->height > 0 && $this->width === 0) { + $this->width = (int) round($this->height * $this->source_image_fileinfo['ratio']); + } + $imageSX = $this->source_image_fileinfo['width']; + $imageSY = $this->source_image_fileinfo['height']; + if (!$this->options['over_resize']) { + if ($this->width > $imageSX) { + throw new RangeException( + message('Target width is greater than the original image width'), + 100 + ); + } + if ($this->height > $imageSY) { + throw new RangeException( + message('Target height is greater than the original image width'), + 100 + ); + } + } + if ($this->options['fitted']) { + $this->image->fit($this->width, $this->height); + } else { + $this->image->resize($this->width, $this->height); + } + $this->image->save($this->resized_file); + if (!file_exists($this->resized_file)) { + throw new Exception("Can't create final output image", 630); + } + } +} diff --git a/app/src/Legacy/Classes/IpBan.php b/app/src/Legacy/Classes/IpBan.php new file mode 100644 index 0000000..b7058b4 --- /dev/null +++ b/app/src/Legacy/Classes/IpBan.php @@ -0,0 +1,49 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +class IpBan +{ + public static function getSingle(array $args = []): array + { + return []; + } + + public static function getAll(): array + { + return []; + } + + public static function delete(array $args = []): int + { + return 0; + } + + public static function update(array $where = [], array $values = []): int + { + return 0; + } + + public static function insert(array $args = []): int + { + return 0; + } + + public static function fill(array &$ip_ban): void + { + } + + public static function validateIP(string $ip, bool $wildcards = true): bool + { + return true; + } +} diff --git a/app/src/Legacy/Classes/L10n.php b/app/src/Legacy/Classes/L10n.php new file mode 100644 index 0000000..7f0d51a --- /dev/null +++ b/app/src/Legacy/Classes/L10n.php @@ -0,0 +1,2335 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Filesystem\fileForPath; +use function Chevere\Filesystem\filePhpReturnForPath; +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevere\VariableSupport\StorableVariable; +use Chevereto\Config\Config; +use function Chevereto\Legacy\G\get_client_languages; +use Chevereto\Legacy\G\Gettext; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\cookieVar; +use DirectoryIterator; +use RegexIterator; +use Throwable; + +class L10n +{ + protected static $instance; + + protected static $processed; + + protected const CHV_DEFAULT_LANGUAGE_EXTENSION = 'po'; + + public const PATH_CACHE = PATH_APP_CACHE . 'languages/'; + + public const PATH_CACHE_OVERRIDES = self::PATH_CACHE . 'overrides/'; + + public const LOCALES_AVAILABLE_FILEPATH = self::PATH_CACHE . '_locales.php'; + + public const CHV_BASE_LANGUAGE = 'en'; + + protected static Gettext $gettext; + + protected static array $translation_table; + + protected static array $available_languages = []; + + protected static array $enabled_languages = []; + + protected static array $disabled_languages = []; + + protected static string $locale = self::CHV_BASE_LANGUAGE; + + protected static string $forced_locale = ''; + + public static function cacheFilesystemLocales(): array + { + $directory = new DirectoryIterator(PATH_APP_LANGUAGES); + $regex = new RegexIterator($directory, '/^.+\.' . self::CHV_DEFAULT_LANGUAGE_EXTENSION . '$/i', RegexIterator::GET_MATCH); + $files = []; + foreach ($regex as $file) { + $file = $file[0]; + $locale_code = basename($file, '.' . self::CHV_DEFAULT_LANGUAGE_EXTENSION); + $files[$locale_code] = self::getLocales()[$locale_code]; + } + $files = array_filter($files); + ksort($files); + fileForPath(self::LOCALES_AVAILABLE_FILEPATH) + ->createIfNotExists(); + filePhpReturnForPath(self::LOCALES_AVAILABLE_FILEPATH) + ->put( + new StorableVariable($files) + ); + + return $files; + } + + public static function getLocalesAvailable(): array + { + $file = filePhpReturnForPath(self::LOCALES_AVAILABLE_FILEPATH); + if (!$file->filePhp()->file()->exists()) { + return []; + } + + return $file->raw(); + } + + public static function bindEnabled() + { + $locales = self::getLocales(); + self::$available_languages = self::getLocalesAvailable(); + self::$enabled_languages = self::$available_languages; + foreach (getSetting('languages_disable') as $k) { + $k = str_replace('_', '-', $k); + self::$disabled_languages[$k] = $locales[$k]; + unset(self::$enabled_languages[$k]); + } + } + + public function __construct( + string $defaultLanguage, + bool $autoLanguage, + ) { + if (self::$available_languages === []) { + self::bindEnabled(); + } + if (self::$forced_locale === '') { + if (array_key_exists($defaultLanguage, self::$available_languages)) { + $locale = $defaultLanguage; + } else { + $locale = self::$locale; + } + if ($autoLanguage) { + foreach (get_client_languages() as $k => $v) { + $user_locale = str_replace('_', '-', $k); + if (array_key_exists($user_locale, self::$available_languages) && !array_key_exists($user_locale, self::$disabled_languages)) { + $locale = $user_locale; + + break; + } else { + foreach (self::$available_languages as $k => $v) { + if ($v['base'] == substr($user_locale, 0, 2)) { + $locale = $k; + + break; + } + } + } + if ($locale) { + break; + } + } + } + } else { + $locale = self::$forced_locale; + } + if (!defined('CHV_LANGUAGE_CODE')) { + define('CHV_LANGUAGE_CODE', $locale); + } + if (!defined('CHV_LANGUAGE_FILE')) { + define('CHV_LANGUAGE_FILE', PATH_APP_LANGUAGES . $locale . '.' . self::CHV_DEFAULT_LANGUAGE_EXTENSION); + } + self::processTranslation($locale); + self::$instance = $this; + } + + public static function hasInstance(): bool + { + return isset(self::$instance); + } + + public static function getInstance(): static + { + if (is_null(self::$instance)) { + throw new LogicException( + message('L10n instance is not set'), + 600 + ); + } + + return self::$instance; + } + + public static function setLocale(string $locale): void + { + if (is_null(self::$instance)) { + self::$forced_locale = $locale; + } else { + self::processTranslation($locale); + } + } + + public static function processTranslation(string $locale): void + { + if ($locale === self::$locale && isset(self::$translation_table)) { + return; + } + if (!array_key_exists($locale, self::$available_languages) + && array_key_exists(self::$locale, self::$available_languages)) { + $array = self::$available_languages; + reset($array); + $first_key = key($array); + $locale = $first_key; + } + $filename = $locale . '.' . self::CHV_DEFAULT_LANGUAGE_EXTENSION; + $language_file = PATH_APP_LANGUAGES . $filename; + $language_override_file = PATH_APP_LANGUAGES . 'overrides/' . $filename; + self::$locale = $locale; + $language_handling = [ + 'base' => [ + 'file' => $language_file, + 'cache_path' => self::PATH_CACHE, + 'table' => [], + ], + 'override' => [ + 'file' => $language_override_file, + 'cache_path' => self::PATH_CACHE . 'overrides/', + 'table' => [], + ] + ]; + foreach ($language_handling as $k => $v) { + $cache_path = $v['cache_path']; + $cache_file = basename($v['file']) . '.cache.php'; + if (!file_exists($v['file'])) { + continue; + } + if (!file_exists($cache_path)) { + try { + mkdir($cache_path); + } catch (Throwable $e) { + $cache_path = dirname($cache_path); + } + } + self::$gettext = new Gettext([ + 'file' => $v['file'], + 'cache_filepath' => $cache_path . $cache_file, + 'cache_header' => $k == 'base', + ]); + if ($k == 'base') { + $translation_plural = self::$gettext->translation_plural; + $translation_header = self::$gettext->translation_header; + } + $language_handling[$k]['table'] = self::$gettext->translation_table; + } + if (!isset($translation_plural, $translation_header)) { + throw new LogicException(); + } + self::$gettext->translation_plural = $translation_plural; + self::$gettext->translation_header = $translation_header; + self::$gettext->translation_table = array_merge( + $language_handling['base']['table'], + $language_handling['override']['table'] + ); + self::$translation_table = self::$gettext->translation_table; + } + + public static function gettext(string $msg): string + { + return self::getGettext()->gettext($msg) ?? $msg; + } + + public static function ngettext(string $msg, string $msg_plural, int $count): string + { + return self::getGettext()->ngettext($msg, $msg_plural, $count) ?? $msg; + } + + public static function setStatic(string $var, mixed $value): void + { + $instance = self::getInstance(); + $instance::${$var} = $value; + } + + public static function getStatic(string $var): mixed + { + $instance = self::getInstance(); + + return $instance::${$var}; + } + + public static function getAvailableLanguages(): array + { + return self::getStatic('available_languages'); + } + + public static function getEnabledLanguages(): array + { + if (is_null(self::$instance)) { + self::bindEnabled(); + } + + return self::$enabled_languages; + } + + public static function getDisabledLanguages(): array + { + return self::getStatic('disabled_languages'); + } + + public static function getGettext(): Gettext + { + return self::getStatic('gettext'); + } + + public static function getTranslation(): array + { + return self::getStatic('translation_table'); + } + + public static function getLocale(): string + { + return self::getStatic('locale'); + } + + public static function setCookieLang(string $lang): void + { + $args = [ + 'USER_SELECTED_LANG', + $lang, + time() + (60 * 60 * 24 * 30), + Config::host()->hostnamePath(), + Config::host()->hostname(), + HTTP_APP_PROTOCOL == 'https', // secure, + true, // httpOnly + ]; + if (setcookie(...$args)) { + cookieVar()->put('USER_SELECTED_LANG', $lang); + } + } + + public static function getLocales(): array + { + return [ + 'af' => [ + 'code' => 'af', + 'dir' => 'ltr', + 'name' => 'Afrikaans', + 'base' => 'af', + 'short_name' => 'AF', + ], + 'af-AF' => [ + 'code' => 'af-AF', + 'dir' => 'ltr', + 'name' => 'Afrikaans', + 'base' => 'af', + 'short_name' => 'AF (AF)', + ], + 'am' => [ + 'code' => 'am', + 'dir' => 'ltr', + 'name' => 'āmariññā', + 'base' => 'am', + 'short_name' => 'AM', + ], + 'am-AM' => [ + 'code' => 'am-AM', + 'dir' => 'ltr', + 'name' => 'āmariññā', + 'base' => 'am', + 'short_name' => 'AM (AM)', + ], + 'an' => [ + 'code' => 'an', + 'dir' => 'ltr', + 'name' => 'Aragonés', + 'base' => 'an', + 'short_name' => 'AN', + ], + 'an-AN' => [ + 'code' => 'an-AN', + 'dir' => 'ltr', + 'name' => 'Aragonés', + 'base' => 'an', + 'short_name' => 'AN (AN)', + ], + 'ar' => [ + 'code' => 'ar', + 'dir' => 'rtl', + 'name' => 'العربية', + 'base' => 'ar', + 'short_name' => 'AR', + ], + 'ar-AE' => [ + 'code' => 'ar-AE', + 'dir' => 'rtl', + 'name' => 'العربية (الإمارات)', + 'base' => 'ar', + 'short_name' => 'AR (AE)', + ], + 'ar-BH' => [ + 'code' => 'ar-BH', + 'dir' => 'rtl', + 'name' => 'العربية (البحرين)', + 'base' => 'ar', + 'short_name' => 'AR (BH)', + ], + 'ar-DZ' => [ + 'code' => 'ar-DZ', + 'dir' => 'rtl', + 'name' => 'العربية (الجزائر)', + 'base' => 'ar', + 'short_name' => 'AR (DZ)', + ], + 'ar-EG' => [ + 'code' => 'ar-EG', + 'dir' => 'rtl', + 'name' => 'العربية (مصر)', + 'base' => 'ar', + 'short_name' => 'AR (EG)', + ], + 'ar-IQ' => [ + 'code' => 'ar-IQ', + 'dir' => 'rtl', + 'name' => 'العربية (العراق)', + 'base' => 'ar', + 'short_name' => 'AR (IQ)', + ], + 'ar-JO' => [ + 'code' => 'ar-JO', + 'dir' => 'rtl', + 'name' => 'العربية (الأردن)', + 'base' => 'ar', + 'short_name' => 'AR (JO)', + ], + 'ar-KW' => [ + 'code' => 'ar-KW', + 'dir' => 'rtl', + 'name' => 'العربية (الكويت)', + 'base' => 'ar', + 'short_name' => 'AR (KW)', + ], + 'ar-LB' => [ + 'code' => 'ar-LB', + 'dir' => 'rtl', + 'name' => 'العربية (لبنان)', + 'base' => 'ar', + 'short_name' => 'AR (LB)', + ], + 'ar-LY' => [ + 'code' => 'ar-LY', + 'dir' => 'rtl', + 'name' => 'العربية (ليبيا)', + 'base' => 'ar', + 'short_name' => 'AR (LY)', + ], + 'ar-MA' => [ + 'code' => 'ar-MA', + 'dir' => 'rtl', + 'name' => 'العربية (المغرب)', + 'base' => 'ar', + 'short_name' => 'AR (MA)', + ], + 'ar-OM' => [ + 'code' => 'ar-OM', + 'dir' => 'rtl', + 'name' => 'العربية (سلطنة عمان)', + 'base' => 'ar', + 'short_name' => 'AR (OM)', + ], + 'ar-QA' => [ + 'code' => 'ar-QA', + 'dir' => 'rtl', + 'name' => 'العربية (قطر)', + 'base' => 'ar', + 'short_name' => 'AR (QA)', + ], + 'ar-SA' => [ + 'code' => 'ar-SA', + 'dir' => 'rtl', + 'name' => 'العربية (السعودية)', + 'base' => 'ar', + 'short_name' => 'AR (SA)', + ], + 'ar-SD' => [ + 'code' => 'ar-SD', + 'dir' => 'rtl', + 'name' => 'العربية (السودان)', + 'base' => 'ar', + 'short_name' => 'AR (SD)', + ], + 'ar-SY' => [ + 'code' => 'ar-SY', + 'dir' => 'rtl', + 'name' => 'العربية (سوريا)', + 'base' => 'ar', + 'short_name' => 'AR (SY)', + ], + 'ar-TN' => [ + 'code' => 'ar-TN', + 'dir' => 'rtl', + 'name' => 'العربية (تونس)', + 'base' => 'ar', + 'short_name' => 'AR (TN)', + ], + 'ar-YE' => [ + 'code' => 'ar-YE', + 'dir' => 'rtl', + 'name' => 'العربية (اليمن)', + 'base' => 'ar', + 'short_name' => 'AR (YE)', + ], + 'as' => [ + 'code' => 'as', + 'dir' => 'ltr', + 'name' => 'অসমীয়া', + 'base' => 'as', + 'short_name' => 'AS', + ], + 'as-AS' => [ + 'code' => 'as-AS', + 'dir' => 'ltr', + 'name' => 'অসমীয়া', + 'base' => 'as', + 'short_name' => 'AS (AS)', + ], + 'ast' => [ + 'code' => 'ast', + 'dir' => 'ltr', + 'name' => 'Asturianu', + 'base' => 'ast', + 'short_name' => 'AST', + ], + 'ast-AST' => [ + 'code' => 'ast-AST', + 'dir' => 'ltr', + 'name' => 'Asturianu', + 'base' => 'ast', + 'short_name' => 'AST (AST)', + ], + 'az' => [ + 'code' => 'az', + 'dir' => 'ltr', + 'name' => 'Azərbaycan', + 'base' => 'az', + 'short_name' => 'AZ', + ], + 'az-AZ' => [ + 'code' => 'az-AZ', + 'dir' => 'ltr', + 'name' => 'Azərbaycan', + 'base' => 'az', + 'short_name' => 'AZ (AZ)', + ], + 'ba' => [ + 'code' => 'ba', + 'dir' => 'ltr', + 'name' => 'Башҡорт', + 'base' => 'ba', + 'short_name' => 'BA', + ], + 'ba-BA' => [ + 'code' => 'ba-BA', + 'dir' => 'ltr', + 'name' => 'Башҡорт', + 'base' => 'ba', + 'short_name' => 'BA (BA)', + ], + 'be' => [ + 'code' => 'be', + 'dir' => 'ltr', + 'name' => 'Беларускі', + 'base' => 'be', + 'short_name' => 'BE', + ], + 'be-BY' => [ + 'code' => 'be-BY', + 'dir' => 'ltr', + 'name' => 'Беларускі', + 'base' => 'be', + 'short_name' => 'BE (BY)', + ], + 'bg' => [ + 'code' => 'bg', + 'dir' => 'ltr', + 'name' => 'Български', + 'base' => 'bg', + 'short_name' => 'BG', + ], + 'bg-BG' => [ + 'code' => 'bg-BG', + 'dir' => 'ltr', + 'name' => 'Български', + 'base' => 'bg', + 'short_name' => 'BG (BG)', + ], + 'bn' => [ + 'code' => 'bn', + 'dir' => 'ltr', + 'name' => 'Bangla', + 'base' => 'bn', + 'short_name' => 'BN', + ], + 'bn-BN' => [ + 'code' => 'bn-BN', + 'dir' => 'ltr', + 'name' => 'Bangla', + 'base' => 'bn', + 'short_name' => 'BN (BN)', + ], + 'br' => [ + 'code' => 'br', + 'dir' => 'ltr', + 'name' => 'Brezhoneg', + 'base' => 'br', + 'short_name' => 'BR', + ], + 'br-BR' => [ + 'code' => 'br-BR', + 'dir' => 'ltr', + 'name' => 'Brezhoneg', + 'base' => 'br', + 'short_name' => 'BR (BR)', + ], + 'bs' => [ + 'code' => 'bs', + 'dir' => 'ltr', + 'name' => 'Bosanski', + 'base' => 'bs', + 'short_name' => 'BS', + ], + 'bs-BS' => [ + 'code' => 'bs-BS', + 'dir' => 'ltr', + 'name' => 'Bosanski', + 'base' => 'bs', + 'short_name' => 'BS (BS)', + ], + 'ca' => [ + 'code' => 'ca', + 'dir' => 'ltr', + 'name' => 'Сatalà', + 'base' => 'ca', + 'short_name' => 'CA', + ], + 'ca-ES' => [ + 'code' => 'ca-ES', + 'dir' => 'ltr', + 'name' => 'Сatalà (Espanya)', + 'base' => 'ca', + 'short_name' => 'CA (ES)', + ], + 'ce' => [ + 'code' => 'ce', + 'dir' => 'ltr', + 'name' => 'Нохчийн', + 'base' => 'ce', + 'short_name' => 'CE', + ], + 'ce-CE' => [ + 'code' => 'ce-CE', + 'dir' => 'ltr', + 'name' => 'Нохчийн', + 'base' => 'ce', + 'short_name' => 'CE (CE)', + ], + 'ch' => [ + 'code' => 'ch', + 'dir' => 'ltr', + 'name' => 'Chamoru', + 'base' => 'ch', + 'short_name' => 'CH', + ], + 'ch-CH' => [ + 'code' => 'ch-CH', + 'dir' => 'ltr', + 'name' => 'Chamoru', + 'base' => 'ch', + 'short_name' => 'CH (CH)', + ], + 'co' => [ + 'code' => 'co', + 'dir' => 'ltr', + 'name' => 'Corsu', + 'base' => 'co', + 'short_name' => 'CO', + ], + 'co-CO' => [ + 'code' => 'co-CO', + 'dir' => 'ltr', + 'name' => 'Corsu', + 'base' => 'co', + 'short_name' => 'CO (CO)', + ], + 'cr' => [ + 'code' => 'cr', + 'dir' => 'ltr', + 'name' => 'Cree', + 'base' => 'cr', + 'short_name' => 'CR', + ], + 'cr-CR' => [ + 'code' => 'cr-CR', + 'dir' => 'ltr', + 'name' => 'Cree', + 'base' => 'cr', + 'short_name' => 'CR (CR)', + ], + 'cs' => [ + 'code' => 'cs', + 'dir' => 'ltr', + 'name' => 'Čeština', + 'base' => 'cs', + 'short_name' => 'CS', + ], + 'cs-CZ' => [ + 'code' => 'cs-CZ', + 'dir' => 'ltr', + 'name' => 'Čeština', + 'base' => 'cs', + 'short_name' => 'CS (CZ)', + ], + 'cv' => [ + 'code' => 'cv', + 'dir' => 'ltr', + 'name' => 'Чăвашла', + 'base' => 'cv', + 'short_name' => 'CV', + ], + 'cv-CV' => [ + 'code' => 'cv-CV', + 'dir' => 'ltr', + 'name' => 'Чăвашла', + 'base' => 'cv', + 'short_name' => 'CV (CV)', + ], + 'cy' => [ + 'code' => 'cy', + 'dir' => 'ltr', + 'name' => 'Cymraeg', + 'base' => 'cy', + 'short_name' => 'CY', + ], + 'cy-CY' => [ + 'code' => 'cy-CY', + 'dir' => 'ltr', + 'name' => 'Cymraeg', + 'base' => 'cy', + 'short_name' => 'CY (CY)', + ], + 'da' => [ + 'code' => 'da', + 'dir' => 'ltr', + 'name' => 'Dansk', + 'base' => 'da', + 'short_name' => 'DA', + ], + 'da-DK' => [ + 'code' => 'da-DK', + 'dir' => 'ltr', + 'name' => 'Dansk', + 'base' => 'da', + 'short_name' => 'DA (DK)', + ], + 'de' => [ + 'code' => 'de', + 'dir' => 'ltr', + 'name' => 'Deutsch', + 'base' => 'de', + 'short_name' => 'DE', + ], + 'de-AT' => [ + 'code' => 'de-AT', + 'dir' => 'ltr', + 'name' => 'Deutsch (Österreich)', + 'base' => 'de', + 'short_name' => 'DE (AT)', + ], + 'de-CH' => [ + 'code' => 'de-CH', + 'dir' => 'ltr', + 'name' => 'Deutsch (Schweiz)', + 'base' => 'de', + 'short_name' => 'DE (CH)', + ], + 'de-DE' => [ + 'code' => 'de-DE', + 'dir' => 'ltr', + 'name' => 'Deutsch (Deutschland)', + 'base' => 'de', + 'short_name' => 'DE (DE)', + ], + 'de-LU' => [ + 'code' => 'de-LU', + 'dir' => 'ltr', + 'name' => 'Deutsch (Luxemburg)', + 'base' => 'de', + 'short_name' => 'DE (LU)', + ], + 'el' => [ + 'code' => 'el', + 'dir' => 'ltr', + 'name' => 'Ελληνικά', + 'base' => 'el', + 'short_name' => 'EL', + ], + 'el-CY' => [ + 'code' => 'el-CY', + 'dir' => 'ltr', + 'name' => 'Ελληνικά (Κύπρος)', + 'base' => 'el', + 'short_name' => 'EL (CY)', + ], + 'el-GR' => [ + 'code' => 'el-GR', + 'dir' => 'ltr', + 'name' => 'Ελληνικά (Ελλάδα)', + 'base' => 'el', + 'short_name' => 'EL (GR)', + ], + 'en' => [ + 'code' => 'en', + 'dir' => 'ltr', + 'name' => 'English', + 'base' => 'en', + 'short_name' => 'EN', + ], + 'en-AU' => [ + 'code' => 'en-AU', + 'dir' => 'ltr', + 'name' => 'English (Australia)', + 'base' => 'en', + 'short_name' => 'EN (AU)', + ], + 'en-CA' => [ + 'code' => 'en-CA', + 'dir' => 'ltr', + 'name' => 'English (Canada)', + 'base' => 'en', + 'short_name' => 'EN (CA)', + ], + 'en-GB' => [ + 'code' => 'en-GB', + 'dir' => 'ltr', + 'name' => 'English (UK)', + 'base' => 'en', + 'short_name' => 'EN (GB)', + ], + 'en-IE' => [ + 'code' => 'en-IE', + 'dir' => 'ltr', + 'name' => 'English (Ireland)', + 'base' => 'en', + 'short_name' => 'EN (IE)', + ], + 'en-IN' => [ + 'code' => 'en-IN', + 'dir' => 'ltr', + 'name' => 'English (India)', + 'base' => 'en', + 'short_name' => 'EN (IN)', + ], + 'en-MT' => [ + 'code' => 'en-MT', + 'dir' => 'ltr', + 'name' => 'English (Malta)', + 'base' => 'en', + 'short_name' => 'EN (MT)', + ], + 'en-NZ' => [ + 'code' => 'en-NZ', + 'dir' => 'ltr', + 'name' => 'English (New Zealand)', + 'base' => 'en', + 'short_name' => 'EN (NZ)', + ], + 'en-PH' => [ + 'code' => 'en-PH', + 'dir' => 'ltr', + 'name' => 'English (Philippines)', + 'base' => 'en', + 'short_name' => 'EN (PH)', + ], + 'en-SG' => [ + 'code' => 'en-SG', + 'dir' => 'ltr', + 'name' => 'English (Singapore)', + 'base' => 'en', + 'short_name' => 'EN (SG)', + ], + 'en-US' => [ + 'code' => 'en-US', + 'dir' => 'ltr', + 'name' => 'English (US)', + 'base' => 'en', + 'short_name' => 'EN (US)', + ], + 'en-ZA' => [ + 'code' => 'en-ZA', + 'dir' => 'ltr', + 'name' => 'English (South Africa)', + 'base' => 'en', + 'short_name' => 'EN (ZA)', + ], + 'eo' => [ + 'code' => 'eo', + 'dir' => 'ltr', + 'name' => 'Esperanta', + 'base' => 'eo', + 'short_name' => 'EO', + ], + 'eo-EO' => [ + 'code' => 'eo-EO', + 'dir' => 'ltr', + 'name' => 'Esperanta', + 'base' => 'eo', + 'short_name' => 'EO (EO)', + ], + 'es' => [ + 'code' => 'es', + 'dir' => 'ltr', + 'name' => 'Español', + 'base' => 'es', + 'short_name' => 'ES', + ], + 'es-AR' => [ + 'code' => 'es-AR', + 'dir' => 'ltr', + 'name' => 'Español (Argentina)', + 'base' => 'es', + 'short_name' => 'ES (AR)', + ], + 'es-BO' => [ + 'code' => 'es-BO', + 'dir' => 'ltr', + 'name' => 'Español (Bolivia)', + 'base' => 'es', + 'short_name' => 'ES (BO)', + ], + 'es-CL' => [ + 'code' => 'es-CL', + 'dir' => 'ltr', + 'name' => 'Español (Chile)', + 'base' => 'es', + 'short_name' => 'ES (CL)', + ], + 'es-CO' => [ + 'code' => 'es-CO', + 'dir' => 'ltr', + 'name' => 'Español (Colombia)', + 'base' => 'es', + 'short_name' => 'ES (CO)', + ], + 'es-CR' => [ + 'code' => 'es-CR', + 'dir' => 'ltr', + 'name' => 'Español (Costa Rica)', + 'base' => 'es', + 'short_name' => 'ES (CR)', + ], + 'es-DO' => [ + 'code' => 'es-DO', + 'dir' => 'ltr', + 'name' => 'Español (República Dominicana)', + 'base' => 'es', + 'short_name' => 'ES (DO)', + ], + 'es-EC' => [ + 'code' => 'es-EC', + 'dir' => 'ltr', + 'name' => 'Español (Ecuador)', + 'base' => 'es', + 'short_name' => 'ES (EC)', + ], + 'es-ES' => [ + 'code' => 'es-ES', + 'dir' => 'ltr', + 'name' => 'Español (España)', + 'base' => 'es', + 'short_name' => 'ES (ES)', + ], + 'es-GT' => [ + 'code' => 'es-GT', + 'dir' => 'ltr', + 'name' => 'Español (Guatemala)', + 'base' => 'es', + 'short_name' => 'ES (GT)', + ], + 'es-HN' => [ + 'code' => 'es-HN', + 'dir' => 'ltr', + 'name' => 'Español (Honduras)', + 'base' => 'es', + 'short_name' => 'ES (HN)', + ], + 'es-MX' => [ + 'code' => 'es-MX', + 'dir' => 'ltr', + 'name' => 'Español (México)', + 'base' => 'es', + 'short_name' => 'ES (MX)', + ], + 'es-NI' => [ + 'code' => 'es-NI', + 'dir' => 'ltr', + 'name' => 'Español (Nicaragua)', + 'base' => 'es', + 'short_name' => 'ES (NI)', + ], + 'es-PA' => [ + 'code' => 'es-PA', + 'dir' => 'ltr', + 'name' => 'Español (Panamá)', + 'base' => 'es', + 'short_name' => 'ES (PA)', + ], + 'es-PE' => [ + 'code' => 'es-PE', + 'dir' => 'ltr', + 'name' => 'Español (Perú)', + 'base' => 'es', + 'short_name' => 'ES (PE)', + ], + 'es-PR' => [ + 'code' => 'es-PR', + 'dir' => 'ltr', + 'name' => 'Español (Puerto Rico)', + 'base' => 'es', + 'short_name' => 'ES (PR)', + ], + 'es-PY' => [ + 'code' => 'es-PY', + 'dir' => 'ltr', + 'name' => 'Español (Paraguay)', + 'base' => 'es', + 'short_name' => 'ES (PY)', + ], + 'es-SV' => [ + 'code' => 'es-SV', + 'dir' => 'ltr', + 'name' => 'Español (El Salvador)', + 'base' => 'es', + 'short_name' => 'ES (SV)', + ], + 'es-US' => [ + 'code' => 'es-US', + 'dir' => 'ltr', + 'name' => 'Español (Estados Unidos)', + 'base' => 'es', + 'short_name' => 'ES (US)', + ], + 'es-UY' => [ + 'code' => 'es-UY', + 'dir' => 'ltr', + 'name' => 'Español (Uruguay)', + 'base' => 'es', + 'short_name' => 'ES (UY)', + ], + 'es-VE' => [ + 'code' => 'es-VE', + 'dir' => 'ltr', + 'name' => 'Español (Venezuela)', + 'base' => 'es', + 'short_name' => 'ES (VE)', + ], + 'et' => [ + 'code' => 'et', + 'dir' => 'ltr', + 'name' => 'Eesti', + 'base' => 'et', + 'short_name' => 'ET', + ], + 'et-EE' => [ + 'code' => 'et-EE', + 'dir' => 'ltr', + 'name' => 'Eesti (Eesti)', + 'base' => 'et', + 'short_name' => 'ET (EE)', + ], + 'eu' => [ + 'code' => 'eu', + 'dir' => 'ltr', + 'name' => 'Euskera', + 'base' => 'eu', + 'short_name' => 'EU', + ], + 'eu-EU' => [ + 'code' => 'eu-EU', + 'dir' => 'ltr', + 'name' => 'Euskera', + 'base' => 'eu', + 'short_name' => 'EU (EU)', + ], + 'fa' => [ + 'code' => 'fa', + 'dir' => 'rtl', + 'name' => 'فارسی', + 'base' => 'fa', + 'short_name' => 'FA', + ], + 'fa-FA' => [ + 'code' => 'fa-FA', + 'dir' => 'rtl', + 'name' => 'فارسی', + 'base' => 'fa', + 'short_name' => 'FA (FA)', + ], + 'fi' => [ + 'code' => 'fi', + 'dir' => 'ltr', + 'name' => 'Suomi', + 'base' => 'fi', + 'short_name' => 'FI', + ], + 'fi-FI' => [ + 'code' => 'fi-FI', + 'dir' => 'ltr', + 'name' => 'Suomi', + 'base' => 'fi', + 'short_name' => 'FI (FI)', + ], + 'fj' => [ + 'code' => 'fj', + 'dir' => 'ltr', + 'name' => 'Na Vosa Vakaviti', + 'base' => 'fj', + 'short_name' => 'FJ', + ], + 'fj-FJ' => [ + 'code' => 'fj-FJ', + 'dir' => 'ltr', + 'name' => 'Na Vosa Vakaviti', + 'base' => 'fj', + 'short_name' => 'FJ (FJ)', + ], + 'fo' => [ + 'code' => 'fo', + 'dir' => 'ltr', + 'name' => 'Føroyskt', + 'base' => 'fo', + 'short_name' => 'FO', + ], + 'fo-FO' => [ + 'code' => 'fo-FO', + 'dir' => 'ltr', + 'name' => 'Føroyskt', + 'base' => 'fo', + 'short_name' => 'FO (FO)', + ], + 'fr' => [ + 'code' => 'fr', + 'dir' => 'ltr', + 'name' => 'Français', + 'base' => 'fr', + 'short_name' => 'FR', + ], + 'fr-BE' => [ + 'code' => 'fr-BE', + 'dir' => 'ltr', + 'name' => 'Français (Belgique)', + 'base' => 'fr', + 'short_name' => 'FR (BE)', + ], + 'fr-CA' => [ + 'code' => 'fr-CA', + 'dir' => 'ltr', + 'name' => 'Français (Canada)', + 'base' => 'fr', + 'short_name' => 'FR (CA)', + ], + 'fr-CH' => [ + 'code' => 'fr-CH', + 'dir' => 'ltr', + 'name' => 'Français (Suisse)', + 'base' => 'fr', + 'short_name' => 'FR (CH)', + ], + 'fr-FR' => [ + 'code' => 'fr-FR', + 'dir' => 'ltr', + 'name' => 'Français (France)', + 'base' => 'fr', + 'short_name' => 'FR (FR)', + ], + 'fr-LU' => [ + 'code' => 'fr-LU', + 'dir' => 'ltr', + 'name' => 'Français (Luxembourg)', + 'base' => 'fr', + 'short_name' => 'FR (LU)', + ], + 'fy' => [ + 'code' => 'fy', + 'dir' => 'ltr', + 'name' => 'Frysk', + 'base' => 'fy', + 'short_name' => 'FY', + ], + 'fy-FY' => [ + 'code' => 'fy-FY', + 'dir' => 'ltr', + 'name' => 'Frysk', + 'base' => 'fy', + 'short_name' => 'FY (FY)', + ], + 'ga' => [ + 'code' => 'ga', + 'dir' => 'ltr', + 'name' => 'Gaeilge', + 'base' => 'ga', + 'short_name' => 'GA', + ], + 'ga-IE' => [ + 'code' => 'ga-IE', + 'dir' => 'ltr', + 'name' => 'Gaeilge (Éire)', + 'base' => 'ga', + 'short_name' => 'GA (IE)', + ], + 'gd' => [ + 'code' => 'gd', + 'dir' => 'ltr', + 'name' => 'Gàidhlig', + 'base' => 'gd', + 'short_name' => 'GD', + ], + 'gd-GD' => [ + 'code' => 'gd-GD', + 'dir' => 'ltr', + 'name' => 'Gàidhlig', + 'base' => 'gd', + 'short_name' => 'GD (GD)', + ], + 'gl' => [ + 'code' => 'gl', + 'dir' => 'ltr', + 'name' => 'Galego', + 'base' => 'gl', + 'short_name' => 'GL', + ], + 'gl-GL' => [ + 'code' => 'gl-GL', + 'dir' => 'ltr', + 'name' => 'Galego', + 'base' => 'gl', + 'short_name' => 'GL (GL)', + ], + 'gu' => [ + 'code' => 'gu', + 'dir' => 'ltr', + 'name' => 'Gujarati', + 'base' => 'gu', + 'short_name' => 'GU', + ], + 'gu-GU' => [ + 'code' => 'gu-GU', + 'dir' => 'ltr', + 'name' => 'Gujarati', + 'base' => 'gu', + 'short_name' => 'GU (GU)', + ], + 'he' => [ + 'code' => 'he', + 'dir' => 'rtl', + 'name' => 'עברית', + 'base' => 'he', + 'short_name' => 'HE', + ], + 'he-IL' => [ + 'code' => 'he-IL', + 'dir' => 'rtl', + 'name' => 'עברית', + 'base' => 'he', + 'short_name' => 'HE (IL)', + ], + 'hi' => [ + 'code' => 'hi', + 'dir' => 'ltr', + 'name' => 'हिंदी', + 'base' => 'hi', + 'short_name' => 'HI', + ], + 'hi-IN' => [ + 'code' => 'hi-IN', + 'dir' => 'ltr', + 'name' => 'हिंदी (भारत)', + 'base' => 'hi', + 'short_name' => 'HI (IN)', + ], + 'hr' => [ + 'code' => 'hr', + 'dir' => 'ltr', + 'name' => 'Hrvatski', + 'base' => 'hr', + 'short_name' => 'HR', + ], + 'hr-HR' => [ + 'code' => 'hr-HR', + 'dir' => 'ltr', + 'name' => 'Hrvatski', + 'base' => 'hr', + 'short_name' => 'HR (HR)', + ], + 'hsb' => [ + 'code' => 'hsb', + 'dir' => 'ltr', + 'name' => 'Hornjoserbšćina', + 'base' => 'hsb', + 'short_name' => 'HSB', + ], + 'hsb-HSB' => [ + 'code' => 'hsb-HSB', + 'dir' => 'ltr', + 'name' => 'Hornjoserbšćina', + 'base' => 'hsb', + 'short_name' => 'HSB (HSB)', + ], + 'ht' => [ + 'code' => 'ht', + 'dir' => 'ltr', + 'name' => 'Kreyòl Ayisyen', + 'base' => 'ht', + 'short_name' => 'HT', + ], + 'ht-HT' => [ + 'code' => 'ht-HT', + 'dir' => 'ltr', + 'name' => 'Kreyòl Ayisyen', + 'base' => 'ht', + 'short_name' => 'HT (HT)', + ], + 'hu' => [ + 'code' => 'hu', + 'dir' => 'ltr', + 'name' => 'Magyar', + 'base' => 'hu', + 'short_name' => 'HU', + ], + 'hu-HU' => [ + 'code' => 'hu-HU', + 'dir' => 'ltr', + 'name' => 'Magyar', + 'base' => 'hu', + 'short_name' => 'HU (HU)', + ], + 'hy' => [ + 'code' => 'hy', + 'dir' => 'ltr', + 'name' => 'հայերեն', + 'base' => 'hy', + 'short_name' => 'HY', + ], + 'hy-HY' => [ + 'code' => 'hy-HY', + 'dir' => 'ltr', + 'name' => 'հայերեն', + 'base' => 'hy', + 'short_name' => 'HY (HY)', + ], + 'ia' => [ + 'code' => 'ia', + 'dir' => 'ltr', + 'name' => 'Interlingua', + 'base' => 'ia', + 'short_name' => 'IA', + ], + 'ia-IA' => [ + 'code' => 'ia-IA', + 'dir' => 'ltr', + 'name' => 'Interlingua', + 'base' => 'ia', + 'short_name' => 'IA (IA)', + ], + 'id' => [ + 'code' => 'id', + 'dir' => 'ltr', + 'name' => 'Bahasa Indonesia', + 'base' => 'id', + 'short_name' => 'ID', + ], + 'id-ID' => [ + 'code' => 'id-ID', + 'dir' => 'ltr', + 'name' => 'Bahasa Indonesia', + 'base' => 'id', + 'short_name' => 'ID (ID)', + ], + 'ie' => [ + 'code' => 'ie', + 'dir' => 'ltr', + 'name' => 'Interlingue', + 'base' => 'ie', + 'short_name' => 'IE', + ], + 'ie-IE' => [ + 'code' => 'ie-IE', + 'dir' => 'ltr', + 'name' => 'Interlingue', + 'base' => 'ie', + 'short_name' => 'IE (IE)', + ], + 'in' => [ + 'code' => 'in', + 'dir' => 'ltr', + 'name' => 'Bahasa Indonesia', + 'base' => 'in', + 'short_name' => 'IN', + ], + 'in-ID' => [ + 'code' => 'in-ID', + 'dir' => 'ltr', + 'name' => 'Bahasa Indonesia (Indonesia)', + 'base' => 'in', + 'short_name' => 'IN (ID)', + ], + 'is' => [ + 'code' => 'is', + 'dir' => 'ltr', + 'name' => 'Íslenska', + 'base' => 'is', + 'short_name' => 'IS', + ], + 'is-IS' => [ + 'code' => 'is-IS', + 'dir' => 'ltr', + 'name' => 'Íslenska (Ísland)', + 'base' => 'is', + 'short_name' => 'IS (IS)', + ], + 'it' => [ + 'code' => 'it', + 'dir' => 'ltr', + 'name' => 'Italiano', + 'base' => 'it', + 'short_name' => 'IT', + ], + 'it-CH' => [ + 'code' => 'it-CH', + 'dir' => 'ltr', + 'name' => 'Italiano (Svizzera)', + 'base' => 'it', + 'short_name' => 'IT (CH)', + ], + 'it-IT' => [ + 'code' => 'it-IT', + 'dir' => 'ltr', + 'name' => 'Italiano (Italia)', + 'base' => 'it', + 'short_name' => 'IT (IT)', + ], + 'iu' => [ + 'code' => 'iu', + 'dir' => 'ltr', + 'name' => 'Inuktitut', + 'base' => 'iu', + 'short_name' => 'IU', + ], + 'iu-IU' => [ + 'code' => 'iu-IU', + 'dir' => 'ltr', + 'name' => 'Inuktitut', + 'base' => 'iu', + 'short_name' => 'IU (IU)', + ], + 'iw' => [ + 'code' => 'iw', + 'dir' => 'ltr', + 'name' => 'עברית', + 'base' => 'iw', + 'short_name' => 'IW', + ], + 'iw-IL' => [ + 'code' => 'iw-IL', + 'dir' => 'ltr', + 'name' => 'עברית', + 'base' => 'iw', + 'short_name' => 'IW (IL)', + ], + 'ja' => [ + 'code' => 'ja', + 'dir' => 'ltr', + 'name' => '日本語', + 'base' => 'ja', + 'short_name' => 'JA', + ], + 'ja-JP' => [ + 'code' => 'ja-JP', + 'dir' => 'ltr', + 'name' => '日本語', + 'base' => 'ja', + 'short_name' => 'JA (JP)', + ], + 'ka' => [ + 'code' => 'ka', + 'dir' => 'ltr', + 'name' => 'ქართული', + 'base' => 'ka', + 'short_name' => 'KA', + ], + 'ka-KA' => [ + 'code' => 'ka-KA', + 'dir' => 'ltr', + 'name' => 'ქართული', + 'base' => 'ka', + 'short_name' => 'KA (KA)', + ], + 'kk' => [ + 'code' => 'kk', + 'dir' => 'ltr', + 'name' => 'Қазақша', + 'base' => 'kk', + 'short_name' => 'KK', + ], + 'kk-KK' => [ + 'code' => 'kk-KK', + 'dir' => 'ltr', + 'name' => 'Қазақша', + 'base' => 'kk', + 'short_name' => 'KK (KK)', + ], + 'km' => [ + 'code' => 'km', + 'dir' => 'ltr', + 'name' => 'Khmer', + 'base' => 'km', + 'short_name' => 'KM', + ], + 'km-KM' => [ + 'code' => 'km-KM', + 'dir' => 'ltr', + 'name' => 'Khmer', + 'base' => 'km', + 'short_name' => 'KM (KM)', + ], + 'ko' => [ + 'code' => 'ko', + 'dir' => 'ltr', + 'name' => '한국어', + 'base' => 'ko', + 'short_name' => 'KO', + ], + 'ko-KR' => [ + 'code' => 'ko-KR', + 'dir' => 'ltr', + 'name' => '한국어', + 'base' => 'ko', + 'short_name' => 'KO (KR)', + ], + 'ky' => [ + 'code' => 'ky', + 'dir' => 'ltr', + 'name' => 'Кыргызча', + 'base' => 'ky', + 'short_name' => 'KY', + ], + 'ky-KY' => [ + 'code' => 'ky-KY', + 'dir' => 'ltr', + 'name' => 'Кыргызча', + 'base' => 'ky', + 'short_name' => 'KY (KY)', + ], + 'la' => [ + 'code' => 'la', + 'dir' => 'ltr', + 'name' => 'Latina', + 'base' => 'la', + 'short_name' => 'LA', + ], + 'la-LA' => [ + 'code' => 'la-LA', + 'dir' => 'ltr', + 'name' => 'Latina', + 'base' => 'la', + 'short_name' => 'LA (LA)', + ], + 'lb' => [ + 'code' => 'lb', + 'dir' => 'ltr', + 'name' => 'Lëtzebuergesch', + 'base' => 'lb', + 'short_name' => 'LB', + ], + 'lb-LB' => [ + 'code' => 'lb-LB', + 'dir' => 'ltr', + 'name' => 'Lëtzebuergesch', + 'base' => 'lb', + 'short_name' => 'LB (LB)', + ], + 'lt' => [ + 'code' => 'lt', + 'dir' => 'ltr', + 'name' => 'Lietuvių', + 'base' => 'lt', + 'short_name' => 'LT', + ], + 'lt-LT' => [ + 'code' => 'lt-LT', + 'dir' => 'ltr', + 'name' => 'Lietuvių (Lietuva)', + 'base' => 'lt', + 'short_name' => 'LT (LT)', + ], + 'lv' => [ + 'code' => 'lv', + 'dir' => 'ltr', + 'name' => 'Latviešu', + 'base' => 'lv', + 'short_name' => 'LV', + ], + 'lv-LV' => [ + 'code' => 'lv-LV', + 'dir' => 'ltr', + 'name' => 'Latviešu (Latvija)', + 'base' => 'lv', + 'short_name' => 'LV (LV)', + ], + 'mi' => [ + 'code' => 'mi', + 'dir' => 'ltr', + 'name' => 'Te Reo Māori', + 'base' => 'mi', + 'short_name' => 'MI', + ], + 'mi-MI' => [ + 'code' => 'mi-MI', + 'dir' => 'ltr', + 'name' => 'Te Reo Māori', + 'base' => 'mi', + 'short_name' => 'MI (MI)', + ], + 'mk' => [ + 'code' => 'mk', + 'dir' => 'ltr', + 'name' => 'Македонски', + 'base' => 'mk', + 'short_name' => 'MK', + ], + 'mk-MK' => [ + 'code' => 'mk-MK', + 'dir' => 'ltr', + 'name' => 'Македонски (Македонија)', + 'base' => 'mk', + 'short_name' => 'MK (MK)', + ], + 'ml' => [ + 'code' => 'ml', + 'dir' => 'ltr', + 'name' => 'Malayalam', + 'base' => 'ml', + 'short_name' => 'ML', + ], + 'ml-ML' => [ + 'code' => 'ml-ML', + 'dir' => 'ltr', + 'name' => 'Malayalam', + 'base' => 'ml', + 'short_name' => 'ML (ML)', + ], + 'mo' => [ + 'code' => 'mo', + 'dir' => 'ltr', + 'name' => 'Graiul Moldovenesc', + 'base' => 'mo', + 'short_name' => 'MO', + ], + 'mo-MO' => [ + 'code' => 'mo-MO', + 'dir' => 'ltr', + 'name' => 'Graiul Moldovenesc', + 'base' => 'mo', + 'short_name' => 'MO (MO)', + ], + 'mr' => [ + 'code' => 'mr', + 'dir' => 'ltr', + 'name' => 'मराठी', + 'base' => 'mr', + 'short_name' => 'MR', + ], + 'mr-MR' => [ + 'code' => 'mr-MR', + 'dir' => 'ltr', + 'name' => 'मराठी', + 'base' => 'mr', + 'short_name' => 'MR (MR)', + ], + 'ms' => [ + 'code' => 'ms', + 'dir' => 'ltr', + 'name' => 'Bahasa Melayu', + 'base' => 'ms', + 'short_name' => 'MS', + ], + 'ms-MY' => [ + 'code' => 'ms-MY', + 'dir' => 'ltr', + 'name' => 'Bahasa Melayu', + 'base' => 'ms', + 'short_name' => 'MS (MY)', + ], + 'mt' => [ + 'code' => 'mt', + 'dir' => 'ltr', + 'name' => 'Malti', + 'base' => 'mt', + 'short_name' => 'MT', + ], + 'mt-MT' => [ + 'code' => 'mt-MT', + 'dir' => 'ltr', + 'name' => 'Malti', + 'base' => 'mt', + 'short_name' => 'MT (MT)', + ], + 'nb' => [ + 'code' => 'nb', + 'dir' => 'ltr', + 'name' => '‪Norsk Bokmål‬', + 'base' => 'nb', + 'short_name' => 'NB', + ], + 'nb-NB' => [ + 'code' => 'nb-NB', + 'dir' => 'ltr', + 'name' => '‪Norsk Bokmål‬', + 'base' => 'nb', + 'short_name' => 'NB (NB)', + ], + 'ne' => [ + 'code' => 'ne', + 'dir' => 'ltr', + 'name' => 'नेपाली', + 'base' => 'ne', + 'short_name' => 'NE', + ], + 'ne-NE' => [ + 'code' => 'ne-NE', + 'dir' => 'ltr', + 'name' => 'नेपाली', + 'base' => 'ne', + 'short_name' => 'NE (NE)', + ], + 'ng' => [ + 'code' => 'ng', + 'dir' => 'ltr', + 'name' => 'Oshiwambo', + 'base' => 'ng', + 'short_name' => 'NG', + ], + 'ng-NG' => [ + 'code' => 'ng-NG', + 'dir' => 'ltr', + 'name' => 'Oshiwambo', + 'base' => 'ng', + 'short_name' => 'NG (NG)', + ], + 'nl' => [ + 'code' => 'nl', + 'dir' => 'ltr', + 'name' => 'Nederlands', + 'base' => 'nl', + 'short_name' => 'NL', + ], + 'nl-BE' => [ + 'code' => 'nl-BE', + 'dir' => 'ltr', + 'name' => 'Nederlands (België)', + 'base' => 'nl', + 'short_name' => 'NL (BE)', + ], + 'nl-NL' => [ + 'code' => 'nl-NL', + 'dir' => 'ltr', + 'name' => 'Nederlands (Nederland)', + 'base' => 'nl', + 'short_name' => 'NL (NL)', + ], + 'nn' => [ + 'code' => 'nn', + 'dir' => 'ltr', + 'name' => 'Norsk', + 'base' => 'nn', + 'short_name' => 'NN', + ], + 'nn-NN' => [ + 'code' => 'nn-NN', + 'dir' => 'ltr', + 'name' => 'Norsk (Nynorsk)', + 'base' => 'nn', + 'short_name' => 'NN (NN)', + ], + 'no' => [ + 'code' => 'no', + 'dir' => 'ltr', + 'name' => 'Norsk', + 'base' => 'no', + 'short_name' => 'NO', + ], + 'no-NO' => [ + 'code' => 'no-NO', + 'dir' => 'ltr', + 'name' => 'Norsk (Norge)', + 'base' => 'no', + 'short_name' => 'NO (NO)', + ], + 'nv' => [ + 'code' => 'nv', + 'dir' => 'ltr', + 'name' => 'Diné Bizaad', + 'base' => 'nv', + 'short_name' => 'NV', + ], + 'nv-NV' => [ + 'code' => 'nv-NV', + 'dir' => 'ltr', + 'name' => 'Diné Bizaad', + 'base' => 'nv', + 'short_name' => 'NV (NV)', + ], + 'oc' => [ + 'code' => 'oc', + 'dir' => 'ltr', + 'name' => 'Lenga d’òc', + 'base' => 'oc', + 'short_name' => 'OC', + ], + 'oc-OC' => [ + 'code' => 'oc-OC', + 'dir' => 'ltr', + 'name' => 'Lenga d’òc', + 'base' => 'oc', + 'short_name' => 'OC (OC)', + ], + 'om' => [ + 'code' => 'om', + 'dir' => 'ltr', + 'name' => 'Afaan Oromoo', + 'base' => 'om', + 'short_name' => 'OM', + ], + 'om-OM' => [ + 'code' => 'om-OM', + 'dir' => 'ltr', + 'name' => 'Afaan Oromoo', + 'base' => 'om', + 'short_name' => 'OM (OM)', + ], + 'pa' => [ + 'code' => 'pa', + 'dir' => 'rtl', + 'name' => 'भारत गणराज्य', + 'base' => 'pa', + 'short_name' => 'PA', + ], + 'pa-IN' => [ + 'code' => 'pa-IN', + 'dir' => 'rtl', + 'name' => 'भारत गणराज्य (नेपाली)', + 'base' => 'pa', + 'short_name' => 'PA (IN)', + ], + 'pa-PK' => [ + 'code' => 'pa-PK', + 'dir' => 'rtl', + 'name' => 'یپنجاب (پنجاب)', + 'base' => 'pa', + 'short_name' => 'PA (PK)', + ], + 'pl' => [ + 'code' => 'pl', + 'dir' => 'ltr', + 'name' => 'Polski', + 'base' => 'pl', + 'short_name' => 'PL', + ], + 'pl-PL' => [ + 'code' => 'pl-PL', + 'dir' => 'ltr', + 'name' => 'Polski (Polska)', + 'base' => 'pl', + 'short_name' => 'PL (PL)', + ], + 'pt' => [ + 'code' => 'pt', + 'dir' => 'ltr', + 'name' => 'Português', + 'base' => 'pt', + 'short_name' => 'PT', + ], + 'pt-BR' => [ + 'code' => 'pt-BR', + 'dir' => 'ltr', + 'name' => 'Português (Brasil)', + 'base' => 'pt', + 'short_name' => 'PT (BR)', + ], + 'pt-PT' => [ + 'code' => 'pt-PT', + 'dir' => 'ltr', + 'name' => 'Português (Portugal)', + 'base' => 'pt', + 'short_name' => 'PT (PT)', + ], + 'qu' => [ + 'code' => 'qu', + 'dir' => 'ltr', + 'name' => 'Runa Simi', + 'base' => 'qu', + 'short_name' => 'QU', + ], + 'qu-QU' => [ + 'code' => 'qu-QU', + 'dir' => 'ltr', + 'name' => 'Runa Simi', + 'base' => 'qu', + 'short_name' => 'QU (QU)', + ], + 'rm' => [ + 'code' => 'rm', + 'dir' => 'ltr', + 'name' => 'Rumantsch', + 'base' => 'rm', + 'short_name' => 'RM', + ], + 'rm-RM' => [ + 'code' => 'rm-RM', + 'dir' => 'ltr', + 'name' => 'Rumantsch', + 'base' => 'rm', + 'short_name' => 'RM (RM)', + ], + 'ro' => [ + 'code' => 'ro', + 'dir' => 'ltr', + 'name' => 'Română', + 'base' => 'ro', + 'short_name' => 'RO', + ], + 'ro-RO' => [ + 'code' => 'ro-RO', + 'dir' => 'ltr', + 'name' => 'Română (România)', + 'base' => 'ro', + 'short_name' => 'RO (RO)', + ], + 'ru' => [ + 'code' => 'ru', + 'dir' => 'ltr', + 'name' => 'Русский', + 'base' => 'ru', + 'short_name' => 'RU', + ], + 'ru-RU' => [ + 'code' => 'ru-RU', + 'dir' => 'ltr', + 'name' => 'Русский (Россия)', + 'base' => 'ru', + 'short_name' => 'RU (RU)', + ], + 'sa' => [ + 'code' => 'sa', + 'dir' => 'ltr', + 'name' => 'संस्कृत', + 'base' => 'sa', + 'short_name' => 'SA', + ], + 'sa-SA' => [ + 'code' => 'sa-SA', + 'dir' => 'ltr', + 'name' => 'संस्कृत', + 'base' => 'sa', + 'short_name' => 'SA (SA)', + ], + 'sc' => [ + 'code' => 'sc', + 'dir' => 'ltr', + 'name' => 'Sardu', + 'base' => 'sc', + 'short_name' => 'SC', + ], + 'sc-SC' => [ + 'code' => 'sc-SC', + 'dir' => 'ltr', + 'name' => 'Sardu', + 'base' => 'sc', + 'short_name' => 'SC (SC)', + ], + 'sd' => [ + 'code' => 'sd', + 'dir' => 'rtl', + 'name' => 'فارسی', + 'base' => 'sd', + 'short_name' => 'SD', + ], + 'sd-SD' => [ + 'code' => 'sd-SD', + 'dir' => 'rtl', + 'name' => 'فارسی', + 'base' => 'sd', + 'short_name' => 'SD (SD)', + ], + 'sg' => [ + 'code' => 'sg', + 'dir' => 'ltr', + 'name' => 'Sango', + 'base' => 'sg', + 'short_name' => 'SG', + ], + 'sg-SG' => [ + 'code' => 'sg-SG', + 'dir' => 'ltr', + 'name' => 'Sango', + 'base' => 'sg', + 'short_name' => 'SG (SG)', + ], + 'sk' => [ + 'code' => 'sk', + 'dir' => 'ltr', + 'name' => 'Slovenčina', + 'base' => 'sk', + 'short_name' => 'SK', + ], + 'sk-SK' => [ + 'code' => 'sk-SK', + 'dir' => 'ltr', + 'name' => 'Slovenčina (Slovenská republika)', + 'base' => 'sk', + 'short_name' => 'SK (SK)', + ], + 'sl' => [ + 'code' => 'sl', + 'dir' => 'ltr', + 'name' => 'Slovenščina', + 'base' => 'sl', + 'short_name' => 'SL', + ], + 'sl-SI' => [ + 'code' => 'sl-SI', + 'dir' => 'ltr', + 'name' => 'Slovenščina (Slovenija)', + 'base' => 'sl', + 'short_name' => 'SL (SI)', + ], + 'so' => [ + 'code' => 'so', + 'dir' => 'ltr', + 'name' => 'Af Somali', + 'base' => 'so', + 'short_name' => 'SO', + ], + 'so-SO' => [ + 'code' => 'so-SO', + 'dir' => 'ltr', + 'name' => 'Af Somali', + 'base' => 'so', + 'short_name' => 'SO (SO)', + ], + 'sq' => [ + 'code' => 'sq', + 'dir' => 'ltr', + 'name' => 'Shqipe', + 'base' => 'sq', + 'short_name' => 'SQ', + ], + 'sq-AL' => [ + 'code' => 'sq-AL', + 'dir' => 'ltr', + 'name' => 'Shqipe', + 'base' => 'sq', + 'short_name' => 'SQ (AL)', + ], + 'sr' => [ + 'code' => 'sr', + 'dir' => 'ltr', + 'name' => 'Српски', + 'base' => 'sr', + 'short_name' => 'SR', + ], + 'sr-BA' => [ + 'code' => 'sr-BA', + 'dir' => 'ltr', + 'name' => 'Српски (Босна и Херцеговина)', + 'base' => 'sr', + 'short_name' => 'SR (BA)', + ], + 'sr-CS' => [ + 'code' => 'sr-CS', + 'dir' => 'ltr', + 'name' => 'Српски (Србија и Црна Гора)', + 'base' => 'sr', + 'short_name' => 'SR (CS)', + ], + 'sr-RS' => [ + 'code' => 'sr-RS', + 'dir' => 'ltr', + 'name' => 'Српски', + 'base' => 'sr', + 'short_name' => 'SR (RS)', + ], + 'sv' => [ + 'code' => 'sv', + 'dir' => 'ltr', + 'name' => 'Svenska', + 'base' => 'sv', + 'short_name' => 'SV', + ], + 'sv-SE' => [ + 'code' => 'sv-SE', + 'dir' => 'ltr', + 'name' => 'Svenska (Sverige)', + 'base' => 'sv', + 'short_name' => 'SV (SE)', + ], + 'sw' => [ + 'code' => 'sw', + 'dir' => 'ltr', + 'name' => 'Kiswahili', + 'base' => 'sw', + 'short_name' => 'SW', + ], + 'sw-SW' => [ + 'code' => 'sw-SW', + 'dir' => 'ltr', + 'name' => 'Kiswahili', + 'base' => 'sw', + 'short_name' => 'SW (SW)', + ], + 'ta' => [ + 'code' => 'ta', + 'dir' => 'ltr', + 'name' => 'தமிழ', + 'base' => 'ta', + 'short_name' => 'TA', + ], + 'ta-TA' => [ + 'code' => 'ta-TA', + 'dir' => 'ltr', + 'name' => 'தமிழ', + 'base' => 'ta', + 'short_name' => 'TA (TA)', + ], + 'th' => [ + 'code' => 'th', + 'dir' => 'ltr', + 'name' => 'ไทย', + 'base' => 'th', + 'short_name' => 'TH', + ], + 'th-TH' => [ + 'code' => 'th-TH', + 'dir' => 'ltr', + 'name' => 'ไทย (ประเทศไทย)', + 'base' => 'th', + 'short_name' => 'TH (TH)', + ], + 'tig' => [ + 'code' => 'tig', + 'dir' => 'ltr', + 'name' => 'Tigré', + 'base' => 'tig', + 'short_name' => 'TIG', + ], + 'tig-TIG' => [ + 'code' => 'tig-TIG', + 'dir' => 'ltr', + 'name' => 'Tigré', + 'base' => 'tig', + 'short_name' => 'TIG (TIG)', + ], + 'tk' => [ + 'code' => 'tk', + 'dir' => 'ltr', + 'name' => 'Түркмен', + 'base' => 'tk', + 'short_name' => 'TK', + ], + 'tk-TK' => [ + 'code' => 'tk-TK', + 'dir' => 'ltr', + 'name' => 'Түркмен', + 'base' => 'tk', + 'short_name' => 'TK (TK)', + ], + 'tlh' => [ + 'code' => 'tlh', + 'dir' => 'ltr', + 'name' => 'tlhIngan Hol', + 'base' => 'tlh', + 'short_name' => 'TLH', + ], + 'tlh-TLH' => [ + 'code' => 'tlh-TLH', + 'dir' => 'ltr', + 'name' => 'tlhIngan Hol', + 'base' => 'tlh', + 'short_name' => 'TLH (TLH)', + ], + 'tr' => [ + 'code' => 'tr', + 'dir' => 'ltr', + 'name' => 'Türkçe', + 'base' => 'tr', + 'short_name' => 'TR', + ], + 'tr-TR' => [ + 'code' => 'tr-TR', + 'dir' => 'ltr', + 'name' => 'Türkçe', + 'base' => 'tr', + 'short_name' => 'TR (TR)', + ], + 'uk' => [ + 'code' => 'uk', + 'dir' => 'ltr', + 'name' => 'Українська', + 'base' => 'uk', + 'short_name' => 'UK', + ], + 'uk-UA' => [ + 'code' => 'uk-UA', + 'dir' => 'ltr', + 'name' => 'Українська', + 'base' => 'uk', + 'short_name' => 'UK (UA)', + ], + 've' => [ + 'code' => 've', + 'dir' => 'ltr', + 'name' => 'Tshivenda', + 'base' => 've', + 'short_name' => 'VE', + ], + 've-VE' => [ + 'code' => 've-VE', + 'dir' => 'ltr', + 'name' => 'Tshivenda', + 'base' => 've', + 'short_name' => 'VE (VE)', + ], + 'vi' => [ + 'code' => 'vi', + 'dir' => 'ltr', + 'name' => 'Tiếng Việt', + 'base' => 'vi', + 'short_name' => 'VI', + ], + 'vi-VN' => [ + 'code' => 'vi-VN', + 'dir' => 'ltr', + 'name' => 'Tiếng Việt', + 'base' => 'vi', + 'short_name' => 'VI (VN)', + ], + 'vo' => [ + 'code' => 'vo', + 'dir' => 'ltr', + 'name' => 'Volapük', + 'base' => 'vo', + 'short_name' => 'VO', + ], + 'vo-VO' => [ + 'code' => 'vo-VO', + 'dir' => 'ltr', + 'name' => 'Volapük', + 'base' => 'vo', + 'short_name' => 'VO (VO)', + ], + 'wa' => [ + 'code' => 'wa', + 'dir' => 'ltr', + 'name' => 'Walon', + 'base' => 'wa', + 'short_name' => 'WA', + ], + 'wa-WA' => [ + 'code' => 'wa-WA', + 'dir' => 'ltr', + 'name' => 'Walon', + 'base' => 'wa', + 'short_name' => 'WA (WA)', + ], + 'xh' => [ + 'code' => 'xh', + 'dir' => 'ltr', + 'name' => 'isiXhosa', + 'base' => 'xh', + 'short_name' => 'XH', + ], + 'xh-XH' => [ + 'code' => 'xh-XH', + 'dir' => 'ltr', + 'name' => 'isiXhosa', + 'base' => 'xh', + 'short_name' => 'XH (XH)', + ], + 'yi' => [ + 'code' => 'yi', + 'dir' => 'rtl', + 'name' => 'ייִדיש', + 'base' => 'yi', + 'short_name' => 'YI', + ], + 'yi-YI' => [ + 'code' => 'yi-YI', + 'dir' => 'rtl', + 'name' => 'ייִדיש', + 'base' => 'yi', + 'short_name' => 'YI (YI)', + ], + 'zh' => [ + 'code' => 'zh', + 'dir' => 'ltr', + 'name' => '中文', + 'base' => 'zh', + 'short_name' => 'ZH', + ], + // hans + 'zh-CN' => [ + 'code' => 'zh-CN', + 'dir' => 'ltr', + 'name' => '简体中文', + 'base' => 'zh', + 'short_name' => 'ZH (CN)', + ], + 'zh-HK' => [ + 'code' => 'zh-HK', + 'dir' => 'ltr', + 'name' => '中文 (香港)', + 'base' => 'zh', + 'short_name' => 'ZH (HK)', + ], + 'zh-SG' => [ + 'code' => 'zh-SG', + 'dir' => 'ltr', + 'name' => '中文 (新加坡)', + 'base' => 'zh', + 'short_name' => 'ZH (SG)', + ], + // hant + 'zh-TW' => [ + 'code' => 'zh-TW', + 'dir' => 'ltr', + 'name' => '繁體中文', + 'base' => 'zh', + 'short_name' => 'ZH (TW)', + ], + 'zu' => [ + 'code' => 'zu', + 'dir' => 'ltr', + 'name' => 'isiZulu', + 'base' => 'zu', + 'short_name' => 'ZU', + ], + 'zu-ZU' => [ + 'code' => 'zu-ZU', + 'dir' => 'ltr', + 'name' => 'isiZulu', + 'base' => 'zu', + 'short_name' => 'ZU (ZU)', + ], + ]; + } +} diff --git a/app/src/Legacy/Classes/Listing.php b/app/src/Legacy/Classes/Listing.php new file mode 100644 index 0000000..bcdf61a --- /dev/null +++ b/app/src/Legacy/Classes/Listing.php @@ -0,0 +1,1057 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use BadMethodCallException; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\ends_with; +use function Chevereto\Legacy\G\forward_slash; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_route_name; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\missing_values_to_exception; +use function Chevereto\Vars\env; +use function Chevereto\Vars\request; +use DateTime; +use Exception; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use RecursiveRegexIterator; +use RegexIterator; + +class Listing +{ + public string $query; + + private int $offset; + + public array $seek; + + private array $params_hidden; + + private int $limit; + + private string $sort_type; + + private string $sort_order; + + private int $owner; + + private array $requester = []; + + private $privacy; + + private int $output_count = 0; + + private bool $has_page_next; + + public string $seekEnd = ''; + + public string $seekStart = ''; + + public int $count = 0; + + public bool $nsfw; + + private array $output_assoc = []; + + private bool $sfw = true; + + private bool $has_page_prev; + + private int $isApproved = 1; + + public static array $valid_types = ['images', 'albums', 'users']; + + public static array $valid_sort_types = ['date_gmt', 'size', 'views', 'id', 'image_count', 'name', 'title', 'username']; + + public array $output = []; + + private array $binds = []; + + private string $type; + + private int $category; + + private string $where = ''; + + private array|bool $tools = false; + + private bool $reverse = false; + + private ?string $outputTpl; + + public function outputCount(): int + { + return $this->output_count; + } + + public function outputAssoc(): array + { + return $this->output_assoc; + } + + public function setOutputTpl(string $tpl): void + { + $this->outputTpl = $tpl; + } + + public function outputTpl(): ?string + { + return $this->outputTpl ?? null; + } + + public function debugQuery() + { + if (!isset($this->query)) { + throw new BadMethodCallException(); + } + $params = []; + foreach ($this->binds as $bind) { + $params[] = $bind['param'] . '=' . $bind['value']; + } + + return '# Dumped listing query' + . "\n" . $this->query + . "\n\n# Dumped query params" + . "\n" . implode("\n", $params); + } + + public function limit(): int + { + return $this->limit; + } + + // Sets the `image_is_approved` flag + public function setApproved($bool) + { + $this->isApproved = $bool; + } + + // Sets the type of resource being listed + public function setType($type) + { + $this->type = $type; + } + + // Sets the offset (sql> LIMIT offset,limit) + public function setOffset($offset) + { + $this->offset = (int) $offset; + } + + public function sfw(): bool + { + return $this->sfw; + } + + public function has_page_prev(): bool + { + return $this->has_page_prev; + } + + public function has_page_next(): bool + { + return $this->has_page_next; + } + + // Sets ID to seek next-to + public function setSeek(string $seek) + { + if (strpos($seek, '.') !== false) { + $explode = explode('.', $seek); + $copy = $explode; + end($explode); + $last = key($explode); + unset($copy[$last]); + $array = [ + 0 => implode('.', $copy), + 1 => decodeID($explode[$last]) + ]; + $this->seek = $array; + + return; + } + $decodeID = decodeID($seek); + if (ctype_digit(strval($decodeID))) { + $this->seek = ['0000-01-01 00:00:00', $decodeID]; + } + } + + public function setReverse($bool) + { + $this->reverse = $bool; + } + + public function setParamsHidden($params) + { + $this->params_hidden = $params; + } + + // Sets the limit (sql> LIMIT offset,limit) + public function setLimit($limit) + { + $this->limit = (int) $limit; + } + + // Sets the sort type (sql> SORT BY sort_type) + public function setSortType($sort_type) + { + $this->sort_type = $sort_type == 'date' ? 'date_gmt' : $sort_type; + } + + // Sets the sort order (sql> DESC | ASC) + public function setSortOrder($sort_order) + { + $this->sort_order = $sort_order; + } + + // Sets the WHERE clause + public function setWhere(string $where) + { + $this->where = $where; + } + + public function setOwner(int $user_id) + { + $this->owner = $user_id; + } + + public function setRequester(array $user) + { + $this->requester = $user; + } + + public function setCategory($category) + { + $this->category = (int) $category; + } + + public function setPrivacy($privacy) + { + $this->privacy = $privacy; + } + + public function setTools(array|bool $flag) + { + $this->tools = $flag; + } + + public function bind($param, $value, $type = null) + { + $this->binds[] = [ + 'param' => $param, + 'value' => $value, + 'type' => $type + ]; + } + + private function getWhere(string $where): string + { + return ($this->where == '' ? 'WHERE ' : ($this->where . ' AND ')) . $where; + } + + /** + * Do the thing + * @Exeption 4xx + */ + public function exec() + { + $this->validateInput(); + $tables = DB::getTables(); + if ($this->requester === []) { + $this->setRequester(Login::getUser()); + } + if ($this->type == 'images') { + $this->where = $this->getWhere('image_is_approved = ' . (int) $this->isApproved); + } + if (!(bool) env()['CHEVERETO_ENABLE_USERS']) { + $userId = getSetting('website_mode_personal_uid') ?? 0; + $this->where = match ($this->type) { + 'images' => $this->getWhere('image_user_id=' . $userId), + 'albums' => $this->getWhere('album_user_id=' . $userId), + default => $this->where + }; + } + $joins = [ + 'images' => [ + 'storages' => 'LEFT JOIN ' . $tables['storages'] . ' ON ' . $tables['images'] . '.image_storage_id = ' . $tables['storages'] . '.storage_id', + 'users' => 'LEFT JOIN ' . $tables['users'] . ' ON ' . $tables['images'] . '.image_user_id = ' . $tables['users'] . '.user_id', + 'albums' => 'LEFT JOIN ' . $tables['albums'] . ' ON ' . $tables['images'] . '.image_album_id = ' . $tables['albums'] . '.album_id', + 'categories' => 'LEFT JOIN ' . $tables['categories'] . ' ON ' . $tables['images'] . '.image_category_id = ' . $tables['categories'] . '.category_id', + ], + 'users' => [], + 'albums' => [ + 'users' => 'LEFT JOIN ' . $tables['users'] . ' ON ' . $tables['albums'] . '.album_user_id = ' . $tables['users'] . '.user_id' + ] + ]; + if ($this->type == 'users' && $this->sort_type == 'views') { + $this->sort_type = 'content_views'; + } + if (isset($this->params_hidden)) { + $emptyTypeClauses['users'][] = 'user_image_count > 0 OR user_avatar_filename IS NOT NULL OR user_background_filename IS NOT NULL'; + if ($this->sort_type == 'views') { + $emptyTypeClauses['albums'][] = 'album_views > 0'; + $emptyTypeClauses['images'][] = 'image_views > 0'; + $emptyTypeClauses['users'][] = 'user_content_views > 0'; + } + if ($this->sort_type == 'likes') { + $emptyTypeClauses['albums'][] = 'album_likes > 0'; + $emptyTypeClauses['images'][] = 'image_likes > 0'; + $emptyTypeClauses['users'][] = 'user_likes > 0'; + } + if ($this->type == 'albums') { + if (isset($this->params_hidden['album_min_image_count']) && $this->params_hidden['album_min_image_count'] > 0) { + $whereClauses[] = sprintf('album_image_count >= %d', $this->params_hidden['album_min_image_count']); + } else { + $emptyTypeClauses['albums'][] = 'album_image_count > 0'; + } + } + if (array_key_exists($this->type, $emptyTypeClauses) && isset($this->params_hidden['hide_empty']) && $this->params_hidden['hide_empty'] == 1) { + $whereClauses[] = '(' . implode(') AND (', $emptyTypeClauses[$this->type]) . ')'; + } + if (isset($this->params_hidden['hide_banned']) && $this->params_hidden['hide_banned'] == 1) { + $whereClauses[] = '(' . $tables['users'] . '.user_status IS NULL OR ' . $tables['users'] . '.user_status <> "banned"' . ')'; + } + if ($this->type == 'images' && isset($this->params_hidden['is_animated']) && $this->params_hidden['is_animated'] == 1) { + $whereClauses[] = 'image_is_animated = 1'; + } + if (!empty($whereClauses)) { + $whereClauses = implode(' AND ', $whereClauses); + $this->where = $this->getWhere($whereClauses); + } + } + $type_singular = DB::getFieldPrefix($this->type); + if ($this->where !== '') { + $where_clauses = explode(' ', str_ireplace('WHERE ', '', $this->where)); + $where_arr = []; + foreach ($where_clauses as $clause) { + if (!preg_match('/\./', $clause)) { + $field_prefix = explode('_', $clause, 2)[0]; // field prefix (singular) + $table = DB::getTableFromFieldPrefix($field_prefix); // image -> chv_images + $table_prefix = env()['CHEVERETO_DB_TABLE_PREFIX']; + $table_key = empty($table_prefix) ? $table : str_replace_first($table_prefix, '', $table); + $where_arr[] = array_key_exists($table_key, $tables) ? $table . '.' . $clause : $clause; + } else { + $where_arr[] = $clause; // Let it be + } + } + $this->where = 'WHERE ' . implode(' ', $where_arr); + } + if (version_compare(Settings::get('chevereto_version_installed'), '3.7.0', '>=')) { + // Dynamic since v3.9.0 + $likes_join = 'LEFT JOIN ' . $tables['likes'] . ' ON ' . $tables['likes'] . '.like_content_type = "' . $type_singular . '" AND ' . $tables['likes'] . '.like_content_id = ' . $tables[$this->type] . '.' . $type_singular . '_id'; + if (preg_match('/like_user_id/', $this->where)) { + $joins[$this->type]['likes'] = $likes_join; + } elseif ($this->requester !== [] && $this->type !== 'users') { + $joins[$this->type]['likes'] = $likes_join . ' AND ' . $tables['likes'] . '.like_user_id = ' . $this->requester['id']; + } + $follow_tpl_join = 'LEFT JOIN ' . $tables['follows'] . ' ON ' . $tables['follows'] . '.%FIELD = ' . $tables[$this->type] . '.' . ($this->type == 'users' ? 'user' : DB::getFieldPrefix($this->type) . '_user') . '_id'; + if (preg_match('/follow_user_id/', $this->where)) { + $joins[$this->type]['follows'] = strtr($follow_tpl_join, ['%FIELD' => 'follow_followed_user_id']); + } + if (preg_match('/follow_followed_user_id/', $this->where)) { + $joins[$this->type]['follows'] = strtr($follow_tpl_join, ['%FIELD' => 'follow_user_id']); + } + } + // Add ID reservation clause + if ($this->type == 'images') { + $res_id_where = 'image_size > 0'; + if ($this->where == '') { + $this->where = 'WHERE ' . $res_id_where; + } else { + $this->where .= ' AND ' . $res_id_where; + } + } + // Add category clause + if ($this->type == 'images' && isset($this->category)) { + $category_qry = $tables['images'] . '.image_category_id = ' . $this->category; + if ($this->where == '') { + $this->where = 'WHERE ' . $category_qry; + } else { + $this->where .= ' AND ' . $category_qry; + } + } + // Privacy layer + if ( + !($this->requester['is_admin'] ?? false) + && in_array($this->type, ['images', 'albums', 'users']) + && ( + (!isset($this->owner) || $this->requester === []) || $this->owner !== $this->requester['id'] + ) + ) { + if ($this->where == '') { + $this->where = 'WHERE '; + } else { + $this->where .= ' AND '; + } + $nsfw_off = $this->requester !== [] + ? !$this->requester['show_nsfw_listings'] + : !getSetting('show_nsfw_in_listings'); + switch ($this->type) { + case 'images': + if ($nsfw_off) { + $nsfw_off_clause = $tables['images'] . '.image_nsfw = 0'; + if ($this->requester !== []) { + $this->where .= '(' . $nsfw_off_clause . ' OR (' . $tables['images'] . '.image_nsfw = 1 AND ' . $tables['images'] . '.image_user_id = ' . $this->requester['id'] . ')) AND '; + } else { + $this->where .= $nsfw_off_clause . ' AND '; + } + } + + break; + case 'users': + $this->where .= $tables['users'] . '.user_is_private = 0'; + + break; + } + if ($this->type !== 'users') { + if (getSetting('website_privacy_mode') == 'public' || $this->privacy == 'private_but_link' || getSetting('website_content_privacy_mode') == 'default') { + $this->where .= '(' . $tables['albums'] . '.album_privacy NOT IN'; + $privacy_modes = ['private', 'private_but_link', 'custom']; + if ($this->type === 'images') { + $privacy_modes[] = 'password'; + } + if (isset($this->privacy) && in_array($this->privacy, $privacy_modes)) { + unset($privacy_modes[array_search($this->privacy, $privacy_modes)]); + } + $this->where .= " (" . "'" . implode("','", $privacy_modes) . "'" . ") "; + $this->where .= "OR " . $tables['albums'] . '.album_privacy IS NULL'; + if ($this->requester !== []) { + $this->where .= ' OR ' . $tables['albums'] . '.album_user_id =' . $this->requester['id']; + } + $this->where .= ')'; + } else { + $injected_requester = $this->requester['id'] ?? '0'; + $this->where .= '(' . $tables['albums'] . '.album_user_id = ' . $injected_requester; + $this->where .= $this->type == 'albums' ? ')' : (' OR ' . $tables['images'] . '.image_user_id = ' . $injected_requester . ')'); + } + } + } + $sort_field = $type_singular . '_' . $this->sort_type; + $key_field = $type_singular . '_id'; + if (isset($this->seek)) { + if (ends_with('date_gmt', $this->sort_type)) { + $d = DateTime::createFromFormat('Y-m-d H:i:s', $this->seek[0]); + if (!$d || $d->format('Y-m-d H:i:s') !== $this->seek[0]) { + $this->seek = ['0000-01-01 00:00:00', $this->seek[1]]; + } + } + if ($this->where == '') { + $this->where = 'WHERE '; + } else { + $this->where .= ' AND '; + } + if ($this->reverse) { + $this->sort_order = $this->sort_order == 'asc' ? 'desc' : 'asc'; + } + $signo = $this->sort_order == 'desc' ? '<=' : '>='; + if ($this->sort_type == 'id') { + $this->where .= $sort_field . ' ' . $signo . ' :seek'; + $this->bind(':seek', $this->seek); + } else { + $signo = $this->sort_order == 'desc' ? '<' : '>'; + $this->where .= '((' . $sort_field . ' ' . $signo . ' :seekSort) OR (' . $sort_field . ' = :seekSort AND ' . $key_field . ' ' . $signo . '= :seekKey))'; + $this->bind(':seekSort', $this->seek[0]); + $this->bind(':seekKey', $this->seek[1]); + } + } + if ($this->where !== '') { + $this->where = "\n" . $this->where; + } + $sort_order = strtoupper($this->sort_order); + $table_order = DB::getTableFromFieldPrefix($type_singular); + $order_by = "\n" . 'ORDER BY '; + if (in_array($this->sort_type, ['name', 'title', 'username'])) { + $order_by .= 'CAST(' . $table_order . '.' . $sort_field . ' as CHAR) ' . $sort_order . ', '; + $order_by .= 'LENGTH(' . $table_order . '.' . $sort_field . ') ' . $sort_order . ', '; + } + $order_by .= '' . $table_order . '.' . $sort_field . ' ' . $sort_order; + if ($this->sort_type != 'id') { + $order_by .= ', ' . $table_order . '.' . $key_field . ' ' . $sort_order; + } + $limit = ''; + if ($this->limit > 0) { + $limit = "\n" . 'LIMIT ' . ($this->limit + 1); // +1 allows to fetch "one extra" to detect prev/next pages + } + $base_table = $tables[$this->type]; + // Normal query + if (empty($joins[$this->type])) { + $query = 'SELECT * FROM ' . $base_table; + $query .= $this->where . $order_by . $limit; + // Alternative query + } else { + if ($this->where !== '') { + preg_match_all('/' . env()['CHEVERETO_DB_TABLE_PREFIX'] . '([\w_]+)\./', $this->where, $where_tables); + $where_tables = array_values(array_diff(array_unique($where_tables[1]), [$this->type])); + } else { + $where_tables = false; + } + if ($where_tables !== []) { + $join_tables = $where_tables; + } else { + reset($joins); + $join_tables = [key($joins)]; + } + $join = ''; + if (is_iterable($join_tables)) { + foreach ($join_tables as $join_table) { + if (!empty($joins[$this->type][$join_table])) { + $join .= "\n" . $joins[$this->type][$join_table]; + unset($joins[$this->type][$join_table]); + } + } + } + // Get rid of the original Exif data (for listings) + $null_db = $this->type == 'images' ? ', NULL as image_original_exifdata ' : null; + $query = 'SELECT * ' . $null_db . 'FROM (SELECT * FROM ' . $base_table . $join . $this->where . $order_by . $limit . ') ' . $base_table; + if (!empty($joins[$this->type])) { + $query .= "\n" . implode("\n", $joins[$this->type]); + } + $query .= $order_by; + } + $db = DB::getInstance(); + $this->query = $query; + $db->query($this->query); + foreach ($this->binds as $bind) { + $db->bind($bind['param'], $bind['value'], $bind['type'] ?? null); + } + $this->output = $db->fetchAll(); + $this->output_count = $db->rowCount(); + $this->has_page_next = $db->rowCount() > $this->limit; + $this->has_page_prev = $this->offset > 0; + if ($this->reverse) { + $this->output = array_reverse($this->output); + } + $start = current($this->output); + $end = end($this->output); + $seekEnd = $end[$sort_field] ?? ''; + $seekStart = $start[$sort_field] ?? ''; + if ($this->sort_type == 'id') { + $seekEnd = encodeID((int) $seekEnd); + $seekStart = encodeID((int) $seekStart); + } else { + if (is_array($end)) { + $seekEnd .= '.' . encodeID((int) $end[$key_field]); + } + if (is_array($start)) { + $seekStart .= '.' . encodeID((int) $start[$key_field]); + } + } + if (!$this->has_page_next) { + $seekEnd = ''; + } + if (!$this->has_page_prev) { + $seekStart = ''; + } + $this->seekEnd = $seekEnd; + $this->seekStart = $seekStart; + if ($db->rowCount() > $this->limit) { + array_pop($this->output); + } + $this->output = safe_html($this->output); + $this->count = count($this->output); + $this->nsfw = false; + $this->output_assoc = []; + $formatfn = 'Chevereto\Legacy\Classes\\' . ucfirst(substr($this->type, 0, -1)); + foreach ($this->output as $k => $v) { + $val = $formatfn::formatArray($v); + $this->output_assoc[] = $val; + if (!$this->nsfw && isset($val['nsfw']) && $val['nsfw']) { + $this->nsfw = true; + } + } + if ($this->type === 'albums') { + $this->nsfw = true; + } + $this->sfw = !$this->nsfw; + Handler::setCond('show_viewer_zero', isset(request()['viewer']) && $this->count > 0); + if ($this->type == 'albums' && $this->output !== []) { + $coverTpl = '(SELECT * + FROM %tImages% + LEFT JOIN %tStorages% ON %tImages%.image_storage_id = %tStorages%.storage_id + WHERE image_id = (SELECT album_cover_id FROM %tAlbums% WHERE album_id = %ALBUM_ID%) + AND %tImages%.image_is_approved = 1 + LIMIT 1)'; + $album_cover_qry_tpl = strtr($coverTpl, [ + '%tImages%' => $tables['images'], + '%tStorages%' => $tables['storages'], + '%tAlbums%' => $tables['albums'], + ]); + $albums_cover_qry_arr = []; + $albums_mapping = []; + foreach ($this->output as $k => &$album) { + $album['album_id'] ??= ''; + // @phpstan-ignore-next-line + $album['album_image_count'] ??= 0; + // @phpstan-ignore-next-line + if ($album['album_image_count'] < 0) { + $album['album_image_count'] = 0; + } + $album['album_image_count_label'] = _n('image', 'images', $album['album_image_count']); + $albums_cover_qry_arr[] = str_replace( + '%ALBUM_ID%', + $album['album_id'], + $album_cover_qry_tpl + ); + $albums_mapping[$album['album_id']] = $k; + } + $albums_slice_qry = implode("\n" . 'UNION ALL ' . "\n", $albums_cover_qry_arr); + $db->query($albums_slice_qry); + $albums_slice = $db->fetchAll(); + if (!empty($albums_slice)) { + foreach ($albums_slice as $slice) { + $album_key = $albums_mapping[$slice['image_album_id']] ?? null; + if ($album_key === null) { + continue; + } + if (!isset($this->output[$album_key]['album_images_slice'])) { + $this->output[$album_key]['album_images_slice'] = []; + } + $this->output[$album_key]['album_images_slice'][] = $slice; + } + } + } + } + + public static function getTabs($args = [], $autoParams = [], $expanded = false) + { + $default = [ + 'list' => true, + 'REQUEST' => request(), + 'listing' => 'explore', + 'basename' => get_route_name(), + 'tools' => true, + 'tools_available' => [], + ]; + $args = array_merge($default, $args); + $semantics = [ + 'recent' => [ + 'icon' => 'fas fa-history', + 'label' => _s('Recent'), + 'content' => 'all', + 'sort' => 'date_desc', + ], + 'trending' => [ + 'icon' => 'fas fa-poll', + 'label' => _s('Trending'), + 'content' => 'all', + 'sort' => 'views_desc', + ], + ]; + // Criteria -> images | albums | users + // Criteria -> [CONTENT TABS] + $criterias = [ + 'top-users' => [ + 'icon' => 'fas fa-crown', + 'label' => _s('Top'), + 'sort' => 'image_count_desc', + 'content' => 'users', + ], + 'most-recent' => [ + 'icon' => $semantics['recent']['icon'], + 'label' => _s('Most recent'), + 'sort' => 'date_desc', + 'content' => 'all', + ], + 'most-oldest' => [ + 'icon' => 'fas fa-fast-backward', + 'label' => _s('Oldest'), + 'sort' => 'date_asc', + 'content' => 'all', + ], + 'most-viewed' => [ + 'icon' => $semantics['trending']['icon'], + 'label' => _s('Most viewed'), + 'sort' => 'views_desc', + 'content' => 'all', + ], + ]; + if (Settings::get('enable_likes')) { + $semantics['popular'] = [ + 'icon' => 'fas fa-heart', + 'label' => _s('Popular'), + 'content' => 'all', + 'sort' => 'likes_desc', + ]; + $criterias['most-liked'] = [ + 'icon' => 'fas fa-heart', + 'label' => _s('Most liked'), + 'sort' => 'likes_desc', + 'content' => 'all', + ]; + } + $criterias['album-az-asc'] = [ + 'icon' => 'fas fa-sort-alpha-down', + 'label' => 'AZ', + 'sort' => 'name_asc', + 'content' => 'albums', + ]; + $criterias['image-az-asc'] = [ + 'icon' => 'fas fa-sort-alpha-down', + 'label' => 'AZ', + 'sort' => 'title_asc', + 'content' => 'images', + ]; + $criterias['user-az-asc'] = [ + 'icon' => 'fas fa-sort-alpha-down', + 'label' => 'AZ', + 'sort' => 'username_asc', + 'content' => 'users', + ]; + if (isset($args['order'])) { + $criterias = array_merge(array_flip($args['order']), $criterias); + } + $listings = [ + 'explore' => [ + 'label' => _s('Explore'), + 'content' => 'images', + ], + 'animated' => [ + 'label' => _s('Animated'), + 'content' => 'images', + 'where' => 'image_is_animated = 1', + 'semantic' => true, + ], + 'search' => [ + 'label' => _s('Search'), + 'content' => 'all', + ], + 'users' => [ + 'icon' => 'fas fa-users', + 'label' => _s('People'), + 'content' => 'users', + ], + 'images' => [ + 'icon' => 'fas fa-image', + 'label' => _s('Images'), + 'content' => 'images', + ], + 'albums' => [ + 'icon' => 'fas fa-images', + 'label' => _s('Albums'), + 'content' => 'albums', + ], + ]; + $listings = array_merge($listings, $semantics); + $parameters = []; + if (isset($args['listing'], $listings[$args['listing']])) { + $parameters = $listings[$args['listing']]; + } + if (isset($args['exclude_criterias']) && is_array($args['exclude_criterias'])) { + foreach ($args['exclude_criterias'] as $exclude) { + if (array_key_exists($exclude, $criterias)) { + unset($criterias[$exclude]); + } + } + } + // Content -> most recent | oldest | most viewed | most liked + // Content -> [CRITERIA TABS] + $contents = [ + 'images' => [ + 'icon' => $listings['images']['icon'], + 'label' => _s('Images'), + ], + 'albums' => [ + 'icon' => $listings['albums']['icon'], + 'label' => _s('Albums'), + ], + ]; + if ((bool) env()['CHEVERETO_ENABLE_USERS']) { + $contents['users'] = [ + 'icon' => $listings['users']['icon'], + 'label' => _s('Users'), + ]; + } + $i = 0; + $currentKey = null; + if (!isset($parameters['content'])) { + $parameters['content'] = ''; + } + $iterate = ($parameters['content'] == 'all' ? $contents : (isset($parameters['semantic']) ? $semantics : $criterias)); + $tabs = []; + foreach ($iterate as $k => $v) { + if ($parameters['content'] == 'all') { + $content = $k; + $id = 'list-' . $args['listing'] . '-' . $content; // list-popular-images + $sort = $parameters['sort'] ?? 'date_desc'; + } else { + $content = $parameters['content']; + if ($v['content'] !== 'all' && $v['content'] !== $content) { + continue; + } + $id = 'list-' . $k; // list-most-oldest + $sort = $v['sort']; + } + if (!$content) { + $content = 'images'; // explore + } + $basename = $args['basename']; + $default_params = [ + 'list' => $content, + 'sort' => $sort, + 'page' => '1', + ]; + $params = $args['params'] ?? $default_params; + if (isset($args['params_remove_keys'])) { + foreach ((array) $args['params_remove_keys'] as $key) { + unset($params[$key]); + } + } + if (isset($args['params']) && is_array($args['params']) && array_key_exists('q', $args['params']) && $args['listing'] == 'search') { + $args['params_hidden']['list'] = $content; + $basename .= '/' . $content; + } + if (isset($args['params_hidden'])) { + foreach (array_keys((array) $args['params_hidden']) as $kk) { + if (array_key_exists($kk, $params)) { + unset($params[$kk]); + } + } + } + $http_build_query = http_build_query($params); + $url = get_base_url($basename . '/?' . $http_build_query); + $current = isset($args['REQUEST'], $args['REQUEST']['sort']) ? $args['REQUEST']['sort'] == ($v['sort'] ?? false) : false; + if ($i == 0 && !$current) { + $current = !isset($args['REQUEST']['sort']); + } + if ($current && is_null($currentKey)) { + $currentKey = $i; + } + $tab = [ + 'icon' => $v['icon'] ?? null, + 'list' => (bool) $args['list'], + 'tools' => $content == 'users' ? false : (bool) $args['tools'], + 'tools_available' => $args['tools_available'], + 'label' => $v['label'], + 'id' => $id, + 'params' => $http_build_query, + 'current' => false, + 'type' => $content, + 'url' => $url + ]; + if ($args['tools_available'] && !Handler::cond('allowed_to_delete_content') && array_key_exists('delete', $args['tools_available'])) { + unset($args['tools_available']['delete']); + } + if ($args['tools_available'] == null) { + unset($tab['tools_available']); + } + if (isset($args['params_hidden'])) { + $tab['params_hidden'] = http_build_query($args['params_hidden']); + } + $tabs[] = $tab; + unset($id, $params, $basename, $http_build_query, $content, $current); + $i++; + } + if (is_null($currentKey)) { + $currentKey = 0; + if ($parameters['content'] == 'all') { + foreach ($tabs as $k => &$v) { + if (isset($args['REQUEST']['list']) && $v['type'] == $args['REQUEST']['list']) { + $currentKey = $k; + + break; + } + } + } + } + $tabs[$currentKey]['current'] = 1; + self::fillCurrentTabPeekSeek($tabs, $currentKey, $autoParams); + if ($expanded) { + return ['tabs' => $tabs, 'currentKey' => $currentKey]; + } + + return $tabs; + } + + public static function fillCurrentTabPeekSeek(array &$tabs, $currentKey, array $autoParams): void + { + foreach (['peek', 'seek'] as $pick) { + $picked = $autoParams[$pick] ?? null; + if (isset($picked)) { + $pickedString = "&$pick=" . urlencode($picked); + $tabs[$currentKey]['params'] .= $pickedString; + $tabs[$currentKey]['url'] .= $pickedString; + + break; + } + } + } + + /** + * validate_input aka "first stage validation" + * This checks for valid input source data before exec + * @Exception 1XX + */ + protected function validateInput() + { + self::setValidSortTypes(); + if (empty($this->offset)) { + $this->offset = 0; + } + $check_missing = ['type', 'offset', 'limit', 'sort_type', 'sort_order']; + missing_values_to_exception($this, Exception::class, $check_missing, 600); + if (!in_array($this->type, self::$valid_types)) { + throw new Exception('Invalid $type "' . $this->type . '"', 610); + } + if ($this->offset < 0 || $this->limit < 0) { + throw new Exception('Limit integrity violation', 621); + } + if (!in_array($this->sort_type, self::$valid_sort_types)) { + throw new Exception('Invalid $sort_type "' . $this->sort_type . '"', 630); + } + if (!preg_match('/^(asc|desc)$/', $this->sort_order)) { + throw new Exception('Invalid $sort_order "' . $this->sort_order . '"', 640); + } + } + + protected static function setValidSortTypes() + { + if (getSetting('enable_likes') && !in_array('likes', self::$valid_sort_types)) { + self::$valid_sort_types[] = 'likes'; + } + } + + public function htmlOutput($tpl_list = null) + { + if (!is_array($this->output)) { + return; + } + if (is_null($tpl_list)) { + $tpl_list = $this->type ?: 'images'; + } + $directory = new RecursiveDirectoryIterator(PATH_PUBLIC_LEGACY_THEME . 'tpl_list_item/'); + $iterator = new RecursiveIteratorIterator($directory); + $regex = new RegexIterator($iterator, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH); + $list_item_template = []; + foreach ($regex as $file) { + $file = forward_slash($file[0]); + $key = preg_replace('/\\.[^.\\s]{3,4}$/', '', str_replace(PATH_PUBLIC_LEGACY_THEME, '', $file)); + $override_file = str_replace_first(PATH_PUBLIC_LEGACY_THEME, PATH_PUBLIC_LEGACY_THEME . 'overrides/', $file); + if (is_readable($override_file)) { + $file = $override_file; + } + ob_start(); + require $file; + $file_get_contents = ob_get_contents(); + ob_end_clean(); + $list_item_template[$key] = $file_get_contents; + } + $html_output = ''; + $tpl_list = preg_replace('/s$/', '', $tpl_list); + if (function_exists('get_peafowl_item_list')) { + $render = 'get_peafowl_item_list'; + } else { + $render = 'Chevereto\Legacy\get_peafowl_item_list'; + } + $tools = $this->tools ?: []; + $requester = Login::getUser(); + foreach ($this->output as $row) { + switch ($tpl_list) { + case 'image': + case 'user/image': + case 'album/image': + default: // key thing here... + $Class = Image::class; + + break; + case 'album': + case 'user/album': + $Class = Album::class; + + break; + case 'user': + case 'user/user': + $Class = User::class; + + break; + } + $item = $Class::formatArray($row); + $html_output .= $render($item, $list_item_template, $tools, $tpl_list, $requester); + } + + return $html_output; + } + + public static function getAlbumHtml($album_id, $template = 'user/albums') + { + $listing = new Listing(); + $listing->setType('albums'); + $listing->setOffset(0); + $listing->setLimit(1); + $listing->setSortType('date'); + $listing->setSortOrder('desc'); + $listing->setWhere('WHERE album_id=:album_id'); + $listing->bind(':album_id', $album_id); + $listing->exec(); + + return $listing->htmlOutput($template); + } + + public static function getParams($request = [], bool $json_call = false) + { + self::setValidSortTypes(); + $items_per_page = getSetting('listing_items_per_page'); + $listing_pagination_mode = getSetting('listing_pagination_mode'); + $params = []; + $params['offset'] = 0; + $params['items_per_page'] = $items_per_page; + if (!$json_call && $listing_pagination_mode == 'endless') { + $params['page'] = max((int) ($request['page'] ?? 0), 1); + $params['limit'] = $params['items_per_page'] * $params['page']; + if ($params['limit'] > getSetting('listing_safe_count')) { + $listing_pagination_mode = 'classic'; + Settings::setValue('listing_pagination_mode', $listing_pagination_mode); + } + } + if (isset($request['pagination']) || $listing_pagination_mode == 'classic') { // Static single page display + $params['page'] = empty($request['page']) ? 0 : (int) ($request['page'] ?? 0) - 1; + $params['limit'] = $params['items_per_page']; + $params['offset'] = $params['page'] * $params['limit']; + } + if ($json_call) { + $params = array_merge($params, [ + 'page' => empty($request['page']) ? 0 : $request['page'] - 1, + 'limit' => $items_per_page + ]); + $params['offset'] = $params['page'] * $params['limit'] + ($request['offset'] ?? 0); + } + $default_sort = [ + 0 => 'date', + 1 => 'desc' + ]; + preg_match('/(.*)_(asc|desc)/', $request['sort'] ?? '', $sort_matches); + $params['sort'] = array_slice($sort_matches, 1); + if (count($params['sort']) !== 2) { + $params['sort'] = $default_sort; + } + if (!in_array($params['sort'][0], self::$valid_sort_types)) { + $params['sort'][0] = $default_sort[0]; + } + if (!in_array($params['sort'][1], ['asc', 'desc'])) { + $params['sort'][1] = $default_sort[1]; + } + if (!empty($request['seek'])) { + $params['seek'] = $request['seek']; + } elseif (!empty($request['peek'])) { + $params['seek'] = $request['peek']; + $params['reverse'] = true; + } + $params['page_show'] = empty($request['page']) ? null : (int) $request['page']; + + return $params; + } +} diff --git a/app/src/Legacy/Classes/LocalStorage.php b/app/src/Legacy/Classes/LocalStorage.php new file mode 100644 index 0000000..cedb883 --- /dev/null +++ b/app/src/Legacy/Classes/LocalStorage.php @@ -0,0 +1,133 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\G\is_writable; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\unlinkIfExists; +use Exception; + +class LocalStorage +{ + private string $path; + + private string $realPath; + + private array $deleted = []; + + public function __construct(array $args = []) + { + $this->path = rtrim($args['bucket'], '/') . '/'; + $this->realPath = realpath($this->path) . '/'; + if ($this->realPath === '/') { + $this->realPath = $this->path; + } + $this->assertPath($this->realPath); + } + + public function realPath(): string + { + return $this->realPath; + } + + protected function assertPath(string $path): void + { + if (is_writable($path) === false) { + throw new Exception( + sprintf("Path %s is not writable", $path), + 600 + ); + } + } + + public function put(array $args = []): void + { + // [filename] => photo-1460378150801-e2c95cb65a50.jpg + // [source_file] => /tmp/photo-1460378150801-e2c95cb65a50.jpg + // [path] => /path/sdk/2018/08/18/ + extract($args); + $path ??= ''; + $filename ??= ''; + $source_file ??= ''; + $this->assertPath($path); + $target_filename = $path . $filename; + $target_filename = str_replace('/.\/', '/', $target_filename); + if ($source_file == $target_filename) { + return; + } + $uploaded = copy($source_file, $target_filename); + $errors = error_get_last(); + if ($uploaded == false) { + throw new Exception( + strtr("Can't move source file %source% to %destination%: %message%", [ + '%source%' => $source_file, + '%destination%' => $target_filename, + '%message%' => 'Copy error ' . $errors['type'] . ' > ' . $errors['message'], + ]), + 600 + ); + } + chmod($target_filename, 0644); + clearstatcache(); + } + + public function delete(string $filename): void + { + $filename = $this->getWorkingPath($filename); + if (file_exists($filename) == false) { + return; + } + if (unlinkIfExists($filename) == false) { + throw new Exception("Can't delete file '$filename'", 600); + } + clearstatcache(); + } + + public function deleteMultiple(array $filenames = []): void + { + $this->deleted = []; + foreach ($filenames as $v) { + $this->delete($v); + $this->deleted[] = $v; + } + } + + public function deleted(): array + { + return $this->deleted; + } + + public function mkdirRecursive(string $dirname): void + { + $dirname = $this->getWorkingPath($dirname); + if (is_dir($dirname)) { + return; + } + $path_perms = fileperms($this->realPath); + $old_umask = umask(0); + $make_pathname = mkdir($dirname, $path_perms, true); + chmod($dirname, $path_perms); + umask($old_umask); + if (!$make_pathname) { + throw new Exception('$dirname ' . $dirname . ' is not a dir', 630); + } + } + + protected function getWorkingPath(string $dirname): string + { + if (starts_with('/', $dirname) == false) { // relative thing + return $this->realPath . $dirname; + } + + return realpath($dirname); + } +} diff --git a/app/src/Legacy/Classes/Lock.php b/app/src/Legacy/Classes/Lock.php new file mode 100644 index 0000000..b145d77 --- /dev/null +++ b/app/src/Legacy/Classes/Lock.php @@ -0,0 +1,53 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\G\datetime_add; +use function Chevereto\Legacy\G\datetime_diff; +use function Chevereto\Legacy\G\datetimegmt; + +class Lock +{ + private string $name; + + public function __construct(string $name) + { + $this->name = $name; + } + + public function create(): bool + { + $lock = DB::get('locks', ['name' => $this->name], 'AND', [], 1); + if ($lock !== false) { + $diff = datetime_diff($lock['lock_expires_gmt']); + if ($diff < 0) { + return false; + } + $this->destroy(); + } + $datetime = datetimegmt(); + $insert = DB::insert('locks', [ + 'name' => $this->name, + 'date_gmt' => $datetime, + 'expires_gmt' => datetime_add($datetime, 'PT15S'), + ]); + + return $insert !== false; + } + + public function destroy(): bool + { + DB::delete('locks', ['name' => $this->name]); + + return true; + } +} diff --git a/app/src/Legacy/Classes/Login.php b/app/src/Legacy/Classes/Login.php new file mode 100644 index 0000000..acc96b3 --- /dev/null +++ b/app/src/Legacy/Classes/Login.php @@ -0,0 +1,1191 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\InvalidArgumentException; +use Chevere\Throwable\Exceptions\LogicException; +use Chevereto\Config\Config; +use function Chevereto\Encryption\decryptValues; +use function Chevereto\Encryption\encryptValues; +use function Chevereto\Encryption\hasEncryption; +use function Chevereto\Legacy\check_hashed_token; +use function Chevereto\Legacy\decodeID; +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\is_valid_timezone; +use function Chevereto\Legacy\G\parse_user_agent; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\generate_hashed_token; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\cookie; +use function Chevereto\Vars\cookieVar; +use function Chevereto\Vars\server; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use DateTime; +use DateTimeZone; +use Exception; +use Throwable; + +class Login +{ + protected static array $logged_user = []; + + protected static array $session = []; + + protected static array $providersPriorMacanudo = [ + 'facebook' => [ + 'label' => 'Facebook', + ], + 'google' => [ + 'label' => 'Google', + ], + 'twitter' => [ + 'label' => 'Twitter', + ], + 'vk' => [ + 'label' => 'VK', + ], + ]; + + public const ENCRYPTED_PROVIDER_NAMES = ['key_id', 'key_secret']; + + public const ENCRYPTED_CONNECTION_NAMES = ['token']; + + public const COOKIE = 'KEEP_LOGIN'; + + protected static array $cookies = [ + self::COOKIE => 'cookie', + self::COOKIE . '_AMAZON' => 'cookie_amazon', + self::COOKIE . '_APPLE' => 'cookie_apple', + self::COOKIE . '_BITBUCKET' => 'cookie_bitbucket', + self::COOKIE . '_DISCORD' => 'cookie_discord', + self::COOKIE . '_DRIBBBLE' => 'cookie_dribbble', + self::COOKIE . '_DROPBOX' => 'cookie_dropbox', + self::COOKIE . '_FACEBOOK' => 'cookie_facebook', + self::COOKIE . '_GITHUB' => 'cookie_github', + self::COOKIE . '_GITLAB' => 'cookie_gitlab', + self::COOKIE . '_GOOGLE' => 'cookie_google', + self::COOKIE . '_INSTAGRAM' => 'cookie_instagram', + self::COOKIE . '_LINKEDIN' => 'cookie_linkedin', + self::COOKIE . '_MAILRU' => 'cookie_mailru', + self::COOKIE . '_MEDIUM' => 'cookie_medium', + self::COOKIE . '_ORCID' => 'cookie_orcid', + self::COOKIE . '_ODNOKLASSNIKI' => 'cookie_odnoklassniki', + self::COOKIE . '_QQ' => 'cookie_qq', + self::COOKIE . '_REDDIT' => 'cookie_reddit', + self::COOKIE . '_SPOTIFY' => 'cookie_spotify', + // self::COOKIE . '_STACKEXCHANGE' => 'cookie_stackexchange', + self::COOKIE . '_STEAM' => 'cookie_steam', + self::COOKIE . '_STRAVA' => 'cookie_strava', + self::COOKIE . '_TELEGRAM' => 'cookie_telegram', + self::COOKIE . '_TUMBLR' => 'cookie_tumblr', + self::COOKIE . '_TWITCHTV' => 'cookie_twitchtv', + self::COOKIE . '_TWITTER' => 'cookie_twitter', + self::COOKIE . '_VKONTAKTE' => 'cookie_vkontakte', + self::COOKIE . '_WECHAT' => 'cookie_wechat', + self::COOKIE . '_WORDPRESS' => 'cookie_wordpress', + self::COOKIE . '_YAHOO' => 'cookie_yahoo', + self::COOKIE . '_YANDEX' => 'cookie_yandex', + //DeviantArt + //Patreon + //Paypal + //Pinterest + //Slack + ]; + + protected static bool $isPi; + + protected static bool $isMacanudo; + + public static function isPi(): bool + { + $version = Settings::get('chevereto_version_installed') ?? ''; + + return self::$isPi + ??= version_compare($version, '3.14.0.beta.1', '>='); + } + + public static function isMacanudo(): bool + { + $version = Settings::get('chevereto_version_installed') ?? ''; + + return self::$isMacanudo + ??= ( + $version === '' + ? true + : version_compare($version, '4.0.0-beta.11', '>=') + ); + } + + public static function getSocialCookieName(string $name): string + { + return array_flip(self::$cookies)['cookie_' . $name]; + } + + public static function tryLogin(): void + { + if (self::isPi()) { + self::tryCookies(); + } else { + try { + $login = false; + if (isset(cookie()['KEEP_LOGIN'])) { + $login = self::loginCookiePriorPi('internal'); + } elseif (isset(cookie()['KEEP_LOGIN_SOCIAL'])) { + $login = self::loginCookiePriorPi('social'); + } + if ($login === false && isset(session()['login'])) { + $login = self::login(session()['login']['id']); + } + } catch (Throwable $e) { + self::logoutPrePi(); + + throw new Exception($e->getMessage(), 600, $e); + } + } + } + + public static function addGuestContentToUser(array $user, int $id): void + { + if ($user === []) { + return; + } + foreach (['albums', 'images'] as $table) { + $sessionKey = 'guest_' . $table; + if (!is_array(session()[$sessionKey] ?? null)) { + continue; + } + + try { + $db = DB::getInstance(); + $getTable = DB::getTable($table); + $fieldPrefix = DB::getFieldPrefix($table); + $db->query('UPDATE ' . $getTable . ' SET ' . $fieldPrefix . '_user_id=' . $id . ' WHERE ' . $fieldPrefix . '_id IN (' . implode(',', session()[$sessionKey]) . ')'); + $db->exec(); + if ($db->rowCount() !== 0) { + DB::increment('users', [$fieldPrefix . '_count' => '+' . $db->rowCount()], ['id' => $id]); + } + } catch (Exception) { + } // Silence + sessionVar()->remove($sessionKey); + } + } + + public static function login(string|int $id, string $cookieType = 'cookie'): array + { + $id = (int) $id; + $flip = array_flip(self::$cookies); + if (!array_key_exists($cookieType, $flip)) { + throw new Exception(sprintf('Invalid login $by %s', $cookieType), 600); + } + $user = User::getSingle($id, 'id'); + self::addGuestContentToUser($user, $id); + RequestLog::delete([ + 'user_id' => $id, + 'result' => 'fail', + 'type' => 'login', + 'ip' => get_client_ip(), + ]); + if ($user['status'] == 'valid') { + self::unsetSignup(); + self::$session = [ + 'user_id' => $id, + 'type' => $cookieType, + ]; + } else { + self::setSignup([ + 'status' => $user['status'], + 'email' => $user['email'], + ]); + } + if (isset(self::getUser()['timezone']) + && self::getUser()['timezone'] !== Settings::get('default_timezone') + && is_valid_timezone($user['timezone'] ?? '') + ) { + date_default_timezone_set($user['timezone']); + } + foreach (['image_count_label', 'album_count_label'] as $v) { + $user[$v] = isset(self::$logged_user[$v]) ? _s(self::$logged_user[$v]) : ''; + } + self::$logged_user = $user; + + return self::$logged_user; + } + + public static function logout(): void + { + if (!self::isPi()) { + self::logoutPrePi(); + } + self::$logged_user = []; + self::$session = []; + self::unsetSignup(); + foreach (array_keys(self::$cookies) as $name) { + $validate = self::validateCookie($name); + if ($validate['valid']) { + DB::delete('login_cookies', ['id' => $validate['id']]); + + continue; + } + + try { + static::unsetCookie($name); + } catch (Throwable) { + } + } + } + + public static function insertCookie(string $type, string|int $userId): int + { + $values = [ + 'user_id' => $userId, + ]; + if (!self::isMacanudo()) { + return self::insertPriorMacanudo($type, $values); + } + self::assertNoSessionType($type); + $values['ip'] = get_client_ip(); + $values['date_gmt'] = datetimegmt(); + $values['user_agent'] = self::getUserAgent(); + + return self::putCookie($type, $values); + } + + public static function redirectToAfterCookie(int $userId, string $redirect): string + { + if (TwoFactor::hasFor($userId)) { + sessionVar()->put('challenge_two_factor', $userId); + $redirect = 'account/two-factor'; + } + + return $redirect; + } + + public static function insertConnection(string $provider, array $values): int + { + self::assertEnabledProvider($provider); + if (!self::isMacanudo()) { + return self::insertPriorMacanudo($provider, $values); + } + self::assertArrayWithKeys($values, ['user_id', 'resource_id', 'resource_name', 'token']); + if (!isset($values['date_gmt'])) { + $values['date_gmt'] = datetimegmt(); + } + if (is_array($values['token'])) { + $values['token'] = serialize($values['token']); + } + if (hasEncryption()) { + $values = encryptValues(self::ENCRYPTED_CONNECTION_NAMES, $values); + } + $query = <<<SQL + INSERT INTO `%table_prefix%login_connections` (`login_connection_provider_id`, + `login_connection_user_id`, + `login_connection_date_gmt`, + `login_connection_resource_id`, + `login_connection_resource_name`, + `login_connection_token`) + SELECT ( + SELECT login_provider_id FROM `%table_prefix%login_providers` WHERE login_provider_name = :provider + ), + :user_id, + :date_gmt, + :resource_id, + :resource_name, + :token; + SQL; + + return DB::preparedQueryExecute($query, [ + ':provider' => $provider, + ':user_id' => $values['user_id'], + ':date_gmt' => $values['date_gmt'], + ':resource_id' => $values['resource_id'], + ':resource_name' => $values['resource_name'], + ':token' => $values['token'], + ]); + } + + protected static function assertNoSessionType(string $type): void + { + if ($type === 'session') { + throw new LogicException( + message('Type %t is not supported') + ->withCode('%t', $type), + 600 + ); + } + } + + protected static function getUserAgent(): string + { + return json_encode(array_merge(parse_user_agent(server()['HTTP_USER_AGENT']))); + } + + protected static function putCookie(string $type, array $values): int + { + $table = 'login_cookies'; + $hashColumn = 'hash'; + if (self::isMacanudo()) { + $values['connection_id'] = 0; + } else { + $hashColumn = 'secret'; + $table = 'logins'; + $values['type'] = $type; + } + $tokenize = generate_hashed_token((int) $values['user_id']); + $values[$hashColumn] = $tokenize['hash']; + $cookieName = self::COOKIE; + $provider = self::getProviderFromCookieType($type); + if ($provider !== '') { + self::assertEnabledProvider($provider); + $cookieName .= '_' . str_replace_first('COOKIE_', '', strtoupper($provider)); + } + if (self::isMacanudo() && $type !== 'cookie') { + $query = <<<SQL + INSERT INTO `%table_prefix%login_cookies` (login_cookie_connection_id, login_cookie_user_id, login_cookie_date_gmt, + login_cookie_ip, login_cookie_user_agent, login_cookie_hash) + SELECT ( + SELECT login_connection_id + FROM `%table_prefix%login_connections` + JOIN %table_prefix%login_providers ON login_provider_id = login_connection_provider_id + WHERE login_provider_name = :provider + AND login_connection_user_id = :user_id + ), + :user_id, + :date_gmt, + :ip, + :user_agent, + :hash; + SQL; + $insert = DB::preparedQueryExecute($query, [ + ':provider' => $provider, + ':user_id' => $values['user_id'], + ':date_gmt' => $values['date_gmt'], + ':ip' => $values['ip'], + ':user_agent' => $values['user_agent'], + ':hash' => $tokenize['hash'], + ]); + } else { + $insert = DB::insert($table, $values); + } + if ($insert !== 0) { + $dateTime = DateTime::createFromFormat( + 'Y-m-d H:i:s', + $values['date_gmt'], + new DateTimeZone('UTC') + ); + $cookie = $tokenize['public_token_format'] + . ':' + . $dateTime->getTimestamp(); + static::setCookie($cookieName, $cookie); + } + + return $insert; + } + + protected static function insertPriorMacanudo(string $type, array $values): int + { + if (!isset($values['ip'])) { + $values['ip'] = get_client_ip(); + } + if (!isset($values['hostname'])) { + $values['hostname'] = self::getUserAgent(); + } + if (!isset($values['date'])) { + $values['date'] = datetime(); + } + if (!isset($values['date_gmt'])) { + $values['date_gmt'] = datetimegmt(); + } + if (starts_with('cookie', $type)) { + return self::putCookie($type, $values); + } else { + return DB::insert('logins', $values); + } + } + + protected static function getProviderFromCookieType(string $cookieType): string + { + $provider = ''; + if ($cookieType !== 'cookie') { + $provider = str_replace_first('cookie_', '', $cookieType); + } + + return $provider; + } + + public static function getCookie(string $type, array $values): array + { + if (!starts_with('cookie', $type)) { + throw new InvalidArgumentException( + message('Type %t is not supported') + ->withCode('%t', $type), + ); + } + $provider = self::getProviderFromCookieType($type); + self::assertArrayWithKeys($values, ['user_id', 'date_gmt']); + if (!self::isMacanudo()) { + if ($provider !== '') { + self::assertEnabledProvider($provider); + } + $values['type'] = $type; + $get = self::getPriorMacanudo(values: $values, limit: 1); + + return [ + 'id' => (int) ($get['id'] ?? 0), + 'user_id' => (int) $values['user_id'], + 'hash' => ($get['secret'] ?? '') + . ($get['token_hash'] ?? ''), + ]; + } + if ($type === 'cookie') { + $values['connection_id'] = 0; + $get = DB::get(table: 'login_cookies', values: $values, limit: 1); + $get = DB::formatRows($get, 'login_cookie'); + } else { + $query = <<<SQL + SELECT login_cookie_id id, login_cookie_hash hash + FROM `%table_prefix%login_cookies` + JOIN `%table_prefix%login_connections` ON login_cookie_connection_id = login_connection_id + JOIN `%table_prefix%login_providers` ON login_connection_provider_id = login_provider_id + WHERE login_cookie_user_id = :user_id + AND login_cookie_date_gmt = :date_gmt + AND login_provider_name = :name + AND login_provider_is_enabled = 1 + LIMIT 1; + SQL; + $get = DB::fetchSingleQuery($query, [ + ':user_id' => (int) $values['user_id'], + ':date_gmt' => $values['date_gmt'], + ':name' => $provider, + ]); + } + if (!$get) { + return [ + 'id' => 0, + 'user_id' => 0, + 'hash' => '', + ]; + } + + return [ + 'id' => (int) ($get['id']), + 'user_id' => (int) $values['user_id'], + 'hash' => $get['hash'], + ]; + } + + protected static function assertEnabledProvider(string $provider): void + { + $get = self::isMacanudo() + ? DB::get( + table: 'login_providers', + values: [ + 'name' => $provider, + 'is_enabled' => 1, + ], + limit: 1 + ) + : getSetting($provider); + if (!(bool) $get) { + throw new InvalidArgumentException( + message('Provider %t is not enabled') + ->withCode('%t', $provider), + ); + } + } + + protected static function assertArrayWithKeys(array $array, array $keys): void + { + foreach ($keys as $key) { + if (!isset($array[$key])) { + throw new InvalidArgumentException( + message('Key %t is missing') + ->withCode('%t', $key), + ); + } + } + } + + public static function getUserIdForResource(string $type, int|string $resourceId): int + { + if (!self::isMacanudo()) { + $get = self::getPriorMacanudo( + values: [ + 'resource_id' => $resourceId, + 'type' => $type, + ], + sort: ['field' => 'date_gmt', 'order' => 'desc'], + limit: 1 + ); + } + $query = <<<SQL + SELECT login_connection_user_id user_id + FROM `%table_prefix%login_connections` + JOIN `%table_prefix%login_providers` ON login_connection_provider_id = login_provider_id + JOIN `%table_prefix%users` ON login_connection_user_id = user_id + WHERE login_connection_resource_id = :resource_id + AND login_provider_name = :name + ORDER BY login_connection_date_gmt DESC + LIMIT 1; + SQL; + $get = DB::fetchSingleQuery($query, [ + ':resource_id' => $resourceId, + ':name' => $type, + ]); + + return $get['user_id'] ?? 0; + } + + public static function getUserConnections(int $userId): array + { + $connections = []; + if (self::isMacanudo()) { + $query = <<<SQL + SELECT login_provider_name name, login_provider_label label, login_connection_id id, login_connection_resource_id resource_id, login_connection_resource_name resource_name + FROM `%table_prefix%login_connections` + JOIN `%table_prefix%login_providers` ON login_connection_provider_id = login_provider_id + WHERE login_connection_user_id = :user_id + AND login_provider_is_enabled = 1 + ORDER BY login_provider_name DESC; + SQL; + $fetchAll = DB::fetchAllQuery($query, [ + ':user_id' => $userId, + ]); + foreach ($fetchAll as &$connection) { + $connections[$connection['name']] = $connection; + } + } else { + $logins = self::getPriorMacanudo([ + 'user_id' => $userId, + ]); + $providersEnabled = self::getProviders('enabled'); + foreach ($logins as $login) { + if (!array_key_exists($login['type'], $providersEnabled)) { + continue; + } + $connections[$login['type']] = $login; + $connections[$login['type']]['label'] = $providersEnabled[$login['type']]; + } + ksort($connections); + } + + return $connections; + } + + protected static function getPriorMacanudo(array $values, array $sort = [], ?int $limit = null): array + { + $get = DB::get('logins', $values, 'AND', $sort, $limit); + if (!$get) { + return []; + } + + return DB::formatRows($get, 'login'); + } + + protected static function assertProvider(string $provider): void + { + $get = DB::get( + table: 'login_providers', + values: [ + 'name' => $provider, + ], + limit: 1 + ); + if (!$get) { + throw new InvalidArgumentException( + message('Invalid login provider %s.') + ->withCode('%s', $provider) + ); + } + } + + public static function deleteCookies(string $type, array $values): int + { + if (!self::isMacanudo()) { + $values['type'] = $type; + + return DB::delete('logins', $values); + } + if ($type === 'session') { + return 0; + } + if ($type !== 'cookie') { + $provider = str_replace_first('cookie_', '', $type); + self::assertProvider($provider); + self::assertArrayWithKeys($values, ['user_id']); + $query = <<<SQL + DELETE `%table_prefix%login_cookies` + FROM `%table_prefix%login_cookies` + JOIN `%table_prefix%login_connections` ON login_cookie_connection_id = login_connection_id + JOIN `%table_prefix%login_providers` ON login_connection_provider_id = login_provider_id + WHERE login_cookie_user_id = :user_id + AND login_provider_name = :provider_name; + SQL; + + return DB::preparedQueryExecute($query, [ + ':user_id' => $values['user_id'], + ':provider_name' => $provider, + ]); + } + $values['connection_id'] = 0; + + return DB::delete('login_cookies', $values); + } + + public static function getConnection(int $id): array + { + $query = <<<SQL + SELECT login_provider_name name, login_provider_label label, login_connection_id id, login_connection_resource_id resource_id, login_connection_resource_name resource_name, login_connection_token token + FROM `%table_prefix%login_connections` + JOIN `%table_prefix%login_providers` ON login_connection_provider_id = login_provider_id + WHERE login_connection_id = :id; + SQL; + $fetchSingle = DB::fetchSingleQuery($query, [ + ':id' => $id, + ]); + if (hasEncryption()) { + $fetchSingle = decryptValues(self::ENCRYPTED_CONNECTION_NAMES, $fetchSingle); + } + $fetchSingle['token'] = unserialize($fetchSingle['token'] ?? 'a:0:{}') ?: []; + + return $fetchSingle; + } + + public static function updateConnection(int $id, array $values): int + { + if (is_array($values['token'])) { + $values['token'] = serialize($values['token']); + } + if (hasEncryption()) { + $values = encryptValues(self::ENCRYPTED_CONNECTION_NAMES, $values); + } + + return DB::update( + table: 'login_connections', + values: $values, + wheres: [ + 'id' => $id, + ] + ); + } + + public static function deleteConnection(string $provider, int|string $userId): int + { + self::assertProvider($provider); + if (!self::isMacanudo()) { + return DB::delete('logins', ['type' => $provider]); + } + $query = <<<SQL + DELETE `%table_prefix%login_connections` + FROM `%table_prefix%login_connections` + JOIN `%table_prefix%login_providers` ON login_provider_id = login_connection_provider_id + WHERE login_connection_user_id = :user_id + AND login_provider_name = :provider_name; + SQL; + + return DB::preparedQueryExecute($query, [ + ':user_id' => strval($userId), + ':provider_name' => $provider, + ]); + } + + public static function hasSignup(): bool + { + return isset(session()['signup']) && session()['signup'] !== []; + } + + public static function getSignup(): array + { + return session()['signup']; + } + + public static function setSignup(array $var): void + { + sessionVar()->put('signup', $var); + } + + public static function unsetSignup(): void + { + if (isset(session()['signup'])) { + sessionVar()->remove('signup'); + } + } + + public static function hasSession(): bool + { + return self::$session !== []; + } + + public static function getSession(): array + { + return self::$session; + } + + public static function getUser(): array + { + return self::$logged_user; + } + + public static function setUser(string $key, mixed $value) + { + if (self::$logged_user !== []) { + self::$logged_user[$key] = $value; + } + } + + public static function isLoggedUser(): bool + { + return self::$logged_user !== []; + } + + /** + * @return array + */ + public static function validateCookie(string $cookieName) + { + if (!isset(cookie()[$cookieName])) { + return [ + 'valid' => false, + ]; + } + $fetchCookie = static::fetchCookie($cookieName); + if ($fetchCookie === []) { + return [ + 'valid' => false, + 'cookie' => [], + 'id' => null, + 'user_id' => 0 + ]; + } + /** + * $fetchCookie = [ + * 'raw' => 'asdf', + * 'user_id' => $user_id, + * 'type' => $type, + * 'date_gmt' => $date_gmt,] + */ + $login_arr = $fetchCookie; + unset($login_arr['raw'], $login_arr['type']); + /** + * $login_arr = [ + * 'user_id' => $user_id, + * 'date_gmt' => $date_gmt,] + */ + $getCookie = self::getCookie( + type: $fetchCookie['type'], + values: $login_arr, + ); + $is_valid = check_hashed_token( + $getCookie['hash'] ?? '', + $fetchCookie['raw'] + ); + + return [ + 'valid' => $is_valid, + 'cookie' => $fetchCookie, + 'id' => $getCookie['id'] ?? null, + 'user_id' => $fetchCookie['user_id'] + ]; + } + + public static function hasPassword(int $userId): bool + { + if (self::isMacanudo()) { + $get = DB::get( + table: 'login_passwords', + values: ['user_id' => $userId], + limit: 1 + ); + } else { + $get = DB::get( + table: 'logins', + values: ['user_id' => $userId, 'type' => 'password'], + limit: 1 + ); + } + + return (bool) $get; + } + + public static function checkPassword(int $userId, string $tryPassword): bool + { + if (self::isMacanudo()) { + $get = DB::get( + table: 'login_passwords', + values: ['user_id' => $userId], + limit: 1 + ); + } else { + $get = DB::get( + table: 'logins', + values: ['user_id' => $userId, 'type' => 'password'], + limit: 1 + ); + } + if (!$get) { + return false; + } + + return password_verify($tryPassword, $get['login_password_hash'] ?? $get['login_secret']); + } + + public static function addPassword( + int $userId, + string $password, + bool $update_session = true + ): bool { + return self::passwordData('insert', $userId, $password, $update_session); + } + + public static function changePassword( + int $userId, + string $password, + bool $update_session = true + ): bool { + return self::passwordData('update', $userId, $password, $update_session); + } + + public static function updateProvider(string $provider, array $values): int + { + if (hasEncryption()) { + $values = encryptValues(self::ENCRYPTED_PROVIDER_NAMES, $values); + } + + return DB::update( + table: 'login_providers', + values: $values, + wheres: ['name' => $provider] + ); + } + + public static function getProviders(string $get = 'all'): array + { + $return = []; + if (!self::isMacanudo()) { + return $get === 'all' + ? self::$providersPriorMacanudo + : self::getProvidersPriorMacanudo($get); + } + $binds = []; + $query = + <<<SQL + SELECT login_provider_name AS name, + login_provider_label AS label, + login_provider_key_id AS key_id, + login_provider_key_secret AS key_secret, + login_provider_is_enabled AS is_enabled + FROM `%table_prefix%login_providers`%wheres% + ORDER BY name ASC; + SQL; + if ($get !== 'all') { + $query = str_replace( + '%wheres%', + <<<SQL + + WHERE login_provider_is_enabled = :is_enabled + SQL, + $query + ); + $binds[':is_enabled'] = (int) ($get === 'enabled'); + } else { + $query = str_replace('%wheres%', '', $query); + } + $fetch = DB::fetchAllQuery($query, $binds); + foreach ($fetch as $row) { + $name = $row['name']; + unset($row['name']); + $row['is_enabled'] = (bool) $row['is_enabled']; + if (hasEncryption()) { + $row = decryptValues(self::ENCRYPTED_PROVIDER_NAMES, $row); + } + $return[$name] = $row; + } + + return $return; + } + + protected static function getProvidersPriorMacanudo(string $get = 'enabled'): array + { + $return = []; + foreach (self::$providersPriorMacanudo as $name => $provider) { + if ($get === 'enabled' && !getSetting($name) + || $get === 'disabled' && getSetting($name) + ) { + continue; + } + $return[$name] = $provider; + } + + return $return; + } + + public static function isAdmin(): bool + { + if (self::$logged_user === []) { + return false; + } + + return (bool) self::$logged_user['is_admin']; + } + + public static function isManager(): bool + { + if (self::$logged_user === []) { + return false; + } + + return (bool) self::$logged_user['is_manager']; + } + + /** + * @return null|array|false Null if no cookies, array if cookie+login, false if cookie+error + */ + protected static function tryCookies(): array|bool|null + { + $login = null; + foreach (array_keys(self::$cookies) as $cookieName) { + if (!array_key_exists($cookieName, cookie())) { + continue; + } + $loginCookie = self::loginCookie($cookieName); + if ($loginCookie !== []) { + $login = $loginCookie; + + break; + } + } + + return $login; + } + + /** + * @return array logged user if any + */ + protected static function loginCookie(string $cookieName = self::COOKIE): array + { + if (!array_key_exists($cookieName, self::$cookies)) { + return []; + } + $validate = self::validateCookie($cookieName); + if ($validate['valid']) { + self::login($validate['user_id'], $validate['cookie']['type']); + self::$session['id'] = $validate['id']; + self::$session['login_cookies'][] = $validate['id']; + + return self::$logged_user; + } else { + RequestLog::insert([ + 'result' => 'fail', + 'type' => 'login', + 'user_id' => $validate['user_id'] + ]); + static::unsetCookie($cookieName); + + return []; + } + } + + protected static function loginCookiePriorPi(string $type = 'internal'): array|bool|null + { + if (!in_array($type, ['internal', 'social'])) { + throw new Exception('Invalid login type'); + } + $cookie = cookie()[$type == 'internal' ? 'KEEP_LOGIN' : 'KEEP_LOGIN_SOCIAL']; + $explode = array_filter(explode(':', $cookie)); + // CHV: 0->id | 1:token | 2:timestamp + // SOC: 0->id | 1:type | 2:hash | 3:timestamp + $count = $type == 'social' ? 4 : 3; + if (count($explode) !== $count) { + return false; + } + foreach ($explode as $exp) { + if ($exp == null) { + return false; + } + } + $user_id = decodeID($explode[0]); + $login_db_arr = [ + 'user_id' => $user_id, + 'date_gmt' => gmdate('Y-m-d H:i:s', (int) end($explode)), + ]; + $getCookie = self::getCookie( + type: $type == 'internal' + ? 'cookie' + : $explode[1], + values: $login_db_arr, + ); + $is_valid_token = $type == 'internal' + ? check_hashed_token($getCookie['hash'], $cookie) + : password_verify($getCookie['hash'], $explode[2]); + if ($is_valid_token) { + return self::login( + $getCookie['user_id'], + $type == 'internal' + ? 'cookie' + : $explode[1] + ); + } else { + RequestLog::insert( + [ + 'result' => 'fail', + 'type' => 'login', + 'user_id' => $user_id] + ); + self::logoutPrePi(); + + return null; + } + } + + protected static function logoutPrePi(): void + { + self::$logged_user = []; + $doing = session()['login']['type']; + if ($doing == 'session') { + self::deleteCookies('session', [ + 'user_id' => session()['login']['id'], + 'date_gmt' => session()['login']['datetime'], + ]); + } + session_unset(); + $cookies = ['KEEP_LOGIN', 'KEEP_LOGIN_SOCIAL']; + foreach ($cookies as $cookie_name) { + static::unsetCookie($cookie_name); + if ($cookie_name == 'KEEP_LOGIN_SOCIAL') { + continue; + } + $cookie = cookie()[$cookie_name]; + $explode = array_filter(explode(':', $cookie)); + if (count($explode) == 4) { + foreach ($explode as $exp) { + if ($exp == null) { + return; + } + } + $user_id = decodeID($explode[0]); + self::deleteCookies('cookie', [ + 'user_id' => $user_id, + 'date_gmt' => gmdate('Y-m-d H:i:s', (int) $explode[3]), + ]); + } + } + } + + public static function unsetCookie(string $key): bool + { + return static::cookie($key, '', -1); + } + + protected static function setCookie(string $key, string $value): bool + { + $args = [ + $key, $value, time() + (60 * 60 * 24 * 30), + ]; + + return static::cookie(...$args); + } + + protected static function cookie(string $key, string $value, int $time): bool + { + if ($time == -1) { + cookieVar()->remove($key); + } else { + cookieVar()->put($key, $value); + } + $args = func_get_args(); + $args[] = Config::host()->hostnamePath(); + if ($time == -1) { + // PrePi + setcookie(...$args); + } + $args[] = Config::host()->hostname(); + $args[] = HTTP_APP_PROTOCOL == 'https'; + $args[] = true; + + return setcookie(...$args); + } + + protected static function fetchCookie(string $cookieName): array + { + $rawCookie = cookie()[$cookieName]; + $explode = explode(':', $rawCookie); + if (count($explode) !== 3) { + return []; + } + foreach ($explode as $exp) { + if ($exp == null) { + return []; + } + } + + return [ + 'raw' => $rawCookie, + 'user_id' => decodeID($explode[0]), + 'type' => self::$cookies[$cookieName], + 'date_gmt' => gmdate('Y-m-d H:i:s', (int) $explode[2]) + ]; + } + + protected static function passwordData( + string $action, + int $userId, + string $password, + bool $updateSession + ): bool { + $action = strtoupper($action); + if (!in_array($action, ['UPDATE', 'INSERT'])) { + throw new Exception('Expecting UPDATE or INSERT statements'); + } + $hash = password_hash($password, PASSWORD_BCRYPT); + $wheres = ['user_id' => $userId]; + if (self::isMacanudo()) { + $table = 'login_passwords'; + $values = [ + 'date_gmt' => datetimegmt(), + 'hash' => $hash, + ]; + } else { + $table = 'logins'; + $wheres['type'] = 'password'; + $values = [ + 'ip' => get_client_ip(), + 'date' => datetime(), + 'date_gmt' => datetimegmt(), + 'secret' => $hash, + ]; + } + if ($action == 'UPDATE') { + $db = DB::update($table, $values, $wheres); + } else { + $values['user_id'] = $userId; + if (!self::isMacanudo()) { + $values['type'] = 'password'; + } + $db = DB::insert($table, $values); + } + if (self::isLoggedUser() + && self::getUser()['id'] == $userId + && self::hasSession() + && $updateSession) { + self::$session = [ + 'id' => $userId, + 'type' => 'password', + ]; + } + + return (bool) $db; + } +} diff --git a/app/src/Legacy/Classes/Mailer.php b/app/src/Legacy/Classes/Mailer.php new file mode 100644 index 0000000..b204c0a --- /dev/null +++ b/app/src/Legacy/Classes/Mailer.php @@ -0,0 +1,19 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use PHPMailer\PHPMailer\PHPMailer; + +class Mailer extends PHPMailer +{ + public $XMailer = ' '; +} diff --git a/app/src/Legacy/Classes/Page.php b/app/src/Legacy/Classes/Page.php new file mode 100644 index 0000000..d9e719d --- /dev/null +++ b/app/src/Legacy/Classes/Page.php @@ -0,0 +1,68 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +class Page +{ + public static function getSingle(string $var, $by = 'url_key'): array + { + return []; + } + + public static function getAll(array $args = [], array $sort = []): array + { + return []; + } + + public static function get(array $values, array $sort = [], int $limit = null): array + { + return []; + } + + public static function getPath(?string $var = null): string + { + return PATH_PUBLIC_CONTENT_PAGES . (is_string($var) ? $var : ''); + } + + public static function getFields(): array + { + return self::$table_fields; + } + + public static function update(int $id, array $values): int + { + return 0; + } + + public static function writePage(array $args = []): bool + { + return false; + } + + public static function fill(array &$page): void + { + } + + public static function formatRowValues(mixed &$values, mixed $row = []): void + { + } + + public static function insert(array $values = []): int + { + return 0; + } + + public static function delete(array|int $page): int + { + return 0; + } +} diff --git a/app/src/Legacy/Classes/Palettes.php b/app/src/Legacy/Classes/Palettes.php new file mode 100644 index 0000000..3be81cf --- /dev/null +++ b/app/src/Legacy/Classes/Palettes.php @@ -0,0 +1,78 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +class Palettes +{ + private array $handles = [ + 0 => 'blanco', + 1 => 'dark', + 2 => 'flickr', + 3 => 'imgur', + 4 => 'deviantart', + 5 => 'lush', + 6 => 'graffiti', + 7 => 'abstract', + 8 => 'cheers', + 9 => 'cmyk', + ]; + + private array $names = [ + 0 => 'Blanco', + 1 => 'Dark', + 2 => 'Flickr', + 3 => 'Imgur', + 4 => 'DeviantArt', + 5 => 'Lush', + 6 => 'Graffiti', + 7 => 'Abstract', + 8 => 'Cheers', + 9 => 'CMYK', + ]; + + private array $get = []; + + private array $handlesToId = []; + + public function __construct() + { + $this->handlesToId = array_flip($this->handles); + foreach ($this->handles as $id => $handle) { + $this->get[$id] = [$handle, $this->names[$id]]; + } + } + + public function handlesToId(): array + { + return $this->handlesToId; + } + + public function get(): array + { + return $this->get; + } + + public function getHandle(int $id): string + { + return $this->get()[$id][0] ?? ''; + } + + public function getName(int $id): string + { + return $this->get()[$id][1] ?? ''; + } + + public function getIdForHandle(string $handle): int + { + return $this->handlesToId[$handle] ?? 0; + } +} diff --git a/app/src/Legacy/Classes/RequestLog.php b/app/src/Legacy/Classes/RequestLog.php new file mode 100644 index 0000000..7094a74 --- /dev/null +++ b/app/src/Legacy/Classes/RequestLog.php @@ -0,0 +1,77 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\get_client_ip; + +class RequestLog +{ + public static function get($values, $sort = [], $limit = null): array + { + return DB::get('requests', $values, 'AND', $sort, $limit); + } + + public static function insert(array $values): int + { + if (defined('PHPUNIT_CHEVERETO_TESTSUITE')) { + return 0; + } + if (!isset($values['ip'])) { + $values['ip'] = get_client_ip(); + } + $values['date'] = datetime(); + $values['date_gmt'] = datetimegmt(); + + return DB::insert('requests', $values); + } + + public static function getCounts(array|string $type, string $result, ?string $ip = null): array + { + if (is_array($type)) { + $type_qry = 'request_type IN('; + $binds = []; + foreach ($type as $i => $singleType) { + $type_qry .= ':rt' . $i . ','; + $binds[':rt' . $i] = $singleType; + } + $type_qry = rtrim($type_qry, ',') . ')'; + } else { + $type_qry = 'request_type=:request_type'; + $binds = [ + ':request_type' => $type + ]; + } + + $db = DB::getInstance(); + $db->query('SELECT + COUNT(IF(request_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MINUTE), 1, NULL)) AS minute, + COUNT(IF(request_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 HOUR), 1, NULL)) AS hour, + COUNT(IF(request_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 DAY), 1, NULL)) AS day, + COUNT(IF(request_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 WEEK), 1, NULL)) AS week, + COUNT(IF(request_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH), 1, NULL)) AS month + FROM ' . DB::getTable('requests') . ' WHERE ' . $type_qry . ' AND request_result=:request_result AND request_ip=:request_ip AND request_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH)'); + foreach ($binds as $k => $v) { + $db->bind($k, $v); + } + $db->bind(':request_result', $result); + $db->bind(':request_ip', $ip ?: get_client_ip()); + + return $db->fetchSingle(); + } + + public static function delete($values, $clause = 'AND'): int + { + return DB::delete('requests', $values, $clause); + } +} diff --git a/app/src/Legacy/Classes/Search.php b/app/src/Legacy/Classes/Search.php new file mode 100644 index 0000000..7ae940f --- /dev/null +++ b/app/src/Legacy/Classes/Search.php @@ -0,0 +1,232 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\G\str_replace_first; +use Exception; + +class Search +{ + public array $display; + + public static array $excluded = ['storage', 'ip']; + + public string $DBEngine; + + public string $wheres; + + public ?string $q; + + public string $type; + + public array $request; + + public array $requester; + + public array $binds; + + public array $op; + + public function __construct() + { + $this->DBEngine = DB::queryFetchSingle("SHOW TABLE STATUS WHERE Name = '" . DB::getTable('images') . "';")['Engine']; + } + + public function build(): void + { + if (!in_array($this->type, ['images', 'albums', 'users'])) { + throw new Exception('Invalid search type', 600); + } + $as_handle = ['as_q' => null, 'as_epq' => null, 'as_oq' => null, 'as_eq' => null, 'as_cat' => 'category']; + $as_handle_admin = ['as_stor' => 'storage', 'as_ip' => 'ip']; + if ($this->requester['is_content_manager'] ?? false) { + $as_handle = array_merge($as_handle, $as_handle_admin); + } + foreach ($as_handle as $k => $v) { + if (isset($this->request[$k]) && $this->request[$k] !== '') { + $this->q .= ' ' . (isset($v) ? $v . ':' : '') . $this->request[$k]; + } + } + $this->q = trim(preg_replace(['#\"+#', '#\'+#'], ['"', '\''], $this->q ?? '')); + $search_op = $this->handleSearchOperators($this->q, $this->requester['is_content_manager'] ?? false); + $this->q = null; + foreach ($search_op as $operator) { + $this->q .= implode(' ', $operator) . ' '; + } + if (isset($this->q)) { + $this->q = preg_replace('/\s+/', ' ', trim($this->q)); + } + $q_match = $this->q; + $search_binds = []; + $search_op_wheres = []; + foreach ($search_op['named'] as $v) { + $q_match = trim(preg_replace('/\s+/', ' ', str_replace($v, '', $q_match))); + if ($q_match === '') { + $q_match = null; + } + $op = explode(':', $v); + if (!in_array($op[0], ['category', 'ip', 'storage'])) { + continue; + } + switch ($this->type) { + case 'images': + switch ($op[0]) { + case 'category': + $search_op_wheres[] = 'category_url_key = :category'; + $search_binds[] = ['param' => ':category', 'value' => $op[1]]; + + break; + + case 'ip': + $search_op_wheres[] = 'image_uploader_ip LIKE REPLACE(:ip, "*", "%")'; + $search_binds[] = ['param' => ':ip', 'value' => str_replace_first('ip:', '', $this->q)]; + + break; + + case 'storage': + if (!filter_var($op[1], FILTER_VALIDATE_INT) && !in_array($op[1], ['local', 'external'])) { + break; + } + $storage_operator_clause = [ + $op[1] => '= :storage_id', + 'local' => 'IS NULL', + 'external' => 'IS NOT NULL', + ]; + + if (filter_var($op[1], FILTER_VALIDATE_INT)) { + $search_binds[] = ['param' => ':storage_id', 'value' => $op[1]]; + } + + $search_op_wheres[] = 'image_storage_id ' . ($storage_operator_clause[$op[1]]); + + break; + } + + break; + case 'albums': + case 'users': + if ($op[0] === 'ip') { + $search_binds[] = ['param' => ':ip', 'value' => str_replace_first('ip:', '', $this->q)]; + } + + break; + } + } + if (isset($q_match)) { + $q_value = $q_match; + if ($this->DBEngine == 'InnoDB') { + $q_value = trim($q_value, '><'); + } + $search_binds[] = ['param' => ':q', 'value' => $q_value]; + } + $this->binds = $search_binds; + $this->op = $search_op; + $wheres = null; + switch ($this->type) { + case 'images': + if (isset($q_match)) { + $wheres = 'WHERE MATCH(`image_name`,`image_title`,`image_description`,`image_original_filename`) AGAINST(:q IN BOOLEAN MODE)'; + } + if ($search_op_wheres !== []) { + $wheres .= (is_null($wheres) ? 'WHERE ' : ' AND ') . implode(' AND ', $search_op_wheres); + } + + break; + case 'albums': + if (empty($search_binds)) { + $wheres = 'WHERE album_id < 0'; + } else { + $wheres = (($op[0] ?? null) == 'ip' ? 'album_creation_ip LIKE REPLACE(:ip, "*", "%")' : 'WHERE MATCH(`album_name`,`album_description`) AGAINST(:q)'); + } + + break; + case 'users': + if (empty($search_binds)) { + $wheres = 'WHERE user_id < 0'; + } elseif (($op[0] ?? null) == 'ip') { + $wheres = 'user_registration_ip LIKE REPLACE(:ip, "*", "%")'; + } else { + $clauses = [ + 'name_username' => 'WHERE MATCH(`user_name`,`user_username`) AGAINST(:q)', + 'email' => '`user_email` LIKE CONCAT("%", :q, "%")', + ]; + if ($this->requester['is_content_manager'] ?? false) { + $pos = strpos($this->q, '@'); + if ($pos !== false) { + if (preg_match_all('/\s+/', $this->q)) { + $wheres = $clauses['name_username'] + . ' OR ' . $clauses['email']; + } else { + $wheres = $clauses['email']; + } + } else { + $wheres = $clauses['name_username']; + } + } else { + $wheres = $clauses['name_username']; + } + } + + break; + } + $this->wheres = $wheres; + $this->display = [ + 'type' => $this->type, + 'q' => $this->q, + 'd' => strlen($this->q) >= 25 ? (substr($this->q, 0, 22) . '...') : $this->q, + ]; + } + + protected function handleSearchOperators(string $q, bool $full = true): array + { + $operators = ['any' => [], 'exact_phrases' => [], 'excluded' => [], 'named' => []]; + $raw_regex = [ + 'named' => '[\S]+\:[\S]+', // take all the like:this operators + 'quoted' => '-*[\"\']+.+[\"\']+', // take all the "quoted stuff" "like" "this, one" + 'spaced' => '\S+', // Take all the space separated stuff + ]; + foreach ($raw_regex as $k => $v) { + if ($k == 'spaced') { + $q = str_replace(',', '', $q); + } + if (preg_match_all('/' . $v . '/', $q, $match)) { + foreach ($match[0] as $qMatch) { + switch ($k) { + case 'named': + if (!$full) { + $named_operator = explode(':', $qMatch); + if (in_array($named_operator[0], self::$excluded)) { + continue 2; + } + } + $operators[$k][] = $qMatch; + + break; + default: + if (0 === strpos($qMatch, '-')) { + $operators['excluded'][] = $qMatch; + } elseif (0 === strpos($qMatch, '"')) { + $operators['exact_phrases'][] = $qMatch; + } else { + $operators['any'][] = $qMatch; + } + + break; + } + $q = trim(preg_replace('/\s+/', ' ', str_replace($qMatch, '', $q))); + } + } + } + + return $operators; + } +} diff --git a/app/src/Legacy/Classes/Settings.php b/app/src/Legacy/Classes/Settings.php new file mode 100644 index 0000000..9c16eba --- /dev/null +++ b/app/src/Legacy/Classes/Settings.php @@ -0,0 +1,594 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use function Chevereto\Encryption\decryptValues; +use function Chevereto\Encryption\encryptValues; +use function Chevereto\Encryption\hasEncryption; +use function Chevereto\Legacy\G\get_regex_match; +use function Chevereto\Legacy\G\is_integer; +use function Chevereto\Legacy\G\is_url; +use function Chevereto\Legacy\G\nullify_string; +use function Chevereto\Vars\env; +use Exception; + +class Settings +{ + protected static ?self $instance; + + private static array $settings = []; + + private static array $defaults = []; + + private static array $typeset = []; + + private static array $decrypted = []; + + public const ENCRYPTED_NAMES = [ + 'api_v1_key', + 'email_smtp_server', + 'email_smtp_server_password', + 'email_smtp_server_port', + 'email_smtp_server_username', + 'captcha_secret', + 'disqus_secret_key', + 'akismet_api_key', + 'moderatecontent_key', + 'arachnid_key', + 'xr_host', + 'xr_port', + 'xr_key', + ]; + + public function __construct() + { + $settings = []; + $defaults = []; + $typeset = []; + + try { + $db_settings = DB::get( + table: 'settings', + values: 'all', + sort: ['field' => 'name', 'order' => 'asc'] + ); + foreach ($db_settings as $k => $v) { + $v = DB::formatRow($v); + $value = $v['value']; + $default = $v['default']; + if ($v['typeset'] == 'bool') { + $value = $value == 1; + $default = $default == 1; + } + if ($v['typeset'] == 'string') { + $value = (string) $value; + $default = (string) $default; + } + $typeset[$v['name']] = $v['typeset']; + $settings[$v['name']] = $value; + $defaults[$v['name']] = $default; + } + } catch (Exception $e) { + $settings = []; + $defaults = []; + } + $stock = [ + 'default_language' => 'en', + 'auto_language' => true, + 'theme_download_button' => true, + 'enable_signups' => true, + 'website_mode' => 'community', + 'listing_pagination_mode' => 'classic', + 'website_content_privacy_mode' => 'default', + 'website_privacy_mode' => 'public', + 'website_explore_page' => true, + 'website_search' => true, + 'website_random' => true, + 'theme_show_social_share' => true, + 'theme_show_embed_uploader' => true, + 'user_routing' => true, + 'require_user_email_confirmation' => true, + 'require_user_email_social_signup' => true, + 'homepage_style' => 'landing', + 'user_image_avatar_max_filesize_mb' => '1', + 'user_image_background_max_filesize_mb' => '2', + 'theme_image_right_click' => false, + 'theme_show_exif_data' => true, + 'homepage_cta_color' => 'green', + 'homepage_cta_outline' => false, + 'watermark_enable_guest' => true, + 'watermark_enable_user' => true, + 'watermark_enable_admin' => true, + 'language_chooser_enable' => true, + 'languages_disable' => null, + 'homepage_cta_fn' => 'cta-upload', + 'watermark_target_min_width' => 100, + 'watermark_target_min_height' => 100, + 'watermark_percentage' => 4, + 'watermark_enable_file_gif' => false, + 'upload_medium_fixed_dimension' => 'width', + 'upload_medium_size' => 500, + 'enable_followers' => true, + 'enable_likes' => true, + 'enable_consent_screen' => false, + 'user_minimum_age' => null, + 'route_image' => 'image', + 'route_album' => 'album', + 'enable_duplicate_uploads' => false, + 'upload_threads' => '2', + 'enable_automatic_updates_check' => true, + 'comments_api' => 'js', + 'image_load_max_filesize_mb' => '3', + 'upload_max_image_width' => '0', + 'upload_max_image_height' => '0', + 'enable_expirable_uploads' => null, + 'enable_user_content_delete' => false, + 'enable_plugin_route' => true, + 'sdk_pup_url' => null, + 'website_explore_page_guest' => true, + 'explore_albums_min_image_count' => 5, + 'upload_max_filesize_mb_guest' => 0.5, + 'notify_user_signups' => false, + 'listing_viewer' => true, + 'seo_image_urls' => true, + 'seo_album_urls' => true, + // 'website_https' => 'auto', + 'upload_gui' => 'js', + 'captcha_api' => 'hcaptcha', + 'force_captcha_contact_page' => true, + 'dump_update_query' => false, + 'enable_powered_by' => true, + 'akismet' => false, + 'stopforumspam' => false, + 'upload_enabled_image_formats' => 'jpg,png,bmp,gif,webp', + 'hostname' => null, + 'theme_show_embed_content_for' => 'all', + 'moderatecontent' => false, + 'moderatecontent_key' => '', + 'moderatecontent_block_rating' => 'a', + 'moderatecontent_flag_nsfw' => 'a', + 'moderate_uploads' => '', + 'image_lock_nsfw_editing' => false, + 'enable_uploads_url' => false, + 'chevereto_news' => 'a:0:{}', + 'cron_last_ran' => '0000-00-00 00:00:00', + 'logo_type' => 'vector', + 'theme_palette' => '0', + 'enable_xr' => false, + 'xr_host' => 'localhost', + 'xr_port' => '27420', + 'xr_key' => '', + 'route_user' => 'user', + 'root_route' => 'user', + 'arachnid' => false, + 'arachnid_key' => '', + 'image_first_tab' => 'info', + 'website_random_guest' => true, + 'website_search_guest' => true, + 'debug_errors' => false, + ]; + if (env()['CHEVERETO_SERVICING'] === 'docker') { + $stock['xr_host'] = 'host.docker.internal'; + } + $device_to_columns = [ + 'phone' => 1, + 'phablet' => 3, + 'tablet' => 4, + 'laptop' => 5, + 'desktop' => 6, + ]; + foreach ($device_to_columns as $k => $v) { + $stock['listing_columns_' . $k] = $v; + } + foreach ($stock as $k => $v) { + if (!array_key_exists($k, $settings)) { + $settings[$k] = $v; + $defaults[$k] = $v; + } + } + if (isset($settings['email_mode']) && $settings['email_mode'] == 'phpmail') { + $settings['email_mode'] = 'mail'; + } + if (!in_array($settings['upload_medium_fixed_dimension'], ['width', 'height'])) { + $settings['upload_medium_fixed_dimension'] = 'width'; + } + $settings['listing_device_to_columns'] = []; + foreach (array_keys($device_to_columns) as $k) { + $settings['listing_device_to_columns'][$k] = $settings['listing_columns_' . $k]; + } + $settings['listing_device_to_columns']['largescreen'] = $settings['listing_columns_desktop']; + $settings = array_merge($settings, [ + 'username_min_length' => 3, + 'username_max_length' => 16, + 'username_pattern' => '^[\w]{3,16}$', + 'user_password_min_length' => 6, + 'user_password_max_length' => 128, + 'user_password_pattern' => '^.{6,128}$', + 'maintenance_image' => 'default/maintenance_cover.jpg', + 'ip_whois_url' => 'https://ipinfo.io/%IP', + 'available_button_colors' => ['blue', 'green', 'orange', 'red', 'grey', 'black', 'white', 'default'], + 'routing_regex' => '([\w_-]+)', + 'routing_regex_path' => '([\w\/_-]+)', + 'single_user_mode_on_disables' => ['enable_signups', 'guest_uploads', 'user_routing'], + 'listing_safe_count' => 100, + 'image_title_max_length' => 100, + 'album_name_max_length' => 100, + 'upload_available_image_formats' => 'jpg,jpeg,png,bmp,gif,webp', + ]); + if (!array_key_exists('active_storage', $settings)) { + $settings['active_storage'] = null; + } + foreach ([ + 'CHEVERETO_ENABLE_CONSENT_SCREEN' => ['0', + [ + 'enable_consent_screen' => false + ] + ], + 'CHEVERETO_ENABLE_COOKIE_COMPLIANCE' => ['0', + [ + 'enable_cookie_law' => false + ] + ], + 'CHEVERETO_ENABLE_UPLOAD_PLUGIN' => ['0', + [ + 'enable_plugin_route' => false + ] + ], + 'CHEVERETO_ENABLE_FOLLOWERS' => ['0', + [ + 'enable_followers' => false + ] + ], + 'CHEVERETO_ENABLE_LIKES' => ['0', + [ + 'enable_likes' => false + ] + ], + 'CHEVERETO_ENABLE_MODERATION' => ['0', + [ + 'moderate_uploads' => '' + ] + ], + 'CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE' => ['1', + [ + 'enable_powered_by' => true + ] + ], + 'CHEVERETO_ENABLE_UPLOAD_FLOOD_PROTECTION' => ['0', + [ + 'flood_uploads_protection' => false + ] + ], + 'CHEVERETO_ENABLE_FAVICON' => ['0', + [ + 'favicon_image' => 'default/favicon.png', + ] + ], + 'CHEVERETO_ENABLE_LOGO' => ['0', + [ + 'logo_type' => 'vector', + 'logo_image' => 'default/logo.png', + 'logo_vector' => 'default/logo.svg', + 'theme_logo_height' => '', + ] + ], + 'CHEVERETO_ENABLE_USERS' => ['0', + [ + 'website_mode' => 'personal', + 'website_mode_personal_uid' => 1, + 'website_mode_personal_routing' => '/', + 'image_lock_nsfw_editing' => false, + 'stop_words' => '', + 'show_banners_in_nsfw' => false, + ] + ], + 'CHEVERETO_ENABLE_ROUTING' => ['0', + [ + 'route_user' => 'user', + 'root_route' => 'user', + 'route_image' => 'image', + 'route_album' => 'album', + ] + ], + 'CHEVERETO_ENABLE_CDN' => ['0', + [ + 'cdn' => false, + 'cdn_url' => '' + ] + ], + 'CHEVERETO_ENABLE_SERVICE_AKISMET' => ['0', + [ + 'akismet' => false, + 'akismet_api_key' => '' + ] + ], + 'CHEVERETO_ENABLE_SERVICE_PROJECTARACHNID' => ['0', + [ + 'arachnid' => false, + 'arachnid_key' => '' + ] + ], + 'CHEVERETO_ENABLE_SERVICE_STOPFORUMSPAM' => ['0', + [ + 'stopforumspam' => false, + ] + ], + 'CHEVERETO_ENABLE_SERVICE_MODERATECONTENT' => ['0', + [ + 'moderatecontent' => false, + 'moderatecontent_key' => '' + ] + ], + 'CHEVERETO_ENABLE_CAPTCHA' => ['0', + [ + 'captcha' => false, + 'captcha_secret' => '', + 'captcha_sitekey' => '', + 'captcha_threshold' => '', + 'force_captcha_contact_page' => false, + ] + ], + 'CHEVERETO_ENABLE_LANGUAGE_CHOOSER' => ['0', + [ + 'auto_language' => false, + 'language_chooser_enable' => false, + ] + ], + 'CHEVERETO_ENABLE_UPLOAD_WATERMARK' => ['0', + [ + 'watermark_enable_admin' => false, + 'watermark_enable_file_gif' => false, + 'watermark_enable_guest' => false, + 'watermark_enable_user' => false, + 'watermark_enable' => false, + 'watermark_image' => 'default/watermark.png', + 'watermark_margin' => '10', + 'watermark_opacity' => '50', + 'watermark_percentage' => '4', + 'watermark_position' => 'center center', + 'watermark_target_min_height' => '100', + 'watermark_target_min_width' => '100', + ] + ], + ] as $envKey => $settingValues) { + if (env()[$envKey] == $settingValues[0]) { + foreach ($settingValues[1] as $k => $v) { + $settings[$k] = $v; + } + } + } + foreach ($settings as $k => &$v) { + nullify_string($v); + } + foreach ($defaults as $k => &$v) { + nullify_string($v); + } + if (isset($settings['theme_logo_height'])) { + $settings['theme_logo_height'] = (int) $settings['theme_logo_height']; + } + if ($settings['website_mode'] == 'personal') { + if (array_key_exists('website_mode_personal_routing', $settings)) { + if (is_null($settings['website_mode_personal_routing']) || $settings['website_mode_personal_routing'] == '/') { + $settings['website_mode_personal_routing'] = '/'; + } else { + $settings['website_mode_personal_routing'] = get_regex_match($settings['routing_regex'], $settings['website_mode_personal_routing'], '#', 1); + } + } + if (!is_integer($settings['website_mode_personal_uid'])) { + $settings['website_mode_personal_uid'] = 1; + } + + foreach ($settings['single_user_mode_on_disables'] as $k) { + $settings[$k] = false; + } + $settings['enable_likes'] = false; + $settings['enable_followers'] = false; + } + if (is_null($settings['homepage_cta_fn'])) { + $settings['homepage_cta_fn'] = 'cta-upload'; + } + if ($settings['homepage_cta_fn'] == 'cta-link' && !is_url($settings['homepage_cta_fn_extra'])) { + $settings['homepage_cta_fn_extra'] = get_regex_match($settings['routing_regex_path'], $settings['homepage_cta_fn_extra'], '#', 1); + } + if (!is_null($settings['languages_disable'])) { + $languages_disable = (array) explode(',', $settings['languages_disable']); + $languages_disable = array_filter(array_unique($languages_disable)); + } else { + $languages_disable = []; + } + $settings['languages_disable'] = $languages_disable; + if (hasEncryption()) { + $settings = decryptValues(self::ENCRYPTED_NAMES, $settings); + } + self::$settings = $settings; + self::$defaults = $defaults; + self::$typeset = $typeset; + self::$instance = $this; + } + + public static function getInstance(): self + { + if (!isset(self::$instance)) { + throw new LogicException( + message('No %type% initialized') + ->withCode('%type%', static::class), + 600 + ); + } + + return self::$instance; + } + + public static function getStatic(string $var): mixed + { + $instance = self::getInstance(); + + return $instance::$$var; + } + + public static function get(?string $key = null): mixed + { + $settings = self::getStatic('settings'); + if ($key === null) { + return $settings; + } + $value = $settings[$key] ?? null; + $typeset = self::getStatic('typeset'); + + return match ($typeset[$key] ?? null) { + 'bool' => (bool) $value, + default => $value, + }; + } + + public static function getTypeset(string $key): string + { + $typeset = self::getStatic('typeset'); + + return $typeset[$key] ?? '!'; + } + + public static function hasKey(string $key): bool + { + $settings = self::getStatic('settings'); + + return array_key_exists($key, $settings); + } + + public static function getType(int|string $val): string + { + return ($val === 0 || $val === 1) ? 'bool' : 'string'; + } + + public static function getDefaults(?string $key = null): mixed + { + $defaults = self::getStatic('defaults'); + if (!is_null($key)) { + return $defaults[$key]; + } else { + return $defaults; + } + } + + public static function getDefault(string $key): mixed + { + return self::getDefaults($key); + } + + public static function setValues(array $values): void + { + self::$settings = $values; + } + + public static function setValue(string $key, mixed $value): void + { + self::$settings[$key] = $value ?? null; + } + + public static function insert(array $keyValues): bool + { + $query = ''; + $binds = []; + $table = DB::getTable('settings'); + $query_tpl = + <<<SQL + INSERT INTO `$table` (setting_name, setting_value, setting_default, setting_typeset) VALUES (%name, %value, %value, %typeset); + SQL; + $plainText = $keyValues; + if (hasEncryption()) { + $keyValues = encryptValues(self::ENCRYPTED_NAMES, $keyValues); + } + $i = 0; + foreach ($keyValues as $k => $v) { + $value = $plainText[$k]; + $query .= strtr( + $query_tpl, + [ + '%name' => ':n_' . $i, + '%value' => ':v_' . $i, + '%typeset' => ':t_' . $i, + ] + ); + $binds[':n_' . $i] = $k; + $binds[':v_' . $i] = $v; + $binds[':t_' . $i] = ($value === 0 || $value === 1) ? 'bool' : 'string'; + ++$i; + } + unset($i); + $db = DB::getInstance(); + $db->query($query); + foreach ($binds as $bindK => $bindV) { + $db->bind($bindK, $bindV); + } + $db->exec(); + + return true; + } + + public static function update(array $keyValues): bool + { + $query = ''; + $binds = []; + $query_tpl = 'UPDATE `' + . DB::getTable('settings') + . '` SET `setting_value` = %v WHERE `setting_name` = %k;' . "\n"; + $plainText = $keyValues; + if (hasEncryption()) { + $keyValues = encryptValues(self::ENCRYPTED_NAMES, $keyValues); + } + $i = 0; + foreach ($keyValues as $k => $v) { + self::setValue($k, $plainText[$k]); + $query .= strtr( + $query_tpl, + ['%v' => ':v_' . $i, '%k' => ':n_' . $i] + ); + $binds[':v_' . $i] = $v; + $binds[':n_' . $i] = $k; + ++$i; + } + unset($i); + $db = DB::getInstance(); + $db->query($query); + foreach ($binds as $bindK => $bindV) { + $db->bind($bindK, $bindV); + } + + return $db->exec(); + } + + /** + * @deprecate + */ + public static function getChevereto(): array + { + $api = 'https://chevereto.com/api/'; + + return [ + 'id' => '', + 'edition' => APP_NAME, + 'version' => APP_VERSION, + 'source' => [ + 'label' => 'chevereto.com', + 'url' => 'https://chevereto.com/panel/downloads', + ], + 'api' => [ + 'download' => $api . 'download', + 'get' => [ + 'info' => $api . 'get/info/4', + ], + ], + ]; + } +} diff --git a/app/src/Legacy/Classes/Stat.php b/app/src/Legacy/Classes/Stat.php new file mode 100644 index 0000000..0359979 --- /dev/null +++ b/app/src/Legacy/Classes/Stat.php @@ -0,0 +1,274 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevere\Throwable\Exceptions\OverflowException; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Vars\env; +use DateTime; +use Exception; + +class Stat +{ + public static function getTotals(): array + { + $res = DB::queryFetchSingle('SELECT * FROM ' . DB::getTable('stats') . ' WHERE stat_type = "total"'); + unset($res['stat_id'], $res['stat_type'], $res['date_gmt']); + + return DB::formatRow($res, 'stat'); + } + + public static function getDaily(): array + { + $res = DB::queryFetchAll('SELECT * FROM ' . DB::getTable('stats') . ' WHERE stat_type = "date" ORDER BY stat_date_gmt DESC LIMIT 365'); + $res = DB::formatRows($res, 'stat'); + + return array_reverse($res); + } + + public static function getByDateCumulative(): array + { + $res = static::getDaily(); + $return = []; + $cumulative = [ + 'users' => 0, + 'images' => 0, + 'albums' => 0, + 'image_views' => 0, + 'album_views' => 0, + 'image_likes' => 0, + 'disk_used' => 0, + ]; + foreach ($res as $k => $v) { + foreach ($cumulative as $col => &$sum) { + $sum += $v[$col]; + $v[$col . '_acc'] = $sum; + } + $return[$v['date_gmt']] = $v; + } + + return $return; + } + + public static function assertMax(string $type): void + { + if (!in_array($type, ['images', 'albums', 'users'])) { + throw new LogicException( + message('Invalid stat type: %s') + ->withCode('%s', $type), + 600 + ); + } + $maxLimit = (int) env()['CHEVERETO_MAX_' . strtoupper($type)]; + if ($maxLimit > 0) { + $count = Stat::getTotals()[$type] ?? 0; + if (($count + 1) > $maxLimit) { + throw new OverflowException( + message('Max %t reached (limit %s)') + ->withStrtr('%t', $type) + ->withStrtr('%s', strval($maxLimit)), + 999 + ); + } + } + } + + public static function rebuildTotals(): void + { + $query = 'TRUNCATE TABLE `%table_prefix%stats`; + INSERT INTO `%table_prefix%stats` (stat_id, stat_date_gmt, stat_type) VALUES ("1", NULL, "total") ON DUPLICATE KEY UPDATE stat_type=stat_type; + UPDATE `%table_prefix%stats` SET + stat_images = (SELECT IFNULL(COUNT(*),0) FROM `%table_prefix%images`), + stat_albums = (SELECT IFNULL(COUNT(*),0) FROM `%table_prefix%albums`), + stat_users = (SELECT IFNULL(COUNT(*),0) FROM `%table_prefix%users`), + stat_image_views = (SELECT IFNULL(SUM(image_views),0) FROM `%table_prefix%images`), + stat_disk_used = (SELECT IFNULL(SUM(image_size) + SUM(image_thumb_size) + SUM(image_medium_size),0) FROM `%table_prefix%images`) + WHERE stat_type = "total"; + INSERT INTO `%table_prefix%stats` (stat_type, stat_date_gmt, stat_images, stat_image_views, stat_disk_used) + SELECT sb.stat_type, sb.stat_date_gmt, sb.stat_images, sb.stat_image_views, sb.stat_disk_used + FROM (SELECT "date" AS stat_type, DATE(image_date_gmt) AS stat_date_gmt, COUNT(*) AS stat_images, SUM(image_views) AS stat_image_views, SUM(image_size + image_thumb_size + image_medium_size) AS stat_disk_used FROM `%table_prefix%images` GROUP BY DATE(image_date_gmt)) AS sb + ON DUPLICATE KEY UPDATE stat_images = sb.stat_images; + INSERT INTO `%table_prefix%stats` (stat_type, stat_date_gmt, stat_users) + SELECT sb.stat_type, sb.stat_date_gmt, sb.stat_users + FROM (SELECT "date" AS stat_type, DATE(user_date_gmt) AS stat_date_gmt, COUNT(*) AS stat_users FROM `%table_prefix%users` GROUP BY DATE(user_date_gmt)) AS sb + ON DUPLICATE KEY UPDATE stat_users = sb.stat_users; + INSERT INTO `%table_prefix%stats` (stat_type, stat_date_gmt, stat_albums) + SELECT sb.stat_type, sb.stat_date_gmt, sb.stat_albums + FROM (SELECT "date" AS stat_type, DATE(album_date_gmt) AS stat_date_gmt, COUNT(*) AS stat_albums FROM `%table_prefix%albums` GROUP BY DATE(album_date_gmt)) AS sb + ON DUPLICATE KEY UPDATE stat_albums = sb.stat_albums; + UPDATE `%table_prefix%users` SET user_content_views = COALESCE((SELECT SUM(image_views) FROM `%table_prefix%images` WHERE image_user_id = user_id GROUP BY user_id), "0");'; + $sql = strtr($query, [ + '%table_prefix%' => env()['CHEVERETO_DB_TABLE_PREFIX'], + ]); + $db = DB::getInstance(); + $db->query($sql); + $db->exec(); + } + + public static function track(array $args = []): void + { + if (!in_array($args['action'], ['insert', 'update', 'delete'])) { + throw new Exception(sprintf('Invalid stat action "%s" in ', $args['action']), 600); + } + $tables = DB::getTables(); + if (!array_key_exists($args['table'], $tables)) { + throw new Exception(sprintf('Unknown table "%s"', $args['table']), 601); + } + if ($args['action'] === 'insert' && !in_array($args['table'], ['albums', 'images', 'likes', 'users'])) { + throw new Exception(sprintf('Table "%s" does not bind an stat procedure', $args['table']), 601); + } + if ($args['table'] == 'images' && in_array($args['action'], ['insert', 'delete'])) { + if (!isset($args['disk_sum'])) { + $disk_sum_value = 0; + } elseif (preg_match('/^([\+\-]{1})?\s*([\d]+)$/', (string) $args['disk_sum'], $matches)) { + $disk_sum_value = $matches[2]; + } else { + throw new Exception(sprintf('Invalid disk_sum value "%s"', $args['disk_sum']), 604); + } + } + if (!isset($args['value'])) { + $value = 1; + } elseif (preg_match('/^([\+\-]{1})?\s*([\d]+)$/', (string) $args['value'], $matches)) { + $value = $matches[2]; + } else { + throw new Exception(sprintf('Invalid value "%s"', $args['value']), 602); + } + if (!isset($args['date_gmt'])) { + switch ($args['action']) { + case 'insert': + case 'update': + $args['date_gmt'] = datetimegmt(); + + break; + case 'delete': + throw new Exception('Missing date_gmt value', 605); + } + } else { + $date = new DateTime($args['date_gmt']); + $args['date_gmt'] = $date->format('Y-m-d'); + } + $sql_tpl = ''; + switch ($args['action']) { + case 'insert': + switch ($args['table']) { + case 'images': + if (!isset($args['disk_sum'])) { + throw new Exception('Missing disk_sum value', 603); + } + $sql_tpl = + 'UPDATE `%table_stats` SET stat_images = stat_images + %value, stat_disk_used = stat_disk_used + %disk_sum WHERE stat_type = "total";' + . "\n" + . 'INSERT INTO `%table_stats` (stat_type, stat_date_gmt, stat_images, stat_disk_used) VALUES ("date",DATE("%date_gmt"),"%value", "%disk_sum") ON DUPLICATE KEY UPDATE stat_images = stat_images + %value, stat_disk_used = stat_disk_used + %disk_sum;'; + + break; + default: // albums, likes, users + $sql_tpl = + 'UPDATE `%table_stats` SET stat_%related_table = stat_%related_table + %value WHERE stat_type = "total";' + . "\n" + . 'INSERT `%table_stats` (stat_type, stat_date_gmt, stat_%related_table) VALUES ("date",DATE("%date_gmt"),"%value") ON DUPLICATE KEY UPDATE stat_%related_table = stat_%related_table + %value;'; + + break; + } + + break; + + case 'update': + switch ($args['table']) { + case 'images': + case 'albums': + // Track image | album | user views + $sql_tpl = + 'UPDATE `%table_stats` SET stat_%aux_views = stat_%aux_views + %value WHERE stat_type = "total";' + . "\n" + . 'INSERT INTO `%table_stats` (stat_type, stat_date_gmt, stat_%aux_views) VALUES ("date",DATE("%date_gmt"),"%value") ON DUPLICATE KEY UPDATE stat_%aux_views = stat_%aux_views + %value;'; + if (isset($args['user_id'])) { + $sql_tpl .= "\n" . 'UPDATE `%table_users` SET user_content_views = user_content_views + %value WHERE user_id = %user_id;'; + } + $sql_tpl = strtr($sql_tpl, ['%aux' => DB::getFieldPrefix($args['table'])]); + + break; + } + + break; + + case 'delete': + switch ($args['table']) { + case 'images': + $sql_tpl = + 'UPDATE `%table_stats` SET stat_images = GREATEST(stat_images - %value, 0) WHERE stat_type = "total";' + . "\n" + . 'UPDATE `%table_stats` SET stat_images = GREATEST(stat_images - %value, 0) WHERE stat_type = "date" AND stat_date_gmt = DATE("%date_gmt");' + . "\n" + . 'UPDATE `%table_stats` SET stat_image_likes = GREATEST(stat_image_likes - %likes, 0) WHERE stat_type = "total";' + . "\n" + . 'UPDATE `%table_stats` SET stat_image_likes = GREATEST(stat_image_likes - %likes, 0) WHERE stat_type = "date" AND stat_date_gmt = DATE("%date_gmt");' + . "\n" + . 'UPDATE `%table_stats` SET stat_disk_used = GREATEST(stat_disk_used - %disk_sum, 0) WHERE stat_type = "total";' + . "\n" + . 'UPDATE `%table_stats` SET stat_disk_used = GREATEST(stat_disk_used - %disk_sum, 0) WHERE stat_type = "date" AND stat_date_gmt = DATE("%date_gmt");'; + + break; + default: // albums, likes, users + $sql_tpl = + 'UPDATE `%table_stats` SET stat_%related_table = GREATEST(stat_%related_table - %value, 0) WHERE stat_type = "total";' + . "\n" + . 'UPDATE `%table_stats` SET stat_%related_table = GREATEST(stat_%related_table - %value, 0) WHERE stat_type = "date" AND stat_date_gmt = DATE("%date_gmt");'; + if ($args['table'] == 'users') { + $sql_tpl .= + // Update likes stats related to this deleted user + 'UPDATE IGNORE `%table_stats` AS S + INNER JOIN ( + SELECT DATE(like_date_gmt) AS like_date_gmt, COUNT(*) AS cnt + FROM `%table_likes` + WHERE like_user_id = %user_id + GROUP BY DATE(like_date_gmt) + ) AS L ON S.stat_date_gmt = L.like_date_gmt + SET S.stat_image_likes = GREATEST(S.stat_image_likes - COALESCE(L.cnt, "0"), 0) WHERE stat_type = "date"; + UPDATE IGNORE `%table_stats` SET stat_image_likes = GREATEST(stat_image_likes - COALESCE((SELECT COUNT(*) FROM `%table_likes` WHERE like_user_id = %user_id), "0"), 0) WHERE stat_type = "total";' + . "\n" + // Update album stats related to this deleted user + . 'UPDATE IGNORE `%table_stats` AS S + INNER JOIN ( + SELECT DATE(album_date_gmt) AS album_date_gmt, COUNT(*) AS cnt + FROM `%table_albums` + WHERE album_user_id = %user_id + GROUP BY DATE(album_date_gmt) + ) AS A ON S.stat_date_gmt = A.album_date_gmt + SET S.stat_albums = GREATEST(S.stat_albums - COALESCE(A.cnt, "0"), 0) WHERE stat_type = "date"; + UPDATE IGNORE `%table_stats` SET stat_albums = GREATEST(stat_albums - COALESCE((SELECT COUNT(*) FROM `%table_albums` WHERE album_user_id = %user_id), "0"), 0) WHERE stat_type = "total";'; + } + + break; + } + + break; + } + if ($sql_tpl === '') { + throw new LogicException(); + } + $sql = strtr($sql_tpl, [ + '%table_stats' => $tables['stats'], + '%table_users' => $tables['users'], + '%table_likes' => $tables['likes'], + '%table_albums' => $tables['albums'], + '%related_table' => (isset($args['content_type']) ? ($args['content_type'] . '_') : null) . $args['table'], + '%value' => $value, + '%date_gmt' => $args['date_gmt'], + '%user_id' => $args['user_id'] ?? 0, + '%disk_sum' => $disk_sum_value ?? 0, + '%likes' => $args['likes'] ?? 0, + ]); + DB::queryExecute($sql); + } +} diff --git a/app/src/Legacy/Classes/Storage.php b/app/src/Legacy/Classes/Storage.php new file mode 100644 index 0000000..94b077d --- /dev/null +++ b/app/src/Legacy/Classes/Storage.php @@ -0,0 +1,199 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\G\get_basename_without_extension; +use function Chevereto\Legacy\G\get_file_extension; +use function Chevereto\Legacy\G\get_filename_by_method; +use Exception; +use LogicException; + +class Storage +{ + public const ENCRYPTED_NAMES = []; + + public static function getSingle(int $var): array + { + return []; + } + + public static function get(array $values = [], array $sort = [], int $limit = null): array + { + return []; + } + + protected static function requiredByApi(int $api_id): array + { + return ['api_id', 'bucket']; + } + + public static function uploadFiles( + array|string $targets, + array|int $storage, + array $options = [] + ): array { + $pathPrefix = $options['keyprefix'] ?? ''; + if (!is_array($storage)) { + throw new LogicException('Invalid storage'); + } else { + foreach (self::requiredByApi((int) $storage['api_id']) as $k) { + if (!isset($storage[$k])) { + throw new Exception('Missing ' . $k . ' value', 600); + } + } + } + if (!isset($storage['api_type'])) { + $storage['api_type'] = 'local'; + } + $API = self::requireAPI($storage); + $files = []; + if (!empty($targets['file'])) { + $files[] = $targets; + } elseif (!is_array($targets)) { + $files = ['file' => $targets, 'filename' => basename($targets)]; + } else { + $files = $targets; + } + $disk_space_used = 0; + foreach ($files as $k => $v) { + $source_file = $v['file']; + $target_path = $API->realPath() . $pathPrefix; + if ($pathPrefix !== '') { + $API->mkdirRecursive($pathPrefix); + } + $API->put([ + 'filename' => $v['filename'], + 'source_file' => $source_file, + 'path' => $target_path, + ]); + $filesize = @filesize($v['file']); + if ($filesize === false) { + throw new Exception("Can't get filesize for " . $v['file'], 601); + } else { + $disk_space_used += $filesize; + } + $files[$k]['stored_file'] = $storage['url'] . $pathPrefix . $v['filename']; + } + + return $files; + } + + /** + * Delete files from the external storage (using queues for non anon Storages). + * + * @param string|array $targets (key, single array key, multiple array key) + * @param int|array $storage (storage id, storage array) + */ + public static function deleteFiles(string|array $targets, int|array $storage): array|bool + { + if (!is_array($storage)) { + throw new LogicException('Invalid storage'); + } else { + foreach (self::requiredByApi((int) $storage['api_id']) as $k) { + if (!isset($storage[$k])) { + throw new Exception('Missing ' . $k . ' value', 600); + } + } + } + /** @var array $storage */ + $files = []; + if (!empty($targets['key'])) { + $files[] = $targets; + } elseif (!is_array($targets)) { + $files = [['key' => $targets]]; + } else { + $files = $targets; + } + $storage_keys = []; + foreach ($files as $k => $v) { + $files[$v['key']] = $v; + $storage_keys[] = $v['key']; + unset($files[$k]); + } + $deleted = []; + foreach ($storage_keys as $key) { + self::deleteObject($key, $storage); + $deleted[] = $key; + } + + return $deleted !== [] ? $deleted : false; + } + + /** + * Delete a single file from the external storage. + * + * @param string $key representation of the object (file) to delete relative to the bucket + */ + public static function deleteObject(string $key, array $storage): void + { + self::requireAPI($storage)->delete($key); + } + + public static function test(array|int $storage): void + { + } + + public static function insert(array $values): int + { + return 0; + } + + public static function update(int $id, array $values, bool $checkCredentials = true): int + { + return 0; + } + + public static function requireAPI(array $storage): object + { + return new LocalStorage($storage); + } + + public static function getAPIRegions(string $api): array + { + return []; + } + + public static function getStorageValidFilename( + string $filename, + int $storage_id, + string $filenaming, + string $destination + ): string { + if ($filenaming == 'id') { + return $filename; + } + $extension = get_file_extension($filename); + $wanted_names = []; + for ($i = 0; $i < 25; ++$i) { + if ($i > 0 && $i < 5) { + $filenaming = $filenaming == 'random' ? 'random' : 'mixed'; + } elseif ($i > 15) { + $filenaming = 'random'; + } + $filename_by_method = get_filename_by_method($filenaming, $filename); + $wanted_names[] = get_basename_without_extension($filename_by_method); + } + $return = $wanted_names[0]; + + return isset($return) ? ($return . '.' . $extension) : self::getStorageValidFilename($filename, $storage_id, $filenaming, $destination); + } + + public static function regenStorageStats(int $storageId): string + { + return ''; + } + + public static function migrateStorage(int $sourceStorageId, int $targetStorageId): string + { + return ''; + } +} diff --git a/app/src/Legacy/Classes/StorageApis.php b/app/src/Legacy/Classes/StorageApis.php new file mode 100644 index 0000000..0ce21c5 --- /dev/null +++ b/app/src/Legacy/Classes/StorageApis.php @@ -0,0 +1,130 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Vars\env; + +final class StorageApis +{ + private static array $apis = [ + 8 => [ + 'name' => 'Local', + 'type' => 'local', + 'url' => '', + ], + 1 => [ + 'name' => 'Amazon S3', + 'type' => 's3', + 'url' => 'https://s3.amazonaws.com/<bucket>/', + ], + 9 => [ + 'name' => 'S3 compatible', + 'type' => 's3compatible', + 'url' => '', + ], + 2 => [ + 'name' => 'Google Cloud', + 'type' => 'gcloud', + 'url' => 'https://storage.googleapis.com/<bucket>/', + ], + + 3 => [ + 'name' => 'Microsoft Azure', + 'type' => 'azure', + 'url' => 'https://<account>.blob.core.windows.net/<container>/', + ], + 10 => [ + 'name' => 'Alibaba Cloud OSS', + 'type' => 'oss', + 'url' => 'https://<bucket>.<endpoint>/', + ], + 6 => [ + 'name' => 'SFTP', + 'type' => 'sftp', + 'url' => '', + ], + 5 => [ + 'name' => 'FTP', + 'type' => 'ftp', + 'url' => '', + ], + 7 => [ + 'name' => 'OpenStack', + 'type' => 'openstack', + 'url' => '', + ], + 11 => [ + 'name' => 'Backblaze B2 (legacy API)', + 'type' => 'b2', + 'url' => 'https://f002.backblazeb2.com/file/<bucket>/', + ], + ]; + + public static function getApiId(string $type): int + { + foreach (self::$apis as $id => $api) { + if ($api['type'] === $type) { + return $id; + } + } + + return 0; + } + + public static function getEnabled(): array + { + $apis = self::$apis; + if (!(bool) env()['CHEVERETO_ENABLE_LOCAL_STORAGE']) { + unset($apis[8]); + } + + return $apis; + } + + public static function getAnon( + string $type, + string $name, + string $url, + string $bucket, + ?string $key = null, + ?string $secret = null, + ?string $region = null, + ?string $server = null, + ?string $service = null, + ?string $accountId = null, + ?string $accountName = null + ): array { + return [ + 'api_id' => self::getApiId($type), + 'name' => $name, + 'url' => rtrim($url, '/') . '/', + 'bucket' => $type == 'local' ? (rtrim($bucket, '/') . '/') : $bucket, + 'region' => $region, + 'server' => $server, + 'service' => $service, + 'account_id' => $accountId, + 'account_name' => $accountName, + 'key' => $key, + 'secret' => $secret, + 'id' => null, + 'is_https' => str_starts_with($url, 'https'), + 'is_active' => true, + 'capacity' => null, + 'space_used' => null, + ]; + } + + public static function getApiType(int $api_id): string + { + return self::$apis[$api_id]['type']; + } +} diff --git a/app/src/Legacy/Classes/TwoFactor.php b/app/src/Legacy/Classes/TwoFactor.php new file mode 100644 index 0000000..4ae2dbc --- /dev/null +++ b/app/src/Legacy/Classes/TwoFactor.php @@ -0,0 +1,156 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use function Chevereto\Encryption\decryptValues; +use function Chevereto\Encryption\encryptValues; +use function Chevereto\Encryption\hasEncryption; +use function Chevereto\Legacy\G\datetimegmt; +use PragmaRX\Google2FAQRCode\Google2FA; +use PragmaRX\Google2FAQRCode\QRCode\Chillerlan; +use Throwable; + +class TwoFactor +{ + public const ENCRYPTED_NAMES = [ + 'secret' + ]; + + private Google2FA $google2FA; + + private string $secret; + + public function __construct() + { + $this->google2FA = new Google2FA(); + $this->google2FA->setQrcodeService( + new Chillerlan() + ); + $this->secret = $this->google2FA->generateSecretKey(16); + } + + public function google2FA(): Google2FA + { + return $this->google2FA; + } + + public function secret(): string + { + return $this->secret; + } + + public function withSecret(string $secret): self + { + $new = clone $this; + $new->secret = $secret; + + return $new; + } + + public function getQRCodeInline( + string $company, + string $holder, + int $size = 500, + ): string { + return $this->google2FA->getQRCodeInline( + company: $company, + holder: $holder, + secret: $this->secret, + size: $size, + ); + } + + public function verify(string $userOTP): bool + { + return $this->google2FA + ->verify($userOTP, $this->secret); + } + + public function insert(int $userId): int + { + $values = [ + 'user_id' => $userId, + 'date_gmt' => datetimegmt(), + 'secret' => $this->secret, + ]; + if (hasEncryption()) { + $values = encryptValues(self::ENCRYPTED_NAMES, $values); + } + self::assertSecret($values['secret']); + + return DB::insert('two_factors', $values); + } + + public static function update(int $id, array $values): int + { + $values['date_gmt'] = datetimegmt(); + if (hasEncryption()) { + $values = encryptValues(self::ENCRYPTED_NAMES, $values); + } + self::assertSecret($values['secret']); + + return DB::update('two_factors', $values, ['id' => $id]); + } + + protected static function assertSecret(string $secret): void + { + if ($secret === '') { + throw new LogicException( + message("Secret can't be empty string"), + 600 + ); + } + } + + public static function delete(int $userId): void + { + DB::delete('two_factors', ['user_id' => $userId]); + } + + public static function hasFor(int $userId): bool + { + return self::getFor($userId) !== []; + } + + public static function get(int $id, string $by = 'id'): array + { + try { + $get = DB::get('two_factors', [$by => $id], 'AND', ['field' => 'id', 'order' => 'desc'])[0] + ?? null; + } catch (Throwable) { + return []; + } + + $return = DB::formatRow($get, 'two_factor') ?? []; + if ($return === []) { + return $return; + } + if (hasEncryption()) { + $return = decryptValues(self::ENCRYPTED_NAMES, $return); + } + self::assertSecret($return['secret']); + + return $return; + } + + public static function getFor(int $userId): array + { + return self::get($userId, 'user_id'); + } + + public static function getSecretFor(int $userId): string + { + return self::getFor($userId)['secret']; + } +} diff --git a/app/src/Legacy/Classes/Upload.php b/app/src/Legacy/Classes/Upload.php new file mode 100644 index 0000000..1156e65 --- /dev/null +++ b/app/src/Legacy/Classes/Upload.php @@ -0,0 +1,604 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevereto\Config\Config; +use function Chevereto\Legacy\G\add_ending_slash; +use function Chevereto\Legacy\G\ends_with; +use function Chevereto\Legacy\G\fetch_url; +use function Chevereto\Legacy\G\format_bytes; +use function Chevereto\Legacy\G\forward_slash; +use function Chevereto\Legacy\G\get_basename_without_extension; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_file_extension; +use function Chevereto\Legacy\G\get_filename; +use function Chevereto\Legacy\G\get_image_fileinfo; +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\G\is_animated_webp; +use function Chevereto\Legacy\G\is_image_url; +use function Chevereto\Legacy\G\is_url; +use function Chevereto\Legacy\G\is_writable; +use function Chevereto\Legacy\G\name_unique_file; +use function Chevereto\Legacy\G\unlinkIfExists; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\missing_values_to_exception; +use function Chevereto\Legacy\system_notification_email; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use Exception; +use Intervention\Image\ImageManagerStatic; +use PHPExif\Exif; +use stdClass; +use Throwable; + +class Upload +{ + private string $source_name; + + private string $extension; + + private array $source_image_fileinfo; + + private string $fixed_filename; + + private ?Exif $source_image_exif = null; + + private string $uploaded_file; + + private ImageConvert $ImageConvert; + + private object $moderation; + + // filename => name.ext + // file => /full/path/to/name.ext + // name => name + + private array|string $source; + + private array $uploaded = []; + + public bool $detectFlood = true; + + private array $options = []; + + private string $destination; + + private string $type; + + private string $name; + + private ?int $storage_id; + + private string $downstream; + + private string $source_filename; + + public const URL_SCHEMES = [ + 'http', + 'https', + 'ftp' + ]; + + public function __construct() + { + $this->moderation = new stdClass(); + } + + public function uploaded(): array + { + return $this->uploaded; + } + + public function source(): string|array + { + return $this->source; + } + + public function moderation(): object + { + return $this->moderation; + } + + public function checkValidUrl(string $url): void + { + $aux = strtolower($url); + $scheme = parse_url($aux, PHP_URL_SCHEME); + if (!in_array($scheme, self::URL_SCHEMES)) { + throw new LogicException( + message("Unsupported URL scheme `%scheme%`") + ->withCode('%scheme%', $scheme), + 400 + ); + } + $host = parse_url($aux, PHP_URL_HOST); + if (parse_url(Config::host()->hostname(), PHP_URL_HOST) === $host) { + throw new LogicException( + message("Unsupported self host URL upload"), + 400 + ); + } + $ip = gethostbyname($host); + $typePub = \IPLib\Range\Type::getName(\IPLib\Range\Type::T_PUBLIC); + $address = \IPLib\Factory::parseAddressString($ip); + $type = $address->getRangeType(); + $typeName = \IPLib\Range\Type::getName($type); + if ($typeName !== $typePub) { + throw new LogicException( + message("Unsupported non-public IP address for upload"), + 400 + ); + } + } + + public function setSource(array|string $source): void + { + $this->source = $source; + $this->type = (is_image_url($this->source) || is_url($this->source)) + ? 'url' + : 'file'; + if ($this->type === 'url') { + if (Settings::get('enable_uploads_url') === false) { + throw new LogicException( + message('URL uploading is disabled'), + 403 + ); + } + $this->checkValidUrl($this->source); + } + } + + public function setDestination(string $destination): void + { + $this->destination = forward_slash($destination); + } + + public function setStorageId(?int $storage_id): void + { + $this->storage_id = $storage_id; + } + + public function setFilename(string $name): void + { + $this->name = $name; + } + + public function setOptions(array $options): void + { + $this->options = $options; + } + + public function setOption(string $key, mixed $value): void + { + $this->options[$key] = $value; + } + + public static function getDefaultOptions(): array + { + return [ + 'max_size' => get_bytes('2 MB'), + 'filenaming' => 'original', + 'exif' => true, + 'allowed_formats' => self::getAvailableImageFormats(), + ]; + } + + public function exec(): void + { + $this->options = array_merge(self::getDefaultOptions(), (array) $this->options); + $this->validateInput(); // Exception 1 + $this->fetchSource(); // Exception 2 + $this->validateSourceFile(); // Exception 3 + if (!is_array($this->options['allowed_formats'])) { + $this->options['allowed_formats'] = explode(',', $this->options['allowed_formats']); + } + $this->source_name = get_basename_without_extension($this->type == 'url' ? $this->source : $this->source['name']); + $this->extension = $this->source_image_fileinfo['extension']; + if (!isset($this->name)) { + $this->name = $this->source_name; + } + $this->name = ltrim($this->name, '.'); + if (get_file_extension($this->name) == $this->extension) { + $this->name = get_basename_without_extension($this->name); + } + $this->fixed_filename = preg_replace('/(.*)\.(th|md|original|lg)\.([\w]+)$/', '$1.$3', $this->name . '.' . $this->extension); + $is_360 = false; + if ($this->extension == 'jpeg') { + $xmpDataExtractor = new XmpMetadataExtractor(); + $xmpData = $xmpDataExtractor->extractFromFile($this->downstream); + $reader = \PHPExif\Reader\Reader::factory(\PHPExif\Reader\Reader::TYPE_NATIVE); + $is_360 = false; + if (isset($xmpData['rdf:RDF']['rdf:Description']['@attributes']['ProjectionType'])) { + $is_360 = $xmpData['rdf:RDF']['rdf:Description']['@attributes']['ProjectionType'] == 'equirectangular'; + } + if (array_key_exists('exif', $this->options)) { + try { + $this->source_image_exif = $reader->read($this->downstream); + } catch (Throwable $e) { + } + if ($this->source_image_exif instanceof Exif) { + $this->source_image_exif->setFileName($this->source_filename); + if ($this->source_image_exif->getOrientation() !== false) { + ImageManagerStatic::make($this->downstream)->orientate()->save(); + } + } + if (!$this->options['exif']) { + $this->source_image_exif = null; + if (ImageManagerStatic::getManager()->config['driver'] === 'imagick') { + $img = ImageManagerStatic::make($this->downstream); + $img->getCore()->stripImage(); + $img->save(); + } else { + $img = @imagecreatefromjpeg($this->downstream); + if ($img) { + imagejpeg($img, $this->downstream, 90); + imagedestroy($img); + } else { + throw new Exception("Unable to create a new JPEG without Exif data", 644); + } + } + } + } + } + /* + * Set uploaded_file + * Local storage uploads will be allocated at the target destination + * External storage will be allocated to the temp directory + */ + if (isset($this->storage_id)) { + $this->uploaded_file = forward_slash(dirname($this->downstream)) . '/' . Storage::getStorageValidFilename($this->fixed_filename, $this->storage_id, $this->options['filenaming'], $this->destination); + } else { + $this->uploaded_file = name_unique_file($this->destination, $this->fixed_filename, $this->options['filenaming']); + } + $this->panicExtension($this->uploaded_file); + $this->source = [ + 'filename' => $this->source_filename, // file.ext + 'name' => $this->source_name, // file + 'image_exif' => $this->source_image_exif, // exif-reader + 'fileinfo' => get_image_fileinfo($this->downstream), // fileinfo array + ]; + if (stream_resolve_include_path($this->downstream) == false) { + throw new Exception('Concurrency: Downstream gone, aborting operation', 666); + } + if (stream_resolve_include_path($this->uploaded_file) != false) { + throw new Exception('Concurrency: Target uploaded file already exists, aborting operation', 666); + } + + try { + $uploaded = rename($this->downstream, $this->uploaded_file); + } catch (Throwable $e) { + $uploaded = file_exists($this->uploaded_file); + } + unlinkIfExists($this->downstream); + if (!$uploaded) { + unlinkIfExists($this->uploaded_file); + + throw new Exception("Can't move temp file to its destination", 600); + } + if (!isset($this->storage_id)) { + try { + chmod($this->uploaded_file, 0644); + } catch (Throwable $e) { + } + } + $fileinfo = get_image_fileinfo($this->uploaded_file); + $fileinfo['is_360'] = $is_360; + $this->uploaded = [ + 'file' => $this->uploaded_file, + 'filename' => get_filename($this->uploaded_file), + 'name' => get_basename_without_extension($this->uploaded_file), + 'fileinfo' => $fileinfo, + ]; + } + + public static function getAvailableImageFormats(): array + { + $formats = Settings::get('upload_available_image_formats'); + + return explode(',', $formats); + } + + public static function getEnabledImageFormats(): array + { + return Image::getEnabledImageFormats(); + } + + /** + * validate_input aka "first stage validation" + * This checks for valid input source data. + * + * @Exception 1XX + */ + protected function validateInput(): void + { + $check_missing = ['type', 'source', 'destination']; + missing_values_to_exception($this, Exception::class, $check_missing, 600); + if (!preg_match('/^(url|file)$/', $this->type)) { + throw new Exception('Invalid upload type', 610); + } + if ($this->detectFlood) { + $flood = self::handleFlood(); + if ($flood !== []) { + throw new Exception( + _s( + 'Flooding detected. You can only upload %limit% %content% per %time%', + [ + '%content%' => _n('image', 'images', $flood['limit']), + '%limit%' => $flood['limit'], + '%time%' => $flood['by'] + ] + ), + 130 + ); + } + } + if ($this->type == 'file') { + if (count($this->source) < 5) { // Valid $_FILES ? + throw new Exception('Invalid file source', 620); + } + } elseif ($this->type == 'url') { + if (!is_image_url($this->source) && !is_url($this->source)) { + throw new Exception('Invalid image URL', 622); + } + } + if (!is_dir($this->destination)) { // Try to create the missing directory + $base_dir = add_ending_slash(PATH_PUBLIC . explode('/', preg_replace('#' . PATH_PUBLIC . '#', '', $this->destination, 1))[0]); + $base_perms = fileperms($base_dir); + $old_umask = umask(0); + $make_destination = mkdir($this->destination, $base_perms, true); + chmod($this->destination, $base_perms); + umask($old_umask); + if (!$make_destination) { + throw new Exception('Destination ' . $this->destination . ' is not a dir', 630); + } + } + if (!is_readable($this->destination)) { + throw new Exception("Can't read target destination dir", 631); + } + if (!is_writable($this->destination)) { + throw new Exception("Can't write target destination dir", 632); + } + $this->destination = add_ending_slash($this->destination); + } + + public static function getTempNam(string $destination): string + { + $tempNam = @tempnam(sys_get_temp_dir(), 'chvtemp'); + if (!$tempNam || !@is_writable($tempNam)) { + $tempNam = @tempnam($destination, 'chvtemp'); + if (!$tempNam) { + throw new Exception("Can't get a tempnam", 600); + } + } + + return $tempNam; + } + + protected function panicExtension(string $filename) + { + if ( + ends_with('.php', $filename) + || ends_with('.htaccess', $filename)) { + throw new Exception(sprintf('Unwanted extension for %s', $filename), 600); + } + $extension = get_file_extension($filename); + if (!in_array($extension, self::getEnabledImageFormats())) { + throw new Exception(sprintf('Unable to handle upload for %s', $filename), 600); + } + } + + protected function fetchSource(): void + { + $this->downstream = static::getTempNam($this->destination); + if ($this->type == 'file') { + if ($this->source['error'] !== UPLOAD_ERR_OK) { + switch ($this->source['error']) { + case UPLOAD_ERR_INI_SIZE: + throw new Exception( + 'File too big (UPLOAD_ERR_INI_SIZE)', + 601 + ); + case UPLOAD_ERR_FORM_SIZE: + throw new Exception( + 'File exceeds form max size (UPLOAD_ERR_FORM_SIZE)', + 601 + ); + case UPLOAD_ERR_PARTIAL: + throw new Exception( + 'File was partially uploaded (UPLOAD_ERR_PARTIAL)', + 601 + ); + case UPLOAD_ERR_NO_FILE: + throw new Exception( + 'No file was uploaded (UPLOAD_ERR_NO_FILE)', + 601 + ); + case UPLOAD_ERR_NO_TMP_DIR: + throw new Exception( + 'Missing temp folder (UPLOAD_ERR_NO_TMP_DIR)', + 601 + ); + case UPLOAD_ERR_CANT_WRITE: + throw new Exception( + 'System write error (UPLOAD_ERR_CANT_WRITE)', + 601 + ); + case UPLOAD_ERR_EXTENSION: + throw new Exception( + 'The upload was stopped (UPLOAD_ERR_EXTENSION)', + 601 + ); + } + } + + try { + $renamed = rename($this->source['tmp_name'], $this->downstream); + } catch (Throwable $e) { + $renamed = file_exists($this->downstream); + } + if (!$renamed) { + throw new Exception('Unable to rename tmp_name to downstream', 622); + } + } elseif ($this->type == 'url') { + fetch_url($this->source, $this->downstream); + } + $this->source_filename = basename($this->type == 'file' ? $this->source['name'] : $this->source); + } + + protected function validateSourceFile(): void + { + if (!file_exists($this->downstream)) { + throw new Exception("Can't fetch target upload source (downstream)", 600); + } + $this->source_image_fileinfo = get_image_fileinfo($this->downstream); + if (!$this->source_image_fileinfo) { + throw new Exception("Can't get target upload source info", 610); + } + if ($this->source_image_fileinfo['width'] == '' || $this->source_image_fileinfo['height'] == '') { + throw new Exception('Invalid image', 400); + } + if (!in_array($this->source_image_fileinfo['extension'], self::getAvailableImageFormats())) { + throw new Exception('Unavailable image format', 613); + } + if (!in_array($this->source_image_fileinfo['extension'], $this->options['allowed_formats'])) { + throw new Exception(sprintf('Disabled image format (%s)', $this->source_image_fileinfo['extension']), 614); + } + if (!$this->isValidImageMime($this->source_image_fileinfo['mime'])) { + throw new Exception('Invalid image mimetype', 612); + } + if (!$this->options['max_size']) { + $this->options['max_size'] = self::getDefaultOptions()['max_size']; + } + if ($this->source_image_fileinfo['size'] > $this->options['max_size']) { + throw new Exception('File too big - max ' . format_bytes($this->options['max_size']), 400); + } + if ($this->source_image_fileinfo['extension'] == 'bmp') { + $this->ImageConvert = new ImageConvert($this->downstream, 'png', $this->downstream); + $this->downstream = $this->ImageConvert->out(); + $this->source_image_fileinfo = get_image_fileinfo($this->downstream); + } + if ($this->source_image_fileinfo['extension'] == 'webp' + && is_animated_webp($this->downstream) + && ImageManagerStatic::getManager()->config['driver'] === 'gd' + ) { + throw new Exception('Animated WebP is not supported', 400); + } + + if (Settings::get('arachnid')) { + $arachnid = new Arachnid( + authorization: Settings::get('arachnid_key'), + filePath: $this->downstream + ); + if ($arachnid->isSuccess()) { + $arachnid->assertIsAllowed(); + } else { + throw new Exception('Error processing Arachnid moderation: ' . $arachnid->errorMessage(), 600); + } + } + + if (Settings::get('moderatecontent') + && ( + Settings::get('moderatecontent_block_rating') != '' || + Settings::get('moderatecontent_flag_nsfw') + ) + ) { + $moderateContent = new ModerateContent($this->downstream, $this->source_image_fileinfo); + if ($moderateContent->isSuccess()) { + $this->moderation = $moderateContent->moderation(); + } else { + throw new Exception('Error processing ModerateContent: ' . $moderateContent->errorMessage(), 610); + } + } + } + + protected static function handleFlood(): array + { + if (!getSetting('flood_uploads_protection') || Login::isAdmin()) { + return []; + } + $flood_limit = []; + foreach (['minute', 'hour', 'day', 'week', 'month'] as $v) { + $flood_limit[$v] = getSetting('flood_uploads_' . $v); + } + + try { + $db = DB::getInstance(); + $flood_db = $db->queryFetchSingle( + 'SELECT + COUNT(IF(image_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MINUTE), 1, NULL)) AS minute, + COUNT(IF(image_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 HOUR), 1, NULL)) AS hour, + COUNT(IF(image_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 DAY), 1, NULL)) AS day, + COUNT(IF(image_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 WEEK), 1, NULL)) AS week, + COUNT(IF(image_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH), 1, NULL)) AS month + FROM ' . DB::getTable('images') . " WHERE image_uploader_ip='" . get_client_ip() . "' AND image_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH)" + ); + } catch (Exception $e) { + $flood_db = []; + } // Silence + if ($flood_db === false) { + return []; + } + $is_flood = false; + $flood_by = ''; + foreach (['minute', 'hour', 'day', 'week', 'month'] as $v) { + if ($flood_limit[$v] > 0 && ($flood_db[$v] ?? 0) >= $flood_limit[$v]) { + $flood_by = $v; + $is_flood = true; + + break; + } + } + if ($is_flood) { + if (getSetting('flood_uploads_notify') && !session()['flood_uploads_notify'][$flood_by]) { + try { + $logged_user = Login::getUser(); + $message = strtr('Flooding IP <a href="' . get_public_url('search/images/?q=ip:%ip') . '">%ip</a>', ['%ip' => get_client_ip()]) . '<br>'; + if ($logged_user !== []) { + $message .= 'User <a href="' . $logged_user['url'] . '">' . $logged_user['name'] . '</a><br>'; + } + $message .= '<br>'; + $message .= '<b>Uploads per time period</b><br>'; + $message .= 'Minute: ' . $flood_db['minute'] . '<br>'; + $message .= 'Hour: ' . $flood_db['hour'] . '<br>'; + $message .= 'Week: ' . $flood_db['day'] . '<br>'; + $message .= 'Month: ' . $flood_db['week'] . '<br>'; + system_notification_email(['subject' => 'Flood report IP ' . get_client_ip(), 'message' => $message]); + $addValues = session()['flood_uploads_notify']; + $addValues[$flood_by] = true; + sessionVar()->put('flood_uploads_notify', $addValues); + } catch (Exception $e) { + } // Silence + } + + return [ + 'flood' => true, + 'limit' => $flood_limit[$flood_by], + 'count' => $flood_db[$flood_by], + 'by' => $flood_by + ]; + } + + return []; + } + + protected function isValidImageMime(string $mime): bool + { + return preg_match("#image\/(gif|pjpeg|jpeg|png|x-png|bmp|x-ms-bmp|x-windows-bmp|webp)$#", $mime) === 1; + } + + protected function isValidNamingOption(string $string): bool + { + return in_array($string, ['mixed', 'random', 'original']); + } +} diff --git a/app/src/Legacy/Classes/User.php b/app/src/Legacy/Classes/User.php new file mode 100644 index 0000000..9033d3c --- /dev/null +++ b/app/src/Legacy/Classes/User.php @@ -0,0 +1,616 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\Classes; + +use function Chevereto\Legacy\assertNotStopWords; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Legacy\G\abbreviate_number; +use function Chevereto\Legacy\G\absolute_to_relative; +use function Chevereto\Legacy\G\datetime; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\G\is_route_available; +use function Chevereto\Legacy\G\is_url_web; +use function Chevereto\Legacy\G\linkify; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\rrmdir; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\G\unlinkIfExists; +use function Chevereto\Legacy\get_redirect_url; +use function Chevereto\Legacy\get_users_image_url; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\linkify_redirector; +use function Chevereto\Legacy\system_notification_email; +use function Chevereto\Vars\env; +use Exception; + +class User +{ + public static function getSingle(mixed $var, string $by = 'id', bool $pretty = true): array + { + $user_db = DB::get('users', [$by => $var], 'AND', [], 1); + if (!is_array($user_db) + || $user_db === [] + ) { + return []; + } + $connections = Login::getUserConnections($user_db['user_id']); + $aux = []; + foreach ($connections as $connection) { + $aux[$connection['name']] = $connection; + } + $user_db['user_login'] = $aux; + $user_db['user_connections_count'] = count($connections); + foreach (['user_image_count', 'user_album_count'] as $v) { + if (is_null($user_db[$v]) || $user_db[$v] < 0) { + $user_db[$v] = 0; + } + } + $user_db['user_is_admin'] ??= false; + $user_db['user_is_manager'] ??= false; + $user_db['user_is_content_manager'] = $user_db['user_is_admin'] || $user_db['user_is_manager']; + if (!array_key_exists('user_following', $user_db)) { + $user_db['user_following'] = 0; + } + if (!array_key_exists('user_followers', $user_db)) { + $user_db['user_followers'] = 0; + } + if (isset($user_db['user_name'])) { + $user_db['user_name'] = self::sanitizeUserName($user_db['user_name']); + } + if ($pretty) { + $user_db = self::formatArray($user_db); + } + + return $user_db; + } + + public static function getPrivate(): array + { + return [ + 'id' => 0, + 'name' => _s('Private profile'), + 'username' => 'private', + 'name_short' => _s('Private'), + 'url' => get_public_url(), + 'album_count' => 0, + 'image_count' => 0, + 'image_count_label' => _n('image', 'images', 0), + 'album_count_display' => 0, + 'image_count_display' => 0, + 'is_private' => true + ]; + } + + public static function getAlbums(int|array $var): array + { + $id = is_array($var) ? $var['id'] : $var; + $user_albums = []; + $user_stream = self::getStreamAlbum($var); + if (is_array($user_stream)) { + $user_albums['stream'] = $user_stream; + } + $map = []; + $children = []; + $db = DB::getInstance(); + $db->query('SELECT * FROM ' . DB::getTable('albums') . ' WHERE album_user_id=:image_user_id ORDER BY album_parent_id ASC, album_name ASC LIMIT :limit'); + $db->bind(':limit', intval(env()['CHEVERETO_MAX_USER_ALBUMS_LIST'] ?? 300)); + $db->bind(':image_user_id', $id); + $user_albums_db = $db->fetchAll(); + if ($user_albums_db) { + $user_albums += $user_albums_db; + } + foreach ($user_albums as $k => &$v) { + $album_id = isset($v['album_id']) + ? $v['album_id'] + : 'stream'; + $map[$album_id] = $k; + $parent_id = $v['album_parent_id'] ?? null; + if (isset($v['album_image_count']) && $v['album_image_count'] < 0) { + $v['album_image_count'] = 0; + } + $children[$parent_id][$album_id] = $v['album_name']; + if (isset($parent_id)) { + asort($children[$parent_id]); + } + } + if (count($children[''] ?? []) == 0) { + return []; + } + $list = []; + foreach (array_keys($children['']) as $key) { + self::iterate((string) $key, $children, $list, $user_albums, $map, 0); + } + + return $list; + } + + private static function iterate( + string $key, + array $array, + array &$list, + array $albums, + array $map, + int $level + ): void { + $album = $albums[$map[$key]]; + $album['album_indent'] = $level; + $album['album_indent_string'] = ''; + if ($level > 0) { + $album['album_indent_string'] = str_repeat('─', $level) . ' '; + } + $album = DB::formatRow($album, 'album'); + Album::fill($album); + if ($key == 'stream') { + $list[$key] = $album; + } else { + $list[] = $album; + } + if (!isset($array[$key])) { + return; + } + $level++; + foreach (array_keys($array[$key]) as $k) { + self::iterate((string) $k, $array, $list, $albums, $map, $level); + } + } + + public static function getStreamAlbum(int|array $user): ?array + { + if (!is_array($user)) { + $user = self::getSingle($user, 'id', true); + } + if ($user !== []) { + return [ + 'album_id' => null, + 'album_id_encoded' => null, + 'album_name' => _s("%s's images", $user['username']), + 'album_user_id' => $user['id'], + 'album_privacy' => 'public', + 'album_url' => $user['url'] + ]; + } + + return null; + } + + public static function getUrl(array|string $handle) + { + $username = is_array($handle) ? ($handle[isset($handle['user_username']) ? 'user_username' : 'username'] ?? null) : $handle; + $id = is_array($handle) ? ($handle[isset($handle['user_id']) ? 'user_id' : 'id'] ?? null) : null; + $path = getSetting('root_route') === 'user' + ? '' + : getSetting('route_user') . '/'; + $url = $path . $username; + if (is_array($handle) && getSetting('website_mode') == 'personal' && $id == getSetting('website_mode_personal_uid')) { + $url = getSetting('website_mode_personal_routing') !== '/' ? getSetting('website_mode_personal_routing') : ''; + } + + return get_base_url($url); + } + + public static function getUrlAlbums(string $user_url): string + { + return rtrim($user_url, '/') . '/albums'; + } + + public static function insert(array $values): int + { + Stat::assertMax('users'); + if (!isset($values['date'])) { + $values['date'] = datetime(); + } + if (!isset($values['date_gmt'])) { + $values['date_gmt'] = datetimegmt(); + } + if (!isset($values['language'])) { + $values['language'] = getSetting('default_language'); + } + if (!isset($values['timezone'])) { + $values['timezone'] = getSetting('default_timezone'); + } + if (isset($values['name'])) { + $values['name'] = self::sanitizeUserName($values['name']); + } + if (!isset($values['registration_ip'])) { + $values['registration_ip'] = get_client_ip(); + } + if (!isset($values['palette_id'])) { + $values['palette_id'] = intval(getSetting('theme_palette')); + } + assertNotStopWords($values['name'] ?? '', $values['bio'] ?? ''); + if (!Login::isAdmin()) { + $db = DB::getInstance(); + $db->query('SELECT COUNT(*) c FROM ' . DB::getTable('users') . ' WHERE user_registration_ip=:ip AND user_status != "valid" AND user_date_gmt >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 2 DAY)'); + $db->bind(':ip', $values['registration_ip']); + if ($db->fetchSingle()['c'] > 5) { + throw new Exception('Flood detected', 666); + } + } + $user_id = DB::insert('users', $values); + if (!Login::isAdmin() && Settings::get('notify_user_signups')) { + $message = implode('<br>', [ + 'A new user has just signed up %user (%edit)', + '', + 'Username: %username', + 'Email: %email', + 'Status: %status', + 'IP: %registration_ip', + 'Date (GMT): %date_gmt', + '', + 'You can disable these notifications on %configure' + ]); + foreach (['username', 'email', 'status', 'registration_ip', 'date_gmt'] as $k) { + $table['%' . $k] = $values[$k] ?? ''; + } + $table['%edit'] = '<a href="' . get_public_url('dashboard/user/' . $user_id) . '">edit</a>'; + $table['%user'] = '<a href="' . self::getUrl($values['username']) . '">' . $values['username'] . '</a>'; + $table['%configure'] = '<a href="' . get_public_url('dashboard/settings/users') . '">dashboard/settings/users</a>'; + system_notification_email([ + 'subject' => sprintf('New user signup %s', $values['username']), + 'message' => strtr($message, $table), + ]); + } + Stat::track([ + 'action' => 'insert', + 'table' => 'users', + 'value' => '+1', + 'date_gmt' => $values['date_gmt'], + 'user_id' => $user_id, + ]); + + return $user_id; + } + + public static function update(int|string $id, array $values): int + { + if (isset($values['name'])) { + $values['name'] = self::sanitizeUserName($values['name']); + } + assertNotStopWords($values['name'] ?? '', $values['bio'] ?? ''); + + return DB::update('users', $values, ['id' => (int) $id]); + } + + public static function uploadPicture(int|array $user, string $type, array|string $source): ?array + { + $type = strtolower($type); + if (!in_array($type, ['background', 'avatar'])) { + throw new Exception('Invalid upload type', 600); + } + if (!is_array($user)) { + $user = self::getSingle($user, 'id'); + } + if ($user === []) { + throw new Exception("target user doesn't exists", 601); + } + $localPath = PATH_PUBLIC_CONTENT_IMAGES_USERS . $user['id_encoded'] . '/'; + $storagePath = ltrim(absolute_to_relative($localPath), '/'); + $image_upload = Image::upload( + $source, + $localPath, + ($type == 'avatar' ? 'av' : 'bkg') . '_' . strtotime(datetimegmt()), + ['max_size' => get_bytes(Settings::get('user_image_' . $type . '_max_filesize_mb') . ' MB')] + ); + /** @var array $uploaded */ + $uploaded = $image_upload['uploaded']; + if ($type == 'avatar') { + $max_res = ['width' => 500, 'height' => 500]; + $must_resize = $uploaded['fileinfo']['width'] > $max_res['width'] + || $uploaded['fileinfo']['height'] > $max_res['height']; + } else { + $max_res = ['width' => 1920]; + $must_resize = $uploaded['fileinfo']['width'] > $max_res['width']; + $medium = Image::resize( + $uploaded['file'], + null, + $uploaded['name'] . '.md', + [ + 'width' => 500, + 'over_resize' => true, + ] + ); + $toStorage[] = [ + 'file' => $medium['file'], + 'filename' => $medium['filename'], + 'mime' => $medium['fileinfo']['mime'], + ]; + } + if ($must_resize) { + $uploaded = Image::resize($uploaded['file'], null, null, $max_res); + } + $toStorage[] = [ + 'file' => $uploaded['file'], + 'filename' => $uploaded['filename'], + 'mime' => $uploaded['fileinfo']['mime'], + ]; + $toDelete = []; + $convert = new ImageConvert($uploaded['file'], 'jpg', $uploaded['file'], 90); + $uploaded['file'] = $convert->out(); + $user_edit = self::update($user['id'], [$type . '_filename' => $uploaded['filename']]); + $assetStorage = AssetStorage::getStorage(); + if ($user_edit !== 0) { + AssetStorage::uploadFiles($toStorage, ['keyprefix' => $storagePath]); + if (isset($user[$type])) { + $image_path = $storagePath . $user[$type]['filename']; + if ($type == 'background') { + $pathinfo = pathinfo($image_path); + $image_md_path = str_replace($pathinfo['basename'], $pathinfo['filename'] . '.md.' . $pathinfo['extension'], $image_path); + $toDelete[] = ['key' => $image_md_path]; + } + $toDelete[] = ['key' => $image_path]; + } + if ($toDelete !== []) { + AssetStorage::deleteFiles($toDelete); + } + } + if (!AssetStorage::isLocalLegacy()) { + $toUnlink = [$uploaded['file']]; + if ($type == 'background') { + $pathinfo = pathinfo($uploaded['file']); + $image_md_path = str_replace($pathinfo['basename'], $pathinfo['filename'] . '.md.' . $pathinfo['extension'], $uploaded['file']); + $toUnlink[] = $image_md_path; + } + foreach ($toDelete as $delete) { + $toUnlink[] = PATH_PUBLIC . $delete['key']; + } + foreach ($toUnlink as $remove) { + unlinkIfExists($remove); + } + } + $uploaded['fileinfo']['url'] = str_replace_first( + URL_APP_PUBLIC, + $assetStorage['url'], + $uploaded['fileinfo']['url'] + ); + + return $uploaded['fileinfo']; + } + + public static function deletePicture(int|array $user, string $deleting): bool + { + $deleting = strtolower($deleting); + if (!in_array($deleting, ['background', 'avatar'])) { + throw new Exception('Invalid delete type', 600); + } + if (!is_array($user)) { + $user = self::getSingle($user, 'id', true); + } + if ($user === []) { + throw new Exception("Target user doesn't exists", 601); + } + if (!$user[$deleting]) { + throw new Exception('user ' . $deleting . " doesn't exists", 602); + } + $localPath = PATH_PUBLIC_CONTENT_IMAGES_USERS . $user['id_encoded'] . '/'; + $storagePath = ltrim(absolute_to_relative($localPath), '/'); + $toDelete = []; + $image_path = $storagePath . $user[$deleting]['filename']; + if ($deleting == 'background') { + $pathinfo = pathinfo($image_path); + $image_md_path = str_replace($pathinfo['basename'], $pathinfo['filename'] . '.md.' . $pathinfo['extension'], $image_path); + $toDelete[] = ['key' => $image_md_path]; + } + $toDelete[] = ['key' => $image_path]; + AssetStorage::deleteFiles($toDelete); + self::update($user['id'], [$deleting . '_filename' => null]); + + return true; + } + + public static function delete(int|array $user): void + { + if (!is_array($user)) { + $user = self::getSingle($user, 'id', true); + } + if ($user === []) { + return; + } + $user_images_path = PATH_PUBLIC_CONTENT_IMAGES_USERS . $user['id_encoded']; + rrmdir($user_images_path); + $db = DB::getInstance(); + $db->query('SELECT image_id FROM ' . DB::getTable('images') . ' WHERE image_user_id=:image_user_id'); + $db->bind(':image_user_id', $user['id']); + $user_images = $db->fetchAll(); + foreach ($user_images as $user_image) { + Image::delete((int) $user_image['image_id']); + } + Notification::delete([ + 'table' => 'users', + 'user_id' => $user['id'], + ]); + Stat::track([ + 'action' => 'delete', + 'table' => 'users', + 'value' => '-1', + 'user_id' => $user['id'], + 'date_gmt' => $user['date_gmt'] + ]); + $sql = strtr('UPDATE `%table_users` SET user_likes = user_likes - COALESCE((SELECT COUNT(*) FROM `%table_likes` WHERE like_user_id = %user_id AND user_id = like_content_user_id AND like_user_id <> like_content_user_id GROUP BY like_content_user_id),"0");', [ + '%table_users' => DB::getTable('users'), + '%table_likes' => DB::getTable('likes'), + '%user_id' => $user['id'], + ]); + DB::queryExecute($sql); + $sql = strtr('UPDATE `%table_users` SET user_followers = user_followers - COALESCE((SELECT 1 FROM `%table_follows` WHERE follow_user_id = %user_id AND user_id = follow_followed_user_id AND follow_user_id <> follow_followed_user_id GROUP BY follow_followed_user_id),"0");', [ + '%table_users' => DB::getTable('users'), + '%table_follows' => DB::getTable('follows'), + '%user_id' => $user['id'], + ]); + DB::queryExecute($sql); + $sql = strtr('UPDATE `%table_users` SET user_following = user_following - COALESCE((SELECT 1 FROM `%table_follows` WHERE follow_followed_user_id = %user_id AND user_id = follow_user_id AND follow_user_id <> follow_followed_user_id GROUP BY follow_user_id),"0");', [ + '%table_users' => DB::getTable('users'), + '%table_follows' => DB::getTable('follows'), + '%user_id' => $user['id'], + ]); + DB::queryExecute($sql); + DB::delete('albums', ['user_id' => $user['id']]); + DB::delete('images', ['user_id' => $user['id']]); + DB::delete('login_connections', ['user_id' => $user['id']]); + DB::delete('login_cookies', ['user_id' => $user['id']]); + DB::delete('login_passwords', ['user_id' => $user['id']]); + DB::delete('likes', ['user_id' => $user['id']]); + DB::delete('follows', ['user_id' => $user['id'], 'followed_user_id' => $user['id']], 'OR'); + DB::delete('users', ['id' => $user['id']]); + } + + public static function statusRedirect(?string $status): void + { + if ($status === null) { + return; + } + if ($status !== 'valid') { + if ($status == 'awaiting-email') { + $status = 'email-needed'; + } + redirect('account/' . $status); + } + } + + public static function isValidUsername(string $string): bool + { + $restricted = [ + 'tag', 'tags', + 'categories', + 'profile', + 'messages', + 'map', + 'feed', + 'events', + 'notifications', + 'discover', + 'upload', + 'following', 'followers', + 'flow', 'trending', 'popular', 'fresh', 'upcoming', 'editors', 'profiles', + 'activity', 'upgrade', 'account', + 'affiliates', 'billing', + 'do', 'go', 'redirect', + 'api', 'sdk', 'plugin', 'plugins', 'tools', + 'external', + 'importer', 'import', 'exporter', 'export', + ]; + $virtual_routes = ['image', 'album']; + foreach ($virtual_routes as $k) { + $restricted[] = getSetting('route_' . $k); + } + + return preg_match('/' . getSetting('username_pattern') . '/', $string) === 1 && !in_array($string, $restricted) && !is_route_available($string) && !file_exists(PATH_PUBLIC . $string); + } + + public static function formatArray(array $object): array + { + if ($object !== []) { + $output = DB::formatRow($object); + self::fill($output); + + return $output; + } + + return $object; + } + + public static function fill(array &$user): void + { + $user['palette_id'] = (int) ($user['palette_id'] ?? 0); + $user['id_encoded'] = encodeID((int) ($user['id'] ?? 0)); + $user['image_count_display'] = isset($user['image_count']) ? abbreviate_number($user['image_count']) : 0; + $user['album_count_display'] = isset($user['album_count']) ? abbreviate_number($user['album_count']) : 0; + $user['url'] = self::getUrl($user); + $user['url_albums'] = self::getUrlAlbums($user['url']); + $user['url_liked'] = $user['url'] . '/liked'; + $user['url_following'] = $user['url'] . '/following'; + $user['url_followers'] = $user['url'] . '/followers'; + if (isset($user['website']) && !is_url_web($user['website'])) { + unset($user['website']); + } + if (isset($user['website'])) { + $user['website_safe_html'] = safe_html($user['website']); + $user['website_display'] = $user['is_admin'] ? $user['website_safe_html'] : get_redirect_url($user['website_safe_html']); + } + if (isset($user['bio'])) { + $user['bio_safe_html'] = safe_html($user['bio']); + $user['bio_linkify'] = $user['is_admin'] + ? linkify($user['bio_safe_html'], ['attr' => ['target' => '_blank']]) + : linkify_redirector($user['bio_safe_html']); + } + $user['name'] ??= ucfirst($user['username'] ?? ''); + foreach (['image_count', 'album_count'] as $v) { + $single = $v == 'image_count' ? 'image' : 'album'; + $plural = $v == 'image_count' ? 'images' : 'albums'; + $user[$v . '_label'] = _n($single, $plural, $user[$v] ?? 0); + } + $name_array = explode(' ', $user['name'] ?? ''); + $user['firstname'] = mb_strlen($name_array[0]) > 20 ? trim(mb_substr($name_array[0], 0, 20, 'UTF-8')) : $name_array[0]; + $user['firstname_html'] = safe_html(strip_tags($user['firstname'])); + $user['name_short'] = mb_strlen($user['name']) > 20 ? $user['firstname'] : $user['name']; + $user['name_html'] = safe_html(strip_tags($user['name'])); + $user['name_short_html'] = safe_html(strip_tags($user['name_short'])); + if (isset($user['avatar_filename'])) { + $avatar_file = $user['id_encoded'] . '/' . $user['avatar_filename']; + $user['avatar'] = [ + 'filename' => $user['avatar_filename'], + 'url' => get_users_image_url($avatar_file) + ]; + } + unset($user['avatar_filename']); + if (isset($user['background_filename'])) { + $background_file = $user['id_encoded'] . '/' . $user['background_filename']; + $background_path = PATH_PUBLIC_CONTENT_IMAGES_USERS . $background_file; + $pathinfo = pathinfo($background_path); + $background_md_file = $user['id_encoded'] . '/' . $pathinfo['filename'] . '.md.' . $pathinfo['extension']; + $user['background'] = [ + 'filename' => $user['background_filename'], + 'url' => get_users_image_url($user['id_encoded'] . '/' . $user['background_filename']), + 'medium' => [ + 'filename' => $pathinfo['basename'], + 'url' => get_users_image_url($background_md_file) + ] + ]; + } + unset($user['background_filename'], $user['facebook_username']); + if (isset($user['twitter_username'])) { + $user['twitter'] = [ + 'username' => $user['twitter_username'], + 'url' => 'http://twitter.com/' . $user['twitter_username'] + ]; + } + unset($user['twitter_username']); + if (!isset($user['notifications_unread'])) { + $user['notifications_unread'] = 0; + } + $user['notifications_unread_display'] = $user['notifications_unread'] > 10 ? '+10' : $user['notifications_unread']; + } + + public static function sanitizeUserName(string $name): string + { + return preg_replace('#<|>#', '', $name); + } + + public static function cleanUnconfirmed(int $limit = null): void + { + $db = DB::getInstance(); + $query = 'SELECT * FROM ' . DB::getTable('users') . ' WHERE user_status IN ("awaiting-confirmation", "awaiting-email") AND user_date_gmt <= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 2 DAY) ORDER BY user_id DESC'; + if (is_int($limit)) { + $query .= ' LIMIT ' . $limit; + } + $db->query($query); + $users = $db->fetchAll(); + foreach ($users as $user) { + $user = self::formatArray($user); + self::delete($user); + } + } +} diff --git a/app/src/Legacy/Classes/XmpMetadataExtractor.php b/app/src/Legacy/Classes/XmpMetadataExtractor.php new file mode 100644 index 0000000..bcc6753 --- /dev/null +++ b/app/src/Legacy/Classes/XmpMetadataExtractor.php @@ -0,0 +1,51 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\Legacy\Classes; + +use DOMDocument; +use JeroenDesloovere\XmpMetadataExtractor\XmpMetadataExtractor as Base; +use Throwable; + +class XmpMetadataExtractor extends Base +{ + public function extractFromContent(string $content): array + { + try { + $string = $this->getXmpXmlString($content); + if ($string == '') { + return []; + } + $doc = new DOMDocument(); + $doc->loadXML($string); + $root = $doc->documentElement; + $output = $this->convertDomNodeToArray($root); + $output['@root'] = $root->tagName; + + return $output; + } catch (Throwable $e) { + return []; + } + } + + protected function getXmpXmlString(string $content): string + { + $xmpDataStart = strpos($content, '<x:xmpmeta'); + if ($xmpDataStart === false) { + return ''; + } + $xmpDataEnd = (int) strpos($content, '</x:xmpmeta>'); + $xmpLength = $xmpDataEnd - $xmpDataStart; + + return substr($content, $xmpDataStart, $xmpLength + 12); + } +} diff --git a/app/src/Legacy/G/DB.php b/app/src/Legacy/G/DB.php new file mode 100644 index 0000000..c17659c --- /dev/null +++ b/app/src/Legacy/G/DB.php @@ -0,0 +1,458 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\G; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use function Chevereto\Vars\env; +use Exception; +use PDO; +use PDOStatement; + +class DB +{ + private array $pdo_default_attrs = []; + + private static ?self $instance; + + private array $pdo_options = []; + + public static PDO $dbh; + + public PDOStatement $query; + + public function __construct( + private string $host, + private int $port, + private string $name, + private string $user, + private string $pass, + private string $driver, + private array $pdoAttrs, + private string $tablePrefix, // @phpstan-ignore-line + ) { + if (isset(self::$dbh)) { + return; + } + $pdo_connect = $this->driver . ':host=' . $this->host . ';dbname=' . $this->name; + if (isset($this->port)) { + $pdo_connect .= ';port=' . $this->port; + } + $this->pdo_default_attrs = [ + PDO::ATTR_TIMEOUT => 30, + ]; + $this->pdo_options = $this->pdo_default_attrs + $this->pdoAttrs; + $this->pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; + $this->pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET time_zone = '+00:00', NAMES 'utf8mb4'"; + self::$dbh = new PDO($pdo_connect, $this->user, $this->pass, $this->pdo_options); + self::$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); + self::$instance = $this; + } + + public static function fromEnv() + { + new self( + host: env()['CHEVERETO_DB_HOST'], + port: (int) env()['CHEVERETO_DB_PORT'], + name: env()['CHEVERETO_DB_NAME'], + user: env()['CHEVERETO_DB_USER'], + pass: env()['CHEVERETO_DB_PASS'], + driver: env()['CHEVERETO_DB_DRIVER'], + pdoAttrs: json_decode( + env()['CHEVERETO_DB_PDO_ATTRS'], + true + ), + tablePrefix: env()['CHEVERETO_DB_TABLE_PREFIX'], + ); + } + + public static function hasInstance(): bool + { + return isset(self::$instance); + } + + public static function getInstance(): self + { + if (!isset(self::$instance)) { + throw new LogicException( + message('No %type% initialized') + ->withCode('%type%', static::class) + ); + } + + return self::$instance; + } + + public function setPDOAttrs(array $attributes): void + { + $this->pdo_options = $attributes; + } + + public function setPDOAttr(string $key, string $value): void + { + $this->pdo_options[$key] = $value; + } + + public function getAttr($attr): mixed + { + return self::$dbh->getAttribute($attr); + } + + public function query(string $query): void + { + $this->query = self::$dbh->prepare($query); + } + + public function errorInfo(): array + { + return self::$dbh->errorInfo(); + } + + public function bind(mixed $param, mixed $value, int $type = null): void + { + if (is_null($type)) { + switch (true) { + case is_int($value): + $type = PDO::PARAM_INT; + + break; + case is_bool($value): + $type = PDO::PARAM_BOOL; + + break; + case is_null($value): + $type = PDO::PARAM_NULL; + + break; + case is_resource($value): + $type = PDO::PARAM_LOB; + + break; + default: + $type = PDO::PARAM_STR; + + break; + } + } + $this->query->bindValue($param, $value, $type); + } + + public function exec(): bool + { + return $this->query->execute(); + } + + public function fetchColumn(): mixed + { + return $this->query->fetchColumn(); + } + + public function closeCursor(): bool + { + return $this->query->closeCursor(); + } + + public function fetchAll(int $mode = PDO::FETCH_ASSOC): array|false + { + $this->exec(); + + return $this->query->fetchAll($mode); + } + + public function fetchSingle(int $mode = PDO::FETCH_ASSOC): mixed + { + $this->exec(); + + return $this->query->fetch($mode); + } + + /** + * @param string $query Raw query to execute. + * @return int Number of rows affected. + */ + public static function queryExecute(string $query): int + { + $db = self::getInstance(); + $db->query($query); + + return $db->exec() ? $db->rowCount() : 0; + } + + /** + * @param string $query Prepared query to execute. + * @param array $binds Parameters to bind to the query `[:param => replace]`. + * @return int Number of rows affected. + */ + public static function preparedQueryExecute(string $query, array $binds): int + { + $db = self::dbPrepare($query, $binds); + + return $db->exec() ? $db->rowCount() : 0; + } + + public static function queryFetchSingle(string $query, $fetch_style = null): array|false + { + return self::queryFetch($query, 1, $fetch_style); + } + + public static function queryFetchAll(string $query, $fetch_style = null): array|false + { + return self::queryFetch($query, 0, $fetch_style); + } + + public static function queryFetch(string $query, int $limit = 1, ?int $fetch_style = null): array|false + { + $db = self::getInstance(); + $db->query($query); + if ($fetch_style === null) { + $fetch_style = PDO::FETCH_ASSOC; + } + + return $limit == 1 + ? $db->fetchSingle($fetch_style) + : $db->fetchAll($fetch_style); + } + + public function rowCount(): int + { + return $this->query->rowCount(); + } + + public function lastInsertId() + { + return self::$dbh->lastInsertId(); + } + + public function beginTransaction() + { + return self::$dbh->beginTransaction(); + } + + public function endTransaction() + { + return self::$dbh->commit(); + } + + public function cancelTransaction() + { + return self::$dbh->rollBack(); + } + + public static function getTable(string $table) + { + return env()['CHEVERETO_DB_TABLE_PREFIX'] . $table; + } + + public static function get( + array|string $table, + array|string $values, + string $clause = 'AND', + array $sort = [], + int $limit = null, + int $fetch_style = PDO::FETCH_ASSOC + ): mixed { + if (!is_array($values) && $values !== 'all') { + throw new Exception('Expecting array values, ' . gettype($values) . ' given'); + } + self::validateClause($clause, __METHOD__); + if (is_array($table)) { + $join = $table['join']; + $table = $table['table']; + } + $table = self::getTable($table); + $query = 'SELECT * FROM ' . $table; + if (isset($join)) { + $query .= ' ' . $join . ' '; + } + if (is_array($values) && !empty($values)) { + $query .= ' WHERE '; + foreach ($values as $k => $v) { + if (is_null($v)) { + $query .= '`' . $k . '` IS :' . $k . ' ' . $clause . ' '; + } else { + $query .= '`' . $k . '`=:' . $k . ' ' . $clause . ' '; + } + } + } + $query = rtrim($query, $clause . ' '); + if (!empty($sort)) { + if (!$sort['field']) { + $sort['field'] = 'date'; + } + if (!$sort['order']) { + $sort['order'] = 'desc'; + } + $query .= ' ORDER BY ' . $sort['field'] . ' ' . strtoupper($sort['order']) . ' '; + } + if ($limit && is_int($limit)) { + $query .= " LIMIT $limit"; + } + $db = self::getInstance(); + $db->query($query); + if (is_array($values)) { + foreach ($values as $k => $v) { + $db->bind(':' . $k, $v); + } + } + $fetch_style = (int) $fetch_style; + + return $limit == 1 + ? $db->fetchSingle($fetch_style) + : $db->fetchAll($fetch_style); + } + + public static function update( + string $table, + array $values, + array $wheres, + string $clause = 'AND' + ): int { + self::validateClause($clause, __METHOD__); + $table = self::getTable($table); + $query = 'UPDATE `' . $table . '` SET '; + foreach (array_keys($values) as $k) { + $query .= '`' . $k . '`=:value_' . $k . ','; + } + $query = rtrim($query, ',') . ' WHERE '; + foreach (array_keys($wheres) as $k) { + $query .= '`' . $k . '`=:where_' . $k . ' ' . $clause . ' '; + } + $query = rtrim($query, $clause . ' '); + $db = self::getInstance(); + $db->query($query); + foreach ($values as $k => $v) { + $db->bind(':value_' . $k, $v); + } + foreach ($wheres as $k => $v) { + $db->bind(':where_' . $k, $v); + } + + return $db->exec() ? $db->rowCount() : false; + } + + public static function insert(string $table, array $values): int|false + { + $table = self::getTable($table); + $table_fields = []; + $table_fields = array_keys($values); + $query = 'INSERT INTO + `' . $table . '` (`' . ltrim(implode('`,`', $table_fields), '`,`') . '`) + VALUES (' . ':' . str_replace(':', ',:', implode(':', $table_fields)) . ')'; + $db = self::getInstance(); + $db->query($query); + foreach ($values as $k => $v) { + $db->bind(':' . $k, $v); + } + + return $db->exec() + ? (int) $db->lastInsertId() + : false; + } + + public static function increment( + string $table, + array $values, + array $wheres, + string $clause = 'AND' + ): int|false { + $table = self::getTable($table); + $query = 'UPDATE `' . $table . '` SET '; + foreach ($values as $k => $v) { + if (preg_match('/^([\+\-]{1})\s*([\d]+)$/', (string) $v, $matches)) { // 1-> op 2-> number + $query .= '`' . $k . '`='; + if ($matches[1] == '+') { + $query .= '`' . $k . '`' . $matches[1] . $matches[2] . ','; + } + if ($matches[1] == '-') { + $query .= 'GREATEST(cast(`' . $k . '` AS SIGNED) - ' . $matches[2] . ', 0),'; + } + } + } + $query = rtrim($query, ',') . ' WHERE '; + foreach (array_keys($wheres) as $k) { + $query .= '`' . $k . '`=:where_' . $k . ' ' . $clause . ' '; + } + $query = rtrim($query, $clause . ' '); + $db = self::getInstance(); + $db->query($query); + foreach ($wheres as $k => $v) { + $db->bind(':where_' . $k, $v); + } + + return $db->exec() ? $db->rowCount() : false; + } + + public static function delete( + string $table, + array $values, + string $clause = 'AND' + ): int { + self::validateClause($clause, __METHOD__); + $table = self::getTable($table); + $query = 'DELETE FROM `' . $table . '` WHERE '; + foreach (array_keys($values) as $k) { + $query .= '`' . $k . '`=:' . $k . ' ' . $clause . ' '; + } + $query = rtrim($query, $clause . ' '); + $db = self::getInstance(); + $db->query($query); + foreach ($values as $k => $v) { + $db->bind(':' . $k, $v); + } + + return $db->exec() ? $db->rowCount() : 0; + } + + public static function getQueryWithTablePrefix(string $query): string + { + return strtr($query, [ + '%table_prefix%' => env()['CHEVERETO_DB_TABLE_PREFIX'] + ]); + } + + public static function dbPrepare(string $query, array $values): DB + { + $query = self::getQueryWithTablePrefix($query); + $db = self::getInstance(); + $db->query($query); + foreach ($values as $key => $value) { + $db->bind($key, $value); + } + + return $db; + } + + public static function fetchSingleQuery(string $query, array $binds, int $mode = PDO::FETCH_ASSOC): array + { + $db = self::dbPrepare($query, $binds); + $fetch = $db->fetchSingle($mode); + + return $fetch === false + ? [] + : $fetch; + } + + public static function fetchAllQuery(string $query, array $binds, int $mode = PDO::FETCH_ASSOC): array + { + $db = self::dbPrepare($query, $binds); + + return $db->exec() ? $db->fetchAll($mode) : []; + } + + private static function validateClause(string $clause, string|null $method = null) + { + $clause = strtoupper($clause); + if (!in_array($clause, ['AND', 'OR', ''])) { + throw new Exception('Expecting clause string \'AND\' or \'OR\' in ' . ($method ?? __CLASS__)); + } + } +} diff --git a/app/src/Legacy/G/Gettext.php b/app/src/Legacy/G/Gettext.php new file mode 100644 index 0000000..c577853 --- /dev/null +++ b/app/src/Legacy/G/Gettext.php @@ -0,0 +1,626 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * This class uses code that belongs or was taken from the following: + * + * David Soria Parra <sn_@gmx.net> + * https://github.com/dsp/PHP-Gettext + * + * Jyxo, s.r.o. + * https://github.com/jyxo/php/tree/master/Jyxo/Gettext + * + * WordPress + * https://wordpress.org/ + */ + +/** + * class.gettext.php + * This class is a stand-alone implementation of gettext. + * It works with .po and .mo files and saves the result in a cached static file (by default) + */ + +namespace Chevereto\Legacy\G; + +use Exception; +use Throwable; + +/** @deprecated V4 */ +class Gettext +{ + // Magic words in the MO header + public const MO_MAGIC_1 = -569244523; //0xde120495 + + public const MO_MAGIC_2 = -1794895138; //0x950412de + + // Cache stuff + public const CACHE_FILE_SUFFIX = '.cache.php'; + + protected static $default_options = ['cache' => true, 'cache_type' => 'file', 'cache_filepath' => null, 'cache_header' => true]; + + protected $source_file; + + protected $parsed = false; + + public $translation_table = []; + + public $translation_plural = null; + + public $translation_header = null; + + private $is_cached = false; + + public function __construct($options = []) + { + $this->options = array_merge(static::$default_options, (array)$options); + $this->source_file = $this->options['file']; + + if (file_exists($this->source_file) && !is_readable($this->source_file)) { + throw new GettextException("Can't read source file", 600); + } + + $file_extension = pathinfo($this->source_file, PATHINFO_EXTENSION); + // Only allow MO and PO + if (!in_array($file_extension, ['mo', 'po'])) { + throw new GettextException('Invalid file source. This only works with .mo and .po files', 601); + } + + $this->parse_method = strtoupper($file_extension); + + if ($this->options['cache']) { + if ($this->options['cache_filepath']) { + // Custom whatever filepath cache + $this->cache_file = $this->options['cache_filepath']; + } else { + // Default cache filepath.cache.php + $this->cache_file = $this->source_file . self::CACHE_FILE_SUFFIX; + } + if (!$this->getCache()) { // No cache was found + $this->parseFile(); + } + } else { + $this->parseFile(); + } + } + + /** + * Return a translated string + * + * If the translation is not found, the original message will be returned. + * + */ + public function gettext(string $msg) + { + if (empty($msg)) { + return null; + } + if (!$this->parsed) { + $this->parseFile(); + } + + if ($this->mustFixQuotes()) { + $msg = $this->fixQuotes($msg, 'escape'); + } + + $translated = $msg; + + if (array_key_exists($msg, $this->translation_table)) { + $translated = $this->translation_table[$msg][0] ?? null; + $translated = !empty($translated) ? $translated : $msg; + } + + if ($this->mustFixQuotes()) { + $translated = $this->fixQuotes($translated, 'unescape'); + } + + return $translated; + } + + /** + * Return a translated string in it's plural form + * + * Returns the given $count (e.g second, third,...) plural form of the + * given string. If the id is not found and $num == 1 $msg is returned, + * otherwise $msg_plural + * + * @param String $msg The message to search for + * @param string $msg_plural A fallback plural form + * @param integer $count Which plural form + * + */ + public function ngettext($msg, $msg_plural, $count = 0) + { + if (empty($msg) or empty($msg_plural) or !is_numeric($count)) { + return $msg; + } + if (!$this->parsed) { + $this->parseFile(); + } + + if ($this->mustFixQuotes()) { + $msg = $this->fixQuotes($msg, 'escape'); + $msg_plural = $this->fixQuotes($msg_plural, 'escape'); + } + + $translated = $count == 1 ? $msg : $msg_plural; // Failover + + if (array_key_exists($msg, $this->translation_table)) { + $plural_index = $this->getPluralIndex($count); + $index_id = $plural_index !== false ? $plural_index : ($count - 1); + $table = $this->translation_table[$msg]; + if (array_key_exists($index_id, $table)) { + $translated = $table[$index_id]; + } + } + + if ($this->mustFixQuotes()) { + $translated = $this->fixQuotes($translated, 'unescape'); + } + + return $translated; + } + + /** + * Parse the source file + * If cache is enabled it will try to cache the result + */ + private function parseFile() + { + $parseFn = 'parse' . $this->parse_method . 'File'; + $this->$parseFn(); + $this->parsed = true; + if ($this->options['cache']) { + $this->cache('file'); + } + } + + /** + * Parse the MO file header and returns the table + * offsets as described in the file header. + * + * If an exception occurred, null is returned. This is intentionally + * as we need to get close to ext/gettext behaviour. + * + * @param resource $fp The open file handler to the MO file + * + * @return array offset + */ + private function parseMOHeader($fp) + { + $data = fread($fp, 8); + if (!$data) { + throw new GettextException("Can't fread(8) file for reading", 602); + } + $header = unpack('lmagic/lrevision', $data); + if (self::MO_MAGIC_1 != $header['magic'] && self::MO_MAGIC_2 != $header['magic']) { + return null; + } + if (0 != $header['revision']) { + return null; + } + $data = fread($fp, 4 * 5); + if (!$data) { + throw new GettextException("Can't fread(4 * 5) file for reading", 603); + } + + return unpack('lnum_strings/lorig_offset/' . 'ltrans_offset/lhash_size/lhash_offset', $data); + } + + /** + * Parse and returns the string offsets in a a table. Two table can be found in + * a mo file. The table with the translations and the table with the original + * strings. Both contain offsets to the strings in the file. + * + * If an exception occurred, null is returned. This is intentionally + * as we need to get close to ext/gettext behaviour. + * + * @param resource $fp The open file handler to the MO file + * @param int $offset The offset to the table that should be parsed + * @param int $num The number of strings to parse + * + * @return Array of offsets + */ + private function parseMOTableOffset($fp, $offset, $num) + { + if (fseek($fp, $offset, SEEK_SET) < 0) { + return null; + } + $table = []; + for ($i = 0; $i < $num; $i++) { + $data = fread($fp, 8); + $table[] = unpack('lsize/loffset', $data); + } + + return $table; + } + + /** + * Parse a string as referenced by an table. Returns an + * array with the actual string. + * + * @param resource $fp The open file handler to the MO fie + * @param array $entry The entry as parsed by parseMOTableOffset() + * + */ + private function parseMOEntry($fp, $entry): ?string + { + if (fseek($fp, $entry['offset'], SEEK_SET) < 0) { + return null; + } + if ($entry['size'] > 0) { + return fread($fp, $entry['size']) ?: null; + } + + return null; + } + + /** + * Parse the plural data found in the language + * + * @param string $header with nplurals and plural declaration + */ + private function parsePluralData($header) + { + // Base english-like plural languages + $nplurals = 2; + $formula = '(n != 1)'; + // Detect plural data. If nothing found then use general plural handling + if (preg_match('/\s*nplurals\s*\=\s*(\d+)\s*\;\s*plural\s*\=\s*(\({0,1}.*\){0,1})\s*\;/', $header, $matches)) { + $nplurals = (int) $matches[1]; + if (preg_match('/^([!n\=\<\>\&\|\?\:%\s\(\)\d]+)$/', (string) $matches[2]) === 1) { + $formula = $matches[2]; + } + } + + // Fix the plural formula + $formula = $this->parenthesizePluralFormula($formula); + + // Generate the translation_plural array + $function = str_replace('n', '$n', $formula); + + // Stock everything + $this->translation_plural = [ + 'nplurals' => $nplurals, + 'function' => $function, + ]; + } + + /** + * Adds parentheses to the inner parts of ternary operators in + * plural formulas, because PHP evaluates ternary operators from left to right + * + * @param string $formula the expression without parentheses + * @return string the formula with parentheses added + */ + private function parenthesizePluralFormula($formula) + { + $formula .= ';'; + $return = ''; + $depth = 0; + for ($i = 0; $i < strlen($formula); ++$i) { + $char = $formula[$i]; + switch ($char) { + case '?': + $return .= ' ? ('; + $depth++; + + break; + case ':': + $return .= ') : ('; + + break; + case ';': + $return .= str_repeat(')', $depth) . ';'; + $depth = 0; + + break; + default: + $return .= $char; + } + } + $return = trim(rtrim($return, ';')); // Cleaning + $return = preg_replace('/\s+/S', ' ', $return); // Extra spaces + + return str_replace('( ', '(', str_replace(' )', ')', $return)); // Remove extra space around () + } + + /** + * Get plural index + * + * @param int $count msg count + * @return int plural index + */ + public function getPluralIndex($count) + { + if (!is_callable($this->translation_plural['callable'] ?? null)) { + // So, this is how you interpeter this thing + $function = $this->translation_plural['function']; + $nplurals = $this->translation_plural['nplurals']; + $evil = "\$callable = function(\$n) {\$index = (int)$function; return \$index < $nplurals ? \$index : ($nplurals - 1);};"; + eval($evil); + /** @var callable $callable */ + $this->translation_plural['callable'] = $callable; + } + + return call_user_func($this->translation_plural['callable'], $count); + } + + private function parseHeader($header) + { + $headerTable = []; + $lines = array_map('trim', explode("\n", $header)); + foreach ($lines as $line) { + if (starts_with('msgid', $line) or starts_with('msgstr', $line)) { + continue; + } + $line = preg_replace('#\"(.*)\"#', '$1', $line); + $line = rtrim($line, '\n'); + $parts = explode(':', $line, 2); + if (!isset($parts[1])) { + continue; + } // Skip empty keys + $headerTable[trim($parts[0])] = trim($parts[1]); + } + + return $headerTable; + } + + /** + * Parse a PO entry chunk + * @param string $chunk + * + * @return Array of translation table + */ + private function parsePOEntry($chunk) + { + $chunks = explode("\n", $chunk); + foreach ($chunks as $chunk) { + if (starts_with('#', $chunk) or is_null($chunk)) { + continue; + } + if (is_null($this->translation_plural) and starts_with('"Plural-Forms:', $chunk)) { + $this->parsePluralData($chunk); + } + if (preg_match('/^msgid "(.*)"/', $chunk, $matches)) { + $msgid = $matches[1]; + } elseif (preg_match('/^msgstr "(.*)"/', $chunk, $matches)) { + $msgstr = $matches[1]; + } elseif (preg_match('/^#~ msgid "(.*)"/', $chunk, $matches)) { + $msgid = $matches[1]; + } elseif (preg_match('/^#~ msgstr "(.*)"/', $chunk, $matches)) { + $msgstr = $matches[1]; + } elseif (preg_match('/^msgstr\[([0-9])+\] "(.*)"/', $chunk, $matches)) { + if ($matches[2] == '') { + continue; + } + if (!is_array($msgstr ?? null)) { + $msgstr = []; + } + $msgstr[$matches[1]] = $matches[2]; + } + } + $msgstr ??= null; + if ($msgstr == '') { + $msgstr = null; + } + if (empty($msgid)) { + return null; + } else { + return [ + 'msgid' => $msgid, + 'msgstr' => is_null($msgstr) ? null : (array)$msgstr + ]; + } + } + + /** + * Parse binary .mo file + */ + private function parseMOFile() + { + $filesize = filesize($this->source_file); + if ($filesize < 4 * 7) { + return; + } + + $fp = @fopen($this->source_file, 'rb'); + if (!$fp) { + throw new GettextException("Can't fopen file for reading", 600); + } + + $offsets = $this->parseMOHeader($fp); + + if (null == $offsets || $filesize < 4 * ($offsets['num_strings'] + 7)) { + fclose($fp); + + return; + } + + $transTable = []; + $table = $this->parseMOTableOffset($fp, $offsets['trans_offset'], $offsets['num_strings']); + if (null == $table) { + fclose($fp); + + return; + } + + foreach ($table as $idx => $entry) { + $transTable[$idx] = $this->parseMOEntry($fp, $entry); + } + + $this->translation_header = $this->parseHeader(reset($transTable)); + + // Parse plural data + $this->parsePluralData($this->translation_header['Plural-Forms']); + + $table = $this->parseMOTableOffset($fp, $offsets['orig_offset'], $offsets['num_strings']); + + foreach ($table as $idx => $entry) { + $entry = $this->parseMOEntry($fp, $entry); + $formes = explode(chr(0), $entry); + $translation = explode(chr(0), $transTable[$idx]); + foreach ($formes as $form) { + if (empty($form)) { + continue; + } + $this->translation_table[$form] = $translation; + } + } + + fclose($fp); + } + + /** + * Parse text based .po file + */ + private function parsePOFile() + { + $linenumber = 0; + $chunks = []; + $file = file($this->source_file); + if (!$file) { + throw new GettextException("Can't read file into an array", 604); + } + foreach ($file as $line) { + if ($line == "\n" or $line == "\r\n") { + ++$linenumber; + } else { + if (!array_key_exists($linenumber, $chunks)) { + $chunks[$linenumber] = ''; + } + $chunks[$linenumber] .= $line; + } + } + $this->translation_header = $this->parseHeader(reset($chunks)); + foreach ($chunks as $chunk) { + $entry = $this->parsePOEntry($chunk); + if (!isset($entry['msgid']) or !isset($entry['msgstr'])) { + continue; + } + $this->translation_table[$entry['msgid']] = $entry['msgstr']; + } + } + + /** + * Get cached results (cached file) + * + * @return bool cache status + */ + private function getCache() + { + try { + is_readable($this->cache_file); + // Outdated cache? + $source_mtime = filemtime($this->source_file); + $cache_mtime = file_exists($this->cache_file) ? filemtime($this->cache_file) : 0; + if ($source_mtime and $cache_mtime and $source_mtime > $cache_mtime) { + return false; + } + + try { + include_once $this->cache_file; + } catch (Throwable $e) { + return false; + } + if (isset($translation_table)) { + $this->translation_table = $translation_table; + if (isset($translation_plural)) { + $this->translation_plural = $translation_plural; + } + if (isset($translation_header)) { + $this->translation_header = $translation_header; + } + $this->is_cached = true; + $this->parsed = true; + + return true; + } + } catch (Throwable $e) { + } + + $this->is_cached = false; + + return false; + } + + /** + * Cache the translation results into a file + */ + private function cache() + { + is_dir(dirname($this->cache_file)); + $fh = fopen($this->cache_file, 'w'); + if ($fh === false) { + throw new GettextException("Can't fopen cache file for writing", 601); + } + $contents = '<?php' . "\n"; + if ($this->options['cache_header']) { + if (!is_null($this->translation_header)) { + $contents .= '$translation_header = ' . var_export($this->translation_header, true) . ';' . "\n"; + } + if (!is_null($this->translation_plural)) { + $translation_plural = $this->translation_plural; + unset($translation_plural['callable']); // Don't cache the callable reference + $contents .= '$translation_plural = ' . var_export($translation_plural, true) . ';' . "\n"; + } + } + $contents .= '$translation_table = ['; + foreach ($this->translation_table as $k => $v) { + $k = $this->parse_method == 'PO' ? $k : $this->fixQuotes($k, 'escape'); + $contents .= "\n" . ' "' . $k . '" => ['; + foreach ($v as $kk => $vv) { + $kk = $this->parse_method == 'PO' ? $kk : $this->fixQuotes($kk, 'escape'); + $vv = $this->parse_method == 'PO' ? $vv : $this->fixQuotes($vv, 'escape'); + $contents .= "\n" . ' ' . $kk . ' => "' . $vv . '",'; + } + $contents .= "\n" . ' ],'; + } + $contents .= "\n" . '];' . "\n" . '?>'; + if (!fwrite($fh, $contents)) { + throw new GettextException("Can't save translation results to cache file", 602); + } + + try { + touch($this->source_file); + } catch (Throwable $e) { + // Shhh + } + fclose($fh); + } + + private function fixQuotes($msg, $action = null) + { + if ($this->is_cached) { + return $msg; + } + switch ($action) { + case 'escape': + $msg = str_replace('"', '\"', $msg); + + break; + case 'unescape': + $msg = str_replace('\"', '"', $msg); + + break; + } + + return $msg; + } + + private function mustFixQuotes() + { + return $this->is_cached or $this->parse_method == 'PO'; + } +} + +class GettextException extends Exception +{ +} diff --git a/app/src/Legacy/G/Handler.php b/app/src/Legacy/G/Handler.php new file mode 100644 index 0000000..d00f68e --- /dev/null +++ b/app/src/Legacy/G/Handler.php @@ -0,0 +1,516 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\G; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; +use Chevereto\Config\Config; +use function Chevereto\Legacy\get_captcha_component; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\get; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use Closure; +use Exception; + +/** @deprecate V4 */ +class Handler +{ + private array $hook_template = []; + + private static string|array $route; + + private static array $route_request = []; + + private static string $route_name = ''; + + private static string $base_request = ''; + + private static array $vars = []; + + private static array $conds = []; + + private static array $routes = []; + + private static string $template_used = ''; + + private static bool $prevented_route = false; + + private static $mapped_args = []; + + private array $request_array; + + private string $relative_root; + + private string $base_url; + + private string $path_theme; + + private string $request_uri; + + private string $script_name; + + private string $valid_request; + + private string $canonical_request; + + private string $handled_request; + + private string $template; + + private array $request; + + public function __construct(bool $loadTemplate, ?Closure $before = null, ?Closure $after = null) + { + $this->relative_root = Config::host()->hostnamePath(); + $this->base_url = URL_APP_PUBLIC; + $this->path_theme = PATH_PUBLIC_LEGACY_THEME; + $this->request_uri = server()['REQUEST_URI'] ?? '/'; + $this->script_name = server()['SCRIPT_NAME'] ?? ''; + $query_string = '?' . (server()['QUERY_STRING'] ?? ''); + if (!empty(server()['QUERY_STRING'])) { + $this->request_uri = str_replace($query_string, '/', $this->request_uri); + } + $this->valid_request = '/' . ltrim(rtrim(sanitize_path_slashes($this->request_uri), '/'), '/'); + if (!empty(server()['QUERY_STRING'])) { + $this->request_uri = server()['REQUEST_URI']; + $this->valid_request .= $query_string; + } + $this->canonical_request = $this->valid_request; + if ((is_dir(PATH_PUBLIC . $this->valid_request) + || is_dir(dirname(PATH_PUBLIC) . $this->valid_request)) + && $this->valid_request !== '/' + ) { + $this->canonical_request .= '/'; + } + $this->handled_request = strtok($this->relative_root == '/' ? $this->valid_request : preg_replace('#' . $this->relative_root . '#', '/', $this->request_uri, 1), '?'); + $this->request_array = explode('/', rtrim(str_replace('//', '/', ltrim($this->handled_request, '/')), '/')); + if ($this->request_array[0] == '') { + $this->request_array[0] = '/'; + } + $this->request_array = array_values(array_filter($this->request_array, 'strlen')); + self::$base_request = $this->request_array[0]; + if (self::$base_request == 'index') { + redirect('/', 301); + } + if (self::$base_request !== '' && !empty(server()['QUERY_STRING'])) { + $fixed_qs_request = rtrim($this->relative_root, '/') . $this->handled_request; + parse_str(server()['QUERY_STRING'], $parse); + if ($parse !== []) { + $fixed_qs_request = rtrim($fixed_qs_request, '/') . '/'; + $index = -1; + foreach ($parse as $k => $v) { + $index++; + $fixed_qs_request .= $index === 0 ? '?' : '&'; + $fixed_qs_request .= urlencode($k); + if (is_string($v) && $v !== '') { + $fixed_qs_request .= '=' . urlencode($v); + } + } + } + $this->canonical_request = $fixed_qs_request; + } + if (self::$base_request == 'index.php') { + $this->canonical_request = rtrim($this->canonical_request, '/'); + redirect((sanitize_path_slashes(str_replace('index.php', '', $this->canonical_request))), 301); + } + + if ($this->relative_root !== $this->request_uri + && $this->canonical_request !== $this->request_uri + ) { + $this->baseRedirection($this->canonical_request); + } + if (in_array(self::$base_request, ['', 'index.php', '/'])) { + self::$base_request = 'index'; + } + $this->template = self::$base_request; + $this->request = $this->request_array; + self::$route_request = $this->request_array; + self::$route = $this->template !== '404' + ? ($this->request_array[0] == '/' + ? 'index' + : $this->request_array) + : '404'; + unset($this->request[0]); + $this->request = array_values($this->request); + if (is_callable($before)) { + $before($this); + } + if (($this->request[0] ?? '') === 'contact' && !self::cond('captcha_needed')) { + self::setCond( + 'captcha_needed', + getSetting('captcha') && getSetting('force_captcha_contact_page') + ); + } + if ($this->isIndex()) { + $this->processRequest(); + } + if (self::cond('captcha_needed')) { + self::setVar(...get_captcha_component()); + } + if (is_callable($after)) { + $after($this); + } + if ($loadTemplate) { + $this->loadTemplate(); + } + } + + public function handled_request(): string + { + return $this->handled_request; + } + + public function request_array(): array + { + return $this->request_array; + } + + public function template(): string + { + return $this->template; + } + + public function setTemplate(string $template): void + { + $this->template = $template; + } + + public function setPathTheme(string $path): void + { + $this->path_theme = $path; + } + + public static function baseRequest(): string + { + return self::$base_request; + } + + public static function isPreventedRoute(): bool + { + return self::$prevented_route; + } + + public static function mappedArgs(): array + { + return self::$mapped_args; + } + + public function requestArray(): array + { + return $this->request_array; + } + + public function request(): array + { + return $this->request; + } + + private function processRequest(): void + { + $route = $this->getRouteFn(self::$base_request); + if (is_callable($route)) { + $routes[self::$base_request] = $route; + } + if (is_array($routes) && array_key_exists(self::$base_request, $routes)) { + $magic = [ + 'post' => post() ? post() : null, + 'get' => get() ? get() : null, + 'request' => request() ? request() : null, + 'safe_post' => post() ? safe_html(post()) : null, + 'safe_get' => get() ? safe_html(get()) : null, + 'safe_request' => request() ? safe_html(request()) : null, + 'auth_token' => self::getAuthToken() + ]; + + self::$vars = self::$vars !== [] + ? array_merge(self::$vars, $magic) + : $magic; + if (!self::$prevented_route && is_callable($routes[self::$base_request])) { + $routes[self::$base_request]($this); + } + } else { + $this->issueError(404); + $this->request = $this->request_array; + } + if ($this->template == 404) { + self::$route = '404'; + } + self::setCond('404', $this->template == '404'); + if (isset(self::$vars['pre_doctitle'])) { + $stock_doctitle = self::$vars['doctitle']; + self::$vars['doctitle'] = self::$vars['pre_doctitle']; + if ($stock_doctitle) { + self::$vars['doctitle'] .= ' - ' . $stock_doctitle; + } + } + self::$template_used = $this->template; + } + + public function issueError(int $status): void + { + set_status_header($status); + $name = strval($status); + if ($this->cond('mapped_route')) { + self::$base_request = self::$route_request[0]; + self::$route_name = $name; + } + $this->template = $name; + } + + public function preventRoute(?string $tpl = null): void + { + if ($tpl !== null) { + $this->template = $tpl; + } + self::$prevented_route = true; + } + + public function getRouteFn(string $route_name): callable + { + if (array_key_exists($route_name, self::$routes)) { + return self::$routes[$route_name]; + } + $filename = $route_name . '.php'; + $route_file = PATH_APP_LEGACY_ROUTES . $filename; + $route_override_file = PATH_APP_LEGACY_ROUTES_OVERRIDES . $filename; + if (file_exists($route_override_file)) { + $route_file = $route_override_file; + } + if (!file_exists($route_file)) { + $route_name = getSetting('root_route'); + $route_file = PATH_APP_LEGACY_ROUTES . $route_name . ".php"; + $this->template = $route_name; + } + if (file_exists($route_file)) { + /** @var callable $route */ + $route = require $route_file; + self::$routes[$route_name] = $route; + self::$route_name = $route_name; + + return $route; + } + + throw new LogicException( + message('Missing route file %file%') + ->withCode('%file%', $route_file) + ); + } + + public function mapRoute(string $route_name, array $args = null): callable + { + $this->template = $route_name; + self::$base_request = $route_name; + self::setCond('mapped_route', true); + if (!is_null($args)) { + self::$mapped_args = $args; + } + + return $this->getRouteFn($route_name); + } + + public function isRequestLevel(int $level): bool + { + return isset($this->request_array[$level - 1]); + } + + public function baseRedirection(string $request): void + { + $request = trim(sanitize_path_slashes($request), '/'); + $url = preg_replace('{' . $this->relative_root . '}', '/', $this->base_url, 1) . $request; + redirect($url, 301); + } + + private function isIndex(): bool + { + return (bool) preg_match('{index\.php$}', ltrim($this->script_name, '/')); + } + + public function hookTemplate(array $args = []): void + { + if (in_array($args['where'], ['before', 'after']) && $args['code']) { + $this->hook_template[$args['where']] = $args['code']; + } + } + + private function loadTemplate(string $template = null): void + { + if (!is_null($template)) { + $this->template = $template; + } + $functions_basename = 'functions.php'; + $template_functions = [ + $this->path_theme . 'overrides/' . $functions_basename, + $this->path_theme . $functions_basename + ]; + foreach ($template_functions as $file) { + if (file_exists($file)) { + require $file; + + break; + } + } + $view_basename = $this->template; + $view_extension = get_file_extension($this->template); + if ($view_extension === '' || $view_extension === '0') { + $view_extension = 'php'; + if (str_ends_with($this->path_theme, '/pages/')) { + $view_extension = Config::enabled()->phpPages() + ? 'php' + : 'html'; + } + $view_basename .= '.' . $view_extension; + } + $template_file = [ + $this->path_theme . 'overrides/views/' . $view_basename, + $this->path_theme . 'overrides/' . $view_basename, + $this->path_theme . 'views/' . $view_basename, + $this->path_theme . $view_basename, + ]; + foreach ($template_file as $file) { + if (file_exists($file)) { + if ($view_extension == 'html') { + include_theme_header(); + } + if (isset($this->hook_template['before'])) { + echo $this->hook_template['before']; + } + if ($view_extension == 'php') { + require $file; + } else { + echo file_get_contents($file); + } + if (isset($this->hook_template['after'])) { + echo $this->hook_template['after']; + } + if ($view_extension == 'html') { + include_theme_footer(); + } + + return; + } + } + $end = end($template_file); + $key = key($template_file); + + throw new Exception('Missing ' . absolute_to_relative($template_file[$key]) . ' template file'); + } + + public static function getAuthToken(): string + { + $token = isset(session()['G_auth_token']) + ? session()['G_auth_token'] + : random_string(40); + sessionVar()->put('G_auth_token', $token); + + return $token; + } + + public static function checkAuthToken(string $token): bool + { + if (strlen($token) < 40) { + return false; + } + + return timing_safe_compare(session()['G_auth_token'], $token); + } + + public static function setVar(string $var, mixed $value): void + { + self::$vars[$var] = $value; + } + + public static function setVars(array $array = []): void + { + foreach ((array) $array as $var => $value) { + self::$vars[$var] = $value; + } + } + + public static function setCond(string $cond, bool $bool): void + { + self::$conds[$cond] = $bool; + } + + public static function setConds(array $array = []): void + { + foreach ((array) $array as $conds => $bool) { + self::$conds[$conds] = (bool) $bool; + } + } + + public static function hasVar(string $var): bool + { + return array_key_exists($var, self::vars()); + } + + public static function var($var): mixed + { + return self::vars()[$var] ?? null; + } + + public static function vars(): array + { + return self::$vars; + } + + public static function hasCond(string $cond): bool + { + return array_key_exists($cond, self::conds()); + } + + public static function cond(string $cond): bool + { + return self::conds()[$cond] ?? false; + } + + public static function conds(): array + { + return self::$conds; + } + + public static function updateVar(string $var, mixed $value) + { + if (is_array(self::$vars[$var]) && is_array($value)) { + $value += self::$vars[$var]; // replacement + replaced + ksort($value); + } + self::$vars[$var] = $value; + } + + public static function unsetVar(string $var): void + { + unset(self::$vars[$var]); + } + + public static function getTemplateUsed(): string + { + return self::$template_used; + } + + public static function getRoutePath(bool $full = true): string + { + if (is_array(self::$route)) { + return $full ? implode('/', self::$route) : self::$route[0]; + } else { + return self::$route; + } + } + + public static function getRouteName(): string + { + return self::$route_name; + } +} diff --git a/app/src/Legacy/G/functions-render.php b/app/src/Legacy/G/functions-render.php new file mode 100644 index 0000000..665c056 --- /dev/null +++ b/app/src/Legacy/G/functions-render.php @@ -0,0 +1,168 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\G; + +/** + * INCLUDE TAGS + * --------------------------------------------------------------------- + */ + +function include_theme_file($filename, $args = []) +{ + $file = PATH_PUBLIC_LEGACY_THEME . $filename; + $override = PATH_PUBLIC_LEGACY_THEME . 'overrides/' . $filename; + if (!file_exists($file)) { + $file .= '.php'; + $override .= '.php'; + } + if (file_exists($override)) { + $file = $override; + } + if (file_exists($file)) { + $GLOBALS['theme_include_args'] = $args; + require $file; + unset($GLOBALS['theme_include_args']); + } +} + +function include_theme_header() +{ + include_theme_file('header'); +} + +function include_theme_footer() +{ + include_theme_file('footer'); +} + +function get_theme_file_contents($filename) +{ + $file = PATH_PUBLIC_LEGACY_THEME . $filename; + + return file_exists($file) ? file_get_contents($file) : null; +} + +/** + * THEME DATA FUNCTIONS + * --------------------------------------------------------------------- + */ + +function get_theme_file_url($string) +{ + return URL_APP_THEME . $string; +} + +/** + * ASSETS + * --------------------------------------------------------------------- + */ + + // Returns the HTML input with the auth token +function get_input_auth_token($name = 'auth_token') +{ + return '<input type="hidden" name="' . $name . '" value="' . Handler::getAuthToken() . '">'; +} + +/** + * NON HTML OUTPUT + * --------------------------------------------------------------------- + */ + +// Outputs the REST_API array to xml +function xml_output($data = []) +{ + error_reporting(0); + if (ob_get_level() === 0 && !ob_start('ob_gzhandler')) { + ob_start(); + } + header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); + header("Cache-Control: no-cache, must-revalidate"); + header("Pragma: no-cache"); + header("Content-Type:text/xml; charset=UTF-8"); + $out = '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; + if ($data['status_code'] ?? false) { + $out .= "<status_code>$data[status_code]</status_code>\n"; + if (!$data['status_txt']) { + $data['status_txt'] = get_set_status_header_desc($data['status_code']); + } + $out .= "<status_txt>$data[status_txt]</status_txt>\n"; + } + unset($data['status_code'], $data['status_txt']); + if ($data !== []) { + foreach ($data as $key => $array) { + $out .= "<$key>\n"; + foreach ($array as $prop => $value) { + $out .= " <$prop>$value</$prop>\n"; + } + $out .= "</$key>\n"; + } + } + echo $out; + die(); +} + +// Procedural function to output an array to json +function json_output($data = [], $callback = null) +{ + error_reporting(0); + if (ob_get_level() === 0 && !ob_start('ob_gzhandler')) { + ob_start(); + } + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); + header('Cache-Control: no-cache, must-revalidate'); + header('Pragma: no-cache'); + header('Content-type: application/json; charset=UTF-8'); + if (!check_value($data) || (check_value($callback) && preg_match('/\W/', (string) $callback))) { + set_status_header(400); + $json_fail = [ + 'status_code' => 400, + 'status_txt' => get_set_status_header_desc(400), + 'error' => [ + 'message' => 'no request data present', + 'code' => null + ] + ]; + echo json_encode($json_fail); + die(255); + } + if (isset($data['status_code']) && !isset($data['status_txt'])) { + $data['status_txt'] = get_set_status_header_desc($data['status_code']); + } + $flags = 0; + if (PHP_SAPI === 'cli') { + $flags = JSON_PRETTY_PRINT; + } + $json_encode = json_encode($data, $flags); + if (!$json_encode) { // Json failed + set_status_header(500); + $json_fail = [ + 'status_code' => 500, + 'status_txt' => get_set_status_header_desc(500), + 'error' => [ + 'message' => "data couldn't be encoded into json", + 'code' => null + ] + ]; + echo json_encode($json_fail); + die(255); + } + set_status_header($data['status_code'] ?? 200); + if (!is_null($callback)) { + print sprintf('%s(%s);', $callback, $json_encode); + } else { + print $json_encode; + } + if (PHP_SAPI === 'cli') { + echo "\n"; + } + die(255); +} diff --git a/app/src/Legacy/G/functions.php b/app/src/Legacy/G/functions.php new file mode 100644 index 0000000..d338d8a --- /dev/null +++ b/app/src/Legacy/G/functions.php @@ -0,0 +1,2615 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy\G; + + use Chevereto\Config\Config; +use function Chevereto\Vars\env; +use function Chevereto\Vars\server; +use Composer\CaBundle\CaBundle; +use CurlHandle; +use DateInterval; +use ErrorException; +use Exception; +use GdImage; +use LogicException; +use function Safe\curl_exec; +use Throwable; + +/** + * ROUTE HELPERS + * ---------------------------------------------------------------------. + */ + +/** + * @return bool True if the $route is current /route or mapped-route -> /route + */ +function is_route(string $route): bool +{ + return Handler::baseRequest() === $route; +} + +function is_route_available(string $route): bool +{ + $route_file = $route . '.php'; + + return file_exists(PATH_APP_LEGACY_ROUTES . $route_file) or file_exists(PATH_APP_LEGACY_ROUTES_OVERRIDES . $route_file); +} + +function is_prevented_route(): bool +{ + return Handler::isPreventedRoute() === true; +} + +/** + * $full=true returns route/and/sub/routes + * $full=false returns the /route base + */ +function get_route_path(bool $full = false): string +{ + return Handler::getRoutePath($full); +} + +/** + * @return string route name from name.php + */ +function get_route_name(): string +{ + return Handler::getRouteName(); +} + +function get_template_used(): string +{ + return Handler::getTemplateUsed(); +} + +/** @deprecated V4 */ +function debug(mixed $arguments) +{ + if (empty($arguments)) { + return; + } + if (PHP_SAPI !== 'cli') { + echo '<pre>'; + } + foreach (func_get_args() as $value) { + print_r($value); + } + if (PHP_SAPI !== 'cli') { + echo '</pre>'; + } +} + +/** @deprecated V4 */ +function check_value(mixed $anything): bool +{ + // @phpstan-ignore-next-line + if ((!empty($anything) && isset($anything)) + || $anything == '0' + || (is_countable($anything) && count($anything) > 0)) { + return true; + } + + return false; +} + +/** @deprecated V4 */ +function get_global(mixed $var): mixed +{ + global ${$var}; + + return ${$var}; +} + +function is_apache(): bool +{ + return preg_match('/Apache/i', server()['SERVER_SOFTWARE'] ?? ''); +} + +function random_values(int $min, int $max, int $limit): array +{ + $min = min($min, $max); + $max = max($min, $max); + if ($min == $max) { + return [$min]; + } + $minmax_limit = abs($max - $min); + if ($limit > $minmax_limit) { + $limit = $minmax_limit; + } + $array = []; + for ($i = 0; $i < $limit; ++$i) { + $rand = rand($min, $max); + while (in_array($rand, $array)) { + $rand = mt_rand($min, $max); + } + $array[$i] = $rand; + } + + return $array; +} + +/** @deprecated V4 */ +function random_string(int $length): string +{ + switch (true) { + case function_exists('random_bytes'): + $r = random_bytes($length); + + break; + case function_exists('openssl_random_pseudo_bytes'): + $r = openssl_random_pseudo_bytes($length); + + break; + case is_readable('/dev/urandom'): + $r = file_get_contents('/dev/urandom', false, null, 0, $length); + + break; + default: + $i = 0; + $r = ''; + while ($i++ < $length) { + $r .= chr(mt_rand(0, 255)); + } + + break; + } + + return substr(bin2hex($r), 0, $length); +} + +/** @deprecated V4 */ +function timing_safe_compare(?string $safe, ?string $user): bool +{ + $safe ??= ''; + $user ??= ''; + $safe .= chr(0); + $user .= chr(0); + $safeLen = strlen($safe); + $userLen = strlen($user); + $result = $safeLen - $userLen; + for ($i = 0; $i < $userLen; ++$i) { + $result |= (ord($safe[$i % $safeLen]) ^ ord($user[$i])); + } + + return $result === 0; +} + +/** @deprecated V4 */ +function str_replace_first(string $search, string $replace, string $subject): string +{ + $pos = strpos($subject, $search); + if ($pos !== false) { + $subject = substr_replace($subject, $replace, $pos, strlen($search)); + } + + return $subject; +} + +/** @deprecated V4 */ +function str_replace_last(string $search, string $replace, string $subject): string +{ + $pos = strrpos($subject, $search); + if ($pos !== false) { + $subject = substr_replace($subject, $replace, $pos, strlen($search)); + } + + return $subject; +} + +/** @deprecated V4 */ +function starts_with(string $needle, string $haystack): bool +{ + return substr($haystack, 0, strlen($needle)) === $needle; +} + +/** @deprecated V4 */ +function ends_with(string $needle, string $haystack): bool +{ + $length = strlen($needle); + if ($length == 0) { + return true; + } + + return substr($haystack, -$length) === $needle; +} + +function array_filter_array(array $array, array $filter_keys, string $get = 'exclusion'): array +{ + $return = []; + $get = strtolower($get); + $default_get = 'exclusion'; + foreach ($filter_keys as $k => $v) { + switch ($get) { + default: + case $default_get: + $get = $default_get; + if (!array_key_exists($v, $array)) { + continue 2; + } + $return[$v] = $array[$v]; + + break; + case 'rest': + unset($array[$v]); + + break; + } + } + + return $get == $default_get ? $return : $array; +} + +function key_asort(array &$array, string $key): void +{ + $sorter = []; + $ret = []; + reset($array); + foreach ($array as $ii => $va) { + $sorter[$ii] = $va[$key]; + } + asort($sorter); + foreach ($sorter as $ii => $va) { + $ret[$ii] = $array[$ii]; + } + $array = $ret; +} + +function array_utf8encode(array &$arr): array +{ + array_walk_recursive($arr, function (&$val, $key) { + if (is_int($val)) { + $val = (string) $val; + } + if ($val !== null) { + $encoding = mb_detect_encoding($val); + if ($encoding == false) { + $val = null; + } else { + $val = mb_convert_encoding($val, 'UTF-8', $encoding); + } + } + }); + + return $arr; +} + +function array_remove_empty(array $haystack): array +{ + foreach ($haystack as $key => $value) { + if (is_array($value)) { + $haystack[$key] = array_remove_empty($haystack[$key]); + } + if (empty($haystack[$key])) { + unset($haystack[$key]); + } + } + + return $haystack; +} + +function abbreviate_number(string|int $number): string +{ + // @phpstan-ignore-next-line + $number = (0 + str_replace(',', '', (string) $number)); + if (!is_numeric($number) or $number == 0) { + return (string) $number; + } + $abbreviations = [ + 24 => 'Y', + 21 => 'Z', + 18 => 'E', + 15 => 'P', + 12 => 'T', + 9 => 'G', + 6 => 'M', + 3 => 'K', + 0 => null, + ]; + foreach ($abbreviations as $exponent => $abbreviation) { + if ($number >= pow(10, $exponent)) { + return round(floatval($number / pow(10, $exponent))) . $abbreviation; + } + } + + return (string) $number; +} + +function nullify_string(mixed &$string) +{ + if (is_string($string) and $string == '') { + $string = null; + } +} + +function hex_to_rgb(string $hex): array +{ + $hex = str_replace('#', '', $hex); + if (strlen($hex) == 3) { + $r = hexdec(substr($hex, 0, 1) . substr($hex, 0, 1)); + $g = hexdec(substr($hex, 1, 1) . substr($hex, 1, 1)); + $b = hexdec(substr($hex, 2, 1) . substr($hex, 2, 1)); + } else { + $r = hexdec(substr($hex, 0, 2)); + $g = hexdec(substr($hex, 2, 2)); + $b = hexdec(substr($hex, 4, 2)); + } + + return [$r, $g, $b]; +} + +function rgb_to_hex(array $rgb): string +{ + $hex = '#'; + $hex .= str_pad(dechex($rgb[0]), 2, '0', STR_PAD_LEFT); + $hex .= str_pad(dechex($rgb[1]), 2, '0', STR_PAD_LEFT); + $hex .= str_pad(dechex($rgb[2]), 2, '0', STR_PAD_LEFT); + + return $hex; +} + +function html_to_bbcode(string $text): string +{ + $htmltags = [ + '/\<b\>(.*?)\<\/b\>/is', + '/\<i\>(.*?)\<\/i\>/is', + '/\<u\>(.*?)\<\/u\>/is', + '/\<ul.*?\>(.*?)\<\/ul\>/is', + '/\<li\>(.*?)\<\/li\>/is', + '/\<img(.*?) src=\"(.*?)\" alt=\"(.*?)\" title=\"Smile(y?)\" \/\>/is', + '/\<img(.*?) src=\"(.*?)\" (.*?)\>/is', + '/\<img(.*?) src=\"(.*?)\" alt=\":(.*?)\" .*? \/\>/is', + '/\<div class=\"quotecontent\"\>(.*?)\<\/div\>/is', + '/\<div class=\"codecontent\"\>(.*?)\<\/div\>/is', + '/\<div class=\"quotetitle\"\>(.*?)\<\/div\>/is', + '/\<div class=\"codetitle\"\>(.*?)\<\/div\>/is', + '/\<cite.*?\>(.*?)\<\/cite\>/is', + '/\<blockquote.*?\>(.*?)\<\/blockquote\>/is', + '/\<div\>(.*?)\<\/div\>/is', + '/\<code\>(.*?)\<\/code\>/is', + '/\<br(.*?)\>/is', + '/\<strong\>(.*?)\<\/strong\>/is', + '/\<em\>(.*?)\<\/em\>/is', + '/\<a href=\"mailto:(.*?)\"(.*?)\>(.*?)\<\/a\>/is', + '/\<a .*?href=\"(.*?)\"(.*?)\>http:\/\/(.*?)\<\/a\>/is', + '/\<a .*?href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is', + ]; + $bbtags = [ + '[b]$1[/b]', + '[i]$1[/i]', + '[u]$1[/u]', + '[list]$1[/list]', + '[*]$1', + '$3', + '[img]$2[/img]', + ':$3', + '\[quote\]$1\[/quote\]', + '\[code\]$1\[/code\]', + '', + '', + '', + '\[quote\]$1\[/quote\]', + '$1', + '\[code\]$1\[/code\]', + "\n", + '[b]$1[/b]', + '[i]$1[/i]', + '[email=$1]$3[/email]', + '[url]$1[/url]', + '[url=$1]$3[/url]', + ]; + $text = str_replace("\n", ' ', $text); + $ntext = preg_replace($htmltags, $bbtags, $text); + $ntext = preg_replace($htmltags, $bbtags, $ntext); + if (!$ntext) { + $ntext = str_replace(['<br>', '<br />'], "\n", $text); + $ntext = str_replace(['<strong>', '</strong>'], ['[b]', '[/b]'], $ntext); + $ntext = str_replace(['<em>', '</em>'], ['[i]', '[/i]'], $ntext); + } + $ntext = strip_tags($ntext); + + return trim(html_entity_decode($ntext, ENT_QUOTES, 'UTF-8')); +} + +function linkify(string $text, array $options = []): string +{ + $attr = ''; + if (array_key_exists('attr', $options)) { + foreach ($options['attr'] as $key => $value) { + if (true === is_array($value)) { + $value = array_pop($value); + } + $attr .= sprintf(' %s="%s"', $key, $value); + } + } + $options['attr'] = $attr; + $ignoreTags = ['head', 'link', 'a', 'script', 'style', 'code', 'pre', 'select', 'textarea', 'button']; + $chunks = preg_split('/(<.+?>)/is', $text, 0, PREG_SPLIT_DELIM_CAPTURE); + $openTag = null; + for ($i = 0; $i < count($chunks); ++$i) { + if ($i % 2 === 0) { // even numbers are text + // Only process this chunk if there are no unclosed $ignoreTags + if (null === $openTag) { + $chunks[$i] = linkify_urls($chunks[$i], $options); + $chunks[$i] = linkify_emails($chunks[$i], $options); + } + } else { // odd numbers are tags + // Only process this tag if there are no unclosed $ignoreTags + if (null === $openTag) { + // Check whether this tag is contained in $ignoreTags and is not self-closing + if (preg_match('`<(' . implode('|', $ignoreTags) . ').*(?<!/)>$`is', (string) $chunks[$i], $matches)) { + $openTag = $matches[1]; + } + } else { + // Otherwise, check whether this is the closing tag for $openTag. + if (preg_match('`</\s*' . $openTag . '>`i', (string) $chunks[$i], $matches)) { + $openTag = null; + } + } + } + } + + return implode($chunks); +} + +function linkify_emails(string $text, array $options = ['attr' => '']): string +{ + $pattern = '~(?xi) + \b + (?<!=) # Not part of a query string + [A-Z0-9._\'%+-]+ # Username + @ # At + [A-Z0-9.-]+ # Domain + \. # Dot + [A-Z]{2,4} # Something + ~'; + $callback = function ($match) use ($options) { + if (is_callable($options['callback'] ?? null)) { + $cb = $options['callback']($match[0], $match[0], $options); + if (!is_null($cb)) { + return $cb; + } + } + + return '<a href="mailto:' . $match[0] . '"' . $options['attr'] . '>' . $match[0] . '</a>'; + }; + + return preg_replace_callback($pattern, $callback, $text); +} + +function linkify_urls(string $text, array $options = ['attr' => '']) +{ + $pattern = '~(?xi) + (?: + ((ht|f)tps?://) # scheme:// + | # or + www\d{0,3}\. # "www.", "www1.", "www2." ... "www999." + | # or + www\- # "www-" + | # or + [a-z0-9.\-]+\.[a-z]{2,4}(?=/) # looks like domain name followed by a slash + ) + (?: # Zero or more: + [^\s()<>]+ # Run of non-space, non-()<> + | # or + \(([^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels + )* + (?: # End with: + \(([^\s()<>]+|(\([^\s()<>]+\)))*\) # balanced parens, up to 2 levels + | # or + [^\s`!\-()\[\]{};:\'".,<>?«»“”‘’] # not a space or one of these punct chars + ) + ~'; + $callback = function ($match) use ($options) { + $caption = $match[0]; + $pattern = '~^(ht|f)tps?://~'; + if (0 === preg_match($pattern, (string) $match[0])) { + $match[0] = 'http://' . $match[0]; + } + if (is_callable($options['callback'] ?? null)) { + $cb = $options['callback']($match[0], $caption, $options); + if (!is_null($cb)) { + return $cb; + } + } + + return '<a href="' . $match[0] . '"' . $options['attr'] . '>' . $caption . '</a>'; + }; + + return preg_replace_callback($pattern, $callback, $text); +} + +function linkify_safe(string $text, array $options = []) +{ + $options = array_merge([ + 'attr' => [ + 'rel' => 'nofollow', + 'target' => '_blank' + ] + ], $options); + + return linkify($text, $options); +} + +/** @deprecated V4 */ +function errorsAsExceptions( + int $severity, + string $message, + string $file, + int $line +): void { + throw new ErrorException($message, 0, $severity, $file, $line); +} + +function writeToStderr(string $message): void +{ + fwrite(fopen('php://stderr', 'wb'), $message . "\n"); +} + +/** @deprecated V4 */ +function exception_to_error(Throwable $e, bool $print = true): string +{ + $errorId = random_string(16); + $isDocker = env()['CHEVERETO_SERVICING'] === 'docker'; + $device = $isDocker ? 'stderr' : 'error_log'; + $debug_level = Config::system()->debugLevel(); + if (!in_array($debug_level, [0, 1, 2, 3])) { + $debug_level = 1; + } + $internal_code = 500; + $internal_error = '<b>Aw, snap!</b> ' . get_set_status_header_desc($internal_code); + $table = [ + 0 => "debug is disabled", + 1 => "debug @ $device", + 2 => "debug @ print", + 3 => "debug @ print,$device", + ]; + $internal_error .= ' [' . $table[$debug_level] . '] - https://chv.to/v4debug'; + $message = [$internal_error, '', '** errorId #' . $errorId . ' **']; + $previous = $e; + $messageStock = []; + $i = 0; + do { + $code = $previous->getCode(); + $messageStock[$i] = [$previous->getMessage(), safe_html($previous->getMessage())]; + $message[] = '>> ' . get_class($e) . " [$code]: <b>%message_$i%</b>"; + $message[] = 'At ' . absolute_to_relative($previous->getFile()) . ':' . $previous->getLine() . "\n"; + $i++; + } while ($previous = $previous->getPrevious()); + $stack = '<b>Stack trace:</b>'; + $message[] = $stack; + $rtn = ''; + $count = 0; + foreach ($e->getTrace() as $frame) { + $args = ''; + if (isset($frame['args'])) { + $args = []; + foreach ($frame['args'] as $arg) { + switch (true) { + case is_string($arg): + if (file_exists($arg)) { + $arg = absolute_to_relative($arg); + } + $args[] = "'" . $arg . "'"; + + break; + case is_array($arg): + $args[] = 'Array'; + + break; + case is_null($arg): + $args[] = 'NULL'; + + break; + case is_bool($arg): + $args[] = ($arg) ? 'true' : 'false'; + + break; + case is_object($arg): + $args[] = get_class($arg); + + break; + case is_resource($arg): + $args[] = get_resource_type($arg); + + break; + default: + $args[] = $arg; + + break; + } + } + $args = join(', ', $args); + } + $rtn .= sprintf( + "#%s %s(%s): %s(%s)\n", + $count, + isset($frame['file']) ? absolute_to_relative($frame['file']) : 'unknown file', + isset($frame['line']) ? $frame['line'] : 'unknown line', + (isset($frame['class'])) ? $frame['class'] . $frame['type'] . $frame['function'] : $frame['function'], + $args + ); + ++$count; + } + $message[] = $rtn; + $messageEcho = nl2br(implode("\n", $message)); + $messageLog = "\n" . strip_tags(nl2br(implode("\n", $message))); + foreach ($messageStock as $pos => $safeMessage) { + $messageEcho = strtr($messageEcho, ["%message_$pos%" => $safeMessage[1]]); + $messageLog = strtr($messageLog, ["%message_$pos%" => $safeMessage[0]]); + } + set_status_header($internal_code); + if ($print && in_array($debug_level, [2, 3])) { + echo PHP_SAPI !== 'cli' ? $messageEcho : $messageLog; + } + if (in_array($debug_level, [1, 3])) { + error_log($messageLog); + } + if ($isDocker) { + writeToStderr($messageLog); + } + + return $errorId; +} + +function datetimegmt(?string $format = null): string +{ + return gmdate(!is_null($format) ? $format : 'Y-m-d H:i:s'); +} + +function datetime(?string $format = null): string +{ + return date(!is_null($format) ? $format : 'Y-m-d H:i:s'); +} + +function datetime_tz(string $tz, ?string $format = null): string +{ + $date = date_create('now', timezone_open($tz)); + + return date_format($date, !is_null($format) ? $format : 'Y-m-d H:i:s'); +} + +function is_valid_timezone(string $tzid): bool +{ + $valid = []; + $tza = timezone_abbreviations_list(); + foreach ($tza as $zone) { + foreach ($zone as $item) { + $valid[$item['timezone_id']] = true; + } + } + unset($valid['']); + + return $valid[$tzid] ?? false; +} + +function datetimegmt_convert_tz(string $datetimegmt, string $tz): string +{ + if (!is_valid_timezone($tz)) { + return $datetimegmt; + } + $date = new \DateTime($datetimegmt . '+00'); + $date->setTimezone(new \DateTimeZone($tz)); + + return $date->format('Y-m-d H:i:s'); +} + +/** + * Returns the difference between two UTC dates in the given format (default seconds) + * @return integer `$new (current) - $old` + */ +function datetime_diff( + string $oldDatetime, + ?string $newDatetime = null, + string $format = 's' +): int { + if (!in_array($format, ['s', 'm', 'h', 'd'])) { + $format = 's'; + } + if ($newDatetime == null) { + $newDatetime = datetimegmt(); + } + $tz = new \DateTimeZone('UTC'); + $oldDateTime = new \DateTime($oldDatetime, $tz); + $newDateTime = new \DateTime($newDatetime, $tz); + $diff = $newDateTime->getTimestamp() - $oldDateTime->getTimestamp(); // In seconds + $timeconstant = [ + 's' => 1, + 'm' => 60, + 'h' => 3600, + 'd' => 86400, + ]; + + return intval($diff / $timeconstant[$format]); +} + +function datetime_add(string $datetime, string $add) +{ + return datetime_alter($datetime, $add, 'add'); +} + +function datetime_sub(string $datetime, string $sub) +{ + return datetime_alter($datetime, $sub, 'sub'); +} + +function datetime_modify(string $datetime, string $var) +{ + return datetime_alter($datetime, $var, 'modify'); +} + +function datetime_alter(string $datetime, string $var, $action = 'add'): string +{ + if (!in_array($action, ['add', 'sub', 'modify'])) { + return $datetime; + } + $DateTime = new \DateTime($datetime); + if ($action == 'modify') { + $DateTime->$action($var); + } else { + try { + $interval = new DateInterval($var); + } catch (Throwable $e) { + return $datetime; + } + $DateTime->$action($interval); + } + + return $DateTime->format('Y-m-d H:i:s'); +} + +function dateinterval(string $duration): DateInterval|bool +{ + try { + return new DateInterval($duration); + } catch (Exception $e) { + } + + return false; +} + +function get_client_ip(): string +{ + $key = env()['CHEVERETO_HEADER_CLIENT_IP']; + $key = $key === '' + ? 'REMOTE_ADDR' + : 'HTTP_' . strtoupper(str_replace('-', '_', $key)); + + return server()[$key] ?? ''; +} + +function get_client_languages(): array +{ + $acceptedLanguages = server()['HTTP_ACCEPT_LANGUAGE'] ?? ''; + preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})*)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $acceptedLanguages, $lang_parse); + $langs = $lang_parse[1]; + $ranks = $lang_parse[4]; + $lang2pref = []; + for ($i = 0; $i < count($langs); ++$i) { + $lang2pref[$langs[$i]] = (float) (!empty($ranks[$i]) ? $ranks[$i] : 1); + } + $cmpLangs = function ($a, $b) use ($lang2pref) { + if ($lang2pref[$a] > $lang2pref[$b]) { + return -1; + } elseif ($lang2pref[$a] < $lang2pref[$b]) { + return 1; + } elseif (strlen($a) > strlen($b)) { + return -1; + } elseif (strlen($a) < strlen($b)) { + return 1; + } else { + return 0; + } + }; + if (is_callable($cmpLangs)) { + uksort($lang2pref, $cmpLangs); + } + + return $lang2pref; +} + +/** + * Parses a user agent string into its important parts. + * + * @author Jesse G. Donat <donatj@gmail.com> + * + * @see https://github.com/donatj/PhpUserAgent + * @see http://donatstudios.com/PHP-Parser-HTTP_USER_AGENT + * + */ +function parse_user_agent(?string $u_agent = null): array +{ + if (is_null($u_agent) && isset(server()['HTTP_USER_AGENT'])) { + $u_agent = server()['HTTP_USER_AGENT']; + } + $platform = null; + $browser = null; + $version = null; + $empty = ['platform' => $platform, 'browser' => $browser, 'version' => $version]; + + if (!$u_agent) { + return $empty; + } + + if (preg_match('/\((.*?)\)/im', (string) $u_agent, $parent_matches)) { + preg_match_all('/(?P<platform>Android|CrOS|iPhone|iPad|Linux|Macintosh|Windows(\ Phone\ OS)?|Silk|linux-gnu|BlackBerry|PlayBook|Nintendo\ (WiiU?|3DS)|Xbox) + (?:\ [^;]*)? + (?:;|$)/imx', $parent_matches[1], $result, PREG_PATTERN_ORDER); + + $priority = ['Android', 'Xbox']; + $result['platform'] = array_unique($result['platform']); + if (count($result['platform']) > 1) { + if ($keys = array_intersect($priority, $result['platform'])) { + $platform = reset($keys); + } else { + $platform = $result['platform'][0]; + } + } elseif (isset($result['platform'][0])) { + $platform = $result['platform'][0]; + } + } + + if ($platform == 'linux-gnu') { + $platform = 'Linux'; + } elseif ($platform == 'CrOS') { + $platform = 'Chrome OS'; + } + + preg_match_all( + '%(?P<browser>Camino|Kindle(\ Fire\ Build)?|Firefox|Iceweasel|Safari|MSIE|Trident/.*rv|AppleWebKit|Chrome|IEMobile|Opera|OPR|Silk|Lynx|Midori|Version|Wget|curl|NintendoBrowser|PLAYSTATION\ (\d|Vita)+) + (?:\)?;?) + (?:(?:[:/ ])(?P<version>[0-9A-Z.]+)|/(?:[A-Z]*))%ix', + $u_agent, + $result, + PREG_PATTERN_ORDER + ); + if (!isset($result['browser'][0]) || !isset($result['version'][0])) { + return $empty; + } + $browser = $result['browser'][0]; + $version = $result['version'][0]; + $find = function ($search, &$key) use ($result) { + $xkey = array_search(strtolower($search), array_map('strtolower', $result['browser'])); + if ($xkey !== false) { + $key = $xkey; + + return true; + } + + return false; + }; + $key = 0; + if ($browser == 'Iceweasel') { + $browser = 'Firefox'; + } elseif ($find('Playstation Vita', $key)) { + $platform = 'PlayStation Vita'; + $browser = 'Browser'; + } elseif ($find('Kindle Fire Build', $key) || $find('Silk', $key)) { + $browser = $result['browser'][$key] == 'Silk' ? 'Silk' : 'Kindle'; + $platform = 'Kindle Fire'; + if (!($version = $result['version'][$key]) || !is_numeric($version[0])) { + $version = $result['version'][array_search('Version', $result['browser'])]; + } + } elseif ($find('NintendoBrowser', $key) || $platform == 'Nintendo 3DS') { + $browser = 'NintendoBrowser'; + $version = $result['version'][$key]; + } elseif ($find('Kindle', $key)) { + $browser = $result['browser'][$key]; + $platform = 'Kindle'; + $version = $result['version'][$key]; + } elseif ($find('OPR', $key)) { + $browser = 'Opera Next'; + $version = $result['version'][$key]; + } elseif ($find('Opera', $key)) { + $browser = 'Opera'; + $find('Version', $key); + $version = $result['version'][$key]; + } elseif ($find('Chrome', $key)) { + $browser = 'Chrome'; + $version = $result['version'][$key]; + } elseif ($find('Midori', $key)) { + $browser = 'Midori'; + $version = $result['version'][$key]; + } elseif ($browser == 'AppleWebKit') { + if (($platform == 'Android' && !($key = 0))) { + $browser = 'Android Browser'; + } elseif ($platform == 'BlackBerry' || $platform == 'PlayBook') { + $browser = 'BlackBerry Browser'; + } elseif ($find('Safari', $key)) { + $browser = 'Safari'; + } + + $find('Version', $key); + + $version = $result['version'][$key]; + } elseif ($browser == 'MSIE' || strpos($browser, 'Trident') !== false) { + if ($find('IEMobile', $key)) { + $browser = 'IEMobile'; + } else { + $browser = 'MSIE'; + $key = 0; + } + $version = $result['version'][$key]; + } elseif ($key = preg_grep("/playstation \d/i", array_map('strtolower', $result['browser']))) { + $key = reset($key); + + $platform = 'PlayStation ' . preg_replace('/[^\d]/i', '', $key); + $browser = 'NetFront'; + } + + return ['platform' => $platform, 'browser' => $browser, 'version' => $version]; +} + +function is_real_email_address(string $email): bool +{ + $valid = true; + $atIndex = strrpos($email, '@'); + if (is_bool($atIndex) && $atIndex === false) { + $valid = false; + } else { + $domain = substr($email, $atIndex + 1); + $local = substr($email, 0, $atIndex); + $localLen = strlen($local); + $domainLen = strlen($domain); + if ($localLen < 1 || $localLen > 64) { + $valid = false; + } elseif ($domainLen < 1 || $domainLen > 255) { + $valid = false; + } elseif ($local[0] == '.' || $local[$localLen - 1] == '.') { + $valid = false; + } elseif (preg_match('/\\.\\./', $local)) { + $valid = false; + } elseif (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { + $valid = false; + } elseif (preg_match('/\\.\\./', $domain)) { + $valid = false; + } elseif (!preg_match( + '/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', + str_replace('\\\\', '', $local) + )) { + if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace('\\\\', '', $local))) { + $valid = false; + } + } + if ($valid && !(checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A'))) { + $valid = false; + } + } + + return $valid; +} + +function is_valid_hex_color(string $string, bool $prefix = true): bool +{ + return preg_match( + '/#' + . ($prefix ? '?' : '') + . '([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/', + $string + ) === 1; +} + +function is_valid_ip(string $ip): bool +{ + return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) || filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); +} + +function remove_spaces(string $string): string +{ + return str_replace(' ', '', $string); +} + +function sanitize_path_slashes(string $path): string +{ + return preg_replace('#/+#', '/', $path); +} + +function sanitize_directory_separator(string $path): string +{ + return preg_replace('#' . DIRECTORY_SEPARATOR . '+#', DIRECTORY_SEPARATOR, $path); +} + +function sanitize_relative_path(string $path): string +{ + $path = forward_slash($path); + $path = sanitize_path_slashes($path); + $path = preg_replace('#(\.+/)+#', '', $path); + + return sanitize_path_slashes($path); +} + +function rrmdir(string $dir): void +{ + if (is_dir($dir)) { + $objects = scandir($dir); + foreach ($objects as $object) { + if ($object != '.' && $object != '..') { + if (is_dir($dir . '/' . $object)) { + rrmdir($dir . '/' . $object); + } else { + unlinkIfExists($dir . '/' . $object); + } + } + } + rmdir($dir); + } +} + +/** + * This function was stolen from chyrp.net (MIT). + */ +function sanitize_string( + string $string, + bool $force_lowercase = true, + bool $only_alphanumerics = false, + int $truncate = 100 +): string { + $strip = [ + '~', '`', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '=', '+', '{', + '}', '\\', '|', ';', ':', '\'', "'", '&#8216;', '&#8217;', '&#8220;', '&#8221;', '&#8211;', '&#8212;', + '—', '–', ',', '<', '.', '>', '/', '?', + ]; + $clean = trim(str_replace($strip, '', strip_tags($string))); + $clean = preg_replace('/\s+/', '-', $clean); + $clean = ($only_alphanumerics ? preg_replace('/[^a-zA-Z0-9]/', '', $clean) : $clean); + $clean = ($truncate ? substr($clean, 0, $truncate) : $clean); + + return $force_lowercase + ? ( + function_exists('mb_strtolower') + ? + mb_strtolower($clean, 'UTF-8') + : strtolower($clean) + ) + : $clean; +} + +/** + * Original PHP code by Chirp Internet: www.chirp.com.au */ +function truncate( + string $string, + int $limit, + ?string $break = null, + string $pad = '...' +): string { + $encoding = 'UTF-8'; + if (mb_strlen($string, $encoding) <= $limit) { + return $string; + } + if (is_null($break) or $break == '') { + $string = trim(mb_substr($string, 0, $limit - strlen($pad), $encoding)) . $pad; + } else { + if (false !== ($breakpoint = strpos($string, $break, $limit))) { + if ($breakpoint < mb_strlen($string, $encoding) - 1) { + $string = mb_substr($string, 0, $breakpoint, $encoding) . $pad; + } + } + } + + return $string; +} + +function unaccent_string(string $string): string +{ + if (function_exists('mb_detect_encoding')) { + $utf8 = strtolower(mb_detect_encoding($string)) == 'utf-8'; + } else { + $length = strlen($string); + $utf8 = true; + for ($i = 0; $i < $length; ++$i) { + $c = ord($string[$i]); + if ($c < 0x80) { + $n = 0; + } // 0bbbbbbb + elseif (($c & 0xE0) == 0xC0) { + $n = 1; + } // 110bbbbb + elseif (($c & 0xF0) == 0xE0) { + $n = 2; + } // 1110bbbb + elseif (($c & 0xF8) == 0xF0) { + $n = 3; + } // 11110bbb + elseif (($c & 0xFC) == 0xF8) { + $n = 4; + } // 111110bb + elseif (($c & 0xFE) == 0xFC) { + $n = 5; + } // 1111110b + else { + return ''; + } // Does not match any model + for ($j = 0; $j < $n; ++$j) { // n bytes matching 10bbbbbb follow ? + if ((++$i == $length) + || ((ord($string[$i]) & 0xC0) != 0x80) + ) { + $utf8 = false; + + break; + } + } + } + } + if (!$utf8) { + $string = mb_convert_encoding($string, 'UTF-8'); + } + $transliteration = [ + 'IJ' => 'I', 'Ö' => 'O', 'Œ' => 'O', 'Ü' => 'U', 'ä' => 'a', 'æ' => 'a', + 'ij' => 'i', 'ö' => 'o', 'œ' => 'o', 'ü' => 'u', 'ß' => 's', 'ſ' => 's', + 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', + 'Æ' => 'A', 'Ā' => 'A', 'Ą' => 'A', 'Ă' => 'A', 'Ç' => 'C', 'Ć' => 'C', + 'Č' => 'C', 'Ĉ' => 'C', 'Ċ' => 'C', 'Ď' => 'D', 'Đ' => 'D', 'È' => 'E', + 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ē' => 'E', 'Ę' => 'E', 'Ě' => 'E', + 'Ĕ' => 'E', 'Ė' => 'E', 'Ĝ' => 'G', 'Ğ' => 'G', 'Ġ' => 'G', 'Ģ' => 'G', + 'Ĥ' => 'H', 'Ħ' => 'H', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', + 'Ī' => 'I', 'Ĩ' => 'I', 'Ĭ' => 'I', 'Į' => 'I', 'İ' => 'I', 'Ĵ' => 'J', + 'Ķ' => 'K', 'Ľ' => 'K', 'Ĺ' => 'K', 'Ļ' => 'K', 'Ŀ' => 'K', 'Ł' => 'L', + 'Ñ' => 'N', 'Ń' => 'N', 'Ň' => 'N', 'Ņ' => 'N', 'Ŋ' => 'N', 'Ò' => 'O', + 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ø' => 'O', 'Ō' => 'O', 'Ő' => 'O', + 'Ŏ' => 'O', 'Ŕ' => 'R', 'Ř' => 'R', 'Ŗ' => 'R', 'Ś' => 'S', 'Ş' => 'S', + 'Ŝ' => 'S', 'Ș' => 'S', 'Š' => 'S', 'Ť' => 'T', 'Ţ' => 'T', 'Ŧ' => 'T', + 'Ț' => 'T', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ū' => 'U', 'Ů' => 'U', + 'Ű' => 'U', 'Ŭ' => 'U', 'Ũ' => 'U', 'Ų' => 'U', 'Ŵ' => 'W', 'Ŷ' => 'Y', + 'Ÿ' => 'Y', 'Ý' => 'Y', 'Ź' => 'Z', 'Ż' => 'Z', 'Ž' => 'Z', 'à' => 'a', + 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ā' => 'a', 'ą' => 'a', 'ă' => 'a', + 'å' => 'a', 'ç' => 'c', 'ć' => 'c', 'č' => 'c', 'ĉ' => 'c', 'ċ' => 'c', + 'ď' => 'd', 'đ' => 'd', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', + 'ē' => 'e', 'ę' => 'e', 'ě' => 'e', 'ĕ' => 'e', 'ė' => 'e', 'ƒ' => 'f', + 'ĝ' => 'g', 'ğ' => 'g', 'ġ' => 'g', 'ģ' => 'g', 'ĥ' => 'h', 'ħ' => 'h', + 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ī' => 'i', 'ĩ' => 'i', + 'ĭ' => 'i', 'į' => 'i', 'ı' => 'i', 'ĵ' => 'j', 'ķ' => 'k', 'ĸ' => 'k', + 'ł' => 'l', 'ľ' => 'l', 'ĺ' => 'l', 'ļ' => 'l', 'ŀ' => 'l', 'ñ' => 'n', + 'ń' => 'n', 'ň' => 'n', 'ņ' => 'n', 'ʼn' => 'n', 'ŋ' => 'n', 'ò' => 'o', + 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ø' => 'o', 'ō' => 'o', 'ő' => 'o', + 'ŏ' => 'o', 'ŕ' => 'r', 'ř' => 'r', 'ŗ' => 'r', 'ś' => 's', 'š' => 's', + 'ť' => 't', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ū' => 'u', 'ů' => 'u', + 'ű' => 'u', 'ŭ' => 'u', 'ũ' => 'u', 'ų' => 'u', 'ŵ' => 'w', 'ÿ' => 'y', + 'ý' => 'y', 'ŷ' => 'y', 'ż' => 'z', 'ź' => 'z', 'ž' => 'z', 'Α' => 'A', + 'Ά' => 'A', 'Ἀ' => 'A', 'Ἁ' => 'A', 'Ἂ' => 'A', 'Ἃ' => 'A', 'Ἄ' => 'A', + 'Ἅ' => 'A', 'Ἆ' => 'A', 'Ἇ' => 'A', 'ᾈ' => 'A', 'ᾉ' => 'A', 'ᾊ' => 'A', + 'ᾋ' => 'A', 'ᾌ' => 'A', 'ᾍ' => 'A', 'ᾎ' => 'A', 'ᾏ' => 'A', 'Ᾰ' => 'A', + 'Ᾱ' => 'A', 'Ὰ' => 'A', 'ᾼ' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', + 'Ε' => 'E', 'Έ' => 'E', 'Ἐ' => 'E', 'Ἑ' => 'E', 'Ἒ' => 'E', 'Ἓ' => 'E', + 'Ἔ' => 'E', 'Ἕ' => 'E', 'Ὲ' => 'E', 'Ζ' => 'Z', 'Η' => 'I', 'Ή' => 'I', + 'Ἠ' => 'I', 'Ἡ' => 'I', 'Ἢ' => 'I', 'Ἣ' => 'I', 'Ἤ' => 'I', 'Ἥ' => 'I', + 'Ἦ' => 'I', 'Ἧ' => 'I', 'ᾘ' => 'I', 'ᾙ' => 'I', 'ᾚ' => 'I', 'ᾛ' => 'I', + 'ᾜ' => 'I', 'ᾝ' => 'I', 'ᾞ' => 'I', 'ᾟ' => 'I', 'Ὴ' => 'I', 'ῌ' => 'I', + 'Θ' => 'T', 'Ι' => 'I', 'Ί' => 'I', 'Ϊ' => 'I', 'Ἰ' => 'I', 'Ἱ' => 'I', + 'Ἲ' => 'I', 'Ἳ' => 'I', 'Ἴ' => 'I', 'Ἵ' => 'I', 'Ἶ' => 'I', 'Ἷ' => 'I', + 'Ῐ' => 'I', 'Ῑ' => 'I', 'Ὶ' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', + 'Ν' => 'N', 'Ξ' => 'K', 'Ο' => 'O', 'Ό' => 'O', 'Ὀ' => 'O', 'Ὁ' => 'O', + 'Ὂ' => 'O', 'Ὃ' => 'O', 'Ὄ' => 'O', 'Ὅ' => 'O', 'Ὸ' => 'O', 'Π' => 'P', + 'Ρ' => 'R', 'Ῥ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Ύ' => 'Y', + 'Ϋ' => 'Y', 'Ὑ' => 'Y', 'Ὓ' => 'Y', 'Ὕ' => 'Y', 'Ὗ' => 'Y', 'Ῠ' => 'Y', + 'Ῡ' => 'Y', 'Ὺ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'P', 'Ω' => 'O', + 'Ώ' => 'O', 'Ὠ' => 'O', 'Ὡ' => 'O', 'Ὢ' => 'O', 'Ὣ' => 'O', 'Ὤ' => 'O', + 'Ὥ' => 'O', 'Ὦ' => 'O', 'Ὧ' => 'O', 'ᾨ' => 'O', 'ᾩ' => 'O', 'ᾪ' => 'O', + 'ᾫ' => 'O', 'ᾬ' => 'O', 'ᾭ' => 'O', 'ᾮ' => 'O', 'ᾯ' => 'O', 'Ὼ' => 'O', + 'ῼ' => 'O', 'α' => 'a', 'ά' => 'a', 'ἀ' => 'a', 'ἁ' => 'a', 'ἂ' => 'a', + 'ἃ' => 'a', 'ἄ' => 'a', 'ἅ' => 'a', 'ἆ' => 'a', 'ἇ' => 'a', 'ᾀ' => 'a', + 'ᾁ' => 'a', 'ᾂ' => 'a', 'ᾃ' => 'a', 'ᾄ' => 'a', 'ᾅ' => 'a', 'ᾆ' => 'a', + 'ᾇ' => 'a', 'ὰ' => 'a', 'ᾰ' => 'a', 'ᾱ' => 'a', 'ᾲ' => 'a', 'ᾳ' => 'a', + 'ᾴ' => 'a', 'ᾶ' => 'a', 'ᾷ' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', + 'ε' => 'e', 'έ' => 'e', 'ἐ' => 'e', 'ἑ' => 'e', 'ἒ' => 'e', 'ἓ' => 'e', + 'ἔ' => 'e', 'ἕ' => 'e', 'ὲ' => 'e', 'ζ' => 'z', 'η' => 'i', 'ή' => 'i', + 'ἠ' => 'i', 'ἡ' => 'i', 'ἢ' => 'i', 'ἣ' => 'i', 'ἤ' => 'i', 'ἥ' => 'i', + 'ἦ' => 'i', 'ἧ' => 'i', 'ᾐ' => 'i', 'ᾑ' => 'i', 'ᾒ' => 'i', 'ᾓ' => 'i', + 'ᾔ' => 'i', 'ᾕ' => 'i', 'ᾖ' => 'i', 'ᾗ' => 'i', 'ὴ' => 'i', 'ῂ' => 'i', + 'ῃ' => 'i', 'ῄ' => 'i', 'ῆ' => 'i', 'ῇ' => 'i', 'θ' => 't', 'ι' => 'i', + 'ί' => 'i', 'ϊ' => 'i', 'ΐ' => 'i', 'ἰ' => 'i', 'ἱ' => 'i', 'ἲ' => 'i', + 'ἳ' => 'i', 'ἴ' => 'i', 'ἵ' => 'i', 'ἶ' => 'i', 'ἷ' => 'i', 'ὶ' => 'i', + 'ῐ' => 'i', 'ῑ' => 'i', 'ῒ' => 'i', 'ῖ' => 'i', 'ῗ' => 'i', 'κ' => 'k', + 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => 'k', 'ο' => 'o', 'ό' => 'o', + 'ὀ' => 'o', 'ὁ' => 'o', 'ὂ' => 'o', 'ὃ' => 'o', 'ὄ' => 'o', 'ὅ' => 'o', + 'ὸ' => 'o', 'π' => 'p', 'ρ' => 'r', 'ῤ' => 'r', 'ῥ' => 'r', 'σ' => 's', + 'ς' => 's', 'τ' => 't', 'υ' => 'y', 'ύ' => 'y', 'ϋ' => 'y', 'ΰ' => 'y', + 'ὐ' => 'y', 'ὑ' => 'y', 'ὒ' => 'y', 'ὓ' => 'y', 'ὔ' => 'y', 'ὕ' => 'y', + 'ὖ' => 'y', 'ὗ' => 'y', 'ὺ' => 'y', 'ῠ' => 'y', 'ῡ' => 'y', 'ῢ' => 'y', + 'ῦ' => 'y', 'ῧ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'p', 'ω' => 'o', + 'ώ' => 'o', 'ὠ' => 'o', 'ὡ' => 'o', 'ὢ' => 'o', 'ὣ' => 'o', 'ὤ' => 'o', + 'ὥ' => 'o', 'ὦ' => 'o', 'ὧ' => 'o', 'ᾠ' => 'o', 'ᾡ' => 'o', 'ᾢ' => 'o', + 'ᾣ' => 'o', 'ᾤ' => 'o', 'ᾥ' => 'o', 'ᾦ' => 'o', 'ᾧ' => 'o', 'ὼ' => 'o', + 'ῲ' => 'o', 'ῳ' => 'o', 'ῴ' => 'o', 'ῶ' => 'o', 'ῷ' => 'o', 'А' => 'A', + 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'E', + 'Ж' => 'Z', 'З' => 'Z', 'И' => 'I', 'Й' => 'I', 'К' => 'K', 'Л' => 'L', + 'М' => 'M', 'Н' => 'N', 'О' => 'O', 'П' => 'P', 'Р' => 'R', 'С' => 'S', + 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'K', 'Ц' => 'T', 'Ч' => 'C', + 'Ш' => 'S', 'Щ' => 'S', 'Ы' => 'Y', 'Э' => 'E', 'Ю' => 'Y', 'Я' => 'Y', + 'а' => 'A', 'б' => 'B', 'в' => 'V', 'г' => 'G', 'д' => 'D', 'е' => 'E', + 'ё' => 'E', 'ж' => 'Z', 'з' => 'Z', 'и' => 'I', 'й' => 'I', 'к' => 'K', + 'л' => 'L', 'м' => 'M', 'н' => 'N', 'о' => 'O', 'п' => 'P', 'р' => 'R', + 'с' => 'S', 'т' => 'T', 'у' => 'U', 'ф' => 'F', 'х' => 'K', 'ц' => 'T', + 'ч' => 'C', 'ш' => 'S', 'щ' => 'S', 'ы' => 'Y', 'э' => 'E', 'ю' => 'Y', + 'я' => 'Y', 'ð' => 'd', 'Ð' => 'D', 'þ' => 't', 'Þ' => 'T', 'ა' => 'a', + 'ბ' => 'b', 'გ' => 'g', 'დ' => 'd', 'ე' => 'e', 'ვ' => 'v', 'ზ' => 'z', + 'თ' => 't', 'ი' => 'i', 'კ' => 'k', 'ლ' => 'l', 'მ' => 'm', 'ნ' => 'n', + 'ო' => 'o', 'პ' => 'p', 'ჟ' => 'z', 'რ' => 'r', 'ს' => 's', 'ტ' => 't', + 'უ' => 'u', 'ფ' => 'p', 'ქ' => 'k', 'ღ' => 'g', 'ყ' => 'q', 'შ' => 's', + 'ჩ' => 'c', 'ც' => 't', 'ძ' => 'd', 'წ' => 't', 'ჭ' => 'c', 'ხ' => 'k', + 'ჯ' => 'j', 'ჰ' => 'h', 'ḩ' => 'h', 'ừ' => 'u', 'ế' => 'e', 'ả' => 'a', + 'ị' => 'i', 'ậ' => 'a', 'ệ' => 'e', 'ỉ' => 'i', 'ộ' => 'o', 'ồ' => 'o', + 'ề' => 'e', 'ơ' => 'o', 'ạ' => 'a', 'ẵ' => 'a', 'ư' => 'u', 'ắ' => 'a', + 'ằ' => 'a', 'ầ' => 'a', 'ḑ' => 'd', 'Ḩ' => 'H', 'Ḑ' => 'D', + 'ş' => 's', 'ţ' => 't', 'ễ' => 'e', + ]; + $string = str_replace(array_keys($transliteration), array_values($transliteration), $string); + if (strpos($string = htmlentities($string, ENT_QUOTES, 'UTF-8'), '&') !== false) { + $string = html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|tilde|uml);~i', '$1', $string), ENT_QUOTES, 'UTF-8'); + } + + return $string; +} + +function safe_html(mixed $var, int $flag = ENT_QUOTES): string|array|null +{ + if (!is_array($var)) { + return $var === null + ? null + : htmlspecialchars((string) $var, $flag, 'UTF-8'); + } + $safe_array = []; + foreach ($var as $k => $v) { + $safe_array[$k] = is_array($v) + ? safe_html($v) + : ( + $v === null + ? null + : htmlspecialchars((string) $v, $flag, 'UTF-8') + ); + } + + return $safe_array; +} + +function format_bytes(mixed $bytes, int $round = 1): string +{ + if (!is_numeric($bytes)) { + return ''; + } + if ($bytes < 1000) { + return "$bytes B"; + } + $units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; + foreach ($units as $k => $v) { + $multiplier = pow(1000, $k + 1); + $threshold = $multiplier * 1000; + if ($bytes < $threshold) { + $size = round($bytes / $multiplier, $round); + + return "$size $v"; + } + } + + return ''; +} + +function get_bytes(string $size, ?int $cut = null): int +{ + if ($cut == null) { + $suffix = substr($size, -3); + $suffix = preg_match('/([A-Za-z]){3}/', $suffix) ? $suffix : substr($size, -2); + } else { + $suffix = substr($size, $cut); + } + $number = (int) str_replace($suffix, '', $size); + $suffix = strtoupper($suffix); + + $units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; // Default dec units + + if (strlen($suffix) == 3) { // Convert units to bin + foreach ($units as &$unit) { + $split = str_split($unit); + $unit = $split[0] . 'I' . $split[1]; + } + } + + if (strlen($suffix) == 1) { + $suffix .= 'B'; // Adds missing "B" for shorthand ini notation (Turns 1G into 1GB) + } + if (!in_array($suffix, $units)) { + return $number; + } + $pow_factor = array_search($suffix, $units) + 1; + + return $number * pow(strlen($suffix) == 2 ? 1000 : 1024, $pow_factor); +} + +function bytes_to_mb(int $bytes): float +{ + return round($bytes / pow(10, 6)); +} + +function get_ini_bytes(string $size): int +{ + return get_bytes($size, -1); +} + +function add_trailing_slashes(string $string): string +{ + return add_ending_slash(add_starting_slash($string)); +} + +function add_starting_slash(string $string): string +{ + return '/' . ltrim($string, '/'); +} + +function add_ending_slash(string $string): string +{ + return rtrim($string, '/') . '/'; +} + +function filter_string_polyfill(string $string): string +{ + $str = preg_replace('/\x00|<[^>]*>?/', '', $string); + + return str_replace(["'", '"'], ['&#39;', '&#34;'], $str); +} + +function seoUrlfy(string $text): string +{ + $prepare = $text; + $prepare = preg_replace('/[\\\\\/\~\&\!\'\"\?]+/', '', $prepare); + $prepare = preg_replace('/[\s-]+/', ' ', $prepare); + $prepare = str_replace(' ', '-', trim($prepare)); + $prepare = strip_tags($prepare); + + return urlencode($prepare); +} + +function forward_slash(string $string): string +{ + return str_replace('\\', '/', $string); +} + +function relative_to_absolute(string $filepath): string +{ + return str_replace(Config::host()->hostnamePath(), PATH_PUBLIC, forward_slash($filepath)); +} + +function relative_to_url(string $filepath, ?string $root_url = null): string +{ + if (!check_value($root_url)) { + $root_url = URL_APP_PUBLIC; + } + + return str_replace(Config::host()->hostnamePath(), $root_url, forward_slash($filepath)); +} + +function url_to_relative(string $url, ?string $root_url = null): string +{ + if (!check_value($root_url)) { + $root_url = URL_APP_PUBLIC; + } + + return str_replace_first($root_url, Config::host()->hostnamePath(), $url); +} + +function absolute_to_relative(string $filepath): string +{ + return str_replace_first(PATH_PUBLIC, Config::host()->hostnamePath(), forward_slash($filepath)); +} + +function absolute_to_url(string $filepath, ?string $root_url = null) +{ + if (!check_value($root_url)) { + $root_url = URL_APP_PUBLIC; + } + if (PATH_PUBLIC === Config::host()->hostnamePath()) { + return $root_url . ltrim($filepath, '/'); + } + + return str_replace_first(PATH_PUBLIC, $root_url, forward_slash($filepath)); +} + +function url_to_absolute(string $url, ?string $root_url = null) +{ + if (!check_value($root_url)) { + $root_url = URL_APP_PUBLIC; + } + + return str_replace($root_url, PATH_PUBLIC, $url); +} + +function get_app_version(bool $full = true): string +{ + if ($full) { + return APP_VERSION; + } else { + preg_match('/\d\.\d/', APP_VERSION, $return); + + return $return[0]; + } +} + +/** + * @deprecated + */ +function get_app_setting(string $key): mixed +{ + $settingsToEnv = [ + 'asset_storage_account_id' => 'CHEVERETO_ASSET_STORAGE_ACCOUNT_ID', + 'asset_storage_account_name' => 'CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME', + 'asset_storage_bucket' => 'CHEVERETO_ASSET_STORAGE_BUCKET', + 'asset_storage_key' => 'CHEVERETO_ASSET_STORAGE_KEY', + 'asset_storage_name' => 'CHEVERETO_ASSET_STORAGE_NAME', + 'asset_storage_region' => 'CHEVERETO_ASSET_STORAGE_REGION', + 'asset_storage_secret' => 'CHEVERETO_ASSET_STORAGE_SECRET', + 'asset_storage_server' => 'CHEVERETO_ASSET_STORAGE_SERVER', + 'asset_storage_service' => 'CHEVERETO_ASSET_STORAGE_SERVICE', + 'asset_storage_type' => 'CHEVERETO_ASSET_STORAGE_TYPE', + 'asset_storage_url' => 'CHEVERETO_ASSET_STORAGE_URL', + 'db_driver' => 'CHEVERETO_DB_DRIVER', + 'db_host' => 'CHEVERETO_DB_HOST', + 'db_name' => 'CHEVERETO_DB_NAME', + 'db_pass' => 'CHEVERETO_DB_PASS', + 'db_pdo_attrs' => 'CHEVERETO_DB_PDO_ATTRS', + 'db_port' => 'CHEVERETO_DB_PORT', + 'db_table_prefix' => 'CHEVERETO_DB_TABLE_PREFIX', + 'db_user' => 'CHEVERETO_DB_USER', + 'debug_level' => 'CHEVERETO_DEBUG_LEVEL', + 'disable_php_pages' => 'CHEVERETO_DISABLE_PHP_PAGES', + 'disable_update_http' => 'CHEVERETO_DISABLE_UPDATE_HTTP', + 'disable_update_cli' => 'CHEVERETO_DISABLE_UPDATE_CLI', + 'error_log' => 'CHEVERETO_ERROR_LOG', + 'hostname_path' => 'CHEVERETO_HOSTNAME_PATH', + 'hostname' => 'CHEVERETO_HOSTNAME', + 'https' => 'CHEVERETO_HTTPS', + 'image_formats_available' => 'CHEVERETO_IMAGE_FORMATS_AVAILABLE', + 'image_library' => 'CHEVERETO_IMAGE_LIBRARY', + 'session_save_handler' => 'CHEVERETO_SESSION_SAVE_HANDLER', + 'session_save_path' => 'CHEVERETO_SESSION_SAVE_PATH', + ]; + $settingEnv = $settingsToEnv[$key] ?? null; + $env = null; + if (isset($settingEnv) && array_key_exists($settingEnv, $_ENV)) { + $env = getenv($settingEnv); + if ($env === false) { + $env = null; + } else { + switch ($key) { + case 'https': + case 'disable_php_pages': + case 'disable_update_http': + case 'disable_update_cli': + return boolval($env); + + case 'image_formats_available': + return explode(',', $env); + } + } + } + + return $env ?? get_global('settings')[$key] ?? null; +} + +function get_public_url(string $path = ''): string +{ + return get_base_url($path, true); +} + +function get_base_url(string $path = '', bool $public = false): string +{ + $path = sanitize_relative_path($path); + + $base = Config::host()->hostnamePath(); + if ($public) { + $base = URL_APP_PUBLIC; + } + + return $base . ltrim($path, '/'); +} + +function get_current_url(bool $safe = true, array $removeQs = [], bool $protocol = false) +{ + $request_uri = server()['REQUEST_URI'] ?? ''; + $request_path = rtrim(strtok($request_uri, '?') ?: '', '/'); + if ((server()['QUERY_STRING'] ?? false) && $removeQs !== []) { + parse_str(server()['QUERY_STRING'], $parse); + foreach ($removeQs as $v) { + unset($parse[$v]); + } + $querystring = $parse !== [] ? http_build_query($parse) : ''; + $request_uri = $request_path; + if ($querystring !== '') { + $request_uri .= '/?' . $querystring; + } + } + $path = preg_replace('#' . Config::host()->hostnamePath() . '#', '', rtrim($request_uri, '/') . '/', 1); + + return get_base_url(rtrim($path, '/'), $protocol); +} + +function hasEnvDbInfo(): bool +{ + $has = true; + foreach (['HOST', 'PORT', 'NAME', 'USER', 'PASS', 'DRIVER', 'PDO_ATTRS'] as $prop) { + $value = env()['CHEVERETO_DB_' . $prop] ?? ''; + if ($value === '') { + $has = false; + + break; + } + } + + return $has; +} + +function get_regex_match( + string $regex, + string $subject, + string $delimiter = '/', + ?int $key = null +): mixed { + preg_match($delimiter . $regex . $delimiter, $subject, $matches); + if (array_key_exists($key, $matches)) { + return $matches[$key]; + } else { + return $matches; + } +} + +/** @deprecated V4 */ +function logger(string $message): void +{ + if (PHP_SAPI !== 'cli') { + return; + } + fwrite(fopen('php://stdout', 'r+'), $message); +} + +function curlProgress(int $download_size = 0, int $downloaded = 0): void +{ + if ($download_size == 0) { + return; + } + logger(progress_bar($downloaded, $download_size, ' download')); +} + +function progress_bar(int $done, int $total, string $info = "", int $width = 50): string +{ + $perc = (int) round(($done * 100) / $total); + $bar = (int) round(($width * $perc) / 100); + + return sprintf(" %s%%[%s>%s]%s\r", $perc, str_repeat("=", $bar), str_repeat(" ", $width - $bar), $info); +} + +function curlResolveCa(CurlHandle $ch): void +{ + curl_setopt($ch, CURLOPT_CAINFO, CaBundle::getBundledCaBundlePath()); +} + +/** + * Fetch the contents from an URL + * if $file is set the downloaded file will be saved there. + */ +function fetch_url(string $url, string $file = '', array $options = []): string +{ + $showProgress = PHP_SAPI === 'cli' && ($options['progress'] ?? false); + if ($url === '') { + throw new Exception('Missing url'); + } + if (ini_get('allow_url_fopen') !== '1' && !function_exists('curl_init')) { + throw new Exception("cURL isn't installed and allow_url_fopen is disabled. Can't perform HTTP requests."); + } + $fn = (!function_exists('curl_init') ? 'fgc' : 'curl'); + if ($fn == 'curl') { + $ch = curl_init(); + curlResolveCa($ch); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_AUTOREFERER, 1); + curl_setopt($ch, CURLOPT_TIMEOUT, PHP_SAPI === 'cli' ? 0 : 120); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); + curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_FAILONERROR, 0); + curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); + curl_setopt($ch, CURLOPT_VERBOSE, 0); + if ($showProgress) { + curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'Chevereto\Legacy\G\curlProgress'); + curl_setopt($ch, CURLOPT_NOPROGRESS, 0); + } + if (!empty($options)) { + foreach ($options as $k => $v) { + if (!is_int($k)) { + continue; + } + curl_setopt($ch, $k, $v); + } + } + if ($file !== '') { + $out = fopen($file, 'wb'); + if (!$out) { + throw new Exception("Can't open file for read and write"); + } + curl_setopt($ch, CURLOPT_FILE, $out); + curl_exec($ch); + fclose($out); + } else { + $contents = curl_exec($ch); + } + if ($showProgress) { + logger("\n"); + } + if (curl_errno($ch)) { + $curl_error = curl_error($ch); + curl_close($ch); + + throw new Exception('Curl error ' . $curl_error); + } + if ($file == '') { + curl_close($ch); + + return $contents; + } + } else { + $context = stream_context_create([ + 'http' => ['ignore_errors' => true, 'follow_location' => false], + ]); + $contents = file_get_contents($url, false, $context); + if (!$contents) { + throw new Exception("Can't fetch target URL (file_get_contents)"); + } + if ($file !== '') { + if (file_put_contents($file, $contents) === false) { + throw new Exception("Can't fetch target URL (file_put_contents)"); + } + } else { + return $contents; + } + } + + return $contents ?? ''; +} + +function getUrlHeaders(string $url, array $options = []): array +{ + $ch = curl_init(); + curlResolveCa($ch); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_HEADER, 1); + curl_setopt($ch, CURLOPT_NOBODY, 1); + curl_setopt($ch, CURLOPT_AUTOREFERER, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36'); + if (is_array($options)) { + foreach ($options as $k => $v) { + curl_setopt($ch, $k, $v); + } + } + $raw = curl_exec($ch); + if (curl_errno($ch)) { + $return['error'] = curl_error($ch); + $return['http_code'] = 500; + } else { + $return = curl_getinfo($ch); + $return['raw'] = $raw; + } + curl_close($ch); + + return $return; +} + +function get_execution_time(): float +{ + return microtime(true) - TIME_EXECUTION_START; +} + +function bcrypt_cost(float $time = 0.2, int $cost = 9): int +{ + do { + ++$cost; + $inicio = microtime(true); + password_hash('test', PASSWORD_BCRYPT, ['cost' => $cost]); + $fin = microtime(true); + } while (($fin - $inicio) < $time); + + return $cost; +} + +function is_integer(mixed $var, array $range = []): bool +{ + $options = []; + if (!empty($range) && is_array($range)) { + foreach (['min', 'max'] as $k) { + if (!isset($range[$k])) { + continue; + } + if (is_int($range[$k])) { + $options['options'][$k . '_range'] = $range[$k]; + } + } + } + + return filter_var($var, FILTER_VALIDATE_INT, $options) !== false; +} + +function is_url_web(string $string) +{ + return is_url($string, ['http', 'https']); +} + +function is_url(mixed $string, array $protocols = []): bool +{ + if (!is_string($string)) { + return false; + } + if (strlen($string) !== strlen(mb_convert_encoding($string, 'UTF-8'))) { + return false; + } + + $parsed_url = parse_url($string) ?: []; + if (count($parsed_url) < 2) { // At least scheme and host + return false; + } + $schemes = $protocols !== [] + ? $protocols + : ['http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp']; + if (!in_array(strtolower($parsed_url['scheme'] ?? ''), $schemes)) { // Must be a valid scheme + return false; + } + if (!array_key_exists('host', $parsed_url)) { // Host must be there + return false; + } + + return true; +} + +function is_https(string $string): bool +{ + return strpos($string, 'https://') !== false; +} + +function is_valid_url(string $string): bool +{ + if (!is_url($string)) { + return false; + } + $url = preg_replace('/^https/', 'http', $string, 1); + if (function_exists('curl_init')) { + $ch = curl_init(); + curlResolveCa($ch); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_NOBODY, 1); + curl_setopt($ch, CURLOPT_FAILONERROR, 0); + curl_setopt($ch, CURLOPT_AUTOREFERER, 1); + curl_setopt($ch, CURLOPT_TIMEOUT, PHP_SAPI === 'cli' ? 0 : 120); + $result = curl_exec($ch); + curl_close($ch); + + return $result !== false; + } elseif ((bool) ini_get('allow_url_fopen')) { + $result = file_get_contents($url); + + return $result !== false; + } + + throw new LogicException('Unable to check if URL is valid'); +} + +function is_image_url(mixed $string): bool +{ + if (!is_string($string)) { + return false; + } + + return preg_match('/(?:ftp|https?):\/\/(\w+:\w+@)?([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(:[0-9]{1,4}){0,1}|(?:[\w\-]+\.)+[a-z]{2,6})(?:\/[^\/#\?]+)+\.(?:jpe?g|gif|png|bmp|webp)/i', $string) === 1; +} + +function is_development_env(): bool +{ + return false; +} + +function is_windows_os(): bool +{ + return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'; +} + +function is_animated_image($filename): bool +{ + switch (get_file_extension($filename)) { + case 'gif': + return is_animated_gif($filename); + + case 'png': + return is_animated_png($filename); + + case 'webp': + return is_animated_webp($filename); + } + + return false; +} + +function is_animated_gif($filename): bool +{ + $fh = fopen($filename, 'rb'); + if (!$fh) { + return false; + } + $count = 0; + while (!feof($fh) && $count < 2) { + $chunk = fread($fh, 1024 * 100); + $count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s', $chunk, $matches); + } + fclose($fh); + + return $count > 1; +} + +function is_animated_png(string $filename): bool +{ + $img_bytes = file_get_contents($filename); + if ($img_bytes) { + if (strpos( + substr($img_bytes, 0, strpos($img_bytes, 'IDAT')), + 'acTL' + ) !== false) { + return true; + } + } + + return false; +} + +function is_animated_webp(string $filename): bool +{ + $result = false; + $fh = fopen($filename, "rb"); + fseek($fh, 12); + if (fread($fh, 4) === 'VP8X') { + fseek($fh, 20); + $myByte = fread($fh, 1); + $result = ((ord($myByte) >> 1) & 1) ? true : false; + } + fclose($fh); + + return $result; +} + +/** @deprecated V4 */ +function is_writable(string $path): bool +{ + if (\is_writable($path)) { + return true; + } + $testFile = sprintf('%s/%s.tmp', $path, uniqid('data_write_test_')); + $testFile = str_replace('//', '/', $testFile); + + try { + $handle = fopen($testFile, 'w'); + fclose($handle); + } catch (Throwable $e) { + return false; + } + + return unlinkIfExists($testFile); +} + +function get_mimetype(string $file): string +{ + if (function_exists('finfo_open')) { + return finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file); + } else { + if (function_exists('mime_content_type')) { + return mime_content_type($file); + } else { + return extension_to_mime(get_file_extension($file)); + } + } +} + +function mime_to_extension(string $mime): string +{ + return [ + 'image/x-windows-bmp' => 'bmp', + 'image/x-ms-bmp' => 'bmp', + 'image/bmp' => 'bmp', + 'image/gif' => 'gif', + 'image/pjpeg' => 'jpeg', + 'image/jpeg' => 'jpeg', + 'image/x-png' => 'png', + 'image/png' => 'png', + 'image/x-tiff' => 'tiff', + 'image/tiff' => 'tiff', + 'image/x-icon' => 'ico', + 'image/vnd.microsoft.icon' => 'ico', + 'image/webp' => 'webp', + ][$mime] ?? ''; +} + +function extension_to_mime(string $ext): string +{ + return [ + 'bmp' => 'image/bmp', + 'gif' => 'image/gif', + 'jpg' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'png' => 'image/png', + 'tiff' => 'image/tiff', + 'ico' => 'image/vnd.microsoft.icon', + 'webp' => 'image/webp', + ][$ext] ?? ''; +} + +function get_image_fileinfo(string $file): array +{ + clearstatcache(true, $file); + $info = getimagesize($file); + $filesize = filesize($file); + if (!$info || $filesize === false) { + return []; + } + $mime = strtolower($info['mime']); + $extension = mime_to_extension($mime); + + return [ + 'filename' => basename($file), // image.jpg + 'name' => basename($file, '.' . get_file_extension($file)), // image + 'width' => intval($info[0]), + 'height' => intval($info[1]), + 'ratio' => $info[0] / $info[1], + 'size' => intval($filesize), + 'size_formatted' => format_bytes($filesize), + 'mime' => $mime, + 'extension' => $extension, + 'bits' => $info['bits'] ?? '', + 'channels' => $info['channels'] ?? '', + 'url' => absolute_to_url($file), + 'md5' => md5_file($file), + ]; +} + +function get_file_extension(string $file): string +{ + return strtolower(pathinfo($file, PATHINFO_EXTENSION)); +} + +function get_filename(string $file): string +{ + return basename($file); +} + +function get_basename_without_extension(string $filename): string +{ + $extension = pathinfo($filename, PATHINFO_EXTENSION); + $filename = basename($filename); + + return str_replace_last(".$extension", '', $filename); +} + +function get_pathname_without_extension(string $filename): string +{ + $extension = pathinfo($filename, PATHINFO_EXTENSION); + + return str_replace_last(".$extension", '', $filename); +} + +function change_pathname_extension(string $filename, string $extension): string +{ + $chop = get_pathname_without_extension($filename); + if ($chop == $filename) { + return $filename; + } + + return "$chop.$extension"; +} + +/** + * @param string $method: original | random | mixed | id + * @param string $filename: name of the original file. + * @deprecated V4 + */ +function get_filename_by_method(string $method, string $filename): string +{ + $max_length = 200; // Safe limit, ideally this should be 255 - 4 + $extension = get_file_extension($filename); + $clean_filename = substr($filename, 0, -(strlen($extension) + 1)); + $clean_filename = unaccent_string($clean_filename); // change áéíóú to aeiou + $clean_filename = preg_replace('/\s+/', '-', $clean_filename); // change all spaces with dash + $clean_filename = trim($clean_filename, '-'); // get rid of those ugly dashes + $clean_filename = preg_replace('/[^\.\w\d-]/i', '', $clean_filename); // remove any non alphanumeric, non underscore, non hyphen and non dot + if (strlen($clean_filename) == 0) { + $clean_filename = random_string(32); + } + $unlimited_filename = $clean_filename; // No max_length limit + $capped_filename = substr($clean_filename, 0, $max_length); // 1->200 + + switch ($method) { + default: + case 'original': + $name = $capped_filename; + + break; + case 'random': + $name = random_string(32); + + break; + case 'mixed': + $mixed_chars_length = 16; + $mixed_chars = random_string($mixed_chars_length); + if (strlen($capped_filename) + $mixed_chars_length > $max_length) { + // Bring the scissors Morty + $capped_filename = substr($capped_filename, 0, $max_length - $mixed_chars_length - strlen($capped_filename)); + // Well done Morty you little piece of shit + } + $name = $capped_filename . $mixed_chars; + + break; + case 'id': + $name = $unlimited_filename; + + break; + } + + return $name . '.' . $extension; // 200 + 4 +} + +/** @deprecated V4 */ +function name_unique_file( + string $path, + string $filename, + string $method = 'original' +): string { + $file = $path . get_filename_by_method($method, $filename); + if ($method == 'id') { + return $file; + } + while (file_exists($file)) { + if ($method == 'original') { + $method = 'mixed'; + } + $file = $path . get_filename_by_method($method, $filename); + } + + return $file; +} + +/** @deprecated V4 */ +function imagefilteropacity(GdImage &$img, ?int $opacity): bool +{ + if (!isset($opacity)) { + return false; + } + $opacity /= 100; + $w = imagesx($img); + $h = imagesy($img); + imagealphablending($img, false); + $minalpha = 127; + for ($x = 0; $x < $w; ++$x) { + for ($y = 0; $y < $h; ++$y) { + $alpha = (imagecolorat($img, $x, $y) >> 24) & 0xFF; + if ($alpha < $minalpha) { + $minalpha = $alpha; + } + } + } + for ($x = 0; $x < $w; ++$x) { + for ($y = 0; $y < $h; ++$y) { + $colorxy = imagecolorat($img, $x, $y); + $alpha = ($colorxy >> 24) & 0xFF; + if ($minalpha !== 127) { + $alpha = 127 + 127 * $opacity * ($alpha - 127) / (127 - $minalpha); + } else { + $alpha += 127 * $opacity; + } + $alphacolorxy = imagecolorallocatealpha($img, ($colorxy >> 16) & 0xFF, ($colorxy >> 8) & 0xFF, $colorxy & 0xFF, $alpha); + if (!imagesetpixel($img, $x, $y, $alphacolorxy)) { + return false; + } + } + } + + return true; +} + +/** @deprecated V4 */ +function image_allocate_transparency(GdImage $image, string $extension): void +{ + if ($extension == 'png') { + imagealphablending($image, false); + imagesavealpha($image, true); + } else { + imagetruecolortopalette($image, true, 255); + imagesavealpha($image, false); + } +} + +/** @deprecated V4 */ +function image_copy_transparency(GdImage $image_source, GdImage $image_target) +{ + $transparent_index = imagecolortransparent($image_source); + $palletsize = imagecolorstotal($image_source); + if ($transparent_index >= 0 and $transparent_index < $palletsize) { + $transparent_color = imagecolorsforindex($image_source, $transparent_index); + $transparent_index = imagecolorallocatealpha($image_target, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue'], 127); + imagefill($image_target, 0, 0, $transparent_index); + imagecolortransparent($image_target, $transparent_index); + } else { + $color = imagecolorallocatealpha($image_target, 0, 0, 0, 127); + imagefill($image_target, 0, 0, $color); + } +} + +/** @deprecated V4 */ +function get_mask_bit_shift(int $bits, string $mask) +{ + if ($bits == 16) { + // 555 + if ($mask == 0x7c00) { + return 7; + } + if ($mask == 0x03e0) { + return 2; + } + // 656 + if ($mask == 0xf800) { + return 8; + } + if ($mask == 0x07e0) { + return 3; + } + } else { + if ($mask == 0xff000000) { + return 24; + } + if ($mask == 0x00ff0000) { + return 16; + } + if ($mask == 0x0000ff00) { + return 8; + } + } + + return 0; +} + +/** @deprecated V4 */ +function imagecreatefrombmp(string $file): GdImage|bool +{ + if (!($fh = fopen($file, 'rb'))) { + trigger_error('imagecreatefrombmp: Can not open ' . $file, E_USER_WARNING); + + return false; + } + $meta = unpack('vtype/Vfilesize/Vreserved/Voffset', fread($fh, 14)); + if ($meta['type'] != 19778) { + trigger_error('imagecreatefrombmp: ' . $file . ' is not a bitmap!', E_USER_WARNING); + + return false; + } + $meta += unpack('Vheadersize/Vwidth/Vheight/vplanes/vbits/Vcompression/Vimagesize/Vxres/Vyres/Vcolors/Vimportant', fread($fh, 40)); + $bytes_read = 40; + if ($meta['headersize'] > $bytes_read) { + $meta += unpack('VrMask/VgMask/VbMask', fread($fh, 12)); + $bytes_read += 12; + } else { + if ($meta['bits'] == 16) { + $meta['rMask'] = 0x7c00; + $meta['gMask'] = 0x03e0; + $meta['bMask'] = 0x001f; + } elseif ($meta['bits'] > 16) { + $meta['rMask'] = 0x00ff0000; + $meta['gMask'] = 0x0000ff00; + $meta['bMask'] = 0x000000ff; + } + } + $meta['bytes'] = $meta['bits'] / 8; + $meta['decal'] = 4 - (4 * (($meta['width'] * $meta['bytes'] / 4) - floor($meta['width'] * $meta['bytes'] / 4))); + if ($meta['decal'] == 4) { + $meta['decal'] = 0; + } + if ($meta['imagesize'] < 1) { + $meta['imagesize'] = $meta['filesize'] - $meta['offset']; + if ($meta['imagesize'] < 1) { + $meta['imagesize'] = @filesize($file) - $meta['offset']; + if ($meta['imagesize'] < 1) { + trigger_error('imagecreatefrombmp: Can not obtain filesize of ' . $file . '!', E_USER_WARNING); + + return false; + } + } + } + $meta['colors'] = !$meta['colors'] ? pow(2, $meta['bits']) : $meta['colors']; + $palette = []; + if ($meta['bits'] < 16) { + $palette = unpack('l' . $meta['colors'], fread($fh, $meta['colors'] * 4)); + if ($palette[1] < 0) { + foreach ($palette as $i => $color) { + $palette[$i] = $color + 16777216; + } + } + } + if ($meta['headersize'] > $bytes_read) { + fread($fh, $meta['headersize'] - $bytes_read); + } + $im = imagecreatetruecolor($meta['width'], $meta['height']); + $data = fread($fh, $meta['imagesize']); + $p = 0; + $vide = chr(0); + $y = $meta['height'] - 1; + $error = 'imagecreatefrombmp: ' . $file . ' has not enough data!'; + while ($y >= 0) { + $x = 0; + while ($x < $meta['width']) { + switch ($meta['bits']) { + case 32: + if (!($part = substr($data, $p, 4))) { + trigger_error($error, E_USER_WARNING); + + return $im; + } + $color = unpack('V', $part); + $color[1] = (($color[1] & $meta['rMask']) >> get_mask_bit_shift(32, $meta['rMask'])) * 65536 + (($color[1] & $meta['gMask']) >> get_mask_bit_shift(32, $meta['gMask'])) * 256 + (($color[1] & $meta['bMask']) >> get_mask_bit_shift(32, $meta['bMask'])); + + break; + case 24: + if (!($part = substr($data, $p, 3))) { + trigger_error($error, E_USER_WARNING); + + return $im; + } + $color = unpack('V', $part . $vide); + $color[1] = (($color[1] & $meta['rMask']) >> get_mask_bit_shift(24, $meta['rMask'])) * 65536 + (($color[1] & $meta['gMask']) >> get_mask_bit_shift(24, $meta['gMask'])) * 256 + (($color[1] & $meta['bMask']) >> get_mask_bit_shift(24, $meta['bMask'])); + + break; + case 16: + if (!($part = substr($data, $p, 2))) { + trigger_error($error, E_USER_WARNING); + + return $im; + } + $color = unpack('v', $part); + $color[1] = (($color[1] & $meta['rMask']) >> get_mask_bit_shift(16, $meta['rMask'])) * 65536 + (($color[1] & $meta['gMask']) >> get_mask_bit_shift(16, $meta['gMask'])) * 256 + (($color[1] & $meta['bMask']) << 3); + + break; + case 8: + $color = unpack('n', $vide . substr($data, $p, 1)); + $color[1] = $palette[$color[1] + 1]; + + break; + case 4: + $color = unpack('n', $vide . substr($data, intval(floor($p)), 1)); + $color[1] = ($p * 2) % 2 == 0 ? $color[1] >> 4 : $color[1] & 0x0F; + $color[1] = $palette[$color[1] + 1]; + + break; + case 1: + $color = unpack('n', $vide . substr($data, intval(floor($p)), 1)); + switch (($p * 8) % 8) { + case 0: + $color[1] = $color[1] >> 7; + + break; + case 1: + $color[1] = ($color[1] & 0x40) >> 6; + + break; + case 2: + $color[1] = ($color[1] & 0x20) >> 5; + + break; + case 3: + $color[1] = ($color[1] & 0x10) >> 4; + + break; + case 4: + $color[1] = ($color[1] & 0x8) >> 3; + + break; + case 5: + $color[1] = ($color[1] & 0x4) >> 2; + + break; + case 6: + $color[1] = ($color[1] & 0x2) >> 1; + + break; + case 7: + $color[1] = ($color[1] & 0x1); + + break; + } + $color[1] = $palette[$color[1] + 1]; + + break; + default: + trigger_error('imagecreatefrombmp: ' . $file . ' has ' . $meta['bits'] . ' bits and this is not supported!', E_USER_WARNING); + + return false; + } + imagesetpixel($im, $x, $y, $color[1]); + ++$x; + $p += $meta['bytes']; + } + --$y; + $p += $meta['decal']; + } + fclose($fh); + + return $im; +} + +function json_prepare(): void +{ + if (is_development_env()) { + return; + } + if (server()['HTTP_X_REQUESTED_WITH'] !== 'XMLHttpRequest') { + json_output(['status_code' => 400]); + } +} + +function json_error(Throwable $e): array +{ + $message = $e->getMessage(); + $code = $e->getCode(); + + return [ + 'status_code' => 400, + 'error' => [ + 'message' => $message, + 'code' => $code, + ], + ]; +} + +function redirect(string $to = '', int $status = 301): void +{ + if (PHP_SAPI === 'cli') { + echo sprintf("> Redirection to $to (%s)", (string) $status) . "\n"; + if (!defined('PHPUNIT_CHEVERETO_TESTSUITE')) { + die(); + } + } + if (!is_url_web($to)) { + $to = get_base_url($to); + } + $to = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $to); + if (php_sapi_name() != 'cgi-fcgi') { + set_status_header($status); + } + header("Location: $to"); + if (!defined('PHPUNIT_CHEVERETO_TESTSUITE')) { + die(); + } +} + +function set_status_header(int $code): void +{ + if (headers_sent()) { + return; + } + $desc = get_set_status_header_desc($code); + if (empty($desc)) { + return; + } + $protocol = server()['SERVER_PROTOCOL'] ?? 'HTTP/1.1'; + if ('HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol) { + $protocol = 'HTTP/1.0'; + } + $set_status_header = "$protocol $code $desc"; + header($set_status_header, true, $code); +} + +function get_set_status_header_desc(int $code): string +{ + $codes_to_desc = [ + 100 => 'Continue', + 101 => 'Switching Protocols', + 102 => 'Processing', + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + 207 => 'Multi-Status', + 226 => 'IM Used', + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 303 => 'See Other', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 306 => 'Reserved', + 307 => 'Temporary Redirect', + 400 => 'Bad Request', + 401 => 'Unauthorized', + 402 => 'Payment Required', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + 422 => 'Unprocessable Entity', + 423 => 'Locked', + 424 => 'Failed Dependency', + 426 => 'Upgrade Required', + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported', + 506 => 'Variant Also Negotiates', + 507 => 'Insufficient Storage', + 510 => 'Not Extended', + ]; + if (!isset($codes_to_desc[$code])) { + throw new LogicException('Invalid HTTP status code'); + } + + return $codes_to_desc[$code]; +} + +function clean_header_comment(string $string): string +{ + return trim(preg_replace('/\s*(?:\*\/|\?>).*/', '', $string)); +} + +/** + * function xml2array. + * + * This function is part of the PHP manual. + * + * The PHP manual text and comments are covered by the Creative Commons + * Attribution 3.0 License, copyright (c) the PHP Documentation Group + * + * @author k dot antczak at livedata dot pl + * @date 2011-04-22 06:08 UTC + * + * @see http://www.php.net/manual/en/ref.simplexml.php#103617 + * + * @license http://www.php.net/license/index.php#doc-lic + * @license http://creativecommons.org/licenses/by/3.0/ + * @license CC-BY-3.0 <http://spdx.org/licenses/CC-BY-3.0> + */ +function xml2array(object $xmlObject, array $out = []) +{ + foreach ((array) $xmlObject as $index => $node) { + $out[$index] = (is_object($node)) ? xml2array($node) : $node; + } + + return $out; +} + +function get_domain(string $domain, bool $debug = false): string +{ + $original = $domain = strtolower($domain); + if (filter_var($domain, FILTER_VALIDATE_IP)) { + return $domain; + } + $debug ? print('<strong style="color:green">&raquo;</strong> Parsing: ' . $original) : false; + $arr = array_slice(array_filter(explode('.', $domain, 4), function ($value) { + return $value !== 'www'; + }), 0); //rebuild array indexes + if (count($arr) > 2) { + $count = count($arr); + $_sub = explode('.', $count === 4 ? $arr[3] : $arr[2]); + $debug ? print(" (parts count: {$count})") : false; + if (count($_sub) === 2) { // two level TLD + $removed = array_shift($arr); + if ($count === 4) { // got a subdomain acting as a domain + $removed = array_shift($arr); + } + $debug ? print("<br>\n" . '[*] Two level TLD: <strong>' . join('.', $_sub) . '</strong> ') : false; + } elseif (count($_sub) === 1) { // one level TLD + $removed = array_shift($arr); //remove the subdomain + if (strlen($_sub[0]) === 2 && $count === 3) { // TLD domain must be 2 letters + array_unshift($arr, $removed); + } else { + // non country TLD according to IANA + $tlds = [ + 'aero', + 'arpa', + 'asia', + 'biz', + 'cat', + 'com', + 'coop', + 'edu', + 'gov', + 'info', + 'jobs', + 'mil', + 'mobi', + 'museum', + 'name', + 'net', + 'org', + 'post', + 'pro', + 'tel', + 'travel', + 'xxx', + ]; + if (count($arr) > 2 && in_array($_sub[0], $tlds) !== false) { //special TLD don't have a country + array_shift($arr); + } + } + $debug ? print("<br>\n" . '[*] One level TLD: <strong>' . join('.', $_sub) . '</strong> ') : false; + } else { // more than 3 levels, something is wrong + for ($i = count($_sub); $i > 1; --$i) { + $removed = array_shift($arr); + } + $debug ? print("<br>\n" . '[*] Three level TLD: <strong>' . join('.', $_sub) . '</strong> ') : false; + } + } elseif (count($arr) === 2) { + $arr0 = array_shift($arr); + if ( + strpos(join('.', $arr), '.') === false + && in_array($arr[0], ['localhost', 'test', 'invalid']) === false + ) { // not a reserved domain + $debug ? print("<br>\n" . 'Seems invalid domain: <strong>' . join('.', $arr) . '</strong> re-adding: <strong>' . $arr0 . '</strong> ') : false; + // seems invalid domain, restore it + array_unshift($arr, $arr0); + } + } + $debug ? print("<br>\n" . '<strong style="color:gray">&laquo;</strong> Done parsing: <span style="color:red">' . $original . '</span> as <span style="color:blue">' . join('.', $arr) . "</span><br>\n") : false; + + return join('.', $arr); +} + +function getQsParams(): array +{ + $a = []; + foreach (explode("&", server()["QUERY_STRING"]) as $q) { + $p = explode('=', $q, 2); + $a[$p[0]] = isset($p[1]) ? $p[1] : ''; + } + + return $a; +} + +function unlinkIfExists(string $filename): bool +{ + if (is_dir($filename)) { + throw new LogicException(sprintf('Filename %s is a dir', $filename)); + } + if (file_exists($filename)) { + return unlink($filename); + } + + return true; +} + +function dsq_hmacsha1($data, $key) +{ + $blocksize = 64; + $hashfunc = 'sha1'; + if (strlen($key) > $blocksize) { + $key = pack('H*', $hashfunc($key)); + } + $key = str_pad($key, $blocksize, chr(0x00)); + $ipad = str_repeat(chr(0x36), $blocksize); + $opad = str_repeat(chr(0x5c), $blocksize); + $hmac = pack('H*', $hashfunc(($key ^ $opad) . pack('H*', $hashfunc(($key ^ $ipad) . $data)))); + + return bin2hex($hmac); +} diff --git a/app/src/Legacy/functions-render.php b/app/src/Legacy/functions-render.php new file mode 100644 index 0000000..63d594f --- /dev/null +++ b/app/src/Legacy/functions-render.php @@ -0,0 +1,1093 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy; + +use Chevereto\Config\Config; +use Chevereto\Legacy\Classes\Album; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\absolute_to_url; +use function Chevereto\Legacy\G\add_trailing_slashes; +use function Chevereto\Legacy\G\array_filter_array; +use function Chevereto\Legacy\G\check_value; +use function Chevereto\Legacy\G\dsq_hmacsha1; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_current_url; +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\G\get_route_name; +use function Chevereto\Legacy\G\get_route_path; +use function Chevereto\Legacy\G\get_set_status_header_desc; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\json_output; +use function Chevereto\Legacy\G\json_prepare; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\sanitize_path_slashes; +use function Chevereto\Legacy\G\set_status_header; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\G\url_to_relative; +use function Chevereto\Vars\cookie; +use function Chevereto\Vars\env; +use function Chevereto\Vars\server; +use LogicException; + +function get_email_body_str($file) +{ + ob_start(); + include_theme_file($file); + $mail_body = ob_get_contents(); + ob_end_clean(); + + return $mail_body; +} + +function get_theme_inline_code($file, $type = null) +{ + if (!isset($type)) { + $type = pathinfo(rtrim($file, '.php'), PATHINFO_EXTENSION); + } + include_theme_file($file); +} +function show_theme_inline_code($file, $type = null) +{ + include_theme_file($file); +} + +function get_theme_file_url($file, $options = []) +{ + $filepath = PATH_PUBLIC_LEGACY_THEME . $file; + $filepath_override = PATH_PUBLIC_LEGACY_THEME . 'overrides/' . $file; + if (file_exists($filepath_override)) { + $filepath = $filepath_override; + } + + return get_static_url($filepath, $options); +} +function get_static_url($filepath, $options = []) +{ + $options = array_merge(['versionize' => true], $options); + $return = absolute_to_url( + $filepath, + URL_APP_PUBLIC === URL_APP_PUBLIC_STATIC + ? Config::host()->hostnamePath() + : URL_APP_PUBLIC_STATIC + ); + if ($options['versionize']) { + $return = versionize_src($return); + } + + return $return; +} +function theme_file_exists($var) +{ + return file_exists(PATH_PUBLIC_LEGACY_THEME . $var); +} + +function get_html_tags() +{ + $palette = Handler::var('theme_palette_handle'); + $device = 'device-' . (Handler::cond('mobile_device') ? 'mobile' : 'nonmobile'); + $nsfwBlur = 'unsafe-blur-' . (getSetting('theme_nsfw_blur') ? 'on' : 'off'); + $classes = strtr( + '%device %palette %nsfwBlur', + [ + '%device' => $device, + '%palette' => 'palette-' . $palette, + '%nsfwBlur' => $nsfwBlur, + ] + ); + if (getSetting('captcha')) { + $classes .= ' recaptcha recaptcha--' . getSetting('captcha_api'); + } + if (Handler::cond('show_powered_by_footer')) { + $classes .= ' powered-by-footer'; + } + + return get_lang_html_tags() . ' class="' . $classes . '" data-palette="' . $palette . '"'; +} + +function get_lang_html_tags() +{ + $lang = get_language_used(); + + return 'xml:lang="' . $lang['base'] . '" lang="' . $lang['base'] . '" dir="' . $lang['dir'] . '"'; +} + +function get_select_options_html($arr, $selected) +{ + $html = ''; + foreach ($arr as $k => $v) { + $selected = is_bool($selected) ? ($selected ? 1 : 0) : $selected; + $html .= '<option value="' . $k . '"' . ($selected == $k ? ' selected' : '') . '>' . $v . '</option>' . "\n"; + } + + return $html; +} +function get_checkbox_html($options = []) +{ + if (!array_key_exists('name', $options)) { + return 'ERR:CHECKBOX_NAME_MISSING'; + } + $options = array_merge([ + 'value_checked' => 1, + 'value_unchecked' => 0, + 'label' => $options['name'], + 'checked' => false, + ], $options); + $tooltip = isset($options['tooltip']) ? (' rel="tooltip" title="' . $options['tooltip'] . '"') : null; + + return '<div class="checkbox-label">' . "\n" . + ' <label for="' . $options['name'] . '"' . $tooltip . '>' . "\n" . + ' <input type="hidden" name="' . $options['name'] . '" value="' . $options['value_unchecked'] . '">' . "\n" . + ' <input type="checkbox" name="' . $options['name'] . '" id="' . $options['name'] . '" ' . ((bool) $options['checked'] ? ' checked' : null) . ' value="' . $options['value_checked'] . '">' . $options['label'] . "\n" . + ' </label>' . "\n" . + '</div>'; +} +function get_captcha_component($id = 'g-recaptcha') +{ + return match (getSetting('captcha_api')) { + '2', 'hcaptcha' => ['captcha_html', strtr('<div id="%id" data-recaptcha-element class="captcha"></div>', ['%id' => $id])], + '3' => ['recaptcha_invisible_html', get_captcha_invisible_html()], + default => throw new LogicException('Invalid captcha API'), + }; +} +function get_captcha_invisible_html() +{ + return '<script> + const recaptchaAction = "' . get_route_name() . '"; + const recaptchaLocal = "' . get_base_url('captcha-verify') . '"; + grecaptcha.ready(function() { + grecaptcha.execute("' . getSetting('captcha_sitekey') . '", {action: recaptchaAction}) + .then(function(token) { + fetch(recaptchaLocal + "/?action=" + recaptchaAction + "&token="+token).then(function(response) { + response.json().then(function(data) { + console.log(data); + }); + }); + }); + }); + </script>'; +} + +function get_share_links(array $share_element = []) +{ + if (function_exists('get_share_links')) { + return \get_share_links($share_element); + } + $share_element = array_merge([ + 'HTML' => '<a href="__url__" title="__title__"><img src="__image__" /></a>', + 'referer' => get_public_url(), + 'url' => '__url__', + 'image' => '__image__', + 'title' => '__title__', + ], $share_element); + if (!isset($share_element['twitter'])) { + $share_element['twitter'] = getSetting('twitter_account'); + } + $elements = []; + foreach ($share_element as $key => $value) { + if (is_null($value)) { + continue; + } + $elements[$key] = rawurlencode($value); + } + global $share_links_networks; + include_theme_file('custom_hooks/share_links'); + if (!isset($share_links_networks)) { + $share_links_networks = [ + 'share' => [ + 'url' => 'share:title=%TITLE%&url=%URL%', + 'label' => _s('Share'), + 'mobileonly' => true, + ], + 'mail' => [ + 'url' => 'mailto:?subject=%TITLE%&body=%URL%', + 'label' => 'Email', + ], + 'facebook' => [ + 'url' => 'http://www.facebook.com/share.php?u=%URL%', + 'label' => 'Facebook', + ], + 'twitter' => [ + 'url' => 'https://twitter.com/intent/tweet?original_referer=%URL%&url=%URL%&text=%TITLE%' . ($share_element['twitter'] ? '&via=%TWITTER%' : null), + 'label' => 'Twitter', + ], + 'whatsapp' => [ + 'url' => 'whatsapp://send?text=%TITLE% - ' . _s('view on %s', safe_html(getSetting('website_name'))) . ': %URL%', + 'label' => 'WhatsApp', + 'mobileonly' => true, + ], + 'telegram' => [ + 'url' => 'https://t.me/share/url?url=%URL%&text=%TITLE%', + 'label' => 'Telegram', + 'mobileonly' => true, + ], + 'weixin' => [ + 'url' => 'https://api.qrserver.com/v1/create-qr-code/?size=154x154&data=%URL%', + 'label' => '分享到微信', + ], + 'weibo' => [ + 'url' => 'https://service.weibo.com/share/share.php?url=%URL%&title=%TITLE%&pic=%PHOTO_URL%&searchPic=true', + 'label' => '分享到微博', + ], + 'qzone' => [ + 'url' => 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=%URL%&pics=%PHOTO_URL%&title=%TITLE%', + 'label' => '分享到QQ空间', + 'icon' => 'star' + ], + 'qq' => [ + 'url' => 'https://connect.qq.com/widget/shareqq/index.html?url=%URL%&summary=%DESCRIPTION%&title=%TITLE%&pics=%PHOTO_URL%', + 'label' => '分享到QQ', + ], + 'reddit' => [ + 'url' => 'http://reddit.com/submit?url=%URL%', + 'label' => 'reddit', + ], + 'vk' => [ + 'url' => 'http://vk.com/share.php?url=%URL%', + 'label' => 'VK', + ], + 'blogger' => [ + 'url' => 'http://www.blogger.com/blog-this.g?n=%TITLE%&source=&b=%HTML%', + 'label' => 'Blogger', + ], + 'tumblr' => [ + 'url' => 'http://www.tumblr.com/share/photo?source=%PHOTO_URL%&caption=%TITLE%&clickthru=%URL%&title=%TITLE%', + 'label' => 'Tumblr.', + ], + 'pinterest' => [ + 'url' => 'http://www.pinterest.com/pin/create/bookmarklet/?media=%PHOTO_URL%&url=%URL%&is_video=false&description=%DESCRIPTION%&title=%TITLE%', + 'label' => 'Pinterest', + ], + ]; + } + $return = []; + $search = ['%URL%', '%TITLE%', '%DESCRIPTION%', '%HTML%', '%PHOTO_URL%', '%TWITTER%']; + $replace = ['url', 'title', 'description', 'HTML', 'image', 'twitter']; + foreach ($share_links_networks as $key => $value) { + for ($i = 0; $i < count($replace); ++$i) { + if (array_key_exists($replace[$i], $elements)) { + $replace[$i] = $elements[$replace[$i]]; + } + } + $value['url'] = str_replace($search, $replace, $value['url']); + $icon = "fab"; + switch ($key) { + case 'share': + $icon = 'fas'; + $key = 'share'; + + break; + case 'mail': + $icon = 'fas'; + $key = 'at'; + + break; + case 'qzone': + $icon = 'fas'; + + break; + } + $iconKey = $value['icon'] ?? $key; + $return[] = '<li' . (isset($value['mobileonly']) ? ' class="hidden phone-display-inline-block"' : null) . '><a data-href="' . $value['url'] . '" class="popup-link btn-32 btn-social btn-' . $key . '" rel="tooltip" data-tiptip="top" title="' . $value['label'] . '"><span class="btn-icon ' . $icon . ' fa-' . $iconKey . '"></span></a></li>'; + } + + return $return; +} + +function include_peafowl_head() +{ + echo '<meta name="generator" content="Chevereto 4">' . "\n" . + '<link rel="stylesheet" href="' . get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'peafowl.min.css') . '">' . "\n" . + '<link rel="stylesheet" href="' . get_theme_file_url('style.min.css') . '">' . "\n\n" . + '<link rel="stylesheet" href="' . get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'font-awesome-6/css/all.min.css') . '">' . "\n" . + '<script data-cfasync="false">document.documentElement.className+=" js";var devices=["phone","phablet","tablet","laptop","desktop","largescreen"],window_to_device=function(){for(var e=[480,768,992,1200,1880,2180],t=[],n="",d=document.documentElement.clientWidth||document.getElementsByTagName("body")[0].clientWidth||window.innerWidth,c=0;c<devices.length;++c)d>=e[c]&&t.push(devices[c]);for(0==t.length&&t.push(devices[0]),n=t[t.length-1],c=0;c<devices.length;++c)document.documentElement.className=document.documentElement.className.replace(devices[c],""),c==devices.length-1&&(document.documentElement.className+=" "+n),document.documentElement.className=document.documentElement.className.replace(/\s+/g," ");if("laptop"==n||"desktop"==n){var o=document.getElementById("pop-box-mask");null!==o&&o.parentNode.removeChild(o)}};window_to_device(),window.onresize=window_to_device;function jQueryLoaded(){!function(n,d){n.each(readyQ,function(d,e){n(e)}),n.each(bindReadyQ,function(e,i){n(d).bind("ready",i)})}(jQuery,document)}!function(n,d,e){function i(d,e){"ready"==d?n.bindReadyQ.push(e):n.readyQ.push(d)}n.readyQ=[],n.bindReadyQ=[];var u={ready:i,bind:i};n.$=n.jQuery=function(n){return n===d||void 0===n?u:void i(n)}}(window,document); + </script>' . "\n\n"; + if (Handler::cond('captcha_needed') && getSetting('captcha_api') === '3') { + echo '<script src="https://www.recaptcha.net/recaptcha/api.js?render=' . getSetting('captcha_sitekey') . '"></script>'; + } +} +function get_cookie_law_banner() +{ + return '<div id="cookie-law-banner" data-cookie="CHV_COOKIE_LAW_DISPLAY"><div class="c24 center-box position-relative"><p class="">' . _s('We use our own and third party cookies to improve your browsing experience and our services. If you continue using our website is understood that you accept this %cookie_policy_link.', ['%cookie_policy_link' => '<a href="' . get_base_url('page/privacy') . '">' . _s('cookie policy') . '</a>']) . '</p><a data-action="cookie-law-close" title="' . _s('I understand') . '" class="cookie-law-close"><span class="icon fas fa-times"></span></a></div></div>' . "\n\n"; +} +// Sensitive Cookie law display +function display_cookie_law_banner() +{ + if (!getSetting('enable_cookie_law') || Login::isLoggedUser()) { + return; + } + // No user logged in and cookie law has not been accepted + if (!isset(cookie()['CHV_COOKIE_LAW_DISPLAY']) || (bool) cookie()['CHV_COOKIE_LAW_DISPLAY'] !== false) { + echo get_cookie_law_banner(); + } +} +function include_peafowl_foot() +{ + display_cookie_law_banner(); + $resources = [ + 'peafowl' => PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'peafowl.min.js', + 'chevereto' => PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'chevereto.min.js', + ]; + foreach ($resources as $k => &$v) { + $v = get_static_url($v); + } + $resources['scripts'] = get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'js/scripts.min.js'); + $echo = [ + '<script defer data-cfasync="false" src="' . $resources['scripts'] . '" id="jquery-js" onload="jQueryLoaded(this, event)"></script>', + '<script defer data-cfasync="false" src="' . $resources['peafowl'] . '" id="peafowl-js"></script>', + '<script defer data-cfasync="false" src="' . $resources['chevereto'] . '" id="chevereto-js"></script>', + ]; + if (Handler::cond('captcha_needed')) { + $script = match (getSetting('captcha_api')) { + '2', 'hcaptcha' => <<<JS + grecaptcha + .render(\$this.attr("id"), { + sitekey: CHV.obj.config.captcha.sitekey, + theme: "%t" + }); + JS, + '3' => <<<JS + grecaptcha + .execute(CHV.obj.config.captcha.sitekey, {action:'recaptcha_action'}) + .then(function(token) { + document + .getElementById('g-recaptcha-response') + .value = token; + }); + JS, + }; + $echo[] = strtr('<script> + captchaCallback = function() { + $("[data-recaptcha-element]:empty:visible, #g-recaptcha").each(function() { + var $this = $(this); + ' . $script . ' + }); + }; + </script>', [ + '%k' => getSetting('captcha_sitekey'), + '%t' => in_array(Handler::var('theme_palette_handle'), ['dark', 'imgur', 'deviantart']) + ? 'dark' + : 'light', + '%script' => $script, + ]); + $echo[] = match (getSetting('captcha_api')) { + '2' => '<script defer src="https://www.recaptcha.net/recaptcha/api.js?onload=captchaCallback&render=explicit"></script>', + 'hcaptcha' => '<script defer src="https://js.hcaptcha.com/1/api.js?onload=captchaCallback&render=explicit"></script>', + '3' => '<script defer src="https://www.recaptcha.net/recaptcha/api.js?onload=captchaCallback&render=' . getSetting('captcha_sitekey') . '"></script>', + }; + } + if (method_exists(Settings::class, 'getChevereto')) { + $echo[] = '<script data-cfasync="false">var CHEVERETO = ' . json_encode(Settings::getChevereto()) . '</script>'; + } + echo implode("\n", $echo); +} +function get_peafowl_item_list($item, $template, $tools, $tpl = 'image', array $requester = []) +{ + $isRequesterAdmin = (bool) ($requester['is_admin'] ?? false); + $isRequesterManager = (bool) ($requester['is_manager'] ?? false); + $stock_tpl = 'IMAGE'; + if ($tpl == 'album' || $tpl == 'user/album') { + $stock_tpl = 'ALBUM'; + } + if ($tpl == 'user' || $tpl == 'user/user') { + $stock_tpl = 'USER'; + if ($item['is_private'] == 1) { + if ($isRequesterAdmin || $isRequesterManager) { + $item['name'] = '🔒 ' . $item['name']; + } else { + unset($item); + $item = User::getPrivate(); + } + } + } else { + if (array_key_exists('user', $item)) { + User::fill($item['user']); + } + } + if (in_array($stock_tpl, ['IMAGE', 'ALBUM'])) { + $item['liked'] = !isset($item['like']['user_id']) + ? 0 + : (($requester['id'] ?? null) == $item['like']['user_id'] ? 1 : 0); + } + if ($stock_tpl == 'IMAGE') { + if (!$item['is_animated'] || !isset($item['file_resource']['chain']['image'])) { + $conditional_replaces['tpl_list_item/item_image_play_gif'] = null; + } + } elseif (!isset($item['images_slice'][0]['is_animated']) || $item['images_slice'][0]['is_animated'] == false) { + $conditional_replaces['tpl_list_item/item_image_play_gif'] = null; + } + $fill_tpl = $tpl; + if ($stock_tpl == 'ALBUM' && $isRequesterAdmin == false && $item['privacy'] == 'password' && !($item['user']['id'] && $item['user']['id'] == ($requester['id'] ?? null)) && Album::checkSessionPassword($item) == false) { + $fill_tpl = 'album_password'; + } + $filled_template = $template["tpl_list_item/$fill_tpl"]; + if (!getSetting('enable_likes') || (bool) ($requester['is_private'] ?? false)) { + $conditional_replaces['tpl_list_item/item_like'] = null; + } + if (!getSetting('theme_show_social_share')) { + $conditional_replaces['tpl_list_item/item_share'] = null; + } + if (isset($item['user']) + && ($item['user']['is_private'] ?? false) == 1 + && !$isRequesterAdmin + && $item['user']['id'] != ($requester['id'] ?? null) + ) { + unset($item['user']); + $item['user'] = User::getPrivate(); + $conditional_replaces['tpl_list_item/image_description_user'] = null; + $conditional_replaces['tpl_list_item/image_description_guest'] = null; + } else { + $conditional_replaces['tpl_list_item/image_description_private'] = null; + } + if (isset($item['user']) && ($item['user']['is_private'] ?? false) == 1 && ($isRequesterAdmin || ($requester['is_manager'] ?? false))) { + $item['user']['name'] = '🔒 ' . $item['user']['name']; + } + $conditional_replaces[!isset($item['user'], $item['user']['id']) ? 'tpl_list_item/image_description_user' : 'tpl_list_item/image_description_guest'] = null; + $conditional_replaces[!isset($item['user'], $item['user']['avatar']) ? 'tpl_list_item/image_description_user_avatar' : 'tpl_list_item/image_description_user_no_avatar'] = null; + if ($stock_tpl == 'IMAGE') { + $hasImageCover = isset($item['file_resource']['chain']['image']); + $conditional_replaces['tpl_list_item/item_cover_type'] = $hasImageCover ? '--media' : '--bodyEmpty'; + $conditional_replaces['tpl_list_item/' . (!$hasImageCover ? 'image_cover_image' : 'image_cover_empty')] = null; + } + if ($stock_tpl == 'ALBUM') { + if ($item['privacy'] !== 'password' + || (!$isRequesterAdmin || ($item['user']['id'] ?? null) != ($requester['id'] ?? false)) + ) { + $item['password'] = null; + } + if ($fill_tpl == 'album_password') { + unset($item['images_slice']); + } + $hasImageCoverSlice = isset($item['images_slice'][0]['file_resource']); + $conditional_replaces['tpl_list_item/item_cover_type'] = $hasImageCoverSlice + ? '--media' + : '--bodyEmpty'; + $conditional_replaces[ + 'tpl_list_item/' + . ( + (($item['image_count'] ?? 0) == 0 || !$hasImageCoverSlice) + ? 'album_cover_image' + : 'album_cover_empty' + ) + ] = null; + if (isset($item['images_slice'])) { + for ($i = 1; $i < count((array) $item['images_slice']); ++$i) { + if (!$item['images_slice'][$i]['file_resource']['chain']['thumb']) { + continue; + } + $template['tpl_list_item/album_thumbs'] = str_replace("%$i", '', $template['tpl_list_item/album_thumbs']); + } + } + $template['tpl_list_item/album_thumbs'] = preg_replace('/%[0-9]+(.*)%[0-9]+/', '', $template['tpl_list_item/album_thumbs']); + } + if ($stock_tpl == 'USER') { + $conditional_replaces[($item['avatar'] ?? false) ? 'tpl_list_item/user_no_avatar' : 'tpl_list_item/user_avatar'] = null; + foreach (['twitter', 'facebook', 'website'] as $social) { + if (!isset($item[$social])) { + $conditional_replaces['tpl_list_item/user_' . $social] = null; + } + } + $conditional_replaces[empty($item['avatar']['url']) ? 'tpl_list_item/user_cover_image' : 'tpl_list_item/user_cover_empty'] = null; + $conditional_replaces[empty($item['background']['url']) ? 'tpl_list_item/user_background_image' : 'tpl_list_item/user_background_empty'] = null; + } + $show_item_edit_tools = false; + $show_item_public_tools = false; + $show_admin_tools = false; + if ($requester !== []) { + if (!is_null($tools)) { + $show_item_edit_tools = !is_array($tools); + $show_item_public_tools = is_array($tools); + } + if ($isRequesterAdmin || ($requester['is_manager'] ?? false)) { + $show_item_edit_tools = true; + $show_item_public_tools = false; + $show_admin_tools = true; + } + } + if (!$show_item_public_tools) { + $template['tpl_list_item/item_' . strtolower($stock_tpl) . '_public_tools'] = null; + } + if (!$show_item_edit_tools) { + $template['tpl_list_item/item_' . strtolower($stock_tpl) . '_edit_tools'] = null; + } + if (!$show_admin_tools) { + $template['tpl_list_item/item_' . strtolower($stock_tpl) . '_admin_tools'] = null; + } + foreach ($conditional_replaces as $k => $v) { + $template[$k] = $v; + } + preg_match_all('#%(tpl_list_item/.*)%#', $filled_template, $matches); + if (is_array($matches[1])) { + foreach ($matches[1] as $k => $v) { + $filled_template = replace_tpl_string($v, $template[$v], $filled_template); + } + } + foreach ($template as $k => $v) { + $filled_template = replace_tpl_string($k, $v, $filled_template); + } + // Get rid of the useless keys + unset($item['original_exifdata']); + // Now stock the item values + $replacements = array_change_key_case(flatten_array($item, $stock_tpl . '_'), CASE_UPPER); + unset($replacements['IMAGE_ORIGINAL_EXIFDATA']); + if ($stock_tpl == 'IMAGE' or $stock_tpl == 'ALBUM') { + $replacements['ITEM_URL_EDIT'] = url_to_relative($stock_tpl == 'IMAGE' ? $item['url_viewer'] : $item['url']) . '#edit'; + } + // Public for the guest + if (!array_key_exists('user', $item)) { + $replacements['IMAGE_ALBUM_PRIVACY'] = 'public'; + } + if (in_array($stock_tpl, ['IMAGE', 'ALBUM'])) { + $nsfw = $stock_tpl == 'IMAGE' ? $item['nsfw'] : (isset($item['images_slice'][0]['nsfw']) ? $item['images_slice'][0]['nsfw'] : ''); + $placeholder = $stock_tpl == 'IMAGE' ? 'IMAGE_FLAG' : 'ALBUM_COVER_FLAG'; + $replacements[$placeholder] = $nsfw ? 'unsafe' : 'safe'; + } + $object = array_filter_array($item, ['id_encoded', 'image', 'medium', 'thumb', 'name', 'title', 'display_url', 'extension', 'filename', 'height', 'how_long_ago', 'size_formatted', 'url', 'path_viewer', 'url_viewer', 'url_short', 'width', 'is_360']); + if (isset($item['user'])) { + $object['user'] = []; + foreach (['avatar', 'url', 'username', 'name_short_html'] as $k) { + $object['user'][$k] = $item['user'][$k] ?? ''; + } + } + $replacements['DATA_OBJECT'] = "data-object='" . rawurlencode(json_encode(G\array_utf8encode($object))) . "'"; + if ($stock_tpl == 'IMAGE') { + $replacements['SIZE_TYPE'] = getSetting('theme_image_listing_sizing') . '-size'; + } + foreach ($replacements as $k => $v) { + $filled_template = replace_tpl_string($k, $v, $filled_template); + } + $column_sizes = [ + 'image' => 8, + 'album' => 8, + 'user' => 8, + ]; + foreach ($column_sizes as $k => $v) { + $filled_template = replace_tpl_string('COLUMN_SIZE_' . strtoupper($k), (string) $v, $filled_template); + } + + return $filled_template; +} +function replace_tpl_string(string $search, $replace, string $subject) +{ + return str_replace('%' . $search . '%', is_null($replace) ? '' : (string) $replace, $subject); +} +// http://stackoverflow.com/a/9546215 +function flatten_array($array, $prefix = '') +{ + $result = []; + foreach ($array as $key => $value) { + if (is_array($value)) { + $result = $result + flatten_array($value, $prefix . $key . '_'); + } else { + $result[$prefix . $key] = $value; + } + } + + return $result; +} +function chevereto_die(array|string $error_msg, $paragraph = null, $title = null) +{ + if (!is_array($error_msg) && check_value($error_msg)) { + $error_msg = [$error_msg]; + } + if (is_null($paragraph)) { + $paragraph = "The system has encountered errors <b>in your server setup</b> that must be fixed to use Chevereto:"; + } + $solution = 'Need help? Check our <a href="https://chevereto.com" target="_blank">Support</a>.'; + $title = (!is_null($title)) ? $title : 'System error'; + $handled_request = PATH_PUBLIC == '/' // @phpstan-ignore-line + ? sanitize_path_slashes(server()['REQUEST_URI'] ?? '') + : str_ireplace( + Config::host()->hostnamePath(), + '', + add_trailing_slashes(server()['REQUEST_URI'] ?? '') + ); + $base_request = explode('/', rtrim(str_replace('//', '/', str_replace('?', '/', $handled_request)), '/'))[0]; + if ($base_request == 'json' || $base_request == 'api') { + $output = [ + 'status_code' => 500, + 'status_txt' => get_set_status_header_desc(500), + 'error' => $title, + 'errors' => $error_msg, + ]; + set_status_header(500); + json_prepare(); + json_output($output); + die(255); + } + $html = [ + '<h1>' . $title . '</h1>', + '<p>' . $paragraph . '</p>', + ]; + if (is_array($error_msg)) { + $html[] = '<ul class="errors">'; + foreach ($error_msg as $error) { + $html[] = '<li>' . $error . '</li>'; + } + $html[] = '</ul>'; + } + $html[] = '<p class="margin-bottom-0">' . $solution . '</p>'; + $html = join('', $html); + $template = PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'template.php'; + require_once $template; + die(255); +} +function getFriendlyExif($Exif) +{ + if (gettype($Exif) == 'string') { + $Exif = json_decode($Exif); + } + if ($Exif->Make ?? false) { + $exif_one_line = []; + if ($Exif->ExposureTime ?? false) { + $Exposure = $Exif->ExposureTime . 's'; + $exif_one_line[] = $Exposure; + } + if ($Exif->FNumber ?? false or $Exif->COMPUTED->ApertureFNumber ?? false) { + $Aperture = 'ƒ/' . + ( + isset($Exif->FNumber) + ? strval($Exif->FNumber) + : explode('/', $Exif->COMPUTED->ApertureFNumber)[1] + ); + $exif_one_line[] = $Aperture; + } + if ($Exif->ISOSpeedRatings ?? false) { + $ISO = 'ISO' . (is_array($Exif->ISOSpeedRatings) ? $Exif->ISOSpeedRatings[0] : $Exif->ISOSpeedRatings); + $exif_one_line[] = $ISO; + } + if ($Exif->FocalLength ?? false) { + $FocalLength = $Exif->FocalLength . 'mm'; + $exif_one_line[] = $FocalLength; + } + $exif_relevant = [ + 'XResolution', + 'YResolution', + 'ResolutionUnit', + 'ColorSpace', + 'Orientation', + 'Software', + 'BrightnessValue', + 'SensingMethod', + 'SceneCaptureType', + 'GainControl', + 'ExposureBiasValue', + 'MaxApertureValue', + 'ExposureProgram', + 'ExposureMode', + 'MeteringMode', + 'LightSource', + 'Flash', + 'WhiteBalance', + 'DigitalZoomRatio', + 'Contrast', + 'Saturation', + 'Sharpness', + 'ExifVersion', + 'DateTimeModified', + 'DateTimeOriginal', + 'DateTimeDigitized', + ]; + $ExifRelevant = []; + foreach ($exif_relevant as $k) { + if (property_exists($Exif, $k)) { + $exifReadableValue = exifReadableValue($Exif, $k); + if ($exifReadableValue !== null && !is_array($exifReadableValue)) { // Just make sure to avoid this array + $ExifRelevant[$k] = $exifReadableValue; + } + } + } + $camera = $Exif->Make; + if ($Exif->Model ?? false) { + $camera .= ' ' . $Exif->Model; + } + $return = [ + 'Simple' => [ + 'Camera' => $camera, + 'Capture' => implode(' ', $exif_one_line), + ], + 'Full' => array_merge([ + 'Manufacturer' => $Exif->Make, + 'Model' => $Exif->Model ?? '', + 'ExposureTime' => $Exposure ?? '', + 'Aperture' => $Aperture ?? '', + 'ISO' => preg_replace('/iso/i', '', $ISO ?? ''), + 'FocalLength' => $FocalLength ?? '', + ], $ExifRelevant), + ]; + foreach ($return as $k => &$v) { + if ($k == 'Full') { + $v = array_filter((array) $v, 'strlen'); + } + foreach ($v as $kk => $vv) { + $return[$k][$kk] = safe_html(strip_tags((string) $vv)); + } + } + + return json_decode(json_encode($return), false); + } + + return null; +} +function exifReadableValue($Exif, $key) +{ + $table = [ + 'PhotometricInterpretation' => [ + 0 => 'WhiteIsZero', + 1 => 'BlackIsZero', + 2 => 'RGB', + 3 => 'RGB Palette', + 4 => 'Transparency Mask', + 5 => 'CMYK', + 6 => 'YCbCr', + 8 => 'CIELab', + 9 => 'ICCLab', + 10 => 'ITULab', + 32803 => 'Color Filter Array', + 32844 => 'Pixar LogL', + 32845 => 'Pixar LogLuv', + 34892 => 'Linear Raw', + ], + 'ColorSpace' => [ + 1 => 'sRGB', + 2 => 'Adobe RGB', + 65533 => 'Wide Gamut RGB', + 65534 => 'ICC Profile', + 65535 => 'Uncalibrated', + ], + 'Orientation' => [ + 1 => 'Horizontal (normal)', + 2 => 'Mirror horizontal', + 3 => 'Rotate 180', + 4 => 'Mirror vertical', + 5 => 'Mirror horizontal and rotate 270 CW', + 6 => 'Rotate 90 CW', + 7 => 'Mirror horizontal and rotate 90 CW', + 8 => 'Rotate 270 CW', + ], + 'ResolutionUnit' => [ + 1 => 'None', + 2 => 'inches', + 3 => 'cm', + ], + 'ExposureProgram' => [ + 0 => 'Not Defined', + 1 => 'Manual', + 2 => 'Program AE', + 3 => 'Aperture-priority AE', + 4 => 'Shutter speed priority AE', + 5 => 'Creative (Slow speed)', + 6 => 'Action (High speed)', + 7 => 'Portrait', + 8 => 'Landscape', + 9 => 'Bulb', + ], + 'MeteringMode' => [ + 0 => 'Unknown', + 1 => 'Average', + 2 => 'Center-weighted average', + 3 => 'Spot', + 4 => 'Multi-spot', + 5 => 'Multi-segment', + 6 => 'Partial', + 255 => 'Other', + ], + 'ExposureMode' => [ + 0 => 'Auto', + 1 => 'Manual', + 2 => 'Auto bracket', + ], + 'SensingMethod' => [ + 1 => 'Monochrome area', + 2 => 'One-chip color area', + 3 => 'Two-chip color area', + 4 => 'Three-chip color area', + 5 => 'Color sequential area', + 6 => 'Monochrome linear', + 7 => 'Trilinear', + 8 => 'Color sequential linear', + ], + 'SceneCaptureType' => [ + 0 => 'Standard', + 1 => 'Landscape', + 2 => 'Portrait', + 3 => 'Night', + ], + 'GainControl' => [ + 0 => 'None', + 1 => 'Low gain up', + 2 => 'High gain up', + 3 => 'Low gain down', + 4 => 'High gain down', + ], + 'Saturation' => [ + 0 => 'Normal', + 1 => 'Low', + 2 => 'High', + ], + 'Sharpness' => [ + 0 => 'Normal', + 1 => 'Soft', + 2 => 'Hard', + ], + 'Flash' => [ + 0 => 'No Flash', + 1 => 'Fired', + 5 => 'Fired, Return not detected', + 7 => 'Fired, Return detected', + 8 => 'On, Did not fire', + 9 => 'On, Fired', + 13 => 'On, Return not detected', + 15 => 'On, Return detected', + 16 => 'Off, Did not fire', + 20 => 'Off, Did not fire, Return not detected', + 24 => 'Auto, Did not fire', + 25 => 'Auto, Fired', + 29 => 'Auto, Fired, Return not detected', + 31 => 'Auto, Fired, Return detected', + 32 => 'No flash function', + 48 => 'Off, No flash function', + 65 => 'Fired, Red-eye reduction', + 69 => 'Fired, Red-eye reduction, Return not detected', + 71 => 'Fired, Red-eye reduction, Return detected', + 73 => 'On, Red-eye reduction', + 77 => 'On, Red-eye reduction, Return not detected', + 79 => 'On, Red-eye reduction, Return detected', + 80 => 'Off, Red-eye reduction', + 88 => 'Auto, Did not fire, Red-eye reduction', + 89 => 'Auto, Fired, Red-eye reduction', + 93 => 'Auto, Fired, Red-eye reduction, Return not detected', + 95 => 'Auto, Fired, Red-eye reduction, Return detected', + ], + 'LightSource' => [ + 0 => 'Unknown', + 1 => 'Daylight', + 2 => 'Fluorescent', + 3 => 'Tungsten (Incandescent)', + 4 => 'Flash', + 9 => 'Fine Weather', + 10 => 'Cloudy', + 11 => 'Shade', + 12 => 'Daylight Fluorescent', + 13 => 'Day White Fluorescent', + 14 => 'Cool White Fluorescent', + 15 => 'White Fluorescent', + 16 => 'Warm White Fluorescent', + 17 => 'Standard Light A', + 18 => 'Standard Light B', + 19 => 'Standard Light C', + 20 => 'D55', + 21 => 'D65', + 22 => 'D75', + 23 => 'D50', + 24 => 'ISO Studio Tungsten', + 255 => 'Other', + ], + ]; + $table['Contrast'] = $table['Saturation']; + if (is_object($Exif) and is_array($Exif->$key)) { + $value_arr = []; + foreach ($Exif->$key as $k) { + $value_arr[] = $table[$key][$k]; + } + $value = implode(', ', $value_arr); + } else { + $value = $table[$key][$Exif->$key] ?? $Exif->$key; + } + switch ($key) { + case 'DateTime': + case 'DateTimeOriginal': + case 'DateTimeDigitized': + case 'DateTimeModified': + $value = $value !== null ? preg_replace('/(\d{4})(:)(\d{2})(:)(\d{2})/', '$1-$3-$5', $value) : null; + + break; + case 'WhiteBalance': + $value = $value == 0 ? 'Auto' : $value; + + break; + case 'XResolution': + case 'YResolution': + $value = $value ? (strval($value) . ' dpi') : null; + + break; + } + + return $value ?? null; +} +function arr_printer($arr, $tpl = '', $wrap = []) +{ + ksort($arr); + $rtn = ''; + $rtn .= $wrap[0]; + foreach ($arr as $k => $v) { + if (is_array($v)) { + $rtn .= strtr($tpl, ['%K' => $k, '%V' => arr_printer($v, $tpl, $wrap)]); + } else { + $rtn .= strtr($tpl, ['%K' => $k, '%V' => $v]); + } + } + $rtn .= $wrap[1]; + + return $rtn; +} +function versionize_src($src) +{ + return $src . '?' . md5(get_chevereto_version()); +} +function show_banner($banner, $sfw = true) +{ + if (!(bool) env()['CHEVERETO_ENABLE_BANNERS']) { + return; + } + if (!$sfw) { + $banner .= '_nsfw'; + } + $banner_code = trim(get_banner_code($banner, false)); + if ($banner_code !== '') { + echo '<div id="' . $banner . '" class="ad-banner">' . $banner_code . '</div>'; + } +} +function showComments() +{ + $html = ''; + switch (getSetting('comments_api')) { + case 'js': + $html = getSetting('comment_code'); + + break; + case 'disqus': + $disqus_secret = getSetting('disqus_secret_key'); + $disqus_public = getSetting('disqus_public_key'); + if (!empty($disqus_secret) && !empty($disqus_public)) { + $logged_user = Login::getUser(); + $data = [ + 'id' => $logged_user['id_encoded'], + 'username' => $logged_user['name'], + 'email' => $logged_user['email'], + 'avatar' => $logged_user['avatar']['url'], + 'url' => $logged_user['url'], + ]; + + $message = base64_encode(json_encode($data)); + $timestamp = time(); + $hmac = dsq_hmacsha1($message . ' ' . $timestamp, $disqus_secret); + $auth = $message . ' ' . $hmac . ' ' . $timestamp; + } + $html = strtr('<div id="disqus_thread"></div> +<script> +var disqus_config = function() { + this.page.url = "%page_url"; + this.page.identifier = "%page_id"; +}; +(function() { + var d = document, s = d.createElement("script"); + s.src = "//%shortname.disqus.com/embed.js"; + s.setAttribute("data-timestamp", +new Date()); + (d.head || d.body).appendChild(s); +})(); +var disqus_config = function () { + this.language = "%language_code"; + this.page.remote_auth_s3 = "%auth"; + this.page.api_key = "%api_key"; +}; +</script> +<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>', [ + '%page_url' => get_current_url(), + '%page_id' => str_replace_first(get_route_path(), get_route_name(), get_route_path(true)), // image.ID + '%shortname' => getSetting('disqus_shortname'), + '%language_code' => get_language_used()['base'], + '%auth' => isset($auth) ? $auth : null, + '%api_key' => $disqus_public, + ]); + + break; + } + echo $html; +} + +function getThemeLogo(): string +{ + $logo = getSetting('logo_' . getSetting('logo_type')); + if (getSetting('logo_type') !== 'text') { + return '<img src="' . get_system_image_url($logo) . '" alt="' . getSetting('website_name') . '">'; + } else { + return Handler::var('safe_html_website_name'); + } +} + +function badgePaid(bool $isPaid = true): string +{ + if (!(bool) env()['CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES'] || $isPaid === false) { + return ''; + } + + return sprintf('<span class="badge badge--paid"><i class="fa-solid fa-dollar-sign"></i> %s</span>', _s('Pro')); +} + +function echoBadgePaid(bool $isPaid = true): void +{ + echo badgePaid($isPaid); +} + +function echoInputDisabledPaid(bool $disabled = true): void +{ + if ($disabled === false) { + return; + } + echo ' disabled="disabled" title="' . _s('This is a paid feature') . '"'; +} + +function getIpButtonsArray(array $bannedIp, string $ip): array +{ + $exposePaid = env()['CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES']; + $hrefPaidLink = 'https://chevereto.com/pricing'; + $buttonSearchIp = ''; + $buttonBanIp = ''; + $ipBanNotice = ''; + $hrefSearchButton = get_base_url('search/images/?q=ip:%1$s'); + $buttonLabel = _s('Search'); + if (!(bool) env()['CHEVERETO_ENABLE_USERS']) { + $hrefSearchButton = $hrefPaidLink; + $buttonLabel .= badgePaid($exposePaid); + } + $buttonSearchIp = '<a class="btn btn-small default" href="' . $hrefSearchButton . '"><i class="fas fa-search"></i> ' . $buttonLabel . '</a>'; + $buttonLabelBan = _s('Ban'); + $buttonLabelBanned = _s('Banned'); + $ipBanAttribute = ''; + $ipBanNoticeClass = 'disabled'; + $hrefNoticeButtonAttribute = ''; + if ((bool) env()['CHEVERETO_ENABLE_IP_BANS']) { + $ipBanAttribute = ' data-modal="form" data-args="%IP" data-target="modal-add-ip_ban" data-options=\'{"forced": true}\' data-content="ban_ip"'; + } else { + $hrefNoticeButtonAttribute = 'href="' . $hrefPaidLink . '"'; + $buttonLabelBanned = _s('Ban') . badgePaid($exposePaid); + $buttonLabelBan .= badgePaid($exposePaid); + $ipBanNoticeClass = ''; + } + $buttonBanIp = $bannedIp === [] + ? ('<a class="btn btn-small default"' . $ipBanAttribute . '><i class="fas fa-ban"></i> ' . $buttonLabelBan . '</a>') + : ''; + $ipBanNotice = '<a class="btn btn-small default ' . $ipBanNoticeClass . ($bannedIp !== [] ? '' : ' hidden') . '" ' . $hrefNoticeButtonAttribute . ' data-content="banned_ip"><i class="fas fa-ban"></i> ' . $buttonLabelBanned . '</a>'; + + return [ + 'label' => _s('IP Address'), + 'content' => sprintf(str_replace( + '%IP', + '%1$s', + '<a rel="external" href="' . getSetting('ip_whois_url') . '" target="_blank">%1$s</a>' + . '<div>' . $buttonSearchIp . ' ' . $buttonBanIp . $ipBanNotice . '</div>' + ), $ip) + ]; +} diff --git a/app/src/Legacy/functions.php b/app/src/Legacy/functions.php new file mode 100644 index 0000000..17a1ca3 --- /dev/null +++ b/app/src/Legacy/functions.php @@ -0,0 +1,1257 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Legacy; + +use function Chevere\Filesystem\filePhpForPath; +use Chevere\Filesystem\FilePhpReturn; +use function Chevere\Message\message; +use Chevere\Regex\Regex; +use Chevere\Throwable\Exceptions\LogicException; +use Chevere\Throwable\Exceptions\RuntimeException; +use function Chevere\Type\typeArray; +use function Chevere\Writer\streamFor; +use Chevere\Writer\StreamWriter; +use function Chevere\Writer\writers; +use Chevere\Writer\WritersInstance; +use Chevere\Xr\Xr; +use Chevere\Xr\XrInstance; +use Chevereto\Config\Config; +use Chevereto\Legacy\Classes\AssetStorage; +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\L10n; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Mailer; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\StorageApis; +use Chevereto\Legacy\Classes\Upload; +use function Chevereto\Legacy\G\absolute_to_relative; +use function Chevereto\Legacy\G\absolute_to_url; +use function Chevereto\Legacy\G\bytes_to_mb; +use function Chevereto\Legacy\G\datetimegmt; +use function Chevereto\Legacy\G\extension_to_mime; +use function Chevereto\Legacy\G\fetch_url; +use function Chevereto\Legacy\G\get_app_version; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_current_url; +use function Chevereto\Legacy\G\get_file_extension; +use function Chevereto\Legacy\G\get_image_fileinfo as GGet_image_fileinfo; +use function Chevereto\Legacy\G\get_ini_bytes; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\hasEnvDbInfo; +use function Chevereto\Legacy\G\is_url; +use function Chevereto\Legacy\G\is_url_web; +use function Chevereto\Legacy\G\is_valid_timezone; +use function Chevereto\Legacy\G\linkify_safe; +use function Chevereto\Legacy\G\random_string; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\starts_with; +use function Chevereto\Legacy\G\unlinkIfExists; +use function Chevereto\Vars\cookie; +use Chevereto\Vars\CookieVar; +use function Chevereto\Vars\env; +use Chevereto\Vars\EnvVar; +use Chevereto\Vars\FilesVar; +use Chevereto\Vars\GetVar; +use function Chevereto\Vars\post; +use Chevereto\Vars\PostVar; +use Chevereto\Vars\RequestVar; +use function Chevereto\Vars\server; +use Chevereto\Vars\ServerVar; +use function Chevereto\Vars\session; +use function Chevereto\Vars\sessionVar; +use Chevereto\Vars\SessionVar; +use Exception; +use Intervention\Image\ImageManagerStatic; +use OutOfBoundsException; +use PHPMailer\PHPMailer\SMTP; +use function Safe\openssl_cipher_iv_length; +use Throwable; + +function getIdFromURLComponent(string $component): int +{ + $explode = explode('.', $component); + $encodedId = array_pop($explode); + + return decodeID($encodedId); +} + +function time_elapsed_string(string $datetime, bool $full = false): string +{ + $now = new \DateTime(datetimegmt()); + $ago = new \DateTime($datetime); + $diff = $now->diff($ago); + $diffWeek = floor($diff->d / 7); + $diff->d -= intval($diffWeek * 7); + $string = [ + 'y' => _s('year'), + 'm' => _s('month'), + 'w' => _s('week'), + 'd' => _s('day'), + 'h' => _s('hour'), + 'i' => _s('minute'), + 's' => _s('second'), + ]; + foreach ($string as $k => &$v) { + $elapsed = $k === 'w' + ? $diffWeek + : $diff->$k; + if ($elapsed > 0) { + $times = [ + 'y' => _n('year', 'years', $elapsed), + 'm' => _n('month', 'months', $elapsed), + 'w' => _n('week', 'weeks', $elapsed), + 'd' => _n('day', 'days', $elapsed), + 'h' => _n('hour', 'hours', $elapsed), + 'i' => _n('minute', 'minutes', $elapsed), + 's' => _n('second', 'seconds', $elapsed), + ]; + + $v = $elapsed . ' ' . $times[$k]; + } else { + unset($string[$k]); + } + } + if (!$full) { + $string = array_slice($string, 0, 1); + } + + return count($string) > 0 + ? _s('%s ago', implode(', ', $string)) + : _s('moments ago'); +} + +function missing_values_to_exception(object $object, string $exception, array $values_array, int $code = 100): void +{ + for ($i = 0; $i < count((array) $values_array); ++$i) { + if (!property_exists($object, $values_array[$i])) { + throw new $exception('Missing $' . $values_array[$i], ($code + $i)); + } + } +} + +function system_notification_email(array $args = []): void +{ + $subject = 'System notification: ' . $args['subject'] . ' [' . get_public_url() . ']'; + $report = $args['message']; + send_mail(getSetting('email_incoming_email'), $subject, $report); +} + +function send_mail($to, $subject, $body): bool +{ + $args = ['to', 'subject', 'body']; + foreach (func_get_args() as $k => $v) { + if (!$v) { + throw new Exception('Missing $' . $args[$k] . '', 600); + } + } + if (is_array($to)) { + $aux = $to; + $to = $aux['to']; + $from = $aux['from']; + $reply_to = $aux['reply-to']; + } else { + $from = [getSettings()['email_from_email'], getSettings()['email_from_name']]; + $reply_to = null; + } + if (!filter_var($to, FILTER_VALIDATE_EMAIL)) { + throw new Exception('Invalid email', 100); + } + foreach (['email_from_email', 'email_from_name'] as $v) { + if (!getSettings()[$v]) { + throw new Exception('Invalid $' . $v . ' setting', 601); + } + } + $writer = new StreamWriter(streamFor('php://temp', 'r+')); + $body = trim($body); + $mail = new Mailer(); + $mail->SMTPDebug = SMTP::DEBUG_SERVER; + $mail->Debugoutput = function ($str, $level) use ($writer) { + $writer->write("$str \n"); + }; + $alt_body = $mail->html2text($body); + $mail->CharSet = 'UTF-8'; + if (getSettings()['email_mode'] === 'smtp') { + $mail->isSMTP(); + $mail->SMTPAuth = true; + $mail->SMTPSecure = getSettings()['email_smtp_server_security']; + $mail->SMTPAutoTLS = in_array(getSettings()['email_smtp_server_security'], ['ssl', 'tls']); + $mail->Port = getSettings()['email_smtp_server_port']; + $mail->Host = getSettings()['email_smtp_server']; + $mail->Username = getSettings()['email_smtp_server_username']; + $mail->Password = getSettings()['email_smtp_server_password']; + } + $mail->Timeout = 30; + $mail->Subject = $subject; + if ($body != $alt_body) { + $mail->IsHTML(true); + $mail->Body = $mail->normalizeBreaks($body); + $mail->AltBody = $mail->normalizeBreaks($alt_body); + } else { + $mail->Body = $body; + } + $mail->addAddress($to); + if ($reply_to && is_array($reply_to)) { + foreach ($reply_to as $v) { + $mail->addReplyTo($v); + } + } + $mail->setFrom($from[0], $from[1]); + if ($mail->Send()) { + return true; + } else { + $mailerWrap = "\n----------- MAILER DEBUG -----------\n\n"; + $error = str_replace('-', '>', $mailerWrap) + . $writer->__toString() + . str_replace('-', '<', $mailerWrap); + writers()->error() + ->write($error); + xr(mailer: $error); + + throw new Exception($mail->ErrorInfo, 606); + } +} + +function get_chevereto_version(bool $full = true): string +{ + return get_app_version($full); +} + +function getSettings(bool $safe = false): array +{ + $settings = Settings::get(); + + return $safe ? safe_html($settings) : $settings; +} +function get_chv_default_settings(bool $safe = false): array +{ + $defaults = Settings::getDefaults(); + + return $safe ? safe_html($defaults) : $defaults; +} + +function getSetting(string $key = '', bool $safe = false): mixed +{ + $return = Settings::get($key); + + return $safe ? safe_html($return) : $return; +} + +function get_chv_default_setting(string $value = '', bool $safe = false): mixed +{ + $return = get_chv_default_settings()[$value]; + + return $safe ? safe_html($return) : $return; +} + +function getStorages(): array|bool +{ + $storages = DB::get('storages', 'all'); + if ($storages) { + foreach ($storages as $k => $v) { + $storages[$k] = DB::formatRow($v); + } + $return = $storages; + } else { + $return = false; + } + + return $return; +} + +function get_banner_code(string $banner, bool $safe_html = true): string +{ + if (strpos($banner, 'banner_') !== 0) { + $banner = 'banner_' . $banner; + } + $banner_code = Settings::get($banner); + if ($safe_html) { + $banner_code = safe_html($banner_code); + } + if ($banner_code) { + return $banner_code; + } + + return ''; +} + +function getSystemNotices(): array +{ + $installed = getSetting('chevereto_version_installed') ?? ''; + $notified = getSetting('update_check_notified_release') ?? ''; + $system_notices = []; + if (getSetting('update_check_display_notification') + && ( + version_compare($notified, $installed, '>') + && version_compare($notified, APP_VERSION, '>') + ) + ) { + $system_notices[] = _s('There is an update available for your system.') + . ' ' + . _s( + 'Go to %s to download and install this update.', + '<a href="' + . get_base_url('dashboard?checkUpdates') + . '"><i class="fas fa-tachometer-alt margin-right-035em"></i>' + . _s('Dashboard') + . '</a>' + ); + } + if (version_compare(APP_VERSION, $installed, '>')) { + $system_notices[] = _s('System database is outdated.') + . ' ' + . _s( + 'You need to %s.', + '<a href="' + . get_base_url('update') + . '"><i class="fas fa-arrow-alt-circle-up margin-right-035em"></i>' + . _s('Update') + . '</a>' + ); + } + + if (getSetting('maintenance')) { + $system_notices[] = _s('Website is in maintenance mode.') + . ' ' + . _s( + 'To revert this setting go to %s.', + '<a href="' + . get_base_url('dashboard/settings/system') + . '"><i class="fas fa-server margin-right-035em"></i>' + . _s('System') + . '</a>' + ); + } + if (preg_match('/@chevereto\.example/', getSetting('email_from_email')) + || preg_match('/@chevereto\.example/', getSetting('email_incoming_email')) + ) { + $system_notices[] = _s( + "You haven't changed the default email settings. Go to %emailSettings% to fix this.", + [ + '%emailSettings%' => '<a href="' + . get_base_url('dashboard/settings/email') + . '"><i class="fas fa-at margin-right-035em"></i>' + . _s('Email settings') . '</a>' + ] + ); + } + + return $system_notices; +} + +function hashed_token_info(string $public_token_format): array +{ + $explode = explode(':', $public_token_format); + + return [ + 'id' => decodeID($explode[0]), + 'id_encoded' => $explode[0], + 'token' => $explode[1], + ]; +} + +function generate_hashed_token(int $id, string $token = ''): array +{ + $token = random_string(rand(128, 256)); + $hash = password_hash($token, PASSWORD_BCRYPT); + + return [ + 'token' => $token, + 'hash' => $hash, + 'public_token_format' => encodeID((int) $id) . ':' . $token, + ]; +} + +function check_hashed_token(string $hash, string $public_token_format): bool +{ + $public_token = hashed_token_info($public_token_format); + + return password_verify($public_token['token'], $hash); +} + +function captcha_check(): object +{ + if (getSetting('captcha_api') == '3') { + return (object) [ + 'is_valid' => sessionVar()->hasKey('isHuman') + ? (bool) session()['isHuman'] + : false + ]; + } + $endpoint = match (getSetting('captcha_api')) { + '2' => 'https://www.recaptcha.net/recaptcha/api/siteverify', + 'hcaptcha' => 'https://hcaptcha.com/siteverify', + }; + $params = [ + 'secret' => getSetting('captcha_secret'), + 'response' => post()['g-recaptcha-response'] + ?? post()['h-captcha-response'] + ?? '', + 'remoteip' => get_client_ip(), + ]; + $fetch = fetch_url( + url: $endpoint, + options: [ + CURLOPT_POST => 1, + CURLOPT_POSTFIELDS => http_build_query($params), + ] + ); + $object = json_decode($fetch); + + return (object) ['is_valid' => (bool) $object->success]; +} + +function must_use_captcha(int $val, ?int $max = null): bool +{ + if ($max === null) { + $max = (int) (getSetting('captcha_threshold') ?? 5); + } + + return $val >= $max; +} + +function is_max_invalid_request(int|string $val, ?int $max = null): bool +{ + $val = (int) $val; + if ($max === null) { + $max = Config::limit()->invalidRequestsPerDay(); + } + + return $val > $max; +} + +function get_translation_table(): array +{ + return L10n::getTranslation(); +} + +function get_language_used(): array +{ + return get_available_languages()[L10n::getStatic('locale')]; +} + +function get_available_languages(): array +{ + return L10n::getAvailableLanguages(); +} + +function get_enabled_languages(): array +{ + if (!getSetting('language_chooser_enable')) { + return []; + } + + return L10n::getEnabledLanguages(); +} + +function get_disabled_languages(): array +{ + return L10n::getDisabledLanguages(); +} + +/* + * cheveretoID + * Encode/decode an id + * + * @author Kevin van Zonneveld <kevin@vanzonneveld.net> + * @author Simon Franz + * @author Deadfish + * @copyright 2008 Kevin van Zonneveld (http://kevin.vanzonneveld.net) + * @license http://www.opensource.org/licenses/bsd-license.php New BSD Licence + * @version SVN: Release: $Id: alphaID.inc.php 344 2009-06-10 17:43:59Z kevin $ + * @link http://kevin.vanzonneveld.net/ + * + * http://kvz.io/blog/2009/06/10/create-short-ids-with-php-like-youtube-or-tinyurl/ + * + * @deprecate V4 + */ + +function cheveretoID(string|int $in, string $action = 'encode'): string|int +{ + global $cheveretoID; + $index = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $salt = getSetting('crypt_salt'); + $id_padding = intval(getSetting('id_padding')); + // Use a stock version of the hashed values (faster execution) + if (isset($cheveretoID)) { + $passhash = $cheveretoID['passhash']; + $p = $cheveretoID['p']; + $i = $cheveretoID['i']; + } else { + for ($n = 0; $n < strlen($index); ++$n) { + $i[] = substr($index, $n, 1); + } + $passhash = hash('sha256', $salt); + $passhash = (strlen($passhash) < strlen($index)) ? hash('sha512', $salt) : $passhash; + for ($n = 0; $n < strlen($index); ++$n) { + $p[] = substr($passhash, $n, 1); + } + $cheveretoID = [ + 'passhash' => $passhash, + 'p' => $p, + 'i' => $i, + ]; + } + array_multisort($p, SORT_DESC, $i); + $index = implode($i); + $base = strlen($index); + if ($action == 'decode') { + $out = 0; + $len = strlen($in) - 1; + for ($t = 0; $t <= $len; ++$t) { + $bcpow = bcpow((string) $base, (string) ($len - $t)); + $out = $out + strpos($index, substr($in, $t, 1)) * $bcpow; + } + if ($id_padding > 0) { + $out = $out / $id_padding; + } + $out = (int) sprintf('%s', $out); + } else { + if ($id_padding > 0) { + $in = $in * $id_padding; + } + $out = ''; + for ($t = floor(log((float) $in, $base)); $t >= 0; --$t) { + $bcp = bcpow((string) $base, (string) $t); + $a = floor($in / $bcp) % $base; + $out = $out . substr($index, $a, 1); + $in = $in - ($a * $bcp); + } + } + + return $out; +} + +function encodeID(int $var): string +{ + return cheveretoID($var, 'encode'); +} + +function decodeID(string $var): int +{ + return cheveretoID($var, 'decode'); +} + +function linkify_redirector(string $text): string +{ + return linkify_safe( + $text, + ['callback' => function (string $url, string $caption, array $options) { + $url = match (true) { + filter_var($url, FILTER_VALIDATE_EMAIL) !== false => "mailto:$url", + default => get_redirect_url($url) + }; + $attributes = $options['attr']; + + return + <<<HTML + <a href="$url"$attributes>$caption</a> + HTML; + }] + ); +} + +function get_redirect_url(string $url): string +{ + if (!is_url_web($url)) { + return '#'; + } + + return get_base_url( + 'redirect/?to=' + . urlencode(encryptString($url)) + . '&auth_token=' + . Handler::getAuthToken() + ); +} + +function sessionCrypt(string $string, bool $encrypt = true): string|bool +{ + if (!(session()['crypt'] ?? false)) { + $cipher = 'AES-128-CBC'; + $ivlen = openssl_cipher_iv_length($cipher); + $iv = openssl_random_pseudo_bytes($ivlen); + sessionVar()->put('crypt', [ + 'cipher' => $cipher, + 'ivlen' => $ivlen, + 'iv' => $iv, + ]); + } + $session = session()['crypt'] ?? []; + extract($session); + /** + * @var string $cipher + * @var int $ivlen + * @var string $iv + */ + $fn = 'openssl_' . ($encrypt ? 'encrypt' : 'decrypt'); + $secret = md5(getSetting('crypt_salt')); + + return $fn($string, $cipher, $secret, 0, $iv); +} + +function encryptString(string $string): string|bool +{ + return sessionCrypt($string, true); +} + +function decryptString(string $string): string|bool +{ + return sessionCrypt($string, false); +} + +function get_content_url(string $sub): string +{ + $dirname = dirname($sub); + $local = URL_APP_PUBLIC_STATIC === URL_APP_PUBLIC + ? Config::host()->hostnamePath() + : URL_APP_PUBLIC_STATIC; + $url = AssetStorage::getStorage()['url'] ?? $local; + if (basename($dirname) == 'default') { + $url = $local; + } + + return absolute_to_url(PATH_PUBLIC_CONTENT . $sub, $url); +} + +function get_system_image_url(?string $filename): string +{ + return get_content_url('images/system/' . ($filename ?? '')); +} + +function get_users_image_url(string $filename): string +{ + return get_content_url('images/users/' . $filename); +} + +function get_image_fileinfo(string $file): array +{ + $extension = get_file_extension($file); + $return = [ + 'filename' => basename($file), // image.jpg + 'name' => basename($file, '.' . $extension), // image + 'mime' => extension_to_mime($extension), + 'extension' => $extension, + 'url' => is_url($file) ? $file : absolute_to_url($file), + ]; + if (!is_url($file)) { + $return['url'] = preg_replace('#' . URL_APP_PUBLIC . '#', URL_APP_PUBLIC_STATIC, $return['url'], 1); + } + + return $return; +} + +function upload_to_content_images(array $source, string $what): void +{ + $remove_old = true; + $localPath = PATH_PUBLIC_CONTENT_IMAGES_SYSTEM; + $storagePath = ltrim(absolute_to_relative($localPath), '/'); + $typeArr = [ + 'favicon_image' => [ + 'name' => 'favicon', + 'type' => 'image', + ], + 'logo_vector' => [ + 'name' => 'logo', + 'type' => 'file', + ], + 'logo_image' => [ + 'name' => 'logo', + 'type' => 'image', + ], + 'watermark_image' => [ + 'name' => 'watermark', + 'type' => 'image', + ], + 'consent_screen_cover_image' => [ + 'name' => 'consent-screen_cover', + 'type' => 'image', + ], + 'homepage_cover_image' => [ + 'name' => 'home_cover', + 'type' => 'image', + ], + ]; + if (!isset($typeArr[$what]) && !starts_with('homepage_cover_image_', $what)) { + throw new OutOfBoundsException(sprintf('Invalid key %s', $what), 600); + } + if (starts_with('homepage_cover_image_', $what)) { + $cover_handle = str_replace('homepage_cover_image_', '', $what); + if ($cover_handle == 'add') { + $remove_old = false; + } else { + $db_filename = getSetting('homepage_cover_images')[$cover_handle]['basename']; + } + $typeArr[$what] = $typeArr['homepage_cover_image']; + } + foreach (['logo_vector', 'logo_image'] as $k) { + $typeArr[$k . '_homepage'] = array_merge($typeArr[$k], ['name' => 'logo_homepage']); + } + foreach ($typeArr as $k => &$v) { + $v['name'] .= '_' + . number_format(round(microtime(true) * 1000), 0, '', '') + . '_' + . random_string(6); + } + $name = $typeArr[$what]['name']; + if ($typeArr[$what]['type'] == 'image') { + $fileinfo = GGet_image_fileinfo($source['tmp_name']); + switch ($what) { + case 'favicon_image': + if (!$fileinfo['ratio']) { + throw new Exception('Invalid favicon image', 200); + } + if ($fileinfo['ratio'] != 1) { + throw new Exception('Must use a square image for favicon', 210); + } + + break; + case 'watermark_image': + if ($fileinfo['extension'] !== 'png') { + throw new Exception('Invalid watermark image', 200); + } + + break; + } + $upload = new Upload(); + $upload->setSource($source); + $upload->setDestination($localPath); + $upload->setFilename($name); + if (in_array($what, ['homepage_cover_image_add', 'homepage_cover_image', 'consent_screen_cover_image'])) { + $upload->setOption('max_size', Settings::get('true_upload_max_filesize')); + } + if ($what === 'watermark_image') { + $upload->setOption('max_size', get_bytes('64 KB')); + } + if ($what !== 'watermark_image') { + $upload->setStorageId(0); + } + $upload->exec(); + $uploaded = $upload->uploaded(); + } else { + switch ($source['error']) { + case UPLOAD_ERR_OK: + break; + case UPLOAD_ERR_NO_FILE: + throw new Exception('No file sent', 600); + case UPLOAD_ERR_INI_SIZE: + case UPLOAD_ERR_FORM_SIZE: + throw new Exception('Exceeded filesize limit', 601); + default: + throw new Exception('Unknown errors', 602); + } + $file_contents = @file_get_contents($source['tmp_name']); + if (!$file_contents) { + throw new Exception("Can't read uploaded file content", 600); + } + if (strpos($file_contents, '<!DOCTYPE svg PUBLIC') === false and strpos($file_contents, '<svg') === false) { + throw new Exception("Uploaded file isn't SVG.", 300); + } + $filename = $name . random_string(8) . '.svg'; + $uploaded = [ + 'file' => $source['tmp_name'], + 'filename' => $filename, + 'fileinfo' => [ + 'extension' => 'svg', + 'filename' => $filename, + 'mime' => 'image/svg+xml', + ], + ]; + } + $filename = $name . '.' . $uploaded['fileinfo']['extension']; + $toStorage = [ + [ + 'file' => $uploaded['file'], + 'filename' => $filename, + 'mime' => $uploaded['fileinfo']['mime'], + ] + ]; + AssetStorage::uploadFiles($toStorage, ['keyprefix' => $storagePath]); + if (!isset($db_filename) || empty($db_filename)) { + $db_filename = getSetting($what); + } + if ($remove_old) { + if ($what === 'watermark_image') { + unlinkIfExists(PATH_PUBLIC_CONTENT_IMAGES_SYSTEM . $db_filename); + } else { + AssetStorage::deleteFiles(['key' => $storagePath . $db_filename]); + } + } + $home_cover_images = []; + if (isset($cover_handle)) { + $what = 'homepage_cover_image'; + $homepage_cover_image = getSetting($what); + if ($cover_handle == 'add') { + $filename = (isset($homepage_cover_image) ? $homepage_cover_image : getSetting('homepage_cover_images')[0]['basename']) . ',' . $filename; + } else { + $filename = isset($homepage_cover_image) ? str_replace($db_filename, $filename, getSetting('homepage_cover_image')) : $filename; + } + $filename = trim($filename, ','); + + foreach (explode(',', $filename) as $v) { + $home_cover_images[] = [ + 'basename' => $v, + 'url' => get_system_image_url($v), + ]; + } + } + Settings::update([$what => $filename]); + if (isset($cover_handle)) { + Settings::setValue('homepage_cover_images', $home_cover_images); + } + if ($what === 'watermark_image') { + $fp = fopen($uploaded['file'], 'rb'); + $assetsDb = DB::get('assets', ['key' => $what]); + $dbArray = [ + 'md5' => md5_file($uploaded['file']), + 'filename' => $filename, + 'file_path' => $storagePath, + 'blob' => $fp, + ]; + if (empty($assetsDb)) { + $dbArray['key'] = $what; + DB::insert('assets', $dbArray); + } else { + DB::update('assets', $dbArray, ['key' => $what]); + } + } + if (!AssetStorage::isLocalLegacy()) { + unlinkIfExists($uploaded['file']); + } +} + +function isSafeToExecute(int $max_execution_time = null, array $options = []): bool +{ + if (is_null($max_execution_time)) { + $max_execution_time = (int) ini_get('max_execution_time'); + } + if ($max_execution_time == 0) { + return true; + } + $executed_time = microtime(true) - TIME_EXECUTION_START; + $options = array_merge(['safe_time' => 5], $options); + if (($max_execution_time - $executed_time) > $options['safe_time']) { + return true; + } + + return false; +} + +function checkUpdates(): void +{ + $CHEVERETO = Settings::getChevereto(); + $update = fetch_url($CHEVERETO['api']['get']['info']); + if ($update) { + $json = json_decode($update); + if ($json === null) { + return; + } + $release_notes = $json->software->release_notes; + $pos = (int) strpos($release_notes, 'Affected files and folders'); + $release_notes = trim(substr($release_notes, 0, $pos)); + $latest_release = $json->software->current_version; + if (is_null(getSetting('update_check_notified_release')) || (version_compare($latest_release, APP_VERSION, '>') && version_compare($latest_release, getSetting('update_check_notified_release'), '>'))) { + $settings_update = [ + 'update_check_notified_release' => $latest_release, + 'update_check_datetimegmt' => datetimegmt(), + 'update_check_latest_release' => $latest_release, + ]; + } else { + $settings_update = ['update_check_datetimegmt' => datetimegmt()]; + } + Settings::update($settings_update); + } +} + +function updateCheveretoNews() +{ + try { + $chevereto_news = G\fetch_url('https://blog.chevereto.com/feed.json'); + $chevereto_news = json_decode($chevereto_news)->items; + Settings::update([ + 'chevereto_news' => serialize($chevereto_news), + 'news_check_datetimegmt' => datetimegmt(), + ]); + } catch (Throwable $e) { + $chevereto_news = []; + } + + return $chevereto_news; +} + +function obfuscate(string $string): string +{ + $len = strlen($string); + $return = ''; + for ($i = 0; $i < $len; ++$i) { + $return .= '&#' . ord($string[$i]) . ';'; + } + + return $return; +} + +function isShowEmbedContent(): bool +{ + switch (getSetting('theme_show_embed_content_for')) { + case 'none': + $showEmbed = false; + + break; + case 'users': + $showEmbed = Login::isLoggedUser(); + + break; + default: + $showEmbed = true; + + break; + } + + return $showEmbed; +} + +/** + * Process the server context and returns the handler file to load. + */ +function loaderHandler( + array $_cookie, + array $_env, + array $_files, + array $_get, + array $_post, + array $_request, + array $_server, + array $_session, +): string { + $isHttps = strtolower($_server['HTTPS'] ?? '') === 'on' + || ($_server['HTTP_X_FORWARDED_PROTO'] ?? '') === 'https' + || preg_match('#https#i', $_server['HTTP_CF_VISITOR'] ?? ''); + $imageLibrary = ''; + if (extension_loaded('gd') && function_exists('gd_info')) { + $imageLibrary = 'gd'; + } + if (extension_loaded('imagick')) { + $imageLibrary = 'imagick'; + } + setlocale(LC_ALL, 'en_US.UTF8'); + define('APP_NAME', 'Chevereto'); + define('PATH_PUBLIC', dirname(__DIR__, 3) . '/'); + define('PATH_APP_CACHE', PATH_PUBLIC . 'app/.cache/'); + define('PATH_APP_LEGACY', PATH_PUBLIC . 'app/legacy/'); + define('PATH_APP_LEGACY_LOAD', PATH_APP_LEGACY . 'load/'); + define('PATH_APP_LEGACY_ROUTES', PATH_APP_LEGACY . 'routes/'); + define('PATH_APP_LEGACY_ROUTES_OVERRIDES', PATH_APP_LEGACY_ROUTES . 'overrides/'); + define('PATH_APP_COMPONENTS_LEGACY', PATH_PUBLIC . 'app/src/Components/Legacy/'); + define('PATH_APP', PATH_PUBLIC . 'app/'); + define('PATH_APP_LEGACY_INSTALL', PATH_APP_LEGACY . 'install/'); + define('PATH_APP_CONTENT', PATH_APP . 'content/'); + define('PATH_APP_LANGUAGES', PATH_APP . 'languages/'); + define('PATH_PUBLIC_CONTENT', PATH_PUBLIC . 'content/'); + define('PATH_PUBLIC_CONTENT_LEGACY_SYSTEM', PATH_PUBLIC_CONTENT . 'legacy/system/'); + define('PATH_PUBLIC_CONTENT_IMAGES_SYSTEM', PATH_PUBLIC_CONTENT . 'images/system/'); + define('PATH_PUBLIC_CONTENT_IMAGES_USERS', PATH_PUBLIC_CONTENT . 'images/users/'); + define('PATH_PUBLIC_CONTENT_PAGES', PATH_PUBLIC_CONTENT . 'pages/'); + define('PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB', PATH_PUBLIC_CONTENT . 'legacy/themes/Peafowl/lib/'); + define('PATH_PUBLIC_CONTENT_LEGACY_THEMES', PATH_PUBLIC_CONTENT . 'legacy/themes/'); + /** @var array $envDefault */ + $envDefault = require PATH_APP . 'env-default.php'; + $envDefault = array_merge($envDefault, [ + 'CHEVERETO_HOSTNAME' => $_server['SERVER_NAME'] ?? gethostname(), + 'CHEVERETO_HTTPS' => (string) (int) $isHttps, + 'CHEVERETO_IMAGE_LIBRARY' => $imageLibrary, + ]); + $env = []; + $envFile = filePhpForPath(PATH_APP . 'env.php'); + if ($envFile->file()->exists()) { + $filePhpReturn = new FilePhpReturn($envFile); + $env = $filePhpReturn->variableTyped(typeArray()); + } + $envVar = array_merge($envDefault, $env, $_env); + if ($envVar['CHEVERETO_CONTEXT'] === 'saas') { + $envVar = array_merge($envVar, [ + 'CHEVERETO_ENABLE_LOCAL_STORAGE' => '0', + 'CHEVERETO_ENABLE_BULK_IMPORTER' => '0', + 'CHEVERETO_ENABLE_PHP_PAGES' => '0', + 'CHEVERETO_ENABLE_UPDATE_HTTP' => '0', + 'CHEVERETO_ENABLE_CHECK_UPDATES' => '0', + ]); + } + $envVar = array_merge($envVar, array ( + 'CHEVERETO_ENABLE_API_GUEST' => '0', + 'CHEVERETO_ENABLE_BANNERS' => '0', + 'CHEVERETO_ENABLE_BULK_IMPORTER' => '0', + 'CHEVERETO_ENABLE_CAPTCHA' => '0', + 'CHEVERETO_ENABLE_CDN' => '0', + 'CHEVERETO_ENABLE_CONSENT_SCREEN' => '0', + 'CHEVERETO_ENABLE_COOKIE_COMPLIANCE' => '0', + 'CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES' => '1', + 'CHEVERETO_ENABLE_EXTERNAL_SERVICES' => '0', + 'CHEVERETO_ENABLE_EXTERNAL_STORAGE' => '0', + 'CHEVERETO_ENABLE_FAVICON' => '0', + 'CHEVERETO_ENABLE_FOLLOWERS' => '0', + 'CHEVERETO_ENABLE_IP_BANS' => '0', + 'CHEVERETO_ENABLE_LANGUAGE_CHOOSER' => '0', + 'CHEVERETO_ENABLE_LIKES' => '0', + 'CHEVERETO_ENABLE_LOCAL_STORAGE' => '1', + 'CHEVERETO_ENABLE_LOGIN_PROVIDERS' => '0', + 'CHEVERETO_ENABLE_LOGO' => '0', + 'CHEVERETO_ENABLE_MODERATION' => '0', + 'CHEVERETO_ENABLE_NOTIFICATIONS' => '0', + 'CHEVERETO_ENABLE_PAGES' => '0', + 'CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE' => '1', + 'CHEVERETO_ENABLE_ROUTING' => '0', + 'CHEVERETO_ENABLE_SERVICE_AKISMET' => '0', + 'CHEVERETO_ENABLE_SERVICE_MODERATECONTENT' => '0', + 'CHEVERETO_ENABLE_SERVICE_PROJECTARACHNID' => '0', + 'CHEVERETO_ENABLE_SERVICE_STOPFORUMSPAM' => '0', + 'CHEVERETO_ENABLE_STOPWORDS' => '0', + 'CHEVERETO_ENABLE_UPLOAD_FLOOD_PROTECTION' => '0', + 'CHEVERETO_ENABLE_UPLOAD_PLUGIN' => '0', + 'CHEVERETO_ENABLE_UPLOAD_WATERMARK' => '0', + 'CHEVERETO_ENABLE_USERS' => '0', + 'CHEVERETO_MAX_USERS' => '1', + )); + new EnvVar($envVar); + new ServerVar(array_merge($envDefault, $env, $_server)); + new CookieVar($_cookie); + new RequestVar($_request); + new PostVar($_post); + new GetVar($_get); + new FilesVar($_files); + if ($_session === []) { + if (!session_start()) { + throw new RuntimeException( + message('Sessions not working (session_start)'), + 600 + ); + } + $_session = $_SESSION; + } + new SessionVar($_session); + register_shutdown_function(function () { + $_SESSION = session(); + $_COOKIE = cookie(); + session_write_close(); + }); + if (!array_key_exists('crypt', session())) { + $cipherAlgo = 'AES-128-CBC'; + $ivLength = openssl_cipher_iv_length($cipherAlgo); + sessionVar()->put('crypt', [ + 'cipher' => $cipherAlgo, + 'ivlen' => $ivLength, + 'iv' => openssl_random_pseudo_bytes($ivLength), + ]); + } + require_once PATH_APP . "configurator.php"; + if (!in_array(Config::system()->errorLog(), ['php://stderr', '/dev/stderr', '', 'syslog', ])) { + new WritersInstance( + writers()->withError( + new StreamWriter( + streamFor(Config::system()->errorLog(), 'a') + ) + ) + ); + } + define('HTTP_APP_PROTOCOL', Config::host()->isHttps() ? 'https' : 'http'); + $httpPort = !in_array(server()['SERVER_PORT'] ?? '80', ['80', '443']) + ? ':' . server()['SERVER_PORT'] + : ''; + define('URL_APP_PUBLIC', HTTP_APP_PROTOCOL . '://' . Config::host()->hostname() . $httpPort . Config::host()->hostnamePath()); + phpCheck(Config::system()); + if (hasEnvDbInfo()) { + DB::fromEnv(); + } + new Settings(); + new L10n( + defaultLanguage: Settings::get('default_language'), + autoLanguage: Settings::get('auto_language'), + ); + + try { + $xrArguments = array_filter([ + 'isEnabled' => isDebug() ?: Settings::get('enable_xr'), + 'host' => Settings::get('xr_host'), + 'port' => Settings::get('xr_port'), + 'key' => Settings::get('xr_key'), + ]); + new XrInstance(new Xr(...$xrArguments)); + } catch (Throwable $e) { + // Silent failover + } + $uploadImageFolder = Settings::get('chevereto_version_installed') !== null + ? Settings::get('upload_image_path') + : 'images'; + define('URL_APP_PUBLIC_STATIC', Settings::get('cdn_url') ?? URL_APP_PUBLIC); + define('PATH_PUBLIC_LEGACY_THEME', PATH_PUBLIC_CONTENT_LEGACY_THEMES . (Settings::get('theme') ?? 'Peafowl') . '/'); + define('URL_APP_THEME', absolute_to_url(PATH_PUBLIC_LEGACY_THEME, URL_APP_PUBLIC_STATIC)); + define('CHV_PATH_IMAGES', PATH_PUBLIC . '' . $uploadImageFolder . '/'); + filesystemPermissionsCheck(); + if (Settings::get('chevereto_version_installed')) { + error_reporting(0); + if (is_valid_timezone(Settings::get('default_timezone'))) { + date_default_timezone_set(Settings::get('default_timezone')); + } + if (ACCESS === 'web') { + $upload_max_filesize_mb_db = Settings::get('upload_max_filesize_mb'); + $upload_max_filesize_mb_bytes = get_bytes($upload_max_filesize_mb_db . 'MB'); + $ini_upload_max_filesize = get_ini_bytes(ini_get('upload_max_filesize')); + $ini_post_max_size = ini_get('post_max_size') == 0 + ? $ini_upload_max_filesize + : get_ini_bytes( + ini_get('post_max_size') + ); + Settings::setValue('true_upload_max_filesize', min($ini_upload_max_filesize, $ini_post_max_size)); + if (Settings::get('true_upload_max_filesize') < $upload_max_filesize_mb_bytes) { + Settings::update([ + 'upload_max_filesize_mb' => bytes_to_mb((int) Settings::get('true_upload_max_filesize')), + ]); + } + } + ImageManagerStatic::configure([ + 'driver' => Config::system()->imageLibrary() + ]); + $configAsset = Config::asset()->export(); + if (Config::asset()->bucket() == '' && Config::asset()->url() == '') { + $configAsset['bucket'] = PATH_PUBLIC; + $configAsset['url'] = URL_APP_PUBLIC_STATIC; + } + new AssetStorage( + StorageApis::getAnon(...$configAsset) + ); + $homepage_cover_image = getSetting('homepage_cover_image'); + $homeCovers = []; + if (isset($homepage_cover_image)) { + foreach (explode(',', $homepage_cover_image) as $vv) { + $homeCovers[] = [ + 'basename' => $vv, + 'url' => get_system_image_url($vv), + ]; + } + } + Settings::setValue('homepage_cover_images', $homeCovers); + shuffle($homeCovers); + Settings::setValue('homepage_cover_images_shuffled', $homeCovers); + define( + 'IMAGE_FORMATS_FAILING', + getFailingImageFormats(Config::system()->imageLibrary()) + ); + if (IMAGE_FORMATS_FAILING !== []) { + $formats = explode(',', Settings::get('upload_enabled_image_formats')); + $formatsDiff = array_diff($formats, IMAGE_FORMATS_FAILING); + if ($formatsDiff !== $formats) { + Settings::update(['upload_enabled_image_formats' => implode(',', $formatsDiff)]); + } + } + } + define('STOP_WORDS', preg_split("/\r\n|\n|\r/", getSetting('stop_words') ?? '')); + $handler = PATH_APP_LEGACY_LOAD; + // @phpstan-ignore-next-line + if (ACCESS !== 'web') { + $handler .= '../commands/'; + } + $handler .= ACCESS . '.php'; + if (!stream_resolve_include_path($handler)) { + throw new LogicException( + message("Missing handler for %access%") + ->withCode('%access%', ACCESS), + 600 + ); + } + + return $handler; +} + +function redirectIfRouting(string $namespace, string $base): void +{ + if (getSetting('root_route') === $namespace + && $base == getSetting('route_' . $namespace)) { + $target = preg_replace('#/' . getSetting('route_' . $namespace) . '/#', '/', get_current_url(), 1); + redirect($target); + } +} + +function feedback(string $message) +{ + echo $message . "\n"; +} + +function feedbackAlert(string $message) +{ + echo "[!] $message\n"; +} + +function feedbackSeparator() +{ + echo '--' . "\n"; +} + +function feedbackStep(string $doing, string $target) +{ + feedback("* $doing $target"); +} + +function isDebug(): bool +{ + try { + return ($_ENV['CHEVERETO_ENVIRONMENT'] ?? '') === 'dev' + || (getSetting('debug_errors') && Login::isAdmin()); + } catch (Throwable) { + return false; + } +} + +function getPreCodeHtml(string $body): string +{ + return '<pre style="overflow:auto;word-break:break-all;white-space:pre-wrap;"><code>' + . $body + . '</code></pre>'; +} + +function isStopWords(string ...$message): bool +{ + if (!(bool) env()['CHEVERETO_ENABLE_STOPWORDS']) { + return false; + } + foreach ($message as $subject) { + if ($subject === '') { + continue; + } + $subject = strtolower($subject); + foreach (STOP_WORDS as $word) { + if ($word === '') { + continue; + } + $pattern = '/' . $word . '/'; + $regex = new Regex($pattern); + if ($regex->match($subject) === []) { + continue; + } + + return true; + } + } + + return false; +} + +function assertNotStopWords(string ...$message): void +{ + if (isStopWords(...$message)) { + throw new LogicException( + message: message('Stop words found'), + code: 400 + ); + } +} diff --git a/app/src/Storage/Storage.php b/app/src/Storage/Storage.php new file mode 100644 index 0000000..8f888eb --- /dev/null +++ b/app/src/Storage/Storage.php @@ -0,0 +1,27 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Storage; + +use League\Flysystem\FilesystemAdapter; +use League\Flysystem\Local\LocalFilesystemAdapter; + +final class Storage implements StorageInterface +{ + public function __construct(private string $location) + { + } + + final public function adapter(): FilesystemAdapter + { + return new LocalFilesystemAdapter($this->location); + } +} diff --git a/app/src/Storage/StorageInterface.php b/app/src/Storage/StorageInterface.php new file mode 100644 index 0000000..cb94e64 --- /dev/null +++ b/app/src/Storage/StorageInterface.php @@ -0,0 +1,21 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Storage; + +use League\Flysystem\FilesystemAdapter; + +interface StorageInterface +{ + public function __construct(string $location); + + public function adapter(): FilesystemAdapter; +} diff --git a/app/src/Traits/Instance/AssertInstanceTrait.php b/app/src/Traits/Instance/AssertInstanceTrait.php new file mode 100644 index 0000000..619248d --- /dev/null +++ b/app/src/Traits/Instance/AssertInstanceTrait.php @@ -0,0 +1,28 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Traits\Instance; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; + +trait AssertInstanceTrait +{ + public function assertInstance(string $property): void + { + if (!isset($this->${$property})) { + throw new LogicException( + message('Instance property %property% not initialized') + ->withCode('%property%', $property) + ); + } + } +} diff --git a/app/src/Traits/Instance/AssertNoInstanceTrait.php b/app/src/Traits/Instance/AssertNoInstanceTrait.php new file mode 100644 index 0000000..b4858b3 --- /dev/null +++ b/app/src/Traits/Instance/AssertNoInstanceTrait.php @@ -0,0 +1,28 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Traits\Instance; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; + +trait AssertNoInstanceTrait +{ + public function assertNoInstance(): void + { + if (get_object_vars($this) !== []) { + throw new LogicException( + message('An instance of %type% has been already created.') + ->withCode('%type%', static::class) + ); + } + } +} diff --git a/app/src/Traits/Instance/AssertStaticInstanceTrait.php b/app/src/Traits/Instance/AssertStaticInstanceTrait.php new file mode 100644 index 0000000..f791f77 --- /dev/null +++ b/app/src/Traits/Instance/AssertStaticInstanceTrait.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Traits\Instance; + +use function Chevere\Message\message; +use Chevere\Throwable\Exceptions\LogicException; + +trait AssertStaticInstanceTrait +{ + public static function assertInstance( + string $property = 'instance', + string $type = self::class + ): void { + if (!isset(static::${$property})) { + throw new LogicException( + message('Instance property %property% %type% not initialized.') + ->withCode('%type%', $type) + ->withCode('%property%', '$' . $property) + ); + } + } +} diff --git a/app/src/Vars/CookieVar.php b/app/src/Vars/CookieVar.php new file mode 100644 index 0000000..453bf40 --- /dev/null +++ b/app/src/Vars/CookieVar.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\MutableMapTrait; + +final class CookieVar +{ + use MutableMapTrait; +} diff --git a/app/src/Vars/EnvVar.php b/app/src/Vars/EnvVar.php new file mode 100644 index 0000000..69f7fa7 --- /dev/null +++ b/app/src/Vars/EnvVar.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\ImmutableMapTrait; + +final class EnvVar +{ + use ImmutableMapTrait; +} diff --git a/app/src/Vars/FilesVar.php b/app/src/Vars/FilesVar.php new file mode 100644 index 0000000..176c119 --- /dev/null +++ b/app/src/Vars/FilesVar.php @@ -0,0 +1,19 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\ImmutableMapTrait; + +final class FilesVar +{ + use ImmutableMapTrait; +} diff --git a/app/src/Vars/GetVar.php b/app/src/Vars/GetVar.php new file mode 100644 index 0000000..b5891cd --- /dev/null +++ b/app/src/Vars/GetVar.php @@ -0,0 +1,19 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\ImmutableMapTrait; + +final class GetVar +{ + use ImmutableMapTrait; +} diff --git a/app/src/Vars/PostVar.php b/app/src/Vars/PostVar.php new file mode 100644 index 0000000..3917b57 --- /dev/null +++ b/app/src/Vars/PostVar.php @@ -0,0 +1,19 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\ImmutableMapTrait; + +final class PostVar +{ + use ImmutableMapTrait; +} diff --git a/app/src/Vars/RequestVar.php b/app/src/Vars/RequestVar.php new file mode 100644 index 0000000..5adec23 --- /dev/null +++ b/app/src/Vars/RequestVar.php @@ -0,0 +1,19 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\ImmutableMapTrait; + +final class RequestVar +{ + use ImmutableMapTrait; +} diff --git a/app/src/Vars/ServerVar.php b/app/src/Vars/ServerVar.php new file mode 100644 index 0000000..e129d26 --- /dev/null +++ b/app/src/Vars/ServerVar.php @@ -0,0 +1,20 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\ImmutableMapTrait; + +final class ServerVar +{ + use ImmutableMapTrait; +} diff --git a/app/src/Vars/SessionVar.php b/app/src/Vars/SessionVar.php new file mode 100644 index 0000000..e738ee7 --- /dev/null +++ b/app/src/Vars/SessionVar.php @@ -0,0 +1,19 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars; + +use Chevereto\Vars\Traits\MutableMapTrait; + +final class SessionVar +{ + use MutableMapTrait; +} diff --git a/app/src/Vars/Traits/ImmutableMapTrait.php b/app/src/Vars/Traits/ImmutableMapTrait.php new file mode 100644 index 0000000..2099c6d --- /dev/null +++ b/app/src/Vars/Traits/ImmutableMapTrait.php @@ -0,0 +1,42 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars\Traits; + +use Chevereto\Traits\Instance\AssertNoInstanceTrait; +use function DeepCopy\deep_copy; +use Ds\Map; + +trait ImmutableMapTrait +{ + use AssertNoInstanceTrait; + + private static array $array = []; + + private static Map $map; + + public function __construct(array $array) + { + $this->assertNoInstance(); + static::$array = $array; + static::$map = new Map($array); + } + + public static function map(): Map + { + return deep_copy(static::$map); + } + + public static function toArray(): array + { + return static::$array; + } +} diff --git a/app/src/Vars/Traits/MutableMapTrait.php b/app/src/Vars/Traits/MutableMapTrait.php new file mode 100644 index 0000000..5be2f6d --- /dev/null +++ b/app/src/Vars/Traits/MutableMapTrait.php @@ -0,0 +1,41 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars\Traits; + +use Chevereto\Traits\Instance\AssertNoInstanceTrait; +use Chevereto\Traits\Instance\AssertStaticInstanceTrait; +use Ds\Map; + +trait MutableMapTrait +{ + use AssertStaticInstanceTrait; + + use AssertNoInstanceTrait; + + private static Map $map; + + public function __construct(array $array) + { + $this->assertNoInstance(); + static::$map = new Map($array); + } + + public static function map(): Map + { + return static::$map; + } + + public static function toArray(): array + { + return static::$map->toArray(); + } +} diff --git a/app/src/Vars/functions.php b/app/src/Vars/functions.php new file mode 100644 index 0000000..9a3ab8b --- /dev/null +++ b/app/src/Vars/functions.php @@ -0,0 +1,97 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Vars; + +use Chevere\Throwable\Exceptions\LogicException; +use Ds\Map; + +function env(): array +{ + try { + return EnvVar::toArray(); + } catch (LogicException $e) { + return []; + } +} + +function request(): array +{ + try { + return RequestVar::toArray(); + } catch (LogicException $e) { + return []; + } +} + +function get(): array +{ + try { + return GetVar::toArray(); + } catch (LogicException $e) { + return []; + } +} + +function post(): array +{ + try { + return PostVar::toArray(); + } catch (LogicException $e) { + return []; + } +} + +function server(): array +{ + try { + return ServerVar::toArray(); + } catch (LogicException $e) { + return []; + } +} + +function files(): array +{ + try { + return FilesVar::toArray(); + } catch (LogicException $e) { + return []; + } +} + +function cookie(): array +{ + try { + return cookieVar()->toArray(); + } catch (LogicException $e) { + return []; + } +} + +function cookieVar(): Map +{ + return CookieVar::map(); +} + +function session(): array +{ + try { + return sessionVar()->toArray(); + } catch (LogicException $e) { + return []; + } +} + +function sessionVar(): Map +{ + return SessionVar::map(); +} diff --git a/app/src/Workflow/BaseWorkflow.php b/app/src/Workflow/BaseWorkflow.php new file mode 100644 index 0000000..556695f --- /dev/null +++ b/app/src/Workflow/BaseWorkflow.php @@ -0,0 +1,16 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflow; + +abstract class BaseWorkflow +{ +} diff --git a/app/src/Workflow/functions.php b/app/src/Workflow/functions.php new file mode 100644 index 0000000..3618fbe --- /dev/null +++ b/app/src/Workflow/functions.php @@ -0,0 +1,45 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflow; + +use Chevere\Workflow\Interfaces\JobInterface; +use function Chevere\Workflow\job; +use Chevereto\Actions\Auth\AuthVerifyRepositoryAccessAction; +use Chevereto\Actions\Auth\AuthVerifyResourceAccessAction; + +function stepVerifyResourceAccess( + string $resource, + string $level, + string $ownerUserId = '', + string $requesterUserId = '${REQUESTER_USER_ID}' +): JobInterface { + return job( + AuthVerifyResourceAccessAction::class, + requesterUserId: $requesterUserId, + resource: $resource, + level: $level, + ownerUserId: $ownerUserId + ); +} + +function stepVerifyRepositoryAccess( + string $repository, + string $level, + string $requesterUserId = '${REQUESTER_USER_ID}' +): JobInterface { + return job( + AuthVerifyRepositoryAccessAction::class, + requesterUserId: $requesterUserId, + repository: $repository, + level: $level, + ); +} diff --git a/app/src/Workflows/Album/AlbumDeleteWorkflow.php b/app/src/Workflows/Album/AlbumDeleteWorkflow.php new file mode 100644 index 0000000..f9af5b9 --- /dev/null +++ b/app/src/Workflows/Album/AlbumDeleteWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Album; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class AlbumDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + get: job( + 'AlbumDeleteAction', + id: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/Album/AlbumGetWorkflow.php b/app/src/Workflows/Album/AlbumGetWorkflow.php new file mode 100644 index 0000000..ddf133d --- /dev/null +++ b/app/src/Workflows/Album/AlbumGetWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Album; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class AlbumGetWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + get: job( + 'AlbumGetAction', + id: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/Album/AlbumPatchWorkflow.php b/app/src/Workflows/Album/AlbumPatchWorkflow.php new file mode 100644 index 0000000..c362ca6 --- /dev/null +++ b/app/src/Workflows/Album/AlbumPatchWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Album; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class AlbumPatchWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + edit: job( + 'AlbumEditAction', + albumId: '${album_id}', + cover_id: '${cover_id}', + ) + ); + } +} diff --git a/app/src/Workflows/Album/AlbumPostWorkflow.php b/app/src/Workflows/Album/AlbumPostWorkflow.php new file mode 100644 index 0000000..1f1e9c2 --- /dev/null +++ b/app/src/Workflows/Album/AlbumPostWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Album; + +use Chevere\Action\Action; +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class AlbumPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + step: job( + Action::class, + parameter: '${variable}', + ) + ); + } +} diff --git a/app/src/Workflows/Album/Like/AlbumLikeDeleteWorkflow.php b/app/src/Workflows/Album/Like/AlbumLikeDeleteWorkflow.php new file mode 100644 index 0000000..84fad74 --- /dev/null +++ b/app/src/Workflows/Album/Like/AlbumLikeDeleteWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Album\Like; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class AlbumLikeDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + delete: job( + 'DeleteAlbumLike', + id: '${id}', + userId: '${user_id}', + ) + ); + } +} diff --git a/app/src/Workflows/Album/Like/AlbumLikePostWorkflow.php b/app/src/Workflows/Album/Like/AlbumLikePostWorkflow.php new file mode 100644 index 0000000..f954436 --- /dev/null +++ b/app/src/Workflows/Album/Like/AlbumLikePostWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Album\Like; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class AlbumLikePostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + insert: job( + 'InsertAlbumLike', + id: '${id}', + userId: '${user_id}' + ) + ); + } +} diff --git a/app/src/Workflows/Ban/Ip/BanIpDeleteWorkflow.php b/app/src/Workflows/Ban/Ip/BanIpDeleteWorkflow.php new file mode 100644 index 0000000..a5d1428 --- /dev/null +++ b/app/src/Workflows/Ban/Ip/BanIpDeleteWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Ban\Ip; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class BanIpDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + step: job( + 'ActionName', + parameter: '${variable}', + ) + ); + } +} diff --git a/app/src/Workflows/Ban/Ip/BanIpPatchWorkflow.php b/app/src/Workflows/Ban/Ip/BanIpPatchWorkflow.php new file mode 100644 index 0000000..857dc9d --- /dev/null +++ b/app/src/Workflows/Ban/Ip/BanIpPatchWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Ban\Ip; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class BanIpPatchWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + step: job( + 'ActionName', + parameter: '${variable}', + ) + ); + } +} diff --git a/app/src/Workflows/Ban/Ip/BanIpPostWorkflow.php b/app/src/Workflows/Ban/Ip/BanIpPostWorkflow.php new file mode 100644 index 0000000..5b36b34 --- /dev/null +++ b/app/src/Workflows/Ban/Ip/BanIpPostWorkflow.php @@ -0,0 +1,43 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Ban\Ip; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class BanIpPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + checkManager: job( + 'CheckManagerAction', + ), + validateIp: job( + 'ValidateIpAction', + ip: '${ip}', + ), + validateIpNotBanned: job( + 'ValidateIpNotBannedAction', + ip: '${ip}', + ), + insert: job( + 'InsertBanIpAction', + ip: '${ip}', + expires: '${expires}', + message: '${message}', + ), + ); + } +} diff --git a/app/src/Workflows/Category/CategoryPostWorkflow.php b/app/src/Workflows/Category/CategoryPostWorkflow.php new file mode 100644 index 0000000..f9d2564 --- /dev/null +++ b/app/src/Workflows/Category/CategoryPostWorkflow.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Category; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class CategoryPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + checkAdmin: job( + 'CheckAdminAction', + ), + checkAvailableUrlKey: job( + 'CheckAvailableUrlKey', + urlKey: '${url_key}', + ), + insert: job( + 'InsertCategoryAction', + name: '${name}', + urlKey: '${url_key}', + description: '${description}', + ) + ); + } +} diff --git a/app/src/Workflows/Image/Bulk/ImageBulkPatchWorkflow.php b/app/src/Workflows/Image/Bulk/ImageBulkPatchWorkflow.php new file mode 100644 index 0000000..36aaf6f --- /dev/null +++ b/app/src/Workflows/Image/Bulk/ImageBulkPatchWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Image\Bulk; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ImageBulkPatchWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + edit: job( + 'ImageBulkPatch', + image_ids: '${image_ids}', + payload: '${payload}', + ) + ); + } +} diff --git a/app/src/Workflows/Image/ImageGetWorkflow.php b/app/src/Workflows/Image/ImageGetWorkflow.php new file mode 100644 index 0000000..d15bb22 --- /dev/null +++ b/app/src/Workflows/Image/ImageGetWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Image; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ImageGetWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + get: job( + 'ImageGetAction', + id: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/Image/ImagePatchWorkflow.php b/app/src/Workflows/Image/ImagePatchWorkflow.php new file mode 100644 index 0000000..582aa06 --- /dev/null +++ b/app/src/Workflows/Image/ImagePatchWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Image; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ImagePatchWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + edit: job( + 'ImageEditAction', + id: '${id}', + payload: '${payload}' + ) + ); + } +} diff --git a/app/src/Workflows/Image/ImagePostWorkflow.php b/app/src/Workflows/Image/ImagePostWorkflow.php new file mode 100644 index 0000000..698b0ce --- /dev/null +++ b/app/src/Workflows/Image/ImagePostWorkflow.php @@ -0,0 +1,107 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Image; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Actions\Database\DatabaseReserveRowAction; +use Chevereto\Actions\File\FileFetchSourceAction; +use Chevereto\Actions\File\FileNamingAction; +use Chevereto\Actions\File\FileUploadAction; +use Chevereto\Actions\File\FileValidateAction; +use Chevereto\Actions\File\FileVerifyNotDuplicateAction; +use Chevereto\Actions\Image\ImageFetchMetaAction; +use Chevereto\Actions\Image\ImageFixOrientationAction; +use Chevereto\Actions\Image\ImageInsertAction; +use Chevereto\Actions\Image\ImageStripMetaAction; +use Chevereto\Actions\Image\ImageVerifyMediaAction; +use Chevereto\Actions\Storage\StorageGetForUserAction; +use Chevereto\Workflow\BaseWorkflow; + +final class ImagePostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + fetchSource: job( + FileFetchSourceAction::class, + source: '${source}', + ), + validateFile: job( + FileValidateAction::class, + mimes: '${mimes}', + filepath: '${fetchSource:filepath}', + maxBytes: '${max_bytes}', + minBytes: '${min_bytes}', + ), + validateMedia: job( + ImageVerifyMediaAction::class, + filepath: '${fetchSource:filepath}', + maxHeight: '${max_height}', + maxWidth: '${max_width}', + minHeight: '${min_height}', + minWidth: '${min_width}', + ), + assertNotDuplicate: job( + FileVerifyNotDuplicateAction::class, + md5: '${validateFile:md5}', + perceptual: '${validateMedia:perceptual}', + ip: '${ip}', + ipVersion: '${ip_version}', + ), + fixOrientation: job( + ImageFixOrientationAction::class, + image: '${validateMedia:image}' + ), + fetchMeta: job( + ImageFetchMetaAction::class, + image: '${validateMedia:image}' + ), + stripMeta: job( + ImageStripMetaAction::class, + image: '${validateMedia:image}' + ), + storageForUser: job( + StorageGetForUserAction::class, + userId: '${user_id}', + bytesRequired: '${validateFile:bytes}', + ), + reserveId: job( + DatabaseReserveRowAction::class, + table: '${table}', + ), + targetFilename: job( + FileNamingAction::class, + id: '${reserveId:id}', + name: '${name}', + naming: '${naming}', + storage: '${storageForUser:storage}', + path: '${path}' + ), + upload: job( + FileUploadAction::class, + filepath: '${upload_filepath}', + targetFilename: '${targetFilename:name}', + storage: '${storageForUser:storage}', + path: '${path}', + ), + insert: job( + ImageInsertAction::class, + id: '${reserveId:id}', + albumId: '${album_id}', + expires: '${expires}', + userId: '${user_id}', + ), + ); + } +} diff --git a/app/src/Workflows/Image/Like/ImageLikeDeleteWorkflow.php b/app/src/Workflows/Image/Like/ImageLikeDeleteWorkflow.php new file mode 100644 index 0000000..1263970 --- /dev/null +++ b/app/src/Workflows/Image/Like/ImageLikeDeleteWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Image\Like; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ImageLikeDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + delete: job( + 'DeleteImageLike', + id: '${id}', + userId: '${user_id}', + ) + ); + } +} diff --git a/app/src/Workflows/Image/Like/ImageLikePostWorkflow.php b/app/src/Workflows/Image/Like/ImageLikePostWorkflow.php new file mode 100644 index 0000000..3fd359f --- /dev/null +++ b/app/src/Workflows/Image/Like/ImageLikePostWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Image\Like; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ImageLikePostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + insert: job( + 'InsertImageLike', + id: '${id}', + userId: '${user_id}' + ) + ); + } +} diff --git a/app/src/Workflows/Legacy/LegacyRouteWorkflow.php b/app/src/Workflows/Legacy/LegacyRouteWorkflow.php new file mode 100644 index 0000000..db91f2d --- /dev/null +++ b/app/src/Workflows/Legacy/LegacyRouteWorkflow.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Legacy; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class LegacyRouteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + handler: job( + 'LegacyHandlerAction', + request: '${REQUEST}', + routeBasename: '${LEGACY_ROUTE_DISPATCH}' + ), + ); + } +} diff --git a/app/src/Workflows/Legacy/LegacyUploadPostWorkflow.php b/app/src/Workflows/Legacy/LegacyUploadPostWorkflow.php new file mode 100644 index 0000000..5c0cf4f --- /dev/null +++ b/app/src/Workflows/Legacy/LegacyUploadPostWorkflow.php @@ -0,0 +1,115 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Legacy; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Actions\Database\DatabaseReserveRowAction; +use Chevereto\Actions\File\FileFetchSourceAction; +use Chevereto\Actions\File\FileNamingAction; +use Chevereto\Actions\File\FileUploadAction; +use Chevereto\Actions\File\FileValidateAction; +use Chevereto\Actions\File\FileVerifyNotDuplicateAction; +use Chevereto\Actions\Image\ImageFetchMetaAction; +use Chevereto\Actions\Image\ImageFixOrientationAction; +use Chevereto\Actions\Image\ImageStripMetaAction; +use Chevereto\Actions\Image\ImageVerifyMediaAction; +use Chevereto\Actions\Legacy\Api\V1\ImageInsertAction; +use Chevereto\Actions\Legacy\Api\V1\LegacyApiV1OutputAction; +use Chevereto\Actions\Legacy\Api\V1\LegacyApiV1VerifyKeyAction; +use Chevereto\Actions\Storage\StorageGetForUserAction; +use Chevereto\Workflow\BaseWorkflow; + +final class LegacyUploadPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + validateApiV1Key: job( + LegacyApiV1VerifyKeyAction::class, + key: '${key}', + apiV1Key: '${api_v1_key}', + ), + fetchSource: job( + FileFetchSourceAction::class, + source: '${source}', + ), + validateFile: job( + FileValidateAction::class, + mimes: '${api_v1_upload_mimes}', + filepath: '${fetchSource:filepath}', + maxBytes: '${api_v1_upload_max_bytes}', + minBytes: '${api_v1_upload_min_bytes}', + ), + validateMedia: job( + ImageVerifyMediaAction::class, + filepath: '${fetchSource:filepath}', + maxHeight: '${api_v1_upload_max_height}', + maxWidth: '${api_v1_upload_max_width}', + minHeight: '${api_v1_upload_min_height}', + minWidth: '${api_v1_upload_min_width}', + ), + assertNotDuplicate: job( + FileVerifyNotDuplicateAction::class, + md5: '${validateFile:md5}', + perceptual: '${validateMedia:perceptual}', + ip: '${requester_ip}', + ipVersion: '${requester_ip_version}', + ), + fixOrientation: job( + ImageFixOrientationAction::class, + image: '${validateMedia:image}' + ), + fetchMeta: job( + ImageFetchMetaAction::class, + image: '${validateMedia:image}' + ), + stripMeta: job( + ImageStripMetaAction::class, + image: '${validateMedia:image}' + ), + storageForUser: job( + StorageGetForUserAction::class, + userId: '${user_id}', + bytesRequired: '${validateFile:bytes}', + ), + reserveId: job( + DatabaseReserveRowAction::class, + table: '${table_image}', + ), + targetFilename: job( + FileNamingAction::class, + id: '${reserveId:id}', + name: '${name}', + naming: '${naming}', + storage: '${storageForUser:storage}', + path: '${api_v1_upload_path}' + ), + upload: job( + FileUploadAction::class, + filepath: '${fetchSource:filepath}', + targetFilename: '${targetFilename:filename}', + storage: '${storageForUser:storage}', + path: '${api_v1_upload_path}', + ), + insert: job( + ImageInsertAction::class, + id: '${reserveId:id}', + ), + output: job( + LegacyApiV1OutputAction::class, + format: '${format}', + ) + ); + } +} diff --git a/app/src/Workflows/Stat/Rebuild/StatRebuildPostWorkflow.php b/app/src/Workflows/Stat/Rebuild/StatRebuildPostWorkflow.php new file mode 100644 index 0000000..3d113d9 --- /dev/null +++ b/app/src/Workflows/Stat/Rebuild/StatRebuildPostWorkflow.php @@ -0,0 +1,29 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Stat\Rebuild; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class StatRebuildPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + action: job( + 'StatRebuildAction', + ) + ); + } +} diff --git a/app/src/Workflows/Storage/Migrate/StorageMigratePostWorkflow.php b/app/src/Workflows/Storage/Migrate/StorageMigratePostWorkflow.php new file mode 100644 index 0000000..19c8460 --- /dev/null +++ b/app/src/Workflows/Storage/Migrate/StorageMigratePostWorkflow.php @@ -0,0 +1,32 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Storage\Migrate; + +use Chevere\Action\Action; +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class StorageMigratePostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + migrate: job( + Action::class, + storageIdFrom: '${id}', + storageIdTo: '${target_storage_id}', + ) + ); + } +} diff --git a/app/src/Workflows/Storage/Stat/Regen/StorageStatsRegenPostWorkflow.php b/app/src/Workflows/Storage/Stat/Regen/StorageStatsRegenPostWorkflow.php new file mode 100644 index 0000000..65c4e4a --- /dev/null +++ b/app/src/Workflows/Storage/Stat/Regen/StorageStatsRegenPostWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Storage\Stat\Regen; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class StorageStatsRegenPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + regen: job( + 'StorageRegenStatsAction', + storage_id: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/Storage/StoragePostWorkflow.php b/app/src/Workflows/Storage/StoragePostWorkflow.php new file mode 100644 index 0000000..fd5814c --- /dev/null +++ b/app/src/Workflows/Storage/StoragePostWorkflow.php @@ -0,0 +1,46 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Storage; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class StoragePostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + checkAdmin: job( + 'CheckAdminAction', + parameter: '${variable}', + ), + insert: job( + 'StorageInsertAction', + accountId: '${account_id}', + accountName: '${account_name}', + apiId: '${api_id}', + bucket: '${bucket}', + capacity: '${capacity}', + id: '${id}', + key: '${key}', + name: '${name}', + region: '${region}', + secret: '${secret}', + server: '${server}', + service: '${service}', + url: '${url}', + ), + ); + } +} diff --git a/app/src/Workflows/Tool/Id/Decode/ToolDecodeIdGetWorkflow.php b/app/src/Workflows/Tool/Id/Decode/ToolDecodeIdGetWorkflow.php new file mode 100644 index 0000000..1335e35 --- /dev/null +++ b/app/src/Workflows/Tool/Id/Decode/ToolDecodeIdGetWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Tool\Id\Decode; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ToolDecodeIdGetWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + output: job( + 'ToolEncodeIdAction', + id: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/Tool/Id/Encode/ToolEncodeIdGetWorkflow.php b/app/src/Workflows/Tool/Id/Encode/ToolEncodeIdGetWorkflow.php new file mode 100644 index 0000000..426b059 --- /dev/null +++ b/app/src/Workflows/Tool/Id/Encode/ToolEncodeIdGetWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Tool\Id\Encode; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ToolEncodeIdGetWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + output: job( + 'ToolEncodeIdAction', + id: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/Tool/Probe/Email/ToolProbeEmailPostWorkflow.php b/app/src/Workflows/Tool/Probe/Email/ToolProbeEmailPostWorkflow.php new file mode 100644 index 0000000..ebf430f --- /dev/null +++ b/app/src/Workflows/Tool/Probe/Email/ToolProbeEmailPostWorkflow.php @@ -0,0 +1,30 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\Tool\Probe\Email; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; + +final class ToolProbeEmailPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + probe: job( + 'ToolProbeEmailAction', + email: '${email}', + ) + ); + } +} diff --git a/app/src/Workflows/User/Asset/Avatar/UserAssetAvatarDeleteWorkflow.php b/app/src/Workflows/User/Asset/Avatar/UserAssetAvatarDeleteWorkflow.php new file mode 100644 index 0000000..3d0ce1a --- /dev/null +++ b/app/src/Workflows/User/Asset/Avatar/UserAssetAvatarDeleteWorkflow.php @@ -0,0 +1,40 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Asset\Avatar; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserAssetAvatarDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_avatar', + level: 'write', + ownerUserId: '${user:id}' + ), + delete: job( + 'DeleteUserAssetAvatarAction', + id: '${user:id}', + ), + ); + } +} diff --git a/app/src/Workflows/User/Asset/Avatar/UserAssetAvatarPostWorkflow.php b/app/src/Workflows/User/Asset/Avatar/UserAssetAvatarPostWorkflow.php new file mode 100644 index 0000000..5c87efd --- /dev/null +++ b/app/src/Workflows/User/Asset/Avatar/UserAssetAvatarPostWorkflow.php @@ -0,0 +1,82 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Asset\Avatar; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Actions\File\FileFetchSourceAction; +use Chevereto\Actions\File\FileUploadAction; +use Chevereto\Actions\File\FileValidateAction; +use Chevereto\Actions\Image\ImageFixOrientationAction; +use Chevereto\Actions\Image\ImageStripMetaAction; +use Chevereto\Actions\Image\ImageVerifyMediaAction; +use Chevereto\Actions\Storage\StorageGetForAssetAction; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserAssetAvatarPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_avatar', + level: 'write', + ownerUserId: '${user:id}' + ), + fetchSource: job( + FileFetchSourceAction::class, + source: '${source}', + ), + validateFile: job( + FileValidateAction::class, + mimes: '${user_avatar_mimes}', + filepath: '${fetch_source:filepath}', + maxBytes: '${user_avatar_max_bytes}', + minBytes: '${user_avatar_min_bytes}', + ), + validateMedia: job( + ImageVerifyMediaAction::class, + filepath: '${fetch_source:filepath}', + maxHeight: '${user_avatar_max_height}', + maxWidth: '${user_avatar_max_width}', + minHeight: '${user_avatar_min_height}', + minWidth: '${user_avatar_min_width}', + ), + fixOrientation: job( + ImageFixOrientationAction::class, + image: '${validateMedia:image}' + ), + stripMeta: job( + ImageStripMetaAction::class, + image: '${validateMedia:image}' + ), + storageForAsset: job( + StorageGetForAssetAction::class, + userId: '${user_id}', + bytesRequired: '${validate_file:bytes}', + ), + upload: job( + FileUploadAction::class, + filepath: '${upload_filepath}', + targetFilename: '${asset:filename}', + storage: '${storage_for_asset:storage}', + path: '${asset:path}', + ) + ); + } +} diff --git a/app/src/Workflows/User/Asset/Background/UserAssetBackgroundDeleteWorkflow.php b/app/src/Workflows/User/Asset/Background/UserAssetBackgroundDeleteWorkflow.php new file mode 100644 index 0000000..f633a6c --- /dev/null +++ b/app/src/Workflows/User/Asset/Background/UserAssetBackgroundDeleteWorkflow.php @@ -0,0 +1,40 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Asset\Background; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserAssetBackgroundDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_background', + level: 'write', + ownerUserId: '${user:id}' + ), + delete: job( + 'DeleteUserAssetBackgroundAction', + id: '${user:id}', + ), + ); + } +} diff --git a/app/src/Workflows/User/Asset/Background/UserAssetBackgroundPostWorkflow.php b/app/src/Workflows/User/Asset/Background/UserAssetBackgroundPostWorkflow.php new file mode 100644 index 0000000..4ba61af --- /dev/null +++ b/app/src/Workflows/User/Asset/Background/UserAssetBackgroundPostWorkflow.php @@ -0,0 +1,81 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Asset\Background; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Actions\File\FileUploadAction; +use Chevereto\Actions\File\FileValidateAction; +use Chevereto\Actions\Image\ImageFixOrientationAction; +use Chevereto\Actions\Image\ImageStripMetaAction; +use Chevereto\Actions\Image\ImageVerifyMediaAction; +use Chevereto\Actions\Storage\StorageGetForAssetAction; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserAssetBackgroundPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_background', + level: 'write', + ownerUserId: '${user:id}' + ), + fetchSource: job( + FileFetchBinaryAction::class, + source: '${source}', + ), + validateFile: job( + FileValidateAction::class, + filepath: '${fetchSource:uploadFilepath}', + maxBytes: '${user_background_max_bytes}', + mimes: '${user_background_mimes}', + minBytes: '${user_background_min_bytes}', + ), + validateMedia: job( + ImageVerifyMediaAction::class, + filepath: '${fetchSource:uploadFilepath}', + maxHeight: '${user_background_max_height}', + maxWidth: '${user_background_max_width}', + minHeight: '${user_background_min_height}', + minWidth: '${user_background_min_width}', + ), + fixOrientation: job( + ImageFixOrientationAction::class, + image: '${validateMedia:image}' + ), + stripMeta: job( + ImageStripMetaAction::class, + image: '${validateMedia:image}' + ), + storageForAsset: job( + StorageGetForAssetAction::class, + bytesRequired: '${validateFile:bytes}', + userId: '${user_id}', + ), + upload: job( + FileUploadAction::class, + filepath: '${upload_filepath}', + path: '${asset:path}', + storage: '${storageForAsset:storage}', + targetFilename: '${asset:filename}', + ) + ); + } +} diff --git a/app/src/Workflows/User/Export/UserExportGetWorkflow.php b/app/src/Workflows/User/Export/UserExportGetWorkflow.php new file mode 100644 index 0000000..4156e4f --- /dev/null +++ b/app/src/Workflows/User/Export/UserExportGetWorkflow.php @@ -0,0 +1,40 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Export; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserExportGetWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_export', + level: 'read', + ownerUserId: '${user:id}' + ), + export: job( + 'UserExportAction', + userId: '${id}', + ) + ); + } +} diff --git a/app/src/Workflows/User/Follow/UserFollowDeleteWorkflow.php b/app/src/Workflows/User/Follow/UserFollowDeleteWorkflow.php new file mode 100644 index 0000000..c30e359 --- /dev/null +++ b/app/src/Workflows/User/Follow/UserFollowDeleteWorkflow.php @@ -0,0 +1,41 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Follow; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserFollowDeleteWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_follow', + level: 'write', + ownerUserId: '${user:id}' + ), + step: job( + 'UserFollowDeleteAction', + userId: '${user_id}', + userIdToFollow: '${user_id_to_follow}', + ) + ); + } +} diff --git a/app/src/Workflows/User/Follow/UserFollowPostWorkflow.php b/app/src/Workflows/User/Follow/UserFollowPostWorkflow.php new file mode 100644 index 0000000..b278f1c --- /dev/null +++ b/app/src/Workflows/User/Follow/UserFollowPostWorkflow.php @@ -0,0 +1,41 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User\Follow; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyResourceAccess; + +final class UserFollowPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + user: job( + 'UserGetByUsernameAction', + username: '${username}', + ), + checkout: stepVerifyResourceAccess( + resource: 'user_follow', + level: 'write', + ownerUserId: '${user:id}' + ), + step: job( + 'UserFollowInsertAction', + userId: '${user_id}', + userIdToFollow: '${user_id_to_follow}', + ) + ); + } +} diff --git a/app/src/Workflows/User/UserPostWorkflow.php b/app/src/Workflows/User/UserPostWorkflow.php new file mode 100644 index 0000000..7d2f651 --- /dev/null +++ b/app/src/Workflows/User/UserPostWorkflow.php @@ -0,0 +1,62 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Chevereto\Workflows\User; + +use Chevere\Workflow\Interfaces\WorkflowInterface; +use function Chevere\Workflow\job; +use function Chevere\Workflow\workflow; +use Chevereto\Workflow\BaseWorkflow; +use function Chevereto\Workflow\stepVerifyRepositoryAccess; + +final class UserPostWorkflow extends BaseWorkflow +{ + public function getWorkflow(): WorkflowInterface + { + return workflow( + checkout: stepVerifyRepositoryAccess( + repository: 'users', + level: 'write', + ), + validateUsername: job( + 'ValidateUsernameAction', + username: '${username}', + ), + validateEmail: job( + 'ValidateEmailAction', + email: '${email}', + ), + validatePassword: job( + 'ValidatePasswordAction', + password: '${password}', + ), + validateRole: job( + 'ValidateRoleAction', + role: '${role}', + ), + validateAvailableUsername: job( + 'ValidateAvailableUsernameAction', + username: '${username}', + ), + validateAvailableEmail: job( + 'ValidateAvailableEmailAction', + email: '${email}' + ), + insert: job( + 'InsertUserAction', + username: '${username}', + email: '${email}', + password: '${password}', + role: '${role}', + ) + ); + } +} diff --git a/chevereto.svg b/chevereto.svg new file mode 100644 index 0000000..2d29a01 --- /dev/null +++ b/chevereto.svg @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="501.76px" height="76.521px" viewBox="0 0 501.76 76.521" enable-background="new 0 0 501.76 76.521" xml:space="preserve"> +<path fill="#23A8E0" d="M500.264,40.068c-0.737,0-1.422,0.358-1.813,0.963c-1.185,1.791-2.361,3.53-3.713,5.117 + c-1.295,1.514-5.34,4.031-8.699,4.662l-1.33,0.25l0.16-1.352l0.149-1.279c0.109-0.909,0.22-1.779,0.289-2.649 + c0.552-6.7-0.028-11.69-1.889-16.2c-1.682-4.08-3.941-6.57-7.111-7.85c-1.18-0.48-2.278-0.722-3.26-0.722 + c-2.17,0-3.93,1.171-5.389,3.58c-0.15,0.25-0.291,0.5-0.461,0.78l-0.67,1.18l-0.91-0.75c-0.42-0.34-0.82-0.67-1.23-1.01 + c-0.949-0.79-1.858-1.54-2.799-2.26c-0.76-0.57-1.641-1.07-2.561-1.59c-2-1.13-4.091-1.71-6.23-1.71 + c-3.869,0-7.811,1.898-10.811,5.22c-4.908,5.42-7.859,12.11-8.771,19.86c-0.108,0.988-0.389,2.278-1.479,3.479 + c-3.629,3.98-7.97,8.45-13.689,11.29c-1.229,0.61-2.729,1.01-4.34,1.18c-0.18,0.021-0.359,0.03-0.521,0.03 + c-0.85,0-1.5-0.26-1.95-0.76c-0.479-0.54-0.658-1.3-0.55-2.32c0.261-2.26,0.591-4.67,1.261-6.99c1.08-3.75,2.27-7.528,3.43-11.188 + c0.6-1.91,1.201-3.83,1.791-5.74c0.33-1.09,1.01-1.6,2.199-1.648c1.471-0.062,2.891-0.132,4.229-0.45 + c1.959-0.45,3.369-1.37,4.08-2.65c0.719-1.31,0.75-3.03,0.09-4.99c-0.061-0.17-0.121-0.33-0.188-0.488l-7.183,0.688l0.281-1.33 + c0.129-0.648,0.271-1.27,0.4-1.88c0.299-1.359,0.58-2.66,0.799-3.938c0.381-2.222,0.59-4.812-0.65-7.19 + c-1.379-2.64-4.219-4.28-7.42-4.28c-0.709,0-1.43,0.08-2.139,0.25c-5.301,1.24-9.301,4.58-12.23,7.472l1.761,9.698l-1,0.16 + c-0.5,0.09-0.961,0.16-1.392,0.221c-0.858,0.131-1.6,0.239-2.309,0.421c-1.853,0.46-3.041,1.229-3.551,2.29 + c-0.511,1.05-0.359,2.47,0.43,4.22c0.141,0.33,0.311,0.64,0.471,0.938l6.39-1.148l-0.261,1.42c-0.147,0.82-0.278,1.63-0.409,2.42 + c-0.5,3.15-0.979,6.13-2.72,8.97c-5.551,9.07-11.52,15.36-18.76,19.79c-2.17,1.33-5.111,2.91-8.521,3.33 + c-0.729,0.09-1.449,0.141-2.14,0.141c-3.551,0-6.561-1.141-8.701-3.29c-2.118-2.131-3.219-5.131-3.198-8.689l0.01-1.33l1.279,0.38 + c0.399,0.13,0.801,0.25,1.2,0.38c0.75,0.23,1.48,0.46,2.23,0.67c1.58,0.432,3.219,0.65,4.85,0.65 + c10.22-0.01,18.459-8.11,18.761-18.46c0.18-6.32-2.4-10.771-7.66-13.25c-2.142-1-4.41-1.49-6.972-1.49 + c-1.299,0-2.688,0.141-4.129,0.4c-7.34,1.35-13.381,5.54-18.479,12.83c-1.972,2.81-3.57,6.02-5.181,10.42 + c-0.579,1.58-1.479,3.22-2.75,5.01c-2.09,2.96-4.721,6.32-8.291,8.82c-1.358,0.96-2.858,1.648-4.329,2.01 + c-0.341,0.08-0.689,0.12-1.021,0.12c-1.039,0-1.959-0.4-2.609-1.12c-0.649-0.73-0.938-1.73-0.811-2.811 + c0.311-2.671,0.859-4.899,1.67-6.841c0.9-2.148,1.939-4.27,2.951-6.318c0.817-1.66,1.67-3.37,2.42-5.08 + c1.42-3.2,1.959-6.221,1.648-9.21c-0.511-4.88-3.729-7.79-8.601-7.79c-0.229,0-0.459,0.01-0.688,0.02 + c-4.132,0.23-7.65,2.102-10.892,3.99c-1.229,0.72-2.438,1.51-3.729,2.36c-0.621,0.409-1.263,0.829-1.941,1.27l-3.049,1.96 + l1.608-3.25l0.302-0.62c0.157-0.33,0.288-0.59,0.43-0.84c1.979-3.67,3.93-7.67,4.76-11.97c0.279-1.431,0.351-2.91,0.209-4.26 + c-0.209-2.16-1.397-3.342-3.34-3.342c-0.43,0-0.899,0.062-1.389,0.182c-2.142,0.52-4.19,1.67-6.263,3.51 + c-5.897,5.271-8.868,11.09-9.067,17.81c-0.103,3.61,0.949,6.16,3.629,8.812l0.552,0.55l-0.392,0.67c-0.41,0.7-0.82,1.41-1.222,2.12 + c-0.907,1.59-1.84,3.229-2.868,4.8c-4.812,7.33-10.32,12.82-16.841,16.771c-2.35,1.43-5.211,2.93-8.528,3.318 + c-0.711,0.08-1.42,0.12-2.103,0.12c-7.028,0-11.608-4.38-11.958-11.438c-0.01-0.221,0.02-0.392,0.05-0.53l0.03-0.16l0.189-1.12 + l1.09,0.33c0.41,0.13,0.82,0.261,1.221,0.391c0.851,0.271,1.65,0.529,2.459,0.729c1.51,0.38,3.041,0.57,4.57,0.57 + c5.5,0,10.75-2.471,14.391-6.78c3.57-4.229,5.101-9.76,4.181-15.17c-1-5.92-5.9-10.45-11.921-11.01 + c-0.891-0.08-1.77-0.13-2.641-0.13c-7.959,0-14.789,3.6-20.889,11c-2.381,2.88-4.051,6.21-5.831,9.948c-1.62,3.4-4.72,5.48-6.9,6.75 + c-2.02,1.16-3.8,1.7-5.61,1.7c-0.19,0-0.38,0-0.57-0.01l-1.25-0.08l0.35-1.2c0.25-0.819,0.5-1.64,0.74-2.438 + c0.55-1.79,1.07-3.472,1.5-5.2c1.29-5.29,1.44-9.601,0.47-13.57c-1.08-4.359-3.94-6.77-8.07-6.77c-0.44,0-0.9,0.029-1.37,0.09 + c-2.13,0.24-3.89,1.46-5.36,3.71c-2.4,3.689-3.45,8.14-3.28,14.021c0.16,5.511,1.48,10.011,4.03,13.729 + c0.36,0.53,0.52,1.479,0.16,2.12c-1.64,2.79-3.59,5.6-6.77,7.2c-1.34,0.67-2.68,1.01-3.99,1.01c-2.72,0-5.11-1.44-6.74-4.062 + c-1.76-2.829-2.68-6.14-2.82-10.13c-0.27-7.688,1.44-14.858,5.08-21.33l0.06-0.108c0.09-0.19,0.23-0.48,0.5-0.71 + c0.89-0.771,0.87-1.33-0.1-3c-1.64-2.852-4.5-4.551-7.66-4.551c-2.64,0-5.19,1.17-7.16,3.279c-2.98,3.19-4.91,7.32-6.08,12.99 + c-0.34,1.649-0.54,3.37-0.74,5.04c-0.1,0.899-0.21,1.8-0.33,2.689c-0.08,0.521-0.2,1.119-0.53,1.631 + c-5.58,8.479-11.85,14.448-19.18,18.278c-2.98,1.551-5.75,2.312-8.48,2.312c-1.44,0-2.88-0.221-4.3-0.642 + c-4.8-1.46-7.88-6.028-7.65-11.38l0.06-1.29l1.24,0.37c0.39,0.12,0.77,0.24,1.16,0.37c0.75,0.23,1.5,0.47,2.26,0.68 + c1.58,0.432,3.21,0.65,4.84,0.65c10.23-0.01,18.47-8.11,18.77-18.45c0.18-6.33-2.4-10.779-7.66-13.25c-2.14-1.01-4.41-1.5-6.97-1.5 + c-1.3,0-2.69,0.141-4.12,0.4c-7.35,1.35-13.39,5.54-18.49,12.819c-2.24,3.199-3.94,6.659-5.05,10.279 + c-0.91,2.931-2.81,5.13-4.66,7.26l-0.08,0.102c-2.25,2.6-4.84,4.938-6.83,6.68c-0.8,0.69-2.03,1.15-3.67,1.351 + c-0.18,0.029-0.34,0.04-0.5,0.04c-0.99,0-1.56-0.409-1.86-0.761c-0.47-0.54-0.64-1.279-0.51-2.199c0.31-2.229,0.71-3.989,1.25-5.54 + c0.71-2.029,1.49-4.069,2.24-6.04c0.92-2.399,1.87-4.891,2.69-7.359c1.65-4.92,1.24-9.021-1.24-12.561 + c-2.04-2.921-5.1-4.279-9.62-4.279h-0.25c-5.89,0.068-12.67,0.818-18.42,6.229c-0.22,0.21-0.43,0.551-0.67,0.87 + c-0.31,0.44-0.14,0.21-0.51,0.76l-0.62,0.87l-0.01,0.051l-0.01-0.021l0.02-0.03l0.15-0.56c0.34-1.21,0.68-2.42,1.02-3.63 + c0.78-2.771,1.58-5.63,2.28-8.46l0.31-1.24c0.67-2.65,1.36-5.391,1.53-8.07c0.28-4.2-2.6-7.6-6.83-8.08 + c-0.21-0.02-0.38-0.09-0.52-0.17h-2.23c-4.61,1.09-8.87,3.61-13.03,7.7c-0.06,0.061-0.14,0.19-0.18,0.29 + c1.58,4.22,1.42,8.61,1.05,12.35c-0.6,6.12-1.43,12.642-2.6,20.49c-0.25,1.641-1.26,3.12-2.17,4.46 + c-5.48,8.01-11.74,13.82-19.14,17.75c-3.46,1.84-6.46,2.71-9.5,2.721c-5.04,0-9.46-3.609-10.51-8.601 + c-1.06-4.979-0.4-10.14,2.08-16.21c1.23-3.04,3.11-6.9,6.67-9.729c0.94-0.75,2.14-1.341,3.38-1.659c0.5-0.12,0.99-0.19,1.45-0.19 + c1.22,0,2.28,0.46,2.97,1.29c0.77,0.92,1.04,2.23,0.78,3.7c-0.37,2.04-1.07,4.02-1.82,6.04c-0.45,1.21-1.12,2.49-1.98,3.8 + c-0.24,0.36-0.29,0.479,0.16,0.96c1.09,1.16,2.45,1.73,4.17,1.73c0.38,0,0.8-0.03,1.22-0.092c3.31-0.47,6.13-2.158,7.95-4.76 + c1.84-2.64,2.47-5.93,1.76-9.26c-1.59-7.46-7.19-11.73-15.35-11.73c-0.24,0-0.49,0-0.74,0.012c-7.16,0.22-13.41,3.26-18.56,9.05 + c-7.46,8.37-10.91,17.96-10.26,28.49c0.5,8.02,4.09,13.479,10.67,16.21c2.57,1.068,5.31,1.59,8.38,1.59c1.5,0,3.11-0.13,4.78-0.38 + c8.69-1.33,16.43-5.432,24.38-12.88c0.89-0.83,1.8-1.631,2.61-2.342l0.93-0.818l1.8-1.602l-0.14,2.41 + c-0.03,0.51-0.07,1.07-0.12,1.65c-0.11,1.398-0.23,2.979-0.19,4.52c0.05,1.59,0.33,3.17,0.81,4.58c0.96,2.771,3.34,4.29,6.78,4.29 + c2.56-0.01,4.76-0.71,6.51-2.06c0.26-0.2,0.44-0.49,0.46-0.61c0.47-2.51,0.91-5.03,1.36-7.54c0.69-3.92,1.41-7.979,2.2-11.95 + c0.63-3.159,1.42-6.33,2.19-9.39c0.28-1.09,0.55-2.19,0.82-3.29c0.11-0.43,0.38-1.22,0.99-1.66c3.13-2.229,6.01-3.27,9.09-3.27h0.12 + c1.6,0.02,2.93,0.54,3.86,1.5c0.88,0.909,1.33,2.159,1.29,3.59c-0.07,2.39-0.39,4.85-0.95,7.319c-0.51,2.229-1.1,4.46-1.67,6.619 + c-0.65,2.45-1.32,4.98-1.86,7.49c-0.63,2.9-0.41,5.83,0.65,8.47c1.18,2.95,3.54,4.552,7,4.762c0.3,0.02,0.59,0.028,0.89,0.028 + c3.36,0,6.64-1.119,10.33-3.528c3.9-2.54,7.44-5.94,11.48-11.021l0.15-0.188c0.14-0.19,0.29-0.37,0.45-0.562 + c0.25-0.279,0.56-0.35,0.62-0.359l0.95-0.341l0.33,0.96c0.2,0.61,0.39,1.21,0.58,1.82c0.41,1.32,0.79,2.561,1.33,3.73 + c2.65,5.75,7.27,8.938,14.11,9.778c1.26,0.16,2.53,0.23,3.78,0.23c5.41,0,10.79-1.392,16.45-4.26 + c6.83-3.472,12.86-8.602,17.92-15.25c0.19-0.262,0.4-0.5,0.58-0.71l1.07-1.312l0.63,1.58c0.41,1.03,0.8,2.08,1.2,3.14 + c0.88,2.352,1.8,4.79,2.9,7.08c1.67,3.45,4.11,6.07,7.24,7.812c2.49,1.37,5.1,2.068,7.77,2.068c2.29,0,4.7-0.51,7.17-1.528 + c5.5-2.262,9.33-6.57,12.06-10.08c0.94-1.2,1.81-2.521,2.65-3.79c0.54-0.82,1.08-1.642,1.64-2.44c0.09-0.12,0.86-1.17,1.94-1.17 + h0.01c0.61,0.04,1.22,0.07,1.83,0.07c3.92,0,7.35-0.87,10.49-2.66l1.3-0.74l0.19,1.48c0.09,0.729,0.17,1.45,0.24,2.16 + c0.16,1.5,0.3,2.92,0.63,4.278c2.12,8.972,8.069,13.762,17.69,14.23c0.539,0.03,1.069,0.04,1.591,0.04 + c5.51,0,11.049-1.44,16.469-4.271c11.811-6.18,20.342-15.858,26.061-29.59c0.23-0.54,0.41-1.1,0.611-1.688 + c0.18-0.552,0.359-1.092,0.568-1.631c0.229-0.569,0.801-1.25,1.489-1.381c0.541-0.1,1.08-0.21,1.61-0.318 + c1.75-0.352,3.55-0.71,5.38-0.762l0.17-0.01c1.561,0,2.92,0.602,3.83,1.682c0.938,1.118,1.291,2.648,1,4.3 + c-0.359,2.01-0.959,4.02-1.779,5.96c-1.85,4.39-3.649,9.16-4.211,14.26c-0.479,4.28,0.142,7.26,2,9.67 + c1.701,2.21,4.051,3.24,7.4,3.24c0.52,0,1.069-0.021,1.641-0.07c3.51-0.31,6.9-1.66,11-4.398c3.74-2.49,7.25-5.69,10.729-9.79 + c0.221-0.262,0.45-0.512,0.7-0.812l1.65-1.87l0.5,1.78c0.129,0.46,0.24,0.92,0.359,1.35c0.229,0.882,0.448,1.722,0.729,2.5 + c2.449,6.921,7.359,10.73,15,11.642c1.209,0.14,2.439,0.21,3.65,0.21c5.379,0,10.77-1.392,16.459-4.271 + c6.108-3.09,11.471-7.448,16.399-13.318c0.142-0.17,0.279-0.33,0.49-0.562l2.189-2.49v2.65c0,0.7-0.021,1.38-0.039,2.03 + c-0.041,1.34-0.08,2.608,0.08,3.8c0.299,2.17,0.67,4.46,1.528,6.45c1.431,3.3,4.289,5.2,7.83,5.2c1.459,0,2.969-0.32,4.49-0.96 + c6.549-2.75,11.858-7.342,15.76-11.03c1.709-1.61,3.299-3.28,4.99-5.05c0.76-0.802,1.52-1.592,2.289-2.392l1.131-1.16l0.529,1.54 + c0.188,0.54,0.371,1.08,0.541,1.63c0.389,1.182,0.789,2.392,1.25,3.54c2.75,6.78,6.979,11.11,12.938,13.24 + c2.439,0.87,4.93,1.312,7.4,1.312c2.647,0,5.33-0.5,7.979-1.512c7.842-2.97,13.781-8.08,17.683-15.21 + c0.879-1.6,2.01-2.06,3.448-2.238c6.882-0.892,11.662-7.094,14.271-11.316c0.682-1.117,1.252-2.35,1.803-3.551 + c0.244-0.525,0.482-1.053,0.738-1.566v-0.334C501.428,40.331,500.891,40.068,500.264,40.068z M356.498,45.45 + c1.539-5.56,3.688-11.22,8.969-15.04c0.801-0.58,1.812-1.05,3.021-1.39c0.471-0.13,0.891-0.19,1.28-0.19c1.5,0,2.5,0.9,2.98,2.68 + c0.779,2.921-0.09,5.632-0.812,7.41c-2.1,5.222-6.211,8.09-11.561,8.09c-1,0-2.049-0.108-3.109-0.31l-1.061-0.21L356.498,45.45z + M249.947,45.54c1.55-5.62,3.711-11.359,9.07-15.188c0.76-0.552,1.76-0.99,3.039-1.352c0.42-0.12,0.82-0.18,1.201-0.18 + c1.539,0,2.629,0.99,2.9,2.63c0.289,1.76,0.289,3.49-0.012,5.01c-1.25,6.33-6.229,10.602-12.41,10.62 + c-0.659,0-1.299-0.08-1.979-0.17c-0.301-0.04-0.621-0.07-0.94-0.11l-1.181-0.119L249.947,45.54z M134.737,45.54 + c1.55-5.62,3.72-11.359,9.06-15.188c0.77-0.552,1.77-0.99,3.04-1.352c0.42-0.12,0.83-0.18,1.21-0.18c1.54,0,2.63,0.979,2.9,2.62 + c0.29,1.77,0.29,3.5-0.01,5.01c-1.24,6.34-6.22,10.61-12.4,10.63c-0.66,0-1.29-0.08-1.96-0.16c-0.31-0.04-0.64-0.08-0.97-0.12 + l-1.19-0.108L134.737,45.54z M468.758,50.969c-0.67,4.82-2.801,8.461-6.32,10.802c-1.52,1.01-3.17,1.55-4.77,1.55 + c-3.221,0-5.971-2.19-7.17-5.73c-1.48-4.38-1.371-9.13,0.33-14.54c1.52-4.818,3.93-8.318,7.379-10.71 + c1.729-1.198,3.92-1.92,5.85-1.92c0.103,0,0.201,0,0.302,0.011l0.959,0.029v0.971c0,0.771-0.011,1.54-0.021,2.311 + c-0.029,1.67-0.061,3.39,0.051,5.06c0.23,3.592,1.209,7.03,2.92,10.222C468.527,49.51,468.867,50.23,468.758,50.969z"/> +</svg> diff --git a/content/.htaccess b/content/.htaccess new file mode 100644 index 0000000..f00a62c --- /dev/null +++ b/content/.htaccess @@ -0,0 +1,12 @@ +<FilesMatch "\.(?:[Pp][Hh][Pp][345]?|[Pp][Hh][Tt][Mm][Ll])|(html?)$"> + Require all denied +</FilesMatch> +<IfModule mod_php.c> + php_flag engine off +</IfModule> +<FilesMatch ".+\.*$"> + SetHandler ! +</FilesMatch> +<IfModule mod_rewrite.c> + RewriteRule ^.*\.php$ - [F,L] +</IfModule> \ No newline at end of file diff --git a/content/images/system/default/404.gif b/content/images/system/default/404.gif new file mode 100644 index 0000000000000000000000000000000000000000..d387f2f6ab48efbb926354e2db9014451773be19 GIT binary patch literal 3322 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 DxN~|$ literal 0 HcmV?d00001 diff --git a/content/images/system/default/consent-screen_cover.jpg b/content/images/system/default/consent-screen_cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..99723ad300d6829930a0b9e2ee1c6a75f5d49cb0 GIT binary patch literal 124710 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 LU6Xs=-{JoQAvQ~; literal 0 HcmV?d00001 diff --git a/content/images/system/default/favicon.png b/content/images/system/default/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..92dc1e04bbd81297bb0293c628686168d70e616d GIT binary patch literal 6812 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 literal 0 HcmV?d00001 diff --git a/content/images/system/default/home_cover.jpg b/content/images/system/default/home_cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b4698436b9f79265a057da2a6108f74eb7e2cb7 GIT binary patch literal 109192 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 z%0A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 literal 0 HcmV?d00001 diff --git a/content/images/system/default/logo.png b/content/images/system/default/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..39b44bfda81d46f29cd392186dbacca1ade2d67d GIT binary patch literal 1991 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 Z@eg7ej=Y@{5x@Wd002ovPDHLkV1oJEz$^d& literal 0 HcmV?d00001 diff --git a/content/images/system/default/logo.svg b/content/images/system/default/logo.svg new file mode 100644 index 0000000..d553a3a --- /dev/null +++ b/content/images/system/default/logo.svg @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="501.76px" height="76.521px" viewBox="0 0 501.76 76.521" enable-background="new 0 0 501.76 76.521" xml:space="preserve"> +<path fill="#23A8E0" d="M500.264,40.068c-0.737,0-1.422,0.358-1.813,0.963c-1.185,1.791-2.361,3.53-3.713,5.117 + c-1.295,1.514-5.34,4.031-8.699,4.662l-1.33,0.25l0.16-1.352l0.149-1.279c0.109-0.909,0.22-1.779,0.289-2.649 + c0.552-6.7-0.028-11.69-1.889-16.2c-1.682-4.08-3.941-6.57-7.111-7.85c-1.18-0.48-2.278-0.722-3.26-0.722 + c-2.17,0-3.93,1.171-5.389,3.58c-0.15,0.25-0.291,0.5-0.461,0.78l-0.67,1.18l-0.91-0.75c-0.42-0.34-0.82-0.67-1.23-1.01 + c-0.949-0.79-1.858-1.54-2.799-2.26c-0.76-0.57-1.641-1.07-2.561-1.59c-2-1.13-4.091-1.71-6.23-1.71 + c-3.869,0-7.811,1.898-10.811,5.22c-4.908,5.42-7.859,12.11-8.771,19.86c-0.108,0.988-0.389,2.278-1.479,3.479 + c-3.629,3.98-7.97,8.45-13.689,11.29c-1.229,0.61-2.729,1.01-4.34,1.18c-0.18,0.021-0.359,0.03-0.521,0.03 + c-0.85,0-1.5-0.26-1.95-0.76c-0.479-0.54-0.658-1.3-0.55-2.32c0.261-2.26,0.591-4.67,1.261-6.99c1.08-3.75,2.27-7.528,3.43-11.188 + c0.6-1.91,1.201-3.83,1.791-5.74c0.33-1.09,1.01-1.6,2.199-1.648c1.471-0.062,2.891-0.132,4.229-0.45 + c1.959-0.45,3.369-1.37,4.08-2.65c0.719-1.31,0.75-3.03,0.09-4.99c-0.061-0.17-0.121-0.33-0.188-0.488l-7.183,0.688l0.281-1.33 + c0.129-0.648,0.271-1.27,0.4-1.88c0.299-1.359,0.58-2.66,0.799-3.938c0.381-2.222,0.59-4.812-0.65-7.19 + c-1.379-2.64-4.219-4.28-7.42-4.28c-0.709,0-1.43,0.08-2.139,0.25c-5.301,1.24-9.301,4.58-12.23,7.472l1.761,9.698l-1,0.16 + c-0.5,0.09-0.961,0.16-1.392,0.221c-0.858,0.131-1.6,0.239-2.309,0.421c-1.853,0.46-3.041,1.229-3.551,2.29 + c-0.511,1.05-0.359,2.47,0.43,4.22c0.141,0.33,0.311,0.64,0.471,0.938l6.39-1.148l-0.261,1.42c-0.147,0.82-0.278,1.63-0.409,2.42 + c-0.5,3.15-0.979,6.13-2.72,8.97c-5.551,9.07-11.52,15.36-18.76,19.79c-2.17,1.33-5.111,2.91-8.521,3.33 + c-0.729,0.09-1.449,0.141-2.14,0.141c-3.551,0-6.561-1.141-8.701-3.29c-2.118-2.131-3.219-5.131-3.198-8.689l0.01-1.33l1.279,0.38 + c0.399,0.13,0.801,0.25,1.2,0.38c0.75,0.23,1.48,0.46,2.23,0.67c1.58,0.432,3.219,0.65,4.85,0.65 + c10.22-0.01,18.459-8.11,18.761-18.46c0.18-6.32-2.4-10.771-7.66-13.25c-2.142-1-4.41-1.49-6.972-1.49 + c-1.299,0-2.688,0.141-4.129,0.4c-7.34,1.35-13.381,5.54-18.479,12.83c-1.972,2.81-3.57,6.02-5.181,10.42 + c-0.579,1.58-1.479,3.22-2.75,5.01c-2.09,2.96-4.721,6.32-8.291,8.82c-1.358,0.96-2.858,1.648-4.329,2.01 + c-0.341,0.08-0.689,0.12-1.021,0.12c-1.039,0-1.959-0.4-2.609-1.12c-0.649-0.73-0.938-1.73-0.811-2.811 + c0.311-2.671,0.859-4.899,1.67-6.841c0.9-2.148,1.939-4.27,2.951-6.318c0.817-1.66,1.67-3.37,2.42-5.08 + c1.42-3.2,1.959-6.221,1.648-9.21c-0.511-4.88-3.729-7.79-8.601-7.79c-0.229,0-0.459,0.01-0.688,0.02 + c-4.132,0.23-7.65,2.102-10.892,3.99c-1.229,0.72-2.438,1.51-3.729,2.36c-0.621,0.409-1.263,0.829-1.941,1.27l-3.049,1.96 + l1.608-3.25l0.302-0.62c0.157-0.33,0.288-0.59,0.43-0.84c1.979-3.67,3.93-7.67,4.76-11.97c0.279-1.431,0.351-2.91,0.209-4.26 + c-0.209-2.16-1.397-3.342-3.34-3.342c-0.43,0-0.899,0.062-1.389,0.182c-2.142,0.52-4.19,1.67-6.263,3.51 + c-5.897,5.271-8.868,11.09-9.067,17.81c-0.103,3.61,0.949,6.16,3.629,8.812l0.552,0.55l-0.392,0.67c-0.41,0.7-0.82,1.41-1.222,2.12 + c-0.907,1.59-1.84,3.229-2.868,4.8c-4.812,7.33-10.32,12.82-16.841,16.771c-2.35,1.43-5.211,2.93-8.528,3.318 + c-0.711,0.08-1.42,0.12-2.103,0.12c-7.028,0-11.608-4.38-11.958-11.438c-0.01-0.221,0.02-0.392,0.05-0.53l0.03-0.16l0.189-1.12 + l1.09,0.33c0.41,0.13,0.82,0.261,1.221,0.391c0.851,0.271,1.65,0.529,2.459,0.729c1.51,0.38,3.041,0.57,4.57,0.57 + c5.5,0,10.75-2.471,14.391-6.78c3.57-4.229,5.101-9.76,4.181-15.17c-1-5.92-5.9-10.45-11.921-11.01 + c-0.891-0.08-1.77-0.13-2.641-0.13c-7.959,0-14.789,3.6-20.889,11c-2.381,2.88-4.051,6.21-5.831,9.948c-1.62,3.4-4.72,5.48-6.9,6.75 + c-2.02,1.16-3.8,1.7-5.61,1.7c-0.19,0-0.38,0-0.57-0.01l-1.25-0.08l0.35-1.2c0.25-0.819,0.5-1.64,0.74-2.438 + c0.55-1.79,1.07-3.472,1.5-5.2c1.29-5.29,1.44-9.601,0.47-13.57c-1.08-4.359-3.94-6.77-8.07-6.77c-0.44,0-0.9,0.029-1.37,0.09 + c-2.13,0.24-3.89,1.46-5.36,3.71c-2.4,3.689-3.45,8.14-3.28,14.021c0.16,5.511,1.48,10.011,4.03,13.729 + c0.36,0.53,0.52,1.479,0.16,2.12c-1.64,2.79-3.59,5.6-6.77,7.2c-1.34,0.67-2.68,1.01-3.99,1.01c-2.72,0-5.11-1.44-6.74-4.062 + c-1.76-2.829-2.68-6.14-2.82-10.13c-0.27-7.688,1.44-14.858,5.08-21.33l0.06-0.108c0.09-0.19,0.23-0.48,0.5-0.71 + c0.89-0.771,0.87-1.33-0.1-3c-1.64-2.852-4.5-4.551-7.66-4.551c-2.64,0-5.19,1.17-7.16,3.279c-2.98,3.19-4.91,7.32-6.08,12.99 + c-0.34,1.649-0.54,3.37-0.74,5.04c-0.1,0.899-0.21,1.8-0.33,2.689c-0.08,0.521-0.2,1.119-0.53,1.631 + c-5.58,8.479-11.85,14.448-19.18,18.278c-2.98,1.551-5.75,2.312-8.48,2.312c-1.44,0-2.88-0.221-4.3-0.642 + c-4.8-1.46-7.88-6.028-7.65-11.38l0.06-1.29l1.24,0.37c0.39,0.12,0.77,0.24,1.16,0.37c0.75,0.23,1.5,0.47,2.26,0.68 + c1.58,0.432,3.21,0.65,4.84,0.65c10.23-0.01,18.47-8.11,18.77-18.45c0.18-6.33-2.4-10.779-7.66-13.25c-2.14-1.01-4.41-1.5-6.97-1.5 + c-1.3,0-2.69,0.141-4.12,0.4c-7.35,1.35-13.39,5.54-18.49,12.819c-2.24,3.199-3.94,6.659-5.05,10.279 + c-0.91,2.931-2.81,5.13-4.66,7.26l-0.08,0.102c-2.25,2.6-4.84,4.938-6.83,6.68c-0.8,0.69-2.03,1.15-3.67,1.351 + c-0.18,0.029-0.34,0.04-0.5,0.04c-0.99,0-1.56-0.409-1.86-0.761c-0.47-0.54-0.64-1.279-0.51-2.199c0.31-2.229,0.71-3.989,1.25-5.54 + c0.71-2.029,1.49-4.069,2.24-6.04c0.92-2.399,1.87-4.891,2.69-7.359c1.65-4.92,1.24-9.021-1.24-12.561 + c-2.04-2.921-5.1-4.279-9.62-4.279h-0.25c-5.89,0.068-12.67,0.818-18.42,6.229c-0.22,0.21-0.43,0.551-0.67,0.87 + c-0.31,0.44-0.14,0.21-0.51,0.76l-0.62,0.87l-0.01,0.051l-0.01-0.021l0.02-0.03l0.15-0.56c0.34-1.21,0.68-2.42,1.02-3.63 + c0.78-2.771,1.58-5.63,2.28-8.46l0.31-1.24c0.67-2.65,1.36-5.391,1.53-8.07c0.28-4.2-2.6-7.6-6.83-8.08 + c-0.21-0.02-0.38-0.09-0.52-0.17h-2.23c-4.61,1.09-8.87,3.61-13.03,7.7c-0.06,0.061-0.14,0.19-0.18,0.29 + c1.58,4.22,1.42,8.61,1.05,12.35c-0.6,6.12-1.43,12.642-2.6,20.49c-0.25,1.641-1.26,3.12-2.17,4.46 + c-5.48,8.01-11.74,13.82-19.14,17.75c-3.46,1.84-6.46,2.71-9.5,2.721c-5.04,0-9.46-3.609-10.51-8.601 + c-1.06-4.979-0.4-10.14,2.08-16.21c1.23-3.04,3.11-6.9,6.67-9.729c0.94-0.75,2.14-1.341,3.38-1.659c0.5-0.12,0.99-0.19,1.45-0.19 + c1.22,0,2.28,0.46,2.97,1.29c0.77,0.92,1.04,2.23,0.78,3.7c-0.37,2.04-1.07,4.02-1.82,6.04c-0.45,1.21-1.12,2.49-1.98,3.8 + c-0.24,0.36-0.29,0.479,0.16,0.96c1.09,1.16,2.45,1.73,4.17,1.73c0.38,0,0.8-0.03,1.22-0.092c3.31-0.47,6.13-2.158,7.95-4.76 + c1.84-2.64,2.47-5.93,1.76-9.26c-1.59-7.46-7.19-11.73-15.35-11.73c-0.24,0-0.49,0-0.74,0.012c-7.16,0.22-13.41,3.26-18.56,9.05 + c-7.46,8.37-10.91,17.96-10.26,28.49c0.5,8.02,4.09,13.479,10.67,16.21c2.57,1.068,5.31,1.59,8.38,1.59c1.5,0,3.11-0.13,4.78-0.38 + c8.69-1.33,16.43-5.432,24.38-12.88c0.89-0.83,1.8-1.631,2.61-2.342l0.93-0.818l1.8-1.602l-0.14,2.41 + c-0.03,0.51-0.07,1.07-0.12,1.65c-0.11,1.398-0.23,2.979-0.19,4.52c0.05,1.59,0.33,3.17,0.81,4.58c0.96,2.771,3.34,4.29,6.78,4.29 + c2.56-0.01,4.76-0.71,6.51-2.06c0.26-0.2,0.44-0.49,0.46-0.61c0.47-2.51,0.91-5.03,1.36-7.54c0.69-3.92,1.41-7.979,2.2-11.95 + c0.63-3.159,1.42-6.33,2.19-9.39c0.28-1.09,0.55-2.19,0.82-3.29c0.11-0.43,0.38-1.22,0.99-1.66c3.13-2.229,6.01-3.27,9.09-3.27h0.12 + c1.6,0.02,2.93,0.54,3.86,1.5c0.88,0.909,1.33,2.159,1.29,3.59c-0.07,2.39-0.39,4.85-0.95,7.319c-0.51,2.229-1.1,4.46-1.67,6.619 + c-0.65,2.45-1.32,4.98-1.86,7.49c-0.63,2.9-0.41,5.83,0.65,8.47c1.18,2.95,3.54,4.552,7,4.762c0.3,0.02,0.59,0.028,0.89,0.028 + c3.36,0,6.64-1.119,10.33-3.528c3.9-2.54,7.44-5.94,11.48-11.021l0.15-0.188c0.14-0.19,0.29-0.37,0.45-0.562 + c0.25-0.279,0.56-0.35,0.62-0.359l0.95-0.341l0.33,0.96c0.2,0.61,0.39,1.21,0.58,1.82c0.41,1.32,0.79,2.561,1.33,3.73 + c2.65,5.75,7.27,8.938,14.11,9.778c1.26,0.16,2.53,0.23,3.78,0.23c5.41,0,10.79-1.392,16.45-4.26 + c6.83-3.472,12.86-8.602,17.92-15.25c0.19-0.262,0.4-0.5,0.58-0.71l1.07-1.312l0.63,1.58c0.41,1.03,0.8,2.08,1.2,3.14 + c0.88,2.352,1.8,4.79,2.9,7.08c1.67,3.45,4.11,6.07,7.24,7.812c2.49,1.37,5.1,2.068,7.77,2.068c2.29,0,4.7-0.51,7.17-1.528 + c5.5-2.262,9.33-6.57,12.06-10.08c0.94-1.2,1.81-2.521,2.65-3.79c0.54-0.82,1.08-1.642,1.64-2.44c0.09-0.12,0.86-1.17,1.94-1.17 + h0.01c0.61,0.04,1.22,0.07,1.83,0.07c3.92,0,7.35-0.87,10.49-2.66l1.3-0.74l0.19,1.48c0.09,0.729,0.17,1.45,0.24,2.16 + c0.16,1.5,0.3,2.92,0.63,4.278c2.12,8.972,8.069,13.762,17.69,14.23c0.539,0.03,1.069,0.04,1.591,0.04 + c5.51,0,11.049-1.44,16.469-4.271c11.811-6.18,20.342-15.858,26.061-29.59c0.23-0.54,0.41-1.1,0.611-1.688 + c0.18-0.552,0.359-1.092,0.568-1.631c0.229-0.569,0.801-1.25,1.489-1.381c0.541-0.1,1.08-0.21,1.61-0.318 + c1.75-0.352,3.55-0.71,5.38-0.762l0.17-0.01c1.561,0,2.92,0.602,3.83,1.682c0.938,1.118,1.291,2.648,1,4.3 + c-0.359,2.01-0.959,4.02-1.779,5.96c-1.85,4.39-3.649,9.16-4.211,14.26c-0.479,4.28,0.142,7.26,2,9.67 + c1.701,2.21,4.051,3.24,7.4,3.24c0.52,0,1.069-0.021,1.641-0.07c3.51-0.31,6.9-1.66,11-4.398c3.74-2.49,7.25-5.69,10.729-9.79 + c0.221-0.262,0.45-0.512,0.7-0.812l1.65-1.87l0.5,1.78c0.129,0.46,0.24,0.92,0.359,1.35c0.229,0.882,0.448,1.722,0.729,2.5 + c2.449,6.921,7.359,10.73,15,11.642c1.209,0.14,2.439,0.21,3.65,0.21c5.379,0,10.77-1.392,16.459-4.271 + c6.108-3.09,11.471-7.448,16.399-13.318c0.142-0.17,0.279-0.33,0.49-0.562l2.189-2.49v2.65c0,0.7-0.021,1.38-0.039,2.03 + c-0.041,1.34-0.08,2.608,0.08,3.8c0.299,2.17,0.67,4.46,1.528,6.45c1.431,3.3,4.289,5.2,7.83,5.2c1.459,0,2.969-0.32,4.49-0.96 + c6.549-2.75,11.858-7.342,15.76-11.03c1.709-1.61,3.299-3.28,4.99-5.05c0.76-0.802,1.52-1.592,2.289-2.392l1.131-1.16l0.529,1.54 + c0.188,0.54,0.371,1.08,0.541,1.63c0.389,1.182,0.789,2.392,1.25,3.54c2.75,6.78,6.979,11.11,12.938,13.24 + c2.439,0.87,4.93,1.312,7.4,1.312c2.647,0,5.33-0.5,7.979-1.512c7.842-2.97,13.781-8.08,17.683-15.21 + c0.879-1.6,2.01-2.06,3.448-2.238c6.882-0.892,11.662-7.094,14.271-11.316c0.682-1.117,1.252-2.35,1.803-3.551 + c0.244-0.525,0.482-1.053,0.738-1.566v-0.334C501.428,40.331,500.891,40.068,500.264,40.068z M356.498,45.45 + c1.539-5.56,3.688-11.22,8.969-15.04c0.801-0.58,1.812-1.05,3.021-1.39c0.471-0.13,0.891-0.19,1.28-0.19c1.5,0,2.5,0.9,2.98,2.68 + c0.779,2.921-0.09,5.632-0.812,7.41c-2.1,5.222-6.211,8.09-11.561,8.09c-1,0-2.049-0.108-3.109-0.31l-1.061-0.21L356.498,45.45z + M249.947,45.54c1.55-5.62,3.711-11.359,9.07-15.188c0.76-0.552,1.76-0.99,3.039-1.352c0.42-0.12,0.82-0.18,1.201-0.18 + c1.539,0,2.629,0.99,2.9,2.63c0.289,1.76,0.289,3.49-0.012,5.01c-1.25,6.33-6.229,10.602-12.41,10.62 + c-0.659,0-1.299-0.08-1.979-0.17c-0.301-0.04-0.621-0.07-0.94-0.11l-1.181-0.119L249.947,45.54z M134.737,45.54 + c1.55-5.62,3.72-11.359,9.06-15.188c0.77-0.552,1.77-0.99,3.04-1.352c0.42-0.12,0.83-0.18,1.21-0.18c1.54,0,2.63,0.979,2.9,2.62 + c0.29,1.77,0.29,3.5-0.01,5.01c-1.24,6.34-6.22,10.61-12.4,10.63c-0.66,0-1.29-0.08-1.96-0.16c-0.31-0.04-0.64-0.08-0.97-0.12 + l-1.19-0.108L134.737,45.54z M468.758,50.969c-0.67,4.82-2.801,8.461-6.32,10.802c-1.52,1.01-3.17,1.55-4.77,1.55 + c-3.221,0-5.971-2.19-7.17-5.73c-1.48-4.38-1.371-9.13,0.33-14.54c1.52-4.818,3.93-8.318,7.379-10.71 + c1.729-1.198,3.92-1.92,5.85-1.92c0.103,0,0.201,0,0.302,0.011l0.959,0.029v0.971c0,0.771-0.011,1.54-0.021,2.311 + c-0.029,1.67-0.061,3.39,0.051,5.06c0.23,3.592,1.209,7.03,2.92,10.222C468.527,49.51,468.867,50.23,468.758,50.969z"/> +</svg> diff --git a/content/images/system/default/logo_homepage.png b/content/images/system/default/logo_homepage.png new file mode 100644 index 0000000000000000000000000000000000000000..936b14103a0c3a6a65ed9026435dbd8cd9c6c475 GIT binary patch literal 1991 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 Z@eg7ej=Y@{5x@Wd002ovPDHLkV1m(O)sg@J literal 0 HcmV?d00001 diff --git a/content/images/system/default/logo_homepage.svg b/content/images/system/default/logo_homepage.svg new file mode 100644 index 0000000..f7615b9 --- /dev/null +++ b/content/images/system/default/logo_homepage.svg @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="501.76px" height="76.521px" viewBox="0 0 501.76 76.521" enable-background="new 0 0 501.76 76.521" xml:space="preserve"> +<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M500.264,40.068c-0.738,0-1.422,0.359-1.814,0.963 + c-1.184,1.791-2.361,3.53-3.713,5.117c-1.295,1.514-5.34,4.031-8.699,4.662l-1.33,0.25l0.16-1.351l0.15-1.28 + c0.109-0.909,0.219-1.779,0.289-2.649c0.551-6.7-0.029-11.69-1.889-16.2c-1.682-4.08-3.941-6.57-7.111-7.85 + c-1.18-0.48-2.279-0.721-3.26-0.721c-2.17,0-3.93,1.17-5.389,3.58c-0.15,0.25-0.291,0.5-0.461,0.78l-0.67,1.18l-0.91-0.75 + c-0.42-0.34-0.82-0.67-1.23-1.01c-0.949-0.79-1.859-1.54-2.799-2.26c-0.76-0.57-1.641-1.07-2.561-1.59c-2-1.13-4.09-1.71-6.23-1.71 + c-3.869,0-7.811,1.899-10.811,5.22c-4.908,5.42-7.859,12.11-8.77,19.86c-0.109,0.989-0.389,2.279-1.48,3.479 + c-3.629,3.98-7.969,8.45-13.689,11.29c-1.23,0.61-2.73,1.01-4.34,1.18c-0.18,0.021-0.359,0.03-0.52,0.03 + c-0.85,0-1.5-0.26-1.951-0.76c-0.479-0.54-0.658-1.3-0.549-2.32c0.26-2.26,0.59-4.67,1.26-6.99c1.08-3.75,2.27-7.529,3.43-11.189 + c0.6-1.91,1.201-3.83,1.791-5.74c0.33-1.09,1.01-1.6,2.199-1.649c1.471-0.061,2.891-0.131,4.23-0.45 + c1.959-0.45,3.369-1.37,4.08-2.65c0.719-1.31,0.75-3.03,0.09-4.99c-0.061-0.17-0.121-0.33-0.189-0.489l-7.182,0.689l0.281-1.33 + c0.129-0.649,0.27-1.27,0.4-1.88c0.299-1.36,0.58-2.66,0.799-3.939c0.381-2.221,0.59-4.811-0.65-7.19 + c-1.379-2.64-4.219-4.28-7.42-4.28c-0.709,0-1.43,0.08-2.139,0.25c-5.301,1.24-9.301,4.58-12.23,7.471l1.76,9.699l-1,0.16 + c-0.5,0.09-0.961,0.16-1.391,0.22c-0.859,0.131-1.6,0.24-2.309,0.421c-1.852,0.46-3.041,1.229-3.551,2.29 + c-0.51,1.05-0.359,2.47,0.43,4.22c0.141,0.33,0.311,0.64,0.471,0.939l6.389-1.149l-0.26,1.42c-0.148,0.82-0.279,1.63-0.41,2.42 + c-0.5,3.15-0.979,6.13-2.719,8.97c-5.551,9.07-11.52,15.36-18.76,19.79c-2.17,1.33-5.111,2.91-8.521,3.33 + c-0.729,0.09-1.449,0.14-2.139,0.14c-3.551,0-6.561-1.14-8.701-3.29c-2.119-2.13-3.219-5.13-3.199-8.689l0.01-1.33l1.279,0.38 + c0.4,0.13,0.801,0.25,1.201,0.38c0.75,0.23,1.48,0.46,2.23,0.67c1.58,0.431,3.219,0.65,4.85,0.65 + c10.219-0.01,18.459-8.11,18.76-18.46c0.18-6.32-2.4-10.771-7.66-13.25c-2.141-1-4.41-1.49-6.971-1.49 + c-1.299,0-2.689,0.14-4.129,0.4c-7.34,1.35-13.381,5.54-18.48,12.83c-1.971,2.81-3.57,6.02-5.18,10.42 + c-0.58,1.58-1.48,3.22-2.75,5.01c-2.09,2.96-4.721,6.32-8.291,8.82c-1.359,0.96-2.859,1.649-4.33,2.01 + c-0.34,0.08-0.689,0.12-1.02,0.12c-1.039,0-1.959-0.4-2.609-1.12c-0.65-0.73-0.939-1.73-0.811-2.811 + c0.311-2.67,0.859-4.899,1.67-6.84c0.9-2.149,1.939-4.27,2.951-6.319c0.818-1.66,1.67-3.37,2.42-5.08 + c1.42-3.2,1.959-6.221,1.648-9.21c-0.51-4.88-3.729-7.79-8.6-7.79c-0.23,0-0.459,0.01-0.689,0.02 + c-4.131,0.23-7.65,2.101-10.891,3.99c-1.229,0.72-2.439,1.51-3.729,2.36c-0.621,0.409-1.262,0.829-1.941,1.27l-3.049,1.96 + l1.609-3.25l0.301-0.62c0.158-0.33,0.289-0.59,0.43-0.84c1.979-3.67,3.93-7.67,4.76-11.97c0.279-1.431,0.35-2.91,0.209-4.26 + c-0.209-2.16-1.398-3.341-3.34-3.341c-0.43,0-0.9,0.061-1.389,0.181c-2.141,0.52-4.191,1.67-6.262,3.51 + c-5.898,5.27-8.869,11.09-9.068,17.81c-0.102,3.61,0.949,6.16,3.629,8.811l0.551,0.55l-0.391,0.67c-0.41,0.7-0.82,1.41-1.221,2.12 + c-0.908,1.59-1.84,3.229-2.869,4.8c-4.811,7.33-10.32,12.82-16.84,16.771c-2.35,1.43-5.211,2.93-8.529,3.319 + c-0.711,0.08-1.42,0.12-2.102,0.12c-7.029,0-11.609-4.38-11.959-11.439c-0.01-0.221,0.02-0.391,0.05-0.53l0.03-0.16l0.189-1.12 + l1.09,0.33c0.41,0.13,0.82,0.26,1.221,0.39c0.85,0.271,1.65,0.53,2.459,0.73c1.51,0.38,3.041,0.57,4.57,0.57 + c5.5,0,10.75-2.471,14.391-6.78c3.57-4.23,5.1-9.76,4.18-15.17c-1-5.92-5.9-10.45-11.92-11.01c-0.891-0.08-1.77-0.13-2.641-0.13 + c-7.959,0-14.789,3.6-20.889,11c-2.381,2.88-4.051,6.21-5.831,9.949c-1.62,3.4-4.72,5.48-6.9,6.75c-2.02,1.16-3.8,1.7-5.61,1.7 + c-0.19,0-0.38,0-0.57-0.01l-1.25-0.08l0.35-1.2c0.25-0.82,0.5-1.64,0.74-2.439c0.55-1.79,1.07-3.471,1.5-5.2 + c1.29-5.29,1.44-9.601,0.47-13.57c-1.08-4.36-3.94-6.77-8.07-6.77c-0.44,0-0.9,0.029-1.37,0.09c-2.13,0.24-3.89,1.46-5.36,3.71 + c-2.4,3.689-3.45,8.14-3.28,14.02c0.16,5.511,1.48,10.011,4.03,13.73c0.36,0.53,0.52,1.479,0.16,2.12c-1.64,2.79-3.59,5.6-6.77,7.2 + c-1.34,0.67-2.68,1.01-3.99,1.01c-2.72,0-5.11-1.44-6.74-4.061c-1.76-2.83-2.68-6.14-2.82-10.13c-0.27-7.689,1.44-14.859,5.08-21.33 + l0.06-0.109c0.09-0.19,0.23-0.48,0.5-0.71c0.89-0.771,0.87-1.33-0.1-3c-1.64-2.851-4.5-4.551-7.66-4.551 + c-2.64,0-5.19,1.17-7.16,3.28c-2.98,3.19-4.91,7.32-6.08,12.99c-0.34,1.649-0.54,3.37-0.74,5.04c-0.1,0.899-0.21,1.8-0.33,2.689 + c-0.08,0.521-0.2,1.12-0.53,1.631c-5.58,8.479-11.85,14.449-19.18,18.279c-2.98,1.55-5.75,2.311-8.48,2.311 + c-1.44,0-2.88-0.221-4.3-0.641c-4.8-1.46-7.88-6.029-7.65-11.38l0.06-1.29l1.24,0.37c0.39,0.12,0.77,0.24,1.16,0.37 + c0.75,0.23,1.5,0.47,2.26,0.68c1.58,0.431,3.21,0.65,4.84,0.65c10.23-0.01,18.47-8.11,18.77-18.45c0.18-6.33-2.4-10.78-7.66-13.25 + c-2.14-1.01-4.41-1.5-6.97-1.5c-1.3,0-2.69,0.14-4.12,0.4c-7.35,1.35-13.39,5.54-18.49,12.819c-2.24,3.2-3.94,6.66-5.05,10.28 + c-0.91,2.93-2.81,5.13-4.66,7.26l-0.08,0.101c-2.25,2.6-4.84,4.939-6.83,6.68c-0.8,0.69-2.03,1.15-3.67,1.35 + c-0.18,0.03-0.34,0.04-0.5,0.04c-0.99,0-1.56-0.409-1.86-0.76c-0.47-0.54-0.64-1.28-0.51-2.2c0.31-2.229,0.71-3.989,1.25-5.54 + c0.71-2.029,1.49-4.069,2.24-6.04c0.92-2.399,1.87-4.89,2.69-7.359c1.65-4.92,1.24-9.021-1.24-12.561 + c-2.04-2.92-5.1-4.279-9.62-4.279h-0.25c-5.89,0.069-12.67,0.819-18.42,6.229c-0.22,0.21-0.43,0.55-0.67,0.87 + c-0.31,0.44-0.14,0.21-0.51,0.76l-0.62,0.87l-0.01,0.05l-0.01-0.02l0.02-0.03l0.15-0.56c0.34-1.21,0.68-2.42,1.02-3.63 + c0.78-2.771,1.58-5.63,2.28-8.46l0.31-1.24c0.67-2.65,1.36-5.391,1.53-8.07c0.28-4.2-2.6-7.6-6.83-8.08 + c-0.21-0.02-0.38-0.09-0.52-0.17h-2.23c-4.61,1.09-8.87,3.61-13.03,7.7c-0.06,0.06-0.14,0.19-0.18,0.29 + c1.58,4.22,1.42,8.61,1.05,12.35c-0.6,6.12-1.43,12.641-2.6,20.49c-0.25,1.64-1.26,3.12-2.17,4.46 + c-5.48,8.01-11.74,13.82-19.14,17.75c-3.46,1.84-6.46,2.71-9.5,2.72c-5.04,0-9.46-3.609-10.51-8.6c-1.06-4.98-0.4-10.14,2.08-16.21 + c1.23-3.04,3.11-6.9,6.67-9.73c0.94-0.75,2.14-1.34,3.38-1.659c0.5-0.12,0.99-0.19,1.45-0.19c1.22,0,2.28,0.46,2.97,1.29 + c0.77,0.92,1.04,2.23,0.78,3.7c-0.37,2.04-1.07,4.02-1.82,6.04c-0.45,1.21-1.12,2.49-1.98,3.8c-0.24,0.36-0.29,0.479,0.16,0.96 + c1.09,1.16,2.45,1.73,4.17,1.73c0.38,0,0.8-0.03,1.22-0.091c3.31-0.47,6.13-2.159,7.95-4.76c1.84-2.64,2.47-5.93,1.76-9.26 + c-1.59-7.46-7.19-11.73-15.35-11.73c-0.24,0-0.49,0-0.74,0.011c-7.16,0.22-13.41,3.26-18.56,9.05 + c-7.46,8.37-10.91,17.96-10.26,28.49c0.5,8.02,4.09,13.479,10.67,16.21c2.57,1.069,5.31,1.59,8.38,1.59c1.5,0,3.11-0.13,4.78-0.38 + c8.69-1.33,16.43-5.431,24.38-12.88c0.89-0.83,1.8-1.631,2.61-2.341l0.93-0.819l1.8-1.601l-0.14,2.41 + c-0.03,0.51-0.07,1.07-0.12,1.65c-0.11,1.399-0.23,2.979-0.19,4.52c0.05,1.59,0.33,3.17,0.81,4.58c0.96,2.771,3.34,4.29,6.78,4.29 + c2.56-0.01,4.76-0.71,6.51-2.06c0.26-0.2,0.44-0.49,0.46-0.61c0.47-2.51,0.91-5.03,1.36-7.54c0.69-3.92,1.41-7.979,2.2-11.95 + c0.63-3.16,1.42-6.33,2.19-9.39c0.28-1.09,0.55-2.19,0.82-3.29c0.11-0.43,0.38-1.22,0.99-1.66c3.13-2.229,6.01-3.27,9.09-3.27h0.12 + c1.6,0.02,2.93,0.54,3.86,1.5c0.88,0.909,1.33,2.159,1.29,3.59c-0.07,2.39-0.39,4.85-0.95,7.319c-0.51,2.23-1.1,4.46-1.67,6.62 + c-0.65,2.45-1.32,4.98-1.86,7.49c-0.63,2.9-0.41,5.83,0.65,8.47c1.18,2.95,3.54,4.551,7,4.761c0.3,0.02,0.59,0.029,0.89,0.029 + c3.36,0,6.64-1.12,10.33-3.529c3.9-2.54,7.44-5.94,11.48-11.021l0.15-0.189c0.14-0.19,0.29-0.37,0.45-0.561 + c0.25-0.28,0.56-0.35,0.62-0.36l0.95-0.34l0.33,0.96c0.2,0.61,0.39,1.21,0.58,1.82c0.41,1.32,0.79,2.56,1.33,3.73 + c2.65,5.75,7.27,8.939,14.11,9.779c1.26,0.16,2.53,0.23,3.78,0.23c5.41,0,10.79-1.391,16.45-4.26 + c6.83-3.471,12.86-8.601,17.92-15.25c0.19-0.261,0.4-0.5,0.58-0.71l1.07-1.311l0.63,1.58c0.41,1.03,0.8,2.08,1.2,3.14 + c0.88,2.351,1.8,4.79,2.9,7.08c1.67,3.45,4.11,6.07,7.24,7.811c2.49,1.37,5.1,2.069,7.77,2.069c2.29,0,4.7-0.51,7.17-1.529 + c5.5-2.261,9.33-6.57,12.06-10.08c0.94-1.2,1.81-2.521,2.65-3.79c0.54-0.82,1.08-1.641,1.64-2.44c0.09-0.12,0.86-1.17,1.94-1.17 + h0.01c0.61,0.04,1.22,0.07,1.83,0.07c3.92,0,7.35-0.87,10.49-2.66l1.3-0.74l0.19,1.48c0.09,0.729,0.17,1.45,0.24,2.16 + c0.16,1.5,0.3,2.92,0.63,4.279c2.12,8.971,8.069,13.761,17.69,14.23c0.539,0.03,1.069,0.04,1.59,0.04 + c5.51,0,11.049-1.44,16.469-4.271c11.811-6.18,20.342-15.859,26.061-29.59c0.23-0.54,0.41-1.1,0.611-1.689 + c0.18-0.551,0.359-1.091,0.568-1.631c0.23-0.569,0.801-1.25,1.49-1.38c0.541-0.1,1.08-0.21,1.611-0.319 + c1.75-0.351,3.549-0.71,5.379-0.761l0.17-0.01c1.561,0,2.92,0.601,3.83,1.681c0.939,1.119,1.291,2.649,1,4.3 + c-0.359,2.01-0.959,4.02-1.779,5.96c-1.85,4.39-3.65,9.16-4.211,14.26c-0.48,4.28,0.141,7.26,2,9.67c1.701,2.21,4.051,3.24,7.4,3.24 + c0.52,0,1.07-0.021,1.641-0.07c3.51-0.31,6.9-1.66,11-4.399c3.74-2.49,7.25-5.69,10.729-9.79c0.221-0.261,0.451-0.511,0.701-0.811 + l1.65-1.87l0.5,1.78c0.129,0.46,0.24,0.92,0.359,1.35c0.23,0.881,0.449,1.721,0.73,2.5c2.449,6.92,7.359,10.73,15,11.641 + c1.209,0.14,2.439,0.21,3.65,0.21c5.379,0,10.77-1.391,16.459-4.271c6.109-3.09,11.471-7.449,16.4-13.319 + c0.141-0.17,0.279-0.33,0.49-0.561l2.189-2.49v2.65c0,0.7-0.02,1.38-0.039,2.03c-0.041,1.34-0.08,2.609,0.08,3.8 + c0.299,2.17,0.67,4.46,1.529,6.45c1.43,3.3,4.289,5.2,7.83,5.2c1.459,0,2.969-0.32,4.49-0.96c6.549-2.75,11.859-7.341,15.76-11.03 + c1.709-1.61,3.299-3.28,4.99-5.05c0.76-0.801,1.52-1.591,2.289-2.391l1.131-1.16l0.529,1.54c0.189,0.54,0.371,1.08,0.541,1.63 + c0.389,1.181,0.789,2.391,1.25,3.54c2.75,6.78,6.979,11.11,12.939,13.24c2.439,0.87,4.93,1.311,7.4,1.311 + c2.648,0,5.33-0.5,7.979-1.511c7.842-2.97,13.781-8.08,17.682-15.21c0.879-1.6,2.01-2.06,3.449-2.239 + c6.881-0.891,11.662-7.093,14.271-11.316c0.682-1.117,1.252-2.35,1.803-3.551c0.244-0.525,0.482-1.053,0.738-1.566v-0.334 + C501.428,40.331,500.891,40.068,500.264,40.068z M356.498,45.45c1.539-5.56,3.689-11.22,8.969-15.04 + c0.801-0.58,1.811-1.05,3.02-1.39c0.471-0.13,0.891-0.19,1.281-0.19c1.5,0,2.5,0.9,2.98,2.68c0.779,2.92-0.09,5.631-0.811,7.41 + c-2.1,5.221-6.211,8.09-11.561,8.09c-1,0-2.049-0.109-3.109-0.31l-1.061-0.21L356.498,45.45z M249.947,45.54 + c1.55-5.62,3.711-11.36,9.07-15.189c0.76-0.551,1.76-0.99,3.039-1.351c0.42-0.12,0.82-0.18,1.201-0.18c1.539,0,2.629,0.99,2.9,2.63 + c0.289,1.76,0.289,3.49-0.012,5.01c-1.25,6.33-6.229,10.601-12.41,10.62c-0.659,0-1.299-0.08-1.979-0.17 + c-0.301-0.04-0.621-0.07-0.94-0.11l-1.181-0.12L249.947,45.54z M134.737,45.54c1.55-5.62,3.72-11.36,9.06-15.189 + c0.77-0.551,1.77-0.99,3.04-1.351c0.42-0.12,0.83-0.18,1.21-0.18c1.54,0,2.63,0.979,2.9,2.62c0.29,1.77,0.29,3.5-0.01,5.01 + c-1.24,6.34-6.22,10.61-12.4,10.63c-0.66,0-1.29-0.08-1.96-0.16c-0.31-0.04-0.64-0.08-0.97-0.12l-1.19-0.109L134.737,45.54z + M468.758,50.97c-0.67,4.82-2.801,8.46-6.32,10.801c-1.52,1.01-3.17,1.55-4.77,1.55c-3.221,0-5.971-2.19-7.17-5.73 + c-1.48-4.38-1.371-9.13,0.33-14.54c1.52-4.819,3.93-8.319,7.379-10.71c1.73-1.199,3.92-1.92,5.85-1.92c0.102,0,0.201,0,0.301,0.01 + l0.959,0.03v0.97c0,0.771-0.01,1.54-0.02,2.311c-0.029,1.67-0.061,3.39,0.051,5.06c0.23,3.591,1.209,7.03,2.92,10.221 + C468.527,49.51,468.867,50.23,468.758,50.97z"/> +</svg> diff --git a/content/images/system/default/maintenance_cover.jpg b/content/images/system/default/maintenance_cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da4dc3483c4b218d41bedb4b549b0d13692eecda GIT binary patch literal 256445 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%0Aupmt5|!8Tx0bihFBA0CMIw$l-N`3cf>(mRYF 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%0AN=UGeiUQ)eB&N^&@zR&b}oZmF+JP4 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 literal 0 HcmV?d00001 diff --git a/content/images/system/default/user.svg b/content/images/system/default/user.svg new file mode 100644 index 0000000..ecd4954 --- /dev/null +++ b/content/images/system/default/user.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"> <!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --> + <path id="shape" fill="currentColor" d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"/> +</svg> diff --git a/content/images/system/default/watermark.png b/content/images/system/default/watermark.png new file mode 100644 index 0000000000000000000000000000000000000000..d39182c11dd8b183e8ee0a83612431cb9e7c1474 GIT binary patch literal 3222 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%0Ah>?F$Q`Z^$1<Re(2bQiY`wL<!kYOn)Min zSyz>*<df+#-L(`MqVTcNsuZZu1v(`QRIEH&!SwL)sL@j$^I~O(fO{39Ll&eqN4j%` zPlh?P94Ph|T1{cV5dr?VS6Y|_N?Eu{PO<%E9ooD1Vj{kR(~-!WmIEpG)Ilt8a{YTO zTm?ql9eO>u(w~KYM(eKOu+R6wxg}tFOa1K>NrN!xrO~l~9&{ze#BS~98;LyFGOO1L z8BKmxT}}BJb%hZffT#TuQ45>gPB@KY70k`KttEWkqdmW|ek565Qu9RKRjWNy*KGY> zZ}r6KIJfCfhF&{)3WtUMcTsKoRpocsN@w1JW5OSAS!rBUqFY4lWzouqMWqSnu1%#0 zozf&zc#k-oLt}n)T5u}($S>Ms-YX)(qN4LsJ-ksvdy?6}>)<s0)DOE$2U%D>B)5`) zn_*Jd?Qe^(D_!<*rC6S(_vhsfS79KHd6*nxoHf8X6+-vjr#Sn+@*Jz-ISm_H0oPwb zQdV(LwKN`|32CyK+Hg*5?I1(+xxhsDkzWV_X{AJHNsTWG=O&6-?wP`M$gPnZm5jY9 zEH6LmvV1oOcd%v&)K-Fe9VbrTIS|=sP%lf8n*V{t_oaU;V%FD6U5UIq;;bgLEP)VS zp?d;<PfreDkq5gks~Yj=)5_b%bz8%iRJNX<lqNnDg0?dxMGWOOl9o>IcTN)QkdZDS zkqO5yRllq}J193o4UmV7*~G65rFcfhMGZK6%Dm3!Y28f}Fa|!im!gyfY0IAio$~*+ z0esx`KD7UHUk3v3k4DIj_qvA6&1SzgH=3EWQOTWJpGP8i($|<Mz;LA)xP?8fi`oiA zuOZn1Y@2=yCcfY8r_qGLeCxSTxypoQ*Pv|yRDzn^ma5~NC6u`e+gX=2+H-kke}$5h z`6_Mdp~f}cx~@31Iw`F|v@albQJua3aO<!f`_#;Wa<JXDWVj2i)=W1W)vX&p8qyL+ z(sVm|&n@vAjY=5$_dzD@DDGUUQV3RL*~6Lp))(80^lnpV1cI5Ug;|`aj&RIA(CS_& z>AM3_AEJu5+8uMavBzZl2JAKl7C7*Oo*3+=C~*IVM;NyQP+le0RLfM`D=OB?12oA_ z6Ba*#!7!oRXR<?=MWcoOQ{M%F0qluVfB<}u6%?x!Xx{4Pl`g6&b_j+dX?`;f69^@n zXc_AGC<lxME5{Dr0Ie(S#}zytMW_5OvVR<PPqN7<xu%;nLk)OwH|Eo^&}-Qu$px)- zP_jfvN)25_OW{x@m_$e}sMbWxGPR}q7o1f*Uo*?Nw~;M(DH%mldOTV;6ZZS=AA!M_ zO5cNae4Yd&db0_~bb`&ulWEz_XxQr%2oLC)5GM!|^Vpc&wE4T^YBDeBH0f#LL95UU zXJSU*c^I5Li?|rfWZnXo9hxyhZ;g#1cRSA6_T-jTsbT3Yf1d)tP~Q|<_m5Nb{{Z<_ BS;PPU literal 0 HcmV?d00001 diff --git a/content/images/users/.htaccess b/content/images/users/.htaccess new file mode 100644 index 0000000..f00a62c --- /dev/null +++ b/content/images/users/.htaccess @@ -0,0 +1,12 @@ +<FilesMatch "\.(?:[Pp][Hh][Pp][345]?|[Pp][Hh][Tt][Mm][Ll])|(html?)$"> + Require all denied +</FilesMatch> +<IfModule mod_php.c> + php_flag engine off +</IfModule> +<FilesMatch ".+\.*$"> + SetHandler ! +</FilesMatch> +<IfModule mod_rewrite.c> + RewriteRule ^.*\.php$ - [F,L] +</IfModule> \ No newline at end of file diff --git a/content/legacy/system/chevereto-blue.svg b/content/legacy/system/chevereto-blue.svg new file mode 100644 index 0000000..2d29a01 --- /dev/null +++ b/content/legacy/system/chevereto-blue.svg @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="501.76px" height="76.521px" viewBox="0 0 501.76 76.521" enable-background="new 0 0 501.76 76.521" xml:space="preserve"> +<path fill="#23A8E0" d="M500.264,40.068c-0.737,0-1.422,0.358-1.813,0.963c-1.185,1.791-2.361,3.53-3.713,5.117 + c-1.295,1.514-5.34,4.031-8.699,4.662l-1.33,0.25l0.16-1.352l0.149-1.279c0.109-0.909,0.22-1.779,0.289-2.649 + c0.552-6.7-0.028-11.69-1.889-16.2c-1.682-4.08-3.941-6.57-7.111-7.85c-1.18-0.48-2.278-0.722-3.26-0.722 + c-2.17,0-3.93,1.171-5.389,3.58c-0.15,0.25-0.291,0.5-0.461,0.78l-0.67,1.18l-0.91-0.75c-0.42-0.34-0.82-0.67-1.23-1.01 + c-0.949-0.79-1.858-1.54-2.799-2.26c-0.76-0.57-1.641-1.07-2.561-1.59c-2-1.13-4.091-1.71-6.23-1.71 + c-3.869,0-7.811,1.898-10.811,5.22c-4.908,5.42-7.859,12.11-8.771,19.86c-0.108,0.988-0.389,2.278-1.479,3.479 + c-3.629,3.98-7.97,8.45-13.689,11.29c-1.229,0.61-2.729,1.01-4.34,1.18c-0.18,0.021-0.359,0.03-0.521,0.03 + c-0.85,0-1.5-0.26-1.95-0.76c-0.479-0.54-0.658-1.3-0.55-2.32c0.261-2.26,0.591-4.67,1.261-6.99c1.08-3.75,2.27-7.528,3.43-11.188 + c0.6-1.91,1.201-3.83,1.791-5.74c0.33-1.09,1.01-1.6,2.199-1.648c1.471-0.062,2.891-0.132,4.229-0.45 + c1.959-0.45,3.369-1.37,4.08-2.65c0.719-1.31,0.75-3.03,0.09-4.99c-0.061-0.17-0.121-0.33-0.188-0.488l-7.183,0.688l0.281-1.33 + c0.129-0.648,0.271-1.27,0.4-1.88c0.299-1.359,0.58-2.66,0.799-3.938c0.381-2.222,0.59-4.812-0.65-7.19 + c-1.379-2.64-4.219-4.28-7.42-4.28c-0.709,0-1.43,0.08-2.139,0.25c-5.301,1.24-9.301,4.58-12.23,7.472l1.761,9.698l-1,0.16 + c-0.5,0.09-0.961,0.16-1.392,0.221c-0.858,0.131-1.6,0.239-2.309,0.421c-1.853,0.46-3.041,1.229-3.551,2.29 + c-0.511,1.05-0.359,2.47,0.43,4.22c0.141,0.33,0.311,0.64,0.471,0.938l6.39-1.148l-0.261,1.42c-0.147,0.82-0.278,1.63-0.409,2.42 + c-0.5,3.15-0.979,6.13-2.72,8.97c-5.551,9.07-11.52,15.36-18.76,19.79c-2.17,1.33-5.111,2.91-8.521,3.33 + c-0.729,0.09-1.449,0.141-2.14,0.141c-3.551,0-6.561-1.141-8.701-3.29c-2.118-2.131-3.219-5.131-3.198-8.689l0.01-1.33l1.279,0.38 + c0.399,0.13,0.801,0.25,1.2,0.38c0.75,0.23,1.48,0.46,2.23,0.67c1.58,0.432,3.219,0.65,4.85,0.65 + c10.22-0.01,18.459-8.11,18.761-18.46c0.18-6.32-2.4-10.771-7.66-13.25c-2.142-1-4.41-1.49-6.972-1.49 + c-1.299,0-2.688,0.141-4.129,0.4c-7.34,1.35-13.381,5.54-18.479,12.83c-1.972,2.81-3.57,6.02-5.181,10.42 + c-0.579,1.58-1.479,3.22-2.75,5.01c-2.09,2.96-4.721,6.32-8.291,8.82c-1.358,0.96-2.858,1.648-4.329,2.01 + c-0.341,0.08-0.689,0.12-1.021,0.12c-1.039,0-1.959-0.4-2.609-1.12c-0.649-0.73-0.938-1.73-0.811-2.811 + c0.311-2.671,0.859-4.899,1.67-6.841c0.9-2.148,1.939-4.27,2.951-6.318c0.817-1.66,1.67-3.37,2.42-5.08 + c1.42-3.2,1.959-6.221,1.648-9.21c-0.511-4.88-3.729-7.79-8.601-7.79c-0.229,0-0.459,0.01-0.688,0.02 + c-4.132,0.23-7.65,2.102-10.892,3.99c-1.229,0.72-2.438,1.51-3.729,2.36c-0.621,0.409-1.263,0.829-1.941,1.27l-3.049,1.96 + l1.608-3.25l0.302-0.62c0.157-0.33,0.288-0.59,0.43-0.84c1.979-3.67,3.93-7.67,4.76-11.97c0.279-1.431,0.351-2.91,0.209-4.26 + c-0.209-2.16-1.397-3.342-3.34-3.342c-0.43,0-0.899,0.062-1.389,0.182c-2.142,0.52-4.19,1.67-6.263,3.51 + c-5.897,5.271-8.868,11.09-9.067,17.81c-0.103,3.61,0.949,6.16,3.629,8.812l0.552,0.55l-0.392,0.67c-0.41,0.7-0.82,1.41-1.222,2.12 + c-0.907,1.59-1.84,3.229-2.868,4.8c-4.812,7.33-10.32,12.82-16.841,16.771c-2.35,1.43-5.211,2.93-8.528,3.318 + c-0.711,0.08-1.42,0.12-2.103,0.12c-7.028,0-11.608-4.38-11.958-11.438c-0.01-0.221,0.02-0.392,0.05-0.53l0.03-0.16l0.189-1.12 + l1.09,0.33c0.41,0.13,0.82,0.261,1.221,0.391c0.851,0.271,1.65,0.529,2.459,0.729c1.51,0.38,3.041,0.57,4.57,0.57 + c5.5,0,10.75-2.471,14.391-6.78c3.57-4.229,5.101-9.76,4.181-15.17c-1-5.92-5.9-10.45-11.921-11.01 + c-0.891-0.08-1.77-0.13-2.641-0.13c-7.959,0-14.789,3.6-20.889,11c-2.381,2.88-4.051,6.21-5.831,9.948c-1.62,3.4-4.72,5.48-6.9,6.75 + c-2.02,1.16-3.8,1.7-5.61,1.7c-0.19,0-0.38,0-0.57-0.01l-1.25-0.08l0.35-1.2c0.25-0.819,0.5-1.64,0.74-2.438 + c0.55-1.79,1.07-3.472,1.5-5.2c1.29-5.29,1.44-9.601,0.47-13.57c-1.08-4.359-3.94-6.77-8.07-6.77c-0.44,0-0.9,0.029-1.37,0.09 + c-2.13,0.24-3.89,1.46-5.36,3.71c-2.4,3.689-3.45,8.14-3.28,14.021c0.16,5.511,1.48,10.011,4.03,13.729 + c0.36,0.53,0.52,1.479,0.16,2.12c-1.64,2.79-3.59,5.6-6.77,7.2c-1.34,0.67-2.68,1.01-3.99,1.01c-2.72,0-5.11-1.44-6.74-4.062 + c-1.76-2.829-2.68-6.14-2.82-10.13c-0.27-7.688,1.44-14.858,5.08-21.33l0.06-0.108c0.09-0.19,0.23-0.48,0.5-0.71 + c0.89-0.771,0.87-1.33-0.1-3c-1.64-2.852-4.5-4.551-7.66-4.551c-2.64,0-5.19,1.17-7.16,3.279c-2.98,3.19-4.91,7.32-6.08,12.99 + c-0.34,1.649-0.54,3.37-0.74,5.04c-0.1,0.899-0.21,1.8-0.33,2.689c-0.08,0.521-0.2,1.119-0.53,1.631 + c-5.58,8.479-11.85,14.448-19.18,18.278c-2.98,1.551-5.75,2.312-8.48,2.312c-1.44,0-2.88-0.221-4.3-0.642 + c-4.8-1.46-7.88-6.028-7.65-11.38l0.06-1.29l1.24,0.37c0.39,0.12,0.77,0.24,1.16,0.37c0.75,0.23,1.5,0.47,2.26,0.68 + c1.58,0.432,3.21,0.65,4.84,0.65c10.23-0.01,18.47-8.11,18.77-18.45c0.18-6.33-2.4-10.779-7.66-13.25c-2.14-1.01-4.41-1.5-6.97-1.5 + c-1.3,0-2.69,0.141-4.12,0.4c-7.35,1.35-13.39,5.54-18.49,12.819c-2.24,3.199-3.94,6.659-5.05,10.279 + c-0.91,2.931-2.81,5.13-4.66,7.26l-0.08,0.102c-2.25,2.6-4.84,4.938-6.83,6.68c-0.8,0.69-2.03,1.15-3.67,1.351 + c-0.18,0.029-0.34,0.04-0.5,0.04c-0.99,0-1.56-0.409-1.86-0.761c-0.47-0.54-0.64-1.279-0.51-2.199c0.31-2.229,0.71-3.989,1.25-5.54 + c0.71-2.029,1.49-4.069,2.24-6.04c0.92-2.399,1.87-4.891,2.69-7.359c1.65-4.92,1.24-9.021-1.24-12.561 + c-2.04-2.921-5.1-4.279-9.62-4.279h-0.25c-5.89,0.068-12.67,0.818-18.42,6.229c-0.22,0.21-0.43,0.551-0.67,0.87 + c-0.31,0.44-0.14,0.21-0.51,0.76l-0.62,0.87l-0.01,0.051l-0.01-0.021l0.02-0.03l0.15-0.56c0.34-1.21,0.68-2.42,1.02-3.63 + c0.78-2.771,1.58-5.63,2.28-8.46l0.31-1.24c0.67-2.65,1.36-5.391,1.53-8.07c0.28-4.2-2.6-7.6-6.83-8.08 + c-0.21-0.02-0.38-0.09-0.52-0.17h-2.23c-4.61,1.09-8.87,3.61-13.03,7.7c-0.06,0.061-0.14,0.19-0.18,0.29 + c1.58,4.22,1.42,8.61,1.05,12.35c-0.6,6.12-1.43,12.642-2.6,20.49c-0.25,1.641-1.26,3.12-2.17,4.46 + c-5.48,8.01-11.74,13.82-19.14,17.75c-3.46,1.84-6.46,2.71-9.5,2.721c-5.04,0-9.46-3.609-10.51-8.601 + c-1.06-4.979-0.4-10.14,2.08-16.21c1.23-3.04,3.11-6.9,6.67-9.729c0.94-0.75,2.14-1.341,3.38-1.659c0.5-0.12,0.99-0.19,1.45-0.19 + c1.22,0,2.28,0.46,2.97,1.29c0.77,0.92,1.04,2.23,0.78,3.7c-0.37,2.04-1.07,4.02-1.82,6.04c-0.45,1.21-1.12,2.49-1.98,3.8 + c-0.24,0.36-0.29,0.479,0.16,0.96c1.09,1.16,2.45,1.73,4.17,1.73c0.38,0,0.8-0.03,1.22-0.092c3.31-0.47,6.13-2.158,7.95-4.76 + c1.84-2.64,2.47-5.93,1.76-9.26c-1.59-7.46-7.19-11.73-15.35-11.73c-0.24,0-0.49,0-0.74,0.012c-7.16,0.22-13.41,3.26-18.56,9.05 + c-7.46,8.37-10.91,17.96-10.26,28.49c0.5,8.02,4.09,13.479,10.67,16.21c2.57,1.068,5.31,1.59,8.38,1.59c1.5,0,3.11-0.13,4.78-0.38 + c8.69-1.33,16.43-5.432,24.38-12.88c0.89-0.83,1.8-1.631,2.61-2.342l0.93-0.818l1.8-1.602l-0.14,2.41 + c-0.03,0.51-0.07,1.07-0.12,1.65c-0.11,1.398-0.23,2.979-0.19,4.52c0.05,1.59,0.33,3.17,0.81,4.58c0.96,2.771,3.34,4.29,6.78,4.29 + c2.56-0.01,4.76-0.71,6.51-2.06c0.26-0.2,0.44-0.49,0.46-0.61c0.47-2.51,0.91-5.03,1.36-7.54c0.69-3.92,1.41-7.979,2.2-11.95 + c0.63-3.159,1.42-6.33,2.19-9.39c0.28-1.09,0.55-2.19,0.82-3.29c0.11-0.43,0.38-1.22,0.99-1.66c3.13-2.229,6.01-3.27,9.09-3.27h0.12 + c1.6,0.02,2.93,0.54,3.86,1.5c0.88,0.909,1.33,2.159,1.29,3.59c-0.07,2.39-0.39,4.85-0.95,7.319c-0.51,2.229-1.1,4.46-1.67,6.619 + c-0.65,2.45-1.32,4.98-1.86,7.49c-0.63,2.9-0.41,5.83,0.65,8.47c1.18,2.95,3.54,4.552,7,4.762c0.3,0.02,0.59,0.028,0.89,0.028 + c3.36,0,6.64-1.119,10.33-3.528c3.9-2.54,7.44-5.94,11.48-11.021l0.15-0.188c0.14-0.19,0.29-0.37,0.45-0.562 + c0.25-0.279,0.56-0.35,0.62-0.359l0.95-0.341l0.33,0.96c0.2,0.61,0.39,1.21,0.58,1.82c0.41,1.32,0.79,2.561,1.33,3.73 + c2.65,5.75,7.27,8.938,14.11,9.778c1.26,0.16,2.53,0.23,3.78,0.23c5.41,0,10.79-1.392,16.45-4.26 + c6.83-3.472,12.86-8.602,17.92-15.25c0.19-0.262,0.4-0.5,0.58-0.71l1.07-1.312l0.63,1.58c0.41,1.03,0.8,2.08,1.2,3.14 + c0.88,2.352,1.8,4.79,2.9,7.08c1.67,3.45,4.11,6.07,7.24,7.812c2.49,1.37,5.1,2.068,7.77,2.068c2.29,0,4.7-0.51,7.17-1.528 + c5.5-2.262,9.33-6.57,12.06-10.08c0.94-1.2,1.81-2.521,2.65-3.79c0.54-0.82,1.08-1.642,1.64-2.44c0.09-0.12,0.86-1.17,1.94-1.17 + h0.01c0.61,0.04,1.22,0.07,1.83,0.07c3.92,0,7.35-0.87,10.49-2.66l1.3-0.74l0.19,1.48c0.09,0.729,0.17,1.45,0.24,2.16 + c0.16,1.5,0.3,2.92,0.63,4.278c2.12,8.972,8.069,13.762,17.69,14.23c0.539,0.03,1.069,0.04,1.591,0.04 + c5.51,0,11.049-1.44,16.469-4.271c11.811-6.18,20.342-15.858,26.061-29.59c0.23-0.54,0.41-1.1,0.611-1.688 + c0.18-0.552,0.359-1.092,0.568-1.631c0.229-0.569,0.801-1.25,1.489-1.381c0.541-0.1,1.08-0.21,1.61-0.318 + c1.75-0.352,3.55-0.71,5.38-0.762l0.17-0.01c1.561,0,2.92,0.602,3.83,1.682c0.938,1.118,1.291,2.648,1,4.3 + c-0.359,2.01-0.959,4.02-1.779,5.96c-1.85,4.39-3.649,9.16-4.211,14.26c-0.479,4.28,0.142,7.26,2,9.67 + c1.701,2.21,4.051,3.24,7.4,3.24c0.52,0,1.069-0.021,1.641-0.07c3.51-0.31,6.9-1.66,11-4.398c3.74-2.49,7.25-5.69,10.729-9.79 + c0.221-0.262,0.45-0.512,0.7-0.812l1.65-1.87l0.5,1.78c0.129,0.46,0.24,0.92,0.359,1.35c0.229,0.882,0.448,1.722,0.729,2.5 + c2.449,6.921,7.359,10.73,15,11.642c1.209,0.14,2.439,0.21,3.65,0.21c5.379,0,10.77-1.392,16.459-4.271 + c6.108-3.09,11.471-7.448,16.399-13.318c0.142-0.17,0.279-0.33,0.49-0.562l2.189-2.49v2.65c0,0.7-0.021,1.38-0.039,2.03 + c-0.041,1.34-0.08,2.608,0.08,3.8c0.299,2.17,0.67,4.46,1.528,6.45c1.431,3.3,4.289,5.2,7.83,5.2c1.459,0,2.969-0.32,4.49-0.96 + c6.549-2.75,11.858-7.342,15.76-11.03c1.709-1.61,3.299-3.28,4.99-5.05c0.76-0.802,1.52-1.592,2.289-2.392l1.131-1.16l0.529,1.54 + c0.188,0.54,0.371,1.08,0.541,1.63c0.389,1.182,0.789,2.392,1.25,3.54c2.75,6.78,6.979,11.11,12.938,13.24 + c2.439,0.87,4.93,1.312,7.4,1.312c2.647,0,5.33-0.5,7.979-1.512c7.842-2.97,13.781-8.08,17.683-15.21 + c0.879-1.6,2.01-2.06,3.448-2.238c6.882-0.892,11.662-7.094,14.271-11.316c0.682-1.117,1.252-2.35,1.803-3.551 + c0.244-0.525,0.482-1.053,0.738-1.566v-0.334C501.428,40.331,500.891,40.068,500.264,40.068z M356.498,45.45 + c1.539-5.56,3.688-11.22,8.969-15.04c0.801-0.58,1.812-1.05,3.021-1.39c0.471-0.13,0.891-0.19,1.28-0.19c1.5,0,2.5,0.9,2.98,2.68 + c0.779,2.921-0.09,5.632-0.812,7.41c-2.1,5.222-6.211,8.09-11.561,8.09c-1,0-2.049-0.108-3.109-0.31l-1.061-0.21L356.498,45.45z + M249.947,45.54c1.55-5.62,3.711-11.359,9.07-15.188c0.76-0.552,1.76-0.99,3.039-1.352c0.42-0.12,0.82-0.18,1.201-0.18 + c1.539,0,2.629,0.99,2.9,2.63c0.289,1.76,0.289,3.49-0.012,5.01c-1.25,6.33-6.229,10.602-12.41,10.62 + c-0.659,0-1.299-0.08-1.979-0.17c-0.301-0.04-0.621-0.07-0.94-0.11l-1.181-0.119L249.947,45.54z M134.737,45.54 + c1.55-5.62,3.72-11.359,9.06-15.188c0.77-0.552,1.77-0.99,3.04-1.352c0.42-0.12,0.83-0.18,1.21-0.18c1.54,0,2.63,0.979,2.9,2.62 + c0.29,1.77,0.29,3.5-0.01,5.01c-1.24,6.34-6.22,10.61-12.4,10.63c-0.66,0-1.29-0.08-1.96-0.16c-0.31-0.04-0.64-0.08-0.97-0.12 + l-1.19-0.108L134.737,45.54z M468.758,50.969c-0.67,4.82-2.801,8.461-6.32,10.802c-1.52,1.01-3.17,1.55-4.77,1.55 + c-3.221,0-5.971-2.19-7.17-5.73c-1.48-4.38-1.371-9.13,0.33-14.54c1.52-4.818,3.93-8.318,7.379-10.71 + c1.729-1.198,3.92-1.92,5.85-1.92c0.103,0,0.201,0,0.302,0.011l0.959,0.029v0.971c0,0.771-0.011,1.54-0.021,2.311 + c-0.029,1.67-0.061,3.39,0.051,5.06c0.23,3.592,1.209,7.03,2.92,10.222C468.527,49.51,468.867,50.23,468.758,50.969z"/> +</svg> diff --git a/content/legacy/system/chevereto.png b/content/legacy/system/chevereto.png new file mode 100644 index 0000000000000000000000000000000000000000..6277da1dd3f69b55dfcc94fae6b6c46abc4e3b53 GIT binary patch literal 2798 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 literal 0 HcmV?d00001 diff --git a/content/legacy/system/chevereto.svg b/content/legacy/system/chevereto.svg new file mode 100644 index 0000000..f7615b9 --- /dev/null +++ b/content/legacy/system/chevereto.svg @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="501.76px" height="76.521px" viewBox="0 0 501.76 76.521" enable-background="new 0 0 501.76 76.521" xml:space="preserve"> +<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M500.264,40.068c-0.738,0-1.422,0.359-1.814,0.963 + c-1.184,1.791-2.361,3.53-3.713,5.117c-1.295,1.514-5.34,4.031-8.699,4.662l-1.33,0.25l0.16-1.351l0.15-1.28 + c0.109-0.909,0.219-1.779,0.289-2.649c0.551-6.7-0.029-11.69-1.889-16.2c-1.682-4.08-3.941-6.57-7.111-7.85 + c-1.18-0.48-2.279-0.721-3.26-0.721c-2.17,0-3.93,1.17-5.389,3.58c-0.15,0.25-0.291,0.5-0.461,0.78l-0.67,1.18l-0.91-0.75 + c-0.42-0.34-0.82-0.67-1.23-1.01c-0.949-0.79-1.859-1.54-2.799-2.26c-0.76-0.57-1.641-1.07-2.561-1.59c-2-1.13-4.09-1.71-6.23-1.71 + c-3.869,0-7.811,1.899-10.811,5.22c-4.908,5.42-7.859,12.11-8.77,19.86c-0.109,0.989-0.389,2.279-1.48,3.479 + c-3.629,3.98-7.969,8.45-13.689,11.29c-1.23,0.61-2.73,1.01-4.34,1.18c-0.18,0.021-0.359,0.03-0.52,0.03 + c-0.85,0-1.5-0.26-1.951-0.76c-0.479-0.54-0.658-1.3-0.549-2.32c0.26-2.26,0.59-4.67,1.26-6.99c1.08-3.75,2.27-7.529,3.43-11.189 + c0.6-1.91,1.201-3.83,1.791-5.74c0.33-1.09,1.01-1.6,2.199-1.649c1.471-0.061,2.891-0.131,4.23-0.45 + c1.959-0.45,3.369-1.37,4.08-2.65c0.719-1.31,0.75-3.03,0.09-4.99c-0.061-0.17-0.121-0.33-0.189-0.489l-7.182,0.689l0.281-1.33 + c0.129-0.649,0.27-1.27,0.4-1.88c0.299-1.36,0.58-2.66,0.799-3.939c0.381-2.221,0.59-4.811-0.65-7.19 + c-1.379-2.64-4.219-4.28-7.42-4.28c-0.709,0-1.43,0.08-2.139,0.25c-5.301,1.24-9.301,4.58-12.23,7.471l1.76,9.699l-1,0.16 + c-0.5,0.09-0.961,0.16-1.391,0.22c-0.859,0.131-1.6,0.24-2.309,0.421c-1.852,0.46-3.041,1.229-3.551,2.29 + c-0.51,1.05-0.359,2.47,0.43,4.22c0.141,0.33,0.311,0.64,0.471,0.939l6.389-1.149l-0.26,1.42c-0.148,0.82-0.279,1.63-0.41,2.42 + c-0.5,3.15-0.979,6.13-2.719,8.97c-5.551,9.07-11.52,15.36-18.76,19.79c-2.17,1.33-5.111,2.91-8.521,3.33 + c-0.729,0.09-1.449,0.14-2.139,0.14c-3.551,0-6.561-1.14-8.701-3.29c-2.119-2.13-3.219-5.13-3.199-8.689l0.01-1.33l1.279,0.38 + c0.4,0.13,0.801,0.25,1.201,0.38c0.75,0.23,1.48,0.46,2.23,0.67c1.58,0.431,3.219,0.65,4.85,0.65 + c10.219-0.01,18.459-8.11,18.76-18.46c0.18-6.32-2.4-10.771-7.66-13.25c-2.141-1-4.41-1.49-6.971-1.49 + c-1.299,0-2.689,0.14-4.129,0.4c-7.34,1.35-13.381,5.54-18.48,12.83c-1.971,2.81-3.57,6.02-5.18,10.42 + c-0.58,1.58-1.48,3.22-2.75,5.01c-2.09,2.96-4.721,6.32-8.291,8.82c-1.359,0.96-2.859,1.649-4.33,2.01 + c-0.34,0.08-0.689,0.12-1.02,0.12c-1.039,0-1.959-0.4-2.609-1.12c-0.65-0.73-0.939-1.73-0.811-2.811 + c0.311-2.67,0.859-4.899,1.67-6.84c0.9-2.149,1.939-4.27,2.951-6.319c0.818-1.66,1.67-3.37,2.42-5.08 + c1.42-3.2,1.959-6.221,1.648-9.21c-0.51-4.88-3.729-7.79-8.6-7.79c-0.23,0-0.459,0.01-0.689,0.02 + c-4.131,0.23-7.65,2.101-10.891,3.99c-1.229,0.72-2.439,1.51-3.729,2.36c-0.621,0.409-1.262,0.829-1.941,1.27l-3.049,1.96 + l1.609-3.25l0.301-0.62c0.158-0.33,0.289-0.59,0.43-0.84c1.979-3.67,3.93-7.67,4.76-11.97c0.279-1.431,0.35-2.91,0.209-4.26 + c-0.209-2.16-1.398-3.341-3.34-3.341c-0.43,0-0.9,0.061-1.389,0.181c-2.141,0.52-4.191,1.67-6.262,3.51 + c-5.898,5.27-8.869,11.09-9.068,17.81c-0.102,3.61,0.949,6.16,3.629,8.811l0.551,0.55l-0.391,0.67c-0.41,0.7-0.82,1.41-1.221,2.12 + c-0.908,1.59-1.84,3.229-2.869,4.8c-4.811,7.33-10.32,12.82-16.84,16.771c-2.35,1.43-5.211,2.93-8.529,3.319 + c-0.711,0.08-1.42,0.12-2.102,0.12c-7.029,0-11.609-4.38-11.959-11.439c-0.01-0.221,0.02-0.391,0.05-0.53l0.03-0.16l0.189-1.12 + l1.09,0.33c0.41,0.13,0.82,0.26,1.221,0.39c0.85,0.271,1.65,0.53,2.459,0.73c1.51,0.38,3.041,0.57,4.57,0.57 + c5.5,0,10.75-2.471,14.391-6.78c3.57-4.23,5.1-9.76,4.18-15.17c-1-5.92-5.9-10.45-11.92-11.01c-0.891-0.08-1.77-0.13-2.641-0.13 + c-7.959,0-14.789,3.6-20.889,11c-2.381,2.88-4.051,6.21-5.831,9.949c-1.62,3.4-4.72,5.48-6.9,6.75c-2.02,1.16-3.8,1.7-5.61,1.7 + c-0.19,0-0.38,0-0.57-0.01l-1.25-0.08l0.35-1.2c0.25-0.82,0.5-1.64,0.74-2.439c0.55-1.79,1.07-3.471,1.5-5.2 + c1.29-5.29,1.44-9.601,0.47-13.57c-1.08-4.36-3.94-6.77-8.07-6.77c-0.44,0-0.9,0.029-1.37,0.09c-2.13,0.24-3.89,1.46-5.36,3.71 + c-2.4,3.689-3.45,8.14-3.28,14.02c0.16,5.511,1.48,10.011,4.03,13.73c0.36,0.53,0.52,1.479,0.16,2.12c-1.64,2.79-3.59,5.6-6.77,7.2 + c-1.34,0.67-2.68,1.01-3.99,1.01c-2.72,0-5.11-1.44-6.74-4.061c-1.76-2.83-2.68-6.14-2.82-10.13c-0.27-7.689,1.44-14.859,5.08-21.33 + l0.06-0.109c0.09-0.19,0.23-0.48,0.5-0.71c0.89-0.771,0.87-1.33-0.1-3c-1.64-2.851-4.5-4.551-7.66-4.551 + c-2.64,0-5.19,1.17-7.16,3.28c-2.98,3.19-4.91,7.32-6.08,12.99c-0.34,1.649-0.54,3.37-0.74,5.04c-0.1,0.899-0.21,1.8-0.33,2.689 + c-0.08,0.521-0.2,1.12-0.53,1.631c-5.58,8.479-11.85,14.449-19.18,18.279c-2.98,1.55-5.75,2.311-8.48,2.311 + c-1.44,0-2.88-0.221-4.3-0.641c-4.8-1.46-7.88-6.029-7.65-11.38l0.06-1.29l1.24,0.37c0.39,0.12,0.77,0.24,1.16,0.37 + c0.75,0.23,1.5,0.47,2.26,0.68c1.58,0.431,3.21,0.65,4.84,0.65c10.23-0.01,18.47-8.11,18.77-18.45c0.18-6.33-2.4-10.78-7.66-13.25 + c-2.14-1.01-4.41-1.5-6.97-1.5c-1.3,0-2.69,0.14-4.12,0.4c-7.35,1.35-13.39,5.54-18.49,12.819c-2.24,3.2-3.94,6.66-5.05,10.28 + c-0.91,2.93-2.81,5.13-4.66,7.26l-0.08,0.101c-2.25,2.6-4.84,4.939-6.83,6.68c-0.8,0.69-2.03,1.15-3.67,1.35 + c-0.18,0.03-0.34,0.04-0.5,0.04c-0.99,0-1.56-0.409-1.86-0.76c-0.47-0.54-0.64-1.28-0.51-2.2c0.31-2.229,0.71-3.989,1.25-5.54 + c0.71-2.029,1.49-4.069,2.24-6.04c0.92-2.399,1.87-4.89,2.69-7.359c1.65-4.92,1.24-9.021-1.24-12.561 + c-2.04-2.92-5.1-4.279-9.62-4.279h-0.25c-5.89,0.069-12.67,0.819-18.42,6.229c-0.22,0.21-0.43,0.55-0.67,0.87 + c-0.31,0.44-0.14,0.21-0.51,0.76l-0.62,0.87l-0.01,0.05l-0.01-0.02l0.02-0.03l0.15-0.56c0.34-1.21,0.68-2.42,1.02-3.63 + c0.78-2.771,1.58-5.63,2.28-8.46l0.31-1.24c0.67-2.65,1.36-5.391,1.53-8.07c0.28-4.2-2.6-7.6-6.83-8.08 + c-0.21-0.02-0.38-0.09-0.52-0.17h-2.23c-4.61,1.09-8.87,3.61-13.03,7.7c-0.06,0.06-0.14,0.19-0.18,0.29 + c1.58,4.22,1.42,8.61,1.05,12.35c-0.6,6.12-1.43,12.641-2.6,20.49c-0.25,1.64-1.26,3.12-2.17,4.46 + c-5.48,8.01-11.74,13.82-19.14,17.75c-3.46,1.84-6.46,2.71-9.5,2.72c-5.04,0-9.46-3.609-10.51-8.6c-1.06-4.98-0.4-10.14,2.08-16.21 + c1.23-3.04,3.11-6.9,6.67-9.73c0.94-0.75,2.14-1.34,3.38-1.659c0.5-0.12,0.99-0.19,1.45-0.19c1.22,0,2.28,0.46,2.97,1.29 + c0.77,0.92,1.04,2.23,0.78,3.7c-0.37,2.04-1.07,4.02-1.82,6.04c-0.45,1.21-1.12,2.49-1.98,3.8c-0.24,0.36-0.29,0.479,0.16,0.96 + c1.09,1.16,2.45,1.73,4.17,1.73c0.38,0,0.8-0.03,1.22-0.091c3.31-0.47,6.13-2.159,7.95-4.76c1.84-2.64,2.47-5.93,1.76-9.26 + c-1.59-7.46-7.19-11.73-15.35-11.73c-0.24,0-0.49,0-0.74,0.011c-7.16,0.22-13.41,3.26-18.56,9.05 + c-7.46,8.37-10.91,17.96-10.26,28.49c0.5,8.02,4.09,13.479,10.67,16.21c2.57,1.069,5.31,1.59,8.38,1.59c1.5,0,3.11-0.13,4.78-0.38 + c8.69-1.33,16.43-5.431,24.38-12.88c0.89-0.83,1.8-1.631,2.61-2.341l0.93-0.819l1.8-1.601l-0.14,2.41 + c-0.03,0.51-0.07,1.07-0.12,1.65c-0.11,1.399-0.23,2.979-0.19,4.52c0.05,1.59,0.33,3.17,0.81,4.58c0.96,2.771,3.34,4.29,6.78,4.29 + c2.56-0.01,4.76-0.71,6.51-2.06c0.26-0.2,0.44-0.49,0.46-0.61c0.47-2.51,0.91-5.03,1.36-7.54c0.69-3.92,1.41-7.979,2.2-11.95 + c0.63-3.16,1.42-6.33,2.19-9.39c0.28-1.09,0.55-2.19,0.82-3.29c0.11-0.43,0.38-1.22,0.99-1.66c3.13-2.229,6.01-3.27,9.09-3.27h0.12 + c1.6,0.02,2.93,0.54,3.86,1.5c0.88,0.909,1.33,2.159,1.29,3.59c-0.07,2.39-0.39,4.85-0.95,7.319c-0.51,2.23-1.1,4.46-1.67,6.62 + c-0.65,2.45-1.32,4.98-1.86,7.49c-0.63,2.9-0.41,5.83,0.65,8.47c1.18,2.95,3.54,4.551,7,4.761c0.3,0.02,0.59,0.029,0.89,0.029 + c3.36,0,6.64-1.12,10.33-3.529c3.9-2.54,7.44-5.94,11.48-11.021l0.15-0.189c0.14-0.19,0.29-0.37,0.45-0.561 + c0.25-0.28,0.56-0.35,0.62-0.36l0.95-0.34l0.33,0.96c0.2,0.61,0.39,1.21,0.58,1.82c0.41,1.32,0.79,2.56,1.33,3.73 + c2.65,5.75,7.27,8.939,14.11,9.779c1.26,0.16,2.53,0.23,3.78,0.23c5.41,0,10.79-1.391,16.45-4.26 + c6.83-3.471,12.86-8.601,17.92-15.25c0.19-0.261,0.4-0.5,0.58-0.71l1.07-1.311l0.63,1.58c0.41,1.03,0.8,2.08,1.2,3.14 + c0.88,2.351,1.8,4.79,2.9,7.08c1.67,3.45,4.11,6.07,7.24,7.811c2.49,1.37,5.1,2.069,7.77,2.069c2.29,0,4.7-0.51,7.17-1.529 + c5.5-2.261,9.33-6.57,12.06-10.08c0.94-1.2,1.81-2.521,2.65-3.79c0.54-0.82,1.08-1.641,1.64-2.44c0.09-0.12,0.86-1.17,1.94-1.17 + h0.01c0.61,0.04,1.22,0.07,1.83,0.07c3.92,0,7.35-0.87,10.49-2.66l1.3-0.74l0.19,1.48c0.09,0.729,0.17,1.45,0.24,2.16 + c0.16,1.5,0.3,2.92,0.63,4.279c2.12,8.971,8.069,13.761,17.69,14.23c0.539,0.03,1.069,0.04,1.59,0.04 + c5.51,0,11.049-1.44,16.469-4.271c11.811-6.18,20.342-15.859,26.061-29.59c0.23-0.54,0.41-1.1,0.611-1.689 + c0.18-0.551,0.359-1.091,0.568-1.631c0.23-0.569,0.801-1.25,1.49-1.38c0.541-0.1,1.08-0.21,1.611-0.319 + c1.75-0.351,3.549-0.71,5.379-0.761l0.17-0.01c1.561,0,2.92,0.601,3.83,1.681c0.939,1.119,1.291,2.649,1,4.3 + c-0.359,2.01-0.959,4.02-1.779,5.96c-1.85,4.39-3.65,9.16-4.211,14.26c-0.48,4.28,0.141,7.26,2,9.67c1.701,2.21,4.051,3.24,7.4,3.24 + c0.52,0,1.07-0.021,1.641-0.07c3.51-0.31,6.9-1.66,11-4.399c3.74-2.49,7.25-5.69,10.729-9.79c0.221-0.261,0.451-0.511,0.701-0.811 + l1.65-1.87l0.5,1.78c0.129,0.46,0.24,0.92,0.359,1.35c0.23,0.881,0.449,1.721,0.73,2.5c2.449,6.92,7.359,10.73,15,11.641 + c1.209,0.14,2.439,0.21,3.65,0.21c5.379,0,10.77-1.391,16.459-4.271c6.109-3.09,11.471-7.449,16.4-13.319 + c0.141-0.17,0.279-0.33,0.49-0.561l2.189-2.49v2.65c0,0.7-0.02,1.38-0.039,2.03c-0.041,1.34-0.08,2.609,0.08,3.8 + c0.299,2.17,0.67,4.46,1.529,6.45c1.43,3.3,4.289,5.2,7.83,5.2c1.459,0,2.969-0.32,4.49-0.96c6.549-2.75,11.859-7.341,15.76-11.03 + c1.709-1.61,3.299-3.28,4.99-5.05c0.76-0.801,1.52-1.591,2.289-2.391l1.131-1.16l0.529,1.54c0.189,0.54,0.371,1.08,0.541,1.63 + c0.389,1.181,0.789,2.391,1.25,3.54c2.75,6.78,6.979,11.11,12.939,13.24c2.439,0.87,4.93,1.311,7.4,1.311 + c2.648,0,5.33-0.5,7.979-1.511c7.842-2.97,13.781-8.08,17.682-15.21c0.879-1.6,2.01-2.06,3.449-2.239 + c6.881-0.891,11.662-7.093,14.271-11.316c0.682-1.117,1.252-2.35,1.803-3.551c0.244-0.525,0.482-1.053,0.738-1.566v-0.334 + C501.428,40.331,500.891,40.068,500.264,40.068z M356.498,45.45c1.539-5.56,3.689-11.22,8.969-15.04 + c0.801-0.58,1.811-1.05,3.02-1.39c0.471-0.13,0.891-0.19,1.281-0.19c1.5,0,2.5,0.9,2.98,2.68c0.779,2.92-0.09,5.631-0.811,7.41 + c-2.1,5.221-6.211,8.09-11.561,8.09c-1,0-2.049-0.109-3.109-0.31l-1.061-0.21L356.498,45.45z M249.947,45.54 + c1.55-5.62,3.711-11.36,9.07-15.189c0.76-0.551,1.76-0.99,3.039-1.351c0.42-0.12,0.82-0.18,1.201-0.18c1.539,0,2.629,0.99,2.9,2.63 + c0.289,1.76,0.289,3.49-0.012,5.01c-1.25,6.33-6.229,10.601-12.41,10.62c-0.659,0-1.299-0.08-1.979-0.17 + c-0.301-0.04-0.621-0.07-0.94-0.11l-1.181-0.12L249.947,45.54z M134.737,45.54c1.55-5.62,3.72-11.36,9.06-15.189 + c0.77-0.551,1.77-0.99,3.04-1.351c0.42-0.12,0.83-0.18,1.21-0.18c1.54,0,2.63,0.979,2.9,2.62c0.29,1.77,0.29,3.5-0.01,5.01 + c-1.24,6.34-6.22,10.61-12.4,10.63c-0.66,0-1.29-0.08-1.96-0.16c-0.31-0.04-0.64-0.08-0.97-0.12l-1.19-0.109L134.737,45.54z + M468.758,50.97c-0.67,4.82-2.801,8.46-6.32,10.801c-1.52,1.01-3.17,1.55-4.77,1.55c-3.221,0-5.971-2.19-7.17-5.73 + c-1.48-4.38-1.371-9.13,0.33-14.54c1.52-4.819,3.93-8.319,7.379-10.71c1.73-1.199,3.92-1.92,5.85-1.92c0.102,0,0.201,0,0.301,0.01 + l0.959,0.03v0.97c0,0.771-0.01,1.54-0.02,2.311c-0.029,1.67-0.061,3.39,0.051,5.06c0.23,3.591,1.209,7.03,2.92,10.221 + C468.527,49.51,468.867,50.23,468.758,50.97z"/> +</svg> diff --git a/content/legacy/system/favicon.png b/content/legacy/system/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..f68d57fa6e3e49f9b0a62ee56e4c3ec0dba8c0c2 GIT binary patch literal 2057 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 n0000000000000000000S%^PcxGE4>j00000NkvXXu0mjfWf9YO literal 0 HcmV?d00001 diff --git a/content/legacy/system/style.css b/content/legacy/system/style.css new file mode 100644 index 0000000..1f0cdb7 --- /dev/null +++ b/content/legacy/system/style.css @@ -0,0 +1,634 @@ +html, +body { + height: 100%; +} + +body { + margin: 0; + background: #3498db; + background: linear-gradient(to bottom, #3498db 0%, #8e44ad 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3498db", endColorstr="#8e44ad", GradientType=0) +} + +html#error body { + background: #ecf0f1; +} + +html { + color: #000; + font: 16px Helvetica, Arial, sans-serif; + line-height: 1.3; + +} + +.body--block { + margin: 20px +} + +.body--flex { + margin: 0; + display: flex; + flex-direction: column; +} + +.user-select-none { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.force-select { + -webkit-user-select: all; + /* Chrome 49+ */ + -moz-user-select: all; + /* Firefox 43+ */ + -ms-user-select: all; + /* No support yet */ + user-select: all; + /* Likely future */ +} + +main { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + border: 0; + display: flex; + align-items: center; + justify-content: center; + overflow-y: auto; + flex: 1; +} + +@media (min-width: 768px) { + main { + padding: 20px + } +} + +main>div { + width: 630px; +} + +.main--stack { + width: 100%; + max-width: 900px +} + +* { + -ms-box-sizing: border-box; + box-sizing: border-box; + outline: 0; +} + +a { + color: #3498db; + outline: 0; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +p, +ul>li { + line-height: 140%; +} + +.soft-hidden { + display: none; +} + +.p { + margin-top: 20px; + margin-bottom: 20px; +} + +.highlight, +.alert, +.log { + font-size: 0.9em; + padding: 1em; +} + +.highlight:empty, +.alert:empty { + display: none; +} + +.highlight { + background: rgba(255, 255, 255, .5); + border-left: 4px solid #8e44ad; +} + +.alert { + position: relative; + background: rgba(241, 196, 15, .3); + border-left: 4px solid #f1c40f; + padding-right: 2em; +} + +.alert pre { + overflow: auto; +} + +.alert pre, +.alert code { + background: rgba(241, 196, 15, .3); +} + +.alert pre code { + background: transparent; +} + +.shake { + -webkit-animation: shake 0.5s cubic-bezier(.36, .07, .19, .97) both; + animation: shake 0.5s cubic-bezier(.36, .07, .19, .97) both; + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + perspective: 1000px; +} + +.alert-close { + cursor: pointer; + position: absolute; + right: 1em; + top: 1em; + width: 1em; + height: 1em; + opacity: 0.3; +} + +.alert-close:hover { + opacity: 1; +} + +.alert-close:before, +.alert-close:after { + position: absolute; + left: 7.5px; + content: ' '; + height: 16px; + width: 2px; + background-color: #333; +} + +.alert-close:before { + transform: rotate(45deg); +} + +.alert-close:after { + transform: rotate(-45deg); +} + +input, select, button, .button { + font-family: Helvetica, Arial, sans-serif; + padding: 10px; + color: #000; +} + +input { + border: 1px solid rgba(0, 0, 0, .1); + background: transparent; + border-top-color: transparent; + border-left-color: transparent; + border-right-color: transparent; + padding-left: 0; + transition: border-width 1s linear; +} + +input:focus, +select:focus { + border-bottom-color: #3498db; +} + +/* Go home Chrome, you are drunk */ +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus input:-webkit-autofill, +textarea:-webkit-autofill, +textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus, +select:-webkit-autofill, +select:-webkit-autofill:hover, +select:-webkit-autofill:focus { + -webkit-text-fill-color: inherit; + -webkit-box-shadow: 0 0 0px 1000px transparent inset; + -webkit-transition: background-color 5000s ease-in-out 0s; + transition: background-color 5000s ease-in-out 0s; +} + +button, +.button { + display: inline-block; + font-size: 0.83em; + font-weight: bold; + padding-right: 15px; + padding-left: 15px; + line-height: 0.83em; + outline: 0; + cursor: pointer; + text-shadow: 1px 1px 0 rgba(255, 255, 255, .1); + text-decoration: none; + border: 0; + background-color: rgba(0, 0, 0, .05); + box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0); +} + +button:hover, +.button:hover { + text-decoration: none; +} + +button:active, +.button:active { + box-shadow: inset 0 2px 5px rgba(0, 0, 0, .3); +} + +button.action, +.button.action { + text-shadow: 1px 1px 0 rgba(0, 0, 0, .05); + color: #FFF; + background: #3498db; +} + +button.action:hover, +.button.action:hover { + background: #2980b9; +} + +button[disabled], +input[disabled] { + cursor: wait; +} + +input[data-disabled] { + cursor: not-allowed; +} + +.input-label label { + font-size: 0.9em; + display: block; + font-weight: bold; +} + +h1 { + line-height: 1em; +} + +code { + font-size: 0.9em; + font-family: monospace; + background: rgba(0, 0, 0, .1); +} + +.pre { + display: block; + background-color: rgba(0, 0, 0, .1); + overflow: auto; + height: 180px; + font-size: 0.9em; + white-space: nowrap; + width: 100%; + resize: none; + border: none; + margin: 1em 0; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +@-webkit-keyframes spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.flex-box .loader { + display: inline-block; + border: .15em solid rgb(52 152 219 / 20%); + border-top: .15em solid #3498db; + border-radius: 50%; + width: 1em; + height: 1em; + -webkit-animation: spin 2s linear infinite; + animation: spin 2s linear infinite; + z-index: 1; + font-size: 32px; + position: absolute; + top: 20px; + right: 20px; + margin: 0; + opacity: 0; +} + +.flex-box .loader--show, +body.body--installing .flex-box .loader { + opacity: 1; +} + +.animate { + transition: all 200ms ease; +} + +.animate--slow { + transition-duration: 800ms; +} + +.text-align-center { + text-align: center; +} + +.flex { + display: flex; +} + +.flex--full { + min-height: 100%; + overflow: hidden; +} + +.screen { + margin: auto; + flex-wrap: wrap; + flex-direction: row; + justify-content: center; + display: flex; + visibility: visible; +} + +.screen--error { + opacity: 1; + display: flex; + transform: scale(1); +} + +@-webkit-keyframes fadeInFromNone { + 0% { + display: none; + opacity: 0; + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes fadeInFromNone { + 0% { + display: none; + opacity: 0; + } + + 100% { + opacity: 1; + transform: scale(1); + } +} + +.flex-item { + flex: 1 0 100%; + justify-content: center; +} + +.flex-box { + background: rgba(255, 255, 255, .8); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + background-size: cover; + background-position: center; + border-radius: 10px; + min-width: 270px; + position: relative; + margin: 20px; + flex: 1 0 0; +} + +.flex-box>div { + margin: 20px; +} + +.flex-box+.flex-box { + margin-top: 0; +} + +.log { + background: rgba(255, 255, 255, .1); + overflow: auto; + max-height: 10em; + margin: 0; + padding: 0; +} + +.log:empty { + display: none; +} + +.log p { + margin: 0; + padding: 5px; +} + +.log p:nth-child(even) { + background: rgba(255, 255, 255, .25); +} + +.radius { + border-radius: 3px; +} + +.error-box { + background: none; + box-shadow: none; +} + +.error-box a { + font-weight: normal; + text-decoration: none; +} + +.error-box a:hover { + -webkit-text-decoration-style: solid; + text-decoration-style: solid; + -webkit-text-decoration-color: #000; + text-decoration-color: #000; +} + +.error-box-code { + opacity: .4; + font-size: 0.9em; + border-top: 1px solid rgba(0, 0, 0, .2); + padding-top: 10px; +} + +@media (min-width: 680px) { + .col-8 { + width: 310px; + } + + .col-width { + width: 630px; + } + + .flex-box+.flex-box { + margin-top: 20px; + margin-left: 0; + } +} + +.width-100p { + width: 100%; +} + +.header svg, +.header img { + height: 40px; + width: auto; + max-height: 100%; + margin: 20px auto; + display: block; +} + +.header svg path, +.header img path { + fill: #FFF; +} + +.install-details { + font-size: 0.9em; + font-family: monospace; +} + +.install-details pre { + margin: 0; + font-family: inherit; +} + +@-webkit-keyframes shake { + + 10%, + 90% { + transform: translate3d(-1px, 0, 0); + } + + 20%, + 80% { + transform: translate3d(2px, 0, 0); + } + + 30%, + 50%, + 70% { + transform: translate3d(-4px, 0, 0); + } + + 40%, + 60% { + transform: translate3d(4px, 0, 0); + } +} + +@keyframes shake { + + 10%, + 90% { + transform: translate3d(-1px, 0, 0); + } + + 20%, + 80% { + transform: translate3d(2px, 0, 0); + } + + 30%, + 50%, + 70% { + transform: translate3d(-4px, 0, 0); + } + + 40%, + 60% { + transform: translate3d(4px, 0, 0); + } +} + +/** added **/ + +.display-block { + display: block; +} + +.input-warning { + position: absolute; + right: 0; + top: 0; + font-size: 80%; +} + +.red-warning { + color: #d74634; +} + +.input-password { + position: relative; +} + +.input-password .input-password-strength { + position: absolute; + right: 0; + top: 50%; + margin-top: 5px; +} + +.input-password-strength { + background: rgba(0, 0, 0, .1); +} + +.input-password-strength, +.input-password-strength span { + display: block; + width: 50px; + height: 8px; +} + +.input-password-strength span { + width: 0%; + background-color: transparent; +} + +.input-password-strength *[data-veredict="very-weak"] { + background-color: #e74c3c; +} + +.input-password-strength *[data-veredict="weak"] { + background-color: #e67e22; +} + +.input-password-strength *[data-veredict="average"], +.input-password-strength *[data-veredict="strong"], +.input-password-strength *[data-veredict="stronger"] { + background-color: #2ecc71; +} + +.description-meta:empty { + display: none; +} \ No newline at end of file diff --git a/content/legacy/system/style.min.css b/content/legacy/system/style.min.css new file mode 100644 index 0000000..d280e2d --- /dev/null +++ b/content/legacy/system/style.min.css @@ -0,0 +1 @@ +body,html{height:100%}body{margin:0;background:#3498db;background:linear-gradient(to bottom,#3498db 0,#8e44ad 100%)}html#error body{background:#ecf0f1}html{color:#000;font:16px Helvetica,Arial,sans-serif;line-height:1.3}.body--block{margin:20px}.body--flex{margin:0;display:flex;flex-direction:column}.user-select-none{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.force-select{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}main{width:100%;height:100%;padding:0;margin:0;border:0;display:flex;align-items:center;justify-content:center;overflow-y:auto;flex:1}@media (min-width:768px){main{padding:20px}}main>div{width:630px}.main--stack{width:100%;max-width:900px}*{-ms-box-sizing:border-box;box-sizing:border-box;outline:0}a{color:#3498db;outline:0;text-decoration:none}a:hover{text-decoration:underline}p,ul>li{line-height:140%}.soft-hidden{display:none}.p{margin-top:20px;margin-bottom:20px}.alert,.highlight,.log{font-size:.9em;padding:1em}.alert:empty,.highlight:empty{display:none}.highlight{background:rgba(255,255,255,.5);border-left:4px solid #8e44ad}.alert{position:relative;background:rgba(241,196,15,.3);border-left:4px solid #f1c40f;padding-right:2em}.alert pre{overflow:auto}.alert code,.alert pre{background:rgba(241,196,15,.3)}.alert pre code{background:0 0}.shake{-webkit-animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.alert-close{cursor:pointer;position:absolute;right:1em;top:1em;width:1em;height:1em;opacity:.3}.alert-close:hover{opacity:1}.alert-close:after,.alert-close:before{position:absolute;left:7.5px;content:' ';height:16px;width:2px;background-color:#333}.alert-close:before{transform:rotate(45deg)}.alert-close:after{transform:rotate(-45deg)}.button,button,input,select{font-family:Helvetica,Arial,sans-serif;padding:10px;color:#000}input{border:1px solid rgba(0,0,0,.1);background:0 0;border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;padding-left:0;transition:border-width 1s linear}input:focus,select:focus{border-bottom-color:#3498db}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{-webkit-text-fill-color:inherit;-webkit-box-shadow:0 0 0 1000px transparent inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.button,button{display:inline-block;font-size:.83em;font-weight:700;padding-right:15px;padding-left:15px;line-height:.83em;outline:0;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.1);text-decoration:none;border:0;background-color:rgba(0,0,0,.05);box-shadow:inset 0 2px 5px transparent}.button:hover,button:hover{text-decoration:none}.button:active,button:active{box-shadow:inset 0 2px 5px rgba(0,0,0,.3)}.button.action,button.action{text-shadow:1px 1px 0 rgba(0,0,0,.05);color:#fff;background:#3498db}.button.action:hover,button.action:hover{background:#2980b9}button[disabled],input[disabled]{cursor:wait}input[data-disabled]{cursor:not-allowed}.input-label label{font-size:.9em;display:block;font-weight:700}h1{line-height:1em}code{font-size:.9em;font-family:monospace;background:rgba(0,0,0,.1)}.pre{display:block;background-color:rgba(0,0,0,.1);overflow:auto;height:180px;font-size:.9em;white-space:nowrap;width:100%;resize:none;border:none;margin:1em 0;-moz-tab-size:4;-o-tab-size:4;tab-size:4}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.flex-box .loader{display:inline-block;border:.15em solid rgb(52 152 219 / 20%);border-top:.15em solid #3498db;border-radius:50%;width:1em;height:1em;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;z-index:1;font-size:32px;position:absolute;top:20px;right:20px;margin:0;opacity:0}.flex-box .loader--show,body.body--installing .flex-box .loader{opacity:1}.animate{transition:all .2s ease}.animate--slow{transition-duration:.8s}.text-align-center{text-align:center}.flex{display:flex}.flex--full{min-height:100%;overflow:hidden}.screen{margin:auto;flex-wrap:wrap;flex-direction:row;justify-content:center;display:flex;visibility:visible}.screen--error{opacity:1;display:flex;transform:scale(1)}@-webkit-keyframes fadeInFromNone{0%{display:none;opacity:0}100%{opacity:1;transform:scale(1)}}@keyframes fadeInFromNone{0%{display:none;opacity:0}100%{opacity:1;transform:scale(1)}}.flex-item{flex:1 0 100%;justify-content:center}.flex-box{background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;border-radius:10px;min-width:270px;position:relative;margin:20px;flex:1 0 0}.flex-box>div{margin:20px}.flex-box+.flex-box{margin-top:0}.log{background:rgba(255,255,255,.1);overflow:auto;max-height:10em;margin:0;padding:0}.log:empty{display:none}.log p{margin:0;padding:5px}.log p:nth-child(even){background:rgba(255,255,255,.25)}.radius{border-radius:3px}.error-box{background:0 0;box-shadow:none}.error-box a{font-weight:400;text-decoration:none}.error-box a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid;-webkit-text-decoration-color:#000;text-decoration-color:#000}.error-box-code{opacity:.4;font-size:.9em;border-top:1px solid rgba(0,0,0,.2);padding-top:10px}@media (min-width:680px){.col-8{width:310px}.col-width{width:630px}.flex-box+.flex-box{margin-top:20px;margin-left:0}}.width-100p{width:100%}.header img,.header svg{height:40px;width:auto;max-height:100%;margin:20px auto;display:block}.header img path,.header svg path{fill:#fff}.install-details{font-size:.9em;font-family:monospace}.install-details pre{margin:0;font-family:inherit}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.display-block{display:block}.input-warning{position:absolute;right:0;top:0;font-size:80%}.red-warning{color:#d74634}.input-password{position:relative}.input-password .input-password-strength{position:absolute;right:0;top:50%;margin-top:5px}.input-password-strength{background:rgba(0,0,0,.1)}.input-password-strength,.input-password-strength span{display:block;width:50px;height:8px}.input-password-strength span{width:0%;background-color:transparent}.input-password-strength [data-veredict=very-weak]{background-color:#e74c3c}.input-password-strength [data-veredict=weak]{background-color:#e67e22}.input-password-strength [data-veredict=average],.input-password-strength [data-veredict=strong],.input-password-strength [data-veredict=stronger]{background-color:#2ecc71}.description-meta:empty{display:none} \ No newline at end of file diff --git a/content/legacy/system/template.php b/content/legacy/system/template.php new file mode 100644 index 0000000..5629abd --- /dev/null +++ b/content/legacy/system/template.php @@ -0,0 +1,84 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\absolute_to_url; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_static_url; +use function Chevereto\Legacy\get_system_image_url; +use function Chevereto\Legacy\get_translation_table; +use function Chevereto\Legacy\versionize_src; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title><?php echo $doctitle ?? 'Chevereto'; ?></title> + <link rel="stylesheet" href="<?php echo absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'style.min.css'); ?>"> + <link rel="shortcut icon" href="<?php echo absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'favicon.png'); ?>"> + <link rel="stylesheet" href="<?php echo get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'font-awesome-6/css/all.min.css'); ?>"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <style> + body { + background-size: cover; + background-image: url(<?php echo get_system_image_url('default/home_cover.jpg'); ?>); + } + </style> + <script data-cfasync="false"> + function jQueryLoaded() { + ! function(n, d) { + n.each(readyQ, function(d, e) { + n(e) + }), n.each(bindReadyQ, function(e, i) { + n(d).bind("ready", i) + }) + }(jQuery, document) + }! function(n, d, e) { + function i(d, e) { + "ready" == d ? n.bindReadyQ.push(e) : n.readyQ.push(d) + } + n.readyQ = [], n.bindReadyQ = []; + var u = { + ready: i, + bind: i + }; + n.$ = n.jQuery = function(n) { + return n === d || void 0 === n ? u : void i(n) + } + }(window, document); + </script> +</head> + +<body class="body--flex"> + <main> + <div class="screen animate animate--slow"> + <div class="flex-box flex-item"> + <div><?php echo $html ?? ''; ?></div> + </div> + </div> + </main> +</body> + +<script defer data-cfasync="false" src="<?php echo absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'js/scripts.min.js'); ?>" id="jquery-js" onload="jQueryLoaded(this, event)"></script> +<script defer data-cfasync="false" src="<?php echo absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'peafowl.min.js'); ?>" id="peafowl-js"></script> +<?php +if (method_exists(Settings::class, 'getChevereto')) { + echo '<script>var CHEVERETO = ' . json_encode(Settings::getChevereto()) . '</script>' . "\n"; +} +?> +<script defer data-cfasync="false" src="<?php echo versionize_src(get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'chevereto.min.js')); ?>" id="chevereto-js"></script> +<script data-cfasync="false"> + document.getElementById("chevereto-js").addEventListener("load", function() { + PF.obj.devices = window.devices; + PF.obj.config.base_url = "<?php echo get_base_url(); ?>"; + PF.obj.config.json_api = "<?php echo get_base_url('update'); ?>/"; + PF.obj.l10n = <?php echo json_encode(get_translation_table()); ?>; + PF.obj.config.auth_token = "<?php echo Handler::getAuthToken(); ?>"; + }); +</script> + +</html> diff --git a/content/legacy/themes/Peafowl/custom_hooks/README.txt b/content/legacy/themes/Peafowl/custom_hooks/README.txt new file mode 100644 index 0000000..cd12114 --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/README.txt @@ -0,0 +1 @@ +Check the custom hooks documentation here: https://chv.to/v4themehooks diff --git a/content/legacy/themes/Peafowl/custom_hooks/body_open.sample.php b/content/legacy/themes/Peafowl/custom_hooks/body_open.sample.php new file mode 100644 index 0000000..0262c99 --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/body_open.sample.php @@ -0,0 +1,8 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php /* Code you add in this file will be added after <body> */ ?> diff --git a/content/legacy/themes/Peafowl/custom_hooks/footer.sample.php b/content/legacy/themes/Peafowl/custom_hooks/footer.sample.php new file mode 100644 index 0000000..4883dac --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/footer.sample.php @@ -0,0 +1,8 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php /* Code you add in this file will be added to the header, after head. See: app/themes/Peafowl/header.php */ ?> diff --git a/content/legacy/themes/Peafowl/custom_hooks/head.sample.php b/content/legacy/themes/Peafowl/custom_hooks/head.sample.php new file mode 100644 index 0000000..5cc814a --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/head.sample.php @@ -0,0 +1,8 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php /* Add your custom PHP/HTML code in this file */ ?> diff --git a/content/legacy/themes/Peafowl/custom_hooks/head_after.sample.php b/content/legacy/themes/Peafowl/custom_hooks/head_after.sample.php new file mode 100644 index 0000000..927c98a --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/head_after.sample.php @@ -0,0 +1,8 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php /* Code you add in this file will be added after </head>. See: app/themes/Peafowl/head.php */ ?> diff --git a/content/legacy/themes/Peafowl/custom_hooks/head_open.sample.php b/content/legacy/themes/Peafowl/custom_hooks/head_open.sample.php new file mode 100644 index 0000000..e3cbea5 --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/head_open.sample.php @@ -0,0 +1,8 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php /* Code you add in this file will be added afer <head>. See: app/themes/Peafowl/head.php */ ?> diff --git a/content/legacy/themes/Peafowl/custom_hooks/header.sample.php b/content/legacy/themes/Peafowl/custom_hooks/header.sample.php new file mode 100644 index 0000000..4883dac --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/header.sample.php @@ -0,0 +1,8 @@ +<?php + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php /* Code you add in this file will be added to the header, after head. See: app/themes/Peafowl/header.php */ ?> diff --git a/content/legacy/themes/Peafowl/custom_hooks/share_links.sample.php b/content/legacy/themes/Peafowl/custom_hooks/share_links.sample.php new file mode 100644 index 0000000..98896a5 --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/share_links.sample.php @@ -0,0 +1,46 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +global $share_links_networks; +$share_links_networks = [ + 'mail' => [ + 'url' => 'mailto:?subject=%TITLE%&body=%URL%', + 'label' => 'Email' + ], + 'facebook' => [ + 'url' => 'http://www.facebook.com/share.php?u=%URL%', + 'label' => 'Facebook' + ], + 'twitter' => [ + 'url' => 'https://twitter.com/intent/tweet?original_referer=%URL%&url=%URL%&via=%TWITTER%&text=%TITLE%', + 'label' => 'Twitter' + ], + 'blogger' => [ + 'url' => 'http://www.blogger.com/blog-this.g?n=%TITLE%&source=&b=%HTML%', + 'label' => 'Blogger' + ], + 'tumblr' => [ + 'url' => 'http://www.tumblr.com/share/photo?source=%PHOTO_URL%&caption=%TITLE%&clickthru=%URL%&title=%TITLE%', + 'label' => 'Tumblr.' + ], + 'pinterest' => [ + 'url' => 'http://www.pinterest.com/pin/create/bookmarklet/?media=%PHOTO_URL%&url=%URL%&is_video=false&description=%DESCRIPTION%&title=%TITLE%', + 'label' => 'Pinterest' + ], + 'reddit' => [ + 'url' => 'http://reddit.com/submit?url=%URL%', + 'label' => 'reddit' + ], + 'vk' => [ + 'url' => 'http://vk.com/share.php?url=%URL%', + 'label' => 'VK' + ] +]; diff --git a/content/legacy/themes/Peafowl/custom_hooks/style.sample.css b/content/legacy/themes/Peafowl/custom_hooks/style.sample.css new file mode 100644 index 0000000..7e40b8b --- /dev/null +++ b/content/legacy/themes/Peafowl/custom_hooks/style.sample.css @@ -0,0 +1 @@ +/* Add your custom CSS here */ \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/footer.php b/content/legacy/themes/Peafowl/footer.php new file mode 100644 index 0000000..6cf2b9c --- /dev/null +++ b/content/legacy/themes/Peafowl/footer.php @@ -0,0 +1,33 @@ +<?php + +use function Chevereto\Legacy\G\absolute_to_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\is_route; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\include_peafowl_foot; +use function Chevereto\Legacy\show_theme_inline_code; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +if (!Handler::cond('maintenance')) { + include_theme_file('snippets/embed_tpl'); +} +if (Handler::cond('upload_allowed') && (getSetting('upload_gui') == 'js' || is_route('upload'))) { + include_theme_file('snippets/anywhere_upload'); +} +if (getSetting('theme_show_social_share')) { + include_theme_file("snippets/modal_share"); +} +include_theme_file('custom_hooks/footer'); +include_peafowl_foot(); +show_theme_inline_code('snippets/footer.js'); +echo getSetting('analytics_code'); +?> +<?php if (Handler::cond('show_powered_by_footer')) { ?> +<div class="footer"><?php _se('Powered by'); ?> <a href="https://chevereto.com" rel="generator" target="_blank"><img src="<?php echo absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'chevereto-blue.svg'); ?>" alt="" height="10"></a></div> +<?php } ?> +</body> +</html> diff --git a/content/legacy/themes/Peafowl/functions.php b/content/legacy/themes/Peafowl/functions.php new file mode 100644 index 0000000..b22da66 --- /dev/null +++ b/content/legacy/themes/Peafowl/functions.php @@ -0,0 +1,6 @@ +<?php +/* + Your theme functions should be here. You can also add functions overrites here for some internal functions. + For example, you can overrite get_share_links() or get_peafowl_item_list() here. +*/ +?> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/head.php b/content/legacy/themes/Peafowl/head.php new file mode 100644 index 0000000..d97c138 --- /dev/null +++ b/content/legacy/themes/Peafowl/head.php @@ -0,0 +1,199 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_current_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\is_route; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\str_replace_last; +use function Chevereto\Legacy\get_html_tags; +use function Chevereto\Legacy\get_static_url; +use function Chevereto\Legacy\get_system_image_url; +use function Chevereto\Legacy\get_theme_file_url; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\include_peafowl_head; +use function Chevereto\Legacy\show_theme_inline_code; +use function Chevereto\Legacy\theme_file_exists; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<!DOCTYPE HTML> +<html <?php echo get_html_tags(); ?> prefix="og: http://ogp.me/ns#"> +<head> + <?php include_theme_file('custom_hooks/head_open'); ?> + <meta charset="utf-8"> + <meta name="apple-mobile-web-app-status-bar-style" content="black"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="viewport" content="width=device-width, initial-scale=1"> +<?php if (Handler::var('safe_html_meta_description')) { ?> + <meta name="description" content="<?php echo Handler::var('safe_html_meta_description'); ?>"> +<?php +} if (Handler::var('canonical') !== null && Handler::var('canonical') != get_current_url(true, ['lang'])) { + ?> + <link rel="canonical" href="<?php echo Handler::var('canonical'); ?>"> +<?php +} ?> + <title><?php echo Handler::var('safe_html_doctitle'); ?></title> + <?php include_peafowl_head(); ?> + <link rel="shortcut icon" href="<?php echo get_system_image_url(getSetting('favicon_image')); ?>"> + <link rel="icon" type="image/png" href="<?php echo get_system_image_url(getSetting('favicon_image')); ?>" sizes="192x192"> + <link rel="apple-touch-icon" href="<?php echo get_system_image_url(getSetting('favicon_image')); ?>" sizes="180x180"> + <?php if (is_route('image') && Handler::var('image') !== null && Handler::var('image')['is_360']) { ?> + <link rel="stylesheet" href="<?php echo get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'js/pannellum.css'); ?>"> + <script type="text/javascript" src="<?php echo get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'js/pannellum.js'); ?>"></script> + <?php } ?> + <?php + if (!Handler::cond('maintenance')) { + include_theme_file('snippets/embed'); + } + if (getSetting('theme_logo_height') !== null) { + $logo_height = getSetting('theme_logo_height'); + echo '<style type="text/css">.top-bar-logo img { height: ' . intval(getSetting('theme_logo_height')) . 'px; }</style>'; + } + $open_graph = [ + 'type' => 'website', + 'url' => get_current_url(true, ['lang']), + 'title' => safe_html(getSetting('website_doctitle')), + 'image' => getSetting('homepage_cover_images')[0]['url'] ?? '', + 'site_name' => Handler::var('safe_html_website_name'), + 'description' => Handler::var('safe_html_meta_description'), + ]; + if (getSetting('facebook_app_id')) { + $open_graph['fb:app_id'] = getSetting('facebook_app_id'); + } + switch (true) { + case Handler::var('image') !== null and is_route('image'): + $open_graph_extend = [ + 'type' => 'article', + 'title' => Handler::var('pre_doctitle'), + // 'description' => _var('image')['description'], + 'image' => Handler::var('image')['url'], + 'image:width' => Handler::var('image')['width'], + 'image:height' => Handler::var('image')['height'], + ]; + if (Handler::var('image')['is_animated'] && Handler::var('image')['size'] < get_bytes('8 MiB')) { + $open_graph_extend['type'] = 'video.other'; + $open_graph_extend['url'] = Handler::var('image')['url']; + } + + break; + case Handler::var('album') !== null and is_route('album'): + $open_graph_extend = [ + 'type' => 'article', + 'title' => Handler::var('pre_doctitle'), + // 'description' => _var('album')['description'] ?: _var('album')['name'], + ]; + if (in_array(Handler::var('album')['privacy'], ['public', 'private_but_link']) && Handler::var('listing')->outputCount()) { + $open_graph_extend = array_merge($open_graph_extend, [ + 'image' => Handler::var('listing')->outputAssoc()[0]['display_url'], + 'image:width' => Handler::var('listing')->outputAssoc()[0]['display_width'], + 'image:height' => Handler::var('listing')->outputAssoc()[0]['display_height'], + ]); + } + + break; + case Handler::var('user') !== null and is_route('user'): + $open_graph_extend = [ + 'type' => 'profile', + 'title' => Handler::var('user')['name'], + // 'description' => sprintf(is_user_images() ? _s("%s's Images") : _s("%s's Albums"), _var('user')["name_short"]), + 'image' => isset(Handler::var('user')['avatar']) ? Handler::var('user')['avatar']['url'] : '', + ]; + + break; + case Handler::var('album') !== null and is_route('album'): + $open_graph_extend = [ + 'title' => Handler::var('album')['name'], + // 'description' => _var('album')['description'], + ]; + + break; + } + if (isset($open_graph_extend)) { + $open_graph = array_merge($open_graph, $open_graph_extend); + } + foreach ($open_graph as $k => $v) { + if (!$v) { + continue; + } + $prop = strpos($k, ':') !== false ? $k : "og:$k"; + echo '<meta property="' . $prop . '" content="' . safe_html($v, ENT_COMPAT) . '" />' . "\n"; + } + $twitter_card = [ + 'card' => 'summary', + 'description' => Handler::var('safe_html_meta_description'), + 'title' => str_replace_last(' - ' . Handler::var('safe_html_website_name'), '', Handler::var('safe_html_doctitle')), + 'site' => getSetting('twitter_account') ? ('@' . getSetting('twitter_account')) : null, + ]; + switch (true) { + case is_route('image'): + $twitter_card['card'] = 'photo'; + + break; + case Handler::var('admin') !== null and is_route('album'): + case Handler::var('user') !== null and is_route('user'): + $twitter_card['card'] = 'gallery'; + if (is_route('album')) { + $twitter_card['creator'] = Handler::var('album')['user']['twitter']['username']; + } else { + $twitter_card['creator'] = isset(Handler::var('user')['twitter']) ? Handler::var('user')['twitter']['username'] : ''; + } + $list_output = Handler::var('listing') !== null ? (Handler::var('listing')->outputAssoc() ?? null) : null; + if (is_array($list_output) && count($list_output) > 0) { + for ($i = 0; $i < 4; ++$i) { + $twitter_card['image' . $i] = $list_output[$i]['display_url'] ?? ''; + } + } + + break; + } + foreach ($twitter_card as $k => $v) { + if (!$v) { + continue; + } + echo '<meta name="twitter:' . $k . '" content="' . $v . '">' . "\n"; + } + if (Handler::var('oembed')) { + foreach (['json', 'xml'] as $format) { + echo ' <link rel="alternate" type="application/' . $format . '+oembed" href="' + . get_base_url('oembed/?url=' . urlencode(Handler::var('oembed')['url']) . '&format=' . $format) + . '" title="' . Handler::var('oembed')['title'] . '">' . "\n"; + } + } + if (Handler::var('image') !== null and is_route('image')) { ?> + <link rel="image_src" href="<?php echo Handler::var('image')['url']; ?>"> + <?php + } + if (getSetting('theme_custom_css_code')) { + ?> + <style> + <?php echo getSetting('theme_custom_css_code'); ?> + </style> + <?php + } + if (getSetting('theme_custom_js_code')) { + ?> + <script> + <?php echo getSetting('theme_custom_js_code'); ?> + </script> + <?php + } + show_theme_inline_code('snippets/theme_colors.css'); + if (theme_file_exists('custom_hooks/style.css')) { + ?> + <link rel="stylesheet" href="<?php echo get_theme_file_url('custom_hooks/style.css'); ?>"> + <?php + } + ?> + <link rel="alternate" hreflang="x-default" href="<?php echo get_current_url(true, ['lang']); ?>"> + <?php + foreach (Handler::var('langLinks') as $k => $v) { + echo '<link rel="alternate" hreflang="' . $v['hreflang'] . '" href="' . $v['url'] . '">' . "\n"; + } + include_theme_file('custom_hooks/head'); ?> +</head> +<?php include_theme_file('custom_hooks/head_after'); ?> diff --git a/content/legacy/themes/Peafowl/header.php b/content/legacy/themes/Peafowl/header.php new file mode 100644 index 0000000..a77cb9a --- /dev/null +++ b/content/legacy/themes/Peafowl/header.php @@ -0,0 +1,377 @@ +<?php + +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Palettes; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_route_name; +use function Chevereto\Legacy\G\get_template_used; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\is_prevented_route; +use function Chevereto\Legacy\G\is_route; +use function Chevereto\Legacy\get_language_used; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getThemeLogo; +use function Chevereto\Vars\env; + +include_theme_file('head'); +include_theme_file('custom_hooks/header'); +$body_class = ''; +if (!is_prevented_route() && in_array(get_template_used(), ['user', 'image']) && !Handler::cond('404')) { + $body_class = ( + is_route('image') + || (is_route('user') && isset(Handler::var('user')['background'])) + || Handler::cond('owner') + || Handler::cond('content_manager') + ) + ? ' no-margin-top' + : ''; +} +$templateUsed = Handler::getTemplateUsed(); +if (Handler::cond('maintenance') || Handler::cond('show_consent_screen') || in_array($templateUsed, ['request-denied', '404'])) { + $body_class = ''; +} else { + if (get_route_name() == 'index') { + $body_class = getSetting('homepage_style'); + if (Handler::var('list') !== null) { + $listing = Handler::var('listing'); + $hasPrev = $listing->has_page_prev(); + if ($hasPrev) { + $body_class = ''; + } + } + } +} +if (is_route('page') || is_route('plugin')) { + $body_class = 'page'; +} +?> +<body id="<?php echo $templateUsed; ?>" class="<?php echo $body_class; ?>"> +<?php include_theme_file('custom_hooks/body_open'); ?> +<?php if (Handler::cond('show_viewer_zero')) { ?> + <div class="viewer viewer--zero"></div> +<?php } ?> +<?php if (Handler::cond('show_header')) { ?> + <header id="top-bar" class="top-bar top-bar--main"> + <div class="content-width"> + <div id="logo" class="top-bar-logo"> + <a href="<?php echo Handler::var('header_logo_link'); ?>"><?php echo getThemeLogo(); ?></a> + </div> + + <?php + if (getSetting('website_privacy_mode') == 'public' + || (getSetting('website_privacy_mode') == 'private' && Login::isLoggedUser())) { ?> + <ul class="top-bar-left float-left"> + <li data-action="top-bar-menu-full" data-nav="mobile-menu" class="top-btn-el phone-show hidden"> + <span class="top-btn-text"><span class="icon fas fa-bars"></span></span> + </li> + <?php if (Handler::cond('explore_enabled')) { ?> + <li id="top-bar-explore" data-nav="explore" class="phone-hide pop-keep-click pop-btn pop-btn-show<?php if (in_array(get_route_name(), ['explore', 'category'])) { + ?> current<?php + } ?>"> + <?php + $cols = 1; + $categories = Handler::var('categories'); + if (count($categories) > 0) { + if ((bool) env()['CHEVERETO_ENABLE_USERS']) { + array_unshift($categories, [ + 'id' => null, + 'name' => _s('All'), + 'url_key' => null, + 'url' => get_base_url('explore'), + ]); + } + $cols = min(5, round(count($categories) / 5, 0, PHP_ROUND_HALF_UP)); + } ?> + <span class="top-btn-text"><span class="icon fas fa-compass"></span><span class="btn-text phone-hide phablet-hide"><?php _se('Explore'); ?></span></span> + <div class="pop-box <?php if ($cols > 1) { + echo sprintf('pbcols%d ', $cols); + } ?>arrow-box arrow-box-top anchor-left"> + + <div class="pop-box-inner pop-box-menu<?php if ($cols > 1) { + ?> pop-box-menucols<?php + } ?>"> + <?php + if (Handler::var('explore_semantics') !== []) { + $explore_semantics = Handler::var('explore_semantics'); + if (Login::isLoggedUser() && getSetting('enable_followers')) { + $explore_semantics['following'] = [ + 'label' => _s('Following'), + 'icon' => 'fas fa-rss', + 'url' => get_base_url('following'), + ]; + } ?> + <div class="pop-box-label"><i class="fas fa-drafting-compass"></i> <?php _se('Discovery'); ?></div> + <ul> + <?php + foreach ($explore_semantics as $k => $v) { + echo '<li><a href="' . $v['url'] . '"><span class="btn-icon ' . $v['icon'] . '"></span><span class="btn-text">' . $v['label'] . '</span></a></li>'; + } ?> + </ul> + <?php + if (count($categories) > 0) { ?> + <div class="or-separator margin-top-5 margin-bottom-5"></div> + <?php + } ?> + <?php + } ?> + <?php + if (count($categories) > 0) { + ?> + <div class="pop-box-label phone-margin-top-20"><i class="fas fa-columns"></i> <?php _se('Categories'); ?></div> + <ul> + <?php + foreach ($categories as $k => $v) { + echo '<li data-content="category" data-category-id="' . $v['id'] . '"><a data-content="category-name" data-link="category-url" href="' . $v['url'] . '">' . $v['name'] . '</a></li>' . "\n"; + } ?> + </ul> + <?php + } ?> + </div> + </div> + </li> + <?php + } ?> + + <?php if (Handler::cond('random_enabled')) { + ?> + <li id="top-bar-random" data-nav="random" class="top-btn-el"> + <a href="<?php echo get_base_url('?random'); ?>"><span class="top-btn-text"><span class="icon fas fa-random"></span><span class="btn-text phone-hide phablet-hide"><?php _se('Random'); ?></span></span></a> + </li> + <?php + } ?> + + <?php if (Handler::cond('search_enabled') && (bool) env()['CHEVERETO_ENABLE_USERS']) { + ?> + <li data-action="top-bar-search" data-nav="search" class="phone-hide pop-btn"> + <span class="top-btn-text"><span class="icon fas fa-search"></span><span class="btn-text phone-hide phablet-hide"><?php _se('Search'); ?></span></span> + </li> + <li data-action="top-bar-search-input" class="top-bar-search-input phone-hide pop-btn pop-keep-click hidden"> + <div class="input-search"> + <form action="<?php echo get_base_url('search/images'); ?>/" method="get"> + <input class="search" type="text" placeholder="<?php _se('Search'); ?>" autocomplete="off" spellcheck="false" name="q"> + </form> + <span class="fas fa-search icon--search"></span><span class="icon--close fas fa-times" data-action="clear-search" title="<?php _se('Close'); ?>"></span><span class="icon--settings fas fa-cog" data-modal="form" data-target="advanced-search" title="<?php _se('Advanced search'); ?>"></span> + </div> + </li> + <div class="hidden" data-modal="advanced-search"> + <span class="modal-box-title"><i class="fas fa-cog"></i> <?php _se('Advanced search'); ?></span> + <?php include_theme_file('snippets/form_advanced_search'); ?> + </div> + <?php + } ?> + </ul> + <?php + } ?> + <ul class="top-bar-right float-right keep-visible"> + + <?php if (Handler::var('system_notices') !== []) { + ?> + <li data-nav="notices" class="phone-hide top-btn-el" data-modal="simple" data-target="modal-notices"> + <span class="top-btn-text"><span class="icon fas fa-exclamation-triangle color-fail"></span><span class="btn-text phone-hide phablet-hide"><?php _se('Notices (%s)', count(Handler::var('system_notices'))); ?></span></span> + </li> + <?php + } ?> + <?php if (Handler::cond('upload_enabled')) { + ?> + <li data-action="top-bar-upload" data-link="<?php echo getSetting('upload_gui'); ?>" data-nav="upload" class="<?php if (is_route('upload')) { + echo 'current '; + } ?>top-btn-el" <?php if (!getSetting('guest_uploads')) { + ?> data-login-needed="true" <?php + } ?>> + <a href="<?php echo get_base_url('upload'); ?>" class="top-btn-text"><span class="icon fas fa-cloud-upload-alt"></span><span class="btn-text phone-hide phablet-hide"><?php _se('Upload'); ?></span></a> + </li> + <?php + } ?> + + <?php + if (!Login::isLoggedUser()) { + ?> + <li id="top-bar-signin" data-nav="signin" class="<?php if (is_route('login')) { + echo 'current '; + } ?>top-btn-el"> + <a href="<?php echo get_base_url('login'); ?>" class="top-btn-text"><span class="icon fas fa-sign-in-alt"></span><span class="btn-text phone-hide phablet-hide"><?php _se('Sign in'); ?></span> + </a> + </li> + <?php + } else { + if (Handler::cond('show_notifications')) { + $notifications_unread = Login::getUser()['notifications_unread']; + $notifications_display = Login::getUser()['notifications_unread_display']; + $notifications_counter = strtr('<span data-content="notifications-counter" class="top-btn-number%c">' . $notifications_display . '</span>', ['%c' => $notifications_unread > 0 ? ' on' : '']); ?> + <li data-action="top-bar-notifications" class="top-bar-notifications phone-hide pop-btn pop-keep-click"> + <div class="top-btn-text position-relative"> + <div class="soft-hidden menu-fullscreen-show"><i class="icon fas fa-bell"></i><?php echo $notifications_counter; ?><span class="btn-text"><?php _se('Notifications'); ?></span></div> + <div class="menu-fullscreen-hide"><span class="icon fas fa-bell"></span><?php echo $notifications_counter; ?></div> + </div> + <div class="top-bar-notifications-container c9 pop-box arrow-box arrow-box-top anchor-center"> + <div class="pop-box-inner"> + <div class="top-bar-notifications-header phone-hide phablet-hide"> + <h2><i class="fas fa-bell"></i> <?php _se('Notifications'); ?></h2> + </div> + <div class="top-bar-notifications-list antiscroll-wrap hidden"> + <ul class="antiscroll-inner r8 overflow-scroll overflow-x-hidden touch-scroll"></ul> + </div> + <div class="loading text-align-center margin-top-20 margin-bottom-20 hidden"> + <div class="loading-indicator"></div> + <div class="loading-text"><?php _se('loading'); ?></div> + </div> + <div class="empty text-align-center margin-top-20 margin-bottom-20 hidden"> + <?php _se("You don't have notifications"); ?> + </div> + </div> + </div> + </li> + <?php + } ?> + <li id="top-bar-user" data-nav="user" class="pop-btn pop-keep-click"> + <span class="top-btn-text"> + <?php if (isset(Login::getUser()['avatar'], Login::getUser()['avatar']['url'])) { + ?> + <img src="<?php echo Login::getUser()['avatar']['url']; ?>" alt="" class="user-image"> + <?php + } else { + ?> + <img src="" alt="" class="user-image hidden"> + <?php + } ?> + <span class="user-image default-user-image<?php echo isset(Login::getUser()['avatar']['url']) ? ' hidden' : ''; ?>"><span class="icon fas fa-user-circle"></span></span> + <span class="btn-text phone-hide phablet-hide">@<?php echo Login::getUser()['username']; ?></span> + </span> + <div class="pop-box arrow-box arrow-box-top anchor-right"> + <div class="pop-box-inner pop-box-menu"> + <ul> + <li class="with-icon"><a href="<?php echo Login::getUser()['url']; ?>"><span class="btn-icon fas fa-id-card"></span><?php _se('My Profile'); ?></a></li> + <li class="with-icon"><a href="<?php echo Login::getUser()['url_albums']; ?>"><span class="btn-icon fas fa-images"></span><?php _se('Albums'); ?></a></li> + <?php if (getSetting('enable_likes')) { + ?> + <li class="with-icon"><a href="<?php echo Login::getUser()['url_liked']; ?>"><span class="btn-icon fas fa-heart"></span><?php _se('Liked'); ?></a></li> + <?php + } ?> + <?php + if (getSetting('enable_followers')) { + ?> + <li class="with-icon"><a href="<?php echo Login::getUser()['url_following']; ?>"><span class="btn-icon fas fa-rss"></span><?php _se('Following'); ?></a></li> + <li class="with-icon"><a href="<?php echo Login::getUser()['url_followers']; ?>"><span class="btn-icon fas fa-users"></span><?php _se('Followers'); ?></a></li> + <?php + } ?> + <li class="with-icon"> + <a href="<?php echo get_base_url('settings'); ?>"><span class="btn-icon fas fa-user-cog"></span><?php _se('Settings'); ?></a> + </li> + <div class="or-separator margin-top-5 margin-bottom-5"></div> + <div class="pop-box-label"><i class="fas fa-swatchbook"></i> <?php _se('Palette'); ?></div> + <li data-action="top-bar-tone"> + <div class="pop-box-block pop-keep-click" data-content="palettes"> +<?php + /** @var Palettes $palettes */ + $palettes = Handler::var('palettes'); + foreach (array_keys($palettes->get()) as $id) { + echo strtr('<a class="%class" data-action="palette" data-palette="%handle" data-id="%id">%name</a>', [ + '%class' => $id == Login::getUser()['palette_id'] ? 'current' : '', + '%handle' => $palettes->getHandle($id), + '%id' => (string) $id, + '%name' => $palettes->getName($id), + ]); + } ?> + </div> + </li> + <?php if (Handler::cond('content_manager')) { ?> + <div class="or-separator margin-0 margin-top-5 margin-bottom-5"></div> + <div class="pop-box-label"><i class="fas fa-user-tie"></i> <?php Handler::cond('admin') ? _se('Administrator') : _se('Manager') ?></div> + <?php if (Handler::cond('show_content_manager')) { ?> + <li class="with-icon"> + <a href="<?php echo Handler::var('moderate_link'); ?>"><span class="btn-icon fas fa-check-double"></span><?php echo Handler::var('moderate_label'); ?></span></a> + </li> + <?php } ?> + <?php + } ?> + <?php if (Handler::cond('admin')) { ?> + <li class="with-icon"><a href="<?php echo get_base_url('dashboard'); ?>"><span class="btn-icon fas fa-tachometer-alt"></span><?php _se('Dashboard'); ?></a></li> + <li class="with-icon"><a href="<?php echo get_base_url('dashboard/settings'); ?>"><span class="btn-icon fas fa-cog"></span><?php _se('Settings'); ?></a></li> + <?php } ?> + <div class="or-separator margin-0 margin-top-5 margin-bottom-5"></div> + <li class="with-icon"> + <form id="form-logout" action="<?php echo get_base_url('logout'); ?>" method="post" class="display-inline"> + <input type="hidden" name="auth_token" value="<?php echo Handler::var('auth_token'); ?>"> + </form> + <a data-action="logout"><span class="btn-icon fas fa-sign-out-alt"></span><?php _se('Sign out'); ?></a> + </li> + </ul> + </div> + </div> + </li> + <?php + } ?> + <?php + if (!Login::isLoggedUser() and getSetting('language_chooser_enable')) { + ?> + <li data-nav="language" class="phone-hide pop-btn"> + <?php + $langLinks = Handler::var('langLinks'); + $cols = min(5, ceil(count($langLinks) / 6)); ?> + <span class="top-btn-text"> + <span class="icon fas fa-language"></span><span class="btn-text phablet-hide"><?php echo get_language_used()['short_name']; ?></span> + </span> + <div class="pop-box <?php if ($cols > 1) { + echo sprintf('pbcols%d ', $cols); + } ?>arrow-box arrow-box-top anchor-center"> + <div class="pop-box-inner pop-box-menu<?php if ($cols > 1) { + ?> pop-box-menucols<?php + } ?>"> + <ul> + <?php + foreach ($langLinks as $k => $v) { + echo '<li' . (get_language_used()['code'] == $k ? ' class="current"' : '') . '><a href="' . $v['url'] . '">' . $v['name'] . '</a></li>' . "\n"; + } ?> + </ul> + </div> + </div> + </li> + <?php + } ?> + <?php + if (getSetting('website_privacy_mode') == 'public' || (getSetting('website_privacy_mode') == 'private' && Login::isLoggedUser())) { + ?> + <?php + if (Handler::var('pages_link_visible')) { + ?> + <li data-nav="about" class="phone-hide pop-btn pop-keep-click"> + <span class="top-btn-text"> + <span class="icon far fa-question-circle"></span><span class="btn-text phone-hide phablet-hide laptop-hide tablet-hide desktop-hide"><?php _se('About'); ?></span> + </span> + <div class="pop-box arrow-box arrow-box-top anchor-right"> + <div class="pop-box-inner pop-box-menu"> + <ul> + <?php + foreach (Handler::var('pages_link_visible') as $page) { + ?> + <li<?php if ($page['icon']) { + echo ' class="with-icon"'; + } ?>><a <?php echo $page['link_attr']; ?>><?php echo $page['title_html']; ?></a> + </li> + <?php + } ?> + </ul> + </div> + </div> + </li> + <?php + } ?> +<?php + } ?> + </ul> + </div> + </header> + <?php if (Handler::var('system_notices') !== []) { ?> + <div id="modal-notices" class="hidden"> + <span class="modal-box-title"><i class="fas fa-exclamation-triangle"></i> <?php _se('Notices (%s)', count(Handler::var('system_notices'))); ?></span> + <ul class="list-style-type-decimal list-style-position-inside"> + <?php foreach (Handler::var('system_notices') as $notice) { ?> + <li class="margin-top-10 margin-bottom-10"><?php echo $notice; ?></li> + <?php } ?> + </ul> + </div> + <?php } ?> +<?php +} +?> diff --git a/content/legacy/themes/Peafowl/lib/chevereto.js b/content/legacy/themes/Peafowl/lib/chevereto.js new file mode 100644 index 0000000..69d49e0 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/chevereto.js @@ -0,0 +1,6285 @@ +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +$(function () { + var resizedFinished; + var prevWidth = $(window).width(); + var prevHeight = $(window).height(); + $(window).resize(function (e) { + clearTimeout(resizedFinished); + resizedFinished = setTimeout(function () { + if ($("body#image").exists() && prevWidth != $(window).width()) { + CHV.fn.image_viewer_full_fix(); + } + CHV.fn.uploader.boxSizer(); + CHV.fn.bindSelectableItems(); + CHV.fn.listingViewer.placeholderSizing(); + prevWidth = $(window).width(); + prevHeight = $(window).height(); + }, 250); + }); + + if (window.opener) { + $(window).on("load", function (e) { + window.opener.postMessage({ + id: window.name, + requestAction: "postSettings", + }, + "*" + ); + }); + $(window).on("message", function (e) { + var data = e.originalEvent.data; + if ( + typeof data.id == typeof undefined || + typeof data.settings == typeof undefined + ) { + return; + } + if (window.name !== data.id) { + return; + } + CHV.obj.opener.uploadPlugin[data.id] = data.settings; + }); + } + // Landing fancy load + if ($("#home-cover, #maintenance-wrapper, #login").exists()) { + var landing_src = $("#maintenance-wrapper").exists() ? + $("#maintenance-wrapper") + .css("background-image") + .slice(4, -1) + .replace(/^\"|\"$/g, "") : + $(".home-cover-img", "#home-cover-slideshow").first().attr("data-src"); + + function showHomeCover() { + $("body").addClass("load"); + if (!$("#maintenance-wrapper").exists()) { + $(".home-cover-img", "#home-cover-slideshow") + .first() + .css("background-image", "url(" + landing_src + ")") + .addClass("animate-in--alt") + .removeAttr("data-src"); + } + setTimeout(function () { + setTimeout(function () { + $("body").addClass("loaded"); + }, 400 * 3); + + setTimeout(function () { + showHomeSlideshow(); + }, 7000); + }, 400 * 1.5); + } + + var showHomeSlideshowInterval = function () { + setTimeout(function () { + showHomeSlideshow(); + }, 8000); + }; + + function showHomeSlideshow() { + var $image = $( + ".home-cover-img[data-src]", + "#home-cover-slideshow" + ).first(); + var $images = $(".home-cover-img", "#home-cover-slideshow"); + if ($image.length == 0) { + if ($images.length == 1) return; + $images.first().removeClass("animate-in"); + $("#home-cover-slideshow").append($images.first()); + setTimeout(function () { + $(".home-cover-img:last", "#home-cover-slideshow").addClass( + "animate-in" + ); + }, 20); + setTimeout(function () { + $(".home-cover-img:not(:last)", "#home-cover-slideshow").removeClass( + "animate-in" + ); + }, 4000); + showHomeSlideshowInterval(); + } else { + var src = $image.attr("data-src"); + $("<img/>") + .attr("src", src) + .on("load error", function () { + $(this).remove(); + $image + .css("background-image", "url(" + src + ")") + .addClass("animate-in") + .removeAttr("data-src"); + setTimeout(function () { + $( + ".home-cover-img:not(:last)", + "#home-cover-slideshow" + ).removeClass("animate-end animate-in--alt"); + }, 2000); + showHomeSlideshowInterval(); + }); + } + } + + if (landing_src) { + $("<img/>") + .attr("src", landing_src) + .on("load error", function () { + $(this).remove(); + showHomeCover(); + }); + } else { + showHomeCover(); + } + } + + // Set the anywhere objects, just for shorter calling in $. + var anywhere_upload = CHV.fn.uploader.selectors.root, + anywhere_upload_queue = CHV.fn.uploader.selectors.queue, + $anywhere_upload = $(anywhere_upload), + $anywhere_upload_queue = $(anywhere_upload_queue); + + $(document).on("click", "[data-action=top-bar-upload]", function (e) { + if (!$("body").is("#upload") && $(this).data("link") === 'js') { + CHV.fn.uploader.toggle({ reset: false }); + } + if ($(this).data("link") !== 'page') { + e.preventDefault(); + e.stopPropagation(); + } + }); + + var timeoutPalette; + $(document).on("click mouseover mouseout", "[data-action=palette]", function (e) { + clearTimeout(timeoutPalette); + e.preventDefault(); + var palette = $(this).data("palette"); + switch (e.type) { + case "mouseover": + timeoutPalette = setTimeout(function () { + CHV.fn.Palettes.preview(palette); + }, 1000); + break; + case "mouseout": + palette = $("html").attr("data-palette") || ''; + CHV.fn.Palettes.set(palette); + break; + case "click": + e.stopPropagation(); + $("[data-action=palette]", "[data-content=palettes]").removeClass("current"); + $(this).addClass("current"); + CHV.fn.Palettes.set(palette); + CHV.fn.Palettes.save(); + break; + } + }); + $(document).on("change", "#palettes", function (e) { + CHV.fn.Palettes.set(this.value); + CHV.fn.Palettes.save(); + }); + + $("[data-action=close-upload]", $anywhere_upload).click(function () { + if ($anywhere_upload.is(":animated")) { + return; + } + $("[data-action=top-bar-upload]", "#top-bar").trigger("click"); + }); + + // Reset upload box + $("[data-action=reset-upload]", $anywhere_upload).click(function () { + if (CHV.fn.uploader.isUploading) { + $( + "[data-action=cancel-upload-remaining], [data-action=cancel-upload]", + $anywhere_upload + ).trigger("click"); + } + CHV.fn.uploader.reset(); + }); + + // Cancel remaining uploads + $( + "[data-action=cancel-upload-remaining], [data-action=cancel-upload]", + $anywhere_upload + ).click(function () { + CHV.fn.uploader.isUploading = false; + $("[data-action=cancel]", $anywhere_upload_queue).click(); + if (Object.size(CHV.fn.uploader.results.success) > 0) { + CHV.fn.uploader.displayResults(); + return; + } else { + CHV.fn.uploader.reset(); + } + }); + + // Toggle upload privacy + $(document).on( + "click", + "[data-action=upload-privacy]:not(disabled)", + function (e) { + if (e.isDefaultPrevented()) return; + current_privacy = $(this).data("privacy"); + target_privacy = current_privacy == "public" ? "private" : "public"; + this_lock = $(".icon", this).data("lock"); + this_unlock = $(".icon", this).data("unlock"); + $(".icon", this) + .removeClass(this_lock + " " + this_unlock) + .addClass(current_privacy == "public" ? this_lock : this_unlock); + $(this).data("privacy", target_privacy); + + $("[data-action=upload-privacy-copy]").html( + $("[data-action=upload-privacy]").html() + ); + + $upload_button = $("[data-action=upload]", $anywhere_upload); + $upload_button.text($upload_button.data(target_privacy)); + + $(this).tipTip("hide"); + } + ); + + // Do the thing when the fileupload changes + $(CHV.fn.uploader.selectors.file + ", " + CHV.fn.uploader.selectors.camera) + .on("change", function (e) { + if (!$(CHV.fn.uploader.selectors.root).data("shown")) { + CHV.fn.uploader.toggle({ + callback: function (e) { + CHV.fn.uploader.add(e); + }, + }, + e + ); + } else { + CHV.fn.uploader.add(e); + } + }) + .on("click", function (e) { + if ($(this).data("login-needed") && !PF.fn.is_user_logged()) { + return; + } + }); + + function isFileTransfer(e) { + var e = e.originalEvent, + isFileTransfer = false; + if (e.dataTransfer.types) { + for (var i = 0; i < e.dataTransfer.types.length; i++) { + if (e.dataTransfer.types[i] == "Files") { + isFileTransfer = true; + break; + } + } + } + return isFileTransfer; + } + + if ($(CHV.fn.uploader.selectors.root).exists()) { + $("body").on({ + dragenter: function (e) { + e.preventDefault(); + if (!isFileTransfer(e)) { + return false; + } + if (!$(CHV.fn.uploader.selectors.dropzone).exists()) { + $("body").append( + $( + '<div id="' + + CHV.fn.uploader.selectors.dropzone.replace("#", "") + + '"/>' + ).css({ + width: "100%", + height: "100%", + position: "fixed", + /* opacity: 0.5, background: "red",*/ + zIndex: 1000, + left: 0, + top: 0, + }) + ); + } + }, + }); + $(document).on({ + dragover: function (e) { + e.preventDefault(); + if (!isFileTransfer(e)) { + return false; + } + if (!$(CHV.fn.uploader.selectors.root).data("shown")) { + CHV.fn.uploader.toggle({ + reset: false, + }); + } + }, + dragleave: function (e) { + $(CHV.fn.uploader.selectors.dropzone).remove(); + if ($.isEmptyObject(CHV.fn.uploader.files)) { + CHV.fn.uploader.toggle(); + } + }, + drop: function (e) { + e.preventDefault(); + CHV.fn.uploader.add(e); + $(CHV.fn.uploader.selectors.dropzone).remove(); + }, + }, + CHV.fn.uploader.selectors.dropzone + ); + } + + // + $(document).on("keyup change", "[data-action=resize-combo-input]", function ( + e + ) { + var $parent = $(this).closest("[data-action=resize-combo-input]"); + var $input_width = $("[name=form-width]", $parent); + var $input_height = $("[name=form-height]", $parent); + var ratio = $input_width.data("initial") / $input_height.data("initial"); + var image = { + width: Math.round($input_width.prop("value") / ratio), + height: Math.round($input_height.prop("value") * ratio), + }; + if ($(e.target).is($input_width)) { + $input_height.prop("value", Math.round(image.width)); + } else { + $input_width.prop("value", Math.round(image.height)); + } + }); + + // Edit item from queue + $(document).on( + "click", + anywhere_upload_queue + " [data-action=edit]", + function () { + var $item = $(this).closest("li"), + $queue = $item.closest("ul"), + id = $item.data("id"), + file = CHV.fn.uploader.files[id]; + + var modal = PF.obj.modal.selectors.root; + var queueObject = $.extend({}, file.formValues || file.parsedMeta); + + // Inject global upload options if needed + var injectKeys = ["album_id", "category_id", "nsfw"]; + for (var i = 0; i < injectKeys.length; i++) { + var key = injectKeys[i]; + if (typeof queueObject[key] == typeof undefined) { + var $object = $( + "[name=upload-" + key.replace("_", "-") + "]", + CHV.fn.uploader.selectors.root + ); + var value = $object.prop( + $object.is(":checkbox") ? "checked" : "value" + ); + queueObject[key] = $object.is(":checkbox") ? + value ? + "1" : + null : + value; + } + } + + // Resize before upload + PF.fn.modal.call({ + type: "html", + template: $("#anywhere-upload-edit-item").html(), + callback: function () { + var imageMaxCfg = { + width: CHV.obj.config.image.max_width != 0 ? + CHV.obj.config.image.max_width : queueObject.width, + height: CHV.obj.config.image.max_height != 0 ? + CHV.obj.config.image.max_height : queueObject.height, + }; + + var imageMax = $.extend({}, imageMaxCfg); + var ratio = queueObject.width / queueObject.height; + + imageMax.width = Math.round(imageMaxCfg.height * ratio); + imageMax.height = Math.round(imageMaxCfg.width / ratio); + + if (imageMax.height > imageMaxCfg.height) { + imageMax.height = imageMaxCfg.height; + imageMax.width = Math.round(imageMax.height * ratio); + } + + if (imageMax.width > imageMaxCfg.width) { + imageMax.width = imageMaxCfg.width; + imageMax.height = Math.round(imageMax.width / ratio); + } + + $.each(queueObject, function (i, v) { + var name = "[name=form-" + i.replace(/_/g, "-") + "]"; + var $input = $(name, modal); + + if (!$input.exists()) return true; + + if ($input.is(":checkbox")) { + $input.prop("checked", $input.attr("value") == v); + } else if ($input.is("select")) { + var $option = $input.find("[value=" + v + "]"); + if (!$option.exists()) { + $option = $input.find("option:first"); + } + $option.prop("selected", true); + } else { + $input.prop("value", v); + } + + if (i == "width" || i == "height") { + var max = imageMax[i]; + var value = file.parsedMeta[i] > max ? max : file.parsedMeta[i]; + $input + .prop("max", value) + .data("initial", file.parsedMeta[i]) + .prop("value", value); + } + }); + + if (file.parsedMeta.mimetype !== "image/gif") { + $("[ data-content=animated-gif-warning]", modal).remove(); + } + + $(".image-preview", modal).append( + $("<canvas/>", { + class: "canvas checkered-background", + }) + ); + var source_canvas = $( + ".queue-item[data-id=" + id + "] .preview .canvas" + )[0]; + var target_canvas = $(".image-preview .canvas", modal)[0]; + target_canvas.width = source_canvas.width; + target_canvas.height = source_canvas.height; + var target_canvas_ctx = target_canvas.getContext("2d"); + target_canvas_ctx.drawImage(source_canvas, 0, 0); + }, + confirm: function () { + if (!PF.fn.form_modal_has_changed()) { + PF.fn.modal.close(); + return; + } + + // Validations (just in case) + var errors = false; + $.each(["width", "height"], function (i, v) { + var $input = $("[name=form-" + v + "]", modal); + var input_val = parseInt($input.val()); + var min_val = parseInt($input.attr("min")); + var max_val = parseInt($input.attr("max")); + if (input_val > max_val || input_val < min_val) { + $input.highlight(); + errors = true; + return true; + } + }); + + if (errors) { + PF.fn.growl.expirable( + PF.fn._s("Check the errors in the form to continue.") + ); + return false; + } + + if (typeof file.formValues == typeof undefined) { + // Stock formvalues object + file.formValues = { + title: null, + category_id: null, + width: null, + height: null, + nsfw: null, + expiration: null, + description: null, + album_id: null, + }; + } + + $(":input[name]", modal).each(function (i, v) { + var key = $(this) + .attr("name") + .replace("form-", "") + .replace(/-/g, "_"); + if (typeof file.formValues[key] == typeof undefined) return true; + file.formValues[key] = $(this).is(":checkbox") ? + $(this).is(":checked") ? + $(this).prop("value") : + null : + $(this).prop("value"); + }); + + CHV.fn.uploader.files[id].formValues = file.formValues; + + return true; + }, + }); + } + ); + + // Remove item from queue + $(document).on( + "click", + anywhere_upload_queue + " [data-action=cancel]", + function () { + var $item = $(this).closest("li"), + $queue = $item.closest("ul"), + id = $item.data("id"), + queue_height = $queue.height(), + item_xhr_cancel = false; + + if ($item.hasClass("completed") || $item.hasClass("failed")) { + return; + } + + $("#tiptip_holder").hide(); + + $item.tipTip("destroy").remove(); + + if (queue_height !== $queue.height()) { + CHV.fn.uploader.boxSizer(); + } + if (!$("li", $anywhere_upload_queue).exists()) { + $( + "[data-group=upload-queue-ready], [data-group=upload-queue], [data-group=upload-queue-ready]", + $anywhere_upload + ).css("display", ""); + } + + if ( + CHV.fn.uploader.files[id] && + typeof CHV.fn.uploader.files[id].xhr !== "undefined" + ) { + CHV.fn.uploader.files[id].xhr.abort(); + item_xhr_cancel = true; + } + + if ( + typeof CHV.fn.uploader.files[id] !== typeof undefined && + typeof CHV.fn.uploader.files[id].fromClipboard !== typeof undefined + ) { + var c_md5 = CHV.fn.uploader.files[id].md5; + var c_index = CHV.fn.uploader.clipboardImages.indexOf(c_md5); + if (c_index > -1) { + CHV.fn.uploader.clipboardImages.splice(c_index, 1); + } + } + + delete CHV.fn.uploader.files[id]; + + CHV.fn.uploader.queueSize(); + + if (Object.size(CHV.fn.uploader.files) == 0) { + // No queue left + // Null result ? + if (!("success" in CHV.fn.uploader) || + !("results" in CHV.fn.uploader) || + (Object.size(CHV.fn.uploader.results.success) == 0 && + Object.size(CHV.fn.uploader.results.error) == 0) + ) { + CHV.fn.uploader.reset(); + } + } else { + // Do we need to process the next item? + if (item_xhr_cancel && $("li.waiting", $queue).first().length !== 0) { + CHV.fn.uploader.upload($("li.waiting", $queue).first()); + } + } + } + ); + + $(document).on("click", "[data-action=upload]", function () { + if (typeof CHV.obj.logged_user === "undefined" && $('#upload-tos').prop('checked') === false) { + PF.fn.growl.call("You must agree to the terms and privacy policy"); + return; + } + $( + "[data-group=upload], [data-group=upload-queue-ready]", + $anywhere_upload + ).hide(); + $anywhere_upload + .removeClass("queueReady") + .addClass("queueUploading") + .find("[data-group=uploading]") + .show(); + CHV.fn.uploader.queueSize(); + CHV.fn.uploader.canAdd = false; + $queue_items = $("li", $anywhere_upload_queue); + $queue_items.addClass("uploading waiting"); + CHV.fn.uploader.timestamp = new Date().getTime(); + CHV.fn.uploader.upload($queue_items.first("li")); + }); + + if ($("body#user").exists()) { + if (PF.obj.listing.query_string.page > 1) { + var State = History.getState(); + if (State.data && typeof State.data.scrollTop !== "undefined") { + if ($(window).scrollTop() !== State.data.scrollTop) { + $(window).scrollTop(State.data.scrollTop); + } + } else { + //var scrollTop = $(".follow-scroll").offset().top - $(".follow-scroll").height(); + var scrollTop = $("#background-cover").height() - 160; + $("html, body").animate({ + scrollTop: scrollTop, + }, + 0 + ); + } + } + } + + if ($("#top-bar-shade").exists() && $("#top-bar-shade").css("opacity")) { + $("#top-bar-shade").data( + "initial-opacity", + Number($("#top-bar-shade").css("opacity")) + ); + } + + CHV.fn.bindSelectableItems(); + + if ($("body#image").exists()) { + if ($(CHV.obj.image_viewer.selector + " [data-load=full]").length > 0) { + $(document).on("click", CHV.obj.image_viewer.loader, function (e) { + CHV.fn.viewerLoadImage(); + }); + if ( + $(CHV.obj.image_viewer.loader).data("size") > + CHV.obj.config.image.load_max_filesize.getBytes() + ) { + $(CHV.obj.image_viewer.loader).css("display", "block"); + } else { + CHV.fn.viewerLoadImage(); + } + } + new MutationObserver(() => { + if ( + $("html").height() > $(window).innerHeight() && + !$("html").hasClass("scrollbar-y") + ) { + $("html").addClass("scrollbar-y"); + $(document).data({ + width: $(this).width(), + height: $(this).height(), + }); + } + }).observe(document, { childList: true }); + $(document).on("keyup", function (e) { + var $this = $(e.target), + event = e.originalEvent; + if ($this.is(":input")) { + return; + } else { + if ( + CHV.obj.image_viewer.$navigation.exists() && + (event.key == "ArrowLeft" || event.key == "ArrowRight") + ) { + var navigation_jump_url = $( + "[data-action=" + (event.key == "ArrowLeft" ? "prev" : "next") + "]", + CHV.obj.image_viewer.$navigation + ).attr("href"); + if ( + typeof navigation_jump_url !== "undefined" && + navigation_jump_url !== "" + ) { + window.location = $( + "[data-action=" + (event.key == "ArrowLeft" ? "prev" : "next") + "]", + CHV.obj.image_viewer.$navigation + ).attr("href"); + } + } + } + }); + } + + $(document) + .on("click", CHV.obj.image_viewer.container + " img", function (e) { + if (!( + $(this).hasClass("cursor-zoom-in") || + $(this).hasClass("cursor-zoom-out") + )) { + return; + } + var zoom_in = $(this).hasClass("cursor-zoom-in"); + $(this).removeClass("cursor-zoom-in cursor-zoom-out"); + if (zoom_in) { + var width = $(this).attr('width'), + height = $(this).attr('height'), + ratio = width / height, + new_width; + if (width > $(window).width()) { + $(this).css("width", "100%"); + new_width = $(this).width(); + $(this).css("width", width); + } else { + new_width = $(this).attr("width"); + } + $(this) + .addClass("cursor-zoom-out") + .css({ + width: new_width, + height: new_width / ratio + "px", + }); + $("#image-viewer-container").css("height", ""); + } else { + $(this).addClass("cursor-zoom-in"); + image_viewer_full_fix(); + } + + e.preventDefault(); + }) + .on("contextmenu", CHV.obj.image_viewer.container, function (e) { + if (!CHV.obj.config.image.right_click) { + e.preventDefault(); + return false; + } + }); + + $(document).on( + "contextmenu", + "html.device-mobile a.image-container", + function (e) { + e.preventDefault(); + e.stopPropagation(); + } + ); + + $(document).on("keyup", "input[data-dashboard-tool]", function (e) { + if (e.keyCode == 13) { + var $button = $("[data-action=" + $(this).data("dashboard-tool") + "]"); + $button.click(); + } + }); + + $(document).on("click", "[data-action=dashboardTool]", function (e) { + e.preventDefault(); + var tool = $(this).data("tool"); + var dataSet = $(this).data("data"); + var data = $.extend({}, dataSet); + var inputs = {}; + for (var key in data) { + var val = $(data[key]).val(); + if ($(data[key]).prop("disabled") || !val) { + return; + } + inputs[key] = $(data[key]); + data[key] = val; + } + data.action = tool; + var ajaxObj = { + type: "GET", // ! + cache: false, + }; + ajaxObj.data = data; + var $parent = $(this).closest(".input-label"); + var validate = true; + var message; + + if (validate == false) { + PF.fn.growl.expirable(message); + return; + } + for (var key in inputs) { + // inputs[key].prop("disabled", true); + } + PF.fn.loading.inline($(".loading", $parent), { + size: "small", + valign: "middle", + }); + $parent.find(".btn .text").hide(); + $.ajax(ajaxObj).complete(function (XHR) { + var response = XHR.responseJSON; + // inputs[key].prop("disabled", false); + $(".loading", $parent).empty(); + $parent.find(".btn .text").show(); + if ( + response.status_code == 200 && + typeof response.success.redirURL !== typeof undefined + ) { + window.location.href = response.success.redirURL; + return; + } + PF.fn.growl.call( + response[response.status_code == 200 ? "success" : "error"].message + ); + }); + }); + + // Third-party plugin, magic comes in 3... + $(document).on("click", "[data-action=openerPostMessage]", function (e) { + if (!window.opener) return; + e.preventDefault(); + var target_attr = "data-action-target"; + var $target = $( + $(this).is("[" + target_attr + "]") ? $(this).attr(target_attr) : this + ); + var val = $target[$target.is(":input") ? "val" : "html"](); + window.opener.postMessage({ + id: window.name, + message: val, + }, + "*" + ); + }); + + /* + // Input copy + $(document).on("mouseenter mouseleave", ".input-copy", function(e){ + if(navigator.userAgent.match(/(iPad|iPhone|iPod)/i)) { + return; + } + $(".btn-copy", this)[e.type == "mouseenter" ? "show" : "hide"](); + }); + + $(document).on("click", ".input-copy .btn-copy", function(){ + var $input = $(this).closest(".input-copy").find("input"); + $(this).hide(); + $input.highlight(); + }); + */ + + /** + * USER SIDE LISTING EDITOR + * ------------------------------------------------------------------------------------------------- + */ + + $(document).on("click", "[data-action=list-tools] [data-action]", function ( + e + ) { + var $this = $(e.target), + $list_item = $this.closest("[data-id]"); + if ( + $list_item && + $list_item.find("[data-action=select]").exists() && + (e.ctrlKey || e.metaKey) && + e.altKey + ) { + CHV.fn.list_editor.toggleSelectItem( + $list_item, !$list_item.hasClass("selected") + ); + e.preventDefault(); + e.stopPropagation(); + } + }); + + // On listing ajax, clear the "Clear selection" toggle + PF.fn.listing.ajax.callback = function (XHR) { + if (XHR.status !== 200) return; + CHV.fn.list_editor.listMassActionSet("select"); + }; + + // Select all + $(document).on("click", "[data-action=list-select-all]", function (e) { + if ($(this).closest('.disabled').exists()) { + return false; + } + CHV.fn.list_editor.selectAll(e); + }); + // Clear all + $(document).on("click", "[data-action=list-clear-all]", function () { + // PF.fn.close_pops(); + CHV.fn.list_editor.clearSelection(); + }); + + + $(document).on("click", "[data-action=share]", function ( + e + ) { + var $list_item; + if ($('.viewer:visible').exists()) { + $list_item = $(PF.obj.listing.selectors.list_item + '[data-id=' + $('.viewer').attr('data-id') + ']', '.content-listing').first(); + } else { + $list_item = $(this).closest(PF.obj.listing.selectors.list_item).first(); + } + var url; + var image; + var title; + var link; + var modal_tpl; + var modal_sel = "#modal-share"; + if ($list_item.exists()) { + modal_tpl = CHV.fn.modal.getTemplateWithPreview(modal_sel, $list_item); + if (typeof $list_item.attr("data-type") === "undefined") { + console.log("Error: data-type not defined"); + return; + } + link = $list_item.find('.list-item-desc-title-link').first(); + image = $list_item.find('.image-container img').first().attr('src'); + url = $list_item.attr('data-url-short'); + } else { + modal_tpl = $(modal_sel).html(); + dealing_with = CHV.obj.resource.type; + url = window.location.href; + image = $('#image-viewer-container').find('img').first().attr('src'); + link = $(".header > h1 > a"); + } + title = PF.fn.htmlEncode(link.text()); + + var privacy = $list_item.data("privacy") || CHV.obj.resource.privacy; + var privacy_notes = ''; + switch (privacy) { + case 'private_but_link': + privacy_notes = PF.fn._s('Note: This content is private but anyone with the link will be able to see this.'); + break; + case 'password': + privacy_notes = PF.fn._s('Note: This content is password protected. Remember to pass the content password to share.'); + break; + case 'private': + privacy_notes = PF.fn._s('Note: This content is private. Change privacy to "public" to share.'); + break; + } + modal_tpl = modal_tpl + .replaceAll('__url__', url) + .replaceAll('__image__', image) + .replaceAll('__title__', title) + .replaceAll('__privacy__', privacy) + .replaceAll('__privacy_notes__', privacy_notes); + PF.fn.modal.call({ + type: "html", + buttons: false, + template: modal_tpl, + }); + }); + + $(document).on("click", "[data-action=list-tools] [data-action]", function ( + e + ) { + if (e.isPropagationStopped()) return false; + + var $list_item; + if ($('.viewer:visible').exists()) { + $list_item = $(PF.obj.listing.selectors.list_item + '[data-id=' + $('.viewer').attr('data-id') + ']', '.content-listing').first(); + } else { + $list_item = $(this).closest(PF.obj.listing.selectors.list_item).first(); + } + var id = $list_item.attr("data-id"); + + if (typeof $list_item.attr("data-type") !== "undefined") { + dealing_with = $list_item.attr("data-type"); + } else { + console.log("Error: data-type not defined"); + return; + } + + var $targets = $("[data-type=" + dealing_with + "][data-id=" + id + "]"); + var dealing_with; + + switch ($(this).data("action")) { + case "select": + CHV.fn.list_editor.toggleSelectItem( + $list_item, !$list_item.hasClass("selected") + ); + break; + + case "edit": + var modal_source = "[data-modal=form-edit-single]"; + switch (dealing_with) { + case "image": + $("[name=form-image-title]", modal_source).attr({ + value: $list_item.attr("data-title"), + autocomplete: "off" + }); + $("[name=form-image-description]", modal_source).html( + PF.fn.htmlEncode($list_item.data("description")) + ); + + $("[name=form-album-id]", modal_source) + .find("option") + .removeAttr("selected"); + $("[name=form-album-id]", modal_source) + .find( + "[value=" + + $list_item.data(dealing_with == "image" ? "album-id" : "id") + + "]" + ) + .attr("selected", true); + + $("[name=form-category-id]", modal_source) + .find("option") + .removeAttr("selected"); + $("[name=form-category-id]", modal_source) + .find("[value=" + $list_item.data("category-id") + "]") + .attr("selected", true); + + $("[name=form-nsfw]", modal_source).attr( + "checked", + $list_item.data("flag") == "unsafe" + ); + + // Just in case... + $("[name=form-album-name]", modal_source).attr({ value: "", autocomplete: "off" }); + $("[name=form-album-description]", modal_source).html(""); + $("[name=form-privacy]", modal_source) + .find("option") + .removeAttr("selected"); + + break; + case "album": + $("[data-action=album-switch]", modal_source).remove(); + $("[name=form-album-name]", modal_source).attr({ + value: $list_item.data("name"), + autocomplete: "off" + }); + $("[name=form-album-description]", modal_source).html( + PF.fn.htmlEncode($list_item.data("description")) + ); + $("[name=form-privacy]", modal_source) + .find("option") + .removeAttr("selected"); + $("[name=form-privacy]", modal_source) + .find("[value=" + $list_item.data("privacy") + "]") + .attr("selected", true); + if ($list_item.data("privacy") == "password") { + $("[data-combo-value=password]").show(); + $("[name=form-album-password]", modal_source).attr( + "value", + $list_item.data("password") + ); + } else { + $("[data-combo-value=password]").hide(); + $("[name=form-album-password]", modal_source).attr("value", ""); + } + break; + } + + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreview(modal_source, $list_item), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + CHV.fn.list_editor.updateItem( + "[data-type=" + dealing_with + "][data-id=" + id + "]", + XHR.responseJSON[dealing_with], + "edit" + ); + }, + }, + }, + confirm: function () { + var $modal = $(PF.obj.modal.selectors.root); + + if ( + (dealing_with == "image" || dealing_with == "album") && + $("[data-content=form-new-album]", $modal).is(":visible") && + $("[name=form-album-name]", $modal).val() == "" + ) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + + if (!PF.fn.form_modal_has_changed()) { + PF.fn.modal.close(); + return; + } + + PF.obj.modal.form_data = { + action: "edit", // use the same method applied in viewer + edit: $list_item.data("type"), + single: true, + owner: CHV.obj.resource.user.id, + editing: { + id: id, + description: $( + "[name=form-" + dealing_with + "-description]", + $modal + ).val(), + }, + }; + + switch (dealing_with) { + case "image": + PF.obj.modal.form_data.editing.title = $( + "[name=form-image-title]", + $modal + ).val(); + PF.obj.modal.form_data.editing.category_id = + $("[name=form-category-id]", $modal).val() || null; + PF.obj.modal.form_data.editing.nsfw = $( + "[name=form-nsfw]", + $modal + ).prop("checked") ? + 1 : + 0; + break; + case "album": + PF.obj.modal.form_data.editing.name = $( + "[name=form-album-name]", + $modal + ).val(); + PF.obj.modal.form_data.editing.privacy = $( + "[name=form-privacy]", + $modal + ).val(); + if (PF.obj.modal.form_data.editing.privacy == "password") { + PF.obj.modal.form_data.editing.password = $( + "[name=form-album-password]", + $modal + ).val(); + } + break; + } + + PF.obj.modal.form_data.editing.new_album = $( + "[data-content=form-new-album]", + $modal + ).is(":visible"); + + if (PF.obj.modal.form_data.editing.new_album) { + PF.obj.modal.form_data.editing.album_name = $( + "[name=form-album-name]", + $modal + ).val(); + PF.obj.modal.form_data.editing.album_privacy = $( + "[name=form-privacy]", + $modal + ).val(); + if (PF.obj.modal.form_data.editing.album_privacy == "password") { + PF.obj.modal.form_data.editing.album_password = $( + "[name=form-album-password]", + $modal + ).val(); + } + PF.obj.modal.form_data.editing.album_description = $( + "[name=form-album-description]", + $modal + ).val(); + } else { + PF.obj.modal.form_data.editing.album_id = $( + "[name=form-album-id]", + $modal + ).val(); + } + + return true; + }, + }); + break; + + case "create-album": + case "move": // Move or create album + var template = $(this).data("action") == "move" ? + "form-move-single" : + "form-create-album", + modal_source = "[data-modal=" + template + "]"; + $("[name=form-album-id]", modal_source) + .find("option") + .removeAttr("selected"); + $("[name=form-album-id]", modal_source) + .find( + "[value=" + + $list_item.data(dealing_with == "image" ? "album-id" : "id") + + "]" + ) + .attr("selected", true); + $("[name=form-album-name]", modal_source).attr({ value: "", autocomplete: "off" }); + $("[name=form-album-description]", modal_source).html(""); + $("[name=form-privacy]", modal_source) + .find("option") + .removeAttr("selected"); + + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreview(modal_source, $targets), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + CHV.fn.list_editor.updateMoveItemLists( + XHR.responseJSON, + dealing_with, + $targets + ); + }, + }, + }, + load: function () { + //$("[name=form-album-id]", PF.obj.modal.selectors.root).focus(); + }, + confirm: function () { + var $modal = $(PF.obj.modal.selectors.root); + + if ( + $("[data-content=form-new-album]", $modal).is(":visible") && + $("[name=form-album-name]", $modal).val() == "" + ) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + + if (!PF.fn.form_modal_has_changed()) { + PF.fn.modal.close(); + return; + } + + PF.obj.modal.form_data = { + action: "edit", // use the same method applied in viewer + edit: $list_item.data("type"), + single: true, + owner: CHV.obj.resource.user.id, + editing: { + id: id, + }, + }; + + PF.obj.modal.form_data.editing.new_album = $( + "[data-content=form-new-album]", + $modal + ).is(":visible"); + + if (PF.obj.modal.form_data.editing.new_album) { + PF.obj.modal.form_data.editing.album_name = $( + "[name=form-album-name]", + $modal + ).val(); + PF.obj.modal.form_data.editing.album_privacy = $( + "[name=form-privacy]", + $modal + ).val(); + if (PF.obj.modal.form_data.editing.album_privacy == "password") { + PF.obj.modal.form_data.editing.album_password = $( + "[name=form-album-password]", + $modal + ).val(); + } + PF.obj.modal.form_data.editing.album_description = $( + "[name=form-album-description]", + $modal + ).val(); + } else { + PF.obj.modal.form_data.editing.album_id = $( + "[name=form-album-id]", + $modal + ).val(); + } + + return true; + }, + }); + + break; + + case "approve": + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreview("[data-modal=form-approve-single]", $list_item), + button_submit: PF.fn._s("Confirm"), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + CHV.fn.list_editor.removeFromList( + $list_item, + PF.fn._s("The content has been approved.") + ); + }, + }, + }, + confirm: function () { + PF.obj.modal.form_data = { + action: "approve", + single: true, + approve: $list_item.data("type"), + approving: { + id: id, + }, + }; + return true; + }, + }); + break; + case "delete": + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreview("[data-modal=form-delete-single]", $list_item), + button_submit: PF.fn._s("Confirm"), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + if (dealing_with == "album") { + $("[name=form-album-id]", "[data-modal]") + .find("[value=" + id + "]") + .remove(); + CHV.fn.list_editor.updateUserCounters( + "image", + XHR.responseJSON.success.affected, + "-" + ); + } + CHV.fn.list_editor.deleteFromList($list_item); + CHV.fn.listingViewer.close(); + }, + }, + }, + confirm: function () { + PF.obj.modal.form_data = { + action: "delete", + single: true, + delete: $list_item.data("type"), + deleting: { + id: id, + }, + }; + return true; + }, + }); + + break; + + case "flag": + $.ajax({ + type: "POST", + data: { + action: "edit", + edit: "image", + single: true, + editing: { + id: id, + nsfw: $list_item.data("flag") == "unsafe" ? 0 : 1, + }, + }, + }).complete(function (XHR) { + var response = XHR.responseJSON; + if (response.status_code == 200) { + var flag = response.image.nsfw == 1 ? "unsafe" : "safe"; + $targets.attr("data-flag", flag).data("flag", flag); + } else { + PF.fn.growl.call(response.error.message); + } + CHV.fn.list_editor.selectionCount(); + }); + break; + } + }); + + $(".pop-box-menu a", "[data-content=list-selection]").click(function (e) { + var $content_listing = $(PF.obj.listing.selectors.content_listing_visible); + + if (typeof $content_listing.data("list") !== "undefined") { + dealing_with = $content_listing.data("list"); + } else { + console.log("Error: data-list not defined"); + return; + } + + var $targets = $( + PF.obj.listing.selectors.list_item + ".selected", + $content_listing + ), + ids = $.map($targets, function (e, i) { + return $(e).data("id"); + }); + + PF.fn.close_pops(); + if ($(this).data("action") !== 'list-select-all') { + e.stopPropagation(); + } + + switch ($(this).data("action")) { + case "get-embed-codes": + var template = "[data-modal=form-embed-codes]"; + var objects = []; + $("textarea", template).html(""); + $targets.each(function () { + var aux = { + image: JSON.parse(decodeURIComponent($(this).data("object"))), + }; + if ("url" in aux.image) { + objects.push(aux); + } + }); + CHV.fn.fillEmbedCodes(objects, template, "html"); + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreviews(template, $targets), + buttons: false, + }); + + + break; + + case "clear": + CHV.fn.list_editor.clearSelection(); + break; + + case "list-select-all": + CHV.fn.list_editor.selectAll(e); + break; + + case "move": + case "create-album": + var template = $(this).data("action") == "move" ? + "form-move-multiple" : + "form-create-album", + modal_source = "[data-modal=" + template + "]", + dealing_id_data = /image/.test(dealing_with) ? "album-id" : "id"; + + $("[name=form-album-id]", modal_source).find("[value=null]").remove(); + + $("[name=form-album-id]", modal_source) + .find("option") + .removeAttr("selected"); + + $("[name=form-album-name]", modal_source).attr({ value: "", autocomplete: "off" }); + $("[name=form-album-description]", modal_source).html(""); + $("[name=form-privacy]", modal_source) + .find("option") + .removeAttr("selected"); + + var album_id = $targets.first().data(dealing_id_data), + same_album = true; + + $targets.each(function () { + if ($(this).data(dealing_id_data) !== album_id) { + same_album = false; + return false; + } + }); + + if (!same_album) { + $("[name=form-album-id]", modal_source).prepend( + '<option value="null">' + + PF.fn._s("Select existing album") + + "</option>" + ); + } + + $("[name=form-album-id]", modal_source) + .find( + "[value=" + + (same_album ? $targets.first().data(dealing_id_data) : "null") + + "]" + ) + .attr("selected", true); + + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreviews(modal_source, $targets), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + CHV.fn.list_editor.updateMoveItemLists( + XHR.responseJSON, + dealing_with, + $targets + ); + }, + }, + }, + load: function () { + if (template == "form-move-multiple") { + //$("[name=form-album-id]", PF.obj.modal.selectors.root).focus(); + } + }, + confirm: function () { + var $modal = $(PF.obj.modal.selectors.root), + new_album = false; + + if ( + $("[data-content=form-new-album]", $modal).is(":visible") && + $("[name=form-album-name]", $modal).val() == "" + ) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + + if ($("[data-content=form-new-album]", $modal).is(":visible")) { + new_album = true; + } + + if (!PF.fn.form_modal_has_changed()) { + PF.fn.modal.close(); + return; + } + + var album_object = new_album ? "creating" : "moving"; + + PF.obj.modal.form_data = { + action: new_album ? "create-album" : "move", + type: dealing_with, + owner: CHV.obj.resource.user.id, + multiple: true, + album: { + ids: ids, + new: new_album, + }, + }; + + if (new_album) { + PF.obj.modal.form_data.album.name = $( + "[name=form-album-name]", + $modal + ).val(); + PF.obj.modal.form_data.album.privacy = $( + "[name=form-privacy]", + $modal + ).val(); + if (PF.obj.modal.form_data.album.privacy == "password") { + PF.obj.modal.form_data.album.password = $( + "[name=form-album-password]", + $modal + ).val(); + } + PF.obj.modal.form_data.album.description = $( + "[name=form-album-description]", + $modal + ).val(); + } else { + PF.obj.modal.form_data.album.id = $( + "[name=form-album-id]", + $modal + ).val(); + } + + return true; + }, + }); + + break; + + case "approve": + PF.fn.modal.call({ + template: CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-approve-multiple]", $targets), + button_submit: PF.fn._s("Confirm"), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + CHV.fn.list_editor.removeFromList( + $targets, + PF.fn._s("The content has been approved.") + ); + }, + }, + }, + confirm: function () { + PF.obj.modal.form_data = { + action: "approve", + from: "list", + approve: dealing_with, + multiple: true, + approving: { + ids: ids, + }, + }; + + return true; + }, + }); + + break; + + case "delete": + PF.fn.modal.call({ + template: CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-delete-multiple]", $targets), + button_submit: PF.fn._s("Confirm"), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + // unificar + if (dealing_with == "albums") { + $targets.each(function () { + $("[name=form-album-id]", "[data-modal]") + .find("[value=" + $(this).data("id") + "]") + .remove(); + }); + CHV.fn.list_editor.updateUserCounters( + "image", + XHR.responseJSON.success.affected, + "-" + ); + } + CHV.fn.list_editor.deleteFromList($targets); + }, + }, + }, + confirm: function () { + PF.obj.modal.form_data = { + action: "delete", + from: "list", + delete: dealing_with, + multiple: true, + deleting: { + ids: ids, + }, + }; + + return true; + }, + }); + + break; + + case "assign-category": + var category_id = $targets.first().data("category-id"), + same_category = true; + + $targets.each(function () { + if ($(this).data("category-id") !== category_id) { + same_category = false; + return false; + } + }); + + PF.fn.modal.call({ + type: "html", + template: CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-assign-category]", $targets), + forced: true, + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + $targets.each(function () { + var response = XHR.responseJSON; + $(this).data("category-id", response.category_id); + }); + CHV.fn.list_editor.clearSelection(); + }, + }, + }, + confirm: function () { + var $modal = $(PF.obj.modal.selectors.root), + form_category = + $("[name=form-category-id]", $modal).val() || null; + + if (same_category && category_id == form_category) { + PF.fn.modal.close(function () { + CHV.fn.list_editor.clearSelection(); + }); + return false; + } + + PF.obj.modal.form_data = { + action: "edit-category", + from: "list", + multiple: true, + editing: { + ids: ids, + category_id: form_category, + }, + }; + return true; + }, + }); + break; + + case "flag-safe": + case "flag-unsafe": + var action = $(this).data("action"), + flag = action == "flag-safe" ? "safe" : "unsafe"; + + PF.fn.modal.call({ + template: CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-" + action + "]", $targets), + button_submit: PF.fn._s("Confirm"), + ajax: { + url: PF.obj.config.json_api, + deferred: { + success: function (XHR) { + $targets.each(function () { + $(this) + .removeClass("safe unsafe") + .addClass(flag) + .removeAttr("data-flag") + .attr("data-flag", flag) + .data("flag", flag); + }); + CHV.fn.list_editor.clearSelection(); + }, + }, + }, + confirm: function () { + PF.obj.modal.form_data = { + action: action, + from: "list", + multiple: true, + editing: { + ids: ids, + nsfw: action == "flag-safe" ? 0 : 1, + }, + }; + + return true; + }, + }); + + break; + } + + if (PF.fn.isDevice(["phone", "phablet"])) { + return false; + } + }); + + $(document).on("click", "[data-action=disconnect]", function () { + var $this = $(this), + connection = $this.data("connection"); + + PF.fn.modal.confirm({ + message: $this.data("confirm-message"), + ajax: { + data: { + action: "disconnect", + disconnect: connection, + user_id: CHV.obj.resource.user.id, + }, + deferred: { + success: function (XHR) { + var response = XHR.responseJSON; + $("[data-connection=" + connection + "]").fadeOut(function () { + $($("[data-connect=" + connection + "]")).fadeIn(); + $(this).remove(); + if ($("[data-connection]").length == 0) { + $("[data-content=empty-message]").show(); + } + PF.fn.growl.expirable(response.success.message); + }); + if (response.success.redirect !== '') { + window.location.href = response.success.redirect; + } + }, + error: function (XHR) { + var response = XHR.responseJSON; + PF.fn.growl.call(response.error.message); + }, + }, + }, + }); + }); + + $(document).on("click", "[data-action=delete-avatar]", function () { + var $parent = $(".user-settings-avatar"), + $loading = $(".loading-placeholder", $parent), + $top = $("#top-bar"); + + $loading.removeClass("hidden"); + + PF.fn.loading.inline($loading, { + center: true, + }); + + $.ajax({ + type: "POST", + data: { + action: "delete", + delete: "avatar", + owner: CHV.obj.resource.user.id, + }, + }).complete(function (XHR) { + $loading.addClass("hidden").empty(); + if (XHR.status == 200) { + if (CHV.obj.logged_user.id == CHV.obj.resource.user.id) { + $("img.user-image", $top).hide(); + $(".default-user-image", $top).removeClass("hidden"); + } + $(".default-user-image", $parent).removeClass("hidden").css({ + opacity: 0, + }); + $('[data-action="delete-avatar"]', $parent).parent().addClass("soft-hidden"); + $("img.user-image", $parent).fadeOut(function () { + $(".default-user-image", $parent).animate({ + opacity: 1, + }); + }); + } else { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + } + }); + }); + + $(document).on("change", "[data-content=user-avatar-upload-input]", function ( + e + ) { + e.preventDefault(); + e.stopPropagation(); + var $this = $(this), + $parent = $(".user-settings-avatar"), + $loading = $(".loading-placeholder", ".user-settings-avatar"), + $top = $("#top-bar"), + user_avatar_file = $(this)[0].files[0]; + + if ($this.data("uploading")) { + return; + } + if (/^image\/.*$/.test(user_avatar_file.type) == false) { + PF.fn.growl.call(PF.fn._s("Please select a valid image file type.")); + return; + } + if ( + user_avatar_file.size > CHV.obj.config.user.avatar_max_filesize.getBytes() + ) { + PF.fn.growl.call( + PF.fn._s( + "Please select a picture of at most %s size.", + CHV.obj.config.user.avatar_max_filesize + ) + ); + return; + } + var deleteAvatar = $('[data-action="delete-avatar"]'); + $loading.removeClass("hidden"); + PF.fn.loading.inline($loading, { + center: true, + }); + $this.data("uploading", true); + var user_avatar_fd = new FormData(); + user_avatar_fd.append("source", user_avatar_file); + user_avatar_fd.append("action", "upload"); + user_avatar_fd.append("type", "file"); + user_avatar_fd.append("what", "avatar"); + user_avatar_fd.append("owner", CHV.obj.resource.user.id); + user_avatar_fd.append("auth_token", PF.obj.config.auth_token); + avatarXHR = new XMLHttpRequest(); + avatarXHR.open("POST", PF.obj.config.json_api, true); + avatarXHR.send(user_avatar_fd); + avatarXHR.onreadystatechange = function () { + if (this.readyState == 4) { + var response = + this.responseType !== "json" ? + JSON.parse(this.response) : + this.response, + image = response.success.image; + + $loading.addClass("hidden").empty(); + if (this.status == 200) { + change_avatar = function (parent) { + deleteAvatar.parent().removeClass("soft-hidden"); + $("img.user-image", parent) + .attr("src", image.url) + .removeClass("hidden") + .show(); + }; + hide_default = function (parent) { + $(".default-user-image", parent).addClass("hidden"); + }; + hide_default($parent); + $(".btn-alt", $parent).closest("div").show(); + change_avatar($parent); + if (CHV.obj.logged_user.id == CHV.obj.resource.user.id) { + change_avatar($top); + hide_default($top); + } + PF.fn.growl.expirable(PF.fn._s("Profile image updated.")); + } else { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + } + + $this.data("uploading", false); + } + }; + }); + + $(document).on( + "change", + "[data-content=user-background-upload-input]", + function (e) { + e.preventDefault(); + e.stopPropagation(); + + var $this = $(this), + $parent = $("[data-content=user-background-cover]"), + $src = $("[data-content=user-background-cover-src]"), + $loading = $(".loading-placeholder", $parent), + $top = $("#top-bar"), + user_file = $(this)[0].files[0]; + + if ($this.data("uploading")) { + return; + } + + if (/^image\/.*$/.test(user_file.type) == false) { + PF.fn.growl.call(PF.fn._s("Please select a valid image file type.")); + return; + } + + if ( + user_file.size > CHV.obj.config.user.background_max_filesize.getBytes() + ) { + PF.fn.growl.call( + PF.fn._s( + "Please select a picture of at most %s size.", + CHV.obj.config.user.background_max_filesize + ) + ); + return; + } + + $loading.removeClass("hidden"); + + PF.fn.loading.inline($loading, { + center: true, + size: "big", + color: "#FFF", + }); + + $this.data("uploading", true); + + var user_picture_fd = new FormData(); + user_picture_fd.append("source", user_file); + user_picture_fd.append("action", "upload"); + user_picture_fd.append("type", "file"); + user_picture_fd.append("what", "background"); + user_picture_fd.append("owner", CHV.obj.resource.user.id); + user_picture_fd.append("auth_token", PF.obj.config.auth_token); + avatarXHR = new XMLHttpRequest(); + avatarXHR.open("POST", PF.obj.config.json_api, true); + avatarXHR.send(user_picture_fd); + avatarXHR.onreadystatechange = function () { + if (this.readyState == 4) { + var response = + this.responseType !== "json" ? + JSON.parse(this.response) : + this.response, + image = response.success.image; + + if (this.status == 200) { + var $img = $("<img/>"); + $img.attr("src", image.url).imagesLoaded(function () { + $loading.addClass("hidden").empty(); + $src + .css("background-image", "url(" + image.url + ")") + .hide() + .fadeIn(); + $("[data-content=user-change-background]", $parent).removeClass( + "hidden" + ); + $($parent).removeClass("no-background"); + $(".top-user").removeClass("no-background"); + $("[data-content=user-upload-background]").hide(); + $("[data-content=user-change-background]").show(); + PF.fn.growl.expirable( + PF.fn._s("Profile background image updated.") + ); + $img.remove(); + }); + } else { + $loading.addClass("hidden").empty(); + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + } + + $this.data("uploading", false); + } + }; + } + ); + + CHV.fn.user_background = { + delete: { + submit: function () { + PF.obj.modal.form_data = { + action: "delete", + delete: "background", + owner: CHV.obj.resource.user.id, + }; + return true; + }, + deferred: { + success: { + before: function (XHR) { + $("[data-content=user-background-cover-src]").css( + "background-image", + "none" + ); + $("[data-content=user-background-cover], .top-user") + .addClass("no-background"); + $("[data-content=user-background-cover]").height(""); + $("[data-content=user-upload-background]") + .removeClass("hidden") + .show(); + $("[data-content=user-change-background]").hide(); + }, + done: function (XHR) { + PF.fn.modal.close(function () { + PF.fn.growl.expirable( + PF.fn._s("Profile background image deleted.") + ); + }); + }, + }, + error: function (XHR) { + PF.fn.growl.expirable( + PF.fn._s("Error deleting profile background image.") + ); + }, + }, + }, + }; + + CHV.fn.user_api = { + delete: { + submit: function () { + PF.obj.modal.form_data = { + action: "delete", + delete: "api_key", + owner: CHV.obj.resource.user.id, + }; + return true; + }, + deferred: { + success: { + before: function (XHR) { + }, + done: function (XHR) { + PF.fn.modal.close(function () { + location.reload(); + }); + }, + }, + error: function (XHR) { + PF.fn.growl.expirable( + XHR.responseJSON.error.message + ); + }, + }, + }, + }; + + CHV.fn.user_two_factor = { + delete: { + submit: function () { + PF.obj.modal.form_data = { + action: "delete", + delete: "two_factor", + owner: CHV.obj.resource.user.id, + }; + return true; + }, + deferred: { + success: { + before: function (XHR) { + }, + done: function (XHR) { + PF.fn.modal.close(function () { + location.reload(); + }); + }, + }, + error: function (XHR) { + PF.fn.growl.expirable( + XHR.responseJSON.error.message + ); + }, + }, + }, + }; + + // Form things + CHV.str.mainform = "[data-content=main-form]"; + CHV.obj.timezone = { + selector: "[data-content=timezone]", + input: "#timezone-region", + }; + + // Detect form changes + $(document).on("keyup change", CHV.str.mainform + " :input", function () { + if ($(this).is("[name=username]")) { + $("[data-text=username]").text($(this).val()); + } + }); + + // Timezone handler + $(document).on("change", CHV.obj.timezone.input, function () { + var value = $(this).val(), + $timezone_combo = $("#timezone-combo-" + value); + $timezone_combo.find("option:first").prop("selected", true); + $(CHV.obj.timezone.selector).val($timezone_combo.val()).change(); + }); + $(document).on("change", "[id^=timezone-combo-]", function () { + var value = $(this).val(); + $(CHV.obj.timezone.selector).val(value).change(); + }); + + // Password match + $(document).on("keyup change blur", "[name^=new-password]", function () { + var $new_password = $("[name=new-password]"), + $new_password_confirm = $("[name=new-password-confirm]"), + hide = $new_password.val() == $new_password_confirm.val(), + $warning = $new_password_confirm + .closest(".input-password") + .find(".input-warning"); + if ($warning.exists() == false) { + $warning = $("[data-message=new-password-confirm]"); + } + + if ($(this).is($new_password_confirm)) { + $new_password_confirm.data("touched", true); + } + + if ($new_password_confirm.data("touched")) { + $warning + .text(!hide ? $warning.data("text") : "")[!hide ? "removeClass" : "addClass"]("hidden-visibility"); + } + }); + + // Submit form + $(document).on("submit", CHV.obj.mainform, function () { + switch ($(this).data("type")) { + case "password": + var $p1 = $("[name=new-password]", this), + $p2 = $("[name=new-password-confirm]", this); + if ($p1.val() !== "" || $p2.val() !== "") { + if ($p1.val() !== $p2.val()) { + $p1.highlight(); + $p2.highlight(); + PF.fn.growl.expirable(PF.fn._s("Passwords don't match")); + return false; + } + } + break; + } + }); + + $(document).on("click", "[data-action=check-for-updates]", function () { + PF.fn.loading.fullscreen(); + CHV.fn.system.checkUpdates(function (XHR) { + PF.fn.loading.destroy("fullscreen"); + if (XHR.status !== 200) { + PF.fn.growl.call( + PF.fn._s("An error occurred. Please try again later.") + ); + return; + } + var data = XHR.responseJSON.software; + if ( + PF.fn.versionCompare( + CHV.obj.system_info.version, + data.current_version + ) == -1 + ) { + PF.fn.modal.simple({ + title: '<i class="fas fa-arrow-alt-circle-up"></i> ' + PF.fn._s("Update available v%s", data.current_version), + message: "<p>" + + PF.fn._s("There is an update available for this system.") + + "</p>" + + '<textarea class="r4 resize-vertical">' + + data.release_notes + + "</textarea>" + + '<div class="btn-container margin-bottom-0">' + + '<a href="https://chv.to/v4update" target="_blank" class="btn btn-input accent">' + + '<span class="btn-icon fas fa-external-link-alt user-select-none"></span>' + + '<span class="btn-text user-select-none">' + + PF.fn._s("Update instructions") + + '</span>' + + '</a></div>', + html: true, + }); + } else { + PF.fn.growl.call( + PF.fn._s( + "This website is running latest %s version", + CHEVERETO.edition + ) + ); + } + }); + }); + + if (typeof PF.fn.get_url_var("checkUpdates") !== typeof undefined) { + $("[data-action=check-for-updates]").click(); + } + $(document).on("click", "[data-action=system-update]", function (e) { + if (!$("input#system-update").prop("checked")) { + PF.fn.growl.call( + PF.fn._s('Please review the system requirements before proceeding') + ); + e.preventDefault(); + return; + } + }); + $(document).on("click", "[data-action=toggle-storage-https]", function () { + CHV.fn.storage.toggleHttps( + $(this).closest("[data-content=storage]").data("storage-id") + ); + }); + $(document).on("click", "[data-action=toggle-storage-active]", function () { + CHV.fn.storage.toggleActive( + $(this).closest("[data-content=storage]").data("storage-id") + ); + }); + + // Detect paste image event + if ($(CHV.fn.uploader.selectors.root).exists()) { + CHV.fn.uploader.$pasteCatcher = $("<div />", { + contenteditable: "true", + id: CHV.fn.uploader.selectors.paste.replace(/#/, ""), + }); + $("body").append(CHV.fn.uploader.$pasteCatcher); + + // Hack Ctrl/Cmd+V to focus pasteCatcher + $(document).on("keydown", function (e) { + if ((e.ctrlKey || e.metaKey) && e.originalEvent.code == 'KeyV' && !$(e.target).is(":input")) { + PF.fn.keyFeedback.spawn(e); + CHV.fn.uploader.$pasteCatcher.focus(e); + } + }); + document.addEventListener("dragover", function (e) { + e.preventDefault(); + }); + document.addEventListener("drop", function (e) { + if (!CHV.obj.config.upload.url) { + return; + } + e.preventDefault(); + var imageUrl = e.dataTransfer.getData('text/html'); + var rex = /src="?([^"\s]+)"?\s*/; + var url, res; + url = rex.exec(imageUrl); + if (url) { + CHV.fn.uploader.toggle({ show: true }); + CHV.fn.uploader.add({}, url[1]); + } + }); + window.addEventListener("paste", CHV.fn.uploader.pasteImageHandler); + } + + $(document).on("click", "[data-action=like]", function () { + if (!PF.fn.is_user_logged()) { + window.location.href = CHV.obj.vars.urls.login; + return; + } + var $this = $(this); + if ($this.data("XHR")) return; + $this.data("XHR", true); + + var $object = $(this).is("[data-liked]") ? + $(this) : + $(this).closest("[data-liked]"); + var isSingle = !$object.closest("[data-list], .viewer").exists() && + typeof CHV.obj.resource !== typeof undefined; + var liked = $object.is("[data-liked=1]"); + var action = !liked ? "like" : "dislike"; + var content = { + id: isSingle ? + CHV.obj.resource.id : $(this).closest("[data-id]").attr("data-id"), + type: isSingle ? + CHV.obj.resource.type : $(this).closest("[data-type]").attr("data-type"), + }; + var $targets = isSingle ? + $this : + $("[data-type=" + content.type + "][data-id=" + content.id + "]"); + var ajax = { + type: "POST", + data: { + action: action, + }, + cache: false, + }; + ajax.data[action] = { + object: content.type, + id: content.id, + }; + $.ajax(ajax).complete(function (XHR) { + var response = XHR.responseJSON; + $this.data("XHR", false); + if (response.status_code !== 200) { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + return; + } + if (isSingle && typeof response.content !== typeof undefined) { + $("[data-text=likes-count]").html(response.content.likes); + } + $targets.attr("data-liked", liked ? 0 : 1); // Toggle indicator + }); + }); + + $(document).on("click", "[data-action=album-cover]", function () { + // if (!PF.fn.is_user_logged()) { + // window.location.href = CHV.obj.vars.urls.login; + // return; + // } + var $this = $(this); + if ($this.data("XHR")) return; + $this.data("XHR", true); + var $object = $(this).is("[data-cover]") ? + $(this) : + $(this).closest("[data-cover]"); + var covered = $object.is("[data-cover=1]"); + var action = !covered ? "album-cover-set" : "album-cover-unset"; + var content = { + id: CHV.obj.resource.id, + type: 'image', + }; + + var $targets = $this.closest("[data-cover]"); + var ajax = { + type: "POST", + data: { + action: action, + }, + cache: false, + }; + ajax.data[action] = { + "album_id": $targets.data("album-id"), + "image_id": $targets.data("id"), + }; + $.ajax(ajax).complete(function (XHR) { + var response = XHR.responseJSON; + $this.data("XHR", false); + if (response.status_code !== 200) { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + return; + } + $targets.attr("data-cover", covered ? 0 : 1); + }); + }); + + $(document).on("click", "[data-action=follow]", function () { + if (!PF.fn.is_user_logged()) { + PF.fn.modal.call({ + type: "login", + }); + return; + } + + var $this = $(this); + if ($this.data("XHR")) return; + $this.data("XHR", true); + + var $object = $(this).is("[data-followed]") ? + $(this) : + $(this).closest("[data-followed]"); + var isSingle = typeof CHV.obj.resource !== typeof undefined; + var followed = $object.is("[data-followed=1]"); + var action = !followed ? "follow" : "unfollow"; + var content = { + id: isSingle ? + CHV.obj.resource.id : $(this).closest("[data-id]").data("id"), + type: isSingle ? + CHV.obj.resource.type : $(this).closest("[data-type]").data("type"), + }; + var ajax = { + type: "POST", + data: { + action: action, + }, + cache: false, + }; + ajax.data[action] = { + object: content.type, + id: content.id, + }; + $.ajax(ajax).complete(function (XHR) { + var response = XHR.responseJSON; + $this.data("XHR", false); + if (response.status_code !== 200) { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + return; + } + if (isSingle) { + if (typeof response.user_followed !== typeof undefined) { + var $followersLabel = $("[data-text=followers-label]"); + var label = { + single: $followersLabel.data("label-single"), + plural: $followersLabel.data("label-plural"), + }; + $("[data-text=followers-count]").html( + response.user_followed.followers + ); + $followersLabel.html( + PF.fn._n( + label.single, + label.plural, + response.user_followed.followers + ) + ); + } + } + $object.attr("data-followed", followed ? 0 : 1); // Toggle indicator + }); + }); + + $(document).on("click", "[data-action=user_ban],[data-action=user_unban]", function () { + var $this = $(this); + if ($this.data("XHR")) return; + $this.data("XHR", true); + var $object = $(this).closest("[data-banned]"); + var isSingle = true; + var banned = $object.is("[data-banned=1]"); + var action = $this.attr("data-action"); + var content = { + id: isSingle ? + CHV.obj.resource.id : $(this).closest("[data-id]").data("id"), + type: isSingle ? + CHV.obj.resource.type : $(this).closest("[data-type]").data("type"), + }; + var ajax = { + type: "POST", + data: { + action: action, + }, + cache: false, + }; + ajax.data[action] = { + user_id: content.id, + }; + $.ajax(ajax).complete(function (XHR) { + var response = XHR.responseJSON; + $this.data("XHR", false); + if (response.status_code !== 200) { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + return; + } + $object.attr("data-banned", banned ? 0 : 1); + }); + }); + + function notifications_scroll() { + if (PF.fn.isDevice(["phone", "phablet"])) return; + var $visible_list = $(".top-bar-notifications-list ul", ".top-bar:visible"); + var height; + var height_auto; + $visible_list.css("height", ""); // Reset any change + height = $visible_list.height(); + $visible_list.data("height", height).css("height", "auto"); + height_auto = $visible_list.height(); + if (height_auto > height) { + $visible_list.height(height); + $visible_list.closest(".antiscroll-wrap").antiscroll(); + } + } + + $(document).on("click", "[data-action=top-bar-notifications]", function (e) { + var _this = this; + var $this = $(this); + + var $container = $(".top-bar-notifications-container", $this); + var $list = $(".top-bar-notifications-list", $this); + var $ul = $("ul", $list); + var $loading = $(".loading", $container); + + if ($this.data("XHR")) { + return; + } else { + $loading.removeClass("hidden"); + PF.fn.loading.inline($loading, { + size: "small", + message: PF.fn._s("loading"), + }); + } + + $.ajax({ + type: "POST", + data: { + action: "notifications", + }, + cache: false, + }).complete(function (XHR) { + var response = XHR.responseJSON; + if (response.status_code !== 200) { + PF.fn.growl.expirable( + PF.fn._s("An error occurred. Please try again later.") + ); + $this.data("XHR", false); + $loading.addClass("hidden").html(""); + return; + } + $this.data("XHR", true); + $loading.remove(); + if (!response.html) { + $(".empty", $container).removeClass("hidden"); + return; + } + $list.removeClass("hidden"); + $ul.html(response.html); + notifications_scroll(); + var $li = $("li.new", $ul); + $li.addClass("transition"); + setTimeout(function () { + $li.removeClass("new"); + $("[data-content=notifications-counter]", _this) + .removeClass("on") + .html("0"); + setTimeout(function () { + $li.removeClass("transition"); + }, 150); + }, 1500); + }); + }); + + // Invoke Captcha + if ( + $("#g-recaptcha").is(":empty") && + CHV.obj.config.captcha.enabled && + CHV.obj.config.captcha.sitekey + ) { + if(CHV.obj.config.captcha.version == '3' || !CHV.obj.config.captcha.isNeeded) { + $('label[for="recaptcha_response_field"]').remove(); + } + } + + $(document).on("click", PF.obj.listing.selectors.list_item + " a.image-container", function (e) { + var $parent = $(this).closest(PF.obj.listing.selectors.list_item); + var $loadBtn = $parent.find("[data-action=load-image]"); + if ($loadBtn.length > 0) { + loadImageListing($loadBtn); + e.preventDefault(); + } + return; + }); + + // Load image from listing + $(document).on("click", PF.obj.listing.selectors.list_item + " [data-action=load-image]", function (e) { + loadImageListing($(this)); + e.preventDefault(); + e.stopPropagation(); + return; + }); + + function loadImageListing($this) { + $this.addClass("list-item-play-gif--loading"); + var $parent = $this.closest(PF.obj.listing.selectors.list_item); + var $imageContainer = $(".image-container", $parent); + var $image = $("img", $imageContainer); + var imageSrc = $image.attr("src"); + var md = ".md"; + var mdIndex = imageSrc.lastIndexOf(md); + if (mdIndex == -1) { + var md = ".th"; + var mdIndex = imageSrc.lastIndexOf(md); + } + var loadSrc = + imageSrc.substr(0, mdIndex) + + imageSrc.substr(mdIndex + md.length, imageSrc.length); + $imageContainer.append($imageContainer.html()); + $load = $parent + .find(".image-container img") + .eq(1) + .attr("src", loadSrc) + .addClass("hidden"); + $load.imagesLoaded(function () { + $this.remove(); + $image.remove(); + $("img", $imageContainer).show(); + $(this.elements).removeClass("hidden"); + }); + } + + $(document).on("click", "#album [data-tab=tab-embeds]", function (e) { + e.preventDefault; + CHV.fn.album.showEmbedCodes(); + }); + + if ($("body").is("#upload")) { + CHV.fn.uploader.toggle({ + show: true, + }); + } + + // Listing + viewer keys + $(document).on("keyup", function (e) { + if ($(e.target).is(":input") || (e.ctrlKey || e.metaKey || e.altKey)) { + return; + } + var isModalVisible = $("#fullscreen-modal:visible").exists(); + var $viewer = $(".viewer"); + var $listSelection = $(".list-selection:visible"); + var $listTools = $listSelection.find("[data-content=pop-selection]:visible:not(.disabled)"); + var viewerShown = $("body").hasClass("--viewer-shown"); + var uploaderShown = $(CHV.fn.uploader.selectors.root + CHV.fn.uploader.selectors.show).exists(); + var keyCode = e.originalEvent.code; + if (e.originalEvent.code === 'Escape') { + if (isModalVisible) { + return; + } + if (uploaderShown) { + CHV.fn.uploader.toggle({ reset: false }); + } + } + if ($viewer.exists() && viewerShown) { + if (keyCode in CHV.fn.listingViewer.keys) { + var direct = ["KeyW", "Escape", "ArrowLeft", "ArrowRight"]; + var action = CHV.fn.listingViewer.keys[keyCode]; + if (direct.indexOf(keyCode) == -1) { + $("[data-action=" + action + "]", CHV.fn.listingViewer.selectors.root).click(); + } else { + if (action in CHV.fn.listingViewer) { + CHV.fn.listingViewer[action](); + } + } + PF.fn.keyFeedback.spawn(e); + } + return; + } + var $button; + var keyMapListing = { + 'Period': 'list-select-all', + 'KeyK': 'get-embed-codes', + 'KeyZ': 'clear', + 'KeyA': 'create-album', + 'KeyM': 'move', + 'KeyO': 'approve', + 'Delete': 'delete', + 'KeyC': 'assign-category', + 'KeyV': 'flag-safe', + 'KeyF': 'flag-unsafe', + 'KeyH': 'album-cover', + } + var keyMapResource = { + 'KeyE': 'edit', + 'KeyL': 'like', + 'KeyS': 'share', + 'KeyJ': 'sub-album', + 'KeyP': 'upload-to-album', + } + var action = keyMapListing[keyCode] || keyMapResource[keyCode]; + if (typeof action == typeof undefined) { + return; + } + if ($listSelection.exists()) { + if (!viewerShown && !isModalVisible) { + if (parseInt($('[data-text=selection-count]:visible', $listTools).text()) > 0) { + $button = $("[data-action=" + action + "]", $listSelection.closest(".list-selection")); + } + } + } + if (typeof $button === typeof undefined) { + $button = $("[data-action=" + action + "]:visible").not("#content-listing-tabs *"); + } + if ($button instanceof jQuery && $button.length > 0) { + $button.first().trigger("click"); + PF.fn.keyFeedback.spawn(e); + } + }); + + $(document).on( + "click", + CHV.fn.listingViewer.selectors.root + " [data-action^=viewer-]", + function () { + var action = $(this).data("action").substring("viewer-".length); + if (action in CHV.fn.listingViewer) { + CHV.fn.listingViewer[action](); + } + } + ); + + $(document).on( + "click", + "a[data-href]:not([rel=popup-link]):not(.popup-link)", + function () { + var data = $(this).attr("data-href"); + var href = $(this).attr("href"); + if (!data && !href) return; + location.href = href ? href : data; + } + ); + function toggleListSelect(that, e) { + var $item = $(that).closest(PF.obj.listing.selectors.list_item); + CHV.fn.list_editor.blink($item); + CHV.fn.list_editor.toggleSelectItem($item); + PF.fn.keyFeedback.spawn(e); + e.preventDefault(); + e.stopPropagation(); + + } + var selectableItemSelector = PF.obj.listing.selectors.list_item + ", .image-container"; + $(document).on("contextmenu click", selectableItemSelector, function (e) { + if (!$(".list-selection:visible").exists() + || $(this).closest(CHV.fn.listingViewer.selectors.root).exists() + || e.type == "click" + && !(e.ctrlKey || e.metaKey) + ) { + return; + } + toggleListSelect(this, e); + }); + if(navigator.userAgent.match(/(iPad|iPhone|iPod)/i)) { + var pressTimer; + $(document) + .on("mouseup mousemove", selectableItemSelector, function(e) { + clearTimeout(pressTimer); + return false; + }) + .on("mousedown", selectableItemSelector, function(e) { + var that = this; + var event = e; + pressTimer = window.setTimeout(function() { + if (!$(".list-selection:visible").exists() + || $(that).closest(CHV.fn.listingViewer.selectors.root).exists()) { + return; + } + toggleListSelect(that, event); + }, 500); + return false; + }); + } + + if ( + typeof CHV.obj.config !== typeof undefined && + CHV.obj.config.listing.viewer + ) { + $(document).on( + "click", + PF.obj.listing.selectors.list_item + + "[data-type=image] .image-container", + function (e) { + e.preventDefault(); + e.stopPropagation(); + if (e.clientX === 0 && e.clientY === 0) { + PF.fn.keyFeedback.spawn(e); + return; + } + var $item = $(this).closest(PF.obj.listing.selectors.list_item); + if (!$item.exists()) return; + if (e.ctrlKey || e.metaKey) { + return; + } + CHV.fn.listingViewer.open($item); + } + ); + } + + $(document).on("contextmenu", CHV.fn.listingViewer.selectors.root, function ( + e + ) { + e.preventDefault(); + CHV.fn.listingViewer.zoom(); + PF.fn.keyFeedback.spawn(e); + return false; + }); + + var UrlParams = PF.fn.deparam(window.location.search); + if (UrlParams && "viewer" in UrlParams) { + var $parent = $(PF.obj.listing.selectors.content_listing_visible); + if ($parent.data("list") == "images") { + var $item = $(PF.obj.listing.selectors.list_item, $parent)[ + UrlParams.viewer == "next" ? "first" : "last" + ](); + CHV.fn.listingViewer.open($item); + } + } + var resizeTimer; + $(window).on("DOMContentLoaded load resize scroll", function () { + clearTimeout(resizeTimer); + resizeTimer = setTimeout(function () { + $(PF.obj.listing.selectors.list_item + ":visible").each(function () { + var loadBtn = $(this).find('[data-action="load-image"]').first(); + var paramsHidden = PF.fn.deparam($(PF.obj.listing.selectors.list_item + '[data-id=' + $(this).attr("data-id") + ']').closest(".content-listing").data("params-hidden")); + var autoLoad = paramsHidden && "is_animated" in paramsHidden ? + paramsHidden.is_animated : + $(this).data("size") <= CHV.obj.config.image.load_max_filesize.getBytes(); + if (loadBtn.exists() && autoLoad && $(this).is_within_viewport(50)) { + loadImageListing(loadBtn); + } + }); + }, 1000); + }); + + $(document).on("click", "[data-action=logout]", function () { + let $form = $("form#form-logout"); + $form.submit(); + }); + + if(Boolean(window.navigator.vibrate)) { + $(document).on("click", + "button, .btn, .pop-btn, .top-btn-el, [data-action], .content-tabs a, .top-bar-logo a, .login-provider-button, .panel-share-networks li a, #image-viewer-loader", + function(e) { + if($(this).is("[data-action=top-bar-menu-full]")) { + return; + } + window.navigator.vibrate(0); + window.navigator.vibrate(15); + } + ); + } +}); + +if (typeof CHV == "undefined") { + CHV = { + obj: {}, + fn: {}, + str: {}, + }; +} + +if (window.opener) { + CHV.obj.opener = { + uploadPlugin: {}, + }; +} + +CHV.fn.album = { + showEmbedCodes: function () { + var $loading = $(".content-listing-loading", "#tab-embeds"); + if (!$loading.exists()) { + return; + } + var $embed_codes = $("#embed-codes"); + $.ajax({ + url: PF.obj.config.json_api, + type: "POST", + dataType: "json", + data: { + action: "get-album-contents", + albumid: CHV.obj.resource.id, + auth_token: PF.obj.config.auth_token + }, + cache: false, + }).always(function (XHR) { + PF.fn.loading.destroy($loading); + if (XHR.status_code == 200) { + CHV.fn.fillEmbedCodes(XHR.contents, "#tab-embeds"); + $("#tab-embeds").addClass("visible"); + $embed_codes.removeClass("soft-hidden"); + } + }); + } +} + +CHV.fn.modal = { + getTemplateWithPreview: function (selector, $target) { + var template = $(selector).html(); + var div = $("<div/>"); + var html = ''; + var src = $target.find('.image-container img').attr('src'); + if (typeof src !== typeof undefined) { + html += '<a href="' + $target.attr('data-url-short') + '" target="_blank"><img class="canvas checkered-background" src=' + src + ' /></a>'; + } + div.html(template).find('.image-preview').html(html); + + return div.html(); + }, + getTemplateWithPreviews: function (selector, $targets, limit = 50) { + var template = $(selector).html(); + var div = $("<div/>"); + var html = ''; + var counter = 0; + $targets.each(function () { + if (counter >= limit) { + return false; + } + html += '<a class="image-preview-container checkered-background" href="' + $(this).attr('data-url-short') + '" target="_blank">'; + var src = $(this).find('.image-container img'); + if (src.exists()) { + html += '<canvas width="160" height="160" class="thumb" style="background-image: url(' + src.attr("src") + ');" />'; + } else { + html += '<canvas width="160" height="160" class="thumb" />'; + html += '<span class="empty icon fas fa-inbox"></span>'; + } + html += '</a>'; + counter++; + }); + div.html(template).find('.image-preview').html(html); + + return div.html(); + } +} + +CHV.fn.listingViewer = { + selectors: { + bodyShown: ".--viewer-shown", + content: ".viewer-content", + template: "#viewer-template", + root: ".viewer", + rootShow: ".viewer--show", + rootHide: ".viewer--hide", + rootZero: ".viewer--zero", + rootNavPrev: ".viewer--nav-prev", + rootNavNext: ".viewer--nav-next", + src: ".viewer-src", + tools: ".viewer-tools", + loader: ".viewer-loader", + owner: ".viewer-owner", + ownerGuest: ".viewer-owner--guest", + ownerUser: ".viewer-owner--user", + inputMap: ".viewer-kb-input", + }, + keys: { + "Period": "select", + "KeyL": "like", + "KeyF": "flag", + "KeyE": "edit", + "KeyM": "move", + "KeyO": "approve", + "Delete": "delete", + "Escape": "close", + "ArrowLeft": "prev", + "ArrowRight": "next", + "KeyW": "zoom", + }, + keymap: { + select: [".", PF.fn._s("Toggle select")], + like: ["L", PF.fn._s("Like")], + flag: ["F", PF.fn._s("Toggle flag")], + edit: ["E", PF.fn._s("Edit")], + move: ["M", PF.fn._s("Album")], + approve: ["O", PF.fn._s("Approve")], + delete: ["Del", PF.fn._s("Delete")], + close: ["Esc", PF.fn._s("Close")], + prev: ["◄", PF.fn._s("Previous")], + next: ["►", PF.fn._s("Next")], + zoom: ["W", PF.fn._s("Zoom")], + }, + loading: null, + idleTimer: 0, + $item: null, + show: function () { + var paramsHidden = PF.fn.deparam(this.$item.closest(PF.obj.listing.selectors.content_listing_visible).data("params-hidden")); + var cover = paramsHidden && "is_animated" in paramsHidden ? + paramsHidden.is_animated : + 0; + this.getEl("root") + .removeClass(this.selectors.rootHide.substring(1)) + .addClass(this.selectors.rootShow.substring(1)) + .attr("data-cover", cover); + $("body").addClass(this.selectors.bodyShown.substring(1)); + var hammertime = new Hammer($(CHV.fn.listingViewer.selectors.root).get(0), { + direction: Hammer.DIRECTION_VERTICAL, + }); + hammertime.on("swipeleft swiperight", function (e) { + // left -> next, right -> prev + var swipe = e.type.substring("swipe".length) == "left" ? "next" : "prev"; + CHV.fn.listingViewer[swipe](); + }); + this.getEl("root")[ + (PF.fn.isDevice(["phone", "phablet"]) ? + "add" : + "remove" + ) + "Class"]("--over"); + }, + getItem: function () { + return this.$item; + }, + getEl: function (sel) { + var context = + sel.startsWith("template") || sel.startsWith("root") ? + false : + this.selectors.root; + return context ? $(this.selectors[sel], context) : $(this.selectors[sel]); + }, + getObject: function (fresh) { + if (fresh || typeof this.object == typeof undefined) { + var json = decodeURIComponent(this.getItem().attr("data-object")); + this.object = (JSON && JSON.parse(json)) || $.parseJSON(json); + } + return this.object; + }, + placeholderSizing: function () { + if (!this.getEl("root").exists()) return; + var vW = Math.max( + document.documentElement.clientWidth, + window.innerWidth || 0 + ); + var vH = Math.max( + document.documentElement.clientHeight, + window.innerHeight || 0 + ); + var vR = vW / vH; + var eSrc = this.getEl("src")[0]; + var eW = eSrc.getAttribute("width"); + var eH = eSrc.getAttribute("height"); + var eR = eW / eH; + var c = vR < eR; + eSrc.classList.remove("--width-auto", "--height-auto"); + eSrc.classList.add("--" + (c ? "height" : "width") + "-auto"); + }, + filler: function (isOpened) { + var _this = this; + var $viewer = this.getEl("root"); + if (isOpened) { + var $parsed = $(this.getParsedTemplate()); + $viewer.html($parsed.html()); + } + $viewer[(this.getItem().hasClass("selected") ? "add" : "remove") + "Class"]( + "selected" + ); + var navActions = ["prev", "next"]; + $.each(navActions, function (i, v) { + var navSelector = + _this.selectors[ + "rootNav" + (v.charAt(0).toUpperCase() + v.slice(1).toLowerCase()) + ]; + var action = + $(PF.obj.listing.selectors.content_listing_pagination + ":visible") + .length > 0 ? + "add" : + _this.getItem()[v]().exists() ? + "add" : + "remove"; + $viewer[action + "Class"](navSelector.substring(1)); + }); + $.each(this.getItem().get(0).attributes, function (i, attr) { + if (!attr.name.startsWith("data-")) return true; + $viewer.attr(attr.name, attr.value); + }); + var handle = typeof this.object.user == typeof undefined ? "user" : "guest"; + handle = + "owner" + + (handle.charAt(0).toUpperCase() + handle.slice(1).toLowerCase()); + this.getEl(handle).remove(); + if (typeof this.object.user !== typeof undefined) { + $( + this.object.user.avatar ? ".default-user-image" : "img.user-image", + this.getEl("ownerUser") + ).remove(); + } + var $tools = this.getItem().find(".list-item-image-tools[data-action='list-tools']"); + this.getEl("tools").append($tools.html()); + var flagAdded = false; + $.each($tools.find("[data-action]"), function (i, v) { + var action = $(this).attr("data-action"); + var keymap = _this.keymap[action]; + if (typeof keymap == typeof undefined || (action === 'flag' && flagAdded)) { + return false; + } + $( + '<div class="viewer-kb-key" data-key="' + keymap[0] + '"><kbd>' + + keymap[0] + + "</kbd><span>" + + PF.fn._s(keymap[1]) + + "</span></div>" + ).appendTo(_this.getEl("inputMap")); + if (action === "flag") { + flagAdded = true; + } + }); + this.placeholderSizing(); + this.trickyLoad(); + }, + zoom: function () { + this.getEl("root").attr("data-cover", this.getEl("root").attr("data-cover") == "1" ? "0" : "1"); + }, + remove: function () { + this.getEl("root").remove(); + }, + getParsedTemplate: function () { + var object = this.getObject(true); + var template = this.getEl("template").html(); + var matches = template.match(/%(\S+)%/g); + if (matches) { + $.each(matches, function (i, v) { + var handle = v.slice(1, -1).split("."); + var value; + handle.map(function (k) { + var aux = !value ? object : value; + if (k in aux) { + value = aux[k]; + } + }); + var regex = new RegExp(v, "g"); + template = template.replace(regex, value); + }); + } + return template; + }, + insertEl: function () { + var html = this.getParsedTemplate(); + this.getEl("rootZero").remove(); + $(html).appendTo("body"); + }, + toggleIdle: function (idle, refresh) { + var _this = this; + var refresh = typeof refresh == typeof undefined ? true : refresh; + $("html")[(idle ? "add" : "remove") + "Class"]("--idle"); + if (!idle) { + clearTimeout(_this.idleTimer); + if (refresh) { + _this.idleTimer = setTimeout(function () { + var $fs = $(".fullscreen"); + var $el = _this.getEl("root"); + _this.toggleIdle($el.length > 0 && $fs.length == 0); + }, 5000); + } + } + }, + open: function ($item) { + if (!$item.exists()) { + this.getEl("rootZero").remove(); + return; + } + this.setItem($item); + this.insertEl(); + this.filler(); + this.show(); + this.toggleIdle(false); // init idler + var _this = this; + this.getEl("root").on("mousemove mouseout", function () { + _this.toggleIdle(false); + }); + }, + setItem: function ($item) { + this.$item = $item; + }, + trickyLoad: function () { + if (this.object.image.url == this.object.display_url) { + return; + } + var srcHtml = this.getEl("src").parent().html(); + var $src = $(srcHtml).attr("src", this.object.image.url); + $src.insertBefore(this.getEl("src")); + $src.imagesLoaded(function () { + $src.next().remove(); + }); + }, + close: function () { + var _this = this; + $(this.selectors.root) + .removeClass(this.selectors.rootShow.substring(1)) + .addClass(this.selectors.rootHide.substring(1)); + $("body").removeClass(this.selectors.bodyShown.substring(1)); + this.toggleIdle(false, false); + if (this.getItem() !== null) { + $(window).scrollTop(this.getItem().offset().top); + } + var subjects = $("#top-bar, .follow-scroll"); + subjects.attr("data-scroll-lock", "1"); + setTimeout(function () { + _this.remove(); + }, 250); + setTimeout(function () { + subjects.removeAttr("data-scroll-lock"); + }, 300); + }, + browse: function (direction) { + var $item = this.getItem()[direction](); + if (!$item.exists()) { + var $pagination = $( + "[data-pagination=" + direction + "]", + PF.obj.listing.selectors.content_listing_pagination + ":visible" + ); + var href = $pagination.attr("href"); + if (!href) return; + var UrlParams = PF.fn.deparam(window.location.search); + window.location.href = href + "&viewer=" + direction; + return; + } + this.setItem($item); + this.filler(true); + var $loadMore = $(PF.obj.listing.selectors.content_listing_visible).find( + "[data-action=load-more]" + ); + var padding = $item[direction + "All"]().length; + if ( + $loadMore.length > 0 && + padding <= 5 && + !PF.obj.listing.calling && + direction == "next" + ) { + $("[data-action=load-more]").click(); + } + }, + prev: function () { + this.browse("prev"); + }, + next: function () { + this.browse("next"); + }, +}; + +CHV.obj.image_viewer = { + selector: "#image-viewer", + container: "#image-viewer-container", + navigation: ".image-viewer-navigation", + loading: "#image-viewer-loading", + loader: "#image-viewer-loader", +}; +CHV.obj.image_viewer.$container = $(CHV.obj.image_viewer.container); +CHV.obj.image_viewer.$navigation = $(CHV.obj.image_viewer.navigation); +CHV.obj.image_viewer.$loading = $(CHV.obj.image_viewer.loading); + +CHV.fn.system = { + checkUpdates: function (callback) { + $.ajax({ + url: CHEVERETO.api.get.info + "/", + data: { id: CHEVERETO.id }, + cache: false, + }).always(function (data, status, XHR) { + if (typeof callback == "function") { + callback(XHR); + } + }); + }, +}; +if((navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0) || navigator.platform === 'iPad') { + $("html").removeClass("device-nonmobile"); +} +CHV.fn.bindSelectableItems = function () { + var el = "content-listing-wrapper"; + var sel = "#" + el; + if (!$(sel).exists()) { + $("#content-listing-tabs") + .wrap("<div id='" + el + "' />"); + } else if ($(sel).hasClass("ui-selectable")) { + $(sel).selectable("destroy"); + } + if (!$("[data-content=list-selection]").exists()) { + return; + } + $("html.device-nonmobile " + sel).selectable({ + delay: 150, + filter: PF.obj.listing.selectors.list_item, + cancel: ".content-empty, .header, #tab-share, #tab-info, .viewer-title, .header-link, .top-bar, .content-listing-pagination *, #fullscreen-modal, #top-user, #background-cover, .list-item-desc, .list-item-image-tools, [data-action=load-image], #tab-embeds", + classes: { + "ui-selected": "selected", + }, + selected: function (event, ui) { + $(ui.selected).removeClass('ui-selected'); + }, + selecting: function (event, ui) { + var $this = $(ui.selecting); + var unselect = $this.hasClass("selected"); + CHV.fn.list_editor[(unselect ? "unselect" : "select") + "Item"]($this); + }, + unselecting: function (event, ui) { + CHV.fn.list_editor.unselectItem($(ui.unselecting)); + }, + }); +}; + +CHV.fn.isCachedImage = function (src) { + var image = new Image(); + image.src = src; + return image.complete || image.width + image.height > 0; +}; + +CHV.fn.viewerLoadImage = function () { + if (CHV.obj.image_viewer.$loading.exists()) { + CHV.obj.image_viewer.$loading.removeClass("soft-hidden").css({ + zIndex: 2, + }); + PF.fn.loading.inline(CHV.obj.image_viewer.$loading, { + color: "white", + size: "small", + center: true, + valign: true, + }); + CHV.obj.image_viewer.$loading.hide().fadeIn("slow"); + } + $(CHV.obj.image_viewer.loader).remove(); + if (CHV.obj.image_viewer.image.is_360) { + PF.fn.loading.destroy(CHV.obj.image_viewer.$loading); + pannellum.viewer('image-viewer-360', { + autoLoad: true, + type: "equirectangular", + panorama: CHV.obj.image_viewer.image.url, + preview: CHV.obj.image_viewer.$container.find("img").eq(0).attr("src"), + pitch: 2.3, + yaw: -135.4, + hfov: 120 + }); + $("#image-viewer-360").removeClass("soft-hidden"); + CHV.obj.image_viewer.$container.find("img").eq(0).remove(); + return; + } + + CHV.obj.image_viewer.image.html = CHV.obj.image_viewer.$container.html(); + CHV.obj.image_viewer.$container.prepend( + $(CHV.obj.image_viewer.image.html).css({ + top: 0, + zIndex: 0, + opacity: 0, + position: "absolute" + }) + ); + CHV.obj.image_viewer.$container.find("img").eq(0).css("zIndex", 1); + CHV.obj.image_viewer.$container + .find("img") + .eq(1) + .attr("src", CHV.obj.image_viewer.image.url); + CHV.obj.image_viewer.$container + .find("img") + .eq(1) + .imagesLoaded(function () { + CHV.obj.image_viewer.$container.find("img").eq(1).css({ position: "", display: "" }); + CHV.obj.image_viewer.$container.find("img").eq(0).remove(); + PF.fn.loading.destroy(CHV.obj.image_viewer.$loading); + }); +}; + +CHV.obj.embed_share_tpl = {}; +CHV.obj.embed_upload_tpl = {}; + +CHV.obj.topBar = { + transparencyScrollToggle: function () { + var Y = $(window).scrollTop(); + $("#top-bar")[(Y > 0 ? "remove" : "add") + "Class"]("transparent"); + }, +}; + +CHV.obj.uploaderReset = { + isUploading: false, + canAdd: true, + queueStatus: "ready", + uploadThreads: 0, + uploadParsedIds: [], + uploadProcessedIds: [], + files: {}, + results: { + success: {}, + error: {}, + }, + toggleWorking: 0, + filesAddId: 0, + clipboardImages: [], +}; + +CHV.fn.uploader = { + files: {}, + selectors: { + root: "#anywhere-upload", + show: ".upload-box--show", + queue: "#anywhere-upload-queue", + queue_complete: ".queue-complete", + queue_item: ".queue-item", + close_cancel: "[data-button=close-cancel]", + file: "#anywhere-upload-input", + camera: "#anywhere-upload-input-camera", + upload_item_template: "#anywhere-upload-item-template", + item_progress_bar: "[data-content=progress-bar]", + failed_result: "[data-content=failed-upload-result]", + fullscreen_mask: "#fullscreen-uploader-mask", + dropzone: "#uploader-dropzone", + paste: "#anywhere-upload-paste", + input: "[data-action=anywhere-upload-input]", + }, + toggle: function (options, args) { + this.queueSize(); + + var $switch = $("[data-action=top-bar-upload]", ".top-bar"); + var show = !$(CHV.fn.uploader.selectors.root).data("shown"); + var options = $.extend({ + callback: null, + reset: true, + }, + options + ); + + if (typeof options.show !== typeof undefined && options.show) { + show = true; + } + + PF.fn.growl.close(true); + PF.fn.close_pops(); + + if ( + this.toggleWorking == 1 || + $(CHV.fn.uploader.selectors.root).is(":animated") || + CHV.fn.uploader.isUploading || + ($switch.data("login-needed") && !PF.fn.is_user_logged()) + ) + return; + + this.toggleWorking = 1; + + var animation = { + time: 500, + easing: null, + }; + var callbacks = function () { + if (!show && options.reset) { + CHV.fn.uploader.reset(); + } + PF.fn.topMenu.hide(); + if (typeof options.callback == "function") { + options.callback(args); + } + CHV.fn.uploader.boxSizer(); + CHV.fn.uploader.toggleWorking = 0; + }; + + $(CHV.fn.uploader.selectors.root)[(show ? "add" : "remove") + "Class"]( + this.selectors.show.substring(1) + ); + + if (show) { + $("html") + .data({ + "followed-scroll": $("html").hasClass("followed-scroll"), + "top-bar-box-shadow-prevent": true, + }) + .removeClass("followed-scroll") + .addClass("overflow-hidden top-bar-box-shadow-none"); + + $("#top-bar").data({ + stock_classes: $("#top-bar").attr("class"), + }); + + $(".current[data-nav]", ".top-bar").each(function () { + if ($(this).is("[data-action=top-bar-menu-full]")) return; + $(this).removeClass("current").attr("data-current", 1); + }); + + if (PF.fn.isDevice("mobile")) { + var $upload_heading = $( + ".upload-box-heading", + $(CHV.fn.uploader.selectors.root) + ); + $upload_heading.css({ + position: "relative", + top: 0.5 * ($(window).height() - $upload_heading.height()) + "px", + }); + } + CHV.fn.uploader.focus(function () { + setTimeout(function () { + callbacks(); + }, animation.time); + }); + } else { + $("[data-nav][data-current=1]", ".top-bar").each(function () { + $(this).addClass("current"); + }); + setTimeout(function () { + $(CHV.fn.uploader.selectors.fullscreen_mask).css({ + opacity: 0, + }); + }, 0.1 * animation.time); + setTimeout(function () { + $(CHV.fn.uploader.selectors.fullscreen_mask).remove(); + }, animation.time); + + var _uploadBoxHeight = $(CHV.fn.uploader.selectors.root).outerHeight(); + var _uploadBoxPush = + _uploadBoxHeight - + parseInt($(CHV.fn.uploader.selectors.root).data("initial-height")) + + "px"; + $(CHV.fn.uploader.selectors.root).css({ + transform: "translate(0,-" + _uploadBoxPush + ")", + }); + + setTimeout(function () { + $(CHV.fn.uploader.selectors.root).css({ + top: "", + }); + callbacks(); + $("html,body").removeClass("overflow-hidden").data({ + "top-bar-box-shadow-prevent": false, + }); + $("#top-bar *").trigger("blur"); + }, animation.time); + } + + $(CHV.fn.uploader.selectors.root).data("shown", show); + + $switch.toggleClass("current").removeClass("opened"); + }, + + reset: function () { + $.extend(this, $.extend(true, {}, CHV.obj.uploaderReset)); + + $("li", this.selectors.queue).remove(); + $(this.selectors.root).height("").css({ + "overflow-y": "", + "overflow-x": "", + }); + + $(this.selectors.queue) + .addClass("queueEmpty") + .removeClass(this.selectors.queue_complete.substring(1)); + + $(this.selectors.input, this.selectors.root).each(function () { + $(this).prop("value", null); + }); + $("[data-group=upload-result] textarea", this.selectors.root).prop( + "value", + "" + ); + $.each( + [ + "upload-queue-ready", + "uploading", + "upload-result", + "upload-queue-ready", + "upload-queue", + ], + function (i, v) { + $("[data-group=" + v + "]").hide(); + } + ); + $("[data-group=upload]", this.selectors.root).show(); + // Force HTML album selection (used for upload to current album) + $("[name=upload-album-id]", this.selectors.root).prop("value", function () { + var $selected = $("option[selected]", this); + if ($selected.exists()) { + return $selected.attr("value"); + } + }); + + $(this.selectors.root) + .removeClass("queueCompleted queueReady queueHasResults") + .addClass("queueEmpty") + .attr("data-queue-size", 0); + + // Always ask for category + $("[name=upload-category-id]", this.selectors.root).prop("value", ""); + $("[name=upload-nsfw]", this.selectors.root).prop( + "checked", + this.defaultChecked + ); + + this.boxSizer(true); + }, + + focus: function (callback) { + if ($(this.selectors.fullscreen_mask).exists()) return; + if (!$("body").is("#upload")) { + $("body").append( + $("<div/>", { + id: this.selectors.fullscreen_mask.replace("#", ""), + class: "fullscreen black", + }).css({ + top: PF.fn.isDevice("phone") ? + 0 : $(CHV.fn.uploader.selectors.root).data("top"), + }) + ); + } + setTimeout(function () { + if (!$("body").is("#upload")) { + $(CHV.fn.uploader.selectors.fullscreen_mask).css({ + opacity: 1, + }); + } + setTimeout( + function () { + if (typeof callback == "function") { + callback(); + } + }, + PF.fn.isDevice(["phone", "phablet"]) ? 0 : 250 + ); + }, 1); + }, + + boxSizer: function (forced) { + var shown = $(this.selectors.root).is(this.selectors.show); + var doit = shown || forced; + if (shown) { + $("html").addClass("overflow-hidden"); + } + if (!doit) return; + $(this.selectors.root).height(""); + if (!$("body").is("#upload") && + $(this.selectors.root).height() > $(window).height() + ) { + $(this.selectors.root).height( + $(window).height() - $("#top-bar").height() + ).css({ + "overflow-y": "scroll", + "overflow-x": "auto", + }); + $("body").addClass("overflow-hidden"); + } else { + $(this.selectors.root).css("overflow-y", ""); + } + }, + + pasteURL: function () { + var textarea = $("[name=urls]", PF.obj.modal.selectors.root); + var value = textarea.val(); + if (value) { + CHV.fn.uploader.toggle({ show: true }); + CHV.fn.uploader.add({}, value); + } + }, + + pasteImageHandler: function (e) { + // Leave the inputs alone + if ($(e.target).is(":input")) { + return; + } + // Get the items from the clipboard + if (typeof e.clipboardData !== typeof undefined && e.clipboardData.items) { + var items = e.clipboardData.items; + } else { + setTimeout(function () { + // Hack to get the items after paste + e.clipboardData = {}; + e.clipboardData.items = []; + $.each($("img", CHV.fn.uploader.$pasteCatcher), function (i, v) { + e.clipboardData.items.push(PF.fn.dataURItoBlob($(this).attr("src"))); + }); + $(CHV.fn.uploader.selectors.paste).html(""); + return CHV.fn.uploader.pasteImageHandler(e); + }, 1); + } + if (items) { + const files = new Array(); + const urls = new Array(); + let uploaderIsVisible = $(CHV.fn.uploader.selectors.root).data("shown"); + for (var i = 0; i < items.length; i++) { + if (items[i].type.indexOf("image") !== -1) { + let file = items[i].getAsFile(); + files.push(file); + } else if (items[i].kind == 'string') { + if (!CHV.obj.config.upload.url) { + continue; + } + items[i].getAsString(function (s) { + CHV.fn.uploader.add({}, s); + }) + urls.push(i); + } + } + if (files.length == 0 && urls.length == 0) { + return; + } + + var pushEvent = { + originalEvent: { + dataTransfer: { + files: [...files] + }, + preventDefault: function () { }, + stopPropagation: function () { }, + } + } + if (!uploaderIsVisible) { + CHV.fn.uploader.toggle({ + callback: function () { + CHV.fn.uploader.add(pushEvent); + }, + }); + } else { + CHV.fn.uploader.add(pushEvent); + } + } + }, + + add: function (e, urls) { + var md5; + + // Prevent add items ? + if (!this.canAdd) { + var e = e.originalEvent; + e.preventDefault(); + e.stopPropagation(); + return false; + } + + $fileinput = $(this.selectors.file); + $fileinput.replaceWith(($fileinput = $fileinput.clone(true))); + + var item_queue_template = $(this.selectors.upload_item_template).html(); + let files = []; + let directories = []; + + function addDirectoryItem(item, files, directories, isLast) { + if (item.isDirectory) { + var directoryReader = item.createReader(); + directoryReader.readEntries(function (entries) { + var size = entries.length; + var i = 0; + entries.forEach(function (entry) { + i++; + if (entry.name === '.DS_Store') { + return; + } + addDirectoryItem(entry, files, directories, size === i); + }); + }); + directories.push(item.name) + } else { + item.file(function (file) { + files.push(file); + if (isLast) { + CHV.fn.uploader.add({ + originalEvent: { + preventDefault: function () { }, + stopPropagation: function () { }, + dataTransfer: { + parsedItems: true, + files: [...files] + } + } + }) + } + }); + } + } + + if (typeof urls == typeof undefined) { + var e = e.originalEvent; + e.preventDefault(); + e.stopPropagation(); + var data = e.dataTransfer || e.target; + + if ("items" in data) { + var items = data.items; + for (var i = 0; i < items.length; i++) { + var item = items[i].webkitGetAsEntry(); + if (item) { + addDirectoryItem(item, files, directories, false); + } + } + } + if ("files" in data) { + files = Array.isArray(data.files) + ? data.files.slice() + : $.makeArray(data.files); + + files = files.filter(function (o) { + return (directories.indexOf(o.name) < 0); + }); + } + + // Keep a map for the clipboard images + // if (e.clipboard) { + // md5 = PF.fn.md5(e.dataURL); + // if ($.inArray(md5, this.clipboardImages) != -1) { + // return null; + // } + // this.clipboardImages.push(md5); + // } + + // Filter non-images + var failed_files = []; + for (var i = 0; i < files.length; i++) { + var file = files[i]; + if (directories.includes(file.name)) { + continue; + } + var image_type_str; + if (typeof file.type == "undefined" || file.type == "") { + // Some browsers (Android) don't set the correct file.type + image_type_str = file.name + .substr(file.name.lastIndexOf(".") + 1) + .toLowerCase(); + } else { + image_type_str = file.type.replace("image/", ""); + } + // Size filter + if (file.size > CHV.obj.config.image.max_filesize.getBytes()) { + failed_files.push({ + uid: i, + name: file.name.truncate_middle() + " - " + PF.fn._s("File too big."), + }); + continue; + } + // Android can output something like image:10 as the full file name so ignore this filter + if ( + CHV.obj.config.upload.image_types.indexOf(image_type_str) == -1 && + /android/i.test(navigator.userAgent) == false + ) { + failed_files.push({ + uid: i, + name: file.name.truncate_middle() + + " - " + + PF.fn._s("Invalid or unsupported file format."), + }); + continue; + } + if (md5) { + file.md5 = md5; + } + file.fromClipboard = e.clipboard == true; + file.uid = i; + } + + for (var i = 0; i < failed_files.length; i++) { + var failed_file = failed_files[i]; + files.splice(failed_file.id, 1); + } + + if (failed_files.length > 0 && files.length == 0) { + var failed_message = ""; + for (var i = 0; i < failed_files.length; i++) { + failed_message += + "<li>" + PF.fn.htmlEncode(failed_files[i].name) + "</li>"; + } + PF.fn.modal.simple({ + title: PF.fn._s("Some files couldn't be added"), + message: "<ul>" + "<li>" + failed_message + "</ul>", + }); + return; + } + + if (files.length == 0) { + return; + } + } else { + // Remote files + // Strip HTML + BBCode + urls = urls.replace(/(<([^>]+)>)/g, "").replace(/(\[([^\]]+)\])/g, ""); + files = urls.match_urls(); + if (!files) return; + files = files.array_unique(); + files = $.map(files, function (file, i) { + return { + uid: i, + name: file, + url: file, + }; + }); + } + + // Empty current files object? + if ($.isEmptyObject(this.files)) { + for (var i = 0; i < files.length; i++) { + this.files[files[i].uid] = files[i]; + this.filesAddId++; + } + } else { + /** + * Check duplicates by file name (local and remote) + * This is basic but is the quickest way to do it + * Note: it doesn't work on iOS for local files http://stackoverflow.com/questions/18412774/get-real-file-name-in-ios-6-x-filereader + */ + var currentfiles = []; + for (var key in this.files) { + if ( + typeof this.files[key] == "undefined" || + typeof this.files[key] == "function" + ) + continue; + currentfiles.push(encodeURI(this.files[key].name)); + } + files = $.map(files, function (file, i) { + if ($.inArray(encodeURI(file.name), currentfiles) != -1) { + return null; + } + file.uid = CHV.fn.uploader.filesAddId; + CHV.fn.uploader.filesAddId++; + return file; + }); + for (var i = 0; i < files.length; i++) { + this.files[files[i].uid] = files[i]; + } + } + + $(this.selectors.queue, this.selectors.root).append( + item_queue_template.repeat(files.length) + ); + + $( + this.selectors.queue + + " " + + this.selectors.queue_item + + ":not([data-id])", + this.selectors.root + ).hide(); // hide the stock items + + var failed_before = failed_files, + failed_files = [], + j = 0, + default_options = { + canvas: true, + maxWidth: 610, + }; + + function CHVLoadImage(i) { + if (typeof i == typeof undefined) { + var i = 0; + } + + if (!(i in files)) { + PF.fn.loading.destroy("fullscreen"); + return; + } + + var file = files[i]; + + if (directories.includes(file.name)) { + return; + } + + $( + CHV.fn.uploader.selectors.queue_item + ":not([data-id]) .load-url", + CHV.fn.uploader.selectors.queue + )[typeof file.url !== "undefined" ? "show" : "remove"](); + + loadImage.parseMetaData(file.url ? file.url : file, function (data) { + // Set the queue item placeholder ids + $( + CHV.fn.uploader.selectors.queue_item + + ":not([data-id]) .preview:empty", + CHV.fn.uploader.selectors.queue + ) + .first() + .closest("li") + .attr("data-id", file.uid); + + // Load the image (async) + loadImage( + file.url ? file.url : file, + function (img) { + ++j; + + var $queue_item = $( + CHV.fn.uploader.selectors.queue_item + + "[data-id=" + + file.uid + + "]", + CHV.fn.uploader.selectors.queue + ); + + if ( + img.type === + "error" /* || typeof data.imageHead == typeof undefined*/ + ) { + // image parse error (png always return undefined data) + failed_files.push({ + uid: file.uid, + name: file.name.truncate_middle(), + }); + } else { + if (!$( + "[data-group=upload-queue]", + CHV.fn.uploader.selectors.root + ).is(":visible")) { + $( + "[data-group=upload-queue]", + CHV.fn.uploader.selectors.root + ).css("display", "block"); + } + + // Detect true mimetype + var mimetype = "image/jpeg"; // Default unknown mimetype + + if (typeof data.buffer !== typeof undefined) { + var buffer = new Uint8Array(data.buffer).subarray(0, 4); + var header = ""; + for (var i = 0; i < buffer.length; i++) { + header += buffer[i].toString(16); + } + var header_to_mime = { + "89504e47": "image/png", + "47494638": "image/gif", + ffd8ffe0: "image/jpeg", + }; + $.each(["ffd8ffe1", "ffd8ffe2"], function (i, v) { + header_to_mime[v] = header_to_mime["ffd8ffe0"]; + }); + if (typeof header_to_mime[header] !== typeof undefined) { + mimetype = header_to_mime[header]; + } + } + + var title = null; + if (typeof file.name !== typeof undefined) { + var basename = PF.fn.baseName(file.name); + title = $.trim( + basename + .substring(0, 100) + .capitalizeFirstLetter() /*.replace(/\.[^/.]+$/g, "").replace(/[\W_]+/g, " ")*/ + ); + } + + // Set source image data + CHV.fn.uploader.files[file.uid].parsedMeta = { + title: title, + width: img.originalWidth, + height: img.originalHeight, + mimetype: mimetype, + }; + + $queue_item.show(); + + $(CHV.fn.uploader.selectors.root) + .addClass("queueReady") + .removeClass("queueEmpty"); + + $( + "[data-group=upload-queue-ready]", + CHV.fn.uploader.selectors.root + ).show(); + $("[data-group=upload]", CHV.fn.uploader.selectors.root).hide(); + + $queue_item.find(".load-url").remove(); + $queue_item + .find(".preview") + .removeClass("soft-hidden") + .show() + .append(img); + + $img = $queue_item.find(".preview").find("img,canvas"); + $img.attr("class", "canvas"); + + queue_item_h = $queue_item.height(); + queue_item_w = $queue_item.width(); + + var img_w = parseInt($img.attr("width")) || $img.width(); + var img_h = parseInt($img.attr("height")) || $img.height(); + var img_r = img_w / img_h; + + $img.hide(); + + if (img_w > img_h || img_w == img_h) { + // Landscape + var queue_img_h = img_h < queue_item_h ? img_h : queue_item_h; + if (img_w > img_h) { + $img.height(queue_img_h).width(queue_img_h * img_r); + } + } + if (img_w < img_h || img_w == img_h) { + // Portrait + var queue_img_w = img_w < queue_item_w ? img_w : queue_item_w; + if (img_w < img_h) { + $img.width(queue_img_w).height(queue_img_w / img_r); + } + } + if (img_w == img_h) { + $img.height(queue_img_h).width(queue_img_w); + } + + $img + .css({ + marginTop: -$img.height() / 2, + marginLeft: -$img.width() / 2, + }) + .show(); + + CHV.fn.uploader.boxSizer(); + } + + // Last one + if (j == files.length) { + if (typeof failed_before !== "undefined") { + failed_files = failed_files.concat(failed_before); + } + + PF.fn.loading.destroy("fullscreen"); + if (failed_files.length > 0) { + var failed_message = ""; + for (var i = 0; i < failed_files.length; i++) { + failed_message += + "<li>" + PF.fn.htmlEncode(failed_files[i].name) + "</li>"; + delete CHV.fn.uploader.files[failed_files[i].uid]; + $( + "li[data-id=" + failed_files[i].uid + "]", + CHV.fn.uploader.selectors.queue + ) + .find("[data-action=cancel]") + .click(); + } + PF.fn.modal.simple({ + title: PF.fn._s("Some files couldn't be added"), + message: "<ul>" + failed_message + "</ul>", + }); + } else { + CHV.fn.uploader.focus(); + } + + CHV.fn.uploader.boxSizer(); + } + }, + $.extend({}, default_options, { + orientation: data.exif ? data.exif.get("Orientation") : 1, + }) + ); + + // Next one + setTimeout(function () { + CHVLoadImage(i + 1); + }, 25); + }); + } + + PF.fn.loading.fullscreen(); + + // Load all the target images starting from zero (null in this case, yeah I like to fuck around just because reasons) + CHVLoadImage(); + + this.queueSize(); + }, + + queueSize: function () { + $(this.selectors.root).attr("data-queue-size", Object.size(this.files)); + $("[data-text=queue-objects]", this.selectors.root).text( + PF.fn._n("file", "files", Object.size(this.files)) + ); + $("[data-text=queue-size]", this.selectors.root).text( + Object.size(this.files) + ); + }, + + queueProgress: function (e, id) { + var queue_size = Object.size(this.files); + this.files[id].progress = e.loaded / e.total; + var progress = 0; + for (var i = 0; i < queue_size; i++) { + if ( + typeof this.files[i] == typeof undefined || + !("progress" in this.files[i]) + ) + continue; + progress += this.files[i].progress; + } + $("[data-text=queue-progress]", this.selectors.root).text( + parseInt((100 * progress) / queue_size) + ); + }, + + upload: function ($queue_item) { + var id = $queue_item.data("id"); + var nextId = $queue_item.next().exists() ? + $queue_item.next().data("id") : + false; + + // Already working on this? + if ($.inArray(id, this.uploadParsedIds) !== -1) { + if ($queue_item.next().exists()) { + this.upload($queue_item.next()); + } + return; + } + + var self = this; + + this.uploadParsedIds.push(id); + + var f = this.files[id]; + if (typeof f == typeof undefined) { + return; + } + var queue_is_url = typeof f.url !== typeof undefined; + var source = queue_is_url ? f.url : f; + var hasForm = typeof f.formValues !== typeof undefined; + + if (typeof f == typeof undefined) { + if ($queue_item.next().exists()) { + this.upload($queue_item.next()); + } + return; + } + + this.uploadThreads += 1; + + if (this.uploadThreads < CHV.obj.config.upload.threads && nextId) { + this.upload($queue_item.next()); + } + + this.isUploading = true; + + // HTML5 form + var form = new FormData(); + var formData = { + source: null, + type: queue_is_url ? "url" : "file", + action: "upload", + privacy: $("[data-privacy]", this.selectors.root).first().data("privacy"), + timestamp: this.timestamp, + auth_token: PF.obj.config.auth_token, + expiration: $("[name=upload-expiration]", this.selectors.root).val() || '', + category_id: $("[name=upload-category-id]", this.selectors.root).val() || null, + nsfw: $("[name=upload-nsfw]", this.selectors.root).prop("checked") ? + 1 : 0, + album_id: $("[name=upload-album-id]", this.selectors.root).val() || null, + }; + + // Append URL BLOB source + if (queue_is_url) { + formData.source = source; + } else { + form.append("source", source, f.name); // Stupid 3rd argument for file + } + if (hasForm) { + // Merge with each queue item form data + $.each(f.formValues, function (i, v) { + formData[i.replace(/image_/g, "")] = v; + }); + } + + $.each(formData, function (i, v) { + if (v === null) return true; + form.append(i, v); + }); + + this.files[id].xhr = new XMLHttpRequest(); + + $queue_item.removeClass("waiting"); + $(".block.edit, .queue-item-button.edit", $queue_item).remove(); + + if (!queue_is_url) { + this.files[id].xhr.upload.onprogress = function (e) { + if (e.lengthComputable) { + CHV.fn.uploader.queueProgress(e, id); + percentComplete = parseInt((e.loaded / e.total) * 100); + $(CHV.fn.uploader.selectors.item_progress_bar, $queue_item).width( + 100 - percentComplete + "%" + ); + + if (percentComplete == 100) { + CHV.fn.uploader.itemLoading($queue_item); + } + } + }; + } else { + this.queueSize(); + this.queueProgress({ + loaded: 1, + total: 1, + }, + id + ); + this.itemLoading($queue_item); + } + + this.files[id].xhr.onreadystatechange = function () { + var is_error = false; + + if ( + this.readyState == 4 && + typeof CHV.fn.uploader.files[id].xhr !== "undefined" && + CHV.fn.uploader.files[id].xhr.status !== 0 + ) { + self.uploadProcessedIds.push(id); + self.uploadThreads -= 1; + + $(".loading-indicator", $queue_item).remove(); + $queue_item.removeClass("waiting uploading"); + + try { + // Parse the json response + var JSONresponse = + this.responseType !== "json" ? + JSON.parse(this.response) : + this.response; + if (typeof JSONresponse !== "undefined" && this.status == 200) { + $("[data-group=image-link]", $queue_item).attr( + "href", + JSONresponse.image.path_viewer + ); + } else { + if (JSONresponse.error.context == "PDOException") { + JSONresponse.error.message = "Database error"; + } + JSONresponse.error.message = + PF.fn.htmlEncode(CHV.fn.uploader.files[id].name.truncate_middle()) + + " - " + + JSONresponse.error.message; + } + + // Save the server response (keeping indexing for results) + CHV.fn.uploader.results[this.status == 200 ? "success" : "error"][ + id + ] = JSONresponse; + + if (this.status !== 200) is_error = true; + } catch (err) { + is_error = true; + + var err_handle; + + if (typeof JSONresponse == typeof undefined) { + // Server epic error + err_handle = { + status: 500, + statusText: "Internal server error", + }; + } else { + err_handle = { + status: 400, + statusText: JSONresponse.error.message, + }; + } + + JSONresponse = { + status_code: err_handle.status, + error: { + message: PF.fn.htmlEncode(CHV.fn.uploader.files[id].name.truncate_middle()) + + " - Server error (" + + err_handle.statusText + + ")", + code: err_handle.status, + context: "XMLHttpRequest", + }, + status_txt: err_handle.statusText, + }; + + var error_key = Object.size(CHV.fn.uploader.results.error) + 1; + + CHV.fn.uploader.results.error[error_key] = JSONresponse; + } + + $queue_item.addClass(!is_error ? "completed" : "failed"); + + if ( + typeof JSONresponse.error !== "undefined" && + typeof JSONresponse.error.message !== "undefined" + ) { + $queue_item + .attr("rel", "tooltip") + .data("tiptip", "top") + .attr("title", JSONresponse.error.message); + PF.fn.bindtipTip($queue_item); + } + + if (self.uploadThreads < CHV.obj.config.upload.threads && nextId) { + CHV.fn.uploader.upload($queue_item.next()); + $(CHV.fn.uploader.selectors.root).addClass("queueHasResults"); + } + + if (self.uploadProcessedIds.length == Object.size(self.files)) { + CHV.fn.uploader.displayResults(); + } + + $(".done", $queue_item).fadeOut(); + } + }; + + this.files[id].xhr.open("POST", PF.obj.config.json_api, true); + this.files[id].xhr.setRequestHeader("Accept", "application/json"); + this.files[id].xhr.send(form); + }, + + itemLoading: function ($queue_item) { + PF.fn.loading.inline($(".progress", $queue_item), { + color: "#FFF", + size: "normal", + center: true, + position: "absolute", + shadow: true, + }); + $("[data-action=cancel], [data-action=edit]", $queue_item).hide(); + }, + + displayResults: function () { + CHV.fn.uploader.isUploading = false; + + var group_result = "[data-group=upload-result][data-result=%RESULT%]", + result_types = ["error", "mixed", "success"], + results = {}; + + for (var i = 0; i < result_types.length; i++) { + results[result_types[i]] = group_result.replace( + "%RESULT%", + result_types[i] + ); + } + + if (Object.size(this.results.error) > 0) { + var error_files = []; + for (var i in this.results.error) { + if (typeof this.results.error[i] !== "object") continue; + error_files[i] = this.results.error[i].error.message; + } + if (error_files.length > 0) { + $(this.selectors.failed_result).html( + "<li>" + error_files.join("</li><li>") + "</li>" + ); + } + } else { + $(results.error, this.selectors.root).hide(); + } + if (!window.opener && + CHV.obj.config.upload.moderation == 0 && + CHV.obj.config.upload.redirect_single_upload && + Object.size(this.results.success) == 1 && + Object.size(this.results.error) == 0 + ) { + window.location.href = this.results.success[Object.keys(this.results.success)[0]] + .image.path_viewer; + return false; + } + + $("[data-text=queue-progress]", this.selectors.root).text(100); + $("[data-group=uploading]", this.selectors.root).hide(); + + $(this.selectors.root) + .removeClass("queueUploading queueHasResults") + .addClass("queueCompleted"); + + $(this.selectors.queue).addClass( + this.selectors.queue_complete.substring(1) + ); + + // Append the embed codes + if ( + Object.size(this.results.success) > 0 && + $("[data-group=upload-result] textarea", this.selectors.root).exists() + ) { + CHV.fn.fillEmbedCodes( + this.results.success, + CHV.fn.uploader.selectors.root, + "val" + ); + } + + if ( + Object.size(this.results.success) > 0 && + Object.size(this.results.error) > 0 + ) { + $(results.mixed + ", " + results.success, this.selectors.root).show(); + } else if (Object.size(this.results.success) > 0) { + $(results.success, this.selectors.root).show(); + } else if (Object.size(this.results.error) > 0) { + $(results.error, this.selectors.root).show(); + } + + if ($(results.success, this.selectors.root).is(":visible")) { + $(results.success, this.selectors.root) + .find("[data-group^=user], [data-group=guest]") + .hide(); + $(results.success, this.selectors.root) + .find( + "[data-group=" + (PF.fn.is_user_logged() ? "user" : "guest") + "]" + ) + .show(); + var firstKey = Object.keys(this.results.success)[0]; + if (typeof this.results.success[firstKey].image.album !== "undefined") { + var albums = []; + for (var key in this.results.success) { + var image = this.results.success[key].image; + if ( + image.album && + !!image.album.id_encoded && + albums.indexOf(image.album.id_encoded) == -1 + ) { + albums.push(image.album.id_encoded); + } + } + var targetAlbum = { + link: null, + text: null, + }; + + if (albums.length <= 1) { + targetAlbum.link = this.results.success[firstKey].image.album.url; + targetAlbum.text = this.results.success[firstKey].image.album.name; + } else { + targetAlbum.link = this.results.success[ + firstKey + ].image.user.url_albums; + targetAlbum.text = PF.fn._s( + "%s's Albums", + this.results.success[firstKey].image.user.name_short_html + ); + } + + $("[data-text=upload-target]", this.selectors.root).text( + targetAlbum.text + ); + $("[data-link=upload-target]", this.selectors.root).attr( + "href", + targetAlbum.link + ); + + if (PF.fn.is_user_logged()) { + var show_user_stuff = albums.length > 0 ? "album" : "stream"; + $( + "[data-group=user-" + show_user_stuff + "]", + this.selectors.root + ).show(); + } + } + } + + this.boxSizer(); + this.queueStatus = "done"; + + // Detect plugin stuff + if ( + window.opener && + typeof CHV.obj.opener.uploadPlugin[window.name] !== typeof undefined + ) { + $('[data-action="copy"]', this.selectors.root).remove(); + if ( + CHV.obj.opener.uploadPlugin[window.name].hasOwnProperty("autoInsert") && + CHV.obj.opener.uploadPlugin[window.name].autoInsert + ) { + var $target = $( + ':input[name="' + + CHV.obj.opener.uploadPlugin[window.name].autoInsert + + '"]', + CHV.fn.uploader.selectors.root + ); + var value = $target.val(); + if (value) { + window.opener.postMessage({ + id: window.name, + message: value, + }, + "*" + ); + window.close(); + return; + } + } + } else { + $('[data-action="openerPostMessage"]', this.selectors.root).remove(); + } + }, +}; + +$.extend(CHV.fn.uploader, $.extend(true, {}, CHV.obj.uploaderReset)); + +CHV.fn.fillEmbedCodes = function (elements, parent, fn) { + if (typeof fn == "undefined") { + fn = "val"; + } + var embed_tpl = CHV.fn.uploader.selectors.root == parent ? "embed_upload_tpl" : "embed_share_tpl"; + $.each(elements, function (key, value) { + if (typeof value == typeof undefined) return; + + var image = "id_encoded" in value ? value : value.image; + + if (!image.medium) { + // Medium doesn't exists + image.medium = {}; + var imageProp = [ + "filename", + "name", + "width", + "height", + "extension", + "size", + "size_formatted", + "url", + ]; + for (var i = 0; i < imageProp.length; i++) { + image.medium[imageProp[i]] = image[imageProp[i]]; + } + } + + var flatten_image = Object.flatten(image); + + $.each(CHV.obj[embed_tpl], function (key, value) { + $.each(value.options, function (k, v) { + var embed = v, + $embed = $("textarea[name=" + k + "]", parent), + template = embed.template; + for (var i in flatten_image) { + if (!flatten_image.hasOwnProperty(i)) { + continue; + } + template = template.replace( + new RegExp("%" + i.toUpperCase() + "%", "g"), + PF.fn.htmlEncode(PF.fn.htmlEncode(flatten_image[i])) + ); + } + $embed[fn]( + $embed.val() + + template + + ($embed.data("size") == "thumb" ? " " : "\n") + ); + }); + }); + }); + $.each(CHV.obj[embed_tpl], function (key, value) { + $.each(value.options, function (k, v) { + var $embed = $("textarea[name=" + k + "]", parent); + $embed[fn]($.trim($embed.val())); + }); + }); +}; + +CHV.fn.resource_privacy_toggle = function (privacy) { + CHV.obj.resource.privacy = privacy; + if (!privacy) privacy = "public"; + $("[data-content=privacy-private]").hide(); + if (privacy !== "public") { + $("[data-content=privacy-private]").show(); + } +}; + +// Album stuff +CHV.fn.submit_create_album = function () { + var $modal = $(PF.obj.modal.selectors.root); + if ($("[name=form-album-name]", $modal).val() == "") { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + PF.obj.modal.form_data = { + action: "create-album", + type: "album", + album: { + parent_id: $("[name=form-album-parent-id]", $modal).val(), + name: $("[name=form-album-name]", $modal).val(), + description: $("[name=form-album-description]", $modal).val(), + privacy: $("[name=form-privacy]", $modal).val(), + password: $("[name=form-privacy]", $modal).val() == "password" ? + $("[name=form-album-password]", $modal).val() : null, + new: true, + }, + }; + return true; +}; +CHV.fn.complete_create_album = { + success: function (XHR) { + var response = XHR.responseJSON.album; + window.location = response.url; + }, + error: function (XHR) { + var response = XHR.responseJSON; + PF.fn.growl.call(PF.fn._s(response.error.message)); + }, +}; + +// Upload edit (move to album or create new) +CHV.fn.submit_upload_edit = function () { + var $modal = $(PF.obj.modal.selectors.root), + new_album = false; + + if ( + $("[data-content=form-new-album]", $modal).is(":visible") && + $("[name=form-album-name]", $modal).val() == "" + ) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + + if ($("[data-content=form-new-album]", $modal).is(":visible")) { + new_album = true; + } + + PF.obj.modal.form_data = { + action: new_album ? "create-album" : "move", + type: "images", + album: { + ids: $.map(CHV.fn.uploader.results.success, function (v) { + return v.image.id_encoded; + }), + new: new_album, + }, + }; + + if (new_album) { + PF.obj.modal.form_data.album.name = $( + "[name=form-album-name]", + $modal + ).val(); + PF.obj.modal.form_data.album.description = $( + "[name=form-album-description]", + $modal + ).val(); + PF.obj.modal.form_data.album.privacy = $( + "[name=form-privacy]", + $modal + ).val(); + if (PF.obj.modal.form_data.album.privacy == "password") { + PF.obj.modal.form_data.album.password = $( + "[name=form-album-password]", + $modal + ).val(); + } + } else { + PF.obj.modal.form_data.album.id = $("[name=form-album-id]", $modal).val(); + } + + return true; +}; +CHV.fn.complete_upload_edit = { + success: function (XHR) { + var response = XHR.responseJSON.album; + window.location = response.url; + }, + error: function (XHR) { + var response = XHR.responseJSON; + PF.fn.growl.call(PF.fn._s(response.error.message)); + }, +}; + +// Image edit +CHV.fn.before_image_edit = function () { + var $modal = $("[data-ajax-deferred='CHV.fn.complete_image_edit']"); + $("[data-content=form-new-album]", $modal).hide(); + $("#move-existing-album", $modal).show(); +}; +CHV.fn.submit_image_edit = function () { + var $modal = $(PF.obj.modal.selectors.root), + new_album = false; + + if ( + $("[data-content=form-new-album]", $modal).is(":visible") && + $("[name=form-album-name]", $modal).val() == "" + ) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + + if ($("[data-content=form-new-album]", $modal).is(":visible")) { + new_album = true; + } + + PF.obj.modal.form_data = { + action: "edit", + edit: "image", + editing: { + id: CHV.obj.resource.id, + category_id: $("[name=form-category-id]", $modal).val() || null, + title: $("[name=form-image-title]", $modal).val() || null, + description: $("[name=form-image-description]", $modal).val() || null, + nsfw: $("[name=form-nsfw]", $modal).prop("checked") ? 1 : 0, + new_album: new_album, + }, + }; + + if (new_album) { + PF.obj.modal.form_data.editing.album_privacy = $( + "[name=form-privacy]", + $modal + ).val(); + if (PF.obj.modal.form_data.editing.album_privacy == "password") { + PF.obj.modal.form_data.editing.album_password = $( + "[name=form-album-password]", + $modal + ).val(); + } + PF.obj.modal.form_data.editing.album_name = $( + "[name=form-album-name]", + $modal + ).val(); + PF.obj.modal.form_data.editing.album_description = $( + "[name=form-album-description]", + $modal + ).val(); + } else { + PF.obj.modal.form_data.editing.album_id = $( + "[name=form-album-id]", + $modal + ).val(); + } + + return true; +}; +CHV.fn.complete_image_edit = { + success: function (XHR) { + var response = XHR.responseJSON.image; + + if (!response.album.id_encoded) response.album.id_encoded = ""; + + // Detect album change + if (CHV.obj.image_viewer.album.id_encoded !== response.album.id_encoded) { + CHV.obj.image_viewer.album.id_encoded = response.album.id_encoded; + + var slice = { + html: response.album.slice && response.album.slice.html ? + response.album.slice.html : null, + prev: response.album.slice && response.album.slice.prev ? + response.album.slice.prev : null, + next: response.album.slice && response.album.slice.next ? + response.album.slice.next : null, + }; + + $("[data-content=album-slice]").html(slice.html); + $("[data-content=album-panel-title]")[slice.html ? "show" : "hide"](); + + $("a[data-action=prev]").attr("href", slice.prev); + $("a[data-action=next]").attr("href", slice.next); + + $("a[data-action]", ".image-viewer-navigation").each(function () { + $(this)[ + typeof $(this).attr("href") == "undefined" ? + "addClass" : + "removeClass" + ]("hidden"); + }); + } + + CHV.fn.resource_privacy_toggle(response.album.privacy); + + $.each(["description", "title"], function (i, v) { + var $obj = $("[data-text=image-" + v + "]"); + $obj.html(PF.fn.nl2br(PF.fn.htmlEncode(response[v]))); + if ($obj.html() !== "") { + $obj.show(); + } + }); + + CHV.fn.common.updateDoctitle(response.title); + + PF.fn.growl.expirable(PF.fn._s("Image edited successfully.")); + + // Add album to modals + CHV.fn.list_editor.addAlbumtoModals(response.album); + + // Reset modal + var $modal = $("[data-submit-fn='CHV.fn.submit_image_edit']"); + + $.each(["description", "name", "password"], function (i, v) { + var $input = $("[name=form-album-" + v + "]", $modal); + if ($input.is("textarea")) { + $input.val("").html(""); + } else { + $input.val("").attr("value", ""); + } + }); + $("[name=form-privacy] option", $modal).each(function () { + $(this).removeAttr("selected"); + }); + $("[data-combo-value=password]", $modal).hide(); + + // Select the album + $("[name=form-album-id]", $modal).find("option").removeAttr("selected"); + $("[name=form-album-id]", $modal) + .find("[value=" + response.album.id_encoded + "]") + .attr("selected", true); + }, +}; + +// Album edit +CHV.fn.before_album_edit = function (e) { + var modal_source = "[data-before-fn='CHV.fn.before_album_edit']"; + $("[data-action=album-switch]", modal_source).remove(); +}; +CHV.fn.submit_album_edit = function () { + var $modal = $(PF.obj.modal.selectors.root); + + if (!$("[name=form-album-name]", $modal).val()) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + + PF.obj.modal.form_data = { + action: "edit", + edit: "album", + editing: { + id: CHV.obj.resource.id, + name: $("[name=form-album-name]", $modal).val(), + privacy: $("[name=form-privacy]", $modal).val(), + description: $("[name=form-album-description]", $modal).val(), + }, + }; + if (PF.obj.modal.form_data.editing.privacy == "password") { + PF.obj.modal.form_data.editing.password = $( + "[name=form-album-password]", + $modal + ).val(); + } + + return true; +}; +CHV.fn.complete_album_edit = { + success: function (XHR) { + var album = XHR.responseJSON.album; + + $("[data-text=album-name]").html(PF.fn.htmlEncode(album.name)); + $("[data-text=album-description]").html( + PF.fn.htmlEncode(album.description) + ); + CHV.fn.resource_privacy_toggle(album.privacy); + + var stock = CHV.obj.resource.type; + CHV.obj.resource.type = null; + CHV.fn.list_editor.updateItem($(PF.obj.listing.selectors.list_item, PF.obj.listing.selectors.content_listing_visible), XHR.responseJSON); + CHV.obj.resource.type = stock; + + $("[data-modal]").each(function () { + $("option[value=" + album.id_encoded + "]", this).text( + album.name + + (album.privacy !== "public" ? " (" + PF.fn._s("private") + ")" : "") + ); + }); + + CHV.fn.common.updateDoctitle(album.name); + + PF.fn.growl.expirable(PF.fn._s("Album edited successfully.")); + }, +}; + +// Category edit +CHV.fn.category = { + formFields: ["id", "name", "url_key", "description"], + validateForm: function (id) { + var modal = PF.obj.modal.selectors.root, + submit = true, + used_url_key = false; + + if (!CHV.fn.common.validateForm(modal)) { + return false; + } + + if ( + /^[-\w]+$/.test($("[name=form-category-url_key]", modal).val()) === false + ) { + PF.fn.growl.call(PF.fn._s("Invalid URL key.")); + $("[name=form-category-url_key]", modal).highlight(); + return false; + } + + if (Object.size(CHV.obj.categories) > 0) { + $.each(CHV.obj.categories, function (i, v) { + if (typeof id !== "undefined" && v.id == id) return true; + if (v.url_key == $("[name=form-category-url_key]", modal).val()) { + used_url_key = true; + return false; + } + }); + } + if (used_url_key) { + PF.fn.growl.call(PF.fn._s("Category URL key already being used.")); + $("[name=form-category-url_key]", modal).highlight(); + return false; + } + + return true; + }, + edit: { + before: function (e) { + var $this = $(e.target), + id = $this.data("category-id"), + category = CHV.obj.categories[id], + modal_source = "[data-modal=" + $this.data("target") + "]"; + $.each(CHV.fn.category.formFields, function (i, v) { + var i = "form-category-" + v, + v = category[v], + $input = $("[name=" + i + "]", modal_source); + if ($input.is("textarea")) { + $input.html(PF.fn.htmlEncode(v)); + } else { + $input.attr("value", v); + } + }); + }, + submit: function () { + var modal = PF.obj.modal.selectors.root, + id = $("[name=form-category-id]", modal).val(); + + if (!CHV.fn.category.validateForm(id)) { + return false; + } + + PF.obj.modal.form_data = { + action: "edit", + edit: "category", + editing: {}, + }; + $.each(CHV.fn.category.formFields, function (i, v) { + PF.obj.modal.form_data.editing[v] = $( + "[name=form-category-" + v + "]", + modal + ).val(); + }); + + return true; + }, + complete: { + success: function (XHR) { + var category = XHR.responseJSON.category, + parent = + "[data-content=category][data-category-id=" + category.id + "]"; + + $.each(category, function (i, v) { + $("[data-content=category-" + i + "]", parent).html( + PF.fn.htmlEncode(v) + ); + }); + + $("[data-link=category-url]").attr("href", category.url); + + CHV.obj.categories[category.id] = category; + }, + }, + }, + delete: { + before: function (e) { + var $this = $(e.target), + id = $this.data("category-id"), + category = CHV.obj.categories[id]; + $this.attr( + "data-confirm", + $this.attr("data-confirm").replace("%s", '"' + category.name + '"') + ); + }, + submit: function (id) { + PF.obj.modal.form_data = { + action: "delete", + delete: "category", + deleting: { + id: id, + }, + }; + return true; + }, + complete: { + success: function (XHR) { + PF.fn.growl.expirable(PF.fn._s("Category successfully deleted.")); + var id = XHR.responseJSON.request.deleting.id; + $("[data-content=category][data-category-id=" + id + "]").remove(); + delete CHV.obj.categories[id]; + }, + }, + }, + add: { + submit: function () { + var modal = PF.obj.modal.selectors.root; + + if (!CHV.fn.category.validateForm()) { + return false; + } + + PF.obj.modal.form_data = { + action: "add-category", + category: {}, + }; + $.each(CHV.fn.category.formFields, function (i, v) { + if (v == "id") return; + PF.obj.modal.form_data.category[v] = $( + "[name=form-category-" + v + "]", + modal + ).val(); + }); + + return true; + }, + complete: { + success: function (XHR) { + var category = XHR.responseJSON.category, + list = "[data-content=dashboard-categories-list]", + html = $("[data-content=category-dashboard-template]").html(), + replaces = {}; + + $.each(category, function (i, v) { + html = html.replace( + new RegExp("%" + i.toUpperCase() + "%", "g"), + v ? v : "" + ); + }); + + $(list).append(html); + + if (Object.size(CHV.obj.categories) == 0) { + CHV.obj.categories = {}; + } + CHV.obj.categories[category.id] = category; + + PF.fn.growl.call( + PF.fn._s("Category %s added.", '"' + category.name + '"') + ); + }, + }, + }, +}; + +// IP ban edit +CHV.fn.ip_ban = { + formFields: ["id", "ip", "expires", "message"], + validateForm: function (id) { + var modal = PF.obj.modal.selectors.root, + submit = true, + already_banned = false, + ip = $("[name=form-ip_ban-ip]", modal).val(); + + if (!CHV.fn.common.validateForm(modal)) { + return false; + } + + if ( + $("[name=form-ip_ban-expires]", modal).val() !== "" && + /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test( + $("[name=form-ip_ban-expires]", modal).val() + ) == false + ) { + PF.fn.growl.call(PF.fn._s("Invalid expiration date.")); + $("[name=form-ip_ban-expires]", modal).highlight(); + return false; + } + + if (Object.size(CHV.obj.ip_bans) > 0) { + $.each(CHV.obj.ip_bans, function (i, v) { + if (typeof id !== "undefined" && v.id == id) return true; + if (v.ip == ip) { + already_banned = true; + return false; + } + }); + } + if (already_banned) { + PF.fn.growl.call(PF.fn._s("IP %s already banned.", ip)); + $("[name=form-ip_ban-ip]", modal).highlight(); + return false; + } + + return true; + }, + + add: { + submit: function () { + var modal = PF.obj.modal.selectors.root; + + if (!CHV.fn.ip_ban.validateForm()) { + return false; + } + + PF.obj.modal.form_data = { + action: "add-ip_ban", + ip_ban: {}, + }; + $.each(CHV.fn.ip_ban.formFields, function (i, v) { + if (v == "id") return; + PF.obj.modal.form_data.ip_ban[v] = $( + "[name=form-ip_ban-" + v + "]", + modal + ).val(); + }); + + return true; + }, + complete: { + success: function (XHR) { + var ip_ban = XHR.responseJSON.ip_ban, + list = "[data-content=dashboard-ip_bans-list]", + html = $("[data-content=ip_ban-dashboard-template]").html(), + replaces = {}; + + if (typeof html !== "undefined") { + $.each(ip_ban, function (i, v) { + html = html.replace( + new RegExp("%" + i.toUpperCase() + "%", "g"), + v ? v : "" + ); + }); + $(list).append(html); + } + if (Object.size(CHV.obj.ip_bans) == 0) { + CHV.obj.ip_bans = {}; + } + CHV.obj.ip_bans[ip_ban.id] = ip_ban; + $("[data-content=ban_ip]").addClass("hidden"); + $("[data-content=banned_ip]").removeClass("hidden"); + PF.fn.growl.call(PF.fn._s("IP %s banned.", ip_ban.ip)); + }, + error: function (XHR) { + // experimental + var error = XHR.responseJSON.error; + PF.fn.growl.call(PF.fn._s(error.message)); + }, + }, + }, + + edit: { + before: function (e) { + var $this = $(e.target), + id = $this.data("ip_ban-id"), + target = CHV.obj.ip_bans[id], + modal_source = "[data-modal=" + $this.data("target") + "]"; + $.each(CHV.fn.ip_ban.formFields, function (i, v) { + var i = "form-ip_ban-" + v, + v = target[v], + $input = $("[name=" + i + "]", modal_source); + if ($input.is("textarea")) { + $input.html(PF.fn.htmlEncode(v)); + } else { + $input.attr("value", v); + } + }); + }, + submit: function () { + var modal = PF.obj.modal.selectors.root, + id = $("[name=form-ip_ban-id]", modal).val(); + + if (!CHV.fn.ip_ban.validateForm(id)) { + return false; + } + + PF.obj.modal.form_data = { + action: "edit", + edit: "ip_ban", + editing: {}, + }; + $.each(CHV.fn.ip_ban.formFields, function (i, v) { + PF.obj.modal.form_data.editing[v] = $( + "[name=form-ip_ban-" + v + "]", + modal + ).val(); + }); + + return true; + }, + complete: { + success: function (XHR) { + var ip_ban = XHR.responseJSON.ip_ban, + parent = "[data-content=ip_ban][data-ip_ban-id=" + ip_ban.id + "]"; + + $.each(ip_ban, function (i, v) { + $("[data-content=ip_ban-" + i + "]", parent).html( + PF.fn.htmlEncode(v) + ); + }); + CHV.obj.ip_bans[ip_ban.id] = ip_ban; + }, + error: function (XHR) { + var error = XHR.responseJSON.error; + PF.fn.growl.call(PF.fn._s(error.message)); + }, + }, + }, + + delete: { + before: function (e) { + var $this = $(e.target), + id = $this.data("ip_ban-id"), + ip_ban = CHV.obj.ip_bans[id]; + $this.attr( + "data-confirm", + $this.attr("data-confirm").replace("%s", ip_ban.ip) + ); + }, + submit: function (id) { + PF.obj.modal.form_data = { + action: "delete", + delete: "ip_ban", + deleting: { + id: id, + }, + }; + return true; + }, + complete: { + success: function (XHR) { + PF.fn.growl.expirable(PF.fn._s("IP ban successfully deleted.")); + var id = XHR.responseJSON.request.deleting.id; + $("[data-content=ip_ban][data-ip_ban-id=" + id + "]").remove(); + delete CHV.obj.ip_bans[id]; + }, + }, + }, +}; + +// Storage edit +CHV.fn.storage = { + formFields: [ + "id", + "name", + "api_id", + "bucket", + "server", + "service", + "capacity", + "region", + "key", + "secret", + "url", + "account_id", + "account_name", + ], + calling: false, + validateForm: function () { + var modal = PF.obj.modal.selectors.root, + id = $("[name=form-storage-id]", modal).val(), + submit = true; + + $.each($(":input", modal), function (i, v) { + if ($(this).is(":hidden")) { + if ($(this).attr("required")) { + $(this).removeAttr("required").attr("data-required", 1); + } + } else { + if ($(this).attr("data-required") == 1) { + $(this).attr("required", "required"); + } + } + if ( + $(this).is(":visible") && + $(this).val() == "" && + $(this).attr("required") + ) { + $(this).highlight(); + submit = false; + } + }); + + if (!submit) { + PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")); + return false; + } + + // Validate storage capacity + var $storage_capacity = $("[name=form-storage-capacity]", modal), + storage_capacity = $storage_capacity.val(), + capacity_error_msg; + + if (storage_capacity !== "") { + if ( + /^[\d\.]+\s*[A-Za-z]{2}$/.test(storage_capacity) == false || + typeof storage_capacity.getBytes() == "undefined" + ) { + capacity_error_msg = PF.fn._s( + "Invalid storage capacity value. Make sure to use a valid format." + ); + } else if ( + typeof CHV.obj.storages[id] !== "undefined" && + storage_capacity.getBytes() < CHV.obj.storages[id].space_used + ) { + capacity_error_msg = PF.fn._s( + "Storage capacity can't be lower than its current usage (%s).", + CHV.obj.storages[id].space_used.formatBytes() + ); + } + if (capacity_error_msg) { + PF.fn.growl.call(capacity_error_msg); + $storage_capacity.highlight(); + return false; + } + } + + if ( + /^https?:\/\/.+$/.test($("[name=form-storage-url]", modal).val()) == false + ) { + PF.fn.growl.call(PF.fn._s("Invalid URL.")); + $("[name=form-storage-url]", modal).highlight(); + return false; + } + return true; + }, + toggleHttps: function (id) { + this.toggleBool(id, "https"); + }, + toggleActive: function (id) { + this.toggleBool(id, "active"); + }, + toggleBool: function (id, string) { + if (this.calling) return; + + this.calling = true; + + var $root = $("[data-storage-id=" + id + "]"), + $parent = $("[data-content=storage-" + string + "]", $root), + $el = $("[data-checkbox]", $parent), + checked = CHV.obj.storages[id]["is_" + string], + toggle = checked == 0 ? 1 : 0, + data = { + action: "edit", + edit: "storage", + editing: { + id: id, + }, + }; + data.editing["is_" + string] = toggle; + if (string == "https") { + data.editing.url = CHV.obj.storages[id].url; + } + + PF.fn.loading.fullscreen(); + + $.ajax({ + type: "POST", + data: data, + }).always(function (data, status, XHR) { + CHV.fn.storage.calling = false; + PF.fn.loading.destroy("fullscreen"); + + if (typeof data.storage == "undefined") { + PF.fn.growl.call(data.responseJSON.error.message); + return; + } + + var storage = data.storage; + CHV.obj.storages[storage.id] = storage; + + PF.fn.growl.expirable(PF.fn._s("Storage successfully edited.")); + + switch (string) { + case "https": + $("[data-content=storage-url]", $root).html(storage.url); + break; + } + + CHV.fn.storage.toggleBoolDisplay($el, toggle); + }); + }, + edit: { + before: function (e) { + var $this = $(e.target), + id = $this.data("storage-id"), + storage = CHV.obj.storages[id], + modal_source = "[data-modal=" + $this.data("target") + "]", + combo = "[data-combo-value~=" + storage["api_id"] + "]"; + + $.each(CHV.fn.storage.formFields, function (i, v) { + var i = "form-storage-" + v, + v = storage[v], + $combo_input = $(combo + " [name=" + i + "]", modal_source), + $global_input = $("[name=" + i + "]", modal_source), + $input = $combo_input.exists() ? $combo_input : $global_input; + if ($input.is("textarea")) { + $input.html(PF.fn.htmlEncode(v)); + } else if ($input.is("select")) { + $("option", $input).removeAttr("selected"); + $("option", $input).each(function () { + if ($(this).attr("value") == v) { + $(this).attr("selected", "selected"); + return false; + } + }); + } else { + if ( + $input.is("[name=form-storage-capacity]") && + typeof v !== "undefined" && + v > 0 + ) { + v = String(v).formatBytes(2); + } + $input.attr("value", v); + } + }); + + // Co-combo breaker + $("[data-combo-value]").addClass("soft-hidden"); + $(combo).removeClass("soft-hidden"); + }, + submit: function () { + var modal = PF.obj.modal.selectors.root, + id = $("[name=form-storage-id]", modal).val(), + used_url_key = false; + + if (!CHV.fn.storage.validateForm()) { + return false; + } + + PF.obj.modal.form_data = { + action: "edit", + edit: "storage", + editing: {}, + }; + $.each(CHV.fn.storage.formFields, function (i, v) { + var sel; + sel = "[name=form-storage-" + v + "]"; + if ($(sel, modal).attr("type") !== "hidden") { + sel += ":visible"; + } + PF.obj.modal.form_data.editing[v] = $(sel, modal).val(); + }); + + return true; + }, + complete: { + success: function (XHR) { + var storage = XHR.responseJSON.storage, + parent = "[data-content=storage][data-storage-id=" + storage.id + "]", + $el = $("[data-action=toggle-storage-https]", parent); + $.each(storage, function (i, v) { + $("[data-content=storage-" + i + "]", parent).html( + PF.fn.htmlEncode(v) + ); + }); + CHV.obj.storages[storage.id] = storage; + CHV.fn.storage.toggleBoolDisplay($el, storage["is_https"] == 1); + }, + error: function (XHR) { + var response = XHR.responseJSON, + message = response.error.message; + PF.fn.growl.call(message); + }, + }, + }, + add: { + submit: function () { + if (!CHV.fn.storage.validateForm()) { + return false; + } + var modal = PF.obj.modal.selectors.root; + + PF.obj.modal.form_data = { + action: "add-storage", + storage: {}, + }; + $.each(CHV.fn.storage.formFields, function (i, v) { + if (v == "id") return; + var sel; + sel = "[name=form-storage-" + v + "]"; + if ($(sel, modal).attr("type") !== "hidden") { + sel += ":visible"; + } + PF.obj.modal.form_data.storage[v] = $(sel, modal).val(); + }); + + return true; + }, + complete: { + success: function (XHR) { + var storage = XHR.responseJSON.storage, + list = "[data-content=dashboard-storages-list]", + html = $("[data-content=storage-dashboard-template]").html(), + replaces = {}; + + $.each(storage, function (i, v) { + var upper = i.toUpperCase(); + if (i == "is_https" || i == "is_active") { + var v = CHV.obj.storageTemplate.icon + .replace("%TITLE%", CHV.obj.storageTemplate.messages[i]) + .replace("%ICON%", CHV.obj.storageTemplate.checkboxes[v]) + .replace("%PROP%", i.replace("is_", "")); + } + html = html.replace(new RegExp("%" + upper + "%", "g"), v ? v : ""); + }); + + $(list).append(html); + + PF.fn.bindtipTip($("[data-storage-id=" + storage.id + "]")); + + if (CHV.obj.storages.length == 0) { + CHV.obj.storages = {}; + } + CHV.obj.storages[storage.id] = storage; + }, + error: function (XHR) { + var response = XHR.responseJSON, + message = response.error.message; + PF.fn.growl.call(message); + }, + }, + }, + toggleBoolDisplay: function ($el, toggle) { + var icons = { + 0: $el.data("unchecked-icon"), + 1: $el.data("checked-icon"), + }; + $el.removeClass(icons[0] + " " + icons[1]).addClass(icons[toggle ? 1 : 0]); + }, +}; + +CHV.fn.common = { + validateForm: function (modal) { + if (typeof modal == "undefined") { + var modal = PF.obj.modal.selectors.root; + } + + var submit = true; + + $.each($(":input:visible", modal), function (i, v) { + if ($(this).val() == "" && $(this).attr("required")) { + $(this).highlight(); + submit = false; + } + }); + if (!submit) { + PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")); + return false; + } + + return true; + }, + updateDoctitle: function (pre_doctitle) { + if (typeof CHV.obj.page_info !== typeof undefined) { + CHV.obj.page_info.pre_doctitle = pre_doctitle; + CHV.obj.page_info.doctitle = + CHV.obj.page_info.pre_doctitle + CHV.obj.page_info.pos_doctitle; + document.title = CHV.obj.page_info.doctitle; + } + }, +}; + +CHV.fn.user = { + add: { + submit: function () { + var $modal = $(PF.obj.modal.selectors.root), + submit = true; + + $.each($(":input", $modal), function (i, v) { + if ($(this).val() == "" && $(this).attr("required")) { + $(this).highlight(); + submit = false; + } + }); + + if (!submit) { + PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")); + return false; + } + + PF.obj.modal.form_data = { + action: "add-user", + user: { + username: $("[name=form-username]", $modal).val(), + email: $("[name=form-email]", $modal).val(), + password: $("[name=form-password]", $modal).val(), + role: $("[name=form-role]", $modal).val(), + }, + }; + + return true; + }, + complete: { + success: function (XHR) { + var response = XHR.responseJSON; + PF.fn.growl.expirable(PF.fn._s("User added successfully.")); + }, + error: function (XHR) { + var response = XHR.responseJSON; + PF.fn.growl.call(PF.fn._s(response.error.message)); + }, + }, + }, + delete: { + submit: function () { + PF.obj.modal.form_data = { + action: "delete", + delete: "user", + owner: CHV.obj.resource.user.id, + deleting: CHV.obj.resource.user, + }; + return true; + }, + }, + ban: { + submit: function () { + PF.obj.modal.form_data = { + action: "ban", + ban: "user", + banning: CHV.obj.resource.user.id, + }; + return true; + }, + success: function () { + + } + } +}; + +CHV.fn.submit_resource_approve = function () { + PF.obj.modal.form_data = { + action: "approve", + approve: CHV.obj.resource.type, + from: "resource", + owner: typeof CHV.obj.resource.user !== "undefined" ? + CHV.obj.resource.user.id : null, + approving: CHV.obj.resource, + }; + return true; +}; +CHV.fn.complete_resource_approve = { + success: function (XHR) { + var response = XHR.responseJSON; + $("body").fadeOut("normal", function () { + redir = CHV.obj.resource.url; + window.location = redir; + }); + }, +}; + +CHV.fn.submit_resource_delete = function () { + PF.obj.modal.form_data = { + action: "delete", + delete: CHV.obj.resource.type, + from: "resource", + owner: typeof CHV.obj.resource.user !== "undefined" ? + CHV.obj.resource.user.id : null, + deleting: CHV.obj.resource, + }; + return true; +}; +CHV.fn.complete_resource_delete = { + success: function (XHR) { + var response = XHR.responseJSON; + $("body").fadeOut("normal", function () { + var redir; + if ( + CHV.obj.resource.type == "album" || + CHV.obj.resource.type == "image" + ) { + redir = CHV.obj.resource.parent_url; + } else { + redir = CHV.obj.resource.user ? + CHV.obj.resource.user.url : + CHV.obj.resource.url; + } + if (typeof redir !== "undefined") { + window.location = redir.replace(/\/?$/, '/') + "?deleted"; + } + }); + }, +}; + +CHV.fn.list_editor = { + blink: function ($target) { + $target.addClass('ui-selecting'); + setTimeout(function () { + $target.removeClass('ui-selecting'); + }, 200); + }, + selectionCount: function () { + var $content_listing = $(PF.obj.listing.selectors.content_listing); + + $content_listing.each(function () { + var $listing_options = $( + "[data-content=pop-selection]", + "[data-content=list-selection][data-tab=" + $(this).attr("id") + "]" + ), + selection_count = $( + PF.obj.listing.selectors.list_item + ".selected", + this + ).length; + all_count = $(PF.obj.listing.selectors.list_item, this).length; + $listing_options.toggleClass("disabled", selection_count == 0); + $("[data-text=selection-count]", $listing_options).text( + selection_count > 0 ? selection_count : "" + ); + + // Sensitive display + if ($content_listing.data("list") == "images" && selection_count > 0) { + var has_sfw = + $( + PF.obj.listing.selectors.list_item + ".selected[data-flag=safe]", + this + ).length > 0, + has_nsfw = + $( + PF.obj.listing.selectors.list_item + + ".selected[data-flag=unsafe]", + this + ).length > 0; + $("[data-action=flag-safe]", $listing_options)[ + (has_nsfw ? "remove" : "add") + "Class" + ]("hidden"); + $("[data-action=flag-unsafe]", $listing_options)[ + (has_sfw ? "remove" : "add") + "Class" + ]("hidden"); + } + + if ($(this).is(":visible")) { + $("body").toggleClass('--has-selection', selection_count > 0); + CHV.fn.list_editor.listMassActionSet( + all_count == selection_count ? "clear" : "select" + ); + } + }); + }, + + // Remove (delete or move) items from list + removeFromList: function ($target, msg) { + if (typeof $target == "undefined") return; + + var $target = $target instanceof jQuery == false ? $($target) : $target, + $content_listing = $(PF.obj.listing.selectors.content_listing_visible), + target_size = $target.length; + + $target.fadeOut("fast"); // Promise + + // Update counts + var type = $target.first().data("type"), + new_count = + parseInt($("[data-text=" + type + "-count]").text()) - target_size; + + CHV.fn.list_editor.updateUserCounters( + $target.first().data("type"), + target_size, + "-" + ); + + $target.promise().done(function () { + $(document).removeClass( + CHV.fn.listingViewer.selectors.bodyShown.substr(1) + ); + + // Get count related to each list + var affected_content_lists = {}; + $target.each(function () { + $("[data-id=" + $(this).data("id") + "]").each(function () { + var list_id = $(this) + .closest(PF.obj.listing.selectors.content_listing) + .attr("id"); + + if (!affected_content_lists[list_id]) { + affected_content_lists[list_id] = 0; + } + affected_content_lists[list_id] += 1; + }); + }); + + if (target_size == 1) { + $("[data-id=" + $(this).data("id") + "]").remove(); + } else { + $target.each(function () { + $("[data-id=" + $(this).data("id") + "]").remove(); + }); + } + + PF.fn.listing.columnizerQueue(); + PF.fn.listing.refresh(); + + CHV.fn.list_editor.selectionCount(); + + if (typeof msg !== "undefined" && typeof msg == "string") { + PF.fn.growl.expirable(msg); + } + if (!$( + PF.obj.listing.selectors.content_listing_pagination, + $content_listing + ).exists() && + $(PF.obj.listing.selectors.list_item, $content_listing).length == 0 + ) { + new_count = 0; + } + + // On zero add the empty template + if (new_count == 0) { + $content_listing.html(PF.obj.listing.template.empty); + // Reset ajaxed status of all + $( + PF.obj.listing.selectors.content_listing + + ":not(" + + PF.obj.listing.selectors.content_listing_visible + + ")" + ).data({ + empty: null, + load: "ajax", + }); + $( + "[data-content=list-selection][data-tab=" + + $content_listing.attr("id") + + "]" + ).addClass("disabled"); + } else { + // Count isn't zero.. But the view? + if ( + $(PF.obj.listing.selectors.list_item, $content_listing).length == 0 + ) { + $(PF.obj.listing.selectors.pad_content).height(0); + if ($("[data-action=load-more]", $content_listing).exists()) { + $(PF.obj.listing.selectors.content_listing_visible).data("page", 0); + $("[data-action=load-more]", $content_listing).click(); + PF.obj.listing.recolumnize = true; + return; + } + var $pagNext = $("[data-pagination=next]", $content_listing); + if ($pagNext.exists()) { + var hrefNext = $pagNext.attr("href"); + var params = PF.fn.deparam(hrefNext); + if ("page" in params && params.page > 1) { + hrefNext = hrefNext.changeURLParameterValue( + "page", + params.page - 1 + ); + } + window.location = hrefNext; + return; + } + } + } + }); + }, + + deleteFromList: function ($target) { + if (typeof growl == "undefined") { + var growl = true; + } + var $target = $target instanceof jQuery == false ? $($target) : $target; + this.removeFromList( + $target, + growl ? PF.fn._s("The content has been deleted.") : null + ); + }, + + moveFromList: function ($target, growl) { + if (typeof growl == "undefined") { + var growl = true; + } + var $target = $target instanceof jQuery == false ? $($target) : $target; + this.removeFromList( + $target, + growl ? PF.fn._s("The content has been moved.") : null + ); + }, + + toggleSelectItem: function ($list_item, select) { + if (typeof select !== "boolean") { + var select = !$list_item.hasClass('selected'); + } + + var $target = $(".viewer").is(":visible") ? + $("[data-type=image][data-id=" + $list_item.attr("data-id") + "]") : + $list_item; + var $icon = $("[data-action=select] .btn-icon", $target); + var add_class, remove_class, label_text; + + if ($target.hasClass('unselect')) { + return; + } + $target.addClass("unselect"); + if (!select) { + $target.removeClass("selected ui-selected"); + add_class = $icon.data("icon-unselected"); + remove_class = $icon.data("icon-selected"); + label_text = PF.fn._s("Select"); + } else { + if(Boolean(window.navigator.vibrate)) { + window.navigator.vibrate([15, 125, 25]); + } + $target.addClass("selected"); + add_class = $icon.data("icon-selected"); + remove_class = $icon.data("icon-unselected"); + label_text = PF.fn._s("Unselect"); + } + $icon.removeClass(remove_class).addClass(add_class); + setTimeout(function () { + $target.removeClass("unselect") + }, 350) + $("[data-action=select] .label", $target).text(label_text); + CHV.fn.list_editor.selectionCount(); + }, + selectItem: function ($list_item) { + this.toggleSelectItem($list_item, true); + }, + unselectItem: function ($list_item) { + this.toggleSelectItem($list_item, false); + $list_item.removeClass('selected') + }, + selectAll: function (e) { + this.selectItem($(PF.obj.listing.selectors.list_item + ":visible:not(.selected)")); + this.listMassActionSet("clear"); + e.stopPropagation(); + }, + clearSelection: function (all) { + var $targets = $( + PF.obj.listing.selectors.list_item + ".selected", + PF.obj.listing.selectors[ + all ? "content_listing" : "content_listing_visible" + ] + ); + this.unselectItem($targets); + this.listMassActionSet("select"); + }, + + listMassActionSet: function (action) { + var current = action == "select" ? "clear" : "select"; + var $target = $("[data-text-select-all][data-action=list-" + current + "-all]:visible",); + var text = $target.data("text-" + action + "-all"); + $target.text(text).attr("data-action", "list-" + action + "-all"); + PF.fn.close_pops(); + }, + + updateItem: function ($target, response, action, growl) { + if ($target instanceof jQuery == false) { + var $target = $($target); + } + + var dealing_with = $target.data("type"), + album = dealing_with == "image" ? response.album : response; + + this.addAlbumtoModals(album); + + $("option[value=" + album.id_encoded + "]", "[name=form-album-id]").html( + PF.fn.htmlEncode(album.name_with_privacy_readable_html) + ); + + if (typeof action == "undefined") { + var action = "edit"; + } + + if (action == "edit" || action == "move") { + if (action == "move" && CHV.obj.resource.type == "album") { + CHV.fn.list_editor.moveFromList($target, growl); + return; + } + $target.attr("data-description", response.description); + + if (dealing_with == "image") { + if (typeof response.title !== typeof undefined) { + $target.attr("data-title", response.title); + $target.find("[title]").attr("title", response.title); + $("[data-text=image-title]", $target).text( + PF.fn.htmlEncode(response.title) + ); + } + if (typeof response.title_truncated !== typeof undefined) { + $("[data-text=image-title-truncated]", $target).html( + PF.fn.htmlEncode(response.title_truncated) + ); + } + if (typeof response.category_id !== typeof undefined) { + $target.attr("data-category-id", response.category_id); + } + $target.attr({ + "data-album-id": album.id_encoded, + "data-flag": response.nsfw == 1 ? "unsafe" : "safe", + }); + $("[data-content=album-link]", $target).attr("href", album.url); + } else { + $target.attr({ + "data-privacy": album.privacy, + "data-password": album.password, + "data-name": album.name, + }); + } + $target.attr("data-privacy", album.privacy); + $("[data-text=album-name]", $target).html(PF.fn.htmlEncode(album.name)); + + PF.fn.growl.expirable( + action == "edit" ? + PF.fn._s("The content has been edited.") : + PF.fn._s("The content has been moved.") + ); + } + }, + + addAlbumtoModals: function (album) { + var added = false; + $("[name=form-album-id]", "[data-modal]").each(function () { + if ( + album.id_encoded && + !$("option[value=" + album.id_encoded + "]", this).exists() + ) { + $(this).append( + '<option value="' + + album.id_encoded + + '">' + + album.name_with_privacy_readable_html + + "</option>" + ); + added = true; + } + }); + if (added) { + CHV.fn.list_editor.updateUserCounters("album", 1, "+"); + } + }, + + updateAlbum: function (album) { + $("[data-id=" + album.id_encoded + "]").each(function () { + if (album.html !== "") { + $(this).after(album.html); + $(this).remove(); + } + }); + }, + + updateUserCounters: function (counter, number, operation) { + if (typeof operation == "undefined") { + var operation = "+"; + } + + // Current resource counter + var $count = $("[data-text=" + counter + "-count]"), + $count_label = $("[data-text=" + counter + "-label]"), + number = parseInt(number), + old_count = parseInt($count.html()), + new_count, + delta; + + switch (operation) { + case "+": + new_count = old_count + number; + break; + case "-": + new_count = old_count - number; + break; + case "=": + new_count = number; + break; + } + + delta = new_count - old_count; + + // Total counter + var $total_count = $("[data-text=total-" + $count.data("text") + "]"), + $total_count_label = $( + "[data-text=" + $total_count.data("text") + "-label]" + ), + old_total_count = parseInt($total_count.html()), + new_total_count = old_total_count + delta; + + $count.text(new_count); + $total_count.text(new_total_count); + $count_label.text( + $count_label.data(new_count == 1 ? "label-single" : "label-plural") + ); + $total_count_label.text( + $count_label.data(new_total_count == 1 ? "label-single" : "label-plural") + ); + }, + + updateMoveItemLists: function (response, dealing_with, $targets) { + CHV.fn.list_editor.clearSelection(); + if (/image/.test(dealing_with)) { + if (dealing_with == "image") { + // single + CHV.fn.list_editor.updateItem( + "[data-type=image][data-id=" + $targets.data("id") + "]", + response.image, + "move" + ); + } else { + $targets.each(function () { + CHV.fn.list_editor.updateItem( + "[data-type=image][data-id=" + $(this).data("id") + "]", + response, + "move", + false + ); + }); + PF.fn.growl.expirable(PF.fn._s("The content has been moved.")); + } + } else { + CHV.fn.list_editor.moveFromList($targets, false); + PF.fn.growl.expirable(PF.fn._s("The content has been moved.")); + if (response.album) { + if ( + typeof response.albums_old !== "undefined" ? + response.request.album.new == "true" : + response.request.editing.new_album == "true" + ) { + // Add option select to modals + CHV.fn.list_editor.addAlbumtoModals(response.album); + + var old_count = parseInt($("[data-text=album-count]").text()) - 1; + + $(PF.obj.listing.selectors.pad_content).each(function () { + var list_count = $(this).find(PF.obj.listing.selectors.list_item) + .length; + + if (list_count == 0) { + return; + } + + var params = PF.fn.deparam( + $(this) + .closest(PF.obj.listing.selectors.content_listing) + .data("params") + ); + + if (params.sort == "date_desc" || old_count == list_count) { + $(this)[params.sort == "date_desc" ? "prepend" : "append"]( + response.album.html + ); + } + }); + } else { + CHV.fn.list_editor.updateAlbum(response.album); + } + } + + PF.fn.listing.columnizerQueue(); + PF.fn.listing.refresh(0); + } + }, +}; + +CHV.fn.import = { + errorHandler: function (response) { + PF.fn.growl.call(response.error.message); + }, + reset: function (id) { + var id = parseInt(id); + CHV.obj.import.working[id].stats = $.ajax({ + type: "POST", + data: { + action: "importReset", + id: id, + }, + }); + CHV.obj.import.working[id].stats.complete(function (XHR) { + var response = XHR.responseJSON; + if (response) { + var $html = CHV.fn.import.parseTemplate(response.import); + $( + "[data-id=" + response.import.id + "]", + CHV.obj.import.sel.root + ).replaceWith($html); + if (response.import.status != "working") { + clearInterval(CHV.obj.import.working[id].interval); + } + } + }); + }, + updateStats: function (id) { + var id = parseInt(id); + if ( + "readyState" in CHV.obj.import.working[id].stats && + CHV.obj.import.working[id].stats.readyState != 4 + ) { + console.log( + "Aborting stats timeout call (previous call is still not ready)" + ); + return; + } + CHV.obj.import.working[id].stats = $.ajax({ + type: "POST", + data: { + action: "importStats", + id: id, + }, + }); + CHV.obj.import.working[id].stats.complete(function (XHR) { + var response = XHR.responseJSON; + if (response) { + var $html = CHV.fn.import.parseTemplate(response.import); + $( + "[data-id=" + response.import.id + "]", + CHV.obj.import.sel.root + ).replaceWith($html); + if (response.import.status != "working") { + clearInterval(CHV.obj.import.working[id].interval); + } + } + }); + }, + delete: { + submit: function (id) { + PF.obj.modal.form_data = { + action: "importDelete", + id: id, + }; + return true; + }, + deferred: { + success: function (XHR) { + var response = XHR.responseJSON; + PF.fn.growl.call(PF.fn._s("Import ID %s removed", response.import.id)); + $( + "[data-id=" + response.import.id + "]", + CHV.obj.import.sel.root + ).remove(); + if ($("li", CHV.obj.import.sel.root).size() == 1) { + $(CHV.obj.import.sel.root).addClass("hidden"); + } + }, + error: function (XHR) { + CHV.fn.import.errorHandler(XHR.responseJSON); + }, + }, + }, + parseTemplate: function (dataset, $el) { + var tpl = CHV.obj.import.rowTpl; + for (var key in CHV.obj.import.importTr) { + if (typeof dataset[key] != typeof undefined) { + tpl = tpl.replaceAll("%" + key + "%", dataset[key]); + } + } + tpl = tpl.replaceAll("%parse%", dataset.options.root); + tpl = tpl.replaceAll("%shortParse%", dataset.options.root.charAt(0)); + tpl = tpl.replaceAll( + "%displayStatus%", + CHV.obj.import.statusesDisplay[dataset.status] + ); + var $html = $($.parseHTML(tpl)).attr( + "data-object", + JSON.stringify(dataset) + ); + return $html; + }, +}; + +CHV.fn.Palettes = { + timeout: {}, + get: function () { + return ($("html").get(0).className.match(/(^|\s)palette-\S+/g) || []).join(' '); + }, + set: function (palette) { + $("html") + .attr("data-palette", palette) + .removeClass(this.get()) + .addClass("palette-" + palette); + }, + preview: function (palette) { + $("html") + .removeClass(this.get()) + .addClass("palette-" + palette); + }, + save: function () { + clearTimeout(this.timeout); + this.timeout = setTimeout(function () { + $.ajax({ + type: "POST", + data: { + action: "paletteSet", + palette_id: CHV.obj.config.palettesId[$("html").attr("data-palette")], + }, + cache: false, + }); + }, 400); + } +} diff --git a/content/legacy/themes/Peafowl/lib/chevereto.min.js b/content/legacy/themes/Peafowl/lib/chevereto.min.js new file mode 100644 index 0000000..9c46715 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/chevereto.min.js @@ -0,0 +1,4 @@ +$(function(){function e(e){e=e.originalEvent;var t=!1;if(e.dataTransfer.types)for(var a=0;a<e.dataTransfer.types.length;a++)if("Files"==e.dataTransfer.types[a]){t=!0;break}return t}function t(){if(!PF.fn.isDevice(["phone","phablet"])){var e,t,a=$(".top-bar-notifications-list ul",".top-bar:visible");a.css("height",""),e=a.height(),a.data("height",e).css("height","auto"),t=a.height(),t>e&&(a.height(e),a.closest(".antiscroll-wrap").antiscroll())}}function a(e){e.addClass("list-item-play-gif--loading");var t=e.closest(PF.obj.listing.selectors.list_item),a=$(".image-container",t),o=$("img",a),i=o.attr("src"),n=".md",s=i.lastIndexOf(n);if(-1==s)n=".th",s=i.lastIndexOf(n);var r=i.substr(0,s)+i.substr(s+n.length,i.length);a.append(a.html()),$load=t.find(".image-container img").eq(1).attr("src",r).addClass("hidden"),$load.imagesLoaded(function(){e.remove(),o.remove(),$("img",a).show(),$(this.elements).removeClass("hidden")})}function o(e,t){var a=$(e).closest(PF.obj.listing.selectors.list_item);CHV.fn.list_editor.blink(a),CHV.fn.list_editor.toggleSelectItem(a),PF.fn.keyFeedback.spawn(t),t.preventDefault(),t.stopPropagation()}var i,n=$(window).width();$(window).height();if($(window).resize(function(e){clearTimeout(i),i=setTimeout(function(){$("body#image").exists()&&n!=$(window).width()&&CHV.fn.image_viewer_full_fix(),CHV.fn.uploader.boxSizer(),CHV.fn.bindSelectableItems(),CHV.fn.listingViewer.placeholderSizing(),n=$(window).width(),$(window).height()},250)}),window.opener&&($(window).on("load",function(e){window.opener.postMessage({id:window.name,requestAction:"postSettings"},"*")}),$(window).on("message",function(e){var t=e.originalEvent.data;void 0!==t.id&&void 0!==t.settings&&window.name===t.id&&(CHV.obj.opener.uploadPlugin[t.id]=t.settings)})),$("#home-cover, #maintenance-wrapper, #login").exists()){var s=$("#maintenance-wrapper").exists()?$("#maintenance-wrapper").css("background-image").slice(4,-1).replace(/^\"|\"$/g,""):$(".home-cover-img","#home-cover-slideshow").first().attr("data-src");function r(){$("body").addClass("load"),$("#maintenance-wrapper").exists()||$(".home-cover-img","#home-cover-slideshow").first().css("background-image","url("+s+")").addClass("animate-in--alt").removeAttr("data-src"),setTimeout(function(){setTimeout(function(){$("body").addClass("loaded")},1200),setTimeout(function(){d()},7e3)},600)}var l=function(){setTimeout(function(){d()},8e3)};function d(){var e=$(".home-cover-img[data-src]","#home-cover-slideshow").first(),t=$(".home-cover-img","#home-cover-slideshow");if(0==e.length){if(1==t.length)return;t.first().removeClass("animate-in"),$("#home-cover-slideshow").append(t.first()),setTimeout(function(){$(".home-cover-img:last","#home-cover-slideshow").addClass("animate-in")},20),setTimeout(function(){$(".home-cover-img:not(:last)","#home-cover-slideshow").removeClass("animate-in")},4e3),l()}else{var a=e.attr("data-src");$("<img/>").attr("src",a).on("load error",function(){$(this).remove(),e.css("background-image","url("+a+")").addClass("animate-in").removeAttr("data-src"),setTimeout(function(){$(".home-cover-img:not(:last)","#home-cover-slideshow").removeClass("animate-end animate-in--alt")},2e3),l()})}}s?$("<img/>").attr("src",s).on("load error",function(){$(this).remove(),r()}):r()}var c,u=CHV.fn.uploader.selectors.root,m=CHV.fn.uploader.selectors.queue,f=$(u),p=$(m);if($(document).on("click","[data-action=top-bar-upload]",function(e){$("body").is("#upload")||"js"!==$(this).data("link")||CHV.fn.uploader.toggle({reset:!1}),"page"!==$(this).data("link")&&(e.preventDefault(),e.stopPropagation())}),$(document).on("click mouseover mouseout","[data-action=palette]",function(e){clearTimeout(c),e.preventDefault();var t=$(this).data("palette");switch(e.type){case"mouseover":c=setTimeout(function(){CHV.fn.Palettes.preview(t)},1e3);break;case"mouseout":t=$("html").attr("data-palette")||"",CHV.fn.Palettes.set(t);break;case"click":e.stopPropagation(),$("[data-action=palette]","[data-content=palettes]").removeClass("current"),$(this).addClass("current"),CHV.fn.Palettes.set(t),CHV.fn.Palettes.save()}}),$(document).on("change","#palettes",function(e){CHV.fn.Palettes.set(this.value),CHV.fn.Palettes.save()}),$("[data-action=close-upload]",f).click(function(){f.is(":animated")||$("[data-action=top-bar-upload]","#top-bar").trigger("click")}),$("[data-action=reset-upload]",f).click(function(){CHV.fn.uploader.isUploading&&$("[data-action=cancel-upload-remaining], [data-action=cancel-upload]",f).trigger("click"),CHV.fn.uploader.reset()}),$("[data-action=cancel-upload-remaining], [data-action=cancel-upload]",f).click(function(){CHV.fn.uploader.isUploading=!1,$("[data-action=cancel]",p).click(),Object.size(CHV.fn.uploader.results.success)>0?CHV.fn.uploader.displayResults():CHV.fn.uploader.reset()}),$(document).on("click","[data-action=upload-privacy]:not(disabled)",function(e){e.isDefaultPrevented()||(current_privacy=$(this).data("privacy"),target_privacy="public"==current_privacy?"private":"public",this_lock=$(".icon",this).data("lock"),this_unlock=$(".icon",this).data("unlock"),$(".icon",this).removeClass(this_lock+" "+this_unlock).addClass("public"==current_privacy?this_lock:this_unlock),$(this).data("privacy",target_privacy),$("[data-action=upload-privacy-copy]").html($("[data-action=upload-privacy]").html()),$upload_button=$("[data-action=upload]",f),$upload_button.text($upload_button.data(target_privacy)),$(this).tipTip("hide"))}),$(CHV.fn.uploader.selectors.file+", "+CHV.fn.uploader.selectors.camera).on("change",function(e){$(CHV.fn.uploader.selectors.root).data("shown")?CHV.fn.uploader.add(e):CHV.fn.uploader.toggle({callback:function(e){CHV.fn.uploader.add(e)}},e)}).on("click",function(e){!$(this).data("login-needed")||PF.fn.is_user_logged()}),$(CHV.fn.uploader.selectors.root).exists()&&($("body").on({dragenter:function(t){if(t.preventDefault(),!e(t))return!1;$(CHV.fn.uploader.selectors.dropzone).exists()||$("body").append($('<div id="'+CHV.fn.uploader.selectors.dropzone.replace("#","")+'"/>').css({width:"100%",height:"100%",position:"fixed",zIndex:1e3,left:0,top:0}))}}),$(document).on({dragover:function(t){if(t.preventDefault(),!e(t))return!1;$(CHV.fn.uploader.selectors.root).data("shown")||CHV.fn.uploader.toggle({reset:!1})},dragleave:function(e){$(CHV.fn.uploader.selectors.dropzone).remove(),$.isEmptyObject(CHV.fn.uploader.files)&&CHV.fn.uploader.toggle()},drop:function(e){e.preventDefault(),CHV.fn.uploader.add(e),$(CHV.fn.uploader.selectors.dropzone).remove()}},CHV.fn.uploader.selectors.dropzone)),$(document).on("keyup change","[data-action=resize-combo-input]",function(e){var t=$(this).closest("[data-action=resize-combo-input]"),a=$("[name=form-width]",t),o=$("[name=form-height]",t),i=a.data("initial")/o.data("initial"),n={width:Math.round(a.prop("value")/i),height:Math.round(o.prop("value")*i)};$(e.target).is(a)?o.prop("value",Math.round(n.width)):a.prop("value",Math.round(n.height))}),$(document).on("click",m+" [data-action=edit]",function(){for(var e=$(this).closest("li"),t=(e.closest("ul"),e.data("id")),a=CHV.fn.uploader.files[t],o=PF.obj.modal.selectors.root,i=$.extend({},a.formValues||a.parsedMeta),n=["album_id","category_id","nsfw"],s=0;s<n.length;s++){var r=n[s];if(void 0===i[r]){var l=$("[name=upload-"+r.replace("_","-")+"]",CHV.fn.uploader.selectors.root),d=l.prop(l.is(":checkbox")?"checked":"value");i[r]=l.is(":checkbox")?d?"1":null:d}}PF.fn.modal.call({type:"html",template:$("#anywhere-upload-edit-item").html(),callback:function(){var e={width:0!=CHV.obj.config.image.max_width?CHV.obj.config.image.max_width:i.width,height:0!=CHV.obj.config.image.max_height?CHV.obj.config.image.max_height:i.height},n=$.extend({},e),s=i.width/i.height;n.width=Math.round(e.height*s),n.height=Math.round(e.width/s),n.height>e.height&&(n.height=e.height,n.width=Math.round(n.height*s)),n.width>e.width&&(n.width=e.width,n.height=Math.round(n.width/s)),$.each(i,function(e,t){var i="[name=form-"+e.replace(/_/g,"-")+"]",s=$(i,o);if(!s.exists())return!0;if(s.is(":checkbox"))s.prop("checked",s.attr("value")==t);else if(s.is("select")){var r=s.find("[value="+t+"]");r.exists()||(r=s.find("option:first")),r.prop("selected",!0)}else s.prop("value",t);if("width"==e||"height"==e){var l=n[e],d=a.parsedMeta[e]>l?l:a.parsedMeta[e];s.prop("max",d).data("initial",a.parsedMeta[e]).prop("value",d)}}),"image/gif"!==a.parsedMeta.mimetype&&$("[ data-content=animated-gif-warning]",o).remove(),$(".image-preview",o).append($("<canvas/>",{class:"canvas checkered-background"}));var r=$(".queue-item[data-id="+t+"] .preview .canvas")[0],l=$(".image-preview .canvas",o)[0];l.width=r.width,l.height=r.height;var d=l.getContext("2d");d.drawImage(r,0,0)},confirm:function(){if(PF.fn.form_modal_has_changed()){var e=!1;return $.each(["width","height"],function(t,a){var i=$("[name=form-"+a+"]",o),n=parseInt(i.val()),s=parseInt(i.attr("min")),r=parseInt(i.attr("max"));if(n>r||n<s)return i.highlight(),e=!0,!0}),e?(PF.fn.growl.expirable(PF.fn._s("Check the errors in the form to continue.")),!1):(void 0===a.formValues&&(a.formValues={title:null,category_id:null,width:null,height:null,nsfw:null,expiration:null,description:null,album_id:null}),$(":input[name]",o).each(function(e,t){var o=$(this).attr("name").replace("form-","").replace(/-/g,"_");if(void 0===a.formValues[o])return!0;a.formValues[o]=$(this).is(":checkbox")?$(this).is(":checked")?$(this).prop("value"):null:$(this).prop("value")}),CHV.fn.uploader.files[t].formValues=a.formValues,!0)}PF.fn.modal.close()}})}),$(document).on("click",m+" [data-action=cancel]",function(){var e=$(this).closest("li"),t=e.closest("ul"),a=e.data("id"),o=t.height(),i=!1;if(!e.hasClass("completed")&&!e.hasClass("failed")){if($("#tiptip_holder").hide(),e.tipTip("destroy").remove(),o!==t.height()&&CHV.fn.uploader.boxSizer(),$("li",p).exists()||$("[data-group=upload-queue-ready], [data-group=upload-queue], [data-group=upload-queue-ready]",f).css("display",""),CHV.fn.uploader.files[a]&&void 0!==CHV.fn.uploader.files[a].xhr&&(CHV.fn.uploader.files[a].xhr.abort(),i=!0),void 0!==CHV.fn.uploader.files[a]&&void 0!==CHV.fn.uploader.files[a].fromClipboard){var n=CHV.fn.uploader.files[a].md5,s=CHV.fn.uploader.clipboardImages.indexOf(n);s>-1&&CHV.fn.uploader.clipboardImages.splice(s,1)}delete CHV.fn.uploader.files[a],CHV.fn.uploader.queueSize(),0==Object.size(CHV.fn.uploader.files)?"success"in CHV.fn.uploader&&"results"in CHV.fn.uploader&&(0!=Object.size(CHV.fn.uploader.results.success)||0!=Object.size(CHV.fn.uploader.results.error))||CHV.fn.uploader.reset():i&&0!==$("li.waiting",t).first().length&&CHV.fn.uploader.upload($("li.waiting",t).first())}}),$(document).on("click","[data-action=upload]",function(){void 0!==CHV.obj.logged_user||!1!==$("#upload-tos").prop("checked")?($("[data-group=upload], [data-group=upload-queue-ready]",f).hide(),f.removeClass("queueReady").addClass("queueUploading").find("[data-group=uploading]").show(),CHV.fn.uploader.queueSize(),CHV.fn.uploader.canAdd=!1,$queue_items=$("li",p),$queue_items.addClass("uploading waiting"),CHV.fn.uploader.timestamp=(new Date).getTime(),CHV.fn.uploader.upload($queue_items.first("li"))):PF.fn.growl.call("You must agree to the terms and privacy policy")}),$("body#user").exists()&&PF.obj.listing.query_string.page>1){var g=History.getState();if(g.data&&void 0!==g.data.scrollTop)$(window).scrollTop()!==g.data.scrollTop&&$(window).scrollTop(g.data.scrollTop);else{var h=$("#background-cover").height()-160;$("html, body").animate({scrollTop:h},0)}}$("#top-bar-shade").exists()&&$("#top-bar-shade").css("opacity")&&$("#top-bar-shade").data("initial-opacity",Number($("#top-bar-shade").css("opacity"))),CHV.fn.bindSelectableItems(),$("body#image").exists()&&($(CHV.obj.image_viewer.selector+" [data-load=full]").length>0&&($(document).on("click",CHV.obj.image_viewer.loader,function(e){CHV.fn.viewerLoadImage()}),$(CHV.obj.image_viewer.loader).data("size")>CHV.obj.config.image.load_max_filesize.getBytes()?$(CHV.obj.image_viewer.loader).css("display","block"):CHV.fn.viewerLoadImage()),new MutationObserver(()=>{$("html").height()>$(window).innerHeight()&&!$("html").hasClass("scrollbar-y")&&($("html").addClass("scrollbar-y"),$(document).data({width:$(this).width(),height:$(this).height()}))}).observe(document,{childList:!0}),$(document).on("keyup",function(e){var t=$(e.target),a=e.originalEvent;if(!t.is(":input")&&CHV.obj.image_viewer.$navigation.exists()&&("ArrowLeft"==a.key||"ArrowRight"==a.key)){var o=$("[data-action="+("ArrowLeft"==a.key?"prev":"next")+"]",CHV.obj.image_viewer.$navigation).attr("href");void 0!==o&&""!==o&&(window.location=$("[data-action="+("ArrowLeft"==a.key?"prev":"next")+"]",CHV.obj.image_viewer.$navigation).attr("href"))}})),$(document).on("click",CHV.obj.image_viewer.container+" img",function(e){if($(this).hasClass("cursor-zoom-in")||$(this).hasClass("cursor-zoom-out")){var t=$(this).hasClass("cursor-zoom-in");if($(this).removeClass("cursor-zoom-in cursor-zoom-out"),t){var a,o=$(this).attr("width"),i=$(this).attr("height"),n=o/i;o>$(window).width()?($(this).css("width","100%"),a=$(this).width(),$(this).css("width",o)):a=$(this).attr("width"),$(this).addClass("cursor-zoom-out").css({width:a,height:a/n+"px"}),$("#image-viewer-container").css("height","")}else $(this).addClass("cursor-zoom-in"),image_viewer_full_fix();e.preventDefault()}}).on("contextmenu",CHV.obj.image_viewer.container,function(e){if(!CHV.obj.config.image.right_click)return e.preventDefault(),!1}),$(document).on("contextmenu","html.device-mobile a.image-container",function(e){e.preventDefault(),e.stopPropagation()}),$(document).on("keyup","input[data-dashboard-tool]",function(e){if(13==e.keyCode){var t=$("[data-action="+$(this).data("dashboard-tool")+"]");t.click()}}),$(document).on("click","[data-action=dashboardTool]",function(e){e.preventDefault();var t=$(this).data("tool"),a=$(this).data("data"),o=$.extend({},a),i={};for(var n in o){var s=$(o[n]).val();if($(o[n]).prop("disabled")||!s)return;i[n]=$(o[n]),o[n]=s}o.action=t;var r={type:"GET",cache:!1};r.data=o;var l,d=$(this).closest(".input-label"),c=!0;if(0!=c){for(var n in i);PF.fn.loading.inline($(".loading",d),{size:"small",valign:"middle"}),d.find(".btn .text").hide(),$.ajax(r).complete(function(e){var t=e.responseJSON;$(".loading",d).empty(),d.find(".btn .text").show(),200!=t.status_code||void 0===t.success.redirURL?PF.fn.growl.call(t[200==t.status_code?"success":"error"].message):window.location.href=t.success.redirURL})}else PF.fn.growl.expirable(l)}),$(document).on("click","[data-action=openerPostMessage]",function(e){if(window.opener){e.preventDefault();var t="data-action-target",a=$($(this).is("["+t+"]")?$(this).attr(t):this),o=a[a.is(":input")?"val":"html"]();window.opener.postMessage({id:window.name,message:o},"*")}}),$(document).on("click","[data-action=list-tools] [data-action]",function(e){var t=$(e.target),a=t.closest("[data-id]");a&&a.find("[data-action=select]").exists()&&(e.ctrlKey||e.metaKey)&&e.altKey&&(CHV.fn.list_editor.toggleSelectItem(a,!a.hasClass("selected")),e.preventDefault(),e.stopPropagation())}),PF.fn.listing.ajax.callback=function(e){200===e.status&&CHV.fn.list_editor.listMassActionSet("select")},$(document).on("click","[data-action=list-select-all]",function(e){if($(this).closest(".disabled").exists())return!1;CHV.fn.list_editor.selectAll(e)}),$(document).on("click","[data-action=list-clear-all]",function(){CHV.fn.list_editor.clearSelection()}),$(document).on("click","[data-action=share]",function(e){var t,a,o,i,n,s;t=$(".viewer:visible").exists()?$(PF.obj.listing.selectors.list_item+"[data-id="+$(".viewer").attr("data-id")+"]",".content-listing").first():$(this).closest(PF.obj.listing.selectors.list_item).first();var r="#modal-share";if(t.exists()){if(s=CHV.fn.modal.getTemplateWithPreview(r,t),void 0===t.attr("data-type"))return void console.log("Error: data-type not defined");n=t.find(".list-item-desc-title-link").first(),o=t.find(".image-container img").first().attr("src"),a=t.attr("data-url-short")}else s=$(r).html(),dealing_with=CHV.obj.resource.type,a=window.location.href,o=$("#image-viewer-container").find("img").first().attr("src"),n=$(".header > h1 > a");i=PF.fn.htmlEncode(n.text());var l=t.data("privacy")||CHV.obj.resource.privacy,d="";switch(l){case"private_but_link":d=PF.fn._s("Note: This content is private but anyone with the link will be able to see this.");break;case"password":d=PF.fn._s("Note: This content is password protected. Remember to pass the content password to share.");break;case"private":d=PF.fn._s('Note: This content is private. Change privacy to "public" to share.')}s=s.replaceAll("__url__",a).replaceAll("__image__",o).replaceAll("__title__",i).replaceAll("__privacy__",l).replaceAll("__privacy_notes__",d),PF.fn.modal.call({type:"html",buttons:!1,template:s})}),$(document).on("click","[data-action=list-tools] [data-action]",function(e){if(e.isPropagationStopped())return!1;var t;t=$(".viewer:visible").exists()?$(PF.obj.listing.selectors.list_item+"[data-id="+$(".viewer").attr("data-id")+"]",".content-listing").first():$(this).closest(PF.obj.listing.selectors.list_item).first();var a=t.attr("data-id");if(void 0!==t.attr("data-type")){o=t.attr("data-type");var o,i=$("[data-type="+o+"][data-id="+a+"]");switch($(this).data("action")){case"select":CHV.fn.list_editor.toggleSelectItem(t,!t.hasClass("selected"));break;case"edit":var n="[data-modal=form-edit-single]";switch(o){case"image":$("[name=form-image-title]",n).attr({value:t.attr("data-title"),autocomplete:"off"}),$("[name=form-image-description]",n).html(PF.fn.htmlEncode(t.data("description"))),$("[name=form-album-id]",n).find("option").removeAttr("selected"),$("[name=form-album-id]",n).find("[value="+t.data("image"==o?"album-id":"id")+"]").attr("selected",!0),$("[name=form-category-id]",n).find("option").removeAttr("selected"),$("[name=form-category-id]",n).find("[value="+t.data("category-id")+"]").attr("selected",!0),$("[name=form-nsfw]",n).attr("checked","unsafe"==t.data("flag")),$("[name=form-album-name]",n).attr({value:"",autocomplete:"off"}),$("[name=form-album-description]",n).html(""),$("[name=form-privacy]",n).find("option").removeAttr("selected");break;case"album":$("[data-action=album-switch]",n).remove(),$("[name=form-album-name]",n).attr({value:t.data("name"),autocomplete:"off"}),$("[name=form-album-description]",n).html(PF.fn.htmlEncode(t.data("description"))),$("[name=form-privacy]",n).find("option").removeAttr("selected"),$("[name=form-privacy]",n).find("[value="+t.data("privacy")+"]").attr("selected",!0),"password"==t.data("privacy")?($("[data-combo-value=password]").show(),$("[name=form-album-password]",n).attr("value",t.data("password"))):($("[data-combo-value=password]").hide(),$("[name=form-album-password]",n).attr("value",""))}PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview(n,t),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.updateItem("[data-type="+o+"][data-id="+a+"]",e.responseJSON[o],"edit")}}},confirm:function(){var e=$(PF.obj.modal.selectors.root);if(("image"==o||"album"==o)&&$("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val())return PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1;if(PF.fn.form_modal_has_changed()){switch(PF.obj.modal.form_data={action:"edit",edit:t.data("type"),single:!0,owner:CHV.obj.resource.user.id,editing:{id:a,description:$("[name=form-"+o+"-description]",e).val()}},o){case"image":PF.obj.modal.form_data.editing.title=$("[name=form-image-title]",e).val(),PF.obj.modal.form_data.editing.category_id=$("[name=form-category-id]",e).val()||null,PF.obj.modal.form_data.editing.nsfw=$("[name=form-nsfw]",e).prop("checked")?1:0;break;case"album":PF.obj.modal.form_data.editing.name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.privacy&&(PF.obj.modal.form_data.editing.password=$("[name=form-album-password]",e).val())}return PF.obj.modal.form_data.editing.new_album=$("[data-content=form-new-album]",e).is(":visible"),PF.obj.modal.form_data.editing.new_album?(PF.obj.modal.form_data.editing.album_name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.album_privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.album_privacy&&(PF.obj.modal.form_data.editing.album_password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.editing.album_description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.editing.album_id=$("[name=form-album-id]",e).val(),!0}PF.fn.modal.close()}});break;case"create-album":case"move":var s="move"==$(this).data("action")?"form-move-single":"form-create-album";n="[data-modal="+s+"]";$("[name=form-album-id]",n).find("option").removeAttr("selected"),$("[name=form-album-id]",n).find("[value="+t.data("image"==o?"album-id":"id")+"]").attr("selected",!0),$("[name=form-album-name]",n).attr({value:"",autocomplete:"off"}),$("[name=form-album-description]",n).html(""),$("[name=form-privacy]",n).find("option").removeAttr("selected"),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview(n,i),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.updateMoveItemLists(e.responseJSON,o,i)}}},load:function(){},confirm:function(){var e=$(PF.obj.modal.selectors.root);return $("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val()?(PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1):PF.fn.form_modal_has_changed()?(PF.obj.modal.form_data={action:"edit",edit:t.data("type"),single:!0,owner:CHV.obj.resource.user.id,editing:{id:a}},PF.obj.modal.form_data.editing.new_album=$("[data-content=form-new-album]",e).is(":visible"),PF.obj.modal.form_data.editing.new_album?(PF.obj.modal.form_data.editing.album_name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.album_privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.album_privacy&&(PF.obj.modal.form_data.editing.album_password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.editing.album_description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.editing.album_id=$("[name=form-album-id]",e).val(),!0):void PF.fn.modal.close()}});break;case"approve":PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview("[data-modal=form-approve-single]",t),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.removeFromList(t,PF.fn._s("The content has been approved."))}}},confirm:function(){return PF.obj.modal.form_data={action:"approve",single:!0,approve:t.data("type"),approving:{id:a}},!0}});break;case"delete":PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview("[data-modal=form-delete-single]",t),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){"album"==o&&($("[name=form-album-id]","[data-modal]").find("[value="+a+"]").remove(),CHV.fn.list_editor.updateUserCounters("image",e.responseJSON.success.affected,"-")),CHV.fn.list_editor.deleteFromList(t),CHV.fn.listingViewer.close()}}},confirm:function(){return PF.obj.modal.form_data={action:"delete",single:!0,delete:t.data("type"),deleting:{id:a}},!0}});break;case"flag":$.ajax({type:"POST",data:{action:"edit",edit:"image",single:!0,editing:{id:a,nsfw:"unsafe"==t.data("flag")?0:1}}}).complete(function(e){var t=e.responseJSON;if(200==t.status_code){var a=1==t.image.nsfw?"unsafe":"safe";i.attr("data-flag",a).data("flag",a)}else PF.fn.growl.call(t.error.message);CHV.fn.list_editor.selectionCount()})}}else console.log("Error: data-type not defined")}),$(".pop-box-menu a","[data-content=list-selection]").click(function(e){var t=$(PF.obj.listing.selectors.content_listing_visible);if(void 0!==t.data("list")){dealing_with=t.data("list");var a=$(PF.obj.listing.selectors.list_item+".selected",t),o=$.map(a,function(e,t){return $(e).data("id")});switch(PF.fn.close_pops(),"list-select-all"!==$(this).data("action")&&e.stopPropagation(),$(this).data("action")){case"get-embed-codes":var i="[data-modal=form-embed-codes]",n=[];$("textarea",i).html(""),a.each(function(){var e={image:JSON.parse(decodeURIComponent($(this).data("object")))};"url"in e.image&&n.push(e)}),CHV.fn.fillEmbedCodes(n,i,"html"),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreviews(i,a),buttons:!1});break;case"clear":CHV.fn.list_editor.clearSelection();break;case"list-select-all":CHV.fn.list_editor.selectAll(e);break;case"move":case"create-album":i="move"==$(this).data("action")?"form-move-multiple":"form-create-album";var s="[data-modal="+i+"]",r=/image/.test(dealing_with)?"album-id":"id";$("[name=form-album-id]",s).find("[value=null]").remove(),$("[name=form-album-id]",s).find("option").removeAttr("selected"),$("[name=form-album-name]",s).attr({value:"",autocomplete:"off"}),$("[name=form-album-description]",s).html(""),$("[name=form-privacy]",s).find("option").removeAttr("selected");var l=a.first().data(r),d=!0;a.each(function(){if($(this).data(r)!==l)return d=!1,!1}),d||$("[name=form-album-id]",s).prepend('<option value="null">'+PF.fn._s("Select existing album")+"</option>"),$("[name=form-album-id]",s).find("[value="+(d?a.first().data(r):"null")+"]").attr("selected",!0),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreviews(s,a),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.updateMoveItemLists(e.responseJSON,dealing_with,a)}}},load:function(){},confirm:function(){var e=$(PF.obj.modal.selectors.root),t=!1;if($("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val())return PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1;if($("[data-content=form-new-album]",e).is(":visible")&&(t=!0),PF.fn.form_modal_has_changed()){return PF.obj.modal.form_data={action:t?"create-album":"move",type:dealing_with,owner:CHV.obj.resource.user.id,multiple:!0,album:{ids:o,new:t}},t?(PF.obj.modal.form_data.album.name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.album.privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.album.privacy&&(PF.obj.modal.form_data.album.password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.album.description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.album.id=$("[name=form-album-id]",e).val(),!0}PF.fn.modal.close()}});break;case"approve":PF.fn.modal.call({template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-approve-multiple]",a),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.removeFromList(a,PF.fn._s("The content has been approved."))}}},confirm:function(){return PF.obj.modal.form_data={action:"approve",from:"list",approve:dealing_with,multiple:!0,approving:{ids:o}},!0}});break;case"delete":PF.fn.modal.call({template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-delete-multiple]",a),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){"albums"==dealing_with&&(a.each(function(){$("[name=form-album-id]","[data-modal]").find("[value="+$(this).data("id")+"]").remove()}),CHV.fn.list_editor.updateUserCounters("image",e.responseJSON.success.affected,"-")),CHV.fn.list_editor.deleteFromList(a)}}},confirm:function(){return PF.obj.modal.form_data={action:"delete",from:"list",delete:dealing_with,multiple:!0,deleting:{ids:o}},!0}});break;case"assign-category":var c=a.first().data("category-id"),u=!0;a.each(function(){if($(this).data("category-id")!==c)return u=!1,!1}),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-assign-category]",a),forced:!0,ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){a.each(function(){var t=e.responseJSON;$(this).data("category-id",t.category_id)}),CHV.fn.list_editor.clearSelection()}}},confirm:function(){var e=$(PF.obj.modal.selectors.root),t=$("[name=form-category-id]",e).val()||null;return u&&c==t?(PF.fn.modal.close(function(){CHV.fn.list_editor.clearSelection()}),!1):(PF.obj.modal.form_data={action:"edit-category",from:"list",multiple:!0,editing:{ids:o,category_id:t}},!0)}});break;case"flag-safe":case"flag-unsafe":var m=$(this).data("action"),f="flag-safe"==m?"safe":"unsafe";PF.fn.modal.call({template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-"+m+"]",a),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){a.each(function(){$(this).removeClass("safe unsafe").addClass(f).removeAttr("data-flag").attr("data-flag",f).data("flag",f)}),CHV.fn.list_editor.clearSelection()}}},confirm:function(){return PF.obj.modal.form_data={action:m,from:"list",multiple:!0,editing:{ids:o,nsfw:"flag-safe"==m?0:1}},!0}})}return!PF.fn.isDevice(["phone","phablet"])&&void 0}console.log("Error: data-list not defined")}),$(document).on("click","[data-action=disconnect]",function(){var e=$(this),t=e.data("connection");PF.fn.modal.confirm({message:e.data("confirm-message"),ajax:{data:{action:"disconnect",disconnect:t,user_id:CHV.obj.resource.user.id},deferred:{success:function(e){var a=e.responseJSON;$("[data-connection="+t+"]").fadeOut(function(){$($("[data-connect="+t+"]")).fadeIn(),$(this).remove(),0==$("[data-connection]").length&&$("[data-content=empty-message]").show(),PF.fn.growl.expirable(a.success.message)}),""!==a.success.redirect&&(window.location.href=a.success.redirect)},error:function(e){var t=e.responseJSON;PF.fn.growl.call(t.error.message)}}}})}),$(document).on("click","[data-action=delete-avatar]",function(){var e=$(".user-settings-avatar"),t=$(".loading-placeholder",e),a=$("#top-bar");t.removeClass("hidden"),PF.fn.loading.inline(t,{center:!0}),$.ajax({type:"POST",data:{action:"delete",delete:"avatar",owner:CHV.obj.resource.user.id}}).complete(function(o){t.addClass("hidden").empty(),200==o.status?(CHV.obj.logged_user.id==CHV.obj.resource.user.id&&($("img.user-image",a).hide(),$(".default-user-image",a).removeClass("hidden")),$(".default-user-image",e).removeClass("hidden").css({opacity:0}),$('[data-action="delete-avatar"]',e).parent().addClass("soft-hidden"),$("img.user-image",e).fadeOut(function(){$(".default-user-image",e).animate({opacity:1})})):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}),$(document).on("change","[data-content=user-avatar-upload-input]",function(e){e.preventDefault(),e.stopPropagation();var t=$(this),a=$(".user-settings-avatar"),o=$(".loading-placeholder",".user-settings-avatar"),i=$("#top-bar"),n=$(this)[0].files[0];if(!t.data("uploading"))if(0!=/^image\/.*$/.test(n.type))if(n.size>CHV.obj.config.user.avatar_max_filesize.getBytes())PF.fn.growl.call(PF.fn._s("Please select a picture of at most %s size.",CHV.obj.config.user.avatar_max_filesize));else{var s=$('[data-action="delete-avatar"]');o.removeClass("hidden"),PF.fn.loading.inline(o,{center:!0}),t.data("uploading",!0);var r=new FormData;r.append("source",n),r.append("action","upload"),r.append("type","file"),r.append("what","avatar"),r.append("owner",CHV.obj.resource.user.id),r.append("auth_token",PF.obj.config.auth_token),avatarXHR=new XMLHttpRequest,avatarXHR.open("POST",PF.obj.config.json_api,!0),avatarXHR.send(r),avatarXHR.onreadystatechange=function(){if(4==this.readyState){var e="json"!==this.responseType?JSON.parse(this.response):this.response,n=e.success.image;o.addClass("hidden").empty(),200==this.status?(change_avatar=function(e){s.parent().removeClass("soft-hidden"),$("img.user-image",e).attr("src",n.url).removeClass("hidden").show()},hide_default=function(e){$(".default-user-image",e).addClass("hidden")},hide_default(a), +$(".btn-alt",a).closest("div").show(),change_avatar(a),CHV.obj.logged_user.id==CHV.obj.resource.user.id&&(change_avatar(i),hide_default(i)),PF.fn.growl.expirable(PF.fn._s("Profile image updated."))):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later.")),t.data("uploading",!1)}}}else PF.fn.growl.call(PF.fn._s("Please select a valid image file type."))}),$(document).on("change","[data-content=user-background-upload-input]",function(e){e.preventDefault(),e.stopPropagation();var t=$(this),a=$("[data-content=user-background-cover]"),o=$("[data-content=user-background-cover-src]"),i=$(".loading-placeholder",a),n=($("#top-bar"),$(this)[0].files[0]);if(!t.data("uploading"))if(0!=/^image\/.*$/.test(n.type))if(n.size>CHV.obj.config.user.background_max_filesize.getBytes())PF.fn.growl.call(PF.fn._s("Please select a picture of at most %s size.",CHV.obj.config.user.background_max_filesize));else{i.removeClass("hidden"),PF.fn.loading.inline(i,{center:!0,size:"big",color:"#FFF"}),t.data("uploading",!0);var s=new FormData;s.append("source",n),s.append("action","upload"),s.append("type","file"),s.append("what","background"),s.append("owner",CHV.obj.resource.user.id),s.append("auth_token",PF.obj.config.auth_token),avatarXHR=new XMLHttpRequest,avatarXHR.open("POST",PF.obj.config.json_api,!0),avatarXHR.send(s),avatarXHR.onreadystatechange=function(){if(4==this.readyState){var e="json"!==this.responseType?JSON.parse(this.response):this.response,n=e.success.image;if(200==this.status){var s=$("<img/>");s.attr("src",n.url).imagesLoaded(function(){i.addClass("hidden").empty(),o.css("background-image","url("+n.url+")").hide().fadeIn(),$("[data-content=user-change-background]",a).removeClass("hidden"),$(a).removeClass("no-background"),$(".top-user").removeClass("no-background"),$("[data-content=user-upload-background]").hide(),$("[data-content=user-change-background]").show(),PF.fn.growl.expirable(PF.fn._s("Profile background image updated.")),s.remove()})}else i.addClass("hidden").empty(),PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."));t.data("uploading",!1)}}}else PF.fn.growl.call(PF.fn._s("Please select a valid image file type."))}),CHV.fn.user_background={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"background",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){$("[data-content=user-background-cover-src]").css("background-image","none"),$("[data-content=user-background-cover], .top-user").addClass("no-background"),$("[data-content=user-background-cover]").height(""),$("[data-content=user-upload-background]").removeClass("hidden").show(),$("[data-content=user-change-background]").hide()},done:function(e){PF.fn.modal.close(function(){PF.fn.growl.expirable(PF.fn._s("Profile background image deleted."))})}},error:function(e){PF.fn.growl.expirable(PF.fn._s("Error deleting profile background image."))}}}},CHV.fn.user_api={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"api_key",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){},done:function(e){PF.fn.modal.close(function(){location.reload()})}},error:function(e){PF.fn.growl.expirable(e.responseJSON.error.message)}}}},CHV.fn.user_two_factor={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"two_factor",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){},done:function(e){PF.fn.modal.close(function(){location.reload()})}},error:function(e){PF.fn.growl.expirable(e.responseJSON.error.message)}}}},CHV.str.mainform="[data-content=main-form]",CHV.obj.timezone={selector:"[data-content=timezone]",input:"#timezone-region"},$(document).on("keyup change",CHV.str.mainform+" :input",function(){$(this).is("[name=username]")&&$("[data-text=username]").text($(this).val())}),$(document).on("change",CHV.obj.timezone.input,function(){var e=$(this).val(),t=$("#timezone-combo-"+e);t.find("option:first").prop("selected",!0),$(CHV.obj.timezone.selector).val(t.val()).change()}),$(document).on("change","[id^=timezone-combo-]",function(){var e=$(this).val();$(CHV.obj.timezone.selector).val(e).change()}),$(document).on("keyup change blur","[name^=new-password]",function(){var e=$("[name=new-password]"),t=$("[name=new-password-confirm]"),a=e.val()==t.val(),o=t.closest(".input-password").find(".input-warning");0==o.exists()&&(o=$("[data-message=new-password-confirm]")),$(this).is(t)&&t.data("touched",!0),t.data("touched")&&o.text(a?"":o.data("text"))[a?"addClass":"removeClass"]("hidden-visibility")}),$(document).on("submit",CHV.obj.mainform,function(){switch($(this).data("type")){case"password":var e=$("[name=new-password]",this),t=$("[name=new-password-confirm]",this);if((""!==e.val()||""!==t.val())&&e.val()!==t.val())return e.highlight(),t.highlight(),PF.fn.growl.expirable(PF.fn._s("Passwords don't match")),!1}}),$(document).on("click","[data-action=check-for-updates]",function(){PF.fn.loading.fullscreen(),CHV.fn.system.checkUpdates(function(e){if(PF.fn.loading.destroy("fullscreen"),200===e.status){var t=e.responseJSON.software;-1==PF.fn.versionCompare(CHV.obj.system_info.version,t.current_version)?PF.fn.modal.simple({title:'<i class="fas fa-arrow-alt-circle-up"></i> '+PF.fn._s("Update available v%s",t.current_version),message:"<p>"+PF.fn._s("There is an update available for this system.")+'</p><textarea class="r4 resize-vertical">'+t.release_notes+'</textarea><div class="btn-container margin-bottom-0"><a href="https://chv.to/v4update" target="_blank" class="btn btn-input accent"><span class="btn-icon fas fa-external-link-alt user-select-none"></span><span class="btn-text user-select-none">'+PF.fn._s("Update instructions")+"</span></a></div>",html:!0}):PF.fn.growl.call(PF.fn._s("This website is running latest %s version",CHEVERETO.edition))}else PF.fn.growl.call(PF.fn._s("An error occurred. Please try again later."))})}),void 0!==PF.fn.get_url_var("checkUpdates")&&$("[data-action=check-for-updates]").click(),$(document).on("click","[data-action=system-update]",function(e){if(!$("input#system-update").prop("checked"))return PF.fn.growl.call(PF.fn._s("Please review the system requirements before proceeding")),void e.preventDefault()}),$(document).on("click","[data-action=toggle-storage-https]",function(){CHV.fn.storage.toggleHttps($(this).closest("[data-content=storage]").data("storage-id"))}),$(document).on("click","[data-action=toggle-storage-active]",function(){CHV.fn.storage.toggleActive($(this).closest("[data-content=storage]").data("storage-id"))}),$(CHV.fn.uploader.selectors.root).exists()&&(CHV.fn.uploader.$pasteCatcher=$("<div />",{contenteditable:"true",id:CHV.fn.uploader.selectors.paste.replace(/#/,"")}),$("body").append(CHV.fn.uploader.$pasteCatcher),$(document).on("keydown",function(e){!e.ctrlKey&&!e.metaKey||"KeyV"!=e.originalEvent.code||$(e.target).is(":input")||(PF.fn.keyFeedback.spawn(e),CHV.fn.uploader.$pasteCatcher.focus(e))}),document.addEventListener("dragover",function(e){e.preventDefault()}),document.addEventListener("drop",function(e){if(CHV.obj.config.upload.url){e.preventDefault();var t,a=e.dataTransfer.getData("text/html"),o=/src="?([^"\s]+)"?\s*/;t=o.exec(a),t&&(CHV.fn.uploader.toggle({show:!0}),CHV.fn.uploader.add({},t[1]))}}),window.addEventListener("paste",CHV.fn.uploader.pasteImageHandler)),$(document).on("click","[data-action=like]",function(){if(PF.fn.is_user_logged()){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-liked]")?$(this):$(this).closest("[data-liked]"),a=!t.closest("[data-list], .viewer").exists()&&void 0!==CHV.obj.resource,o=t.is("[data-liked=1]"),i=o?"dislike":"like",n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").attr("data-id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").attr("data-type")},s=a?e:$("[data-type="+n.type+"][data-id="+n.id+"]"),r={type:"POST",data:{action:i},cache:!1};r.data[i]={object:n.type,id:n.id},$.ajax(r).complete(function(t){var i=t.responseJSON;e.data("XHR",!1),200===i.status_code?(a&&void 0!==i.content&&$("[data-text=likes-count]").html(i.content.likes),s.attr("data-liked",o?0:1)):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}else window.location.href=CHV.obj.vars.urls.login}),$(document).on("click","[data-action=album-cover]",function(){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-cover]")?$(this):$(this).closest("[data-cover]"),a=t.is("[data-cover=1]"),o=a?"album-cover-unset":"album-cover-set",i=(CHV.obj.resource.id,e.closest("[data-cover]")),n={type:"POST",data:{action:o},cache:!1};n.data[o]={album_id:i.data("album-id"),image_id:i.data("id")},$.ajax(n).complete(function(t){var o=t.responseJSON;e.data("XHR",!1),200===o.status_code?i.attr("data-cover",a?0:1):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}),$(document).on("click","[data-action=follow]",function(){if(PF.fn.is_user_logged()){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-followed]")?$(this):$(this).closest("[data-followed]"),a=void 0!==CHV.obj.resource,o=t.is("[data-followed=1]"),i=o?"unfollow":"follow",n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").data("id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").data("type")},s={type:"POST",data:{action:i},cache:!1};s.data[i]={object:n.type,id:n.id},$.ajax(s).complete(function(i){var n=i.responseJSON;if(e.data("XHR",!1),200===n.status_code){if(a&&void 0!==n.user_followed){var s=$("[data-text=followers-label]"),r={single:s.data("label-single"),plural:s.data("label-plural")};$("[data-text=followers-count]").html(n.user_followed.followers),s.html(PF.fn._n(r.single,r.plural,n.user_followed.followers))}t.attr("data-followed",o?0:1)}else PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}else PF.fn.modal.call({type:"login"})}),$(document).on("click","[data-action=user_ban],[data-action=user_unban]",function(){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).closest("[data-banned]"),a=!0,o=t.is("[data-banned=1]"),i=e.attr("data-action"),n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").data("id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").data("type")},s={type:"POST",data:{action:i},cache:!1};s.data[i]={user_id:n.id},$.ajax(s).complete(function(a){var i=a.responseJSON;e.data("XHR",!1),200===i.status_code?t.attr("data-banned",o?0:1):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}),$(document).on("click","[data-action=top-bar-notifications]",function(e){var a=this,o=$(this),i=$(".top-bar-notifications-container",o),n=$(".top-bar-notifications-list",o),s=$("ul",n),r=$(".loading",i);o.data("XHR")||(r.removeClass("hidden"),PF.fn.loading.inline(r,{size:"small",message:PF.fn._s("loading")}),$.ajax({type:"POST",data:{action:"notifications"},cache:!1}).complete(function(e){var l=e.responseJSON;if(200!==l.status_code)return PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later.")),o.data("XHR",!1),void r.addClass("hidden").html("");if(o.data("XHR",!0),r.remove(),l.html){n.removeClass("hidden"),s.html(l.html),t();var d=$("li.new",s);d.addClass("transition"),setTimeout(function(){d.removeClass("new"),$("[data-content=notifications-counter]",a).removeClass("on").html("0"),setTimeout(function(){d.removeClass("transition")},150)},1500)}else $(".empty",i).removeClass("hidden")}))}),$("#g-recaptcha").is(":empty")&&CHV.obj.config.captcha.enabled&&CHV.obj.config.captcha.sitekey&&("3"!=CHV.obj.config.captcha.version&&CHV.obj.config.captcha.isNeeded||$('label[for="recaptcha_response_field"]').remove()),$(document).on("click",PF.obj.listing.selectors.list_item+" a.image-container",function(e){var t=$(this).closest(PF.obj.listing.selectors.list_item),o=t.find("[data-action=load-image]");o.length>0&&(a(o),e.preventDefault())}),$(document).on("click",PF.obj.listing.selectors.list_item+" [data-action=load-image]",function(e){a($(this)),e.preventDefault(),e.stopPropagation()}),$(document).on("click","#album [data-tab=tab-embeds]",function(e){e.preventDefault,CHV.fn.album.showEmbedCodes()}),$("body").is("#upload")&&CHV.fn.uploader.toggle({show:!0}),$(document).on("keyup",function(e){if(!($(e.target).is(":input")||e.ctrlKey||e.metaKey||e.altKey)){var t=$("#fullscreen-modal:visible").exists(),a=$(".viewer"),o=$(".list-selection:visible"),i=o.find("[data-content=pop-selection]:visible:not(.disabled)"),n=$("body").hasClass("--viewer-shown"),s=$(CHV.fn.uploader.selectors.root+CHV.fn.uploader.selectors.show).exists(),r=e.originalEvent.code;if("Escape"===e.originalEvent.code){if(t)return;s&&CHV.fn.uploader.toggle({reset:!1})}if(a.exists()&&n){if(r in CHV.fn.listingViewer.keys){var l=["KeyW","Escape","ArrowLeft","ArrowRight"],d=CHV.fn.listingViewer.keys[r];-1==l.indexOf(r)?$("[data-action="+d+"]",CHV.fn.listingViewer.selectors.root).click():d in CHV.fn.listingViewer&&CHV.fn.listingViewer[d](),PF.fn.keyFeedback.spawn(e)}}else{var c,u={Period:"list-select-all",KeyK:"get-embed-codes",KeyZ:"clear",KeyA:"create-album",KeyM:"move",KeyO:"approve",Delete:"delete",KeyC:"assign-category",KeyV:"flag-safe",KeyF:"flag-unsafe",KeyH:"album-cover"},m={KeyE:"edit",KeyL:"like",KeyS:"share",KeyJ:"sub-album",KeyP:"upload-to-album"};d=u[r]||m[r];void 0!==d&&(o.exists()&&(n||t||parseInt($("[data-text=selection-count]:visible",i).text())>0&&(c=$("[data-action="+d+"]",o.closest(".list-selection")))),void 0===c&&(c=$("[data-action="+d+"]:visible").not("#content-listing-tabs *")),c instanceof jQuery&&c.length>0&&(c.first().trigger("click"),PF.fn.keyFeedback.spawn(e)))}}}),$(document).on("click",CHV.fn.listingViewer.selectors.root+" [data-action^=viewer-]",function(){var e=$(this).data("action").substring("viewer-".length);e in CHV.fn.listingViewer&&CHV.fn.listingViewer[e]()}),$(document).on("click","a[data-href]:not([rel=popup-link]):not(.popup-link)",function(){var e=$(this).attr("data-href"),t=$(this).attr("href");(e||t)&&(location.href=t||e)});var v,b=PF.obj.listing.selectors.list_item+", .image-container";($(document).on("contextmenu click",b,function(e){$(".list-selection:visible").exists()&&!$(this).closest(CHV.fn.listingViewer.selectors.root).exists()&&("click"!=e.type||e.ctrlKey||e.metaKey)&&o(this,e)}),navigator.userAgent.match(/(iPad|iPhone|iPod)/i))&&$(document).on("mouseup mousemove",b,function(e){return clearTimeout(v),!1}).on("mousedown",b,function(e){var t=this,a=e;return v=window.setTimeout(function(){$(".list-selection:visible").exists()&&!$(t).closest(CHV.fn.listingViewer.selectors.root).exists()&&o(t,a)},500),!1});void 0!==CHV.obj.config&&CHV.obj.config.listing.viewer&&$(document).on("click",PF.obj.listing.selectors.list_item+"[data-type=image] .image-container",function(e){if(e.preventDefault(),e.stopPropagation(),0!==e.clientX||0!==e.clientY){var t=$(this).closest(PF.obj.listing.selectors.list_item);t.exists()&&(e.ctrlKey||e.metaKey||CHV.fn.listingViewer.open(t))}else PF.fn.keyFeedback.spawn(e)}),$(document).on("contextmenu",CHV.fn.listingViewer.selectors.root,function(e){return e.preventDefault(),CHV.fn.listingViewer.zoom(),PF.fn.keyFeedback.spawn(e),!1});var _,w=PF.fn.deparam(window.location.search);if(w&&"viewer"in w){var C=$(PF.obj.listing.selectors.content_listing_visible);if("images"==C.data("list")){var P=$(PF.obj.listing.selectors.list_item,C)["next"==w.viewer?"first":"last"]();CHV.fn.listingViewer.open(P)}}$(window).on("DOMContentLoaded load resize scroll",function(){clearTimeout(_),_=setTimeout(function(){$(PF.obj.listing.selectors.list_item+":visible").each(function(){var e=$(this).find('[data-action="load-image"]').first(),t=PF.fn.deparam($(PF.obj.listing.selectors.list_item+"[data-id="+$(this).attr("data-id")+"]").closest(".content-listing").data("params-hidden")),o=t&&"is_animated"in t?t.is_animated:$(this).data("size")<=CHV.obj.config.image.load_max_filesize.getBytes();e.exists()&&o&&$(this).is_within_viewport(50)&&a(e)})},1e3)}),$(document).on("click","[data-action=logout]",function(){let e=$("form#form-logout");e.submit()}),Boolean(window.navigator.vibrate)&&$(document).on("click","button, .btn, .pop-btn, .top-btn-el, [data-action], .content-tabs a, .top-bar-logo a, .login-provider-button, .panel-share-networks li a, #image-viewer-loader",function(e){$(this).is("[data-action=top-bar-menu-full]")||(window.navigator.vibrate(0),window.navigator.vibrate(15))})}),"undefined"==typeof CHV&&(CHV={obj:{},fn:{},str:{}}),window.opener&&(CHV.obj.opener={uploadPlugin:{}}),CHV.fn.album={showEmbedCodes:function(){var e=$(".content-listing-loading","#tab-embeds");if(e.exists()){var t=$("#embed-codes");$.ajax({url:PF.obj.config.json_api,type:"POST",dataType:"json",data:{action:"get-album-contents",albumid:CHV.obj.resource.id,auth_token:PF.obj.config.auth_token},cache:!1}).always(function(a){PF.fn.loading.destroy(e),200==a.status_code&&(CHV.fn.fillEmbedCodes(a.contents,"#tab-embeds"),$("#tab-embeds").addClass("visible"),t.removeClass("soft-hidden"))})}}},CHV.fn.modal={getTemplateWithPreview:function(e,t){var a=$(e).html(),o=$("<div/>"),i="",n=t.find(".image-container img").attr("src");return void 0!==n&&(i+='<a href="'+t.attr("data-url-short")+'" target="_blank"><img class="canvas checkered-background" src='+n+" /></a>"),o.html(a).find(".image-preview").html(i),o.html()},getTemplateWithPreviews:function(e,t,a=50){var o=$(e).html(),i=$("<div/>"),n="",s=0;return t.each(function(){if(s>=a)return!1;n+='<a class="image-preview-container checkered-background" href="'+$(this).attr("data-url-short")+'" target="_blank">';var e=$(this).find(".image-container img");e.exists()?n+='<canvas width="160" height="160" class="thumb" style="background-image: url('+e.attr("src")+');" />':(n+='<canvas width="160" height="160" class="thumb" />',n+='<span class="empty icon fas fa-inbox"></span>'),n+="</a>",s++}),i.html(o).find(".image-preview").html(n),i.html()}},CHV.fn.listingViewer={selectors:{bodyShown:".--viewer-shown",content:".viewer-content",template:"#viewer-template",root:".viewer",rootShow:".viewer--show",rootHide:".viewer--hide",rootZero:".viewer--zero",rootNavPrev:".viewer--nav-prev",rootNavNext:".viewer--nav-next",src:".viewer-src",tools:".viewer-tools",loader:".viewer-loader",owner:".viewer-owner",ownerGuest:".viewer-owner--guest",ownerUser:".viewer-owner--user",inputMap:".viewer-kb-input"},keys:{Period:"select",KeyL:"like",KeyF:"flag",KeyE:"edit",KeyM:"move",KeyO:"approve",Delete:"delete",Escape:"close",ArrowLeft:"prev",ArrowRight:"next",KeyW:"zoom"},keymap:{select:[".",PF.fn._s("Toggle select")],like:["L",PF.fn._s("Like")],flag:["F",PF.fn._s("Toggle flag")],edit:["E",PF.fn._s("Edit")],move:["M",PF.fn._s("Album")],approve:["O",PF.fn._s("Approve")],delete:["Del",PF.fn._s("Delete")],close:["Esc",PF.fn._s("Close")],prev:["◄",PF.fn._s("Previous")],next:["►",PF.fn._s("Next")],zoom:["W",PF.fn._s("Zoom")]},loading:null,idleTimer:0,$item:null,show:function(){var e=PF.fn.deparam(this.$item.closest(PF.obj.listing.selectors.content_listing_visible).data("params-hidden")),t=e&&"is_animated"in e?e.is_animated:0;this.getEl("root").removeClass(this.selectors.rootHide.substring(1)).addClass(this.selectors.rootShow.substring(1)).attr("data-cover",t),$("body").addClass(this.selectors.bodyShown.substring(1));var a=new Hammer($(CHV.fn.listingViewer.selectors.root).get(0),{direction:Hammer.DIRECTION_VERTICAL});a.on("swipeleft swiperight",function(e){var t="left"==e.type.substring("swipe".length)?"next":"prev";CHV.fn.listingViewer[t]()}),this.getEl("root")[(PF.fn.isDevice(["phone","phablet"])?"add":"remove")+"Class"]("--over")},getItem:function(){return this.$item},getEl:function(e){var t=!e.startsWith("template")&&!e.startsWith("root")&&this.selectors.root;return t?$(this.selectors[e],t):$(this.selectors[e])},getObject:function(e){if(e||void 0===this.object){var t=decodeURIComponent(this.getItem().attr("data-object"));this.object=JSON&&JSON.parse(t)||$.parseJSON(t)}return this.object},placeholderSizing:function(){if(this.getEl("root").exists()){var e=Math.max(document.documentElement.clientWidth,window.innerWidth||0),t=Math.max(document.documentElement.clientHeight,window.innerHeight||0),a=e/t,o=this.getEl("src")[0],i=o.getAttribute("width"),n=o.getAttribute("height"),s=i/n,r=a<s;o.classList.remove("--width-auto","--height-auto"),o.classList.add("--"+(r?"height":"width")+"-auto")}},filler:function(e){var t=this,a=this.getEl("root");if(e){var o=$(this.getParsedTemplate());a.html(o.html())}a[(this.getItem().hasClass("selected")?"add":"remove")+"Class"]("selected");var i=["prev","next"];$.each(i,function(e,o){var i=t.selectors["rootNav"+(o.charAt(0).toUpperCase()+o.slice(1).toLowerCase())],n=$(PF.obj.listing.selectors.content_listing_pagination+":visible").length>0?"add":t.getItem()[o]().exists()?"add":"remove";a[n+"Class"](i.substring(1))}),$.each(this.getItem().get(0).attributes,function(e,t){if(!t.name.startsWith("data-"))return!0;a.attr(t.name,t.value)});var n=void 0===this.object.user?"user":"guest";n="owner"+(n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()),this.getEl(n).remove(),void 0!==this.object.user&&$(this.object.user.avatar?".default-user-image":"img.user-image",this.getEl("ownerUser")).remove();var s=this.getItem().find(".list-item-image-tools[data-action='list-tools']");this.getEl("tools").append(s.html());var r=!1;$.each(s.find("[data-action]"),function(e,a){var o=$(this).attr("data-action"),i=t.keymap[o];if(void 0===i||"flag"===o&&r)return!1;$('<div class="viewer-kb-key" data-key="'+i[0]+'"><kbd>'+i[0]+"</kbd><span>"+PF.fn._s(i[1])+"</span></div>").appendTo(t.getEl("inputMap")),"flag"===o&&(r=!0)}),this.placeholderSizing(),this.trickyLoad()},zoom:function(){this.getEl("root").attr("data-cover","1"==this.getEl("root").attr("data-cover")?"0":"1")},remove:function(){this.getEl("root").remove()},getParsedTemplate:function(){var e=this.getObject(!0),t=this.getEl("template").html(),a=t.match(/%(\S+)%/g);return a&&$.each(a,function(a,o){var i,n=o.slice(1,-1).split(".");n.map(function(t){var a=i||e;t in a&&(i=a[t])});var s=new RegExp(o,"g");t=t.replace(s,i)}),t},insertEl:function(){var e=this.getParsedTemplate();this.getEl("rootZero").remove(),$(e).appendTo("body")},toggleIdle:function(e,t){var a=this;t=void 0===t||t;$("html")[(e?"add":"remove")+"Class"]("--idle"),e||(clearTimeout(a.idleTimer),t&&(a.idleTimer=setTimeout(function(){var e=$(".fullscreen"),t=a.getEl("root");a.toggleIdle(t.length>0&&0==e.length)},5e3)))},open:function(e){if(e.exists()){this.setItem(e),this.insertEl(),this.filler(),this.show(),this.toggleIdle(!1);var t=this;this.getEl("root").on("mousemove mouseout",function(){t.toggleIdle(!1)})}else this.getEl("rootZero").remove()},setItem:function(e){this.$item=e},trickyLoad:function(){if(this.object.image.url!=this.object.display_url){var e=this.getEl("src").parent().html(),t=$(e).attr("src",this.object.image.url);t.insertBefore(this.getEl("src")),t.imagesLoaded(function(){t.next().remove()})}},close:function(){var e=this;$(this.selectors.root).removeClass(this.selectors.rootShow.substring(1)).addClass(this.selectors.rootHide.substring(1)),$("body").removeClass(this.selectors.bodyShown.substring(1)),this.toggleIdle(!1,!1),null!==this.getItem()&&$(window).scrollTop(this.getItem().offset().top);var t=$("#top-bar, .follow-scroll");t.attr("data-scroll-lock","1"),setTimeout(function(){e.remove()},250),setTimeout(function(){t.removeAttr("data-scroll-lock")},300)},browse:function(e){var t=this.getItem()[e]();if(t.exists()){this.setItem(t),this.filler(!0);var a=$(PF.obj.listing.selectors.content_listing_visible).find("[data-action=load-more]"),o=t[e+"All"]().length;a.length>0&&o<=5&&!PF.obj.listing.calling&&"next"==e&&$("[data-action=load-more]").click()}else{var i=$("[data-pagination="+e+"]",PF.obj.listing.selectors.content_listing_pagination+":visible"),n=i.attr("href");if(!n)return;PF.fn.deparam(window.location.search);window.location.href=n+"&viewer="+e}},prev:function(){this.browse("prev")},next:function(){this.browse("next")}},CHV.obj.image_viewer={selector:"#image-viewer",container:"#image-viewer-container",navigation:".image-viewer-navigation",loading:"#image-viewer-loading",loader:"#image-viewer-loader"},CHV.obj.image_viewer.$container=$(CHV.obj.image_viewer.container),CHV.obj.image_viewer.$navigation=$(CHV.obj.image_viewer.navigation),CHV.obj.image_viewer.$loading=$(CHV.obj.image_viewer.loading),CHV.fn.system={checkUpdates:function(e){$.ajax({url:CHEVERETO.api.get.info+"/",data:{id:CHEVERETO.id},cache:!1}).always(function(t,a,o){"function"==typeof e&&e(o)})}},("MacIntel"===navigator.platform&&navigator.maxTouchPoints>0||"iPad"===navigator.platform)&&$("html").removeClass("device-nonmobile"),CHV.fn.bindSelectableItems=function(){var e="content-listing-wrapper",t="#"+e;$(t).exists()?$(t).hasClass("ui-selectable")&&$(t).selectable("destroy"):$("#content-listing-tabs").wrap("<div id='"+e+"' />"),$("[data-content=list-selection]").exists()&&$("html.device-nonmobile "+t).selectable({delay:150,filter:PF.obj.listing.selectors.list_item,cancel:".content-empty, .header, #tab-share, #tab-info, .viewer-title, .header-link, .top-bar, .content-listing-pagination *, #fullscreen-modal, #top-user, #background-cover, .list-item-desc, .list-item-image-tools, [data-action=load-image], #tab-embeds",classes:{"ui-selected":"selected"},selected:function(e,t){$(t.selected).removeClass("ui-selected")},selecting:function(e,t){var a=$(t.selecting),o=a.hasClass("selected");CHV.fn.list_editor[(o?"unselect":"select")+"Item"](a)},unselecting:function(e,t){CHV.fn.list_editor.unselectItem($(t.unselecting))}})},CHV.fn.isCachedImage=function(e){var t=new Image;return t.src=e,t.complete||t.width+t.height>0},CHV.fn.viewerLoadImage=function(){if(CHV.obj.image_viewer.$loading.exists()&&(CHV.obj.image_viewer.$loading.removeClass("soft-hidden").css({zIndex:2}),PF.fn.loading.inline(CHV.obj.image_viewer.$loading,{color:"white",size:"small",center:!0,valign:!0}),CHV.obj.image_viewer.$loading.hide().fadeIn("slow")),$(CHV.obj.image_viewer.loader).remove(),CHV.obj.image_viewer.image.is_360)return PF.fn.loading.destroy(CHV.obj.image_viewer.$loading),pannellum.viewer("image-viewer-360",{autoLoad:!0,type:"equirectangular",panorama:CHV.obj.image_viewer.image.url,preview:CHV.obj.image_viewer.$container.find("img").eq(0).attr("src"),pitch:2.3,yaw:-135.4,hfov:120}),$("#image-viewer-360").removeClass("soft-hidden"),void CHV.obj.image_viewer.$container.find("img").eq(0).remove();CHV.obj.image_viewer.image.html=CHV.obj.image_viewer.$container.html(),CHV.obj.image_viewer.$container.prepend($(CHV.obj.image_viewer.image.html).css({top:0,zIndex:0,opacity:0,position:"absolute"})),CHV.obj.image_viewer.$container.find("img").eq(0).css("zIndex",1),CHV.obj.image_viewer.$container.find("img").eq(1).attr("src",CHV.obj.image_viewer.image.url),CHV.obj.image_viewer.$container.find("img").eq(1).imagesLoaded(function(){CHV.obj.image_viewer.$container.find("img").eq(1).css({position:"",display:""}),CHV.obj.image_viewer.$container.find("img").eq(0).remove(),PF.fn.loading.destroy(CHV.obj.image_viewer.$loading)})},CHV.obj.embed_share_tpl={},CHV.obj.embed_upload_tpl={},CHV.obj.topBar={transparencyScrollToggle:function(){var e=$(window).scrollTop();$("#top-bar")[(e>0?"remove":"add")+"Class"]("transparent")}},CHV.obj.uploaderReset={isUploading:!1,canAdd:!0,queueStatus:"ready",uploadThreads:0,uploadParsedIds:[],uploadProcessedIds:[],files:{},results:{success:{},error:{}},toggleWorking:0,filesAddId:0,clipboardImages:[]},CHV.fn.uploader={files:{},selectors:{root:"#anywhere-upload",show:".upload-box--show",queue:"#anywhere-upload-queue",queue_complete:".queue-complete",queue_item:".queue-item",close_cancel:"[data-button=close-cancel]",file:"#anywhere-upload-input",camera:"#anywhere-upload-input-camera",upload_item_template:"#anywhere-upload-item-template",item_progress_bar:"[data-content=progress-bar]",failed_result:"[data-content=failed-upload-result]",fullscreen_mask:"#fullscreen-uploader-mask",dropzone:"#uploader-dropzone",paste:"#anywhere-upload-paste",input:"[data-action=anywhere-upload-input]"},toggle:function(e,t){this.queueSize();var a=$("[data-action=top-bar-upload]",".top-bar"),o=!$(CHV.fn.uploader.selectors.root).data("shown");e=$.extend({callback:null,reset:!0},e);if(void 0!==e.show&&e.show&&(o=!0),PF.fn.growl.close(!0),PF.fn.close_pops(),!(1==this.toggleWorking||$(CHV.fn.uploader.selectors.root).is(":animated")||CHV.fn.uploader.isUploading||a.data("login-needed")&&!PF.fn.is_user_logged())){this.toggleWorking=1;var i={time:500,easing:null},n=function(){!o&&e.reset&&CHV.fn.uploader.reset(),PF.fn.topMenu.hide(),"function"==typeof e.callback&&e.callback(t),CHV.fn.uploader.boxSizer(),CHV.fn.uploader.toggleWorking=0};if($(CHV.fn.uploader.selectors.root)[(o?"add":"remove")+"Class"](this.selectors.show.substring(1)),o){if($("html").data({"followed-scroll":$("html").hasClass("followed-scroll"),"top-bar-box-shadow-prevent":!0}).removeClass("followed-scroll").addClass("overflow-hidden top-bar-box-shadow-none"),$("#top-bar").data({stock_classes:$("#top-bar").attr("class")}),$(".current[data-nav]",".top-bar").each(function(){$(this).is("[data-action=top-bar-menu-full]")||$(this).removeClass("current").attr("data-current",1)}),PF.fn.isDevice("mobile")){var s=$(".upload-box-heading",$(CHV.fn.uploader.selectors.root));s.css({position:"relative",top:.5*($(window).height()-s.height())+"px"})}CHV.fn.uploader.focus(function(){setTimeout(function(){n()},i.time)})}else{$("[data-nav][data-current=1]",".top-bar").each(function(){$(this).addClass("current")}),setTimeout(function(){$(CHV.fn.uploader.selectors.fullscreen_mask).css({opacity:0})},.1*i.time),setTimeout(function(){$(CHV.fn.uploader.selectors.fullscreen_mask).remove()},i.time);var r=$(CHV.fn.uploader.selectors.root).outerHeight(),l=r-parseInt($(CHV.fn.uploader.selectors.root).data("initial-height"))+"px";$(CHV.fn.uploader.selectors.root).css({transform:"translate(0,-"+l+")"}),setTimeout(function(){$(CHV.fn.uploader.selectors.root).css({top:""}),n(),$("html,body").removeClass("overflow-hidden").data({"top-bar-box-shadow-prevent":!1}),$("#top-bar *").trigger("blur")},i.time)}$(CHV.fn.uploader.selectors.root).data("shown",o),a.toggleClass("current").removeClass("opened")}},reset:function(){$.extend(this,$.extend(!0,{},CHV.obj.uploaderReset)),$("li",this.selectors.queue).remove(),$(this.selectors.root).height("").css({"overflow-y":"","overflow-x":""}),$(this.selectors.queue).addClass("queueEmpty").removeClass(this.selectors.queue_complete.substring(1)),$(this.selectors.input,this.selectors.root).each(function(){$(this).prop("value",null)}),$("[data-group=upload-result] textarea",this.selectors.root).prop("value",""),$.each(["upload-queue-ready","uploading","upload-result","upload-queue-ready","upload-queue"],function(e,t){$("[data-group="+t+"]").hide()}),$("[data-group=upload]",this.selectors.root).show(),$("[name=upload-album-id]",this.selectors.root).prop("value",function(){var e=$("option[selected]",this);if(e.exists())return e.attr("value")}),$(this.selectors.root).removeClass("queueCompleted queueReady queueHasResults").addClass("queueEmpty").attr("data-queue-size",0),$("[name=upload-category-id]",this.selectors.root).prop("value",""),$("[name=upload-nsfw]",this.selectors.root).prop("checked",this.defaultChecked),this.boxSizer(!0)},focus:function(e){$(this.selectors.fullscreen_mask).exists()||($("body").is("#upload")||$("body").append($("<div/>",{id:this.selectors.fullscreen_mask.replace("#",""),class:"fullscreen black"}).css({top:PF.fn.isDevice("phone")?0:$(CHV.fn.uploader.selectors.root).data("top")})),setTimeout(function(){$("body").is("#upload")||$(CHV.fn.uploader.selectors.fullscreen_mask).css({opacity:1}),setTimeout(function(){"function"==typeof e&&e()},PF.fn.isDevice(["phone","phablet"])?0:250)},1))},boxSizer:function(e){var t=$(this.selectors.root).is(this.selectors.show),a=t||e;t&&$("html").addClass("overflow-hidden"), +a&&($(this.selectors.root).height(""),!$("body").is("#upload")&&$(this.selectors.root).height()>$(window).height()?($(this.selectors.root).height($(window).height()-$("#top-bar").height()).css({"overflow-y":"scroll","overflow-x":"auto"}),$("body").addClass("overflow-hidden")):$(this.selectors.root).css("overflow-y",""))},pasteURL:function(){var e=$("[name=urls]",PF.obj.modal.selectors.root),t=e.val();t&&(CHV.fn.uploader.toggle({show:!0}),CHV.fn.uploader.add({},t))},pasteImageHandler:function(e){if(!$(e.target).is(":input")){if(void 0!==e.clipboardData&&e.clipboardData.items)var t=e.clipboardData.items;else setTimeout(function(){return e.clipboardData={},e.clipboardData.items=[],$.each($("img",CHV.fn.uploader.$pasteCatcher),function(t,a){e.clipboardData.items.push(PF.fn.dataURItoBlob($(this).attr("src")))}),$(CHV.fn.uploader.selectors.paste).html(""),CHV.fn.uploader.pasteImageHandler(e)},1);if(t){const e=new Array,i=new Array;let n=$(CHV.fn.uploader.selectors.root).data("shown");for(var a=0;a<t.length;a++)if(-1!==t[a].type.indexOf("image")){let o=t[a].getAsFile();e.push(o)}else if("string"==t[a].kind){if(!CHV.obj.config.upload.url)continue;t[a].getAsString(function(e){CHV.fn.uploader.add({},e)}),i.push(a)}if(0==e.length&&0==i.length)return;var o={originalEvent:{dataTransfer:{files:[...e]},preventDefault:function(){},stopPropagation:function(){}}};n?CHV.fn.uploader.add(o):CHV.fn.uploader.toggle({callback:function(){CHV.fn.uploader.add(o)}})}}},add:function(e,t){function a(e,t,o,i){if(e.isDirectory){var n=e.createReader();n.readEntries(function(e){var i=e.length,n=0;e.forEach(function(e){n++,".DS_Store"!==e.name&&a(e,t,o,i===n)})}),o.push(e.name)}else e.file(function(e){t.push(e),i&&CHV.fn.uploader.add({originalEvent:{preventDefault:function(){},stopPropagation:function(){},dataTransfer:{parsedItems:!0,files:[...t]}}})})}function o(e){if(void 0===e)e=0;if(e in s){var t=s[e];r.includes(t.name)||($(CHV.fn.uploader.selectors.queue_item+":not([data-id]) .load-url",CHV.fn.uploader.selectors.queue)[void 0!==t.url?"show":"remove"](),loadImage.parseMetaData(t.url?t.url:t,function(a){$(CHV.fn.uploader.selectors.queue_item+":not([data-id]) .preview:empty",CHV.fn.uploader.selectors.queue).first().closest("li").attr("data-id",t.uid),loadImage(t.url?t.url:t,function(e){++w;var o=$(CHV.fn.uploader.selectors.queue_item+"[data-id="+t.uid+"]",CHV.fn.uploader.selectors.queue);if("error"===e.type)m.push({uid:t.uid,name:t.name.truncate_middle()});else{$("[data-group=upload-queue]",CHV.fn.uploader.selectors.root).is(":visible")||$("[data-group=upload-queue]",CHV.fn.uploader.selectors.root).css("display","block");var i="image/jpeg";if(void 0!==a.buffer){for(var n=new Uint8Array(a.buffer).subarray(0,4),r="",l=0;l<n.length;l++)r+=n[l].toString(16);var d={"89504e47":"image/png",47494638:"image/gif",ffd8ffe0:"image/jpeg"};$.each(["ffd8ffe1","ffd8ffe2"],function(e,t){d[t]=d.ffd8ffe0}),void 0!==d[r]&&(i=d[r])}var c=null;if(void 0!==t.name){var u=PF.fn.baseName(t.name);c=$.trim(u.substring(0,100).capitalizeFirstLetter())}CHV.fn.uploader.files[t.uid].parsedMeta={title:c,width:e.originalWidth,height:e.originalHeight,mimetype:i},o.show(),$(CHV.fn.uploader.selectors.root).addClass("queueReady").removeClass("queueEmpty"),$("[data-group=upload-queue-ready]",CHV.fn.uploader.selectors.root).show(),$("[data-group=upload]",CHV.fn.uploader.selectors.root).hide(),o.find(".load-url").remove(),o.find(".preview").removeClass("soft-hidden").show().append(e),$img=o.find(".preview").find("img,canvas"),$img.attr("class","canvas"),queue_item_h=o.height(),queue_item_w=o.width();var f=parseInt($img.attr("width"))||$img.width(),p=parseInt($img.attr("height"))||$img.height(),g=f/p;if($img.hide(),f>p||f==p){var h=p<queue_item_h?p:queue_item_h;f>p&&$img.height(h).width(h*g)}if(f<p||f==p){var v=f<queue_item_w?f:queue_item_w;f<p&&$img.width(v).height(v/g)}f==p&&$img.height(h).width(v),$img.css({marginTop:-$img.height()/2,marginLeft:-$img.width()/2}).show(),CHV.fn.uploader.boxSizer()}if(w==s.length){if(void 0!==_&&(m=m.concat(_)),PF.fn.loading.destroy("fullscreen"),m.length>0){var b="";for(l=0;l<m.length;l++)b+="<li>"+PF.fn.htmlEncode(m[l].name)+"</li>",delete CHV.fn.uploader.files[m[l].uid],$("li[data-id="+m[l].uid+"]",CHV.fn.uploader.selectors.queue).find("[data-action=cancel]").click();PF.fn.modal.simple({title:PF.fn._s("Some files couldn't be added"),message:"<ul>"+b+"</ul>"})}else CHV.fn.uploader.focus();CHV.fn.uploader.boxSizer()}},$.extend({},C,{orientation:a.exif?a.exif.get("Orientation"):1})),setTimeout(function(){o(e+1)},25)}))}else PF.fn.loading.destroy("fullscreen")}var i;if(!this.canAdd){e=e.originalEvent;return e.preventDefault(),e.stopPropagation(),!1}$fileinput=$(this.selectors.file),$fileinput.replaceWith($fileinput=$fileinput.clone(!0));var n=$(this.selectors.upload_item_template).html();let s=[],r=[];if(void 0===t){e=e.originalEvent;e.preventDefault(),e.stopPropagation();var l=e.dataTransfer||e.target;if("items"in l)for(var d=l.items,c=0;c<d.length;c++){var u=d[c].webkitGetAsEntry();u&&a(u,s,r,!1)}"files"in l&&(s=Array.isArray(l.files)?l.files.slice():$.makeArray(l.files),s=s.filter(function(e){return r.indexOf(e.name)<0}));var m=[];for(c=0;c<s.length;c++){var f,p=s[c];if(!r.includes(p.name))f=void 0===p.type||""==p.type?p.name.substr(p.name.lastIndexOf(".")+1).toLowerCase():p.type.replace("image/",""),p.size>CHV.obj.config.image.max_filesize.getBytes()?m.push({uid:c,name:p.name.truncate_middle()+" - "+PF.fn._s("File too big.")}):-1!=CHV.obj.config.upload.image_types.indexOf(f)||0!=/android/i.test(navigator.userAgent)?(i&&(p.md5=i),p.fromClipboard=1==e.clipboard,p.uid=c):m.push({uid:c,name:p.name.truncate_middle()+" - "+PF.fn._s("Invalid or unsupported file format.")})}for(c=0;c<m.length;c++){var g=m[c];s.splice(g.id,1)}if(m.length>0&&0==s.length){var h="";for(c=0;c<m.length;c++)h+="<li>"+PF.fn.htmlEncode(m[c].name)+"</li>";return void PF.fn.modal.simple({title:PF.fn._s("Some files couldn't be added"),message:"<ul><li>"+h+"</ul>"})}if(0==s.length)return}else{if(t=t.replace(/(<([^>]+)>)/g,"").replace(/(\[([^\]]+)\])/g,""),s=t.match_urls(),!s)return;s=s.array_unique(),s=$.map(s,function(e,t){return{uid:t,name:e,url:e}})}if($.isEmptyObject(this.files))for(c=0;c<s.length;c++)this.files[s[c].uid]=s[c],this.filesAddId++;else{var v=[];for(var b in this.files)void 0!==this.files[b]&&"function"!=typeof this.files[b]&&v.push(encodeURI(this.files[b].name));s=$.map(s,function(e,t){return-1!=$.inArray(encodeURI(e.name),v)?null:(e.uid=CHV.fn.uploader.filesAddId,CHV.fn.uploader.filesAddId++,e)});for(c=0;c<s.length;c++)this.files[s[c].uid]=s[c]}$(this.selectors.queue,this.selectors.root).append(n.repeat(s.length)),$(this.selectors.queue+" "+this.selectors.queue_item+":not([data-id])",this.selectors.root).hide();var _=m,w=(m=[],0),C={canvas:!0,maxWidth:610};PF.fn.loading.fullscreen(),o(),this.queueSize()},queueSize:function(){$(this.selectors.root).attr("data-queue-size",Object.size(this.files)),$("[data-text=queue-objects]",this.selectors.root).text(PF.fn._n("file","files",Object.size(this.files))),$("[data-text=queue-size]",this.selectors.root).text(Object.size(this.files))},queueProgress:function(e,t){var a=Object.size(this.files);this.files[t].progress=e.loaded/e.total;for(var o=0,i=0;i<a;i++)void 0!==this.files[i]&&"progress"in this.files[i]&&(o+=this.files[i].progress);$("[data-text=queue-progress]",this.selectors.root).text(parseInt(100*o/a))},upload:function(e){var t=e.data("id"),a=!!e.next().exists()&&e.next().data("id");if(-1===$.inArray(t,this.uploadParsedIds)){var o=this;this.uploadParsedIds.push(t);var i=this.files[t];if(void 0!==i){var n=void 0!==i.url,s=n?i.url:i,r=void 0!==i.formValues;if(void 0!==i){this.uploadThreads+=1,this.uploadThreads<CHV.obj.config.upload.threads&&a&&this.upload(e.next()),this.isUploading=!0;var l=new FormData,d={source:null,type:n?"url":"file",action:"upload",privacy:$("[data-privacy]",this.selectors.root).first().data("privacy"),timestamp:this.timestamp,auth_token:PF.obj.config.auth_token,expiration:$("[name=upload-expiration]",this.selectors.root).val()||"",category_id:$("[name=upload-category-id]",this.selectors.root).val()||null,nsfw:$("[name=upload-nsfw]",this.selectors.root).prop("checked")?1:0,album_id:$("[name=upload-album-id]",this.selectors.root).val()||null};n?d.source=s:l.append("source",s,i.name),r&&$.each(i.formValues,function(e,t){d[e.replace(/image_/g,"")]=t}),$.each(d,function(e,t){if(null===t)return!0;l.append(e,t)}),this.files[t].xhr=new XMLHttpRequest,e.removeClass("waiting"),$(".block.edit, .queue-item-button.edit",e).remove(),n?(this.queueSize(),this.queueProgress({loaded:1,total:1},t),this.itemLoading(e)):this.files[t].xhr.upload.onprogress=function(a){a.lengthComputable&&(CHV.fn.uploader.queueProgress(a,t),percentComplete=parseInt(a.loaded/a.total*100),$(CHV.fn.uploader.selectors.item_progress_bar,e).width(100-percentComplete+"%"),100==percentComplete&&CHV.fn.uploader.itemLoading(e))},this.files[t].xhr.onreadystatechange=function(){var i=!1;if(4==this.readyState&&void 0!==CHV.fn.uploader.files[t].xhr&&0!==CHV.fn.uploader.files[t].xhr.status){o.uploadProcessedIds.push(t),o.uploadThreads-=1,$(".loading-indicator",e).remove(),e.removeClass("waiting uploading");try{var n="json"!==this.responseType?JSON.parse(this.response):this.response;void 0!==n&&200==this.status?$("[data-group=image-link]",e).attr("href",n.image.path_viewer):("PDOException"==n.error.context&&(n.error.message="Database error"),n.error.message=PF.fn.htmlEncode(CHV.fn.uploader.files[t].name.truncate_middle())+" - "+n.error.message),CHV.fn.uploader.results[200==this.status?"success":"error"][t]=n,200!==this.status&&(i=!0)}catch(e){var s;i=!0,s=void 0===n?{status:500,statusText:"Internal server error"}:{status:400,statusText:n.error.message},n={status_code:s.status,error:{message:PF.fn.htmlEncode(CHV.fn.uploader.files[t].name.truncate_middle())+" - Server error ("+s.statusText+")",code:s.status,context:"XMLHttpRequest"},status_txt:s.statusText};var r=Object.size(CHV.fn.uploader.results.error)+1;CHV.fn.uploader.results.error[r]=n}e.addClass(i?"failed":"completed"),void 0!==n.error&&void 0!==n.error.message&&(e.attr("rel","tooltip").data("tiptip","top").attr("title",n.error.message),PF.fn.bindtipTip(e)),o.uploadThreads<CHV.obj.config.upload.threads&&a&&(CHV.fn.uploader.upload(e.next()),$(CHV.fn.uploader.selectors.root).addClass("queueHasResults")),o.uploadProcessedIds.length==Object.size(o.files)&&CHV.fn.uploader.displayResults(),$(".done",e).fadeOut()}},this.files[t].xhr.open("POST",PF.obj.config.json_api,!0),this.files[t].xhr.setRequestHeader("Accept","application/json"),this.files[t].xhr.send(l)}else e.next().exists()&&this.upload(e.next())}}else e.next().exists()&&this.upload(e.next())},itemLoading:function(e){PF.fn.loading.inline($(".progress",e),{color:"#FFF",size:"normal",center:!0,position:"absolute",shadow:!0}),$("[data-action=cancel], [data-action=edit]",e).hide()},displayResults:function(){CHV.fn.uploader.isUploading=!1;for(var e="[data-group=upload-result][data-result=%RESULT%]",t=["error","mixed","success"],a={},o=0;o<t.length;o++)a[t[o]]=e.replace("%RESULT%",t[o]);if(Object.size(this.results.error)>0){var i=[];for(var o in this.results.error)"object"==typeof this.results.error[o]&&(i[o]=this.results.error[o].error.message);i.length>0&&$(this.selectors.failed_result).html("<li>"+i.join("</li><li>")+"</li>")}else $(a.error,this.selectors.root).hide();if(!window.opener&&0==CHV.obj.config.upload.moderation&&CHV.obj.config.upload.redirect_single_upload&&1==Object.size(this.results.success)&&0==Object.size(this.results.error))return window.location.href=this.results.success[Object.keys(this.results.success)[0]].image.path_viewer,!1;if($("[data-text=queue-progress]",this.selectors.root).text(100),$("[data-group=uploading]",this.selectors.root).hide(),$(this.selectors.root).removeClass("queueUploading queueHasResults").addClass("queueCompleted"),$(this.selectors.queue).addClass(this.selectors.queue_complete.substring(1)),Object.size(this.results.success)>0&&$("[data-group=upload-result] textarea",this.selectors.root).exists()&&CHV.fn.fillEmbedCodes(this.results.success,CHV.fn.uploader.selectors.root,"val"),Object.size(this.results.success)>0&&Object.size(this.results.error)>0?$(a.mixed+", "+a.success,this.selectors.root).show():Object.size(this.results.success)>0?$(a.success,this.selectors.root).show():Object.size(this.results.error)>0&&$(a.error,this.selectors.root).show(),$(a.success,this.selectors.root).is(":visible")){$(a.success,this.selectors.root).find("[data-group^=user], [data-group=guest]").hide(),$(a.success,this.selectors.root).find("[data-group="+(PF.fn.is_user_logged()?"user":"guest")+"]").show();var n=Object.keys(this.results.success)[0];if(void 0!==this.results.success[n].image.album){var s=[];for(var r in this.results.success){var l=this.results.success[r].image;l.album&&l.album.id_encoded&&-1==s.indexOf(l.album.id_encoded)&&s.push(l.album.id_encoded)}var d={link:null,text:null};if(s.length<=1?(d.link=this.results.success[n].image.album.url,d.text=this.results.success[n].image.album.name):(d.link=this.results.success[n].image.user.url_albums,d.text=PF.fn._s("%s's Albums",this.results.success[n].image.user.name_short_html)),$("[data-text=upload-target]",this.selectors.root).text(d.text),$("[data-link=upload-target]",this.selectors.root).attr("href",d.link),PF.fn.is_user_logged()){var c=s.length>0?"album":"stream";$("[data-group=user-"+c+"]",this.selectors.root).show()}}}if(this.boxSizer(),this.queueStatus="done",window.opener&&void 0!==CHV.obj.opener.uploadPlugin[window.name]){if($('[data-action="copy"]',this.selectors.root).remove(),CHV.obj.opener.uploadPlugin[window.name].hasOwnProperty("autoInsert")&&CHV.obj.opener.uploadPlugin[window.name].autoInsert){var u=$(':input[name="'+CHV.obj.opener.uploadPlugin[window.name].autoInsert+'"]',CHV.fn.uploader.selectors.root),m=u.val();if(m)return window.opener.postMessage({id:window.name,message:m},"*"),void window.close()}}else $('[data-action="openerPostMessage"]',this.selectors.root).remove()}},$.extend(CHV.fn.uploader,$.extend(!0,{},CHV.obj.uploaderReset)),CHV.fn.fillEmbedCodes=function(e,t,a){void 0===a&&(a="val");var o=CHV.fn.uploader.selectors.root==t?"embed_upload_tpl":"embed_share_tpl";$.each(e,function(e,i){if(void 0!==i){var n="id_encoded"in i?i:i.image;if(!n.medium){n.medium={};for(var s=["filename","name","width","height","extension","size","size_formatted","url"],r=0;r<s.length;r++)n.medium[s[r]]=n[s[r]]}var l=Object.flatten(n);$.each(CHV.obj[o],function(e,o){$.each(o.options,function(e,o){var i=o,n=$("textarea[name="+e+"]",t),s=i.template;for(var r in l)l.hasOwnProperty(r)&&(s=s.replace(new RegExp("%"+r.toUpperCase()+"%","g"),PF.fn.htmlEncode(PF.fn.htmlEncode(l[r]))));n[a](n.val()+s+("thumb"==n.data("size")?" ":"\n"))})})}}),$.each(CHV.obj[o],function(e,o){$.each(o.options,function(e,o){var i=$("textarea[name="+e+"]",t);i[a]($.trim(i.val()))})})},CHV.fn.resource_privacy_toggle=function(e){CHV.obj.resource.privacy=e,e||(e="public"),$("[data-content=privacy-private]").hide(),"public"!==e&&$("[data-content=privacy-private]").show()},CHV.fn.submit_create_album=function(){var e=$(PF.obj.modal.selectors.root);return""==$("[name=form-album-name]",e).val()?(PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1):(PF.obj.modal.form_data={action:"create-album",type:"album",album:{parent_id:$("[name=form-album-parent-id]",e).val(),name:$("[name=form-album-name]",e).val(),description:$("[name=form-album-description]",e).val(),privacy:$("[name=form-privacy]",e).val(),password:"password"==$("[name=form-privacy]",e).val()?$("[name=form-album-password]",e).val():null,new:!0}},!0)},CHV.fn.complete_create_album={success:function(e){var t=e.responseJSON.album;window.location=t.url},error:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s(t.error.message))}},CHV.fn.submit_upload_edit=function(){var e=$(PF.obj.modal.selectors.root),t=!1;return $("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val()?(PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1):($("[data-content=form-new-album]",e).is(":visible")&&(t=!0),PF.obj.modal.form_data={action:t?"create-album":"move",type:"images",album:{ids:$.map(CHV.fn.uploader.results.success,function(e){return e.image.id_encoded}),new:t}},t?(PF.obj.modal.form_data.album.name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.album.description=$("[name=form-album-description]",e).val(),PF.obj.modal.form_data.album.privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.album.privacy&&(PF.obj.modal.form_data.album.password=$("[name=form-album-password]",e).val())):PF.obj.modal.form_data.album.id=$("[name=form-album-id]",e).val(),!0)},CHV.fn.complete_upload_edit={success:function(e){var t=e.responseJSON.album;window.location=t.url},error:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s(t.error.message))}},CHV.fn.before_image_edit=function(){var e=$("[data-ajax-deferred='CHV.fn.complete_image_edit']");$("[data-content=form-new-album]",e).hide(),$("#move-existing-album",e).show()},CHV.fn.submit_image_edit=function(){var e=$(PF.obj.modal.selectors.root),t=!1;return $("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val()?(PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1):($("[data-content=form-new-album]",e).is(":visible")&&(t=!0),PF.obj.modal.form_data={action:"edit",edit:"image",editing:{id:CHV.obj.resource.id,category_id:$("[name=form-category-id]",e).val()||null,title:$("[name=form-image-title]",e).val()||null,description:$("[name=form-image-description]",e).val()||null,nsfw:$("[name=form-nsfw]",e).prop("checked")?1:0,new_album:t}},t?(PF.obj.modal.form_data.editing.album_privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.album_privacy&&(PF.obj.modal.form_data.editing.album_password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.editing.album_name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.album_description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.editing.album_id=$("[name=form-album-id]",e).val(),!0)},CHV.fn.complete_image_edit={success:function(e){var t=e.responseJSON.image;if(t.album.id_encoded||(t.album.id_encoded=""),CHV.obj.image_viewer.album.id_encoded!==t.album.id_encoded){CHV.obj.image_viewer.album.id_encoded=t.album.id_encoded;var a={html:t.album.slice&&t.album.slice.html?t.album.slice.html:null,prev:t.album.slice&&t.album.slice.prev?t.album.slice.prev:null,next:t.album.slice&&t.album.slice.next?t.album.slice.next:null};$("[data-content=album-slice]").html(a.html),$("[data-content=album-panel-title]")[a.html?"show":"hide"](),$("a[data-action=prev]").attr("href",a.prev),$("a[data-action=next]").attr("href",a.next),$("a[data-action]",".image-viewer-navigation").each(function(){$(this)[void 0===$(this).attr("href")?"addClass":"removeClass"]("hidden")})}CHV.fn.resource_privacy_toggle(t.album.privacy),$.each(["description","title"],function(e,a){var o=$("[data-text=image-"+a+"]");o.html(PF.fn.nl2br(PF.fn.htmlEncode(t[a]))),""!==o.html()&&o.show()}),CHV.fn.common.updateDoctitle(t.title),PF.fn.growl.expirable(PF.fn._s("Image edited successfully.")),CHV.fn.list_editor.addAlbumtoModals(t.album);var o=$("[data-submit-fn='CHV.fn.submit_image_edit']");$.each(["description","name","password"],function(e,t){var a=$("[name=form-album-"+t+"]",o);a.is("textarea")?a.val("").html(""):a.val("").attr("value","")}),$("[name=form-privacy] option",o).each(function(){$(this).removeAttr("selected")}),$("[data-combo-value=password]",o).hide(),$("[name=form-album-id]",o).find("option").removeAttr("selected"),$("[name=form-album-id]",o).find("[value="+t.album.id_encoded+"]").attr("selected",!0)}},CHV.fn.before_album_edit=function(e){var t="[data-before-fn='CHV.fn.before_album_edit']";$("[data-action=album-switch]",t).remove()},CHV.fn.submit_album_edit=function(){var e=$(PF.obj.modal.selectors.root);return $("[name=form-album-name]",e).val()?(PF.obj.modal.form_data={action:"edit",edit:"album",editing:{id:CHV.obj.resource.id,name:$("[name=form-album-name]",e).val(),privacy:$("[name=form-privacy]",e).val(),description:$("[name=form-album-description]",e).val()}},"password"==PF.obj.modal.form_data.editing.privacy&&(PF.obj.modal.form_data.editing.password=$("[name=form-album-password]",e).val()),!0):(PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1)},CHV.fn.complete_album_edit={success:function(e){var t=e.responseJSON.album;$("[data-text=album-name]").html(PF.fn.htmlEncode(t.name)),$("[data-text=album-description]").html(PF.fn.htmlEncode(t.description)),CHV.fn.resource_privacy_toggle(t.privacy);var a=CHV.obj.resource.type;CHV.obj.resource.type=null,CHV.fn.list_editor.updateItem($(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible),e.responseJSON),CHV.obj.resource.type=a,$("[data-modal]").each(function(){$("option[value="+t.id_encoded+"]",this).text(t.name+("public"!==t.privacy?" ("+PF.fn._s("private")+")":""))}),CHV.fn.common.updateDoctitle(t.name),PF.fn.growl.expirable(PF.fn._s("Album edited successfully."))}},CHV.fn.category={formFields:["id","name","url_key","description"],validateForm:function(e){var t=PF.obj.modal.selectors.root,a=!1;return!!CHV.fn.common.validateForm(t)&&(!1===/^[-\w]+$/.test($("[name=form-category-url_key]",t).val())?(PF.fn.growl.call(PF.fn._s("Invalid URL key.")),$("[name=form-category-url_key]",t).highlight(),!1):(Object.size(CHV.obj.categories)>0&&$.each(CHV.obj.categories,function(o,i){return void 0!==e&&i.id==e||(i.url_key==$("[name=form-category-url_key]",t).val()?(a=!0,!1):void 0)}),!a||(PF.fn.growl.call(PF.fn._s("Category URL key already being used.")),$("[name=form-category-url_key]",t).highlight(),!1)))},edit:{before:function(e){var t=$(e.target),a=t.data("category-id"),o=CHV.obj.categories[a],i="[data-modal="+t.data("target")+"]";$.each(CHV.fn.category.formFields,function(e,t){e="form-category-"+t,t=o[t];var a=$("[name="+e+"]",i);a.is("textarea")?a.html(PF.fn.htmlEncode(t)):a.attr("value",t)})},submit:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-category-id]",e).val();return!!CHV.fn.category.validateForm(t)&&(PF.obj.modal.form_data={action:"edit",edit:"category",editing:{}},$.each(CHV.fn.category.formFields,function(t,a){PF.obj.modal.form_data.editing[a]=$("[name=form-category-"+a+"]",e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.category,a="[data-content=category][data-category-id="+t.id+"]";$.each(t,function(e,t){$("[data-content=category-"+e+"]",a).html(PF.fn.htmlEncode(t))}),$("[data-link=category-url]").attr("href",t.url),CHV.obj.categories[t.id]=t}}},delete:{before:function(e){var t=$(e.target),a=t.data("category-id"),o=CHV.obj.categories[a];t.attr("data-confirm",t.attr("data-confirm").replace("%s",'"'+o.name+'"'))},submit:function(e){return PF.obj.modal.form_data={action:"delete",delete:"category",deleting:{id:e}},!0},complete:{success:function(e){PF.fn.growl.expirable(PF.fn._s("Category successfully deleted."));var t=e.responseJSON.request.deleting.id;$("[data-content=category][data-category-id="+t+"]").remove(),delete CHV.obj.categories[t]}}},add:{submit:function(){var e=PF.obj.modal.selectors.root;return!!CHV.fn.category.validateForm()&&(PF.obj.modal.form_data={action:"add-category",category:{}},$.each(CHV.fn.category.formFields,function(t,a){"id"!=a&&(PF.obj.modal.form_data.category[a]=$("[name=form-category-"+a+"]",e).val())}),!0)},complete:{success:function(e){var t=e.responseJSON.category,a="[data-content=dashboard-categories-list]",o=$("[data-content=category-dashboard-template]").html();$.each(t,function(e,t){o=o.replace(new RegExp("%"+e.toUpperCase()+"%","g"),t||"")}),$(a).append(o),0==Object.size(CHV.obj.categories)&&(CHV.obj.categories={}),CHV.obj.categories[t.id]=t,PF.fn.growl.call(PF.fn._s("Category %s added.",'"'+t.name+'"'))}}}},CHV.fn.ip_ban={formFields:["id","ip","expires","message"],validateForm:function(e){var t=PF.obj.modal.selectors.root,a=!1,o=$("[name=form-ip_ban-ip]",t).val();return!!CHV.fn.common.validateForm(t)&&(""!==$("[name=form-ip_ban-expires]",t).val()&&0==/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test($("[name=form-ip_ban-expires]",t).val())?(PF.fn.growl.call(PF.fn._s("Invalid expiration date.")),$("[name=form-ip_ban-expires]",t).highlight(),!1):(Object.size(CHV.obj.ip_bans)>0&&$.each(CHV.obj.ip_bans,function(t,i){return void 0!==e&&i.id==e||(i.ip==o?(a=!0,!1):void 0)}),!a||(PF.fn.growl.call(PF.fn._s("IP %s already banned.",o)),$("[name=form-ip_ban-ip]",t).highlight(),!1)))},add:{submit:function(){var e=PF.obj.modal.selectors.root;return!!CHV.fn.ip_ban.validateForm()&&(PF.obj.modal.form_data={action:"add-ip_ban",ip_ban:{}},$.each(CHV.fn.ip_ban.formFields,function(t,a){"id"!=a&&(PF.obj.modal.form_data.ip_ban[a]=$("[name=form-ip_ban-"+a+"]",e).val())}),!0)},complete:{success:function(e){var t=e.responseJSON.ip_ban,a="[data-content=dashboard-ip_bans-list]",o=$("[data-content=ip_ban-dashboard-template]").html();void 0!==o&&($.each(t,function(e,t){o=o.replace(new RegExp("%"+e.toUpperCase()+"%","g"),t||"")}),$(a).append(o)),0==Object.size(CHV.obj.ip_bans)&&(CHV.obj.ip_bans={}),CHV.obj.ip_bans[t.id]=t,$("[data-content=ban_ip]").addClass("hidden"),$("[data-content=banned_ip]").removeClass("hidden"),PF.fn.growl.call(PF.fn._s("IP %s banned.",t.ip))},error:function(e){var t=e.responseJSON.error;PF.fn.growl.call(PF.fn._s(t.message))}}},edit:{before:function(e){var t=$(e.target),a=t.data("ip_ban-id"),o=CHV.obj.ip_bans[a],i="[data-modal="+t.data("target")+"]";$.each(CHV.fn.ip_ban.formFields,function(e,t){e="form-ip_ban-"+t,t=o[t];var a=$("[name="+e+"]",i);a.is("textarea")?a.html(PF.fn.htmlEncode(t)):a.attr("value",t)})},submit:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-ip_ban-id]",e).val();return!!CHV.fn.ip_ban.validateForm(t)&&(PF.obj.modal.form_data={action:"edit",edit:"ip_ban",editing:{}},$.each(CHV.fn.ip_ban.formFields,function(t,a){PF.obj.modal.form_data.editing[a]=$("[name=form-ip_ban-"+a+"]",e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.ip_ban,a="[data-content=ip_ban][data-ip_ban-id="+t.id+"]";$.each(t,function(e,t){$("[data-content=ip_ban-"+e+"]",a).html(PF.fn.htmlEncode(t))}),CHV.obj.ip_bans[t.id]=t},error:function(e){var t=e.responseJSON.error;PF.fn.growl.call(PF.fn._s(t.message))}}},delete:{before:function(e){var t=$(e.target),a=t.data("ip_ban-id"),o=CHV.obj.ip_bans[a];t.attr("data-confirm",t.attr("data-confirm").replace("%s",o.ip))},submit:function(e){return PF.obj.modal.form_data={action:"delete",delete:"ip_ban",deleting:{id:e}},!0},complete:{success:function(e){PF.fn.growl.expirable(PF.fn._s("IP ban successfully deleted."));var t=e.responseJSON.request.deleting.id;$("[data-content=ip_ban][data-ip_ban-id="+t+"]").remove(),delete CHV.obj.ip_bans[t]}}}},CHV.fn.storage={formFields:["id","name","api_id","bucket","server","service","capacity","region","key","secret","url","account_id","account_name"],calling:!1,validateForm:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-storage-id]",e).val(),a=!0;if($.each($(":input",e),function(e,t){$(this).is(":hidden")?$(this).attr("required")&&$(this).removeAttr("required").attr("data-required",1):1==$(this).attr("data-required")&&$(this).attr("required","required"),$(this).is(":visible")&&""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),a=!1)}),!a)return PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1;var o,i=$("[name=form-storage-capacity]",e),n=i.val();return""!==n&&(0==/^[\d\.]+\s*[A-Za-z]{2}$/.test(n)||void 0===n.getBytes()?o=PF.fn._s("Invalid storage capacity value. Make sure to use a valid format."):void 0!==CHV.obj.storages[t]&&n.getBytes()<CHV.obj.storages[t].space_used&&(o=PF.fn._s("Storage capacity can't be lower than its current usage (%s).",CHV.obj.storages[t].space_used.formatBytes())),o)?(PF.fn.growl.call(o),i.highlight(),!1):0!=/^https?:\/\/.+$/.test($("[name=form-storage-url]",e).val())||(PF.fn.growl.call(PF.fn._s("Invalid URL.")),$("[name=form-storage-url]",e).highlight(),!1)},toggleHttps:function(e){this.toggleBool(e,"https")},toggleActive:function(e){this.toggleBool(e,"active")},toggleBool:function(e,t){if(!this.calling){this.calling=!0;var a=$("[data-storage-id="+e+"]"),o=$("[data-content=storage-"+t+"]",a),i=$("[data-checkbox]",o),n=CHV.obj.storages[e]["is_"+t],s=0==n?1:0,r={action:"edit",edit:"storage",editing:{id:e}};r.editing["is_"+t]=s,"https"==t&&(r.editing.url=CHV.obj.storages[e].url),PF.fn.loading.fullscreen(),$.ajax({type:"POST",data:r}).always(function(e,o,n){if(CHV.fn.storage.calling=!1,PF.fn.loading.destroy("fullscreen"),void 0!==e.storage){var r=e.storage;switch(CHV.obj.storages[r.id]=r,PF.fn.growl.expirable(PF.fn._s("Storage successfully edited.")),t){case"https":$("[data-content=storage-url]",a).html(r.url)}CHV.fn.storage.toggleBoolDisplay(i,s)}else PF.fn.growl.call(e.responseJSON.error.message)})}},edit:{before:function(e){var t=$(e.target),a=t.data("storage-id"),o=CHV.obj.storages[a],i="[data-modal="+t.data("target")+"]",n="[data-combo-value~="+o.api_id+"]";$.each(CHV.fn.storage.formFields,function(e,t){e="form-storage-"+t,t=o[t];var a=$(n+" [name="+e+"]",i),s=$("[name="+e+"]",i),r=a.exists()?a:s;r.is("textarea")?r.html(PF.fn.htmlEncode(t)):r.is("select")?($("option",r).removeAttr("selected"),$("option",r).each(function(){if($(this).attr("value")==t)return $(this).attr("selected","selected"),!1})):(r.is("[name=form-storage-capacity]")&&void 0!==t&&t>0&&(t=String(t).formatBytes(2)),r.attr("value",t))}),$("[data-combo-value]").addClass("soft-hidden"),$(n).removeClass("soft-hidden")},submit:function(){var e=PF.obj.modal.selectors.root;$("[name=form-storage-id]",e).val();return!!CHV.fn.storage.validateForm()&&(PF.obj.modal.form_data={action:"edit",edit:"storage",editing:{}},$.each(CHV.fn.storage.formFields,function(t,a){var o;o="[name=form-storage-"+a+"]","hidden"!==$(o,e).attr("type")&&(o+=":visible"),PF.obj.modal.form_data.editing[a]=$(o,e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.storage,a="[data-content=storage][data-storage-id="+t.id+"]",o=$("[data-action=toggle-storage-https]",a);$.each(t,function(e,t){$("[data-content=storage-"+e+"]",a).html(PF.fn.htmlEncode(t))}),CHV.obj.storages[t.id]=t,CHV.fn.storage.toggleBoolDisplay(o,1==t.is_https)},error:function(e){var t=e.responseJSON,a=t.error.message;PF.fn.growl.call(a)}}},add:{submit:function(){if(!CHV.fn.storage.validateForm())return!1;var e=PF.obj.modal.selectors.root;return PF.obj.modal.form_data={action:"add-storage",storage:{}},$.each(CHV.fn.storage.formFields,function(t,a){var o;"id"!=a&&(o="[name=form-storage-"+a+"]","hidden"!==$(o,e).attr("type")&&(o+=":visible"),PF.obj.modal.form_data.storage[a]=$(o,e).val())}),!0},complete:{success:function(e){var t=e.responseJSON.storage,a="[data-content=dashboard-storages-list]",o=$("[data-content=storage-dashboard-template]").html();$.each(t,function(e,t){var a=e.toUpperCase();if("is_https"==e||"is_active"==e)t=CHV.obj.storageTemplate.icon.replace("%TITLE%",CHV.obj.storageTemplate.messages[e]).replace("%ICON%",CHV.obj.storageTemplate.checkboxes[t]).replace("%PROP%",e.replace("is_",""));o=o.replace(new RegExp("%"+a+"%","g"),t||"")}),$(a).append(o),PF.fn.bindtipTip($("[data-storage-id="+t.id+"]")),0==CHV.obj.storages.length&&(CHV.obj.storages={}),CHV.obj.storages[t.id]=t},error:function(e){var t=e.responseJSON,a=t.error.message;PF.fn.growl.call(a)}}},toggleBoolDisplay:function(e,t){var a={0:e.data("unchecked-icon"),1:e.data("checked-icon")};e.removeClass(a[0]+" "+a[1]).addClass(a[t?1:0])}},CHV.fn.common={validateForm:function(e){if(void 0===e)e=PF.obj.modal.selectors.root;var t=!0 +;return $.each($(":input:visible",e),function(e,a){""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),t=!1)}),!!t||(PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1)},updateDoctitle:function(e){void 0!==CHV.obj.page_info&&(CHV.obj.page_info.pre_doctitle=e,CHV.obj.page_info.doctitle=CHV.obj.page_info.pre_doctitle+CHV.obj.page_info.pos_doctitle,document.title=CHV.obj.page_info.doctitle)}},CHV.fn.user={add:{submit:function(){var e=$(PF.obj.modal.selectors.root),t=!0;return $.each($(":input",e),function(e,a){""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),t=!1)}),t?(PF.obj.modal.form_data={action:"add-user",user:{username:$("[name=form-username]",e).val(),email:$("[name=form-email]",e).val(),password:$("[name=form-password]",e).val(),role:$("[name=form-role]",e).val()}},!0):(PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1)},complete:{success:function(e){e.responseJSON;PF.fn.growl.expirable(PF.fn._s("User added successfully."))},error:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s(t.error.message))}}},delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"user",owner:CHV.obj.resource.user.id,deleting:CHV.obj.resource.user},!0}},ban:{submit:function(){return PF.obj.modal.form_data={action:"ban",ban:"user",banning:CHV.obj.resource.user.id},!0},success:function(){}}},CHV.fn.submit_resource_approve=function(){return PF.obj.modal.form_data={action:"approve",approve:CHV.obj.resource.type,from:"resource",owner:void 0!==CHV.obj.resource.user?CHV.obj.resource.user.id:null,approving:CHV.obj.resource},!0},CHV.fn.complete_resource_approve={success:function(e){e.responseJSON;$("body").fadeOut("normal",function(){redir=CHV.obj.resource.url,window.location=redir})}},CHV.fn.submit_resource_delete=function(){return PF.obj.modal.form_data={action:"delete",delete:CHV.obj.resource.type,from:"resource",owner:void 0!==CHV.obj.resource.user?CHV.obj.resource.user.id:null,deleting:CHV.obj.resource},!0},CHV.fn.complete_resource_delete={success:function(e){e.responseJSON;$("body").fadeOut("normal",function(){var e;e="album"==CHV.obj.resource.type||"image"==CHV.obj.resource.type?CHV.obj.resource.parent_url:CHV.obj.resource.user?CHV.obj.resource.user.url:CHV.obj.resource.url,void 0!==e&&(window.location=e.replace(/\/?$/,"/")+"?deleted")})}},CHV.fn.list_editor={blink:function(e){e.addClass("ui-selecting"),setTimeout(function(){e.removeClass("ui-selecting")},200)},selectionCount:function(){var e=$(PF.obj.listing.selectors.content_listing);e.each(function(){var t=$("[data-content=pop-selection]","[data-content=list-selection][data-tab="+$(this).attr("id")+"]"),a=$(PF.obj.listing.selectors.list_item+".selected",this).length;if(all_count=$(PF.obj.listing.selectors.list_item,this).length,t.toggleClass("disabled",0==a),$("[data-text=selection-count]",t).text(a>0?a:""),"images"==e.data("list")&&a>0){var o=$(PF.obj.listing.selectors.list_item+".selected[data-flag=safe]",this).length>0,i=$(PF.obj.listing.selectors.list_item+".selected[data-flag=unsafe]",this).length>0;$("[data-action=flag-safe]",t)[(i?"remove":"add")+"Class"]("hidden"),$("[data-action=flag-unsafe]",t)[(o?"remove":"add")+"Class"]("hidden")}$(this).is(":visible")&&($("body").toggleClass("--has-selection",a>0),CHV.fn.list_editor.listMassActionSet(all_count==a?"clear":"select"))})},removeFromList:function(e,t){if(void 0!==e){e=e instanceof jQuery==0?$(e):e;var a=$(PF.obj.listing.selectors.content_listing_visible),o=e.length;e.fadeOut("fast");var i=e.first().data("type"),n=parseInt($("[data-text="+i+"-count]").text())-o;CHV.fn.list_editor.updateUserCounters(e.first().data("type"),o,"-"),e.promise().done(function(){$(document).removeClass(CHV.fn.listingViewer.selectors.bodyShown.substr(1));var i={};if(e.each(function(){$("[data-id="+$(this).data("id")+"]").each(function(){var e=$(this).closest(PF.obj.listing.selectors.content_listing).attr("id");i[e]||(i[e]=0),i[e]+=1})}),1==o?$("[data-id="+$(this).data("id")+"]").remove():e.each(function(){$("[data-id="+$(this).data("id")+"]").remove()}),PF.fn.listing.columnizerQueue(),PF.fn.listing.refresh(),CHV.fn.list_editor.selectionCount(),void 0!==t&&"string"==typeof t&&PF.fn.growl.expirable(t),$(PF.obj.listing.selectors.content_listing_pagination,a).exists()||0!=$(PF.obj.listing.selectors.list_item,a).length||(n=0),0==n)a.html(PF.obj.listing.template.empty),$(PF.obj.listing.selectors.content_listing+":not("+PF.obj.listing.selectors.content_listing_visible+")").data({empty:null,load:"ajax"}),$("[data-content=list-selection][data-tab="+a.attr("id")+"]").addClass("disabled");else if(0==$(PF.obj.listing.selectors.list_item,a).length){if($(PF.obj.listing.selectors.pad_content).height(0),$("[data-action=load-more]",a).exists())return $(PF.obj.listing.selectors.content_listing_visible).data("page",0),$("[data-action=load-more]",a).click(),void(PF.obj.listing.recolumnize=!0);var s=$("[data-pagination=next]",a);if(s.exists()){var r=s.attr("href"),l=PF.fn.deparam(r);return"page"in l&&l.page>1&&(r=r.changeURLParameterValue("page",l.page-1)),void(window.location=r)}}})}},deleteFromList:function(e){if(void 0===t)var t=!0;e=e instanceof jQuery==0?$(e):e;this.removeFromList(e,t?PF.fn._s("The content has been deleted."):null)},moveFromList:function(e,t){if(void 0===t)t=!0;e=e instanceof jQuery==0?$(e):e;this.removeFromList(e,t?PF.fn._s("The content has been moved."):null)},toggleSelectItem:function(e,t){if("boolean"!=typeof t)t=!e.hasClass("selected");var a,o,i,n=$(".viewer").is(":visible")?$("[data-type=image][data-id="+e.attr("data-id")+"]"):e,s=$("[data-action=select] .btn-icon",n);n.hasClass("unselect")||(n.addClass("unselect"),t?(Boolean(window.navigator.vibrate)&&window.navigator.vibrate([15,125,25]),n.addClass("selected"),a=s.data("icon-selected"),o=s.data("icon-unselected"),i=PF.fn._s("Unselect")):(n.removeClass("selected ui-selected"),a=s.data("icon-unselected"),o=s.data("icon-selected"),i=PF.fn._s("Select")),s.removeClass(o).addClass(a),setTimeout(function(){n.removeClass("unselect")},350),$("[data-action=select] .label",n).text(i),CHV.fn.list_editor.selectionCount())},selectItem:function(e){this.toggleSelectItem(e,!0)},unselectItem:function(e){this.toggleSelectItem(e,!1),e.removeClass("selected")},selectAll:function(e){this.selectItem($(PF.obj.listing.selectors.list_item+":visible:not(.selected)")),this.listMassActionSet("clear"),e.stopPropagation()},clearSelection:function(e){var t=$(PF.obj.listing.selectors.list_item+".selected",PF.obj.listing.selectors[e?"content_listing":"content_listing_visible"]);this.unselectItem(t),this.listMassActionSet("select")},listMassActionSet:function(e){var t="select"==e?"clear":"select",a=$("[data-text-select-all][data-action=list-"+t+"-all]:visible"),o=a.data("text-"+e+"-all");a.text(o).attr("data-action","list-"+e+"-all"),PF.fn.close_pops()},updateItem:function(e,t,a,o){if(e instanceof jQuery==0)e=$(e);var i=e.data("type"),n="image"==i?t.album:t;if(this.addAlbumtoModals(n),$("option[value="+n.id_encoded+"]","[name=form-album-id]").html(PF.fn.htmlEncode(n.name_with_privacy_readable_html)),void 0===a)a="edit";if("edit"==a||"move"==a){if("move"==a&&"album"==CHV.obj.resource.type)return void CHV.fn.list_editor.moveFromList(e,o);e.attr("data-description",t.description),"image"==i?(void 0!==t.title&&(e.attr("data-title",t.title),e.find("[title]").attr("title",t.title),$("[data-text=image-title]",e).text(PF.fn.htmlEncode(t.title))),void 0!==t.title_truncated&&$("[data-text=image-title-truncated]",e).html(PF.fn.htmlEncode(t.title_truncated)),void 0!==t.category_id&&e.attr("data-category-id",t.category_id),e.attr({"data-album-id":n.id_encoded,"data-flag":1==t.nsfw?"unsafe":"safe"}),$("[data-content=album-link]",e).attr("href",n.url)):e.attr({"data-privacy":n.privacy,"data-password":n.password,"data-name":n.name}),e.attr("data-privacy",n.privacy),$("[data-text=album-name]",e).html(PF.fn.htmlEncode(n.name)),PF.fn.growl.expirable("edit"==a?PF.fn._s("The content has been edited."):PF.fn._s("The content has been moved."))}},addAlbumtoModals:function(e){var t=!1;$("[name=form-album-id]","[data-modal]").each(function(){e.id_encoded&&!$("option[value="+e.id_encoded+"]",this).exists()&&($(this).append('<option value="'+e.id_encoded+'">'+e.name_with_privacy_readable_html+"</option>"),t=!0)}),t&&CHV.fn.list_editor.updateUserCounters("album",1,"+")},updateAlbum:function(e){$("[data-id="+e.id_encoded+"]").each(function(){""!==e.html&&($(this).after(e.html),$(this).remove())})},updateUserCounters:function(e,t,a){if(void 0===a)a="+";var o,i,n=$("[data-text="+e+"-count]"),s=$("[data-text="+e+"-label]"),r=(t=parseInt(t),parseInt(n.html()));switch(a){case"+":o=r+t;break;case"-":o=r-t;break;case"=":o=t}i=o-r;var l=$("[data-text=total-"+n.data("text")+"]"),d=$("[data-text="+l.data("text")+"-label]"),c=parseInt(l.html()),u=c+i;n.text(o),l.text(u),s.text(s.data(1==o?"label-single":"label-plural")),d.text(s.data(1==u?"label-single":"label-plural"))},updateMoveItemLists:function(e,t,a){if(CHV.fn.list_editor.clearSelection(),/image/.test(t))"image"==t?CHV.fn.list_editor.updateItem("[data-type=image][data-id="+a.data("id")+"]",e.image,"move"):(a.each(function(){CHV.fn.list_editor.updateItem("[data-type=image][data-id="+$(this).data("id")+"]",e,"move",!1)}),PF.fn.growl.expirable(PF.fn._s("The content has been moved.")));else{if(CHV.fn.list_editor.moveFromList(a,!1),PF.fn.growl.expirable(PF.fn._s("The content has been moved.")),e.album)if(void 0!==e.albums_old?"true"==e.request.album.new:"true"==e.request.editing.new_album){CHV.fn.list_editor.addAlbumtoModals(e.album);var o=parseInt($("[data-text=album-count]").text())-1;$(PF.obj.listing.selectors.pad_content).each(function(){var t=$(this).find(PF.obj.listing.selectors.list_item).length;if(0!=t){var a=PF.fn.deparam($(this).closest(PF.obj.listing.selectors.content_listing).data("params"));"date_desc"!=a.sort&&o!=t||$(this)["date_desc"==a.sort?"prepend":"append"](e.album.html)}})}else CHV.fn.list_editor.updateAlbum(e.album);PF.fn.listing.columnizerQueue(),PF.fn.listing.refresh(0)}}},CHV.fn.import={errorHandler:function(e){PF.fn.growl.call(e.error.message)},reset:function(e){e=parseInt(e);CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importReset",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){var a=t.responseJSON;if(a){var o=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}})},updateStats:function(e){e=parseInt(e);"readyState"in CHV.obj.import.working[e].stats&&4!=CHV.obj.import.working[e].stats.readyState?console.log("Aborting stats timeout call (previous call is still not ready)"):(CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importStats",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){var a=t.responseJSON;if(a){var o=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}}))},delete:{submit:function(e){return PF.obj.modal.form_data={action:"importDelete",id:e},!0},deferred:{success:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s("Import ID %s removed",t.import.id)),$("[data-id="+t.import.id+"]",CHV.obj.import.sel.root).remove(),1==$("li",CHV.obj.import.sel.root).size()&&$(CHV.obj.import.sel.root).addClass("hidden")},error:function(e){CHV.fn.import.errorHandler(e.responseJSON)}}},parseTemplate:function(e,t){var a=CHV.obj.import.rowTpl;for(var o in CHV.obj.import.importTr)void 0!==e[o]&&(a=a.replaceAll("%"+o+"%",e[o]));a=a.replaceAll("%parse%",e.options.root),a=a.replaceAll("%shortParse%",e.options.root.charAt(0)),a=a.replaceAll("%displayStatus%",CHV.obj.import.statusesDisplay[e.status]);var i=$($.parseHTML(a)).attr("data-object",JSON.stringify(e));return i}},CHV.fn.Palettes={timeout:{},get:function(){return($("html").get(0).className.match(/(^|\s)palette-\S+/g)||[]).join(" ")},set:function(e){$("html").attr("data-palette",e).removeClass(this.get()).addClass("palette-"+e)},preview:function(e){$("html").removeClass(this.get()).addClass("palette-"+e)},save:function(){clearTimeout(this.timeout),this.timeout=setTimeout(function(){$.ajax({type:"POST",data:{action:"paletteSet",palette_id:CHV.obj.config.palettesId[$("html").attr("data-palette")]},cache:!1})},400)}}; \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/LICENSE.txt b/content/legacy/themes/Peafowl/lib/font-awesome-6/LICENSE.txt new file mode 100644 index 0000000..cc557ec --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/LICENSE.txt @@ -0,0 +1,165 @@ +Fonticons, Inc. (https://fontawesome.com) + +-------------------------------------------------------------------------------- + +Font Awesome Free License + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +-------------------------------------------------------------------------------- + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) + +The Font Awesome Free download is licensed under a Creative Commons +Attribution 4.0 International License and applies to all icons packaged +as SVG and JS file types. + +-------------------------------------------------------------------------------- + +# Fonts: SIL OFL 1.1 License + +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com) +with Reserved Font Name: "Font Awesome". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +SIL OPEN FONT LICENSE +Version 1.1 - 26 February 2007 + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting — in part or in whole — any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +-------------------------------------------------------------------------------- + +# Code: MIT License (https://opensource.org/licenses/MIT) + +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +Copyright 2022 Fonticons, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in the +Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +# Attribution + +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +-------------------------------------------------------------------------------- + +# Brand Icons + +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.css new file mode 100644 index 0000000..6330f89 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.css @@ -0,0 +1,7937 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa, +.fa-classic, +.fa-sharp, +.fas, +.fa-solid, +.far, +.fa-regular, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas, +.fa-classic, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-at::before { + content: "\40"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-info::before { + content: "\f129"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-k::before { + content: "\4b"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-w::before { + content: "\57"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-film::before { + content: "\f008"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-hourglass-half::before { + content: "\f252"; } + +.fa-hourglass-2::before { + content: "\f252"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-om::before { + content: "\f679"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-i::before { + content: "\49"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-v::before { + content: "\56"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-school::before { + content: "\f549"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-q::before { + content: "\51"; } + +.fa-g::before { + content: "\47"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-e::before { + content: "\45"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-user::before { + content: "\f007"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-key::before { + content: "\f084"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-c::before { + content: "\43"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-star::before { + content: "\f005"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-box::before { + content: "\f466"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-server::before { + content: "\f233"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-l::before { + content: "\4c"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-train::before { + content: "\f238"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-z::before { + content: "\5a"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-a::before { + content: "\41"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-p::before { + content: "\50"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-question::before { + content: "\3f"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-code::before { + content: "\f121"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-f::before { + content: "\46"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-road::before { + content: "\f018"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-h::before { + content: "\48"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-r::before { + content: "\52"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-plant-wilt::before { + content: "\e5aa"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-j::before { + content: "\4a"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-o::before { + content: "\4f"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-book-tanakh::before { + content: "\f827"; } + +.fa-tanakh::before { + content: "\f827"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f254"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-water::before { + content: "\f773"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-u::before { + content: "\55"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-s::before { + content: "\53"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-images::before { + content: "\f302"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-n::before { + content: "\4e"; } + +.fa-cable-car::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-download::before { + content: "\f019"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-file-circle-check::before { + content: "\e5a0"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-b::before { + content: "\42"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-person-through-window::before { + content: "\e5a9"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-file-circle-xmark::before { + content: "\e5a1"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-section::before { + content: "\e447"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-display::before { + content: "\e163"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-share::before { + content: "\f064"; } + +.fa-arrow-turn-right::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-square-js:before { + content: "\f3b9"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-square-reddit:before { + content: "\f1a2"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-square-font-awesome:before { + content: "\e5ad"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-square-instagram:before { + content: "\e055"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-square-hacker-news:before { + content: "\f3af"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-square-snapchat:before { + content: "\f2ad"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-square-viadeo:before { + content: "\f2aa"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-square-dribbble:before { + content: "\f397"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-node:before { + content: "\f419"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-square-twitter:before { + content: "\f081"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-square-youtube:before { + content: "\f431"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-meta:before { + content: "\e49b"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-square-steam:before { + content: "\f1b7"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-square-vimeo:before { + content: "\f194"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-square-github:before { + content: "\f092"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-square-gitlab:before { + content: "\e5ae"; } + +.fa-gitlab-square:before { + content: "\e5ae"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-square-odnoklassniki:before { + content: "\f264"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-square-pinterest:before { + content: "\f0d3"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-square-google-plus:before { + content: "\f0d4"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-square-xing:before { + content: "\f169"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-square-pied-piper:before { + content: "\e01e"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-square-facebook:before { + content: "\f082"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-square-lastfm:before { + content: "\f203"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-square-behance:before { + content: "\f1b5"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-space-awesome:before { + content: "\e5ac"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-square-git:before { + content: "\f1d2"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-square-tumblr:before { + content: "\f174"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-php:before { + content: "\f457"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-square-whatsapp:before { + content: "\f40c"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.min.css new file mode 100644 index 0000000..5dddbd5 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-child-rifle:before{content:"\e4e0"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.css new file mode 100644 index 0000000..461edc4 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.css @@ -0,0 +1,1516 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-square-js:before { + content: "\f3b9"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-square-reddit:before { + content: "\f1a2"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-square-font-awesome:before { + content: "\e5ad"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-square-instagram:before { + content: "\e055"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-square-hacker-news:before { + content: "\f3af"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-square-snapchat:before { + content: "\f2ad"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-square-viadeo:before { + content: "\f2aa"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-square-dribbble:before { + content: "\f397"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-node:before { + content: "\f419"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-square-twitter:before { + content: "\f081"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-square-youtube:before { + content: "\f431"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-meta:before { + content: "\e49b"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-square-steam:before { + content: "\f1b7"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-square-vimeo:before { + content: "\f194"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-square-github:before { + content: "\f092"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-square-gitlab:before { + content: "\e5ae"; } + +.fa-gitlab-square:before { + content: "\e5ae"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-square-odnoklassniki:before { + content: "\f264"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-square-pinterest:before { + content: "\f0d3"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-square-google-plus:before { + content: "\f0d4"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-square-xing:before { + content: "\f169"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-square-pied-piper:before { + content: "\e01e"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-square-facebook:before { + content: "\f082"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-square-lastfm:before { + content: "\f203"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-square-behance:before { + content: "\f1b5"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-space-awesome:before { + content: "\e5ac"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-square-git:before { + content: "\f1d2"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-square-tumblr:before { + content: "\f174"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-php:before { + content: "\f457"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-square-whatsapp:before { + content: "\f40c"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.min.css new file mode 100644 index 0000000..5a32a9a --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/brands.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.css new file mode 100644 index 0000000..970512d --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.css @@ -0,0 +1,6360 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa, +.fa-classic, +.fa-sharp, +.fas, +.fa-solid, +.far, +.fa-regular, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas, +.fa-classic, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-at::before { + content: "\40"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-info::before { + content: "\f129"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-k::before { + content: "\4b"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-w::before { + content: "\57"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-film::before { + content: "\f008"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-hourglass-half::before { + content: "\f252"; } + +.fa-hourglass-2::before { + content: "\f252"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-om::before { + content: "\f679"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-i::before { + content: "\49"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-v::before { + content: "\56"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-school::before { + content: "\f549"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-q::before { + content: "\51"; } + +.fa-g::before { + content: "\47"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-e::before { + content: "\45"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-user::before { + content: "\f007"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-key::before { + content: "\f084"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-c::before { + content: "\43"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-star::before { + content: "\f005"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-box::before { + content: "\f466"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-server::before { + content: "\f233"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-l::before { + content: "\4c"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-train::before { + content: "\f238"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-z::before { + content: "\5a"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-a::before { + content: "\41"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-p::before { + content: "\50"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-question::before { + content: "\3f"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-code::before { + content: "\f121"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-f::before { + content: "\46"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-road::before { + content: "\f018"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-h::before { + content: "\48"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-r::before { + content: "\52"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-plant-wilt::before { + content: "\e5aa"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-j::before { + content: "\4a"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-o::before { + content: "\4f"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-book-tanakh::before { + content: "\f827"; } + +.fa-tanakh::before { + content: "\f827"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f254"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-water::before { + content: "\f773"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-u::before { + content: "\55"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-s::before { + content: "\53"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-images::before { + content: "\f302"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-n::before { + content: "\4e"; } + +.fa-cable-car::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-download::before { + content: "\f019"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-file-circle-check::before { + content: "\e5a0"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-b::before { + content: "\42"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-person-through-window::before { + content: "\e5a9"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-file-circle-xmark::before { + content: "\e5a1"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-section::before { + content: "\e447"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-display::before { + content: "\e163"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-share::before { + content: "\f064"; } + +.fa-arrow-turn-right::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.min.css new file mode 100644 index 0000000..9fb3e4c --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/fontawesome.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-child-rifle:before{content:"\e4e0"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.css new file mode 100644 index 0000000..567eef1 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.min.css new file mode 100644 index 0000000..2caf8c1 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/regular.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.css new file mode 100644 index 0000000..f1de273 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.css @@ -0,0 +1,19 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.min.css new file mode 100644 index 0000000..b2337d1 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/solid.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.css new file mode 100644 index 0000000..cbf89a5 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.css @@ -0,0 +1,635 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:root, :host { + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Solid'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Regular'; + --fa-font-light: normal 300 1em/1 'Font Awesome 6 Light'; + --fa-font-thin: normal 100 1em/1 'Font Awesome 6 Thin'; + --fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone'; + --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { + overflow: visible; + box-sizing: content-box; } + +.svg-inline--fa { + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -.125em; } + .svg-inline--fa.fa-2xs { + vertical-align: 0.1em; } + .svg-inline--fa.fa-xs { + vertical-align: 0em; } + .svg-inline--fa.fa-sm { + vertical-align: -0.07143em; } + .svg-inline--fa.fa-lg { + vertical-align: -0.2em; } + .svg-inline--fa.fa-xl { + vertical-align: -0.25em; } + .svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; } + .svg-inline--fa.fa-pull-left { + margin-right: var(--fa-pull-margin, 0.3em); + width: auto; } + .svg-inline--fa.fa-pull-right { + margin-left: var(--fa-pull-margin, 0.3em); + width: auto; } + .svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + top: 0.25em; } + .svg-inline--fa.fa-fw { + width: var(--fa-fw-width, 1.25em); } + +.fa-layers svg.svg-inline--fa { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; } + +.fa-layers-text, .fa-layers-counter { + display: inline-block; + position: absolute; + text-align: center; } + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -.125em; + width: 1em; } + .fa-layers svg.svg-inline--fa { + -webkit-transform-origin: center center; + transform-origin: center center; } + +.fa-layers-text { + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -webkit-transform-origin: center center; + transform-origin: center center; } + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + -webkit-transform: scale(var(--fa-counter-scale, 0.25)); + transform: scale(var(--fa-counter-scale, 0.25)); + -webkit-transform-origin: top right; + transform-origin: top right; } + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + -webkit-transform: scale(var(--fa-layers-scale, 0.25)); + transform: scale(var(--fa-layers-scale, 0.25)); + -webkit-transform-origin: bottom right; + transform-origin: bottom right; } + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + -webkit-transform: scale(var(--fa-layers-scale, 0.25)); + transform: scale(var(--fa-layers-scale, 0.25)); + -webkit-transform-origin: bottom left; + transform-origin: bottom left; } + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + -webkit-transform: scale(var(--fa-layers-scale, 0.25)); + transform: scale(var(--fa-layers-scale, 0.25)); + -webkit-transform-origin: top right; + transform-origin: top right; } + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + -webkit-transform: scale(var(--fa-layers-scale, 0.25)); + transform: scale(var(--fa-layers-scale, 0.25)); + -webkit-transform-origin: top left; + transform-origin: top left; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + vertical-align: middle; + height: 2em; + position: relative; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; + z-index: var(--fa-stack-z-index, auto); } + +.svg-inline--fa.fa-stack-1x { + height: 1em; + width: 1.25em; } + +.svg-inline--fa.fa-stack-2x { + height: 2em; + width: 2.5em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); } + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); } + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); } + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); } + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; } + +.fad.fa-inverse, +.fa-duotone.fa-inverse { + color: var(--fa-inverse, #fff); } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.min.css new file mode 100644 index 0000000..34edee9 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/svg-with-js.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.07143em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.css new file mode 100644 index 0000000..f5e2c0d --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.css @@ -0,0 +1,26 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.min.css new file mode 100644 index 0000000..a18412a --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-font-face.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.css new file mode 100644 index 0000000..980e962 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.css @@ -0,0 +1,2194 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa.fa-glass:before { + content: "\f000"; } + +.fa.fa-envelope-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-o:before { + content: "\f0e0"; } + +.fa.fa-star-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-o:before { + content: "\f005"; } + +.fa.fa-remove:before { + content: "\f00d"; } + +.fa.fa-close:before { + content: "\f00d"; } + +.fa.fa-gear:before { + content: "\f013"; } + +.fa.fa-trash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-trash-o:before { + content: "\f2ed"; } + +.fa.fa-home:before { + content: "\f015"; } + +.fa.fa-file-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-o:before { + content: "\f15b"; } + +.fa.fa-clock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-clock-o:before { + content: "\f017"; } + +.fa.fa-arrow-circle-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-down:before { + content: "\f358"; } + +.fa.fa-arrow-circle-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-up:before { + content: "\f35b"; } + +.fa.fa-play-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-play-circle-o:before { + content: "\f144"; } + +.fa.fa-repeat:before { + content: "\f01e"; } + +.fa.fa-rotate-right:before { + content: "\f01e"; } + +.fa.fa-refresh:before { + content: "\f021"; } + +.fa.fa-list-alt { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-list-alt:before { + content: "\f022"; } + +.fa.fa-dedent:before { + content: "\f03b"; } + +.fa.fa-video-camera:before { + content: "\f03d"; } + +.fa.fa-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-picture-o:before { + content: "\f03e"; } + +.fa.fa-photo { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-photo:before { + content: "\f03e"; } + +.fa.fa-image { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-image:before { + content: "\f03e"; } + +.fa.fa-map-marker:before { + content: "\f3c5"; } + +.fa.fa-pencil-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pencil-square-o:before { + content: "\f044"; } + +.fa.fa-edit { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-edit:before { + content: "\f044"; } + +.fa.fa-share-square-o:before { + content: "\f14d"; } + +.fa.fa-check-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-square-o:before { + content: "\f14a"; } + +.fa.fa-arrows:before { + content: "\f0b2"; } + +.fa.fa-times-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-circle-o:before { + content: "\f057"; } + +.fa.fa-check-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-circle-o:before { + content: "\f058"; } + +.fa.fa-mail-forward:before { + content: "\f064"; } + +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + +.fa.fa-eye { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eye-slash { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-warning:before { + content: "\f071"; } + +.fa.fa-calendar:before { + content: "\f073"; } + +.fa.fa-arrows-v:before { + content: "\f338"; } + +.fa.fa-arrows-h:before { + content: "\f337"; } + +.fa.fa-bar-chart:before { + content: "\e0e3"; } + +.fa.fa-bar-chart-o:before { + content: "\e0e3"; } + +.fa.fa-twitter-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitter-square:before { + content: "\f081"; } + +.fa.fa-facebook-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-square:before { + content: "\f082"; } + +.fa.fa-gears:before { + content: "\f085"; } + +.fa.fa-thumbs-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-up:before { + content: "\f164"; } + +.fa.fa-thumbs-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-down:before { + content: "\f165"; } + +.fa.fa-heart-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-heart-o:before { + content: "\f004"; } + +.fa.fa-sign-out:before { + content: "\f2f5"; } + +.fa.fa-linkedin-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin-square:before { + content: "\f08c"; } + +.fa.fa-thumb-tack:before { + content: "\f08d"; } + +.fa.fa-external-link:before { + content: "\f35d"; } + +.fa.fa-sign-in:before { + content: "\f2f6"; } + +.fa.fa-github-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-github-square:before { + content: "\f092"; } + +.fa.fa-lemon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lemon-o:before { + content: "\f094"; } + +.fa.fa-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-square-o:before { + content: "\f0c8"; } + +.fa.fa-bookmark-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bookmark-o:before { + content: "\f02e"; } + +.fa.fa-twitter { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook:before { + content: "\f39e"; } + +.fa.fa-facebook-f { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-f:before { + content: "\f39e"; } + +.fa.fa-github { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-feed:before { + content: "\f09e"; } + +.fa.fa-hdd-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hdd-o:before { + content: "\f0a0"; } + +.fa.fa-hand-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-right:before { + content: "\f0a4"; } + +.fa.fa-hand-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-left:before { + content: "\f0a5"; } + +.fa.fa-hand-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-up:before { + content: "\f0a6"; } + +.fa.fa-hand-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-down:before { + content: "\f0a7"; } + +.fa.fa-globe:before { + content: "\f57d"; } + +.fa.fa-tasks:before { + content: "\f828"; } + +.fa.fa-arrows-alt:before { + content: "\f31e"; } + +.fa.fa-group:before { + content: "\f0c0"; } + +.fa.fa-chain:before { + content: "\f0c1"; } + +.fa.fa-cut:before { + content: "\f0c4"; } + +.fa.fa-files-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-files-o:before { + content: "\f0c5"; } + +.fa.fa-floppy-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-floppy-o:before { + content: "\f0c7"; } + +.fa.fa-save { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-save:before { + content: "\f0c7"; } + +.fa.fa-navicon:before { + content: "\f0c9"; } + +.fa.fa-reorder:before { + content: "\f0c9"; } + +.fa.fa-magic:before { + content: "\e2ca"; } + +.fa.fa-pinterest { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa.fa-google-plus-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa.fa-google-plus { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus:before { + content: "\f0d5"; } + +.fa.fa-money:before { + content: "\f3d1"; } + +.fa.fa-unsorted:before { + content: "\f0dc"; } + +.fa.fa-sort-desc:before { + content: "\f0dd"; } + +.fa.fa-sort-asc:before { + content: "\f0de"; } + +.fa.fa-linkedin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin:before { + content: "\f0e1"; } + +.fa.fa-rotate-left:before { + content: "\f0e2"; } + +.fa.fa-legal:before { + content: "\f0e3"; } + +.fa.fa-tachometer:before { + content: "\f625"; } + +.fa.fa-dashboard:before { + content: "\f625"; } + +.fa.fa-comment-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comment-o:before { + content: "\f075"; } + +.fa.fa-comments-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comments-o:before { + content: "\f086"; } + +.fa.fa-flash:before { + content: "\f0e7"; } + +.fa.fa-clipboard:before { + content: "\f0ea"; } + +.fa.fa-lightbulb-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lightbulb-o:before { + content: "\f0eb"; } + +.fa.fa-exchange:before { + content: "\f362"; } + +.fa.fa-cloud-download:before { + content: "\f0ed"; } + +.fa.fa-cloud-upload:before { + content: "\f0ee"; } + +.fa.fa-bell-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-o:before { + content: "\f0f3"; } + +.fa.fa-cutlery:before { + content: "\f2e7"; } + +.fa.fa-file-text-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-text-o:before { + content: "\f15c"; } + +.fa.fa-building-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-building-o:before { + content: "\f1ad"; } + +.fa.fa-hospital-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hospital-o:before { + content: "\f0f8"; } + +.fa.fa-tablet:before { + content: "\f3fa"; } + +.fa.fa-mobile:before { + content: "\f3cd"; } + +.fa.fa-mobile-phone:before { + content: "\f3cd"; } + +.fa.fa-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-o:before { + content: "\f111"; } + +.fa.fa-mail-reply:before { + content: "\f3e5"; } + +.fa.fa-github-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-folder-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-o:before { + content: "\f07b"; } + +.fa.fa-folder-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-open-o:before { + content: "\f07c"; } + +.fa.fa-smile-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-smile-o:before { + content: "\f118"; } + +.fa.fa-frown-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-frown-o:before { + content: "\f119"; } + +.fa.fa-meh-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-meh-o:before { + content: "\f11a"; } + +.fa.fa-keyboard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-keyboard-o:before { + content: "\f11c"; } + +.fa.fa-flag-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-flag-o:before { + content: "\f024"; } + +.fa.fa-mail-reply-all:before { + content: "\f122"; } + +.fa.fa-star-half-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-o:before { + content: "\f5c0"; } + +.fa.fa-star-half-empty { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-empty:before { + content: "\f5c0"; } + +.fa.fa-star-half-full { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-full:before { + content: "\f5c0"; } + +.fa.fa-code-fork:before { + content: "\f126"; } + +.fa.fa-chain-broken:before { + content: "\f127"; } + +.fa.fa-unlink:before { + content: "\f127"; } + +.fa.fa-calendar-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-o:before { + content: "\f133"; } + +.fa.fa-maxcdn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-html5 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-css3 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-unlock-alt:before { + content: "\f09c"; } + +.fa.fa-minus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-minus-square-o:before { + content: "\f146"; } + +.fa.fa-level-up:before { + content: "\f3bf"; } + +.fa.fa-level-down:before { + content: "\f3be"; } + +.fa.fa-pencil-square:before { + content: "\f14b"; } + +.fa.fa-external-link-square:before { + content: "\f360"; } + +.fa.fa-compass { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down:before { + content: "\f150"; } + +.fa.fa-toggle-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-down:before { + content: "\f150"; } + +.fa.fa-caret-square-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-up:before { + content: "\f151"; } + +.fa.fa-toggle-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-up:before { + content: "\f151"; } + +.fa.fa-caret-square-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-right:before { + content: "\f152"; } + +.fa.fa-toggle-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-right:before { + content: "\f152"; } + +.fa.fa-eur:before { + content: "\f153"; } + +.fa.fa-euro:before { + content: "\f153"; } + +.fa.fa-gbp:before { + content: "\f154"; } + +.fa.fa-usd:before { + content: "\24"; } + +.fa.fa-dollar:before { + content: "\24"; } + +.fa.fa-inr:before { + content: "\e1bc"; } + +.fa.fa-rupee:before { + content: "\e1bc"; } + +.fa.fa-jpy:before { + content: "\f157"; } + +.fa.fa-cny:before { + content: "\f157"; } + +.fa.fa-rmb:before { + content: "\f157"; } + +.fa.fa-yen:before { + content: "\f157"; } + +.fa.fa-rub:before { + content: "\f158"; } + +.fa.fa-ruble:before { + content: "\f158"; } + +.fa.fa-rouble:before { + content: "\f158"; } + +.fa.fa-krw:before { + content: "\f159"; } + +.fa.fa-won:before { + content: "\f159"; } + +.fa.fa-btc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin:before { + content: "\f15a"; } + +.fa.fa-file-text:before { + content: "\f15c"; } + +.fa.fa-sort-alpha-asc:before { + content: "\f15d"; } + +.fa.fa-sort-alpha-desc:before { + content: "\f881"; } + +.fa.fa-sort-amount-asc:before { + content: "\f884"; } + +.fa.fa-sort-amount-desc:before { + content: "\f160"; } + +.fa.fa-sort-numeric-asc:before { + content: "\f162"; } + +.fa.fa-sort-numeric-desc:before { + content: "\f886"; } + +.fa.fa-youtube-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-square:before { + content: "\f431"; } + +.fa.fa-youtube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square:before { + content: "\f169"; } + +.fa.fa-youtube-play { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-play:before { + content: "\f167"; } + +.fa.fa-dropbox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-overflow { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-instagram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-flickr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-adn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square:before { + content: "\f171"; } + +.fa.fa-tumblr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square:before { + content: "\f174"; } + +.fa.fa-long-arrow-down:before { + content: "\f309"; } + +.fa.fa-long-arrow-up:before { + content: "\f30c"; } + +.fa.fa-long-arrow-left:before { + content: "\f30a"; } + +.fa.fa-long-arrow-right:before { + content: "\f30b"; } + +.fa.fa-apple { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-windows { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-android { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linux { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dribbble { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skype { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-foursquare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-trello { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gratipay { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip:before { + content: "\f184"; } + +.fa.fa-sun-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sun-o:before { + content: "\f185"; } + +.fa.fa-moon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-moon-o:before { + content: "\f186"; } + +.fa.fa-vk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-renren { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pagelines { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-exchange { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right:before { + content: "\f35a"; } + +.fa.fa-arrow-circle-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-left:before { + content: "\f359"; } + +.fa.fa-caret-square-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-left:before { + content: "\f191"; } + +.fa.fa-toggle-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-left:before { + content: "\f191"; } + +.fa.fa-dot-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-dot-circle-o:before { + content: "\f192"; } + +.fa.fa-vimeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo-square:before { + content: "\f194"; } + +.fa.fa-try:before { + content: "\e2bb"; } + +.fa.fa-turkish-lira:before { + content: "\e2bb"; } + +.fa.fa-plus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-plus-square-o:before { + content: "\f0fe"; } + +.fa.fa-slack { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wordpress { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-openid { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-institution:before { + content: "\f19c"; } + +.fa.fa-bank:before { + content: "\f19c"; } + +.fa.fa-mortar-board:before { + content: "\f19d"; } + +.fa.fa-yahoo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square:before { + content: "\f1a2"; } + +.fa.fa-stumbleupon-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stumbleupon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-delicious { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-digg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-pp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-drupal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-joomla { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square:before { + content: "\f1b5"; } + +.fa.fa-steam { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square:before { + content: "\f1b7"; } + +.fa.fa-automobile:before { + content: "\f1b9"; } + +.fa.fa-cab:before { + content: "\f1ba"; } + +.fa.fa-spotify { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-deviantart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-soundcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-file-pdf-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-pdf-o:before { + content: "\f1c1"; } + +.fa.fa-file-word-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-word-o:before { + content: "\f1c2"; } + +.fa.fa-file-excel-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-excel-o:before { + content: "\f1c3"; } + +.fa.fa-file-powerpoint-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-powerpoint-o:before { + content: "\f1c4"; } + +.fa.fa-file-image-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-image-o:before { + content: "\f1c5"; } + +.fa.fa-file-photo-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-photo-o:before { + content: "\f1c5"; } + +.fa.fa-file-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-picture-o:before { + content: "\f1c5"; } + +.fa.fa-file-archive-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-archive-o:before { + content: "\f1c6"; } + +.fa.fa-file-zip-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-zip-o:before { + content: "\f1c6"; } + +.fa.fa-file-audio-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-audio-o:before { + content: "\f1c7"; } + +.fa.fa-file-sound-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-sound-o:before { + content: "\f1c7"; } + +.fa.fa-file-video-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-video-o:before { + content: "\f1c8"; } + +.fa.fa-file-movie-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-movie-o:before { + content: "\f1c8"; } + +.fa.fa-file-code-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-code-o:before { + content: "\f1c9"; } + +.fa.fa-vine { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-codepen { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-jsfiddle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-life-bouy:before { + content: "\f1cd"; } + +.fa.fa-life-buoy:before { + content: "\f1cd"; } + +.fa.fa-life-saver:before { + content: "\f1cd"; } + +.fa.fa-support:before { + content: "\f1cd"; } + +.fa.fa-circle-o-notch:before { + content: "\f1ce"; } + +.fa.fa-rebel { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra:before { + content: "\f1d0"; } + +.fa.fa-resistance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-resistance:before { + content: "\f1d0"; } + +.fa.fa-empire { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge:before { + content: "\f1d1"; } + +.fa.fa-git-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-git-square:before { + content: "\f1d2"; } + +.fa.fa-git { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hacker-news { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square:before { + content: "\f1d4"; } + +.fa.fa-yc-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc-square:before { + content: "\f1d4"; } + +.fa.fa-tencent-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-qq { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weixin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat:before { + content: "\f1d7"; } + +.fa.fa-send:before { + content: "\f1d8"; } + +.fa.fa-paper-plane-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-paper-plane-o:before { + content: "\f1d8"; } + +.fa.fa-send-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-send-o:before { + content: "\f1d8"; } + +.fa.fa-circle-thin { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-thin:before { + content: "\f111"; } + +.fa.fa-header:before { + content: "\f1dc"; } + +.fa.fa-futbol-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-futbol-o:before { + content: "\f1e3"; } + +.fa.fa-soccer-ball-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-soccer-ball-o:before { + content: "\f1e3"; } + +.fa.fa-slideshare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitch { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yelp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-newspaper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-newspaper-o:before { + content: "\f1ea"; } + +.fa.fa-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-wallet { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-visa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-mastercard { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-discover { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-amex { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-stripe { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bell-slash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-slash-o:before { + content: "\f1f6"; } + +.fa.fa-trash:before { + content: "\f2ed"; } + +.fa.fa-copyright { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eyedropper:before { + content: "\f1fb"; } + +.fa.fa-area-chart:before { + content: "\f1fe"; } + +.fa.fa-pie-chart:before { + content: "\f200"; } + +.fa.fa-line-chart:before { + content: "\f201"; } + +.fa.fa-lastfm { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square:before { + content: "\f203"; } + +.fa.fa-ioxhost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-angellist { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-cc:before { + content: "\f20a"; } + +.fa.fa-ils:before { + content: "\f20b"; } + +.fa.fa-shekel:before { + content: "\f20b"; } + +.fa.fa-sheqel:before { + content: "\f20b"; } + +.fa.fa-buysellads { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-connectdevelop { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dashcube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-forumbee { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-leanpub { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-sellsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-shirtsinbulk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-simplybuilt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skyatlas { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-diamond { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-diamond:before { + content: "\f3a5"; } + +.fa.fa-transgender:before { + content: "\f224"; } + +.fa.fa-intersex:before { + content: "\f224"; } + +.fa.fa-transgender-alt:before { + content: "\f225"; } + +.fa.fa-facebook-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-official:before { + content: "\f09a"; } + +.fa.fa-pinterest-p { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-whatsapp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hotel:before { + content: "\f236"; } + +.fa.fa-viacoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-medium { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc:before { + content: "\f23b"; } + +.fa.fa-optin-monster { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opencart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-expeditedssl { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-battery-4:before { + content: "\f240"; } + +.fa.fa-battery:before { + content: "\f240"; } + +.fa.fa-battery-3:before { + content: "\f241"; } + +.fa.fa-battery-2:before { + content: "\f242"; } + +.fa.fa-battery-1:before { + content: "\f243"; } + +.fa.fa-battery-0:before { + content: "\f244"; } + +.fa.fa-object-group { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-object-ungroup { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o:before { + content: "\f249"; } + +.fa.fa-cc-jcb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-diners-club { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-clone { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hourglass-o:before { + content: "\f254"; } + +.fa.fa-hourglass-1:before { + content: "\f251"; } + +.fa.fa-hourglass-2:before { + content: "\f252"; } + +.fa.fa-hourglass-3:before { + content: "\f253"; } + +.fa.fa-hand-rock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-rock-o:before { + content: "\f255"; } + +.fa.fa-hand-grab-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-grab-o:before { + content: "\f255"; } + +.fa.fa-hand-paper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-paper-o:before { + content: "\f256"; } + +.fa.fa-hand-stop-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-stop-o:before { + content: "\f256"; } + +.fa.fa-hand-scissors-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-scissors-o:before { + content: "\f257"; } + +.fa.fa-hand-lizard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-lizard-o:before { + content: "\f258"; } + +.fa.fa-hand-spock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-spock-o:before { + content: "\f259"; } + +.fa.fa-hand-pointer-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-pointer-o:before { + content: "\f25a"; } + +.fa.fa-hand-peace-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-peace-o:before { + content: "\f25b"; } + +.fa.fa-registered { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-creative-commons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa.fa-get-pocket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wikipedia-w { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-safari { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-chrome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-firefox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opera { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-internet-explorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-television:before { + content: "\f26c"; } + +.fa.fa-contao { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-500px { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-amazon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-calendar-plus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-plus-o:before { + content: "\f271"; } + +.fa.fa-calendar-minus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-minus-o:before { + content: "\f272"; } + +.fa.fa-calendar-times-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-times-o:before { + content: "\f273"; } + +.fa.fa-calendar-check-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-check-o:before { + content: "\f274"; } + +.fa.fa-map-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-map-o:before { + content: "\f279"; } + +.fa.fa-commenting:before { + content: "\f4ad"; } + +.fa.fa-commenting-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-commenting-o:before { + content: "\f4ad"; } + +.fa.fa-houzz { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo:before { + content: "\f27d"; } + +.fa.fa-black-tie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fonticons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-alien { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-edge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card-alt:before { + content: "\f09d"; } + +.fa.fa-codiepie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-modx { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fort-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-usb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-product-hunt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-mixcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-scribd { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pause-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pause-circle-o:before { + content: "\f28b"; } + +.fa.fa-stop-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-stop-circle-o:before { + content: "\f28d"; } + +.fa.fa-bluetooth { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bluetooth-b { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gitlab { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpbeginner { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpforms { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-envira { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt:before { + content: "\f368"; } + +.fa.fa-question-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-question-circle-o:before { + content: "\f059"; } + +.fa.fa-volume-control-phone:before { + content: "\f2a0"; } + +.fa.fa-asl-interpreting:before { + content: "\f2a3"; } + +.fa.fa-deafness:before { + content: "\f2a4"; } + +.fa.fa-hard-of-hearing:before { + content: "\f2a4"; } + +.fa.fa-glide { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-glide-g { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-signing:before { + content: "\f2a7"; } + +.fa.fa-viadeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa.fa-snapchat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa.fa-snapchat-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa.fa-pied-piper { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-first-order { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yoast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-themeisle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official:before { + content: "\f2b3"; } + +.fa.fa-google-plus-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-circle:before { + content: "\f2b3"; } + +.fa.fa-font-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa:before { + content: "\f2b4"; } + +.fa.fa-handshake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-handshake-o:before { + content: "\f2b5"; } + +.fa.fa-envelope-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-open-o:before { + content: "\f2b6"; } + +.fa.fa-linode { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-address-book-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-book-o:before { + content: "\f2b9"; } + +.fa.fa-vcard:before { + content: "\f2bb"; } + +.fa.fa-address-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-card-o:before { + content: "\f2bb"; } + +.fa.fa-vcard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-vcard-o:before { + content: "\f2bb"; } + +.fa.fa-user-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-circle-o:before { + content: "\f2bd"; } + +.fa.fa-user-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-o:before { + content: "\f007"; } + +.fa.fa-id-badge { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license:before { + content: "\f2c2"; } + +.fa.fa-id-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-id-card-o:before { + content: "\f2c2"; } + +.fa.fa-drivers-license-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license-o:before { + content: "\f2c2"; } + +.fa.fa-quora { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-free-code-camp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-telegram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-thermometer-4:before { + content: "\f2c7"; } + +.fa.fa-thermometer:before { + content: "\f2c7"; } + +.fa.fa-thermometer-3:before { + content: "\f2c8"; } + +.fa.fa-thermometer-2:before { + content: "\f2c9"; } + +.fa.fa-thermometer-1:before { + content: "\f2ca"; } + +.fa.fa-thermometer-0:before { + content: "\f2cb"; } + +.fa.fa-bathtub:before { + content: "\f2cd"; } + +.fa.fa-s15:before { + content: "\f2cd"; } + +.fa.fa-window-maximize { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-restore { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle:before { + content: "\f410"; } + +.fa.fa-window-close-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-close-o:before { + content: "\f410"; } + +.fa.fa-times-rectangle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle-o:before { + content: "\f410"; } + +.fa.fa-bandcamp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-grav { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-etsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-imdb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ravelry { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast:before { + content: "\f2da"; } + +.fa.fa-snowflake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-snowflake-o:before { + content: "\f2dc"; } + +.fa.fa-superpowers { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpexplorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-meetup { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.min.css new file mode 100644 index 0000000..7a232d0 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v4-shims.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.css new file mode 100644 index 0000000..7777465 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.css @@ -0,0 +1,22 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.min.css b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.min.css new file mode 100644 index 0000000..884ec3a --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/font-awesome-6/css/v5-font-face.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-brands-400.ttf b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..502f3621e7f97d1d94ce05794e47a6c6a56e94e7 GIT binary patch literal 186112 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 Ctd9Bs literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-brands-400.woff2 b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d801b51f665b890e58113fd9d12f8bb893b26a08 GIT binary patch literal 107460 zcmZTvQ+Opj6F#+V+cvh|+P3YjZQJJ7wr%UQ-EM8$*1zBNpNnKNljM1yOp-|^iMxV0 zD*yxl0Du$?17QE9pnWU<XfH6(|Cs+DK)6B4!HFRa!4kj$#oUuo^&V3R&=3*CP{bwY z29DzZ&|?sQVU;@}dSc#^J|Cd6k`Q%JP7UnqW|67y^LAPA`*qs@d{oY-`rc>gTV?aR z>#4(9PoQEuTvHI8uKox|gd=t{(3Vub3uVRAIK<XFNZKh&APwsEdXK*?#UH|`ZHGKl z1Nm)SuyQNw^sRiH2Zw^R(OJ~t?K#K)ZRV|49z+dYRTx@XYVkB7L8vV}L1^m1Wwdtk z!pkCmrA5p6@6nd)9NIl!vOzK*OObz`dd2s1j*OTOUVUYkby!zdXD6hao4Jy<6x~Xy zIyj~d>!kUr4RO>mzSG_c2v0j=fq%ce=0N(vVPASW_cagux!~OOxAP~VbEI7|S?@K^ zyT0I9zQ+Wej23N0r7A@QH3~G!kO8<%f+1mX@E4_><q2PBa4QLdo#f3I!iPfk<{Qj$ z*$iHqxww$Ygt@QIcaz!b-)}f{eON3v9mGvNWl5DCe(81mqX>t1=a>nQd4rd-<Mb+L zBJ&w^)Q@Y_VG$-5@bOtrWqL}S)^J!^(9@ElO&9-ZwqPv>q%#`Y{Q<ry$lI7;3-^y} zZ<!i?JG^6S+qi~z&e4mpRo8syZG-M-fAQ(}%$AqT(2+TMdOwQ#7p;F(ke@onsuqN# z3ZMcp;6OCMoK#3@Q&{;7T512asZtITctjNtF+tk#0?{f}ucx#CngWWvJ`qF0A#RUe zT>j+Nkd?W4;nqY|q91VPXwMV9G>ZL<9VN2hjzCIEyw-M#9oyK$>Ii>hV8ZU0ds=sx zOG-5nC^hZte?7^h20|0nNMXjR6>Wj{{Y~rVfq|01*TC{)YJ!+L(_^<H+3VT9_AT|# z7gPY5fac4t)i3uqf95)Xs3zSb5fnaL=r>qK__u$v^Lb9Ze?Pf@YejcVMNT*gcf8); zvCb@5OE>~>TivfcKeK@Qf%24)T6Gz}eAgep`X~Z#zrUA@3IY~wl7An10mg+1Zyx9Z z@Z~(cvOyU-D5;@9H2RpHwOUXJANwdSpbsqSjtyvln(m(Zh)yXnci5bu9rL+!Y>=6` zYqJmYR?MYBBM)mVmimHsiuN_e9#(n6Grt+jQgNEk9z+Ne3nmka)~eoC<D?*Gdefw+ z9&vm}NfwX-DrX-*vqkb^91-tQW(1W0Hmk+DNp=1wf|Zjf6L5THnGd<MZ`shlO^OX9 zu-4qwBzQZOUK2`tf6JXik>c@=IXnD8$5zXiC*sz%I8TXnQ-fy}ptw&tz)>V-mDv1k z3nUV(UgyeBmB$ay^Zlgb#f5cgu|BFe>#4M5k?%>-ORY^71ctA)5(I0?&lZco(?|Qz z_?cat_g}ZHN6ffj#rvr&Zzc*$s7u$WGmib{tE*Eu?MkD2*^E@t12WZc_v)wwss?89 zNWaxYO)t~nRJ2y+JNeU>ouqT(VDWG1S0Uh)+7%r9aJ>h!gfk6ac@5@2A=z9PG}(%$ zM?5>R_iqp7d%p54@FlExTJ`93v9bGET=ib(9cJhB1$K9Emq8q@m;S}w3--o=l`6;m zw1umu6PG=`YfwWZa1BkJHofFBOuT+xtBHcAZ-5k(<7BCVS@XR5rcS)@lb5y3Q}5}y zxbEpb+$U+OQ*lpSVk*v&mHAg0-%mevKYpOkyHm9JM@wqHj_bib!wtK0|9qUJ!b$_z zxM^=*D4+TLrSxaaYvIq@jrn?nu~9d!9c)E>Mxp}8T7BMWK2x7w#eEId)VPTF&LS2_ zcTK1Rv==_HeeNcF-y>=qY`vq#AvOpwr{eDvKL(`E$UZb<2(Rfm6D_C*U<-^*%)z$l z`fmxs8Y43%6L(WZ0>MY<7iQjiU4h5JquDT!Zxl#kY$4<T*=3^@Snx~CLRn}L^2_gV zKZg}$;vEqHau}Rs{PcL_o@L<ENkH65$m~f_?Mc|xNnqYd=+;Sa?@9O<c0eF@$N+Xw z0e09fb|Q!W-!LsaGrOD?tG^>|8M#1tqq2sob%cx3CvtD?i=K8T$IHFEzNW2I4~_lJ zJ9oP68t?pX-@a#WK0W?Tel)%&J~%!){&;?tl!QhlL|T!Oa+a3gjDK>y6p79hz$}qt z3vSsX%@;|v#p$dNE`JxfgxSxlyvYiV7i{AXqg3<29Pfkbrc607*biNHP(APZ@r6;{ z!0Y!%d$2Gar*?<B-!X0tg}-1M>|%X{*;!Epn>EKIPq4}zO)6`V*q9~bCoDS2GfrT1 z&@LaOZ6s^lsc%hiy^;uu9i)G7k%(s&Q}#?)vSxpjwptlxWgQ(gc>WT|FpwvuN>ARV z*-LT9<hIF)o#i|Za9-ir*ZsFvxf3|)9=9#uQQo9Is^8Q;ZQX3$^*Y^m)odnSnYwrW zSkJv?bbs!G+Els1crJJ!j&<DkDe=YdvGLLI;qpQ9Vd+)y6AXA5kH8-fSGJ5tJc*F^ z`;g;m4PR3c<lcVwyLQ*(`%+<i=4)>@&8z(r?4>M-D+Ff69a|*DPT<$8BWz<yKv1aS z5_~l;@g`6BHWP?H8@2B!FgqvK0ls{|xe@on>DSd*kq5rQ9z=Hn);+5JM7HOT>%GnH z`1o52zv;TwH1!3!unEmf>P6Gi>GZ=!?Y~o)Jmkj*g}RAVPIC6+{GP<WD8vQEkzQ#? z<36|oDW`|ICgjAES4~-3cAtCQkAh!MMD=}qN%Pm&2yXFaozpwLH-oPxwlmx8bLtZ6 zF51%l*1!LLFMR*`#wHrgVf5}~KTRr;$$7F_Yj0+;Vk+iO_wqO!S2a*UkX55pD^w++ zi7(|#x)Yj=q1h^10RjAFJFj&e>NK5cpwvbv|J8cj<OGrip(z}IVF>}id@%Tw_+E(n zs^~kddu#eC-aboz%j>O~J4t>6|NVSI;8nE+dZOi(l~*Wna@CoARoQhi+Zk$Kn+?)Q z`1>5RGpQDEa@U!|SOa$=%Ns0T*IJ%x-JxBYRxV~8m{oUF!DHQ;RbpOwYF(KHT0UW& zgj+XS!D8KvTOtl>U5*P{E>PKaR?t~xA8=M^U0GRKSc&Y*@y3npOYemT00{A!vNiGH z&Av66tIyG%`k&^XUZ0+y%ACTT7M%{AVw{?tel%yPCv7LaC#fXyCtW7nB{3w=B*!Mb zPIQ}kB~fikQAs6n`*HhGZ?SFB=wr`CN$mT9b06L7%=v$Co;&H)*|?_70$(>a65JNt zEb2qkQj=wb(u3p+`FzJ5)tB^~a}R{>zlxUdx8}xRx@$gu%023lSEUDck5_>0{%Ra^ z#FuaYw98<Z_){Esw#kJvcAgfb3%ubNCXj^T7^Sc{jb`?XQnF;y$eQ6UW)8@jvt;v3 zn=v8obI(%UF!bGoOLs=X6L<7n{|)bd@h%I9>_3?CXEX<}1;R2TX(Cp=uT=$X25{D2 zv&_R?aLq$q5IqEs91#KF0Z@Cx#16n=WQUt!W{2@%Xor(wYKN6!Y=;+7M0^$&M0_3= z5N>N@Qiq3O@|}#xiT(z!DE~+_mB4+fQV=RxSt$9O43Hdl7Bp^8V@!w1VcVTQkv#oY zM66h)vrGk`Ds4;!c%@eXHce!HSI^NO6+g)2ox#!+Lkrah`KUXkGmu6MVc>paGZ>Me zXQ$OeM_q=QvY`JEX<(}dk4i4!-af`d#}amAsb}$dAWf^MxfrU`pl(1l_@!iQ*85dI zObb8C)Ib|tB3(UdSb|!`)?Po13(v^dKp9LIR*yLZfz24vf^!A(Q!{;+0shyJm&^Lk z$oUgD{K0Y;i3NgCgj4xIRJ_I97O8BYo}@bqXNh<8m7cBeGeycuSVsGB>o7hACCSm- z#`WoI1NKt`K?8e(tnGUPV;XkmO8Icyu$%AN>+sWX9Lp8to|n0WaodXh2%+foTf_3| znEvqAu)qo?6l(a$8Kfh)BRL{v98Z`7wIit`Eh5=$AgTl!7W^*u9_gMjzKkwp{Bayr zEwTL|%rO7(CwI0-hzI;J8WT$04(T4kp0BR7kBm>eO=Nzgfdkk)3Yi1iE!Hg-C4~g3 z#3;c5_CZE_G=4fh(sKe@Lh`PF6NnRttvI73V~E7Wh%ixnvP|NX*#m-;nG*(|jD48S ziKi2slT5dez1&qy`ncZ2<_%{Dlx?8<#Lw}e8$wTTPjmtDcoGF|gAYEqaAs6bPEW*M z%DGUI7?C^){Rk3I7Td;HS$!G(@aqY@iR@c4PdNBfi#zo@&JU3-;jN~H*H?gj0m=c} zf%8kOPx=S6e^P!@{;vNW9JN*KTCoCN<XYgGMj1mTSou#YH05v=2_R)zTxnd1oK$YW z&sMAQ<cdYBMP&=+<GQu%YPgDMOK0VD<@Cj)(%Rx$t!*x)WhM7{%)+Yz!V(4ren<Fu z_2RtJyn-50ekck%jI&o%1x2QR%o6=V{el|t9+02S92ITl3YIoX`9qZJrGL`@1hnEj zB0Qqm(VbyYTm4Y(OXCi!Bw3UH1AV5jHv7jPI7ak9HXr}S|A*mBqKqiL73nkNA$bw8 zG(X8td`;<r%|z-)rr%$Zhli$J5D`2eJ~V%UC>`+w-Mln(uuL=TAP}`C%)th_Ch!Jz zkPfH~T?gU|{|z~)0Q9QIuV)1k)*oq#z-VTpN)Pa+DZ>Bl31P1nqu>Q^trZO);7mV( zUWr2`fLK>4G%<XaalyZEh?Eb=Wt^9)kEY;-a4Qil8|Y0vfzL=kp<k&(%?&QD7d<AS zp_zw}>`Xf$CFhrRfk|rldBRG5Ow5DS2|6K0J<lOYh*)sGQ!}t0U>^`4LgE7FgZ^R( zw7aQLEbQ80lW{@vxxzdVcmcf${SCD<HJ}kh7<di7{mC!4{k(_l1>y(zAU>gZv7(;0 zxxu6G0`v2R?t$<J{epi${D81kCL(DKU%`2RG1iFS7eaI-NIBsewxf6hyY-3u66w}2 z^heH5JrNvk>(hm$zSwn-A&fY^`7WnCp{_7Zk|B8ns>Mdpt#eFXsA}b`R<t&%_>Rfj z@w!#kmRFb4&yG)zSKC|u0hYI~*Biw?A>#2GodDgu!x7(~wO=93DrxD)(*^KD4wvZW zP#t{U-9CSfwf$oH1=iQo?c24h6;#6dT>I~!l+qen?%E(?00DPUNFs7YK9kh05P9vv zIzDE`;+o=^iLof9y*!sJEMPI+h)tI&9yif(`l49iAE@sRT6qi~?=f}&P3F=NL_rVS zKM95I2%HARyKAI|!x`@n^PvaZE;5BWdFMfuULcp7B@T1GD4TFm#-vglG>>XL0iBt8 zfntyz;O4>@LdPu0AgI#l+3hQ?tiwKLlKF7{#>Z?(#=|Ue5L3yRB(12lI0_SUon~M7 zXUB-&jbX?%3oVeH##rHanP<UXl@Ojc7D7;^O^JgU!IwO#3wkA_HWZRout$pMXK_^* zhhvT@gBz)%*`<=fB;(lBFc1IXcpWr`r<=CQ3Q`o~kSpM_B|EP+s-_nAE(T{fg}|g5 zwrcH3dm932zvRfb!6l)@itYbpYScCVNirl{btpXmW7TQLWH=o}Ve%J12dgfp0xiv~ zj{bYY#Wwb&6-IP9R1>Z!?i{ys;eO`GBve_P8%uYIT{=QUwrLdz-NIujdyF}2!W+jh z3Ut>e1IJLkUDqcCA7PJH18b`z-bb}eGMAF3E(nA-Rl=lD{9!PaK@y_GG-ZH4{e_k_ z!)(h5qAtGT*+vpFpxHA#WHhRoXViqF|9jurpYjVGi>}--Q2tY4TTaC|xJ-kfAEBsE z3DZImajFn*3*XC%#cc{bM_FvQ&ZDG)TJ(6Z`>^$lt@}yC1408`nhOkWwEDPKNo==t z=j{<M1<sxpw&SUqj&@Gp*O$(V%-%_?U^%bp%@M%C_yyAoB@ohz9Av9>DP&)s6R;b+ zhrS>&MlR=O2uqzX9q!XJ7*4H$&{kQTc>vEprDPP9kd2|hm=O2?L-9`=F50MBC}&+S z+>7LL$|28BwFcYkLx<ZQ4H#hnqjoijVddJq<7pE3Hd=e)J`G1(mj+O9ICi0NxrO1d z(~f<3e6W<;axOPapaZTm8l5Uu&h?!5>D=+5k-1_=3=W%~gS~O6+xa#Zs)71I_jWZ7 zJ&;qxeml%+J41f9ADo|DXRSS*;2qs8iSiWcy(Tu}VtKQ}#nTyX=x<k_L3k`v!d&^| zBC61&z_iY0zk!Jf-p${mLzy3QMrG%mew9ntGOs!qSM=uZ_#_ANlhxdTx(ITl(v}-@ zoU+1~deEl&DQ^$M6`eacCVvHAW7e+W<C4*d<>H89{)*t)R8I07qgT%c>&=1PbYE$( zgd5aj>nMwZEVmgzSvmRS6z{O}(jMnnS57Xup|Ni+K3*=fn9nrKG8KY_Y>>_*oi3?J zMojK;%0lhkQE{jp201G$nRC<4WsC<=-Yp_;KZ19QILNcB9X<+j*uImbVGu@LV0;b7 zcSda09$rRi-xT^4Nvuujm-f#4kF3`{Shg);uDw^7zt0QgHzI_2J9LE(O?Ev#`5}16 z_Vip4SvkFXAFUSfr}S0ZfEDCjzZTi1%+&KIu}jJDqAkr}J!`=CGecMq5z2S1_pkqG zYWme7_S&wH5yS>*=rcBp0@%Uv$kuRwZub68`@|h|un}m#<j%=`2E|b{voMt5nq^;e z_VJYaxvar^oI?lu`f7k!tkQ@V+qoAdQoe&vXgn<vb@9a58Il(dJTu&bAR|sWz~DYq zr?N`IEID@(iNP`xm=xFAjn0mXGfWxzhmNJ3(j8Bn85>iH1s^cXFcmaVpMfz1qNz?7 zR@tEH(G*=Fjy_MoPP|V8Ib_UhSsR+Nju&b(GtjJEq@L4L=Bwup-1?ewv=yZ;aO!!8 zW}VTTiw9lxso{1$nmsmHU443%QNr=ba5TaNyul}sxid8PY*zIOgjJ@kZyN!aM?*d9 z;{9<#c4}_^dLjd36hW$tSWcOxqMbCyg$A?#sqFC^uv=NFH0#;p0>ICpNL;*SKhEjh zCrELgRa4W!uC<~6r#|Q+$gF|qep`ZyN2}I!S8uELwY@wAuA+`(kuw3yp5Fw3rem`y zE}UhGCEfIK`UK;{i1eXC*##r}H5nB(#OAMSqaKWD0hUKr{$K6~C!=g!;fGcq1gA>I zzo<}?8@YoE>C+~t-QKNQo!u~#?|g(l|IIgjb$Cc*@S!G_UhvY>JPtXu9P^jP#HMQn zU#WnJEgo$2Y^7y;u9<sOt{(B9zfRqT;Ia|_EP)W-P&r4U(9idrP(TL?<Rh9ApNrv6 zQ8^jSe}NMbim*}sz~1{sB9*L~)F=NSsbr{&9uL2f<xW8G{0{j1x}DcscOG)E`Q@9S z(3<-rkrDDW%u$Jtwc+SzX!Ks9L=>n?m$T><uZYn4`HcSb9*?rcw3lSt#z$gd|CB8h zS2oEYb*JV4C?>V2-jNcODoTO4BjoESoVFHzz}{#{b>{VX-TEI@Ifq%PXDqT<XGV6l zO`pxD@T*R^tz*#kN9$Q0s>;g9_barlO4Qj`{KB{G-uoXYBCvm3MN$eQO$%%^asj9! z0i~vV5TZ6<48)wBDyf;e=tCgfvtDJVi)tMCL-Pkdan_y2#bwR9+A#x$n!~wqi$wnh z9X-m-sY~6S*tuH0&<|)~R0~e4Yt1;i&lH-nXM3KFT)oZ|0({eSMzb*FY3ADPZcpFk zR(kK}x0&o^gkTsWAvcGF8S~YFKrx4DI*q5ef5ELzpQD`_dk9z_1YzAE9F79BaK9f> zK}I0v*BHT4#fx{Gix3biFCb7wKWgqgVsQiuE8%&hAETux_K2$2^}5rT>*%<1ChlgK z^-Fz^(A#l<&|QQ0i8Fes5{?}_<?c|8RqrXBu$J9i2`>FD+>k|m3pN_7EcYtOhF8+T zQVA2%k2wtlkl^k@7VH7jjZtKodvS5Yh1IUe)HD`<|DggFfTN4uWx?EM)lV#ta~sZL zjzAE8+wCwB!VC{+g<<9C2?Z+RQYo-hRX>&HB{wd*(><_{fnZrGU;rb^L7eHzqIAlh z8=8?siym`U$gED=Hyl|q)k-5!5zMkOti|=WjjPoyDrfb~{8@g67}7WOyVJAGQ!F78 zU-8Zs(>q1bk46L?&=f1;6d%Hw$TrxCkq~!p+Ffln+-t11hv$A7Ku~b!DZo&$!869p zUA0;Dr@Ei&W>Bg>Jon)BntO4@j10uPiPn78Ek8;=p)IGC2D#?K-7jw$#LJMiUAAc* z{<xx*{p_JMOPr%06;ITITg|V=YUwY|7mpyxB>F3aXkEa#CJtp86bCd5kybEAY!@_W z(4kBLZj=ZMFsg7VEQClO=AfPNG$hm6R{)Wf#X9A$hK*edo2Z+E0EK3j+;J$3WYC~= zF}?DI`m^R#Q^r~!V~v`a*I6@)1PX<#e_XWcveK49B+s;)Xac}~SJHWO>LU>2{;3+~ z1;bv(P>mq<G0o0f!nP~qXSbiL0YR87jM<Fk3=a!Y1l@F61J1YlB9UhJx-5P15DnPs zGL7B5m9_Lh&Ifni*%d-5+URJ^9e;`H*$KC(`Qul1-u=`s3U)&&ODvYM-j8S!-u*EV z0mdrr@Z1oD75HIxud*Aic>#t)|1+o7j=+xe;0*HwBYbExikBvOg98=mwn#FQ+gLyL z$l1~wF?!D|FZ`Zb8zjDQx_*Z&PRXSq1Y_G$U!=SlVY0$3s}c37WZ*i596fjjB+HMd z>sF69zzTZc>H@S^U&h<32dnhP#ie)CAg{C6eGxtA6mYb^Zia_+m;8w+zRh8uM~G8K zWR73x*WC(&YgL2J$Gw?R%F4*`L>Ap}Ul$U&0sEI|-L?(z%Rbld<Y$}xqZt5s{Hxhb zXzd+Z{lFuaE#g_Bjq}zTB=F+d>^D`?W;9055Y~LUB%Y=&wS<;pv$FnHVp}UN6~BKw zzD&4%Lfjsk;lmp%f1S){kE6^&66FH{US(lLp>sq5LG45uMTD#FmV=I6dO0>YNu{}y zFiya^=U)Bte0^oqED4}_h}lvrNHp<ZA?D8jIBE1H_Rw9=uu=lC8$J}TX+t?UYPJh; z3lnA=2;F&_5dbb%C~;O4#_tfrP1J(1jQQpO{ra%d8B@ccQrfNE<6`Qls4l(DBaqI< zi7wY{_<ey=Sh)twz5WB^g3*v`>UZ*7f6o(ljaFf4e+Dw#nb>lxB5XwBGWJcVW^cM8 zUCq?CMwX4#S@QU0gJv)$T3QnLEh)uNAh}vnBQ;fy^WBqs!qZ}_VQ(E1yBgY!r`(e0 zr;GzRyV@f6vFjmdyQ1T4q<!@cTij8~KniUInY=O@^ksVbC0w$Nf?%yoh2YmihOa@9 z)mgYE@#zrKxp2Qgv2|7eQ+XEU*><Qf0QpZJQY4UFZNIdfj_95Eyzi+2DV4c{(@nyb z1e}l@V_b6yV!uR2Y<>AWu4o_n>7q#%dI%gS_#!OS@5hZ%`j7Ac#rXT#S;q$ALK*UU zxy|xvWAObr`dKjQ?&Ixi$<v|5us~m+UF>?{Tn#si0CAq5m|`SYWHPd&d(!r6Na7!- zbLXQ?pukkWI{$@XHni4c<RvmcVL8RX8f31ThX41Cyz4Yy>HXWUZ>F)b>U6?Io|o_A zVrw4zqA%e!j>7#l2O<+p5$xOO{BZx!d?8pbFp;Yh=;rcK7h(wk@;{W0rDd!z6bs4v zga`X*Rxf6tnZ+=v{YfFg)28tk*Tn2H3&r?{gXlhI&AHLk3*@<`zruOY(r#3**f(0y z0S(v5t-}C7BpjM$4MBCysrZonm9j5C-=+>6hUE$mhb*()lrbQzlD0GN1)aGZ7FvZJ zzZ5jATqAASz~{13&b4&VcFsA=<wuY`vWF4A;m!M}Kt=$|D8LXD(e&rC>c-Z(OxW-0 zI``Dl=mB<iV%#NH_^_zk(XcM_H^L$844SpeVx#p3FD-HYeu?n8{Lu!)h=LR2P!&yL zybfv+i4(|9q8?~p3NKKSFk<W!*#&a7J1gBub@Pkk{YL6T_UHTF=?*YILP-%5L8eLL zPO!y|_|NV0DfUvw%&F$%hf$VJVpn6rS0Z%s0&+L2yk4`P(DTsCxajm#>pnLF3W4I~ zW=e$vb>jl3wig!{xjNZ^?7y#Q-d)=+s^WNfpWe*~H7$fS8jpP-{zJBqKwHd1wC~q^ zg`7Ol9Q<uB*<Xs#4JkI4tu#JUL2v%s{$(W<^>x-yU(xouSC8EO=+_qmTmxHMJxobq z=z;s)Cu08Ub8+!`TbTzF$jk9VRHLgJex3p#t*v3mgU|-mJ7tD}f9GLD{@ZvtWD^GK zF*8!JjOQCD(+0Qu15%2UtuiSOxdnqoApNjF&qi(reETiZ=jNF5jeOi*edy-@%xaG8 zfWElnzxM;=<y|g_Y|wXV)1(Vr(`)-@PB*#Y<5>g*dSAQuO>6_R959B~#M>StH}QCF z?Pz%WWAzGm&sD+N;{rkU;JkRQ&JUqe|1eAzUdRO@zp)pE!F~MU_pi^~$`exp2VNgK z9Oo|An!P$Ohd>Y_y18qY&dOeiWydY*+Hmb$buWj{QncG_TnBG#{@}%lSJ)xw6_g#d zIma_PsasX$%92BR`)o*xt(|U63_=DCVN9zJF~hf1#aR(TB<2aGd7QGE5B&{x04S$d zkzTj~!c{&TvOj)blBn@7|LLd{csNHgywnA|1A_H^og?vy3jJ8V0qa9FXsxRZ$0n*g z`-(PrkAG((c|o>mW9MG+zqENq66z}1{VA*8_#I#8%OWCqT6YW-1zD4@Y{wU(pME_B zp7KcZ#pW_EogR4NO<BSGD7~R42|0#~MsE5-(A?q=9W}>(*<kM=s^*{{K=Mz3-h~)! zq|eW$d|mf~oO<i20ip)#8Xy%TXN?l=L=gY;XB@ud-s_#bp3njD=DCPfXa71RQL;GZ zW&`~;;**tf68{~3_-y@%gPn5X?}<h7l!}v2O|^@qa5*U%0;USeHZ+n$V5JYhSrbSL z2u!hOipVJ)1+U6J*)u5@|9L><CrO#^90lAgG0|S~uIJTES6dfPx&O2tW@{O?tP#$$ z@3m>G_p?*?X#XbY3jZ}5L=5fj{yBsov<_a<s3SYu!7LjXFpwLbuI|o#&Zm#-SEa&T zqh580o{QO^2lc%Dd-bAKyR}Hyz2n0s3U|h<M~`gw8zbx3W@^ePi3WlQT#pMr7>20N zqF_Q~siSg8ur5fYM>eR~|4?v8%Y#kI7>#BocMq`(E0osyvSy?cy1WePF8Y%C!4|Mz z+a(Jaixqiyjrn}kbH@R+Vu?SAjp|#3Ct84I+@yq`Xa-*Qo>?s;(L>F@H~!grd8pDA ztj8C<hAR0WL7Hy>-KGdZ7Jf-J2+a?&kQ8m5pmB=pj_l4x&cL!7orq<!X*@8Vqo1K1 zDMs!rMQ064;C^1T-3uCl*;doTWZO1sF2`zN@0oVN==ZWp)JV3<EiZmp{qa|rBF&6l zwTBu$qwgBxm+AB)vaCukB>N0A2SVP@j%8u+`k-#Cdsk~>2$EuSd_%N~CNrM2lGg=h z2jY?fI)+G7e0MIZy$(iW<cBdM)1dP=NDKN_Sv0GkGo(W|vO_Z1;oic|#bIG!ZAt)U z_{*Cx0X_QKUN5C4)#Wz;=Z<;WYD5aIv7M`pjalgI?wD3Tc2SRHR4K2a?lrnH{2SPt zMO;Ofy>|-vpGF4+7lLBsh6*h=)+-lo#Sptm079-mr#15;D>YdNb_jAmm<L3GC~9&$ zIeApGRK963v8k@Q7DhS-Lsd+=TInRMidkw!<78Chq^XvfnwHrOoPyxz!=i$qZ~ODZ zB9Y(QX*}QOLwLU5+t5EjV%b09besDgxTHb!^=;vIGM&k0F`L7)$m4t@dkjw^sjcCM z@r9U2k}?flQI<?&fbN-SAp+Y`j`c_yueVyL|HphsR+;H+(#yMmP@UmL?&5jsb-<+S z$I<UCUYYC~^I*Tw^Q;zrYyf=t(rq%;{nF>>YRbTDzSmgWxqUhz{)PZfERI8Ik|z~( z?%&a)3a`dY@~{HJbLpD-m3%Z|=+&`khZyt&_Kr|K5q(*GIZ1+a5o5PLug-F;Ly;xV zu+-Tk*dI*D27~ldfY0|7N39t+8rI$7TpA17B-Qd7T8qc(!gzI9K^75Ze}mREtwb8F zzwy7=wqs4^l0_uvqEole8K1M|sHAetoBGzSKt#@3l?7Wx)|qqKPut_rxO62qfDiC; zY%W}^HQqig+tj#(fObHh1-F<H9`DIE!9Y95HK+Yc_~8mG{g0TU@y7mZ_x{JVWSC}t ztlz7-nUv01t#vl7KzcS<h95BYmb`7*#G&@m6<tSNJ^7upU;sh+Zr{%g`;}IdE!X8K zq&$)k<lqFl?EpH5%nt-?U<gIV0EjMJT|irZI1CP!ry3Kdkw7liqcPfomHwY-ks~qw zIaB>V9dNId2aE?=iCqcyB3D7<Q5&J`X#aA^a-sB26_gDLVz_i9O}bG6&^!~xCqK!l z8qj?sbdh}}jcMMHN2KV*h|Cv7r3#W7<x^rNd6igK!$swcQ!j>OXQcm&<w|K+!^J9+ zd^1v`l_}ntnXp=<&y1C-wAARWIjXR->&uVLdR9Wj{zKP`^bZwd1pQ{nMrb#+g*S7$ zmfoytA*s7JRV6y3s1q%7S6SrbaBZwRiIUjAO02VYotl3Pp<{U~tV^p?hvhMnNnH@m z2pFtWFQ7~~lM0a{rxzGSmB&fZD;rrWXuo-eT}n}DSYNKeMQS<v&AiY6@Re=Ip<ANh ze=x-4TQZb$tprNqkP%CIM_mBJnnm~(3n<9hokF%wqU?a*6>M0zxJV=@q%`}Mq6ag_ zZ6aRD$RK&~0MW-6$F>!`0nJIIby++nrbFBosH`Uz>1Crq_@4mfs4RASpbJe2BZUd# z2ZdyX6|R}#z8zR}w7MBH96>G%C41~Xm0><EZ$K$t-6KzO7EG-f=t-DSHs*WkQW3(Y zB@<G(WB)Wfaj~*>J|vXODEBgZTwgKUXhtpDX#3NY{FolZLO4IXHK2K|X<Q>3S1ur& zx5!qrmT+O+Ahggpg+RAVfo`OvIPCL@WfGl~@7L}*aQ1_^N$3ock=ir{LiZj)Zh3%t zjn^XP99N<lk6-aPVs;tds)K26lnm<a!<*7Fg+n4Hlh=d`Z<3iEX!iq}LB~>(tERM+ zqa_TNNo(+)ud*v>=)24BYmB2ps={hvyRgp)t2q`1r%X(Cngn`@+r2F$)j&LEZ%iDP zF~6E*?!2Z(3>kdDSiA1YD=QVtYM+x`<Gtux&F9h3Y>C}_XvA0v;l~|f)25bALybLa zNS9pGg}B?|cv414%)XJ@=pmu0BTPCH($?b$lizLp_r74B-&=aVfFKf2f3yP;&BSF$ zOmy@3`H1$m);n|EQL4YBj29wp2nP0$Txs&DEfJ=e{vRt!U1Zu*sPFm@E*BEzDf<+; zFHu;cPofAw{}&0&&lyJzjVkLNJETQbQa$T7K)@gp^Y206&=}26V5ku|8@Q1As8KoF z8wM=Cc+nZDn5g)?;~qMQVb?a4rnOn*KK&|Z>$;3GtNCag!W_uOSR4X63J%0_q$}*7 zXRK9dXcBN}DsVqo#-to%Y;js8nEcQI$6;nAGs9g_raH>S-NJx;-tN)X&)qwxy6`qz zF=0deuXN7d&B%T8qNNzJ(H%+<hugQBngQW79!B_D>%-SIbwNatMN7`8R6in(WoVL^ z1iCrWKpApk{zj=dWL8Eep3F&Vbt(Q#`O?S2@?^aXJCR;kky}y&2oyS;3a3`2duekk z`cPVn_xkYwJ<;wL-r;3XbO04KAJGms1oy3W0NTsi@*YgUa_={{0L%k-f3i^D?Qw)Z z;>~{%5cKUH@KWZF7~ub80ey1};D6x(f8lu}LVpm_PZE$Ck3hcpBsbQ-%Ej^=Rnr^K z`(t)+8?tK%yrh_Hq?e)Sx!Sq8E0IZO9BAtD3*OJh13VMxr`_wMGwOA^oYFx;)i-!< zjOH@b@xgr~rvKgF4i`=3Ai~O|Eru0*idP``0;%qM@c%dx>^Z2Afb8q=edhW;Rq#7* z`%MfU;d{vX0jEp(jK(@!b-K~^v*QUB%Gc{6c15EGOOQaoqe+aT?ykp@f6h>$TMN*~ z`{28H@wi+o;8txy)`G)^SD8;rX+<>OY!_yEl4azPx9?P3di{fPWV}h11Rw;faAuD@ znrPOAnrWwni5*6>>fHJH<zZ)Mm%*#l=I)j9yk465{AN^m9v}cn&oZR9Z!z8mf*F+Y z#SAjrBV^~H_Z}-=fd|%hEI{)kc@%=iD$}4a3;{Vtp-Do}_GC_MP{sa^vpA(CG|(Z) zG<Zc{j>ui|4@t_4al&_Oo&B?enn#U<vhHqKahKe&3ii!kFE@3{EjLT&J^90a$jwOK zl?33zz%czE(0RR2yRZK)p(RG*J}01Tsig4V{S;|u%pZ5(d$WasPmC+DBJjp~o|t~< zjEO1uWLybd6V4NK<2vKv<HzIi$jWnJ>)Ro!tnR`tBxk|Njw}3%QWeTrmAX-+>5l(w z{Ak&VujckfVYFALrj~<H;Rj*(aVYOsK{OHr){3)G?ol(}tb5l7v6wYT?}7F#+APrl zU%@!FFYFGPWF5#AFKDfBC73^S;@(eqMWP=f&@+wfQMZ9)#VJp%tAa=CcYixB`P)mM zPdw2C_n}D^vIUiWvO6giLsY6#;H;H8gZD;2?Sv-nc|fj%m$=||;9s&eP#!SLegJ-? zw6O<pFw0Igwnxmj^OR)|urn+ku!`?f`W9QbSUu)+EIB_0CX<AqTu*ZC=I_!K|LgL{ zgWgA5RQ;o-y_&S6sp}x$2&~oFsJD6~HULX<{fNGDd9iAvLkR>cy+a{SU6eJ=v<%>2 z*qG(tz6CORB=Yi_YO6bi`V%GmeEA$OUVK~#oPQ(-11Fe$;N)tftfC9fR|w~I|BCM? z^L8K9xHIm3{@iu;IzL~kC(3{pfgLz_#4Snrfq2Hti&&OoO|NU$I%vr*@G<e7A`49e zm=SLBT;5W8;(EN5xFx0DdqZCEa4ws$JLoug4f&(RlB%UtX{A@$$hagcSF;EDS&_y9 zC55#xNJvYwq>7EZZegvR>Zrc6NZD^)K%dm-P+P@{X{M}NLc4!awQtX5Ft^@Q4VOD_ zKKBgb)3^NSyL}BQB8?)N117oazh&=+zwWk%@Ppuij|PPO^i4#1_xk~$yTl4FDcnM` zbpH{V-hBX-=XF-XqzCt*KZgX`w|pNg!7%kG3)j!ezuagFjx1iIjxFTy07VG7c&9tn zNWa`9>%kpCAfe~p2~}j$76(I;lA@6px*aAHf-2=BqN*jOuO3Q-)j0W~{d)L%?{Kuy zq0zT@wEcED0LK|mupWZ<{V<&=$p0~3r4JF0BEl{*?&^U;NG6w*NYjzXC!{agE94iP zz?-V3Zz?hxNsHy0YHGlj?5V_H{qH64xuJCp;pZAi!^sv<iX$aKB|AvP!P^``!6~cU zu@k{ltu(%zYOzyl@Q!D^d)$mY^>}(bx;e>{vJt<9NX;`*O~bD2Hko-f^yMvSB(xN& zk#3j8>Gzr+@{8RV7kuAOtK($I;~czBp&L%}b}yzCkcU(^ott(RTr(|n%f?OZPC$*h zQgaqyMqP<rhnbE0ScHpP3`tkAABlg!l@>QQ?_2~q3`QhHGzm|Yy|MTBCw7<vQEG%b zIfyB^wnPveNHJVh;J~h6VG*j3pBktnKkSeaZm2>)i!}&hSbNoJXDQ3o0KvIxat_H7 ze5<@p&8<fYPS|Bk6TJ=lZ3n{g{YKaw-<(QsDNfdCJCtuqm~bdv=KhM2%rc5A7|<A$ zZ-Re4ZY?aXo(hnotb*!=D)b~oduf=dA`G1vf(*wrsA3vPKaSWD_^+ddw-hA#nVkAn znvtSAo2P@qAc-w?%SC70golxaq&Oso@_S|56(<{KM?E<+%`1wNxs{WxI?9J$Q_KfL z+2toE9wHW1#)sX`bok~dRrHzixL9{VX$HhgNSVL-L;{d9b?aMg{UQor;001z*Ti+6 zKL`iIxih#L%n+qsSGo-bae-!W?u}-M?w@~HCBRUVA(_k5c{W<^dIAXjp3i+k3ntQd z2!#Q1Y=rj2H)c`TV?z>Ml_33TAiu#OFG{!l4zX|qKj;+!kk9?QT!Bpf?JZ`A%ur7w z7DR7rfZu#U89jG%*e5TvJj7hd5=u9~i~bk#Je_IE87-noMqxNic^}$)(z!5nOs1r? zkEs3P9{6Y9Ca2O;vp0%pxj{j86z!RkA&ayuh5&WviuFIPo2`#*ZF*I~Hc^XNn<eHT zVORM2Zt!|s_}mWg1c-fAU?-jDCt(FY;%=R#@OWzN1MIou5ZhX!4Fn%B+tmF#EV&9w zcv?%(%j8cx&3|aaWtHjaExSG+6a0h%A{-xUxLSAsNAgJjjz}eD-;m-bWKVn^cpj)7 zfQ7__R>@mbGUI4jW**rM73QgG(K@D25!pzSh;e2{*|N%=BGGWXp`)fs=3NaLW0^Og zYmuPI(`Z9bsPa@*z0wvl#vCuHW~UzAOkDZ!*6sA<;PD=dfSQP0w?L-hz?(>e#GRzD z$P4q4Zwm8k5z5&0w3S-r)F7sgJ`Vg9&vV*Rz_RgNEZ)084FdN8f$qn$Czb4XCmTW1 zhx0%MJfUEJ;30vwn6t{=>&&oxaRHRUMbVRZgmWZX<+OrXz=0e?$nZs$YFyegk405r z2n7VLawdAomw(TEtY(<C^}|7+2o!&w1R?%5!UJ%KG600unB{8gpnA(P-I~DxA&Mfk zK47)|W_yVwJaUpfCqE0NX&PP7CRYWb<i<4$$Suq&;6|#EBDD{$k!d5zu>Q&J=v{@! zW3Hdtcn|xqk5-GXx3*87@sP0jUG;2nmnnSr1I7Ec+qW;NEClhrm$hn5a$S>e?UOFz z(4MOgJC9uT`Bs#yEpA}+1o4JGrS62BHaW7~I6Dj~-jkb_J1h_Y`_)~G|62TUrM1{S z8=CvCwH1>8fa-=#Ib>RrQ~HVwTHzpJJr=4jic-*KABpLwxF{)LJu)+v^?fUZW1YTv zZB{QYpQN8Za=e+9FE5|&j`#;nVPO@a=#S1@1{Tfl-LS@qM@NIdBJmz^T_NA9ZiENb zYovAdi*crgjW4bIm}+c`qe{Nj$?qEm+Ll-~t=g7aRm}%@1nW#Rw)NJ{uSnK^O?-!9 z?GBkr*R}$MTJFGYJX#Y(<Vy!#CSea|J<v~T%Ko@ql#z`THtGMl_fk?wW!@=EYWLYy zQ@Ay5Q>iICT@!*G<y#K5N;`C|Ly8@}bK;n7?B>TtZ#p~_2SXIx{Kby<sXpZjLgko) z?gxCI1t*rNnu**$qEo`}`%-NH|NLr6wUVB<Z@U#~lZoCN&iwo=?B~uypP>{I5b%2F zT(*4y5vt?LR9yy8-YQwParwj5^<Eq1>l1Os=P4tQhak(3r~cXzYnRO;Cz~>rc7qPI zDjc-B2ud(UE2h4as~!~NFY#RouV630UM{JQ)}~Ol6`8@9c|HDBXgGrUtGMb9bF~VU z-O%r<huA@{cf8`KFs_r2Si=qHnKH;K!FE|5wCsW1yB(DnxKA=V2b}4lZSZ|>dXkEB zWt!@17QhiD{+I1-r3R)PH+T1j*X-T5_uW@&QxJ>l*!GtXwClhr!!wFV1o6S7SvzR@ zgw`GH9h>1GZ4QMfg|eg(C7(FIO4F$<g;`-CV*-U?<+JfZ`VFeq#hGt8J8JKHR%v~1 z4;aP-HCpD)+t9JE66&O+{JheVwe>6vm6(2D+TTpZGfy5Sti!zz%TWcInFZ3hJKCB% zW97rg!aQXa*d8@uj(pUj4*mqB8K=KcpySo_+aVq#sadK;jjsAaMPmGPWe#`=jE9h7 zbjg4FSW{7}s}OCd9PucheMptZPp`=UCKp?m3`5;-S?}`-1kiFq#Sw~=kh);S=m~?k zcK2}BTV4*T$z~=gHO!sxE6>6G*KB~_F^fw0Vz<yI^KtRe&;i>>%+Nl9*!_b$QoK#v z@cZzIc{BZEKQ6aATMEvD2j)L*Zia|0Nx=+b7C0usdr|@c@Y!vI_)B6ueGn+NWheBk zDCtIn*hOVHy3VtoAVLEGYO@@<othjukW!tFhbABXQC1Utn)35s-QQpPP|Mmw;o3aG zx-iIGb<Xhh6WC=bt@g(fPxd{Jm8vvg*nC(dIEeQ?36$eBU}4RPSXEVGTQ33owhkW9 z0A!>^M*-P=d>9bwjfhcST+jIch(?xd&~8?N4(FrkNHm#|^=3~YA9=Vyl4F<T1-VHc z*8aaWALH|IZThaflZc*VW8XxJ@PT>8F)E{Rtzr9!W;sfLEICF)&RkRU6RSxa2<c~? zA*FPuQEcQOQ<p<6d_%VQ&NO7r6erH6t-=o&bR;u=y=3I)K;W+~m{CVH(CE-Mtv5ej z{L=R<BWu9|u#+r1D+4~H%cp6fl!Z6DsTCr`@F8E{Dp|cIhEKTTg3YW<1Gpd=;=gUJ zPfu;Fe<1>%_B+i^JHK94+U%=q;)>01Ao=-T?j5hL4?E2oThpYbSY4$f#5d^rV7|-p zr|lD?@F_GByC$l}-?8WJQ7KII%O#mycpJjB|Ck+<wD3~jfrj@S6%xW_Vny>ReIS2P zGRs;=^X}bJREomzq#DbNr9|xqz_XKu<{&y_0C`W!hbW}c7yU!H#bZp`2k!9@w!NQ5 z3lgK!7pY|zQ&VSVQkRTy#UBnyXE-?<hpt8Nl_E?+j*ZaCMp1eTbImT(B(vfO#Nsw( zMbG^a!&MhuelC}caubV@urpc9>_Yu)H#vb4X(gLG-e4Z=Up{ew-X<auXEFZx=JJ`l zXR@NZy7*;VO^*cGd;K0fa5p(B-UkJI-^?&ZClf^;^36b?_FCHcoiA%&d{$GsqzJ!@ zdyvIB2BuMB)n}pA<CjIt#U2EF=2=!7YW)CD5r)Jer{vM1C}#YurcLj|k7w(PNp5~< zqK#(ruZfjuI`2R09T*uf1f(+}LIw{U3Qs~q1rH1i9MT;u7&5nCqbB^51rJ3BgV^HW z<KsIZ#zAR(f%byrQ=)W)B4dx{NNIV~;c)y;1k;{Uw&LX$nK`5N)gISeq3gzW7JnYV z!W%kAWOD!K{pankCiE+WQQ(rDW0zZWMHrIP)!>QSFW%Z8UXpXs1uP4zxF-+0rdplk z0e2RKfjp+xaR8`XV(t%bQDGWpaU48mn#Aof6@7@L`S>3Zvu0TR7%5UTiOPW<6Y*|8 z$eh9wnEU6h#CpnK8CpZ&v=ZUKqIFA^+o@FxOU;OGQjI#0R74*Szyl1dm{)FV4Sq@| zDvO3}Rdw=*jsB)bYI6mar1eK;IZYZm(#{tnI-D{C93i$nqFP$I61QBj_<=)_{17#6 zQ%vb7$Z0ZtOZKm@j`{E4K;7(^y;D=zc;3YBjMOGxhC9-Vd(!P-Q8lX~+WX-4@=)DB zB7@$6_P;b`_f0(y$DguF?Mfq$;l@;IZQk_&HJK%Jr0`IiLZRCD5b_@J@%0L9t-XzF zrvMk;Rt%EEz-@4ZLV5>pVWB2b5YY`)PV2;A@4i>Fc2Ul6WSQd0ecWWLoD${oc5p~E zmK9f~vWM1BUrSC6lkMQ%1y^pftL{tCMXV2kx09tu@uo;<@3d2U{m*%y00QCEs%(x4 zS{}7JN$cg_-~)3lwNZ$Byc3ftwgWPFZ(;S+W!RHp5*A%!|65O&7s0rENt@~W?qfX4 z0IL@uFJcf^c2)=)6fs{N&m&)mOs5f%elvm|mu<Tx-rMfTFW++mxy5_AMRwmg_V34e z>Khb3CeIHYy>;e-MLlmAl8}=SUC*aH{ROHCnF*T-or(AHv5Dhxq$79Spb8aJ#*RJ1 zn4e6`N_=!DCmgBNCPiejYqHRTt5P{B|6EGqj_6bjaeJu(<}fs-iJ13Jm=cZ1TH5qy znY5yb8qutga7qV{A{2L_k*zw?1)s}<b&Y_ST4`iHA>_1wbCn9kD~|#&A54BKUD**w z;ff$Ts<^))i3)D>_Zp<S&cM~n8LeQMf#|mo&QhQ<KzaZ~I#3yo22>fG00jj_h?JNZ zR8mw3yd3tqZzvjfX{a>GaurW5Tq`ZU6OkDFjQ1^VB<Cp1tmsD5P#HGHSuY$L_(;AK zl)6;2czzBzKQC)j*9hV-Mvy=Vls5DXfE9&}Kz9*>4M4{Yo?>k@1Njx@*0Aoyv`Pw| zG&-mtUBE9nnR&CN!+`}<U-Tb+#7iilire-dQ%m!`{9C@n>N3<aCM~?7U9^L)^XM32 z|I4n4>ui0<kLz?O30-6U5jF%NfFq(%K(S_#1~~ZT*2Z$`mT6Y==mh}7i7_!pLWiQ1 z>AJ(a(entCg`SU7OQ2DPOJAWUW*wM1>SD&Xx69>iY2m;Jy}H<V{r7Azm!P{F#oYt) zIgfkS_tk{O;7LBGJ>4=y_Z95L!XwObn2O;J_YU(;|BmHOOT;>{gujBZ8+fdG(1_`% z%vi}srgshwQ=_68Nmej;do>#rn!)o1Yhx}~8tqhipq>TR{jwF<dR6nOe>R;;>ZPP! zVf~mq!~}}g&;1bS445^F1v~DK7koaD3W<$v0{KlOnpkRu340oBmo1#5IjxO{sN?{L z^7wmxc*_CU#xU39B5ExKlecZ{${(=P8S5Hg)Y;<u7A#3aDrT(=D@22s$O@ZM5c)4) zLSd4^8YP4S5Hm!l30>ZsNRHojasYy6XG)VeB>pzBA%*~02<x!J#|$ne+Ubx&YyWAe zs0}WKk<t++reBYvq@8DHZ*p8d;%r7lwCB-V4i>=ogHiaURE0|w8h~SlPE&M3Toe#9 z0s-uM)Aych3T`bGDGgPvJ}>7-)cZ5PHq|m6vrStZ+lcfBOHA9o2c}ALjGdH+lR-$} z!?}XMJ<qChwj7z5k85p~HDGCJpR1OB-R&o+BKU9R8~wJm6E{GTDRvg6$p!#Bq;<&} zB-ICM98jmN7dlBS_Vs167I>X4HApWP+_JR)K7zWlcBbF9*-&m+I*P-gJEwDrgv@*S z*tiW<e*wJjybXBMUtdNDP_J5V>85u2A@OX__unWG8968M^?YF_A&%+DG~ZpyTc^v4 zzTudB3SsNGE!%Yb6E52wJgxz*3%MToRaa^i1B<xeI&?`7rmMx{H*^<eLI=a+p-T&K z?N${l4@DfgxN|Q<2OSKcUJRMVSy=ypb01`H!Pk1+St?y#ViizTH5SK+@h|btbsH;0 z4gL2&ti85v?V7B4{oJhXmyXsma&xi6#`H3Rq#EH^UYUHuq8lkHQ;1Xe>RYGfb`Bz~ zX|bac#*CMGDtt6?bd&lWWr`z?jOUeLq(xCRW80c}8^#O34|ul5X}=u|w5|EHa&G_! zVRCy}1fEtCme#B`qI~=&)vC2AQ8ut?+t~mKJ3%GqBzZAzmlQXZ9&hKDiG*-yFAvkZ zB2!cwy<eaR@|iuSk+tAr6K1Q;pNVC@NEu3@cTv`vq4d2Q>+Mxr*3r@NKLh7VcZMdu z7v|2y5kK<DD-GC;<0Wasl&}8j%cFn7OQJ<pJp0i&u3s@aC6v@P+}FNUi?rqY9Ok6g zZ{D;H>YxYls}GNZVMZ41su%1*w1i462wXjVz;&tL6~C@d7Yot<=JV1VO}JtU%E*<+ zMYrGh^yC<ZBqm0P1DO#uAD;>-F&#x&!YRwF@_zu%Krz2^)Z%f{jx>riOD%;nMPASA zjbK%-mop`C9u-G2al<pBRxQiwo{)9m>_@UPEdB?ApVYM|)HO{HBTa`K!zdfAEawy% z%U4&&<0yt@NtsNW&F0$ra?xxyhmtXE2@W6#M@b??qEsSyqOvelDosa|QJN(R&WF0L z>tU$tx*opF4+6v>@cl3V2tvP{t&csAG5|(BZ@fM`m^PZ8X*!w~8G0l&$27gBnjMsB zqX9qxC<O-4Xr!x2A~gU_Cdq0ILFoIz@i9ih2pkE#io}GBvwBhFt3b0bqghxCBc<M( z@LTuKsit|;Blqu~KXU((b$DuTJhCSIUp+%V{6|O*{}Gb=U~S{bU+A6Bdl%sn;iN%G z8&n+*d8SGirr9Qxeb|SrC?&~0^{MReBFvxRKWsk$&k+;4sKl47|HI+Z;ZyTDyz}Dp zL+$o;x$7Q%|Ae%kd7gz!#3KZ#Eb3CKeHhlut%qk1{^A?aIqj)8hlgMD;H-K0RUbYA zmk!^1<Bj(&udUsGt~y5uCG5&&cr{!m+sGL+w&*0PEKX&W#dh6R7SGB>^rwMEn#ox? z%i^+{m6K^KU9C|sihL7h^>o3bQAMv-#ntYq<R>6ltTQ&~Z%)H-YPfFO_8Dv14n@O= zIX4ahAE!|;-OI<4hGF(;#)C#92m!*d(eydxBJOnK1VAO7Zp_(lMMqbHfZcEwuD=0b z4wU+TWKo2jlP6A`#3bI@P!0J60HR?wn}&f1_x<PNfM{Cnwq+th9EL2H5S+qAvO|tW zqk}WWW@)3tCDas8J!Z|y$#hm)!GxOl22ft)1+SFE+!{A#v(;5fS664V#@ON%0g&=_ zw{iIM?|BcL-1a!C*Ka65)#&xr*!*x3=2-Q64TYc@{hs>P=WaSz#`J6Z1GnJf4K2kg z<ohtoio7moeW>MBB{ECnFFda;b|I0U!-n71jAJ%C1+d1QW2RjH)A!!V?PHd>8~x$k z(l~Cj|3z23QwyzEUT2|w_VfS!B@3<Zqut%lTWAqNC?Qv#)qk%`PPY4^*^uS?FqvM@ zjR`5TYg&SZ;SG_)|Ju;$w9kwUjSq0bwLg92IMp{bew-c&6qlPi?RxIUv!LI)&_S>1 zE&8{9>}5LWFXxZ<mvqqMZ9PV#2bYLOY?2THQput&YDH@$i+w0+C6z2dd*dPxTzAXO zH{Wve%{SkC`1iNma`VkExcTNZean~`yXlo@;b}~3(j_5j6EZI7qW3c;3#q77wansD z4XZ33RvBc!sQu#Z$D1GHKkoh5VDPfR1HbyK#o<3J!6Qp=TP~JgbFqI>zh!(gSdB}K z?_FAY`K3#Q5KhPy`RPIONk%5*cJh7_QDu1?SrDX3E2J)wznrP05A!0=@+{3#nM$EV z9L14#kddfaxu}zRQDNUqQ4?&IGA*fB;19h|&_f&#6#Pc0GwVtrpPded0K>ubxgEsj zRB!MY>j!9~iJG)bO~Q5KViAo;qj9)c8UrGXi#i;SM&oEvi~%NgFG|ynE~VZ{hjGtV zU3W>l7Z2CGRT|v^0w72z&waD$U<g0^<-`VY48PDsY?_*sn%Sv~F~CLGQIzs>4gfGN z>S#0?jibLj=K&xuaOG51)45K4g&q_sRxVSQP(}J&>G%Oa;CI^358D28;!<kJGyF>k z{PqF54#;{!J!f4?dL$<#R9UU`9cq^4g|z+>CQ25vtV>mX_t@)?Db`&|_Ji}_2S3<L zzc=kc<ALYgz6oDvo&Sr!n9m6kapf<t;ekiuXaGSJhmho0xG2(W*m0iL#KDuyhtoDa z2@b;HI`kgxe5whTzy&;f&<C*KGcG&))(1X7>;>m=8Mfdu*(8MD%&tAi(xNoa>_Vbq z)Q-(!jTw=^Ur;41%w}t}I~Z8jrVi#t7$CS;>2O{L&~NsGp%few#s-$512h_gVf($t zNt65OaOi>lV$jd&@TQh&S`<JW(*z+%NEz9$<C45G#vi1vF7$V<3uV%UXz{Z0hR8YT zc}X3H(BmMxrUjs{iMbGS(~KFT;2?h4q7O<bu-9$hAyy?d<2W*aUk!ZD;k+lMh5&4d zvwrl;WmlesSHmT;LG}q5=QYtpkPY-)mlHGtOAz8;*l7WhcBiV_*{zZq_Mz-<`Mz&^ zn&~&1YiWj#^t>c#dS1|M_+HeAW7ieyx{li+qZovN-NvH#wYs;&fpabZq=7ITo+wtr zURNmqsRL*lV4So&VYA;8pKnH?4u;|MRv;sckSou=C-)&EI&nxyNLa^N<*O=-`%q=E zAD5LR&ph+YGr#$r?|kPw@IdRUA3gl()>l5<Nq_&V@aiA^R;r_|Ne=J;-b8HDCbeyf zb|@V?9MUOzto+BOGS5<JFomz2UWtw13$Bn-vu(*}eE5G6-H#|+qnJQ2;kKaD-GhVO zsispp+0P4!2eQcb-w&o~Tb2+Bz8dm<=Pk-_X}51NbivPOyF1rjyR)0&<~Ms8z6O^` zNDA^!@<sBq<XO<*F?bLB7$IR)PHldtV=~QU8Yktfl(Tv|sb|w!wa9WgnTj|m!@QWz zBjVF7=uWx`Itk^y6(bdSM@=C`re;jW3D7}tG=iB*h*Xl)TGWezatLdAF%dm;WVsY7 zFY>yWsc9mGTquh3BNa^-GOrf_lPBjT;Y0Oh)QN&3uPtyA|EWG*6kHH>VrLKl9Xm;I zKRSyu%u546LtW(Z<Q}jq;;AAROnC|O5|zj_n`CHSEOi9=p)Co3IOn$g*%afWMCn!{ zVN!;Ku1=<ABQ6oDDlyHgyb$WokP(1Fv;hDlkd~yB0{$6CG*9QTJk7Q(uniq3^Spf3 z_f6J=6UX-ropMg8&;d-%*?-}#3E^l)684*crW=-T+D?E@tEJpnlNNyYi<)EWnvDh^ zP)dbh45dK6tO)^}1EpMmK+U4maVV7tGBjN-xO5l`1UG!a1ZUhv6pX1xGfA3~2}&vB z2BIbzqfD5V5ed_f5`|`QYMQnU5oe5Pn&h^|xeGRBhG8J3j3JE@N(FPJG!27G$+*x> z(~!(C49=Ntn3MwWwr7~=GX}t$y?z&v#&M7&iNysX2cXOV2n^E{0G2KhqzhLFP-X<a zqYKFp009NJd{5^T04al00Dyq2UBE_+bodX_0$WD_SQ)D@binof1ZlI|je~<1*=i@2 z91i?utJ`jI$tg#mmJmV!m|AQa2!NW$nFj{_UuZMhL~MB)W70AM*z>%G2MhoWO$R9r z2BvB1hJ#cJiH0EngdGOBN09><6by<$xort#I#SN4)HHthBTb5y35JXe6T#AS1VF(# zV>+TUGHuJWjFzc`VYrU2+rA$Ju4l5Q-B4=KlX~20HIO1hbZkV5+-S5rzUKQ0b{Y*` z>Yf`00oOI#u_U6aMV_)e2p9`2OVdJy82h0VuB|**BoYOeD5Y%~zJv~CI)Kgv2LuG* zR721i1wa5nh$PyTUxn|&Go(cdQjrtn9J!A?j}WlevU;+0VZ$X6n`m+>7xKZbg-TSR z*+S@P$$6F3C<j+kf9SSyVjnxEq5UFq&QCafegoy|YONVN-41PFtG(4$N|du%@poLQ z_H}iw8~y(JD~<jAbGo)OnY1cA=dZ3FOAHg|+gp?Gf}zLdcr0b3F@k4=uEJilbscgp zqNLSo%7$n(l1Y|I%eJziNYhEk7|ik_{yCr0qag_be`#rb=jJbE<FVRZU3C*7$GW+^ zyd$NcYvWPVk8TE51JVT?BO_S_{;cln+wwxD#Z>1|`Hp?q0y`udPXwHv%yL<QYrcH= zK88Cxw<bxqnDhq#Nzz+w4t`|)g;|z@lx}G0ww){^7)F4gYpb0u;4ocU9S#ws=K6+a znBfxIc3abioettKUHxFJZr#~ImH-U;lcM`!oP*7xduJGQEL}%W*EPVVB{%~_&GS~* z!oYQ#wxNS9g#cx9ApnK%=WB5++x><=122G|AtQ3l#j%&z4dQY#U8vdAj1bMLdQpIH zF`7oToOM-NViC~MjG^)ub(u&warnPGrU^oDZW!8rrz0d#3g?@;hA{DVJd4`T4FSSC zFZczOF+lf>!G%EI+d**u#0B^na6RYndRGcW(9R5oQUeBH+ZO!m0bFy$L<sE=xsZAi zOM@cSXdImefb$MTj}R)m?rM__a`M~sWIB&cCEY?SLS5)e+ea)57%UOIRbciflc=N% z@YchxG&~o;^%`*FtCRZ$Y@RnY2_QA|yd|}7XwteVao|ms)Zh}hUW2;c)mMGt5O3wV zk?X<XmzB%o9-5k_Y3AVzEU9VIdiN3ayJc|dIa4h%)u5NqLR4kpdNT=?@Y$pi8OiU~ z@xMU6_=PXj02*-+n064@Mi|5jw7U8*`Kyn8%t(^J65Mvcwz;r^Brz}@Q)6;EDw>L< zq-?X5MImb0T!viI3fE<;5|QbZmUDPRbnFxH`-z|L#hj?s)oX)mS65ZyYt8i%lejTa zQKU_T?>9S9q*XGGJL2r}3c~C5R*#V$JLvWJ>#m`3-0e0SuG4Jv+d;riz;t>WFYQDC zuE3{>Pv+z_xr;oHyqdfzj-e-A`?Exm*EIF)dJBJNRL<(zbQ6*4ygGD|@)QLH74jo7 ztn_jQMJ_cezMZn(7CDVU_Vnxg<>Pq)AK{i2_>_8uY8cXS=;g(9+V2BiQ?9QoWh3Vl zj%HcFtP`B?9ew1zVq@d@v883oH#d$QTV6slWGozad$waz&(qv6SXrLm;Pm^$zG>P{ zx7!~$wtc}c4Qa)OX-YF5>Vj#yU>Z1~ZBuX@A=<6nW!yXbSKsURR!?3#^L^KyXxOx^ z(n3|1t84TFD~+a*!{O>mv+;erpi9q3;d%Z3C=@&>S65ZTIQ+GqZ5u|b*=gIhrZ*eC z9%Ix<EJm4;ST;(XQBBwBd`kM!=xf9xO&fspivW484s)Xg-T=R-67IL(f~Do-TZr4+ zcPt;PRtJ5{8uZty<3D$Nc?s^=-bUO4b@Q>~!xMMkbK->e$-^IkZl_q9OqPmH7j7LM zKX&scy%Q(yx%&hmK**KffQ#^B<aXj~O}qH%%mA}n`fA{ns#%^=jsrLeK(P_UQT*n^ zHDZeJPZv511sCIfzu%7|=ub9xEo-{8+>X1wZZBDkMoFx@lBVe>({|ILV*>!H#5DUy zOv}&_Jh#`|;AuJ>QfWh@Q55TMnRy;#h7LzZ8GvaZbi1Vv5QU3G@GuNUs{m278%I&6 zO`R}6NRsh*L*;p|k7$`1Mv>z>$C3nac}#;)%9Id77zwUih982<#3d1FlAMrw7)Mg9 zf~>N%$oFtq4dZH94dd}pNYRC1khp;Xd@>9=;jLfk1R;F#@WKCsI}iUZ>D4U^I!`6t zFuLQ8DC{QcmRp{8%PqeGVc1QQZWsct>?5?(rCL=|X&)*t>f}wz<wBWy-!SoT|M+?* z6x=opo5ikSCShogb;q{b5uoRKjpMT)MSOVU+|6Yi%sXvxLtT$u7g&8?6s`}v21R*2 zg?(%WZ7s)gNk&R?6}go>m%NI+$9Lvt;Pcy6mvK3-$GMu?gL=FUuB&D-Q`Q-cCfEfP ziB!ayX_-}-PmaADK5H4h+>1ipPL)+^pLI*?-*<Qw?s4oWvTXp{jy4+!vm@KtjBF>> z+gw$C>5JZ<+2Kmu`>)0~9ec@-3K4D0#?KH*&X9BD9`XwEK|<P)t%esSkmxGqY#=#3 z8*n0HGM%YN3aM)P1BA$hRz{0@QM=Us&U_Q<Bu-rD&zEY%T%F|&%mQ-2PuLuNXfYT9 z1aOYJ06rRq2LQXbY;A0IH4y|MYM{~h?B+0{8t4!PK@fzXgGS@)5&#?CdC={TQ-EVX z0pK5-bUOgeJrD@a--JPbQ5`>CE&2m^ol715W2>AUY%X1wM~F&!rn&IL9~(fE2=G7N zc_#p98bIP}z~5fQXx`|3UAGXv_6o!5um5ysGC8uf@$jknX|bQU3MG%s{4-pJ_cF7p zW0{X$EM~;~+OLbcL)d1u0`KJQTib|Lb#tAj0Qq?L<d3{z+*>+5%XDv`FD-2^mI`y# zXt&2jr=!8m!^4a3>coLu)qCOngizvMc^3W^E)f}1E+C-{VzxR|5f%`$;u}Ji^|RYs z_dQ<R^DZlMJumDJLg{<W<99!LH<a&r&%fUR=iiF$cE8)Ty{6~?+h6<zmM8docxD`l z#mWYQ<Ty?h01xgUiQ(_@;MkKH_o{g4*on=ZowZept82%my`JmPcl{Il$tR8<M@cUm z_m8bGy1a7w#M&CVHTMiJ1PwxXeF!v?d1Hge2!T`XOq7ryqeaRsbT7BotO6km3Ll^n z0=nejF$@NW0V`ceDhCM7$eqvU*A=2l5EIzA;;yUz`h26SXQjV|i9%Ga+~XLQneMg( zSBT^B)>b}7Ot@&B^7?&`F~*`Six^`}JAr*SJ;1djbS45bqrSH-8x4BBr4W@uupNGZ zHVjnCmD+Nv4bW~aYnr1JKIMQ-DQCXVIHlL3N+?Yf`o-4wNSowjmpnnpI6(=KPOlZH z2yk^<)f^8%8&|5a;J}A_GLO9kg;&dj9ENbgoW6K58nhXU^E_sZaW5VEoZX4d24cgK z+MOE7EjADvUvSK<_n>R!b+`*sGj*QtZ$0fe$9OR|-L4Q##HFPpdrM0Iv?)aQVa9`i zGsYZ;u|*TH*+5O2ZETuS!$uRo4uSn@eV5U~n{88*nlvq`f#ZU>o3>1BHeF3$?REjW z-Bn%l8cmb~|0q90TI2}1nb=Tt%n6WgZ%!E}YEk!oyHqTTs{KW`=&O38XR?gqsIrt) zJ@na~#142qK%DgZNern%?|auiJ5>t42Rmkvwy%Qs+(G1TOl)j;0N#`RLHp*%ePtN2 z2d{DpX7)EtW77lhCPO)=7|c;2PT>E+MH0tZPTi#3MB8Ey%0i8NSr)8_a#k=D_hvvB z;Qzs3usInFAf1<p<6rp8ti(Zob8|32Y&7x0HVI8yrqq7?w29*$_XnG&J@2Xp1*w@= z?|ANLv)2dc_clJ)Kx~}a(p*w>d;2<LVw3C=0(oT@<{QNk@)~)TXTW*K+~R=MH5FiV zB@S8mIn$-4k=?*&@P#N>xsYmrnk59>7dZ~}!TrkR|7))XAirtGR)A>~PRL<}urx%C zg5yMRpAd&1bm8(>+;K3p7KbWM;65UViKUNHQjj&hJeI{}m30yHW*pL6SA$1XVwte* z;<}8pswm^Eipw~w&YgQx+3&;hxpQxN)46{CpU$0o)0@hE|5fw(d=AkM|L1jYzWeSs z|8QsdJ8!=G?&Z$%cYgTIci;Vzvb^qxf0%GWt~~3L%W_DEOvwpy8zG^OYBDW^joq<I zWsL9Kch+)fZWg3ztZx?ARZ^;XG0h7|2@-QI>P7Wix^A0NnzpW2rVysBQ~9sj{#kFF z`S)`Cm>UfOe|>Iw-xJ4u&V`-y=C(VCWAHuG0Ctj@rgws!WMCSeZ<wEL2gduukf>p* z63~C!D0y?J5(r&|pEODiiAo94h`e$cx8X98Bq68B8S;nZPsy|7p9!gBiukf0r@Nw( z7C=)oX>~Fku#vKpC;bzXSw;8PGTLb%;|ii^v&uhX>i(@mrZSOA#Pk60QgH@dDRXdl zc-iw%NTDJs_0IZ41($}FNAJ>fy(kwW)3Fllm{qe~Qf*it8P}Vj>Y@(^4dzwOzy13N z-{G8d&fxQ2v+2mH0u;I~3TXl5$OW2?5D%}Lh>W?8J(zAwpHm@t&<nKAps#%!b{ko? zWlBv0M^J9)!#EOth~Vo|gD~`%ZJQ=kI+)CHOper`6cL#wq<E(erWg!{sR4k@32oDo zVH}xUqn?ETjfUeQNRYyz3=x2iT}N_F_dS0+M2vjj{Y8sj-$({mA#x`O02;1t{yIef zepv`@-H4Dmz7Jqhha%;S3rzrkx+jdO6dgZkq)}oCE=1E2o(1$r0O0Tq>sclwFy=}} z52XOsjRofxFlKpijJD-Ef>~78fl>-4#pWS0`luVx8BYfSFlu#t$FXf!1Ismp?%0A0 zl(N~>m0_4fhLOjk&9v8brF24szz-T5ZQA(oo>P9>0;H64aV>==`}mCXu3U!C!euff z2jl{I`RJmwQqs%pMszg-xBSVppw3Q<d^*{NVPUhTi+WM_A#q_kJZEn$d?BKTt*1(0 zG|e|Lr&q&$2(C6^l_SBVlO&p!B%PHk!$o!e+}0MuEL-^@UAC?N!bA~3qX?R7So$iZ z>o+b1K}eZtTW&u>upkJ#uK^AWgCy7ue4vPC;Q0YU-fs)Ixz%oUJMC6`X*xY|ert;@ z7Uvj0F`X{`g=r%&Mj1v?gl*;6`WmCN_hWxB;@q}vKW!lO<4zbp&Hz|Tg?oMoz&QA( zAA~;OXmz|1g@h2obDEu#o5(B4mqy-TZ~~*G&So6-LA64yir0COSAB3*Ix*>YMN%ya zQo5H$p~TYg@k`|4N@}`Ii!cXD(%LmI@=e?e;P2g4UKe7_SUanMOV08_0eruyJfF=r z);!lW4CBGI+_pKD!i|KGk!`<jO~y%*2-9^<1Dv&WUpcPtHyfVETCG-OHycWmU`Q!L z1mrvl*Vi93O~ZBFwYc4BanDOyo)500ZeA;Fi!&)4({(HZ+_g0)vTg9aR^qw5*=$BS z7fia|7#?hSJ~&Qdudcgbn67I+xR%=%XHvLPtKDLrm%L<6BuSD8^Nh3Cr*r1{>g&mC zLPmC@sWkb~X0sV0BIjYWzV_hFBoZmL*tQ`XHt;=KtrxZ>sFb#O$j0WJyO%%6wqqe= zs0+@8=Z)f44`bp1yo9)<O~zz}oFvx}Vp6j*8``d|o^L|A2p|w&g-T^r+48n!<E$#< zPA^s6Oy=YX%0;EvJT7E^KY_t;^GiQC8;$YU$Im3LXWQ`&=g;4=K=8aKJo4W6ZVd)| zyQ2)UZ11klQQ`UiQTRIiq^RcX#lII<^B{!7Pc<8hQ}IKfYYk->=l}5mtXih=f3oZ= zJ4*#Zp6~9B#&D~z>3ASyze21CAw&{#<yq`aBuPLT<E15zlY0oMMR6~{c*j>EE@!oZ zWGz8Mh?i9s%XwjG<Q_W~`*8OkI(bc;SM%zpXm@?1iyCN}wY1v6H+Jbh?Ys?r^Zn*m zuD^aYYk?m$@4UMmMeq?n7!JY^AP9#uFQvM!r|{4x+Bk>KIh(U}rJ&n|kN5e7JQjw} zD=eekF^tQ$({%<(3=qYGVHm-t&N!ri6Td1m+*dRuSCcz5s9vFfDrKlr)fy4r<ytIr zlOKEGNnV)!rixtRE~-Us@N#^9)oLLsskj!3-;#anu>*B455rb3if$g-cB59iSZcRm zw-LR`ICb(N&2bZlKiJoUI0|)L)1xRHxPo)(I_?j(i3(nuu;AF9T8{155ua-?PG>h1 z4bO|?{*iWTd8rjLY5o#i0K0zR;6QmV=AsoyUDM(yigZo0h3mMk5aRWL-);p#5VYEU z;2vL{=NfDq+D%X8XIs4}ruk-60)jnsVIb8Zi}i?DEtJ~SCZxz@Vud`|Cb-pBmZ(AG zC(OO-G4$7k;7%_H15MMkFbD&!>)4L?wov$L@RA_ef<|*ZZZ-j0&HM%k!%ou=`0e6i zp9dSh2jKaQ=JOvTG(*d_tuU}H%MR{zZAVyA>OmNWQq!bw3BesW1-27?W@6(_Fm5&g z8qIOuY;N_!5WsQO_=RHW-S`Xey=K$%06eeR^n7r^vck}^;IW*P&$%r!C1=UQUWvuy zJXXR~rnDjpq$3?S3Sv21TP_Am;U9>hhh!ovtJg76!qN8=g%1h7Syc-F!CbJ8?j2be zXtyN;nCu_yBQh4C7d2G>!Lug%eJQqYyx|xC7YU$S9jh1Bss%JsU+>$)53n|8763Rd zI*j+3?Z9yg9bNYUAn>?gbY0p3T*n4d3lQU&dY07?ega&z_+>bN%cO;K4$3%-Gn1HR zRb6CNIVN>s(=vvG2jrcfvDYYvyYH44KIyDd4iCU{zGht1Z$<%k|ET_2<HcHpIE0W2 zFT%CHp(0CiK+cjo$dlx)<U`~K$=As*liwqxRx--cs;K9664z-gRitLpV6ud_E@vM~ z>Uts$e0asC&!DP{dG<h~5p+RDXKkzMVqVBdhqva!JdV_K#Ic~ri?dvs$S8^k+m;^j z-;8Gf(RWeRMZO6lmMXd6Lkg89^vj+v1Y<%lmZ$|0=fIjO0=SX`KZ2Yi0_T7Y1R=P! znG&!`g`iYQ`Xb4sWdDN5P-c&58e^<YhO~f`;(16Z1^Rq(;88emc)90@BCk721MQE~ zBmqd0^zaXz|9PZj48%e(23!DRAlj*Xy-hA3JH^<kV-$d{^T$px0Cwsz-r%o4$@$6G z^ZRI)QJQ5m0o>lAxV?>F(v!z2J${lRJ$;g~lc(wPCF~bz20t<wXxhP7Il2JI@e-QG zCPj*r%AL<~RN|c{IY0SMaTG+Ijle+p?;1jqq{BqP5s+^?CIRHJw@J`Iyzhhn5GURz zfXR2A5CG!DyCflm03lcY7B0dk$c&J2EHWX*#5`2Ek~GzcEGJtmbknmZQArIKJB?nR zhmmpzgJBw6>-78i>M)Pvc5Awo#E3Rk%9Q}^F5-B+_{Lo9uCAK4BS)jN*T3N<r%$i1 z?MHbroec(n!{O>m2O*BS8?z(rwna2Tu3V1Y5f6wW9Ws!SZf%p4gg_Bhc$9ru?7@5! zlq{+&mPIX<tW;5}xF#5ESk+3_MIFQc{YT6CN5gnF+_OJ;_TII7&;H=g*7eW+;MseV z>#x85`XudMg~2B^?UTa#q$xkCX`htlCoOURi_85-9@#Hn{K@h7n!kH-x&O$!=JWad zT|bCNy>m_o?!ZMdA$OC{eQ+y&F)+IF9L^JgVKSB!C3i*_4MdTKbTz3l^}u>TPBx3i z65V|YJ*5urP&b{9ubLP8rDO$pr+K`8kRaiT1Qg-Y@^m&?ZXi(HC<?)QrfHhp&Nxd= zGfnThYpK`Ob=OPd&f1Z^W`h<>#S%TyaSXldFqx(~B4>=pOSAcWJfdK(8fN!49tO>3 z=*6DrTK#TAlg&n(B4d&Z?!>W5Y#T7m26;mzVHjGrX{v@oq)exb4$6jQvfrap@F*y| zUCvr+82}*cbSIpt;c%2C2?9Vv731MB`cwu007nLcK_tB;r6NG8EhQ~oFN%GWCo3!Y zjSbfY@ZH3BT|H^3R?D<vN*QI8>XFoh41-n{M@hfiaxKooR+0!AAu`H2=j*;6CoMvN zSXX`({uQ1fj}yZ4VwxAaYi&NA4On0lgvCy#S&slG9PTJHo=oROUeroRVay2@^(1N+ z`LukybfwW@&vM>JKA{Q;a8<oE=mYk8HHakPe4`mfmIVQz)Ij$G?1q+Q7_heHFb1aU zK{vK+o6^XSBG=6sw{6!2h6qce5rg9=p4fsk+ulBXWIi7Ou+eB%&J^f6wz}OYhR`qv zhU0(=11M)I3^6bb80e0RYCP`62!;-$yhyV+VbI)Izy0|qPa+xrnYf?94(XE(vPZ5X zkC4}s50J}a+XKp=rJR+hX`L7Iy5K$riK-!fR_0o1rmE7SrfN|ai_%uqsTMU9LMjnl zKo?}2CHZca>Tk>_WTIpe3#pEa_~AHJqt1)^(l9KL74nS9I8riEb)x(^UoQm=e1CT` z>3O;tEFI<lQ|VwRp?NKUmZynJN0$Oq_j;4buJ7}g2TMnpx6dB12$qiWL+sbxg30+= z&>vLQ@#9rB=)>#13QrTt0R5b&<tLh68R!QTfF9^U={0TJacsNk&IA2`(gQu1yXp50 zyq$)$)0yaw?QPhN!|%vWzu%F*V@!8;rn>9Dz~1m|N8jvrXh<8d?XKI6-P&C1@L#-* zq-UYKsXO*tuA7dyMSk)Y8qYNx|D+>%uD-duGyN(L)}od&Ez3$;(OSSyP<kT0B(W^Z zRC^)-o*)vV757MsY?3WBllQLCob}XR^fE8<VzCb*o(i?7=EYc}gv&b2QWr+eLnMGG z7D~h*bJSKbZ{*C2S{3OYWHKoe87EmP<Fby1l50M#$|{>oMK!N7A>&!Okij5cK_4=8 zrD^DTo(CX0O=vb0>}#L?UxSpfEg+dD-44Y_f#uK>Cjp{xMM_N%eAfZc)GaojQ${UB zi?XX9k{vD}A7KLrg4q<;RPdq*eGf-rFiNSeiKj3MDGeih`+2t!*iLjxsU+DDn#?;! zXc@wE`vB_=DF7S_pc@Tehue@p79r)=3W$tE*9`%CO%S59gbA?YE5PwPVL`~1e?bE8 zCd*`poFVs;N6EVh35O#L5|uV<%wP=khUPGp#T6;=MxxkiX%rB!Z%YcPD$BB&@0?x6 zqEvB_7mISHsxPN~5lt6aE?r@3mQft3s4n9yp75&w1I!=Z5chix1vrF2Hvq!~8jbo% zgns{oY1wY4qZFb&-p6LE*+eh`XKdS0wscL`TTNZlwbq*?vyf71aLI25E!rOej79*X zXS?H(=K|-dZP_#jy1j?gwtJ9r#2{GOaDCG-1Kn>nY#XjF3<CjT2IzWu$ELsI3C@{o z830JB{$})j-v{u0-^T|B0Eql$9FYMXexF7M-+@t<jo@!w^xW)mpa3K4xkF{ejKcE$ zAPkc;gK**oF=CMcA)!C?hiW=mYURr5Y7e(VDG6LYJc$3ef8)4k8kAB-sbO}ro8Z#n z0bKs2#Y2yLY)dIaXojXIN&N{zkTkDchDYEsX_AwKguz3gzn)xWM#v?lK@uOhtk$TF z5MHE2{0l-}Ty5J_>$Df9>kgFX0(RQHS)(Ceez3Y~TW!s>cw(B_sN5-Xgk~czmR+RI z*2YG=1Gu?))x-sG9=P$wy3=SNcy1$g+@Lyh_3iM_I391+wJn6Rxv}2s0Tji~#xQkV z18tj|QM9}?ziM+6Ic(8Sz-4k~3?d*S-6~2?%CNvj2lw45@+z{Hn(8*4ypWFPaUzjX z249tiq3gEQa{Yjb{$Ml;!_jEa7cB7ImSyX@VMq?1keb0bE%FPu6b0qX(4_EycWleH zq0#OnT-PlDh=2%)AS_+yNvGWa+qP`gm`736FswWFjw0^u-Dw$(D2nC{Mdq3}+rIKF zmT(ETADtz4lE-Gdpd740qGXNqXLZCOzewsDfaGO4r;^)9l#o0(#D$A`Q4ZXGU|npv zyxi|UNW$w3-KiI6&et{Kb>T@aI$d2CxUq57qY6M-nhv0A*4s>7*LAZ2(16e3WOCx_ zjSa+&jjP)oz=hij1Nak-3&Ax7pq{I7A-JXh6g1#So&#=dTy;~qn*s=cFh0Jz1{Ej; zLYk%&6Cq7g3Q!6@d8AlETq=$nSz1ESpgU2W?yw<*CWSyhKp`|K1o{CILKtCJF2jGq zW#W^J+(%wRNSMy%0;9C7F4I&%8my9T5IxkY%emODM0XCji<q?v-c7uNtrrRpV42M{ zOJnniOh{sm8ZKn~(<Zn*TYeDut@k9!s%`fv0k$0;ek`(WL_kw;(Y`VA{o$b921*%& zc6%`N{qTmi;N0p@mWmdmsZX_tv1XBP>RJQ#)+pq@*Jyg44e1&ho}ZF=2m9sNaR3}A z{$<AS*o8F5+0`qnj%!;ZK%>*?06?eR))7Xw<vJ^?SB*xN6f$fwicN=UfRw3kG))6= z^XF!s+G<?641Yg|u;&wxGzft#E{iNK3+b0}UDmz}nXEE@2ye;r$BW|g_dj+2*&iy- zo;`UhRB-$Ap7*>zxbyJG@4WL1K>pX6g98ZSA=fX%Yhrop8F$4e^$ev{wMKMrjLfQY zm2;;`R1JJ?&o?2LLIuOY1~BtP#aQ%V+)F(Vr1Av5`k;g0J=fGU<POtyV{No*Y7!XO zj&+R$(BHQ!3`0vp#+dP#r|a@V!B8^{aa7Ya@3{u!?C=|*{;27?D5bfx_~uk|9nqpf z7;DQ0W9*+B8VF%N-xJ(Cr|X7%-aR^?>=cHsvy_>Z`=+I?M9}YaEsOP-t{cB&ML*^+ z7JSo?f;R~v1PQtFXYgA192t=t38{qyL#+|5LSBW7dRBAJAxU$z;d1R&@{2T-V`nW? zxv1yUNh9d0k%ymXioAF}GR7IwYpq@8t@idB&3H}IeSb76Ei-X!_J0wm2-9qwcO^H# z=K{bya41rP3aKM5^4#W(#UC}>oleU^u;3{V06`D(d}A|-0T~P4OPTM_lY}$SAIVa* z032}aeV0;zR%@@_Y<j-7xOU}Pcm^)vu47|T5fX-D1+lVYUdc?TM2&fFve`ml0Q4}c z^I|n?`@d$)i%->ED>N)S<~X_A<VU-YT46Zk+N3H9`646Fx1ankX5OwrB+dkukkEr; zx1T8|OXG1iE`s0;n&%#yPo`_~wwvz0=fOwszWe%<CV+nWx;MOYV?M8*|1c4RTzM7` z;1Y4kh|EY$?jp}8WSppJqOwK3s3-NJR<#e3$Wdo<6LOi!qz}7LXR;h>D>koZeW<<t zj6K8dtF{TU(VC}<EO()tqh|ZYlW7Ux0?J@WO>UMxF4bN>xaip*s~z6HzgjSdI|tAR zMyvNUmzqoOOcPL%!MN4v1)*tK34oM(>~rCD2Vns38uVRpWQ9?f1LF9PFz_|a_mFdL zf8_8|<k+5;G5+T#9*?hffC}?1pZLVA<?Dt80)_${r{NifFm#Pkjb<8v<1}WU0O#GH z>x}E#G>nppkSl+I2k`0mam6VzAUBi8$!p2`$S258kzXT!Oa23NNMHrF;A*%4_rg2j z<M2aX8p^8SSj3UmIJXwE%rli#n3`<EES_YOcruNq=~Pscsi@NFWSURs)A@8>PNwte zq+DiAXYph@iRGl6u6Y?(lW985;<B2mvIr3`fPd&&ux~20TFnLx>M3Y-ItwT>LOHMU zawem=%&WXy$S5wWI*ap60P+%XS*bjmreZYaUXn=4nG#uA%vwaNIFQY%tg^UIv7}7) zq1@K0L;(tlIzJaWAzg#A<zTWAPAO?&Tvp{ocAUKq+=nf&)d*D<mug;3ipeysCfQ_~ zPA6HEiD{HmGf^3pv%Is_EI%{qOcq%@tyFm&!4$KVBLAxfe+}_F2gBj7nWh0?yi|t} zwC5VDRzD64K&WmU0In_B+mOIgvAdkru*jBoizRrrs;cVU;7CDr!8MIqCTc)!1GROH zX+D6jF>MKL2_S@^nrQ%98i167>ZS>!jyKD;HBAFeXHFY<7nqjLAN^5qSChKVIZ{(d z$qds3uuPpvDUNH>GyzOgYAJF~HH|ZdOPVwdMAH<S2FOvsqQ(%u48>rn*jdR&mTg(% zY-Oidf;^L^z%cV`7l5Wi!a-ZG0M&V)x7W<^zH?`(05v&ra#H~o#qJYp2M6ox2M23s z9RN*oHs&mj8Rsm9gmL9C4ncr|k6RXt61VNqFd1h;AQ-wt;Y-t$z75oF00b_hn&1F3 zVHz998USj6Mv+TFnd34l1*fP7Ok>P(8P)h0I2*?r0BUZiG3Kn9nP1B}Am~zAbq}9r zj5Ed<zj3!H5R(4N>dH!AL9w($h}8xUmZU@0$u>D4=g33kb>v;`M)V~@#&gH?zN>-r zYjRcwZAwN`WknWe#e5m~|6YZvOPOr~X~E0li1)~9;tE@?kwZ=C`nAoaS`Ewmt~x1Y zHvaT%A<L{PVI~Jti+b!de=%0`0yUR&S1aUO1hx~cG3GfAgsmt+Z)?5V>2%jmB}p*S zvLdu?+YX(Q!PIlfgEd!00i%8#c)x)(NB}+0({xP(yM-7<t|6?4m5MA2OjDioJoo}Q zhtI$7_S=r`2Zt-tWz3bj{$Ezp{=9wU6yE`q1tH6Z!*fpHB+j|IzWHW)B`;c`ZHv&6 zGK_?DLc_G04a+i)Yr2%4&$(@CfKqVHSB!;*VV|?iz_n~RclaL;gz2!~x9*b*p<9+l zBq3Lx#RIrRMr2AVa)R7M?jZLNqVi&z7yiO_q~m5MS!A+|%UYG=(&ieDWmXrZs!OS| zqK=E2mm!8ZD~gP1Ewduds#4)6jhrII?a4Mlmc`_a=zFd2KhU}U-0|P+5017(uYcfc ztJ4!F%H@^v<jHd7?xHyS&iPlq^88IV{p~m%=X-;}k>b~nTdPOQgEeay72%+({D#5F z<lx}zpU*Og92=h6xa!R2=G9kkoH)O-eB<yvLp4bL$Ab?(_@3Kuf6s$gci!`!&J7zI z#4PXmG!l^ksmQhDA@XMON%9Q&74pp)C`gdtnJkTE8D!NRzP<^0kxNlT&ygOXa3LB# zOE2OcwNxhJ$xwiZfNkO}67xdU^J-oUp@YHDXu8$uNWk?-mG}>J(2vlpmBvvlzRj-Z zMJ8N0jXT}yu{h6u5@HuHa^W#fx$ZOIT!Rj$Op6e>kiXw6JYO6bhO@-Mqag>zOoVl~ zCFHsjS{7i>wSf8z4Z3tdLy9dESwI08X99sq4QNR5(}($(F?}1&jXV>8eR*u%q#=Sw zeFokg5rP*YxIY`A8=*VFHhKo7fNhL4M0kDUJkGbcLIQi30c%TybsdEXVB292!K9P{ zKcMiyT>unlky8K)w(a-~xM@aQaG!gOgVXNk8c=+k+K>X^qd<W_G>6y$j9g-rr~I6_ zWJFGoTgXG?G4dpNE%`7Z<6M^03<Spes`H}#jBz1FQ3*cc(rTZnIM4F9RM<Kj9M8m@ zxQwcfOO?xMDr;SiMZHi{l~rXWt6JqnELSKZ{LVT{>fIGU;T188;h#Jlq4yGtb1Mdj zKh|L0KMo(Kn?W3fHlS~rCg4Wk`+)_%WtniQ4W_|m;28#F?Q58($x$DrZm_k{Xf(Pe zkXavP6zR*4iP2|Ha}~L6v*mdJj?-$|_FqGz0SKZJfc-xGIRo+o?cWOkJvBks8Phbs z0FmmT>6B?&xHWUJ%M8PNk=7p~Xtz9VngICp(}C=0KLpyc{GzU-=l6%6S1Q!Hy5|i# zK^O)dDF_fkrbys=ay=n+5lJD_0^i{T9)nMjZ;PAHs(>IvZctUi??oH{-sXQrv8X1~ zzY60h>xUu4NoOSt9LlXUyQUrv0sDi3ixGvT6}D^Kxzg(+p4Mg8_W_QqC5geP-|Jp~ zY?$I}rp?ApCAuy)8!L-MLAP64&T6*{5Qb}0-xmm4s}Cc2mO>azb^}16Y0&^6iiW0n zkmpe3r{98TJIK5Ih};Jlb^4yjXR(W_&vgvg!1(thd4u^TXbF&EAa)eKC9pHk_+6WE ztWnfWs}<OeWrc}lTdv!`9^u?H2uwt2JDo9rY5JV60YqVITa2;Y1V|`rkS+En4Mmpo zS0D)5nl=amaGbQ|dSK`<5clG@+)hC?mSLKA4I-O!3TWhA%Y+G25c(XLY4$p%6?5sh zSAG>Q!ZTz<PLrDmfy{6i3K=Oaqo;JU*?GbGDN6_4oZ+I*i(wq|tV9ikOw=%m$Hu|F zSzat^eDp-`$lmoXrQ6M`1Tjg>xDU6tZrR@0XaVV|e)ui%c&GN^-)F#zIQ-@}6U5|6 z3kD~bSKL##v#BsiFzuyr-z{6)2%XL*CJCzM*W3+E62v4yLIhdAav9zam&s9b<E%{P ze3SesA>-Lpr7|Sto=?p*hwCxzz_QAyu*f%Ie>d4T5^+%%dR6B%=|i67avrtAE9TGP z#wS2nKvxlhy}BUMTsxT;=b0&H<*XcC=79N>IRLUmPf?MTv3j<UMWUuNo5(+Of;)w2 zYC3>v#$n()j>ZvCxNaDP4bue2wI~`!=(vEQLReqF=Js+1V3=7(O~bYTblo&Lq{Hv$ z+%UZqX=H#f4P66tUC%H<w}QZNr4-Ms9a~R_zNPDqv~1G^s_Rl3n&C(-45G+1835<H zt^ha#u<XEcT?;%)gLW&90VuWnPN&tf4T`$aen2-FH+9MY{=x6}`#nE$9KdF4m^Lj* zSyB{(0fOTut@X833I^bNq2mC!Tifev6t}l-8@8IpbFF5BqGNP>y}pYe?l~fbG|lyg zfO7D=-EPPGMO3QQ)C`0uRLT-k!cR_>S{VjDfb03b)IdsCcf2TaT>#s5<1nDW(6%f) z2}4U~+zb&AbS)B;0i{xydbc+o4_-qNbVD~Nt&4280!kV_o*Px!KG0+yToW={)~bAV z^}_12p2!FH*u59;z4HZ)J7M|KrK?OX9fv;!D~I2@^G^H88FsFG6KC)ha++L2&XEVn z^T><H%gL+B>&RQk`^bmMr^y$|50bBtA16OcewF+V`91PS<nIX?7mF(21cphF<=K;A zgp8CFauUyCDP+<I5%;ifp_<ht{f^m5xv1ww{gucIUX*c_5l1=UxRR41-GoIona-<v zR;#!w7S-hO{B_KgEb3UQtlorLNmVPE6=6b@>8{G6E@V-cS)vwoDT`9pi&Dudu9YmR zcy5ENQu!uSrOe8_5Y6`iwG^@_<vx_M&T76N4Izsf)bkM&Po`Lu2=*3$Bl+W8O8z*L z4#JiOurLA48o->d@%KHR%cKJ^HvwuBz&L#I+S(edmjJj0b4JSzTw7a%(~uoJ@Y7~u z!ucD|-zaW4DPHZr5OD_|IR6s;h1*|buVO;5Yd=^%`V;_^iz7#FSRRd5&iT)kl)`iF zgx4`4*!_3qcRluUhH%G=1KUorEMh(!uMy*H1AgaL%51z3sRKd?0S?9cnE`MYwM=#| zQj6YBsRNvI1`gsK)IxeMwJiF(*Ijor!lc|^0NjU&cn8k!dU%sD@UFhmz4k}}UpnzH z{JdqE7jC}ooH%z?$A=lfgTUBBx4jx)v3G<4u*E_kETXG!NcL}8J%4weUw7O3g<$uy z6yT0~834QYUP}Vpbw1hKI~50jPuvfXeEtRiKtO^dymA@743~*dMub2nq>yo<5^kHm zFDvnK1q09?s|>FCqarA5XYn^hvjq=-+3^kA(0P}w>rg%mw?VsI{B0guf4v-j;L*ch z0o}0Qvu^cOmEXp({tPa|r-(z^WQkOS=+68_&3?uk7yb~hk|II4s1s#tl6v$k69T%u zS$VYCxck(p4Bi&EUv$$=Y1m57oqMs{5Jx7P!;PX^I8l#Tk6w3O*6wA;4lcaC)jB#W zdtDHtQ>X9wnRb|+yXi%p_{HbXr~j3&52w>3vKcvBi}&@~+4W~1GuegX$1_5RRwW>~ zjc?wuOb!SEmB|s4LWYZarWUn<uSq>m2CqW6s26IX5)~FS&+^8Np{-~7oxHJvH@N23 z=H}M0*X#AyH}_VSc7J?4oNpajT|KfjAB<t;=vCX(>GoAeS60*Me0ObacRo$Cem~#Z z+}z6h{S0pUcj$IBX#)nZx&ntk>@{F{85$nkodWjz2<hSH)}awYQ9yk7_pYvYySnZY zLO2mup2b(fC6bW|*(2AGTL~F2s=Qw28{tRl?GRKA>1gQe^YMjHCMqr$j0rmoHz!x^ zuC2R`{zx@|4ucRd&F1i$d6puynk$Dth<4vWbow^l4o=^JiJm(id9Pd1?mo_SZT!6; zylS$EkY(EuK%<eFmfP!%=2-@iW%JeH(ENgpXg}XUbe?Y`+HZ6KoHyEt_U9Y`=W{lq z{g)1+^OuAagk1SWxC}o{D3Qb@E(wVuZPF(hDab0>BqgcIF4-q1$W`PlxtDx^e1v?0 ze42cod_VbN@-^}k<fq8bkzXLcLVlwpPkfvF8Tm^>YUjP6E^3@*<;;h9Ecd8}?#L`I z>wC5AQZSj+ciE!h1Yi5wqMkNJ0Q=!)!8+VB2EeXD6!p|15^A=)T;x@e#U(GRY@Ed< z^;PXtS@^>y469+x*=e=vEG`uT9=DjkG**xEnHKwCpY^jo>wPcl^Uw8o@6~<Q`yJNj zr+JUv#`^5{hr`V@-AvPW4Tty6oW#Au;k(oH@YAMwI!#Zj)cn4(#TKpT(1VK!c%GL8 zh#CmP)HNb#+0qI;576_yR;)ktGpA*NuG_xjzQQ!&f@vOpziC!~{#V^!`UbrD@Rji9 z!}pt}X})AQ{7cg`&94rJUo}nBe8X@!Nz?P@Fd3z3?ifzTHf&}%#=2uTE4J=T4BO}% zj*;uO0XG_kVchO@_{Zsgm}dH0;o$kyw|^6!A4mzH19*~BN_Bw%oW-G#0Cu2LO3}~| zf$`v$^vmh$5N<kr{DBAH!-r2_xB$-KzrgD5?(2uf@N?!zhsN+$^Z4*{>6cB@RH<p2 zq(5=zj1c%QxJVjgg&g^&Q?A8ic?o%d9^&56wNU)r5oHqC&B{6%S9N~)%g0Sk{-h?& z#~T!z@bgWijl&=7gs}D<olY2rVdwWJ)dO+3s7Z5a$&-KM!yj!RHsHDj9{wqWLAMhE z!FIa1_zNrpAGkXv3@^f~$s+{Q;()wxlH=3%qF}>VPj!D(10A1#lf6V`grN|i2<PWV z64vj`<3$(_XGd37M%l{pk-F1{PIr4a9JZ0^nhrvU!Sd3|!P*+)%Ifhm(@8NLjV4pi z^Slk$HZ{j$<W0<AIO_(XsWAgUMD2EWugC#{U~@2lmzDhiU_PEs#$&|(V0ooK0Lu)K z8VH7vf_FS0V5vBEe0dpgd3nAz7$8lDX^Ox(IJ&MIvq2v~H*^VLY9cXB%*T6%$)VfZ zB!mDVSAGR9!q>@pLPA>!uMD7@K1=8nsQ}HiUuF@`@H1Y5%T}%-|ISpE7kT!ZHy+ue z7{`%hOb9Lji(+p+902HA6s4i<plJapl_)g0G<99IaTc+GX&RIpQ5aQe>U&tt&%oCw zn>SaTE;zR2nr=Jc(QyvY=~SI;)M|reMV(HkJJh7_Ew>s;Yk6fgi({z)r7P|Bx)TJt z4&Cnh`sQ_OYlISV<ypAQ^EcQaPkGI%7uA$?Qo3>KIbeBn6J&i#1ig_6Y$-!-Wv#%u zc||VMX`1D9tPta<T!Ih4&WcvW+X9|Ge&^BItk;EZ|E1IIqqDNtgTNnrs$7+)L)HPT z=GR}hsF7CH^$&5!;gT~hDAO82;4;ZIq_!hx1O*2!gbrK?09~g5yxAyPj%(?b#Uw?6 z0QVjMbbGVe(Ie%H`|a5m*!88Q!QuBqlLaT`dUgH0g2m#x>#I4wol1dRaw)0crsK4Q zU=HV?Ylg-x3KD>sW*GS%1JK*;(4>ecrIB!oKybA5MW3*!O$cO!oPsPa@87#Ft8A-j zQA)UYaML|E9ZV*t>~oLYe)}WmoRgEu<@TZtmo8s^!DKM`<~JvU$qNp@d2oO?9T|8L zUfRyQss&+Hxr|3{(Y4fQWfjb&&ySrgOT@A~d);)O>tIkcTdii1vvQc7zr)sbU1w#x z4!ji0`PsAc62Je(CQc@2&P*ow8waqqdhFQh8gyZaZ5bmzA>a@FA+0kh<R)Y)E-Scv zcmS7w|N7yE6xMonwrlHG#1-=XI~}`y=X>wDi!=zi@;i6{KSI8Td>{Eb`4#ee<gdv8 zW+C;}KY$Vr;HB_(xCB1}zXacgzk=_eh7DZ79YV$nnHLM07xOHYxtv$CPwKg)GL>nO zXN!8FD)$Gu!mBd+XqTm#pr9GRz?Y?jBWzqNif1ZOsZ3=K$g@$Rk}}R^p5?KSxw@y% zvY*ri#msyY7L^Bt604w54iPiNEbt|rnU#|%XN`pm&{Ktz7HHTpl@@s&gI@0tvc@Wt zGEA2ik-*H0&&ru9l6cP))-<NGQii-|i0<}sn#74L`UW@!K-BhU)wN3&Z}XEnsTXBZ zC)QyMw0DS5(V;18bF&C`JV~x3z6I+`e^S1Nj=bQah^7^!E~-|+L2?u6R1nG1z_vWK z{R1sC^rS%U%qWnWblFnP>INN|MMDM!sTH3ABwS`pwj(V>uE>0;6n&e+J>BJkxl$K` zyO!y?oKhK3%cLGx)s9{FUDwrhiilj8QfdG~wA}XM`0-uATL8a6K)-5fl$e%=$Y>Zi zmd`kV)I>t5tGk}-Yuetw7s{lAmPLmecU@BtxDdK@nc%JtfQ?3@<9`45yPZa(0dNhX zrBe#L$z3S{sqRxs4NWvmMw#H$65{X<pj5K~u*r3bAT>v52Bp;3CqfF#0x3QA%pi#Y z;$$#LVt_aqJSDhg0C2%wX92(r&(kRYbh>8@-#0j55SS(adprmc08sNdXCuo5<ht)s z5rh^%%wh%T3IM9Rt|o+(05U6z*=C*(Z5}hzbX?yz8Y(n(or4a*n8}b+0ER1DTQlmw zxleqeI^qY2alBU>)$aBtWuPH583S<fal`jr*S3J`x*0aqPqAjR+jUNF9e&I4eFWXG zb<<>A2=fmU#|2bL%LDX$i@9FoFF;7m6i88Oh5_&+rVxyqrePU6pzk}0M2g&&Qh;e_ zZI@}nlbo5H>V~1~fni0$<c1DF(E`euZo01H*tW(g)hM+%r=!LyV-5h<d0^>A6ZI?v z%>vGBq#C6x7!D(yF#xcT0vKR$(;Wu79%;zIVqEiu##}C%VTeiyg<;s_;*jfxZg`%q zY{?zRV@zYd?_0p79s~gl`-$#(hGFX5Rvl&f|3tt!SibL5-GOccI8f*fKbypZVVnRY z@o*3)KjZ{~l*;J<3eTsMG0znX%2^odphqz)0c_9Hbgp@x+XnzcbEJq&00fsKfDR~y zXBsU4KuYPT({a6aClm6^wx)q;xDDT@-1P#^j>i!)DmfxWSReSkPUAobfT1r1fH0z= z)eHLT2mnk-<QPZorf>}t3_S>4k1^kGz^g`%D`jW2d-$X1*pAK_rJAN0rtuZ9ov35m zy6^(V+?MabzjDe@m|RLgO_L`K)6g`HQpR=1c5nrx5T-yzxzscyl#nZbjIV_+5}#z` zBq8HSPDK`2-7A;?i%mm4&%i#rS|lZlG#ypRv=MyCw!_G_Z958W`_P<$%U*Rb`p~Tx zX0w6|yWhL!%)4HZ=Z=$&TPx$M`u#L}joiR&?1VeGi{MBZCo7uX>Gh%r&~aO>G+WO5 zJL8e>V;>On_~pzeo8$;NL+&OoCm$e8Y++-dBOwE;Lla9JmMOu*z#<l_knX{}E|We8 zxoA~Uog;)XQRc`z41cfZg@3YoD%y(dPOT@h@7{6b2&G4k+%cW!erR`=mpg6H0u8X& z>-F%@*gvE9T@U}u{4Ow^F`dD?z<d0Ul5ZHUYZ#eZ&^a8;=ly=aKc64W9RMFX@(0~< z<OqG!v7p^qZfgKqd)amz``^cg-}Df@cY6TdyWjRE#@@sL*d#Xky52Wp*Dwsjh4#Nx z9Ubg2{U1-Mm)KY4^2wO&kekTk<TZqht64eACiS|Wgkyr$T$D}IEDpf5L@>Js&mz@` zXvK+2N>@Hp>87RDoSM~@T~9`(@}gQ)d9jH4L~>A%f$)_s=U@R?jM>sy0m>ZBvZcc) z*Z}s!V5#=w!<TLY3f}2<8gT-9wngD<!#wY_0lJ;M=;djOm=24dpji(y<gC>^`l`UP zese%=2V=;n<It}w0q*@5`0hB0!RZJ<Xf>yf&vkIUQSQ2+bwVzRLh!J2N0)+VbP+Df z<WlEXcW?stdE+%urXBpLxU3p}`wkVcUWO(rUE{n$3i;31&Zdad*|pcqW{9)dHA@5I zq((Hju|IQ_{qNd5Jw(5J=S_8uSl2h*dDG4=b~+pD6}(_)uYuRjrg-@GcBefWbvo8J zziD+kqfxtK!_^L556R(uxLDkH+q?p(=C@U=tIa0hDI_~&ms}u^5`w~Iv$R_<HLF#- zk1F;R$`vHQs`D@Xe#PBDfpW<;-X$kNbM%$^e}|f`<4}`9qW75R_QF<+qG~iYqW3(U zuaB-bh*~X#hH7j?@49+xYtWA${5^H+<ngVoGy@n6wzjUiu(OS@wROj>+uKNYkKFVR zzC-C+U|SHohT{Ob?sU};VD#VnbI-%A`yEKrt*sNMx3-1@81(C{Yff*~!yz2*(e0gE z&h73}+}^(R?nT{)i4hwKycicdMrtLCI;vZvF7`p*$R%U>+9QvA?Q83;@Z!b!+2+R| zd8B!Ee(_@1TL0SD{`irHzxK8DW_a;pdA9YjhaYKOH@|o>Y_5OpYr5=6zw)c_@0g3= zfxcuWQ_kV(O)e4UZlP8ZptPZ;`B>A}ye4Z{XV12)#`V`eXEb{g&tCiV(-4ZsI(*w} zUNdT#XV12(=JnU&S9as<wXb;%p+sD{3_CF-!6KfBG4(zq-G<6!+Iw&pP77**dP&mj z*&$?6=cqnQrA+us1A6oMB9%fy7&n_?e4Q<X=eqrk>s-$j($S4pKaQHsxTzZkcby2D z&9${wGjbiF8+!BKa5S##@d&36b{x3GAL~W75Ex(Qx}FeLf8!u$KsQ_c2!*g++YT(o zU9>Gk%SM+oE3j?%H|y~jU_7qt(HLMns=0}g{K5j*S=x^QxB3Mnj|$Z{TihX(hSlmF z_e6>St^|;FE1NR5FtqB(z~KY=A~fp7CQ5BO7R57Qn!azM%jtb<WyP-F0i{y9X5U*= zrQnCCuG^m5>A0S)>r@Eg+MZ|Gktc*{S?;78x|VHi+Lr6tt`Gv;L*1xp`u7*z%kKXt z2}-4RYDjh5;zy6Bflg5~HO<f%11s_*cWuj@bRyHT-H8Q^X@;hmc*L!XM3Ft-1>``k zt`&Ga8Oq{DeGtp#rw^qUVo&v#Lc&K6-{)HvbbCan2ll#Pnf_-D%hE^5lCD!9-i&4# zy`b9(28OQNnvS|rs0=Pzmj9N`xQpz!1g3TPubP&{xnZuHOOw5z)Ak2aLtV3V(;UYc zK1-i}!He*2@&qB^px=-}X2LgHq%{jV&OtS=EIaXbFIW^DnHRZS1>NGAY*EdtMnOFm z?s*9k6|R3Fpr&|n+10)FXw-Mk1>v9vQb0BuXGWsp&w9ScrDeJerA%pCc4+F6ZCOI| zJ@?(NVF=qaZSHxdJ%@f8d#)JAyVP-9O$vOa^j!TSyvw3_G(I?g{;F?eqoYRv&fRqW ze4-Rk%Bc;y?m6xDaBERD9Hm-W60LXJE!$!Y92<nNyQ<kShJ#j@GDdCey-M%*hoS2* zX!$~bleR+H$EO_~NtdjUnw%szkh{oZ<fY^d<lW@s<V)m7$us1a$nQqrR4$*36{mr! z7s=4vrYNR)T`bVk*tgWv#^j<8iA);9%ISP%Dt<NUGEs<t8z?D?X}%8&HBDr_5;q8y z6vcx&5o17acfD!ShxNKQx_Ke@L9MYP%ZuaP0)+WhcQh+$QZ&v_x{{)BC8hEKNu@wR zrNkWxASHmjR#J&3LxJKz2$OTcEylJ%dJ-mjmi93$qtX>fr7P(@l4}$N*C-s{*^5EK z2}vbNNq>)?{K`{b$+p8DoP9qlAitbH3Fn?PUrh6d1&V!ow;y;Xl_@;8lXX$J1^{y< zU17}Pf^$=dcf7WqGy9l&tHc){`%71sj7_+$ebqtgFL8l?TTedqm8bsfj7>`_PrOno z&&k<jJ%@D3I@u?rUcf`6FmLfil^3zqLm~GefUwj4Irx;<azhdrKF{xV$8mJseS1d{ zo(ysMqhVSMC-meC|9q0B`q|NZe)Q^{o%Hb6p$XX~(~qLdSMB^<F9_tD+|#F@bG$d& z9j}*H?d+r}{Or#|r@Q{9^;QcY&2}zs8A7u;=FRZS{u+E2euDhpLaJ#s&5Ow<Os13R zyvnP|bW-Kjq?%;&qMB#(DxcoBPbbs7nirXNj4+*N^I}p>rg=3fCe@^v7n3Tj=0(1G zm`^9g)TvGLDzA!pF)8NRq?&9(T1}=L7jUa50J-STjFwLGRY;|fshr4dI@yNFbg>VU z>7<<1k(WgoD_up#38>Ty*FQf}Ee^`|M1FasisD28_M9ivc?I7E<W4EqfD~@ZxMV%k z)(jymo6$Cplm207s$|{=fM!#K*E<u_&CRiEB|&F%BX5F0A-L&!wh2<Fve#cqR#%qS zeQY?6qct?}Pn@{t0-panh&+yf!I69L=+6iMK)B9yFObza`8?~`y2hC<5N!#Jn;ig$ zBj}EuIYGX>)Lqu~w3&J?GYmi>f<UP#jQ2M-od9Vk-A-pR2%??i6e-@Zy#vE^YwMJh zF+k$qgnx$1B*T@K;#4jGcwhDuAr)qoiORDOLV*efY4zO&DJ1M%DCeA)oqW7rubsSK zh~tZ@-!BTb816r@RzEyQv;Jzk-EOZA(ri%qK@e2%X?o<yP3KOfan##GmJaLsL<#sR zrAK;)FAf0`f3kV(*yhBK5yJBL@ngql<k}6UWDku`6XV8OH7^W=9d?i+I#yAhO!f(z z87_*v@N+|Rc5)xCWsxtdo*&{}{|nq->q2bR51c=KB38pedcN`;8=%!*US4aon(b?L zcUrILu5aXHgfm=<@bDhH)yg(TBV8Xog}vU&a<7NK^NbgUVZ(KRGZA&V84SWkBi^#@ zRa(w(?R2~DwGVWcmPQlLlbSM-LY|*q6TH<dhvRYjQ$>FeHvzNk+9y|9Er3>Q<)<|v z0UWpC1))1=w;e(V5_08PByfqe$uZQDs>;$T@OCpNsl|}dFi3Ndg8pvzJ|wavx^f2A z0d&Xd-RKyGVK_Un*GK9C{Ky@H`0Yj%4#$@CT+=e6d}vwlHhN^f_L$zo=yY`@H4Fz{ z?HESboNd)d7z2MW?<S5TjHcCTpE=WNYJrq-)a*TX+tA(L`92RZxbo}pY4~yS9P%pi zesY<RnprQJ$g8JSCzP~01km54MFd3s^peNYrVEp)J3E9}q(M^2;ufUp0r!Mqrl?F4 zO^_ENh$sg{##}%s!CBL!oX4|z0oosb6a48>97ZygqJQGUM>qiNMSuy)zAlhEfa7r` zDbtr44S*<aw_^t>K(V$q%=4nIbI>#f7+7fh3r7It&%)x^vB?A>A1@ZOS?d58lhyK4 zr)^1On&gwkVyU2iwSCp;o$U~98{A_DH=n<X>AL(HP~Z$HbvTnqfeX(4fJ(^&!2}{Q zAy^=og^wDXQ;MkB?YoOs8=%u(o_4zqvn>GIUg`xw;zZG=8Y(UZ#bQz9IcT~74XOT9 zItb3F;P9pe!0OsHCzh5BL#bV0OxH0K!gEayplM>wFr;Q4{@8-Cm6dZkf_~eqgcDNN z`4b$015o;e^CJi@{Xj^`0>LC82*CqEExwSExbiG~J*SEGZE~Kxh!8yU-f1BKFM7sR zYY8c0)nk~JQ5W9dqZaj|jKdmuIb9Q0H7%)x6!Kmza3zfZ;ZQ~4<2$s9rTzdg8?CN1 zh3D#9=r{<C=E3nSy~YVcY;l1QM^S{>?zG=3*4MAER#v+`i&M%F$7Ol?)SZsLWa$QF zLNehvCIUkZY}>Y6ha)0~uBJDevpSA-eWbgtwgs-6d?4<2DGvID%rp%>w<W}_g=HB= zD>JR-&zY?@g)nF+Paq;dBS~PHdDxKBlwqXviYJqEfdIg{ZP_*ynf{e$;VW>7=!A?p zE9Hv0pF#B4$Daq&Prl?saQU%Y4i9lD^?&u<^jOAmg#$<ZXnL96e&>GCkuq?dfcIk8 z>9^Y9+=_xA?;s{|GQ9f~gZ$WwUUsJ2yt*hLZrgSzj*(yYmUd@<tubWGc!J_>L=Wv+ zC^QL>MO~CqA<lHd-raW{96WPyO#l2`9RAepw?A{?!ZUq(O<RHH`h955)iEQEq}T<S z#StJ-EUW5SQDtdjDjUVPTu4>bGibm{U9K8ZB@6li2%wH<amN1BrVIe_q`8HB?G3R8 zz>^MK*A7A`!M`S!qA71g?j^eH52T*3j;nhesxRLj?~>AP0O0tAh?F;5s6C&K<Es%& zV<=kmUz$`tAyD)_ib!b_$WZfrZP+k69fL3uUU?S&2`)wD(|7yycSk`%F}c9k3Q4pX z=+vF&uJRvc{0}&+q~75jDv_8hs)W98GI&P0^|{V%V49w9nWp78%=<Okzo~Xr$8i{I zQarMI`yIPSkTxlEoX+8|i8(~r@#pE=QJSV{B!m=huiNXnQVId<6auE{f5*+)(~)nQ zrsesj1#tq}+j;Im7^;S2Ss50c^UCTm+j5i&LwsC{^6)WD|L#x-AwnUAa5(4O5kiWE zutoW%kmuFBf*c`t5fWAyZmgJZ)$@I*2v?#pa*mVfBAaYOC=~k_%6RHio*5rOOOLvR zUCN*TCevs-*@l<zUw!lTPPYr$sI0>PICwapU%y?dUQY+`Fo;KY?(P8Q#rD<)Tk3QH zu7{wpd9>3il7zbP#%8^_ih^?ipU45SbT*sK#u<WTYMcWEjlHEMY_E3O0uH~izOvK} zPhWlaQmYLx1aE!4TI(b$n&pqiEB#K{>p={RNeO;BYrr4EGsGriay42+B&R}VzH#Z& zlqCU#TL&tcZcwV?mUalT3wlYu<O<HYZ?^L3V0-7R9J9DHTXp)Am-D@q8xK}i09IBG zu36pfZ)|Ms&8EF>w>O>b9hppe{{}Edx4CxzhfggpbxQ}pXngSG16KbO#g&!)9Ysge zNvpLvzHSE4?auK#ocQr$9ILq4hfJzkj$>83P}UM29KY$lo4=(#e*X5uKiv3_!`r|0 z^nd(z<6Ad>{7d<LZ+_2De!IJK-Ftp@+plSGaOE=mFStw|CNCxz2^nWzgkio4sYRkp zH*=Y0anOkJ;%Dh~2kKs?f<|qN(=3<qhF#Ma=V0>DM<psQt2`S=3cWpdVb+CGEEr0~ z@DFVUBVcVlW*s(04e$astufOC#<<j^rt6lagX17*02+>Xo54ikz}gIc0^6-t8-D`W z;j^s6SciQ8Sex@UgG+qyHO2-5#s&j{ISZLRggC+w5h>@o=jr?fC{`Mpv9Ap{|C9Sh zmStI^`~HM;&JP$nm|{H>;_Km!{D8F}$PH>E6o<K`@{-omj<C(kDkP<ibSUa;#fL&l zDL*fojtx1i=7>DG@%6xNM~cYce_5tsnob+E+clWjsND|(%P>s)ArS_xUb<kpdaWQ7 zQbeW|w&J+Qg*{eI?5D$3W4q^=reWGpGtO>jaGBEz0Qo3xHi7`!`~IE^S{vG}e#7%X zxo#ZwdQt4Uit5JN5zD42g6pcp^>7#jjb@y2inu@?*QsTZf-E>F3Q=@v)GQt&@8Y77 z#bt$Mah|75!#jQ2Gt94EGii~|E5=1=HpVZXogO!u@VA~}USk^GcvVV)vc}_P1HO9= zG#g{Pwv8Xci_j(k8IqikI;(1<Ig}U4vM%GXtm*=5V`Qn~A}g}0jQ?OL%zQ65#qjt@ zA03BlFPu4Z!I&8CML+)I4}CQGp&v><`r}{z@{jKy&FAy{=&!mp9QJctzYiDT2U%3Y zz0{O1-$>leNg<W_VUZV{fq<4B2<ZbN*#@~7*(G@VTxq~$^QzNpYca)H-rhQ~l%*8g zSsVfcDoq=3w3+v!2*NmPBew6k@nD$kxl7Y&RSbr`j$sJy|3bICE-yf-2;u5RF^Zyb z(~xo0YKIA8OLQR&d#x~*MoWl&gw3LTm6L@57)G--9%X4v2w`M!<uY7?%Y+h124tNO zkcE<UA?rv^(Y)w+2bl_5EwQXF;zBwqow>Sz@hYsXt*yeBRI;+Xy}iEPYC@~Iw!VE~ zHiPfE;puDIci-K<248y~;?)bQf4aJQ;f)X1b$qQyc3nUG(DrtsfNs?vx$VtgIn%!T z?$(*_zj!;Lq;=&o<Zzi-#3K<Q`*7gXUCT;IC97Y&`~4UCPdw4TKtK4v@@zJn&3^ik zPyP0V!4ppmF8uO`9(iQ;;OvvL*@GC;8NY@Eew@q+8S|>ddzE7J1~zXR%*vuN?&Boq zns74RM=;14_%57A=#3;r-2B;1L<+?*3dhr)Wu@?VH4svYLG?KJhX;U(3!?u_KPB)? zwt{i~v5#@iKp-xDiuMl=I(Tfq#R1;hf4p;WxZhumsuw?te;-dJIP$i!#oSWU2j3Pl zk73CK;6k|w<7&Fv)J3JIhsE95*sL~nfq&5zVlY??y4_eBBjav&Fdq(t=+4sQ>Xm1o zy>c~4XXih0c=&Hl7t6!__4?>rKk<n#o$T$kI|zbSD+thO@9j<Qx#!mLG12kyJ-6<8 z>7`3AuOe+m?TOLZ%P(E>JkNOEi=WkJ>722iJI|TuxxeMz_B<rHq6fVeOJ+^28r9U& za6XzA^=1{%Yxi~3Lo9jQX7}}uyMdpce{1RozMtVOsUJ)s%;#Ud`Zg;7fwu^p|L+GM zeDFcHeeaFm`pjoO^O>h^ym$N5>t2WVoPTTP`&-^!-_Op!6>kxEc)5HS;{00$ApZAs z`p|6lO~=O%&K&v&(`k(DX5YKv<>nSF%0l-#Ra7;iBDyKfYE~@BojbRmbG2+{<MY1f zi6{GgDE36>e&bJ8t4s4DPyFohmeDlKvzVyb+gsF(LgUI#I|UWP!DW2BY4-JS;lf_3 zpS%sy#EzQP>XFU;r;aftQT6*{#?BUtDzZ|i&8#Lm+28N`K)auPe}V(=b8{zg6iH%U zvmYf62E$3v#=qRiQguNA##6Kh{Ouz8p(nk}5jue(fL=kDyZ;NO4bz}RNn>)QL;A<y zvOf;J0c*Js{faR#u7G>C-7b5IAjp;lgE5K_hAK8X4BOLI+i)V@9lAhh1{?*!;h_YD zVO+IZK1Xt&j&a1Fmr=wB6cZtiyS<yln&#-G1a{fj%t-Tur4&e#s2xSr>yL92#9#pP z@-d3v#a-_S?@f%-C>+FzVE0FTsZ%7)^xn<Cmsaf0vNb`){p1<mnM-yMEIesa_%@~6 zd7cRYt{nAxn~TjX&!&5~7-_OanPxx~Sx!~yx5J>S_Al)>p(Y06RathD!uS%<+FJgT zVJHHko^uGJv2!8g5P!`8ZG2+rw2x1=tqP;z$?4HObq#U7+XdxS6bc4o40XHJeyajI zKG}>zpEL5c5+EU>FbvpJ_uS(cRaJXBYjUZLD+`Z#?8UqI6z+P;yX-yhd05PvvMPrt z3#p{qZJTvdDt)VJ(N~w1;NFwH!uoF8NYD_M9rQrDM6?ts|4SJ1?(sNH*w|q<yUO2& zi~wWWo%wP&08OV?+AU@WqbKKc#<um@{A^wyD3xW^=Y?68wF)DJzc(JoB$8gQTaEV1 zvV()i9%vmM?|(tBe`UV`9{BQ$yEHw!cxk>U>}<NZbZ|hnDjaCDe(-^-)4=zG>DhL7 z;tTM;?}SWD7zSlxTCIsQ-J*;tqIz#WZ#<6+&S&UR@2z5it-Lh(k#jy&wPwAsDeNf9 zDp&P#*XK561bkkYu=f^6Pk*~}Oj-iC!%wWdZ*n%Dj0uCmI?ohE(X6VFWy4_{Nr|+R zJ4X)p(X3TLMZV*_)62soNiBoTi&Dc6BHwo=4#GCmoU`W#>w0!_IvSG-LWxd$I<8tW z7!LOK`pzv+qHed1$=;Kv?e;WFnCeX?{cobsgkdaY5k<lUX=pi9Dr*l0Wd)DC;Kkp> zf5K0CAM#%Gyy>i&)w5>S+`ipziyrmlL}{6%&Ax|JvY0eR`RbM*!<Ez{&8plj=cI3b zz1?=TWTevEZFd_3ccU@@luxv@pY<%45P2eeg4JdTy|3&Y=Tys8xmmBHs(Xo8)65t7 zj%ZYh7eu|9ubynA@E@h4@E6e}l^kw+M4@;njdFb{L14!CVKzBDoMfSI3=@WKZQm&) zLna7Z5`maZ$BbevBcZ~W69X6*QJUn&`mSl)&9^3xkw%gez=*|>lA)X=zEO&cFzNcf zA4XLfMa~bpNhr8d#!n0p-z5owlui_nxv-2mBdc>wE;3o7C=U+GLRh5)ikkz3G>$PV zc+6Fz6@iju$BE1nfjVp^?P@LZM%W5wU7EH5B<Uc{{Mcogi-R;BqzQm_nmYTEa)3x^ z-AM^Dj$_F+r%%!;Br}jqX^s&It(b%sO2&F7!8MnN;#4!@LMz6gh0;<2QfehM7*kqs zVp=jrgTYWLrK}(qMm-!6lBn8iMWIt+NEC+3MqxWiVh07}L-0}!9dW0W62svDoXPt9 zI(;)F`iqly5;dVy^TmWauv^Pih4-0rC8R#PSlT=JFz#Hg*1L}yR6eVhtB+mk`fyj- zaS0~6H;;^n^jm<#I=zs)IUfnBL7{`K*Rw?nSM6^~%@-eQ9v8`GIai(80>nAb`cT|C zrva*nh0bs;jN`F5BzL|IrP6_)WqzQQ46W}NALstg2yVD=pfX^dby*DHWVqxyGr!Li zi3zG+uL?{ef>p*c%_TP!J=*~=7E}t?{F-r-?D-DFr4!^criirUOplwz0~STyZWOU# z(f74rTxuf4m`}n<PH_Gn11YDa;EWkRH7e})L#<QaFvf+{z9cYw9BJBp-NE@U3J110 z5i!mrrP@$PDSm56;w)(929mgQjsbouBqOyq5|Pv{NZ|Zg<WvwS7tNfHByd{BAc_M_ ziqywc9BiCT^CIVh3&ltoxlTTTs6F(Bv4AzgAGRV8XWly4C}K)*!Sf;qF(zYk<`qPO z37^OpOb~I&7)Ua&IOf?H{WgBoJNC3yb)G79iJeKQCq4)2HfUxlsHeB7E1xf<!ml1Z zaJGHs@@1mSm!Em&@@2v$tByg-<-=zOt+LEU?RHF^&I6J$b^Z?qaZJnQ!~4_a+1VUF zYA<!SEt)Q0e&(sGLA1Q*;pLL5K@{0w(0^I`=x`~d#Q6u>b=^F?TvB>^`}Ui?9N8oB z;$8ea7u(Dyyl1>udvEmK?|D1xg*%#G#BQRhM&ADpioDvX@^`RW?wV@*JJ_rnwVTE2 zDp5^havBxYZqo$T*1MDe(&z1kZPo<8?JO&cY;ckWtE*1lxEHwhhICg~L3%RCijq6$ z952hXf06{tt4`jy2e|i!a95W>a?(%Bk~{bB{@uU(cmFQ=^<V$>U;p(_ed<%6x_x#= zbar<8_SqTH+1c%X_hH<7L%3`Ey{wWWzm+fE_P(3)weVVZd-$Sv=MKC(ckFxK^Ox^^ z?_a**ZU6RdZ~M1zThZD4_U-u@O+%JG@L%FCe!{D~m3Q6qvXyEe!HbcsM)XD@tqATi zES|sJpbL#SYgScOCG~c<N@mTjRL}jK`g?;SN1h-1GbQ=sLc961dyab3Ec5+ne6kmX zoTbUZwdEV{{H~>+##~(k-kl-O2LHTU6v)u-O#k_;-NuEtKm6LoqA0=<R;ty?p#uN- z_;bDo)z_W>Zp2Z|qqMy2dDin@yh|SLdV%*2??c|Vdq3#?ZSQBj&v^d<p66xj-J(k{ zyU5jSBl1SDRW*5ZCf!NEh{mLuZD4<ewyWw;03W04RzNVk0?D9Fs=O{M5AGw&Vw#(o zf)4(4wcg2A4`s<gGuwbv04?q5+N@@)JE;<_u6Ny`1@F^QGHI1_HddwD?zWrX5Zq|N zlN57f(tJAY0$TgAF>!2k92*mdO1DRoP8^Q%$v7!;tD$w4jS?v(fe~lIwCj4`n511L zAOmnI0EROwUF^p~oPWybDB{<?g(ix$S?V@Xt9>x;@<PdZe{euqN|a`_pfn@OQd+<_ zzl!C|z?ZZR57rMJ9YGG#v^L4}d~0paM54!O%51B3d^SqBSlFOb<f8C>yh%%?q|O-2 zKHhJdDlZB%3XB0u3fvcCZIA&agz2g@ZMDj>)tOHFeTuXqFjB($BN%`vCX%`?+lVuU z;~N@5SXTM>MartTio$sK=0We^@DPUXM4T(h1^)8Ij3^srjPlXkwX$rqeDDvR^!i|{ z_3d_hedYA<a0mvNx_=c$y;*bg`orN6G}#;+5EGnF^Imu0aR)%I8B4ZhhY*5|i9=V* zswVK3oEzX~-o;gNzdS+mac|GZBcrRN*B{U8anbi}d-?6;Iluosgwb&K7khQRSKGWl zQoaWL{^8MKKTbyD3}rbUmnFimePrEsJjPq<dathcJpP)O-A_kX1mvW}nJ^}17sO5U zq0Cnj!~n`$Km}T-Z2|83c3kAu$zX8OFU$VPU~tmwc6%p-!AX^-QC23^$JF|wGK<o5 z{Xtb;jIEE4oqv+^KuBwXhg#iGpfDu!8-~J=gpgXC|Fe)(?r92ymO@Y%k`w{w9z6Hr zUHk*w^-eqw5gJt%WrIxBXw(pQXVI*g6}#<jThA9mY_3C9*MYZP#-JhKHPPqpKU{p^ z`7h}nj*3B%+|opk`b5C^v`cMu31T|U+xyny=9{i{W?#QJZoYCHy`dL8djB>EX=i{| z|0R=jFL~(L{>)W28?oBE;(61KF(fYzj1IbL<=uzNJB#@(#a&F+v)ybbYxx(;pB+Hy zq@RzAoGxE_?9oe?8BM1bE?$Ysa=M@8LgHg#QPgLpZ(JviU6j6!vA4aQC0DJrph>4` z7O&WBfX(*VdlvINk2*;TWLa6-OJx*-iWWzjRRZ7rJ;3)|pL(9>36FUmUBw-*=MBBu zdxQ5u&&!OCh{mV1>{-ovmz9gvCSUCGgVGBI0cL5hj&5nHNsqoE3R8F4q;}`d)o5Oe z@&Yu=gl?Hc_xq0?>t@!xCgw~8)i90_1l@il7!U5j&9B2NnGhUNbOZ#!tk$|JwJ@5f zD`c2KNWra*LdC2Q#xmJz8?#T0OKE<x3IyZvP23Z3CZc{f2oS|XybvkQSZ6YuEmuu5 z-s7C>;QAY%zjpp90N;l=Y`2EPI!Wri-Fh}FOGbg;>z-+oPSa#><U3H9Btbybstyk> zFlm&cpXe~gRdnt7H(n1k=X`J6G^^!oHu3l!eI%Y%4|}p>)YV~9j^cd0TuWFO()?-_ z|3jzs1IBle5K?mK;)wIa_oIlBWehgXasn~pZ-{*5oMEg$@_Bp9G!sHFc;k%nqxob! znN%J4j5(u?Q(7}dI?B@QylS}5qTgm(rOu*4D#p0T6S0@LT<rg#M81hxy<2gzxT*7h z@Unm4Eo6W0yZua4I>s-j@CM$}yW&0V{h8-Y)2Iu#Lo{c$R+YQxf_^i@5pfLa-0}mg zVl*vPH>uSX63&{L;>tFs**3GqBvhfNj431{65Vhs#XLEVV7-_-|EqSR%!}(kw7(2| z=r)EMZtef(R^gU=DxnZg=v~<1L@BGalhSHq2b>GZxfC67^V;cwNXj@4qmW>fR4&Wo zxl&RnW8Fv3?!V5x6>4S!KQ~H&d<LK`C=6SBX>48MJ6{Mc1W9ORjMm`7TE#gJgif-Q zs&<<|oEssMwu`OGtOVd&W1u96ob#37h<rZ^JKa{>cH&6+WtHdrue7#GS);9#E*C-w zA%u`Za4v)pq06!?WfTJ1xj2>59V@N05<GnOeHSi_FOThX6mlj~qlJWytyE#Zm8Oh( zgR;=jI?3bMFbRM=A~<J!xK5|VrK?)Zv|6QLO!(HwAf=b~XhIybDm77D1VS*Lbh|xh zrQ$5NvfZlpdU2WtWu7Y;=S;c!wO)jC6|2o|H-V2tbfP!e;VUV$U(CB39kZsMRK<2z zamQD(kSZ@o<g7VsX3eshG(~<HYXrE1W?KHIU;gs9Y1MWXAZxlx6WhOW<KBC>EEn=r z1m$e&s{{5lGASik$Fh429RgP}N1iQDo;`@;ScvlVs@v`N0|wqEa4D17l`Ge-9;8BY zP}?Frl=+~~dGPe8K~=&25XhLmw(Y3pyCmM%s&YPnk2XnqWPOfA$xq|^J?@p>ksLpI zyZ80p$F=W`RdF3q@xYCrl~?7EHqsifP=p{SJi@NX_7o!6W<9AF9JDCc(S-q}n;Y)8 zPnuby>Rk{$Vr((hP`wzJ09zygRS7j;jOUA45h?N3#`9u+5dx3<UQE`_tQo&zZ|{~l z8-_(NJSBkN+i7bf1OVbfD*vd~WL@8fUz%_sl@dY@w2@R=Nx^A!0uX1So+mtZ!8clK zALn0;Hs>9D`234g1}QZ@oRO5~{ENT%BOiJ2=0{%n%IBW@h&EEy4}OG^<XYzQR7u7` z?|hb6xG{{;J3n&Fi4o(Bli+ejWTa#g#DpoBtqn0^X3r91h+s@`ekU**0C)!<?g$u` zo`12H5<J5lqa@1o;{-4M2L3ZX>Al(eLeHC)g6Z4Xq+Ty33;MTEC6p!NSC4FTIJfI8 ztK}-cjOA*p;p?7Ct~c}De6g8rZ1(t`6<lvt#kRtK0>Gs$j4e9dL7XVXIN}&!l*UDt zr&h;d9*#x8mVpc3L@vsz&LGdFVhke?u~yZoqEJbKlxYyDw_~L5hcPBs>cI!y>UV{( zE=@-r=ZYxS0vv0TB&4&UQel+0iYiIdq{zFSB8`J2h^<gOW=v$92zrv0m91_Z3rP&@ zKA#)1HhI;jM>EpVe8#SOpD%V2u)On|nck|cnKiR&o@Eywsa2)w3=?k0ugXRQPW4o| zDwk8+qpMEv3|@17zMnkq)INyu&Ns}mY?@gX#X5GW&&V&TGVrA=EI=wTHg`mBYF$wZ zCW&BUpV*pfKx;~j&3*RsC1{$N2;#)x<LGwx54sim-7d~QGqo=7I+t~0tw73`vM9?c zkN^*o<>y!KH`CuR!V!a0-zSCm?fjbk>D0QyB*x~R&8_bCEO=@}^jlV+w{jDCQ=J^d zf<A@2*REf`cK_L_q$nCZeeL?S>kA$UkBg(@t5;_YiQ}WISDP8(<JxHL7K_`5v!?&F z*5+IC-(Q{0NE{wroequ;ujVpI`^@v{cpLAMcfa?r_js+aV$;}IDoLoUX{DOo5Ot$! zpKQeb-e5O`YIfvdGP!i=wtH6Bycy-y`(D>p%RytXTwVKm%{c$Xr>9R(-*y%)7vZXu z_sZD6Z*Xt_@m;m6?(U1nSmZD6b`u|(K0ST<M_={&*T2<<gHXL^aBu&<qiR>}yf`w! zFH)38!tBKBc(r$&O+uf?y)X9u()%x-x1-@!+YZ5vZO2Tp<{Kw>Y@6v)^{*#3P@LMl zvt5`d&3J_2tTefw4Q?e&ry#m&H6{)ItUl|GssS|y0$FiWmS}FnZHG&!R_NWS>!4^? zk4e!sx!U^OiV~u{p+&A=2OM`c8^gZdO5?25{>v?xvtaHElfcGFU}MCI@zdD2^wYkw zp;I=%djjIV5AHW)4VX3bc%WSrXcx&$sZnR(kH&of!||jHF-}rYE02?dVlhA2?C;Z1 z$=3ZMHkzg}D5IqWv(_aXTmj0)4q!qErj!c8P#NDTf^>c!SyC!E<S%Tw)g**;gebCP zo$r&B3PMONB{8K!ziNrt1zBvvY+@OVWiStD-zx1}g@3`E1-Fj=iH+01Mp^LVei~~( zi_Ik)_{s&o{%#)l;DL_|24oGGdB{b9c2Q_PI@#N+GSt>q0CFh@Wm~n{gF$Or*LsyC z!)P$v`GZ0AZ~#WePtz=mVwXtCAtay~`2b^#z!?)#`N?!zX;uUwkn$ug@+e}8q!B?7 zc2q)?h`el7LQ}w<3!@;EaTsU;q|b+G;({!3p67YYE01<P=)KB&ch697q?l1&<coP& zh{k%ezAB%&Z08ly98<^@*!)BAZ_0VDq^!xlUrT<y3avvFf%`s}LWr<xB|#oIqA)C@ zsEnM8T1k*QYa^+(jI4EK6qP@9t_9PhoOVUFGw?=e4ECWo$q0z<`Y_@yKk%I(kOH&> z16~kN3Vg(uMI?!R{Qp~qQh2}isrSxtaNNN2SS-xUAHiL3<K6b2_q^#98O%1jDCR;2 zwSA(R?R7L)JFM2#t&JeVApS#_M8^>fdX0qV3^uaHj|41=!q6VXIN0wq>UK_=UNbp+ z<Y*N~k>KIINk)_LWXya<?$TRAV{x+#0P2;~KWhBFgKkI2a(@ImIJkIe-L!{yzbBVM z>--C8IJ<t-jGI}nhtB>;zr1zoOBKc8)xaXp@{DvGg}0=!;dkygZyAO-{~l_!_x2{u z{_dWG1F4$*#0OyGzo9$$n0Mm6())JLn{JwUvBSd0U0D~v%0PMGVyGE_%e|^xQD9|3 zsqRhPy3=zKtfss*L#{iNI7-4J&LX2EK`Sin*Sy^Uio~szR#uG1N6T45f(ysG-CmbL zy^`APBF4w9Qi^wby<V~<PvC4Y+}|G#m{dAZopz_A5GrZJcyfF;-Q(ZEB4?=A>-D%Z zMqSkHj*?nT>UvLrGy^|AxpMjBR50#>z_P($(C5m02DcblF&-T)W;3S1p^Y(+z9vNz zs;WH1`+acu&UfHSNwzng&!>CL5CMz=addR?^4XanFhbz_0fZ3dA>s^-{2&OZweMS- z<8prxK~R=vDM`w27Cw>RQgZK6?{mFx@_x|!xtt!1;EuSXnb%bmEJ|!%AQq<THr8@H z*Erw4$lb`0J``>A$e%g6+E!(eC8c_dmy_DsRvU#oR@U2Oy}Y_^gqCNQnAD32-cGpP zZ50FOf@=Kn`Q=1PDHHrsDy5X^`EQi%juQ@%4j6aNT)XaVmSBzv9mgsa*(`N>dZx+Q zqCbt$8-y6z#MaK=L-w&_=Zt>&SHL*u97f2<N)9?aK8j3Rq)D&056&|XV-ePIe-Krz zu+>f@$n$>-Xy=b>#vtb`Axnq&xRlBH7e3d*QhYd-@>7vg?LZJyK^O#L*m0fCfgkwc za3r}Prl<>$>^e8EvdjiVG+MF$2L>HJZB0r>BWOHz{`-!BJ1u}J&+lC=f;eWpxUKr% ze1v~rqrY5rfT}edg|!rM$)zBI2DOv84I7e&FT<o~99s33!brkQmnvzrbfVT<Hy__W zIIIfin(04%y!z6^4_%u2?W4o(Y_q-g$kl6md%$n++U+QvpY68ahCe&oU3}HS{;;)N z)RX9>)4_D_+O?MizP?$tr**<n>lSZ%Pk66GeXUhWCTFrAW!Ai|a)LnEi*Rxk%9(+s zMdJ*!U7R`9{B4s;sy~|n2>7!ZBKL7-*Do`G4sy_I&VPy_Ocf8!753{$Pf`M9d7iPC znJ`pDMjJ__o%^zFy$9^=ZMJ*A)wVFZSBH5RwsBzyb`OD12>$|c(*AYYUzQT35tEWd zQ{(%JNNH^t=`i@Ov{!Gpdo@wLx82rz<dGNoCr;k-5T0S0;uM5OE~`>C3RmTYj}a8j zyhvlq)wW5t?!R>5@-`QD>~GHIi+w|tY%Iog4iAnGtf7<T@?bxy1cx@=?sj@~IFh2Q zEO=BDTmomOuV0SNX3n{<zH!OM;|V?<ggp^~lyy2(X%r&QCNpV_HY%*^k}=n67bW2P zNn0|2NgQ0API3N2B_W9|kspQH8OuHAdESEV;88F2D(_M6Ro)xDw|bxN{e<^Z-aqwz z!}F#Q?IPMm*hOe|)pe-rh#;B>yNU!akWw60-~M%McPw=s)lOYU#F~g2)fz|6zyaGv zM7n}%Cv#*@?9LF;byRo0T332uRaSW>(m3{0M6_#4RjJ>TN;VOi2-8#CXl4<;S50-D zl)bH0(u3jeG0`1XQ_X6cup9o_s5J~mul$`}&<oE0d&YarL}Av6V^Eq5+s-ktCh~p8 zZn8bvqbW^kSB*@`9%e0jiSO$#J?@$$GKQd3oVqT%Kt1NPrb6nx{7M~FKgRd<=wfSV zyEED6G7S4&-zTu94EZRihDV|=Vw!ZO8SgPb1VMK{;_aEdh$4~-;38$8rvoL8oUrQ{ zN+FeR9l`v1OUJ*}V=470rw)I|yXd|2_)Fzi(EI8A@!kym&{{$i_o_T+)@Wcz5F+aG z9;MWyoE7h(&wn}fM30_l5ykp`N(t8bfw7<j1D%K-WA^ryOpi}y`}A<aQu;!A<D2OE zEjoZ7M-09%F=8z6>FAUmJEoJPI%;Uz(1>82W9)FBuHRx$f^n@GL%%iv6PC5O-;O*F zZKKd=%o>m1V7%pxy^G#c`99Ql+iEB~7-Gv`?K+y32r?G43%`}BOr<>XSRegrl$9<g z<uLdIyRw33ToUQ0ug6NMpUsG}^{re-i8GI7E{S#2ihp#I5oP^cMTzU=iSKh^vpr() zI(z?Xx_b5b=dN9)>F+miJC3wVz70VTQkv1b_7bO~_}@+<ZIh15u2GiKB(*v^oeYXH z&-Caz7YKIG`DOp(-|NxUtIzu$e^BoAz3t+bf$9VvsCFkdeZu##`i}$%7B>{masL0i zI8sq7%0Bv2DN(w*c?PvUv#(`del3<tzP6vMD0XF1gudXG^K7(EiBj_EWBI;Nxwx&f z$(GU#@2nH6qbQ2BO}+(w5KdyJ!r5TjDzj8eJ>DTpiMPoB?`gUN&l`A+chh@m#K!jT z_WqXlY0pEtp10U+>se8+<H4M2QSWNm$lYv+ve~LxC9h+pRw8LJos7w*F6s?KJ4iHC z#)Ug~E45hv!!Mj9yvsY4ezMMs`9ki>29t}@!hY+`R?VtnwOgr_yOKp-)a%WBu_aw! zcu{W-W2G6=cqaAiR5LULIXEI5B`K)Lz^X@QfYd53t;%id^?)+1zCiN?=Yh`!z(wG5 zerX1!bX-_XY`x71&V?Uvz6t#CFz_FtGQ$kg>^08Ek|K8vK^KWqHJoLH<~JELRg5r| z0g#*Mk*p+YrkLYR%^lIJi-2<@oy$w#R}Lue|Iw>Ca_=8YnG{k<nO<G3c)n+y?~fd# z3WzAOArROD$B+<Wewr6By2BJhNtW!r?`xAq|CMgwqj^v5@TOY;c2%_iQqW}$WV0g~ zo=2^A<xZ`d?XFri+ns8Zq&xE_isYrE<0oJDd7t~-W6xi>cwzmnUhjc8`?i0$l=5hF z)*rwA>fybUH<XjQ`l@lSd-BEyd&Q^P<9hPO$2z@_UfnJC_JXjgR)<N%na*$CdOVK) z<ou7TgM-saEAvNJkM_6y)dYOH(f0P+((;Lejl{>l*lCY@-i!Z>?%*pt=~Z6sUGThV zA*LHKRXe+Np)QVK8}5#Pq_+*j=X9E1#I`%SbAI>yE^gq)KRWB5oNRZ;Cw(w}`-vwn z{(fh)8K1`OcK_<+3+{QzqYpf=!s6iOt;Zg_dGj#N{>S!Le|7t-zxqJ`sNHV24;i~) z-R&%+(|#2MboRluF~iY)7+jm~0egGb(})YG>MMC`E9JLi@~yHhILh=@XV_KS-5IW9 zI5q-S%_#(axeC8@{;PwkB`=C39^k_4mR%aXtIEpsU>#oyv*NzYe2y5hFb*A=7Js$G z$C2fO^M5*kRNblp)`L95`QHlP7Wp@VtMhmmr-Rq`#XI<bOp*p9Q}sUGem()uqdU0c zZM}!Qk9hyq`y041R|tzdf_gV-W=&RYb~B4B6>YZ7O!c!@HFNEMqbgOwEggOtH2u%2 z%3U=%!)!C#;Z;SevZ!|HHG@aGGutfY#kyAx26N$j(WoqY8ci)Gs+{sB@S(e-uP)t5 zcLI3jE|qUoNQx1RH}BoE&mT0Cg>3_Kgu_RPPak^qDYcj=+`*DTZ>jxk_U}V69uR|& zrZtO-5@pe|Q}X>1vN0z5BV}1NY-jZHmhXrmY6W2kXcPXpqoqk&(XqcbW=tg{IE|-_ zbOuJmoa?|(HKXyEm`;(1BuN#JBUNOhP8j4S^dIe&R4P_hrYWWA*k!3E!KB|)Q4I2Z zu4Lw%@rhW{YH=KF@4N4wXP$iGmS9YN(~o`WyDS&FZ@Qff&W!i=j5Ma_2uf@5UrQqx zCqv*o?UV0M`f&`XI1hYc0RybzLP}6p4elGkTH`w+K}zL;F{td{;+zBKYrmFp27><j zuP4p{k|3@3_Fifs1it#KAp|6m=GsXB5KM4Jkj`qsND%j3zf59qW*D~$qyWy-P)ZP_ z5H^it*%2IXZt@(%;T6s~dnqvIN~*C27)%amTi0D_k#^eF(_>w&xtEEQVW<mwGKvu@ z=P0tyo?kRYspJvlfR*r(MKY1v+zra|dy-L{2;8^<kr%Dxo;;%)P^x{JR{qRsTPcjc zMb{3t=KRH3S;D%s{`U`8+Mp_@b+1gcfmUT!C=G35OsAC1$}|70_h#=4bThgc_=Nhd zQ4_(UQHTh8MJQMEdeZ2ev4K{6iA+WJ21*`R5lgo9E+B42?Ur5I>>n~($o+LJiaW0B zoO4}g%v8Z>L==FseZP{z!59R!l$^P)Z=LJ<b-U$jrPH3graPUKv54`!s<=^Q88Hfp zC0WMqHVoMo-4=B_3eAZ;Vsxxdh)kbI+7<AC0uhFW0Gy~}Vkh!MD>Z1xu@UvtC6UAx zaO<jP@+&#E1v93|3po4V;%{)*%e{T?l6N1oHmPOU{H7&vu*=Fo|Mh0J)As~bSs|d& z%tlJV$!22@9AtTc@PRyFYwO)C+f{025OMPf{L#hLtJkhBjj_S4r=GeQ7-L=+2_C=f z;2@_k5OES8AKm=sSDv2cA`B?m-+w$7Ji10f2!sLM=0R}ddJuB3FeKWmPfqGRqA(<U z$#ERT@tJR}y>`i3>z}`pf<X2jdhq2DXVHzTS5HrK8b9&G3lU?<OYgtkS3$rYdmsb_ z4+KO30%A9Z!@=N+lrf^)>pTbYe0@7Y?0I>bDlBN-8uN;dE8YX%Q=XTBnwZ^(N!OJ) zB;iKQqrK9*`dVx~c<uD6uSfPL5XT3%i+hK@k1xG9y}yZL!1ss$<lf@`gE;ox@bBN7 z-EQK@`NLmWC(*k%z5gJJ@X%LRcK=}*`EH1Z(<s8T2!de$SwvA91OYzuEW$7kf&eq+ z?c!x0`6U~5;~@>Iyfg1j-uHOkZo67+S7tM4HzTRUMl;)0G`me<Yru3<!4J@rV>iIx z+1cY54)Aw>w;U+~>=sdA!XhtnKIXdF3;|lEX7xnW-6~{}SIkzctJ0)l8*H|l+2#kB zlw~FbX+=Wh9ifTDwZ>XV((wJ^+=PydZT?UllQnyLkH2JZ&sp-VRVo@+mfIK0<;|PR zr5Je)7Y@9PB=Zg9WYA74GCCgyp*i#cFrB7_91I2n-7jKE!2j_PvQ`_YghtC(d)*Au zngehl1MtD)fYC&xw6^~9NIvoS-k!14xKv>W5VLk~@5z@R?DL<~%+93|4m+vbHaj_C zez12M#kz{4!#y`;T*<P?3+^X=v$gk#_XZD2=|ejwa<$5N*gI^{^oG6E0o&c%%shX? zX11$3@6uPF-md10_QfdpG&dp-g%BZOzdz+cI9irPd{2gFK7PO7pV;|)vGC98wq?Ni zKjhZbBW+k1kkP{<9WbWvMlV_B8Tkx`#qsqUQN#?${ZSxe&_t?Q9t<>Hqmt@9DDwRB zgPpcNYqu3Za<4tL^<+GjH{=HWqEHhcg24VNd}b(v!1_==1*CDl@)ElRh36A*d3|r< zHN0fAw%%p$hIgO$koVYi@BFi`-P|7pvBs@?ckaCZ?Qh?odiu^ESZwj}AHDDY{#5NR zP4oN>67LX^LS)+ROj75T$ss9!zf?<8H>4JYUnyj%>)=6_=iP1`)AYUh@`rX8dOdBX z(+e+s{PE3Jpsuf6dEoE6qoXTV4~~rPZ0^7PlE2rDW48J05uRtgzZCn;wQCRDTrRuQ zEWdW`xrZ)a9*^1Izj8Jojl-koo_n9`_pjru_ZxeM-hJNFo(I)A(s_bpWb&*AD#dNc z3o*O0l~nkGkN7siHB&F}-d|gFyUn!I39Qz}`P$MWoD1=kwOU(ijJ3yD>E0nMc`U(9 zkBFwTowY~ZF3`$hjPs4wE_g<A&fl)JvszpCAB;P=^Mjt>8SE0+-9&itSMiefwRaT_ z(g{zwfY!A~=HdaN+K}trc88as)vEVetyXKVZnf}K%{?%v_d0_=lzw>KvfS(KRV|=Z z?M*NHFAL_@d4W!QZ!gnzS)xyNtT*9~cjmptd!P4V?;E`D{kD2nQqU{UY(2usLMlmp zte!NRdXhf#WF^sAF~SEuvyvzUqb48Qo!i~E=_4I7J45W;L#1lwSJk_pwOOMkx%QLF zZ&A(umHo}OS=SS1tJZ~NJef{=M^$AJ^<z+)rvRxyR=+sY3~uo!Dos1vy=f4nEx|dl zC`mY?xZ626Y`boET6MeAy<V4#QOEhPsn$g?==A&gf9yv<v>yS{dktWE1~9$vg)TLq zOO3a~b}V2!79U#=hip7UuXi**KF*Gdf^!peyGN{`q(~7ff8Rk*io!*4JRA+vUOy$6 zG#w4v?a<d|Z!b+*75G9_<#;>^sw&MVvwo3F8Tk8eLbM+N(SC$|n4SSl&!Amu;3;Lj zvTXs|c7Pl2gu!>{4g#<5Exl*GH+Wy>{UDod;o4DKZLbS{UAbu9ZriBU@;Y3Dqt$MG z1TA=uTFGivs(hjHMXu`EX3dgAU<dVTU?QSfGp#4;hS+s%8@1TZERW(xm<Nf$%Ita` z!E$Im2KFCnj~58P#ltY0I##zG>*RqTDU5SWj(TAzzB_eX?oUG*MIB!&mu3I`QAY74 zPDa$67ml-eu9Z~9#Z-pO=m?Kwn)c$r=UwQ(ns=cy#gg0#L6&r;$;c?`yjDV!9CLt` zj<HQ5IWsys>s!mUj_<Kt{AuPK><3|AKxmYLt&kU0&s7JVEJH`LIA(Pi6EO_IxjNo2 zY=9_^B0{o`tiwcqxv|mf6zbP1=o?VV>?`PTC(G~<#6SvSutDmF&Y`y-ItSQ1CRFZP zm-l8xSga!a44aE+64+8dPwJw0*XIYXeVtse&6a<Hzg>Ni{7=6h_wlpkH}?Av&BFL9 zPS4m`E{{k2Dt;0i%)PpU$Fz4HZI6`Ej0n<>XTnZra6Cjf=W{&hbi(|e$=TViyYwp9 zot;hY$-k}@MHuvtkNX2eQTwrGR+M7>Eh>vy^Qh-ZuYB<?9pcm874N&fKg08sQssHs zY?oKtozyglz=Z9k+N@sphX^SJ{tVg6V!oIZ^Tn)@)r`bEOD>2a+m^d}Ue8~UB<;KI zax-7d8>!}tWx-IYv0N=zM!Uhhm_yc0&Nme=SDUr1HuHMU12tOAn)$-4M6q)O9QqpT zomA`HcC&4O(4|3#F;YUEmO@=|cf(YIu5zm2^(T!L0o#XYXrsLc+Qd`!q-OJwmOeqG z)Sef4wOlO|$SfDE!S>p1ce2@5^Vo}fG}BqLt)5R*mDOyMqAs+m;d-&%<sy~3HH#9R z>nKon{6OU0S=(Kyq=Fv^>PcOH)Ra_C;%uSx*{)<ESLJTI0yiSK58g+bAo-I9mL@E# zWpxr|4Le`#6jjK!*v*=kvWS}r2Vh54b}^8l4hSG4V+bOj$htUki4+8kT%ao8cakbA zqL6dVNdr@K07c40%p?7div0wLitb2oB1XN|@erXC3TeMRRRT6C>4#+n{AG(JDR?^K zUX+cJL@Vbs(9PUlj~MtgbAb|E%arj%bMsQxn;snWdKu^^5<idz<R=B0yoZXB!^tQ> ztH5b%^4vJV8EFET&jnG&Wylz33gKW(M#qUGU<?30k%q2XgLX;;^h;pWjs%y%@cavP zSY%e{*xAS;qs5^kCOBw4XK@yUA!CHVgpl;Zh$PaMaO*P0BC84338r-jqEKqiIY?zm zA_A9AO`QoOR#TV*SQrIPSOdkSR&nT?ijyERWlL67YBXbYx4HlKWLfO{peS+H$PdU= zC3t10boQWS3=n88!b|liO$Y=dBS@mW6*(U+YZK)q5bt$*)#!^7V?Y8>oD)GLoEytI zKm_zo0i=G+!NcAWq!j{mFzIPx0Ei?L9Qb6;7?EWC%ykFjDvmUuiXw@7GEGUay@gS6 ztG(B2aYk?s#Hi)RN_RUmhBHAz`F>!01`uaq6gx%$0&AeOjuQnK#tA-wveak9m^4bo zM(H51z6%APMu?(V0gT2`D0oZ+QVGC{AW74{{fR(Bq(x$t)P`{)5GXdp(o8FG21wrz z!+<f6^FfqFVIX825{MX&{UBj1NW&Olj@vj%6{I$dv{b|xF~*pZf^!ByGUFJmHc$=( zp=0NWROJAG1z?P&Ah<RoA(V^=EYMO((`_SBp67Ye^E{6{-0?DR>Rt36_Fm(?*YiAB zXl?AS3)IPt8XX@+ocF13)~rsKJ}O<do%`NsWQY3F^*Snw<bXL>#6^+ZFeb{p{LgP> z%m-GhxG3U7=3E))MS9b$(7?Tc9eg5A@5G(+J76HGfAe1Wn<6Dr`MSz7t3b({ejqf~ z4nx-$5nyca11srYAD%8b&@=D?YevH-rZK1bTESg>)@Ht=_FnG2%JV8OD1n)ASI$7l z273M7a<|y-YPD*LTHzT&3{)vAwFCzr!_0B@qt$Y^Zaj7yWudC#JNoCtEbUUM9g~&j zG0sW1+A|$S;ji|S#QkLYzN3f6vf~GwgN%Wc!E<4!QxuSbKM7I5%015`ernt88S~{g zr0>$izcEvBS#o0BNjFUrk(GtQj~E>eKl`IQgh3cG3s^sn132669Q}?@jFcQ(+f7gu zy<Tx)&<aB!_qeCy5G9$Xyc2KbdE*)q6st|vSJHQ(AS%^&Zm5eW>R&Jr+pdeJAA0E8 zHGE5YaCqV64?T2xiWkuDpPlUnW#!T+YMS*+uU+qS+kf@yS5F?gdiCm$T{t*Q+uhFf zYcE|lO%$cBDhJ!Mvq2v(;PmvNhhF{{uYR?M4H$2~_*r@bKF$xT^?J|4%t+Lo8PcHn z0Qnl<P9?;dRj!u1WuYR1xz5aXx87`d52&u>RTp`_YTJtfT)GBmb<aIY1J^F$LY`^d z^Ei+MpjJsFIPl=Zk30Y&KxIV;5_;_3_>JekSw>M5l~oi)QT3TJidZ9`JyjF}QCQ&% z(Q$}k=i&&igO@$^(kFpM8&wA|0f94&$6y>37@$+3y#RjU8_xd=lBC^EVjzjz?IZz` zq}@(pAc@=UB!TCV=e_t@ndYHGZ|O5k?t?ZjQs++@oHW^_QJgxIh@j(-udP<Y0sc6S zJ%h^6p?>>`G8)XDO<-@j#mCX_FPB%@WO95w9y1IEtJT$j_jAub?&lA8C##3s=^ktl zgS+?`-@uI0^H6UpRg~k)<X4+<X4;yosPT1Q_jRwrJ74|kG)mH6_=Vqo0i&<^n$ZVe zk0<CUcJBS7FZH-DEx#kz+Hu9Z>H8Aan^nPwZKkS=)duS~tc%r#PGhKMXZSQsOEs46 z>eQp`-mQ1dbc^z82N`(Pty{NlJ$mcbcTW|B!Y}e%?1eTYio*K*CDOUxg}1%$sizLo zZZ~5B!8umve}(_c%a{M@)vMod`SJr-u3WkDdQHUYo(;=>zh$U7KCW+V)~_S2M#2K7 zclozN9=LKvE~Gy@c4om9?>;2xN>eoBq)F>4nK2EC${XtX&V|a`IpbniDMqtSRKI8% zdgV|N8MXF(iqC%Rxz=dZYHL-oEZ^H(AGg~sWpUJR#Yqs9WV9Z(D#7!-E%=4QqlAFR zCue7WMOjV{UKPhjhaD+R;7_v5LD#l9I^C+W%O`L4_74u`2L}}o%kizuvTPD|@*Ifc zRuRWsYR!D#RfEB>BgFO7laz4d^SWK=BMhMY_p13~IqvtWo@TIZYqUG#ab0)1&hrC} z-^Ith!0U1+jo<IR)O(Zng|V(u@fl4s20O}moZ-}!G>IheOp^!_&DaSvV`ec>D3<|k zgvDvFdNZ>2$~XPT-mg%3-e*yiF6%w{N1f4V%%d>fOA`9Y;ofu%rNV<=&%I8_&B4B+ zaXJ{z>Oe}&9dEV9xs-LcC#X+pHvLBk!W@`%K@r+k{@$qF4tQA(ePVd1)LMzM9ENek zf2+lLXnVa`)M{0q>$?z5>@^+R*`VEV@vPHT<IBW3pN9cwj23%5P7(yh6+bBrRAV`$ zKhA*@a%CY}p+>bwFfX>c_HMlO<!5I&Iez}ffBcE<uG_=a``-EE`1t#F>}-DR%6!3Y zU^HH?E<ShtK6vl#iTx`65I^HZ-pD)fmfk<{{>1z5C}SZZwn_h)lFekJw$-BCEttMb zFdDvrUOnRrDe?{G3ps)}cDX1Ac_9fg3<s_-XeJAbvrsD8#DV}1KZK03o3+MO&mM=w zF4%2%`KtjI1-ct|<rF3dm|7O4B!JhR^I-u%vSY`^^;8eHx2lV!?9$g|+Oz7#d@)&| zc&9eniru!sMRLAR*0L<JQvO<zI4KeMA#;xZi;yzaHs6=7_Jsw7xTdo-E8hgplldG0 z7?hIQS|S)loD1s*Cb)MF!1o3GfIxl#Wi1_t3~@|R(tmZHXStDK)K?k^KrH~I7-XkA z>TMijMAizf6bSli-78B$qzFKZ0KuVED+uNJf2^v}#23Vr)-p}AR7)<f1~DU~VZ=hg zh!}HUCHx@9uqwfsQfZc^G8Xz~B|c^eTnNDggOyA&z*!<8g?I~~>Ye+MelX$Oz9|Qc z3w#12ZHa-Lb0mfzFUA7+A=BLUNkkZ0&U_!b+Ory{UhOzflQ2w$G`1*=MJpgeCFEWZ z`92^-C>g<MZ4Mz-4x*q1W1=X@B#*)%`oWQqj3U1*^IQ@@q)b^xmxM?;z!R+@i7Eb+ zVZ@{uMP+FeIT5t-yexe^LiAth4nD#Of6c<%_q?o5R<mZC^&*&7&f8t2Qsu?C+IZsH zRZ^{zr=NcPBZM3OU)^r=A46I0{l$XLKZ^1Aq19~Kd7(3U0v|bl>k}V-_ag>nHJw%^ z%#GLT_+{H2(QtS;KdtdCp67Y+su%C#0C&BX=S_F@X1&|)R+~vPt0zjTqApg&YJ)0# z)^~$_ltphh9^r{6UjOk|Udh7<k1;kHUA_O6pZzT6$Hl*<>zqdMI+R*3EtV1SjCc*e z{9hU2BDw)Xj3j~2z3+Z1@@cR8Ued-!Hdj(S`rrd+XGHhi_ttND&_+>s$(YBqlKep% z#leEF2mB1(y5}w1lhZL%Dl>r-f=gkDD6h)Pm!EmdJ-6s*-yIS&$5LJqQkrkOFH0#+ z-$UQQh}V@3Xy~CX;)Wn~U8{;baP>x+hG~oB(GfOd+_`b*?kDcNqI2gHckgsMujt%3 zzjNo#opao|ft@>dI<q@>I(NSF?kjF|@QJ?#Py40z`?!Oz^$xwO-b*}hw^DI^K8C6V z!vGP0f)(l*KbOru&LKuq?|fzS5>l7{Uf%+0FvFXt?GEk}(oeY%Y5a&6er?aejLq9f zmIL1&9$9}NW<^lU#Ne~5?`0(9q-O5BIadAGF@({H&ZM$79TCy_|DACA&6=70-{8c+ zCwT6}mZd$J+Sx1|d!Fan*JSx#8-GJDc;2qYV9={!4)Ipwl3}lcbTn_F=}lqjPO5p( zS|oiY?PQ&^%nb8IUd_R+GRPO@)J!!m=8KgFFN=AR7v&-^@@ih>i;@<x-0M}qMtrp` zi+oX)d->p1u`J5Bo>!GcIaU>&WtA`H)x64&l3C@8axpK;MOl<<aJ_h0Ef>qxa!SvK zhRDuWOZ95{q6&|hReG;-s~78GJF{IMOZ4_@*L<~HY}bGr-xe$v>)m=c-^~~6-F&xR zEH~@jax>q|SL@w+wO-6O&VG&UX1iH)@OrUbtQXtOdbL~c=9}ea+d=Eye6!tbckA7J zG2g7WiPo$2W<JGr^m-3=y<wXbEq3$Gd=?Leo9$*zLaX0=GvDN!`DVG9TUH=fSq>$F zr+6LkZMK`WI&9_D^sa5STy5wr>%uS^DK}M@{SaQZp0JI^21oB!WgpW6E@N5zM#*`} z0QTPBk|hWGFym2*VmBlX*R4*cwLV~^6c?Op&G@l$eknJEW#wagQ2*dyfk>FC>F%E{ z-9l=}l^5OS$mPL7Z;=5o$kJ|NCpOH7`?ivp`2Fn<^N^Pe{YMZ<K!KbiC~K9HQcBJ^ zjA2Sj<t!kn4_5MTzf->rwq|&xe~I8(EF^$|6T%HZQZf$CjS>9%6ZBe^Qz+3JA_Dk# zcCEj_9bfYTuY6^>hZ$-*9kb{bOs9K*n}xRPVf)vVyP`VsLN_-^1o`~S^v)GPpeL@M z|DP%wCPq9mFxJ}sBf=!ZtaY0Ktn;y{OF9XGS8x>sN=O?L*uu(VnhhY<N-%(ZtizbE z?pl9>Pvg72(wlhqL<t4$CzNx_X#!zzAQL%syA!??XeW1dT?VfksW4Z){%{al=aPh# z$LUCw)c>eI90tDclHME#Lc6jkOBV{BYj?7J{;K!K3&Yi`)Rh7+s3dW|3x>m9Uumh* zG)+w}vCf5~VSh1rOJc0CSzfk-kO|oWyL#pM=dWC4?CO>0FU_6yJdb($#b2Ta@bli6 zdSB^%%=0i)vMP(rA<BhVLli}lQG_zHG@CB7%7$1pFT15Gs{$h<)x@q;o5#%hH`&DB zl*bCUyLCgw1-6&$RzK;MinhWTme7rxuk+m#>lI-#xo9OftKkr6X4fi0BCIhEsH(xB z<h<+;sutjkH6j63*Jcec9IgzP_Tpp$TCJaO{_AeupoAGGQtVByU4MxSUUL1~bPwsT zmPBPqRDMlKRF*^~9<rR<<HegEcp&;>;%_Q$+<4}`3l~P*SkYfCuixJ7+RvMIZl^)W zxgQm?*=WT1Xf&G@k<WP;Ol{sa&$oBm+c%c0zOaUmE?l_(=^HnSH*xkw(E|^B&hprD zZs*%aZ(MI0{*Ayl@}{|d<I(N>dr_7|WkF|DmPBPqo=2Yd;%D(OeB7IQbI+UBg{)`I ztntZ{&z$N52~&dj8R}wHRsku7!@a?5ePK2Qrn3v%{cAU$yS7}W`1B}TF0Rjyj`t7- z`~F+ryKbS~p5Ccz%w`ua&Sq$?-^3DmN%Q=$>UQWI&*EUXXm{+%g2FqDVUJ*LWMs{L z+f7(jW!29Q^37uOKI(Nb!S29iCf=B+^~`Ei0NniY+r3uvMcq$(wcOyCYf~k89(J80 zQI_30%fvS$id#t}j{e?0pt5|>v^!RT27}c}3sC;J(;aK-LM0qLFp7YFx0g7`u-hG+ z6zT`9KWB&ILKL_D2yt>Yf5krHC<KapudFWj`(Q@^4+35lBPErd5aM8<wYL3!gM$<G zUi?M8j-z4YDbL%rGnD`7{ARmZpCMP0Ej+u#cyoi*X4SrOH;MS;di1ia1tnN9^pqRa zN0j9Re|50GO8jDV+<W&wdUDEOqy6T}X@B5=V^pmRy9>L4k8eDfOe9a@!*Vd_)<Gb3 zzrQ_UE8n+nF`mdgw_i`vO-{!r&+bjeJLdG2Wt*;k^#c!dI=FIl90k6Anz!*bjK=q! z9vl=FY3K0pcsm;7Dj~iw?dZniP1!1|BaC-rhbn9E(jWSPAN>BWegfMk&VPOWolkuC zOTQf5^FM2S?bjkc|C_Hx^mU%c`JC&&;9C7o&dZ}|Bh*yg5;G8us+2h6#<Wqm@AuHU za{eC*pa9Na#E)LSdGksboqq#bSAOqzfB*Zh{0G-MzrW?+!TaOMjhnU0GI##}fB%)= zABVU2ui^%N##?1yX4W-;vXd(33=Me2p<?g~-3M-k?(gJcW@N+yPz)$lV0dYbnq8Z* zsCDy>D9Vc@2F0;Jo^^+<7LeuLvp5EbQur=r81`-YpQ$X*sp5oL>I+Fj2BRPh12V7( zrDtInaRT~T3i_r_t5sE<&Ty~OW<rem{r+fgda~DP7j>TdT5{el^E@jUV=RiItQq%v zS;~~M{oyE9q;wnvQIzLN5*K9^MR0jeG?+{pKkz)yOFeq=E?@1fKJeDw3*P5?Uy3Vu z0x#e__%PM9rpxpwy^P*S@1?KuyezL4<wYzPTbyb5r(0PVD!98(w^l?7P%ltTq^o#K z9M?sa+>hSaLg)<}0(S;EGBaP4)vg#qz2vD#1AGf&&8*%@Wn7GR1P|cdg-t{%P!f$h zrZ)3BL{D|s<SIm;Z-2WZ^C}i+w5!t_S+cEVc}5`n+PqNmVO!-n@_MqAgWANO6ue<s zek1$=hEu``k5I453K@j2z%Z8T<g~3KVj@2WMfTHfSHrc);|lAiW-aULX*Qc#vkds8 z=O0=OM`Bef#gEDR0S+W_tE}dWs)SZBe*6rV6=+FH{*AK$O<ru)l#6m<6~aw`JpwI~ zvL=DKNAn01<)EiP{z1IS?iRsK^~yNQPMS01&E$BJD<L++>4{0Tll3<JCggq;R=H|M zJVeiZ4|eBOImD+y&Zpm8HNc1hnIzFT4~(c}#^79_i*h8DM1L3xXMGK@uaj!@KjNS$ zNo4Rx;Zn&_S?Ity%C0d$`_A%U_!WIkjI<O=3P&I&e?epnLge8akNf}-0*^d{fuv&0 zY2SMJOj!qC`+n*BSr7;=m=u695d-nUXb3=A#|R<_GT$$JAKHflxrq7NF{VOBxa=T> z2Y$pk;{q%b<U4MsDvta4(NWP$VmUM1`E;aBqJ>~G_S0cD7@IIQEC`${!4!Ps&i_IP zofsWjBZzUvQa_gLSTUhE2RY+o#5l&25*@i2f|QI)K^9{ikizCcCV|{Eg0M~b=<slq zQ#%a6rB1Uf$gPk7<E)DS7T*vuVT2-a=Fn;%Da#pyHIgeOgnW+@LMbkd1!Fk_sS6Vx zRR-LYWhsc9nii+p3RRfTKh9DvBrD%rGAVeP9Y3Ljv9@@mm?{Uxi?TEv=6kF*VGx8y z+iL^K2;_uRLTX~9z_b)jB#9Ez=R#`@SnDGNA+TX6iMU3ZF_2c)sT1E?Kx@OfFNI1H z;e^zh6Nw<S0SGBhl(R~MSeE_;F&T2sL&-S3u@|RVCVi<uUB)64UrG)}ItUniKlFuQ zjB~{;=VYN3xD0$v2>cJ!27$2F*Umbol_cNmT+n_XIkW-{ac;TdJmXvIhj3*&pc*$0 zCY4L9Rm7l_lUbI=y)@Z7@}nr`DUk9wiu|L!Bt^x*iRln_C%-mUq#$jr0tsb(<rr}= z0Z@=6GNHk~5*^@era{WLKS>0sl#LhwpE*~WFi=VXOlu{HK`1|vT(T$*xQimkgE(T6 z%fMFxjHJ?<0VrsZDV<{;7q!T$lxF{hr{kApuB76vmK(HMKH#@n1HWo<B~@OQen)>p zlBJ?;t>p0Y{t>}<HeOOy#j%!v)Nx!@)N(#3w)gdO2XJX^TV!eSZ=f}_hF0|Fj584m za25$h@H~%u{)>0L|AJ3@F+!Z+n&<5zNG0n@GdrVlwcIrZg$LHNAtwT%0!9<Ha#woF z7{IWYM0p6(1pxK5&E#<>j2fqOQQfF2E!b@ftHX|Fy_jrdGf9`!?&ew>1sU#2JTt-i z;BwF|xAR2=9_n;b_$aQji3}I>#a85n^{PeggN=HrF|YHQ^*C%B-A$&Z7&WCdSdm>; zz#_gXn5y_{tt+an7b}9kwciTGs3B}|0vSz~i}7ayVO?mA0fZoBoz$EWF{88)igCsa zAk5oxgK^^vrm5AMP1`MUfVNyJFVJ?76-+V#gXS5TjX;2695BLi7$r$Xl96JZ4SrdJ zIHNHJLE`=#-wPy79h01Ko;tIJ02m*Fy%+;XC@oac6iFyfPAS2;JY>5P<4_t=I-k$y z>7P?QIXS5(M5FN{2!g9jDY|F}S&I7!uohtO16*uBuDB3fJ=O_=|NA9z94juQG>}ef zKaA|?>Gjc(wOUKRM|zl~HH<M!^cX9?(WDfwf|dlOEHNgy;?hV-j7V85Esj}6QU*$M z7!n2jh*1bg6GB=6CWw?#L{bYyjDz5yGP#tTfswVR;#D7ul(Rx|r5PtkHEJxO5a9aL zkPK0+X~D;hB~wb^t2ASbX~T)_q_h+qSll2X8Lk`<XF^DX7`AblmuLNFr031GKv-Ks zo*7HQzqqO||F@ZEEE?->(M&XmeM;^b*D3ct!{IoX)C=D8dXcVxTQ^1Z=DI=KM%O{U zU<2#sZAi#mW3{X&YSLDfOIWhpL&D&-a<%l`0`3PbkG(v-e++bKrP+#u?X2+z4|dCH zvprVZ)pECNYLyFLu!2`*Q7ZiW`PcG1>-X|Z;N2|Cy1gvr(?AN&gbZ3-RGdd#KwDIU z|Mt%4dIEw+oL7RkRxe0G5Udd(Xzfc752R#V%Anw^U<5(Z7*OUwy-g|Gw}CN|1c>FF zga`sDIg>Kr1nFxHf{>g^f`G)`ewOp|ujN_V>tz|oJ4K%L&fofk?k3|T7!ho@+X<{C zvNq^+yB0)DkkHq1(ZWjf`&Zu>E6I$OK*%wJ6O^v3svOiNilPi{U8QWL6<or(k8EO6 z#c#OQ?`uVDDaOd%zW5vCis!8|)59GF98x4Zqi=%tIosLN8F*o8@O^{%e6bu)2!U_3 z@1I>O%1$wB&T=WlV6RS+_Ffc8(YrcpoUc`d!E!WAQ>l=q{lR21IaqHl9~Y%OZW?{4 z<a9bWd(+di{ruqI_~dN9?|Gg_Uc2wDZ;w(BSn+zZU=rw9)z-}p?u@7fn50aqT1fod z?jRkN?GB@`%UtZ9!ZqkDl}eoN`*Gqs&~kjbn@)k@VBSrtY(sRbENgm$K}CqdsvIkp zwlea6@D+V-U0#2>&tFY1o{X2|{A9<+lXBU?bnn8luJyHGV2_b!5L{(0?B`{fDpf`y z5RN;`-hg`74<gG3`@X?JmVwWcem;uRqS$M!Ws$V|?A?5^+^jc<4?AjEh_$4Li@FoR zWl@u|mr_|Q*F8v96UOb?1kC9&xVsNN``~;5EaneBu$U9g7Y{rpi!@AQzXAzHnwMo! zkOK3iH8SDcK8nks9~<QRfp2j5pN_?Y<>Q$?U-0B^OSIiR`NYpXp1|8_zBp9A2N!et zo16=qW`=<U{sm2d1bkGh{c5T;3nT}DhoQ3s&U?MVRC2}y*F@%4eP#?WIx1#v<NWos z-92%9iR-O@&mTp<>JwR(&HywO0gh&KGuv#>x6K!E2g^!$qdK^%z^rf9&FCe#t1~a& z#Y5!^U+N#FaU7*cT$;2PGY-IsR2?539f_z^8$wlKngwH{3qMI(oEce0oN=keqi45@ zA^~vaKyi?Ziz0SHa6pmPlkuZ5hc;RR(UWJ(qLfN>eZ?5*UawktL@E0HgZ=$UtHrgD zp$QmIzv$lEgMn1ct8iC?zrd%n=Dqhm=KVDsI+$UNhwubmfv>=K<A?Ce_}BO=;<Tkl z=@s-Q`m*sc;jLMpzLXT}042Y>Rmd1Ak<ukp>K>0&@&baYwcTJ_b@=79GXoFUiNQgG z8zCzQ4!9WUOG3gT{wq8hE(<h&Q&xHLs;p*8R`W8r3_bGgRiXt?6+cYPy}4Y?)ZVzK zpeR)`9rJdLY_^N#Cc1-;hE$h4{TM(f*p;hvf>#wvvLfdqD$1g+@}n??p>wUQYRGqi z14hZWW4@U^d5nCZr$*)^tm<{+R0!FiNXvb-qDR?Y@1&Y6>XH@a>7KH#<r$pH6{DjI z0y~M>ZoR9vt3{CMsm*+4sAtqG;YsDG0=XSYP*Oeum(4)MEIq~*Z1a~Jy%)q&5EP-$ z(cD(08bSqJhvZZVQI-^h&U<5KqaRS<Zn?r=@K`VsN-Jnaibu#zoJ8aKVxL%=XjLYO zO2sal2P0^~o!^B5GYm>9PFiP$kXj0`dNuJ0r9krhFWL+iJTi$@+Jz;TlFD^Doi`T~ zB_#(4ipC6UAncStLUS#+%Kd=a$Jy))NlI(RIk+*d-KzT2y<R(EEV7n@I97&?Es1GA z?{qt(EK2}hrloa`muc#>Qv45uCNh>Fw6RtRMi9LUKvKm(R#>B?-~kA}6r6=`a&asy za(?t9N}pZ`8k9v<mvJcI@Bd9FI*VW;C5@BL1@jC@k{MKvoRM@wNgkR_C<PME`o=05 zwsU}ifwM;Jy_8Ax`Wr=()GA_932US#7BGhYB7z`PT<|jRl?45a)K-Ed%vf<UN$CYC zC1Z?hz%Z`;I8s8ywg<pC-*-|9qCmnXVCEmHFbKSJ262kBydy#K*EwU7hD``?>B%#4 z#&E0xzXYm8sjrL5vOuR*>E}tgEDQaik{J^RS=(;+II9AmGvZPyt^>}KXnpDOVUnb- z#druv%ef1~mMQWc&%I)FLRnRDCZmXPXBp>=NN^W2#-wmjq9l8{sut%-gs%h>fM8s3 z9geKg=&0gEy|U!3ZmVKUNr}>0A4t+P_%)+Acj`&xSr$7BdN>~m-}ylt^?FsBx<JV| z?(!yW!A_~5913xCa4=##G?6yi<#`*_%S*=q4K6}IN#ZYI;E+Pwj0q(;<Gybq4avD+ zIR$`J1THuq3nr9S%4pVsR$78{E-q#1tSzL{h<%V>0gNOdF^YMikXp(5vO$ao3BoXh za90jh{sRbt7^AiTgc4%UIA`Dz{)H9lX_6zdzd0cNqKrZ*IG5TeMWmhf8R5aeIszAp zTNjg*;s#@k`>7B~=rf*>4g)KdGk^#s<D3V8(D!q088{c5jFf_iC`{9WamENyk_L=8 zX(hPRnuIahFlAw^V<i2+kRY^;?)4)-fUlY3%-0}jLx7U$nc^If+Gh;JI4e0P&#sK| z!8%*s(tF1HQqLP-L8o#{m6B}ed6NQ-ZHVS-xsrKd$+}WOI#robBb<fARH&Oca5b0f za~ogQZpuU93$NXK{lbO4Jzy}neEH_hOBbi}iS=;4*jlT5(A!KCX7z5j9~r5C?J$Xx zQBUxQuy<oRO%o9wE?@f6M=!QJCOkP=EP6kaR#jC93Cc4|%n0FxC`VGa@*F>QI^;Pw z`=;q&c=4e8F^=<JSa#Zg^L<U^r%CJ>3xby;2#QHSWSt|?X%C0xOCES6&rkO*UcBDl z%iM8eeFsnw%3}FDs)$;G$68YbAw-`&;9fZv%e#|tGR_=;QB{STRZ-1?QZ)z1iZwaG zW|0RGqN9Sg&wcV=kR-i!9I1)UN*uoKQabSmU1%NIDhz-)>FwuZn`A)OcB2qkHe~oS z@(+&V2-YQeMy&t!Uw?z`=Pjbl2`PmMqqZ6tls#UYNo=``!cISmcsJ--oXf>~`JX4R zZ3%*jr~P-o*d+w$|GaqduH@J;=x4m4cinr=d%yQl@4Gy26bRWfsWr2vtJ70*WuB_0 zWnYk>n!tu4|1(gj*HdP6Xw~VeWr3t^5QWWDc?D4vimY-lG7Dy>xLc)`%^a~N4^&yf zJ*qC~{qM$=(<e^%r4d+MzO^>i7|0;(<UxomZ{c-)uoE~-k<-TdzOgI|eB3}$p8t}i zQ$Pm|p(y)cC!NS?FrD$<oc3ptPF!EU<aEDST)wqFpfJpTL+dMbEzQZvl`C~E^?q~V zGKTIUH_TJ2xON<)xqOqMC5^-g>=4EngDT4q21O?f)c=`ZxNlAITnjP2Z?thy5d_%Y ze>^MR<f1tsqT|cQvvP6azIB&YJUs^H1VNbRVF0>vlTejI&{3mw9tL<bnd6hIm!DeJ zZZe_w*U5UF)Y*6XQ9Q1kDS6rrUG+R+z5$aC#B5zv%dlPb?QX+A2ZL+J9>sNtuo11j z9{N={m*m!3n<viUij9-NK`-_-;DR&>k8?(m9i5hw%6IUC?7OlcaIQLh#KHH&&|Sae zg3tv(dSe!sHMoP1TXDPVCkym`w;JU;nq74NDCnDtVz`%OSvDQ!#oM#Npq&HJa}Nig zyfq%RUy4T$^L#Y&a{k%0s*vZ$k9?#6s-n}$-u2eJ1<761_`SD1<Ea<#;(y|<_qpCX zy!UzE;(eF*aqkn}k9nW;JggV<%_N_o6PYh&i)I#KF<0|CU(6SBF_q{;ZPuH4ZNF(3 z6E1cBWV1nMUeAk3F<;EFW)nq{4>4cmW~wkOjjeXutJnorD{Q)`R8tiZHoL4zhA8I6 zyjaYOd9|1?%8Qs6%f-C92=<y_+0u3$n=@>Pw2!1V*HJ9+KLEUj^A`Z%aR7LM^ViVQ zHos_^x5an)D>=^J|M=ri{OH;Ebn<s5X8`cLe*CHDAHRIhCqHyDKAW8C#~**<!Ltb- zsUsSU?QruxZ$AC!nA#CNuqEd|CFt{k&nNNb4dZVEUUzzS7XErC|F!P<``&;HdG}x8 z>(yZ$o-8(}liP26{^3q9>pqut!_(8#Z+otrJ%^V+pyM^(CGTnPbG@(gyeXww4D+>L z&!`S1huEwyV_7t#*9hz9sdcT`79A_E=9jVDZD#eZo~UA-9Y@$qe?ga5v95iZ2t91( zQ7xtIu;qxEBaE42%n?S+XHPoD9An)fm}969#|;F)@7qA28<h6@_p_e@rLx1n9$mk8 z%Ah;oC~Rz=I<>KZkmpBiR(qRAu#ARkx55m*a}@=EwG|3LucElNN-3pREs2h7Q+ibt z2y<j{U{Y)12B}4FJya2(RQAfPaSo7=w`QY}j#B!Fj5E$$Cyt_Gm6vwXL;^1%HkqLA z>r$GGF8ka);8j^=1#}}$>P2o(wM97_{mQ7yi*cOtlgZN3pjsdOeG~iYY}+b}$@RKs zm`bT8{9U7^x7+z@w+qcy3yOj&MWNeWYvAD@qhZ2XF!XlEby?rCY%O0JMG>5Z=l_3A z*A+Tazma|Ohmy0SBoRgx{52jnGI>_DT4&d~UAT^_=e*D~U--r_2sI%!h#62yPg_#9 z+e=^dAC2Rc%kZ;sc|5NQC*VuJkYVB1ips*5zN-BqhMzt7o=?NUpa1#K4hH-8-n$P6 zSI8L1U3X1pU%YtuCqV#YbcNLQH^=`WIDpGB%9`iMM~Oe4nVM>#`M{n&435fCkW%F4 zLHUT80POkukeb!4XCjVNDd*|pN8pWA#o3MS(IqbOs^f}0la7?OercZQ5fhB^p>N8~ zgb);rAVk}-5h!PjN}Y0Gj1idQ7^dhy&-32ud2ela-ff<DTMB@hDMV`Ia$)y?Y_Z4T zIsnwPE#I<WG+Hc1Bd{#rvP}x$IQ(}R*QG`sL$~9|^#B{qK&v&F0}A0F`mT3en5N4W zel`BPNX(*&2Q&BTyEtojNeJCucYJ(x4RLMt__){Yg^AZ>%th*Q)>bNNx0?MN2sY?9 zTkS}x7H1wsw{Nj7_Td@QB%9<Ec{~$Hq4dM{o)A~ioD-ST;RuSn;KGVVqsYCCd@RVN zB4KQ@pO6gK%S4SHAI4YioT|LYUWC=+=1%W4R_TbRd!3sX6~gk7<0m#XdwTY|lgDj) z-SIm?u=^)Q@AqIb8McLRR-{aqj_z+iDgop~0?4I_^rG9ieE0F=o&?5!Lq~eYkKg^^ z3TK;fc*3?frf1Kdirk|I$5y`s0Ji6@j+R%7wXJ${D)`b1_AQ560Mjis4l7?w8E4fl z#91ZhrpdRz{SS8`T>AF6|MI{6ZF#ZxU5;^n=$~Ola%=G=n-~&|<2Xhh$58~Rlv2pz zIEvx1NABSPTs-_-$1n`N`@dV7W*FTc?i#vobf0SLnqhPrJ>4+O&TsZDb&Frs{-20F zeFzmY96Vxmm#alRYG9AAUhK!2uH85pjP82t<zXC$v;JVRe5t{jXD)dI@P>wc=2?T% zZ;cZB%(r$1-m?S7e#qfJlkw5e&WKk!qbAv}tW+J3D^<rOdo|W_54n($D&f8-hV|CT zlUw!hiANtj{O+eeb8W1HhJEcpJ#L2QRbPDUv5S*$e)`kj%vYYJUCHA}N94+{!9U|q zWi?1nPLkWm^U3SAQT4ni2OWXDzBmTex)>c6EfiHV`6k3dd&wqhxTxj@Z3gB%+YD#r zRQ4ZM^D6a&nJgl5NAL%N-)N9#DuNU8V7)L&%2_>`&I?$HyWRM~wSGY-(}RQQ6pP+k zS+4$n<-x(sFxIEjb;G=UZOz)<z2=(T9eZu9)mYiu+NxI@t#4x(#lGfqCU}{|+FKa+ zH9rm`)RMU5;`;;?W8f@lwGw(wWEjz}wv5l5TV7sXKKB`;)$8qStP7!(;Oca5GVR~B zzP_=32lOY?{wa_fuIITM5)S_xkejxx0RZaSat)x_w#gBeHJ!dn1H%BRp>3nIPj(?M zi|7P-1tCD@Y@oQc8z4yQrN+w<MAP6NgdSeF3Hjbggob@c)HudfvpOa%e0b4ELrCP_ z%H!6TiC>w&3PyStOpE$iLq943sLr{Lbd%DrBYlR_XDFS;mI+*Oz)I?RFbTu2hvC;l zfbi?O@u4VQUA9aBUGH}+n*nbiAiwn-#!0?rnE=}(+d^Os4iH7Vci<5|W`IBuIY0;T zxxoH_;^T;qBmEYIo-Q@}cR2w6-7Q4aI;Q%A#C)z{Jl9OV6<g2czuUDe&N(-9O#`Wg z41pd4*y&joWm4)r(Djh<W*h??C7cj)fCn%jjMyaMD@(+MU>pyLE!ZLVVRT>=1WiGf z8yLy6F+F?n5*{4hcky5_xODO0;MvOugTY{M>EPhv<-y?c;NpGvUA#27c=5jb?z`_I zF$f_?@gf|@jmWt{ZXs_a?<AimKSZ7(KTk+qR#|B?5K1AZ86KeAL2(6v#j0$od-O8K z^e{b|&WkE5QB7F{XxSl*mE&0-Y7l6GW~AW3bUdJJ$fen>O%(`rAIY-HczUcTNSa+p zR5s4Gu6)kW5=0_+Xd%7{mqiwrQ&m>kqpenjK^O<n0wJWh0b0!h@>UC4FifW~8xEoM zDeU*tKDHqY;s9E--^=>Yf;b-Z`-x?>;Ipv~%2^saT5K4arc)6r9TYgrxueCVu1SN6 z;Ky4nxR0AU1F*By;hM<+oYB}hBRo$^&l8(62!sd%`M-9%t^H=}YpoVE48yb%jWWh$ ztCh!wnc;blW!7pHeh`FXWtgTFx7vm82hph2${GzRd^?UCt@Qv*=mWNOt^t5I6f;9m zX_x>3TF?h*x4@T=6s=h=Jn8D1(3{XiY&Jm`n%;#bK(jkH4975bOw%(AddKoTZy_!& zfPU||c?D<4o%wI&cpv#3`7!b<<d4YzB>xRA3}Hml$%u=1XtYmDb8e*yQ4EhU&p=`V z4BR_!q9Wh2E-QkkV-J=Bnd7f-YRe<)yqZ>n#VzVY-A4O^ZjWhtlB`HA3^O4dw+W5L zP}AaQj6o0vG_BXaasX_>aIm&EnXIi1hG3cg!F~4~_@;IE_nKx|nl|;<(A6vcsMP>& z?43WqXE1={_uO+Fo&ideWD9-IG(GTr$B|$=wu8vo3M!=<T-O?E4H#>-jvoHvH9N|- zEL-hdGaja$O@v7&9gZJ8_&$#>&~m`0{sy()xbntJl(rgufWB%nW+U3;UMp=RH_QdQ zeThuTQF1kZFi%<du%DJ=rl5@XK$a?A)LAW6H8^eYYEjgY%tASV(wm#zpMc7$MIlsN z?tzR|Ra7-BkE8`(sSEI$<pl|e@$`F#|MuG-`p|u+m!H2K$B_;m=r2~UJGs09Z$0HW zj_sUkLz2L$Q>R>)j~r8Q?iz;Nk;QqprAc$E$u?H)@U1U+?;rfZ;O^f3+cn)^ps5)K z%(o_Rws&Oj`WH-wz20#0b+ZA`Y`Ty1te!7g!avovEHfpyEYon6q8LRDGS;IOw=ibv zC&{aA63~H!8o4ql6V6hmuhfc5mNlUiMU)1GTR3bW{B97%1q84zZQJZHVS%H1RIJPZ z@rE!hZmi@%%$BW$*I~ampy+p7E&K&wGNi2S876c(Ylg1tbSp0ql4LOG4>I-kpa|$k z5&Sp^(e5dfatH$&g;e#>_Ys6>_i3wntizan0dxa8*lKmUMi+e_4^zghBS-i!r*E^X z5oj2pWk!Q6YlOO_%=CkxT1tmuD32^jOJ}svn9Zis$V%dv!Y$}~^p7wKDM;D>BM`iU zzK2P(Nkj77Yg1~6jCo#$f_G%Ocl7H>;Kzthl5Aj9nS4Ab{me&#^ZE7H&*wOO)FHX! zj{jZ=;_z!-fB0MQKM!L<NjUx}b9$sAH<CP294kTT-|#b^;`ZVk7w@DnJVV<7Y4hL% zz){nA9EKMiIe+`kF1l_M+TAQ`$L&@eb2|)O7hv~2jrFyBj969Y&Q^28@px@Dem)Ea z8)dK0SqCgT3~dXrxx2K4aB&}S@5r6SIPdrUd^kW<s@ar&zn|y%t^0@PaAW=8VCVeS z7UI^{`JID<^$mpn`k;^4?Jck5p=ATuR@k+yG~FhQ5JKRe;Uc+>JWf7LzL$`(bqNqr zXC~8PUU7UQ<Xxu}aT3ckOF4Mk$<!PP`IXzrl$0`FJx(C(mtvD?Ju4HU>{FW%=^a(b zAGfZJ)F<)S6R&#G$EkjqTg?leSJV2VjvSyoGT{UmI_T80Q3r@n*T4Z?#|S`2+eQs^ z9Y?!8F={&4_*-DWI@i;I4mvmQX9|Ap{@v@Y+vP0Kq-phh-!}rOX?nDK-F3UMrb}U& zvF{&#d2MZTZ*OybeRFSb^C#_jTODV1D!PuS>!6`+p$;L{bQmdg9I6rMG7k(BG<2Nh zkLjR0y3RZGeW2^0Y4-U3dW-WwYNpxul?pu5*QBn+P;bSWt_jnO1Eu^AZtm@EE{}yZ zOoN;KTf7J#C(j|zC*MQ9LH+?;n8I0jjF5U(PiHmF#A)dyv>D7yrs-5z$zMov=_wX< zI!&i})?qAN!@*=aX{eX6rCn3g=#3$SWD3O0s;iJOL-5q+;NqH|OegVVb$!BQR7#CF zolcB7puNxJdSEHGrogsAdM5!C1%DEYL<f0RpsZe<W_wsz<V7wpEh?sK)C)CEi|M4A zEDljJ!+wUBx$*b7=KzF!<ITVC8uhH4#4^dI(RVy5old6nY2{IWz;vAfGs4i-fcm~0 zBik9J+v|k@?K~fJEE}k48MY;~M#r>F3$g=*DB2y>>i0LZ(YV`@Fp92+t|ur6e`&e* zb_hbWO!Jq9!(oFd#B4d*`8e|}3vI?x_q@>cJXbJ4y%WV={KH@ceyDT~EC@PFvl&o` z?baTyjUEXd-S@hVZF4{^Gz|bJ40~+>Xqq-)<a!RJrfr9j=eiJBmMwT=ywW-R4ggBW z_CrV0{fIIub1@dnDbj8NFQ%5|nK~D)1&}mtlQKsF{60b_bZtulgpsG~9Dr+&e#>zg zUCRv_)7)0%dyLvn0y?EZkR-OtC}pPPo<PnKKsHow*lcmC>yeztXuiJ`dvRyG*+NhN z3@oI^;b$T6+e}kch*`Gj2#O*sL8T!WwYXW{tzp0r{)<s6ji%#(Z<@Mm7^{E~NzHjF zhL&XuU5A1k(*W>n3#kS`8%#r#Tu_QAfr3VvFNL~fSmF%nmJlWd5I_UB@xLjhj2WEk zfR4s3%1nT_0YK~v0l>JSYlxD`{OiAteYDjgQ*zA}uI55zi(rQf)nRF6Q39BiOTX}w z!MlVM1$SuCDksxAc3k_$24Yd*uHiWFTOVmfrsp{irYrq4>kTxiKg*aIz&(S}xVh78 z0Can6hu=)4^gQ3kH{aiiP1kcauDkv^Qwlh<SeP0E;MtbNDP^YV*ydgDunnEj_TlGy z@M&QhTGa1vZADT1dc*T<L(0h_Gc^Xl{i)j|gtOU!Ux81Pgmg$sHc3SYQ1NUfk70Wz zQOQ0A>vs$nikj!8l0_&Adbxe!o=id3Dv|J!2OMFT&f)*Dq@a%p&oi?BX$j#!sZsw& ze&+E1r~1F&|2;1h^!#g?rb!9l|H>VYO9nUU!_YA48XAUs_<0Y}zUhBBj*B~>EqVQg zuKw;jho2V`!e7#Z(DMLxe&G*vDhOeO^uOtG3xs!%1S$}1k=dfjI5~6Hs;s(<r3^%v zqV>)>kJeROmf?8ytL(z{7p56E5E7mdmaUc`4BO8|(>mBoCcBa6!E-Mu%hWvY<3Ur! z5QCRKHyLRJH`$&IO%tB`0Tl*9)41cPF@#}9GQxImAO`=h;kq#Cgb{eIdN_7$;d#Qg zlV!(snwv*|6D3vwpY&YyaN@d5(}ZKIW!rJu-A1F|aNS8K4B_24bL7&fTW4iI3r2O^ zm?a5V)<r$kD6A}9?@hz~hlljIq@aWRdHE*TPK?RN9Vgy0r2NX3A?4uP374SVTK?>x z&+prc9p~c-#*PhA8dpnc{G)VQRQvW*^(IV3LKYdXDk<8?s`cWrUd~E6UNF+?is3tE z<?PS$Vr<|bq^qd(@as4$XY@Rb^aF`vx@oG0Mh!!76emw{Y8p~7YVtKQz;jU~u|eZV z*N_pq@B_mbx#Mb@P8riR$^`|92dOnNon}R005#|vZ8(usOj={|)@8#X5f%J>tF>0G zmh%O7zEWJY+k#tDPbBQ=X`U$}LC!9?(I(G4EM~-Ul1K$9P2@Ez7{Bkw%DsK>Vee($ z8@=~=o~V^Cs2EMgdc;f@!bua}1I=!W=!Sm{8oU;3UaEm4+?}DMUJq<;I!K?{^s!<w zuz?$Qw-Ha2w=aIQ_%frM)&jh@M@m{{_`8KMeyTNIN)TLYYwajaqIeRAq47(B6_g5n z`M9)JNvW)rQvSVsG!y)<_<zBqaM?#+p@m?RH!;qPNt99|u}(?GvUEDha=}$~TSuWb znoV^WA*HZZzFtactQ108D~HDVdt2abyo+A6l)wwyh*0hPOtZiwuJQMXFoc@!?CcQT zV%C%u+7qpW<6$)WRPUEZuef=u_=8T8rfci`y)X!hSN@)zpZ`&H;r8x|9p+K}+cQjm z%vc*XF&F;!wHFc6di~T5O(1(ZJs1Z{$!>QNOdp@@-~-M-^x+3Dd!F#{;$6DN1yMBg z&b-%SL_Soi1r4_cIl{1yS+B}7mcA?Xq;Eu|AKBowOvyrGGOB)IC(VIvwuIDnSMdII zFnYPM)}@)_)<kbBj4^(iI$>@2`-L&aWvLS|HvEq2V1KpT?d_Gl<-tLvh-8u^e6`|9 zl1L&|9ULrs<=)<IwcJ0bI-T?Xd2(FDMY{`N5Uz;by!E=*-MYzGK0J2(Ie!737x=!W zySf1{$F((Tw;V^rZUa%LniPJg)0-bZKJRrpzK|N#5gTqS9H-SDEpKcr{~s&zOq*S- zm&(@K($>Ms3gXJj!NKYZo(n(X3may21YM#X0#%|oA3k#;OQ-7O_1g4Pcf7#XHFfRH zx7_hT)AP*lv2|V1R?B4%b?V)tyWZ#rAwK6hU$*V9hd~H0Bg7-*%0Izncv)ZSlKhxy zLU|mcSwToE<s!J1nW9!Mys6{Ar)pJ$n=vW`mf9xN%*kQc6XrfBS-`#ZHP_$&>5a5* z9vk>$OX*!FO&WSjDyBrUAJYWeQ4B}A(ByfaxAn%dmO0&c!zpe#-K>{xUg?zK@?Ldg zTAnz5`x>Mh#oF?ylXXWj>8S2)S&#)c2aTX{P1o&so}F65btBiuyZWX%J+POZl^2Nv z<K#QHorV8D*uDA_&`8#k^?Sox%^NOskGJ-TZOOd955EbQh#)O;Be|WBP*$>z>w+f@ zT-+QxSIWbk`Z3%DA;W7&DN};PVf85WsAc!)_!70K|Lo*qaq?zx`(Xf(sPS$-1}O4f z*a{7vIAJU$LzJ!?>-idbqeQh@YpAu89ap-J$C-)iZkLbTH3E}38{la7sh?}U;dk$2 zmDO%%OP#K^FxFO&9$j1250AMVebaGG!(!ZX9L;S}IW;<+e5K#xbFsE|yey2!btNK` zS`<17H^M*yNC_YbK|%;=^EkvMeMS>R<)>QI26;`nZoW6&wtDQ?_EvEC@^YLrzB!oS z>U3HxIrpj4r*6D)@%N(Fo0Z3SJ}&3ek8WM>r`c?F@Z|ZMXEO~a5OSf?%jGv&z_?~r zkK2>>hRYx518#1f2B^5vk@ffY4*y3z8X=BG_2T)RFW^I~TUT#R5GR{g|1<;R5B6Ug z6^sP%;*Upu(|qj;hVR4M<U$MqsS~2;97!}YsrQHv%oI+fSIGo`j@oV93fa!%s5;nX z{KTmX7xs4<KOuD8wuF!?2m1%dCVx=KARH{W+X$S+Q5@PfIJUuD*I9~_Bos;|F#_jd z90!(-t|P&*&8^e7T-ZOt`0-O0F6>K9(<B!(pcqB7-(Qx74iLwM?zyfhgp{r;H~?e* zN+cx!Wqz<^xt?utE~Vo$4nV0z2(dk{e~xd0_>i0;WUO50)%uVGBtlBuF;q_?&DRA0 zw?Ih0BTGpaL?4rVm_o5*kR$+ohS45h;I;VuLhcBDQc6wSEW|xhepG1dlK+34%U>4U z_+4a7{<h?+KOnW4lww;-P29`HU7Gle(AK5+1b&ILH6f01&iOeZuHpQHoTozmA|n61 z5KsR$0`SiYvGN7Z3n4_!Ip=o?aWxm8=6oasA%qb^Nc=EI`DBA!oBs;2283o8Tr+t( z01qd-Dz#AcH4o5<QOr&68#XVRG{werIo*RZ7B##R{Gizih>0I(;KLjSgXxn@HHLjW zRF%B+nyP=BMx*&+G{S#Hl6E-btdnW2Oq%9W8I#UBX@cK~(@O$21HM5&Z1XH2(;sR+ z8qs6pvH;SoU%j;n*&F9PCBJePKif@GIGv_>rnO>>@ev_Sx<5NE$|=+5fTbI`DQg9u zH=PiksPqR>?DV!iR|$Z{ZK5J%nLlMPf(L*M*K>J3g6q(^Jy8x#E1#8>%P753*X*{k z)m?{BCtB1JObOb9$EsDi=|NC?l<K|H8~0jLN$H-N;HOMKrk1C%nlHA-3q@bPA1whX z00IXM7APgKu*HM~5w}QVnE(d6i6rTTd7i{vxv*-t)0DRTejG=kKyhjzDcb?(lo0@- zZ4G4$Weo#JODXu<mN+EYVL3Ba8!)XkaT$i~Zo8fO(&Q-sjzRS*$w?9z4+6VD5h(&U z&|pZfCuF3_VncyMVG4wSAAq<M!nuIB3poP>82A6jqdpPmfwdxgG3%^@CgF7iaIOM^ za|}e3s5lA&FfbF6bvY;?C=~|IF_bN<4Ob3404zZn6~$(tHPh|a+*S-Md?pBtDM(2Z zPc~NyQJTg!FVa*qDGn~Q79v#0k+dlS#t2$!zYr$zi4+6*ObCMe8ZpVVo^~Ev6k1Aa z`$6b~ORae8*ch0^L{<`U6AB{33|eFf&4{EKdLH^Z^k2(ewt1+ENbVd%EUV>e7qRQ8 zu9Mm|yQX>^<qTC*?V9TtLRAqed{%Ut3y&w-f?$F(MMmSES6(Ppq4H-hL|+p9Kl$+7 z7hnAFfA?Sgo?yE13#(69G0VG_)NI25*6FNWe{$Tk7<ln3s%Vcocn!BV%2SPCVZ17M z;<foT&&h+EU%7R^?vKqT6P6Y=Qa%+DLQZkH9fhPIH(6y{|0!~jyp?>K{4Dtu@&{32 z`e}hHnDU3H{Tx!y6aZI0FHEngDm?<+cFX7w*yBT8*XhYr)}p$A0BSRZ4<10_>v3J7 z_*iK8+HoW^C3a!92U(0aAEC<IF2GPry#;3AVMrLU%$MV+{J|Fho}Kwj78zcoCr>?+ zr<V1|sZ$8EjaCc(`zv_r)FYOejvqO7l0vJ!K7%8gbUFZ<)ExxN07uuf_Mpw6sdJ&f z0(>7l91OrsJ-3C}Dl|{cqix%BTLAy&a;$C8bIrvNb(hn9t<W4gIx<7*Xmf2BQBtvY zKaeRRetkL|AcxUtu|D(~&2F|BjSx5thqG>@;SJZ9fD1rn2|>B0fn=J_7$&9=jOhk2 z2Ie)j@7Hw?u~%Q{LA!;{)vG;l99Zo^yM@lxt37ZWNOj#7h(|RC_g?mkZ3W0}%|5t} zhVEUQb1rcqrrH+vt3nKbt_ioKDVjp4URLdchv(Y&9KJD%6CYmvJnJhvD=YFI5GMuv z^$^}8^6_FZ&IL=;ZMb9@&ZlM{evGB*cJzS;h<E{NthLx)S&{y4^iSJ=N6e6+EGmV7 z*4B!D|9b;|`mg@@wl}@?p<5q%%PqHGxD5`jkc$_;wf>T8ul>kQwR6L?-mLgFQ2s0f zhr~VhYmLYfStAoNCtESc-iz0g8^{H62f2qlLS8^#NnS&UTGUyhiYkkvxSUriOH`R} z!c$Ptg#TR{tJhYQGE=%90pLaBSrwNRl-^F<@U4m*IzJ&r%9)vvbrhGA>3k19_RwEG zviYseBey^DNc18q-X1#sV~Ecals@t>?~Bhve2fZf*qt2y_TL1~;h(s{Z~XK`@Gmem zw8JkWa``jwU=-lRPFOwi$Rm#opx=jYSQev{ZQGXaWtL%Br~IGgOL#)N&%N1bS|2nl z%lNvnX&u#0As#+t`@Rh?<{xu^&2}g?jj^Fq>gnegWz-6MLWzClGQJ2dlRfefc`G3x z<Wy9Wt1b{3ft=Y)?!z@WtQPe|p@QzfHg-X%NgT;k7KxmuaRfVAiq!tR^8W5lOb^dQ z<)nntiF#D!5H#TMvK}koeSJRw@;ox9<_GP#-)uU%^&!*i3eF9q)tmwaPG#U5af$&4 z_yGobqQ7MT`VB<O0R))GBgoJP0r2JzX@=nmAsLsHBlLA{aH&x9Lsr~twQSvjcOM-L z9fu1!4BT(}$iko#`rmYQmvUxWo%VD#F~%5Ljx-mnO&RBDpGJfjG$>lmn6G>gfR-cq z;k&+R38_)a7}FR>+;w%vnCHw#6RuNegXrWe@;dSX@&)o$@^j=j;RIYDq*gf8pJ5d# zE>H@GQWYZ5{e^G{tJgQL=2cN+7Vi4-@Um72hr536=!1-ukjm6Tx4R!ND}_5XJza=r zA*!SUMLgg`Wigf4mB`R2_GB6i)6q0hgIFe1KWlpkxiyB$a$)<E<LDB5@6@cRhc8pL zP-(4pmF7j;e6d<y$BdihZn^W3(AIp9Gz9vIFLVx=Iy%w*Wa`K5ew@cyUMg2qL{;Hb znP*X!^xAQ-H}Un!k>aZr?JkhKbXnR9myN&J`r-a*7<VU8;^%R~c@pP-5>2{sc)B0@ z+l6l~Uoi5@B}o@909dU{S}Y%ac)286E+2k)xu6z~j&9yOIwCqcx_R^H2*1Mx<BZt@ zE*NLbW?V4NnEhv#0%1hTHGxTh6K94oPE3Lk2nLLZOK>1%BtdYIj_(e+?_}6YJ`?4+ zk%)7qIG5MB5ES99lIMZ4sC?oq7@HV=Fp}I9T_4CyWkptHc{1##(PR|4>7EnKOkg&H zm^H%IQx^^=QPLTtSz2X<34=f>#<DE7X*_7h;c*k#3u~)yURV6~{rrIk!0x}z)%9D- zt}obNb`-|#L6W*S%NSEC2tqS_c)6rib!$stxqSHMZ&+h9BSuUdWQRG*26X*4(lgwD zdse6$g8YJWp#b9WwK0bC`Zd_ls%t6U4xyEQvWT2hzU>bVQ}n`7z&tC^WN!kDa}tu9 zKuahsGm_mmq@}u5kvba)5ndbh|G0kZHNI6Kg{`fYJ3fAG*?80jAf2X~HR~2(H3kwK zvZGiebsjWTfY^fGx>e(ex+<$bf-$4l4MBNExcBv?lwd{9q%7WWFDTD};p;}mq#9wA zWnl!ZO<I_H?lDDbw5BXd(jb6Nv5L}^N<Sycr`KV$B@{#j$ZCV@)0`;xOG?w|{Fe|> zr#&9GI~0W>^7p<sM;JzI(ise^iXwQP=SeSk@fY!*aMxRSpXYs%_qE>ldB5X%m^F)V zUg53|^-Fglalsm1PiY1S-`oj#0}#sLtqOK!NPUPq&nQm{>s9X(YKzxI7uUAguF4@Y z9wflKM0A<s)auzr>H#7dlg;L01yf(;g?tIJ{zFr5m1-H^%l~4rDiuCu4v$_&_1@`O zy#fi|?py|uwOVV=!}!|ap(Gx)+pS8wFdBs_&5GRTB=`0<2*Nnl7V{$K3^?xZH-jM_ zm`zpBIrC8n35+D<A<L2FGYNTIR)CN=gOETySxI?uHYKOSFir-8b~}yY9&zVKp@oz} zE9HC+rLuGkF1XccyKo9$=hBqHxxs}uOioYt_tQ13<xEP;MVxRY8JP3?g9|TQz1IEf z(^ktE0!hgb$60DjD2hDG5sk*vS)Z||&f3NRh(c3sH%~mF<QR~W9r@$3;E)2m)0s*Y zN_llWf|S#}Td$3r&mrPC%d4z=5pft8<)E|-Txtv#0!fnR7Q%Nr$ZS|P{)k*ED>-L$ zqR>168w`0!F?6BYH=TcHaGyTj`1~Gp=*F$nUM@u7Y`}}y*)q?<sR=`_>n^(I@F2)O zp7||jPriIzq?=wZ%4x3qWr<&SO`e~|n0l0O!xp0TUckxJI`*FNzRL5y-tEGA6_0_L zUu;1@KDrKR)On^<Qq{CnUdv*>_)NL}Lq~W|{kn;f!p;}FsIEzBGV_bAx1dvt=CaYg zGUDpZZRc=-fN<;tXio^|3$aJw{x}RP{#kaeUE`yp#xNxa_j}Ph=i2oTw4J>GLOAvX zFy+GcxtIdNA4LRQu&%xL0tErRJ*>b+K=iQL%kW{MAk4ro;M*w(XsoC5<G-iv!u`sn z_l);>-W{6{#V=^d8&s>{Oe2kAx)It!--4ZQTnnia!7|nNrkbN51GXP3{>()@krwgU z3)3m(ELe)+-i6r=XqxS#TpMYu&3Z}7nS>!`x#SlkKQT!}f=lN6K_VG(PF!$nO2F4j z{I#YiM*ieM{Zv)b$;mx8&rXR>PVd2en9eTDMq(bY6uibnv*uGuV*MXo2YIGIz8?iz zGYDv*Le7|FTx8a2MhvwU7PFsqfOv$;Y{f(Pp{#szdUVgpG2!&|);%Z3WCJvqd$%$~ zQQw>av~=qXbp+x~qX@+iA@_GwyCGKBQH6&-bsfqit+yiPI2xje@X6V#iBO*b26b?T z4L_)Qhg)skRdt4lhA1K`3XAdOZo9jT>(suU89D>*_E>KFN@ayprSh{}>z>P5ug7vb zP&&_iSt(cKTJ>E){r9!VYw=po|3l*gXFJ~H+c0UGA~+1ny=fHg@|oCfWm9aTXu4PV zhkhlwV<Kru>{S&o7@W*{JrgJrln9wiQWzG-<+;{9SMW}U7p`k`RybW~KTnnJ`UUIv zS>gAz$unP_#BsY7$8p?h$8i$w2UR_bqjj|}w_Dki%Ot92Wq1(f&0ZL<^G2>uCCN<k z6q00MdcEePKR{LOsa7JG&t>6xp1}6=M|a{Kd2jXJ=Xr5%hHAabP&(@g5py+JX90Dq zD2EWjcvzJ~oQC~o{id{1?3gVk?OKo{4-3^~9;>AfX}`RF*wgoi*;_A8Ciuhg;GTPd zx*1kvU?|J8G|OQC!-~oL$%?%*vebjc{PMHc03_Ce5<<)np?ds@dsCp3$(|(&iwyfe z7Ki7**V}CF`9t%Mex4BEHi5J%TkoYcK(GGB|2X)o<+R%cT?CvTw^~HSLFa(jLw|Gr zyT5cc_TBvQwbgRqn|h6(_Qu}5-W$Cy@gi<oCfnxSP3yN=t))~`KO5~+^4(68Is5@D zxHVk4jC71Y2Ag%`B3=BZ!+s0;0G<Ty@Xm1*YSr)cs&1!!d6g?wwGKP&wiIR2YDfQo zu_DiND}=7%SaN_{lLnj-Q*JO=Vi$EfN;+!>ea0qxdx>L=3$3{nf-!#n9mByOQpD2Z zR@)IRu3f!0u0D7$97TSTSjC9sI566k)9GoqtSHOd?euRmmc_B+1Y3>A<F@a+S+CzI zeUl``V70n-{YpIn=Q8gRJGgLRG0uFYg3$VL9A>><_CwA$%oL0PLoRwD^E{6{dhxDz zj=Ns$^*nE<>fNlF5g^$}>P<~V5cqq{wfT;xZ@e%mavU9Ae{y$v+OIpEU=4@vfA}-M z6;CD?A3xYX_dbIFozC^Etu}b;+p6rvyEw&N&v;(7VXG=zv7-Lq=kK0;)%puoH$H*G zKSz1~LqDWTo8eudJGjTw-W7Hfg132Jz=n{OH9VFnRZS}1&eg|V$#uA^ZEH3KVMM~A zSHdH@Xx2sL+;3_Oam{*DZPSuLIV8PmI;M_*UG4Pz5D?g`s@yHM*CQZ@fO?`>uHNJ4 ze&FzAbYBaht?NgDl%dkv8L50<N$ZqWigB*(`JY^C4(mJl`oZBKNt3ky;GjML4(cBq zgy_Xlrya%UidGM^4T7N5Z9;EiZT!YE@XcmeV{f=(G80@#jKeI5kcFva0282gdoU=R z)?ggq97<bX8^GE!GnPWmrvLaBlC<AT6Lc_};w3+hR`r^~4}3q*&~n6Qne!`TDUl0| zc?iz7zvW%;`Z`kpEzk3`=e_txbOYb-DKGY>-l_L$?`_^!c;D`M(_Gb?RasPdwcTx$ zEOv=h#zlOw)PiXYF~3;zfwF+N0FTzSQRU)hR-4n?v0Fy5OH+9`iLJJ~WgjQZTifmy z#cH$LNVYC?6JEwR?YCO}dD=pi|1lT{$rBhI7=tTJX(&lh+VF(@<5ez{&Yj`hnNSL$ z4HqiZ_N(Cg`Kss_zK>VXEO8DQOY+VXG%9TV#-fdOxko%?jPt&o{&^QWbgl=WToZy{ zFP-FhueBkp4IYM4QK%#=>zd0X2Bc|GgbAUxJs?W>HuwFnI`jRaHOyj7UL=~R+XLeG z-r*BZyiP_)X!0gMq*3?9yLcV1M7wT!k9sfIcBsvZxyfU1XGFs+LoJ1PW4cOxTluQ2 zR?AKOli>IHX_J6PR&N(uR;Bu7>m1}bvkqjPCC1rTv}Xr<gFM%SgQA3Jck0Oy;af!1 z9gn+Nu_!qGhN>ty2^q!xuZ!xvaak0Moa^1HDnB=27y<*p+Q<(BP1kv@H}AzUAS6dI znQRV@j%H0CRC<A(>2&{~?svO`^FP^NuTR>8Vb$X2Klc;IXQ$)+&E|A(IxXU}(_@bt zuzT^v|3i21A@8#HM(^{z_j_OOeVg}b?_Ya=i5N95;0kVdo|v3rw$d;Eu$C(JFq_xL zSpCgbexTk*u3L`I;Ei_MD!+{7V!N5uvdA$<`Sm2iF?9M?ufuD*SBv2QM~ps-G^w$z zWKDKWm>11Diw!|DU1wv$Owz*OR=V$s<95G~_T=Cyrc}LmDZVo!FxiEgEt*NKCVk|q zXl(6OG;DW$#lx;+t1{o}qr8q!+2tZSyxDa#uOn<e`7Wv`2kzFJX0fWPrdZ($V;Mt2 z5klb75Bef=;sq*7xQPWIE=hSw%1gx0Iss=ajfoUM-A+4XJk1fFdYJXFqgO^-Z`BBk z0Y)JMV!}W_I(Z|U|3`MsO=Q+pPDFd0#YANs%}Cm9dmQX4=Rb5t4B%6C0zX{I0w{iq z^Q&x>oQzKyyGE1|WdyPJ62OQ5#GL<kFu<-cewE>2;3WX3;7&52fic|z#y<>u3ozW? z0&b<?hO1kOj~N@kuyhN>Mt&v<K7br)LPX5?Af;5k{K7TB{+5K1L=ZkKP8OgU7`~p< z9<WFJ)dZj*ek{lUhQu)^^4q6g{ieS&-f*`$?GYKUR|(3Ae*i&%_SXvAj3;Ao)XbWw zV5}x836OlVDCH;^LMZjb9FOSLpGefifG_?a><g`@U;It{cYM-Yd2g@*l&&%=+3Ma# zDk)XYL$AqEyS!MGGWSXXqPMDas;P*?#*;bCuUvV>{g*H8H-30{_+%iu9pO(UPqX2m zEClym70PaxyZw4nCS0I^7>}+Blog3HqOuwe2QA-cVxOa`z_*i))%9ezyYI;h7uZjI z&aGR4Znfu&>(4#(@I(gp-{*^Xe^gbRlBCxzawo$3@3%Y}435X$PRtn?S9&*J3`tzN z%vt~9sMY2o30tk+X^Z&fOM=>G4?c5ce%5JgcjfA<JkRqY&wKHY$iw$}k9e>0KF52z z_toAvdf(;!fcI10uXz93`y=l^fuZm`%$n_PzS=gkMr5UTwn`zYo~lZuYUq%DRjZFf z(IDbjX;zAto+8UzBI*Zotg6x}GZD=(Q|UBF#LTv=h!2^WsqL=8<t88DhBs_0bM{~a zAhlC);&wM<>^t?Y>R=%i#H+Tu$u5G#*y0D+q|9%mEb{(ftR(04a9HG08jvvu{K47o zp()rwQs%{QIA)BPQlmb`^EWFDNQmQZ7if15zp~e=0-tjYj3;>|<-4`6DruD(lr625 zva)M^7gSYM1<tqDcR|@|m4Wl^KTz7Js-<<Plvb@mna_#C!61s>9ke?GVnCHo#stN< z-%@hYk2s2=*2YGWeRq49CIRD;Xk6!&5bZdMq9_XD4^iY-RZqz(tH%VzQ!Z>2TCMhq z5~!-#w`M^A1VNTP9|Iy{LY|DrzO%M3CFeuuoIe~MX~S5U7gbdj5s@)RgMsg?>jSd< zTMOB>*7>8+u~MM0ELv5OM=xs`BXzgi2%%Z8E#$urd=h09245gp5ClP0+*f3IMwDfF zkr!DGWO-h!f}p4b3xY?2APAVKigzR#kR?}@wH;zWyT`QF({@{({|_RU`)L%#KBLia zG=6OvXr)^1J#94gI$X5l9LSPE7D#PcLbm%%NjV<B6&MYNBcdRV!Z=QX2tkl#L9kNL z1{VJfx`R)8s+T@0JrB&;`5AZEt*Tm_q1sI&R6AVz{zu#IZ$J9C_7CXbDZIu0NdCR& z%OA1dm*JD=qbHugXU~7^gC9H_#ux2bJTw>ZyyV)_9X#lrdav-l#rs9?-+6!Jc~f5d z^%fWdd>+}nda_ntl}%9>tFl?U2Y}ERLmbm<T8V`A7xn1pieEr)6;8%%A)8G-s~G8p z`vnM;#q-^2Q_G!WZQU3YYOFW2%Bme~l}gDvJ*&&rhgs;eHV^R+3B-}L)qJB>Fi34z zrK;%-AROj0r}!`dAd~qaj2h>OBB}5e#tTa0q{#NVae_Scp(AHBimWL7IF3e1j39{5 zzeC~S&yEN>$Yn;TDo_?$(~6Ab^zS(<DNW)j-dPL;K?L%(`RSqnv-#KX@plc%5@k6V zbfPpF>sJFwG9IX^hl_s}IX{`R7PXxpL=#4A68V16BDC2&@m-{qLJv}z5lFfq=%o|} zW#*g!I2S5FGPF`649n6waT(#?W%DF(p;n5zkjezUpUhbct-uA*gn>`O!1r79t?e)b z*aWx?5`GZ$QVN4Ib52bDr0+vnG)+;aU5h<Pe_Rx}HKe|-4fp54ge!OoZ^a#a)bpnD zI@BcGCQ>UvAymyEQX~~oa9%8&$2AuDV!oL#<VDzqMtwSK+sxFYkZQYGcQFetsJfah zICW7?GwNc_%RGo#!wH*;xhdgFRd+8}VE>&qWWA2j7&ZB2yZ5Twh2f>y+g&l=Z7&LB z$OXY$P^H)-m9b_vvu3?{CCh^Ap}U+{dWqGi%8g<$=Zkso-md1m5+c7!x)t3obf`); z>)m`YU4LF!GbDFkaON=^r@;RlcA-yfL>ypb3(moUz_|{HaS$`5uc-uSV~mg-WhUCT zL&mHXnY;ij!Z>yadyFdyBxNg2mFo5`J-l8!8%KNfsvpN(5@Tdd91Vwu^IqSC7cSm+ z(CiQQtmC@d>*oPLh(@E(*V-TTduamA7-NBx3{qIFGA)Gwz?rX<WPr>9V?dlqBFQCV znczy=L^_*65+ZAfa|!gMNwx89L8597f`FKmOag-YKB20P&tDqFkui)XRn8b=0N@5+ zK_rwC5>Q+!kw{XCe?BKbDj_7aQ7`9)#i%Mabsz9_z<6MZj2~DIMv%tZRx9y`YqOqV zB0ob)k>y2ULnTa>1!R5{ItwA)n`N;qW$<03Bf`bG&5}6HvyRQuPJ2)@)+&4bs-;LN zp&6G-Ybg+ChX+STzF&o9*`IWK!KmHN0tY}AMQ4y@Ob33q+v~-tEy$x})JxLDD55HG zE(rX9%%)*MWcNB{NkL$p;94rq3vDRSZOE__@%DO`(hNaheWF%AV4SO<<NJ=wEDf9t zf@%n3@@`S$8zLcvOp_${-MZz*>G*jrqcEZ@t$g3fM5&@Q8z7*=C@D2UV_1gVhC(D- zwFSDKocTDE7kVCQ)zn?oVpZ){4tT>$F3dmq+0Q<A{@a^(y>t5`KY}~YK6`!#cSgVR zE9ZX*AIffwTlzj^p7CPO+pQY4Q(3jkSl!gB&VKHZ*=+V3qfdTv^ys4Vw(k6cfB(7X z{_3Igzk2O!k)QvUTeq;s>3z(5hVEcL!!A+kRo)2eWuE`w{YTH+HMOdDRo$pnQ#G6+ zwe2>mqTWT^Q!Q#kpUSR*oS-D{Z)`oT6t$?fTPuCKMcc8`9n09M%}#AM+s!WM67o)$ zY*y8(QLEj`OYHiSV!mjqyvnPlDgdX1o2rmXh`ZL!rYa1h*?Qv=Ej<jlPSWG(-Bd1G zUbKr<+uiI8Uv*6NTeEeRT)UQ>WKI5#Ystw;a_xyI`pxv<^#?yGgfYG!hQ4o%5JDJj zL4FwevI?0(M4T&StaT=<I~ej_##x(_;nmOnXW-^dZXM9dl55w~tP10}K-{<i{O4y4 z;C#S7Zr~hjUrHh6Oi3xY-~v+0*<iOn@;jNw?JEoB*YYd{r9X6d_~8$~?&#=qKK#N9 zALe)Ny!+kn_WjiYtHn2poWQ-5@%_*lyR_}rIA^RJGK#duy++xPbH+3wkfL+&p${E& zgbaclYhygLiujibNE*f?hPNbGD^x11xFM!|A$-Ni@M`#af*A{Em@x9gt!Ivo_V>9B z12(*jcj5$B@g&{|8$gYEF;N7j!TX(^FT_;>C2PHBum>#{NbHGzGb3$7pi7wfyK<=z zEK>4Hs&eW=W{MEm^bA*p-XgmdYV&M_8WehuWNL6s)ST6`g)j*oK@TRcP7ED8C?>Ua zNac-PuWEz(dNM%dvN>JM7ppN$ehoZ&H(#uB4QG>IVkHupnR2(?OsbVr*Rh&f`+PCq zZ8t(%gbNfb=8Lj$YB1x}(-qIFW{xV}R&&0j?QU)n29ZolAbEM}`GW31a2Vq(q?7`= zX&RkKDMnII7{rkf2!bFW>wL!`eP6<TA{TP4l<=cSaIH-sB&^H7gO(&;^kWQ82}#ap z7v-7`l#Lm%PCpVC5R#aXKpaH@5k;}@D?hJNeVvLE17pghJ~BJWbHqeiD;;W9>myEF zDT1%*E2wa(odc9&fuA3xDXgiwVF)5)q(DxLM{yK^(f|F2WUUfFYVr#tLI_D@t#u%! zP`NlFr9sEUrG82qA+a_WWHf$J146Jc1O+|^=g=mkFp>;HR%Hxh4!W3-K~NS3FJfR} z(C1FtM?x5-S;&cra4;Apf-@;3iefq)kC32^I|#svTsscIL20Up;0Hkfqlv;ufTgKX zfY9w$2xB0m)=^x=pgIc>a%es!IR}Eo3IPKp8PmFk02fqc;7GAAC0P`KT2*9eRmLF| ztk$|5gN%VvoSdUeEJ>6S#mG#HmbF3}qZGav&ME1FvPv^Voi6)m>7gg90$JCNw2nf) z6YIVsJHEfY_{F<;JMKoiI$0%8E?JFQtTwln%Qvi6Z&<Bfzg&I^?m7R3|9<`m{{HzR z`1}9;zuU3YFTHj}%(Gt0%Gz*`c+Yu1<^4nNpLyP{nl)9S%ALd|D#7mRl9<byT5W)9 zdP=*wC(k~Xw<=|(^N!`_Xl0vMv8@=ul#fTVX1>@=iXbV(@MW+mhq<6^-<7H;t4$36 z?1(HdzXku$Q$JeQupMHqoBf7ao?gr@G{X~ohi^1>I}BR;{Y#e~x^!t6rAo#|K|q7I zLP3<oH0(IcZ-_}n#I$B_9e?W>yLeI_wA%_qfq!_(nli~JoJjfT4y?`F;i%UQd^XVq zX0qn_f15BS%EMnKQWM|Y3sBYxq>iF@L2JL=_O-_Q-}bhD++74-aR&sx@B2hVf%Ajl z#XASSJHGGx{sW8)!P$Wi_`{ElLi{i*Yz##3UAxsh)R!uWhGn1iOLr#`EK>hfk#j(? zjpM}R`6RC)U^Lrv^cUCnvy`IbD`&<SvNG@D{kZE1&v{-(J<;7+sHU!V-}`OPUc2_} z@yWgK_<Y<w|Gjs=`<Z8c@At}0@hfx(_j-x8zy`Oy*LZLCzR3G(?`u6T^NiZu?lzK@ zGE>=H2v*z5%58F|ik(<j%PIh4g@eP&+JJqzG?n2AvN)lqhDlasLz5@cJFs^nRZ|z& zQDVH9Q>)n-w#L226=Aih|JG697p0LwK$FR{Y<6s{6~cGs`QzjB-;T<%EW2@nFpLU@ zxZP^E=#nWi3gevUrExqOrD>jzM`_v#ti{Xm43sh%`@W8$<`}waGlTv_m$qyqp(0;t zrTs5EKE|2(y4-hwn6T{nEC{~ib1dk9fZzc$wf9=MLmh-wX^jxRL%8n%-*2_76~a#H zssgHNvY+K}V*@E8Ws*p#{!QlGKQk-Cvh1+Qi!Xw{rG1yCzQg!CJkNvYUc8I<;I23K zylh)7tFqc0>Rj2<rV06PQyhhCDjhs)X3cle*?2ac+`j$HdJP+YImW}X0HUb1cX%*; z_=#8Sw#+ox@i<)LVy9y=Hu;J!aCrF0S-%&@&ia0yX$?QfKQNj#FIf);abk^g$^J$? z;;FH><H>ZnTs}DURxzv4K@_Zz@?Dm1&h+17Ty2-jN&`vK>y1YJ-ogINn*MlHmH48{ znmDSec95lENc#snyff8Ws3dLqo&5_Jw3|n5W>*>5YI*J2^b}f^_33F{6MDVFgQJ1- z?Yf-2@*)rP4t$w+=DpGTGVeFMzeXRg@jOLH)y6HAbbg(=lOs&(S^Yg)vu537BbZ6h zec=&i70w@>N6*|^Z`O;=)C8m>?dDa~EVg#XxT65oY3?Q$A<L_rr_x;~>Kvdo$uH(y zjQ6O<jmmlzNMze;xm#a_0;!%*953c;rOg3f&RyCnJ|Zu~OjQ+=KqZH>Lostw7LqPI zHruNzCyjbiPXGt=^H$0E>6y1>ClX|LW4@-La+RwTpPBh$wh5Wy!nv!rMx(QNr}NZf zTsXzW*=9QHb_fL^MW=nxJaH3*@8w0pq3bxHoPn^81L#f$p(X2&7$f5R3{<o$D*@q# zMS_0@APlv%Srd`5X~yGUcAO-cRg7h6R;3){<T9EAlvtk;V^Y>g3QZKt3=e!?Yknp; zDeLmA#QF%Pz4J>clSC=almP@IDKiOtILoy<JGk#Ss6R-ZNlZAUiQ@1aY}%pVdo{q7 zVoVYUD9vK{BFTwKIfxrDGMOC{gyC$M`0iCBuEPGM`glbGWOW>zDVX01v=ZT0j_@E* zD%mSq?bbj6hlGgQNgPK*T$af&R7$BZJY*WOog^bhDs;d?p|sJO3vfWlEQ(5NIEw({ zTnOMTO6E=w?ht&}@^x!{9738<K13w=2b8CG%l-BWQOu2z_WiOLbyR?)Y7ZGFq+hh% zNXbYD#vXW3N+G1gAiNnNga)BB_Ssi3#svVpo-?fgjBen;>|{%C<vrkio%j1F@i4x~ z^LFdaVtrMI$}I@1(VN4!yo7#a)@kgMV`d37H1ce;^j-SBcH7-LUQg7#kOc$`=X8Lh z!c#{iTIO%ITCSFxpC^w1hI9pWd|$fUoiFB#`SQ**MPB5`b^B(%*er{AXx=Ej&6zZl zBg`8g5Yri&=vzmaRpPMb0Sj$(3JmZR0Dw<G{>1M_UQBqsz=w5Cc)MCQ2u#~tfgyB0 zm218E5+p^g1vlL!#CIu`ge^}GrgYXZBBrq~FVprfU`!k*J;id<Ko2LE@zM#_ZV6of zqex<c&}ZCet%-qK%kX6^ijvF`@nEJD2SQ_s7+D}7EWLwEz?dk;UXcvLSWEhPZYZ3| zD*J6`$k+~JxYKJ$L+D7wNTY#|a(?S}S?uq3I~P{Qa4r}?+j~cKQ3wuLFUc_)9yfwX zvm~ia5~mSOC7DH`l#--AzP3W}SOEXc_odjQ04TyR@H+$x3K_@|=PEB~U;86u%xbOK zR|y+uwTP9~tPz59>L~(1=+|T*Q~LU~z-M%z<a){&plTI`R-C^vHHtC6<u$=M@T?F? zj@>l-z70W)9I0vsINmCbpCis?6a=sPNiXgL=?XF_t28U~wgjl*7y=Oq3H|RuJ<U8) zOa>hxXiLS2=4~h0R8QEj!<gnhji`Vzo97pRADB_bX4&a#o)ATc3#Dz3ke7VT*%Me- zHC?Et+9_Q4_J?!&`B%OY;{1Pq;q$-$`_ISx9Q;FkFYbYl&|b%?*sWB($>@G-tMQ@p zpY2e(+U($VJEW46JO7t2T>JbdKJ^2)Uby?rd-1)9lg|0ij<7Lqcaj)Szx&-E{_y$V zyz`wO`Vdcr-_c*hi};6L#~XTk-hp>&A%=$&iv~O_le?ncT&AMl<TwOQTyD$5WODJ+ z?ObiHb^FrA$pm+gjt=iUn7e~HdiD0j*NKa_-|{=Zb9D5w9~OvzI$~bSdxV*j{n(u0 z(xH+`q}_b16m!iRIXB2j;g58?+irgT)vt!|p_uCskg6SzC%ryVzc(4jZH1L;(RXh7 zziqdl`-Q^v?QAe?wH4pV&Wo#dYdBzRIB2(qA2t{=J2`dk1)ejt0K-;G#szr=ZEt+` z70<$_f}rj1z2aH;&)Sg7@HBlH-sd@QiORU`W8M#VUKT@slwZbjqsY>}S*v<dBx?A? zg+N!PU?u&it5`Q8U#fa{MKP10bHz{^E-);E`MbH<uzE9{$#>f#pAZF0K^e0$^{q-; zAkyYzsxtfkumi>p*sI%n-HKk`UjZd26Qu}om-X-mwtdOBvQ-TksM~9D<{T5FO~Uzj zT5v>FJCDKRL<@cXf0I@#%fJq(Jw6)@f#Kk+lcq@0PSTpfZ}zngI}~y4=L#@k?AI9k zbn2d9p!5Hiv9B^8ct3NFeNhDVRdxQh%C(h|KuG+AY=kgu_oGS&Atl5ovC!PwPM+O? zF=ch|GX(Z*hT-7sbU46|r&+t3CREjKn56h0TKm4yS_i(?<@31bwdfAs6r<Rh_jxb( z-sOGB`)1FBm^DR5D6K*Xl*3k=i8#HOZo^2Xj<2k?nACjY?~Jh8p*!zvW=BxFm0HTA zVA5{=u2qv>f-5wImjE}OzW3h!259#0z4z(Y=k@FZ4;~%?M~4qS@a#|Dx4u!vaecUA z+~K@w+x!({U5aK9x)EcJGq`H_lVe?o*z*h>Kx1sosQ_fWD`Yqx{`r4Cr4X$?aBCc= z+0s&$1|Y9~ITv3gdA_-s=ZX5`(e#Oy;BXai-h5(>q8qlFf%m<Cum-4Uo|}77;`I%K z3cT-oA0PW|sACD`-E{ANgJ;M(*(4{eGg8h<Sl?ekIZKk04Yp2o8#+W)eG7(93xFLs zy0UDVy?8uYJ+r<p02zy5Fs$p7r|Nn*fY*<*Q&}b$!u3U~C1n^5hr?lHL#MOS#?g4O zsK-$Zv@EYi<YImPVSV!Fn87&0_a#ko?R02bmN`_dl}-ozFnw|V8xP=pWQkPdIKL+3 z#LAQIdw@~_2?Awpk+BaVB=TjzCP7c-b8(>oE+6%s>M~i<=hj8<9pg@0*W2y!J7s_S z-f?Yzpi`<3`q$ne4}AOV`0%gjXXp>N4U}GD?9$&S3hzsj(I`nAJN~!WcETX%JP*P_ ziNpU#siIU#CU(CFUrDKYW2L>Zm_>cbsl~BUvPbSAFC_0FpC!+bU$-*pRekFUuyeWO z@`VO%VKtuz*0L-_<{kB9o2Uvi<yf$1CbrkC7d7qsAnF2i40uZGL+z10@$3+jn>&T? ziO~QmshLgF;(Ca)gEw<Zhxu?X{U1E?0uoJXpj2;^4x^5tM<E5JQZ*hQ-77ChBVufQ zrW=}udK~q7p%+Hu7qdpQ)zY-CXXq3hN7rpco3S9A3xK1J9R>r=1ov%Q(>FE|Fz)Z} zZtt`$$1wuC-LcH<k#jc{Mf2Hl7)&OW>kJarRgB_~?(H9}yY9+lu_y|Pwo|UI_4|Fr zI4(zFz1X+(w{S)QD5DgaltKVf*On5&8n{lQ)6SQBea~NMwd1(e>UD=-(Y3&DwML2S zfnj)lMA3KMFzOxt3qsgx`+<%efm(KwG>?K5n#LGXQwWI^gw!lcdV+hdy=*x)rIFAC z0HcD#{iX!YD5KOeW8E;`sR2-?NpLM2&}TX!ga9E|{s=F^m&omefRIxmr$P!T<d1B# zs4NN@k4Vj?vzWRTHfHR~i@ct9JqaGE+M-^FnM<8#Tj0eq3>gAv+|WGVkxVyD^Qx-a zw(K=X!s&c|8-Sn{*Y~Q$q?*=A0@!X(>$0pc2;$iESLpMt7RAH7*G=F{S+i*~G?HH8 zn5JY@24RFrGSV~;G%Ybr6PUP9LxVBhK=53OK+$}3Z51fB?OxX~0Yxw#t!##YhVh=h zRsxSS*`l{(3<1()*~<e7M@SXTjx4Rpq6=Ri7mJp8Jh0n2+vQ9?EI5BSOVcd7YHMpS z0Lap<t>Y)Rw$dR$f3UT6^&MMVfZID4ZaT8d2v6+r;g`SsVPX1f(0-Ps>8oHkthY{I zvsJTMau)_$Tc=NKZKWx!)7{;3x9n_Fs26wNy1gB5qOzr|kH=iGf5~!712VsaolIqh z){3(#E$XC9>bd0!X-d>m+XM7_cVQv*`%t1X-(|UHkuUiCbJ@h5?F)NF5k_#gjH0Bw zoTlwgmr6wH*z0TeUG8m8*6-EAAnc@_L7F6*;E|!5M)F#*yL$^f1A}3`b=4|(pW)Wl zsr*0IAKkLEjnHT|ntZu!JCNtSG=XL+3LX_AidNr-zQ4DsOrt0u8OECCQPdgZT;FcB zFYFxI2cG>ca++L2p0K-0&ViEiT4iw=#gSAX#Qe&IDddWZx`yW!SvjrCDnp6Sv!N(- zOR#KvMY8zrnXP)jQA*qKt*tDDuYCWwu)TxkF{V`8$g;H+Wk}n0k}%Znyhx*{$ag(} zv+Sx4<#E3gn5sB3(!@=JQP%C~aO?Iqinqcu1O$mPqV4zpeb=qw;QN%U-|bOAyEkjL z(Ai*=nMQXDWV4|Z{#@9zbfEzBO$%VzFvlBF#2DcA_N|@fk>f|V@|*g!xq1CT<N`Lg zDoXUEXVh6$tGdeSjIk}R5E@(3dICd3->KT(LH)Iz9dU55ckCv>D9ZEg+jeLz^8Mqh zYUz0AT(r7!^49Hb)E-(R@j+*+uz~_9!K;=xRFdG^1JNjhr|vT@l%uTQL)_lJb<ke_ z?zDKj<Rfj7IJ(P<orI^!cTWq^JwN)RKl-Bv!LNjq!R>kP>gtUvE99I2w8B?xE7hlY zol+n6aJWTPz*L8XPPUn@_iS_=$$z-LZdy8>Of9GXfcC0c8AZtr45FyhY4~v*jhL=G z9oxQkZ63vxwl_9*e*RfENxY>fj=ih8*S6Qzstem&R0gk`>+mQR#opfW%nhdPj%7;W zujOyy^dzb|jFhe;Y<4^F;Rl-l-ij|coeo!;4WL`w7urqv%+xlGw#Z3xBRk_)Xl<#l z4(CJlEG|3XT2f_I2|l|lS*_58<8NK2cHj^D>aDE-<4E_)sj3Q^4N4o$0HP4MV<TiQ zI+?Z$!@wEub`-=1`sX;kwKZ4*%}67H|2DL&jSb7jCvQX{yE#7jwlxd_ZS%x3#zVEh z`iRbubL3WbL7rC0KJN872jV4UBw1ATWExfTs#dX*RaO<TnwI-e$bQZ<ubd;{b+6BI z?z*l+d85%S{Db}76Ca(Ph8MmN<kGkpRqN|V$?LV>p{G$uApi`+@?^Vn&_L5HyZd|5 zxi#Ea-`w#$-_2LU)sP%ZdX2mDD{ZYXR~X`2TSbUf%Zu_T!>an@NT$<Nma;f6e3#Yp zWE3mqPCFgbg8txmKTVCJbRLEQf@Rq@hnWax(`d!K`hD+m97_Qz>G#{Sr6t5T-rfj; z%_ZMw4A!R8b@5U8eXfcx3W)0B)457iJtyWgw%CO@lPTN+BWA&Tns~ZulcJbZksO6i zeP9J~RK3%f&Z{EUiuN=XGOJ3H`jBd>EL4b0Ohk&n4ZCtqxM<v+5gZIX0@;l<YI3UW zlp)nLV45L2R07mx>uzA`fShGiT{6L`rh^Hf&(|F$B~lFxV4O?NkQ9GmaRDed%6KcF zD4#f@1L%OZwR0e;e!ne~H3|CQZb88Sw5<AS4Zr~E*!%aIVBOmDdyIn~on?;Ow+#U8 zIuH<dB!Ct@kcP%kKXsP|QSWx$_y95n*R{{mi{xXl>P7-HSIP8s*R!z5UC8MlNt0gU zFQcerAId6|SuA9}2U%V$cA=WriHecJUOAV}LZ2%sGpVj4=cpUVI2s0WhK7!Up>CiC zsA<euEhQcI?U+!X!zW%Rqk^KQv7p?&J_ach2_O?GA(jA}biBU>Qoq|U%Tp#8>-U)E z%_mIr#%;s6!_on?wi0IybM<=DJblJAZ@StvcMeSRywVV~H6>=)y$HfNR_gj?j#=Hm z61U!}MA20OkhP(TO9{93kDDrs>ntv-qRQ(~57_|rTP#@EfX3S_Sp3W~nDrB1dE$u` z^=kY^uz%bJuoqzcgoR))Ui^@SOP{#ylb`&~zcr7NYsdu*brm>sL{MboSwOH*x1hv; zmZ%1<oD!Nj0<F|PawL$IztlRynIRVlQtK@<0IBs%UDNhf!`?^e+S+`+wnm>1xd6?1 zFmxOJKHX>r&0e1hX+ORX<Ru4q5e~>vawEBuyo5YW2*@H+(PIE0eoVz_mP(K6Hp`Q* zQ<LR_DSC;ezkgCks?7IbUMN}G;-Cncw4m#HN19VD)S~3}diiNYQcwAZx2dx?op?`O zkIiVU8OJPT{UwOwV-})PondnTFo0y-2}22<+bb0GfbVri&pCWb*^XnY#Bm%a`86m* zO~ds#JbdtC5@#!M6h*6zBoRXy$5BY{y_Y9R5>vn@pN!g|>&+M-WtpZIL5Qszzt8t{ zqX~}NU_7vGz>Z;9&T+?hYVq^02FGbO9S5G@mzx_1QZrfrTq}YQqIfijBQVTnz`0>| z<F2k7dWUdgUwIb33YUmY9wIL%A0c1x5hh&=K(!3JZj=*df?OLy=9yRu#0707(L>_! zY^ljKt_5LiktblA3<5Rh^`y>R3OL^D7#C7Ss>mbuu#>4mrriWw)#(6OQRs4OBl=y- z_Cx|blX1=sLm>DskV!Jq4cl=Bp#y-L61K^hEnP}sVCX<?C)Qihx?!N=hG9^o+@c$e z^<&5OS}Jh>5Ii(3;X-zWxM+hi5d?=WqaV_wo(b+zo;to@h>ZK7X~={o&N1<*k$AuD zCJ_8CXqutxjC=S&D@lCD2ECpo05#2bw7>%Z3_}4hid_f6i6_(P>aZIIwgASBX6MMY zL(}r55TQUy&hfg%z$zxY^LIlGhJj#?HH5hLO8Y@B%{JqqU~S)K98qu^3>~H5;yz8h zbZO9U8aY><g&&D+VDfQ-rmdPyrGh9E;D~*SoVBtYWQ#nDBTir6R3$Sw%&8Y*_D`z< zkkl78jAHl^@Lbn};nvpH*6{UK0%uCi_g3;a0#HeR&}s?T+t`dKuJ-#v0$jTZuIGBN z@u4>jn?R`(_XnY6Mg4y4A_cG~owj8<oH6d0R=YFN^_{Kll~vcJRBB_+b$ukI4ZuVa zH<pWnKK-JmrW;0gf4^%Oy4HMAzfm`vZUXHnYD3~So3$Dc!U(zYES`c(q(@GYbL37! z#(6Q#X|d<|7d+4)JU$UOhv!kbI=NZoCb}MCW#$=WN>ww&hhdRtQk}VIkyUsKiv0Mo zo6a3Oo)>^8jz9X~Xt?x(6U(Y`xK58Az31-T9mJE2YPx~3p^ykMPLc$FWh+hLFCDY* zc|p*zENE*&utxjO>a|st7Jh8dT3xHp%q#oo9@npZQ9BzgJ6rh}2ZK}B4k$3nK=3G9 zSq%fu;G2Gbu$0#TjKvA#2xp`aG$9xxT1Uyl<V7fiTyVo_(_+sFW@Q|k)~qbes#)zv zd{$nhMU@x}^P<%UV$l&c8zA>hMN<hJ73wEJR+XT|OqNFgQn<!W+q^=!uH&{X9XK;7 z<%VIn7NgBzMKGo#Z8a>t;kjU%eiB)(@-->7FpvTa&W#Gv3HUJtJrun8lr0Tw1dyW} z%KKFc;QAY|;W7rA28_8+x|A7J$Oo3GJjdqa*a7(#L$?QpVc^8vj0C}f3%wm9v<zgf z<E+CefHcMZDeE#4_&E}hP4bkb!L;cBr&YqJc4!&w)==Bv(NElG`SUD-8gCv!AG?#8 zHE&|uRXT^TgeNlG>~ox~BvSpdnANzx14AzeEYG%?Ox%tc$9lkii&N%#<I(<t@$q<l zy#)~14p7REwixPtK=HLa@Z@`stVqUqPY0e*aGXX!Sp`yieQkGl`#}mu=z5d_e7fzq z=(=HOQ_M6?)2)Z1u4`Keoqr}<N)-T#AZEg8w;K)4g`kv+0IVPwX@<dG)p3B&R{&At zg27{J;Y4bjt;_@(jaJ;SZ7|mxfo<FSOG~=m-Fi`{<2WXxrV)mL)ZPeT(2OV(f&)0V zt?QH!LO3aBe$iLtM)Cmpfwm-RB;ZIao_&7#qFrToEo7m7{2gRzQOo>yP|a&qEPe;& zOvyUAiE$(gmsnl7mF#-$?y>K)syAigXWia(ws*&oT}pS4-0}R8@RP#1X3vZ3k!p6h zZ95igx728nct@{s#MyI*=dT~@FPLp+IkwF^tz=Zk-rhB~y#74ExwC%$uHvw<c(U00 z_|5<F^#O-BE@b;1M|SDwnrfy^M_hk?v8Imt@q)jT?eMp+<1h2vS>arB)Jqmw(rPo? z{)zo1QS-`WD7a~kOyUxiHH*YPxX_2HFnjpDNh%rd!zSD}%CeiIvW%9OZ_Gxcn^#ui zvW%g#wzm3;U*6gI<=<Oh-&|W;y<>g-_kMY2=a&gF$$s|IKSEBDC&^RfRpj;LZREY= zqh9a3cP#0@M4?n<6X=dG$W+Yq;0BqHYPzT^6$@F&R1Py%Ke;^Fx~TF<tbbvZDM^O1 z9u}hgLQY5zJ3@ktOB^}R&Qi#DQ5Q{~-Z293dXBw%Rd+VV!P@rL_F6F7v^{G#+11#& zb4=S!c5S!s4*aTFZvQ8Oj&u*v)|2y3PIO!K(nCG@=@kSYRlRhg+voo}J-&Fh_Xm4t z7mw2m#s;PRb)`RC4lJ83+S8e9#%WKrS2JB{v=rrdu`&ng^z`EK@x`;f^n1QR{A@2h zzW9ad!eK#mDo3jS#3srxeQ)hO?0v-hZtrh<cfJ4Zd0C-KMli%QPGb9@)T`EPYCu<B z^GuPA;jT_Eb~Pg)T>V;8Qn@^5{(o^L<e3I|>;a~PU6+^wT)i5_BbVJQSjv;yvFgFA z6cbT-M?MJSDTbMd1*<ht^F>bk17?d$h+S4j?4U~s3Xkn#9+)5@f$E8k=h**pQX#{_ z{y-Lj0G2^X=XatY^rIvRDq%W?MXndvJ+K=Ldp78~h?$NNRgff+9|qA#fO`F!vHiot zPMFzV@35{~#`k^Sw5s~B*RxsJIXv8FtnT*+BJmyI{3P)m;QS>2j(o<1PB5(#g}*Bf zRTzx&LPkjv$s!+xfePbZkqw}=))-`YAK%waE?s)ET_su#{VZfm>!fNwdFfKp{bnY6 zR<wgO37wyp66_$GO(wJKfI*hI@4_Sv+QRlEGsu$hU_juapiUY4KH&Q?W3lf8z8{wz zDg*}&2IC~d3vhmt_zrOX^RoUHb3$V!)SvyGR=9^;%Bd)Z^ki*3EDGYOBbbf?RL5|b z8GG>$a2KCI>%_Dm`LkNWUdkG7EpadJv}8SB<lM;EW_SH*pEa|qC^iVf*HTTTDz%e^ z+;o^$b`zNho}MbQdI#kd;1^?0idWST#I|wq`1%t<7*XzAmeGu{s;o+?IrsfA#6XC$ zDhdKb7@~FkdOl<}6K1p?e~0<?>#YfZvM4Jdh7^Xr&v}iitSZK4lx5BpEQ|=Jh@woY zqC7cygumqEq$rg{8pRJ?+iXVTqo!%KaAUQs>oo0-$NfQ;T{$}H_rd^ax)fnVb7OX= zXAj)IaFH{Bv5OaP-=3fDjG6B((-cA2>mMCm$+E#<H0~iy>w3AmfmVCg9F0et%{3&+ z2?*v3yNq@J7!fB)?0LfLzjzlvguD0zeg*#?=hX7NYPN|&0D80pRtZ}f<u%^w#&)-D zwuUQ>T9|ph<Q=bG?%Ge7Db{^h<W<SbgUQ?C0iaQciF9{!^LHCRjG(C7p1}t`=FU#> z=6W%^uBail+fk5ADW~(yh3JKv>&<NA>z{a7>ERJRF5GPZnm}d0I3x5b7L-Na%}!_l zuxDYG7&55=9IeXhSlMppmxX#f_FtS2wd8+tp+|gCPcB|s%)V#qoGesQ6=}3K#i~3c zBB^FCdpc(0S7iYj0f|L<l~=i0N7&BeqpTDN76>v)oJYClWF)gbsfI%o5)@}cD!EDV z1up4RRk@QY(p6xX%%6)akw_i6{~o7T3`F1*0V%wl`O<$U^~4HpdrmVCWj+@M8~OJP zftW!l2ubyj$hr8jGB^M&xiB^~EU{OonQ=$J`b{wIh!Uy))Qo57fDyQEfwo8=!w5=o zrX42T7-=rK3;AH65)2Ytkl>s#ffH&bF)pko#yF#;6rUF{a7NOXXh#SIn#s-cOVo+@ zNdRH{#w8cRNSpSFfGffTyO#6?0~e$eeN}_0{W<`X2?qx{YIhL9LI5f3St1~U)wl7W zS!|JG0q}Idxk|-NS0(W}n2giH*{i>G97Y`^X%GFQJQo5*-f2fSn9{03j+mc<K*-1! zoRO8PbeeP&3#|h5gs!0pxxs{BuGWTSI+Bc-(oAxm`iv>bbe!AXDM*MwNq2>K(q@KB zW~|dZEF#9Egmd3A=7KB*e-KKM+U*}RmH`@`?MOlp5m&}&Cam<O5KMAV3<PGSWE#VW zu~@i}F)wjIt{4S@RAhl9lb{(BM4SbTg=z!|r8XYcv}VMU`dn<|Op*|sU>GBL+J<_9 z$F_HaF(%=8&*G98g_qfZ#FeW!XIwLtDy4jfcaU;ck_reHu$)5(FI;P3i83yPOQZ>z z<lIRWHiB`+d6qFI_z4B2FZ@D6YeZ#R&y?egb4ErLLn~%N3c;D+LMb9CttDtFmDZg5 zeFngqdO`jsJ?QpK3ABf+_2%!fPIo`c2IX)#9#t)YI!lQ{F7!wIW&90(%KIL0Jcpm8 z|HU3--^c!v?>sMCt`^JmR3ZRRDeI*kVJ8b`h(q!shuR7v#`)Zrb%2=68$fw-mMyPe z0Rgq%1icS*?%w)GIr;IweALTyPOJZVmC8?dJpIb{NN=&Q-b$(;pd~=4Pg=r1^~j5X zvv9~T^kjr`f;wHN9(|QZDPW5{<a_n{h<TA0-?uv3P_V-*BW8CyuA{6L%e5-y75QS7 zdg6n`+iGt)kLksB7THX?uzTcM!1or@sIp)Z{l8gVtPh-TChWXg;E`X@`S0o~M~NDn zFXpRq7s3eFBFqc}DV1tjUA|j|6h%eUp|UgS6+(Ek*l`?~0EkO8Jq7iSgo~hdL;_Yu zSngB1<$@_<Zl-X)D60TU*oK5%i^IAeduA)~kb2&Ho59umBDRaX$ot3_c`>iI<jiK> zOlsaG^#t-seZAP)^i9lH+tqqAtLqc!OR(#OB1v|&+|3uu&3d=Jj-?waDAVa3MrXU4 z8z!NetDXbJXEr$Pyn5HIAMIkI1e+lXspj>1GryX{;hNfRw2PgM;x3<=<qFmn{N2=w zbsSHmjyZQ*O6!=G)goWzi%%|}?~hj2`<Sj{QsF+l5KS1^3AiI=G_&Tfgp@)GG@pGK z!S~a2e>hY%tuTp?c_2vot)tG+8bEMsfxKE}vvP%`W1a$pkTM9O2#m$?x+U1z`<M_G z1V0@dIltBB{1U6V>#c0)Aat(C;s{b`olfH@WcrwGrU;VO&}2w5PKk)+1u0r)a!wFp zf80t1(=rQ~5ovcEfjJZ8o#xE<87Ff7oAVYCV@cpx0*E;iaK;lY!tXW@No2H97R@|e zy>>8R6XQO~Y)siW4xYqXIE!sb7sc6SJ;s#P%GU?VW{gW6<pALgD5MadI1Ey0PFWC% zlQnpt-4t9414uQE{=yhQNGSqeD`J0W&#IrYQd>U=q+nk-;7VOPV?Y>>CZq?(WD>_= z7;IlIYm8z{NU4nRos^-IVzv<&3*tDaa1o{oZN#L|{F)5cV1}92;=^plq)<ZJAZakE zhHo0mRSC9KKwwieGzm=1a-N1ku2uO|gGlKySqRkhwXsetV<_)1dH3fwe|}#`<CF$C z*P4hkEfgbIYaVg7@Ezx&R!QWOP-uMa#XsSQ5u_g^B+poQqrii%r3aOetc$SxH-vC< zs|19f`f4Z3q)vy!21I0SmI*GUA1J+_uc2hOv#iU2^Ad-87)VS=4UqMZZw8?;8D)$( zQ50$%LTGwpBF@_tW1x09YfE9vfBo7-B&@RF+@o%;lPf_Ggw{DrBt$*Tk}6(BC~M)L z8P`rL$+2A?m1c327mO42yH(yV2L2Ib7on1BrVU+aeWi*t_RGVwxR9K~yq+bNA(Mb{ zIxIU0l1r&wu*ob@XIT-lRr!9A7*&9nuu+r|7%SUKC5dy^#LnOD0HPi;CS-BYg75cn z#u>L-^1?GfDc@=BOzZ$$R?loxLU8VUtL;UM$=z;uVF9>5Y5+|MxZuTlU^}0b;<e`5 z+$i-idMTtR5djU%@&l!Or}gdoZn9KJ^<BINAkqUH=y(tL9YV&rJbOiCWx#wV2SP(d z)+)9beF&t4h*N8Jo`6x9aIqMOnBx12W)m?&5Y9SA@=?H8ux7E~nT!j@tTo12jS@Ft z@Cj()WScV(ojbbrGv}pcJO+dGp_+Q8K8Phr5M}_;NmVTAJAcqK+F2hzFwPW6ZH?{$ zOzv7za~@^dKuE0gA&fQ*8CY##KI8zT>J5nyhEkMy=F4rT`6(gLTGa&t66*L$NExNj zil0SySnK<!U*p%v!%utf_P)f6T-sk&S};&<lLqJ>i6}%j@m-*3k*aPllh-`eXNA@Q zW!!;S%mq-kTv1WJ(A6{ws-=3NJ~})(KHQt$I#rU;>kkG(#_?uSFe;P0Dv}7R*#$+C z4TpJJ=29M>HAh+{QIT;;G)W^)SzaxNLxRs4Cq@`*T@Hn4A3Sp9)~yRyMkQmN_Te9B ztqJgbe4rbKh?Fo(V(=MpfMjwqnD%1Fxo<-u2!IvNGVLcqjH;YV8Ae4*Frb<a$7SGT zaCEfcT<O8EER5E=KHV)Bm$H0)@?hQLd@{XuycllIPRCCWV;V|(9`n2xKkNG{=fqoi z_j+DdHI=N?PVLmL+*RJO?Y0>N?C4WX)o9W?bh5hzlrpDX_dD+0fBAkP?!SEh`~2rR zo#*`b4cj0Hg5Wv-eV<*<_V#AWXJOs#bkah4OPy|wkAG18x(8$TU%vnK|KGWs?d|<O zpzd}&FYvq<e+7SopVqgG-|Ic;J@38I5AdHT-{SqC_et;9yx;CqYs)ruQCH&hje4_E z>MOQcWvE`C!7nwt)=RclR)%P{ELVfCZgu7+X?ZnKxM%aL+EFu?Y}I<V1ZLAIlbZF? zx<_iaHtTdrT(nNTF7CVj(RWSXJAdk_Z+!5j-7n5R_7mUmm`_zjei_AU6KD!UsNlN; zg}*j3?=E~+m2gG$&DYnfScnf>t*`(8G3V7!t>3f%J-_^o?zCwJzw*81Zu`J<SFSK~ z{H_~Mz4ROApet9NyU$Up#e*VB@Y61v_&w}-KcN#F+`P5f42QsQxY^vgndph}J$Uxy z=`VfetUhV|(l50hZ(X>rXi3q^O`19<gOIZ*kY6eMkh9Pi_F0=(LR7g)elk8od*ga& zhc7}H3|Fh`H&&~`0H0WW=9iXFu7=-%BpEz;bN>M6FQY40o*VTq{L*KxXRC{kKX>H{ z{o|s=Wvg&m;(4Cuyxxm<@u#@!eZu?O-cNg<@_xztP4C}$f9(B*_cz}E@jOxOs$#p_ z?kd0xkTs@C)u;wyhrg>#=<KSt&AN$p7!@5QFoz~WyQ|o9(3R6N1mRDx!D>V*Zt&DM zv&)sN>;nhIu0r?`sz%K;2+U4@Rn>h5Zg$nKx{hYM%Zps?a(Lu+zKP>5*p*e?O>b!B zHATO1r`pY$yvVDDivDQ6QR`iDq!Ha6JQKJQWJf!ED}~P+{LZ2<Tt|M9CTft1uFQ1a z)os-Q0j9$&N~CEk$x=8!8(0?##{E&R&oA-MRq1iuW5sw>@LqhJsJF69qSqh!ob$-K zLFOD~S=>%jl(4*GShmTh+NP74RQ7l>&`DAR(K-ySe*a}FA$%d6^B;?yW<Bza@7fUB zc6$V*i6S5iq)hsM8T*>|5NPMxLc3m%2uY%dvOuV$-->)SkY(BSt<;^py=i>{XGeN6 zQxi2-MNibB)Nz)@Vo(v;JWUy*sEEQ)_VQfVz3EvpsjoG!yrTF_EZ!f-as2*;m~nOG zmCd!fj?bohR^)k4hGA4h5m=h$mZ%ztILl%!!&>wTHC7Wfo9K~sIH{+5dmSyU-!4lz zP<~VtuXaihX}3%w#(f_$55wT0d=HAH-BZTXL^Du_e%vWRH14}{o`}pyCeCr!+xMRI zzRdeEPFdVV8*;UpU4xaZ7A?lKuZl@CYceT4%HxDmNfiPaFWc@`tq~0@TA9a$JP5ih zk+a5Bs})+Ym9o1ncM#gEn;Mrp9?^_~UES=S!71*O?fMal<Dy`c1kqj;b$g5xjW{pL zBChvNK)^$%r`6|@aCs3rqbtVJBteO)wa<--q7uE{q}4h+ynsbUl;&y1&^kG}pTOAh zq)v*W;A}`FC{5Fh*wET{C1IGM)jkl$L{Uz??xfW|I=aYQUW87Y3iN2@2ig>QWaz@t zQLBYXuSa<l8N(0T?JP-B+;%P_O7k>h<>}eO0FLWPQdE@`V<N$N-6)!Th0BZ3H>Tn| ziK7Z=RR_YDC@j$HO`@>VsrQb+&;M`h`1l@x=%lXWqAWNc5pmY*h0#>0j3~|1jGgBq z|HaSZ@7-Gq!}h!*Z{uC}Ugv$n`zh}?aWCHLdDCrtr|nf)srf~)KcpqDTf3~xoa<bI za;DsDn<^J*iK@H~SuAom*fll37{0goy4sOf%l@52S(UqWv#g^*G#l`7xI(*=P~joV zq9b>uLfirPmUOGOLhdHuWr@D-1jRk|pnGN*mT*p_RoVGcRTH(CG~4DiK%7=>DCOpJ z3VIQwq1aHvB+at{P=VlJQ!9W|LpDkYP&qAV7_!zGw!7sbUr3b`h+>v@aD&x+1+pKu z*b16&@GuvQkuie!R)NAelu*)GWg-&Ba>QHnV8bZMVkrgWzhi=N$+feIg&PP`&Ilr{ zIY{6btVKIxzV?09G=AX~kAcDPB#=T1bdQe@4%4g^N$@;tk8a+&adSY73n|V&lSUCy zmKLStT9;WBa3M$sK{Pu#=?Y_jJa63`{QoG54oh8{_SzjmoC}B|OsqSo>xdwQ2pJLA zN)Zc!NJt@NoI+?N6(hhfPRJAoYwBLlAePejgW+%(gGPIMEiMJdSqjj%cl%%j6NCW- z15o7H?Cn|nQ$V={lo+WQgqD^wA_gwFM3ct45{Y13NXA6Y5^3JYNC;(vKxw5R88cE@ zDT46ZG7~@%Q!MZ!UFAOuRa6x5cr;Kt6;cS9SFO|2lhevil1`G`Q<g<}lly)cNI6Fk zWWylTYFH%+-YHThILrI}ay=YLvW5abUqA5%XrB|5%KQL~!hRVV!F}H!3Q?40T+NHP z4uYJ#;}|G}Ag+*NMjFF|DDvABmuVhehI2$Qk+TJ%l*)i}ZK}Y@UmQjd8jyCXG;hp8 z)}dE`9#%qlBk!{3?EpJmy^Yk>+cQ(mrcuSSmz&*Yx7k%iRaC{l8jr{K6;Wrtq0<>p z{`25mzS8Mjx%~g#8jo*Heq?M;Wv}zs=K0O>_~x_Br!PNq`H?Jp<nl9@pVl*Pg)iR4 zJGsyarrr*_F9SaXuFFuWS(B0N!&H-~D=Z=wm-*k@MC}ey=PRg<#`EsbWBq2oeL~CS zBM&cEM9bB~7pGIA>GUF!X75`@H{DO&6?A?$j`#lL{O>%nSQ0H4k376s()mBdbhZoX z49^44BhDuE|8xHwxEpDAio~GvgLF^33ZhO*qGoE>6tcfB42#tU6B-Wd(I`%OX@-v? z%O|IkEW^q1J@*_R6At#TmWQ8w^4y|A+}gh7cfVW&zMo{HScfp^@b#sl+e)%@`NY~9 z;@aAY{na(Ow7;Kg+uP?aZ11q&C3dcYUxok2(S7R}AzX9`u@VkbLjpoiF5EShNMTXh z02eH&63yXl)r$f?c>LTx@#wzyD$1eLea_wygjQ>5X>Fb%J_qtF&6j+iQGnrKW3o;$ z=5ku&$-7S}E0(TXq{BG&f(FGu2N<}Hj$S|74+GCv$QHY@)XDE4fp?NFDWhYxq`p9j zO;)BH&7EFF!qkO2m;5HBCmNw7xAtLC@EG**W?0SZDM?r5X?55wrmCmc#~+|%sS83) zf6{RR|5I)hxvu+hH;UYsb-TT#qW`IX3;a)cVdMtB>-Lt4-uF1p;eUMU6Z^RBw_oeA zz<1qGIZoe?yY9>SMbYneKlSJv53=hA-R}4J{;i)Hb%p9T!R|{ux!TV)d9+JTkaK#? z<pn}q`u6i{MP0F|-`4X&U9$Z&duJV07D+sfWL7<gtsJp4<`$A-g4?ICdQtyI5d54E z=>1#}eBDFzo@-i`6?PlCrs<7$_5;CnO_4-6hM=cbf}nfC^9FyJT9#>LnQ2*OmS|E+ zm1t6G2|S}|PngjkMdp*5_T-CV?s~Wff$#hHP{v))aq!_Zy%`-Bhk(A1d5EoM>jV%r zTNpsLR5WHz1sIpsA%Fy4Ln?AN=b&!RL8{u*Rb7i0ey334lp(B=P-;!~RE~7yrQ552 zfyiZn@O?d%=x)2^d+nB|C90P<8-P^TLnjV8?dV9WxfiwDp=zcp1{;l{b<7xL`VtgI zIx>!Frr~$x8m!B~K(51@?2dvadH}*}0>8UrS%{Xk()9y~lc8x^&DK2MU9)X~ssga> zwPQ=AYG}GPRtdcLD;dJ@B`+BQW<MM|wx&Vnop0*{^xyW*4nV3Kj1$5LAt&%693c@o zMeZRVBLt#&nqXLzSd<Q_XHzZ4LyBColaMZ&$&W!fD?!Sptg}w5s0)_K!fINnLl5t2 z>4gBLMY{CgV=`4TsizMPQ03=sS0;4<Zv)0+7Z}qu-FR`<(U)?glX2GzkArFIh7^+P zf^*O$a3%~cq%d{UgyW&-u@{3Q1f>Qd=z84X;pfj|aLac5%abc4V_b6A&^0#*;QV<E zLRV;-Cp6BO6t1RgZW!QsI09f;rY=z#CZ~|S>B-6D$u~v1hTmme)0@e-5r#BLXb`F* zY3dqh-$h-EI2x1!G9fI=KFXM`Cm+#oc{P~QvJ=ffq|(q5+ma@{`c(j?FwBN-N{VP` ziD_vjz^e$!o#01&PBncg45!ApZYq(@Pk-TjuTvEBc~LlM*~}XBS62E1i`f>!tqTwT zde+N~S=-EJXf5TPDYj%&W|RADMPJU>$@NO|1`>Hsm(Ql&_z2`;at8p!FVK`0REttd z!4~rxq_3jfy0U+Hx~S4ZB`*+J?3>KSCHji6oRzadjYvgtj_L}5KbO5;kq?KKH5?R0 zuO|djibC{yMKKs!)^M1=lZzr!{#ow%-~-%<LJD2yoObgb`ab8rhc3X40NnRDf=hjm z!+{Y;i3(ZpTb4?q*f2+<_4U!nd@t+puh8=t#;vB?<{x4>ld-L5G&VPGqsTlDN6JUt zIF5V^z&*kFRe9kDnr{AK36!Dq1RrXR@WL+Ko~aA|d==~pni>i87Q^KI??eE8O7J&o zrKXiy|9M=T;IR1dw;*Hu%`nrnLs!Ztd+*}ZM#ftIi5KBbBqBqyWbcx={wu=;w;j6+ znpHBZ6<W237E$84|Nhg^b{spzQDobW9bP%Qcl7Ady`y_?y=(929=s_BE#B|CwL4YV z2yGh<fA{5Q&%XS3&z}8V`ov?85yIQ<w2k1okP%rXgl9!8GrulXRhK^abrqI%24P(l zu`DUX)@@Jw;L8|3eeV+&9$0$vRkz-Mc;f1B-!i}c@E7Md-f-sXC0Lxl@h{$a_0<QT zxN9H&s`r%_?jO$J2M){X-w%JYfS*59yAQqS&nozzho|8u4}Ssne(YgLs#g&~2-(Do zaFYe^_-*77@@jIKi3kvheo88nMOKw@ku9onUgbr$s84o0X%bnYj##v#pAt8L$I(>t zdLb*2l#9At6nQZ<Ugp*MHb$k)(3_qW(Fm@m6=9wI;7##{!kG)_jjC*|T$IpVf-)8; zZXk6KmWw^m5BiU7(;raU%Jh}@cRJiU^U^t%pxwqbuq+9vMIcN=2gEMGT&L`~Jn(Es z1IscOh(emCbOr7K0*6m}jssxmns8hQKdk8*fNmH%hG1LT-<a)AyRD=2_S!(HMhzY4 z>dK-XQQMBBo`-Md%zpxvZA%S(+g^XA1c0?aZnggS=Y!z;zyF@)As7ZkF{K_A%{9gx zid35Ijs}Ja*UlJa5`2Gj3>?P<Y1^6=M_?L&Q5XPnCiF0%&Mv1Ez;+y)Iv51nRqzln z0NWNo5g20(TuuS#gJ|e@RRRE@TN2mKfN3DH33@HZ$W2yYl`l`#4gqx@^aH4j?@ncL zsm2DZl`bHEBK>|B1VX_p4}Y^4MgURRgLyZKAX{JGY~=Z5o+QBI_-K8#E#+75dfxNO zC!f5{FoL`ojUWnphd*XJt3|IDo?4o@9>OJv!rtL;_QD7tjCx^1C8<(?%|^4|Y#=HX z1mO3>vJCs!ZfCY*+yAo{MsWCNz8@eas?|gEeU}hIT*9tghX01k<dx(n$gjX{@H2Q8 zZ^Vc21^9OS1bzX35C4(Igp8GWEEX}j50hUGYL1Bodr#GjY%Y!I)Z$5;%21Gp7G}B3 zU}-x&g|$9R0&Q!mI#Noe)FlOr2RJC0v#nM=n-(>PmN;6DS<T`^)wAhBMlzS_)E#Vx zm<koCEWgVh`YcqDl+#2dnW?JIypZ)`A7q`yK%{IM&V4Fn<w!PJFKXeU(uZuTTtDiK z+0M*at%~KUT&b0k0FxS<a<%M1g1i}nstzkvDHQq;gaT2;JB#^ZsiZH2O33O-Op0}* zn(Yp=!_Imk7bBSp$v!0LgIP1Fr`e_~HwCjshTtpFA3|ixE%|lSyP<eDwkoS#v$eg? z#XMwJR|0<h=S8EcrmCB&QB{mZ8I^1%n_07Ks?2_iX*(_wOBriyck4yDDXX%HC%dV3 zs><jl&t0&Y6rZV`+U_>W-Gi=U)2ympQ|(l-T2^_%B5{ees!{kvr>b(-#T?tsn%QF4 zN{QX9k1BT?HQUV>JKqFCczdWOX9%p@U(Cv#?NwRr>SEbk4SeObYEf2!R_)emjX^O} zF+74J2F?*XbkB~_tk&d=)|)V;%|+UJ!|P~fk!DVBce3&<HK?BLw$-XpQsLhhao8eN z5VPRIxGeNRWe|i?j%)2RY6<655pc0N@u^HD7D6j3#&<5_<3R#wL9xps&R8Eh3|S6x z_Vm{CueyGnoP-Sn#w3YXaH%+083wrYfQAeh3o;@4G1Anz2$6)&AX367_&VPQl$8R( zBf8|jgER%g@+=IciZvmUTI)c7DW`<l3}B<CNQcg6Dr_K%To=NfBta&&#&T;56Efi_ z2m%dK73nrnPClh!dc7cKPkO!FT3<=&GvR_rA!P^<kV7%>eMTqQfFa271uo%S2Y&nV z@o}e3NHQT}2<PwL=p#_QB(|MyH_L%`uQ%e_2+p*z+IO%uURJ>pfw2N${9TNJCCPYD zR#GEWoJyNPK?Fg2e0B<{aNIemYoE%%m{^Quz7!?M#ZgZ>1N66z0wGGnco>>i-}f0w zO|0A9B<Y#CDOkp%oergyj0Xo{n#3)1!+;<eQ$fVTza|wA;rmKCf?|wE1a6s<N~{t_ z7$!Ll(fWbbNaj0rLX1m6Oxdp=-#&#tNfq2{xRf$x0g(%!q%{VNk#q#*O995H1PB>% zttID>hS^Ffl>i;Kq>P9`qQ@bmVFE&=$;c=qA^FPKf38Nz*Y70Y#%RP=*`G$`Sp*o) z963v*xZtD`!K3am65r?UE%FIJ@D&3O`!fTcn6zY?Tt*ZFQIz8f1QZ8{XIJRrrB?~g z!U##C<cG?D7`T)`$<0XnvDC_%*nzRgQY<-FMjmXC2`sn1aU!r_fs<6)s@x5TJLU_E zX%I?M1j1flDQf`@KTv{l%Jmyynm%GqaOTq~OX?`^4#Kci!pBplNQbE<N{PUTAk5&g z4Z}c5@--kHr?ilcq<|{BVm3Yhsfcr=2MI_RleM%`Q5*#}NvcwWj!^*;A|Cdwi^HPm zc9kYjz?pF_VU?0naw%g-jR=6!Dv9Iv?^@`x>=ecTn#G)l-5%?MwC`l00)SXm$*MYz z%f@#S!1n^cEwm|XU$*{!4+0CNW?<a1G|zqX3_(P(MP8Iq3oP!oM%^w6L2;G`j1#M( z1i<L2z{yDZoWKL-gAr3k<8wr-6^G8>GvZ9dBCj-~!xWrr-Odq9FlHI!N-2gVlUxY4 zQdC5aAY9T)G(cP`4d#5`5EPUoJ-}>+)R%^s?+2j~(#v9!C@>c+5k>L-Js$$bB1vGh z<fc@i)FA13v4<D$;?ub6t-TlVCVVIUlJ2MPq+g@|&8F;??CtC$?3>vSvLCk2<u1gv zdG>b|jO^Z-Q=F7Qyss9ZqWwx{S=Mc$D+Z5PxMVVh$hoWXD&~uI{+G3K=0Rcga5Z0* za@Y0QZtYwHV!T$(hBI%+Q2xQCosYAZSFx_jUHsl(Op#y4tXVE5JN!D0s;oBG?AD}N zH){hMC?hyoDC9LA-L6r+-Bru(E5B5+g8_;ZE8_(Az!n@S#M)(}YNj_1NcdiCv)!$$ zQli>j1~q85B>h3Ns<AHe%6Ukv*;b2kHLqDkt|q&+^B{4-81B})CFP!}Iks2zq}i^@ z=~kMF*$2>!!SY>WvtG>S8SYkFl^!0h-exgh$W@HR&!Ngf?n*Vyi$z|~>d9)pqG<pj znAEZ_PcOj~m3M7gBGVo(ck|V9vo_C%?~VY8!{w?}GhCx6S7oy;)NIF36~3gE&BlyZ zh1|^-%M^<T+iLzMMcG@kDlcSuhr?}^s|D68in-AF+IObri>6e0kuRiQO=*|3>rMYG z_4t(XElA*KQ>B_LX4(dgB43pP=I}-n&KLE}Cji0^uc=wR#EGWdEtZQ??R3GS+(^-L zY<x*QZ;U%?UE~F83=QUsrBx0+2^t;hCnUgwM@(zC-fb1nyN$AH@_UTKG+n+Od65^p zyjtvU&Gl}*`D%&HteGzwS!fPSuNx&l2nCAqRgF}COrz1^(P%`Ro5^^8f6x=`V6~i1 ziI^Gmr-zfVG_QHh&=8kO5v6HlL38Nl5b8kd1oZR7Sm3O4u*3-lf-@2{sL};6kDXj9 zIkpag1m>17Vk{EEf_z7ypW8nG6oFYA#J&&KYPUP8a=ELj-4@S0W9`#E!n7zQGuqGM zMAfNwbhMrqgs5GaK%ZlBVTqJ1xE}~6m5~9h3!cW}ir_G9AQ;pGTJu0#f5dj*H@{M* z(#~EsSehmY1wk+1JlTVpR1{??$lCJp?5vM?8nY<%72}dI7OInlQfBN@oLdT^wN}0X zNd|Bwk%^(T-;ILna6=eZj0w@<BF08}M~V?CBRI-Q#PB&NmWqKTU~f_~l~NuSQqEk} z4I-hwTnA@{L0C2yD_bR9_`1$!;2=`Dlw4Rxpja`3nKd@jE(~~22ypJ_rZ6O$G5;~3 zne-T>wHSeebL$InWe+&SP1utQgej41w??zkNR!dc>=j>7Tkk(u*x}hvQ>z+}2M6{! zMieQ|$S0}r7T>`eJ0K1Whw(L(Qjf#E%y^~zmy$8uMV7YOX$In7@}(Ry%c?4gSgYSJ z3Ifq&a(dP@J|mGNc`MIYeqrZp=jem+=WI0Wq#&RbRzcWTm_R>pf&nDC&oa$#Xq$z; zKMx&)H>C<P-GV-hah7rhxHA3FQc2+c+W?6)sk&u>KZmi#x`8diXlrP-l=9oas2a|u zPDD{Q>GcSB=;057NQ(<g*rb{LLBG#Hqyp>HJh5&XTEiIcbh|yHwofNV11aI0KqQRM zxC*V<w{AO;hyhF(9S(bzFSybDEKY#jk>undhaj?cm?x=t8U#6#==I0~l+>JoM?A`1 z-Mf2A0?|{X3k^Wbh%>=_B3Q;@NE}QEf^?sRv`vRRG4AH32$IsUL>emD=V~j-IN=OJ z%A43fA>*z^^DcG^ElwfrATYydRRb}B7B7-uQ?2Q3;KJ)#g&^m-$W!5xHVfQ@p|$|t z;=5>C2ENf9(JXx1h*%Iu$B)G&^@$cisWD)hNbBDDU&rdR&C)VW1xTf-<P1WTj0xea z6m-gfFvzl`C4Yel-}fB{n6x^LcpNhYQY?<SN)j!6<@@@VAvH|mcoRWNDuKm?<TBR! zeoT7gd9R>5n0ja4Mept2w|bxO{<ilk=wgH|p1~XNE_?{zi0{Ww;$P!0a84`l&L_cL zbmA_^PYE{L=F(7^@1$eGYPMPXBeT0%^JRav+*Px>RI=GN`SnBB#5C}EPXkt!uv9@+ z%8WeJ@+xby5R+Ipi*#PEEn`qYy>4e@%jI)_-K1~LPerpEFr(pGo8Z-S)@F7|NF}Ua zn3eBon>9{oHx_G~q&!`>vvO@GB5Q&z)Qhyb<N7$T=Ix|hTb{1Pdd0=k`8o?~PO}w; z_F0tK5GGZYT4AYJ%Ih?%n4)ah6)&ach;Xib2W(o}G{2@%yIw78Sn1)Ssn_@NMx&aP zX)3oLZhdHYH7Q%WYRgqq)ul~E)0Ta+KwTjeP$Lg5vC@jVYCm8PfHOpxK5Wa{SvwJ1 zF0pRc&8(W)a%oh}Yd%~CF&Y`GCgl)Pc?L|$R;w<#Mzd<GhG%^2*ftaMblq~Xwi7Y0 z=S}{(3C?#a6SYCf08S)#3&48Rl^8piV?kAkIsqgQO68K!<+ux)V~~{umueyLV1e5~ zE8*bHpx`)^Q3DlXnV1k<Qb+$A8X%)c?5I%u>o}4!nhZTJ2zve=cqTsn?|N?*2$x|3 zn1!CIMMwz|YT|t`7mN~2G1E-3nAa8)lwcw$h%$x|HLHkWOa&OA08<7`AWoqmK&uO0 z1RyBUR}TS>|2WMI+rwyeD3y}F>T4}rAjI3kIG4g97!y}I06C$LT5r1a?h)dC@6>P4 zj4^svX=BV3BEbcxv3U?ruJ3O1B;|X%Vq5fDIYKBsy==oOEHI%UjYkNHIHy>r0E}_j z(HOv=3lRr&C`2V_l<-V^2F3~J6qGtifQeoqhKJ&jn@XN@0l-=3m#7CAV+Vtjt_~8E z_B3so2&9y%fg2N&GT?-9g&70RCHPsKO+82)Wu0&gaM3askbVMG3>b&7eQ<fl{k$-e zL-i6sUX=h~OqLn%@|uq$&dC?BR6Y3)q%(e=5FVD22wifVy0Mi2(^gaUsE86w#Enu= z<3vR6s6`;XaZU*rRH*tu-Ny)OVG{%Z0+0Y3@ytC%1t&gZPTwCn0F-NBLa-jzL;yf# z0fV3#CjhCR%BwQHj60o92S00E1<&y4w6XEPxgcgUaUph`Zvb9hcd}hciR%I;m_&p^ z+tCyUOpGBI_MB}KdcwIP<=hEk{jl>oiwmwO@_-UpYdlav&lwxTnK1<2e;9F%#^?Z@ z^VO!(<~aK_EUW2w(uD!2eF)swFA1Yg7q4LKmQYJc$WJ1*ysBphkm;uAU7Uwurj#4K z<Ijr?)=b6l#H%g;A5f}$FfWvXM^~fK>P(CwKKq37JZCl<^vAP*qEArj+$q_&866*g zUP_<7df<szo8$lY10TK`0^h&u6|=!?fTQ=vc<{CiaQyt!Pd}f#G2rd&M^S^`jGjU7 zM(F-fX)IRtJj5=kDwl;3T&I%Fo*GD$mU$!%J(V_zRAj2vGUP;4Q@PhAdlqp)9D>FB z%_TrDzWCycUk7n~VmKNWNs?dy&%-2lTxNnm6GF8SQRKRgw3&2%yxZ?*zVBy*aHb7s zf#7u5XN+^#CD@Tt065ZBQLMF6j;oR+N!;6RAwYm`p?~_PfBL6?f-imX#TQ?E5t8`C zkkG_WQ;fm)2<b?NxEM6SR2vaS%5`LxN#|6TQqS={O9<mea~5z$vksx0yDk8cjuapr z<wlX#N;!^7(l~M9(Oc*i0t7S1eO`6n5qtyQj||#Fr_e{x7ox93zXb^Hh7Z8^z^}tC zEb#)r3_pXP$3H+WlZVNx$p^@%kk2Py!|9z`&vOKu9|7++vVs$qsJ7k=7d)*rmfUq? zhm-sSZp(7B*{qnu+86toCcVZXAfiT^iIic3FtbVP!iRQeOa-`>q7sOm$cnRi91UC9 za+!kFy4CqM!gCbt(!h>sqDgEzFK43nrJhd2?PH;ZgL}KI05JGvwI>F3W4jkX&Q8X> zPTTnra8U;^qJ1kxHfxGBJv9VpbVBIb4o+LWZWnDskEXwFS0A+hVaypNGNjljUz(+h zx?GDovCX=fw@p&>G!-aOo!Bg$s&0aKmtZNmcS9)LR0$r22SQLIKrgg@o0il-@2NXm z^|RYL5xh>3rf6&Mz_zQnTA|_|*sPYca_3tLouXLxP_wb6l}!l+uWTgF?W=aVTBb92 z5dG3+IV<aS-JXW;*_x+`NaD>ps$Ex;`Vf?fyK`VG+P0hsi9T)fdfqn4p`6vOZ7S?! zRnIE!h;3bwO25IZo|Sc5XSNn?HP@&Iai@s+IjrV&i*g5>1VN$r^O`kL1<KBEg;$mg zv0k;7i?$j@)oqh@5i8Z=G}4&Wt!<F2iMCp9kQk)vG<@szC)k2Qq=U8<Nwk3snrS;7 z5pPYOMP1o-ZMm>!kpX7OR?`GQ)Mlb${mQkuls+QOY-96nI_pDX0<cn9G}&SRsVZih zHoh+HqNy{vn<N+M?_+`mjT0br4BUU8P2}(O4z}vL1_t%~U~9M61;FrCSU7AF7taZY z#bXyQZEtf-=0_*SuzmXUJ*OuV01J>4U<?#<UCe<~3dSovKr4N8M{aGMJ$vbmj&zs` zl#~<*R@hZKFAs&BGO%>BXy=JH1UNTiY>ArmD@;L|_Sp`SOa;bj(LkxS02r4bLkuT% zS6@oicZ>yvWmfjIXpcerf=gonEp;$5VQtW7uqDt)0MVmiq53OukIoFOIHVMUkyP4n zVO_ukvLF~aA`Z)X<1!$pLMwvSo`bUuNNXoyje^9sU3W&5gc2IQlmSep)w0NiO!*<_ z;UQh^Morrib;iN0(jem;(-0sdxG(~W+W;wv6O$1!+b5y$ACM6Cp*jhSlhUlL3LE*q zT%0M1E+Zis50sJ+Oc7r@7Gi;w61o<7ez1RYe>CpB?722qSyq;rz&Hu6l9f`C4_|A? z0L2J0*akEKxF`?BUe7<M#!4|RxG0QGIY};M+fTCn4i^FVtNkz;^Z}NL%T=N{XPPsK zE~T+aGbu*H(R6$HN*8qgCU67GK1O~ZOV>Xh4Yh9}`-79`?!9L=1IClvx8L#G%zB!j z<%Rz8Dsj$8D?zH-4+>^)gpf`!#&r~`M~GxNC`uuMa7HpZN)pDitm8}2PdUYT=R12i z6ZYHKc(OM&fWKHix80ip?be`|0m(42E?|Q=j!F5xO(Lja8=6Z)WTn`h9Ctc6{{u-R zlUQ*kVXXVA^tSAGg?<k+GGu_(0I<7jg&qSo3)(m!15y#!BTHHV7n#K?Ee$%*u0^sG z97sT-NQ?#>BC-pJ%XshMlo{p&EX<G?F|Mq@P#XxLb}6(+qB4NJ5p;LP!8jc=aKs2@ zj68;O$6{g>NXd<2Tq`47WP>!Dc%g}`&q#sj%nt+2c?Bx=j3i=dLnRWBk|0=>2#IE# z!GZ*9Rf4}u#37eKNH>Lwg|Jit@{Ss09GwY<NeRz}wquBE&P5e<jR|!<Q!z^7<T1mE zBMe?Z1INzSsV!IlkZK>YMyKR!5I<&MOoJp-R>fJ&xuBqc$OmcPaiz)HWH4yAnRSUN zvX~gd<0z;r#L-lXIM10R!5I?*WM@th#Jxo1-0GR&=v8`J45TDtGFB>3B!t#&KfP>+ zL5nln7l&pqATlbXBVQ8WwBU5LPZ}t0Ud@cbc>EA!?}P?34G~L|*%w1d0$CCgG#;;( zJIff0k2mXPMnC4r53~>hQnZg^J)B`Y3XA@HE1)M3RWIJ9gS^v@Kk&Tiu2v3J##Xy* z#qgWYj4u51zZ(71ZyCM!pN#*i`PNtCwdZdJUO4|JzkdFM_!iIeIv#uRE?vc^J>z9D zU*30b^WN)y#QR$B2fR;v|J3_k@2|c8289T1yd7VIAEAtnXhYZOd3vMgT}RdI>PFQ= z>|SkDsd`f7Mc&A(SXbN3jpbN2>&;9pW~wN6i*mQ#Y&}Q0%eXN4+)SJ+1Jhk&yW7m} zixx;iUc8E(K{oXUnbvwom=sE0#&WZJ|6se})IcdKT3(!aeO#MGZ#|$~E%)JSdv&4I zY=U~Tg4!4D>Pa86nG(yUt;(=AZG@FzcU8axQY2=pmQzG^XYa5olL9(HlMATSFf1V^ zVOq&bQRYh6Bm*fpt`a-b%1lvZvlcVbQtM6T47ep$DiDiy(t!NY^0VSq6=hXl)_0{s z+q{;ItRwQ(r3^R6?%7TeWmf`W*K<4BsWOTK%nIvOm%BiEHBQZHwSMeQ=~_dHf9X4d z`b@L_-$Lr$>8n2T+liETB@+pbnh{I@;7{`c;)&34?n2H>#!Ai)6%fN=1pU;x1UX0{ zBpw4(+<`Mr7ljcxDlQ(^jCD9yobmsW#YAyNRQ@pFm53rlk+sg*Q-j^blHU{2fy7$p zULKZ0vTPJtIBOk#O-t|$N=fqfk~EZ})7jhG7h=ED4FXD~3=fZXXY*0z91B2pI~s#J z?S9|&mPK99<=7cOB2|>#+RlGJ9TWiWol?E>{QF7kq<3_*I6KQrA-dJkAqj4=cyA2L zv$L!cqF3!zC69#QMk>h}GjeZFwHbpo?F$!z76{I?_V%Ra#kd$H-z(%>gbE2p`d3<p z6PLDq;bJ9)=F+sU_)>=_Jy@j4GKv{7B;!f(E>Pf6nk1BLz|z>hQ<9v$T1ELvovw)V zSZk=i;#_g1xO#3cn$nR~dwz)KKpRlR?N^MENpptgFl6isd$nofN8pzkt18B43Wf9; zvxjk#5~T=D`u%im+jl%`LZFKQ7Z~HS0D#YWo1VAnEj57N&;U9k%JJ}7fNmG?u&;y~ z582CeJ*x)l&c*!R@nJzvZf^RX?^le?lp+|r<H>1<UYbk*T*W&Z8#BL?5Bo{tD*XPw zQF?Fe*Q;Dy8c#sEJTEt9<#IXw5EBxH!}Empa>fP|sxVKpqDYP}zWYMS7@X<%=yOrb z0YjEJ)ZGP4Aeu57ZUT^KN@bb>h9oKH^(cyf0%R$Z(}*yR;~Aq9<+uz-GfA@y69!34 zMG_~TM~cAbPs2h3=mo&i^Oo?i5L>4Y=RgHxf)3Z^d;mBH0Qiy3mqdsleCs7RjzKa< zgi?fBo7r*Il37(kYYy!+A7FuZ{2}yDe*f15gI54-QO5M2zU`U2E_LDYE|divpSufa z5T<)CykN72n9L&&9U!D3*07mvYG;mulUE1K$od{1ABg2de4eM?Pbqc2)uBDlU%YAw zxYyh84RgN5p_GE{l#`7z?+_{_{|)W`uM`~QnM;=r|Loz*m+!dqe6K5okoe%>&O7hA zt6nfE5dvgy-Gsk}o9Js1ny%Y=-PY^2nyr?tU`guqDyLd7_5<5-J*)Q}*$%v>5Jx%t zwd*9!-g%S7MW*=VZgRnEZ5~233DbGqG(SwP)=doVToh!qbptm@p659ZB>~1L1(I3U zC75$SPh^SAB5(#5;QNj%sLL2bmgBfC<;wAWuzA+vOkxj3SPT=_wOK6M84Pn3;XKdt z)?fOKj@eG03%|c!4@#u5fakfj<RHL&TkLftvuP%U7BCv5BX0{RBj7NjF?hc3V@9YH z!(qQqz>&=HSR8Y^J!%{?&tcL5((ez4LQ=x8?|VLgG0Xv+NJIKw5HME?oTWA+Kqz&! z(t$^e<cV&P7Z~Sxw<|mhoH3@Ab}1zg2aNt>IdM(!zGQb$4^7b?TA>r@j7QxuUqug~ zYv>IKffXxZS7qCzwp}%qsLGYFtL7{;tIAesDQuIr)7Cbtsx8N*6=~CcE~BZMN-$BC zDgL6z7u$*|ZK}3RZMmvMTH2~zm7+=;m<%t!<I0}9tJL0MU)?x7yrJ%Wa`^hg8%o_c zJpS16wcz^bJ~(}Kc+I~){EjQ5y-#}T@)%AJulv`ASD(BxJbiiZ=H;h;drzs|_RZIW zYvcRiHNz`U4zE1v-f-O;hcBtU!**Atd&Acs?kTm~-Z!<=HN5U$8~($Smq*`udHDS3 zdT?#@+?CPk%TJ!ZviJB6rEavZzZP5{-Fuv7{yf}*??xNw9)#MEM|$R%D|fZ?)x2&^ zVd+N;Sf9j#CGR!o^}KG~RpKk7W3E5iID@>ivweRUdvd`{*zXUYx%-~2?UYjZzj20w zex7e{-xnsHY^aX<{lPQ${678-<6Pi+8HS#>DIIR$X-`Pc^VY`f?p2(_p>fU&1<Nq> z%%*gidD@fGGyd8$yStm5+c}D%&%`&--{W!`G(uCfjV_?O(EaFT=z7+%V{b#KZQ9K> zuPxijs$RCH`h)cj_$uq$meaNr4J*^;EOg`6yymu{tRcH9MYHgsY0Grn_#K-s=JiQf zm7)dagwhi-z6j~&LTz>u+VUSxW+$_Mc!0h9n>k>hl*wl6k=*m>?QnYY%;uTnx4-r} zeKXLO@w<DBGA?-bj`S^p{n9<`D%^H5I|;6X|LC>XSVphhV_tSY`zl*xCpJI5Ix)tS zGakLhKKq%2LBzRcZDKHItOccnSgi!-UBdhaZ3*YD*3e@|oDZ-unDYVW5$9J2gVpL3 z7LtoW9yZS*zx5LQC43orE6PfwSF1JCt|q&t)exNOnl`fwgR6QC{JOqq5`(q;l$1a# z>15~P=aeleo=>-KR{b9i!^CqOz-gMKSSvsBeIVoUc)+EQ67XO+PCYTAMqcE3&n1H5 z3Wh~tU@alRn0P$sBh*TIt_wI#(lmc$BPCIUUk$d?jf?@$_dN_jV2dopSXmNG<ej{O zU00>UzEB9m&bZsdfWxSm^!peX6Uvc5I(a9@j0)wt7_ziT{Xny=@82U5&0dj1oX)^4 z9t_bbZQ+^MqQ}uQ^*>#ytGKDH4puhIYIv<#H5Nbob&Hyb>yarCd~T}gx~Vf;+OBBu ztfxAW&ZSy4D=Su|6=k9X|0NAyT%F0XcOHH&cxmSO-0kFfZrW2%)is8q7!HDM69n)u z4T3z=@Ee&uw>~~E!jK<)LBu%cVZb?O;n%(PwTFjCNBf71#o=?sY=3{VC}w;6Tg6wN z>U4tnr2s&ixUXCxvQDw}eOIJA4MHv^KI4%M1As{9`Kd60xCTG)eE{DNe2BkxIO**U zHaojVNBi!eSq=uvW}pkCdoc&AD|y!rgjfjtdUf-d!1I?FFxJ9Ej$4M^xT~q#Rauuq zaAs}IdbO-d<GCW5sGKp~o>h%tFj(AxPx_l#kxjlFvUE@+3B{lFSe3-afbo)Uccat6 z(6Qy%S~`y7F*vUAl!7p%aPt;@%J#hMo6ioT7$6J^i`@nBqPsawj5a1tjfN@M&PHiF z09iU(<1oOCQ5NGYJdPA0#Sw*wGsKaN2R&ne(!2(JHtYt{kqPURSX*g(3A7vIS?dJx zW>L@UX2nbku}&x?6f>!qAAvn%IjE;kLmBGDh9_ZF7WN>pvbi$#pxfR0s;zDp@YWWF zZg&gM3h4E=HhY8T;;k+G6&HH!ug|(LilZ(b)ZWA0D1HMlLbfaJ_TqTtBYGDuyy0~j z?nbC^+3PJ6Y3z4ik;@_u9%k9=EngSK-EI`$IM<D%DDFPfuS<>2D<zHq;;45P&O;RS zx>5YG9~(#AUKGK{qP(}(6EyP5eN(QZ$5A|MxN{2_ElO|o`XeHU95Q8uhg~^VwAs8t zEU^2Lri<Tu65adCmtI_U@l@fq*{PGKPi?x=(dBBjT8*_MT{g--zl=(pjUMp*7d-C; z;rqYi`@bWGY;NHD&-(tee>POgRU_rPvgbIi)0M8PUi1EfvEu8=y>77|V^sO%%dt_d z+XYz`axBBT)h-{(mY0J4woL0jY$vsyg|cnLT2gOpyl5@2;B${ZBT`zc2;TI(fWHJ+ zQ7r{fYv~vFg`kvU%(V_fS?tMTJa&{k0u>|YiV_NAoTOeda_(@lelLtP)!;c_*Huxt z0biz7G?V9xr$ff1&;@k=68s=bW5KQK3fX^rG$VK_Tz4FHH+J(q*QEjH-Fr7Sr;KOm zPT)qIQ3HLk)@}4}LcUqN&DimP=a2OV*IqSsP51;<{E&&E(+_{MI(^59_nkVa^)!jK z@%(=8@QG>@jKnw$=UV^s<;#~Z|I+I89Vg#=>ZIq5ndtS~CpIh4IiKp7d)~FnmoHx~ z55|zeH{j{}rKX0aGh-8}3Xci`fatjuDhuwktgZk;4HdEUy1Tb$PQ0etx$D)mG~`D( z6Bk~Y-~zuj>5qhTgHGNK<H#tb179oGi{eq+=>)D6qhY21v>8m}*z-G`*|aE39L1Yk zQ5>5hpUpa*Kwv&82L?lM{3|dDe2Bs>6j20$KYDMBA<yUgTU!Kse(1Tb>zc^-FxlGL zpXWK?+_g4I8R>O5syG1%qiH!901O7@GztNdxC+88t@@_di(^QWw1}c8D$*ncgph~O zt()+<a1(td`ZDw#kiiU|gU^Mpgztu*f!~F{hg(=9H1#|J98OFyZ?sxh>#A>DSF0U7 z_lmU){#Z?`LJ{p~$hdm)hn{qJ6EZ2XJPR9!<jr3%*!ovnO6^iBw60f>sRMSd!v2FN zy5`l^^93oj>4XfGfZL>h(<bE*8D3jkVdp*MB5P+oC9?KeBWvc(YrWveCde9&Uylhz zAdd*XSO~zWtFx`vu4nv3qco}K@hph~C7$u!%Cb~>XsoNuqRH;FuI5!{=gqtw4%4>A zmW>E9So0Y)CY8-fvtTvJiWzi7)a8v`4I=Rm-~?Pn&T3&7I+STWt3bl?F>_%n1>DKn z0!mSzw=K8WMsK2L8lIuXi$T+fGU{TNI+9VQxeyevr<9TyYYN!sAUr8B5z^xT+#|pg z#=45x9tJ7|*NighObH04wguG?8;@Go=@Ev3C$W<ahhvxwhN&AT955q2$LVCm+9VOB z?d-%h^F4y&IJ3S-NOZd(c}xOO?%r2xqXVNn1mMKgf+(M3!zd?M0ObUzpn|=wn8E_2 zYn!}Sp$W#!aX7)u%QBhWePXvGg+GbI0Fx&7d<gvPy$oY)WLPDg#FfB_lCl%rG5{qu ziolcsApz#TCPKTI0fd||FdTSPz$kD~F#vl~*xeI%r^052p;{c%X`Uq3V(8e7C*qL- zDb;nA#IbU882W}1w}>(E{47f%LcAc$;>T=w%omZwVFXc_orECF^Dqp9ya+;gAW2i# z<;)BGfRLJ^tdausDE@6Ri6R#?Q<yO!l$M@wxBw2ov1FQ&h6$V}z%j;kjd=;sskrGa z#x5}j;2^joJgJosjA55+aHD7<yvd{tG^OJ(gh=-R`Z|Iz98;=;ax(FS2ztY!D4xDr zNg@o)j21l0GHYNg0F&@C(Pm^ptX<qv8W9CX*~|k4;B6+82#zrZDX^e@h#>_^?Oo^O zHlIeNv6=Ta<$4|LILcKjC@L!R2LcOM{+0`4<DmnfR)J;I;<$l1_hAAsXOd6|g(_2c znKflJ%`InLm}BUWBnd(}jUx7g!El)1qR4an2Ekb;jY1)$h=L?>-f3)>Wn5@&PhV~7 zTeT6c;N)=}$7p!J^?mSz3{nn~V<%@+sw@j5={Qc7#rIe-iXa^hgZcr$A3xwl{1_wn zIJCtR9EiO;U|F|Ms`@D;IpE+HD%NfmCI;O|uyS0URBRQ~og=}^x<wZQB|Z_dlZ}SH z62dcDX{$3cFqZzHSzdTK0f26A``l_h8UfuHk1;+xeBgomuZ_ky%{ITnarywhcfq)h zRyw(h@P&|LvNGDs^CX2qz!>!W0NloCh3jZN+u7Oa_c0z0%c3YEgd}oqy#)WsS&}bN zK00*H{N)=36pN-6)5=z?Dq}J}088Sst%lG{MJw2N2yrjI&ac8-ZhS}_|Cze}$M1&T z{ina^*_W;n2l%z)_p%RvEcB26Xy>u#VUU0PM?d3z<|lqrcKko!zv9AI9{&&U51Qz$ zuYUM5z0Y~@XQ77>M(M4a@QrX2bx?)SbXHZ}#J{22{C>!I-AYOqIji6s@zIHwz3k`& zhS}^KnAaJ6b~c0Kf5zkScudH6JRakJf7yv6uq0!+ZMn=IGXUnXbhW%~FYx_fZ_oFA ze-BYa&<MW|UWYypeGU39^dksClGY@E2yZ#wgkBT5ke1gL+Z6LjR6N90pr;C_u3Q!E zci3ho<>)onSh*12Y_(V|OFjeY^E$DC>COpf!JgGB=fbX`TcAN&ZkwJ<thN_2TwMzL zZKv9tSL^l?gu_8f31Lk47I&mvh)xp4ItB2IC#9=&h*tw%T7goyxpcf>G>YR+epCzw z!9M4FI`Mr;Xq{qeywnTpZsF|@G<ZBY@q)D5<rs@|qhUnAmC{N2{Z5C#DNrgXqzscZ zgDMbGNY8f&bf{8V!z)2bLR^KZBX_~+76)z;XK`3DdX#iJz5?mziBbe>hY$cDL^_lK zP17VIWL%BMf_CyI=;Q=~Ad#ZijWMABpf$mq6Cgl21FSR!N~0~n0RSz1pD7_JgS!LQ zC0QDWu3O|rdj<>_9nuG3=~C>xDO@qZE;@sVAKsvsie07Gq9SKiCY7>Z0W@h!h6?mL zZH-e_%nBY(VZr6>#bUoOmB||6VS}7dfZpiq*k;zcRAnXZPBz|paYs_|TPCe_KhW$4 zfw$eMs?N6eXIg6^C{fyI!3oijMiCX=?uOl~W@4X}T+FIHyV31(piz`;u>D{_^{Z!l z?nY}x371;yA9R@9&r7^C@fZEg{@z}Hv%mNRPKegp-2Yw0Xl=xu!gVu(aj+R>b`GoZ zqvke?w*rhw=DMO>@u|5nz4a2j7rqn)Xo{BT0=ln-618TEd)~&nU6ob3eS`usP!g?$ z=S+~SF_ktetSm@&vID7d^}L2yWF~AZP)fA6ZWlN#$M`ri2F8#i9qW$Y2#fk*z!*PN z*KqQVJI<e<!(&_9FMq}M*41m*9{kl&+Q~7bN!~FdNs9avf^-~mFF3A>34~$L&kN!z z9Rmb`-|2So^VB}^_=f9HCO-9}{_x^#ItBn3&!!jua44lx`5&GcPc}9t<1-(;J@DNp zfAbFE`|Ugk2$Ao2lrgq9QZB&D6W8T348aTn#~Ecxaq0Wu^#ex^>+RWHG{RGO9U7n` zbnV^<nW<-@oL4+|ilkXMh^%vw+-VkiZSu&k8jWi~+eEAUhtyfx-{sAjiODax7{~An zF=I&=wDuHe75K&zce6}UK;Cjk=3p`2S~mT`Ptv>YddqBkIiJ0*S#JFQg~dDTd7%__ zIWvp4woaWol`7&sUwiv64O|z9q8g6KSVfF8#<J8e%V<&Ly*i`>{-YDmJ00_No||i< z0GJyDnl6t!vK`y;1AucjU3Wc-ZlGVuD<M6W;Q+-KW*;BZ*AdL?q+yov|MP@T`A>O{ zbAEYwV9Qm6el~ecD2tYLo<X=Wd9e_7NBwykfV@a+vlhrowpTI{Bcj>L#5ianUv8}i z4%4nHc&-SOE!X5Zj|t`6Z<7X}RJo-f6eyt_AR(NMKuX53Bk11>gm6A$1<r9@+`|~C z>m>y0k5U;I8o+t%oN&Lomv%y9T)~v)o<lK6V9XVSV4{uZ7^5jyoDsr3r7U9tOqK~N zi`;XWh{D7O>7?+uFuu|32|+66L?weTB{?uEL|B1&qcC=gA_rrF023Zy0OAM4px$c; zA=t!`zu{2|gpC4iBm)+C1RRIFa>@DHzm&nQE}G(Tny_FRrkPI&!5*VPV8ECmn8rqH zsgrorvl$PCb{zT8EJ}pX4xyN5$C=_~y6&Pg_q>5SYszA!6C1c(Zb?;jRFBlk=g+u8 zP$HW9Ravwev78|YAK9~9+)Fbdi*C1&a{An8Fz7Bgvv#tbB#yf~pH^9>neWF@(DCsU z=qx)*o>=<hapJme_u%Ys6h(F%$KEo}r3m}IMbPh6yZyeq==DQJDZO;CvFm%Dzq@g8 zj|qa|`Mq6hq2J%yJzQbh>s8)pG@Fg)lF`KTe7{3Td;4v5o_F+zpFMTbGZ>O&^ij)I z7_DYg3`%eAIWET2*^0QXBY@jK#&~wjSE4tdk3r9%pFqEY{s{dw>djZeR_PujU8XC9 zYYN>1G_UDqeEM;nd3?Q1+ARDNHdh6+N_db61^2-+GEr?{BDNHBv~AL)0Cjz5?mA0V zx0>Jdyy0#CKE?ryBaj{tZV97Ia1m<;8hgr!L}q7Yd!KFUA;^lvh1+V`!jHv{B#!4z z3YQR2x-&fzL73!0B61Z4%7v2?pLFbbrW827FQs%%HTM|rbSA@`Qb&YgHkrJ#-v_PD z?$t5fWyJTJFYrBAjRN2Nb`U5vAhi4WQjUBd!mz(zc?w5WS$0O9K914=W8!;5fH)Ci z(A+UsCh&a>#xsW}lLX-8_KwBf&As0F0an^L#<(v2c)(c#7#PzI?~TS~mT{c@5l~7^ zl0?gKM4Y0iLhg6FNeA4)I%PP^HnF3Jo)@-zJ*xY?-o!*8dTHcioYqAZ_I_aPR%Z`; zM)-Nr{piDuVx%0G9=a-t0><n&NfE_K5PVM<gChwDj%WLRp!fQH6Yic}0qGgAeL#2a zy$H_H-d;DxEDyq-bU^7&q9_5JsUYw+c8_{6gsh5V0AoB4lPCr-+Gwo4;>eFcLlEvE zgb+pI)=T&Zz6=SpLKo2k2u){InKtXQFstfWyRK%{m<yg}f(tIp;+KV~N1g$K)vOY^ zWWkYYFz{k*%QVu&BwU5<W@iE4%kp0$@H@xfoBO^7`8ijW5g3E-=WzG%E%@CxykQ*2 zTF1HXXIbSgmP>&3e~#fU*wCG#$T~Nw(u3T|ilQ@TJvRS0=MVft5OfpICqM!}A4btr z_d+$hmqw!S)=TiM_k+}|DOw;j#f2gaJ48ds#45g0679fHLF(1iMhx;W@qt_Trk@hx zr#L^5;zL4wNXUcN9K%0;;yH(8-S&D)Ur(te<hCD<w3L42pAE<x2zdjcPhZFQIwAkh zL=>e6!Qa9Sl-(C?ZrfuqOQg+e9Nu<gxJz_0piY}*H7n~?FE#>!<ufxYXl?*Ek8ea; z!w%f|?9Yx=@rH<wA3hgH-TlD;cJTK0xtlvqhQ{!~dX3?R(b2hc$G^3sO$6JKHpe&5 z^`hwEZ5Ryq&hBi(XP;lKh9lU)>-7WWG#BoDlva-3kDj|%54@82{zy#fcAlJpLz6V_ z3{KZl{Z;MjLp5c1oa;WE_EOyE0u2fgbx#iA!o%_l6pZymh>I5-6i7yRw{$4Prsp^e zp2Bdi8w3Ln6NM?l*`i$KB*uX23;;~0!-%V5r<|1FxDtR9Y%_nNb=Zyrlso3eu=AM4 zwj<dED;}I~(XrT16LmkK%J&!r7DW<H1%v>8Gcd>PoA~$_`qly{EquKd?ikLEN!&P+ z;JSUU(-DNSp)n&$^L~#4aH{n*$b@n!=W))P22W0}*OLhxT1zQ7(*ELo`x5|Wly~sB z#{D}r_Y`^zeHQu#d%#{Q+R&Rkhqq9Xc~HN&t#Ked>1QPhK?%l<tD4(ES0EFR24)%= z(xU0ZU)!RkvsvI22`of%n{o;g5PjIDNkedyZCAz%@8aE&%`o_0lzAR_UX~gUd@sv9 zA3T%3kw5Z$z&4BO?d_&LJPbb}8VzF=hDtRj;qP3$c=4WX-x=vhDhyRT97W8SbP{c8 zt-Re`PiZ{~Lh2KXS9TPH!|m;@FdSN?HKA@8OkPcrRQ8477!uN#X^P>CbzbN+^%;iu z(iCPd;d$IoQ(fe`ykF3>{eC1ku_ulW4`Y`QN}TxU@WfF@xQP0F*Kwe~2Fo&EKOQB3 z%kseJJ>_B?#T^D9I&p-ttM;@xC`&xYNn#)ez&Hn!Bsi`T{Sud$qYE@b`{)(u)6w^% zpF;l(6+8hSgfD>?;2+>W5o$|fn`YT|Ue>eT@OrzbBd!R<y!P7?&g-njN)4z!YWs7W zOTxmLLlAdC2!f<;SS%O>)w<!-jnz>xY08_tO(#en!kG_=6-vG4p(_|dCbFa#CIi6V zv|vk#=JonCgy^uUYNh7wstvM;-Fx(g)wyWbt7=(JQf<FrSvLd=2Gz2XDF>-mxV-?( zg0xq&TDZ#-G>b*)ycS8DY0xfrI!OTIux-_@%Xy6sDJmzaNU|`7$7oXXYKcd{<A+AF zUAN6*W#>mcNT4&4a8`xe*Xz|2vC;sLa~W<XsL)oklBaI7x;afua&H*<^$gf4xoSZQ zB)pdO8Ct(ud==RB0Y=HbX)_c5T@WG^{)mDbvapH!Uo3!sBl&bLT5t;gg6sJOzuY*; zc6PUS;?re`$s%yoXn1gHHlB})!k_Q%_WJPu|HU&=Br!Nr2`B<ko|n_F;{iC>aUB3m z<8%}lN3n*hrH!Nl0n#;^5TGPH02jc8L*f(8IfUDQB!L!wCeexzm;$hkH0_b-lz{2r zYydDK2F@7<C)c%ofdGjwfCeB!H9w+KaADC<OKp81QikCq3yxu$0hnNHV9l7H5kj7} zQ@T%upvzSQ=GvbK4=_M{3?UHehHUD`PA|o=St<prfl*^I2G@0#{%w>V3U>q{1#y3l zQ3k#Tg!sNWf-}Z^LZE{g2TDR9o!d7zbvFu=x$lQz?MyeCX1ujobqj#`1cIQ5wb|HM zj2ym1zy(m}%CmrD>^o8KW^e!r3`4kM(*{b6mNE55-;r8~xnaVjgcRUjfCa;VL3o02 zk%0w%%<$aA#JCVE2p!BEg*gXi6HABlY+}ygcYQ*#)>2{%A<0}9BzSHlmQS<=be}p3 zlT`4;@jwzGfcPQ=DS`N*2q6?C;SiuFBqzqB>{@I|OH76;X|^fOfODT}YZ)(=if}=E z&SS=5@pn>}GfYbA9){5S`GcYfKizihvxZ9MT~vLw#&=*G$XJyviz}7&iU?J3S7m?e zX=tY#MV__YPwco#Df^)$d1F(tv9|k79p$>(eoK-(wC$Xa0HSyJ{zoQc4L`glp9j`X z%8B(1#Bmw}2_yWUp>Y(Fcl8?_y(_{|mPL@+$(K!RrjwP5*KPm5AW}DDWgS%?09<-W z9nT~TaPkqgNolT!;bi4@9ifHUYIcTpT8SN@7G(lKwFZ}MgOb$#ml({OeKtaIaP}~U zds=fC8ObR#2I9B^5K47zoVXPMDP>5Rl7tdpgsv++3R0NNI?9+1Vb+eiQV{6}6k`BL zQ<o-$CY1Uc{k|qR&TJTwB!+;iNmX3<(WgToX|%>|WH{QvguAqD>j6ZbHk9-2>1>=! z3DDO<fHqPPj5&Dy-oZu5xi6UsJ+D)Av~e8YR}ts2z!)1s(;y_YlV#fazE5D8S?bw2 zFhbtUp_=7BE%{&YWoQpQh+dude#t(R3RcKWideX`aiyo6Y@jOcv@P_^wyY7CW?_)5 z+OFwX*;!7i=2cb9c*Uk3m=wohdVJLXa0kOPj_-F<-@~%k)7ba3!t=z@jw3{n1pMM@ zc>2`EdrzJ6Z;XmU$5~d-Pn}<_Jp!QAcGV`fV`Lmh5!cqHUr+2^f$=XE<n1KOD9tkR zUQn8nC@i``NSShhWa-|xlk@*Lf7p(?X$oMx6f)1lNm4{B&v+0;y{vQB&Njfo{^cL= zx<z?r*$jsO)9L9j-stzC4nj&TSjzmLEsCNjilVs75NtwYz?eW2qT@8h5Jo+ebBL^M zw1+OEhtV6*Q~0&wGaqUnRxe1Ew%3%F+S=OIcH!tQJb)v(X}O38E?geK3<IfP)Y=9~ zoryLZf>_O}GCl$>s%G7;EEjEk0IRbk6Y%etF;-aUoN?X9U$7Y47an&V*v*wldiXjv z&Mf<?H?06CG{LZBoEu{JbSku#oWH3};ceK)pJrzd#1_9zI1e?S@Ge%xQ3PW~I?|tC z$t!M`@^PH~x5bZ3IX{&bTmXQ4{p+9o>g$B;Cm1LD1iwnVO5b^>1_ere_38WY;I<4O z|LJn)0c<Y}a=Y{<cMq}49(o8NgaFCWHClwGu91)^2s~-y)vT>jg9~hk2D%he-Ifsa zy;SUKS;6=Hq@%R6*`%Jw7hPjQo2Je|49fL9*AN=|l+wkAq#XCY`3Wh1<0qxuT5``z z7a~ow$n$#p?{ULWxvm$6^1Z@%s(IGY%K1qtf5Oqq!7EAI{CzbF&=I;DT}Jnzdkq8_ zBa=2u+i)DlYjV7IX6Z@b8Bkp!+NyayYfA^o`YgvKjM@$L8QYfZa_9bcMok<W%6|U% z+~<<IPm**1+7!0!LgfxSW_XI~kzp8SbMgVtbeH4U`aY!faQ@-peDFI$aM%XH#S6!I zR?Ro`9M=GZfzjYNiKkpwXw)V7Qm{(R4r61UI{>A#S3mdMbI<vFIyrso1^74kK6D0M zLf6n6(bMSt=-Ivk2J)?VC*XwuUY{9Uy>qi3c}*=`3B*fw?{W5NR${hFzdsPQ;MQ$} zb2iEuxIA!kIBY{>zgxyp^*B1K;P;|tc|X4ApeTxbKib$RH^TkAD2juN@Mzn@(TR_F zS=+{Wa_02w-+ul)!1?oUfBoq*@u!{zxMwHc3VaOY0SsDiV9<KQ--)*4cqiVudqZo$ zrPd_42jHwQW)*KQGp(~s>+~IW&Ss>(2t{$QUldTfN~<vx#r{E2z{Q%LIC|n^PMnxk zcR#qd2XOxU+vk6V_x2wAEPnev&~@@ok?S{zG)+^^(=^TaXZ2)R$}TiKP198HEKO7X znQ+f-VmPZz*XZmg;N^5B*COB23p7V3&?WS8^yoFbPDBiLCgq21BQDxTl$9vkW(Z~L z<^Wbs+8WVJOW}U0Ud>9P!(l<EeNw{c>e+LNkv#0&*{iQJAO55(&mKe(1CUN;ZgPcD zx48a=qijRTX)*G@@TUUCQ+D&HG@i{~wR+<CXL2vs%4I}Iou)eVl%iM&0~o$cR6H#< zKGN|QVknb%LMYDCQ9nue3GzMH%JSOu`O_h;=gs3-KJbehM~sDm5O17=Befx<A9X{4 zUW<=lgf!}*O>_#eIv$FqwaNv}QdA9&P+5Dh?Z^HJr5falhB9=2)kL)v(1^|JawS?x zH+&*z=<f3FUP1TG-q!Zt%;(rzo8cR7Y8VV8NeNC<@(+q|Ysqq7+v9$VeUCJP6CfG@ zM=>T*L|}CDzWc6Rx%rNF+yu&!WWJxIjDF^0;5g%n<HE%#%^8E67#nXq(i%npAQhxf z<q=>U$AEDvDjv8ag=T15rrRQDRs{&dB|9N+l5*9E1foBm`WDhQ`!Wzv?H??{2t%6g zRAnNTkKQ1<e=zVBXH2+?6C8c={r4Yri++Cz^b2se$VOQP-&LxLjz9NTEJR}S9b_!R zfB7qTG_1A<L-3KJ@AUoTEzd<kH7lc7NP|G<BVd1&Q)f^|HH(w5a5DxR`*tM)mw`<s z(ko9FAUv4F7Nc1?m1WZv`!|b7(#$3m+$30dUE}*c7cU4-sZz=%)Rly|x2jY3DA~U6 zo31A?xiiSDyM&QpFq>{&sG@Xdb91m$mOa-gx3<!)Uhmw&KBgq9m2=Hc^!o<7z+huK z4+>yR0W(3cGIL4KJobH3{&UZ<Id@v4{%OxiARbrMhW18-q1v6z;Ouxpfb(fpO*W2> zjxYw8_IkOd@x?7)k3B_h8W!JkBuQcHE*7;?s+rtMZL@Tq`sE_1Y+Om!IDlonJPXaj zy3M_jG!wUWi##wMAGUWs55^3JEp3MbW32swiMzZb3Ir4BX1%`K@29RLm;fDFdB<4h z`zFyfInHM0_&>HfoeT>lJDn{*$g<c3%sc`E3XVzAbSq96=PZf0(ljv+&>RXr1z<1A zvcSLpMrS^Z5c;n>8S|gDCAT9){tF@cT?nyFgxEJB#77A6uR}<@0wM8d2+2=I$k|26 z`2>XAXAn{vA@w9e>LrBqIfRTv$QvQ#eHKFg5+VP)5DIn?3cd=VFhD5$Nra+P2u0t8 zP`ry!{A~y&2%+Rx5K7;NP!=GReKJD!A%yH-A(STw<!?bK|1*S&+Yu^$0io_I5bEAU zsJDqw|C13K{3Jrd8wiay5E^|GLgP~il^UV)>kyjWhtTvF5Sl%SQ1uH4?H(eu`&|g_ zzJ$=;O9<`14xs~$(7`7obnuf1&HoLd`gag&eg&cBKOwZ<kk28?2QjOmZE0xdg4j#& z_x12;arksR{9_Kd<Dg?cbjpR!nb5fi{`n5N<U`jS=+*<e*M^?8p=TcS@<1Oq^qm3y za-e?}#5ISw92ig=2Bg7&T=-XM@HoJe2cLI=fxy6c7?=z3J{S}ZgEqsUcQAMcd=Uo; zVUUmjiRHmt0K;OzmjKCbNGS~|*^rtE>EV#R9WsuA-wFO-VR$BlVj#2~?9yN_fDyM~ zRAU(37)IyAm<2F448~b7As;3=VTuJ)foWlonFL=Rg0G&z^jMg=8fL}9tU{P`3+5KV zf*!E202Ysi#rcqR43=cU(rd8X4a=9qitVs+IjrggtFvHzE^OQkoA$w$BG`5awr_?V zmtf~5*zJMcmtda{_C13AtKmQz92^ZtYQvFRaI6X(cfbi7PUOMK(Qxt<oNEr}-a+nq z___$b1-^@c@0P>&UEl{F{Fn=QnQ%TAF1g?`aMcM{3*mZcxPA$47QyW}xIG?j7r~tv zxElufKKPFf_u}B*X83Ob6coYz_3)qyJa`2U=fJ~!cr+d!yWmNAcybAzg~9Va@FD;& zkHOEY;kQig=Fop`!5{nJl?`tb;9Vzp9|rHU;X?pEK7yiO;eYY)XAzPEnH*Hyfl8#I zlEqP}(x}WkRIUpu??V;CkfS+r97C0VMV~xFRnt(leW?0ARO1w?nTcw-QLR^~?ln|z zJ^D*&^j9~k-wB1kLJcj{s61+vhZ+~4CYh+22ek-CEoPty2Wou_MY>Q_7Zmjj#Z*Bt z*(l}}YEyvPRY9>?D7Fx}9mt)9+y$t8HtJ9tbtpnz9H>hn>b4nmccUHw)H4b7+>UxV zQ14D?fCqh^hXy90_|a&Pg$BFO7yD4cDdYnsk4Gt;P--kn4@2p<P=*KjAEDt1DA)%D zw<FtwMyy67^3g~S8WoO4tw&?Zqp@jdYyp}8n%oIZvC-55G|h!FUFfUgXyz$2Ycrai zfaZ)xb6sd&Hd+8$kb@S*qD7BTR&lf>94%RZmR3Q_!qIZjirQ#(ZM6CtT2~yc+m6=# ziZ*!A#z$yt4%(K3cGgBauc7QNXm=jkI~wgPKnLQ{fm7(fGjwP&I^sk}<Ist0bn+QG z+XbE7jLua--z1@LHluF}(f0v#J^`KIj4l?UOBT9(3SIG_tEJJ6L+H*NbSDShjYW6! zQ2rs5Ux@B)Mg=|4{c!ZagC4C%kF(K}@#twbdiD%GFF-HmpqKkl;VJafHS}{n`t=a{ zJq`U4k6xvr*SFBy9Q3Xby)Qx^V^Gm0^#5DvPZx%Fm}1K@C0v+t#W7WLG1c9eFbAfl zjj7|q)bn8KdobY+O!#-01_4Y%7p9R1(>Q=>vH;V}jcHbhY0(GMA{!IY920R0<IKhU z?G&bMJf>q7rfUGxtq-Pq9_F(w%xBjy@fIfD#tbTr8T<^B5Qa&3g&7iy89D=#l!x*D ziW%m{_|h=Rt1&6znA9Z9@Wz;66-;nFCS+ko#9~HX!i=^sV;W<|Wn#wXVkX&`$!VA= zVVEhom}y-wU&dl)^});z$IN+!nP+3>@53yJ$1LoES(J~-s)AYKz$|%$S?0kk9}QGf zMFarU<Qf7Vfa`Ub_<F)nid8`|>W@K8?5Xi4O3;dp6D6rhk}j*4$@eD8QJtSB98{&g zt~`&milO3V0GHYQdP1}{nlMx}?Iw!RStWXlk2g_*B-3@GBrctwD2qoUCdv_E?oT*q zs_u{3m8odjb@pf2R{K%jkU!mPMOht!i5W>DtDkq+h_u9Di>QcJ5zgOEdz{Z}jq(m@ z6tdF&A=?W010&KBgI4lTe})zE+E!vll4bk-X{pI}L}!17Jq;7}hudN%OJ4$c`VbHB z21CjI3@bX?8R2xcZsUw<6=^m8v>7>?ZEG#_OVXsHKQJbkJj`cXjfXa|=F{J2+ksHq zmM#D7&#)6GP*B8Be>$D<lYxyzdq&|Ugr9W0SVUpbf#8jI_PSOQAuRggWf&t!Bat92 zh$4bkMBtoK5Qp!*_$a&#q0zL1bo{r>?4A|@`~>C_SR@mr6VJdRgm)}1(I5*OKYr3k zB^kR5gx_U>KbA+$f29`R;`8YHFEAuI053s8Bu_JL5luACb@TG;q&01D5=AQ_v1mNs z<s+x0+pa&gj)Nw2TszSif+XK|wA!BHGdGkbSl?xk4;z~RA==WCmLbyKJOi7=x$6ir OdQAE;zw`$K0{{SbXxVE3 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-regular-400.ttf b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e0abe2710fd807665b9e6bccb50c1470b0d0067b GIT binary patch literal 62048 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 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-regular-400.woff2 b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d736e4b24cb29e94ed89dd498952911ee9955220 GIT binary patch literal 25096 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 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-solid-900.ttf b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..13c9489771fd4e60ed0ea9303e882f94f640ec6d GIT binary patch literal 397728 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 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-solid-900.woff2 b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3516fdbe330ef1cd0775dbb5bdee41a4ce2cc010 GIT binary patch literal 150472 zcmV)lK%c*NPew8T0RR910!zpM3IG5A1;j`I0!w`Z0s#O300000000000000000000 z00001I07UDAO>Iqt26+CkX*`@mlVsZI0c7r2Oy;*;*!$=L>Z<B0D$Uq9!8{S_V5zX zv)YRXKvh*$RW&Ce;4#~F08~{4Kl;hfe(|f{{O%8b`pe(`;h+BH-~Qvj{^$SxOJHzJ z;6F^uc3h9w=QsR+Ex(<6XMWt&q&Q8;5=DL}vdYOV<xvl^5o-|!p;|e>h}GW@`>Sdp z=Xa)GEkK?|#A&VDB)_u&HKGG6VcZr>vQy~)N4(w+!nG5K4|>;uN%oNO^ua$ecdmYt zLa&5I5vw>%)+|!v{R6MaRWB(gVgtcndZP^SJYH2j{RNbsOlN7H<i0(C-~nW__a*cu zD)g((#2tDt(PU->BU)MAkXJKVnusGvv{->H_G+Tn4mf-ta^ySgA%HQx><)H~O4vUM z{Kxo%@7$XA0dQfuriJ|fP&NPEK^Y7%0}uoONTOv@EP$#-h$OI*tQFl-s^i_1&b01q ze%bwLO!IEK(>haH=P#`@y=g-yhx&=EoL{fHtE#I*bx1S0XL_f5HqT7&Oz+;_-p=Jc zoupfxqzj6pd<viigb-0f3Wg;MFt8XK1Q>jzr~w>s!e?U}%nx3N?~fCfzrPJmbN@f8 zTL11N+CzCLj{sOi5+p=|6eSTP1VWUe7*3U=6vb!OQKn*A(l_)}XDg<4P4UFrx%E5c z{G;vO&fj;tw{`y3Q?^w2=V_+Ze;=so*RNuUODaj#EUDF!x(#XBnb=NjCmnKNvXdV6 zu!oZjT+eRqCRy|l_Y!-Fdx>+r%RbI=?iN^qB1m)f;0sYsa>y4{wg4F?83Z^iShzxx zLlz*MqA(&0kh4q_AhHNqxRMNV$}$LW2tk1Utp_>l{~h4@2hP`<`wAfaO(Ey(q|}(X zb><?2GdUBTZ51-W72xB6$@cXQFoTX6J&}%4J)&n%sp*?UP9jG{kI0_cv#EgR|KF>A zr}~@$cn2=EH4rO>MsB8(fuGht`3dk7R6TeEc)phZt$b8V%I?v`Q?&~J|3|1;K1REJ z`wn5|4PjOha_a6)J+tZkPY6Mx(7UrCDTcfu$;IK;DXc_lG}7Vll0pavJWoqg?z9G& zS?c=<3}JyJe|8qkt^{VKb1RC@6_u*ot=x4cy`j{?)!fRsZ@SD3Q<xhIYk&j?5E_6< z{Qvi>v_2hR0&6ju{PW2ALw;$L32?|^`qSLA-mBGp&b`8Y?>^z#AUrd3!OT4bbN3L; z2f^Gu?!E7s`+LvK1Lo#I(A^_|@`zyZM+87tgagSR2r#n;bN3KDhPA#&1ceBILV%zE zR+W(1!yEx3*#MZ89RQj2NhDW)kjy^}bFfELeTA)MY5!~0TD4Y7?_rk27UU9JY*FmC zwZtav|K>1=01Fb^Pr+a~yOg~tRso-?j7j~R>LH`hG!6c+F(x#Bt+J)&fa9Q7iLJVO zl?4VHv8HKJk!k(iuMM=NC4>yemgSg?G>b3!*6gjY4G=<Q^hY=|b4k7r)LLL!xG+0F zU509X+xxY=;v^W`AcQtuWSaFl)~`N02@vp*rS0#7ptCsj<Ik^`YZo_J@-F~<;P2W0 zpZ=D)Xiha?idX3m2W$wnMFS@+{yFEe|JRJx^*?d6-tA@w?>8YNH{84LzA*yb)(7C) zcvYM1;TxD)r*u$7f6LW}ckhrKS}gpyU5)T-BSGi%8>pZJlHF>cU`@$?oEk;3#E!3P z#Qeg7>KZ4bzm{-QqrTIWZ)!Z58>?m0qdLmry1h}&&*%&@63Q#`x+$nKO*x+?Kadkz z?XcY!A6DbAVa?tL)hM!Y-8P=0=}dx`;o#(~z9N0}^hd^5CO%p0g?-igQ3(bjt9Bf2 zefj45sJw*=1M#Il#1Q(Hr$0)qkK)4{Mv8cJO-MyHj#>ChV=j&B{-ipw&-8oO4O3&^ zVJe#`Zo6KotI4l)GT0ZluBNe4iAii;8NL<Zlf~e4mt0XAk-u`l{4HTNzsS~e6FBZ* zO;fI4#GKc?8H+*jlzk`p8yK9+ey6i9+d-ZM^K`hM$W6hNC+qL4PP$r;)mS**H|cJI zurKp(tj5P8_G@70&B0N-Wy;S5otTqViDwRWO7@!c3`?~q*eilXU{C9^X%e4@Z4~Eu zqJCbqCS4DjQXFd_*96Vu`4FFTJ=(uS?+vgz_WXBiR4&k&Xdh-i1mje(D~2P=aP_J6 z<xbeE9-N@Z#_rqBbbHt|;+yMn{a1d>)mVK9`fA2cn(Zvc0RJd1a(`vTEvN%|j@GJe zJEwc{zF@b*XHRE6^wxMjDL+c%&xYs~^+Rf}wl$A#O?ea>@!?CwF!8DHnhwqca#VR^ z7`~UYqQq1TI2MQfE=xbwdUAO6^-2?Wsf)DwcV9Kc*+tGTZ>S2M*60V7l$ho~lf>Qa zYsI@({HcM}O~Hvcq+S<o&4$*3!}=v^Oi8BsbbCx|QSrAjem!JVYCo;_BBy7D8-f#b zWFov0*;+lv1o;Z;D3On{Ca4!bH@Y8Hr>%d#?la#PGijzLvc6Vz1u`}Jt$Lz$Ep?&y z1J!<Jab!8txqu(wqV*)bN%~Bh=S%Igf^$)1#g^}1XwM%P+D~ucAeK4e*3|a3JD1zN zp?*6(0kzmlj;4&AJBPW?FRM&bj(z<;M%kJ~J)*Ht)lpNPd|qrkzGUmIe|7woS5w^k z`^)lu`D~q!P0g{n9;UUL_?%uVwC{X*SWLI3J?y{h1xI&f&oBL4<=c1p99&gigY`A% zBUtPCEcen^r8oL>HDeixRd{LIeaob?oxN^KR{6nPQ&7=e%;of17|BDhKF>3jt+_V` zTWT*xgSn_&lo$FpF+E@WxhzL>7<=b4?_5<9*NsW9Yd}rsG!7a*bJEDc4bWpOHSFcX z!|aX08ZYZRVQ<!Y_v5nXLd8oyGkg19p50y#Q(a~BhP2emVD)}cJ8pc#VaI2mm{0SU zE+qNWsm1E|nK`Zr?-h?Z`Ic(E!zlG<xRP27^rd+p)q8?qcV^q!s;N$-hxNDEUj+4& z;4Ilk-o4+d8lSxN>CSthzCV4{hx(L;ZeM2@kLs(({SEsZJv<G+0vj<u{e2cWa|CaR zud(<v;E+qzf1A_`3ZEkb{8RUO&4tcCsAO!M(~xN(maG@(Gg!{IV<nOY)uFgds3E@5 z9K>|>g;N>w9@g$zn#l#!kF&|T?Kh*5b>&P)J#zC_GV2vf!MR>-2~YCdkiJFtKxQuz zbE+K7F8Z#`@kBm`QR4GNP-7B*Q}VTE=JEYRAUk(w>)<<vhV;3RomQX+I^gL2ZM#3x z@i29|?<gH}xBvHg>383R(MAt5ZE%QVoZ%c#cnuy_(kfa_YiKR4qxH0bHqs{AOj~Fx zZKLh9gLcv`+D&_CFYTlKbbt<0G{sUPB~u#ZQ87KCAEJ?HE!v0yVxWi-2_jJ>i4>6| z3Ph>puskeJ%gge%d@Ntf-zu_-t&5I^j<&LrtSno}_OgTQC_BkOc}KpIujM=WUVf5a z<WKoa{*nLPN}UnTJm($fUFRR?Ul1yw5-OtsnxG8?9FTCLBRZoix}iS?U>JsDBo<;3 z7GnvPVj0$8Eq3A{4&f+{;{;CP6i(v|yy1sH1S0~Gh(a`C5Q{j(BLRs>LNc;YiZWcp zC0s^1Ug0%<;5Ys;aYe4oRk#M%<XT*t>v02a$c?x$H{qt-hAr;Fqj@Y(=BYf3XY(AM z$E(?w{n)=l?+$%B)#=o#Q|nG{ou;d*s*Y-?MyS2&tO`&;Dp94V9F?z%)gARzl`Err z=)ropo~c*q4SI_{q|az~9jp^{hAz<;^;P{qKhjV1JN-p}w`<rAyNf-<zF>#g`F62= z$-Zviw%@qgy3$=)u5V_r8Dqwq&1RR`XAT(;<6~k?s>v{T*d1I6o&|4$kHP2Qiwo`2 zy6mpHYv8)OK5o35?iRVFZl&Agw!1wDh0q9#aEON3h=aI@hlEIk#7KgqNQPo4fiftI za;S#JXo99_hIVL=4(Nz(7={rThw+$ziI{}Rn1-2{i+Pxj1z3iaScPrag=@HpXLy0v z2;lGrUtsu#@A!fL7@iRrnNb*xF&T?-7?(+yl*yQishOS`n30*7jd@v!#aNEzS&emA zmkrsBZ8?CWIf2tSgR?o8^EjUixs=<ugFCsKhk23L_<#@jh>!V<Z}^Gd`GddsoBt`K z!Yi_pDXa3Spem}8s;P#Ws*Cz-fCg!>Mr*RBXsV`Zre<lb7HNr=X^l2$pZ4pZ4(YIt z=%|kAgih(SuIaY!=!u-(>VrN@`mSI4&xiF<d=j6`XYjdv0pHj+^(}mBKhlr#<NXZ3 z)*tsL{aJs}U-vitQ~$y{|JncX|NQ?J&SF?9OJiv*kL9yMR>X>1Nh@t-t-MvXYF5K) zTLWuq&8?NSv#!?5`q)4lYQv2WH^5fd347oW9ECG*9&W=!cmZ#~1H8ZoLLd?nAr;=i zd(4G3u@=_D`q&toU^{G&`|&hhz^iy4AK^26jouiDAsB(Nn1D%`is|UY5BLSY<3Gwo zS*aiup;BZ~d8$k`s2(+?R@9z4QCI3geW^bUreQROCeRd`NwaA#Eutl~oL13V+C<yw z2%V(!bd|2tZF)*C=?%G&7x_^rg;OL&Q!K?(3caKE^pU=iqTlqF4bIE?xfqvVlPhp_ zuE}+|HMirA+?9LtKpw&)c`Q%oSv-#y@@ihsn|K@V;zN9dPw_dvz*qPt-{B|xf?u;6 zd$2bLa0rKS1Sjx&{>nf2CnGce(V2A)om=P8d38QrP#4z4bxG~eHFRCwM)%OYbU!^% zkI@tLY`t8s)*JLzy<Z>I?m9@v>UeGIAKK+|8HQ2bsA$wM>KUz!@x}yWqA{t39?Ew9 z+NKRp+njdv)bG;kr#C-io6`5DpP0P-Nbt!0p|1NcajsbQHRoODL+4{>h%?RkQNO_X z!_Hw>wHw&|?Gg5Tdx^c>-fy3>&)L_tB12>mSw(h{Llo5b620=GooK&*SJ7`|+&Rw> z^Tax_(d-uc#KG@!N}LlH#6@vWxQQ?kBho~M_WvNninTOkPMJ&QmHA{r4V5(IWJOu& zm(`T@WK-E%wv%0DH`z}PmP6!7IZiH?8{}q<?cev5ygBm&`AoXW;9inUlb?T|TK<-Q zl%cY!+^U2suNtams-5bgdaHh_znZ1yt7U4r#`c}})9ReMsvfP%U3n^B6{ez8qV|;v z56t{C*S<}E4jY;<v}NSY_~6NYpOFU81e$N@C>RUlVG2xxd9VnU!fIFp>tPe@gx#<Y zj;QwxUW41O6AY0M11XRJ@8LHV!&+Dy>th3Kf=#hKcEE#p7BArqe27o*1-?aJ48|~x zPnqoRrB|ZrREL^U%T*1eVKka1&?K6!4K1UUw3gP>Rysn*=$uBLOy;?7GG*-ZmBew# z#d$bC7oE8p*W^0f@|X1IAv}V|@N}NZb9n);;&r@{x9~1LsBeFkFYqP4&bRq7Kj+u{ zmOa>u{W(bc#<Fur9r;^l*4cUmbYWfW_^b9->h*flByN9K<4SX-x)NQnu4v=epOkVn z%T+E{-a;$I3bWj-x7K~@u6512VqG*0Ypb>1T4Ob^YFgE-5>^f?v*|LG`Poc2W6eO* z%Y1G=Fz=d|%}eG*bC0>*+-fd1$C!i6&W_)XkB$&Wpu@xQ#_`H=&M~KKO4;PHC(8~l z+ZzwXx)rNjtZcE;#Yz^-RV+LH#_#wQKjM3Qi?8t|J_GS7-p9Lm6R+b{yo?v|Jf6kV zcpP`)MqKf7z{>zH^%B5~0WSgoF91B>a{<p@uAAu@e(Rp*seq>dp6p4U=<(0X8w+@h zM|+e<hU_-nLp&JpAP;nJ_i{IPb(gd|%pKifJ#OnZfLjA@<(4VA!`&EgBR2%x0C0W4 z^<39=T+1~9*Kl>f)m+t89L{UU+nsYb8*r90ovuIn4d|D?>66~;8K9?tp6Ib2=sKWl zfUfF_F6n~K>5Pu+m<|Bi3uw1?X&a!e0HC#i)&N=s09piSf#z$jCIOlNXgr{Cq5rf0 zXh6d?3{ZddQ(yH~Pjyolby7RERtwcs4V4E}h=2KqzxWdXc%A2Yggd!|Te*qrxsI#3 zl1n*{lK_tANDg2(b_Lji&DoSq*oY0;fc06AwONxjSdEofp5<7UrC5^1S&T&i7GweD zrzw&Nvw`G)@+<k4d`UhhpYWhJdZtHupnJMwreiv2rUPc$Z>D`_+N(X<tzFuo?b@cT z+M><cq>WmqHCnAzTB+q)szq9$$(o>X8mxipqweaaF6yXuYN4iTsQRj_+N!Q<s;bH= zuQDpFk}9F%Dy%{(r~=BTyvnVt%AyQPtyD^`BuXeMD8Aw-hK&FDkAL}xKlzPc_?aL0 zj?ejwPk4(rd4-pGmZx}>M|g;Pxtlw=jT;$pEmv^`=W`zCa5g7%A}4S>$8Z>jasd0W zFZ-|;d$Kb-vOU|eE!(gqTd+Bsu@P&s3M;V!%d;HIuo#P&nVB&^^D!@TGZ(WlGt)B} z<1sG5Sm9^*8s3D5;X$|??u5(XTv!_xhnZo9Sr{C;SPU~WGcz+ph!7z{ga{Gr|2E|L zy`b0kL_XXrd%#-1fg3KD$Ml$<(^Gm{FYHPDjsNjv-VnR62RpFK`+8p=ic=VhQ;0mm z4czeDxQB_D=!?-6!!Z!u(H|YXyr)J-bVOA=@{X8^#?V8z#+*1dj*b`O;B;v^J8n#8 z$L{I)bb2~5ZA-hS9n+3!_p~8SjHlz#cr+EMOX`x^rz~auf7}=s#`dVBeyK=ZQjyxH z)~S7Lh+F;p)G6A>pg1?qjdSDVI6F>^Gvmw{7h~eo*g4)#15%cXXqcMDr>RqF9N!22 zzyBLO{Qp!l_Kv-y5+BF=zTGQc@pI$D_|hlDfw8}z7<>8zALqTihwtnC{MNWJ4v&Ll z=QuS^_K$rN0Py>d7mso}CH5kZ@tR=Q+tzg<_#p6${c`ZuAs%}&cyn*OzUywc+y8%X z2w1<hyvS>NZLlqCz1?oLUAHie-M!_<_^EcJ9c%0LvzP7N-YBpupF7O9*cPxp+xf<I zpl^ewoy4D_x3Bm%``dnxQ_gX|341ljld*llCOLh5+ZFUke%X-2`)`IF4ECgc4z@Sg zo}goN9O%6fE8DP-%e6INt8{m;WqPIiV+M7V{gYO-0t2?e@4eFBVOpKUJJCNu_T!(J zvNOnzAR9oI!9{vI$8s)xsV9G33yR?ciAFT02~BB6b6U`nR<x!KZD~h)I*?JKikxc7 z6m+B$o#{eXy3w5;^yCC8a+Dk`$H<9tlAJ21%NcU6Y?mwLD!E$jmIvfPc}O0XN90j? zOrDS@<tceqo|EV0WqCzjmDl7g`A|NUujL#0S$>iKHMEH~(^gv2uG&p|XkYE8{dKSo z)zLae$La)~sFQTEPS+VaOXui(-9dNLJ#=r~PY>2Z^iVxa57#5~NIgnV)RXi~JxkBm zOZ6(fOYhZ(^hteMU)Q(v1N~4x(vS5M{Zv2G&-DxaQoqu#^&kDuFfp^5R?BKz9cyCE zthwb@w!%7EC+lJZY>*AMAvVlL*f^VEGi{d5wmCM}=GzimX3K4(?O?mu9=4b5ZTr~1 zwx1nhN7?Cig}rI-+XwccePkcoC-$j*W#4%tU*RkL06*1F_ljTam-zL5n?L9e`J?`X zKkd)^8~&kx>A(6vQ9G)lI=V)$=o9^^3()gh0I>gn5>NsJ$bmATKo_7Z5I`?rFi-;+ z1}p&@0jqyZb6|~W0jxDGfpw-8u->!=HkdZRM$;D9WZD6nO?zOA=>Tjs8L-WifE`Q~ zu%pR=olG^bvnd0+m;%_<bOd%Yoq*j<XJ8N01=!Pc1@<!CfW1w3U?0;1*!S?Bz$MT_ zfXkqV0arnv2CjjQ0j`JD25z@4dVUYkvA`RUlYl>9pF-9I@)l%mq0=F22b}@gVCV$M zhCnAmb}96H$gYGQ3fWcABOtpP`Z{FSLJx-QR``dI-HGS}*?rK%p;QH{1*MZAFGJ}R z$g5B~74iy{PJ_G#rPE<EpmYXoCX~*C&4<$6&~8w=2XZcy9)<RWs>YDFpsGFWJID<> z337){hP(|7$U8yjL*5zkB;;KnPeI-l-U#w@AXh>D0^|wEzk)mp`PYyKA^#5Y806nW z9)SEO*a*mffeGY)LLP?vFUTX1{{uM{^8cY{LG^vG)1iDJv=x+Zhdc!37ofAC{37IT zDF0*Q<o{A>tLoHJ0D2}A0<;MfhUf)_!~cPz5p-`Tnjxy7Xa@}_GWeHJR3WON$Pu-n zD8nmIbb&tzMK}2MQ1pP`21QT!6Hp9-UjoHo=p6L0atXwma!JH5D3?a8C^trN0Ockq z4yN1`#UYfNq1cada})<sZh_(;%Iy$NpxhquBg(xIZ=yWd+VexO<cEXe2g)N+RFp@d z=%+jyMUV0r6kkvti{f+2<51L;=OFGzc|PKQlouhKOL+-8hf!XMP*GlmIE?aY#D?-3 z#Fp|}#4jnYL+nvrkN6ek4T$}eHzIybc@yF{ls6-;NqLJUzZ=AFDIY_8it=$3dr>}X z%Vqu?=)6w(JUYKpet|eI<u~X&OZhE|4=MjZ-(bqW(RrEjzpD7AYk6!JaYk3Vo!yQ0 zyko3i-Us4=bSFg|Om{MLKA<}}ih}MGC?=shHHu~FPK(YKbf-gSbGp+boKANJYw{UE zID_s?mV8doxti|0=sZPtB=pf;7R3a*%UkkQvFplL2gNwL>%a_j*R>{Jk6E|TtGXLt zO};G%C(u0)CZc;j!bfy3K+!O842sPdI2OgG44x9j8VsHt#Ze5N!;&w6iEA>rLpYJD zk7^=}pqf%JifX!DWHi+hR7+tD)kakNV?5PyRL5gIstc$t#0FFs3pS#<2{xv>6*i%| z7dEAO05+p~1U9F71ASwuK7=i(zG$%}RX<fTUaRVnwAhAvA?iiPX;r->up{-_uoLw* zuru{eunYBWuq*W;Eq0?mmio9cSXG}vi#@3?roLp%Rn<2F`%vEr`%*s&`%ym&`%}LN z2T;EQ2U5QW2T^|j2UGt5hfx0lhf@CzhtZp~gTv{~OK(0LL2szwD0+**(ezG&W9VH9 z$I^QMj-&So98d2#IDy{F9h^w-HF~e(BzoToPN9D;IF<f8IyjB~yXe0gr_=wN;7poD z;VhcvIyjqV1)3Fc4$ZED^Jw<jNaxe+Pjdh+pgEZ45L`rarr;8qbKz2&>z3m(nj2|u zn^~?;a|g|xxR&M~cCzbf?xT4XH_*IJ^EsZNsc62$n>1h3d^dKjnje5qXnwTY-ngG= z3w%mDG3|oLv|ZZaH<R5R+flS@5N4%ai*`f8c-oC=_aH1myBF=gg!O3mr#*qN5$#E| zXApLwJ&X2Y!rru((q2Y5l=e#6s|bhF-b8z|>u*)<9R}fO+Iu^MV@ODma4e}%OB_t< zkowxPDow;jh7(B>lcpk^M4E;)J>e|U3_`IeX-0(eNHcYa$CG9z%}O|*G@DSYNtzwS zI;1%eE+Wl|xDRQr4&h?byrjhmmyniJhhkaMQlw=G50RD=;vuBvJH`V^E09(vJVsiR zw8@yYN}Gc4Drqx>*GQYUgttgrlC~fBS7`@eBGQfsACY$2NPVQ8NxKt1ChbW&obUzd zNOcH5l8zxAPxy&+f)Gz9orrh_=_G_-NGIF8$xmS?hF?jikxnQ4Mmm#p7U2)lIi&Ll zf051?;;f_#5N;%0*fIP|x|DP|;Xl%qq^qt2Sf#6Ji3^dgA>DpO;$4vLB;8G%iu5Gu zb>g(7H%V_1=OMjM`kXi)slt}C`+KDRIZu_E1)XzAEkZ;3vL*aX`ik`9SZzHik$xqP zBmD-7g-O37o<RCz9r0SypQQhZi&V?&<%#F3Ri0$&P;5+|lsq|cW%3kiiEEOlBu_OL zT~D5dJS}kz@^qlsfjk4kx8xZ+gzw0+kmn$-MV?a#my_q}5Z5QqL!OVg0eOCP2)~dQ zAa{uylLrW9AP+>`oIGgOeFf~qJeWL;xCMCxc`R`o@_6#X#GS~Ckry8;uO}}_UY@uI zd4**o<9_57$*U9hC$C9fmv|U?J+&yv>ytN{V?Qo$Lf*Wd@5H<%c{}3C<o(D863-+b zO+JQrF8Mg}iSw>1pKegBO+K?ju@?C(@;Std$>$02GV=L|OOY=?yqtW|M#d}1my$0d zUP-=%d^_=K@|{Awo_trwVj=R~<a>xWkRK#JGH=<4{3Q7$;%(&D$gdM0Ab$wrL*$RF zJ^vWQhsmGVGPH9(C4WwQgk13<y<h2`rS~Vjzv*6~Hvn|6(;H|_`yhIQ>E56>gx`os z=nbVeg6=I6*+=&t*^eBJ?gMg6axA(}$jQiQ={_T8Am^DM?xb9ZT$Ju_a&dAAy8p@L z$u;PbT$2vnP;wn|UAkf9`sxsU<Obw6bR)>U)gi_r4<HXC#wHKf3SuJi2=Yji9|htz z@+9<)AkRWfLY{5O&jB$hd9J1XeDVTfGV(&8BQJq|<duji$g6iz-@D{B<h8_<<n`pu z#MI<%<n6=^<iq5n#7yL4Ld-%wftZzi(vm*~Vm9(=i-*ZGh?t#xR!N>GpzjRw1@c8= z4)P@xj5*2I$ajgk$oI*Qh=s_H6%hN7Uy)xEi;=%b#1iChB9<io6tNWfPr+E4?2$<< zL-r>J5X+H+C1M3~M8Q~**3m{GR-%nT8=F{-Hnl{oMVnT{+O*k4tV3I{L*JdW#b}G4 zN48kooVL~YAZyz!A~vRN9}t_+cBJh@Y)U&pqFb1DVnDYD?Nr)n#OAc~C1Ok3EgfPj z+OxFh=3QBP0TJ8MUJ<b!?Tvugp7svyJz@vi2NJO}?Hduh(7qS3EA1B%yV3p$h}~&J zXhVrTXu~D?T}T@#VlQe`5qnePi`a*nQN+H~%p&%qW(kOys0FEoiT$ZX6%YqeOHfM^ z2UAN+#G%x3A`YWg5OFxQl87UyRYV*~ttR3qYAq2*Q|pR2hFV|5vD8K)j-xj35XVzn zQ`^jMv)Yb;IEmVU+L1V!+EoSPRBCr>AL2A>f9gQu9O_^N#QD@=)Dgr5)G_MNEkzwm z9d{mLfjWUYk+_sPnL3TQoH~mE#?{n0)Vahp)cMrK#C6oA)MdoY)U^_ED|LhJUvdv3 zZlfL=K-^9}PCZH7K|Mn~OWaL8PrZ2Qa8@rP;sNT_fOrr-?7d0vExP;Zy{`dw57PUH z-sf}=(ff+t*K|+N`;OlCbWhRyNm@QmKa?Cq_Y659Is0YTS<bNp7>}HjoQLjba$W@( zpPY|eknVSKAq5zhT$o&j?r(Bg{Z|QcIr3b(A>{ewmBgy#)#P==2ILLo&BP|;ZREYg z7Uccp1H=yGL*ygGPUK_clf<s%)8vc9p5)8q>%;-%o8()>q2xQ{d&J@7$0Xt?@-q=f zlV1eHG2~a|*Tk{pw-RwY`GbfP$e%@=Nd7M3B=WC-IGG$yjv!8<`bflSRERj88b`z# z)c7LKq$U+{7B#hqv#DtZ80SzkP%{$eQnOOC5$98LQS%TNQVS~}E}<5umLM*rmX(Oh zsTD+AL9Hy}N@_I`S5a$=xSCowAg-a-r#2+6r8ZGO+(2zfZAIKjZKr~9GqnS?6LAZ* zE44duJGG}o+(qpz;%@2y5%*9B6^whSL#RWE`>4aIBZvp6qg5~-qK>6bAReYprcNau zr!G>#c#67&x}12Lx`w)zc%HghB3`6!74Z^vXF$A6Jw!cByh1%L5wB5CiFloQCLrFR zo~K?Q-lSg9^YJz%;vMQ;5${s(i+GRvP{jMx$09zUJ}np@QeRSE5g$?CQQs4vP(Mk; zXVfnR<8$f{>QCYe>L2Pq;wx&XM0`sPUnIVxMqN}FBEF}MP8);xkv0|`;%C|fv<WZ& z$lAn+_>DG|h~H_`1;ih;S!lBof6``G!T6gt7j16hAKK!yC5iuN%Sc4hmKRa9l|?k# zngKDGwk~abVhC*`6^!Au&1jnwBWPREwkAf=cGYd{*N3({Z4dhOrR`1IhkilZkG4Pk z`qPfU19%1~4Lln>=Q5rGo(G-}$^>2rUJS|tUQU3rgV%xAgK~g3N+=h2dw_C-cY$|< z@__g1XP|uG{osS3{NN+tW1vFd6X27eqTo~D)1czubKvu!lHf}UP-*ZL@KsP5@O1^M z9QY>q7N|V<9{B!c2B+~u@MBPA@Kc1UfuFZib?_VTdoDvgjX!`tf$D%iBUB&!EkF&x zKf%914Z(jT)EMjlH39zv{|7aNNK}BDLkJ=j)B+-dM8XD$jDi&qnba@IOn_QLWQE8E zY6Fo&0cr=48zK*=Jw!eUb%ZD!piU5FAu516LsXSecZeoJJs>&=^@Qjo)C;1UP;ZEy zLVX~H2=#>+Dbx>QvQU4BDFf61h-nZrKm#G>K+FXVftU}m2s8|0jf6%)Yzok5h^r9S zKw}^tN@yI!8=>(K?}R2md=z>p)`dTQ7S;Cf$N#8yK))VL;vXp0BK99jbxBpBRG-*T zlo}8lhEhXf!%=EPLS2+vlW;alok{GEQV(JUrJlqxO1()HQR+h~L#aQhW}q~f#CuR0 zLc$FwjUd$=l;#rsh0+3I2cWdj*xfdeY9>nC5o?3e9wd%IX>SrAMrj{nLr^-D=zWw9 zBjH7qPAB0~l+GscE|ktCaTAm-B03JGi%Hl6rK^c9M(G+7e@E#?VrQdt8;KvHbSKe~ zC_O^rZYVuU!U~igBh^5Z9w+t{N>377iPBR<f1vaXi3g(e9I@R{dXa<=P<n;L!%=#j z#KTZ}gV<*%y+v$ql-?zFF-q?fyBVcVh|WamGZL;q=}QvEqVx^1IVgQk43sj_MJWAF zbS270>}8Z|5qlox+QeQ*xdE|{P;O4_HIzFN8;J5`qK{CXPr^wkFCgJ$loylu0m{pX z)j@d+qGM6slEkM_-k;bzC?7&BqI@ig7omI-iEB|lgH-KMK9}fdl+QD`^D%zz0*rB& zLc$P~FDKy<l&>bbALVOFoPzQVBwmg3Eu@-<@@<5O^6f<bp?p6Hb5MSOgoY?TL_#Z+ zA13iVlpis;M<MzS<;RG=NBId7jzalK61GD5DT8|+66d4*0+FNqB8iPreu;#ZD8EeN zKPbOJbT!Ivk@z~w9}xQ*<qt`mi}FWAf1~^{sb-`62?>{@{3)q=qWl>NLisBak3#tu z5}ri)R}wcvxe%R>^6x}Hqx|<|s%<Y4XeS5sIdVbbO5{f3c;vN+E=694=rZJWN%#$U zJrbTkUZ3bF<c*1bLEePuLgY<}{zcx5gwe>Glkg1k7DU$|Z%INE<gG|JA9;7850UpI zp&s&H#NI{TkJt&whmo)d`EX<0Oo&~Ed^WM$k<TIVdgOD7-H3c1vD=W(C-xZf1;pM% zzLe-J<lAfhdEW^wAKrI`*f+@cB;kGJdlUN(`Tkl~ydMau)*wHOgucj+(emp3I7pn1 z{CHv;ke@)p3&_tT)l}qXkyr!y6<X)LUkQn8kY6Lvwa7_$8u@i3v_gI>skT9Whu(LF z_q#Ch-Q8&U_I?jqhrQnm2}dKppM=|xKdklH`=cn{pGWcj5+=TT6B36Ze~ZMS$loD4 zANjjPCnNus=nLfE5&eezFA|%g0<n>(h}a@j0<npxL}H^*F=C@psfdk1r3SHasMIF$ zK2+)u+Xj{T#Kxl1h=ir6v?MkUl~%+SpwgPyd{o*Jn}kX`VpC9QPi!(Ooru*(r3<kw zQRzW!Fe-hC?TJc1Vk1!LPizZR1`yi?m7&B2p)!KlDpaPBuo#tT#8#tnD2YFyauf-_ zpmH41;i#NQ!W*cZLToEkP9<R+Drb>!Jt}7tI|7w+NVpD_^GN87$_2!JK;=?W4M*iN z65d1QDq`oLavh0ZqH;aatEk*S;)ST(NX$^Vg)kU<2poNa#QvFZ^eK{Y1L5d1B;6q# zeVJr*2}fTgX&u7RACk0;aP&7M_7lR<-;wl1!qGpF^v@HH{)vR|5stn_VviymeS?J8 z5srR9(jQJZ`XNbw7~$xrBqJdl{f4B!k#PG|+ed%<*D!YXbqwws7(e$-jB($Bq&<gl z`?n45I~d$|F@ElQm~ig<m^khSXna3Y=vc(hT#VgCkhI?rW=kYZBg~db+9wFJCP_aa z%+^Ty^@Q0Ol3pjw&XSCXFgr&wV#4e^N!umN?m^O?N|@b1G77@%-Xy~#%pO28287w~ zleE7g%&wB?)r8rbNc#U0X73^C-z3aFMbe)|n0=O{{~lrXw<Pu&!fZ;?M}*neOuD#l zL(;!On0=4L9!{8jpQOE=F#91%dl_N&BNBTCVfGUedkkUrQ<5$Sv!9djEyC;<Bz7HP zHX~{ON|^nIr2l|0`z?v?Mwrb>+BL$pTS(dq2-p6A#0tW-SCI6-AzXVCNeAKDXGq$2 z2-p5l&kwx=$sjtOV1x;2#K|F#+C+y){kWU*BKCRFjEi<&WO=a?#Zl~=+~g}snxy{V z0S`z&`GEV6?tlO8C-47&`M06m3hEVC0m`k+rxjOW@5+_=FZZronOuRqGP!c4R0&cU zR%{;Q8|w^^7LKR%Sd1y4Hc`+^v!vPJX6RSqsJm0-eP7!tvb^6*{W?|Rs5=zGb%pp( z)_q4x$Imb#JEpH;(0mx+AMZPo7}4<*6O8HJ^Z=qDinGW=x5$e;j^fBecPEa*3O6^v zf9}!bW}2kQA)30!Mw;|{MZS+hMe-uAfp?4Mr(MorKh)7|N4cCcvA28G3*l$Zd)-35 z(hMIOJ{03c_Aj`c!)B5q8Kp?h>-}7Cxy1tA)Oa)^kas*m2NQY<QLqzd(K2?rQT*E; z<2|PdH@O){aa4o%rErsn6>c^gX>x#0vy(Nm2-P%6#(RsSA}{hZNt10P%k3)iqTeg> z?${NAX~Hi%%H*2vILaz{cDB64n5Nl_9W7djE0HTr(=RVp7IHfb2o{$@X&9#INL7l$ zQdV7z^mE8qw6GAwN}6UlSgb@sxR?mxwwR_d-EoxSCS#fgE*;-9Ov`g%T9#5v)%tP} z*p{}E>cyKH=fadyN!>8GX=<k9luL%mJqbft(q&O$v8F4;jqvo=P?JX(mEXk+BINz7 ztR{H+o9q<eNtz|8$xR-`QJfcf0oTUg7s6J`o=^Vohr#VAm#fus85)~tytA#8EyR4n zo*0NA?^-Tbk7;@HaV|z3Pcg!n4)WjRU7edA3c+UE$Y@g}>P3Et?DRF9f+wyJmmMWJ z*ED(4(;Q7REvcN#6}0*k>HDgiq^5CR1Y;rG+s<)Kla7+s`3qbs>1djH?$*Lzx%KSV zll;P>j?^@M?zU7v3#fGbQ+y0pX^jZ2MRgf%LuDTcKRG`@^U=^tlMVDidzD<>$QV~$ zwvEePQNXCpaDz5#c1jeqidPoJQ5>4w<Vl*O{les#$-^u@OFv1Il-SnR`SV*_?Elw~ z*Q!;ZT3xGxf|N%eOAS%2u8n>ay}_O4TX({kT0}vTCLXHi^h5XwP-aJcdVh?PUm7}0 z<Cc>0)Zn<X;qdrE1{eiG*aJ&R=`fAg=KpiVQGMHJxZQRGjA@-HXn3ghwSMmqNwAUG zTKeWn>)0VLk~B$Q-dH$UHapcePG7&e#<2FnPj374#}o?gel-T-xPjq9t-yCVxem6r zdj08*+xDR`2ufdBXf)#Zky6q@neDJk6!eNL-$z@mdorJ!yxC}NOcS(t4N=_9i~ZTC z*;N0;10md>hJt&~kM@!jNRz#L)|aXtGjv@_DLLHbd)6uypi-$lHt_7Xx<Yg*H-jMb zZbq8y?IkJv(y}h4<c6+GeKCqgT{Z~4n}u-eSmWDhn<&WBtTEj_%`Bo(=N7VzX7Oc1 z*QJuu9C2a$(=<uyIhWK^DBvScz)ea@)6jJ}|7pqdE@o_cvCu{(dyKE=qsvQgQ}?#6 zDLAfCTQL_W>z(%Q@TTwA+)!IsRK|GSS-hdc>pfer6<k?h8CtshJ-*~EiRY~Fa7TI{ zt7p5fQ1`Q^2a{LAO4!LdSp&LEk|t@vYoa~%{jLCPM@jLDHmiQ`Sl<{NzOUZt$624? zC@BPBe`sSD0IQ0hcy@Ekxa$vs@1<H@OUrbz94^^iiQ<TB-K8&ra^`5vajvp$SyM|& zDK*XflfNiPSLKyT^O4jvlPf84Q3#i`dbW6tPSgE}dWWR>G}+{4yP}!$vAr}&^CIh9 z;<#vDbURrm`=?*Ovx`pF>|~uRfQ|C4(Lt-7*YkD@XfC)eTJ3z0w_9-Cg(gO&&Z9Kw zMW&VNb!+^bU>&1c?Y!SAFI8PWZN0iwZuLjK)|i8CEZ?3^^=WJT6=&>xlbbwFgDfwa z8D9xYfsRP_dWb=04&U$0#(IALPObF{A(dkT)&P{}BdXQ4v9YyzHm}d1>&5zqY(NO9 zoV(VQ%OJwD@oZWoLc}wZEA)o#({_^PMLUn97|*PDmvRlJ)OCYPDd!U(@G)paZpD+O zl>B+m<5Ehg>&Dm)0()%ex+F#=8sK9X^dnOmJmZ1OrYo?$ujWd4J?Z#!3h3VIe0(j# z05uJEwoEQW<9c|sbYR9=6syRwXwlA#ByD5U2t(H;_<T03Coy;<^GSX_r+4YXSHm01 z{q=Wvg_|CoSfy9whscXOOwMlxjWi?CaWE+l$Iuzo>e|EdRtr(oKD^xDae~9L<G?Rh zAJ!rDhe^jrN}y|`vDL~~>osq&T;n;*l~T!Cu)I>GTJ|v?-COaUv9z5q!i4Th4<<r9 zuSand2RNm}x-L!di=)2*AG2U}7(>ep;@=}llQgD!jdUr`8O!raW9@pU-MvNwXf*bA z?{vO&wYs)-qSbY_;f=bb>~eIL=a(Go?HI8<zjP_jLASX^J$H4(_>~p!RWDvDwuEpm z#+G+p%5yfU_SEHal^E5Jrx;^QRjM(MsV3K!P%S@1_vE)$<lE4KW)aUt7+N>48oHsR zlxFSE>V}k38M?lD^ZM00-3c!VfM7lyN-0fUH`LwkrVL#-rIbU|=fC{$hlxnTh=o;3 zspl<f+RgTXgt~yH#mzn-dJnX~U}M@J+N$Hc-Gc9*SO%^7XfzxSZ)iA#H#cIWS2dZq zLZH>oo6F07qm#E=m>^ng^wKD%_8MVK8$?K&Sx&m~&N?nNm~#H=z;Wm7^yzGSJ3D<k zvy~FIef~c8Ilt+-uD5yqKKD6q+d?TD+4goe7-ZYqnZOy(oY~sl-QC?hd)Ai976L=( zk1(bMHW)LaC@`3aepug+{Xl-DB!oLU-03c#1Wqn@cMeCc5QAahONJ~*UusH@5W>Z% zKA%L=W-igPF)uM(9b*Ii?rEjDG94-M@pKAePmiaY9n%yT&u<+a=6PsqyY1DI{MEO5 z0Im@2wT{1)i7%xSt{Ef2?s<_X_>*_y2ms87W@Ly`=hD=;3->oR<TD#wot4d8oaKH8 zHXv-N?9D?AEnY*bdEFrP5W>C1+<xz@5K7rLAXY(Za(IoXO)$%hRaRE|r?H}P<N;O? zInv_<$ylxmvXY&!bR?>zb8)40!Y$MFHK9pJE+5ISj>r6zO^{7R?9#B;l95Lq=?XCq zXSUBxZTDysVJFU_(4P<+ORCFAwR`xzBJZN^3bCA{IwLM&6Vmc=GG<ZHQV8wkYJDKi z^EdODg=70~h5{V#r$8ZWTPpiar^a-OGcT~DavY{vFL@yz@7^_gy#4w1r_6tSb4S`g z;oQX0m}N=j{Pj!i{zyGt%-uH&eNL~gKcZLU-GM8_ESk#HutW3lCsoPnM1r)iP@8;O zpc<{yHuY$it|uxgaVEh1QO%%8xXHT#kGeZW8g!F1;jvccvR3@2-_?Rb<5i?u9Qa+o zxvVaCP_MdCg!-gv`@UVB)DcB)wf^Jm^T}YaKglQg(IlVbFBl9|yDJ%$%Z3%tr)AeI zqaIsExx4^Rfzf<~C(oxX)LZlE!RQut<|B-V`-2(NXKm6dZPCtnJ`Ox8@}em>`Yr}C z8wL1TJcfovFRY-B!MCQ~fBh~7JM+m7Zu!u^QZlV*J_<e4ir_lh@9s~SkJd0+o4*F5 z`3TG1gbR<ki8!?+P0}1E5*sYO8`z0K#vX5C3NI1Vv<!=?4zZ?hdQ%H=x{p0Ut3*Lq zjpd+^(R)SS4U)uqSg#Mel#^wv^`Q?<8)Dqsh~3Q|*6UN?v5uHbbl~~*;|Zp*|E<$R zMQ%_|Gt*p_uqgw6r^P16;ADH?XW4At$pRc(DRIXdEOsm`_Rqs=wcjc4PfcLBcjZ2g zQo;h9d#@KJ-^Z65!13CB4tDM0TiVyzabGR!M6Db=#AeJ>nUq7&d{>BvJ_aT(S!33X ztBVU@t7`{WuU@{~h$A418(0~Gbm^5?aS1p3t>&qNwN*A9BZ?c1IEoXi){dumDBea7 zk8R50j*L55r1_S1)!J$^v3wTql(B;D<h0ZLrW9u=P6c0Ue$CDQrzHG&Cw0xx)$(-= zi`Aug!BwWaS6m1d76VgfP^PIHj#OL#L8YRuTUj=kuB+wi04!Fk(SobYdfnYCE;wN% z6*o2Aag<%D*oLuN$9+|`B5YB1!G-OWmQS_@3z5_;&KY1xM=8_LnFel}%yLz=B7|MO zVO7Hz#E}C-ulb%7H#JSuS*>PyJiv`|^5)nUMb}OA1Da(mX8MN4<1iNS9h;xz>o2#p zR~xNz@vAwarFCjr%iAr~yb+`OW*yjEA;SC8G{;D%G1KsP_qMpPWFBWxT!m791za<E zl4?nj7d<JZ`P}D`_FFa<VQ7sF-B5Uop&M%c=h#(-ZWvO^`6vJajHHw%7pSnqam8(z zBim9#Gf5qoywP6!P&v|g^1ZD%w(kApIs3OU4E?HzVt%iCSy3de>V~24R^2ev{J+qO zfN1_dNR(mdhIG_?6tWQU{Cgn_F;b2+=I*dHA}C09BO|L}=^s|)hw#JM1#Yo~qq8V+ z>#ag5+X1YXzZ^XDx{3<*m%kiOK!u*~c!vX6LMi8iA9DXG?|i5Ic5n8FKDdsiCTZ4- zJWEiQ(mr<Bvy_y!#;iB4oX|H~OtYm_)|D%Gm8~($Qd0i=Yq8;hzV_dxRF=gw`%7P1 zuQ^?6HOg#KY*eW_)i9_COU{4rTcqhWpHze;5&qT{BGm#vD9t~;f<Jr!%!MC#xSJ5} zA4<LgF~W!%bcrYkQ=T{D5c{Zseg~WoDV`)Kcuy&cmB%QK_R9nLz}y$6JZv^RG$-+4 ztOnH1sV|%~OnKzW{{BkqrT&1^U9uhv71Zm267dj2DLY@2x_;)#+Whf-Yfdr7#CANt zwZ&qwsq32}&OJ#7IHgH9&|~*TggK{eV*?(x{K9U0<Z(TEyCUC5zlg)`PED4UoD6b& z!Q^7<#SUQP-JKeuWo)iIJH10pT_H?x%2Wt<I8eV%Vp-3>bZcdQf8~*`5csraSz1{e zU#OM$zmk|_Z0ZUz^ak77I$xb(pgDs-=X}HDXr=*fZfHG2Cv1QTZPG4LTO%nq;~n9s z-%L!?Xy@_H-VjoymSw~dZ|{t#?x(gU8$bwEPs5w@uU5-tdcJ=f<Tz41K?t|*3elIC ze=cGyx_B^SqJ+R$m)L#`A(U%R1^7eSrkK3tl%o#sz&}zI7=7N)30kA;=^{Oh2zfW# zsUc!CQbI-d*ByfQR2lrEmPK)zcakK{3$e;e^&q3*&127&(*6gJi?9ymR=(iYPHxzX zRnz?k+XKA8!523F?wMY%Rs)M7#(KSbM2tn&Of-dX>uihS<zP|7u(;Tc7(Oe+#H$3j zTyYh$)pW^JBJd`ktM={TVSrk#*E<t27Tu%QV=RhTVz>8g5ks2nMT|x5#YM2_uPVhe z0C#(g303KkZlEXcZ~0NOyC6xEv{&TCKG$)bu#>4;;096F$y{6cb<9c9ev+CzEI86` z`iYWi!tsqo-JL_^X_5}1+)Bk&V9Mt#!+aN=POT1LnfVMoSX*US22ihcinpGG=iwxK zhQPl_%CB4x1$PIwQue^LtPmHUGMIe#QYkz^oNmL3u(b5<%c$2n?*dr6d$6|3*y`Fr zx6SbGPOXl4r!Ko9yB^?m<x0g>7=V~vVLn9=lm<c!N<jb{0ypm8*CD!`@eYz^!-E+| zare=PrG1mvF&^hQOZw)4e}3OTuK<}&&(qRIoyhv%5`Yu!eu{SKEZv>%M~|mxC@_J) z|FJoWqj-lCVZ>X}VlUUvi@3r2c@f27(u_~Sv=C|!CTTw}URR?SHa3LW{JsjUJ5Q+W z<nxoYjg8t#{+HG!u^K$W@)8W{9()hp(6Zopu&j&lJb3<P5AZy|yL>q2Vg3)CU2u2l zmDmfv1}L|3OchsQeW?mmm(~k-KV5t`>pf4%*LxV@sUF}x6~Xg7z<a$EuYx!6aG*;k z$HALlZSAy19HD~)$dSJv{2_ZbzDm!a5xtV$gaw?yDIz2u8r<Y*!p$0v#nl&5;U+i3 z3J-T#Bi@O#v=VYNjt&vUucIQ4@|%f6^ostuxE>VW-u$%4)5JrP7I~_rSzOFRy)bzK zvMOjJwR3+@Ma}oLSL8+B?-d8w#ZKBtv$)r9>p<cm8QiDTtnh50+8j?y%!@3I<GiWm z{`XtbM^-X5=_sXJCC|_oD~9bU%dC`a*AdcT%;CIb>8^mr02oGi((yF2WUB>D^Gc?6 zBD9pUZOdkWUE-!EoF!(KJWaEND=npL+j8M}npv{%JN3`o?Z{m`dbq~aBkD}rpC2O4 zes$ch+wCvLmRAa2)jWr3y6qWON!W@j%l3p{wuE#Yp=;%mrn@Ce19OF;0SrttO|6la zY(d#2Q}Z0SmTfC#l`3Ecbi*xKTG=-}%`7>L>AXZCs@{1Qi_$Kc^B?JYr7zO`!ufma z?YLV%3U46r{wM3D)0wFo-iM!FvyPkT`qfF=50Osw<3D6Ie3hO>&!tz>TQU<Y#26oQ ze*;PR^;8KvS(t@cqZ`FpYP#Fs`J$gUki}^j68gz_6i0F4YX1Xma`=Y`fZvk6K#@(; zv8n2Nj5NwjxVEa4J>gioWlECZs;^R42Z8}GWt9|6PgVlMj%3;Q6}eSaZCeOUNPrDr zWu7KttOTActGZ`uwk?F_g6YXhVAzp7{o=~XV_-xvaU4bgg?VLh03Qhy*)u_wiQzHT z*M+0ns&Mt7sOgqt=|nCBGIf2GU~qLN1I7SYVv5{sC9;i5Zq?O<ux&Lc17<*&>uV$o z6;D=tQ<7w@L`!W(R($`?)23e_WWHPDU<mKRM{rCdUszB^tLQjFu9)J5+1I#<8_VEB z%EF~s7*iI6StA?dNgA6)3x2~yx`s7;LHcHHe?e6kiXx2a%{o)?OzA4JmO)VrVNEPU zI)FMRfN2yn);>jG2(NwyFEg$3#wQ?z>k0u1(+RnCIQ*t08H%z$95gVAsU2Z5n9OxS zr(7gAd#5!$FBacfgl92c_4x^yN>$24nh_`IAYa!5>+@36<YSQnc&~A96Ixlf+3j@q zR|AZLRUC8zyn1=qHYBX7mL*>FViUl$6r5>8>-xobQOtj}_dc>P^W^mH0Pyrl@P3); zu4-Arkg$3IOcO0BR%Z02YUvI|UfXF56SR#UM6W_0upp?ajw)mTXG(>dn2J$~lbbrF zSBI4VR6wi0{tDXeI7&%IflE=}tK%T+ZQ?<HWm#$xLulMw#z}u=6Q869*rJ9!5m5wV z?X7hwuU9dyE)U(?k3LV=bjvah?s$g`Glp4_vEu8U{9#8?Isz*S7B8#A{+4YfoQo?a zfO+{AsLP@Zt$!=Ot9W&;*6V5lu=%iVS%$71zyJW&0b95tIG=ts7qpi92UmQC9YyI( z_qQN^C-<*6*+wzyqak_}eHI~*5*%C+#)e%3+;*;KLK5eLFfa}KZJzJ>Nt$e+RKCCQ z1YxiVYjZJBM(1&o;uY;H-IeZ2f2BX5FEIJ6Nm)!8#1XqD@PDdNDNzgQa^Upx(Dy$8 z{|6kq?CYM*KAlGq)NC6E0e;Nz96ppNCEL2^@NJ1Qd1!bJU$_N0b}{@mYnBPvP6evf z-c3H2y}=&@7zbkp!1e-+gFObo#sS9Z2S)*hapq1aIN!@n=GmW66!z!=)V<i@y3=tM z7D!XCfLE{2yfnZ#xZ$@QZg`I}S)y-txZ%B-$r63k;f8l@b^5oS1YjAW=KFNA9Re%u zwp}7#pcHXKV9FxFP2zu9GpvWMMaWGU4PkN{PnLnDw~mNvPzH+gSVJnL`67`qy$tE| z^S2iXlu<u*P2IxVuBltE$Hwc!(sjC~X#QvC3jRNy*UBJo6)KJL#nM^Ftrp@}q+kf| zk=sny6<o4S*A;-LZ+0{tzOGxYIqm3{Yd&NfFLnHbOf^*NqhJVc><I(#vgx1lk1(rn z&!@(oFyKZ3U~<hA044ymuwl3e(K5f*Qq)H$(Kfmr-T!A$KmIuqrZK*DrVSu1zwo*> z&8J(tmf}##PEswoZ?22#T0V=?oCyw1|FTjk-aCZSQ83}zJ%iE2lc=)#$KR}^;>Q=X z!_&X;AAj+I8|zA+5PAK51+ut*<>boLBmdD%@DngWE9e9|gD#-E&_n12FDlpf$j%Yg zVdOY44}MG*1`s6RI^yhXob-vaflsQiWJ0ZJR((O1N}p?#rJHX6;kC7M!KsxMUDD@N zLwCK&4LmzR3z%gEx&hlAa*}famJsB%7i$3?etBr@6<*E#F8^=m*48jAE*|%+zHYj@ zq0Lvzj)Uht$EA{AZZw*~0FZy-q`Gr<@vnX&NpEdojBWZDCa8=yYTjzG(8UD#zcr>T zWnM_&lucFjjfkL_?xR1*Thu2>N?8yNayH0U$>_I|vNn31&)B-A&gqiAvT`aowlbd@ zdSF3)UUgV>Y*`%$&Ox7k&&Qd6=z<=W&Fa0^|8A`7j;Z%8@5I6)K+^n;W}{K|OP6lR z?xs~_oC{0+x7qHw%F$cr*PWFt!i1FN572rRp?oC|8S0{yDKbG>4fDitljRN1mxM$T zAjM)kWpo}8|0|uevzxU9ApNw`9~_I?+ClvNl6(6dhPL?SHH3G?+A{&ncdKtU0n9Nl z+w$MB->CnJTiE4XoGN-7*IobV191$E=u}F@^}MmXJ*NA+o-m*TrU?<4Cdi(ymwV;{ zdJcLVJ=yo-zDaAc+3Qr!r)i`Kqn-!AWyS+W!@y1joA|^a4Dx{+2^k=(gEVndk=^g% zkPNk%=$Ght{-pBu^{ffl_gzir+~&M!0+_|sIlAWhJ_d82pOvo3UKnf*P^TQqdbL_L zj=8!qgt<jcAJ*MV(LP32^=_LBqEXP2-={91L+E;h{I<fuGPyjQ2a&ubP2z-+76!RK z3c^M|9GEqPsXi0#AfWR3I5Ic~(EFqN(1%n_)23Hd&P7BFR)=YWT_SgrmK_Mf<`9({ zH76z@_=V*cH`5Dh-NAtGs{-ZEacIMO2h>7|18Mx3*F-5gj*yG(H~g3~1qF(Wh44>t z{j49Sz5}2LL4<2iHjf3yDC_?iy&qF|YYwii_Vm&DK4<2Y*G(oJK1~>z(vjcMpF%Uj z=bK!BpBx#PFjlhWgX@`->7VWHO3Af7FeNL`^m_|vSuSRxbLhS3f1tlc|EQPz1xegw zU_>i6Ah12Y83v(OH59iummx`mJPqfpL;5TILDuOG=oziew3)8-R}9wF%LIv}z-TWL z47Ng=ytCwt-p51%u-zJAU}7RH3Bvq0v{`tG?dp4B;Cnu0oi3eY=Y+km7ka*zav-NH zAKmG5ILMWr+h@40!MS+3VOu7+UN!c0*YkYKrcf*<nzj{rfgJ=wfHgusg$i;^LIizf zQTo~o`ll^TONvFHw&i=CtNU@)b3xd)ZkiV@3h{aCrfCOW^t{dwliTfnnXbP~aQ^EC zU|y(tE>!JWJxvxC7BFT>u?Ui*6eT+dgy#wjc!iL&zlLB80H*7SzZ?n@74fEzI}#L& z3B!0{VIfKDHM;`fdes8QU<lW{I%>~;o#~nuE-Igz&#dvKl_3A>1V5yc&FrCL=w9?{ zgx=D&G#fUiQxmA~)dzfV8Q?eBrF9s(A5Ddd89c;6Btq1gpY@&1>VXNgLo44iO(lBR zz;H5F?Bion5Jn60p)3zAs{@Acd{VdS={lBiGO}E4SC$KN3sD$IGS+qPkhid7S;M^% z2%!&!80tbm!U`A<Pd5aPQ~pHV_W(zdG<1T%Sw7WDxB3`!oS^rK_ba_Yk|GSAU+)Eu z!yfy1i%u;&LEsGAQDjl74Q+d<5^AONGgCKG6?U|tBgl@gVyUaW4rxf4R|gl8JI{KX zkTDu&gH32DLEpvSI#sRLC8=JoK6W2>R~@PSTM`GT*8z+<h0H(Dm7Fz)ADKQQGu;lb zol4np;Iavl{R_YNGD*ewxzEMe0D9n8Z3)ch|2Iz7Y+jwfUVhtq=rlsEpY<)^#G#p7 zhGZUQs1~15)}`vW9~!*C@mBs|?ZvhnFaEX7AP>Uv_#l&;Zf2v+LgS!ae4kp;aj=VB zr~0+3<6;*(PVqhWfQl+=+j4CR?2RJQbha!s!x`yqH3rKn?N?n7z;mnnCCh>*4h25x zEZ<MSR)w-IS^S~FVGMukH@C#ECD?Iwq9{ano!9+;uPjVcluOmBpj1?=B_t#B>UZJU z_SL){-H#q+xT~h8q34svNU{994APY}Sq3&+EY57xg-r?nGpRutqu;bu4IF2A>0GIF zZfV(ZKvV5+8p2YCGTV0s_@*RnGt>04<Hrvlnb-CCBZrS4&pgv)+t0bgQp#$CZQKEZ z3Azs5f)H4j*rqFNlLbHakbwfw7leANX$36|a#Wd*S>yH_g53&;<aa@MZVth;3OZh? z!}Ly}Radrw;i|0#%Y@-%>TSi2R7^@CxlOoKjZX>%%OonSWd*KQ77A?3LenY~Ceuk2 z9VNIK2EJDtp%;48npW9?bx19Tc~k&l{U-CcG0{M=5;Y<PT$qXp8kC-N0F6p;WvCWI zcJ9vDo*5Oa3DvUg6kXK8$b}FbbxSbZVmMq&kD3!kdoY68+;VPaznW+6&6l-8p?<Yz zFk3D|De(->9i3=TBqQtU1TMn_b<i<%riKj`V~$TepvE*SZkmv!J{!?Iganwtr`4mo zDjykdNm9zv=7cP~fT#GL36zc0VUl_Wk8VJc0?C)OuI+X)USGd(VSOD#R2Z77{`?wt zyvt}OFa>}xgXJ%w4w?p_Y48}AfH}4dMk_D{h?L_62V-aGU_X^X2N!|1rdVCwzOcT2 zsmich7(N?8tTxr)8NUa@3`TEQX;~R*0NTQrMdx74%)w0z!VIxzEocHe4#tiZg$smW z9gvRII)({qpn1P}WA>fXkNvbC`>EUBuFH_54QfKlvJ^t9#QoSQ0n+)3eu_ihY(5+h z=i!8<YV=xBnm$$%N{ny5&!n1aL3v`a@%H%uCT#IV&i~F+_packrdk?*z6apxm9L)( zxMr!^WN(kYvF>m-lmGwRdDKUziW@KyDId`qALK#U<0nT++&~vW`rn?0K^^)uZl>KN z^{+U!(aY1gEVunUr3!cK&udDtJzFTwQaWdu{sG0B{-ULXtEVWn#Y3`fH#)YfD3ofB zrwu*x-QR~}ZsRfg)c`>5eGB6ifJy~GX|-Cn8ph1RkAdD;FO|qgUP}Pr)qbig)yMD8 z8Dq4HuEC<rp=4+}=qLFgZ%~$ou8O4Igke_h(Y!@G`{)PyE7r|A@Z6+O=#lSA2-hVr zM05JrNolPjF~*s}71jBvZJLTMrhg3oivw*I;xu_q>G!W=>Aqu6_m`4|-b$9@&f?qr z@Y;Sqs#Pq@1kRn(;eT8hmJG~=?&%p1qEqNrSr8J&%q9zb%F-$@R{U^4gxheKEJMLa z+;U@(r*S^|n(cMZZ+*_iP^&G?6?_ckqBj)QJC#|Faq{h%57T2ywHjdePwV`Y`To@; z0bGP@Z1$Dmf6`JwV7D>2e>QTLYBf+bZK>%M<Joc<@Jtj$%`gDmtbZM9wIvr<=GXQh zNmh#(#M>u8b;%&R?CH-#uSRc)4?(H}DW}W=6q72&65zRolnXJ>6gEHu(OK_4kPq@~ z4n{B-IgCO_fv{((Ii)(_Q$9?}<5E<wDc*b&O3^S9lIoT9#4w5q=c=Kryc*S|BmVkP zRZ$IHRn-rq+E3EbEh@EoBw2HeVMp(}cadYSM^cvDuSt%`olK;uONgj})to*=*Pti* zW@oj@5WIEw>MRWh$mx^hvGf*h&RdiXxt{~?$Cg>v3fdyU=r2{nlC#?J58f;DxO0Or zz3EjGT7H&a96Ap0niluvtB<AApQT_3kI{VYD0%Z+3Z{vF*KqANaQOCZbP+v_K8>F7 zs9)g+CQUC?qKJ5j`Xp_eG;=YXQ>Y9Gm2`*dbqI29i60{JgTqt`15@@f%5{K^gV2}k zZfX)>90tB>+d`<0$}2{IabQ%q>ZnYOiXVin+uHN}W%1LAvhGOVHWBU!V2JIm&~(r> zF(_-FvD@V0OH&YUKhGm33@>t0&c!w=+!1PQ6(X~9Mk&+m0TY;@^XP8$9E9@J{F0%v zO3TVJBpcF<5_P&A8i(cjN~vL|8?0ioiais~Q0V2{cG2oa^Fc_g?H5av{0~-3%gdz` zlAZKkD;)(4;Ss2s%ruKd(`059$mXGAQ`cneEge<Ww1po({c%UrRCSjheB8p=`T<j( z7Jc^pZByUUP5T<^2?HdHF$zE#vo70CuW^LFrJLWr#@U?UX+v*5amG~VLc+embv5@v z^eXgDgxrwcqUbEZQg0vy;wW^oNF{8#n3H$9y>6%5ani0;vF8B5=vcV2=^zjj;LJ~b zRtlRy>LSi$dz!GY3PHGTA5$?;_}P8$swQi?S)E0YxBJ2}JzF|aT3#;YK@e_U*X&49 zOjA)5ZdwXw%(58cie+-;Sui7orVhpKm*Y!5-qek!14pUsHvoq4o>tfoER3z`D*`Zd z`QBwIJC%YGshG$C{9Wz@MR*7!w2V;8Hw&Y^oHIzN5e8fUPGg%8#*B<$uWwELglZV- zgKtzB)Lug0J8x9`*i(JVji2QFp*JBaXWHZZp?Bs*GE>;LV8+af;^y)a$4vUHWW74% zdHDn(`V`=PtYU<1a}sx(v!NJPM>Zf7Vzd-nkL7sk>Z1DKGK2z5`I%}M>KI4zPUVI} zjTOdU&YS@d$dL*G_r~GNoR8J8!ZklAXW<9e08*9l^b-ZwL)})`#CcK1f0#RgJ#-wM zLf1!~NSook(ri_FbeV3IRN7P1WFFG@_At&vmW6R1q@uWW>$M9;wz68mk6KX(3VRka zV?5sO){}S`MYld~>>9BwykD&jzFl2b;#y=^cAEODzk1zu!zi+!4}~F2P!HwkFgn4v zBbO=MA5T`;<vq;F0$)Hrn$7&UpM`y!9VG=>aG)J`1?SgTnx^Z{iJY``>JbRD;JE_K z<Xl9Z&QMvL9CkXxNOM$?2hmQErdcnU3m$iL-7R&G2%>tYRxFy8R;M00?;IG9Mk6nT z%rHUBGp$3Ipi}5(-&28jt*JsrvQr*l6Hq`$5Utm4K)foPk1OlYpP``WZ1Tg{Psw(w ze104R0A9fqMK*56F4WO=O|w*MM_1mov$L~X1KdA#RP<f3q*kkGt6~<5wJ+8_yXw00 zcrf=8OVgqWsMJ3i)&}|NQLN3$CPJIw5+`F#YRO~F+l(oBn^2XMKA|ZJUV5{oYV_OO zl60=X@~+@~^4BG-C>kLzg#hk&`hSI@=(6-p&c(P;TSNz9)p?mz2+2$J$Ex@Hw&!2J zLgyi>r*eJzTO0jGlTqJ4d$$oN3Lgx(qCknc{NZ#TQ$)Ng>iqEe9{P+b%XEI8%Ch>5 zi(yr89&Cc3GMUQ#J;cc0yk!lYL&z0X$?XF`X3Dl{c+3`ET-k)B1qjue53(Ti38$jw znV<&{TL-aw#`^D8Ps4JC{pPoYr&YcAlBWLmU|y$!RPbvx-?MEYytvn$DM&<xt7!WM z@MJx>q5|aaJ5{}oas3$+KqXSa_dOwO+iL<e3lgZ;4L54!|Gw1`Owa%gwb#KcP;6kn z9c7gD2R{g9wLbIJPZ97Cq?Y31!Z7gSmuEB#jO&Kx6^ou`=$rx8W|oI@<q|-tJlFhp zh>dLJ)Tx!sh|^vcrOXXo(=b*{_H$}6z?x?0ysX6c{#<J|mX;b#O)sJQI=_sT(GheG zJ?Kk0>Dxir@S~t8vhbuNi?{6e=UmALS?(u&I(lK??+SWa(S#6qYRVm0&$(b@+VscX zhFd9UhQ2KD1Gn(EV{8d7*QnrpIADlzqsF=L;2aa2j~Hu|OfscaN6WeSvt%tu-i+TT znTsU2qsAmBsg1l*9ywO75KPR%$+#gg)nHo$>`*c`YVK$gx1u0{d=#NYgdjE{+k|Eu z_E%DtrAaErrq1eTn-CLY#@>CHoP#HCgC`|vC@wwz<J%JM{BO#R0~DS-0h1}}-Fxl9 zlkntt7}}S{@FYA*wi|;d_x5r5U_W-v<OKH6D{a{X3^hGQV`{yF{{@+zksCr64)(&p z4>X;qw+Z-=RF~%DEBPQB)FDz8?0}3BdFik<(M*$mf{{0qv}ppm@lT&mmuwrjiveT6 zQr&V$$+p1(LcjsrE)mCyFvfrZJ1W?AspJ5q;1-YlF$|vbp`4GfE^VHRT@JQgD!Q+$ z!`_L1+M=5%LxsAuhvU>q3*zL7&FQ1N(ZdK4bO$<AB@Dv3yx31-$MFaA0!qG18u41F z94rr@_z07av{}H}5-huFUkVTmI6k!N+lsQS3j<;u)&j%85f>Up05h$D^#(TI<2U{J zAvfMO8R1(@)7Ta#%xr_>lt0crx9E$vYti-i#|Nz$Xv0&6$iuXH;0LFdOr5k<K{uk? z(0%b}iBVI?z2+?Sq9pa{t}xO@%_D+3`_hvZYlD0{8>8EX5$G_kYCJ)?Jlm<+<2tkD za%Jl)Cz9mM6i`sdi>}Ah0VFrAz%8b;<uaVya{5UqmuL6ag>#b&Iq8mB(*B4c93cqk z1+k9KBwbo9RI{2$aD-javeq=I#|wm>0oI^3)9f}mPT6W}`gf`&M`@jolt8IG$;W*@ z@GWMxVWu@`cE^_;2O6lp{=k8!zF*Dm#M1O{uOe%9FN7o%UHvwU;2Cr+y2<)r#M;2X z>4gqz6e7@Cw<H%9V!}@B0?MZtPtx3kiuFQH^$lE=7&U~Z%G#0HIdGi1lX$=og6(jl zy;Q?k;kuz&&cIX|U=0AwZ~v%uA?R&O9=J}8Z<ykcX~0v4rpYh6ESgz%Vxg6kPNt5n z5UKLBKF6v&PS+KH>Fm!y*9@Hl9Q^TxbYxt5;4AfZt6H=F=3hbncZtSZsqLX_80eOi zMv>!8h=@hG@eLT{J=j$Zf~HsECezgc!6BkieRDxIh?witjSCTotSEA~f_+9+T{jda zVNDInj;-i|^Z8N<0vp{;n**q-VelNsqf6tUa^KPs_p!{Fgf(3^6lyZYxybpAUXu1= zL8$roMk(s2En#^x^jkU2MERKwVmIu@&_G_ftQ{8?L=3pvaqY74ynQ-^$#e)4AbF|j z1fGec3!<GOhU3I=x(|^Z5V3VsNAe62U_=IXQ1g@6>)z`bI`sydV(alrn#2<2w2A0H zvP@yzQ2&GqSgOV`I;Xa3iZ3|dCTOvO3Sb)e1+p7XClV%!N~NwHl~cJU1Ai1h2tl%} z6M-IURYi!9Pd9NY9yFS#(Ou{TvJHA-nDq=U?Ed6Zu8z17Qh%kC2@E1`ON=vVF%7H< zH`HXb4zC?DiKt_hNNlKS$C(iZg|0juKL|qDtkpIiG3p5egw)(gVrG2E**#&vyry03 z>j+;TGL?g>vZ1QJR8PyDoJ7VtU|K@1m6kis>BtvV^-9tP-9Cf~3ehY&5+UAeSf(&4 zzKY2*BpZ+>In;T;fL$lxd;PLjgv&)uH6PwcQ*b0aG`?)A@T(gk7sT@2t*ff0wOX2{ zsxvd|A$(%4d@I~n8_UawXJ;^URO`&X8&1PhJjKRr8-MXLo!Ai%%U|nPHXvu2QaAVV z!DdKK+sHQu)@y}O&mV5SquYzzckS${wQUOQSyuVAZN2!2YjufBW`8l#t6FqaLx`wQ zVZR~g_^zw1>WStErx8x3tx#dr!5eB2t&f-7l3RW^UmvOh#+?v`M1!?%$$f6Z!6EFS z^%$r|eHc2rQS|Qp)v;~CdHbS*FdNI?)?NKw0*$&dQuupRBv#D)VG1oWO^Izf3&$`) z8QMU{^4J3)2=v<zOnIplTv1rBFF5RHlu<T85uy_di%NCaELehPs&fZ97ZHTeGQ5o! zicJL3{pSlcvXxVU^V@iVtE!=^vsx@Te+_~#<L9?Eiv@0<D(vI9($N8QJSKXBGQWXS z8)jdG1g2)!*o3UN25Z0`^U!B;o-rDyjUaqzO?{AKOE_fx_S#j8bEz$HZjB18bjcNh zmg|NZ9DNyP{lRV4gFYtz55{2yuoS`@Od&51=VC{24w`Q5nT8JGB~`Ug^N@3~EjU+x zK3pf4ZF#WO-cWS)*Kq_Bq#_?}qf6)o2tjm`13}0_OPOZ2R|6rXhp`xT*+gp%plo3F zcATIj1$N$A2s=4zxhG<p!560AZ`&_ZIPX#~-1l4E!C>}YA#A&^X`J6Kgl*rhX`H`M z2-|*P`k^q_nr(TWz=yUd8jHB`UV_VkiQ2$q9fLFNb>2vbmoZt^1pP0?`{!FTVU@A; zUfUL;&$*`EZreiK&bg+&(6)tmVfr0U-w{A<Zmx4TnC;_R;g7h{(b#(yjm3X@gnG#% zRc$dO0ZWs|uxLh*VURg_$f`2}(qVtPFO8b+E^vNH7QgC*f1!$KhSwuM7X)rJ#vHvB z={b<#pL75PA#OegtA_y}^a?X*@nn)F^Ee7zacB)O)m6bd=!_Y)(O7zWw7Ko}ZOX#! zqU-VZ?c97H_uQgqzUkLo2ujP73$+@1Ac)=go(OzU66wQw9tNH_lY-Cz!s9K$(^~|# zX_<AR9Bz)<-!OFTQ<o9)7^PG`rRh?#{~>GBB|h;XxWo-zQvvupUXsot76bj^OWyI= zh^lVzXOE=ckZ1o+gzhX=7-YS$Z|R`MVGB2)$hAq_d^8dX`x3EB<6EK!{d~@@;9OA@ zC101At5j5pDTbk`k{0LH*kjrfhMCqN@BUsHX4=abYV{ssS8V`1%jj}lFP>R4G*yxq z6N}YIZ;d+v?%Ze1vDRi(Nvf8q{nP79ONDOSZ4vuDz5GP3ViibpeqdrWq<!7jbE+ov zYxyo_4N4_h(~U3!xPIdn{URs%i@rybHQg{MmDtnyDZM}4FtGV*S;U;*9CMoy8Ot&6 zNy}MkGL20WoI|M`aH%#|E~V3S2N@mnn80|aEH#?i^sno022`|WV`;0H>DaGp2ZZn# z#;A?@5v_K)2O(&hK<6cT@@O4`P%UN;_UX-KNMb1sPOwAf2Vsj1@_xp}RV|-U@CJ0a z0(y=}_>}>}xn`?a<<?fgG64$3*+=@vj`bgzEfxSwtFUG9Y9VRPeWO}5O<-+^;oa33 z+6+LL#p%bv+&5uCTklOUEigStfB){80OPP|foT<Po{J*290N4VS`^LQT(C^AisAHc z7<1j?%?vun`;7IEcYxhobY1pp0=(|bis@}iJo?+YzYSw}2Hg<1vq@Q!HvhE(z6<d= z<wFak&UrBFxo-P4<*+0ZsvEjSnw&+QT7lagpe8t11@!g1%?}h$a6Ut+3UaN2bEs73 zU3j;lYeXhgzmqBr*rBj}r6)-ud1?N~d#Zyj$ur)6FBZakowiu7kpa@#DCSwKhbm|W z&3jdCzKD>EdP70ufqk?agz@90{_=iC{5VWAVU6Z1O9@l0uyG8Z7m`#M22tFYhQjGc zb;bfYqZeT0luqdaeiATLINibOn$2bgyRlZ(&NGrqqx}g?u7K9Ah8GKmdlz|dFSB#X zIs{?UBfIfz)@-^89PqsQv$7ws`SAfdfDSQRS7*MMP4-Mv+BW8sA*q}B%Mka&mxdmv zd&PF)Rqnkj{W5EB`I2eA=)eJZheMQ*SkBK7RO2_c8gW?s^G*I}`qLm7o;xS6((@qH zh8+{wg9y>b>K?5Z?1Y)Z2;yiGhn^FVklGMJ6h1U6eFUFij=U2F*^*}%hT$=096#~M zBPWg<jCqC*pr?D!Z@bij{~372U@ub`H&5Ji&k2h&eq7NsrF5PduxA+F^cOwDz|=G` zHcg5R!-IQMjp_bgaW1qk8A8VffPoERoaempq;}t0$FPSMQJ))6<FkN+5C@3wTke2C zYs9`*OyyV?_lHQzT*3KheSTh-Quih4^YiQD|MB%vR48a)|GHKvM5CeFAMMZgEj4<8 z!ev+E85j@2b}GY)W5dt}hxvW$$IvzCEV_{EW%}7a`Jlg&7A9nwNB`OSA!TttE09&J zzs~l`>}=@5ixq48bHmx$m7Q;WXnVQ-p=SV|`A~g%`$H2ED|<|A@Q2<w<3lKw<_l^F z3Hz8Ym0%P>eW)mk5{>E*$us10lkG;QWDOx)hPCOGHRF^ueK?{%qjuG36Z#<B>!>(3 zd`>W`eChxN!`pAcrxeP>=iqKP!fQG5B5toKM8<2|^F*05Ad0@-&Gs6WiLz$%7afTi zKrzzSUxUs+$Arc{pJ_e@4J3o9AE_4E#n=gfd8PAE82dr|)pq>Lox?C)kqOZaU8Ac( z7E8m<P*?8&+76kyCaQNrCdwF?VW;!Jgd4!^*^R}x>5L6sqcS1-TP&x+J|jKc8=a?A zkG!T<jQ3*fcq91|`mLXPfSDHFm?bI2+pmb=BU-%quQS<{*wdpoS1Rtw@GE!>myv>Q zMt7hGo-jzvb=0YJOzZbTZ#0#mEZT>&fh3qR;h;f&Y^~96MMu%nCG^<LkP{g`gb_Lq znN9eSt~o<9$;fm9MkW2Dvjz~PBe!er@bX$XJo&a#e(KC0oIY*YHC2i{>zlmU#M5%+ zeO$W%jrEo!wL{kM)E#UB2|6YMjY2*Xq+9y+=sF1Rd)Y{EUWZpX5IL;ytpa<x36(Gl zoSgtB;?e2;Z1`9)L1Mb2PB;tE*49=C5K7_3EJ<k|dXB)sJ=jBMbR*-rp=o~=B(11F z$SM0Itdm+qK0InF=7Wlc7w^GJKFG#`^A{PqCQFnWZ~Sy)!<CsC8B{I|uF%2Y`jOx~ z43V0Bm;LrTX-bqDhOWtJ_2-SgADYd+VsHhxDwON940A4?X2JWk+PfM|t_SkGZnKJ( z(c$z>QF%ucX8Hfde7akYad7C*_<F5*A8Ugi_N2~dSwm~z8d{bhMDOK8ksqCQKSlrn zl`m8KqS98=4qqjTB6<#V`tqk*Gns7@BD)`3T*RM$feB!~KyOTf7aO|#bXWuvR6t88 zL)S{3a~R8=!mzA{MEx%2wvYn?;;R%l83&f;A=zhD3>)s`?-N22feFE4X@_qL5ev^X z;pLyMb^2=f@`Hs33)5IpR((lPB!7*uwfCd1!e~qGyAS<NO$bS*d#3A}u@LZb)Ad9w z#Prp$`e5O~Li6nzD$1&V6}{WKy^)F@wm_hgS;}w|7N+=K9atibasTD=U)%&Gq^GqE zNt%Da!OIEb&~0A^_;(>}`@)M``Ym14s#Ud4>YA=;m5N#;k*4WdrJ^3!3V$KT^=g{b zG|si=Lfxn)X;tT3Z!Sc7ZTY4YWl0FzUXSXkazF^%ULs6`_u94)7e2fl1m}7+O{!XL zuAy<R)spnxJB9(?`?y}IXu75~<VdenG)@2Y{%ZBVu|k(@TZn^<HyQ`t4lF5D*G*90 z&=DTpLbo7meAYn6V~Q(Ol@tc`31Kgr78aHwQ?Xc|xKlRHQ%S9OAneJL#(uz+S!CSh zW|M_m0wP<<-Jvj~s-5oRq{0cK?3`ws`P`zaF0j$LyHca?%2N`lD;R5<ZYcG#Gp~h# zI}f%M{(@jkl2pxjNv(*VCJnslSC7kvfCF9Lp;ScG-UrZew2f{>_oL^bm!a3AcSxY( z<_pqnk<6E}C9|Rl^p=~_B+YjZ;v@Z}WjI{nmQ)%jx{L!_voR~cg@rXZ*!_C%Rux5q z-_aBWs?`qA(oaehI@K!d@4V^=A7|Ac;iGqdVoPeYNVEAMJQHoY<n+41hc!h}6m2j& z>xvS_CE?D_4sP5>?EBDYxudm`FU-Vx`ZmJd)lPVlCL!nLX@h*QF7;Saga|f;v5)C_ zBi(Lwys@nS6Z6^i1BFG}fxi?kdmf?9zz5ES)o$*^AR<Opefsn-SRq$5>)ltoD`g<r zPPxHK#hFNSDTO^Z|E@8|XFP-ny1+vPj$=~fsAs*bM{t17JbK13^*6bWds$D><Cya_ zW236;nr(5~OoOOkYdV_ovbts$8W;n%Y)uD<j7W4_rlD#a$FQTE;upH1g<)acs3psL zcJJsOKYZD~FX&K>r^zOy!WzL<X<UBZRRXO&@2^w!=7WrL{c&BtA$h6%QCw>3FRl<x z`|uT=pS)4$3cFo5j<N{`du<TOKYHG{I$*1#G;0-c&!1xqW53vk{g^KQh_e2*3Zk!h z(|s@_6FO6SaxuwO<2rM<cc8=2JfOfo8}{g}S$0!KBes|h2ndB+NWQZBK<83p0i@Bl z&;UGB57!iJlFYKIR1}nRs%R!PT?9K*x7e0#GFK^lXi&4v00wru6X`J7&oj^^qfJJA zYv0Vfo3pbfyN@9ONI5<%@0p#VoA*Q#B3CE)06c>XR7MN3nC2jK1E$GVuvuR4nzF)C zDajiM2G#K4;NOM-fvT~6BFpN&2@4v4Ip#!`$4vXa<lw-OWWCu~nEuW}qp8bqS(7C` zohS+i6NWcP`o0N@qU@{E^!IH^vdy_-5ujL{GZ9A7)d|#Lf}W3l0U>vg55gb}Lf8~x z-IX`%yRZ{>GRit#kCLVkc3(^TV_`R`WLQ#B34585vr;!ZsBvhrWESONVl$gokjl3h z)-1eBa{RVp3O45WzsFR|Rt5{p8c4eC0W=j^H(cBE9ck88K*HGdXH{XEvW&5z>9S0y zA;|!Mh2se5FDz?BRqY}ps_NOk@8DUFOA=fMFza(H0d|76&6$EFjAI=}wxUsxWRNK{ z3{8_INe1rteSlh_V1PddP%VVIrZ57UL5VC(&Iy(Y!2mL$hN0;)U?7xY?zk(}Vqo~K zTB%?fib8dR5o-J)Xa*&+E;uKWOem#hs7MGQiqO^l{zlY5OI*yU(_<mjba)Z;rCVM$ z^E~MWVb<riZw&`|N|`@NurmvMkA+g~XT30=#irQ+ITV@;^78WW)xxh8%Rvac68Lw= z&K?f7hQ3NX*}>y{_8cKEPC$M+;9K8lIi~(vZ+?CiS1S2cMvpBnVx|z7<M?u22=G=& zJYNOb3rRDU;KXow=s4#IWpoDW6MlQARt2I^?vsME=9IJOMd;P6;ks@eTwunv-%Puz zC=fnz=AyANtq%GX*Wn}+U{G<WxwdMr`|_$~;n1|8vC{NhfFO__)<U=7|H0m&?fF6g zj#iqU2Z2AMA+b19WD6#o3rALnVe@Mt3YcaXo4%-4TXI^h>VBGyxzsRyN|<hGAcQZ6 zoM=~TMxb=j`D~gc6PWbTJQ{KZ1(`1*55_6B<zatdzZLZ0ARpv=v~ZFiE^hT8*!gzA z5FV(Dm8W~_gAoIQd{=wS-sAv@;S>pRT2tS>mY}mEn_}z_U086>VC>=`pGG>LFZJVW zkPp%u3>u+SW(%ki``KvG%P>t>eR|0zR6AkYCp1dzrKigla8C<{H-aHyc5+KFRf)RX zNroi@ZhR+kg1{l~#8++yLg*)iIH3z+%U@1eT)^-u8k)9kZrHi(IAGegIi!|Fu{^I2 z!5)%P5gkLQ)o=I>|2Bfgtq}s#h=On(e|AL?3V=7Urz&p4VB|x|mz|F1*tK?>VE{># zJdXs-?Pxe0UU(j?IxYyCRs?LeOc>tNpXs5Jl-3y%yjJM1gCA$&TQ4?u#T*Ne?Um>8 zE|@7JD4O%0E^s>Bwf6S6&3l*;gw0)R_ws3~$8|RVJDy=U9D;clnAEgx-sIY!D4}c6 zt>eflA_M+jYAP+*GEH1CA}QPiF*enPEUnUkdPXsB&SZdXMeNfTN>b}oj(n0JrIQ5= zkVSkf|4LX+Rn-!P!DL2=6-yG)T~{L#F_<P%CaE%WIM)r|(2BBjIAF4*)i|5i0Bfml zmcX>++WRr#%Ze-nRU|`DFVZwsebHrjTDpYazaKDUStgVi)Ur&)#u5_%f)c>0DYKHs zL(LSrX)_DsABGC&Ah}diWhR@`KbLp!{n~<{l2H&;7Tb}kYT8FJ*Qmz&3DIFR(&;c6 zj7%x#x+ER&q$r<W&`V)X4!w`QRO)~F9wR4BDK&zypEk=D3sv#`Qh#yE5OaVbd*J?t z5R`Uw{kNewTP}m5=x@*!#gPWFL)Da|Pj|7|>c5fT%d6>~%s!PTgxQ*m`wqZxTIfcH z0Gjk60_F0otSgG5=<;m2494n4TM@>gU!BbcecN+{`R6pb=5aJ9s~U5WQoj{wRPBoz z$mr!WNNp1L!x1(#TRfjwk66tB_6p;ENxaM+=VH7%6NBe92>}nEa6BG&khg0rFo!^L z3H8$OvEV$lmKF~!wpxX<wpADp$K&Z3dYgOY5SvXCI(b4BtSye8N62lkbD8{Nl&Hs( z*pL4dH?T&fieZ2w%x|J5{T@0ph~+uEwBUpF<>k7`RqnC#UQ0FAf?J2YWBxAMl<5K) zcO>Vf=c7769jmHIM5dlkLe?MceQw{5#un$I)6qgV1XYt`!Fi{bVfD45C(xUiHUz$9 z)DOaZG#xTZJV_*=%nCX}S;#JOmQ6@0^XH}xX8j~(RZXQ1xo!_yAW}N>Q%O54E08u6 zIiMlt2?2-|3Q_*VC}rJRjtgdkc3Bm|wzWcqHfMY4O<E}!I#R2akfOrO(qz=)@0#10 zkTD4C-#bsA@e_%cFEsPLD{(PBS@t^q)`!va3C#q5XeyNX6+f`6z`Pfev;<O-EK)YF ztx^#>EFi)hPc;idlUX>hmp86xL(iV1aet7f721>dVVm6RXVAFwxfl{dM9;c<>A$GU zp2*8;aoo8s<+IQ@{fC_IwpJFu**;9S(aq=q^tjYmTFHY(upoKcOj!^j(y1rRQO@EB z^gPbB4!t}{WA7RANwyEtuGcy1kPkvICR)3B7CTT-#Itl-DpL3JS?nSI?8xxq;<4>* zU2nQB>SjX?<~0!h+SjS-mZr5&P~Ffpw$a*lWrZ%Juu|DF{R))Jvy|mhq*Tc0jC`%w z+6L=5>+Cl=uW4JV+SW8xtsGQU{w#{$-;q1$rC(#DgSsyQ*Zr!@P}-;aU#e)%{lHHu z4<#Hx@0R}K!0F{SO-`mq6EI<ZC*C#z<>Nn0#xd>Z)jxr$bef-kNCOt#UDs7<{*$O_ zsv7TIzo`9#&ZQOie~g?*_o7$5t=|Bu-LhEyjwOu!F-1{2Iei&l@0={rpK-%(z?Iz( z&#>>JhQ7nx;dyiqLSc|~dxVA-EQV1YBpx@r=4<?Uobd(tV^bZZ3?*M6@ecKTumQAH z-l(gtXK%MKn(aGhMgay+hM$G*P!WboM1H<ogY&r;+<M^!b4TcLw6z3zjOg)#U9aBx zadZQ^9X*8JfKZr6$EUTwlE*P|N|5z(_j@`c=zN^wJp1YQ#>-Oy(oWCDS7|&P+*lzv zC;3C-kRu;H+bIt6=zOA9DfqS;=U<n*o%Mhvrm;dZMjf<)q^sVGUaw=pTAbWjHfE3r zdD&-&#?Ha5W2`b4kBzc?YpE5E^iA3#NbZO}x1RMvuz?Ow-(aLl7X}5zy^(Qan3))j zOt4;W0yDC<eB{ehrXSztd^?Q_r5B__;RU4_H6-t9S3f@38p&Y7uCx~&s0QZt;s0zC zb^v*g+oFDWN^d*WykhO(6|ce`o2uA$^|@bxP^*`BiPu~OzV3xV1_SoGHd$Cpp2m5A z24x3&<9=eZ)n{bypa7bZ4Z<Mnciu)~zbiTk!#?VnFVcDWx5J6&=VIRtDh6Ycq-jRt zFZ8-~&KR$Edy8ITXyV?XMkR3lcy2Cso$K)o+bF7M+rIBsYZh)UyIZTezHi$;S4NzR zA0&gBKzsZ^aDJi)xL}wLlRT|>C77g|MUX66mSszVqNz%Z8HT1w%n^D4Ls8fN1`OeS zm0)6+pnLnaxbOZiz|#SQK`{9$l6Tf_L~pQ0g88;h%=f}5V!H~XSuY=Wvcb9mN$VkI z-Us@8QBw(KRiQyVN+|W?Y(b-Bd!AjbeU2z4CWK;B3C4q--0^qaq$0)U`B%UY-bhz* z4DJQ4u6v#ira>@P^|IIHovEeXsmJhXo!+ABNwygwq?LiFk4|#Y?(}l>HuMqndGs6T zhx$6yr%SQwURL8htc*dru(i%UUYEKLb@|zzA8X5f^q)R#<)`6T1*?$#PId16cDDiM zHgfmI?z!WYgF4=rdU>7Qp3wA)_j%A|@5uRJX4HLhL8R~fc9!&ihZOOQW5M}$c(*RR z`xNfooUe1Y1GrDr;hnjUL!7pkkFM_H5$quc4bUwJwHh*bL(U%LZu^+(henqRpgXTc zq?s(t^g(|m#lxv<i9UYqg>AYw+jq435Z=f&zu2u3*H1l8CL=A({owHFAM_x4SlZN3 z4MVjhHq5#@!H>cOc_?AQk3NdNVx`IVr%t?0OyY_ANg85~m&;JdKCvrKrI)){%=Y41 zk8uOpzVXx7e>OG2xlg|vULRlcTNCaEIJ9jchPFKv!nQ*k{D?F*bD2SQ1*{U;ei73j zm37bMGZ>dS7ahTQ8RHr5diuKIy65sl_xyra^qQ}Ke8KnhrdP});nP373cjv3nBd^? zP>79pF|=(V!p8&rJu=<Qh*>viFI~dc^oP1G*S%v{?hX=qyFpjR$2^_8-DIUoLcN72 zecdoNecdp0f738@|K!&d&^W)iCdf=#|1fgVNzW!#&qpLN<RezOnStN+OvpNGhR}w) zb7E{R2#`*Y^}^O+1lgX<!B6o+&gcH7$Lm~OhBxjN3C<N6{Hd!^pu7glY~E}+iCv$a z-PPdM1Fu^%M9b);_Aav#c^S>^HYOx#llg;;abXIok|C6NVV3j<IRTD>zFhn4DL^g| z@)o8AJ<r>Pe|GHUeH!nt&qYik>W&Gj%9<PJEX%ZC)?g|JFn3fUv1T9R!xF@B%V7!P ztzG~3F;;<5;J=;2()v@Z&mA}I-(4r)BzBE#51kdcH10N;iDjyj!xd7uoUk&hCTYG9 z1g1ypv!5jzq^y)q@G<YC;5g+m(V64wEX-~ioBm_jVb6b_Fw+{89S5?;2KFz{apAYN z(E)TfdUFj(b|HC0!h8t*UCNxu1C|)G;bjtsQfmeo-Q3O;e{wR*ud1M$oUX8OdcJOw zCjB+&yK!h}h=V>IPD`xKI%~V)_Phtn$#g8qgc3HRaSrz(&f!Iz0T37a|DsSfF%n#s zI2pVLBYA^|U~!!te52<)#7~H=_|*?z-s1#}P;&Up&#uBUm*l!++>c;+k}Iw71Fxd% z8)bx&dP2<AlCK4`2j~X$9Q35+entqeh&jwN!Iv*pY_@us0-u(2YEUrn2?SX!|6oRv zewT|-aw`xITt2fs58A3Y&q@6AtA3Pm5pcyDBM(Tp_8b7S>nNOeDggfoCfm&LN1MKA zxOWeqaOA|xuhDf;sbTeftAcYxk#hBW_zCz5@=%73qg&9U=rstrgE|Pygh;KDCb^EC zbW4i>nXJ<)gIN7(lCKH590}jXb4WHpN+)D_lZ>W~R6a*iJQ$N`n6|wsO99sUo+O(> zyhtyWTCHxk)hZPYLX0&h)G7U1<~#&U+ZJLoIm{UYy!qdgwI{S~JUrJ)Y#Tls_RaV| zrFtz00D_=aFX{T4+-nQy385>*U92*#-Iw!<YC<4hV71TZoVwM69Y>R$rHC_tgHVBW zm-f(2s(07>AUIVG=ltMP-w)<mWl@0#@61J0pj@7P=N$jLyD1PkwK8bUROExMq86UP z+`{cPJ=?eS<?=uOGFn8pphwUvYIbgaFwG_J2a1O)!=V52c(`E{pxSV^1qy7TS-K?p z--pdM_q{c)&WORaEM|x#4w?J!`DE~Pm~Xw0$KmfPLb*KaoY@(86-`cA5y?{w`41dE zcX$bL<EOwKHpzk1i5c~~19*BZXLCI={hch#B=x;;IBZ(xbofNTk=U*4IS01kB^p2Z zIG;^UP>5EU15@^7M3|(`3sL_eu+3(JLobN+jJ$rcP^#gGU4d)-5COmj^^Rmu?GR;+ zO@HRJ(qpXU0Oz=KVhHuV$SBzNkHG^@Q#Bmx$w}S}H8odWNilWpNgA&~yautumB{7f zsBfJz8be-N7=TqYF@3<-wVGzp0${d33OkCefJoQ1|LE$}guvktcG%UNa=BsfaL%Mr zE<2ig*bd}%OkZUfuHm^t*M;jDu3?mI+{07_ZJ;f5qX#8>_;G)bv%w||)}dE-tit&} z<2eTm@^`vxF{3S3gcr6wCKz%7f}-W#;#x%v+$I3u|6js4#mdn41GWso9GURKx4yq9 zFh?-KLAxE`r;56!D4JdjbWtb?QTicL&RRcN5PEQd_C%6!2|p)DpG(cLwqd?1>SUc1 zEcHUOuw?ft>UDdjWu7gMHIlx+qQwP7;WYqI->-#^>bha*x~da;V1au5Sf&nFxFR0= zp%upl&DC{XcQwy4o~PrK9U+`sRijK<dTRxB(IIr2e=}#`Gqj4WanbDRfIbKo$$1&o z+C};9MTdPd2vv=Gy05{|9s>Zm8D02+r2g8z1M8|f)U+XW;ZQJ5XldGi{|1<lj`iuD z2~`G}Dp)hTVkW9o)>Bi-L{m}zMQ@xV+MfQ&LDf*23)fT*zIaAeKP4I{Mcef5nPIvH zGJjojh>oLcw53fOoFHIMhm#<py>YGX@5dfZ&LV!?&*B$6{4Tb)8X`Zk$l_Y%Z_%Z- zP7yr4y*>WV2X>|v!?6VxA&<7!701KS^iLg86k*eb?V&z8fHu)FbPliB(fuJSA9Egr zHx)CP>w=*4GQ8{O&3QOG+dsT~ySYz+?wn|oWbttUc%fVZNVlS4;PhE=g%erQjm6XN zh&$0kU)|Htu~3p;h8ZMzbmb~{M-VC#HnOPkl{-p+1PGDtC~v(tAC0wSun@+zE@jju zgn%q<94172#Kz;u4QR(pVaXK8QZn*e)+VR`<ipEG#Fr#~){j{~_OsN_`Z4k3j?f6? zlO)8;f?|?gxj5TOKFInJpA~<V+DfM$fypZinGsdfuJFY6c4vG0%Jw!qfie}qQi>oU zTxYDoYeH~7gs9#rDppiq6{F!l!LA5hAT^w#bff)k4q=QkZ|`KIO0zwPr12)Btji__ zD|aPGKm`~=z*nHY?qDpeQ-^R#{hSrjy}ZLkZVs116i>S;ie7bH@a$?0?e%8Ws<sEN zTh$c>vUpAm_>;WFpKie)n~xnA_;P16x}t#VR$s1p05+q4BL?uamsedE6h)tz{#ZPV zcq97*Q30)bhy+az8jMMk<r`5GGM{EMZ{D)M?E4yZ@ci82&f&Rv+<|Isp|en{_UT26 zf4N8?8HW3Ju3<<45u8I?Q4Y_|V>~~1SWy;gRe)-3VJmxhf6`@9e_~naEkFpP`qkgS zx4|>$5PCU6F41z8vRE!s3o~CTF^Pk4kkhJ8EJHsV{B6WZO1Kune8pymfT`AL9oTEw z=o|IIAoqamz+f42xyJu%mk!e3XfW5;N+r#AS<_;+%mQChWH(AoNr50B)Nzu;aR~_m zP$V;nT%uq<pu}btTzkaQgu6ohKvrDSWW)=&L9B}2vea0&T(jsz&AKqD>#G6LDtg&A z%7*D!!ju%a`IN6Q_rL*{Y5pnA@qLK~Z3jYCwpIfIew)-WuFLHJNU&<jY6wm{ppx%9 z+835h*VbB_fgEgOP4NOwywuSwPm}dU$I`4inelDMNPLyLeN!uYmSWT$%P=j)wGl!b zVO0E?zTv_P=sxs(^cwWO-Y%&*5seUmeo3NB5VWj~P5J1;-qNi$(j|sUqLI=%K#67Q z^(U;CIlE@tI1{0PGeB3;+kHT>u*QU)Eg$)c89pDB0q)H^Rkd=_1TZgFR8`YfRdrR< zXe7?_m0}#vUfZ*MvV#zG4eVV$aA2Jw36RBv(U{=}UPZ0gU;n74Rlzi&s#Y&3aeC&w zlNm?a!chJwOd8bi8YB@kmzeG^3Q`GP)mysN-mkMhqZF|l2{<(r8Mf`(06RfEnTgu{ z@)k2r2f|KDI<d^D$;iS?yf(Xc?Q9$uzv5_<JdcHPG7(YTcej`~&|$aq$dH<TfAswV zdg^NoST`0DeV->|?tc8aJHGe-2X}8TL2o%>o%%<D52j=?$n_6eawhDI{{W_ILag?~ z%CFZ5EusVHB)SRRg`SIERXzpn*!`2L{^s;&F|(V{ldYslToOgZE%~43Wx@GS%U|t^ zyyDYG&Y>=Gf!lt>xtK;U1aoWxX>-8wgpR&SuTPdOh!5U_{rAOE;)|&!|2T1x;~Lac zsP_rnIYA@$Cj#M&TTXGg{*Jfh?xOHLRE{12e>}PaJ&0b8-t`8ZeN!k}=@0ULDsqE4 zK9-V!QX0xo%XHc1Lwpxyu}W6yLMNtnF#!irfWdr2v*m^ohTo0bvk_IN3rkznVBSIv zOBwtSQx{yql7Yn~7`zJ6?8^L%>t;=s_#)ST?L(NLCA5yV>;zXIMX%$6k)wo&&4Y>g z(C=u@`_%o<&W8(&F+wPZ14<8K-y(v!FiZj0=D^_9m`frPzz=e+CSZcWL29&^U_|h( z`8elK2moEH)&`spYE?}K5KmmXvlsYy9Pk^#hix#Uf&u`GtE&t0XdpHI*xd?rlh2ps z4z(Jyvq=)la+oBuvki-O&L!U{&&{^^?A>MSz4D^ADM1P0QYAK%jO};lAP<U87q>L1 zmoIpxPgjUmc=NQBMWlyM<oFafi((kwCMTPW@v^1Q@${aDUX9+{697iZ%c<_~r|w-B zf|9OyVRy<}_a}PdTA)8J+@d;m6+W$i4*BUfm1Y>gzN(r(HdPf$<@ElvTxx~>1Yo%{ zm8vz`|CG6W6~iD1o4;?Ws;Zh_o`q65MHcGAz44c#H=_5VUq+ur-$K8Q{uupvy+#Z+ z_wlSpf%qo^(n0y<mRGE(!e`&V1R`Tk_m@}r{jF3cDQAfiyCw+JEoN02)4(nH<Owme zBzmF7EGG%y#Sl-DH$L>VG2fD)=r8e~)b<6X#+R1bSxgP@C^Nb(d5h7r0GL2$zc?@i z+qe|qp+iz^oYRk1*f>wGV?QCP19P}cSeNSy2M$H_<%wGn|16tQ6Vk*MI^Vg+0<a$F zGtDsXYf#&!jr&YPWBms#0PCTWtZL$9liD_oJ__I9y0AYQg|v?F*K3{>nkttb3h&vm zStxK#O%=K5khhBu+?oQN|5la-b%=9@29NPTlDI6@5S^8!1ZrNREYzu%B;y(g11bq? z_{(~5kR}X_neOY3w`j6^#g(<w)d+JgEWx>I@YOBBIgTo-=at@4@_fb4DAEvW>-23x zbZq;@kB8lk5VlRk4AAbs!uIz-?e|sC&X}$C5XB?VJi89tE%Qu4n5HOvK0`iS@J}7G z+!1Fg3Zb)3KBq>9(KYsenMq1Kcn*9_Mcq(O(j<Md4%>|aGCBit&0-zkQ&Gw?ynbLB z{e38xY&<X%;vvo?P~-SxOX!f34fClmoyQzgP#+ex%eTdc1SXFW9Nv}wUZE?%gj&ad zi_ls6r-+aIMlUt2p`&V=>I|*MCBgaM&COBzs)8#$Uu3-xHQ}c|sf~unm#E`Hsh>fT z$X<S78R*wpwaZXRiuy2bxM_t?M_;In;bR#bVAXl`8~Lp7M~gIFDsIhJEc;!%!3<s3 zB#Et5SM-(Y3X>#F*LB4R5<$Ugj(pP$M4JWXK^un)44H+#%2)Ih7MNf@M@wnCr+mAg z&wH9AF-6z)vkL$VXLa4s@AJJU?%6NwgK5IO+>JOFyMptP3D~*q1h1!T%lb_wfVoPZ z<MPLJ_8)xosZXQZ(OY<G0iG>wLXX+sq=FLMbt<HmG;*KJh^zGBct%j`ZzlU}1REId zMfjX8M<Ft<S6mcm1LZ*Lz=78K=WTRDsn)Sf6erR-X$Hd^5{(k2lOJ8Jq-fb@RJpxH zIy%(Qwd<Dvmaf-ygGG9xb-O~Dvar9cG#ul$Rq-mqOm~!;!3eX4I<(eCJ+uuEiTX^) z{A+r7Xr7@pNpmvj=bme}r0`2++a5p9YJ>s)O3=|7bF6pB9j|M_jn?!(<gXCg;_MyJ zWWHY=b+7Ro*K~@;l(A+E#&@0%uUw;Q*AVgtSRUgyF@9*)PzT+J7ona<td|e4q~?ZN zV_41Hh~#}Iv=&Hv;~DrgP4d1Kof(s;P*9Ud4!|L=(Uw*ypl3*YJoFqD!aY!SY=F8` za2MAX6c7g}R(+2?9u!{Q2rN`Et-i>J((x6?2A2|s-Dj&RICgo)b-ccLBZ8G=E`VT< zavy*F8hDH~1aHCwHP8ae{onRqWnF=^Oo?SvnlJ=(??67tCFY_MYq1~MOlqlo%VB4d z>RtD%VW@}An(tE_o#y@DK)F17W5@6uwPUyrhm#IplltMN)B~RmcUPc2V`7=b5I|^F zH9Ks!T!!iY+;+HdU(_0gx1xJv%i;d0yt_n^ZKr!FqYgTOZa}x8=OP4tqu*$?y9o_n zW1_;F?QRD)Fq87U#mycJSn;}q$_A&5rxO^)e&vPg=?o+cXa6~;)fc8FUac9U%mmUw zyD%Jt(f<C>n3t`Wn2KzC<rwUjtjACC61^=p$?PA1;t{?!w0md{4beIDuytw^0OhZ6 zgOithew|H_n(0PjLXJRj?bAKn(v=;$dm7y3#>IBe(ItsSOgHp==@diP^WP712F}HB zxXN{uobe6=VEi@jZO6wsbIil!>>V{H`jHcTWSuwI8f=DW7Oi_ehOFrYoRgqvgrrS1 zG`_rL5|?MxNYa&@={Uy<QFm~D?79b>G|5CBXdV5V?fdqR>%gtHQ-CtuBJFTeIzg9t zXhHn4uFo%3YeW-V5O3=A9}VN9SIUk9%ZC;2N#eK|&L)FvCF-D)EUME6VZfw-08Yo| z)x22vL{ARVT8BZ_%W|H|gD!L%-NF?#>~W^tLG14%`2V`=us2H5U5=p{=TB;dLKGDW z>h`rJQ{B4=*;IsS-46iRkUdW}er<X!Ov;nMw3nj&zVCM%e9=-gZ~6z4oGZdM&sS~7 zv8yY(Ysoc2FWH8!Ux2rH7<+Gp;`DU!DZ<1P+f>Ka&>ovGK><354x`5ra;phaf>Mpg z^-!76fKg1u-)%$;dF&*dCHb5W{YJkLwhj9j3(ikll&b#pvaeEVopvzsCdPtuJ(HwD z*(w)o&$Gj_T`ovcrW?fnv=66~&o=`*b1uLzj6%UM40tG@eZI`Iw*cFcWb3*mOE!ir z+k4pq4L#nYzX3K$9YTX&vUU)ioQ3u?9O5D{OzOVp6uLj0Wl;9wkV}gEBjwPG$Sauu zX_+VA<8lvuiBpMD@yG`=Q^{{EcOn5LnH#-Gd{1sfgNTXvboz<B(@Vej1Ltvk>d80A z$}z_KBv3#7sA+8BZ39^3p!fd-DTH7cUfa?2B;E6^)C4do2QU=bCOm)KG0{cY(+vPk zchdR4Km|o8XIgwSf<BQtNIt~J|8loCFnC^W*uAH+3z=~bU2d7J#RCVHl^b35-Es$T zppH~f&L>hpPzOQrP|Dc+f#;mKSwD3Kn0vRLZ{R*ltn3|#{YJm?2Z~i_2ea!_fU?H8 z0KMGYP}@*QswLf2)mErczPK;d@x=uU^?D{#Laq%7F#uyc145Xl6zCd+L0k@|p8*_0 z<&)ccX*yE>w}!mkXAAb0;Fz(s`3mrjQe+85nOO{c-?UToMbGtmOR_xu7rRt0Ns=VZ zf#bNYTy|Z%<@u(0K*0;fHU!OX$lB3_pV;m~+C&x-TdVeL+j@xY(|Cde_FZ4nN6?tY zu*-0iWEqBae_+71T}S5CFm!JB9aCLeQZ3uR-3h}gmu%O*el~8FYo4zuispN@ax<R2 z{?pg^&ltfuykFOJzbkCV%~jL!x3_)ARCCv{Mc3CgeO)q5FDw*X%W?~a&@)YG{m1ty z>QNfgda>S8C8z$Qp=mo`1yWu+JCppZAGdNJ=Ur4!YgRTPFT#mRmAO1M{nt#>o-LQn zg6d(%b9(p8a0qA|^OtyB1=p)if2ZoXpgtaaSQL@Yr@CagUaayfJ3Qu?_HWy8Vl-0f zXnpT9wpaCBw{RPt{mgp<&mHb@<;)p{@8P2h^{f7^Mjndr_#-rQM=|a0AWh;%m}bMw zUloil!%%P)s!|X%KGp~VsR}9=)5$FRFIK468;yFs025Ue(?=rT1MvI^-X&D^gSX$V z3t?G8*#5H4+sn$=4|i4G1QSV<5LP9)nwHG|FWZRzxtQ^3Y&)i|n~tro7khy%(?9*Y zzoX`dFD1R-tyCOccPbUPXxjj`T||f?e)V_Y-{4DV7Tt(mjy{fl9sNbU%kDXm(;<Cc z$RQOC@*e!4xzZnO0&x^sDj_ep`0+cLSqcU;XT(jGq`($d41;-{Y>$CTt&BF$(u|Xo z45GzrUI8jh@!Jc&jHiRVwc;H*&8OgD6g+Q6RHcv3LC>bpR|PH%FS)Zl!rwM1m58Pp zjfyTDF={wmrp89<RF@>DDVo99&~z(}DsZ1-T#_^<n{<D3WbROKoU+iX(e$dUYa3Rn zH1-bR(<k{|x+XJCT*;pjRsRM1^!H4YPzs<PWD+J?1#GM0>59|9w>K~dlTr$NgJFqi z6#&aF`?})76JG{z$oJ`pj9+w@*y{8L5%izq7@9^_)9H_I(^kPYiG<k(2TG|{Uucv{ zrs8_Kldd~yfWMgNwMB;>+VCaRNB5$K5z3Rit6iyat2bjF7@e1DB89ak(d}2QM@g*2 zVc@nd47|YSDm>_psOHrCgAu4qlT?u>PF$ENDwd2VXBNE^n9*8{7q7R*vXH!fEqU>a zgk`DlIKbC-*lGGEfM<neskfJ#C4YuC_17PmCR|XlWOR0gWvO?R!U&uY`WBImV!t_G z<yWD1p^u@jAOww04C{kpY&wlB2>tSEbwdCN!w@XrmO-Gv8G(4<<~&fBK6zQbbQy6o zME2vI1UpNt!*muU!1JZjqi;1zr3LU{LlDr4*P|0r>Th=JdyeH+;)(s>2WQJ=xN=^D z43kz1@7X9&X8RI%w>TF#uq5oJY0rXUdoN90ELj15;y35HCP!&A3xhZhu|)_AX*0bW zN8@M5k<j;U4q<|B<tmqcmKBMo4p3N^pVFc_*dTqtVinJ~QpG;U1X{)M2Dmq$Vvbd+ z4KKqhnV->`hx2j~VMWSFoRh`2(Rer(-4^9@CeEiH*9=RoC{9RBEEk8xWsfBmC>7Nd z+VSCTa(^9pD7Rp^4l_Yu-!o2_d5;|gGq65)^m2D^)0t+)nr<i@KwYUOhob0EQe9C2 zxMJv9Y-vottvj3!qbQ1wWN<GKfACW-qkGVMpTD8C4jyYRL%rc|D%A=0m1r4SEG?nr zNn*o%@bD90oGRh24@b`kqy{hb-0d|Uf-;9J(l!k?p$j&outzU&ZA3(OnIU<_mvm9{ z10pLj2?Eeu*EFnhElFw>(=Z)x`gL2=-Avdj05>DRfqG;XBN6Goj+Wee%b;sE?%0|R z<$K-IQSnzJDw+|B!W)S!1wge$=IWXaJCI)QqMI%T#E;_uNN~|MEXN9q#n5sr!@gJ7 z?DlrM>}EP=n#Ol{nPOw<j3*3m@2#Zw5An;cx;nf+t=#K^A-pq7jiU8ZufjEraXoX( z?d`U$`AFsSv*qLH#R#<|5%+ca`-2ET#qtl$^e4%jne6_L<w0u(Cg~Xs;oZo2)iVe= z-lg89?jeR!oL+p%KLzuHkQDVCG%}C8&<N@G%t6@sf^Jzlt^)3LPtVT)G#V>$BP!~8 zF>1ssjRwFnjAaRT++lKkMv){oV#@0G#&>-})A0Q2>243Zs!9h*suEQ#>UvRCiJB$@ zdU)ZFr3gFz1?2-pp<9G9<(Ko=KTao?m57czJ?4SfdYvvW039D|?lJj`8{|JLALs9` z!|2*G9B-qt_<w|WScv!*|GdVVQ#;;%qK+10>OkeO2+k>~*kfVw&!?39Ir8dbcEdHA zh)MbqoXXX#j{ly;|Co1WN7#8jDxa3__><Y@EPgglW?r-SX^_x~0c7*7`096H3g7Z~ z-QGY8=o~_=jCKv^6%*`pILPfuRTmVYlB98P8LCgQ%AnFHfr(NXMv-Xe{T6_@58phj zZydb1F+ZmrKCI2nZ(KaMp-<)QneR6;v!e~o{fh@T^c|?-<4&e;9K5)hNB3C1mpj}f z$}fd54JQ}TF?4%Puj!Rr55jd|z|@i_X`J>4R3Wwe<=16tp7~PP*RI|l?DL~X?mjvg zL=ix-knEVRWE`KYbPmS|``OsLK3a<PsQ0ly+T6qtMT5c7)ud2_7c;mZ@7EIUbN1V( zR$mDRG^G`asi``_cg36AdLCUus1<l&Cb%OJH3r(KUK7Am#Bd{!4^Hfb;7W8K-7mKi zJ@=QUF~|ogz>iAxTA@_(E0v<F=zh`Hb=|V`voRJTl(b+%EpFYcgS?$L<Vri|VtTJ1 zgqQ>MOSe&0xikI1l8vRX9LHr}mJQu=6wTEwOV{-q3JWFA<(j6GqZ)8GvnZYZ4xHV+ zlec8+gAP~A)9-5W91H^=?i)L4+d~eD(E$0?SMHEFF${nL;6^k|4_fh&Wa{i-faEA% z9r#K-dbs0%l?fkkxlBk|UdjFHVIPDqC`#wQ71Qq>MP_n*eQ@Ef8!C$Z^90lH%JNel zN6K*1P8>Q3M*DfPg>rPlQ}*Aw7pA5v!S7i<SjR1&^TT1K(>-Arf9%=YU|M;?A;4zI z=kj}Ww$bs$1&qJ$Ih%`z&uk<(w^}=vd^&2O+*9u&99;}xW4v>sP7X2m*V<#whEC%5 zL3_9Xkq9fsasD2g?W0UqBQEZtCbKhLykkyW2^z=U)<dV!{Rp+9*C|vnqo}dC88;zV z2<249U`S280`<KXWJ7@y;NN<5hs}uWYg5<kLKFc9Jm;Hn8ZLa3YYv*0s(ozCYefj3 zj!ad*^xutr>Nj=(ANR$7g?$d}#b9&?#Y(ySwLz?3Uki<6OG_9pEghTf_LdZ7`X!Bg z&{aLO&i-#e6|7kWVuw4Q@G#);Fj$9fY{S0bd}x~R>g{kYhHv)$eTyl94o-t}aX9Xe zHG9*EP3d!d_(hgA5x#d3^I{3^I;Uzgb`^D=qq=-uD}&Hw1qa;qX&x+t<cgw_u&|N8 zh+anS2r}2bY*Qt$B<#B4YjeGV0l*3rYF}=75P4FcKNown*b%;_>thl4a0;*+i?2lh za0>iDjHg$iYd&BaPwJbX=-oo<g{V7aEzd7OTj=HJa|nS?$oNDAsBM%cxngRDol+on z(eKaU#Du^PPtlW}r2Yd3LR8A?cfyQV&?D#gyz54e>8+$7ODF!b?7G{o>y>1&{g}9w zD%8=Js#f*M7?@=0(fQU)foQ%>>O#UdWsT1<T|dy8|Ja$P402d^G6&qAm}T=eU33WD zju7!eR9T^Wn6AQO*@ZKD-c`zc<;KpTwE&iH6+ixn`x+O@v%l2zJg8xJtwKYa$|05* zZxA`6P};<~n3Tc4Mn9}qE3Kl_8b6DmWu!q{hK{3~5NgHuM2xc>brI?1vCV`XP+WdP z$H)L`0*2BBz|iyJ>A#kv1ii37F^t(bF1CS$#6TG4_4;+1wgF|M+6skR*j{WU1)yPf z>esPt*LH-iy}QvBsp>&+9@TES*=??WBxL9~x*lCjh2@7jWQ&*-xtE)a&IZ}yyno`m zxOL{p5ATUPQbT}f<tF4PmoiCu2?ZFB(M;ML!EOuQBi*`IA`hh+F>)lag|gU=?P11Q zEVQ$3qqu<He)8D+^nSdHZ_}M2=i+zY4AW->=TV?AYv1?#FPc`N_YApQG@Sr%<$C)? z(+?K}Tlai1v8<;bmfMj>&77b+(aX?hwaZey=7)~!#VE*n|1PK7N(m_=m9JAS437Ox z<g^MsEiOH9-&N?R{n5kjHgH;RaGH(zVo2s~PfCqw=EC|x46W8tFMybcI;ziJq-&LJ z8;Zr2Z|k~FDUtPByfOD*24GyNJNWt<tSA8b$aP0qEjSbMhUbE!GVmJK@apQh6aBtJ zYq7m`y$CW7gIcRt1cefL>JWAj&~{bp#Q@*}>}$R(%e$7krR!VMFSUtK?t{1bgo|d; zCc>oDu0x&W^((WyjH5#WmHkvC2GbK(uZD48t?W2{JVpJJh4E#{nV>Y?U)unpVY^%E z_nNOgxEUR@^VeU<;`Ux~9V2NsDNE8&Mbx}$Vjidoo7w5L&Tf2yEJ+Xd8*gWh09aNr zh=QVJ0g$<x<J3A%?T7AcKMqV29@1$dg+PAREvrZ{u-829!{!DB|C%jiyv*Cz`+)3= zgJEPqQ5Be{?m`tGw(n~VkpL2|cPh)!_W~YnV4vO>Px~v&047mYvOt0vYwjMPU<NgM z%E$z=e%ny80AEto2Xy1Qo80hpR22E#9Ho&FW|<%>Yz5O|Bx?i;5Ei1)AZNKZU1#VI z$kJhp7CETR-IVYW3?rOOcKQR~-m27ZhzO;uIP^!(yYXb8!xt)}i3Jc&ZdkY5_ApG| z+NJ$)sqmBGO(PSSxfZ5jjEzFJtt9Q7c`tf7dM(<u$FzDO`C(hi&yI(4^5B^1s^^hJ zm@&v%Kl5|`fn`|7`!L$0fQ<mPHj_?L?z4IulM7m!tW=Q;R+3cP62T>D?&PIFY`x{! zWzO^wYa;cmSBwKV*x3)DaOBx-3rfbfv{Es+Gz3h`dg^k3aj-BDI%+MOqHet&{_eVZ zy(^`5Q}peNFuCS~N`Uuw$l>c<Bm+9Dg>BRFsT6JJQ}h>`(bWka*|nd)fM(GO+C+%s zX&@Cj^QzG3vq9c4aHUDJ&=S1?mCP{%Tkjd<sQsr(%P;p;be*Wev8t#ruDH`nuEJU6 zjPNemn(!`JDh@oM*_T{XvoFEZyE(Nm{ZWp5_e9aHC4f?H3jrX6or7&_Tf(!{E#Xnk zcFir-^28SMi!iN@jvxe$7U>+vw4j;MALJR!v|sT5DM8lhhDSKH*X?ZpSgl5ujRez9 z$Z*rTGHee!!}buM6Z8F$VW<$N0|1k;09%>0xnsiq<e$c`LnJ)094{jHbvfuAl+ZzR z1f4+0H8)ims0>(^pl?NC&=jh;sm11~+|0UKlFs8W^W%Od`B^%_;%s|?-hd!%M%?KT zWs5TNGFgLi#@gYEWkpx^t<h+Nkp*H-VGYAQpo&5UKWL32Fxj5@mZ`_o;dl(uXylUv zJfbTuO3N*w?y9A(f9U3&d}G@=25FLJP5z0h@4Z6*Zzedwc;yQ^X=o}QV#b7_snQS_ z6St=GG|mM)Zt&MBO~-5hjbS_ojEU*k&{XNegJ8}I0hIo^f25EO|I{V4jxHi(X`%ZB z{$z6zuQWe3q**M#&clCXhqwl%(yXzvaw@8xSFu)4)3PdrS}1CIzk+DCN9Nb>Y&pgG zT8*7tT!^3jLKoN9^VNo~|4V_<F{O!7L{QzYO7kc>iLOP1SBMoV%I7edpGgrOzxAX} z4ynca*&>B<i?)Oe4|>}qjq4ESCd7H@(rhdU^Eg7ukO8^MUm4c5{eckXaE=;6nGL96 z@Mm?)HP6hqb=wsyr)#R^iOzOvcn&Y>%^(D5G*(xSTbaFFyMQ|l`)h@E!PxZ)ymv%C zguPPlSH<Ge7P-s7pyfRSgF3z9n!0tLox4J}Pt3WdW}i6baKl@GAZ)geudX&4@N~PK z;Mo*|Wfcn6UE4zggaL2(U{NJjRU?#zV|Y#x!G?_1QG3T>57H+!rfRR~p9lnMn+xmf z_}6S(h`Nu&2kLXSgxGraME@1eacWPd5Si3H$Ls4CE(&4WbsPk^Zreg^+4dI7&(D4d zwNMAGzeY`Z?Q1B@S3fLF_<DmWOh*3pO0t)&6sAI;D-@3QB0a^nVB}k>fg~i!Dq8Sg z;{Pv&m?6ZyLNp>i&tBJC1HbDpJgaNquVH_MPRs9=HSDiR|NVm^{+e=ggDeihK^|vo zgZ>)rugU#2qray1*LZ(T`JmWsb=qGeZ%X>E<nLN~SX$cZTGx1q!e}bQ-3|O-x!eC` z-GuL6_a1)tlic916nuuheZFKjh^TQ*VTUR5AOzQ;EQOz2lxk@(zoGmZCCPgHpJAcU zv@8?~Ti(?5BmpQCQ(Xwa!OkT`-`ntqvZl$^Yc)nm`v}L9c0B==E9>i&&w}SR4pzel zuIp*g(*J#W8w>L)`~&|#oxH&iwv)FG_Vx8p=NC3QtzxPYYV8DAP5501OR9QJC@GvD zUu3F^^=*yFY%riWJHC`AW#^jqLHiyu&=ItaZo^ltd11=9wwT8nQ2@vB`e{$6X(I3` z^BK$seY}b$Wt0(RZiGuYtDmII&&<Yl|8Naxy=a=i9w@z%lI``KjMwX67=d3d`+;FV z{lLu0S%S9L`O0!LPTS461nmbHm}ViOQ2VwQmYHB3TPp+#!&=G1_QsuM@4C`#v0e{D zfH17ri*v>6yk%QsW-CGp7i?^2C_!QE*zV*`&=@20)s1vijAzDdHTBspM#qYV-HbIv z)O~<@GUW&+iDZN6{=NlSKa2zB2*=Ycgw9c#jy)OjODj$gemr7FiF`C?lY8iKbUiwc zM(AO?Pp6zA7FWOz0~yfuh$BD2P1rh;OO#$p7t~u{Ipo#8L>801yydQLO}#<UB?W!; zhsOiPBgldL$?lfBy0srJRknt0<@NzuMCZ`$=sxr!gcKRbQ=U1F<wG}*NOZuT9!&1N z3|FR@QSK5DmM}1&Kj1t83gId?BPI8$e%8rOCqwZbcBA|O#uk1iz&Q9!I6b>&-D3~_ z|0oDEcp>#H-?uD-Vzv@nb8buL?)M0Z!Q!byrmD=Rb76XU*>U?lfHlnsOabM<G~GWf zI}U7nzxP8T5e0gz1BX$mWb?8g-a}jH3_6GIK=-33ELqnE{u($EMe!-D?ZIf#WNy8= z+Y7tyv`qO#82XxUIeAih=@0Joi+Uarp`?H4!gZRitGC{&k)=Lm$M-MZ>_oP2I*WE` zU}36`i+Znv43Xa1>W)EgC4AWl?4$z9_1AN(9v@lOwKqvdYJB=<&mx~L+}lB(P&<29 zJ5NC$bGMuGnEF|n&dQkSi{=tqN2jne=RP030lf{q2YtxG$9Ek$lF_imgwa?fJWSjs zM`V!3_Tz=Lg{lWH6_QYeo@F;b_T;<~{G?|t=_e2&+Her<1Q-WDQVLRpe)irHXHY!c z-{uvLB|ZKw(FVn>pUkW1>}Mu>)K(cKBjwej!b(5=tP<Z)yo}85OV3yb^$6=R+si%y zl!e<~LWm5Op}(>W-C+uq^W8Jzt*X*Gz`P-7vJpSc=?me1G44^>gf2a9GL;A+C%6bg z?kZ$4@~bR|E2c3=j=r`w6PHT>LC}0(TUWwFvmCR-m7s?MU<?A>3l!clT~kX6iaz_k zW)J|B%JEF?wMXcjE*z^v3&O?!K`hXY<s7h_ZqDiXms9~4OLMJKiH5Vnn#){Mw}yt9 z_L2fyV*qT86_Q?R8beDr-E7Vh?E)>8T63i$hU!bsQ=WGn%P?0NU#)K%oC9!fY}Qvf zTQv=Y5Jl)}+FkvA^kwu7^lkK;=ywqclTDxvOlJ9go1k5Vc%`=;<o!X`3;iJUbK8hY zV8Z{n)`WUynEJ-BA!Ve>6^ql`W3^MZMQDV{vzd#e+U<BFMQ_I&38$~rALL=ykE@XN zV?Xs*U-TyoS|jT(EJsmT0C2tfURRMsl^TLY64n>b)3q$>Sc(+Gpj9C$-MywKOCBG0 zh&4-XN8nS!&Uj9QBgKI8X57RuY|L0oP$HK<tXu8-{3^0Kola-F)9G}CVr(oh`Cxc| z5g-U!^)Mje98>2G2!$9!N?U1IVDpMH&kA9ZP&zay69?v0Hdi1enRvduERKkX3y~z1 zgiPmq#u>lRUNkF9LxX<*HFWeEo%c~YuUL(jh~wk@I*M=vBjk-AdKnI-6cpa-ZkQyC zi%Akb!nxv354j5GkART|K@g<hv}Fcm`<pRO_~RIt2ys_E(3(M^8v5bf0QtTP={}aV z-HB8bN7k7Nk&y)q7vm;p!wtrlwn5$sW0r2V9wB;zuB;~kMMo!PGH^0eI_25`FDabR z4peRb7u_Q;uJRtNnvk*AJiT&oqf@-5s=BWFEtP8?ywugW`YpL)blZ!h#~*x2vkAb~ zi)gR-yVzXfIZTk<)M(X2*1gvsy=OT4k_8LEn*OHk*Z{U;!vUmMhk4qGaX?sv#(c~$ zl^ZWj8z`s;SQ;jlTc!#eKmF1;ao&p8FkNSzS7@H6{fL8U6(G8Ivl#|34O6GpHh-jP zXMX$jo$ceoDp)4iaZY>_9Y!a#vV2pv0We#I$z#P%LravhP<*zg-wL6|UKr$A7-Nf9 zDh<<MR4P8glps*VYj6<YKph0ri<j(;M-P>cluq|&;f9i=YlhjdEM;!`O>IYe9lScS zEJc<z&A2s&*eH!t3B3RFW)Dh*YyFmW{b~294_~;$U{sRTa;5Qs>C2<YR}XPRZ?{p1 zdgwZIXDfa3<>=MuBS_$u$O%%Mu%APg8oe^XEiudj|LrITbr1oL=)C3k_qg>s_=EmR zYEKxNfM=xgdyr~d{1ev0ApA<ir&KmzSv{dK5iVic$}emvIIr3cMD<S8DnDBXyi{&Q zoq7b0UF|UDKCzcGDwcH>$#Nk<+_Y<1!v~9<W7Z=wm-cc=Fs;Ie>|)WrsW*3ICH32; z&9W$!n^Ppw=KfDVT{$x6MnyK>ESE&N^*R`~_O!*D>|)VA*YauIE!sEP#ko67nQN9y zV!rts%s<VVsNRW<iq7%bW0a#)=$9hB62pyy`%I}mHWHQmmg@ZvBMC`*tbj`-Hi93m zjp~}cbA@n!^|=3@z?Hk)M|3<^z!Uq=yy1m0V<)P1Ggof?<UiEq++p~mS3}#|$rqtF zq7P`oSmh##<x%vcdy_yTCw-+gmBL=u>FTFkJzwc|y7^!eI$1Agw2mL55;uZu!COz0 zWef%a2ZSe1=Are>m~#T^l%oL_q!{L6*|!|}S501^GCT&pRnwHb!L`Q#41>r7OT452 zfUN{4gUM0(mW7hi^Ek80x~?-S%Z6`?a=97TmBf3s>-U}2iD#}nzj)Aw`I&4mS+r#- z{#lH{&KL{MwcQEJD!ugeip4hsctEKn6ADU6mtoi_U4LPkuy(jj=Yzwcr3f<bOs}fi zsynWb?dCxqJyYe`L+g(4_d3M*%%UtK87WsMcsb6p$t`pXdIO5KpUhJh+w|*j6wNdk zThq4(Kmhsp?Dx{h57uP$h}{)8;0oiaX-bmD@Dl}Za7Ts9nko#+B<{}K76VGx)?FUd z&_I6SB<D~0|E3fU2Lh40sM^%OFIh_p^9^`y-E{yQw;rePR8_>s>eKIE8v<c^5_<Jx zam+&l<JQTHKe-!>;F%p2|H>nSII=zidO2vvserY|%xlrFAOr-Xw$vi%gGXx(LO2dL zI!1mAHL9Pa^&**jcmv!oKVSZ{gE~OY<$g?FvK_qS_m#pnM4Bv7rW^Y7+3B-}u1`<Q zY0xk&tCY%IF0!)l`Ej5AZXwu9xj@|>zOl!2-Oyx-zW2SsRh&a-dy4W8PixPASf>5* z4&Qg#$Mn=KQ%$|tQ*0EV({mwWl~!w|en#{wg_$O#`UR#@EwPsSMw{SM0yD!!mG);b z7eT|ah8JF`_k^e6X`GAc)781=8p;kBK~Suf{J=PX^?go5XH~esvVlr6rhOIjwtl)d zBBD@vW?84oyn}w1Z|J(=-=$A~*Qv|T!1!N?LJ&WPLg`-;@_tS~u0TXJVU<K)wxjzX z{d)X!u3Ss`*5zcni4-M20Ki0_w9yUd9y<+7sX&Jihs8XOpOLimwU2%}z6{N@GlgaA z^Oa3U2?(RtZ8JI$P#<T<KiL$nYZ<b{;GhBMOL)ISDd(=^>;YB?!$ieLy?QirZCtDS znS^CfUufvAs~bx(U7_9n{EUUMuA7#r&V<F6rvs3wj^jF%@@*hgQC$baeKp&*tjbA3 zRMj@J-Bt|UwI^>%S10&M+>oOlLyz?6lKD!AxgcdiBpke)HduyDNIi@Ug#Fq=_(({e zr|51+H2uFLmtQZ1t3Z0iJSCKA*H*KcWYyN=pJy=d&vW__!1sp|FUw@2ol$0!<D4r} zcn$J90erkk8y!Kn<~d8?o?#bd4{-`Qngr09WVHcm+mRAMK1B9gQkG{V=cLzE7iUt9 z)3<T~7zqo}9m1fkyS-NY`r2IP%u_EmK{tZC=JKqlby7z(23r307Z?DOJnNnQ5tJc) zg{un73wpYv{NiTS+P=LW#Q3btkNdF?FG#`~q(QQ*7gu0Wb}6k6<7!GzNQ}yrRj)ge zVu`bk&_6qVIEgyDgL@!Ou%E0@S6|^74bfS27wW$!@p~bPo+4!p5V~8Jcw#eL<}$fg z4unJC2&xRwWuZN}SkNV$T|N<b+HfYOfnS_nX&qMnyrW%Mf4X*8FeA98982;=)n#nE zoU5ABa9hwwFZcpl;@|E{Al9^IX_9SO1uL5+`nf0u(awDK-n;#S3Hf}V<S`Q;=6=av zBKhOe=e_rEuJUquaz3S!d!J;jRV|>Id!OX5+$*~W1>Lyo@;&^D51m4B-)GlrVwmpx z?Go+~!utmz@1_Q|ht*<xkK{#S!l2~tld>^s)N)pPS8eNE<R%Ict4mo+jKFS_w|_q; z7!89=YWwEn23*dYd{NDG6e8oK*%02XZxxF*y;dw*{n^j^Txlj)CdzO9im80`Ws4}W zJjtl?g4GuB-|S-16v8ZC{9IXmfkGKP_Zw`1)&AT+oxX@R(POb<Ar?psgoDQpxg>#6 z9=sEI>1dl%Zno%F?o48EifvVWU4t%|;rg~^J&06rmIpUCk}y!V5;FY5Y*@DYAR4=Y zXm%zpze57-YMMdr!g9gv{DKR@)9X<?nhLqc;5Y5fn-~qRe%t5Q$RV`Nehk5pW<x(| zBl8fhJBdy~9RVu!?)DKZX%~2IW9@uFECf8znvCE!CgIunE9{XR`&EEad8uMqoC~Un zSD0`v)Y&)=U>lqRq2*p8dz)tH3X`z@b75Z7a@^&bZoBPjg|Md5U9v6`&R5lM<Ch(C z_Q_~?JuhpRaet*(B<<Pt>o<zit`bI!J`@j^P$!N1sgBF~qMdHg&3biUVGst>d%&_P zOM!x2j_fJAq3Kv+x50M8<HWqs1yMM;*6`fDV=KVU^*Zg0DuHtNyQ6cv3%K>rff-3k zBT!zb*2043w$onn?QV*n>sVrnZfI}I!d!T@4mhwK#__D$@d^O%`#spHx}>Uf@x*uQ z@_r8RCA%xjGxnX4jTYm(aW|v;-2Sk=%PpVR<wx0PcQ+FTrcq7h?!CSXP*}+ijCI<5 zJ>zq&La|ytq6X^H@2eg4D%$UcoihGpQ3$_!DD?DNi&EdB%R+6O=X(U*gkFfo=*=>> zBVc)dJyHL@OYT^SC^(uOSps?qavK&cDVr)fFF?#f#VwN4udQ*Z?no#G7zn?TQZubt z-LjO<kjd;y?v^XAGrC#74Cbm2$ghqGU?|k+2u6)g$2k8FMFNRr2f2q&_kv67a~hV+ z(Zv5PSj}B<+{*oegc7t{@VoV>Ay|PLhElMrYmeX=q@fa;_YqHQx5)i*)r7z?(P+Ms z#xst^?oQ5~C-a!FOgL(J2-`jWnU8V!UK6nS6ce~L@Gs)0#p2id)JMJG!KdMtPkmy* zO-q=vtXyZ8zhmfgg$aC4_CpM2-2~%qS>ULmC<;FC^<4ZV=6`DG7E_ivH!bnXs{Ok@ zGgQ>?RdpYZt<NA0713eM=27GhHWgP8wu=PltFPp48YYQKJG@i!Bp=kV^3<BZgc@L# zly#BETpFkC?5pfy|0xrL`Q8vazle|eW&7*FXNr|xA-GegiV#Alt5}mIHY4F{xh$Ke zY4USp!Ff_F;Ma=ai-Z=m`I_)PUp9W9g2OdM`Tp*izU!9fV*Kx#^2^-NsiG)i1WY%y zp-f&WER%CtHdi<o&rPX=1#9}>Sl3x#wnqpiX>~U()I~?pMYMxnpA$C4EQ~!}1}i68 zWklx*A@n41lZEq|V2swX8#!<~^CZ4%8P>n62Add7S@iR$9djlBqyVrUH33_XzUZY= zl|K}Jh;uQP@U92n@-lJ8Ati78rRIkpjnH8pU$%3c^6(9cGSr1(#I^McU<iG<we>0r zd>#u6z!a8on9ua%aLzv$3C<sNs`G^IeM5NY%}tO@M8^*9OShRaO=GJnW#-&=w3v*l ztIp=1Osx^7Asup>yNmN5Lub$}=svVFhPo)d!?;Q$9UH-ZctfZQR%zPMC_E#hDRe3W zv$x_J+;P@1t=2!=_O=iUKOU~wwh-H;X=iQBw&BXXj@Y)P6rG8c*Noxfp5?dl_H@m7 zUM1oo_f5O+$U}*2`Aoggj{C_NH-Afz9{av8E9D1ZMJjAz7^tyPIs;4yh3EMO`8ohk zqsf)MMYmRO^>Rh5DPt2%up%e$RAiCq3n8`-nh?JzmE7mCEI{7$k3UoBoiMVUoiUQO zZ7?6>?sG_u)4W-e?XnZ%X}38T%#m~AdgStZO#=hz`X~Rf3Sp(C*lchH`6&HU^zCFB z6lZ)1c|h>k&Pi2V;Np71vaEe`nB1RqB-VquKa#5yU1oEr))<<F5!9@2D9TuMh>T7w zKKHrPA0*IeLq{F|-q33_{mF&c_fnrxI}t;yFo7^^m7)o<b-=p6yKVBMtYlrK5mSb~ z@n92lMZnpQ*jNWycx_^YRzokrk2Q~ow04*J)OjrHCbf|d>On1Yu}Sh7C0<f$+9Lj~ zqodk&62YnnlF3xs9Z8L8s{G<T2rz7vuTvSRg?+`g`AkYlmtL<d!ZWd{i?Kd&{$R5+ zdzjdL-rmcv{s4};L=oILT`6{Qf9LjBme10U{5JDje9yo0oczd_Np#{k2am4&@AJ2! z_n}`#zjiKCc*LPEOb8Cd-|~Za+VqE;bJAe#(F;Ftr#AII<Cfs55U%>Hr{lfypSZ^% zIOrfGqZ!PU=sI+#<nMmH4nbj1_U@pohwF8fLCRM-_Ei47cisQ*=OKef1KrTskV=xC z>$<^)7#660j@~|psGirUB<YXpy3QgdOWLEde67K85D(6wgXpvlK4zDpunEg8VK2+W zo;@YBwp1QydY4oz>qJ$CedsA)Q6&3UqfTsBrK)ZFetexncDMUeXDkU<nn?9}^`-|2 zKjKK;lk+htzPU=V8P6^yt>VH>)p}i;?v5uV$5>W#_Na$%`-o$zgajcVbadEmzE`3v zCi>8e@-Y`BUx&EMzc=U5L3HzxCq!Rf<ik()duh^P5wMt}CA2<cu)%=uj|yXveFmu? z22~tMC6*s2(!~3eF;|{)Kds2a3xFqACse*NaWhFd^T~iLuXfV`+b!Bn_vAcL3XbvV z*XYTv<Q(DT!JFQJ_DLMVrtial!yYn`Fm~HSXV4w!Ip}5R{T7z6x&kSbMX|9IkIKvU zK}M6{mtuUC8*|t_N-W`;$D(2B%k@7^Nt&cKl$ZT4%$N?}(-{L=EVlUk(>7bhB7wO$ z^sEPtStdl)Ym9+p@Rd7)1WJzeV1LgRQY;$Z!70UY5APRatQkv6W#&WeG*&JpNcTeN za;V@&o{}P`X0i<du|k0N2}1&3803LWu_9+oy_>`}l0S;C!JjN6vDR=dVmEDbEeYay z6~Z0MhjKcJmn4iuWJbeY>@IgATA!cSgS#GfR8}l|V`<Trr8zou76$QNlVa2DC;aYZ zk?L?U(<>iCKD+D2#Z9MWU8yGXX`WKI#S!`*YyOU{K9}~7xB!jH^fBgnDT)40%=Pyk zyyM+;<+QZ<$kN<d>O3SGEeWoz_uwPBCz%_lr7e--Jwh#gK1$*t>IWp<5;fbFwiHj= zh+FEkOX^s|kl8eAXa!w^%m#^B2~(vGQjAf39p)9wFqMr+IcTpYxMdLWH@+lIMt!)u zATcTzRv5-4;XnvmUS@>wgh-gJ+<mx0*p;)t2}EVhcG(MsH+3lOC_ou$^_eV7#eyWu zY^6mg1Lb#4i+Og;$Gd=KNC%VRk^VCRRP_&Ee-cNqu>pBp7|}dkw6SaxViVFiyeP*+ zo2J~ib?ePJ%-rA2H*+rFh1bwquA#TgT|;iYhTgKbp>YjFH{Xx%4Mw&CPVkPt^vOtY zKGeRbeQ~lNnz@`leS=SqO%TrZ73ydX_0g?pgb*}(6CILj(BF?2zoevF#!17EeK1sq zsjFnjin)KB5&KymMl?)B{?8vvPvl_PGn@_qwcBJ^TR0a_Z*LbEA~=0G5b?i<?lw9M z@K=^k!NCwN+;qa#;c!HTRrq<Y4Tr<H7>Hl3+Gw}0K(6)^R6$`6A?IxpnR<HG%c<{$ z&e3=%@+5<Nkd5~k)JlQc@BaypjXOE*TNazQ?Zs9yHB6Btvv`+Z-QO;lCP<Gn%l6<? z4KSw)vWz!uzOH#sNS+tZZv%xQRSaG8)gOXs7C47%Jx!m2zB>{8vvRup?!AES`Py5e z-e@BEFK+VWmJi0=P+8pcaeD(v*!Q>c&U@@qDkVesU*e=n_IIh%EFs!|8s)8K2OUM* zd~uLY42z&MJH}cSGDK7|!8Qg%Q{lL%FmXIgAs}i9QOZqwTmsW9ge0<KglkZ#F4UQ2 z`MEF{rs=5Q{Bli^AflZ+fIVIFreEN^Feg2`563O1xLB{t=R8f%g?h3=JMS1Im4XMG zK89P-49cY{fGuz>U1-24o2PxLfj_*JYzV5x?)lO3DwQkVG1k(3<H$Ijj`;%Nv@Xf& zyWYI?9N)1m3;urkuZd&g<3)35d6uZ_>rf?;*twBq>@8bv*bSRdlp5=8=sawYbqK;j zR47n6I|4;ndZrg(Z#u%(&2%T)$y68@E^KdK035;Ky<9-}Jx^mghH>F$@nDwsDb%i1 z%lbCOEDwBQ0j=YhvNf0hAj#heikNIYm!!3L?@XACmx(N^zplzMSssrmtIf?u5uP`z zw+ctm>|6~?vRqph!nT)}ZCi-t^&5lHNv<#ertp)IEIZ9OUp<TS_SHDMn#WBCu!OHX zn%?cUf*M?-(Vggd@o1@}@#p!@54|oex<)q}<m@g)WmoXn{HvX-zmg`)m?6WY{SDzJ zG%R$cD-zekN4iJ{g6(kDao+rLTh&<IDhpd~3eXw1&<c|DUbI@pBA5&7i>;)fsrJj? z{Qn|Q7r7AZZ#s$vrZb#%_h_0NU?_ZDRd27zhG9?t7m>o5WygU7v)WVM2o#I0iXVaJ z#dp|-Ay;nyI$+@e6UMOWPhJKHce<st>*iHeQm`6g=iqnrOVDe-F5i_R+;6AC?R_RU zsKf8O_eEiali-^8!|Y9Gq^G>-xbII(!uG-s!1+nsrZ99>?{pa*M%SZT(IxakJbo3T zppxGPsZ+|74FLi~G4aL(G-yxAX^O03{uGT{GmQ-)L_UXV+qc}WKQE*Ikp$?%`)@H( zc4=kwT}2m5AMBi-{^{;*>GAr+1k8?k&f&a7@9Z+z*$lVI?rBO)S*Jl;UqHIw*dT7Q zvBcEuRiJKWUD@142nHGgApA`U8&MWd*l6TuUGE@gwO8`NCQhP|GO{FMLvOkK38NS5 zf;xz6IvEry!P2$BvE_#~%swp~P7?vyU;ppav=%bYmR}7h7F)P&xHL*8hzOF5B*|+) z--BaRDLO5Dk8wkI5NG_<?<RF>oa&jaC!W$O7U2o2)WcP|+|kHWAp32Z7osLwL|rr= zyl6-l)`7h%96Wd~V8<zgFks>8K{xhuL{rI_te@~xBOk3;_$&4_O;yKUI36R?LMD)L z+ZbLrQdLcR|8dcts%ly^{rfS;Ib*)u)G8~(PTu4^gq+^ngh4jPW&*4D$HF}MRJdLB zIlzHPZK8A((w2w{cB@xqt8#ik6Hjs5uJ7d_4=5eTz#s2n)v4;^uY<LHYa^_C+sJQp z5MA3F+-vgkC06%p7S#2J5azDJHIMb_It)@-c9`|>5hm7Ve8J;v*h98c2XqPFqhS-; zM*RJrf;ool7pDJ*JGTk80P|YBSf&Ha5nYyRukeeXm7p=PI*rfyGFQ%br8~&6TY#i} zs`d4po>}kZc<K}wgLdaxcW%_Q8||E^A1_;B%t2!3Y-d&VtXo9B5Y6<_0y>JW@39UV zQnS+ygF~53lJpg5A7Cnj-<jU7p)8}BrIF$jX%=62t#;%`jxg;*>Rp3a{mvsf*gHcx zqfO9eqr;L8ImN;IpQ~c|V<eeFhaCX2>Yp8fiDkS!T9=V;m13Nhr5fCYxxa3HW%K!~ zsW@hHXyr&9`dPIyojYN=2`u?{Gaa{5cJm5a+EcpBvh-P>l%4hi=I-zdN$GV9?ytBG zxcRD&$LAiI64vI{&+pSahc2P#<(3~oO9ReV3|FnZPveiu9(w@>*R^e12vcF!Uk(eI zVhUl~w(BYkC}C$APa%<N<+aJdIG`Jka4ulsNpSFT4{g9o0PUcISMW<@r7^*IR5@pT zBq)2%`Ve{nLN3(ebWaSPhsnj*RQ8lgWp@W@>!rmH!YrM4(SxThSjTC9rQ7Kbj-2$m zUe^abaxDCFIMTG;rQJ3G%yva?H+D(z>fCt=uxSFMT*}c5xQ*dmgCGXeCKbbqt>HBl zMY(05&KOtV!w>Zuyqicz$6b}(of6$U4-FKr&ISz$=ZDUeO6*P(c5CuPE<rQ^L*ZO8 z0JP(`WWNdgu!M+$_i5DF#c)|*AHV~T3Go0Pi}&G43~&Z<26zc)CR0_@l>j({Q5h!t zoAUfc1Q{+L`-k?en1>C#r;@^&%9s@7s+tE9W9nLgsB<=P0RD@3ii!8O*;Qf;^{ydk zs-<a`szFFvJBMjE!vN;e^8QrplAv83{Sr))k|2TkDi|r5;eEw?`&aDi4a0F9&K<`w z8hXDXroypMIsOtXGPA5ay`^b_^QV>3bGMEV9@-$N%2Hy%*cUX^Zg~wk_D|85^4PZ^ zN8w7o;r$L=x)~df$79fx=`a}2nc!+Q?F@U<$$0F>rzxYc`3!PVCS%i-24!f$FQwT4 zJ!(TyPY0EX<iPXB8G{EPc|`579;?3pI<+9SucW=!;<fU0?_m{_n=?dU+eK@#3Q<Mq zZnjcgB?ib<rsItI@FSX_psiAYAavsW_gU&UnrV`|gG~U#b@w$K0awL%d=&|mLxi<` z_?oWoDdu!vsM`L%rkW55#m{chho&-WtZCo^DRYEPg>dgV*C)j8a~=BmU=!Rd_5Yt? zZd=y2X;=<*aemveUh29}YZyr{Vb9vjGA>~4Y4^J8VB4{_bbZTmOk?IH0mi{gW(+eF zV$6(j$MkM4*)!O9`dj1im}sGIPc>1=!BBj^A+wzXuGa?3VD~L>WYh^qcXb{5uAO~R z$ueNYu?(|0eNMwPEN5F$wjIkb8}N>4-WRiQD_G^`WHd54hXU4~hOZf>W7TSwV;Tr9 zIlsJ*<m0YPP21bkG;>c^#%cE=nzt*_xFWeL@@XV#BM(!a^HhQx&#QZ$I-X~v+03SI zYkWP~dGGmZg6GxS@PR&~tl5Ox%M;xyA$E0wSM5Mkvz`Xoe%i5~?yij)Ne+7Ik1h^z zxvT=C={;OM@|o=`CHCqO-@E2#K<FB4j^P>PAOsCtDa&<8;V~p8Bz+h7g^vj1X-{VF zIHbqmy6?X_=6&@g5+7To*<BxlVeF+Rkj7jqz2CZmTpy)z6itmV_U&po#tIy;`*DL< zc_0W8@LZ4zD7D|)T$?`olcKl;d(d8N8WyIzT@0IGr?5*K$s#%vr6tPIHJD^k@rsA| z*)q0{eVdBd@3;GQuOFU#X)jV@*}}Pq3RgPGp;AsynwrbmTLvsO$Xo8{SCbyP?EM7= z{ik&Z&!8g8Vt~-R13ikyb~F23I5VjQPft3cI25|n^e!=<Tx=o@P(<!2d7(<i?55n` zZR0!((=g7{L7LP(c<Uprgl!lby;qxtt`pxUx^C!%5X&Nj=<uD-#xkW(>t+2*tiO@S zMAvnl`v23Xx~>~Cp>M4Il6alCA-OhrIdgr@G&SF4ng+>xn*PPXw`4-}-hl%>oe-I7 zx{)p}riP|ds%xJ|2%*c>K5F@OpHbhM{*gNDy0N&Z!{73vbRCxdM-+Yj#v5PlYs`() zG<KQh7pv8x_d(1Q*WfS&6SR&t(Q$MNF_{u_O;cp7NG*W7!fxkHs$1dq@`0pY(`xtY zaZ{G1EX>o`ggmW7%F=P;*O8?0{}W<Qmt~^5oC^|R&@^@@z*OJ#x9oUC1m~_wWLe)k zwSM4*FC?3r<T0Tw#m`;Tnvb_VcY$wGy3KT5cW?ot`;I5v__m|#I@_Ke?RF=Xe!p_# z(WF{Uj#i(&Q?rN;Y5DQ`hs7JeY0s@Hb2u(FUWmOAlKy|_BJkuj+Q*S0G_S)_xgj{W z;vfKASK=$hsNFx_ye_!HSvVU90mf?!_aF%3*^u$>L|fN&V+NrX7%3s46)g1Hkv=RE zKTNK;{kH>LxaWv26YDB+g+aH8?HGse(X=~*a>e(&k!G6O-`{iCaBR9w4B-H>iL4*F zM>9=r<avIj9Ng)%F=BIDM+0<PGQfsG74$hPAGZ~92Y&TBC}vxQWVGbkIy7dO)=nP$ zXY(Q}$di6u7Ygj6X<8E-z@Av<vZ7SAhenj(%cJ9$J7IyE318>VR)EPPm&C!A!#NwN zuB(n1|Iec?cm>kq&+fO(<JcU-1g%JjR(G_>4N4XvB@<N5(bFI^A&5VK%(Zor_0!lV z9ZxYP(2`T)H140PkN&d9SujOtG%LB+!S<q~7PKBWrImHTHulEXWl%m_6rzE!GXOt8 zz`sE23e$hKZ6VT+1sDe(OGkqnSN-&kd!1WyBL#rDv&zhntP@{xuNw(5%<t@fr^7<n zc8Y@lrvu)**+U#3-}mzSz8OO6Nwm{{5*^oZ53gEQiT~uTY@4cT+GPyoa_i4)I0cKX zIqkNiX->QCtTBuJLD=s2cX&d}BZb1qk=5jvJMEGlTOq_eh;Pzo5c5&s+Zyy@E@Cp) z_|UGkGq7Ud>Y(4o99Em!wnfM;4Tq~d#vEOu*`6IY@%o1W6Fi(plI92#fu5+BXO}9~ z1qc@(b(eL9nP)v)k$g`QoEt*RLAK-5Q+RF|H_t{d4&x`m)_p#5{kTN^jS-JmD7mH! zEQ;M!sq8=}x`MeX{x$~7s&f!qgB`280&h6H<U6h5Ifa;WSpKui3VLx$QW@BMNlp!@ zR$m2x53l1U&a&*ba(CfAt}rmw%6NW98|Z=z$%o$K+p^(!^dLSdcfeL<d{EMH4S5z+ zgAw*`pfbZ<e(+o2KnwiD==+C)oBHL7ZosD{L6p9EA_$`NmN(-@33Q`!f}2>7s0AV< z<TM=RewSl`UZaAsGJcs19NZv2-`*u|G-^*j%#&2&Io!S2=Oj<!`BJkfN^P^lUHl@v zv({+fvsGIiwx-dh9vP}_$-@gCq5yO}{xU&Ziq0{|tt+|LqJ4&r(7VtF&?lc80<@}> z`Ed{{OIqRQLLr(|4&b{NUDb4h;OXrLR8&25dX&WGc1bqq_p~a=8={V|gWc3W?w`*b z{CUOiGCE_(ejF*$eK5LKX3`}}2>hmGmmAc&LD~qR7axx-UY*>lv!aCXR;X&3BEPbs zE4|inUDxe&92dZKI`{^RVW$W`^}*pfw60q0Ww`1(O+u*GbX|p57CMcP+i9pHeY90m zAJG#2==!;txD&=wjIcRsn#e~x_Rp*5u#U~!dETlR&0tc1#c0u$`3Tl_)hYX!|6e?_ z{0YNcmt=d^^BrwZV|<jM^T&DQhY&(9iRJPdWe2+ozj;xX(7rN@Hp;g2xU6KF8d^Ld zbfxQaW8R9s^D(D0P$>T5uo;Y#Mn9c6UkewMkf!6Rq!hq;IG^IW&D(K_j*k2%7}B2| z=6S6|@_jMfLql|c-h>`QA3~q-gafobo4(fwdLq1U>L9pn!G53!#%RfbNx)ttRhC72 zh8+<fPuB?`(NK5@;RJj9w)o5rj)JZG1C8<1C_Tj6hpOgBP4l16KAdt$DL!6qVDUeX z%?&=oVdu=j9DvaigkwPf=+pJ*>dRznlxlX}(RIMpUBNV~3cUyBRSdfB+(VVBX$rgX z8e+{d{7hoXhlhzQ6*RRZlZckd{C$F^)GZ5+70@kTWd&nj0szvj5xng^&~>MZYmCXl zF|Ing4uZ^Bt?FRgUaIW#+PojV1$`s><VpH3Q=;c`<`53a%k*P***sIEk=s69#!V<s zetuFrjj3Getn@6wvK(Doq@I1o7^sn2oE~_1ZM@Fy=sLi&yXQzfdTNUU{bX;b4?cfP zbC(xJ2+O_8bP%(wpZ(4TW(|f^*OUK=6LTu)x>G+nlOq7qJGUG5$mMl&k1qu4o@^SZ zgC;2WZ2K6xf<A-36TOTO;}O6(5fB7zfvz3jPlNs5d5VLd)Op^D=Rmj<hFAe$I|7RV zVvCS2)t24{9(fG(3H=aqsQMF>5DcBg0qFex+Tc-ra0-{Ve*DyxF6=rX^oepTvpZ$o z3H)+;yc3*g<r0VG>~34pBWE?{CbiN8Ks@Zju(HS|*~zecZ>=qmXDuCBO(R-{%I{pI ziUbT`{>)rEiv2M{8D!Y<lose~(ZJy46K81(gR!0Cfr7lmnDX-Gtk(|M$dwmugjKVG z3Ay`iItLUQr=em^Zu%=@-p0$W6PeG3k)32Gcp`-`t{drCZADATjU(HK=4!DpYKBB( z6%c&68JwRevXbyMi<ZN|dVR3D)}P-n433*gz7968IFd-&96XB+;?KaA^#Lj-T83V9 z1;}Dp0`Vstqa=hM4?@c^fxl&%>9}U8gfi6$7g=^=vx#<_C|NdcxF#=#K?C{|fs7tU z&!dl`FQ6(kk?f3jVxt^jAOPulwh<M|XElgb;-0IOj}_o9^mSU_hDxR8sYDsxBMNv6 z<^JOJEDn$C5&7i3U;;Aq_3MZLFzIV0PbFfk2>g!~MLiYChKv#4OmhiKbZ+EGFg2&A z+`w&SImFOxMKj+kk0E99vt)vV-NBQ+UabnjV<Dy#S>oAq;5x9h9EiZEoC(!h?~-vN zTrJ))%Zx;cH1GP%88@I_A4mt=8Xw!rP=HeOsMWx6_497#^kndj9z(k)&h9B%i@Woj z<C%={O?OwNG)X8m%_K3+&jSEYGhRpZi*z-IdFeJ-l3o6O71~tHK4@-&IaNy0bwhHP zyB^s!lqy{s_UJ>WkbdfECShGl>~nS_^2PzBvBd6IS`Eoxl=qAKAJ~&FoUFAl$4eFn zi!T;uh%e~l_Z>NY5+Q`K_|?zl^U>ijifSiA5O`*{*co>MK-G@1$GZ+gUZzxDQ$S8{ zqs@i|=ipaIQzgr+Ra?vi0D<^pPikHhFq-kkz%Ksz8WW@OrvY|`bycMMS?V=P1>n08 zcKHW)&^<|tB)FVA^erGSs3|;NVEGr|ekC=szvDlh`C1aJQF@sw+en^6w_5=T5&lb@ z*BIXr5-QD5yv%*FDY@A}_n>3hHs#2cw-1nCn`S#QeOQ~LV8=IZpuqfwvdNDR&M)H@ ztw-(<jMq8wPU4o@U&VAKRR2a&@K$$~?x*g(1L&~wh3(->O_SiCwRqKlYa@$uVQ;#x z|9$uIci#u~-ag2M=C?yyEV;Ls=Ri8XSEvLt9c_c%5qg4;&ep#zyicc(14Y!tPfS1D zFN+^^VdFjp&RtTbyNmVESV$CkK?7E@S_wQs?C->FY?&=Vl7yCN;ce)2qNvk>YAfn= z=CkN_y2%Yi)tA<csncpUc)rnWIa5Q6K$O{P<WT5zq9p{2Xu<pC`@HbWUeLf9o3<&N zXpB%7VY%`UhTIm~v7K@-+YKQAYEGkx%M&D<ao28R)DrrRQ<IRu1h?;|PGo7ly1u?K z=)yf!N|(hF(yP3QSCp3*5fVZ_$d?pFr^=|!EbE6<*RAu$?1CTQz`U|~8@h<z<Nt== zkrFM9sRH2AvYQ;r|3klHpEms1FP?*1$1y~)?>|ZmG6pf$t?vB@Q#HdfRIR=N)<#`Z zCxq-WkM2IPe+OT}QePuUo)E1s;Szs`-%P3WFJCw+e*V^G77en02=SnO7=~(Ch6mso zOjiv<4}+Hzjn?k4V17uF5D*06j<r!RiAKUXaUo%lM=fZz_hs-wDdcmG>e672F0=q# zXySXRyFpv@bl(5N8i$b0a*xwLq$074boEu}eHE6#nDGZcPWE{IAO8b`G5FoDe)T?@ zy@3!o4T#nX*>Su<%-a*g1JM1u4&Kl@m-<XSUL-W_?!bXm*WhPm<FNQUg6{GBS01?e z+RFDFx>Cjwdy_u;%^2!X!oS@jj*?kz<Tk5N#L;CIMsO81?RMsF54XL}WOwxHKQXec z`q}u}i;D8%=6O4t+Ytg(xwXW7**EaF%PsVVEZ_K-!x4r9Qf6{`$^?NvQN_Ap<sUH( zqf~i9<3)Cw!oM^D%#S-Ii_yow!c>Labr(@o_Lavevr5j#QM=$NOw>haOdOGiB%K>w zp)!sk!nE+W@%B+P!9>#F<C;Y9BszMldEhM}o<v6)GkSCsO~eZL<e0WDkc~QMgpu;O zFQIp%E9i@T-6?Z4%nD|6##lTvhr2s>5N|(UV2w_^AR*M{oJQcJLZ%kWMYhMWIGu;^ zUzp+-Qr<@hs1LF|n}cx5#jBf3!ba2C9GCApkGcr>bJXMzLDVuog#fJm`ZmCiqri_N zTa0W!HidCKcM8kJVzF2)7K;VLwaia@4q2Wr^E~|zRhFH8JF#3#q@&$NHPk}uXn=27 zw2KbvvGIFvcWpo3$F?7vhgRgHPnet)=XXsLcS9#9C%Y#nub!L~`N_%uI5|mAPHuiB z7$d|!EqnQU{=t1!G3ifoeb0^TDE0?nw|#qdeab~C<$XU7$ZsJ)MgEoG+L38Rg113{ zJmkR&vRE38+T*ea3K3DgFgWgf6BquFkXuLwn>T#&e+IrvKLQj0L&;ls>VL(7rv-VC zLdL;sfO#P}^_@_f5y&Xj1d`1QP!w{XnkK+yh?y(aw#$x>Axb;?Ak#fPkqK=T8~-2J zaj?86<5RL?B=2Nld^yVZ2Wm;vS?&r<kqIp*D;NL6guLEP6C?$Pd#KH;ZjOmnZ2X0- z4UXFIY0*Cp5{$#tQ|g-&THj13UpCrFrdWm-Pi56Zm4WLTnZ3=O)2ZiyTj|RIo4JzQ zG)+7iA017`*fbmbe*WsMel*G}jm{|CU7wBBj>1vL8H2Y{(@4el2S?)x#*^{U!1pV% z3R@Wp&>ng)rX*b^7+Z7|r#mLW%?LeF=4J@}87$f|fJDH2=!u%iC)hgFdt1!S2l-;~ zgw<b6JeW~Jay~xh>&r>`|8jCZy*7jqy|skbu!nAW7ee6ZK=u=ETCh7@(kwveAV90A zG9Jb|-Z`NSQE0(?RxhUA;9bSlz}~H|a`Gm|n=&U7URGtgTdt^_UUnRta%!c#OJ$Al zL|pP`CfaE-N5ogFh_J`|ds&sreO1%czDzAsGIWKr46;W{99N=y#IQI;Hzd>4<v{!T zfIR!)Og^#oA~-At=J=iTeb`hAR?ULnakWF^T0>`cJ|A#-N5rQR(3hPEFmC^xz=-Dt zAQh0QEOMO26J6oNj5pAE{eP6{Go~^?h=)oHu_`CdFL3IP2e#lTm=M&bwu+K5s#xFf zM2lI3R~_={PitbTSd7l%%^;q4!pD(b&&%4P$ICKHf35;Ze3lf*mf-hz`B<hjIx*QL z9xH`pEp6nZ^l537XVh~+P0)%CF%Mf{*Gj0?OofnX0U$Rny$hvBIxk(z7ghzfte5Qa z-tBU=#<m`Vc^8A=jn;2qw#*wk7a{k(Q7j=2SWqK%`W9nbPm}|qZUvOdAjy@r`ijJp z?;K6PZMR)73>mwE^ZCj1u3-u@Ty@$9o(ZPm7Ow*hqcWkSeC6G4Q3wmFIsaLb-dYFQ z<E@hPpB;^+OEA|=_}yP(SgBscVjzvwrHHz@IO^QO;?hTq?I`%2%Y=IA##;a%ot#sn zBQmr$1M{Rd1NcOr>96KEO~<2O(q{R^f-6@<=1Q~yMNS#5RvC><`Z1+HiqX6cg@hOx z`P9R4ILi&0rFE(xmc?=*Ty)3T>`SJZ-|TmSF`$X99bfRDRBKsCl<!j4KvwcuxkC~J z3=6on^cuprg#Wrz8;#5ZQ|fMmE&2JoR1yRUa0xGEZcL7+pyz_%s*5h6cgn_%uN%jZ zcw&YccM+E}s!!eRk5s9Cc&SrLt<1Jf0I~~s*lpO`>P>=Hn?3l%-kELwy#Bj8H9z~n z_b#>Bl@i^lk{t;aWRu=#Fbb2{xOqWDwcs?&L{juv7bC5c283Z)Dh8qRTwOvF>r#kL zqbz)kV`@(j5WUbhr-|cE#!)r0Wg3O!=`1n;mo)`3a9qcqmHbc)eL-{`dBL_m5X5Ks z-UEzrsUIeNfI)AgrAskefsIp<N#y{pym5dMua*b1sSoY$<`5P&s@p&aEq)sS?$n?} zDPUFL001OOwr(LNH*5|Awu=dZflCxLz#83$aCJp}AT>S0XYU2Q-~dm{R<k#i2xm~F zateBQHd6qLMWw?kNNbMUp=J*?s4|;9409Y!9)g;jP>nr@<93WNETRixs8m2KHZD9g ziEx^MMX7S=N5!7*eM8_xS!1CIDOgPZ)Lj?A#qau*&MbhuOeF0J^k6fuXc8$yUS2>} zN#vlw$1i1itdR1rFBlP~Ts?v$aIl$7UD&c)#<jC=ka-*9Hq%wz1Tb|~XYf6wT<rhS zU#*WuYpP)x)OD$08EQXP^G|UOKWqhIl%hw{<Buye<O3az_EU*JjcVMo%82R86%*P$ z$k6vz7dzv%HGs9XG1FCjP^nZZ16|eGL7Oqg+Loaj5yp|B8rE%@>N?N*_gwhC{%r5A zyY^-S)v%0q7|v#4*fuOfJ*xMDt*xL}S9PXu+;h){&UE$Y2z39-fnquu%aKtvewo($ z&_n1==uteMjrz!kMbDyZ`*9@B&SfhB;m&$w`*Cm{rbNCS#Q~ySuqC$t0Q(;<KlB}^ zd~f!goO~*Vr(G&dJ<rQL&r7q^%RFRu+{<-euDvlBSqiSlNYi5Bd7iiMye!MS)bqyC z3jAq(7w-U)LZi$h(KLI3A5DPQ*<GS}ykN>*=g$_zV2vPFbYMv&F;a)qQ`tvTMV5r6 zq6rJ^6qUSIICU`S1u7QD!9s_5*5^#+_ms4b2k}R!{xA5+a&`q`!06}^a?UZXD(!*T z8LL&xpR}wqR=;YjomE)v1@o`h*coG=WVLGfjGZ9404#a7uva_V2D%L)aIIFP{Wp@S z%Rf0xluS-Cf?g~^<ORW_c@WG^lhS#$np0|;#lHZJmcL$O*Hg0YIy+6pzTrDQvN4@* zT&C1CFV}s){t?rp^q0Qw%a4COf5%;CwM%8Nz_0|gaNqOs)8>2C5s$Zyg{aROLfdTH z-EJl#hbEYZI_npSL1mlK*air}6cV27GC({QZz*L`r}*3G0`v?0>ac4seCz30#F9+5 zsWw8)bX?{tT%;_FZ3x1SBz)(03X+4$24fhq`)P6LVD6b`IPAcUdr9=OD`c0os#|y| zMu|*|;>fk5D{3}0pnZVb{G2TJjrj|Vc7+ZGgrMzk`Sd?GQr2L#{|x9B0+f1cb_q2& z93E+brnKOaz$V@^%NlpySz`@WEW9)|jIm6jtby7CQSkJqCsn8v!t&#Ztf6fryJOe| z5+l^DpFZF6y!ZI+*mJKa{#CCTW5#HdwQ3YsJ6P&wH;IUy_Gn4u&MB7MxUN;mr)!rs zYiBqeTMG+My-MxVwfXKYe69>oF0Njg$5TQ=SF9%B>3_U>^}Ysnq$Gn;aGBDP5hz8c zhPcU+W_i<agiXF3iTIDJp;VYCG;+_BqQ;sDtZ{K+pq+WpFeo7n;gR`#j-y=Y%~>hh zVZA#IJ7%MS>oH|PEfDw>3^(OGwd+8}zl`#bi);$-D@CK$#g}4j%2ckUp}7Bvs-!*5 zY%yeu3O-~%So9A<YejZxGXqgK^ZcewMk++%%;SMBBKIS5{E#g9zOM?#^Cc(kKT3IZ z=tiEyABGO;IFZ;MC^p8lG;{;ydfDO~QJtD#uE{KetV9#CsLq%m?;pv2)c8P2u*V9$ z87ciB*7{A#y^Xy4xvpbYNRl$J13$*)(oM0QX&Z0wbpGcN6hD3NJ}604hEQFMY=J)4 zLkK}x9A8;HRKh(y+r@u_WcFZvDZYn>S-=!`K_7R&?Jrg^Y{1rMqA34Jo|9j+=7?}w zDCum0@r*N%)tzA6Zz`{2V$g7i?dk>yDt7Cx52#@Hrjzt<D+_~*G@Gu~vXGOc*|Kw- zD3ABmIsE9CfB2=}T<5Es`T9uR*!5%5?3{K#=X02Vj9af_1gA*#O_7ia0KQJz;R5L9 zvH>3sd%Eq=`y<>`U(Ky|EluLNY{XD1(KLOwHY=i`34L%nD=>0us9B2puCHxs4R$`g z0qE|UsNGt@>ikE0=t0Yh<F4GrKry|Gc+vX@RscX+t{OQFkb$cpXL+xtz5AAFVD>7n zimE<FBnd#0$YU3UJ;82&*j;Ov`EgBqNZ>f-dlilo9@1ZC+ynRDaR}qY)El7><FQ0v zsr<($K~;Y-UsX**x;&n(6mn#v9>vw`PC4HQAK-H^bx|$c08;)<#3KX1FpZ4T%rJ%j z(OS(l!fv6sMV?nSb5l-<)IL<UB{E59z9qiLFhErwFuZjc+42|974ahAE=kqIM{1Iy zNU6k&dgk4vq99)RJ^FxnpMbUI&3#%?zP(Mzv8rjHY08<xzshw=^{?b!>zamPf833l z3AhaUAh&aUMm-2xO&k!m5+JM9XS8>d{r#;dQxLt4+FVNJ4?zDNL>?9+VQ0pU1mUp+ z%Sf{&>!15-EH6%{xXAHzdT{~j=VRW0);atvs-mGi@LYxWdOa<HINT4EH^W-reLC*) zXgtACuls&Y)^)k&`}MkaasIIyR;Al<`2utuLOdBC1-rA|-L9r}cXwyI!O?hvwZJMJ z^L`e5M)KF%{}Fx;X{e4Kkmfu-?&#n$jd;B9I@0vMffxwfK&jY(IB}19W>HR$^e=J< z@JE*8Sj~4eP17oVk8n*+R_LQDx&E%}_qW~SA}3%}HE$_{mrS$yuBPQUmi1>uJE4lq zH92zqUDtms#2|tOkj>UjLCKayvW$W!^GW40kS^mQ$nOlMqE3%bac2aPwSDDC+y+&g z#j+NnW+Av$Tk1oskoU_U>M0@V#6N?`@8=&KFZ;=YpWZ<Hi{s+hOd&^}7h%*&w_^Dx zn+{iL0jN4N0ZgVZ)$_IuB}83{szk~mb^Egy@|WqvHohz`(7q5ix8?>yT|u;n8CFl( zt-(mz7VV@5<1XO;G5r-Vnf}U7o3H51gf}~aS(4N*eW*+%^-E5`3W2XvKJ+D3BIS3R zi)ER_?kz{l@pC`}+~5HBWKoVKG5q?g^2#f}p7FD)OP!hU`<yRrY<%g_EcY@$U)SY@ zDv@%^&x&@juj6-IGaWb5ki#xiDiwfAr2<|==dNc3-$6CHRxH-2M$c%yrk}O-`1~k4 z(ul@gn2N|L-J>~@Xl$TQ(PcTA069w)!wcjZ&gp!us60JM`V!-dvjhcLE;=8@M36k& z(t-wvNxzSUZhav(F21iF#>+4N8ko#jD$3G09dw<G>(5Kz7D_v&)EPP((HRVDb=pMJ zaV=)NykG0`YrbqS6W%P^i;p4SYetSsIHnK_PN@S2pu^XSrLy~FDz}>1pL8xA`3SLz zdBJO@QR(c-O2IeM%BE*!MQas{CRNI3)Ly|bk#SfUOSj+V#FeF9NNv|BCWr6y{Dj6J zo`}YiwmKjrM5l$9UV3(g%RhWa6ACZB_|TfWM1ZneE6BEaT-UM3_>6IV`Li-<0X(u% zK1PCn=ZGVO@ujUCS7<SVD^UqKdAg=-iHWKWx!3s@ExsO+&X2yEDv`qz@)wm4Pk9)V zr6&hohXWm_prohBrS>dgin>3n+3Xlcl%}uC!z++tGuJu&=m-5w^w2Ufz?#L&IofIA z=sAnndxGOu9Odw%op<ycrKX8W>3Jdt=%J(c_$Fga2NIs=$K{d$;y}VI9k#b%HeluV z?|6vr(1B_|c`re5qkHIo!Yr2hmF7F7-9jW2!@5Kdz+@*%o!wq#>~vJvJz7>?q8WO> z9yVe~%{l;}QGbhgNT+*J>PY?(vZ6};<w0DT88l6xCpQ5SUn_`0IBmN{hhq*U<ZwJz z<vfnd>UeVRsdUWQW_(Bpy()XH%@aMk+45w0^*z{M-qo$rwm~E6U<c-$Pq0}1WhBRX zXCCXh1TnOYP#11au)xwC!bsXDXol_lT=CaF;OX?@xp2Gl;g~>u_qlKSpoZs~gT>DF z*Gc^1ub*3(Ho|4}Q!F7ze)(mPsf_l5Ph!+DO2|_XJ&j`V8@%%2;t$_Z0mmqxF{8a+ z)Jeqtj_Xe2aVx^085-@3KKSV!`UM~ZC5T=h^@~RT%wQiy#>0pyuhDWzn*1Y%7n0)I zpA-K@QPC>e=KEtUw;=UByN8(DbpkW20s=#&#M8dyL{B2L?d=YZCPWs@8`PJu%aw}E zaTW$5iegK04p>ZID9VC!W?w0ujE{D^-7@1bwiHREnj7qkyDk$+JC!MwPc@1DdukO$ z=mDD#Wc!JZFz}ho?2HJodTBI}O0AH0IM=hgEHekaQ}ij7jjCkj@tKsHofpi>*8?A~ z`6q2vR4!QwJ<5;#bY)QmHTTd9Ixfj_(pxF_y}=Rdt#p+07wOE;f283vFA#G$yTH04 zl7!|Ca)548r-Y<~&cwE9188c0b&-J<aE4ZhA=K@~$UPg95G*&$ba<=mMT~uu*3inP zquF!O>J!wVzY;s+a}(BtYB_c+2?<uKXrfo2%GXwkcF`evxW_W>cH7k)SJbdBx;pse z3xriL@)LXns@*+Q#7W$4J)Y~X68k)l)fC_Ur4Ae_1Db*>+PBLa=@-n2du+&1t#)x# zuT<(0*2}lYv8tGd;HwpEDr({3QvGxZNK)?T625s~)XM2)=2&F-o@WIPvA(e}7{(=W zh^eUiWl$CKmu&)6E61JIpRLfdD%j(3^b_sJaQzG}pz**~7O=`}V{qG)XoEwB0LE=w zTUK;{px9jFu<8cw&01BX)XnV}+uOIpozrQ{0~-r`Nw3wsCm@4PJE?K8Oy!Bw+#bzX zrLN~F+*@A<2!cD#KYTvn`MP1WjhIJgd>0`$9h5}RROUjk%H|@Quut=J;Wy>~h<+cX zgRWsyTC*M9AOsrCXmajcG-);f4~O^O+4WkIXmLUW<+5#aEyDoM8^g~jYH!;ut7^5? z^jeLEo5r!{0eD^<r?(wmxU+b#?e@CsMB2x-YOT)qYPIUlS_2`3N@yHJ)J2J%T%e1j z1b%io!irhGk?a_cv53yu=mg=|F>%3Eaoru?vB5hC!*$<v6`ogI*Iy6AgQ<U!%JZt* zTfB3ff@RfBeGK<CahwDTaNSPZ_t#W)&G*|K-&I`S-N+n)o>G%Ij`BG<sMkSnd#GGi zhuXol&q5y6$~N3f@Z1a+%c4uLb349cm&Jeunua&nNrGdS3J{W=`DCM9RyZ!lmy3oQ z?fH%V>|oHxW*}v-MSSyLUZ}45n-#siLyy>b*ZnX&IGjSPgHFBJ@><m+&|;YNlP`B; z`#IigH7z@TuS?hNDgIzj#{I#8EZ?`ie#q9~ChGI>^pWhW2nZC9$%IW4`_78R`|ukW zkgNWYEURvD?5eW-$Ex%2n+gkH#c3HSfKRaubN0|9T62`bQV*2mo>jgVZTg%T2BKe( z8q6pPdXjuMir_!RAFD8a+-4ugKjXWMy!QigZz^k+8FsAvSFGcyfPN-h7h}&ISlR^N zhFG|zi60skI6??0lKRDVr;)8<ArnoowJP++&$Ty_$|D*J)>c&*DGcqW>?;;%PNwq) zsr;j<E_e0f)meJ}fo%^F%z-J-fsb*I60+1A3jykDjAL&ba%<+m?~i<H;u@1i*JGuM zhPYhV(fO!%bO?^{=rj>s7|5B;p>huR<-DF7y0U<Tn$%QG4ef)kaRgn_Gvtkat2y$3 zz1nXzM<rC#kT-zA>33k%{0`acd`!?Dlg>)`Uc~-()^_8KE_gQi`*@?<Aroo4KhL~W zh3;>_ezF<5zoBvH*!6Hd8q0@AC}0<u8}yP{DGtZslQ$<BB3Hnu?lELHWPWc`=1XF< z3fG(bsDg3rH}^)PwK`bTG_fp;0GJbLt-EvgyeUv$8;$mkKlrr$TAXw<_H#cI<5O3N zqZ&8r9hvro42lDWl)PWeb1tSbq@PxJS=cdxj1e`+!0Hf(9(2(X%Eo{*7KhZ#&vb&K z)AfH6L1T%VRF`b^kOwR9XsxccmeInB-)^_T53)g_nL>`bKJ$t(LEx_<(B}nmdF<HV zCdZ9fy&caHH~SoT6Me9euiG3b!e;^M^}*a*265xWi!MOOYA_k%2+pxy(*<OG*+1~X zOdy0;jhKT9e<5h&8>Rvb+5=XT7IecH9S$)0v9WU-&)m$ok>b}09Jtc7M2Jzm74z)y z8cAF}VBAPwD!>abD*lb-JJb##I7>rSL1j@)v=(=3T(H`{>uLzG)dn5TbMyz94i(M3 zT4yy@|6pH?$@ja4)k7t>k3NlfD#620$XVaG5i*L<Z{Qd$VtPRx3w;+a295$d+Q;<r zj9XS6*mYDz*-@S8&WFwWPeCDy6qN|-Qk#e`yI@&k6{876{)EQRD~yXf8+6E;^ot|> zvWk_YJzWAccqY#0ray*fa+32oNWQopza1K41VhwAsMVz*6J(Nwva}0X(r`W<IlOnY z%kHOA9G45$vq57_e<+qw{A6-`rkhS)7Q+oUv$?e`+Qov!?6HLa${1y=Z}7LMJg{}p zNxM-mX97~j;-(2MmUgG{P<(a%SMRegXe=x=UNAPr|KfIOe%3UyNUa0<FLN&_a=%kJ zSsaA`;gB(>BGK7dU`0`6unoXoZ-Zj7)dy9JQQv!KQ9Unsp&V)9>nNZ~?vlyKEy1=_ zhSt;F9#%fWu=m}j9pJXg8l_5GB`zt()uTn{;$HW3rSuV|Qqa$dgEng@5ONYPW2<!a z*YOkZ6`2N=&!gYK@Ev9#17&ySS0Ohn=sluzsXQbz7`Ya*8J_}@L9sW4paZo`5|myd z8I7+rECrDWFsOlp)hYJBGH&h_e-?dDRD$_eHS6U9vqjqu2LAr@g}z2)St3LgRm-EY z&{S15W$IZKQzb-_WugZd2Re~uNv5h<u{<i9>XNzlKCZvd!mMg4j54MZZYWh#0+7tA zVsN4}Mww!&o~mi8r<w{Q%Iha7Bs;tLr)dZe)^=g7obbDq5cl^1)2|<(L|OOsB^UEc zUi*ZD+u-YvEG!~1)M+<ft7lN7oVo<4{H1pb2I(5^^qXA@@41pRNdy0i9GQP+LP|NK z5&$TYtTih_TR!ltv~lPbcQ810U|AEDrY1`qK%$J(6!2hhBitzU^#xN6(C16aG!;Oj zG=$6NR#*92JOdC?ssX4P1CR*U#KQW?ZkH*_{rx5su1?^yFhLgb5CYj^TeIC>7DFUb zY)fy&Ai+eASOvZ^-DWeox{o9JeV5a{1;*$V(X#E|g!-G|^rNJX8jM<fIFxC?mU=Eu zbej4<p$b%>C%6!`V8+DhQLchgDz1ePp7cFEx636O&chweJY`@$LnWEya8d_cIx1rJ zRn^u4AY8Sk6HDa;f;GJ+r-hSZaBS}JuKG|ig<%L&8rI(>_(kxU(e+8=JXOrQZBV3* zgG=wFFf)3Lb+b9*e5$j?IPzi$iJ#TugHM!o!B{{adD1}XEr4k)h7h(Zh}v9@Pk$1c zR=CO#T=l|1i08#vMUCWRQXbJ(Q;B^JI^#J>%?~gzE0dh@<+4j|5R9%5*JaZqztRT4 zXyAa8Bk;(+tbQ4^@Ms8=s6qL6_-t43y%2-Sf9Lo)weJRUZjZi4NgCfLVM^#BL^D&w zdF?RIiV(HSDRudW0t|i-H(IT_t!bKO4F_XF^FB(JrfHg8Z?&4uzy};W^n|_kkKDwB zu#>pp*fM-LPHZ9AO|oqlo#T8PC<+da_qvV9aTKB(rlqm|>_f9mLnn&kM2&9mcz_kf z%dfY`(dFfu)d=Ib`__h4TV6iejpMMNz;DV{F>WEF*_j<6UYcS$#Ny-|Xrh=uxoj0_ z>$j6{c&+1<rK{*0eb<QlL$2Z$vSK1FZSXnOy6C87>$<61fGj4LvbA(iCjk*dp|O@K zAv~&`I6~mX+&2@I+m36mt*tK1d#;dWiAu9B`}cEE-5^3pW~<c`M6!+Ln~6jvSr)E0 zzp%QtX1k8f)z{_gMm?G{BqDmPmMIBAXe!ia;x}y1_RWrR`UTY?Wg2Ai-(>k<8GeNt z!n{z%aPZ)L_r1KT79>i|QQ2+x=VpstpSR)TCZ$qAt-k!e`wkuiT)tomgSNTfEzZvM z+irP;5Ju?g{up;h9CM5cb)gZuFjfh|{DbVIPi?aJ8K16eI=R(i9#M;>fzL%pNV;ss zY3B&Uf{ee*-zABTP`yE^s1lD^3nC=VHB;7)4diI*jy6GOFqYAY;>TSn;<=2raoFFD zhtL~!U6tyFuFHfv&E|rD4kIJcv(O2pLtXcES&#42F<L<YGCG3J*dL5T^bPMg#TeeO z(La9uq%lM{MR>LdkuWfDAqm0~fWH8v|DK>>-Z$;2s!s1%pNG+y6qEGSBxT-s#Ij|! zh(RBVs%Y5?4wSldVeyl}>vs{vdqh<Yr62;pF)KtX`5?3ulaJkTN4{EsHJ6vqY~PLF zrb{^cjM4Vt!)dZ8!cs}kPYgnt0;~BQcRcn$ZQi|oW_j6Sy3F22aJr@;NYcZH<<L{~ zf2e?v=R=`*s;dP5TTAMV@@-`~YCmi|<2n_CV-AUU7D~x<oRoZ4G)gshAf=?N(F^`c z2oQc{0`RNbA(?ta<lqfdEB@%BX>^b>Ixk)PCVK!&lj8tHKufpR$8M2Pi@r(@`{26P zd~0br<B=d#QKHYwmX})dmg{QJ+}Ch1&ku5bFwYlZ&*w}m%y<-}zEN4W&&`cJcV<B_ z?!Sv!mhW2@d)IZZes$XqMuFeHmz&>)tMH6nRV>z*D#`TDa-M}=nH;GvA(~feg@A1N zckvHYLrB&kp>oODG-Qb{FLOyYHXVtp;*cc?LtR`{4I!J${R~S>k0*R}-I6K4Txp;& zQOtKN#>?p!$w@@D#P178OnU>Lj<yc@5Z2gb>uE-PKxL}F7fOmDu(0~WK&%_vc2^BT z7${f0a%Jy?@_F@#9%=F0oY4~P7l3Q7u5*qvN_|Oh_3uU2KoXi}gzE(Wr4A8Hj~Ln` z>Gm}ej%QKZ@*RN}7mpn}vaGdk0`CGXg6wer6zZM_$I+xcr}`rfO<tN*3euV&@OSl> zRe9GZ)e~7D3yhf;vK6StFBP70MSckn<Nr2k$v5J|fDJ*`aST=r2l3*8iPRS;ubytH zRL<CC>#QGSAlyV*FF#TQzbH!}5e+*Q5mp@J1pWIguR@dgeRqbE97i3-eEgIRi2Zy5 z7bITQ8gEm^9sm@ITXrJ#2U*WS2$B>8!di~sd@m;HEq;F<$ECl>6FevE@=KL^4E;oI zW}0$oQ<IE*zb58(;w-Nvo6u(%!-MpVHvOS(3vu#K1B`<|Jt>53?+CFoVO9dO)38?x zVcREh5a5%dZ#J~;o%E3{wz``pgL^_z4frO&2~;&smb_nBn05Y?l;f+<4N&eNJHn1} zPzSc^xIHH1c8|}DGktQjW;!^dbOf`K86|A`+v259V5Sz6r34p&kbzHW+)G71s-k(6 zp+o3ebQ6*w+j%Tb`YU-B_<6KiK%WldL|w2q&phLW;K0(9h?-FJVpSE&u&Pr=Q#T-p zY@jmpDE{fp26+Y}>1&eoHL3biMR}<t?L20+4=yf*@4n0(%eFPmwk?PM;bY;#;=#7{ z<Vz*#rHb-(hcDtCTx<AaaDTY4xSm>%O&WC&i3*M3+ie^5=<b1?wpa6Ztp8+}xSg-I zQ+sfCwA7lb?R*LE&Q)kJN1d{^hz3Yvur(Jzy%_pUFhW)IP@qbIo(V(T>P?Q0EiPgz zDU4o6*qRCCIs#bn!()q!Sp5=`pEE1omx|Ttv)qL@KgNrT$3kDhK(8fWt}${QWr{@c z;^MJt>5E<k5zsYX<Zo#AHz|s)K1&a6wNL}~(J8&eWTguvTrq$dx&Fj%xsUtZ{C{Ex zoyWKda;dMF#uigG))vCHgWUKPYg*4+awu|#!V28BFTFYNe#_ZbSlhOR2sTV(Z<2Ta z_GqgHh0{5qONR(=@FJ4$nG}~P!W@wP)^en!#=i`<ZT+g=NTHmrhuP}enJg)RlQR0_ z&bLGo^3iPwp;pW7@WMVW&A3cEP838w*s<j56cJC`Zk&p+0CBf5R9NQT<TgP!DyRB+ zbdE3>+|1>Ey7p5L`+X6lesD6;2+@6QKK}opxCUOcY-Nt<E2#_PfJyET$-AKrT#|_6 z=4Wv5ks~Ob#2LZkd?Dv2lkp+sX2NV@m%x}_b6N*$IJcKVwj7c#jZb-m-iDs_S|q<c zl{kmPXabHKR9i*8fd3z+pf*i*w5Oj~5dEa@)PuFDYwgr_FF5V!oB=u8?esvYK(UhC z84vz|VYoWL*sg4ZNHU}FM{YN$*P&QJuebZ5s7aor_^B%P2+cXo|6JH4x7qJvW_R}$ zMGlo@Cfhc23Ag;?Zm$OrJ;@MP>n1x{w|*agBfN|f^xTLHehQM~H6(gNh|=={o4819 zFiDQ0z859H0*qCNEXD5KFtwFD)sRa1=)ro4jt=;)jg4R@+QbSDZvM64>RQ8b-OE+a ztJ)ZwAYugPhC++udRw!-t@%Iy-FnR}P%!p=g<e0q%KTrTZeIS0t-aY+m*-j_X{svY zk_0BkcGYWFF1xPNSgT@1)g%dH1#j*|!N$hC^5ds!s^kk(d4B^(u3ooglQGMw7VA`n zvd#SrBg8|P<LI;ZT4PgydVSDzo%QvtySBD4I8t-;0@~NR(^1DKrezXEwC>pcdC%fF zV|_iOkwD+htUihmf-Vjf2|_d;JZk5;C+pXd7)PBPlgTs&PdHUOc~%BiZom{@D*u_W zSW~?$W&X<@OvcVd3HgMjpW#SVJ=3jNZO#36pZLUjYj?M`K1QUvgujbB=d^p#qX@wP z5f$J~lf)I#gFref0Zds-_}AhH<S^J2I``c@0Voh5_Bs~<uN68h2$&Pqo!|6Y9*9s= z6sOT}zTkeyX*3)~`R???>_-CuZK@XZrOjezZ>|M(O|$JUyzn90*0k?V|9b(qN^w>; z8Fkzd8*R}~a~#pBx#AqaT3e2N1`Ojvb}_k;uF{mepIyz%F1{LRx=PE5sq44?E&Lh$ zbgZ>jh+}N(Y2<{35O?CKcy_$B@lF7rXVogZ;d$-huzigv3X!C1(fRXH7~bfPMqS@O za~loUwom83^ry0{s%MPBGYqU7?cuQPdDkR~C<?h2hSB-+(GB14jz--x+jbib_w?H? zr>ZK;XRKOf<3xz=8#!nb0Wo)vB?L<vRiSjlOqLiWj*?DE#PTz+2UzV5c{?$*+METc z|4eVx*aNHuo?j>_6?~<jS$869Kqid!8pTVT0q+ox?GqRh#MSk>+4a9}yp%Dw*r85E zZapGPSZ#C2*lL=ni)KC?=*yDZttW;~NMDOBXse63#r&R9O6T1xa>c#b9SYuZhYBsm zqz?B~8z!mV78Be|m2NjL$fr7A<WG)lw1Wcqs?Q?KBM$hzfCYaO-GRDHfZ*ajhg~m8 zei&4_IP5u9aY|!g5H0W1kQ{tYQxu(<ipm-d#{k1`6DT7DdMA{`&j9XRNAnQA85u;p zeP-Ax{<ESQrlK>W3g9xgV)Zo0`@Cto@}R7MeQNFV%;T)U@Ahw(9>DZK7EMV?j6sSV zJP~&r2|WdXy4Fiv1AU6U0D*_?+G<W*$DQf1;?K-B8R|Rk_w$YRu3Rq50j9gGAZn^( zD|aV*l%t~jwzI*cT{rwYkhC<Oho9$5T(iAP%Vh>7Ebs<B+ypLh9IIB?-N_#1rTb+L z!kR`U%#~6P0wJusJB|m{byEPpLFH3%eYz#f68l%gu4`1nq96ib@FT;Oc)%cvQb~0x zX{#>bx6pVScmU?H-lw)7v2;uTAXhNZ)Ss#o^x{&flrjhwwb8D1vE~#J+3^i?R~-cu z&sakV@rJK;<&DIvFiSF8qdSsU7bS6|D0b+_>Hs{`#E&DpD~uwiQgL<Wc$pkIYZm!3 z%c3Uvl-VN7R>Q<L98uXA(5Lj`@lN8oa{>lTfg})J8pj|6H0Vc*k8KSee6sRnMGv3Q zLP~vLPgb6+@NpzOHKA{jReS2_5*ibt04^Nh82+Ng@>yu}k!$N(BU!u4YwA=_r^y~* zwFr-7%S)I?59Hbo#b``pIb6co1)^)+ntH6p9$<{+pYY-VrT|SD33LKY8?7N9p4R2= z)&*Vh3iD$wDygWyS+M=O=2#<JY-Gq$_F|ESVarSJmH=$qADFI=%yz4Qp*fyfzFjRp z0PO@X1u$e5XNB2A6Q1{3AO(aBx(ZgW)N4f=;l^_+68jdiiAeJcgyaTe0E`*=HvaM) zQb<#budr$pPy|2y{e3V9l3&^ZA=E-k$o9eT!Z`_0$dGpgFK&=`i1uM3MJ+(vV7>y( zefx=>gTMW5;8>G9#YFOAp1&EHe%m)AlSAOMkuDaHFBVcY>**~7yvPNg8?}n*nlgOr z#?&$VVL<uU38d=8g5L?QLOMUA$Ptdr3&+`4T%1mmoMo7b7RW%z^#q~uDeh~O=l%p8 zfY|4bukoY3VDKMPR<1(e*%3Y}L@`OjwbVu@yeyLZ&|>`wV}D{j=4*;9Jo8ij#I$Ym zPkibR#}ax!<Ws`Z{N`zI-uyvL`@#M94IZUB^_Za1<d=kiQa?o0*Yv9&uOUmj|I~DJ z_%;zx<`~GDEp#vRPV(i;amhlMR>=$aPUV)~LENbR8wX+l=VVQjuMlE<t8!0qQ;xaw zugRJw&j|_ts^k5weTEzlT$yGN!ac?P?fkJru_9zHYnmMX)dKrl`xwQJitJ|f9PIi~ z<ntH+T6Cx`#PQvdz}pD3*)3#<#GXGun9TqgqU1bxKYZ0SG<~I)%kbk<2CaEDg+*Ie z>dgi!R2Euf&XrPhD4H+{mU?~^N#eeE9iSg%Z+hA>l&+a9E@~BH+0j6}_Mg?SiR)K& zqw;HZzJ}@xY`5QlPdSMvLVw9o`yj4gtr+^R?FeDixwXV^*S#)#!U4!DH(CL~CNL;< zl*BY69Ri04-GG8QIajXy>wxl3D$+vpt$Od>_fR4e#j;q_wgrw-PO$Cf^gftnDMTjp zp1a>m2xS_$2y9ga3#L0w!MtLC<`l&1v(z-rRF0QaNd(hc(*g7~T`I-&ixDMN;&?Sn zQ`Mq`6gSoPcU%`#)#me$V+JRK@qV=pM6tZD#^`oA9Vy>?B%XN#04^hF=+h>^hR{sm z(hpKgY5{LY!J=!;t^x4z;4+1gnbp0zF!T<lG^9dI(X*i}gC%aZXV_V&<VO->UKqUE z0Ge@=5SsP-LY01&)oV@T))MA4fRzE-^OaL=X9h4y0f3uQo`K^=(l))=3|qJxi5hQo z4=ez~^dzYX6g6$olqAnw9EWHJ_}6J*unIw7Gq(d!l;Mp2X6kIH$PkRYw~FH-e^L4& z^H!k`JlT5}Es^h;sX*{hzX6UAWixv<K92`U8NE^Nl{Pv7{0k)8%3kq>Hhl%&zlXUy zeNM={czs?_jT5p5?{D=Ni!ZF@y@=xL&H4%63|kk)T4BC=8M~6K=b<~uDeGv4P&RW= z<h+5}iXsN6I5^q0cH-)?WGGpwT;qiH3ANe~Z*ASRwZ87S%|X2m!e(Pl2Ks1m`p~gq zX@;6_P+PwxTwgah4#gv~o%N>nZk9>>&S=_Qhks#vT5Ir02V>`xTF5QQzGnqLo|A9S zJN@q1@882?(>(sl{o}8(V@i+t!?3*hPs2OV6X;jp4ow(<B0-F@!psF>z>$hksbb=# zDHV2h3$6cM+06H$6?}hYYt+)U0_gos3`_5>1J!Io-b#q2D7F|ziekY{&gfw5EG6Cl zm5H^zb$k2mTiaG77^bTrZczvQN>$}~x`N(!O+%OgoENChG<}%CbSmtB24cd`TQ!7V z^2;cBdQaPZJujAa1`>QaO$L-KL3lo?q96rpY3wKlxpc-CIbP6e-H^9kO%r&IQx&aN zR#ouV6Ta2j3|n59J>M31GCsO@JQimDI;d*7rYS1t{;mb^lBTE}dA_$-c%HZva4(*d zMANXJ-yd#h!}=PuJ|=#gD5t)Ft?hf%;c)+X+b~6m;|1+kKf!@x+qy&&s-j+Qia<u9 z_J6|@-QEDRZN`3N0)R-J*b(21Ah{D~3lL8|_<@1mHMdZjULpOEPapE>eqRI-`y;$< zeXm$R<`um@?(1dpKA`AdklqC&>u4k+1$eR<q2<mRYv2-%vS~bwbDX~lm|O)$l9;~f zWg=-}2!^oC*<xwRSgq!l%XX#?hx_a>A!7daw3tq&7uf!As4_}Ov2K~MK9<V)6sTTK zZ4lg9N2N&0Z-5b3BaD8mV)L*?l_@<X-A@PA_DDslAU~6Xy~4rx09K1<N&p2?E3rN{ z0wRrDVSM?N3X0G}5=7}*(&#==kE^~ZUTz`qonIRMNE22h@^>8ahGx`tg_9pM6RF3& zz$cCY^I1tmA04008-(QRH}d!!;-B8tTk_YQ&x`+|Lq%0=?30s*R+Z%<bP>RmW4IX> zSv$qootq;i?*-v((xPzi!rL%DL)x`t>6MuM<}sM}SOiJ(fKe@b^T!p&EGa!uf(@4% z%yjbN6m&N!-FM)p!H|9wJ~cpaNux~49OI*)EMktG2<5!hnk9$Q5Y^ienWZy0GEE{R zl`<gA6r;pi<3T#zb$MF)^blo*3NWKUGvzusy@ArrIO?hnVV^k4Vd*7TBRW9Jg@l5i zZ2u5U&Kikge{@e2A`E^GTfmz&C5r7;3r=p=fgR(C52(sx6o5Xas2_O3VDa`G*pa-1 zXe`2?hcb;Mp5)+TQWc#B<>!2-Tu;<>vB&wbs4pS3{=i!uPfoG(N3}NTf~xo!3{b4C zeq_TOxAPnPiYSpvWU*N=c{Rt@_;z5>O!sI~djez57quN5RL#CPL_9Owl|YSF`;?zf zhylM{J+PhjV=lAgZl~D27-WA}<)p_{xOUwbiTD>OG*+POIw~G&Uf>&?fwj-ZPwK!L zq@OCM3dPdXAUZ$Wm~aln5->fy@`OTW>Udl#b#pR{_U)tE?uoI+j{jq|Pp4e56a0CE z#V`Nmd*isOn!z5)xQho}fRKalcv&1UFV&w7Ve-b1Ef!e(PyNrt(%@)|#bQZ_usn6W z+Ak-4HshW&Cg*@>f$m;<lmz~8$9{%l@o{=lo-eiFz1d~L^)+zMkH=1%d+Fm7{OxBx z4)DTJ@V>#9LwwEz6qbOD=~mn@JVul1UV50seLD>96$gK&2m!i|9q_DoZZiI60UW-9 zz}se0p7n>t{ge4UeFhmUAmt&|^;fpB3M6|kzW<#{VG+OGZWn$UeSKxZ^QlZ5kIc3i zjR1Q6!wi7b0YyntNz%q}K>@~8kJm7Mj*TJk8}K)czz1yq_s8NECPoZUKD;`6*lq+q zfFCq$+|DN%ya~!HH}{nIg389s;K=dG!41;FAaCkIN$4h^Ch#TaKA4S*n2cVLj#x3U zmJaXE9w@8>$|(~Vp@g4?0on&aU`__Qec~IqvE~GVW;08{j7>_xGEWsvbh6IaPqJo{ z81#74DkxNrPb7-ARzX=|A0Kg+GZ^L(s4+-@(WGG8@*8V{j3DU&Ea&P0{)9diu<;CK za{v-iqKUK3Jl~!h<L`|8);l%P2S!#j`Sx7x8oMf&#9-q%=fx?V`{-Am$=if5UDte- z`O8Id#+m1ix&e>6=hi$o`^C*>k`Gxi{qbI;5bk&HC4R{XiDi<>fapi^_MiR=I)N^5 zWF`;S2&MyaT%nK;G*LyOwD^PKLWj|*kcCG=VxAXwn+U>2BMgM5tK6<uXJ@Nbn`@f3 zz`5{g%Vxp(c)C|EH6i+%WyI5RiluQ)_k7}Y4o}y(_IP2{ErJh;^FdxIO#UVKFW~er zb`TtuxOAuE9|zn;OhYo7&84Mg(~u04sHIXImr82)+mx3Y5*2L@UQ^m8k&N0n`VrT@ z_}%`+TabgF^zO@-4l?GRFl~rTNY$0IePlV4<1SyBh(Awu%vq3znTf8sWG_J1TgF!= zY#}cMQa?s^7l`{ojLSOQoXB%qJqck;l%9y~Gm=E+z*Phteq{%A%`QxB-PZK!6&$3e zKrMoCikOJknXkMtSlz^lbO2gFrN7O-^c!r4QV2PdabGMwst)d;m!mg%HatmxDXDj5 zOv8<sdOL2Z<9+X){LA+IjL|eQk#J1EeJ9|2Yr0RyvA*c_E}Ftr3Dl@EeFttkPf3DH z68Lz=bnJ|&dAaHC8B=qt1P&KJTsuolH`178Ve5G`LQkQO+Xh-)13wCsL5H?<aWwS+ z7kE<y4Y^A$3J1AsCskEN4)!e1usQ_c1_WU*_m{xG2vMIh2i+2lyYgf6s;F<S{BHCt z{vhopX%s46rCeKIUQV_DIE!B@7F?qg{8xqLR_GdBQG!ylrYH+lkfh3tqBJY2(pX+@ zG?o=*rXmcfR8W*!vsK=WtCB>BqEus;fDfQBrZvdVG~J&dG9|Lgp1<nGP-qLzKcuj0 zh(hF}+b1!m@)m<Fq5;5htO9JwT$WB4WSbbrbm=63dP0_f$;W|hGv&T*Sp&eZjU`P+ z{ZtRj9IG!N<l-0xgRxelJJ-bp%zLwarSwD`S?Xsf(R8YO5T>$XqB7?#PrqEyavegp z|EsYL7mWFm&wL!_g?(1hwo7daqs(dG$(UW*neawK*W_`uFEKH`&G{|2bo9hX@QUg8 z=g>L};2DWhV>*mD=KEm+%$LH&i~UT0XFJA}u?F`ONq3Sh97f2^yOeicw=e4?#}gwY zMasB2iNTRI{TDtgu;m;MJnZ{_KM$I4?gfl74%m@pwNUVUZ;T$-foLScWoz6Ud6kMc ze?LPgmuEvmFhz4PCa%|NIqy>q@u|-J&u|%bk%hzaZuWyP$X)mh6P7#O3uRioj0;6= z7w&Z}!FIJ`0bedsIfM~vm#!Tm1j5=B`x%o*DBA7*dNg|0_TyYRN^Zta%!3UR-M)?= z{LANmP<xZts@)3;Hx8~@Eg$|sybd>G2p(M;{y@$UFDioD#)B?%N{O=m;JZ=0t%W?S z_~B8a4Rwwp8;;t+VbXwdX^=akN`=5lfGL}X5maMpPgf*Fk2cd9EHdZlpJ0XrQ~kDG z!M5J&1sfcv%tl5P8+?vmn)$7{V$10%$uidkWCKjJh7Nma*~n1_y6)XmN<%+Iv9Gf< z9F)=xmWJu$@3o%z1eAv9R93?gy!BSn!tW5H$WfGNw%=cP=l8;5(W@yhc=~J7Vl7FM z>Hl8)wqm0vy5R^Py@i_aJL9N0JHOCKC8_a(4{EaHHs)@bzT;4*%DMK}t3-%}L+!qQ z<?00G0L?=KYwRmvwA`gCG%8JQIfOc&yW4y8cPWUO4Wj_zgRyb$PS2A09NQWL`4ibY z0*5o2pgIj70%?Q`Xz1fE96C~t`-Z)4T8EH5%mB5TVxQ7!WSHSgi8=EC`=)6{);X9v zZ0asHYTj~-c_`18rJg&dTG6tpu;*~jEbAPs11pZB*GvL%67iCkh`DrKz=LP~8oJ1R zXHgHVgEN-wAQCM*BAA>g!9}ZsqdTIj=;YK9Mk(LbdGA9t)ItbQOv~%i#R~Gu_8Q!I zNb`_E{CAGC?Uo<pKit^0zwFhH^Cq`c^eBID`(<xB2Cx4+w^a1D-4A*ruXamC?@f*~ zec$%W-*gn!3F?y18M4U`FOM60J}5|3iqxwXKt4fbD|*=hMe-EjA<+x>6D-d0K|TQ; zd__RGx(?XK)jJORf<H(R7k+eMj<V+CcYV|^{$u9FK8EufbngQ1v<;I@xm1q^IuCnz zlV=l7f=C?zUWqF!V1*2t%#L8wm|8SHcSM~8wWWAYqjO|#-v4I;Q3>j5%gjc?g!++r zF`JHcI%*i~nrf$Wti4R2H}$pA*shA&NR|{I(x9*3V+xjzrZC85_7wZ6W?_yaGbQ(g z9}ai5Bpft=H}R{`t(WE<Z_t{7WjHje$gjMt-QC-<s4RZ}guH2kw@=T@qDf(<HQ+5t zI>deiHlcYaggJ%42YV5;r;y}GQtLB7c7XjU<(r=tWiXLU{>n&W0IE5T$_yZh@gkY( zN-ZfdxyC0Amc0dgWXu9surh$1$)VQ4XsRY_-k$6jv%JadiIH*0XY(`Ot3+H2A4w3Z zofqTO3B{QRdsx(Lz#G%jbA2#L`<cXh^#%NYUDw5)M-EqQXWy}_t0moY6{iu+dAWGO zVdCux{f~hwUul1b59CV$UscVKsd6cj-B^^$&E4H*xg@Gi-(k9!luBx)5PXh;D@PKa zK7iq1f`0hCSFXY{T=?Nyaz8g_8VPeC$O!0i6UG%wJRO|o*l^!fAFLaMu!jVrwC~TJ zm8H2}uiI@ogh_I#bdXSJUetBnHyz`zfHmJ$n|0v`PuKN}O`zmpsU%B`IIV8C*PD~% zv$KAmQYIc|gcyGY@kt?i0>}#{{SR`wklMaMZk}YP9H?N##%t{Sc_D23k`R~pJ3a8? zSM&UN+ZN)IZC^tBla%jNUr6mlPt0*@X?DkXZj!<))46e*$vI59jyV~W)pZWt`;(Nf zRKVmpcfwK1b^dz;Zc@%2qH{y~IlmV!#SIS?j%z6@@>IV$_*g-7@J?`SaS<;=YC3Qe zDMuqoU%Y_eZMe92EKqoGf-{w%Mj1i8dV^#2aFC5N8a!8xcuAy!ilHxd8Q9D7Ib**W z2JkG1(!ghdw|&PJnoY;olQq?K{hBYB3{a#LV!8JMr@R&ft;})Sz}F2egHlL-rLy7p z(C~3!D^cG#sp1#|$p8U6-$&oe&w=6tVFI;I_WT&U-vt|<ybYOwndq=G6Hs_!T{SY> zo6R&;niH>s-3_xm@aYPA1AGPjd~CA|;vAHl&Fxb6Pm$a2S-E>NGnZzZ5lpKv`Evfu zU0s3b9cL?7e}bNXr}kL~^7;g}Wp01&;7vHLo`xSR=DBwu_rjkY9;HLSoXAIQo&FMy zIq-Akg}V;1<Ki6CO}a{wN`sBZi>OC9IPSDUz&BdgR&Ne44q}h<+(Ce$T3ZOP%$@}J zX7x(}2A3L64=@gHUR`s^;2WHuI~-sfEYzxigC}k%t3FE4NtTOw#=Mr`SONU(kyX^M zx#>4_-OzV6ZC5vbyX142xGWfD7norv7bwNs=JB6uiWVrMgwAi8>V2mhaIYYpPz}e@ zr(?uL!5hNcz^RZ;M>*<Z&As61a0tWcB#Lt@P~8obXmRNrbNfdVHIK-Vd=}1O&(U}l z_b20Tiqr*75)xc*{k={A^=T2?+mS_t_?57n2|-ZmFPjc2K-eUcg1hn%s~0P003xR8 zjsf*|mrO-V05Bc<Av5cVOs3KHu;c&}@Xbi~w2t>faO;MB5?y|OM<BOc)QjT$e^fI$ zL_LN0YcK$8)f5suba|guOQ9c0`*3Vc)cKX+j~K8$$nua;z9<Ry=$i)>y6&I!4bw8d z|KQ07DL=?5#U`eO!CsFD-Lee-q_6Ame(>ajYvX;+^Q7mbr<#Q4aBMQ_QFeHv5bU}p zhVgD0Ck}c;PQByxLfH1}Z_FN^Dxwh4?dh+#Z6RKNzvmcbTLw1t`Eya6vgLV_N(fZ4 zQhGaa0Z_>L><+}3cQ_9yw0?s|RQCvph@Ad5z!-$kcNyE&g@8!JVF;3?1Gca%X<@<l z6Wyq=J*66?!T{C93W$WMscAFmy9S;%8ByQBRF%C!qs-ibFpMLG88(1yS+&~o#%vpJ zJt1mFO|g^3)&-Dz07U&+RkA@PdC!151z?v4;b3tBcN3Mp3$wSIsw%G%<8{VuizRCS zE&Tebtg7bQ4e~uW{=R_ghsO85)T4v$cS+M)Y^00;IB3R6ZmBnSPgO3dl$lpdM%7D- z8a)sop?UR{9nCZV3{%@t&^{!ovspuvABk5RmLGoSE+n{}JNc8a%*?|_;jh_k&38Ft zAST{?0)?ra`zd&Nz1|`0p^FIRp5N_seNQ<xCx`2F5=idND;u!VB}xwnWk?+hV^e<T z4xX$O27@gs!10AR_Fl2f--YW>zQT*+g>^=^27?0FW4d)kmMvMn;Yw*6iLc@ZGxN<= z{_L5+FSS$A{-j?k`8Sifb$Pu}P0n8djNco_&K%;(VdJ2({UN;@?eBu)lr{ARL(_>w zsBwem4`y1-er8&t$`#eoJD~VmAqJ_p6R6mdRQ7V`v@(O%%s>HwQx;2M&(fE^m@Gs? zE;Fnnq8Zfj01olY6-2qBla?$9w_}8c9&MB8(sBAM72|G(EHP}T(Cw@z#FDRAhBb16 z9^sS3s2{fOeFA{2R=_Y#!&DSmnQ5k`sjzISW2_Uq@V*3wM1V1ahAP8=K~l?7sbVUM z#G7$SHJ$0Ml%GO4CxON?sq+ZkUcbcwOA416Q+3}f%sVENi6jA};L=M$2muUOA|O#o z<r0<^4$Rd&FPyh*1`?K>Lcar%K*As~!k(dM6F#g(rSM>}C5g+vv8brEZzkiu3UcEa zO6ht~atn8^+&p?)(iq(>IonH0D|e<p!PtHG!8;5E@ZNf7@xZa@aoY=uZ`E_Jp!C#J zb-WtuK@gmv$y}_Xk$0R3lX*lL^}PX){OIU4-SUjnUE14`ou9j#EKc0t_oJ8g7NoiJ z!M;wfQq~XgM2n7~6Y^zZuS_)zvUI@WIQ-}JFN2D`vv);^(=cP{CWLXAvGfqZZlUMx z&!uM9lrUs-OLHs?m9^QOEO|X2mfrB%aE=uUY;L%AeOa@f!<ZPAEe+m8QS80v+27`q z0S=yiI>5mv%L4r#H;06ud^*J4JACr*mX?N<%5Z53enYk<2W2iIbc>lhfGQ;Jt1afT zD7gXS@fceky2weMoQThY^l_H_j3_}}-qFsQkt9%@8fSi%s<+eKpEN2=jXwL}-ef%9 zjnsVn3pa|t7a3f7gjW&e7xlyUO0Vu?6ZTLO9YJ@XyXjccO=cfbF<Whe!beQV3sftS z&QRk6^0Ube>bQ^<1>g;C;z7=`lzl}NLcPENxTYKGEqWuWp=%s~Uw8xOV(fD!u8|5T zXG|Np>d+!wLu%{-v%~jVt)c3AZO;o-b)@Nr$^rNcEN!AO{i7M4KnamHdJpPH(Y2)S ziOCrdfjy4$7OW(MWxmfwG`3;4-9A^I+u0*SARUUQkZiWfGPtH>0UyHk;NbBpy43aY z**w>_esOV<vOJ8>)wJvy!MM*6&zO<?`)QunhWGsPf$1N85SDgPN7KI-oS(AXG%OI4 z9i1)WQK^RaRAqp!u|KcVzf)m%R{r%^_2)0+sq^POeS2i1myaAha!)Y6@9ZwKnJpfM z@eIk^lg?e#M_X1@b$*u_%`9$@eNwXi?2gXcBA+o@t<yWMx6|h*>6xSQODVZF<!xDT z<ALpFM(t}lBTXK!FUj+Vi(f1qZv3=CvO$owAlTNU8Vp9P>s}aya*lkf#jZQrh_XWj zd!F2evs3{!#tyFz_AHAa_@trpt}kLcvh6Z6Ue>sUP79y*Bb|<J$7zPHjno(9fXNMT zE<B!d&Ct1mv38_7BffiGEeOx$gU!?nbnHSQZYVo1OLHG&C*`dpFFhJw=MM7WQLh*H zO*v9Rf$X5IE@SV6`4cA-I#2g(OK^UN4F_9gY}S*<Q(DC$_+95sJzcCY*t-#N%0y8h zPaGT3eqj0o?#(PoxjT;ML9y7HsUFdC6T*^7>#dBGBj?<ZJ1xXe1!We}Hib|I0jR5{ z8`!@z&mbR!B<mRo-wtb@rpZ|GZCxB<=&r75HpBH{`WrY^D<pFOF`Lz}Y+2s)|2AIf zIBpI;EL)bRw_`Ab=L!QGu45RICYm}S#%;ejrD~RRic3}6$TUyW<PVGc$VJBn-j|hS zNOJ#yT(C~B1Ur0`ToqQuHrN8okDBtL$RWv5OLuIKZT+Vim+s@52<3$V6(I%-KEh>X zmAhl*#HJQmOvM0Bv*_~{O=qP9vVyG?3^ABr34kqduUb%q5sZ$_V3W<S-C7;={G0>m zaqqyHM<0LQqUin9^Un^T$4?wN^|_)6Y>r>9wvA+hcoO1<SyFLZ!7R{{#V#kc;T2PX z+m+gK;TU`d=lFu_ndr+EfE>4ftp-f@{ggGcC`?lnZ*i(sW$gt@-_P=mh&W~%tCwTX z)@a>g`{K!MuVq5N$hqC?6i4Tn%)@6fj>fZai8z}2Aq2h{AWhp~unIYD9Ue|1{19(b zYrbMWVDn`SRu0S(V$pXZJjAf~h$2hm&><qp$|D|TigL>>3R9N7Utud06(bHtT{?|W z>4#^wwQS`xa<5|A*_*7)v<A;k{pvnE$w!VMsTM{^Elrr_I+!y*P2&B{URJB-wAVeq z{g6V4F05;MU0f)(RV?XTg*{OB<c9DDS5=U3uY0=JZiiG?G4O0sD8|*Qp~Zi!<*->_ zRT{xcrAArAqTEoC-597ykNc!KdkyT&n8XQeRY=1azRy8#syu0;7`0CMbs$WsVio~W z*zp@3ww#K77HC?kJhPwa$*3#?bzijd^F)N{TpEKs=}!~swU-Q)k<ON86r@oE&lv*v zrJYg`s76FLT64?1Rt(MXNKXgTgnnyt)tV%k6&6Qank@daLL#jm+~g+EbsUlDA~?M4 zv#mHu&;KVA!2BoL*j)E7#5iin$V)q6^QM#<bAZ6l88EYmtOTb1+o16vx^zjQ_l|1` z+k2AYTXpF(drBtI&-pMV8#;;Se@*@|QFVM5)$>?Q?f`wI$Od*22%KV`=f~q;@CB2f z=m7)06a01L&(tQl0{QvF%oqc=#jR~8U84HSm5Sqihc2~RK6gFcEEOA!GGC<YHQtP6 zLw7=9NFj0TkO17Fk{P0DMu(f;Jh!NNUhz1WFx}-^FOIdpmj@no+U*q{i!WCYrk>8- zvSmS3@61#x#!1yyHL&dPu|Nn=@6sueEhyatJys9`ZIs(AGzRc-IB!gLp`!ujSVy}5 zy_0bP9tYV#NPK{x;>gcix{RHX0?~`5mn$qWUa+#-Tp<<7J)b&;Jw%ZabDg%Zw+XSI zxsDvEWR3pNhsqLnqv3@?##t3X!6-L+#kJS46R4HZxVZr<#nm3KI@Eu7AOG)%`-kxU zRm6SFQ?NLZ|1K|;rObv9^_P~Ks@hyy>QDE>Sq1h~)skgXQ=@1&g3&O_zLX&yU9+uS z%hq%h-g`cRy6Y|ovEaIOc&uous(e9KRcjnX`L>QF8nIKUJQ`FwUYK(wq@FLvIlB%^ zfh)cL{iF=2Ox`a^l2m=8G!HOTNiZzE<FogcFfQGT0m>K0u{OWrBBl7n%FXU2&T9?j z7hqnWrQu8yVxPv$C#$W?(CjuhAUN9mzcK2hO!=4nK&C}K=NA;I9PAs$3w%)hV=y7t zR2xjc=W;IKn<K4IP|5Hv6<jE2BTE0*uY03fP5#TJ%u9gz#Y6+Nm7N@lcqW)h#UKWp zpP+P_WKbbxCz=yAt{hAFvZ%Jc0?WW)sO!_8m;mO1B1o=k5J^&oj1sKsghSb_eNZsj z_@HZiSl4x(BjADQPjp?q+pmcER@-r`x0$df-^VPA`DwSZ&~hE7D3S$|%#O?jUU6wA z)DOvqU>k}!Ag_G`_sP>YRQv!S@GEc6D9zq31H3tgF)C+aMQUIPasN7&YD9T=G|z6> z4ZFb-OYZch*Q4jLFwR>+=%-ecVyBBRlT#^{2KkVw<_~hWoOlDTPpq4CER{?PR_A{E zmz^P?tLUx7FvyTvHs{xHZd-KdxQPpqgBL6ZV+UiS1lTbZ&2kyF9NFg7k~!CPT?o_F z;w=YbX9YVj{1h=otp5L%prZk3yEdnm=UJ57yKD3F$FU=0$H8Q#3ZQA0sc16M6`+>Q zu}pO#bX|Z~#Eyey2lGvd9F)rSSGU<s3htw+Oi6m=YEsGesF4Vphf)8f5F{vj8WYr# z7);EVz?bBw>($4@?^ZReFMhWyz29uiZHE2no=&K?a&)#tqad1cLRHEz*25k-_+y8N zmNJipXXYXhpuORQA1Q4w?*effv#=JHFuG~UmfG*roo0Znu_bGmr4OT7YQk>D<omfu z(M;<sL~}W)@2!vGeOOqdiTa|wWk20w(wJne=(CV&4Qacz+RRL?=C*s=qq?s6SKGjk zGU_A-L{}#bEy7j{Hfy$R+qKPTY59#CO^?Rys{3%&7GSj%dsO0-OlaFYGSP+2MYFcp z9f(jCQsW6Bo<IuWO0Ish7~J5D&2Y`#CH*UvtA%2rpuZmaq`;Ev27xIg{OvZ@%QJDa z5d@89JX0pZ@ND}+7+$b#&kzLeawROxAaGqQeY=^Rg32|mP$(8uuIhzC5$<V}E1X$& z<J+#b)p)2_2z6EE#cwa$@0>^z(*m%}Bt2nT;2A;=C=Fy`cwm{2>tUf-<f{7ZZ+JVe zlp77pW@X#T$&HEcU<BW?R!dlSkJCfJ17RE0uX__h7Urp&_nH6qelT%0UDw=6F!dt6 ziT|0;eC9LJ-X45SQI08=<^Mn5vXo<ra*Wx(?{@Iep+kqJZ(IAu+BfX0-)jgHMA1Cz zpd1}UN40@bVFp=+%!fsKzDN>kwyS;vHtcj?4>5r<!uq+--qccue(tlp9{kFrdC2;? z?=gt4zu|`KCFuhgkD3@7qab|V^Mh~{0d9^k#?6uEjhYzH*|Yz+_ODv^?Af15()Bmo zaQ*$)oh9(LY7|ug7It99OkNaQbE?|ys_L9M^P<F@ft|#hQIr`odAxoxx}{yK*J}X3 zcW*SB`8|MIy<Yod^WNxIf)VP|sPDx?tkFc*ASrr%L7iNL0Vk+M1!Nuc*2Ox&oVoMI zJwX8joR#E*yp^U~0x3O9O?%n9=CJnM${$o$R;p=P7@8C+!Ff{xqnfC;t=dW|^tCbP zs-_#PXy2-xR!iT~k>H#Zm?Y`bcUBFM%=3W~O1dt}8G#r;N50$JgLf_fEF7{JSIrBa zRFEx`TL%SzsA!Tz72VJ)f50S3Ylmf1ysac!`j$kT3$CQPZm_zoSSAT&|GcSj#XPG- z>*6_}T%N6j+XxRrE3!<hE^BBlU^<jl1-YLm!4qc6KRg9q$p^VQeleWV_xt)1Bqb&I zQlQ)!tHnb7OZ7rgjUDA^bYv5Pin3sDg>#{j%R;3(3{Iau?E!e(_f>-qHSIoTS>Eoj zi0-^Teb=)r=K1qXwAmEm>k@31goMZ9buxhmnt1e34bYm8wVC3?HbbW_Vp*U(*s^mU zzMg9$IIo7`8G!O@{PkAGY8X~I7vu7m0;M$laY+f#A#<Q%frPgCRIzPWPDlN|iftR* zwS_Twr%!t(O1oMSgzp_qV8U?}_Kan+SK>NDl{j*+ocwV;N!(;VcsIp<@f5>;<21p6 zi!HtkpYSm`-S9CxRrE1^H&GM<U;8NIK0d{`k8h#eBCyLx*yr>X>~nSs`<#80_Ls0< zk%L;%jMcsv7ulLoOhZIoK!nmBd1)=&1txg7dFP#*L;PngkHXn=!sx_3_ner%=*w8v z2Rqnl0`q9>^_p}4^ql)0tpHGX^~;*(oLez_u1(e&qB2@Wx$d0ZE@6=}Xnu3%XK5Y; zf*r5rq<X=bAE$wsOcDOH?{kl~)LTBX4Zy7lCbTM^LKh162Od<EEigmcJ*;3tq?iDv zGGbiqMeQe|BTa;Tqxb1w(AcVXwoUN)Ih3D~@_P#A*nu(S(b)SXV2xcG4*jGj@r#zR zdcM|4VO}G!vr9;7PcPx|e`k7oxy~$`*2_xZ$sKChtkGbWO*^s|D985BnqIwliwR)f za?z8OV9x^U&O1#2YcEh_Z@)i=6`w_S%jsL7MEiVq_s-0iuB9$7Yqo1nC)(e;`;V0s zTQl7wM_g00zo`5(@5$vH+}m#1-Dv2gbtHavmMc#ji&(rCq6Msd?-&^Ph!z%3@tkMD z527gW6TIkETfG$EONyfFin6-jYS9PwNzZV;)CFYR>_2l}ZW5E?BsYkSzw%A*f<i73 zSynH!I~`7BxkET7Mu*%fLb@xxdb1-oRurx%%C@5TCs>)F65Khpoo_ISuS75~n5Mfw z32tzr#ly{(RA|0clA}%S^>|{Z7Eo3Y1y;b_jx{(8S59;(b!VU>e>j0Oyr^AJl>5A) zC>JiQKga}}Le<A@Nq(jCLYtM+18bJh5Qmvce&60EZvb{Lq{+B&qJnWKuGqG1R}4<I zz>k5y4bmw$Zc|m2%`{8^voXWeOxH{RQ`1$hC|td#U%+45)oL79t2WgQZumi|6!-== zbXw0H7ZrPi=U&82in;0(i;l`QT`_d7+iNTDm9AaM-}ZfPBBmIvwJ1#cjOw0_PgyfP z?3@V_*lXz@7Z)X21JGpYX%#Hc#5-Tj=hlWb4B90P@V=+!vJEiFSHKAK5#Ki*{?cn& zgs*#`UJoRn-kG39$#%W^=k<DY`(|{6u<hm#`XT+sLG~o5qw%kRU9JeepUPdI4D%8h zwE)=#)khiPL`a!M_B`f)AP5IJW`mOS5g8JMlu0a!n@psdG6VASR3Y`fP&J23Kib*c z>>MamtAzu%u3)@kjJr+IkKS_2QGJ-KCu7+*iw6wjKog+3w2?Qlv$@&%!virud_ahI z459o|$4!9d0mC@3dFzMyZxgfwLVQa34-f3T+kkr?wJ~R51YbgZ_=7nVMMGy2lz^c! zD%A+`vil$m!atWNH4Y{TKzqj^X>G(!>bM(vJv>NO$GzSS5|$S38JaG;-QE!nqGLyT zT{k>Y#}$tpzDSoe=i=cbMVV4VhQ0dseKEU<5ClvbuooJYL?-TX1^Jhml^g~k{67m1 zB}0fO+uX5%{0b&A{d{CPH#^vZiDSXnG;caG6-HOCv1H<m6!yndlI35j8Z73ns{!H~ zLTGGJtx%)rG<@6d8;Eg4#@`cT=<+loe1t{HxbMMc!NTdL3+>PHT$@m>PCH&W)Y1Ln zI7!>QkvOZZzq}NGF~H2O{(Ep32k^qCMv4900D};EovOVF4FyYzO=K78y4pQ2?&IK+ z%1rVfJA6lgX^El<?B&=E(CIWrr0WCU8)4>>B&c@X{4X}9D2=*71Fd~TMJM87{7NYp zAt~?d)aj=S&UY`*u??y!Uf%6T`O$H1o<+z7C>YjL_Qf__P(T&+B;|e_V|Y5^*dTPr zGi;m`Q!>2@$sbheN^GH3%UdwbN6{<M$8vSd>oQY^{u=W133DbXUCHt@#d>4R%nH+< z$BGhc1efRFARlC@Rs#YP%Y>^Wcw5v9gDB!6OF_nquE&3NsQPE~y5<fEk^ksuwM3f< z_EsO|T%2O>rGNOx`_Ak0?+zo8<}H1Ok@78aT7I;>+3wrxuMZ647LrR`TW7p7em-Kg z$uxLR<P2gUh?<Bi8MYB!;NjHnD7WXWZ<p^tE5O(KJId`SSZ$(oxrBUhd}*0dw4Qot znbOr9w9p^jNs#+jn<<mAC|js2`e}`4%3?HXeL00d#5||tlneIFH{0P)sNLXJX4NY0 z4NH>HRKl$lBTLKXs<R!ZEK7^-7AL`7l;ou;G)Aim*@q*&>4pRWQ6Y|2BUuI}lf?)W z2%(1(jFDB{Fc`I=@&0Xt-?e1MBzuXmC0k;OWGztuy7U^=FjU-ZDL~nxOPp^%85myp z#;1@R=#uXP-m=KpqAe**vKJWuTin_VyU)3#Z=e;guU}|2BsWHmpNDE~;g8CJByDz^ z$2oTn9Y;4K)Ji>nN;tY<5=RJ~>KxIqp;29*CR9#5vI}%@P<7Qu;ct-dF8Ihvg;DH; zrBdi%%9N93d4pj|Do351DhkazQCX5O+mOp2sfn%Wf1V_S=oqp~t%DYIWutR}5Lr1v z=?O(9WVWBk3R8}x?h+wOZhAyvikz;@K7~4SJ#d2aShH3w0BhCKVuXygiT{k=!G>?D zhP?{C4gDhe1o{#}p#8B;NEq;0v{g2nKnBBRN8%5L#(LXi51w%8q71>=@3VL5w<!FX zRlX(wa??!&f@{iFQ@2lCxNzaZ30sS&Cp&`a;q1lw-DIBKJ^C_PfcH<Y2-5nZBwwkh z!F;JSAE*@`toqKT=llL4$6vkiU47AH(q!KKk+%~p>27Vs90ast&ujb;<7c25B>mOY zk&=(3t%DI<Aq%-)1kItJ>L6c71vmO->-u(<tY>6mvC8z6@kfN0*D)5Hmwlp;(!GCO zqKx?E1;u;sMKG+4qM`X=<P#b(n0(3g{$kudSi-n;upKY<*J~>cfmk{<iiUf8@U=)s zMH%u$!TGpleV_Cho<pd{jS<CwKcO5DP!Pjsdezl<M)ACGIx$kAGe78!>htsKEg|;j z4e2JW;%G%s)Dn|uH6Q@+WNDzSt+w`M<AFSZCs#FL$p{-kCjOvG$?WR%Sv6r8){oI= z0}L^@1_z)HCf(La*MhJ~4X&oc))90H0^IOIe+8Z*;3~PJnF6;}jb-dr520;2!D#5o z_Lo3LjC?PQ9Uc=>snpRo!dM~p>rG6SK(r55jvc%H`eVmd5-e+ox^d>rt+$>zv!PNk zH9<YUp@m#vh?;h~dEV_Ls+5Y;bZz7Ou)f`Y*>T`sdzEUn(&MUX7<|1E0Yr`U1Pz+t zeLUb99MsZuUDs_cIx_$tV1;Ca{~qaHR=yV}{p&pq^0b~ppG4nilXML!O}a2va6(Hz z(MU~Y42$LX*AevdHSMi+{8!8;x}Y_L@#8WB%O2IT5l>v1x|BO!F6Slu%SL2z!&Jbh zC1;52Y`2DO!Y%ugdfQ+6(T(jba=V3mi=&ouS<=*x9s}H_AYkZfhs^LIr0KCn>W7kn zGXt)wXS)DU#dRpQE_Y<+oiBzu)BwBC__uv2!5No(_QK;>ny*8&7)uD=H|N4N^T&R= z7~$Hyi@)Rle#v!Rx71#yaWz$vFBTtLNt8UJq~QhwkE6N!dUh#Ae>5C1YjNKKC{D*d zHiY|ct}w6<pAl#24GSB<e(v<su3;F43pe7MAA1QM<o@ENo>PUBdc^(j^@RHHekWx9 z@||t17)3?f5+cpAcB|FSvQ!A$Dn?N;41b2d6~@GY-gDPUVp~FlVKIt|c=Bhhq5(nx zZ{zaK6bl(Zqzal@Zxd2l+P0NVNEw{FA7mvZ|GjYa{%W<}Zr7%N5ten!4cc>!!V`-x zme~w>V)4cB(fbW=Vo8Lz$nUSU+x2R7`r|@lt{u3RUJhTp_yn0@@{1Rrz~}deaZ;IK zqD6#SN?{SB>}tqT!bzLk3CW<}_evjLFkk$LiX~mxmidn@c!B%aQoUwrYr!DT!maOi z>Ji+)X8yypZCwY@K3iSBRC-XVM@y6%ng;jnOo-|oj4?djpZGYbc?kU$`lsAxG3_a2 zDVANc1zp0QeI~Zu0!YwYJq*oPvQEE~t>I3$Q?ymra3`MUVy&>ZrZZPB-DOkOq)yk% zBB1LB4)Bl<@Ji-$|MduYh#2RvUYDEcGc~>e=L(cd>{e(&rc@r!%3fNbQ25qE|J#AG z<A7oLwn8uf$O<I@SXM00Hx(HJ5XR=V62<my-PN_zH-_`cypGEmR_s%m5HF5BBFnF5 z5gIftLsio8ug$5NgcSXYCTZ#%rSrIe1S`zZlL~;Cl~zIl%T)id0S5XXMYyUosScpz z$cGbE;MMH>4<cEzB*~Wax<GFJO#kM7Klo;NW$l{;#E8Zv1hi*XBS~$yaR(v3*x=3t z!fv|1_)I}vVrJ{pobH$~Vj6c3mBXqqR9{gwma0N%XOx0)#q_dv#n%qo(|yjxF`Zwh z0{0bAmUZn`uHR&*Of$MV!H3$r(;_sBP|G9>45Cp{81+IQV~rrEiqNP|TZRlepy%u* zvH9oIXYqlxTTJ{xRX=#fw({+<u#62&{qRq({JDv9vhETlM7JM4BCMZ&P}k-mN?^b2 zENq@z<^03vFGbS%fMkg<0FLCk9?2%0zXH6s=vwjMn#2~&=xKZcz4L<!eGeUw591wB z%GltSc)E*Hv}OZ?K!ap2%t`nMXk)2{vFJ@oFs20yCKJHamRwBnedTlvZ-O8FoOEgZ z<Fm|EPs4-3+0lE1{x@m7|B_#q+(|H>iJ_x(>=1S_f3j0<5oFmZ2#pocF?_5sXANzm z2hbzPqrj6vn1!)_PjWLQ(IB|jXnGSMANxy6vpT?Nn+G|`Xm*-;FY9#0j||y_a31oE zrI1L1Kd#h#cUjRV7lN{Bk>%Y@FOFH)P;T}Y@rk~y=ibfT_??mNxjZ7Yp7x~B%X5J< z{n}ybx}^n|lyHGE#cXD$;H9@d(mfbSmuQ%%;btlKWn#kTs7D?BZSB?}lE6EnU$kKQ z?7GW!@8HKQ^t^h-8x~D#?j3i9u0!X(`^Gokh{ouuN6;DEas6icIWy*w+J8ZaY8jX| zzPGOAgRI-{;zP5?j8(siX2V<w$sxvA>iovsvXpp~d;-w@2RF2=rT_6GV6`93!{SNU zIC%daF^|4X(PM*@9msF#4&NIDBm+jg`a>%Q1^SeD&6wg4mI7XYde3R3{<wqCZ4WR_ zA0NQrJ@+rkh5$9lD4y;EJ%Z4uG#`4V<>Y(SA0*E};x&mV@8Jo0K~ujM2+J{zNUM|E zP!Ixg9Ski(LQL`%oqcWqm(Q~UrfFDCy}a36cPt~+YlOd^bVZvNsEVOMIn4;=<YZ72 zlsg1AHAwDJo(BC{Xc-#4FZ8r%avWw_gT3rD<(X?7r;MtyVh?<bsUU(K{@&u|pfv;2 zqEy^dq~$&j;{#s9@{J7J8VLJh3I9F{403DB{$cOONosb(oaujIX8}7--n@yaB{Rlh z5Og+(50P>p)CTX_XcOIle+(;6pv?+90A@5Xq0e`+#u}k_gSI5aN$OHg(}U|!`?Mh( zY`Fw~D-Rp|p}k^zgkQ2amj+5W{Vs=<vvq-Aamm4z0Pm0C=RbQuQ=bknxcdFkMiD91 z&~`uQx-|*FbA}fP4s76Hx^*tx;)BK56qUWJ_(*Fbux#E1D!OIqKhpIdz3zuE%)kQf zzpG6-T545?HxnF6h>c!&CJS-%LGhS2p#G*tBC3z5{%P+w{4mI;{sfka8(`lHjw~7X zm5Q~h?Rj>oQ7YbNNV2maA>@~J^oZv@auvNZR`EPO3rQo_GB%lIi`z_3*Ih7g6Sl>Y z+3c5V^z|9WW^TRpccb*xr|bAZYLbr{)jQBVl7{>y?2ep}09SV+*SAu%?!r%%x^xH{ zva*J#=vST6=~5O(Ru$DGQ~`#t*Owt=X_&Kg6ZSa;Rtzm$o$-C?5b%RKK-zFU1!4aG zPS0(m0Qx}=ha}&hQEe+MGR9Z+vWf}8YRRxQeZJqH*ERcs6?KN=PGk+?G7tqrxfC;1 z)dN9kDF9u<cNJT$1w-LnF&0{_;$2wMAt+HQ0$o*ETq*-r2wZ_8Aw|$NTTm)&O&>+$ zNfb@SQG{q*qa)~I<V8h`%xCP8SQUw)$Knqi(-uo*?E-j7T{g`g+2gcpFusUoLnf*D zR>@-v>=hJ^Lk?JXFS_OX1m}9VZdE!V*>=rrr4{l+_u1?5biOR~aP!L*-E(<m0266W zFk|`;%(6Ua;#AMF*ip5a{ikFT@`0v$biL+>T^DUQ2ypG}qMN9f$N`<LnRdI;2&&CD z|Nf@U-LZDbgX!O{xLo)8@ZK2(`>>;FyE9AEoW*Lj9e)t2)kUQObJ&v>*=Sihhr3E) ztswzD@xswXvv!pf?bNyu^-yYnRK!>^piM#>n#zZmByRObRquSPk#bTd8m@A0+we9Y zXwZu+-2hOy7B-LHci-`5s3{!4(5<K!P#i241ZsYDY8#``p_)O6EEg7Ow@^zrI)Zch z;D6e2E;?n$fxn}HkGZ92hG%IS6Wj%GxnP=Rd4{G~9Qy&~I>v->#RjkyP6)<2Z*utC zV@LrVM<`5_G}E`6jM^@Q+1PF&ZH@237AttFV00dujOPScA4>GA{rVpJ>n|{Je#X?g z%oNHTwwjj+ix1*A3V5#}xWI(TW;145G{WRzS>pct_&%xlpCAlJrRN%8+$`0A(Wf=- z|H#WafPUli1&C`26iUwh=r0!JfPn@tMruQhLme#Yd<n-AcqpgMLmxV7Zl0%8k6?SV z-PQ!E)^2Y$sHwRn=BxngjSC^FcRsCmmXFvOafTzy9X<Ysnrka!#FsaU&<r$Fj07v1 zY<%Lrq(i&lJWcX&4NDEJ5SqaPItvJ)H~QL3!LYThF03>(`rQ5fd?WC70XW#PDAgJ( z3#*ofJQvjZ4P7**m)~<-ryha)HMNoF1*k>&v0?&0A^g+X!Xq8Th=mJ1XhA3nNx<*g zw=_fNmF4A1M#B!ppy(p@eVCs+g8pra?S2!F%*})E&zQObSXFj*IDAzBti}Mbih&*3 zFjFfe$<nb-M=gc91m?uQEpZUwlG^DUTS}6GW@?7c|Lk0SBO@fE(bWk&3lsc5@jm{) z_}{P8WA4QjiEy~@^RM68^RO0CB)aTN{uT2OAOjg!$=vQmaQ0a^H7ynZ;)X=8E9*%T z>7&;9Al2w|C-zY07r;ej`0NAndp9k%Iva68>S%rk+o`DY3vp0tZ3U?=8dGEVSAw$F z<jXZ<Y($;)LYL~%lQ3C{IEz%we7KkBdDVk#aluQV&BvVh)*Y2dtnP`U8qUnw!C>}y zok>I;CHX~EKVG{Q##2Yn-_-Ra0jQbpEO_-q!5BPx_G+|DRF%~|iBvP0Sp%pYU;hf4 zEV26W*}=xbyz1bbi9=Ak<~Zv7!p30Me5>|$=_psx>}ezY(KN14x{mefBK?RB)KZIu zn7~XO1pPY5Xef&8coZkRqfO;b3Zfn_*FaW1HCYHmH7&$`5z?v%7T2q<4cpOP@!8`} zon_T*o8B7Mf+F`b2&#n!RCoiFkf#j&tL|%aJ0dhiU```|P$vo3FzYWfu)$dMvXoJO z4ZJ!qpR!KeF*oM(*i0!4GFYwb@VIYuVFyk|-u7C<EQ(p9jT-<nzkVJS#jVzwuvhV- zJj(CXzIm6|+5?14RMwdFXDo=aH8<A-9gS&MZFJNt7WdJ;`9L$16%3BHNB-sAPk1|7 z_u}u`u7>r+^JyxxgK%}hJLZPa8-7dWlX89UCj3jjYK7Ia;iy8P=3lN+sx`dpt^2&M zNQWqYDN4I^=doc5@i!pcByQY?k19nWJn>-{7!++=h*I_bQq^VUVsM*1>Mli}>Ovbq zQ3%^ER_`OP@*@atr<GUH7C6o_DEGk^kvIks(YitL>59B7;_y;h=@#`Q*fXYNpZji2 z8#0Ng?KYRFJW&-@l4QLlrrHT8mj7_U?SDO6#HfljDlsF-R<!h)swx{!e`U5Vdo4!D z!aJ~oY;^eUx9)CX!7WQU0l|>et7%|-<?Ky<M(uQtT{J1#wmkwN^lc%wh4nzr?VxSA zN!0~`z~WL@=I4&2<t9p*x!bnAtrBXjrs}5MSNV7>%0c!{dnHudcG?T^Uj5*zSGN-y z7P8>{R$_$o0v7v(O3Gc<xGN>=ZdceoZP(srhPU%^r@K9juQ%bN8cK7hl5w&g_8;s^ zz2jv{j2;fMu0hZyd)S5P7?6?)5)|nZn7(0UneR1(IW9MiK?tdfuY61AE86AyQCsNH zU14foF7*u7t%jKsbiM*cKp=qi)t=*czRst!9_ETMeVL(f__=ykxkEmjXPJKJbk@TT z=2`udLrtxg;y8K(BZ52s>gk6D1$THXtH6!#r0EpmQ$`w81I5p`RVSk-QdFwmJckP% zTi4Vj8!SFwBskyaT<qI7)W08Pq-u;3?P?D**5Bj5!4#B2&IyL+2VO;TIt8B@;>X~p zz43rzHnMmHIAqaZx3){tUJ#<8Q(R%pxHl1uY$XWeB_d%bAJv!QFes}xyow@amEAmp z$**VUx{6w*5?%7=(fATAm0EV8n`nt==3I=XLm4!7ZXC1liqfJT_n>t^^6Z*peZ~=q zyLopk(&-UGcQy;ouS^?BcFgyQoFW#oot?Bt8M{zBaWUj)1kn`R=gWEA=heO5WMWIF z{E>3W?bho%Q}MyZlm_t|{YGk5rN-fQgzop42b_C2jQk?zbPPMwJs5$&IT6e}DS<A% zmup{t^hD$F{{8QUbrk{n27iDo%GZ;1Wit7VadLhT{{6dfXEb^wX8dcj9v3JTq-f&W z1{>tWhTgs)F()o%UCz1*FgiK$yXJ52QUvB6jj8$z-G0+0pKcJ+J8`VpIc+5|We9sJ zJ9|Kw&W+L4$34uZKV{s<@W$ycc$nS!n3$K==VMQ0|3Xz$z-Lg7cVMKP7)`l=&py?W zMA#5uvcbgQki`y`*kTH<y2QL>S4J5Et{6(mvQR<(kS7AmDk+A-0drL-D~-mAB2<po zRUduFD0ZA86QTA|(QzcqRgvYjb&@0`fWl`GD#y~A3U6<%q3}ONU!P>EM>D9Kod_l5 zHhguXrqOm^Q#ZONk=<%kWU4_b*qxN!WMfQjzXT7XnvY5wEeFmf7)S}%=6-PcnLXeW z)6XcTslZvqG!>O>7;h5hibBW3)NtltIJLRlpMF3qIH9Rbf4b$8qcFM_^%;l`P1O4p z5o$w4GpHMxH*t0z${z9`iuu818%zUtk!h#t(UP>k5qWNM|7h>!%$D<tX)1s8LQhuo zhjTYx;?9Za@<-<;|M@dpLQ{FZV!kL%$4iQ{v%hT|+J(1gksRH>b$}YseTUS1j2eDp zK<7XeV!PEn`Bx?Pc9$^pw4va9pW?IW-tLzE>Ix%HZ|h))@W^W+T96J-HyAySB-GK% zXY0gqje+kp1)$6zDJ9YNPwgxFCMG1I1~ko4<K;Ocz2HdcaYLWX)*d>5Za^1t0}a^D z2xayRgRVWtCYEjnAz|4_Ju(!D9U6vVP2%+)l4cgXAct$?R??7<Io0R$7Q%waiQ&dx zi$8z)ka0LW8&0RE-+$WELi?<l*Aqg_>NVF?O+x5(W(~#wfB$VRnl)kLT%&DI|7?op zRUx%Q2=slk4p4vl+ujDyh0?nfQ#DO9!nkgkrYiWmOVEM0y$$>ltRb!|=-5)ZXUECw z?yx^fD)EvAU!<%}mVtC_&O9_?@Z<h4sc4RmE*(3zR6iay0<>i3t0)3Af%36qWdIuV zIogrsW5<?{XvY^jf1BxPO>0+<9jm7OL*9Qi^hfnl{9O<GnQ!)t=MMEAzW6}CHVr4% zo@Ehs>=+|^2lM}loYu5zp-`RvuELHTW6Jetg#FC74|*{VWl=8&|14M9eJpV=1*dV6 zbmK`Z#D30D8{Vx98eIpk&nF-84u`f@uuisaXZ?f;8SG0)cnw@jywP2yCwEsbdq?1& z???AmO`DFVgxno<*|%ieA`7c{<Oii2C2KEpH>C7R60qVGN&Jf9?lRvrfd>GKJ;89% zOyFahox?S-A>1FVf{ChT81B5X;?|P&bgt9a`k)!rXSXf&Q^#~yH~!aXS4I0U;UaEP zn;7IE>wMeGogXg78K2UzI=|V6p%5eMT;I%thGprR{=B2NyQjN7yb3U1`RwZ}X*>by z%wbqMpy`HX=?`y0a5+%e>75m!nwWP*HW2BCo*l@`$AiJF8^9(*RyYJK(Oq6HjXK0_ z8W8n`GX;MyP_D^b^ZZP2si~hfBw`-@JxiE`Fva?#zj>CXrC_)sp>W~eNi(g%^EMY^ z!1V$ZhU5>4!Ys=a<OteN>Px6~xmA5tsrRhY3?eNI@_nY{(j<)C9Sq^^Y%j0H&-1#Z zBiA>#xjvhU*pkBEG;iASFIQvTqCOcYddP;7N088&TEuIG#nYj69HetZ?o84h0oNhv zZamG|o|kNF-OD6Pmf>eXhiL0#OO@w|#sO%yw228J`3*8pQx+Rd<E#|l@O`!<E?`Dt z%n+(3CB%2>8ay56vW1#v{HBG0zb$Ixv;KfelH9*vrc34WJh(<w#HWrqHa;m-w80sl z^8lPb;hCi-bpmD88<j+)$2+J+b@+-DGA3WC!c(laa^iiqt1hd~Co)NhCUV9%i{qC0 zLaZTC*xbxaX-mbDAuLl{P3jcM*iCQGEx=RvY4EP6*}PZ30NMANBVn1EiY4PT9G(80 zfVniXCfFCxG=t-!0{9Qn*sCG0U&~AAk3-nAW9&dHjMEd7?z8h{cP1U_AUAZ(-xq%u zj0#*QP3zR@|GM$SNg}%}wo*P(dR`6FyW(y1icG6O{9e3r#X1WiP$wm1F7w>+Pk-~H zhA!qh?|+-#6=UJpSkbYiK6rBsBQ%361rJq7Dn4RKCI%h6zLPA9DG?eeiT#XzDV%#> zyT$Y+q)$1gT9$gQT0IZ=zWMm$(~nX5a(@U)O-$ZsQzd{-P3*nEFkaBgJRhJyq4tM9 z<O0Kt5Ek<|DCypK>^*ddO4XO3&Z6uTtSL<a^ga5rb?PG=TnG`%oMw}`zSi2{PRgf0 zq0L<3r6AD9Z42RPUt{iBKLr&>JIsn#4pE;kl2J)diDzgx>_$8wnut?5t~tbLip*mO zFx|JBP8sxD0?B{Vc)AbF31pvS07Q-r6m1-#SJ7eK`gL^{=yUkE404r=%KJe&+Zt1g zqlZ!6>YMRBgN}`OLM*Zs<UZl_@MHvGX2Lj8RH@4^z{f($Den<%5!YWCL~`!;$Ny9h zsq6g~<tVy#2S`3WLM$&IQ!mf+LwoM>b$Ki|kMT(fHsQz~IQ8J2YG_;9q8-nJcltvc z(*hX3)H9lf2hsxp$OO{)hci5n6dW<cPBcN&^bfv(8k(o<aW0;14z-P+5|q)KHeY$~ zRk8=Nx;&6|c+@89jvjNUYe<zk#LpcSm}FPc1@yV8n*ioOyJyC6bS$zgOGu+TF9%2` zsHj|?ZMM&K9GLEWRFXb=3Q5*MlU|*`zw6zv`aN!HW|JHi$}W@gJd_}6#Z@_BKTdsQ z*bq*{z$2_5*Ft)~V%XuujC45f5ca-ZoQXIWd&BoFngK5soKHwzMb$Y$I-1s@jz`|Q zdePiT&c$$_y9~;S*1yI>_(ddJl;4I(YKL}iBRJ2qsR@wV%uykih4Ew(J!x<iK)ikW z=-Vg18!9=xGM_#P@ai66%$R=GWC!472c|F2WX23QV=}}eGF#zU3ufu*P0h4}#?bMs z5$DQF-(1rBW2U75F3sLnWtrR#Szu__kAEi?(J<>bkdR3SF|!lakoHJYW;`RIHF^FJ zq7?s9zzFylma+VwybKNuF~G@o*!AHF?cK{6?V*5OW2{l>nX@Q!ihzLmeSHQ7Of^7* zy1&zd{Sb9Q?~z{k<IJ;^?r?#n5&~yJq8>c_J*oLk*y+$;=_|N0u!P9KxacxMHIOj) z^fTIZ!#|4x5gyJuhP_DXO`Yyg%2wiBLIwpBzEt2`24l(8|K_fz-+u0L?zBQ}D}+jD z*;LzzZO+}UdoI7>CpT>L4>&7nC=F|Q?lkzIr*qeZg5DL+gtC%R3qS92-TUANr~lF= zfL@`pe_$-hqUQkG$R^e#2uH}-dm4o4+XbuVDOD_>mE=j{<}zq8mQ?Ma@0wroHRkEX z3a%30=LLx}T;PF6s<=|pU8eeadw#yH->HRaG7Z9R_8jwkm1rcR^jyG+e~QvmKH<SR zN_$izDJp!xwu!nmit9UKF%ZI^<FT$8qHCoTT9`a#)=bG(nCiX4_mcB@{mL?gk0>3l z9j3%MQ+P1T9Sf)FN+k^SWujg|C3dg7k~Psg5hbP>*VUE_?RqTlz79bjj&eg|kIPh1 z9+%rV83|FmJz>VDoR}}U*WGw)wOsT>?~XfsP`N-iv<F)7KVBZEyNh4we@J88_!N~X z{uEy};TyA0Z62*7Zj=l*;Hciu9^}1{rA(dztJduIv(N+$WQplx*|GB?-m}FVUsKO= z-FK8NCQJstKX)q*0Es|$zgE8;SPgK;^DaF^{3!3uFYNj{b6nR|bbnU|<KelvQJ@&u zNU&QFbIH#+@g|H`(Dm7&KuVJJ(+~{~!k0$skTYuN$i-jwQt=j=ne$DCe0!~V&Zh7A z-lpTP{<vH5)WAPmbRE;M+F_v(wk^YShE3P=+@@>lR!NwqC|SDc9+}0s?FrTP06be2 z9=wkg;Rj=FTfIrzYiq}jt*x~UkAHn&b@ful$#R-5Ev0E$w_MX>tG>Nwx|V*jva(W9 zZ8t-8X1TVCkcaD|Y)>dszWEB?U^ns+^m+6R^nLV0^tb5$feZ%J?-;YyrR#wcjnVK+ zo52;$&o$sO)ZL6(9AmzE3_{-H)uJ2ijqT;nl7)vqeP{ldMoyIT)&k@unWzbJJ8$c4 zXK7}CRSn+HwPwcngfrn5CG!I3hI+Jif~%^<dYj>4MDe<}%X^jVge6+$PNIz5y_t{4 zu)Mj&-m}BJ`!>m!qxuZ$XEj6Rqv)F!*O5A;e%HL`S{Q_#0IIpKBT19E(_QH{*C1Yl z0i%q6jJP#f+f-3O6VN}E*LYmbb;(nVG{!k%c}&lIjG;>Af8;b(qq9|lx2AIXApjE9 zEmP;S)oR;*U@IgU<7Qw<71MvQ@*{*Q)54-5^k!)3)FZGL(Z%b>yB(hG$PHD+cdbFM zg1xB&g7fz}`UhgLy^pU6ihV{51ogiDW<@*?u*__$Sj@ZUw(iVK7-&RFkhT`D`WN$+ z3bJm?VqLgiF_B66IHpGR4mG`wr63odUpQu{Dh5R{rhmP2dBQzPV2UPWc2_um@tR`+ z#sO9iHA}h8ug11nu6!rTb#>Bgvbqjklo!zBiXk-}v`j#xE^uPZDFr!xPTmI~EP*xi z(7h3YK{8wGWcy?y3#;U6PU#PxM0InXsJCt@d6~)5X)Wks>n#j*EnB8bGV_ufbZ~#^ zzOzm`9J@b+6C3(DpELgUwguJi$QbrvpDNe+pfv+*QO^nPnxwn%U+w19dbw%DuCZD< z#=U*`58KU4)7v)mqnaxE6C|6p*+RFX7wSt&Bc6Iw^n5oqo2<%AQ>F|24AW?Z0CEEM zZjfb@8>uLvh{e0+Ch1C=#PGBBgTOC~(}`9NtenH%YYX){!Kx|@MFHOF9;eBeShOLk zk1wGGR#8=hdL-^Kn!>q&H?|r5@yp_LqILvpAF=1ppi-GP6a}!V8pjsqsXi8*?06>a z)T3u<jv+i+^jtv-({1~q5U?Ji*=v3ssc0>qLngdB3^FDnu*bXMd;Wl=-AHaJ$g8)f z#xVq8FE-QlmHtXMK^k~HvdRS1r3t3KIv)VXDS3uxv(F5oBuxI>lDCbv>CdnS@Y~Gk zqQ9ioTK6WO6aSxAyarHrXB@7(%g(~W0RRB6R-buUfN^m4w;itg&t<Yi-{f$^dlQo- z`do+W{<W3q-+D4Mn_2PNzS5qx%Eb5io@$8spZ%Kq!2Z}*B6;iil&l9uiB2nxWZn`{ zV0ejYHJ~ZG=04k<Zi|M_64_<?ZcB$7D~0KOzx^XYCet5D1pZtIHQ%59OfkOTT9NWk zRDHan3G77*6kt@r9g&&bA&;YQlwf+`cGII*Jwsl$K6v(g`zEGdcfDY-R$Hw3er>T< zTdb7JmBm_ZF?4Lp4eEzK0D)`SPPkaBEe4(&X(sGWFB76sf`!1qh77O}m|x*o2uui7 zh>vL)Jk&IZLdjcZ6RHt{sEln@;J@BHkM2d!DThp@ij53Wrl=@Tngv2(oT8sq1zaQG z)v0N+jAMic&44%Q78Zn&Ey}MGj*birT(wMbkD=y?@;wY!3e}2h%TjQY<5mk>mD>_T zd1oe>wxbIG^L76*;*KE)O^fjCTr*>oFZb{n)iezQOX~HCrfaF9{JLM>c4WCwD3{%% ziq+Y_F-w$pWn9Hrn64{cdiGm!A2zA?=jto1K@;vaS49y*n-Kbv)kpey(;R7rZtY_k zl6W|oe8_ZN@!^RpexumNW73)%DgL_YKKs_Uc3!AyFYH{=-r+{iwgOw8jof!=$d+H? z%cgw(2L55#L|57q_uU>h2#~uC)NoAY1J<iDI*ctF;MOQuY9|YeDbZA1Em(c!d}*t} zEPDlRfl**^T$=8C;_4{PFlh7#J2K8n!<`9sX9+Ele9H+wvDD{gwJgw@%AAacSS)Az zM`=7ZK|lUQ0%00Nu9EEh=;(as4<}?@SeYP4>sWYf3xm!9b1_A4R7uEu0`K~!1aGse z)tTW;wQ84VTJ!U*ney|Xcq^|WhK3E#s}JSKlGN;OW9TuaGuGS44)cd)aebHMp6{Ao zML7ukM6ROIS9xayDot`XfAo`J@A?>iW{gx6a{Z)en1#qCDS$2=Y5(5kyf8ElG6t|g z(n@=zk_+=uv;=SixBd5I2&Nf4?sVuAtG}Z{{`&TC`KFb#WJ!^YhRD_5Z}mA$Gf)B4 zo6iN})*uRq{NaQ~_NSFPkPqKn%5j<p5k)Q77bEuog29M_$nATJIv2u&E$9<5%PRyS zaaBp!gkVM6$O9%p5L|;QjNq+-DkS8W%zN)1#(C{+k0<2+N_u-6HencF{|nP`Kk%vl z81<=d54`k0M!obKkW;&5_jmS&Q9yUnr80LAmJqJld69y^q4tG)G$z=&TQkN}9e<U5 zNMLbmsKiLqn<R-U9`i68e^?vzk-xeLzd>lg>pvzjL*N{$`nVBcmtdd_ddt%xnOc~+ z2hQBy*!dyYfc3ic2kG`6YN~0fwuL1hgs|<s{FK?D5;ba8ZFas=>7BEj40@Frc3u{F zVJ7-zZ#ZbGnr79aMg?qJh&}C1o4$lC+nZjs`RT8(ocW&{dc^Q>kC!@#JngY{)%64f zRFwhqN4|z0V<An$+2YI^yvEn{C7%;Psxi6OAn!Lupi|kT;3&HO%oh`8P_qm(j2b=x zA)n}IIvytPqrl++iN_w(A-q5b*)*(LU<zHGFRCjJP&0(UZ+!mH<_pe0KmA8*q2d56 z-;&Qb)~+mAZ7ns)$y4vzNJGQNDj(LzGb_qmDw?PP;`PJOlSvzm^jsUwlyW*4F(cR( zziYKYrmxS~W-AC-9z16dv@qFdwGu7<;?Qbs5R5V5MjaSs%&Z%n;4ZGYTX6UGlH=x* z?wcy>x@qdV%oqi5oszb|lh+oKbeZAE9WSRzp<ILVAV0C0BB^(FA|I5YR!%rGl`^m7 zS!Km!d@h+N-oD4?0#JFWJUd$uM3#vt%+8ieoJT4Q^SwoQP|DAf`L1+CwOfe9DBD^l zuLT{^+DUy!;^p(%&zymawHZao)j8L+dzn$Z<ZYNgq=DwXMpQvPI0<r8fRN9EKz=@( zC`V{1ZpPMKJkK*U;PSqiN1A%S7NSh2*=V{AjdyWqTpF>;zh%>+KgL$nPz+km_^q@# zyXX<uhIL))ZRsl!2Zo&CNv8|Z(;4rLC6J=n!`smR`fdB1H%I7&=p|Z;34Qi6)L1+L zo<u#%zDhJ+0yhvMxE#jkc}bItQ->KD#N3tP3n6|@&C56luo3xCb>4af4BG=ifLH(M zc-^#h89^`SO_Ee^DK;6ui#eC>mMEG`o&(~C5WF3qk}j|Bt7a?sG0F=r6$>EMOTFbA zp@98W3}i66GyJ}=Z3C9ZVagE<;h0aVS6^1Z{Z)XwS>G3&rytmD=x#WQ@5`j1>$*ZE zNiPPTqy)zf9y}H>+4qaO;u=@d^#YN7UvW0NLfE$1kgl!JxCMRvojQ7G1K6Ib77ml4 z-4pRqPf`L`P-z_I@`|8J;7LwA<4RtjP@$>EFe=<Yk-VeviEh|Tyjo!*w)9hGj(pHy zKeyPCv`m0;sG8ls1^~mS<6XuOO548$P_8V@cTv9PgyGE0Y_t3igCFhx_*a$2?95CU z7U*-j^9z+S1phcT5&Q$bIe2BLn*Tz1#8sNrE~|DWiSnb2tOelDs_9v63-sx9qJ+?u zS(5g{HR$`Wr`GD_3MOx+Qnz)w2ZoSqgOYS1fl+@`HCY${T){dP0_#}e(18h<B1unn z;03<k6?d)(&MiYS-oVwkP?RB>-&(m?h*kauLo!~+0hBig0PzL|fWPi30GoFkeS~ts zn6*J2nAPHrC#K(msfW(mI$l%h*-G5yY{{O*xrMd0)iv{Wzo~ByyR#al){FLWFt#Yw z<`#rsV<(qpbs^|`!M~(gLMiIyf0yJJ??n0EU>$O&JQ?uL?%AYzy_;x-Ot6QinFk_} zF30v`CdjwV4q0KD=T^m38zp;T`EFLt^%9Y<Vz76F{vUdPz2=UCH9$W;$eG{u+L)MW z3;@?@+)V$P6?bFG-gX66KA~JO%k{F^CzpMI&;eTc{o>j<E~MdQ*{5!lKcPIawA?Jc zoq6G^%lXidK1i+0Y#xlRpt#{yn84s6jqxd&obVH{uFV?ga;KAh-#$<ne*#UB1<>AP z1dfN`%{H7$wHOxNu}*x5;}OgVq2CyAyvZ4%dXp?NkqdE(a8d1Pfs{K5Lg>4ys`LWx z!%?5rZhAr`%-q_Z+ERMjaU3e~jmhJY^?Y2D>@Yg=ZB1|N%jC6_2R<%L_MK$F`_Ibq zPVjipP?f-35k&qvd#;{DxS|wVAI~QY+`{GtI)m=Y+*WW(7fm;qL16Tq<fw(wvC{EN z^vRYfsbaOF3j7EF3vK~}QzE5j52cMj=nD{iy<D;_Kz#^1^Zo+ME|o*!w_s-z0%16F z-Su(e)9e@1LO44c7AOYoX${~RU`)|P3;arsQ?5DSdG#5exL#S#(a^Hz5`U)ddEnHz z=%34Ol}dE_?M>S)^X(pyCDpPqwk=g{3WpD2lt0c9+ypt5<311eLC9K|m(+%m#u3J- zrsbytVEsXu`li8N=`F$C-;U|tKa3b<Vz;wxGRlXFrYZI+GYs~Yqkw5$O-Pdi!0auY zPPF>$vd6OGjXk`p>joHxzRh`Xlcs6s8;p4S_Yb7<eX!p)QCDqUQjtfY%O=)rY}lq$ z$AnRz<-HtP^ZL$iZA!~{6MIeiHhoMFeqR-1p>ipa)!z^F=Aq{FYaEx(Va%6Ifcx5x zV=mfL4@|dI^!{28eqWUnS$!+L>kD`t$M{?cb1;|SOxrCLy<bX>Lz960RJunZ%Pd3+ zqa6kaWymI^@NoB4UB}tXyY}SYS}c}TRXpKafA=c*boW(Vw^a1nj&t(w%-{*3s&dTC zzkAhZL=$9F^^nGf&2HLV#*at992C&VdUX;|7R-7@HX()IXgkgdSR;GIEfu{#w(a|E zTZsFEYBezIkp=druDQQxaE^(8>H`LR`WX35+qxqm?ia$g@Av&T-0`oT@(JeLDBgeS z1GM&P6TaP#TF%ud<XKGs*~ybx5W*q#(<fBI%nJkCn=Y8_c}lMP&=GG;_d)dAS^v(k zjAH6SwECm@An%I<1mvkbNk3<5yNa@_;JC4wr#9dYs(q}veeceFmsSF#Y3|IPEo=Be z2xs=u@N2=bfM_0)^StCkD&i9q;8U}+LH@lD#8H_aEb;*jx>_}hsEX!t%L@>6*2S6g zv<p~kNL-sE!hz!U0n*dC<-AE9ndqr@EifLBKPGg&da`Pmmhsb9o_wY5_6;y43X2&w z7M#E0ycwJp25g}@9*)P4=x_gDN%dq^*T4A6ldm*<w%`pj4S_sv7ly3aMhuF;IG5@w zQNKCZG^=_hvyZ1q`t&Y0;70q*nRdhK*T$|zsn$MormazGt?{J69)62!gR-wgxlKc~ zq8OXVi#2Bl%6|_@rVbfnw6i8rp`Z@n^AgWLx1WDQdYeNUG*w$`I~9UONgR8kiem$n zm2Zy5(mmh0i4hD@(;893Q5|`SNnPX)y$bwXQS05CC@^WwsD4IKb&fBtuBtBSm?xhD z)^jA~{uAdr58MFDddGH;5WccgF1j$i!ZSDCE)*rvE0nT+2}SCFe2ON}l#*?Rw!<W% z%BcQ)4pkzt9ZdtDqa1wU4pTXg$}OrY+fmj1B;Rtfbacnw7F)SuVG=4uocE73$*q`( z{oG_ELkW(`eJ&IGx&<<^f<Ap9<y|T~FB<ca{PB<Zn|ITBy_3=adTwt$<pcIaTn!iX zdMBh<j6E(3zN$)CbySMc2p24(Vs<l!bKX@@6Fz5R&MMU68)x;(UKBq;O@QlKvzD5c z-ZZE2_98e5$^|p_m-RBX1UHf$4!U`?{G=DcK(0~}>j}O|?5jj#?UR(wP(`69+X`2~ z+yxoG#bZ@v?UPhd=nSPN+f0(RT@#-F$^fA>=1tcva*(460m#_b4c$$JDyLU%L@)%` zwMLweEY}5f3i<Vl>12($Foe<2=S(<XY*Z+UKguWme<UD({ONpT@;OxB?ju3QqjU-m zQLx)?C=?DW3<%``x>4=|8_DNGJqXwqWw`}K?J-YJz6Lih5P%bx4^ch?ytsI5xQfB6 zbE{(*AsgjdrZ{-6i*5*YwzGlSFeMn?g5vcdAJpgP*VpIgnUFi@Wp>_iA<Zy=&T2dZ zT0$6evWQN%si0%%x-5DYq_=RkX{J9A7=xBVV-1p|Pd8;3%M5LmDHSE{lItxpJ8p}H z5zOZ2Er*+NJ}H+-w1qOPLT{uKg>$>c#^ry1J9%|u=Vm~mkWByZA0ye1>Df8_!~7)v zo#r?C-}?6V%bMm@cpBMbQ)G<v(11xaZl+SQ31NA90W7FPuiMG;bLwBN*bABdtj=~+ z?I%pr*iSTdCn3^-cToU30hmw#`pz|pP;$#Hgu;hZ^(jkSMT!DQSWmTOI?{nLuq<E< z^bwV1a@So%<}0Q~{G>}LyrI4R-Ocr&4(e{-cl^l0&%H@e6#XVJYl%HO^$2d#6-9Xy zRTO&QO-hNCub6qi_Nqno&J{(`b>&Tzey(<*Ri1C-1cTK81fYt7xL9@axt{=h?Uw-V zjTJo<%K-`O7vts3{>7-i@Tiyj5Wo^Dodk-RfjcMfo^k{#&<WY`0^6or$1Wo-N5St9 ze(A@f>nwIiRgD-r$($cK0k(u|&VjYHz&R&4PC0A11vXiFOQeyk2Gzp)kqA!R;;`q5 z9ZiKA<Si?)IZa9=2cPWB_A7xDp!Zqe_l%8D3r2>gNfqgUTq{7A!LBTC8cXcqm`!TB zfa@e|8x9tFp^`1p`(iiM+%s@vJF_iTrgl{F*KP0bkNJzsQ-bj@1+7i#-ek(kaN4e8 zlvsVS+wGG45sbai+Zfl$kX}>Uohj@1z3BhL5Ak0*&<CX_cHm}Q>U!M!OOCkE5A~K6 z5*9NT+gT%4-Zwx6JF&DzK1CpQW=2%N<tf{_{WT2qQfBKh^j%=e4#rNQ;9&V)*I5p3 zXbM0gvt%~e$PD)hb|Do@?t~utEC(NRFowmUub`^fn+S&c0&ooQVYG9jhkGpuxv{!P zA(`uMrb(LPi>|3#|9#mtb?X;9r82Hu5ccre!zsgU(|`2Bwp$(vW;3tT&YV1P;I?i! zr@rLC*47PH_S!Lxz@C2E(7HZvTjJ~ZQgLw$j^Oz=XIUK*?OWVOD8<e-QLE{ppP0Gh ztJRdt;JUT*Ar1F5v`=b^lIi5ESge0VrCkd2))b;?q~<hNE&16MmZS$T>WbO8l>JHi zeaEbtKeHihKeH_-(Iij#S^_<bgMQitq*LCrd@M~Y^Ri}ncX4$3x_B^HJFs+3ySaTW zbn>(B0w2fHup4HI$)JC6-Y2>`#9a`@dBCqLnJ!Nsi`!v00Q0JdvXRt-%1Q_AgEmq= zivs~kV41nQOq83l)t!<r%%Q}TW2t=as0S+BrvLc^IwoDH9~D*rqIC5($L-mTJC7|b zV$Kctj=?!zTsrnGr<YzK!i!7C49+<>jx8<Pgq_+*mk^iAJS%&6l(O0)e;R3{{E^tf zB+*RB>*!z^0LV&|(!}Rk;m>UQd<q#oTY6rIXnJ-2b=&s&R5JzO0KO{3`4k2_J3VjP z(e!73v<PuNRmmo32TxylU0#+;!esz+k*t2@T*AwMc1?tWwvNGt=Mc}EySL&TDxnrk zUb=WY1E<!Snr4dl`{ur%YMJV#*YwPnGVSb0PWgUbn=r^%mT?jvwdodVS?V(Qy<iz| zVu@#c=YC<;Fz!gWY<sUShX3G!>bYiV&<tz6h3PdqHjDu4%zWEmqW+rcJZ$PdmWGn# z>3pc!pR!7}Q7(8eMf;d+h5@{Q&`mJ>6z@+V9|X+39X*6lPUGf{rQmyt(~kF7(q6`T zyb*++f61x_*}!W;^`yU&%YZk<_rhk}>=R!}SNcV}Mv~^Vn<Vfs6v5cwh1a&plrRtn z4%|!ugo%M-zyNZ4t%pUfn37Of!Qbfh9MEM&9B&Xqu*y0F^Vg)4zW{pkfde84nIa@p z;l&VC7fBNJ{9EEJUY7uq34=6_3q{t~E2n2yFyT|_5<}jc)vGkIRPO5jRu)p$Ob3x$ z4c7P9HOSZ?4_T6~<UvM~n6fn2%|fLlf|?;^Nk7J0BQK<3efp(3-#tPhzB#;kZawhC z!sMP4pV(Lcs%clYRyICy2t!zaKL`s8A|e(x4nKDDLsj_aSMr_{pV)x$g7AX%xtqhA zW1vU6=kcLWY^-b*LU<MyHa>CU9!;YOg@uhz9KTo7q9fg#W1#(;|5D)}r{P1N*g*aE z{Ssz>atd*7`D9}ZNtz$aFq@EKT*fNp+mHgg{GSjYYm1?g89vUcW-zTMIxiNkqnprk z(EHKH@Jxdk$CU8FsoQ%<nP>N)tpy_fmfRI0aZ5c(kr6`ig*5zVyE+Dsk#$2%=zDbt ze3rG|0!oU$P%6ewb<X=C;?F^!vUu0)fZJGo8)KrXip0fsDk0=mgb=2-b0tMp3C4CG z0er6)aTB;={JNoVFgXj$lZZjM;^AN3$4-D5S6l_ZLIUn`U<F@N9%KNlGdEsfaDkzM z6_}+#HE80rMc5{?S}1VKZkuT~3x#HL=GWFjL6wP(dvi{)rq>b0;THF5I|`9lh;g7u z%fHb=CXrv)xvv`Q>xSxcW1RsoYoc-RT40uzC^IMrsUh4%M4xoZM>~O;6sm(fK}=Q2 z`P-MwTbb3gh7e*|_{9}xl0*W>_9mX~02J=kG*x{lnJHq<Mbvm29L+#7^hK3u<G}hg zvFG#odG34hYUdtR)wG8WG-%1%+%mI@{=E!eR|n!DkRtj#L3u(3kO{1-0}Jc;@&A7; z>r>cHyf*r=zYejV^}AU=R^_kf;eV1~*vD)gjCa80Q1uMo)YJ*etrFnt`HgPyRJKrX zMK&T0$|R-<YCiCq())2heT6+s<>ch_k4_S<T6=3)ZKtXS1%f%X;bbV$Fk5hYe#a2z zpZ=*S43$n#w*=?Y##Y(J+uTDjTF_$D_jN`^kb}dAL*$|#lnG!k4ufu^si}v+7;TSW zhzEnS@6<cq-vGGFhCvNkkqsA`2b$2X$PR>p0O#RqL3Es30$q}-j2o}@xl5=_MMY4x zow^k_{r?X?fSu_dzYB(UQ(Zs}`)5U)2-!nCU{~QogD}YBARpw(Zz<&*=RnX2Pz)m! zHfA1HHMopbt>ez!^UyG$T3cACRpBRm{pN8lV6_s4*Wc+Ut5tw%)snnpA`C0h>6e{` zwU1e5so1FH(`=^@X|WN3>q)#E{02oPt_7lX-lx5BXaVp=^FjN@^v}~D$K$)JR^<48 z=-iKaQRsfT#Heq1s;sJxqpC9ZEuXTIVd$zZ;0^s=W`SuHrWfASyPI<XxlJ`9|K9J( zM5DH%1ynBtSn^b+C`|Pv929h!5LHuP1Pk}j3Oa_)BjmAeLXe1=hk(&EMoDm`fI!jM zUbZJ5B?#G(^^i-`D=cCj>fyO))dbHl48e@TbRQ_gi&B@>%3EpfCRUSk@&A9(1%t50 zh+|IuqAwcShDi&cl??x_Jq9MkH^)R<U^$Um$1p|<=t8sx7~<{aNKLs;gJl%^jYe}( z9-*dRqXAe;&Hl=llF#1>VKtr%I=%KF4OPzGGRO9{oynxtSC0wD=0r5?bE9RhhlJx{ zo&C}jiL2j-e}>N@fdW)Rvk}pvT$qZ_n%)a(h~r!gLD6ew*ZkDWkmPK({pY@O_hMQ9 zsW*8&|M)Y-r2hG1-<<yWHx-Nc=a1zPps0p{93S^JA3jc4di`SWr(f6eh4aUKS<r7z z|JOIqANOUG!RdfcRKoy}kNZj?oxUOm&5YCs{V;Y$HU@1mk|JRmOij|jPn&7gWPOqb zxSz%v()Zes>NHI?pl4A)F9Kr-!}O2SFcj^z{jDk&3gx~zK6)-GttgZSf~(+4Di_b& zfET9!AmEHrR_>?hXIqfX&Xr1YvzhEpw|H1^RdNA1H+@c(p5%hcMZl>dxN2{}3%$S0 z404C^DN@Mh)ioQ<;D`wLA7=@p^?-T}?*iyKTU(N}we_6o+9WA0I#($<^StMsnTUG; zil8+SylUC>R|TR9P^~9YEOEiINf^^LZKf0kjK++FT3a19@gNMsqv)jpX;aJxsu}~4 z2+II#o09dyPB&x~mLGP0ylwc!3Sf12i&v;DtDQ53#8p~XwstkcP^Ryyt*mrAzCwuJ zcJD~%6d{DAM3O-h!miD>>vepFG25>GRW<rwHNh7&!%%is*^I(D+_%IfU~RU#qX1T? z9iK74KpB%|EEV0elv2sZl1yr)q6ip+`*5w+N(wVjvli`ts7F_1gkX46F`6QnOvS?r zq-{J;15?D@e3_-AB&a0}SdzBns0o|%Ui2fUUO>N0hAt>D4NN|y*<9F5YBl>OaL^V) z-!+-0mm3SyxBoM?i7fS7s%9AK0WO3ZaZrz{psF)q!=uL?H~{0G8~yD;9PT}{qenN3 z@P>cZ^tcK$s`}WsBac)e_yN^0G@kUOW^MXZ{xN*vNB(d1i#F+3+f<YbgVa27MbE$2 zBL9lObx|3Rp}~@6$kJ5m@WTbjCE9)1{|`hNjWKG^(sE^RL)ODGFP=Vo<JQc9jp5-# z|A5QorS_66AD?NlBO9-)ho_d89R{uB(21&aAW5v50$p0#?p(LQ-NUC(Z^es?D_<0N z`{aq0;*ld4DTzC?Glcf?nTRqcKfb=cXfB<;=DZaBxE#mp>!+&G>4WQyTh@=y^!tbE z^EVzpmP}s+>1=CJ*ZhX-B8GTO{mIG==oWMjdIY@?y@KBqo0!Lpihfzt<Vn+|XFA>P zumhJWgP<u*nv8j3mOiw-l)SA<(<@K-=p9LvRa;;3Ws(f+jCZoVj%-v%ZPY~v(9ymT zq9r=CC7n4^v>RJskKqa#X#QkbYdfLKuutu!Fp6CJB9{dtUGeo6B1Qhz(jd|&nBq~5 zq>ZIYRB5=gWq#qYa%l?5_YzTL@SSaASwE&M%v?E;2`vWsdb8}x^Q+>US29t3{*~#l zes?FYy>ASq`|c~jIBI<4YZdwID0P71x3sWKPGIMwp4dw0T$*?T&{bipv<NI$&?)J< zvw{Hr$=0TJEjVMi<l-p};f<eNk>~+}c7@R0s5wCjnw5URWuH11{9ebEK%feBXbG4u zL#V!CvAQQP0@DaEu}yl?zB&0%Jr)*#5pWN($4#S)P)oTS=nt0hsq18!Oy~ZfugHrE z>Hsf<l}9D2C{%iMMaTKzh8qSs)^4R&|68HBFw3c;5I$GH&)~N`AW<qk@HSj;ZVOL0 zb-P*b3ad@g`{Hd&$b(r<DW4t4GBc@7c~|>;$p2NyJ|eOqfJl-K!06PoPxmoAMoE%) z*^}+c(vZg8PB(9|Vf#=p;*4+ul0B|2ETkz@O0TReEVSo{j0yJwW_3xnE!Q!QZXf;* zfDDjH%R4)QcMSbpwfK!xQOecD#r90C(JM4We?5kd=NXzL*>|tr`8~k6;UDi)J%xr% zIV_VXjhp(|m}?pzntZLW@QB6O4if}q-1xi3iZZk_TVdf5!?Dr*UcNWA?$7?rh2xi( zwRi%bF~*w4eNrGGtDraDEni;0Uo8|og{fO_+GyThk-X#;o1s&shu7cO<!fPFaUG^J zA#7B8l9?62L~%jRe`2YnFNd-tGP8Lbx(_|qev`Qa3`nAGwAs)40X<?NTbNpT-(wxW z<I9}Fo%vJ_?Vzya&d={sIyHmBLu4RCrlcMAhgz{Xvp-WTY8H3C7Hm4PsF1nZ-}=d0 zkAopR$MAF$gDzax$~{;2pcOpp0295Mw1&SVB~h~#U_Iqcw2DRe4OIyJInU9BP<6nj z<+{Rh!&9r3QWtOqv{>F%(^cWRmWe^XHCbi+!OKwD)w|DS-TR47o|^a=N?nNg5wgb= zk`QnZ2>rs)`d|~)Gze_dsT(s?x8|lSZk|vL2&9TLb5Y77kEb3E@|cO|iv!oKEex>Z zfP^WF%8v_+Nm%myB&xaEJ^Is5w)B9$!NOYDB6y$I{f((YK{fy8Z%lRi6V+U;)T8p_ zET+Cqi!(E|*%_?s09YoTuW1Bh5TabG&CD!jRN8vw%<Q^LPsf&JS%56dvO2!+`|aX> z6qidXr70){1ulecEWk-G<S?d*k`l@b<6o>2=BeVEv|%Al+)A*+Dc`c$ZA+EkF}%WG z`5j!A3j3yUeA_9(`M=7P7)#!Uw`6D<>B^KCPYF#U-K1Qg>)!MqaC}t5sLHW+se*Bj zIu-CZ7Y_(cBj$#?Vak*k@7s-R=T~DnqSAMAIu6&tmf7oqFuU717D#AeAxSU9>98P$ zTRh7)1cmg|u|+T0rRXJBy3_PYzd6g!=`Kt=8;)3e;0Hx0tMfNfxRR!d!bJ}8Or4Aa z#j;r|6lGp)sle~IrR~XD%<Q<!iA+i*A``wVJD_p@=~Taoo>?hI;(<5><WE#?abnD| zssj1XZk#f06NJ~A>e=u?`}aG)ZdN%cTmf(0bobu`a8-uwsIt?ORaLH>@UEF$)aCwn zK-kBv`#ipf^L)IRV9x#0xtyYgwmOX*6pdU5BQ>XIcAVJ_+g;*xH-F-G21y!5k;>i% zmdA;s=qgGivg43NEXSW<P|L=b)uzKoVF&UYSvKk$lgxNP3AuT7*)bqc!j3ULT{0q2 zAm2YD5A`FXlltR38Fj&q)S{{!Th0(zmRvZG5p!q&Ai@G_LgNr8qs+AisZg~;8C3q` z9^MkU5X$_r+}O2KzM3(8vkIWn2X)g16=g=XPk%}EdW874J)D@=6sd~i<(5lNU;`)L z#cUNv5jizAI)$6=0k`y<2!P$qoCDThnY~`ueS4!KX7e{o?g97gaX%Qd;q>x9l{7iv zgPS$2ViA|7h{hu$$e_1n>9*#}mt-q8dX;Qz$B}jL4L%`QVxDBUzdu~6M!t<=;&*nF zDlec0NxKid()*F8j$eQB`s7t5gtbm++y$&lS09oU?g6S&8L&O{nC;1OMr0>>dN`h^ zs;Ycl0X1GYHbQ>%!9V9wRaL&hKz(#}hp=d{|2gEU3hWz-s!~t*u-Za=@ME?L%GVWD z)s0->llu96-Yuz1U)Vs+cF@8Sl(BMA`&T*wT>yTQ*_jeFJjB6Djn07}BGyb3cKs;w zQInTvXRq{#?Ql4?B!9(S$JyQB#2)vuj|#(`Om6tV!NYZ+v)_R3K?uTI6{7kK=>52n zjpu`qWo*(2m?CLp<<852LtW#68WUshx;p&T>}^Hj?>IUuEHgtWvo8%W4&Gp}!V(pR z@=?QcqsY|Gij2b&<-|yiGxSRX90XX6?$xoztN7QEHglJbL3>ZV1X8siPLAgC=H%}| z#{)Ty)J^(d1+O^2fI35psgd^qW9E&De~|qn3TrNFSDnm{`<W*yiF2RTphSUpgDW0@ zjNTRK2@qAh%U42FFr+Vcr2{p&l}_5b>X54lE|0V8robgJ9q02)e**CmRV2q(?id=+ z7pZdO8oTO@|LBgc`>S2MNw^ZO2&MU6HMD_lL>JH_Xp9i}n2JU-m}pR->WvE3w35r# zRl$3N*T?cQO%XsB3xwrd443p()?xXK3??w^b26z4|6rx4`*;moFqeBpsVVi54fgl; zD&(2bf_bo~t<U?7CHpo^(>&pCocri;e>L{b?ANL2m5#Wv$4olPQMJPejmih&4(?(1 z5D=TYxp}YK@#|90j}JJ|zzbHaQA?9U;Hyz2gl(IN5AoEN9~r|u@wf1;{ND|*R#z=} z#tJX4*|rdC_WYWrsp{I?R~^0@MfBiQ;u}12PvaqZV%oM4@7}?s*MzX`wTq#(u%@b- zwl+6OeI9-3{G2dQ8O`?5<nrK@Is`czNC!hFV1YC!2?1GtP1+xn9GhVS-(S2FwRIC+ z{hpyNPl?6XGX2@~|JYccpIcv_n>WC+z?g5-u?^+lPP#Y2)}m^BPt}*d#Mh;-!B!r} z0CAjKIKt-Y0<}7xbj^0R6VD@*C$NyWjIW)LJ(7;a`jJ&hO-|JMQf+<#59JN*Tj9lv zwk^cPBNs!fvX*!}sh03nnhW!_eJkFLvKPzP)h0?MS0(u&q&;5CgWOP3^Ohx+hb#t} zm@De^Z?6MWXj*}gub3Z=qBp%W8{H4_oiK$@|F+U5SBfHpa)Zx|M$ymSnT^Ua(-G{U z8j3Xr$gcPrQQP%-WxGw}GmHJKpKmo4aV}OntEZ4aCVn;r=WpnAo?4xPP6)=R-TC}N zhjS6_?M3SYbl*_l#ItJaq5(poy<)>8a*~{~%PWD6-9yXTNh3-74WF{msNTm0H2enA zGzWBD2i?&$U!4fab>X;^q41OG<p9GN2h*o4=(Vr$blipw&oY&V33*sCEpPf=5B{)K zmx|M$x5ga0x*Fh};c&EVH#gu=M>gujSibwtgI-l6>1u2vLdaI=mjtHptgv}NW-Le7 zRR*mYP>OLpI~&Kv)#8b)U>~|V(wed%Sc8M>K(J)-@^-Yfi>;LGwr6Q)1e1;HL1QOt z<|);R>gCLf%aD{~+-O6{I$44#YfXXx00&H2m$azKUuL&yi9VM`1bF#?1j8joK=H}y zjX=CK|Mj^b7-bPNb`2IW%EX1upc4_@mL;P{EBD&^p8!thN9~QNXyPsmUGHdGN7wZ= z?E33q$~i|{H-74q(k`z4C4N497!|a)iUwJz_$T0L+}mM1O*Vm8cP8s=dB?@b|6y7u z+Q0s*M&>9b=0`(u<BcNxs7WZD1Dflu7d)w|*6*9v?^&uk_B~h6F}#P@>-;8R7-WgK zZ+^2&mWW}9o6g<pDhi$XxMdh}Cd-*@7}m#UsG_*HB7|gw`mm_wC>zlCMGTo6en8XH zy}0AA$+SEC#zB^1dB-@cA<mK+v3$edie+LeOv1n<qAnz{+gTlF3wwdh?9fBDez)xY zeov3Dv`T`>7=WoNwk^}S%pYaV+l3Fl)>EA&Z@>dg&>1<RG)$4>dO6T>Q&V|-1A|9S zcIo6p#W#8UYG?W>MF1+dt!=-Rli<OPfB#F<0i!k7=106~RT#nkIfI^8jJR6r6Runm z6Ao~27G6w9l-pW`tdVVic;rn$gVqc^p>R5GIH~O88i0~Jsp~0u6arYDrG_IIN8?;; zuO{{VTBlR<ecIe<=#bOQ<s?Q(gq%y#8=WZXTwj|Nw1ajn+PA5hcDjD0<cd+~Hywme zWT1UIP-3Dm@LK>Drb)Vnn`tu@%+{a)O^q%TwBU`r*<ZoP@iGas!+xSi{<PR%hkjfW z3H<gf(B?Q4PBvSu=2Byo&gQRXyb1u(!bt~nR$vlkn(JbpO8`uDH4_8I4wG$+g@qjl zE38B%N;S^|pUVJTb!5h5hsqAuv2(?$&23F4Tk}=R6D57a;#CV4bRF#Gfpa>%{7N`? z000^mtYU{^Nv)W|pt=l{Vhn^zM8Xt6wjBmQWa?n-5G<)xQwXLLN-+>A+QHw>Sh5|8 zCF<bmf2GAJDyCotL*w`~zkv*NG>Wh}l3t14YBTh^ewSFj!5NM~jFKp&-;-EC^|`eA zF-90+tL*zDer2{5%h=X=Q2KDRu-I-p)G?^nWxg2SuavzvDUw9QZ2J(Euf68j;v%kL z(C(Gc3ly=wGItj3P^m8+cBrHjhRbz`uw^!zs}5*(v)MT?H(M-e304&56$)6|z>AB= z_EgeBNEPw*o6C38hiHtJ(7}jFBdv6o7Z2E;$<7*dvO&M`WZ{l6Kzo+8Iu3iN{Go<= zjQJ-l`WEXj@yE9hG069aT<-!uXw*Z_!+Im|A-E*Or2u|e4K}_IUhwFOss{V}HS~b4 zKM>ZZ|1GQ-<1^k{bQ5~DH|6{NKrx7@>3cE%3)3-3rZ6N+0OI#Aij&v{-?+emj!voH zwFNui0RW3Ga>CpMtg4DHv%ofVMFNSt;J5_|7gfzfHjwD`rZDyh_c6xUHFYKd5XHrg z8%k1<Z~FKFO2}9GX$>S6_%b0FFaVaRtQk?$q*x0u4m4Q?;DJW~fPstwB#;RKS=FQ1 zAktrt+w^<sUht59mxKUf`Wo}eUfG0no9W4lLXOx_j!&O`6lQYL%&#&wD%LQB<QEaw zilgb5-;=mkM`M(Y{~d{a=Si*+AhIL}mZ7_B6m=hyvTr0CQezZ;c&R}R2mx=*#9daM ztM)d5;`v0AQMO&~KH~DdF_~9{{n*a?85K)ac2v^<4Ai{bVJzz{Ry^mSo_b03>hIvk z;VWn!jSy;e`fOb{r}MZA%JI7JHZN>^g9g|^3n1t9rC2O`Ouu?od$Zh(@l;rZ^0_#I zVzJd8SxIyQvgcKHWV!7GfpfiOotW-1$Wz;BOznp58DI!cYET{91KisB5>PJB{ssWF zibb%t-qMwysMrp`tYw|CgTOid(kIjhfZ<e{zG=z^bc~89yCjx%y%Pk^@fcT?aH`eV zXCK{e=KX144DyKhadQC;Vj4F9?dIp~K=XmeXWY>EakBfAe3*K9gzu-DrDyO_+_o6j zo^o{(7N6}10g|px;J;#x+DD=hlidYSYx7ef#i?*r%t9x`2`tq@p5d*)$i0!DF^fxl zkub(d((5G&hDRffKT!qKDjkbwRBY3?kjAz@0OT#y#_CLbtYn#$C%6{v08*6ed&>aJ zz3UZaEWbukI<vFY(&FN*h2O90THW4*k*>ZUTeFLcrRwZ#M^RoQ+X;f>GiT<#Xa~It zy_Non1qoiu{7`XsA1gra1^$#_(vRk#Z1Hi=AoTP0`-l<Ed1%H><vhb>pq|PZBnC&@ zc(zp__e<-POv4ti0OHz7oN>Xji%GDoR%v!pJAP8MEpX3>coX^_iA}6!F4GRmvMfD` zF~+jIt~2+ooo<V2x}g&y!xTJRy1o;X=o`1X5Zx{_zH>O!%v<A;>k{YAxTOn4+XASc zB-h^FuW&6nSqHG};)RlX=G?e=8*;0uWrr&ot>T;Cf*R2(fBB;B9WJmQ2#>wv(tp3m z5*q98=%V}190%Qj9zY0!alCJ(Z!F1>^<2~DXDX-z;w(CKaBam>zk#vnf&o8BO$Bip z8LWfE3Nv9>QO3m(^1hQr2&0w7$Snx_msKO-klhlx88-&JS~Y^{4OQg;<3M&WcIs-q zzUcbnVe9uHFan@};g&To0%*YLum(piI^tF*8!Vf%C&6`hkNqrk9K6_Q=;RHUPm+cO z`c10Ec(I+`3%fzcLZwG=6N7{BBCjq<fjED#EDiEOCZ$SI|2yd>?AJVBJ9uU$)SFJ? zw_1MUH1+VnndfTemM%%ko6nrpe6JRqd7&c7`j*fx!iX{D$oY1$Sq}a6I+JBqU-!du zvpBr)Vofd(-Qe##e~ZG{^tUg(Qq^@*khQx|U-9S=+CCRK%II7z@j9*<2xtIVXhb(C ziVCp6D(f(?pz>jlUymT{<ehA#JIFiTL7qNp)*cSSFqC~`5_H|3D_SrSwyph@%54L@ zHB6z6ro!pJ=|#hBL$up-aUjgJ2b<2EK&jMfHJ+m{C}lY+v7Erv19Pd(t8K<~5*ACr zF7CR~YL!Z$0#WR+NjrsTj67fo2qZO`Rl~p!+($|zv%Q8YXTvbUgTYPupq6DmETISj zC9Yre!k7ctPUG_%8^#R>R_b-Yci@2mB$`ZUoB&zvB*CowtF<aL4n(Tq&_nYGL%c4h zwQFFm$ds^xubwJzMT=DQ%+7A5sfirPhU$98V^e#^rttPU#2WdP>@fEpIsX%cA2C%L zN+=A^qL^Xs*X8Z1p|ax4Op&REDtzDiaEtKw_9abGjato6nd&(80K$jx8owAE@El1Y zIx!>o!dz|CL_<s@8`QICyu9u><4A~e6y}9ol%<b;@I(>QgNA?>b6QlNon3ysl}j_j z22_MQqV;eQ=T_v0bv34suIBCQBwIW@a{I0f@)nYEjFU|ZtpxLtq8rzV{kSV0Lsai9 z*CRaLwK^~19Sq(d-Ue^}hZ1GRl21fkV1G$ynmj8}X1rf$nluNK=?<R9SiQb<uZelX z^I#^%7_SNKF%g<38P^HSiMY<#Q`69NX>OmwZXzV3idyA6s_u#HQIv@aRou2mjq4{| zN!I}@GTe~vFVx53m$*UVe%7ml&cQK3zX%MqHVDGzY#7dpMArAJrkojYe_DOrE_Lyx z=I&wsU{}VywUe7p@$6KWD_d9$;veT-2@F&?JcOeNMl?MEZL)1>sit<)1KkIX-ycdF z5MLY0Yf~2y*EAZhHrYixjHN<{Hx;UwM{hY!>9nl?57s+zURbu}mMaA9Qst+o89vr= zEob^hAn)vBDp$A*-np7fi=Qq#4y?bFl3NR|LMln+f~I|S0!uL^BJ9*jq|^-$o|yq6 zBsxu8ejdU+3*(`|IS8p<TcNJ$Zxe(5c63&1bx8o{#-u=AM|NSNaQzec?3{jY+O*%R z&&}qa(7DoE*+?fZ^c0Q>7dLS4yflu`pisMIZ?fXQx6GtJv!5o~TmE&O($<R4{{OVm z-?hB{bcmwfbEm&SY%7@f-yQhh?J-(KH=xJR%e?U;&t;!-8PZ`k_Xk`e`cu}YN#dJ$ ztjg~gYXJce3KN6K0N9B-^H?+j+Ko}iM8JGqJ%ksyY1-?hsjDlTEBcZat|(lO18faf zKv7rQ?wu4U1?p4k&+Qx#5?q_r>cAD_?v{?>cN+?adM)d0Zgw`u5K=ILdk!DXmr4Mo z(mZf(9BTK%QpdVtN~Z_rxKB!RGvDtmEUXy{+t@vZTrt)b7Q7}v^VJZH1d;*2fFY?T z<V8xgDD7JqIHvWtWz!*%_6l;x8g(pvbRKrHQK#}cukVh9w~dUpW;N+keY62OF1I%9 zt^ypzQrH-VaWU~7q*J14<f~4%Ia7C7x~*Q}o)=Hw>3`FK@O{#8a6!t0oxxz*Ew$cJ zOO*hwIG19a&U$!AbPiVjVIrl#Q!`|xrPxD#ddui#=&kQB2suQZ5(c^Ny;a@P-c$QM z0@9&(GKu9Qac2hw4X^K<OsXnZlKzTP0O%XOevtS5=K^<K$0gK_*fxX)rG%=Q&@EFa z(^sY0Z^tmGmTg-q=xR~r8dr#<76FQ?L=>)ZwW#V_T~g*;Q?!Dn-zJ3T2{9Fu&etK; zOvMzI=QySTn1Rrf{Pv&IWJ!{>I#Eob=%#6D)TESB!8FS>b%hFr)O1OfCA~%zLD+VG zBPJ+iRM6SPR7m}GzNe$v(9l*sJb4RcNG^4gJ|Tf28c7<r^rB&QLj8=g66(T|m(QQe zL5oNx(c9f?Zi6ovCRdg|@zY<9^2(F1OdOVad#+&~w2gKLA7cSC%d&LwMQXUCjbC~4 zmG9|ESx47i35q1XB#(5uJs6{k$)}fB(rmjJSBUv{y@|U{LzWJaY+Uf!PQ3<BB|)I= z@RBjFCLCocO)CT)4+R9#>|nOx6Rwr@@@N9jyj#}DzMq=5cvdMhR8Sa+Hlgoocwb^o zXuSK~2l*iXAB23*0dTHE_ZZT#fXGV32*DkA8JzFka-*)_xH>ZfoEy_u7@Wh*%qlzs z(3V}7m}}R-TUk>NpJ9|z%Fdjmwkx-%-@2%(7mfM(b;6V<Sf8Iaj#V^+x)J-BJnyLu z;Gn?yBM~WkXF-&aFegrbn0Joc26y0QGY<+;U1Ln5WI3@#IAckg?K8EEP9V%@rTlnU zI=`fVB6R0Dt{;A6+NciiMY;qmqBa+lThwA4;G|I9Nf1B~mC*7^R(J`rD>&Nq-C0V6 zbk56^r1Abj)G#m@rl|=aMB|#qH9|mWrfD$QuGW(GxBEV{)6HXsacnbf!?_gf$>wpR z;|UasDaINh0ETV~Lm`CgJD*gPy6Yy>&VPAixntaF7`Gao<s)xA^{SGB^E&ZF4x(fE zPxWZ)ogkTq7B@pSk%h;?w(bb~;id1Z`Wi`E3qo8d-3I*_(fzz}ehK?Q@6L?(3>Wg% zC3bzZg<gm(pKH&~mA{dcgFn3W)1)o)-DUCtq%=PLySY;7P0X2@!SDNvt>xw4j-zDy zpOu91Khqn{#hiJCxc|iTPiU`u%1}7|e)>NA;*aHcILMtt7tVw1u!Q_;Sc9-U55meM zP2exs;`fGy(rw=toVyR3u4|qW;$gRRBX7}UN&5wZc5m2dux-x8jV1SCAx@dDYd-Aq z$dK3B$^_XOJm-a$_9B)|fN+hP5ay=?5r)I)3(3!4{r3UWAu{2f$B9gwMteO;fOF%i zvrieELz1kw8&{zE^nG=O(&1c1slV(a>cYat74;k&3k&K;Ugn$eE7>SU19Td_0DS=c z1DfLBSjQkH!m)h9*A^Xr2@LuG2?n(bfS|lOB}nuD2DF<?U6p<}MPeB`*o2k-N<Yox zCL`dA0$6D!FV2kwRrnRw{4)KcQcC;kdG_x6W<`h5<X6c1;_nc|873g@lACBUMm~La zMC+U~McDmQqs~7U3|l3M$i#x|j2^b+OM_tOOSm9mEE%S$F^Yl6gi>9S-ZfY7u_{Xv z#$2^^UDs`uZ~Icpl2ofM-locuj0sgV$FM<DRaMo%He8hxf@MioU5wrB{{9G8-8+ya z)d6r$>6+mvJ2ftS&BZN~(m$6E0VPB#)Bskuc96S}B&$WNC=y`IFg6qpvZ`7_D2*#E z-%vHJ6pn1DJtRxlC5$Cqw<Lf^{63M%LbVFN%rr%j70RiqQ(wmzW8J5^N;y?zMbVhb zIaf5QD~in6mVdqkApN~GqOeTGw3Q4?qOz*$YMEEPfFAAB?x#73EVU!}%@#Jn57Vi2 zK@c1EU=v1cTP@y%z}u($8VgAlrLA7D;)=n3<k(=0GOU_AIC@^Vl<fMY_77h32C9fZ z(6-mmUNL<PKxXVyaLv4q%8R{%TrW+wb8Vw$!mE_@t`oV{;yYfG$?VdDi$t1!6*%-- zfYfZx{Q%%?Z|jPc{or=&+GBzeN>}X~F~YAmL0YkOMWQv8=K*xyu#;u*$KFx1We~r+ zG00m@`Mg)l!wohH!pD>Kh+bm+_(|{<=hwqi=h`2XPh5wK@NY1&_G9QAdL?=t`atYN z;8U%~1_Or|;DC%x`VC>}Rp<@LZVhz57+FN#gRpDZi{;%kj9_4?T&5p30nGO}uQ374 zmpKoa0OsA!Rm9Ji9S7c_pE!%TLk3e{%muqC3jpeUwO1xce<EEs3!VBP4pV(R9*_Gy z$ybM$X?tadhtbE9?S{%->L>j-=ho3CLSc}19WuuyE^<Jg6h2F3dBN+IBICCGAJzX* z7$asBEzHl%cwAw;7&U68TGhYSuhvSnMpWcX;oi*5{6Z9&gfXRniOk`}Og1zPfO9UZ z)7Nl9FlP*yq9_Uj#yBQ~!^>2ea}J<shRmj~=Q6<vAw&@F)zAX!qAhe6dI>@<;7O1q zrQ0|z27c>QCNUadT>x60VS;xVV7J4Y?rhMu6(0*{(Fq~&Kjw{X)b9r8cfa7_`W<~y z)3yL!K%u{A*K}%GRM+)Aq+0XFHYb61rHgT~a2nNgqp-l*aQu;$GyP#^9D!Mf5X@v2 zRw|(!%i}Y%voreWx?5qC7FZi{yL#z6n69CDNAo0!uEQ`7T!$StF$7sR$h(6=S+Uba z`~qZI$_iGc%o|z_1^k$Rd#{|K?QSV`s&dIV(@|xaR`}NLe}B;Hc2`zvRohb78C<Wo zXKS_)8psk!8Ik2{Y%;XiA_ZPQdQHC47?hn=)@C5_rTc($WrnTpOgAtv<`<Gyt%mOd z#sX0+)rcfZo<u1<>lGy#ON>#dn@}I;w9U)Sw6AU8wi%c#-RQ=RP#w&c?QQFi#hnob zVip6agQ*kL_8}4&dF6DkHHF(*%(}VX@`!xSfH%teI7xZ1J`cO$Cvo3SV3-6N@)|&9 zGzA&LIF0_36W@#SxTWEAuNu!bGZxB&GUa)v|5n71B&$3&KoqT%7Mq&S08!VDoMufX z>_N%x6kJ?Qk}=anv9qo+%E}ha_~RI5c8ni~b`l-e==&o3i1~fbDop7o%iw36{lN0? zK=ix-1PyD9Ab8%IX!`BK<*~l~0M0L!YYPu-he_eArDLKz{m)cs9RVqeV@v*mA3FWM zS-#B^2K;pOOOeoaYS~=<DWcyv%tu4Cjh=^|MDKu}5Eu_Cf(nSfPbwC$V0GB({<pG* zsZle~s6qz^@!2RXV^QyPSNe@IP`D6{%R#@mHzyzDD_Iq1lETAv;%8jxvq5fdi>qJ+ zt)=S--8ir7xJASDzXhisF|FmaT}}WiWhl4P&TXrb)B=d(HOsz=gZW0$h54WsK?`Gm z)!RC0yW9e|xN-jchOTi1Fhtd`=$fT`|NKVL-TMu=#f|f@Q}&Bg!bJe^%jN!8>;~Y9 z@GF#hCYTC`3I@Mi_B=&`GYyXk)r@Pt#;`Oh`v6b@u9$u~HX+n6j!;4YK%%9nL{-&{ zEwgA~X$Oj`8P_bZeHP&=JnIYS5V{dbChOMoIbhfeqFTuh5*Yf5ih_~QT8RS9g3fBU zF09QVo?pl%HG7Rk^+M4!!8Ac8S;y5OZx#ihZsiN}!!>NSX%-9hs3~V$>$maCV1jy_ zu>kr>`6loL9_F-V$a-04mIP@g2{6>W@lu&i)_nM0t5}5T2eoVU&}&}1toj~HX8~aD zN^^&j6mBpuwXLvMnj=EB5GGJ8wyM*gUY%Rlp64;uzjNvm_dC7b(V^lI5g4Lw9Xj$p z2GNM6>##a`w-H4?+`2tlfi?<(QK#D*j1%y?fZFUqz<mt(VoeBzW$1fK<Pc{~5yH5r zR8Ox0i^O(92tvmui_kG}JLRGwgt7+b^kDf#LhS{HEU70|v7Psy@l+iAXI1xtgnCky zWa9-fD4=R%HAJmxxtO`zJ9HKtNweR05(6;>BwbURRLgj&mxFjrN}ZrDRr2$PFZ?gv zvh=U$`d6m4oX+~GqtxSgCOe8`u$eDXWyyZ?-Uj{fg<WG>|M6obdAI!SnTIZyrcabq z;SI%Eeh}Jk?lER%ozj_y1Nl@~-5#6aT`6b281-;sSf@OC9@C935h{ixMMLCiGQ%_5 zJ~!>Pwj5D5&O`!^%yu6<Te?r1B8%N`?~(fghsBk4?lJ>W{)utXS)A92JKZkcT1WO9 zvJpml+h1$Q1!pCXo#HlP%Omz(sgcEbC`sNq4DK<HL!faUKL^1Owj+o0Sg1$G#?I0l zkB$ZKdXI(2%+BO?){HH%(%MdsW<n{uKDxa}8RyICyj0hS!yTUg3ExMjXL;gx$GC;& zxt!!Yesnkt=`nY}2JEvb!2xuXXYAudui3Z8#U{lVU0m#YxoxbR+7vR);Pny{cWBOK z+<s}8Sz;iJ9x`w`*@-ie2?t9J@zip%T9vo~nA(IKWgTpr$v}=t;<d`hv$`|gxBODh zkp7Crj?hZIfiS*^M-oEtjpj3`fadI5EiB)f@`u^xQKY`zc5qyt***lB2r({zp>CL8 zuv8<GZ8MxiL&j8<v8mE%6z#)aRO@NkvpAO);}6FB;0s+J!Q^TijH{}2Az@!`_!eI9 zj6OmwLWOHbQJbkFt28Vo$ba`>-$f!V6=@ZjDGIM50xY-n*tMIAB&iC}8)PYDvaCf4 z&>bdOus|1w!^KN8uJ<iXQ|M2w5_^fDO<jxHWVnFwD5&^$fWmMSlc+UZqzeEGmu8li zv;3Q!bFGfAwrvZm11*uDPKuEQ3e9Cb;aT8{b(^pz(-KA9D`9CH^$FCzr1ze7-id-h zzS+}ssO{cnHM(0K8tQX7qkdy{Ho8XTntlzTL9ysM5*9LP-I75_4diVgNe&-AO9Q`F zsDdpZcl5ldL@m>AIyc^SU|ztZ<w_-}*G_1<%1;tmV99Zd#ekC5!Fm-Or+m}#;|mK) z)wNG1{&{T+-3(m-_>T?A$-*v?&st^;>JU`r$|W*e;HQMBJ2@O!hk&aCS)#hqDi+D( z?cy6EG7QVQ&XxCaOxJAX&C?lTMeCWQiisKp>i9SCernm_FtRMexXvvbh3KgcZD)vV zP2WAy%GOBQCWB^q>k#(PE6}?n>;utcstSfdHw3??u1Ot6SyvyVD}>!7P1fYBlXtRC zUUB4Mv;>xO?EIs#(5p%al5Ai+%p=rjh2#4DI*%D0caB6CIh`u`8xW+Bkxm?T9vk)| zmn6}0uVHbyW9uA{DJN~hJwAPN09fXB)LV`c;>x7%tIVq#qU5=BK@v7`+l8fiBtZgF zR9_N@d2eZfx?V{bb&sijoyd77`J40%0g^12XIf=hhKVefTQg-@0ttlSEnHcL?11wT z4X{q+C!dSCK@^1;eDIU(PbNCX>PH;FI`e$hAeLGDMo?>dvkLOH)v8NDuvD$dz!+My z(LB1xH;Sf34Apn3j{kMunru58?h=3spaPzopKHRBYv}g|I*+Ho1U`(4c*eq%MHLc+ ze&eAQ-o6yXln{0Ma$}{>)y$y_;7%vjCLH~@e}hM|BHwAoU<`M66q_;TzR$;9!;ZWA z?&-I(+5|!plJV1`4qB7K%BBD#!vugVB@!-U?NC6hmH4*#;Oc>*ANt-i#a=dh#3Vf? zBUjvu0>o;sy=_Z9_jXebu~W9x#OX*Opg`7`8~u!PIq6S-@~}D-%C5mNQc%axL+K>i zjTaoC)@=?pw7(Ch`+x>Dc1EO@-BMg|W%=z`PKl_Fmif8?CJB=d0r`x;Ph6iJP0~Ke z)I_2Vzz2i7M5Ac}8hoLJt*zl2>R3_%cWWeuUI2t)vsu`><xlko+tuf`w&sR#sH%Pb zg|nwl%@)k9t-adAMz*#JOV$;((ET9DXcbiQtS6=})vF0yBuX<R{TGycAi5Yv)qFU_ zg<`S1%Gk|JQ?V#oSIfm>VIeodNmwkI+9nE%O1NLvT<e3^^`QrarUJZ#OS1MX{zYBY zL>Wx?g$?Exibn#BgCz>H0mebb)VEy0UFU&>$-~4~wU7i@Kda@yjj;r8IT7AJo%|#i zeqj18S=?Hrj}k%rtNpsQ`1C9LlxiO@kqN5ET;MgtTU@aY#B-gKz?oao@`>m5l4;No zx0uTF3%L*AbHKwn6m;PNELd#d1f~h2iGdvviwX%Bki9^6V;U8ulAzkjlm95zA4TnR zE=!qa`mv_s+_j!~i73NTEPdqNOjifiMQf{q$I^bB+F~VEaE6ATLMn}S5{u?$2A)U^ zKO7RaJ(qCSV#2oNXAlt0WBV#RWa8Wv^%6>!`1?EsD=Le{G9d&dK%1Z1;O)}~?VYP- zThP#byih~jgw;uJYX!CxYdUnUEP-nw(pn7B%Oj41QO>h31f|1A4j(>v@Zh>*ngFH4 zhmS1TqAN^*2$KcnHj?5%Gy&1y*9B*$zgyD-MR9Ddn6k=U=r6lKg_|;0-G2fQV@C*6 z=Ww`J8!cTK_RUJO_up)x1+-#ci{;(>_kAG1Lh^L!8xNBq1A;8%j^AU~*L-xARBNVx zI23B(!^a=%D3GsD6y+Jct-=fp87D{?K2*8=7Gd(<5({ppI-(`5upk2TO`~y8$~a|A zkb?e7DR<Xi#(~R=-LL=S@G5>YdYK{&Sa<d_I-pIfStqO1m_%VvfP#})xcR@3uME35 zUhU^JVd7IFbwxhCl=XYdZ92ClO0MaZaybWy`v9J+Q7X|AQ?TP;OGseL%#maOp}Hyq zkhqUsS7TIS1!cnoN%-jF+qX+4OdVUo0GJR-2EddOoe5!9RS6RZV}}wMV3fDr0sz4h zkthL-DFs=lhA=CtglX=fI&SkX;4*xe11yi&S6N$3vsp$SNN;KroX$UY8svizp08nv z%~{N?_~3BB7?u9`@bE<utN&IH4L>;*KA;%7e(3(gKpcIyl`!L0NnAA2xmFK#ww&4W z*1+>=2lCJhW&cOZq~J$ywT|TyKvSG_urVV2$4DaEiV^r;<!<oIS3zQ+Vp9|->E!DO z{s=ka1U+R&YroMZ08qAVFoZ{l5CC3Ka2(v0mKKlfZM4sLe+V*c{TLf){S1^i0V94G zmqpg%mE6XkU59|?U~KCNwvX|MuGw~`O8`>jUY>gBB<*nc1XUfn#@g*@d7HKSpid_{ z<@e`XANyWt2T?WO@8e_zh~j@Rq5W?x&e{Hre@I_~thB66Xz>OTet2)<FGIed>KG<A zSn^Kx842?LGYp*sU7$~ro5{4RlAHm*Ke1-25PG|9S^xL+x8hzJoVDJ1|HSfVxv^#r ze2c2hrmp}0IXGeFv}3Zr7OIq)aK&VAy+A#5#T<zN1}=0Ip?O)g)r~RW9*lh>l9x3X z1OxSq%xJ;vp3N>dJu!7_tooVmgFqJW`aTp%jkBr9x_Ycz8<l0dk7n(#BMhEuQ$0o3 z?CEZn=)+MqA+`_!NH!FJg;&T)=px~q|Idt{z#j7uUAMC9-5~@>zWVF%U+@jo^^8Cg zlE^$sz?*CGJqDjMUDv!#h^(V&oOkAiZ<^!N&$ioc`s+(V+-AD2nT;Q{u5+J$_SrxE zbvn(_DTHEuW6e4=+ITZQs}YCRSB^=YaM@G#{r)Tn3&R~T(^=U8EJCYH&n0_to*(cX zLthZLt-UYF$YX3e8A)yV3(ydcVTe{e{ngQ1a=bxQS8`B($r-)_a}G=qMF#6(?`2y{ zv8lj0AiY6zy4Op_NQ$47*UwMPM$ai<ltECaTj#AvRw(_j*H41HzYz`5b=D9Y^imYL zN@(puI3$r)`t;%*w#cz9j?)`i8{_gOSAShQIFiT}7&A20e)*fv;xvwo_oC}V8lo&d zJvAkqwQkS_V15={*hLpBRF%>Y14gCkeV2*@qtQMHdjDZo_nkGldmP^U&U1q9a2nBM z@m$*EpcRCcD_DVJ-C!AnG7|-z>x4fv?MwWe$~iqZ(Al<Tw5Lz+C=K$$c7mW#uNUB} zhPKW0!8ytm?Hs>ko9*dOca--y`%a-=F9boKuSylo!RD!7s8HKg^eN#UZ(&T-%JH%j z23B2`<XGMp7is+9Ol$K3>=DYjrnp$}yka4)&Cb^A7-r&ZrHcklF3-ERz3xgD&j7C1 zXJ>11q3C&qVob2d+O!=ez!ZhS*yNx?xylsZYqzTv%WPGITthofN2XP&w%eYsurF`? zNaG*T21>`l8^jIps;vQunbA(y>tX}ifFoRHPTc8tx-OiGGw{S2U~i#RM7!FcSXwws z!B}F@1b7c+#tWVc9H-o^FD?!!uQd8gi}g5;A+ABpI|y1w<-TnXZbB{=j$u<n7HUQ& z%8c6)a_jh=O@?Xa$4xFe{a{8samiK;!a=)$mLAF~DDP=zgPqZP&x~$!=I_q&-$plP zQEUR3uYTF`qcl6uDYp~SnrDqqLq4J8Y&bUx$lvLY!}6KY?M-I_*WVUJ(YdN$=4asE zmSq5(ggr35Ac>cA;r{4cM|>O&ncxmgP#qmYF}3A4WF%C9GOptPIB&eP@pO>i7*cwq zMA|rIc;>*k(Yx{i-?Zi^oh=q-+r?tLT^v_>7wIV6v8NN;Rfdut;%#~;g$uVD#;vVZ zOM&5|C;opCrPXS^7szX0Oa20gXU(et^1F!D+8`SP4=a{o#JzZ-)xo{&wL(OVR739b zQ{omLSi^V^!|5d`N21~Aa54mjc?X7ow1K-P#>|V9Wc|SQ-rgQ@C_WciU&^HZocaj~ zbB7Bv;0h%)c4VQdXQSiTxH*6eQXD|M_AjFn`Y3uDeHwiZeVIO$mSl2<MFxndMvT19 zaZ5<xpkCPrvo}flLC*kN5WoU?Z-~_)PfZ-=%b0~Zpa_Am=C9HBeN9tUZ?R#is;1do z(^OUYsnA$l|JV0aRnz>%hW&m^@%TrfvG}pn`?*+QadC0+*y7^iVmQ&I^O|{nnIGNh zlE1JH-(0sxUwR7JA2U+WT9lr~dD;d171M!{%bl|rKM;1@x7(kRv#;AFFJl!?te{1S z$t{T$;Z?>fQXoOpMwi-cXT3~{72#bgT7?j?;sUSr#EO{iZ?BWWKXJW-#%~wVCFj0` zV8z8^eX$F{8D2mHIw_bUzPNSxW1a9~q0uN5RarNh<tJ4DzRGn&U1245Et#epe3b)e zuP8SSn1Eip6kf5WL+~IMhB{OMl==U7X*>SMyaJ#ORYULxb#`YPi~85av#X0f!8AtW zZqx6IOJF$S$?b*a{G@JyDq%pBuG2HEZvxAep-q`C2gnECur7Ed04OCc_0QWCyO~mt zo8_`FePh!eTDBPXdWsZkS+@PjK(W?}lH3+D+n_hx<se1TA@2o{^pau_+PiQUrC*SQ z<JMcM9dUONiWMFnaQ!wz)w1ocFExh0bx4*MXE-~=@J6rGz9jmFune~oQblcUo0D{q zw+1G~gnW1mnmZzT3I<Hamu4r*8`a?@753~@D7g&6&HpdHgHEBl#t99(L4zM5r-Ozx zqd$s);zE)B?FG6;F?*QFFxUj|Y)p!&|I$o9A~B{m+wG>xm}C@-QB*7%rr=x?R2Cya zC8JJLaOVlH37LwKAyJ{z8ce1|+;*=}36V@wB1AP?+uqORTwpB8LeNMu1Xa)VOGbjL zR2Wi3g(1mUN?XVARIV(RaWeI2Th5-^I_@W%feAJm+YK8RO^RMAnieG)K!IdCU^+zH z6_8kC6fe-aQHZAdaib3!VyzKcMC<5q<mp6rqWi2gi}EK)or7q!5O_lIgMBW_X?n^Q z(~SA3$^s<o#Bq{_lm**a7KBNf$Aba=$o5V|s~v_6-Aag1?_vfD-8=Bh1Y<&}iZ>;d zk~vMP^O+f5m$d7N7~I*P*ClO+*Xw*nlhz(t;gs6&OE7ozhbiM2V03TW*AM_gjUbK# zgQ}HeKK$iyKB=4~uW&b3QVHjy`LL2)`zQkjs-B4!&Fb^fn`q{!jPnhIT@qsi4%Vuj zG=awHsD6W4Rwx1y$aHVIkA|l*eaqcRyBo=Sei&qV#}7MMK;^jI!*s9-E8VcS2`gEF z=Uo{m>1Q0r;hG<)D&d}ksjg`{#jeYVs``P(oo)VRu8XOrY1$S8U*pc*gaE#`PXBox zxIY^>iqeu*P8zG666xnHMR9^zpToRFC|_+5uFCMWJ(|zh`76r(8VQ1T?|(c1?hFQv zNEbPP(p7*d%E5~g(E!i5@PMK)P`V7b?Rr$;gFz%`s?n8$+5>V)c~X=FIrf-_{eH=P zFX!)dOOVm3?D7Xv`;!!E1nh5h-=i9a`X0@?j{;~}BLJE=__I>%z_&hvo`)VsDAXmX zE=(Sr6~~^&Jyt-e^c$c?x&pHz<MCU;g49%0Ae1#Ce7RRFWq#Zz{mhS{-RTgMuRZRx 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 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-v4compatibility.ttf b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc2981941df8e153515fcc8718292d5e83b3d594 GIT binary patch literal 10136 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 AZvX%Q literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-v4compatibility.woff2 b/content/legacy/themes/Peafowl/lib/font-awesome-6/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..28d46b15ace8f3e5056c6de1e387062b92c8dae3 GIT binary patch literal 4584 zcmV<E5f|=vPew8T0RR9101@Z_3IG5A03=`l01==A0s#O300000000000000000000 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 SoVIq!9~U|32P^TH0RsTY6q0@b literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/lib/js/apexcharts.js b/content/legacy/themes/Peafowl/lib/js/apexcharts.js new file mode 100644 index 0000000..22aefcf --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/apexcharts.js @@ -0,0 +1,14 @@ +/*! + * ApexCharts v3.26.0 + * (c) 2018-2021 Juned Chhipa + * Released under the MIT License. + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ApexCharts=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function a(t,e,a){return e&&i(t.prototype,e),a&&i(t,a),t}function s(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function r(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function n(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?r(Object(i),!0).forEach((function(e){s(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,a=l(t);if(e){var s=l(this).constructor;i=Reflect.construct(a,arguments,s)}else i=a.apply(this,arguments);return c(this,i)}}function g(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return u(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return u(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=new Array(e);i<e;i++)a[i]=t[i];return a}var f=function(){function i(){e(this,i)}return a(i,[{key:"shadeRGBColor",value:function(t,e){var i=e.split(","),a=t<0?0:255,s=t<0?-1*t:t,r=parseInt(i[0].slice(4),10),n=parseInt(i[1],10),o=parseInt(i[2],10);return"rgb("+(Math.round((a-r)*s)+r)+","+(Math.round((a-n)*s)+n)+","+(Math.round((a-o)*s)+o)+")"}},{key:"shadeHexColor",value:function(t,e){var i=parseInt(e.slice(1),16),a=t<0?0:255,s=t<0?-1*t:t,r=i>>16,n=i>>8&255,o=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-n)*s)+n)+(Math.round((a-o)*s)+o)).toString(16).slice(1)}},{key:"shadeColor",value:function(t,e){return i.isColorHex(e)?this.shadeHexColor(t,e):this.shadeRGBColor(t,e)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(e){return e&&"object"===t(e)&&!Array.isArray(e)&&null!=e}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;e<t.length;e++)i[e]=t[e];return i}},{key:"extend",value:function(t,e){var i=this;"function"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var a=arguments[i];if(null!=a)for(var s in a)a.hasOwnProperty(s)&&(e[s]=a[s])}return e});var a=Object.assign({},t);return this.isObject(t)&&this.isObject(e)&&Object.keys(e).forEach((function(r){i.isObject(e[r])&&r in t?a[r]=i.extend(t[r],e[r]):Object.assign(a,s({},r,e[r]))})),a}},{key:"extendArray",value:function(t,e){var a=[];return t.map((function(t){a.push(i.extend(e,t))})),t=a}},{key:"monthMod",value:function(t){return t%12}},{key:"clone",value:function(e){if("[object Array]"===Object.prototype.toString.call(e)){for(var i=[],a=0;a<e.length;a++)i[a]=this.clone(e[a]);return i}if("[object Null]"===Object.prototype.toString.call(e))return null;if("[object Date]"===Object.prototype.toString.call(e))return e;if("object"===t(e)){var s={};for(var r in e)e.hasOwnProperty(r)&&(s[r]=this.clone(e[r]));return s}return e}},{key:"log10",value:function(t){return Math.log(t)/Math.LN10}},{key:"roundToBase10",value:function(t){return Math.pow(10,Math.floor(Math.log10(t)))}},{key:"roundToBase",value:function(t,e){return Math.pow(e,Math.floor(Math.log(t)/Math.log(e)))}},{key:"parseNumber",value:function(t){return null===t?t:parseFloat(t)}},{key:"randomId",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:"noExponents",value:function(t){var e=String(t).split(/[eE]/);if(1===e.length)return e[0];var i="",a=t<0?"-":"",s=e[0].replace(".",""),r=Number(e[1])+1;if(r<0){for(i=a+"0.";r++;)i+="0";return i+s.replace(/^-/,"")}for(r-=s.length;r--;)i+="0";return s+i}},{key:"getDimensions",value:function(t){var e=getComputedStyle(t,null),i=t.clientHeight,a=t.clientWidth;return i-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),[a-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),i]}},{key:"getBoundingClientRect",value:function(t){var e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}},{key:"getLargestStringFromArr",value:function(t){return t.reduce((function(t,e){return Array.isArray(e)&&(e=e.reduce((function(t,e){return t.length>e.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a<i.length;a++)i[a]=parseInt(1===i[a].length?i[a]+i[a]:i[a],16);return void 0!==e&&i.push(e),"rgba("+i.join(",")+")"}},{key:"getOpacityFromRGBA",value:function(t){return parseFloat(t.replace(/^.*,(.+)\)/,"$1"))}},{key:"rgb2hex",value:function(t){return(t=t.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===t.length?"#"+("0"+parseInt(t[1],10).toString(16)).slice(-2)+("0"+parseInt(t[2],10).toString(16)).slice(-2)+("0"+parseInt(t[3],10).toString(16)).slice(-2):""}},{key:"isColorHex",value:function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t)}},{key:"getPolygonPos",value:function(t,e){for(var i=[],a=2*Math.PI/e,s=0;s<e;s++){var r={};r.x=t*Math.sin(s*a),r.y=-t*Math.cos(s*a),i.push(r)}return i}},{key:"polarToCartesian",value:function(t,e,i,a){var s=(a-90)*Math.PI/180;return{x:t+i*Math.cos(s),y:e+i*Math.sin(s)}}},{key:"escapeString",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),i}(),p=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.setEasingFunctions()}return a(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1};break;default:t="<>"}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,n=t.pathTo,o=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,n,o,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove("apexcharts-element-hidden")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,n,o){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(n=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(n=1),t.plot(s).animate(1,h.globals.easing,o).plot(s).animate(n,h.globals.easing,o).plot(r).afterAll((function(){f.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),x=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,n=i.color,o=i.opacity,l=t.flood(Array.isArray(n)?n[e]:n,o).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,n=e.color,o=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),f.isIE()&&"radialBar"===h.config.chart.type||(n=Array.isArray(n)?n[i]:n,t.filter((function(t){var e=null;e=f.isSafari()||f.isFirefox()||f.isIE()?t.flood(n,o).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r):t.flood(n,o).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),b=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,o=this.w,l=o.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":n});return l}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w,d=c.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:n,"stroke-width":null!==o?o:0,stroke:null!==l?l:"none","stroke-dasharray":h}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i});return r}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w,a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,n=void 0===r?1:r,o=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:o,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":n,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=["L",t,e].join(" "):"H"===i?a=["H",t].join(" "):"V"===i&&(a=["V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var n=["C",t,e,i,a,s,r].join(" ");return n}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,n){var o=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l="A";o&&(l="a");var h=[l,t,e,i,a,s,r,n].join(" ");return h}},{key:"renderPaths",value:function(t){var e,i=t.j,a=t.realIndex,s=t.pathFrom,r=t.pathTo,o=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,b=t.shouldClipToGrid,m=void 0===b||b,v=t.bindEventsOnPaths,y=void 0===v||v,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new x(this.ctx),C=new p(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,T=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);T?e=s:(e=r,A.globals.animationEnded=!0);var z=A.config.stroke.dashArray,I=0;I=Array.isArray(z)?z[a]:A.config.stroke.dashArray;var M=this.drawPath({d:e,stroke:o,strokeWidth:l,fill:c,fillOpacity:1,classes:f,strokeLinecap:h,strokeDashArray:I});if(M.attr("index",a),m&&M.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(M,a);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(a))){var E=A.config.chart.dropShadow;S.dropShadow(M,E,a)}y&&(M.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,M)),M.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,M)),M.node.addEventListener("mousedown",this.pathMouseDown.bind(this,M))),M.attr({pathTo:r,pathFrom:s});var X={el:M,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(n(n({},X),{},{speed:g})),A.globals.dataChanged&&P&&T&&C.animatePathsGradually(n(n({},X),{},{speed:u})),M}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,n=r.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}));return n}},{key:"drawGradient",value:function(t,e,i,a,s){var r,n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=f.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=f.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==o&&(d=void 0!==o[0]?o[0]/100:0,g=void 0!==o[1]?o[1]/100:1,u=void 0!==o[2]?o[2]/100:1,p=void 0!==o[3]?o[3]/100:null);var x=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(x?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(x?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),x){var b=c.globals.gridWidth/2,m=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:m,r:n}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"drawText",value:function(t){var e,i=t.x,a=t.y,s=t.text,r=t.textAnchor,n=t.fontSize,o=t.fontFamily,l=t.fontWeight,h=t.foreColor,c=t.opacity,d=t.cssClass,g=void 0===d?"":d,u=t.isPlainText,f=void 0===u||u,p=this.w;return void 0===s&&(s=""),r||(r="start"),h&&h.length||(h=p.config.chart.foreColor),o=o||p.config.chart.fontFamily,l=l||"regular",(e=Array.isArray(s)?p.globals.dom.Paper.text((function(t){for(var e=0;e<s.length;e++)0===e?t.tspan(s[e]):t.tspan(s[e]).newLine()})):f?p.globals.dom.Paper.plain(s):p.globals.dom.Paper.text((function(t){return t.tspan(s)}))).attr({x:i,y:a,"text-anchor":r,"dominant-baseline":"auto","font-size":n,"font-family":o,"font-weight":l,fill:h,class:"apexcharts-text "+g}),e.node.style.fontFamily=o,e.node.style.opacity=c,e}},{key:"drawMarker",value:function(t,e,i){t=t||0;var a=i.pSize||0,s=null;if("square"===i.shape||"rect"===i.shape){var r=void 0===i.pRadius?a/2:i.pRadius;null!==e&&a||(a=0,r=0);var n=1.2*a+r,o=this.drawRect(n,n,n,n,r);o.attr({x:t-n/2,y:e-n/2,cx:t,cy:e,class:i.class?i.class:"",fill:i.pointFillColor,"fill-opacity":i.pointFillOpacity?i.pointFillOpacity:1,stroke:i.pointStrokeColor,"stroke-width":i.pointStrokeWidth?i.pointStrokeWidth:0,"stroke-opacity":i.pointStrokeOpacity?i.pointStrokeOpacity:1}),s=o}else"circle"!==i.shape&&i.shape||(f.isNumber(e)||(a=0,e=0),s=this.drawCircle(a,{cx:t,cy:e,class:i.class?i.class:"",stroke:i.pointStrokeColor,fill:i.pointFillColor,"fill-opacity":i.pointFillOpacity?i.pointFillOpacity:1,"stroke-width":i.pointStrokeWidth?i.pointStrokeWidth:0,"stroke-opacity":i.pointStrokeOpacity?i.pointStrokeOpacity:1}));return s}},{key:"pathMouseEnter",value:function(t,e){var i=this.w,a=new x(this.ctx),s=parseInt(t.node.getAttribute("index"),10),r=parseInt(t.node.getAttribute("j"),10);if("function"==typeof i.config.chart.events.dataPointMouseEnter&&i.config.chart.events.dataPointMouseEnter(e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}),this.ctx.events.fireEvent("dataPointMouseEnter",[e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}]),("none"===i.config.states.active.filter.type||"true"!==t.node.getAttribute("selected"))&&"none"!==i.config.states.hover.filter.type&&"none"!==i.config.states.active.filter.type&&!i.globals.isTouchDevice){var n=i.config.states.hover.filter;a.applyFilter(t,s,n.type,n.value)}}},{key:"pathMouseLeave",value:function(t,e){var i=this.w,a=new x(this.ctx),s=parseInt(t.node.getAttribute("index"),10),r=parseInt(t.node.getAttribute("j"),10);"function"==typeof i.config.chart.events.dataPointMouseLeave&&i.config.chart.events.dataPointMouseLeave(e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}),this.ctx.events.fireEvent("dataPointMouseLeave",[e,this.ctx,{seriesIndex:s,dataPointIndex:r,w:i}]),"none"!==i.config.states.active.filter.type&&"true"===t.node.getAttribute("selected")||"none"!==i.config.states.hover.filter.type&&a.getDefaultFilter(t,s)}},{key:"pathMouseDown",value:function(t,e){var i=this.w,a=new x(this.ctx),s=parseInt(t.node.getAttribute("index"),10),r=parseInt(t.node.getAttribute("j"),10),n="false";if("true"===t.node.getAttribute("selected")){if(t.node.setAttribute("selected","false"),i.globals.selectedDataPoints[s].indexOf(r)>-1){var o=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(o,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),n="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===n){var d=i.config.states.active.filter;"none"!==d&&a.applyFilter(t,s,d.type,d.value)}else"none"!==i.config.states.active.filter.type&&a.getDefaultFilter(t,s);"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e=t.getBBox();return{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,n=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&n.attr("transform",a),r.globals.dom.Paper.add(n);var o=n.bbox();return s||(o=n.node.getBoundingClientRect()),n.remove(),{width:o.width,height:o.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),m=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i}return a(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var n=this.annoCtx.graphics.rotateAroundCenter(s),o=n.x,l=n.y;s.setAttribute("transform","rotate(-90 ".concat(o," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||!e.label.text||e.label.text&&!e.label.text.trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,n=e.label.style.padding.right,o=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(o=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,n=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-o,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+n,s.height+o+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var n=r.parentNode,o=t.addBackgroundToAnno(r,i);o&&n.insertBefore(o.node,r)}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),v=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i,this.invertAxis=this.annoCtx.invertAxis}return a(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a=this.w,s=this.invertAxis?a.globals.minY:a.globals.minX,r=this.invertAxis?a.globals.maxY:a.globals.maxX,n=this.invertAxis?a.globals.yRange[0]:a.globals.xRange,o=(t.x-s)/(n/a.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(r-t.x)/(n/a.globals.gridWidth));var l=t.label.text;"category"!==a.config.xaxis.type&&!a.config.xaxis.convertedCatToNumeric||this.invertAxis||a.globals.dataFormatXNumeric||(o=this.annoCtx.helpers.getStringX(t.x));var h=t.strokeDashArray;if(f.isNumber(o)){if(null===t.x2||void 0===t.x2){var c=this.annoCtx.graphics.drawLine(o+t.offsetX,0+t.offsetY,o+t.offsetX,a.globals.gridHeight+t.offsetY,t.borderColor,h,t.borderWidth);e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}else{var d=(t.x2-s)/(n/a.globals.gridWidth);if(this.annoCtx.inversedReversedAxis&&(d=(r-t.x2)/(n/a.globals.gridWidth)),"category"!==a.config.xaxis.type&&!a.config.xaxis.convertedCatToNumeric||this.invertAxis||a.globals.dataFormatXNumeric||(d=this.annoCtx.helpers.getStringX(t.x2)),d<o){var g=o;o=d,d=g}var u=this.annoCtx.graphics.drawRect(o+t.offsetX,0+t.offsetY,d-o,a.globals.gridHeight+t.offsetY,0,t.fillColor,t.opacity,1,t.borderColor,h);u.node.classList.add("apexcharts-annotation-rect"),u.attr("clip-path","url(#gridRectMask".concat(a.globals.cuid,")")),e.appendChild(u.node),t.id&&u.node.classList.add(t.id)}var p="top"===t.label.position?4:a.globals.gridHeight,x=this.annoCtx.graphics.getTextRects(l,parseFloat(t.label.style.fontSize)),b=this.annoCtx.graphics.drawText({x:o+t.label.offsetX,y:p+t.label.offsetY-("vertical"===t.label.orientation?"top"===t.label.position?x.width/2-12:-x.width/2:0),text:l,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-xaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});b.attr({rel:i}),e.appendChild(b.node),this.annoCtx.helpers.setOrientations(t,i)}}},{key:"drawXAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-xaxis-annotations"});return e.config.annotations.xaxis.map((function(e,a){t.addXaxisAnnotation(e,i.node,a)})),i}}]),t}(),y=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getStackedSeriesTotals",value:function(){var t=this.w,e=[];if(0===t.globals.series.length)return e;for(var i=0;i<t.globals.series[t.globals.maxValsInArrayIndex].length;i++){for(var a=0,s=0;s<t.globals.series.length;s++)void 0!==t.globals.series[s][i]&&(a+=t.globals.series[s][i]);e.push(a)}return t.globals.stackedSeriesTotals=e,e}},{key:"getSeriesTotalByIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;a<t.length;a++)i+=t[a];else i+=t;return i}))}},{key:"getSeriesTotalsXRange",value:function(t,e){var i=this.w;return i.globals.series.map((function(a,s){for(var r=0,n=0;n<a.length;n++)i.globals.seriesX[s][n]>t&&i.globals.seriesX[s][n]<e&&(r+=a[n]);return r}))}},{key:"getPercentSeries",value:function(){var t=this.w;t.globals.seriesPercent=t.globals.series.map((function(e,i){var a=[];if(Array.isArray(e))for(var s=0;s<e.length;s++){var r=t.globals.stackedSeriesTotals[s],n=0;r&&(n=100*e[s]/r),a.push(n)}else{var o=100*e/t.globals.seriesTotals.reduce((function(t,e){return t+e}),0);a.push(o)}return a}))}},{key:"getCalculatedRatios",value:function(){var t,e,i,a,s=this.w.globals,r=[],n=0,o=[],l=.1,h=0;if(s.yRange=[],s.isMultipleYAxis)for(var c=0;c<s.minYArr.length;c++)s.yRange.push(Math.abs(s.minYArr[c]-s.maxYArr[c])),o.push(0);else s.yRange.push(Math.abs(s.minY-s.maxY));s.xRange=Math.abs(s.maxX-s.minX),s.zRange=Math.abs(s.maxZ-s.minZ);for(var d=0;d<s.yRange.length;d++)r.push(s.yRange[d]/s.gridHeight);if(e=s.xRange/s.gridWidth,i=Math.abs(s.initialMaxX-s.initialMinX)/s.gridWidth,t=s.yRange/s.gridWidth,a=s.xRange/s.gridHeight,(n=s.zRange/s.gridHeight*16)||(n=1),s.minY!==Number.MIN_VALUE&&0!==Math.abs(s.minY)&&(s.hasNegs=!0),s.isMultipleYAxis){o=[];for(var g=0;g<r.length;g++)o.push(-s.minYArr[g]/r[g])}else o.push(-s.minY/r[0]),s.minY!==Number.MIN_VALUE&&0!==Math.abs(s.minY)&&(l=-s.minY/t,h=s.minX/e);return{yRatio:r,invertedYRatio:t,zRatio:n,xRatio:e,initialXRatio:i,invertedXRatio:a,baseLineInvertedY:l,baseLineY:o,baseLineX:h}}},{key:"getLogSeries",value:function(t){var e=this,i=this.w;return i.globals.seriesLog=t.map((function(t,a){return i.config.yaxis[a]&&i.config.yaxis[a].logarithmic?t.map((function(t){return null===t?null:e.getLogVal(t,a)})):t})),i.globals.invalidLogScale?t:i.globals.seriesLog}},{key:"getLogVal",value:function(t,e){var i=this.w;return(Math.log(t)-Math.log(i.globals.minYArr[e]))/(Math.log(i.globals.maxYArr[e])-Math.log(i.globals.minYArr[e]))}},{key:"getLogYRatios",value:function(t){var e=this,i=this.w,a=this.w.globals;return a.yLogRatio=t.slice(),a.logYRange=a.yRange.map((function(t,s){if(i.config.yaxis[s]&&e.w.config.yaxis[s].logarithmic){var r,n=-Number.MAX_VALUE,o=Number.MIN_VALUE;return a.seriesLog.forEach((function(t,e){t.forEach((function(t){i.config.yaxis[e]&&i.config.yaxis[e].logarithmic&&(n=Math.max(t,n),o=Math.min(t,o))}))})),r=Math.pow(a.yRange[s],Math.abs(o-n)/a.yRange[s]),a.yLogRatio[s]=r/a.gridHeight,r}})),a.invalidLogScale?t.slice():a.yLogRatio}}],[{key:"checkComboSeries",value:function(t){var e=!1,i=0,a=0;return t.length&&void 0!==t[0].type&&t.forEach((function(t){"bar"!==t.type&&"column"!==t.type&&"candlestick"!==t.type&&"boxPlot"!==t.type||i++,void 0!==t.type&&a++})),a>1&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i}return a(t,[{key:"addYaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=t.strokeDashArray,n=this._getY1Y2("y1",t),o=t.label.text;if(null===t.y2||void 0===t.y2){var l=this.annoCtx.graphics.drawLine(0+t.offsetX,n+t.offsetY,this._getYAxisAnnotationWidth(t),n+t.offsetY,t.borderColor,r,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this._getY1Y2("y2",t))>n){var h=n;n=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),n-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add("apexcharts-annotation-rect"),c.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(a||n)+t.label.offsetY-3,text:o,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});g.attr({rel:i}),e.appendChild(g.node)}},{key:"_getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var n=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");n&&(i=parseFloat(n.getAttribute("y")))}else{var o;if(s.config.yaxis[e.yAxisIndex].logarithmic)o=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else o=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-o,s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=o)}return i}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),k=function(){function t(i){e(this,t),this.w=i.w,this.annoCtx=i}return a(t,[{key:"addPointAnnotation",value:function(t,e,i){var a=this.w,s=0,r=0,n=0;this.annoCtx.invertAxis&&console.warn("Point annotation is not supported in horizontal bar charts.");var o,l=parseFloat(t.y);if("string"==typeof t.x){var h=a.globals.labels.indexOf(t.x);a.config.xaxis.convertedCatToNumeric&&(h=a.globals.categoryLabels.indexOf(t.x)),s=this.annoCtx.helpers.getStringX(t.x),null===t.y&&(l=a.globals.series[t.seriesIndex][h])}else s=(t.x-a.globals.minX)/(a.globals.xRange/a.globals.gridWidth);a.config.yaxis[t.yAxisIndex].logarithmic?o=(l=new y(this.annoCtx.ctx).getLogVal(l,t.yAxisIndex))/a.globals.yLogRatio[t.yAxisIndex]:o=(l-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight);if(r=a.globals.gridHeight-o-parseFloat(t.label.style.fontSize)-t.marker.size,n=a.globals.gridHeight-o,a.config.yaxis[t.yAxisIndex]&&a.config.yaxis[t.yAxisIndex].reversed&&(r=o+parseFloat(t.label.style.fontSize)+t.marker.size,n=o),f.isNumber(s)){var c={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},d=this.annoCtx.graphics.drawMarker(s+t.marker.offsetX,n+t.marker.offsetY,c);e.appendChild(d.node);var g=t.label.text?t.label.text:"",u=this.annoCtx.graphics.drawText({x:s+t.label.offsetX,y:r+t.label.offsetY,text:g,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(u.attr({rel:i}),e.appendChild(u.node),t.customSVG.SVG){var p=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});p.attr({transform:"translate(".concat(s+t.customSVG.offsetX,", ").concat(r+t.customSVG.offsetY,")")}),p.node.innerHTML=t.customSVG.SVG,e.appendChild(p.node)}if(t.image.path){var x=t.image.width?t.image.width:20,b=t.image.height?t.image.height:20;this.annoCtx.addImage({x:s+t.image.offsetX-x/2,y:r+t.image.offsetY-b/2,width:x,height:b,path:t.image.path,appendTo:".apexcharts-point-annotations"})}}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var A={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},S=function(){function t(){e(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={x:0,y:null,yAxisIndex:0,seriesIndex:0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return a(t,[{key:"init",value:function(){return{annotations:{position:"front",yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[A],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,rangeBarOverlap:!0,rangeBarGroupRows:!1,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal"}},bubble:{minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,sorted:!1,offsetX:0,offsetY:0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss"}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),C=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.graphics=new b(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new m(this),this.xAxisAnnotations=new v(this),this.yAxisAnnotations=new w(this),this.pointsAnnotations=new k(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return a(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],n=[i.node,e.node,a.node],o=0;o<3;o++)t.globals.dom.elGraphical.add(r[o]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&n[o].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:n[o],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,n=t.foreColor,o=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,m=t.paddingLeft,v=void 0===m?4:m,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:o||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:n||L.config.chart.foreColor,cssClass:c}),T=L.globals.dom.baseEl.querySelector(b);T&&T.appendChild(P.node);var z=P.bbox();if(s){var I=this.graphics.drawRect(z.x-v,z.y-C,z.width+v+w,z.height+A+C,f,d||"transparent",1,g,p,u);T.insertBefore(I.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,n=t.y,o=void 0===n?0:n,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-annotations":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,o);var p=i.globals.dom.baseEl.querySelector(u);p&&p.appendChild(f.node)}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,n=a,o=n.w,l=o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new S,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=f.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&o.globals.memory.methodsToExec.push({context:n,id:g.id?g.id:f.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=f.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),L=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.opts=null,this.seriesIndex=0}return a(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,n=t.image,o=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(o=i.fill.image.width+1,l=i.fill.image.height):(o=r+1,l=r):(o=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");b.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:o+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",n),b.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:o+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type||"treemap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var n=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(n=e.globals.seriesColors[this.seriesIndex]),"function"==typeof n&&(n=n({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var o=this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(n=t.color);var h=n;if(-1===n.indexOf("rgb")?n.length<9&&(h=f.hexToRgba(n,l)):n.indexOf("rgba")>-1&&(l=f.getOpacityFromRGBA(n)),t.opacity&&(l=t.opacity),"pattern"===o&&(a=this.handlePatternFill(a,n,l,h)),"gradient"===o&&(s=this.handleGradientFill(n,l,this.seriesIndex)),"image"===o){var c=r.fill.image.src,d=t.patternID?t.patternID:"";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber<c.length?c[t.seriesNumber]:c[0]:c,width:t.width?t.width:void 0,height:t.height?t.height:void 0,patternUnits:t.patternUnits,patternID:"pattern".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d)}),i="url(#pattern".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d,")")}else i="gradient"===o?s:"pattern"===o?a:h;return t.solid&&(i=h),i}},{key:"getFillType",value:function(t){var e=this.w;return Array.isArray(e.config.fill.type)?e.config.fill.type[t]:e.config.fill.type}},{key:"getFillColors",value:function(){var t=this.w,e=t.config,i=this.opts,a=[];return t.globals.comboCharts?"line"===t.config.series[this.seriesIndex].type?Array.isArray(t.globals.stroke.colors)?a=t.globals.stroke.colors:a.push(t.globals.stroke.colors):Array.isArray(t.globals.fill.colors)?a=t.globals.fill.colors:a.push(t.globals.fill.colors):"line"===e.chart.type?Array.isArray(t.globals.stroke.colors)?a=t.globals.stroke.colors:a.push(t.globals.stroke.colors):Array.isArray(t.globals.fill.colors)?a=t.globals.fill.colors:a.push(t.globals.fill.colors),void 0!==i.fillColors&&(a=[],Array.isArray(i.fillColors)?a=i.fillColors.slice():a.push(i.fillColors)),a}},{key:"handlePatternFill",value:function(t,e,i,a){var s=this.w.config,r=this.opts,n=new b(this.ctx),o=void 0===s.fill.pattern.strokeWidth?Array.isArray(s.stroke.width)?s.stroke.width[this.seriesIndex]:s.stroke.width:Array.isArray(s.fill.pattern.strokeWidth)?s.fill.pattern.strokeWidth[this.seriesIndex]:s.fill.pattern.strokeWidth,l=e;Array.isArray(s.fill.pattern.style)?t=void 0!==s.fill.pattern.style[r.seriesNumber]?n.drawPattern(s.fill.pattern.style[r.seriesNumber],s.fill.pattern.width,s.fill.pattern.height,l,o,i):a:t=n.drawPattern(s.fill.pattern.style,s.fill.pattern.width,s.fill.pattern.height,l,o,i);return t}},{key:"handleGradientFill",value:function(t,e,i){var a,s=this.w.config,r=this.opts,n=new b(this.ctx),o=new f,l=s.fill.gradient.type,h=t,c=void 0===s.fill.gradient.opacityFrom?e:Array.isArray(s.fill.gradient.opacityFrom)?s.fill.gradient.opacityFrom[i]:s.fill.gradient.opacityFrom;h.indexOf("rgba")>-1&&(c=f.getOpacityFromRGBA(h));var d=void 0===s.fill.gradient.opacityTo?e:Array.isArray(s.fill.gradient.opacityTo)?s.fill.gradient.opacityTo[i]:s.fill.gradient.opacityTo;if(void 0===s.fill.gradient.gradientToColors||0===s.fill.gradient.gradientToColors.length)a="dark"===s.fill.gradient.shade?o.shadeColor(-1*parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?f.rgb2hex(t):t):o.shadeColor(parseFloat(s.fill.gradient.shadeIntensity),t.indexOf("rgb")>-1?f.rgb2hex(t):t);else if(s.fill.gradient.gradientToColors[r.seriesNumber]){var g=s.fill.gradient.gradientToColors[r.seriesNumber];a=g,g.indexOf("rgba")>-1&&(d=f.getOpacityFromRGBA(g))}else a=t;if(s.fill.gradient.inverseColors){var u=h;h=a,a=u}return h.indexOf("rgb")>-1&&(h=f.rgb2hex(h)),a.indexOf("rgb")>-1&&(a=f.rgb2hex(a)),n.drawGradient(l,h,a,c,d,r.size,s.fill.gradient.stops,s.fill.gradient.colorStops,i)}}]),t}(),P=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length<t.globals.series.length+1)for(var e=0;e<=t.globals.series.length;e++)void 0===t.globals.markers.size[e]&&t.globals.markers.size.push(t.globals.markers.size[0])}else t.globals.markers.size=t.config.series.map((function(e){return t.config.markers.size}))}},{key:"plotChartMarkers",value:function(t,e,i,a){var s,r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],n=this.w,o=e,l=t,h=null,c=new b(this.ctx);if((n.globals.markers.size[e]>0||r)&&(h=c.group({class:r?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(n.globals.cuid,")")),Array.isArray(l.x))for(var d=0;d<l.x.length;d++){var g=i;1===i&&0===d&&(g=0),1===i&&1===d&&(g=1);var u="apexcharts-marker";"line"!==n.config.chart.type&&"area"!==n.config.chart.type||n.globals.comboCharts||n.config.tooltip.intersect||(u+=" no-pointer-events");var p=Array.isArray(n.config.markers.size)?n.globals.markers.size[e]>0:n.config.markers.size>0;if(p||r){f.isNumber(l.y[d])?u+=" w".concat(f.randomId()):u="apexcharts-nullpoint";var m=this.getMarkerConfig(u,e,g);n.config.series[o].data[g]&&(n.config.series[o].data[g].fillColor&&(m.pointFillColor=n.config.series[o].data[g].fillColor),n.config.series[o].data[g].strokeColor&&(m.pointStrokeColor=n.config.series[o].data[g].strokeColor)),a&&(m.pSize=a),(s=c.drawMarker(l.x[d],l.y[d],m)).attr("rel",g),s.attr("j",g),s.attr("index",e),s.node.setAttribute("default-marker-size",m.pSize);var v=new x(this.ctx);v.setSelectionFilter(s,e,g),this.addEvents(s),h&&h.add(s)}else void 0===n.globals.pointsArray[e]&&(n.globals.pointsArray[e]=[]),n.globals.pointsArray[e].push([l.x[d],l.y[d]])}return h}},{key:"getMarkerConfig",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.getMarkerStyle(e),r=a.globals.markers.size[e],n=a.config.markers;return null!==i&&n.discrete.length&&n.discrete.map((function(t){t.seriesIndex===e&&t.dataPointIndex===i&&(s.pointStrokeColor=t.strokeColor,s.pointFillColor=t.fillColor,r=t.size)})),{pSize:r,pRadius:n.radius,width:Array.isArray(n.width)?n.width[e]:n.width,height:Array.isArray(n.height)?n.height[e]:n.height,pointStrokeWidth:Array.isArray(n.strokeWidth)?n.strokeWidth[e]:n.strokeWidth,pointStrokeColor:s.pointStrokeColor,pointFillColor:s.pointFillColor,shape:Array.isArray(n.shape)?n.shape[e]:n.shape,class:t,pointStrokeOpacity:Array.isArray(n.strokeOpacity)?n.strokeOpacity[e]:n.strokeOpacity,pointStrokeDashArray:Array.isArray(n.strokeDashArray)?n.strokeDashArray[e]:n.strokeDashArray,pointFillOpacity:Array.isArray(n.fillOpacity)?n.fillOpacity[e]:n.fillOpacity,seriesIndex:e}}},{key:"addEvents",value:function(t){var e=this.w,i=new b(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),T=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return a(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new b(this.ctx),r=i.realIndex,n=i.pointsPos,o=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(n.x))for(var c=0;c<n.x.length;c++){var d=e+1,g=!0;0===e&&0===c&&(d=0),0===e&&1===c&&(d=1);var u=0,f=a.globals.markers.size[r];if(o!==1/0){f=a.globals.seriesZ[r][d]/o;var p=a.config.plotOptions.bubble;p.minBubbleRadius&&f<p.minBubbleRadius&&(f=p.minBubbleRadius),p.maxBubbleRadius&&f>p.maxBubbleRadius&&(f=p.maxBubbleRadius)}a.config.chart.animations.enabled||(u=f);var x=n.x[c],m=n.y[c];if(u=u||0,null!==m&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,m,u,f,r,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,n){var o,l=this.w,h=s,c=new p(this.ctx),d=new x(this.ctx),g=new L(this.ctx),u=new P(this.ctx),f=new b(this.ctx),m=u.getMarkerConfig("apexcharts-marker",h),v=g.fillPath({seriesNumber:s,dataPointIndex:r,patternUnits:"objectBoundingBox",value:l.globals.series[s][n]});if("circle"===m.shape?o=f.drawCircle(i):"square"!==m.shape&&"rect"!==m.shape||(o=f.drawRect(0,0,m.width-m.pointStrokeWidth/2,m.height-m.pointStrokeWidth/2,m.pRadius)),l.config.series[h].data[r]&&l.config.series[h].data[r].fillColor&&(v=l.config.series[h].data[r].fillColor),o.attr({x:t-m.width/2-m.pointStrokeWidth/2,y:e-m.height/2-m.pointStrokeWidth/2,cx:t,cy:e,fill:v,"fill-opacity":m.pointFillOpacity,stroke:m.pointStrokeColor,r:a,"stroke-width":m.pointStrokeWidth,"stroke-dasharray":m.pointStrokeDashArray,"stroke-opacity":m.pointStrokeOpacity}),l.config.chart.dropShadow.enabled){var y=l.config.chart.dropShadow;d.dropShadow(o,y,s)}if(!this.initialAnim||l.globals.dataChanged||l.globals.resized)l.globals.animationEnded=!0;else{var w=l.config.chart.animations.speed;c.animateMarker(o,0,"circle"===m.shape?a:{width:m.width,height:m.height},w,l.globals.easing,(function(){window.setTimeout((function(){c.animationCompleted(o)}),100)}))}if(l.globals.dataChanged&&"circle"===m.shape)if(this.dynamicAnim){var k,A,S,C,T=l.config.chart.animations.dynamicAnimation.speed;null!=(C=l.globals.previousPaths[s]&&l.globals.previousPaths[s][n])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var z=0;z<l.globals.collapsedSeries.length;z++)l.globals.collapsedSeries[z].index===s&&(T=1,a=0);0===t&&0===e&&(a=0),c.animateCircle(o,{cx:k,cy:A,r:S},{cx:t,cy:e,r:a},T,l.globals.easing)}else o.attr({r:a});return o.attr({rel:r,j:r,index:s,"default-marker-size":a}),d.setSelectionFilter(o,s,r),u.addEvents(o),o.node.classList.add("apexcharts-marker"),o}},{key:"centerTextInBubble",value:function(t){var e=this.w;return{y:t+=parseInt(e.config.dataLabels.style.fontSize,10)/4}}}]),t}(),z=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"dataLabelsCorrection",value:function(t,e,i,a,s,r,n){var o=this.w,l=!1,h=new b(this.ctx).getTextRects(i,n),c=h.width,d=h.height;e<0&&(e=0),e>o.globals.gridHeight+d&&(e=o.globals.gridHeight+d/2),void 0===o.globals.dataLabelsRects[a]&&(o.globals.dataLabelsRects[a]=[]),o.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=o.globals.dataLabelsRects[a].length-2,u=void 0!==o.globals.lastDrawnDataLabelsIndexes[a]?o.globals.lastDrawnDataLabelsIndexes[a][o.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==o.globals.dataLabelsRects[a][g]){var f=o.globals.dataLabelsRects[a][u];(t>f.x+f.width+2||e>f.y+f.height+2||t+c<f.x)&&(l=!0)}return(0===s||r)&&(l=!0),{x:t,y:e,textRects:h,drawnextLabel:l}}},{key:"drawDataLabel",value:function(t,e,i){var a=this,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:2,r=this.w,n=new b(this.ctx),o=r.config.dataLabels,l=0,h=0,c=i,d=null;if(!o.enabled||!Array.isArray(t.x))return d;d=n.group({class:"apexcharts-data-labels"});for(var g=0;g<t.x.length;g++)if(l=t.x[g]+o.offsetX,h=t.y[g]+o.offsetY+s,!isNaN(l)){1===i&&0===g&&(c=0),1===i&&1===g&&(c=1);var u=r.globals.series[e][c],f="",p=function(t){return r.config.dataLabels.formatter(t,{ctx:a.ctx,seriesIndex:e,dataPointIndex:c,w:r})};if("bubble"===r.config.chart.type){f=p(u=r.globals.seriesZ[e][c]),h=t.y[g];var x=new T(this.ctx),m=x.centerTextInBubble(h,e,c);h=m.y}else void 0!==u&&(f=p(u));this.plotDataLabelsText({x:l,y:h,text:f,i:e,j:c,parent:d,offsetCorrection:!0,dataLabelsConfig:r.config.dataLabels})}return d}},{key:"plotDataLabelsText",value:function(t){var e=this.w,i=new b(this.ctx),a=t.x,s=t.y,r=t.i,n=t.j,o=t.text,l=t.textAnchor,h=t.fontSize,c=t.parent,d=t.dataLabelsConfig,g=t.color,u=t.alwaysDrawDataLabel,f=t.offsetCorrection;if(!(Array.isArray(e.config.dataLabels.enabledOnSeries)&&e.config.dataLabels.enabledOnSeries.indexOf(r)<0)){var p={x:a,y:s,drawnextLabel:!0};f&&(p=this.dataLabelsCorrection(a,s,o,r,n,u,parseInt(d.style.fontSize,10))),e.globals.zoomed||(a=p.x,s=p.y),p.textRects;var m=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(m=e.globals.dataLabels.style.colors[n]),"function"==typeof m&&(m=m({series:e.globals.series,seriesIndex:r,dataPointIndex:n,w:e})),g&&(m=g);var v=d.offsetX,y=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(v=0,y=0),p.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+v,y:s+y,foreColor:m,textAnchor:l||d.textAnchor,text:o,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new x(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(n)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,n=e.width,o=e.height,l=new b(this.ctx).drawRect(e.x-s,e.y-r/2,n+2*s,o+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new x(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;i<e.length;i++){var a=e[i],s=a.getBBox(),r=null;if(s.width&&s.height&&(r=this.addBackgroundToDataLabel(a,s)),r){a.parentNode.insertBefore(r.node,a);var n=a.getAttribute("fill");t.config.chart.animations.enabled&&!t.globals.resized&&!t.globals.dataChanged?r.animate().attr({fill:n}):r.attr({fill:n}),a.setAttribute("fill",t.config.dataLabels.background.foreColor)}}}},{key:"bringForward",value:function(){for(var t=this.w,e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels"),i=t.globals.dom.baseEl.querySelector(".apexcharts-plot-series:last-child"),a=0;a<e.length;a++)i&&i.insertBefore(e[a],i.nextSibling)}}]),t}(),I=function(){function t(i){e(this,t),this.w=i.w,this.barCtx=i}return a(t,[{key:"handleBarDataLabels",value:function(t){var e=t.x,i=t.y,a=t.y1,s=t.y2,r=t.i,n=t.j,o=t.realIndex,l=t.series,h=t.barHeight,c=t.barWidth,d=t.barYPosition,g=t.visibleSeries,u=t.renderedPath,f=this.w,p=new b(this.barCtx.ctx),x=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[o]:this.barCtx.strokeWidth,m=e+parseFloat(c*g),v=i+parseFloat(h*g);f.globals.isXNumeric&&!f.globals.isBarHorizontal&&(m=e+parseFloat(c*(g+1)),v=i+parseFloat(h*(g+1))-x);var y=e,w=i,k={},A=f.config.dataLabels,S=this.barCtx.barOptions.dataLabels;void 0!==d&&this.barCtx.isTimelineBar&&(v=d,w=d);var C=A.offsetX,L=A.offsetY,P={width:0,height:0};if(f.config.dataLabels.enabled){var T=this.barCtx.series[r][n];P=p.getTextRects(f.globals.yLabelFormatters[0](T),parseFloat(A.style.fontSize))}var z={x:e,y:i,i:r,j:n,renderedPath:u,bcx:m,bcy:v,barHeight:h,barWidth:c,textRects:P,strokeWidth:x,dataLabelsX:y,dataLabelsY:w,barDataLabelsConfig:S,offX:C,offY:L};return k=this.barCtx.isHorizontal?this.calculateBarsDataLabelsPosition(z):this.calculateColumnsDataLabelsPosition(z),u.attr({cy:k.bcy,cx:k.bcx,j:n,val:l[r][n],barHeight:h,barWidth:c}),this.drawCalculatedDataLabels({x:k.dataLabelsX,y:k.dataLabelsY,val:this.barCtx.isTimelineBar?[a,s]:l[r][n],i:o,j:n,barWidth:c,barHeight:h,textRects:P,dataLabelsConfig:A})}},{key:"calculateColumnsDataLabelsPosition",value:function(t){var e,i=this.w,a=t.i,s=t.j,r=t.y,n=t.bcx,o=t.barWidth,l=t.barHeight,h=t.textRects,c=t.dataLabelsY,d=t.barDataLabelsConfig,g=t.strokeWidth,u=t.offX,f=t.offY;l=Math.abs(l);var p="vertical"===i.config.plotOptions.bar.dataLabels.orientation;n-=g/2;var x=i.globals.gridWidth/i.globals.dataPoints;if(e=i.globals.isXNumeric?n-o/2+u:n-x+o/2+u,p){e=e+h.height/2-g/2-2}var b=this.barCtx.series[a][s]<0,m=r;switch(this.barCtx.isReversed&&(m=r-l+(b?2*l:0),r-=l),d.position){case"center":c=p?b?m+l/2+f:m+l/2-f:b?m-l/2+h.height/2+f:m+l/2+h.height/2-f;break;case"bottom":c=p?b?m+l+f:m+l-f:b?m-l+h.height+g+f:m+l-h.height/2+g-f;break;case"top":c=p?b?m+f:m-f:b?m-h.height/2-f:m+h.height+f}return i.config.chart.stacked||(c<0?c=0+g:c+h.height/3>i.globals.gridHeight&&(c=i.globals.gridHeight-g)),{bcx:n,bcy:r,dataLabelsX:e,dataLabelsY:c}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.bcy,n=t.barHeight,o=t.barWidth,l=t.textRects,h=t.dataLabelsX,c=t.strokeWidth,d=t.barDataLabelsConfig,g=t.offX,u=t.offY,f=e.globals.gridHeight/e.globals.dataPoints;o=Math.abs(o);var p=r-(this.barCtx.isTimelineBar?0:f)+n/2+l.height/2+u-3,x=this.barCtx.series[a][s]<0,b=i;switch(this.barCtx.isReversed&&(b=i+o-(x?2*o:0),i=e.globals.gridWidth-o),d.position){case"center":h=x?b+o/2-g:Math.max(l.width/2,b-o/2)+g;break;case"bottom":h=x?b+o-c-Math.round(l.width/2)-g:b-o+c+Math.round(l.width/2)+g;break;case"top":h=x?b-c+Math.round(l.width/2)-g:b-c-Math.round(l.width/2)+g}return e.config.chart.stacked||(h<0?h=h+l.width+c:h+l.width/2>e.globals.gridWidth&&(h=e.globals.gridWidth-l.width-c)),{bcx:i,bcy:r,dataLabelsX:h,dataLabelsY:p}}},{key:"drawCalculatedDataLabels",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.i,r=t.j,o=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(e,", ").concat(i,")"));var u=new z(this.barCtx.ctx),f=new b(this.barCtx.ctx),p=c.formatter,x=null,m=d.globals.collapsedSeriesIndices.indexOf(s)>-1;if(c.enabled&&!m){x=f.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==a&&(v=p(a,{seriesIndex:s,dataPointIndex:r,w:d})),0===a&&d.config.chart.stacked&&(v="");var y=d.globals.series[s][r]<=0,w=d.config.plotOptions.bar.dataLabels.position;if("vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"===w&&(c.textAnchor=y?"end":"start"),"center"===w&&(c.textAnchor="middle"),"bottom"===w&&(c.textAnchor=y?"end":"start")),this.barCtx.isTimelineBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)h<f.getTextRects(v,parseFloat(c.style.fontSize)).width&&(v="");d.config.chart.stacked&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&(this.barCtx.isHorizontal?(h>0&&o.width/1.6>h||h<0&&o.width/1.6<h)&&(v=""):o.height/1.6>l&&(v=""));var k=n({},c);this.barCtx.isHorizontal&&a<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:e,y:i,text:v,i:s,j:r,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}}]),t}(),M=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.legendInactiveClass="legend-mouseover-inactive"}return a(t,[{key:"getAllSeriesEls",value:function(){return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series")}},{key:"getSeriesByName",value:function(t){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(f.escapeString(t),"']"))}},{key:"isSeriesHidden",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute("data:realIndex"),10);return{isHidden:e.classList.contains("apexcharts-series-collapsed"),realIndex:i}}},{key:"addCollapsedClassToSeries",value:function(t,e){var i=this.w;function a(i){for(var a=0;a<i.length;a++)i[a].index===e&&t.node.classList.add("apexcharts-series-collapsed")}a(i.globals.collapsedSeries),a(i.globals.ancillaryCollapsedSeries)}},{key:"toggleSeries",value:function(t){var e=this.isSeriesHidden(t);return this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,e.isHidden),e.isHidden}},{key:"showSeries",value:function(t){var e=this.isSeriesHidden(t);e.isHidden&&this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,!0)}},{key:"hideSeries",value:function(t){var e=this.isSeriesHidden(t);e.isHidden||this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex,!1)}},{key:"resetSeries",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=f.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i<t.length;i++)e.globals.collapsedSeriesIndices.indexOf(i)>-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w,a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,n=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),n=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var o=0;o<a.length;o++)a[o].classList.add(this.legendInactiveClass);null!==r&&(i.globals.axisCharts||r.parentNode.classList.remove(this.legendInactiveClass),r.classList.remove(this.legendInactiveClass),null!==n&&n.classList.remove(this.legendInactiveClass))}else if("mouseout"===t.type)for(var l=0;l<a.length;l++)a[l].classList.remove(this.legendInactiveClass)}},{key:"highlightRangeInSeries",value:function(t,e){var i=this,a=this.w,s=a.globals.dom.baseEl.getElementsByClassName("apexcharts-heatmap-rect"),r=function(t){for(var e=0;e<s.length;e++)s[e].classList[t](i.legendInactiveClass)};if("mousemove"===t.type){var n=parseInt(e.getAttribute("rel"),10)-1;r("add"),function(t){for(var e=0;e<s.length;e++){var a=parseInt(s[e].getAttribute("val"),10);a>=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[n])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc",i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(e,a){var s=!1;return t&&(s="bar"===i.config.series[a].type||"column"===i.config.series[a].type),e.data&&e.data.length>0&&!s?a:-1})),r="asc"===e?0:s.length-1;"asc"===e?r<s.length:r>=0;"asc"===e?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},n=0;n<s.length;n++)if(s[n].hasAttribute("pathTo")){var o=s[n].getAttribute("pathTo");r.paths.push({d:o})}t.globals.previousPaths.push(r)}t.globals.previousPaths=[];["line","area","bar","rangebar","candlestick","radar"].forEach((function(i){for(var a,s=(a=i,t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(a,"-series .apexcharts-series"))),r=0;r<s.length;r++)e(s,r,i)})),this.handlePrevBubbleScatterPaths("bubble"),this.handlePrevBubbleScatterPaths("scatter");var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series"));if(i.length>0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r<i.length;r++)s(r);t.globals.previousPaths.push(a)},s=0;s<i.length;s++)a(s);t.globals.axisCharts||(t.globals.previousPaths=t.globals.series)}},{key:"handlePrevBubbleScatterPaths",value:function(t){var e=this.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t,"-series .apexcharts-series"));if(i.length>0)for(var a=0;a<i.length;a++){for(var s=e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t,"-series .apexcharts-series[data\\:realIndex='").concat(a,"'] circle")),r=[],n=0;n<s.length;n++)r.push({x:s[n].getAttribute("cx"),y:s[n].getAttribute("cy"),r:s[n].getAttribute("r")});e.globals.previousPaths.push(r)}}},{key:"clearPreviousPaths",value:function(){var t=this.w;t.globals.previousPaths=[],t.globals.allSeriesCollapsed=!1}},{key:"handleNoData",value:function(){var t=this.w,e=t.config.noData,i=new b(this.ctx),a=t.globals.svgWidth/2,s=t.globals.svgHeight/2,r="middle";if(t.globals.noData=!0,t.globals.animationEnded=!0,"left"===e.align?(a=10,r="start"):"right"===e.align&&(a=t.globals.svgWidth-10,r="end"),"top"===e.verticalAlign?s=50:"bottom"===e.verticalAlign&&(s=t.globals.svgHeight-50),a+=e.offsetX,s=s+parseInt(e.style.fontSize,10)+2+e.offsetY,void 0!==e.text&&""!==e.text){var n=i.drawText({x:a,y:s,text:e.text,textAnchor:r,fontSize:e.style.fontSize,fontFamily:e.style.fontFamily,foreColor:e.style.color,opacity:1,class:"apexcharts-text-nodata"});t.globals.dom.Paper.add(n)}}},{key:"setNullSeriesToZeroValues",value:function(t){for(var e=this.w,i=0;i<t.length;i++)if(0===t[i].length)for(var a=0;a<t[e.globals.maxValsInArrayIndex].length;a++)t[i].push(0);return t}},{key:"hasAllSeriesEqualX",value:function(){for(var t=!0,e=this.w,i=this.filteredSeriesX(),a=0;a<i.length-1;a++)if(i[a][0]!==i[a+1][0]){t=!1;break}return e.globals.allSeriesHasEqualX=t,t}},{key:"filteredSeriesX",value:function(){var t=this.w.globals.seriesX.map((function(t){return t.length>0?t:[]}));return t}}]),t}(),E=function(){function t(i){e(this,t),this.w=i.w,this.barCtx=i}return a(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i<t.length;i++)if(t[i].length>0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;a<t[i].length;a++)e.globals.seriesX[i][a]>e.globals.minX&&e.globals.seriesX[i][a]<e.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=e.globals.dataPoints;0===this.barCtx.seriesLen&&(this.barCtx.seriesLen=1),this.barCtx.zeroSerieses=[],this.barCtx.radiusOnSeriesNumber=t.length-1,e.globals.comboCharts||this.checkZeroSeries({series:t})}},{key:"initialPositions",value:function(){var t,e,i,a,s,r,n,o,l=this.w,h=l.globals.dataPoints;this.barCtx.isTimelineBar&&(h=l.globals.labels.length);var c=this.barCtx.seriesLen;if(l.config.plotOptions.bar.rangeBarGroupRows&&(c=1),this.barCtx.isHorizontal)s=(i=l.globals.gridHeight/h)/c,l.globals.isXNumeric&&(s=(i=l.globals.gridHeight/this.barCtx.totalItems)/this.barCtx.seriesLen),s=s*parseInt(this.barCtx.barOptions.barHeight,10)/100,o=this.barCtx.baseLineInvertedY+l.globals.padHorizontal+(this.barCtx.isReversed?l.globals.gridWidth:0)-(this.barCtx.isReversed?2*this.barCtx.baseLineInvertedY:0),e=(i-s*this.barCtx.seriesLen)/2;else{if(a=l.globals.gridWidth/this.barCtx.visibleItems,l.config.xaxis.convertedCatToNumeric&&(a=l.globals.gridWidth/l.globals.dataPoints),r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100,l.globals.isXNumeric){var d=this.barCtx.xRatio;l.config.xaxis.convertedCatToNumeric&&(d=this.barCtx.initialXRatio),l.globals.minXDiff&&.5!==l.globals.minXDiff&&l.globals.minXDiff/d>0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}n=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:n,zeroW:o}}},{key:"getPathFillColor",value:function(t,e,i,a){var s=this.w,r=new L(this.barCtx.ctx),n=null,o=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(n=a.color)}));return s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(n=s.config.series[e].data[i].fillColor),r.fillPath({seriesNumber:this.barCtx.barOptions.distributed?o:a,dataPointIndex:i,color:n,value:t[e][i]})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,n=t.y2,o=t.elSeries,l=this.w,h=new b(this.barCtx.ctx),c=new M(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e-=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==n?n:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);o.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e=t.barWidth,i=t.barXPosition,a=t.yRatio,s=t.y1,r=t.y2,n=t.strokeWidth,o=t.series,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new b(this.barCtx.ctx);(n=Array.isArray(n)?n[l]:n)||(n=0);var u={barWidth:e,strokeWidth:n,yRatio:a,barXPosition:i,y1:s,y2:r},f=this.getRoundedBars(d,u,o,h,c),p=i,x=i+e,m=g.move(p,s),v=g.move(p,s),y=g.line(x-n,s);return d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),m=m+g.line(p,f.y2)+f.pathWithRadius+g.line(x-n,f.y2)+y+y+"z",v=v+g.line(p,s)+y+y+y+y+y+g.line(p,s),d.config.chart.stacked&&(this.barCtx.yArrj.push(f.y2),this.barCtx.yArrjF.push(Math.abs(s-f.y2)),this.barCtx.yArrjVal.push(this.barCtx.series[h][c])),{pathTo:m,pathFrom:v}}},{key:"getBarpaths",value:function(t){var e=t.barYPosition,i=t.barHeight,a=t.x1,s=t.x2,r=t.strokeWidth,n=t.series,o=t.realIndex,l=t.i,h=t.j,c=t.w,d=new b(this.barCtx.ctx);(r=Array.isArray(r)?r[o]:r)||(r=0);var g={barHeight:i,strokeWidth:r,barYPosition:e,x2:s,x1:a},u=this.getRoundedBars(c,g,n,l,h),f=d.move(a,e),p=d.move(a,e);c.globals.previousPaths.length>0&&(p=this.barCtx.getPreviousPath(o,h,!1));var x=e,m=e+i,v=d.line(a,m-r);return f=f+d.line(u.x2,x)+u.pathWithRadius+d.line(u.x2,m-r)+v+v+"z",p=p+d.line(a,x)+v+v+v+v+v+d.line(a,x),c.config.chart.stacked&&(this.barCtx.xArrj.push(u.x2),this.barCtx.xArrjF.push(Math.abs(a-u.x2)),this.barCtx.xArrjVal.push(this.barCtx.series[l][h])),{pathTo:f,pathFrom:p}}},{key:"getRoundedBars",value:function(t,e,i,a,s){var r=new b(this.barCtx.ctx),n=t.config.plotOptions.bar.borderRadius;if(t.config.chart.stacked&&i.length>1&&a!==this.barCtx.radiusOnSeriesNumber&&(n=0),this.barCtx.isHorizontal){var o="",l=e.x2;if(Math.abs(e.x1-e.x2)<n&&(n=Math.abs(e.x1-e.x2)),void 0!==i[a][s]||null!==i[a][s]){var h=this.barCtx.isReversed?i[a][s]>0:i[a][s]<0;h&&(n*=-1),l-=n,o=r.quadraticCurve(l+n,e.barYPosition,l+n,e.barYPosition+(h?-1*n:n))+r.line(l+n,e.barYPosition+e.barHeight-e.strokeWidth-(h?-1*n:n))+r.quadraticCurve(l+n,e.barYPosition+e.barHeight-e.strokeWidth,l,e.barYPosition+e.barHeight-e.strokeWidth)}return{pathWithRadius:o,x2:l}}var c="",d=e.y2;if(Math.abs(e.y1-e.y2)<n&&(n=Math.abs(e.y1-e.y2)),void 0!==i[a][s]||null!==i[a][s]){var g=i[a][s]<0;g&&(n*=-1),d+=n,c=r.quadraticCurve(e.barXPosition,d-n,e.barXPosition+(g?-1*n:n),d-n)+r.line(e.barXPosition+e.barWidth-e.strokeWidth-(g?-1*n:n),d-n)+r.quadraticCurve(e.barXPosition+e.barWidth-e.strokeWidth,d-n,e.barXPosition+e.barWidth-e.strokeWidth,d)}return{pathWithRadius:c,y2:d}}},{key:"checkZeroSeries",value:function(t){for(var e=t.series,i=this.w,a=0;a<e.length;a++){for(var s=0,r=0;r<e[i.globals.maxValsInArrayIndex].length;r++)s+=e[a][r];0===s&&this.barCtx.zeroSerieses.push(a)}for(var n=e.length-1;n>=0;n--)this.barCtx.zeroSerieses.indexOf(n)>-1&&n===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var o=e.length-1;o>=0;o--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}}]),t}(),X=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isTimelineBar="datetime"===s.config.xaxis.type&&s.globals.seriesRangeBarTimeline.length,this.xyRatios=a,null!==this.xyRatios&&(this.xRatio=a.xRatio,this.initialXRatio=a.initialXRatio,this.yRatio=a.yRatio,this.invertedXRatio=a.invertedXRatio,this.invertedYRatio=a.invertedYRatio,this.baseLineY=a.baseLineY,this.baseLineInvertedY=a.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.barHelpers=new E(this)}return a(t,[{key:"draw",value:function(t,e){var i=this.w,a=new b(this.ctx),s=new y(this.ctx,i);t=s.getLogSeries(t),this.series=t,this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var r=a.group({class:"apexcharts-bar-series apexcharts-plot-series"});i.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var o=0,l=0;o<t.length;o++,l++){var h,c,d,g,u=void 0,p=void 0,x=[],m=[],v=i.globals.comboCharts?e[o]:o,w=a.group({class:"apexcharts-series",rel:o+1,seriesName:f.escapeString(i.globals.seriesNames[v]),"data:realIndex":v});this.ctx.series.addCollapsedClassToSeries(w,v),t[o].length>0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||m.push(u+A/2);for(var C=a.group({class:"apexcharts-datalabels","data:realIndex":v}),L=0;L<i.globals.dataPoints;L++){var P=this.barHelpers.getStrokeWidth(o,L,v),T=null,z={indexes:{i:o,j:L,realIndex:v,bc:l},x:u,y:p,strokeWidth:P,elSeries:w};this.isHorizontal?(T=this.drawBarPaths(n(n({},z),{},{barHeight:k,zeroW:g,yDivision:c})),A=this.series[o][L]/this.invertedYRatio):(T=this.drawColumnPaths(n(n({},z),{},{xDivision:h,barWidth:A,zeroH:d})),k=this.series[o][L]/this.yRatio[this.yaxisIndex]),p=T.y,u=T.x,L>0&&m.push(u+A/2),x.push(p);var I=this.barHelpers.getPathFillColor(t,o,L,v);this.renderSeries({realIndex:v,pathFill:I,j:L,i:o,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:P,elSeries:w,x:u,y:p,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:C,visibleSeries:this.visibleI,type:"bar"})}i.globals.seriesXvalues[v]=m,i.globals.seriesYvalues[v]=x,r.add(w)}return r}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,n=t.pathFrom,o=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,g=t.y1,u=t.y2,f=t.series,p=t.barHeight,m=t.barWidth,v=t.barYPosition,y=t.elDataLabelsWrap,w=t.visibleSeries,k=t.type,A=this.w,S=new b(this.ctx);a||(a=this.barOptions.distributed?A.globals.stroke.colors[s]:A.globals.stroke.colors[e]),A.config.series[r].data[s]&&A.config.series[r].data[s].strokeColor&&(a=A.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var C=s/A.config.chart.animations.animateGradually.delay*(A.config.chart.animations.speed/A.globals.dataPoints)/2.4,L=S.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:o,stroke:a,strokeWidth:l,strokeLineCap:A.config.stroke.lineCap,fill:i,animationDelay:C,initialSpeed:A.config.chart.animations.speed,dataChangeSpeed:A.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(k,"-area")});L.attr("clip-path","url(#gridRectMask".concat(A.globals.cuid,")")),void 0!==g&&void 0!==u&&(L.attr("data-range-y1",g),L.attr("data-range-y2",u)),new x(this.ctx).setSelectionFilter(L,e,s),h.add(L);var P=new I(this).handleBarDataLabels({x:c,y:d,y1:g,y2:u,i:r,j:s,series:f,realIndex:e,barHeight:p,barWidth:m,barYPosition:v,renderedPath:L,visibleSeries:w});return null!==P&&y.add(P),h.add(y),h}},{key:"drawBarPaths",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.zeroW,r=t.x,n=t.y,o=t.yDivision,l=t.elSeries,h=this.w,c=e.i,d=e.j;h.globals.isXNumeric&&(n=(h.globals.seriesX[c][d]-h.globals.minX)/this.invertedXRatio-i);var g=n+i*this.visibleI;r=void 0===this.series[c][d]||null===this.series[c][d]?s:s+this.series[c][d]/this.invertedYRatio-2*(this.isReversed?this.series[c][d]/this.invertedYRatio:0);var u=this.barHelpers.getBarpaths({barYPosition:g,barHeight:i,x1:s,x2:r,strokeWidth:a,series:this.series,realIndex:e.realIndex,i:c,j:d,w:h});return h.globals.isXNumeric||(n+=o),this.barHelpers.barBackground({j:d,i:c,y1:g-i*this.visibleI,y2:i*this.seriesLen,elSeries:l}),{pathTo:u.pathTo,pathFrom:u.pathFrom,x:r,y:n,barYPosition:g}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,n=t.zeroH,o=t.strokeWidth,l=t.elSeries,h=this.w,c=e.realIndex,d=e.i,g=e.j,u=e.bc;if(h.globals.isXNumeric){var f=c;h.globals.seriesX[c].length||(f=h.globals.maxValsInArrayIndex),i=(h.globals.seriesX[f][g]-h.globals.minX)/this.xRatio-r*this.seriesLen/2}var p=i+r*this.visibleI;a=void 0===this.series[d][g]||null===this.series[d][g]?n:n-this.series[d][g]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[d][g]/this.yRatio[this.yaxisIndex]:0);var x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:r,y1:n,y2:a,strokeWidth:o,series:this.series,realIndex:e.realIndex,i:d,j:g,w:h});return h.globals.isXNumeric||(i+=s),this.barHelpers.barBackground({bc:u,j:g,i:d,x1:p-o/2-r*this.visibleI,x2:r*this.seriesLen+o/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:i,y:a,barXPosition:p}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s<a.globals.previousPaths.length;s++){var r=a.globals.previousPaths[s];r.paths&&r.paths.length>0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),Y=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return a(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getTimeStamp",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:"getDate",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(g(i.months)),r=["\x01"].concat(g(i.shortMonths)),n=["\x02"].concat(g(i.days)),o=["\x03"].concat(g(i.shortDays));function l(t,e){var i=t+"";for(e=e||2;i.length<e;)i="0"+i;return i}var h=a?t.getUTCFullYear():t.getFullYear();e=(e=(e=e.replace(/(^|[^\\])yyyy+/g,"$1"+h)).replace(/(^|[^\\])yy/g,"$1"+h.toString().substr(2,2))).replace(/(^|[^\\])y/g,"$1"+h);var c=(a?t.getUTCMonth():t.getMonth())+1;e=(e=(e=(e=e.replace(/(^|[^\\])MMMM+/g,"$1"+s[0])).replace(/(^|[^\\])MMM/g,"$1"+r[0])).replace(/(^|[^\\])MM/g,"$1"+l(c))).replace(/(^|[^\\])M/g,"$1"+c);var d=a?t.getUTCDate():t.getDate();e=(e=(e=(e=e.replace(/(^|[^\\])dddd+/g,"$1"+n[0])).replace(/(^|[^\\])ddd/g,"$1"+o[0])).replace(/(^|[^\\])dd/g,"$1"+l(d))).replace(/(^|[^\\])d/g,"$1"+d);var u=a?t.getUTCHours():t.getHours(),f=u>12?u-12:0===u?12:u;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(u))).replace(/(^|[^\\])H/g,"$1"+u)).replace(/(^|[^\\])hh+/g,"$1"+l(f))).replace(/(^|[^\\])h/g,"$1"+f);var p=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(p))).replace(/(^|[^\\])m/g,"$1"+p);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var m=u<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+m)).replace(/(^|[^\\])T/g,"$1"+m.charAt(0));var v=m.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+v)).replace(/(^|[^\\])t/g,"$1"+v.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),n=this.formatDate(s,"yyyy MM dd HH mm ss").split(" "),o=this.formatDate(r,"yyyy MM dd HH mm ss").split(" ");return{minSecond:parseInt(n[5],10),maxSecond:parseInt(o[5],10),minMinute:parseInt(n[4],10),maxMinute:parseInt(o[4],10),minHour:parseInt(n[3],10),maxHour:parseInt(o[3],10),minDate:parseInt(n[2],10),maxDate:parseInt(o[2],10),minMonth:parseInt(n[1],10)-1,maxMonth:parseInt(o[1],10)-1,minYear:parseInt(n[0],10),maxYear:parseInt(o[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=f.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),F=function(t){o(s,t);var i=d(s);function s(){return e(this,s),i.apply(this,arguments)}return a(s,[{key:"draw",value:function(t,e){var i=this.w,a=new b(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=i.globals.seriesRangeStart,this.seriesRangeEnd=i.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var s=a.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),r=0;r<t.length;r++){var o,l,h,c=void 0,d=void 0,g=void 0,u=i.globals.comboCharts?e[r]:r,p=a.group({class:"apexcharts-series",seriesName:f.escapeString(i.globals.seriesNames[u]),rel:r+1,"data:realIndex":u});t[r].length>0&&(this.visibleI=this.visibleI+1);var x=0,m=0;this.yRatio.length>1&&(this.yaxisIndex=u);var v=this.barHelpers.initialPositions();d=v.y,h=v.zeroW,c=v.x,m=v.barWidth,o=v.xDivision,l=v.zeroH;for(var y=a.group({class:"apexcharts-datalabels","data:realIndex":u}),w=0;w<i.globals.dataPoints;w++){var k=this.barHelpers.getStrokeWidth(r,w,u),A=this.seriesRangeStart[r][w],S=this.seriesRangeEnd[r][w],C=null,L=null,P={x:c,y:d,strokeWidth:k,elSeries:p};if(g=v.yDivision,x=v.barHeight,this.isHorizontal){L=d+x*this.visibleI;var T=this.seriesLen;i.config.plotOptions.bar.rangeBarGroupRows&&(T=1);var z=(g-x*T)/2;if(void 0===i.config.series[r].data[w])break;if(this.isTimelineBar&&i.config.series[r].data[w].x){var I=this.detectOverlappingBars({i:r,j:w,barYPosition:L,srty:z,barHeight:x,yDivision:g,initPositions:v});x=I.barHeight,L=I.barYPosition}m=(C=this.drawRangeBarPaths(n({indexes:{i:r,j:w,realIndex:u},barHeight:x,barYPosition:L,zeroW:h,yDivision:g,y1:A,y2:S},P))).barWidth}else x=(C=this.drawRangeColumnPaths(n({indexes:{i:r,j:w,realIndex:u},zeroH:l,barWidth:m,xDivision:o},P))).barHeight;d=C.y,c=C.x;var M=this.barHelpers.getPathFillColor(t,r,w,u),E=i.globals.stroke.colors[u];this.renderSeries({realIndex:u,pathFill:M,lineFill:E,j:w,i:r,x:c,y:d,y1:A,y2:S,pathFrom:C.pathFrom,pathTo:C.pathTo,strokeWidth:k,elSeries:p,series:t,barHeight:x,barYPosition:L,barWidth:m,elDataLabelsWrap:y,visibleSeries:this.visibleI,type:"rangebar"})}s.add(p)}return s}},{key:"detectOverlappingBars",value:function(t){var e=t.i,i=t.j,a=t.barYPosition,s=t.srty,r=t.barHeight,n=t.yDivision,o=t.initPositions,l=this.w,h=[],c=l.config.series[e].data[i].rangeName,d=l.config.series[e].data[i].x,g=l.globals.labels.indexOf(d),u=l.globals.seriesRangeBarTimeline[e].findIndex((function(t){return t.x===d&&t.overlaps.length>0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+n*g:s+r*this.visibleI+n*g,u>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(h=l.globals.seriesRangeBarTimeline[e][u].overlaps).indexOf(c)>-1&&(a=(r=o.barHeight/h.length)*this.visibleI+n*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+h.indexOf(c))+n*g),{barYPosition:a,barHeight:r}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=(t.strokeWidth,t.xDivision),s=t.barWidth,r=t.zeroH,n=this.w,o=e.i,l=e.j,h=this.yRatio[this.yaxisIndex],c=e.realIndex,d=this.getRangeValue(c,l),g=Math.min(d.start,d.end),u=Math.max(d.start,d.end);n.globals.isXNumeric&&(i=(n.globals.seriesX[o][l]-n.globals.minX)/this.xRatio-s/2);var f=i+s*this.visibleI;void 0===this.series[o][l]||null===this.series[o][l]?g=r:(g=r-g/h,u=r-u/h);var p=Math.abs(u-g),x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:s,y1:g,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:c,j:l,w:n});return n.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:p,x:i,y:u,barXPosition:f}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,n=t.barHeight,o=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:o,barHeight:n,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}},{key:"getTooltipValues",value:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.y1,r=t.y2,n=t.w,o=n.globals.seriesRangeStart[i][a],l=n.globals.seriesRangeEnd[i][a],h=n.globals.labels[a],c=n.config.series[i].name?n.config.series[i].name:"",d=n.config.tooltip.y.formatter,g=n.config.tooltip.y.title.formatter,u={w:n,seriesIndex:i,dataPointIndex:a};"function"==typeof g&&(c=g(c,u)),Number.isFinite(s)&&Number.isFinite(r)&&(o=s,l=r,n.config.series[i].data[a].x&&(h=n.config.series[i].data[a].x+":"),"function"==typeof d&&(h=d(h,u)));var f="",p="",x=n.globals.colors[i];if(void 0===n.config.tooltip.x.formatter)if("datetime"===n.config.xaxis.type){var b=new Y(e);f=b.formatDate(b.getDate(o),n.config.tooltip.x.format),p=b.formatDate(b.getDate(l),n.config.tooltip.x.format)}else f=o,p=l;else f=n.config.tooltip.x.formatter(o),p=n.config.tooltip.x.formatter(l);return{start:o,end:l,startVal:f,endVal:p,ylabel:h,color:x,seriesName:c}}},{key:"buildCustomTooltipHTML",value:function(t){var e=t.color,i=t.seriesName;return'<div class="apexcharts-tooltip-rangebar"><div> <span class="series-name" style="color: '+e+'">'+(i||"")+'</span></div><div> <span class="category">'+t.ylabel+' </span> <span class="value start-value">'+t.start+'</span> <span class="separator">-</span> <span class="value end-value">'+t.end+"</span></div></div>"}}]),s}(X),R=function(){function t(i){e(this,t),this.opts=i}return a(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return f.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-r},background:{enabled:!1},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=new F(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,n=i.startVal,o=i.endVal;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:n,end:o})}(t):function(t){var e=new F(t.ctx,null),i=e.getTooltipValues(t),a=i.color,s=i.seriesName,r=i.ylabel,n=i.start,o=i.end;return e.buildCustomTooltipHTML({color:a,seriesName:s,ylabel:r,start:n,end:o})}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"brush",value:function(t){return f.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return f.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return f.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],n=t.globals.seriesCandleH[e][i],o=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'<div class="apexcharts-custom-tooltip">\n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": <strong>").concat(t.globals.series[e][i],"</strong>\n </div>"):'<div class="apexcharts-tooltip-box apexcharts-tooltip-'.concat(t.config.chart.type,'">')+"<div>".concat(a[0],': <span class="value">')+r+"</span></div>"+"<div>".concat(a[1],': <span class="value">')+n+"</span></div>"+(o?"<div>".concat(a[2],': <span class="value">')+o+"</span></div>":"")+"<div>".concat(a[3],': <span class="value">')+l+"</span></div>"+"<div>".concat(a[4],': <span class="value">')+h+"</span></div></div>"}}]),t}(),D=function(){function i(t){e(this,i),this.opts=t}return a(i,[{key:"init",value:function(e){var i=e.responsiveOverride,a=this.opts,s=new S,r=new R(a);this.chartType=a.chart.type,"histogram"===this.chartType&&(a.chart.type="bar",a=f.extend({plotOptions:{bar:{columnWidth:"99.99%"}}},a)),a=this.extendYAxis(a),a=this.extendAnnotations(a);var n=s.init(),o={};if(a&&"object"===t(a)){var l={};l=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","histogram","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},i||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),o=f.extend(n,l)}var h=f.extend(o,window.Apex);return n=f.extend(h,a),n=this.handleUserInputErrors(n)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a=new R(i),s="bar"===t&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,n="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,o=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!n||"between"===o||(i=a.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new S;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=f.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[f.extend(i.yAxis,t.yaxis)]:t.yaxis=f.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=f.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new S;return t.annotations.yaxis=f.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new S;return t.annotations.xaxis=f.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new S;return t.annotations.points=f.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(console.warn('crosshairs.width = "barWidth" is only supported in single series, not in a multi-series barChart.'),e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e.chart.group&&0===e.yaxis[0].labels.minWidth&&console.warn("It looks like you have multiple charts in synchronization. You must provide yaxis.labels.minWidth which must be EQUAL for all grouped charts to prevent incorrect behaviour."),Array.isArray(e.stroke.width)&&"line"!==e.chart.type&&"area"!==e.chart.type&&(console.warn("stroke.width option accepts array only for line and area charts. Reverted back to Number"),e.stroke.width=e.stroke.width[0]),e}}]),i}(),H=function(){function t(){e(this,t)}return a(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRangeBarTimeline=[],t.seriesPercent=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.xaxisLabelsCount=0,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=f.extend({},t),e.initialSeries=f.clone(t.series),e.lastXAxis=f.clone(e.initialConfig.xaxis),e.lastYAxis=f.clone(e.initialConfig.yaxis),e}}]),t}(),O=function(){function t(i){e(this,t),this.opts=i}return a(t,[{key:"init",value:function(){var t=new D(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new H).init(t)}}}]),t}(),N=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.coreUtils=new y(this.ctx)}return a(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new M(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new M(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type;i.xaxis.sorted&&("datetime"===i.xaxis.type?t[e].data.sort((function(t,e){return new Date(t[0]).getTime()-new Date(e[0]).getTime()})):"numeric"===i.xaxis.type&&t[e].data.sort((function(t,e){return t[0]-e[0]})));for(var r=0;r<t[e].data.length;r++)if(void 0!==t[e].data[r][1]&&(Array.isArray(t[e].data[r][1])&&4===t[e].data[r][1].length&&!s?this.twoDSeries.push(f.parseNumber(t[e].data[r][1][3])):t[e].data[r].length>=5?this.twoDSeries.push(f.parseNumber(t[e].data[r][4])):this.twoDSeries.push(f.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var n=new Date(t[e].data[r][0]);n=new Date(n).getTime(),this.twoDSeriesX.push(n)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var o=0;o<t[e].data.length;o++)void 0!==t[e].data[o][2]&&(this.threeDSeries.push(t[e].data[o][2]),a.isDataXYZ=!0)}},{key:"handleFormatXY",value:function(t,e){var i=this.w.config,a=this.w.globals,s=new Y(this.ctx),r=e;a.collapsedSeriesIndices.indexOf(e)>-1&&(r=this.activeSeriesIndex),i.xaxis.sorted&&("datetime"===i.xaxis.type?t[e].data.sort((function(t,e){return new Date(t.x).getTime()-new Date(e.x).getTime()})):"numeric"===i.xaxis.type&&t[e].data.sort((function(t,e){return t.x-e.x})));for(var n=0;n<t[e].data.length;n++)void 0!==t[e].data[n].y&&(Array.isArray(t[e].data[n].y)?this.twoDSeries.push(f.parseNumber(t[e].data[n].y[t[e].data[n].y.length-1])):this.twoDSeries.push(f.parseNumber(t[e].data[n].y)));for(var o=0;o<t[r].data.length;o++){var l="string"==typeof t[r].data[o].x,h=Array.isArray(t[r].data[o].x),c=!h&&!!s.isValidDate(t[r].data[o].x.toString());if(l||c)if(l||i.xaxis.convertedCatToNumeric){var d=a.isBarHorizontal&&a.isRangeData;"datetime"!==i.xaxis.type||d?(this.fallbackToCategory=!0,this.twoDSeriesX.push(t[r].data[o].x)):this.twoDSeriesX.push(s.parseDate(t[r].data[o].x))}else"datetime"===i.xaxis.type?this.twoDSeriesX.push(s.parseDate(t[r].data[o].x.toString())):(a.dataFormatXNumeric=!0,a.isXNumeric=!0,this.twoDSeriesX.push(parseFloat(t[r].data[o].x)));else h?(this.fallbackToCategory=!0,this.twoDSeriesX.push(t[r].data[o].x)):(a.isXNumeric=!0,a.dataFormatXNumeric=!0,this.twoDSeriesX.push(t[r].data[o].x))}if(t[e].data[0]&&void 0!==t[e].data[0].z){for(var g=0;g<t[e].data.length;g++)this.threeDSeries.push(t[e].data[g].z);a.isDataXYZ=!0}}},{key:"handleRangeData",value:function(t,e){var i=this.w.config,a=this.w.globals,s={};return this.isFormat2DArray()?s=this.handleRangeDataFormat("array",t,e):this.isFormatXY()&&(s=this.handleRangeDataFormat("xy",t,e)),a.seriesRangeStart.push(s.start),a.seriesRangeEnd.push(s.end),"datetime"===i.xaxis.type&&a.seriesRangeBarTimeline.push(s.rangeUniques),a.seriesRangeBarTimeline.forEach((function(t,e){t&&t.forEach((function(t,e){t.y.forEach((function(e,i){for(var a=0;a<t.y.length;a++)if(i!==a){var s=e.y1,r=e.y2,n=t.y[a].y1;s<=t.y[a].y2&&n<=r&&(t.overlaps.indexOf(e.rangeName)<0&&t.overlaps.push(e.rangeName),t.overlaps.indexOf(t.y[a].rangeName)<0&&t.overlaps.push(t.y[a].rangeName))}}))}))})),s}},{key:"handleCandleStickBoxData",value:function(t,e){var i=this.w.globals,a={};return this.isFormat2DArray()?a=this.handleCandleStickBoxDataFormat("array",t,e):this.isFormatXY()&&(a=this.handleCandleStickBoxDataFormat("xy",t,e)),i.seriesCandleO[e]=a.o,i.seriesCandleH[e]=a.h,i.seriesCandleM[e]=a.m,i.seriesCandleL[e]=a.l,i.seriesCandleC[e]=a.c,a}},{key:"handleRangeDataFormat",value:function(t,e,i){var a=[],s=[],r=e[i].data.filter((function(t,e,i){return e===i.findIndex((function(e){return e.x===t.x}))})).map((function(t,e){return{x:t.x,overlaps:[],y:[]}})),n="Please provide [Start, End] values in valid format. Read more https://apexcharts.com/docs/series/#rangecharts",o=new M(this.ctx).getActiveConfigSeriesIndex();if("array"===t){if(2!==e[o].data[0][1].length)throw new Error(n);for(var l=0;l<e[i].data.length;l++)a.push(e[i].data[l][1][0]),s.push(e[i].data[l][1][1])}else if("xy"===t){if(2!==e[o].data[0].y.length)throw new Error(n);for(var h=function(t){var n=f.randomId(),o=e[i].data[t].x,l={y1:e[i].data[t].y[0],y2:e[i].data[t].y[1],rangeName:n};e[i].data[t].rangeName=n;var h=r.findIndex((function(t){return t.x===o}));r[h].y.push(l),a.push(l.y1),s.push(l.y2)},c=0;c<e[i].data.length;c++)h(c)}return{start:a,end:s,rangeUniques:r}}},{key:"handleCandleStickBoxDataFormat",value:function(t,e,i){var a=this.w,s="boxPlot"===a.config.chart.type||"boxPlot"===a.config.series[i].type,r=[],n=[],o=[],l=[],h=[];if("array"===t)if(s&&6===e[i].data[0].length||!s&&5===e[i].data[0].length)for(var c=0;c<e[i].data.length;c++)r.push(e[i].data[c][1]),n.push(e[i].data[c][2]),s?(o.push(e[i].data[c][3]),l.push(e[i].data[c][4]),h.push(e[i].data[c][5])):(l.push(e[i].data[c][3]),h.push(e[i].data[c][4]));else for(var d=0;d<e[i].data.length;d++)Array.isArray(e[i].data[d][1])&&(r.push(e[i].data[d][1][0]),n.push(e[i].data[d][1][1]),s?(o.push(e[i].data[d][1][2]),l.push(e[i].data[d][1][3]),h.push(e[i].data[d][1][4])):(l.push(e[i].data[d][1][2]),h.push(e[i].data[d][1][3])));else if("xy"===t)for(var g=0;g<e[i].data.length;g++)Array.isArray(e[i].data[g].y)&&(r.push(e[i].data[g].y[0]),n.push(e[i].data[g].y[1]),s?(o.push(e[i].data[g].y[2]),l.push(e[i].data[g].y[3]),h.push(e[i].data[g].y[4])):(l.push(e[i].data[g].y[2]),h.push(e[i].data[g].y[3])));return{o:r,h:n,m:o,l:l,c:h}}},{key:"parseDataAxisCharts",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new Y(i),n=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isTimelineBar="rangeBar"===a.chart.type&&"datetime"===a.xaxis.type;for(var o=function(){for(var t=0;t<n.length;t++)if("string"==typeof n[t]){if(!r.isValidDate(n[t]))throw new Error("You have provided invalid Date format. Please provide a valid JavaScript Date");e.twoDSeriesX.push(r.parseDate(n[t]))}else e.twoDSeriesX.push(n[t])},l=0;l<t.length;l++){if(this.twoDSeries=[],this.twoDSeriesX=[],this.threeDSeries=[],void 0===t[l].data)return void console.error("It is a possibility that you may have not included 'data' property in series.");if("rangeBar"!==a.chart.type&&"rangeArea"!==a.chart.type&&"rangeBar"!==t[l].type&&"rangeArea"!==t[l].type||(s.isRangeData=!0,this.handleRangeData(t,l)),this.isMultiFormat())this.isFormat2DArray()?this.handleFormat2DArray(t,l):this.isFormatXY()&&this.handleFormatXY(t,l),"candlestick"!==a.chart.type&&"candlestick"!==t[l].type&&"boxPlot"!==a.chart.type&&"boxPlot"!==t[l].type||this.handleCandleStickBoxData(t,l),s.series.push(this.twoDSeries),s.labels.push(this.twoDSeriesX),s.seriesX.push(this.twoDSeriesX),l!==this.activeSeriesIndex||this.fallbackToCategory||(s.isXNumeric=!0);else{"datetime"===a.xaxis.type?(s.isXNumeric=!0,o(),s.seriesX.push(this.twoDSeriesX)):"numeric"===a.xaxis.type&&(s.isXNumeric=!0,n.length>0&&(this.twoDSeriesX=n,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return f.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push("series-"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a<e.series.length;a++)void 0===e.seriesNames[a]&&e.seriesNames.push("series-"+(a+1));return this.w}},{key:"handleExternalLabelsData",value:function(t){var e=this.w.config,i=this.w.globals;if(e.xaxis.categories.length>0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRangeBarTimeline.length&&(i.seriesRangeBarTimeline.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new R(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)for(var s=0;s<e.series[e.maxValsInArrayIndex].length;s++)a.push(s+1);e.seriesX=[];for(var r=0;r<t.length;r++)e.seriesX.push(a);e.isXNumeric=!0}if(0===a.length){a=e.axisCharts?[]:e.series.map((function(t,e){return e+1}));for(var n=0;n<t.length;n++)e.seriesX.push(a)}e.labels=a,i.xaxis.convertedCatToNumeric&&(e.categoryLabels=a.map((function(t){return i.xaxis.labels.formatter(t)}))),e.noLabelsProvided=!0}},{key:"parseData",value:function(t){var e=this.w,i=e.config,a=e.globals;if(this.excludeCollapsedSeriesInYAxis(),this.fallbackToCategory=!1,this.ctx.core.resetGlobals(),this.ctx.core.isMultipleY(),a.axisCharts?this.parseDataAxisCharts(t):this.parseDataNonAxisCharts(t),this.coreUtils.getLargestSeries(),"bar"===i.chart.type&&i.chart.stacked){var s=new M(this.ctx);a.series=s.setNullSeriesToZeroValues(a.series)}this.coreUtils.getSeriesTotals(),a.axisCharts&&this.coreUtils.getStackedSeriesTotals(),this.coreUtils.getPercentSeries(),a.dataFormatXNumeric||a.isXNumeric&&("numeric"!==i.xaxis.type||0!==i.labels.length||0!==i.xaxis.categories.length)||this.handleExternalLabelsData(t);for(var r=this.coreUtils.getCategoryLabels(a.labels),n=0;n<r.length;n++)if(Array.isArray(r[n])){a.isMultiLineX=!0;break}}},{key:"excludeCollapsedSeriesInYAxis",value:function(){var t=this,e=this.w;e.globals.ignoreYAxisIndexes=e.globals.collapsedSeries.map((function(i,a){if(t.w.globals.isMultipleYAxis&&!e.config.chart.stacked)return i.index}))}}]),t}(),W=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.tooltipKeyFormat="dd MMM"}return a(t,[{key:"xLabelFormat",value:function(t,e,i,a){var s=this.w;if("datetime"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new Y(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:"defaultGeneralFormatter",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:"defaultYFormatter",value:function(t,e,i){var a=this.w;return f.isNumber(t)&&(t=0!==a.globals.yValueDecimal?t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?t.toFixed(1):t.toFixed(0)),t}},{key:"setLabelFormatters",value:function(){var t=this,e=this.w;return e.globals.xLabelFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(f.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&"numeric"===e.config.xaxis.type&&e.globals.dataPoints<50)return t.toFixed(1);if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),B=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getLabel",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",n=this.w,o=void 0===t[a]?"":t[a],l=o,h=n.globals.xLabelFormatter,c=n.config.xaxis.labels.formatter,d=!1,g=new W(this.ctx),u=o;l=g.xLabelFormat(h,o,u,{i:a,dateFormatter:new Y(this.ctx).formatDate,w:n}),void 0!==c&&(l=c(o,t[a],{i:a,dateFormatter:new Y(this.ctx).formatDate,w:n}));var f=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(d=f(e[a].unit),i=e[a].position,l=e[a].value):"datetime"===n.config.xaxis.type&&void 0===c&&(l=""),void 0===l&&(l=""),l=Array.isArray(l)?l:l.toString();var p=new b(this.ctx),x={};x=n.globals.rotateXLabels?p.getTextRects(l,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):p.getTextRects(l,parseInt(r,10));var m=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(l)&&(0===l.indexOf("NaN")||0===l.toLowerCase().indexOf("invalid")||l.toLowerCase().indexOf("infinity")>=0||s.indexOf(l)>=0&&m)&&(l=""),{x:i,text:l,textRect:x,isBold:d}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var n=s[s.length-1];e.x<n.textRect.width/(r.globals.rotateXLabels?Math.abs(r.config.xaxis.labels.rotate)/12:1.01)+n.x&&(e.text="")}return e}},{key:"checkForReversedLabels",value:function(t,e){var i=this.w;return i.config.yaxis[t]&&i.config.yaxis[t].reversed&&e.reverse(),e}},{key:"isYAxisHidden",value:function(t){var e=this.w,i=new y(this.ctx);return!e.config.yaxis[t].show||!e.config.yaxis[t].showForNullSeries&&i.isSeriesNull(t)&&-1===e.globals.collapsedSeriesIndices.indexOf(t)}},{key:"getYAxisForeColor",value:function(t,e){var i=this.w;return Array.isArray(t)&&i.globals.yAxisScale[e]&&this.ctx.theme.pushExtraColors(t,i.globals.yAxisScale[e].result.length,!1),t}},{key:"drawYAxisTicks",value:function(t,e,i,a,s,r,n){var o=this.w,l=new b(this.ctx),h=o.globals.translateY;if(a.show&&e>0){!0===o.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+o.config.yaxis[s].labels.offsetY-1;o.globals.isBarHorizontal&&(d=r*c),"heatmap"===o.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);n.add(g),h+=r}}}}]),t}(),V=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"fixSvgStringForIe11",value:function(t){if(!f.isIE11())return t;var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(){var t=this.w.globals.dom.Paper.svg();return this.fixSvgStringForIe11(t)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(){var t=this;return new Promise((function(e){var i=t.w;t.cleanup();var a=document.createElement("canvas");a.width=i.globals.svgWidth,a.height=parseInt(i.globals.dom.elWrap.style.height,10);var s="transparent"===i.config.chart.background?"#fff":i.config.chart.background,r=a.getContext("2d");r.fillStyle=s,r.fillRect(0,0,a.width,a.height);var n=t.getSvgString();if(window.canvg&&f.isIE11()){var o=window.canvg.Canvg.fromString(r,n,{ignoreClear:!0,ignoreDimensions:!0});o.start();var l=a.msToBlob();o.stop(),e({blob:l})}else{var h="data:image/svg+xml,"+encodeURIComponent(n),c=new Image;c.crossOrigin="anonymous",c.onload=function(){if(r.drawImage(c,0,0),a.msToBlob){var t=a.msToBlob();e({blob:t})}else{var i=a.toDataURL("image/png");e({imgURI:i})}},c.src=h}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.columnDelimiter,s=t.lineDelimiter,r=void 0===s?"\n":s,n=this.w,o=[],l=[],h="data:text/csv;charset=utf-8,\ufeff",c=new N(this.ctx),d=new B(this.ctx),g=function(t){var i="";if(n.globals.axisCharts){if("category"===n.config.xaxis.type||n.config.xaxis.convertedCatToNumeric)if(n.globals.isBarHorizontal){var s=n.globals.yLabelFormatters[0],r=new M(e.ctx).getActiveConfigSeriesIndex();i=s(n.globals.labels[t],{seriesIndex:r,dataPointIndex:t,w:n})}else i=d.getLabel(n.globals.labels,n.globals.timescaleLabels,0,t).text;"datetime"===n.config.xaxis.type&&(n.config.xaxis.categories.length?i=n.config.xaxis.categories[t]:n.config.labels.length&&(i=n.config.labels[t]))}else i=n.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),f.isNumber(i)?i:i.split(a).join("")};o.push(n.config.chart.toolbar.export.csv.headerCategory),i.map((function(t,e){var i=t.name?t.name:"series-".concat(e);n.globals.axisCharts&&o.push(i.split(a).join("")?i.split(a).join(""):"series-".concat(e))})),n.globals.axisCharts||(o.push(n.config.chart.toolbar.export.csv.headerValue),l.push(o.join(a))),i.map((function(t,e){n.globals.axisCharts?function(t,e){if(o.length&&0===e&&l.push(o.join(a)),t.data&&t.data.length)for(var s=0;s<t.data.length;s++){o=[];var r=g(s);if(r||(c.isFormatXY()?r=i[e].data[s].x:c.isFormat2DArray()&&(r=i[e].data[s]?i[e].data[s][0]:"")),0===e){o.push((d=r,"datetime"===n.config.xaxis.type&&String(d).length>=10?n.config.chart.toolbar.export.csv.dateFormatter(r):r.split(a).join("")));for(var h=0;h<n.globals.series.length;h++)o.push(n.globals.series[h][s])}("candlestick"===n.config.chart.type||t.type&&"candlestick"===t.type)&&(o.pop(),o.push(n.globals.seriesCandleO[e][s]),o.push(n.globals.seriesCandleH[e][s]),o.push(n.globals.seriesCandleL[e][s]),o.push(n.globals.seriesCandleC[e][s])),("boxPlot"===n.config.chart.type||t.type&&"boxPlot"===t.type)&&(o.pop(),o.push(n.globals.seriesCandleO[e][s]),o.push(n.globals.seriesCandleH[e][s]),o.push(n.globals.seriesCandleM[e][s]),o.push(n.globals.seriesCandleL[e][s]),o.push(n.globals.seriesCandleC[e][s])),"rangeBar"===n.config.chart.type&&(o.pop(),o.push(n.globals.seriesRangeStart[e][s]),o.push(n.globals.seriesRangeEnd[e][s])),o.length&&l.push(o.join(a))}var d}(t,e):((o=[]).push(n.globals.labels[e].split(a).join("")),o.push(n.globals.series[e]),l.push(o.join(a)))})),h+=l.join(r),this.triggerDownload(encodeURI(h),n.config.chart.toolbar.export.csv.filename,".csv")}},{key:"triggerDownload",value:function(t,e,i){var a=document.createElement("a");a.href=t,a.download=(e||this.w.globals.chartID)+i,document.body.appendChild(a),a.click(),document.body.removeChild(a)}}]),t}(),G=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.axesUtils=new B(i),this.xaxisLabels=a.globals.labels.slice(),a.globals.timescaleLabels.length>0&&!a.globals.isBarHorizontal&&(this.xaxisLabels=a.globals.timescaleLabels.slice()),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===a.config.xaxis.position?this.offY=0:this.offY=a.globals.gridHeight+1,this.offY=this.offY+a.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===a.config.chart.type&&a.config.plotOptions.bar.horizontal,this.xaxisFontSize=a.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=a.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=a.config.xaxis.labels.style.colors,this.xaxisBorderWidth=a.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=a.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=a.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=a.config.xaxis.axisBorder.height,this.yaxis=a.config.yaxis[0]}return a(t,[{key:"drawXaxis",value:function(){var t,e=this,i=this.w,a=new b(this.ctx),s=a.group({class:"apexcharts-xaxis",transform:"translate(".concat(i.config.xaxis.offsetX,", ").concat(i.config.xaxis.offsetY,")")}),r=a.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(i.globals.translateXAxisX,", ").concat(i.globals.translateXAxisY,")")});s.add(r);for(var n=i.globals.padHorizontal,o=[],l=0;l<this.xaxisLabels.length;l++)o.push(this.xaxisLabels[l]);var h=o.length;if(i.globals.isXNumeric){var c=h>1?h-1:h;t=i.globals.gridWidth/c,n=n+t/2+i.config.xaxis.labels.offsetX}else t=i.globals.gridWidth/o.length,n=n+t+i.config.xaxis.labels.offsetX;for(var d=function(s){var l=n-t/2+i.config.xaxis.labels.offsetX;0===s&&1===h&&t/2===n&&1===i.globals.dataPoints&&(l=i.globals.gridWidth/2);var c=e.axesUtils.getLabel(o,i.globals.timescaleLabels,l,s,e.drawnLabels,e.xaxisFontSize),d=28;i.globals.rotateXLabels&&(d=22);if((c=void 0!==i.config.xaxis.tickAmount&&"dataPoints"!==i.config.xaxis.tickAmount&&"datetime"!==i.config.xaxis.type?e.axesUtils.checkLabelBasedOnTickamount(s,c,h):e.axesUtils.checkForOverflowingLabels(s,c,h,e.drawnLabels,e.drawnLabelsRects)).text&&i.globals.xaxisLabelsCount++,i.config.xaxis.labels.show){var g=a.drawText({x:c.x,y:e.offY+i.config.xaxis.labels.offsetY+d-("top"===i.config.xaxis.position?i.globals.xAxisHeight+i.config.xaxis.axisTicks.height-2:0),text:c.text,textAnchor:"middle",fontWeight:c.isBold?600:i.config.xaxis.labels.style.fontWeight,fontSize:e.xaxisFontSize,fontFamily:e.xaxisFontFamily,foreColor:Array.isArray(e.xaxisForeColors)?i.config.xaxis.convertedCatToNumeric?e.xaxisForeColors[i.globals.minX+s-1]:e.xaxisForeColors[s]:e.xaxisForeColors,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+i.config.xaxis.labels.style.cssClass});r.add(g);var u=document.createElementNS(i.globals.SVGNS,"title");u.textContent=Array.isArray(c.text)?c.text.join(" "):c.text,g.node.appendChild(u),""!==c.text&&(e.drawnLabels.push(c.text),e.drawnLabelsRects.push(c))}n+=t},g=0;g<=h-1;g++)d(g);if(void 0!==i.config.xaxis.title.text){var u=a.group({class:"apexcharts-xaxis-title"}),f=a.drawText({x:i.globals.gridWidth/2+i.config.xaxis.title.offsetX,y:this.offY+parseFloat(this.xaxisFontSize)+i.globals.xAxisLabelsHeight+i.config.xaxis.title.offsetY,text:i.config.xaxis.title.text,textAnchor:"middle",fontSize:i.config.xaxis.title.style.fontSize,fontFamily:i.config.xaxis.title.style.fontFamily,fontWeight:i.config.xaxis.title.style.fontWeight,foreColor:i.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+i.config.xaxis.title.style.cssClass});u.add(f),s.add(u)}if(i.config.xaxis.axisBorder.show){var p=i.globals.barPadForNumericAxis,x=a.drawLine(i.globals.padHorizontal+i.config.xaxis.axisBorder.offsetX-p,this.offY,this.xaxisBorderWidth+p,this.offY,i.config.xaxis.axisBorder.color,0,this.xaxisBorderHeight);s.add(x)}return s}},{key:"drawXaxisInversed",value:function(t){var e,i,a=this,s=this.w,r=new b(this.ctx),n=s.config.yaxis[0].opposite?s.globals.translateYAxisX[t]:0,o=r.group({class:"apexcharts-yaxis apexcharts-xaxis-inversed",rel:t}),l=r.group({class:"apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g",transform:"translate("+n+", 0)"});o.add(l);var h=[];if(s.config.yaxis[t].show)for(var c=0;c<this.xaxisLabels.length;c++)h.push(this.xaxisLabels[c]);e=s.globals.gridHeight/h.length,i=-e/2.2;var d=s.globals.yLabelFormatters[0],g=s.config.yaxis[0].labels;if(g.show)for(var u=function(n){var o=void 0===h[n]?"":h[n];o=d(o,{seriesIndex:t,dataPointIndex:n,w:s});var c=a.axesUtils.getYAxisForeColor(g.style.colors,t),u=0;Array.isArray(o)&&(u=o.length/2*parseInt(g.style.fontSize,10));var f=r.drawText({x:g.offsetX-15,y:i+e+g.offsetY-u,text:o,textAnchor:a.yaxis.opposite?"start":"end",foreColor:Array.isArray(c)?c[n]:c,fontSize:g.style.fontSize,fontFamily:g.style.fontFamily,fontWeight:g.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-yaxis-label "+g.style.cssClass});l.add(f);var p=document.createElementNS(s.globals.SVGNS,"title");if(p.textContent=o.text,f.node.appendChild(p),0!==s.config.yaxis[t].labels.rotate){var x=r.rotateAroundCenter(f.node);f.node.setAttribute("transform","rotate(".concat(s.config.yaxis[t].labels.rotate," 0 ").concat(x.y,")"))}i+=e},f=0;f<=h.length-1;f++)u(f);if(void 0!==s.config.yaxis[0].title.text){var p=r.group({class:"apexcharts-yaxis-title apexcharts-xaxis-title-inversed",transform:"translate("+n+", 0)"}),x=r.drawText({x:0,y:s.globals.gridHeight/2,text:s.config.yaxis[0].title.text,textAnchor:"middle",foreColor:s.config.yaxis[0].title.style.color,fontSize:s.config.yaxis[0].title.style.fontSize,fontWeight:s.config.yaxis[0].title.style.fontWeight,fontFamily:s.config.yaxis[0].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+s.config.yaxis[0].title.style.cssClass});p.add(x),o.add(p)}var m=0;this.isCategoryBarHorizontal&&s.config.yaxis[0].opposite&&(m=s.globals.gridWidth);var v=s.config.xaxis.axisBorder;if(v.show){var y=r.drawLine(s.globals.padHorizontal+v.offsetX+m,1+v.offsetY,s.globals.padHorizontal+v.offsetX+m,s.globals.gridHeight+v.offsetY,v.color,0);o.add(y)}return s.config.yaxis[0].axisTicks.show&&this.axesUtils.drawYAxisTicks(m,h.length,s.config.yaxis[0].axisBorder,s.config.yaxis[0].axisTicks,0,e,o),o}},{key:"drawXaxisTicks",value:function(t,e){var i=this.w,a=t;if(!(t<0||t-2>i.globals.gridWidth)){var s=this.offY+i.config.xaxis.axisTicks.offsetY,r=s+i.config.xaxis.axisTicks.height;if("top"===i.config.xaxis.position&&(r=s-i.config.xaxis.axisTicks.height),i.config.xaxis.axisTicks.show){var n=new b(this.ctx).drawLine(t+i.config.xaxis.axisTicks.offsetX,s+i.config.xaxis.offsetY,a+i.config.xaxis.axisTicks.offsetX,r+i.config.xaxis.offsetY,i.config.xaxis.axisTicks.color);e.add(n),n.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s<i;s++)a=this.xaxisLabels[s].position,e.push(a);else for(var r=i,n=0;n<r;n++){var o=r;t.globals.isXNumeric&&"bar"!==t.config.chart.type&&(o-=1),a+=t.globals.gridWidth/o,e.push(a)}return e}},{key:"xAxisLabelCorrections",value:function(){var t=this.w,e=new b(this.ctx),i=t.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-texts-g text"),s=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-inversed text"),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-inversed-texts-g text tspan");if(t.globals.rotateXLabels||t.config.xaxis.labels.rotateAlways)for(var n=0;n<a.length;n++){var o=e.rotateAroundCenter(a[n]);o.y=o.y-1,o.x=o.x+1,a[n].setAttribute("transform","rotate(".concat(t.config.xaxis.labels.rotate," ").concat(o.x," ").concat(o.y,")")),a[n].setAttribute("text-anchor","end");i.setAttribute("transform","translate(0, ".concat(-10,")"));var l=a[n].childNodes;t.config.xaxis.labels.trim&&Array.prototype.forEach.call(l,(function(i){e.placeTextWithEllipsis(i,i.textContent,t.globals.xAxisLabelsHeight-("bottom"===t.config.legend.position?20:10))}))}else!function(){for(var i=t.globals.gridWidth/(t.globals.labels.length+1),s=0;s<a.length;s++){var r=a[s].childNodes;t.config.xaxis.labels.trim&&"datetime"!==t.config.xaxis.type&&Array.prototype.forEach.call(r,(function(t){e.placeTextWithEllipsis(t,t.textContent,i)}))}}();if(s.length>0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d<r.length;d++)e.placeTextWithEllipsis(r[d],r[d].textContent,t.config.yaxis[0].labels.maxWidth-2*parseFloat(t.config.yaxis[0].title.style.fontSize)-20)}}}]),t}(),_=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.xaxisLabels=a.globals.labels.slice(),this.axesUtils=new B(i),this.isTimelineBar="datetime"===a.config.xaxis.type&&a.globals.seriesRangeBarTimeline.length,a.globals.timescaleLabels.length>0&&(this.xaxisLabels=a.globals.timescaleLabels.slice())}return a(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new b(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new b(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid));var r=t.config.chart.type,n=0,o=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(n=t.config.grid.padding.left,o=t.config.grid.padding.right,e.barPadForNumericAxis>n&&(n=e.barPadForNumericAxis,o=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-n-2,-a/2,e.gridWidth+a+o+n+4,e.gridHeight+a,0,"#fff"),new y(this).getLargestMarkerSize();var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,n=t.xCount,o=t.parent,l=this.w;0===e&&l.globals.skipFirstTimelinelabel||e===n-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type||(l.config.grid.xaxis.lines.show&&this._drawGridLine({x1:i,y1:a,x2:s,y2:r,parent:o}),new G(this.ctx).drawXaxisTicks(i,this.elg))}},{key:"_drawGridLine",value:function(t){var e=t.x1,i=t.y1,a=t.x2,s=t.y2,r=t.parent,n=this.w,o=r.node.classList.contains("apexcharts-gridlines-horizontal"),l=n.config.grid.strokeDashArray,h=n.globals.barPadForNumericAxis,c=new b(this).drawLine(e-(o?h:0),i,a+(o?h:0),s,n.config.grid.borderColor,l);c.node.classList.add("apexcharts-gridline"),r.add(c)}},{key:"_drawGridBandRect",value:function(t){var e=t.c,i=t.x1,a=t.y1,s=t.x2,r=t.y2,n=t.type,o=this.w,l=new b(this.ctx),h=o.globals.barPadForNumericAxis;if("column"!==n||"datetime"!==o.config.xaxis.type){var c=o.config.grid[n].colors[e],d=l.drawRect(i-("row"===n?h:0),a,s+("row"===n?2*h:0),r,0,c,o.config.grid[n].opacity);this.elg.add(d),d.attr("clip-path","url(#gridRectMask".concat(o.globals.cuid,")")),d.node.classList.add("apexcharts-grid-".concat(n))}}},{key:"_drawXYLines",value:function(t){var e=this,i=t.xCount,a=t.tickAmount,s=this.w;if(s.config.grid.xaxis.lines.show||s.config.xaxis.axisTicks.show){var r,n=s.globals.padHorizontal,o=s.globals.gridHeight;s.globals.timescaleLabels.length?function(t){for(var a=t.xC,s=t.x1,r=t.y1,n=t.x2,o=t.y2,l=0;l<a;l++)s=e.xaxisLabels[l].position,n=e.xaxisLabels[l].position,e._drawGridLines({i:l,x1:s,y1:r,x2:n,y2:o,xCount:i,parent:e.elgridLinesV})}({xC:i,x1:n,y1:0,x2:r,y2:o}):(s.globals.isXNumeric&&(i=s.globals.xAxisScale.result.length),s.config.xaxis.convertedCatToNumeric&&(i=s.globals.xaxisLabelsCount),function(t){var a=t.xC,r=t.x1,n=t.y1,o=t.x2,l=t.y2;if(void 0!==s.config.xaxis.tickAmount&&"dataPoints"!==s.config.xaxis.tickAmount)s.globals.dom.baseEl.querySelectorAll(".apexcharts-text.apexcharts-xaxis-label tspan:not(:empty)").forEach((function(t,a){var s=t.getBBox();e._drawGridLines({i:a,x1:s.x+s.width/2,y1:n,x2:s.x+s.width/2,y2:l,xCount:i,parent:e.elgridLinesV})}));else for(var h=0;h<a+(s.globals.isXNumeric?0:1);h++)0===h&&1===a&&1===s.globals.dataPoints&&(o=r=s.globals.gridWidth/2),e._drawGridLines({i:h,x1:r,y1:n,x2:o,y2:l,xCount:i,parent:e.elgridLinesV}),o=r+=s.globals.gridWidth/(s.globals.isXNumeric?a-1:a)}({xC:i,x1:n,y1:0,x2:r,y2:o}))}if(s.config.grid.yaxis.lines.show){var l=0,h=0,c=s.globals.gridWidth,d=a+1;this.isTimelineBar&&(d=s.globals.labels.length);for(var g=0;g<d+(this.isTimelineBar?1:0);g++)this._drawGridLine({x1:0,y1:l,x2:c,y2:h,parent:this.elgridLinesH}),h=l+=s.globals.gridHeight/(this.isTimelineBar?d:a)}}},{key:"_drawInvertedXYLines",value:function(t){var e=t.xCount,i=this.w;if(i.config.grid.xaxis.lines.show||i.config.xaxis.axisTicks.show)for(var a,s=i.globals.padHorizontal,r=i.globals.gridHeight,n=0;n<e+1;n++){i.config.grid.xaxis.lines.show&&this._drawGridLine({x1:s,y1:0,x2:a,y2:r,parent:this.elgridLinesV}),new G(this.ctx).drawXaxisTicks(s,this.elg),a=s=s+i.globals.gridWidth/e+.3}if(i.config.grid.yaxis.lines.show)for(var o=0,l=0,h=i.globals.gridWidth,c=0;c<i.globals.dataPoints+1;c++)this._drawGridLine({x1:0,y1:o,x2:h,y2:l,parent:this.elgridLinesH}),l=o+=i.globals.gridHeight/i.globals.dataPoints}},{key:"renderGrid",value:function(){var t=this.w,e=new b(this.ctx);this.elg=e.group({class:"apexcharts-grid"}),this.elgridLinesH=e.group({class:"apexcharts-gridlines-horizontal"}),this.elgridLinesV=e.group({class:"apexcharts-gridlines-vertical"}),this.elg.add(this.elgridLinesH),this.elg.add(this.elgridLinesV),t.config.grid.show||(this.elgridLinesV.hide(),this.elgridLinesH.hide());for(var i,a=t.globals.yAxisScale.length?t.globals.yAxisScale[0].result.length-1:5,s=0;s<t.globals.series.length&&(void 0!==t.globals.yAxisScale[s]&&(a=t.globals.yAxisScale[s].result.length-1),!(a>2));s++);return!t.globals.isBarHorizontal||this.isTimelineBar?(i=this.xaxisLabels.length,this.isTimelineBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,n=0,o=0;n<e;n++,o++)o>=i.config.grid.row.colors.length&&(o=0),this._drawGridBandRect({c:o,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g<t;g++,u++)u>=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),j=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,n=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,n))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!f.isNumber(t)&&!f.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var o=this.linearScale(t,e,i);return o}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];n<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=n/h,d=Math.floor(f.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var p=u*g,x=p*Math.floor(t/p),b=p*Math.ceil(e/p),m=x;if(s&&n>2){for(;l.push(m),!((m+=p)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var v=t;(l=[]).push(v);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)v+=y,l.push(v);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var n=[],o=t;i>=0;)n.push(o),o+=r,i-=1;return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:"logarithmicScale",value:function(t){for(var e=[],i=Math.ceil(Math.log10(t))+1,a=0;a<i;a++)e.push(Math.pow(10,a));return{result:e,niceMin:e[0],niceMax:e[e.length-1]}}},{key:"_adjustTicksForSmallRange",value:function(t,e,i){var a=t;if(void 0!==e&&this.w.config.yaxis[e].labels.formatter&&void 0===this.w.config.yaxis[e].tickAmount){var s=this.w.config.yaxis[e].labels.formatter(1);f.isNumber(Number(s))&&!f.isFloat(s)&&(a=Math.ceil(i))}return a<t?a:t}},{key:"setYScaleForIndex",value:function(t,e,i){var a=this.w.globals,s=this.w.config,r=a.isBarHorizontal?s.xaxis:s.yaxis[t];void 0===a.yAxisScale[t]&&(a.yAxisScale[t]=[]);var n=Math.abs(i-e);if(r.logarithmic&&n<=5&&(a.invalidLogScale=!0),r.logarithmic&&n>5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(i);else if(i!==-Number.MAX_VALUE&&f.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var o=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:n<5&&n>1?n+1:5,t,o)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&f.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,n){var o=n;i.series.forEach((function(t,i){t.name===e.seriesName&&(o=i,n!==i?r.push({index:i,similarIndex:n,alreadyExists:!0}):r.push({index:i}))}));var l=a[o],h=s[o];t.setYScaleForIndex(n,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,n=[];i.forEach((function(t){t.alreadyExists&&(void 0===n[t.index]&&(n[t.index]=[]),n[t.index].push(t.index),n[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=n,n.forEach((function(t,e){n.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(n[e]=n[e].concat(n[a]))}))}));var o=n.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));n=n.filter((function(t){return!!t}));var l=o.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var n=g[i],o=u[i];s.chart.stacked&&(o=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(o+=t.value),n!==Number.MIN_VALUE&&(n+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(n="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(o="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,n,o))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,n){for(var o=0,l=0;l<s.length;l++)if(s[l]>=i.xaxis.min){o=l;break}var h,c,d=a.globals.minYArr[n],g=a.globals.maxYArr[n],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(n,l){var f=n[o];r?(f=u[o],h=c=f,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),n[e]<h&&null!==n[e]&&(h=n[e]))}))):(h=c=f,n.forEach((function(t,e){if(s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min){var r=t,n=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),n=Math.max(i[e],n))})),n>c&&null!==n&&(c=n),r<h&&null!==r&&(h=r)}}))),void 0===h&&void 0===c&&(h=d,c=g),(c*=c<0?.9:1.1)<0&&c<g&&(c=g),(h*=h<0?1.1:.9)<0&&h>d&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.scales=new j(i)}return a(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,n=-Number.MAX_VALUE,o=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;d<a;d++){r.dataPoints=Math.max(r.dataPoints,l[d].length);for(var g=0;g<r.series[d].length;g++){var u=l[d][g];null!==u&&f.isNumber(u)?(void 0!==c[d][g]&&(n=Math.max(n,c[d][g])),void 0!==h[d][g]&&(e=Math.min(e,h[d][g]),i=Math.max(i,h[d][g])),"candlestick"!==this.w.config.chart.type&&"boxPlot"!==this.w.config.chart.type||(void 0!==r.seriesCandleC[d][g]&&(n=Math.max(n,r.seriesCandleO[d][g]),n=Math.max(n,r.seriesCandleH[d][g]),n=Math.max(n,r.seriesCandleL[d][g]),n=Math.max(n,r.seriesCandleC[d][g]),"boxPlot"===this.w.config.chart.type&&(n=Math.max(n,r.seriesCandleM[d][g]))),!s.series[d].type||"candlestick"===s.series[d].type&&"boxPlot"===s.series[d].type||(n=Math.max(n,r.series[d][g]),e=Math.min(e,r.series[d][g])),i=n),f.isFloat(u)&&(u=f.noExponents(u),r.yValueDecimal=Math.max(r.yValueDecimal,u.toString().split(".")[1].length)),o>h[d][g]&&h[d][g]<0&&(o=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&"datetime"===s.xaxis.type&&(o=e),"bar"===s.chart.type&&(o<0&&n<0&&(n=0),o===Number.MIN_VALUE&&(o=0)),{minY:o,maxY:n,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a<t.series.length;a++){var s=this.getMinYMaxY(a,i,null,a+1);t.minYArr.push(s.minY),t.maxYArr.push(s.maxY),i=s.lowestY}var r=this.getMinYMaxY(0,i,null,t.series.length);if(t.minY=r.minY,t.maxY=r.maxY,i=r.lowestY,e.chart.stacked&&this._setStackedMinMax(),("line"===e.chart.type||"area"===e.chart.type||"candlestick"===e.chart.type||"boxPlot"===e.chart.type||"rangeBar"===e.chart.type&&!t.isBarHorizontal)&&t.minY===Number.MIN_VALUE&&i!==-Number.MAX_VALUE&&i!==t.maxY){var n=t.maxY-i;(i>=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(n=0),t.minY=i-5*n/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*n/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;e<t.series.length;e++)if(t.labels[e])for(var i=0;i<t.labels[e].length;i++)null!==t.labels[e][i]&&f.isNumber(t.labels[e][i])&&(t.maxX=Math.max(t.maxX,t.labels[e][i]),t.initialMaxX=Math.max(t.maxX,t.labels[e][i]),t.minX=Math.min(t.minX,t.labels[e][i]),t.initialMinX=Math.min(t.minX,t.labels[e][i]))}(),t.noLabelsProvided&&0===e.xaxis.categories.length&&(t.maxX=t.labels[t.labels.length-1],t.initialMaxX=t.labels[t.labels.length-1],t.minX=1,t.initialMinX=1),t.isXNumeric||t.noLabelsProvided||t.dataFormatXNumeric){var a;if(void 0===e.xaxis.tickAmount?(a=Math.round(t.svgWidth/150),"numeric"===e.xaxis.type&&t.dataPoints<30&&(a=t.dataPoints-1),a>t.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r<t.maxX;r++)s.push(r+1);t.xAxisScale={result:s,niceMin:s[0],niceMax:s[s.length-1]}}else t.xAxisScale=this.scales.setXScale(t.minX,t.maxX);else t.xAxisScale=this.scales.linearScale(1,a,a),t.noLabelsProvided&&t.labels.length>0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e<t.series.length;e++)if(void 0!==t.seriesZ[e])for(var i=0;i<t.seriesZ[e].length;i++)null!==t.seriesZ[e][i]&&f.isNumber(t.seriesZ[e][i])&&(t.maxZ=Math.max(t.maxZ,t.seriesZ[e][i]),t.minZ=Math.min(t.minZ,t.seriesZ[e][i]))}},{key:"_handleSingleDataPoint",value:function(){var t=this.w.globals,e=this.w.config;if(t.minX===t.maxX){var i=new Y(this.ctx);if("datetime"===e.xaxis.type){var a=i.getDate(t.minX);a.setUTCDate(a.getDate()-2),t.minX=new Date(a).getTime();var s=i.getDate(t.maxX);s.setUTCDate(s.getDate()+2),t.maxX=new Date(s).getTime()}else("numeric"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided)&&(t.minX=t.minX-2,t.initialMinX=t.minX,t.maxX=t.maxX+2,t.initialMaxX=t.maxX)}}},{key:"_getMinXDiff",value:function(){var t=this.w.globals;t.isXNumeric&&t.seriesX.forEach((function(e,i){1===e.length&&e.push(t.seriesX[t.maxValsInArrayIndex][t.seriesX[t.maxValsInArrayIndex].length-1]);var a=e.slice();a.sort((function(t,e){return t-e})),a.forEach((function(e,i){if(i>0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1===t.dataPoints&&t.minXDiff===Number.MAX_VALUE&&(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a<t.series[t.maxValsInArrayIndex].length;a++)for(var s=0,r=0,n=0;n<t.series.length;n++)null!==t.series[n][a]&&f.isNumber(t.series[n][a])&&(t.series[n][a]>0?s=s+parseFloat(t.series[n][a])+1e-4:r+=parseFloat(t.series[n][a])),n===t.series.length-1&&(e.push(s),i.push(r));for(var o=0;o<e.length;o++)t.maxY=Math.max(t.maxY,e[o]),t.minY=Math.min(t.minY,i[o])}}]),t}(),q=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.xaxisFontSize=a.config.xaxis.labels.style.fontSize,this.axisFontFamily=a.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=a.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal="bar"===a.config.chart.type&&a.config.plotOptions.bar.horizontal,this.xAxisoffX=0,"bottom"===a.config.xaxis.position&&(this.xAxisoffX=a.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new B(i)}return a(t,[{key:"drawYaxis",value:function(t){var e=this,i=this.w,a=new b(this.ctx),s=i.config.yaxis[t].labels.style,r=s.fontSize,n=s.fontFamily,o=s.fontWeight,l=a.group({class:"apexcharts-yaxis",rel:t,transform:"translate("+i.globals.translateYAxisX[t]+", 0)"});if(this.axesUtils.isYAxisHidden(t))return l;var h=a.group({class:"apexcharts-yaxis-texts-g"});l.add(h);var c=i.globals.yAxisScale[t].result.length-1,d=i.globals.gridHeight/c,g=i.globals.translateY,u=i.globals.yLabelFormatters[t],f=i.globals.yAxisScale[t].result.slice();f=this.axesUtils.checkForReversedLabels(t,f);var p="";if(i.config.yaxis[t].labels.show)for(var x=function(l){var x=f[l];x=u(x,l);var b=i.config.yaxis[t].labels.padding;i.config.yaxis[t].opposite&&0!==i.config.yaxis.length&&(b*=-1);var m=e.axesUtils.getYAxisForeColor(s.colors,t),v=a.drawText({x:b,y:g+c/10+i.config.yaxis[t].labels.offsetY+1,text:x,textAnchor:i.config.yaxis[t].opposite?"start":"end",fontSize:r,fontFamily:n,fontWeight:o,foreColor:Array.isArray(m)?m[l]:m,isPlainText:!1,cssClass:"apexcharts-yaxis-label "+s.cssClass});if(l===c&&(p=v),h.add(v),0!==i.config.yaxis[t].labels.rotate){var y=a.rotateAroundCenter(p.node),w=a.rotateAroundCenter(v.node);v.node.setAttribute("transform","rotate(".concat(i.config.yaxis[t].labels.rotate," ").concat(y.x," ").concat(w.y,")"))}g+=d},m=c;m>=0;m--)x(m);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new b(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,n=e.globals.gridWidth/r+.1,o=n+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g<d:g>=0;d?g++:g--){var u=h[g];u=l(u,g);var f=e.globals.gridWidth+e.globals.padHorizontal-(o-n+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var m=document.createElementNS(e.globals.SVGNS,"title");m.textContent=u,x.node.appendChild(m),o+=n}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new b(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new b(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new b(this.ctx),s={width:0,height:0},r={width:0,height:0},n=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==n&&(s=n.getBoundingClientRect());var o=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==o&&(r=o.getBoundingClientRect()),null!==o){var l=this.xPaddingForYAxisTitle(t,s,r,e);o.setAttribute("x",l.xPos-(e?10:0))}if(null!==o){var h=a.rotateAroundCenter(o);o.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,n=0,o=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:n,padd:0}:(a?(n=e.width+s.config.yaxis[t].title.offsetX+i.width/2+o/2,0===(r+=1)&&(n-=o/2)):(n=-1*e.width+s.config.yaxis[t].title.offsetX+o/2+i.width/2,s.globals.isBarHorizontal&&(o=25,n=-1*e.width-s.config.yaxis[t].title.offsetX-o)),{xPos:n,padd:o})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,n=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(o,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!o.show||o.floating||0===t[l].width,c=t[l].width+e[l].width;o.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-o.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+n,h||(n=n+c+20),i.globals.translateYAxisX[l]=s-o.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+o.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=f.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=f.listToArray(r);var n=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(n.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(n.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(n.width,", 0)")))}}))}}]),t}(),Z=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.documentEvent=f.bind(this.documentEvent,this)}return a(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r<s;r++)a[r].apply(null,e)}}},{key:"setupEventHandlers",value:function(){var t=this,e=this.w,i=this.ctx,a=e.globals.dom.baseEl.querySelector(e.globals.chartClass);this.ctx.eventList.forEach((function(t){a.addEventListener(t,(function(t){var a=Object.assign({},e,{seriesIndex:e.globals.capturedSeriesIndex,dataPointIndex:e.globals.capturedDataPointIndex});"mousemove"===t.type||"touchmove"===t.type?"function"==typeof e.config.chart.events.mouseMove&&e.config.chart.events.mouseMove(t,i,a):("mouseup"===t.type&&1===t.which||"touchend"===t.type)&&("function"==typeof e.config.chart.events.click&&e.config.chart.events.click(t,i,a),i.ctx.events.fireEvent("click",[t,i,a]))}),{capture:!1,passive:!0})})),this.ctx.eventList.forEach((function(i){e.globals.dom.baseEl.addEventListener(i,t.documentEvent,{passive:!0})})),this.ctx.core.setupBrushHandler()}},{key:"documentEvent",value:function(t){var e=this.w,i=t.target.className;if("click"===t.type){var a=e.globals.dom.baseEl.querySelector(".apexcharts-menu");a&&a.classList.contains("apexcharts-menu-open")&&"apexcharts-menu-icon"!==i&&a.classList.remove("apexcharts-menu-open")}e.globals.clientX="touchmove"===t.type?t.touches[0].clientX:t.clientX,e.globals.clientY="touchmove"===t.type?t.touches[0].clientY:t.clientY}}]),t}(),$=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"setCurrentLocaleValues",value:function(t){var e=this.w.config.chart.locales;window.Apex.chart&&window.Apex.chart.locales&&window.Apex.chart.locales.length>0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=f.extend(A,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this.w.globals,r=this.w.config,n=new G(this.ctx),o=new q(this.ctx);s.axisCharts&&"radar"!==t&&(s.isBarHorizontal?(a=o.drawYaxisInversed(0),i=n.drawXaxisInversed(0),s.dom.elGraphical.add(i),s.dom.elGraphical.add(a)):(i=n.drawXaxis(),s.dom.elGraphical.add(i),r.yaxis.map((function(t,e){-1===s.ignoreYAxisIndexes.indexOf(e)&&(a=o.drawYaxis(e),s.dom.Paper.add(a))}))))}}]),t}(),Q=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new b(this.ctx),i=new x(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,n=a.colorFrom,o=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,m=s.color,v=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",n,o,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine()),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:t.globals.gridHeight,width:f.isNumber(t.config.xaxis.crosshairs.width)?t.config.xaxis.crosshairs.width:0,height:t.globals.gridHeight,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:m,opacity:v})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new b(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new D({}),n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,n=window.innerWidth>0?window.innerWidth:screen.width;if(n>a){var o=y.extendArrayProps(r,i.globals.initialConfig,i);t=f.extend(o,t),t=f.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l<s.length;l++)n<s[l].breakpoint&&(t=y.extendArrayProps(r,s[l].options,i),t=f.extend(i.config,t),e.overrideResponsiveOptions(t))};if(t){var o=y.extendArrayProps(r,t,i);o=f.extend(i.config,o),n(o=f.extend(o,t))}else n({})}}},{key:"overrideResponsiveOptions",value:function(t){var e=new D(t).init({responsiveOverride:!0});this.w.config=e}}]),t}(),tt=function(){function t(i){e(this,t),this.ctx=i,this.colors=[],this.w=i.w;var a=this.w;this.isColorFn=!1,this.isHeatmapDistributed="treemap"===a.config.chart.type&&a.config.plotOptions.treemap.distributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.distributed,this.isBarDistributed=a.config.plotOptions.bar.distributed&&("bar"===a.config.chart.type||"rangeBar"===a.config.chart.type)}return a(t,[{key:"init",value:function(){this.setDefaultColors()}},{key:"setDefaultColors",value:function(){var t=this,e=this.w,i=new f;if(e.globals.dom.elWrap.classList.add("apexcharts-theme-".concat(e.config.theme.mode)),void 0===e.config.colors?e.globals.colors=this.predefined():(e.globals.colors=e.config.colors,Array.isArray(e.config.colors)&&e.config.colors.length>0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,n=1/(s/e.config.theme.monochrome.shadeIntensity),o=e.config.theme.monochrome.shadeTo,l=0,h=0;h<s;h++){var c=void 0;"dark"===o?(c=i.shadeColor(-1*l,r),l+=n):(c=i.shadeColor(l,r),l+=n),a.push(c)}e.globals.colors=a.slice()}var d=e.globals.colors.slice();this.pushExtraColors(e.globals.colors);["fill","stroke"].forEach((function(i){void 0===e.config[i].colors?e.globals[i].colors=t.isColorFn?e.config.colors:d:e.globals[i].colors=e.config[i].colors.slice(),t.pushExtraColors(e.globals[i].colors)})),void 0===e.config.dataLabels.style.colors?e.globals.dataLabels.style.colors=d:e.globals.dataLabels.style.colors=e.config.dataLabels.style.colors.slice(),this.pushExtraColors(e.globals.dataLabels.style.colors,50),void 0===e.config.plotOptions.radar.polygons.fill.colors?e.globals.radarPolygons.fill.colors=["dark"===e.config.theme.mode?"#424242":"none"]:e.globals.radarPolygons.fill.colors=e.config.plotOptions.radar.polygons.fill.colors.slice(),this.pushExtraColors(e.globals.radarPolygons.fill.colors,20),void 0===e.config.markers.colors?e.globals.markers.colors=d:e.globals.markers.colors=e.config.markers.colors.slice(),this.pushExtraColors(e.globals.markers.colors)}},{key:"pushExtraColors",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.length<s)for(var r=s-t.length,n=0;n<r;n++)t.push(t[n])}},{key:"updateThemeOptions",value:function(t){t.chart=t.chart||{},t.tooltip=t.tooltip||{};var e=t.theme.mode||"light",i=t.theme.palette?t.theme.palette:"dark"===e?"palette4":"palette1",a=t.chart.foreColor?t.chart.foreColor:"dark"===e?"#f6f7f8":"#373d3f";return t.tooltip.theme=e,t.chart.foreColor=a,t.theme.palette=i,t}},{key:"predefined",value:function(){switch(this.w.config.theme.palette){case"palette1":this.colors=["#008FFB","#00E396","#FEB019","#FF4560","#775DD0"];break;case"palette2":this.colors=["#3f51b5","#03a9f4","#4caf50","#f9ce1d","#FF9800"];break;case"palette3":this.colors=["#33b2df","#546E7A","#d4526e","#13d8aa","#A5978B"];break;case"palette4":this.colors=["#4ecdc4","#c7f464","#81D4FA","#fd6a6a","#546E7A"];break;case"palette5":this.colors=["#2b908f","#f9a3a4","#90ee7e","#fa4443","#69d2e7"];break;case"palette6":this.colors=["#449DD1","#F86624","#EA3546","#662E9B","#C5D86D"];break;case"palette7":this.colors=["#D7263D","#1B998B","#2E294E","#F46036","#E2C044"];break;case"palette8":this.colors=["#662E9B","#F86624","#F9C80E","#EA3546","#43BCCD"];break;case"palette9":this.colors=["#5C4742","#A5978B","#8D5B4C","#5A2A27","#C4BBAF"];break;case"palette10":this.colors=["#A300D6","#7D02EB","#5653FE","#2983FF","#00B1F2"];break;default:this.colors=["#008FFB","#00E396","#FEB019","#FF4560","#775DD0"]}return this.colors}}]),t}(),et=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"draw",value:function(){this.drawTitleSubtitle("title"),this.drawTitleSubtitle("subtitle")}},{key:"drawTitleSubtitle",value:function(t){var e=this.w,i="title"===t?e.config.title:e.config.subtitle,a=e.globals.svgWidth/2,s=i.offsetY,r="middle";if("left"===i.align?(a=10,r="start"):"right"===i.align&&(a=e.globals.svgWidth-10,r="end"),a+=i.offsetX,s=s+parseInt(i.style.fontSize,10)+i.margin/2,void 0!==i.text){var n=new b(this.ctx).drawText({x:a,y:s,text:i.text,textAnchor:r,fontSize:i.style.fontSize,fontFamily:i.style.fontFamily,fontWeight:i.style.fontWeight,foreColor:i.style.color,opacity:1});n.node.setAttribute("class","apexcharts-".concat(t,"-text")),e.globals.dom.Paper.add(n)}}}]),t}(),it=function(){function t(i){e(this,t),this.w=i.w,this.dCtx=i}return a(t,[{key:"getTitleSubtitleCoords",value:function(t){var e=this.w,i=0,a=0,s="title"===t?e.config.title.floating:e.config.subtitle.floating,r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(t,"-text"));if(null!==r&&!s){var n=r.getBoundingClientRect();i=n.width,a=e.globals.axisCharts?n.height+5:n.height}return{width:i,height:a}}},{key:"getLegendsRect",value:function(){var t=this.w,e=t.globals.dom.baseEl.querySelector(".apexcharts-legend");t.config.legend.height||"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||(e.style.maxHeight=t.globals.svgHeight/2+"px");var i=Object.assign({},f.getBoundingClientRect(e));return null!==e&&!t.config.legend.floating&&t.config.legend.show?this.dCtx.lgRect={x:i.x,y:i.y,height:i.height,width:0===i.height?0:i.width}:this.dCtx.lgRect={x:0,y:0,height:0,width:0},"left"!==t.config.legend.position&&"right"!==t.config.legend.position||1.5*this.dCtx.lgRect.width>t.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,g(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(i){e(this,t),this.w=i.w,this.dCtx=i}return a(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=f.getLargestStringFromArr(i),n=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(n=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var o=new W(this.dCtx.ctx),l=r;r=o.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new Y(this.dCtx.ctx).formatDate,w:e}),n=o.xLabelFormat(s,n,l,{i:void 0,dateFormatter:new Y(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(n=r="1");var h=new b(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==n&&(d=h.getTextRects(n,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==n&&(d=g(n)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new b(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new b(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,n=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var o=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,s){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(s)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var s=e.dCtx.timescaleLabels[0],o=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+n/1.75-e.dCtx.yAxisWidthRight,l=s.position-n/1.75+e.dCtx.yAxisWidthLeft;o>a.svgWidth-a.translateX&&(a.skipLastTimelinelabel=!0),l<0&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.right<n&&!a.rotateXLabels&&(a.skipLastTimelinelabel=!0):"datetime"!==r&&e.dCtx.gridPad.right<n/2-e.dCtx.yAxisWidthRight&&!a.rotateXLabels&&("between"!==i.config.xaxis.tickPlacement||i.globals.isBarHorizontal)&&(e.dCtx.xPadRight=n/2+1)}()};s.yaxis.forEach((function(t,i){o?(e.dCtx.gridPad.left<n&&(e.dCtx.xPadLeft=n/2+1),e.dCtx.xPadRight=n/2+1):l(0,i)}))}}]),t}(),st=function(){function t(i){e(this,t),this.w=i.w,this.dCtx=i}return a(t,[{key:"getyAxisLabelsCoords",value:function(){var t=this,e=this.w,i=[],a=10,s=new B(this.dCtx.ctx);return e.config.yaxis.map((function(r,n){var o=e.globals.yAxisScale[n];if(!s.isYAxisHidden(n)&&r.labels.show&&o.result.length){var l=e.globals.yLabelFormatters[n],h=String(o.niceMin).length>String(o.niceMax).length?o.niceMin:o.niceMax,c=l(h,{seriesIndex:n,dataPointIndex:-1,w:e}),d=c;if(void 0!==c&&0!==c.length||(c=h),e.globals.isBarHorizontal){a=0;var g=e.globals.labels.slice();c=l(c=f.getLargestStringFromArr(g),{seriesIndex:n,dataPointIndex:-1,w:e}),d=t.dCtx.dimHelpers.getLargestStringFromMultiArr(c,g)}var u=new b(t.dCtx.ctx),p="rotate(".concat(r.labels.rotate," 0 0)"),x=u.getTextRects(c,r.labels.style.fontSize,r.labels.style.fontFamily,p,!1),m=x;c!==d&&(m=u.getTextRects(d,r.labels.style.fontSize,r.labels.style.fontFamily,p,!1)),i.push({width:(m.width>x.width?m.width:x.width)+a,height:m.height>x.height?m.height:x.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new b(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),n=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:n.width,height:n.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),n=function(n,o){var l=t.config.yaxis[o].floating,h=0;n.width>0&&!l?(h=n.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(o)&&(h=h-n.width-s)):h=l||r.isYAxisHidden(o)?0:5,t.config.yaxis[o].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){n(t,e)})),t.globals.yTitleCoords.map((function(t,e){n(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(i){e(this,t),this.w=i.w,this.dCtx=i}return a(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var n,o,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),n=l/t,e.globals.minXDiff&&e.globals.minXDiff/n>0&&(o=e.globals.minXDiff/n),o>t/2&&(o/=2),(s=o/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),nt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return a(t,[{key:"plotCoords",value:function(){var t=this.w.globals;this.lgRect=this.dimHelpers.getLegendsRect(),t.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),t.gridHeight=t.gridHeight-this.gridPad.top-this.gridPad.bottom,t.gridWidth=t.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var e=this.dimGrid.gridPadForColumnsInNumericAxis(t.gridWidth);t.gridWidth=t.gridWidth-2*e,t.translateX=t.translateX+this.gridPad.left+this.xPadLeft+(e>0?e+4:0),t.translateY=t.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var o=this.yAxisWidth,l=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var h=10;("radar"===e.config.chart.type||this.isSparkline)&&(o=0,l=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(o=0,l=0,h=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var c=function(){i.translateX=o,i.gridHeight=i.svgHeight-t.lgRect.height-l-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-o};switch("top"===e.config.xaxis.position&&(h=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=h,c();break;case"top":i.translateY=this.lgRect.height+h,c();break;case"left":i.translateY=h,i.translateX=this.lgRect.width+o,i.gridHeight=i.svgHeight-l-12,i.gridWidth=i.svgWidth-this.lgRect.width-o;break;case"right":i.translateY=h,i.translateX=o,i.gridHeight=i.svgHeight-l-12,i.gridWidth=i.svgWidth-this.lgRect.width-o-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,n=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=n+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=n+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=n+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=n+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=n+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e){var i=this.w;this.xAxisHeight=(t.height+e.height)*(i.globals.isMultiLineX?1.2:i.globals.LINE_HEIGHT_RATIO)+(i.globals.rotateXLabels?22:10),this.xAxisWidth=t.width,this.xAxisHeight-e.height>i.config.xaxis.labels.maxHeight&&(this.xAxisHeight=i.config.xaxis.labels.maxHeight),i.config.xaxis.labels.minHeight&&this.xAxisHeight<i.config.xaxis.labels.minHeight&&(this.xAxisHeight=i.config.xaxis.labels.minHeight),i.config.xaxis.floating&&(this.xAxisHeight=0);var a=0,s=0;i.config.yaxis.forEach((function(t){a+=t.labels.minWidth,s+=t.labels.maxWidth})),this.yAxisWidth<a&&(this.yAxisWidth=a),this.yAxisWidth>s&&(this.yAxisWidth=s)}}]),t}(),ot=function(){function t(i){e(this,t),this.w=i.w,this.lgCtx=i}return a(t,[{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.position-bottom, .apexcharts-legend.position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.position-right, .apexcharts-legend.position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.position-bottom.apexcharts-align-left, .apexcharts-legend.position-top.apexcharts-align-left, .apexcharts-legend.position-right, .apexcharts-legend.position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.position-bottom.apexcharts-align-center, .apexcharts-legend.position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.position-bottom.apexcharts-align-right, .apexcharts-legend.position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.position-bottom .apexcharts-legend-series, .apexcharts-legend.position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"appendToForeignObject",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject");var e=t.dom.elLegendForeign;e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",t.svgWidth),e.setAttribute("height",t.svgHeight),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var n=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),o=a.config.chart.type;if("pie"===o||"polarArea"===o||"donut"===o){var l=a.config.plotOptions.pie.donut.labels;new b(this.lgCtx.ctx).pathMouseDown(n.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(n.members[0].node,l)}n.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=f.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var n=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(n,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var o=e.childNodes,l=0;l<o.length;l++)o[l].classList.contains("apexcharts-series-markers-wrap")&&(o[l].classList.contains("apexcharts-hide")?o[l].classList.remove("apexcharts-hide"):o[l].classList.add("apexcharts-hide"));a.globals.allSeriesCollapsed=a.globals.collapsedSeries.length===a.config.series.length,s=this._getSeriesBasedOnCollapsedState(s),this.lgCtx.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled)}},{key:"riseCollapsedSeries",value:function(t,e,i){var a=this.w,s=f.clone(a.config.series);if(t.length>0){for(var r=0;r<t.length;r++)t[r].index===i&&(a.globals.axisCharts?(s[i].data=t[r].data.slice(),t.splice(r,1),e.splice(r,1),a.globals.risingSeries.push(i)):(s[i]=t[r].data,t.splice(r,1),e.splice(r,1),a.globals.risingSeries.push(i)));s=this._getSeriesBasedOnCollapsedState(s),this.lgCtx.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled)}}},{key:"_getSeriesBasedOnCollapsedState",value:function(t){var e=this.w;return e.globals.axisCharts?t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new ot(this)}return a(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),f.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());for(var n=e.globals.legendFormatter,o=e.config.legend.inverseOrder,l=o?a.length-1:0;o?l>=0:l<=a.length-1;o?l--:l++){var h=n(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g<e.globals.collapsedSeries.length;g++)e.globals.collapsedSeries[g].index===l&&(c=!0);if(e.globals.ancillaryCollapsedSeriesIndices.length>0)for(var u=0;u<e.globals.ancillaryCollapsedSeriesIndices.length;u++)e.globals.ancillaryCollapsedSeriesIndices[u]===l&&(d=!0);var p=document.createElement("span");p.classList.add("apexcharts-legend-marker");var x=e.config.legend.markers.offsetX,m=e.config.legend.markers.offsetY,v=e.config.legend.markers.height,w=e.config.legend.markers.width,k=e.config.legend.markers.strokeWidth,A=e.config.legend.markers.strokeColor,S=e.config.legend.markers.radius,C=p.style;C.background=s[l],C.color=s[l],C.setProperty("background",s[l],"important"),e.config.legend.markers.fillColors&&e.config.legend.markers.fillColors[l]&&(C.background=e.config.legend.markers.fillColors[l]),void 0!==e.globals.seriesColors[l]&&(C.background=e.globals.seriesColors[l],C.color=e.globals.seriesColors[l]),C.height=Array.isArray(v)?parseFloat(v[l])+"px":parseFloat(v)+"px",C.width=Array.isArray(w)?parseFloat(w[l])+"px":parseFloat(w)+"px",C.left=Array.isArray(x)?x[l]:x,C.top=Array.isArray(m)?m[l]:m,C.borderWidth=Array.isArray(k)?k[l]:k,C.borderColor=Array.isArray(A)?A[l]:A,C.borderRadius=Array.isArray(S)?parseFloat(S[l])+"px":parseFloat(S)+"px",e.config.legend.markers.customHTML&&(Array.isArray(e.config.legend.markers.customHTML)?e.config.legend.markers.customHTML[l]&&(p.innerHTML=e.config.legend.markers.customHTML[l]()):p.innerHTML=e.config.legend.markers.customHTML()),b.setAttrs(p,{rel:l+1,"data:collapsed":c||d}),(c||d)&&p.classList.add("apexcharts-inactive-legend");var L=document.createElement("div"),P=document.createElement("span");P.classList.add("apexcharts-legend-text"),P.innerHTML=Array.isArray(h)?h.join(" "):h;var T=e.config.legend.labels.useSeriesColors?e.globals.colors[l]:e.config.legend.labels.colors;T||(T=e.config.chart.foreColor),P.style.color=T,P.style.fontSize=parseFloat(e.config.legend.fontSize)+"px",P.style.fontWeight=e.config.legend.fontWeight,P.style.fontFamily=i||e.config.chart.fontFamily,b.setAttrs(P,{rel:l+1,i:l,"data:default-text":encodeURIComponent(h),"data:collapsed":c||d}),L.appendChild(p),L.appendChild(P);var z=new y(this.ctx);if(!e.config.legend.showForZeroSeries)0===z.getSeriesTotalByIndex(l)&&z.seriesHaveSameValues(l)&&!z.isSeriesNull(l)&&-1===e.globals.collapsedSeriesIndices.indexOf(l)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(l)&&L.classList.add("apexcharts-hidden-zero-series");e.config.legend.showForNullSeries||z.isSeriesNull(l)&&-1===e.globals.collapsedSeriesIndices.indexOf(l)&&-1===e.globals.ancillaryCollapsedSeriesIndices.indexOf(l)&&L.classList.add("apexcharts-hidden-null-series"),e.globals.dom.elLegendWrap.appendChild(L),e.globals.dom.elLegendWrap.classList.add("apexcharts-align-".concat(e.config.legend.horizontalAlign)),e.globals.dom.elLegendWrap.classList.add("position-"+e.config.legend.position),L.classList.add("apexcharts-legend-series"),L.style.margin="".concat(e.config.legend.itemMargin.vertical,"px ").concat(e.config.legend.itemMargin.horizontal,"px"),e.globals.dom.elLegendWrap.style.width=e.config.legend.width?e.config.legend.width+"px":"",e.globals.dom.elLegendWrap.style.height=e.config.legend.height?e.config.legend.height+"px":"",b.setAttrs(L,{rel:l+1,seriesName:f.escapeString(a[l]),"data:collapsed":c||d}),(c||d)&&L.classList.add("apexcharts-inactive-legend"),e.config.legend.onItemClick.toggleDataSeries||L.classList.add("apexcharts-no-click")}e.globals.dom.elWrap.addEventListener("click",t.onLegendClick,!0),e.config.legend.onItemHover.highlightDataSeries&&(e.globals.dom.elWrap.addEventListener("mousemove",t.onLegendHovered,!0),e.globals.dom.elWrap.addEventListener("mouseout",t.onLegendHovered,!0))}},{key:"setLegendWrapXY",value:function(t,e){var i=this.w,a=i.globals.dom.baseEl.querySelector(".apexcharts-legend"),s=a.getBoundingClientRect(),r=0,n=0;if("bottom"===i.config.legend.position)n+=i.globals.svgHeight-s.height/2;else if("top"===i.config.legend.position){var o=new nt(this.ctx),l=o.dimHelpers.getTitleSubtitleCoords("title").height,h=o.dimHelpers.getTitleSubtitleCoords("subtitle").height;n=n+(l>0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,n=n+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=n+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new nt(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new M(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new M(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker")){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=a.globals.minX,this.maxX=a.globals.maxX}return a(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s<this.t.customIcons.length;s++)this.elCustomIcons.push(i());var r=[],n=function(i,a,s){var n=i.toLowerCase();t.t[n]&&e.config.chart.zoom.enabled&&r.push({el:a,icon:"string"==typeof t.t[n]?t.t[n]:s,title:t.localeValues[i],class:"apexcharts-".concat(n,"-icon")})};n("zoomIn",this.elZoomIn,'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\n</svg>\n'),n("zoomOut",this.elZoomOut,'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\n</svg>\n');var o=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" height="24" viewBox="0 0 24 24" width="24">\n <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n <path d="M0 0h24v24H0V0z" fill="none"/>\n <path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/>\n</svg>':'<svg fill="#6E8192" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"/>\n</svg>',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};o("zoom"),o("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000000" height="24" viewBox="0 0 24 24" width="24">\n <defs>\n <path d="M0 0h24v24H0z" id="a"/>\n </defs>\n <clipPath id="b">\n <use overflow="visible" xlink:href="#a"/>\n </clipPath>\n <path clip-path="url(#b)" d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"/>\n</svg>',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),n("reset",this.elZoomReset,'<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>\n <path d="M0 0h24v24H0z" fill="none"/>\n</svg>'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l<this.elCustomIcons.length;l++)r.push({el:this.elCustomIcons[l],icon:this.t.customIcons[l].icon,title:this.t.customIcons[l].title,index:this.t.customIcons[l].index,class:"apexcharts-toolbar-custom-icon "+this.t.customIcons[l].class});r.forEach((function(t,e){t.index&&f.moveIndexInArray(r,e,t.index)}));for(var h=0;h<r.length;h++)b.setAttrs(r[h].el,{class:r[h].class,title:r[h].title}),r[h].el.innerHTML=r[h].icon,a.appendChild(r[h].el);this._createHamburgerMenu(a),e.globals.zoomEnabled?this.elZoom.classList.add(this.selectedClass):e.globals.panEnabled?this.elPan.classList.add(this.selectedClass):e.globals.selectionEnabled&&this.elSelection.classList.add(this.selectedClass),this.addToolbarEventListeners()}},{key:"_createHamburgerMenu",value:function(t){this.elMenuItems=[],t.appendChild(this.elMenu),b.setAttrs(this.elMenu,{class:"apexcharts-menu"});var e=[{name:"exportSVG",title:this.localeValues.exportToSVG},{name:"exportPNG",title:this.localeValues.exportToPNG},{name:"exportCSV",title:this.localeValues.exportToCSV}];this.w.globals.allSeriesHasEqualX||e.splice(2,1);for(var i=0;i<e.length;i++)this.elMenuItems.push(document.createElement("div")),this.elMenuItems[i].innerHTML=e[i].title,b.setAttrs(this.elMenuItems[i],{class:"apexcharts-menu-item ".concat(e[i].name),title:e[i].title}),this.elMenu.appendChild(this.elMenuItems[i])}},{key:"addToolbarEventListeners",value:function(){var t=this;this.elZoomReset.addEventListener("click",this.handleZoomReset.bind(this)),this.elSelection.addEventListener("click",this.toggleZoomSelection.bind(this,"selection")),this.elZoom.addEventListener("click",this.toggleZoomSelection.bind(this,"zoom")),this.elZoomIn.addEventListener("click",this.handleZoomIn.bind(this)),this.elZoomOut.addEventListener("click",this.handleZoomOut.bind(this)),this.elPan.addEventListener("click",this.togglePanning.bind(this)),this.elMenuIcon.addEventListener("click",this.toggleMenu.bind(this)),this.elMenuItems.forEach((function(e){e.classList.contains("exportSVG")?e.addEventListener("click",t.handleDownload.bind(t,"svg")):e.classList.contains("exportPNG")?e.addEventListener("click",t.handleDownload.bind(t,"png")):e.classList.contains("exportCSV")&&e.addEventListener("click",t.handleDownload.bind(t,"csv"))}));for(var e=0;e<this.t.customIcons.length;e++)this.elCustomIcons[e].addEventListener("click",this.t.customIcons[e].click.bind(this,this.ctx,this.ctx.w))}},{key:"toggleZoomSelection",value:function(t){this.ctx.getSyncedCharts().forEach((function(e){e.ctx.toolbar.toggleOtherControls();var i="selection"===t?e.ctx.toolbar.elSelection:e.ctx.toolbar.elZoom,a="selection"===t?"selectionEnabled":"zoomEnabled";e.w.globals[a]=!e.w.globals[a],i.classList.contains(e.ctx.toolbar.selectedClass)?i.classList.remove(e.ctx.toolbar.selectedClass):i.classList.add(e.ctx.toolbar.selectedClass)}))}},{key:"getToolbarIconsReference",value:function(){var t=this.w;this.elZoom||(this.elZoom=t.globals.dom.baseEl.querySelector(".apexcharts-zoom-icon")),this.elPan||(this.elPan=t.globals.dom.baseEl.querySelector(".apexcharts-pan-icon")),this.elSelection||(this.elSelection=t.globals.dom.baseEl.querySelector(".apexcharts-selection-icon"))}},{key:"enableZoomPanFromToolbar",value:function(t){this.toggleOtherControls(),"pan"===t?this.w.globals.panEnabled=!0:this.w.globals.zoomEnabled=!0;var e="pan"===t?this.elPan:this.elZoom,i="pan"===t?this.elZoom:this.elPan;e&&e.classList.add(this.selectedClass),i&&i.classList.remove(this.selectedClass)}},{key:"togglePanning",value:function(){this.ctx.getSyncedCharts().forEach((function(t){t.ctx.toolbar.toggleOtherControls(),t.w.globals.panEnabled=!t.w.globals.panEnabled,t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass)?t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass):t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass)}))}},{key:"toggleOtherControls",value:function(){var t=this,e=this.w;e.globals.panEnabled=!1,e.globals.zoomEnabled=!1,e.globals.selectionEnabled=!1,this.getToolbarIconsReference(),[this.elPan,this.elSelection,this.elZoom].forEach((function(e){e&&e.classList.remove(t.selectedClass)}))}},{key:"handleZoomIn",value:function(){var t=this.w;t.globals.isTimelineBar&&(this.minX=t.globals.minY,this.maxX=t.globals.maxY);var e=(this.minX+this.maxX)/2,i=(this.minX+e)/2,a=(this.maxX+e)/2,s=this._getNewMinXMaxX(i,a);t.globals.disableZoomIn||this.zoomUpdateOptions(s.minX,s.maxX)}},{key:"handleZoomOut",value:function(){var t=this.w;if(t.globals.isTimelineBar&&(this.minX=t.globals.minY,this.maxX=t.globals.maxY),!("datetime"===t.config.xaxis.type&&new Date(this.minX).getUTCFullYear()<1e3)){var e=(this.minX+this.maxX)/2,i=this.minX-(e-this.minX),a=this.maxX-(e-this.maxX),s=this._getNewMinXMaxX(i,a);t.globals.disableZoomOut||this.zoomUpdateOptions(s.minX,s.maxX)}}},{key:"_getNewMinXMaxX",value:function(t,e){var i=this.w.config.xaxis.convertedCatToNumeric;return{minX:i?Math.floor(t):t,maxX:i?Math.floor(e):e}}},{key:"zoomUpdateOptions",value:function(t,e){var i=this.w;if(void 0!==t||void 0!==e){if(!(i.config.xaxis.convertedCatToNumeric&&(t<1&&(t=1,e=i.globals.dataPoints),e-t<2))){var a={min:t,max:e},s=this.getBeforeZoomRange(a);s&&(a=s.xaxis);var r={xaxis:a},n=f.clone(i.globals.initialConfig.yaxis);if(i.config.chart.zoom.autoScaleYaxis)n=new j(this.ctx).autoScaleY(this.ctx,n,{xaxis:a});i.config.chart.group||(r.yaxis=n),this.w.globals.zoomed=!0,this.ctx.updateHelpers._updateOptions(r,!1,this.w.config.chart.animations.dynamicAnimation.enabled),this.zoomCallback(a,n)}}else this.handleZoomReset()}},{key:"zoomCallback",value:function(t,e){"function"==typeof this.ev.zoomed&&this.ev.zoomed(this.ctx,{xaxis:t,yaxis:e})}},{key:"getBeforeZoomRange",value:function(t,e){var i=null;return"function"==typeof this.ev.beforeZoom&&(i=this.ev.beforeZoom(this,{xaxis:t,yaxis:e})),i}},{key:"toggleMenu",value:function(){var t=this;window.setTimeout((function(){t.elMenu.classList.contains("apexcharts-menu-open")?t.elMenu.classList.remove("apexcharts-menu-open"):t.elMenu.classList.add("apexcharts-menu-open")}),0)}},{key:"handleDownload",value:function(t){var e=this.w,i=new V(this.ctx);switch(t){case"svg":i.exportToSVG(this.ctx);break;case"png":i.exportToPng(this.ctx);break;case"csv":i.exportToCSV({series:e.config.series,columnDelimiter:e.config.chart.toolbar.export.csv.columnDelimiter})}}},{key:"handleZoomReset",value:function(t){this.ctx.getSyncedCharts().forEach((function(t){var e=t.w;if(e.globals.lastXAxis.min=void 0,e.globals.lastXAxis.max=void 0,t.updateHelpers.revertDefaultAxisMinMax(),"function"==typeof e.config.chart.events.beforeResetZoom){var i=e.config.chart.events.beforeResetZoom(t,e);i&&t.updateHelpers.revertDefaultAxisMinMax(i)}"function"==typeof e.config.chart.events.zoomed&&t.ctx.toolbar.zoomCallback({min:e.config.xaxis.min,max:e.config.xaxis.max}),e.globals.zoomed=!1;var a=t.ctx.series.emptyCollapsedSeries(f.clone(e.globals.initialSeries));t.updateHelpers._updateSeries(a,e.config.chart.animations.dynamicAnimation.enabled)}))}},{key:"destroy",value:function(){this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null}}]),t}(),ct=function(t){o(s,t);var i=d(s);function s(t){var a;return e(this,s),(a=i.call(this,t)).ctx=t,a.w=t.w,a.dragged=!1,a.graphics=new b(a.ctx),a.eventList=["mousedown","mouseleave","mousemove","touchstart","touchmove","mouseup","touchend"],a.clientX=0,a.clientY=0,a.startX=0,a.endX=0,a.dragX=0,a.startY=0,a.endY=0,a.dragY=0,a.moveDirection="none",a}return a(s,[{key:"init",value:function(t){var e=this,i=t.xyRatios,a=this.w,s=this;this.xyRatios=i,this.zoomRect=this.graphics.drawRect(0,0,0,0),this.selectionRect=this.graphics.drawRect(0,0,0,0),this.gridRect=a.globals.dom.baseEl.querySelector(".apexcharts-grid"),this.zoomRect.node.classList.add("apexcharts-zoom-rect"),this.selectionRect.node.classList.add("apexcharts-selection-rect"),a.globals.dom.elGraphical.add(this.zoomRect),a.globals.dom.elGraphical.add(this.selectionRect),"x"===a.config.chart.selection.type?this.slDraggableRect=this.selectionRect.draggable({minX:0,minY:0,maxX:a.globals.gridWidth,maxY:a.globals.gridHeight}).on("dragmove",this.selectionDragging.bind(this,"dragging")):"y"===a.config.chart.selection.type?this.slDraggableRect=this.selectionRect.draggable({minX:0,maxX:a.globals.gridWidth}).on("dragmove",this.selectionDragging.bind(this,"dragging")):this.slDraggableRect=this.selectionRect.draggable().on("dragmove",this.selectionDragging.bind(this,"dragging")),this.preselectedSelection(),this.hoverArea=a.globals.dom.baseEl.querySelector("".concat(a.globals.chartClass," .apexcharts-svg")),this.hoverArea.classList.add("apexcharts-zoomable"),this.eventList.forEach((function(t){e.hoverArea.addEventListener(t,s.svgMouseEvents.bind(s,i),{capture:!1,passive:!0})}))}},{key:"destroy",value:function(){this.slDraggableRect&&(this.slDraggableRect.draggable(!1),this.slDraggableRect.off(),this.selectionRect.off()),this.selectionRect=null,this.zoomRect=null,this.gridRect=null}},{key:"svgMouseEvents",value:function(t,e){var i=this.w,a=this,s=this.ctx.toolbar,r=i.globals.zoomEnabled?i.config.chart.zoom.type:i.config.chart.selection.type,n=i.config.chart.toolbar.autoSelected;e.shiftKey?(this.shiftWasPressed=!0,s.enableZoomPanFromToolbar("pan"===n?"zoom":"pan")):this.shiftWasPressed&&(s.enableZoomPanFromToolbar(n),this.shiftWasPressed=!1);var o=e.target.classList;if(!(o.contains("apexcharts-selection-rect")||o.contains("apexcharts-legend-marker")||o.contains("apexcharts-legend-text")||e.target.parentNode.classList.contains("apexcharts-toolbar"))){if(a.clientX="touchmove"===e.type||"touchstart"===e.type?e.touches[0].clientX:"touchend"===e.type?e.changedTouches[0].clientX:e.clientX,a.clientY="touchmove"===e.type||"touchstart"===e.type?e.touches[0].clientY:"touchend"===e.type?e.changedTouches[0].clientY:e.clientY,"mousedown"===e.type&&1===e.which){var l=a.gridRect.getBoundingClientRect();a.startX=a.clientX-l.left,a.startY=a.clientY-l.top,a.dragged=!1,a.w.globals.mousedown=!0}if(("mousemove"===e.type&&1===e.which||"touchmove"===e.type)&&(a.dragged=!0,i.globals.panEnabled?(i.globals.selection=null,a.w.globals.mousedown&&a.panDragging({context:a,zoomtype:r,xyRatios:t})):(a.w.globals.mousedown&&i.globals.zoomEnabled||a.w.globals.mousedown&&i.globals.selectionEnabled)&&(a.selection=a.selectionDrawing({context:a,zoomtype:r}))),"mouseup"===e.type||"touchend"===e.type||"mouseleave"===e.type){var h=a.gridRect.getBoundingClientRect();a.w.globals.mousedown&&(a.endX=a.clientX-h.left,a.endY=a.clientY-h.top,a.dragX=Math.abs(a.endX-a.startX),a.dragY=Math.abs(a.endY-a.startY),(i.globals.zoomEnabled||i.globals.selectionEnabled)&&a.selectionDrawn({context:a,zoomtype:r}),i.globals.panEnabled&&i.config.xaxis.convertedCatToNumeric&&a.delayedPanScrolled()),i.globals.zoomEnabled&&a.hideSelectionRect(this.selectionRect),a.dragged=!1,a.w.globals.mousedown=!1}this.makeSelectionRectDraggable()}}},{key:"makeSelectionRectDraggable",value:function(){var t=this.w;if(this.selectionRect){var e=this.selectionRect.node.getBoundingClientRect();e.width>0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,n=void 0===r?0:r,o=t.translateY,l=void 0===o?0:o,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+n+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),b.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),b.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),n=s.startX-1,o=s.startY,l=!1,h=!1,c=s.clientX-r.left-n,d=s.clientY-r.top-o,g={};return Math.abs(c+n)>a.globals.gridWidth?c=a.globals.gridWidth-n:s.clientX-r.left<0&&(c=n),n>s.clientX-r.left&&(l=!0,c=Math.abs(c)),o>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?n-c:n,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?o-d:o,width:a.globals.gridWidth,height:d}:{x:l?n-c:n,y:h?o-d:o,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,n=0;"resizing"===t&&(n=30);var o=function(t){return parseFloat(r.node.getAttribute(t))},l={x:o("x"),y:o("y"),width:o("width"),height:o("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),n={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,n),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,n)}),n))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,n=this.ctx.toolbar;if(s.startX>s.endX){var o=s.startX;s.startX=s.endX,s.endX=o}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isTimelineBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=f.clone(a.globals.initialConfig.yaxis),p=f.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(p={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var x=new j(s.ctx);u=x.autoScaleY(s.ctx,u,{xaxis:p})}if(n){var b=n.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var m={xaxis:p};a.config.chart.group||(m.yaxis=u),s.ctx.updateHelpers._updateOptions(m,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&n.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var v,y=null;v={min:h,max:c},"xy"!==i&&"y"!==i||(y=f.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:v,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var n=i.globals.isTimelineBar?i.globals.minY:i.globals.minX,o=i.globals.isTimelineBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(n,o)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=f.clone(i.globals.initialConfig.yaxis),r=a.xRatio,n=i.globals.minX,o=i.globals.maxX;i.globals.isTimelineBar&&(r=a.invertedYRatio,n=i.globals.minY,o=i.globals.maxY),"left"===this.moveDirection?(t=n+i.globals.gridWidth/15*r,e=o+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=n-i.globals.gridWidth/15*r,e=o-i.globals.gridWidth/15*r),i.globals.isTimelineBar||(t<i.globals.initialMinX||e>i.globals.initialMaxX)&&(t=n,e=o);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new j(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),s}(ht),dt=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i,this.ctx=i.ctx}return a(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,n=r.globals.gridWidth,o=r.globals.gridHeight,l=n/(r.globals.dataPoints-1),h=o/r.globals.dataPoints,c=i.getBoundingClientRect(),d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(l=n/r.globals.dataPoints);var g=a-c.left-r.globals.barPadForNumericAxis,u=s-c.top;g<0||u<0||g>r.globals.gridWidth||u>r.globals.gridHeight?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var p=Math.round(g/l),x=Math.floor(u/h);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/l),p-=1);for(var b,m=null,v=null,y=[],w=0;w<r.globals.seriesXvalues.length;w++)y.push([r.globals.seriesXvalues[w][0]-1e-6].concat(r.globals.seriesXvalues[w]));return y=y.map((function(t){return t.filter((function(t){return t}))})),b=r.globals.seriesYvalues.map((function(t){return t.filter((function(t){return f.isNumber(t)}))})),r.globals.isXNumeric&&(m=(v=this.closestInMultiArray(g,u,y,b)).index,p=v.j,null!==m&&(y=r.globals.seriesXvalues[m],p=(v=this.closestInArray(g,y)).index)),r.globals.capturedSeriesIndex=null===m?-1:m,(!p||p<1)&&(p=0),r.globals.capturedDataPointIndex=p,{capturedSeries:m,j:r.globals.isBarHorizontal?x:p,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,n=null,o=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):n=0;var l=a[r][0],h=i[r][0],c=Math.abs(t-h),d=Math.abs(e-l),g=d+c;return a.map((function(s,r){s.map((function(s,l){var h=Math.abs(e-a[r][l]),u=Math.abs(t-i[r][l]),f=u+h;f<g&&(g=f,c=u,d=h,n=r,o=l)}))})),{index:n,j:o}}},{key:"getFirstActiveXArray",value:function(t){for(var e=0,i=t.map((function(t,e){return t.length>0?e:-1})),a=0;a<i.length;a++)if(-1!==i[a]){e=i[a];break}return e}},{key:"closestInArray",value:function(t,e){for(var i=e[0],a=null,s=Math.abs(t-i),r=0;r<e.length;r++){var n=Math.abs(t-e[r]);n<s&&(s=n,a=r)}return{index:a}}},{key:"isXoverlap",value:function(t){var e=[],i=this.w.globals.seriesX.filter((function(t){return void 0!==t[0]}));if(i.length>0)for(var a=0;a<i.length-1;a++)void 0!==i[a][t]&&void 0!==i[a+1][t]&&i[a][t]!==i[a+1][t]&&e.push("unEqual");return 0===e.length}},{key:"isInitialSeriesSameLen",value:function(){for(var t=!0,e=this.w.globals.initialSeries,i=0;i<e.length-1;i++)if(e[i].data.length!==e[i+1].data.length){t=!1;break}return t}},{key:"getBarsHeight",value:function(t){return g(t).reduce((function(t,e){return t+e.getBBox().height}),0)}},{key:"getElMarkers",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(" .apexcharts-series-markers")}},{key:"getAllMarkers",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");(t=g(t)).sort((function(t,e){return Number(e.getAttribute("data:realIndex"))<Number(t.getAttribute("data:realIndex"))?0:-1}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(){return this.getElMarkers().length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s<a.length;s++)"enable"===t?(a[s].classList.add("apexcharts-active"),a[s].style.display=e.config.tooltip.items.display):(a[s].classList.remove("apexcharts-active"),a[s].style.display="none")}}]),t}(),gt=function(){function t(i){e(this,t),this.w=i.w,this.ctx=i.ctx,this.ttCtx=i,this.tooltipUtil=new dt(i)}return a(t,[{key:"drawSeriesTexts",value:function(t){var e=t.shared,i=void 0===e||e,a=t.ttItems,s=t.i,r=void 0===s?0:s,n=t.j,o=void 0===n?null:n,l=t.y1,h=t.y2,c=t.e,d=this.w;void 0!==d.config.tooltip.custom?this.handleCustomTooltip({i:r,j:o,y1:l,y2:h,w:d}):this.toggleActiveInactiveSeries(i);var g=this.getValuesToPrint({i:r,j:o});this.printLabels({i:r,j:o,values:g,ttItems:a,shared:i,e:c});var u=this.ttCtx.getElTooltip();this.ttCtx.tooltipRect.ttWidth=u.getBoundingClientRect().width,this.ttCtx.tooltipRect.ttHeight=u.getBoundingClientRect().height}},{key:"printLabels",value:function(t){var e,i=this,a=t.i,s=t.j,r=t.values,o=t.ttItems,l=t.shared,h=t.e,c=this.w,d=r.xVal,g=r.zVal,u=r.xAxisTTVal,f="",p=c.globals.colors[a];null!==s&&c.config.plotOptions.bar.distributed&&(p=c.globals.colors[s]);for(var x=function(t,r){var x=i.getFormatters(a);f=i.getSeriesName({fn:x.yLbTitleFormatter,index:a,seriesIndex:a,j:s}),"treemap"===c.config.chart.type&&(f=x.yLbTitleFormatter(String(c.config.series[a].data[s].x),{series:c.globals.series,seriesIndex:a,dataPointIndex:s,w:c}));var b=c.config.tooltip.inverseOrder?r:t;if(c.globals.axisCharts){var m=function(t){return x.yLbFormatter(c.globals.series[t][s],{series:c.globals.series,seriesIndex:t,dataPointIndex:s,w:c})};l?(x=i.getFormatters(b),f=i.getSeriesName({fn:x.yLbTitleFormatter,index:b,seriesIndex:a,j:s}),p=c.globals.colors[b],e=m(b)):(h&&h.target&&h.target.getAttribute("fill")&&(p=h.target.getAttribute("fill")),e=m(a))}null===s&&(e=x.yLbFormatter(c.globals.series[a],n(n({},c),{},{seriesIndex:a,dataPointIndex:a}))),i.DOMHandling({i:a,t:b,j:s,ttItems:o,values:{val:e,xVal:d,xAxisTTVal:u,zVal:g},seriesName:f,shared:l,pColor:p})},b=0,m=c.globals.series.length-1;b<c.globals.series.length;b++,m--)x(b,m)}},{key:"getFormatters",value:function(t){var e,i=this.w,a=i.globals.yLabelFormatters[t];return void 0!==i.globals.ttVal?Array.isArray(i.globals.ttVal)?(a=i.globals.ttVal[t]&&i.globals.ttVal[t].formatter,e=i.globals.ttVal[t]&&i.globals.ttVal[t].title&&i.globals.ttVal[t].title.formatter):(a=i.globals.ttVal.formatter,"function"==typeof i.globals.ttVal.title.formatter&&(e=i.globals.ttVal.title.formatter)):e=i.config.tooltip.y.title.formatter,"function"!=typeof a&&(a=i.globals.yLabelFormatters[0]?i.globals.yLabelFormatters[0]:function(t){return t}),"function"!=typeof e&&(e=function(t){return t}),{yLbFormatter:a,yLbTitleFormatter:e}}},{key:"getSeriesName",value:function(t){var e=t.fn,i=t.index,a=t.seriesIndex,s=t.j,r=this.w;return e(String(r.globals.seriesNames[i]),{series:r.globals.series,seriesIndex:a,dataPointIndex:s,w:r})}},{key:"DOMHandling",value:function(t){t.i;var e=t.t,i=(t.j,t.ttItems),a=t.values,s=t.seriesName,r=t.shared,n=t.pColor,o=this.w,l=this.ttCtx,h=a.val,c=a.xVal,d=a.xAxisTTVal,g=a.zVal,u=null;u=i[e].children,o.config.tooltip.fillSeriesColor&&(i[e].style.backgroundColor=n,u[0].style.display="none"),l.showTooltipTitle&&(null===l.tooltipTitle&&(l.tooltipTitle=o.globals.dom.baseEl.querySelector(".apexcharts-tooltip-title")),l.tooltipTitle.innerHTML=c),l.blxaxisTooltip&&(l.xaxisTooltipText.innerHTML=""!==d?d:c);var f=i[e].querySelector(".apexcharts-tooltip-text-label");f&&(f.innerHTML=s||"");var p=i[e].querySelector(".apexcharts-tooltip-text-value");(p&&(p.innerHTML=void 0!==h?h:""),u[0]&&u[0].classList.contains("apexcharts-tooltip-marker")&&(o.config.tooltip.marker.fillColors&&Array.isArray(o.config.tooltip.marker.fillColors)&&(n=o.config.tooltip.marker.fillColors[e]),u[0].style.backgroundColor=n),o.config.tooltip.marker.show||(u[0].style.display="none"),null!==g)&&(i[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=o.config.tooltip.z.title,i[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==g?g:"");r&&u[0]&&(null==h||o.globals.collapsedSeriesIndices.indexOf(e)>-1?u[0].parentNode.style.display="none":u[0].parentNode.style.display=o.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",n="",o=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new W(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new Y(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(o=c(a.globals.seriesZ[e][i],a)),n="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(n)?n.join(" "):n,zVal:o}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,n=this.ttCtx.getElTooltip(),o=r.config.tooltip.custom;Array.isArray(o)&&o[e]&&(o=o[e]),n.innerHTML=o({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(i){e(this,t),this.ttCtx=i,this.ctx=i.ctx,this.w=i.w}return a(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,n=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/n*e),null!==s&&(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.blxaxisTooltip){var o=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(o=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(o)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&b.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&b.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new b(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,n=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(n-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=n+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),n=s.tooltipRect,o=null!==i?parseFloat(i):1,l=parseFloat(t)+o+5,h=parseFloat(e)+o/2;if(l>a.globals.gridWidth/2&&(l=l-n.ttWidth-o-15),l>a.globals.gridWidth-n.ttWidth-10&&(l=a.globals.gridWidth-n.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-n.ttHeight/2}else a.globals.isBarHorizontal?h-=n.ttHeight:(n.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-n.ttHeight+a.globals.translateY),h<0&&(h=0));isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r<s.length;r++)parseInt(s[r].getAttribute("rel"),10)===e&&(a.marker.resetPointsSize(),a.marker.enlargeCurrentPoint(e,s[r]));else a.marker.resetPointsSize(),this.moveDynamicPointOnHover(e,t)}},{key:"moveDynamicPointOnHover",value:function(t,e){var i,a,s=this.w,r=this.ttCtx,n=s.globals.pointsArray,o=r.tooltipUtil.getHoverMarkerSize(e),l=s.config.series[e].type;if(!l||"column"!==l&&"candlestick"!==l&&"boxPlot"!==l){i=n[e][t][0],a=n[e][t][1]?n[e][t][1]:0;var h=s.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e,"'] .apexcharts-series-markers circle"));h&&a<s.globals.gridHeight&&a>0&&(h.setAttribute("r",o),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,o)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,n=a.globals.pointsArray;e=new M(this.ctx).getActiveConfigSeriesIndex(!0);var o=i.tooltipUtil.getHoverMarkerSize(e);n[e]&&(s=n[e][t][0],r=n[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h<a.globals.series.length;h++){var c=n[h];if(a.globals.comboCharts&&void 0===c&&l.splice(h,0,null),c&&c.length){var d=n[h][t][1];l[h].setAttribute("cx",s),null!==d&&!isNaN(d)&&d<a.globals.gridHeight&&d>0?(l[h]&&l[h].setAttribute("r",o),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var g=r||a.globals.gridHeight;this.moveTooltip(s,g,o)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new M(this.ctx).getActiveConfigSeriesIndex(!1,"desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),n=r?parseFloat(r.getAttribute("cx")):0,o=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,h=r?parseFloat(r.getAttribute("barHeight")):0,c=i.getElGrid().getBoundingClientRect();if(e.globals.isXNumeric?(n-=a%2!=0?l/2:0,(r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area"))&&e.globals.comboCharts&&(n-=l/2)):e.globals.isBarHorizontal||(n=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(n)&&(n=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?o+=h/3:o=i.e.clientY-c.top-i.tooltipRect.ttHeight/2,e.globals.isBarHorizontal||this.moveXCrosshairs(n),!i.fixedTooltip){var d=o||e.globals.gridHeight;this.moveTooltip(n,d)}}}]),t}(),ft=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i,this.ctx=i.ctx,this.tooltipPosition=new ut(i)}return a(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new b(this.ctx),i=new P(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=g(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s<a.length;s++){var r=a[s].querySelector(".apexcharts-series-markers-wrap");if(null!==r){var n=void 0,o="apexcharts-marker w".concat((Math.random()+1).toString(36).substring(4));"line"!==t.config.chart.type&&"area"!==t.config.chart.type||t.globals.comboCharts||t.config.tooltip.intersect||(o+=" no-pointer-events");var l=i.getMarkerConfig(o,s);(n=e.drawMarker(0,0,l)).node.setAttribute("default-marker-size",0);var h=document.createElementNS(t.globals.SVGNS,"g");h.classList.add("apexcharts-series-markers"),h.appendChild(n.node),r.appendChild(h)}}}},{key:"enlargeCurrentPoint",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),n=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,n=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var o=this.ttCtx.getElGrid(),l=o.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,n,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),n=e.config.markers.hover.size,o=0;o<r.length;o++){var l=r[o].getAttribute("rel"),h=r[o].getAttribute("index");if(void 0===n&&(n=e.globals.markers.size[h]+e.config.markers.hover.sizeOffset),s===parseInt(l,10)){i.newPointSize(s,r[o]);var c=r[o].getAttribute("cx"),d=r[o].getAttribute("cy");i.tooltipPosition.moveXCrosshairs(c),a.fixedTooltip||i.tooltipPosition.moveTooltip(c,d,n)}else i.oldPointSize(r[o])}}},{key:"newPointSize",value:function(t,e){var i=this.w,a=i.config.markers.hover.size,s=0===t?e.parentNode.firstChild:e.parentNode.lastChild;if("0"!==s.getAttribute("default-marker-size")){var r=parseInt(s.getAttribute("index"),10);void 0===a&&(a=i.globals.markers.size[r]+i.config.markers.hover.sizeOffset),s.setAttribute("r",a)}}},{key:"oldPointSize",value:function(t){var e=parseFloat(t.getAttribute("default-marker-size"));t.setAttribute("r",e)}},{key:"resetPointsSize",value:function(){for(var t=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),e=0;e<t.length;e++){var i=parseFloat(t[e].getAttribute("default-marker-size"));f.isNumber(i)?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),pt=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i}return a(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,n=this.ttCtx,o=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(n.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),o.globals.capturedSeriesIndex=l,o.globals.capturedDataPointIndex=h,a=c+n.tooltipRect.ttWidth/2+g,s=d+n.tooltipRect.ttHeight/2-u/2,n.tooltipPosition.moveXCrosshairs(c+g/2),a>o.globals.gridWidth/2&&(a=c-n.tooltipRect.ttWidth/2+g),n.w.config.tooltip.followCursor){var f=o.globals.dom.elWrap.getBoundingClientRect();a=o.globals.clientX-f.left-n.tooltipRect.ttWidth/2,s=o.globals.clientY-f.top-n.tooltipRect.ttHeight-5}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,n=t.y,o=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=f.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&o.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),o.globals.capturedSeriesIndex=e,o.globals.capturedDataPointIndex=i,r=h,n=c+o.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();n=l.e.clientY+o.globals.translateY-u.top}d<0&&(n=c),l.marker.enlargeCurrentPoint(i,s.paths,r,n)}return{x:r,y:n}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,n=this.ttCtx,o=n.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)?c=r.globals.svgHeight-n.tooltipRect.ttHeight:c<0&&(c=0);var f=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(h+n.tooltipRect.ttWidth>r.globals.gridWidth&&!p?h-=n.tooltipRect.ttWidth:h<0&&(h=0),n.w.config.tooltip.followCursor){var x=n.getElGrid().getBoundingClientRect();c=n.e.clientY-x.top}null===n.tooltip&&(n.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?n.tooltipPosition.moveXCrosshairs(l+i/2):n.tooltipPosition.moveXCrosshairs(l)),!n.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars())&&(p&&(h-=n.tooltipRect.ttWidth)<0&&(h=0),o.style.left=h+r.globals.translateX+"px",!p||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),n.tooltipRect.ttHeight+c>r.globals.gridHeight?(c=r.globals.gridHeight-n.tooltipRect.ttHeight+r.globals.translateY,o.style.top=c+"px"):o.style.top=c+r.globals.translateY-n.tooltipRect.ttHeight/2+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,n=0,o=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var g=e.target,u=g.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute("cx"),10),m=parseInt(g.getAttribute("cy"),10);h=parseFloat(g.getAttribute("barWidth"));var v="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute("j"),10),n=parseInt(g.parentNode.getAttribute("rel"),10)-1;var y=g.getAttribute("data-range-y1"),w=g.getAttribute("data-range-y2");a.globals.comboCharts&&(n=parseInt(g.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:n,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(o=v-f.left+15,l=m-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(o=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((o=b)<r.xyRatios.baseLineInvertedY&&(o=b-r.tooltipRect.ttWidth),l=m-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(o=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=m)}return{x:o,y:l,barHeight:c,barWidth:h,i:n,j:s}}}]),t}(),xt=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i}return a(t,[{key:"drawXaxisTooltip",value:function(){var t=this.w,e=this.ttCtx,i="bottom"===t.config.xaxis.position;e.xaxisOffY=i?t.globals.gridHeight+1:-t.globals.xAxisHeight-t.config.xaxis.axisTicks.height+3;var a=i?"apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom":"apexcharts-xaxistooltip apexcharts-xaxistooltip-top",s=t.globals.dom.elWrap;e.blxaxisTooltip&&(null===t.globals.dom.baseEl.querySelector(".apexcharts-xaxistooltip")&&(e.xaxisTooltip=document.createElement("div"),e.xaxisTooltip.setAttribute("class",a+" apexcharts-theme-"+t.config.tooltip.theme),s.appendChild(e.xaxisTooltip),e.xaxisTooltipText=document.createElement("div"),e.xaxisTooltipText.classList.add("apexcharts-xaxistooltip-text"),e.xaxisTooltipText.style.fontFamily=t.config.xaxis.tooltip.style.fontFamily||t.config.chart.fontFamily,e.xaxisTooltipText.style.fontSize=t.config.xaxis.tooltip.style.fontSize,e.xaxisTooltip.appendChild(e.xaxisTooltipText)))}},{key:"drawYaxisTooltip",value:function(){for(var t=this.w,e=this.ttCtx,i=function(i){var a=t.config.yaxis[i].opposite||t.config.yaxis[i].crosshairs.opposite;e.yaxisOffX=a?t.globals.gridWidth+1:1;var s="apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i,a?" apexcharts-yaxistooltip-right":" apexcharts-yaxistooltip-left");t.globals.yAxisSameScaleIndices.map((function(e,a){e.map((function(e,a){a===i&&(s+=t.config.yaxis[a].show?" ":" apexcharts-yaxistooltip-hidden")}))}));var r=t.globals.dom.elWrap;null===t.globals.dom.baseEl.querySelector(".apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(i))&&(e.yaxisTooltip=document.createElement("div"),e.yaxisTooltip.setAttribute("class",s+" apexcharts-theme-"+t.config.tooltip.theme),r.appendChild(e.yaxisTooltip),0===i&&(e.yaxisTooltipText=[]),e.yaxisTooltipText[i]=document.createElement("div"),e.yaxisTooltipText[i].classList.add("apexcharts-yaxistooltip-text"),e.yaxisTooltip.appendChild(e.yaxisTooltipText[i]))},a=0;a<t.config.yaxis.length;a++)i(a)}},{key:"setXCrosshairWidth",value:function(){var t=this.w,e=this.ttCtx,i=e.getElXCrosshairs();if(e.xcrosshairsWidth=parseInt(t.config.xaxis.crosshairs.width,10),t.globals.comboCharts){var a=t.globals.dom.baseEl.querySelector(".apexcharts-bar-area");if(null!==a&&"barWidth"===t.config.xaxis.crosshairs.width){var s=parseFloat(a.getAttribute("barWidth"));e.xcrosshairsWidth=s}else if("tickWidth"===t.config.xaxis.crosshairs.width){var r=t.globals.labels.length;e.xcrosshairsWidth=t.globals.gridWidth/r}}else if("tickWidth"===t.config.xaxis.crosshairs.width){var n=t.globals.labels.length;e.xcrosshairsWidth=t.globals.gridWidth/n}else if("barWidth"===t.config.xaxis.crosshairs.width){var o=t.globals.dom.baseEl.querySelector(".apexcharts-bar-area");if(null!==o){var l=parseFloat(o.getAttribute("barWidth"));e.xcrosshairsWidth=l}else e.xcrosshairsWidth=1}t.globals.isBarHorizontal&&(e.xcrosshairsWidth=0),null!==i&&e.xcrosshairsWidth>0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var n=a.getElGrid().getBoundingClientRect(),o=(e-n.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-o);a.tooltipPosition.moveYCrosshairs(e-n.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.tConfig=a.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new ft(this),this.intersect=new pt(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!a.globals.isBarHorizontal&&this.tConfig.shared}return a(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip")}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.blxaxisTooltip=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new G(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this.w,i=[],a=this.getElTooltip(),s=0;s<t;s++){var r=document.createElement("div");r.classList.add("apexcharts-tooltip-series-group"),r.style.order=e.config.tooltip.inverseOrder?t-s:s+1,this.tConfig.shared&&this.tConfig.enabledOnSeries&&Array.isArray(this.tConfig.enabledOnSeries)&&this.tConfig.enabledOnSeries.indexOf(s)<0&&r.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=e.globals.colors[s],r.appendChild(n);var o=document.createElement("div");o.classList.add("apexcharts-tooltip-text"),o.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,o.style.fontSize=this.tConfig.style.fontSize;var l=document.createElement("div");l.classList.add("apexcharts-tooltip-y-group");var h=document.createElement("span");h.classList.add("apexcharts-tooltip-text-label"),l.appendChild(h);var c=document.createElement("span");c.classList.add("apexcharts-tooltip-text-value"),l.appendChild(c);var d=document.createElement("div");d.classList.add("apexcharts-tooltip-z-group");var g=document.createElement("span");g.classList.add("apexcharts-tooltip-text-z-label"),d.appendChild(g);var u=document.createElement("span");u.classList.add("apexcharts-tooltip-text-z-value"),d.appendChild(u),o.appendChild(l),o.appendChild(d),r.appendChild(o),a.appendChild(r),i.push(r)}return i}},{key:"addSVGEvents",value:function(){var t=this.w,e=t.config.chart.type,i=this.getElTooltip(),a=!("bar"!==e&&"candlestick"!==e&&"boxPlot"!==e&&"rangeBar"!==e),s="area"===e||"line"===e||"scatter"===e||"bubble"===e||"radar"===e,r=t.globals.dom.Paper.node,n=this.getElGrid();n&&(this.seriesBound=n.getBoundingClientRect());var o,l=[],h=[],c={hoverArea:r,elGrid:n,tooltipEl:i,tooltipY:l,tooltipX:h,ttItems:this.ttItems};if(t.globals.axisCharts&&(s?o=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:longestSeries='true'] .apexcharts-marker"):a?o=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area"):"heatmap"!==e&&"treemap"!==e||(o=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap")),o&&o.length))for(var d=0;d<o.length;d++)l.push(o[d].getAttribute("cy")),h.push(o[d].getAttribute("cx"));if(t.globals.xyCharts&&!this.showOnIntersect||t.globals.comboCharts&&!this.showOnIntersect||a&&this.tooltipUtil.hasBars()&&this.tConfig.shared)this.addPathsEventListeners([r],c);else if(a&&!t.globals.comboCharts||s&&this.showOnIntersect)this.addDatapointEventsListeners(c);else if(!t.globals.axisCharts||"heatmap"===e||"treemap"===e){var g=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");this.addPathsEventListeners(g,c)}if(this.showOnIntersect){var u=t.globals.dom.baseEl.querySelectorAll(".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker");u.length>0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,n=this.tConfig.fixed.offsetY,o=this.tConfig.fixed.position.toLowerCase();return o.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),o.indexOf("bottom")>-1&&(n=n+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=n+"px",{x:r,y:n,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.seriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s<t.length;s++)a(s)}},{key:"seriesHover",value:function(t,e){var i=this,a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,n=this.getElTooltip();(i.tooltipRect={x:0,y:0,ttWidth:n.getBoundingClientRect().width,ttHeight:n.getBoundingClientRect().height},i.e=s,!i.tooltipUtil.hasBars()||r.globals.comboCharts||i.isBarShared)||this.tConfig.onDatasetHover.highlightDataSeries&&new M(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,n=s.elGrid.getBoundingClientRect(),o="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=o,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,l<n.top||l>n.top+n.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,o,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;p<r.config.yaxis.length;p++)this.axesTooltip.drawYaxisTooltipText(p,l,this.xyRatios);s.tooltipEl.classList.add("apexcharts-active")}else"mouseout"!==a.type&&"touchend"!==a.type||this.handleMouseOut(s)}}},{key:"nonAxisChartsTooltips",value:function(t){var e=t.e,i=t.opt,a=t.tooltipRect,s=this.w,r=i.paths.getAttribute("rel"),n=this.getElTooltip(),o=s.globals.dom.elWrap.getBoundingClientRect();if("mousemove"===e.type||"touchmove"===e.type){n.classList.add("apexcharts-active"),this.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:parseInt(r,10)-1,shared:!1});var l=s.globals.clientX-o.left-a.ttWidth/2,h=s.globals.clientY-o.top-a.ttHeight-10;if(n.style.left=l+"px",n.style.top=h+"px",s.config.legend.tooltipHoverFormatter){var c=r-1,d=(0,s.config.legend.tooltipHoverFormatter)(this.legendLabels[c].getAttribute("data:default-text"),{seriesIndex:c,dataPointIndex:c,w:s});this.legendLabels[c].innerHTML=d}}else"mouseout"!==e.type&&"touchend"!==e.type||(n.classList.remove("apexcharts-active"),s.config.legend.tooltipHoverFormatter&&this.legendLabels.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)})))}},{key:"handleStickyTooltip",value:function(t,e,i,a){var s=this.w,r=this.tooltipUtil.getNearestValues({context:this,hoverArea:a.hoverArea,elGrid:a.elGrid,clientX:e,clientY:i}),n=r.j,o=r.capturedSeries;r.hoverX<0||r.hoverX>s.globals.gridWidth?this.handleMouseOut(a):null!==o?this.handleStickyCapturedSeries(t,o,a,n):(this.tooltipUtil.isXoverlap(n)||s.globals.isBarHorizontal)&&this.create(t,this,0,n,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;null===s.globals.series[e][a]?this.handleMouseOut(i):void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new b(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a<i.length;a++)e.pathMouseLeave(i[a])}},{key:"handleMouseOut",value:function(t){var e=this.w,i=this.getElXCrosshairs();if(t.tooltipEl.classList.remove("apexcharts-active"),this.deactivateHoverFilter(),"bubble"!==e.config.chart.type&&this.marker.resetPointsSize(),null!==i&&i.classList.remove("apexcharts-active"),null!==this.ycrosshairs&&this.ycrosshairs.classList.remove("apexcharts-active"),this.blxaxisTooltip&&this.xaxisTooltip.classList.remove("apexcharts-active"),this.yaxisTooltips.length){null===this.yaxisTTEls&&(this.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));for(var a=0;a<this.yaxisTTEls.length;a++)this.yaxisTTEls[a].classList.remove("apexcharts-active")}e.config.legend.tooltipHoverFormatter&&this.legendLabels.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}))}},{key:"markerClick",value:function(t,e,i){var a=this.w;"function"==typeof a.config.chart.events.markerClick&&a.config.chart.events.markerClick(t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}),this.ctx.events.fireEvent("markerClick",[t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}])}},{key:"create",value:function(t,e,i,a,s){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=this.w,o=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===r&&(r=this.tConfig.shared);var l=this.tooltipUtil.hasMarkers(),h=this.tooltipUtil.getElBars();if(n.config.legend.tooltipHoverFormatter){var c=n.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var g=0;g<d.length;g++){var u=d[g],f=parseInt(u.getAttribute("i"),10),p=decodeURIComponent(u.getAttribute("data:default-text")),x=c(p,{seriesIndex:r?f:i,dataPointIndex:a,w:n});if(r)u.innerHTML=n.globals.collapsedSeriesIndices.indexOf(f)<0?x:p;else if(u.innerHTML=f===i?x:p,i===f)break}}if(r){if(o.tooltipLabels.drawSeriesTexts({ttItems:s,i:i,j:a,shared:!this.showOnIntersect&&this.tConfig.shared}),l&&(n.globals.markers.largestSize>0?o.marker.enlargePoints(a):o.tooltipPosition.moveDynamicPointsOnHover(a)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var m=new b(this.ctx),v=n.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y<v.length;y++)m.pathMouseEnter(v[y])}}else o.tooltipLabels.drawSeriesTexts({shared:!1,ttItems:s,i:i,j:a}),this.tooltipUtil.hasBars()&&o.tooltipPosition.moveStickyTooltipOverBars(a),l&&o.tooltipPosition.moveMarkers(i,a)}}]),t}(),mt=function(t){o(s,t);var i=d(s);function s(){return e(this,s),i.apply(this,arguments)}return a(s,[{key:"draw",value:function(t,e){var i=this,a=this.w;this.graphics=new b(this.ctx),this.bar=new X(this.ctx,this.xyRatios);var s=new y(this.ctx,a);t=s.getLogSeries(t),this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),"100%"===a.config.chart.stackType&&(t=a.globals.seriesPercent.slice()),this.series=t,this.totalItems=0,this.prevY=[],this.prevX=[],this.prevYF=[],this.prevXF=[],this.prevYVal=[],this.prevXVal=[],this.xArrj=[],this.xArrjF=[],this.xArrjVal=[],this.yArrj=[],this.yArrjF=[],this.yArrjVal=[];for(var r=0;r<t.length;r++)t[r].length>0&&(this.totalItems+=t[r].length);for(var o=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,h=0,c=function(s,r){var c=void 0,d=void 0,g=void 0,u=void 0,p=[],x=[],b=a.globals.comboCharts?e[s]:s;i.yRatio.length>1&&(i.yaxisIndex=b),i.isReversed=a.config.yaxis[i.yaxisIndex]&&a.config.yaxis[i.yaxisIndex].reversed;var m=i.graphics.group({class:"apexcharts-series",seriesName:f.escapeString(a.globals.seriesNames[b]),rel:s+1,"data:realIndex":b});i.ctx.series.addCollapsedClassToSeries(m,b);var v=i.graphics.group({class:"apexcharts-datalabels","data:realIndex":b}),y=0,w=0,k=i.initialPositions(l,h,c,d,g,u);h=k.y,y=k.barHeight,d=k.yDivision,u=k.zeroW,l=k.x,w=k.barWidth,c=k.xDivision,g=k.zeroH,i.yArrj=[],i.yArrjF=[],i.yArrjVal=[],i.xArrj=[],i.xArrjF=[],i.xArrjVal=[],1===i.prevY.length&&i.prevY[0].every((function(t){return isNaN(t)}))&&(i.prevY[0]=i.prevY[0].map((function(t){return g})),i.prevYF[0]=i.prevYF[0].map((function(t){return 0})));for(var A=0;A<a.globals.dataPoints;A++){var S=i.barHelpers.getStrokeWidth(s,A,b),C={indexes:{i:s,j:A,realIndex:b,bc:r},strokeWidth:S,x:l,y:h,elSeries:m},L=null;i.isHorizontal?(L=i.drawStackedBarPaths(n(n({},C),{},{zeroW:u,barHeight:y,yDivision:d})),w=i.series[s][A]/i.invertedYRatio):(L=i.drawStackedColumnPaths(n(n({},C),{},{xDivision:c,barWidth:w,zeroH:g})),y=i.series[s][A]/i.yRatio[i.yaxisIndex]),h=L.y,l=L.x,p.push(l),x.push(h);var P=i.barHelpers.getPathFillColor(t,s,A,b);m=i.renderSeries({realIndex:b,pathFill:P,j:A,i:s,pathFrom:L.pathFrom,pathTo:L.pathTo,strokeWidth:S,elSeries:m,x:l,y:h,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:v,type:"bar",visibleSeries:0})}a.globals.seriesXvalues[b]=p,a.globals.seriesYvalues[b]=x,i.prevY.push(i.yArrj),i.prevYF.push(i.yArrjF),i.prevYVal.push(i.yArrjVal),i.prevX.push(i.xArrj),i.prevXF.push(i.xArrjF),i.prevXVal.push(i.xArrjVal),o.add(m)},d=0,g=0;d<t.length;d++,g++)c(d,g);return o}},{key:"initialPositions",value:function(t,e,i,a,s,r){var n,o,l=this.w;return this.isHorizontal?(n=(n=a=l.globals.gridHeight/l.globals.dataPoints)*parseInt(l.config.plotOptions.bar.barHeight,10)/100,r=this.baseLineInvertedY+l.globals.padHorizontal+(this.isReversed?l.globals.gridWidth:0)-(this.isReversed?2*this.baseLineInvertedY:0),e=(a-n)/2):(o=i=l.globals.gridWidth/l.globals.dataPoints,o=l.globals.isXNumeric&&l.globals.dataPoints>1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:o*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=this.baseLineY[this.yaxisIndex]+(this.isReversed?l.globals.gridHeight:0)-(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-o)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:n,barWidth:o,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,n=t.x,o=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=o,g=i.i,u=i.j,f=0,p=0;p<this.prevXF.length;p++)f+=this.prevXF[p][u];if(g>0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+f-2*(this.isReversed?f:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-f+2*(this.isReversed?f:0)),e=x}else e=r;n=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:n,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),o+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,x:n,y:o}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,n=t.zeroH,o=(t.strokeWidth,t.elSeries),l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,f=i,p=0,x=0;x<this.prevYF.length;x++)p+=isNaN(this.prevYF[x][c])?0:this.prevYF[x][c];if(h>0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,m,v=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y<v;y++)if(!isNaN(this.prevY[h-y][c])){m=this.prevY[h-y][c];break}for(var w=1;w<v;w++){if(this.prevYVal[h-w][c]<0){b=this.series[h][c]>=0?m-p+2*(this.isReversed?p:0):m;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?m:m+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?l.globals.gridHeight-n:b}else u=l.globals.gridHeight-n;a=u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0);var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:f,x2:r,elSeries:o}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(X),vt=function(t){o(s,t);var i=d(s);function s(){return e(this,s),i.apply(this,arguments)}return a(s,[{key:"draw",value:function(t,e){var i=this,a=this.w,s=new b(this.ctx),r=new L(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot;var n=new y(this.ctx,a);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var o=s.group({class:"apexcharts-".concat(a.config.chart.type,"-series apexcharts-plot-series")}),l=function(n){i.isBoxPlot="boxPlot"===a.config.chart.type||"boxPlot"===a.config.series[n].type;var l,h,c=void 0,d=void 0,g=[],u=[],p=a.globals.comboCharts?e[n]:n,x=s.group({class:"apexcharts-series",seriesName:f.escapeString(a.globals.seriesNames[p]),rel:n+1,"data:realIndex":p});t[n].length>0&&(i.visibleI=i.visibleI+1);var b,m;i.yRatio.length>1&&(i.yaxisIndex=p);var v=i.barHelpers.initialPositions();d=v.y,b=v.barHeight,c=v.x,m=v.barWidth,l=v.xDivision,h=v.zeroH,u.push(c+m/2);for(var y=s.group({class:"apexcharts-datalabels","data:realIndex":p}),w=function(e){var s=i.barHelpers.getStrokeWidth(n,e,p),o=i.drawBoxPaths({indexes:{i:n,j:e,realIndex:p},x:c,y:d,xDivision:l,barWidth:m,zeroH:h,strokeWidth:s,elSeries:x});d=o.y,c=o.x,e>0&&u.push(c+m/2),g.push(d),o.pathTo.forEach((function(l,h){var g=!i.isBoxPlot&&i.candlestickOptions.wick.useFillColor?o.color[h]:a.globals.stroke.colors[n],u=r.fillPath({seriesNumber:p,dataPointIndex:e,color:o.color[h],value:t[n][e]});i.renderSeries({realIndex:p,pathFill:u,lineFill:g,j:e,i:n,pathFrom:o.pathFrom,pathTo:l,strokeWidth:s,elSeries:x,x:c,y:d,series:t,barHeight:b,barWidth:m,elDataLabelsWrap:y,visibleSeries:i.visibleI,type:a.config.chart.type})}))},k=0;k<a.globals.dataPoints;k++)w(k);a.globals.seriesXvalues[p]=u,a.globals.seriesYvalues[p]=g,o.add(x)},h=0;h<t.length;h++)l(h);return o}},{key:"drawBoxPaths",value:function(t){var e=t.indexes,i=t.x,a=(t.y,t.xDivision),s=t.barWidth,r=t.zeroH,n=t.strokeWidth,o=this.w,l=new b(this.ctx),h=e.i,c=e.j,d=!0,g=o.config.plotOptions.candlestick.colors.upward,u=o.config.plotOptions.candlestick.colors.downward,f="";this.isBoxPlot&&(f=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var p=this.yRatio[this.yaxisIndex],x=e.realIndex,m=this.getOHLCValue(x,c),v=r,y=r;m.o>m.c&&(d=!1);var w=Math.min(m.o,m.c),k=Math.max(m.o,m.c),A=m.m;o.globals.isXNumeric&&(i=(o.globals.seriesX[x][c]-o.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/p,k=r-k/p,v=r-m.h/p,y=r-m.l/p,A=r-m.m/p);var C=l.move(S,r),L=l.move(S+s/2,w);return o.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+n/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-n/2)],L+=l.move(S,w),o.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(X),yt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,n=s.config.plotOptions[t].shadeIntensity,o=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?o.percent<0?o.percent/100*(1.25*n):(1-o.percent/100)*(1.25*n):o.percent<=0?1-(1+o.percent/100)*n:(1-o.percent/100)*n:(r=1-o.percent/100,"treemap"===t&&(r=(1-o.percent/100)*(1.25*n)));var l=o.color,h=new f;return s.config.plotOptions[t].enableShades&&(r<0&&(r=0),l="dark"===this.w.config.theme.mode?f.hexToRgba(h.shadeColor(-1*r,o.color),s.config.fill.opacity):f.hexToRgba(h.shadeColor(r,o.color),s.config.fill.opacity)),{color:l,colorProps:o}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],n=r.colorScale.inverse?i:e;a.config.plotOptions[t].distributed&&(n=i);var o=a.globals.colors[n],l=null,h=Math.min.apply(Math,g(a.globals.series[e])),c=Math.max.apply(Math,g(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.min<a.globals.minY?r.colorScale.min:a.globals.minY,c=r.colorScale.max>a.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),u=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){o=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);u=100*s/(0===i?i-1e-6:i)}}));return{color:o,foreColor:l,percent:u}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,n=t.colorProps,o=t.fontSize,l=this.w.config.dataLabels,h=new b(this.ctx),c=new z(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:n.foreColor,parent:d,fontSize:o,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new b(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),wt=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new yt(i),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return a(t,[{key:"draw",value:function(t){var e=this.w,i=new b(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,n=0,o=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(o=!0,l.reverse());for(var h=o?0:l.length-1;o?h<l.length:h>=0;o?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:f.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new x(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p<l[h].length;p++){var m=this.helpers.getShadeColor(e.config.chart.type,h,p,this.negRange),v=m.color,y=m.colorProps;if("image"===e.config.fill.type)v=new L(this.ctx).fillPath({seriesNumber:h,dataPointIndex:p,opacity:e.globals.hasNegs?y.percent<0?1-(1+y.percent/100):u+y.percent/100:y.percent/100,patternID:f.randomId(),width:e.config.fill.image.width?e.config.fill.image.width:s,height:e.config.fill.image.height?e.config.fill.image.height:r});var w=this.rectRadius,k=i.drawRect(g,n,s,r,w);if(k.attr({cx:g,cy:n}),k.node.classList.add("apexcharts-heatmap-rect"),c.add(k),k.attr({fill:v,i:h,index:h,j:p,val:l[h][p],"stroke-width":this.strokeWidth,stroke:e.config.plotOptions.heatmap.useFillColorAsStroke?v:e.globals.stroke.colors[0],color:v}),this.helpers.addListeners(k),e.config.chart.animations.enabled&&!e.globals.dataChanged){var A=1;e.globals.resized||(A=e.config.chart.animations.speed),this.animateHeatMap(k,g,n,s,r,A)}if(e.globals.dataChanged){var S=1;if(this.dynamicAnim.enabled&&e.globals.shouldAnimate){S=this.dynamicAnim.speed;var C=e.globals.previousPaths[h]&&e.globals.previousPaths[h][p]&&e.globals.previousPaths[h][p].color;C||(C="rgba(255, 255, 255, 0)"),this.animateHeatColor(k,f.isColorHex(C)?C:f.rgb2hex(C),f.isColorHex(v)?v:f.rgb2hex(v),S)}}var P=(0,e.config.dataLabels.formatter)(e.globals.series[h][p],{value:e.globals.series[h][p],seriesIndex:h,dataPointIndex:p,w:e}),T=this.helpers.calculateDataLabels({text:P,x:g+s/2,y:n+r/2,i:h,j:p,colorProps:y,series:l});null!==T&&c.add(T),g+=s}n+=r,a.add(c)}var z=e.globals.yAxisScale[0].result.slice();e.config.yaxis[0].reversed?z.unshift(""):z.push(""),e.globals.yAxisScale[0].result=z;var I=e.globals.gridHeight/e.globals.series.length;return e.config.yaxis[0].labels.offsetY=-I/2,a}},{key:"animateHeatMap",value:function(t,e,i,a,s,r){var n=new p(this.ctx);n.animateRect(t,{x:e+a/2,y:i+s/2,width:0,height:0},{x:e,y:i,width:a,height:s},r,(function(){n.animationCompleted(t)}))}},{key:"animateHeatColor",value:function(t,e,i,a){t.attr({fill:e}).animate(a).attr({fill:i})}}]),t}(),kt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"drawYAxisTexts",value:function(t,e,i,a){var s=this.w,r=s.config.yaxis[0],n=s.globals.yLabelFormatters[0];return new b(this.ctx).drawText({x:t+r.labels.offsetX,y:e+r.labels.offsetY,text:n(a,i),textAnchor:"middle",fontSize:r.labels.style.fontSize,fontFamily:r.labels.style.fontFamily,foreColor:Array.isArray(r.labels.style.colors)?r.labels.style.colors[i]:r.labels.style.colors})}}]),t}(),At=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels,this.lineColorArr=void 0!==a.globals.stroke.colors?a.globals.stroke.colors:a.globals.colors,this.defaultSize=Math.min(a.globals.gridWidth,a.globals.gridHeight),this.centerY=this.defaultSize/2,this.centerX=a.globals.gridWidth/2,"radialBar"===a.config.chart.type?this.fullAngle=360:this.fullAngle=Math.abs(a.config.plotOptions.pie.endAngle-a.config.plotOptions.pie.startAngle),this.initialAngle=a.config.plotOptions.pie.startAngle%this.fullAngle,a.globals.radialSize=this.defaultSize/2.05-a.config.stroke.width-(a.config.chart.sparkline.enabled?0:a.config.chart.dropShadow.blur),this.donutSize=a.globals.radialSize*parseInt(a.config.plotOptions.pie.donut.size,10)/100,this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSectorAngleArr=[]}return a(t,[{key:"draw",value:function(t){var e=this,i=this.w,a=new b(this.ctx);if(this.ret=a.group({class:"apexcharts-pie"}),i.globals.noData)return this.ret;for(var s=0,r=0;r<t.length;r++)s+=f.negToZero(t[r]);var n=[],o=a.group();0===s&&(s=1e-5),t.forEach((function(t){e.maxY=Math.max(e.maxY,t)})),i.config.yaxis[0].max&&(this.maxY=i.config.yaxis[0].max),"back"===i.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(this.ret);for(var l=0;l<t.length;l++){var h=this.fullAngle*f.negToZero(t[l])/s;n.push(h),"polarArea"===this.chartType?(n[l]=this.fullAngle/t.length,this.sliceSizes.push(i.globals.radialSize*t[l]/this.maxY)):this.sliceSizes.push(i.globals.radialSize)}if(i.globals.dataChanged){for(var c,d=0,g=0;g<i.globals.previousPaths.length;g++)d+=f.negToZero(i.globals.previousPaths[g]);for(var u=0;u<i.globals.previousPaths.length;u++)c=this.fullAngle*f.negToZero(i.globals.previousPaths[u])/d,this.prevSectorAngleArr.push(c)}this.donutSize<0&&(this.donutSize=0);var p=i.config.plotOptions.pie.customScale,x=i.globals.gridWidth/2,m=i.globals.gridHeight/2,v=x-i.globals.gridWidth/2*p,y=m-i.globals.gridHeight/2*p;if("donut"===this.chartType){var w=a.drawCircle(this.donutSize);w.attr({cx:this.centerX,cy:this.centerY,fill:i.config.plotOptions.pie.donut.background?i.config.plotOptions.pie.donut.background:"transparent"}),o.add(w)}var k=this.drawArcs(n,t);if(this.sliceLabels.forEach((function(t){k.add(t)})),o.attr({transform:"translate(".concat(v,", ").concat(y,") scale(").concat(p,")")}),o.add(k),this.ret.add(o),this.donutDataLabels.show){var A=this.renderInnerDataLabels(this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show,translateX:v,translateY:y});this.ret.add(A)}return"front"===i.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(this.ret),this.ret}},{key:"drawArcs",value:function(t,e){var i=this.w,a=new x(this.ctx),s=new b(this.ctx),r=new L(this.ctx),n=s.group({class:"apexcharts-slices"}),o=this.initialAngle,l=this.initialAngle,h=this.initialAngle,c=this.initialAngle;this.strokeWidth=i.config.stroke.show?i.config.stroke.width:0;for(var d=0;d<t.length;d++){var g=s.group({class:"apexcharts-series apexcharts-pie-series",seriesName:f.escapeString(i.globals.seriesNames[d]),rel:d+1,"data:realIndex":d});n.add(g),l=c,h=(o=h)+t[d],c=l+this.prevSectorAngleArr[d];var u=h<o?this.fullAngle+h-o:h-o,p=r.fillPath({seriesNumber:d,size:this.sliceSizes[d],value:e[d]}),m=this.getChangedPath(l,c),v=s.drawPath({d:m,stroke:Array.isArray(this.lineColorArr)?this.lineColorArr[d]:this.lineColorArr,strokeWidth:0,fill:p,fillOpacity:i.config.fill.opacity,classes:"apexcharts-pie-area apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(d)});if(v.attr({index:0,j:d}),a.setSelectionFilter(v,0,d),i.config.chart.dropShadow.enabled){var y=i.config.chart.dropShadow;a.dropShadow(v,y,d)}this.addListeners(v,this.donutDataLabels),b.setAttrs(v.node,{"data:angle":u,"data:startAngle":o,"data:strokeWidth":this.strokeWidth,"data:value":e[d]});var w={x:0,y:0};"pie"===this.chartType||"polarArea"===this.chartType?w=f.polarToCartesian(this.centerX,this.centerY,i.globals.radialSize/1.25+i.config.plotOptions.pie.dataLabels.offset,(o+u/2)%this.fullAngle):"donut"===this.chartType&&(w=f.polarToCartesian(this.centerX,this.centerY,(i.globals.radialSize+this.donutSize)/2+i.config.plotOptions.pie.dataLabels.offset,(o+u/2)%this.fullAngle)),g.add(v);var k=0;if(!this.initialAnim||i.globals.resized||i.globals.dataChanged?this.animBeginArr.push(0):(0===(k=u/this.fullAngle*i.config.chart.animations.speed)&&(k=1),this.animDur=k+this.animDur,this.animBeginArr.push(this.animDur)),this.dynamicAnim&&i.globals.dataChanged?this.animatePaths(v,{size:this.sliceSizes[d],endAngle:h,startAngle:o,prevStartAngle:l,prevEndAngle:c,animateStartingPos:!0,i:d,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:i.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(v,{size:this.sliceSizes[d],endAngle:h,startAngle:o,i:d,totalItems:t.length-1,animBeginArr:this.animBeginArr,dur:k}),i.config.plotOptions.pie.expandOnClick&&"polarArea"!==this.chartType&&v.click(this.pieClicked.bind(this,d)),void 0!==i.globals.selectedDataPoints[0]&&i.globals.selectedDataPoints[0].indexOf(d)>-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabel<t[d]){var P=i.config.dataLabels.formatter;void 0!==P&&(C=P(i.globals.seriesPercent[d][0],{seriesIndex:d,w:i}));var T=i.globals.dataLabels.style.colors[d],z=s.group({class:"apexcharts-datalabels"}),I=s.drawText({x:A,y:S,text:C,textAnchor:"middle",fontSize:i.config.dataLabels.style.fontSize,fontFamily:i.config.dataLabels.style.fontFamily,fontWeight:i.config.dataLabels.style.fontWeight,foreColor:T});if(z.add(I),i.config.dataLabels.dropShadow.enabled){var M=i.config.dataLabels.dropShadow;a.dropShadow(I,M)}I.node.classList.add("apexcharts-pie-label"),i.config.chart.animations.animate&&!1===i.globals.resized&&(I.node.classList.add("apexcharts-pie-label-delay"),I.node.style.animationDelay=i.config.chart.animations.speed/940+"s"),this.sliceLabels.push(z)}}}return n}},{key:"addListeners",value:function(t,e){var i=new b(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this,t)),t.node.addEventListener("mouseleave",this.revertDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this,t)),this.donutDataLabels.total.showAlways||(t.node.addEventListener("mouseenter",this.printDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener("mousedown",this.printDataLabelsInner.bind(this,t.node,e)))}},{key:"animatePaths",value:function(t,e){var i=this.w,a=e.endAngle<e.startAngle?this.fullAngle+e.endAngle-e.startAngle:e.endAngle-e.startAngle,s=a,r=e.startAngle,n=e.startAngle;void 0!==e.prevStartAngle&&void 0!==e.prevEndAngle&&(r=e.prevEndAngle,s=e.prevEndAngle<e.prevStartAngle?this.fullAngle+e.prevEndAngle-e.prevStartAngle:e.prevEndAngle-e.prevStartAngle),e.i===i.config.series.length-1&&(a+n>this.fullAngle?e.endAngle=e.endAngle-(a+n):a+n<this.fullAngle&&(e.endAngle=e.endAngle+(this.fullAngle-(a+n)))),a===this.fullAngle&&(a=this.fullAngle-.01),this.animateArc(t,r,n,a,s,e)}},{key:"animateArc",value:function(t,e,i,a,s,r){var n,o=this,l=this.w,h=new p(this.ctx),c=r.size;(isNaN(e)||isNaN(s))&&(e=i,s=a,r.dur=0);var d=a,g=i,u=e<i?this.fullAngle+e-i:e-i;l.globals.dataChanged&&r.shouldSetPrevPaths&&r.prevEndAngle&&(n=o.getPiePath({me:o,startAngle:r.prevStartAngle,angle:r.prevEndAngle<r.prevStartAngle?this.fullAngle+r.prevEndAngle-r.prevStartAngle:r.prevEndAngle-r.prevStartAngle,size:c}),t.attr({d:n})),0!==r.dur?t.animate(r.dur,l.globals.easing,r.animBeginArr[r.i]).afterAll((function(){"pie"!==o.chartType&&"donut"!==o.chartType&&"polarArea"!==o.chartType||this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({"stroke-width":o.strokeWidth}),r.i===l.config.series.length-1&&h.animationCompleted(t)})).during((function(l){d=u+(a-u)*l,r.animateStartingPos&&(d=s+(a-s)*l,g=e-s+(i-(e-s))*l),n=o.getPiePath({me:o,startAngle:g,angle:d,size:c}),t.node.setAttribute("data:pathOrig",n),t.attr({d:n})})):(n=o.getPiePath({me:o,startAngle:g,angle:a,size:c}),r.isTrack||(l.globals.animationEnded=!0),t.node.setAttribute("data:pathOrig",n),t.attr({d:n,"stroke-width":o.strokeWidth}))}},{key:"pieClicked",value:function(t){var e,i=this.w,a=this,s=a.sliceSizes[t]+(i.config.plotOptions.pie.expandOnClick?4:0),r=i.globals.dom.Paper.select(".apexcharts-".concat(a.chartType.toLowerCase(),"-slice-").concat(t)).members[0];if("true"!==r.attr("data:pieClicked")){var n=i.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area");Array.prototype.forEach.call(n,(function(t){t.setAttribute("data:pieClicked","false");var e=t.getAttribute("data:pathOrig");t.setAttribute("d",e)})),r.attr("data:pieClicked","true");var o=parseInt(r.attr("data:startAngle"),10),l=parseInt(r.attr("data:angle"),10);e=a.getPiePath({me:a,startAngle:o,angle:l,size:s}),360!==l&&r.plot(e)}else{r.attr({"data:pieClicked":"false"}),this.revertDataLabelsInner(r.node,this.donutDataLabels);var h=r.attr("data:pathOrig");r.attr({d:h})}}},{key:"getChangedPath",value:function(t,e){var i="";return this.dynamicAnim&&this.w.globals.dataChanged&&(i=this.getPiePath({me:this,startAngle:t,angle:e-t,size:this.size})),i}},{key:"getPiePath",value:function(t){var e=t.me,i=t.startAngle,a=t.angle,s=t.size,r=i,n=Math.PI*(r-90)/180,o=a+i;Math.ceil(o)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(o)>this.fullAngle&&(o-=this.fullAngle);var l=Math.PI*(o-90)/180,h=e.centerX+s*Math.cos(n),c=e.centerY+s*Math.sin(n),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=f.polarToCartesian(e.centerX,e.centerY,e.donutSize,o),p=f.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),x=a>180?1:0,b=["M",h,c,"A",s,s,0,x,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,x,0,p.x,p.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new j(this.ctx),a=new b(this.ctx),s=new kt(this.ctx),r=a.group(),n=a.group(),o=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=o.result.reverse(),h=o.result.length;this.maxY=o.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g<h-1;g++){var u=a.drawCircle(c);if(u.attr({cx:this.centerX,cy:this.centerY,fill:"none","stroke-width":e.config.plotOptions.polarArea.rings.strokeWidth,stroke:e.config.plotOptions.polarArea.rings.strokeColor}),e.config.yaxis[0].show){var f=s.drawYAxisTexts(this.centerX,this.centerY-c+parseInt(e.config.yaxis[0].labels.style.fontSize,10)/2,g,l[g]);n.add(f)}r.add(u),c-=d}this.drawSpokes(t),t.add(r),t.add(n)}},{key:"renderInnerDataLabels",value:function(t,e){var i=this.w,a=new b(this.ctx),s=a.group({class:"apexcharts-datalabels-group",transform:"translate(".concat(e.translateX?e.translateX:0,", ").concat(e.translateY?e.translateY:0,") scale(").concat(i.config.plotOptions.pie.customScale,")")}),r=t.total.show;s.node.style.opacity=e.opacity;var n,o,l=e.centerX,h=e.centerY;n=void 0===t.name.color?i.globals.colors[0]:t.name.color;var c=t.name.fontSize,d=t.name.fontFamily,g=t.value.fontWeight;o=void 0===t.value.color?i.config.chart.foreColor:t.value.color;var u=t.value.formatter,f="",p="";if(r?(n=t.total.color,c=t.total.fontSize,d=t.total.fontFamily,g=t.total.fontWeight,p=t.total.label,f=t.total.formatter(i)):1===i.globals.series.length&&(f=u(i.globals.series[0],i),p=i.globals.seriesNames[0]),p&&(p=t.name.formatter(p,t.total.show,i)),t.name.show){var x=a.drawText({x:l,y:h+parseFloat(t.name.offsetY),text:p,textAnchor:"middle",foreColor:n,fontSize:c,fontWeight:g,fontFamily:d});x.node.classList.add("apexcharts-datalabel-label"),s.add(x)}if(t.value.show){var m=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,v=a.drawText({x:l,y:h+m,text:f,textAnchor:"middle",foreColor:o,fontWeight:t.value.fontWeight,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});v.node.classList.add("apexcharts-datalabel-value"),s.add(v)}return s}},{key:"printInnerLabels",value:function(t,e,i,a){var s,r=this.w;a?s=void 0===t.name.color?r.globals.colors[parseInt(a.parentNode.getAttribute("rel"),10)-1]:t.name.color:r.globals.series.length>1&&t.total.show&&(s=t.total.color);var n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==n&&(n.textContent=e),null!==o&&(o.textContent=i),null!==n&&(n.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new b(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],n=360/i.globals.series.length,o=0;o<i.globals.series.length;o++)r.push(f.polarToCartesian(this.centerX,this.centerY,i.globals.radialSize,i.config.plotOptions.pie.startAngle+n*o));r.forEach((function(i,r){var n=a.drawLine(i.x,i.y,e.centerX,e.centerY,Array.isArray(s.connectorColors)?s.connectorColors[r]:s.connectorColors);t.add(n)}))}}},{key:"revertDataLabelsInner",value:function(t,e,i){var a=this,s=this.w,r=s.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group"),n=!1,o=s.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area"),l=function(t){var i=t.makeSliceOut,s=t.printLabel;Array.prototype.forEach.call(o,(function(t){"true"===t.getAttribute("data:pieClicked")&&(i&&(n=!0),s&&a.printDataLabelsInner(t,e))}))};if(l({makeSliceOut:!0,printLabel:!1}),e.total.show&&s.globals.series.length>1)n&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!n)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),St=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var a=this.w;this.graphics=new b(this.ctx),this.lineColorArr=void 0!==a.globals.stroke.colors?a.globals.stroke.colors:a.globals.colors,this.defaultSize=a.globals.svgHeight<a.globals.svgWidth?a.globals.gridHeight+1.5*a.globals.goldenPadding:a.globals.gridWidth,this.isLog=a.config.yaxis[0].logarithmic,this.coreUtils=new y(this.ctx),this.maxValue=this.isLog?this.coreUtils.getLogVal(a.globals.maxY,0):a.globals.maxY,this.minValue=this.isLog?this.coreUtils.getLogVal(this.w.globals.minY,0):a.globals.minY,this.polygons=a.config.plotOptions.radar.polygons,this.strokeWidth=a.config.stroke.show?a.config.stroke.width:0,this.size=this.defaultSize/2.1-this.strokeWidth-a.config.chart.dropShadow.blur,a.config.xaxis.labels.show&&(this.size=this.size-a.globals.xAxisLabelsWidth/1.75),void 0!==a.config.plotOptions.radar.size&&(this.size=a.config.plotOptions.radar.size),this.dataRadiusOfPercent=[],this.dataRadius=[],this.angleArr=[],this.yaxisLabelsTextsPos=[]}return a(t,[{key:"draw",value:function(t){var e=this,i=this.w,a=new L(this.ctx),s=[],r=new z(this.ctx);t.length&&(this.dataPointsLen=t[i.globals.maxValsInArrayIndex].length),this.disAngle=2*Math.PI/this.dataPointsLen;var o=i.globals.gridWidth/2,l=i.globals.gridHeight/2,h=o+i.config.plotOptions.radar.offsetX,c=l+i.config.plotOptions.radar.offsetY,d=this.graphics.group({class:"apexcharts-radar-series apexcharts-plot-series",transform:"translate(".concat(h||0,", ").concat(c||0,")")}),g=[],u=null,p=null;if(this.yaxisLabels=this.graphics.group({class:"apexcharts-yaxis"}),t.forEach((function(t,o){var l=t.length===i.globals.dataPoints,h=e.graphics.group().attr({class:"apexcharts-series","data:longestSeries":l,seriesName:f.escapeString(i.globals.seriesNames[o]),rel:o+1,"data:realIndex":o});e.dataRadiusOfPercent[o]=[],e.dataRadius[o]=[],e.angleArr[o]=[],t.forEach((function(t,i){var a=Math.abs(e.maxValue-e.minValue);t+=Math.abs(e.minValue),e.isLog&&(t=e.coreUtils.getLogVal(t,0)),e.dataRadiusOfPercent[o][i]=t/a,e.dataRadius[o][i]=e.dataRadiusOfPercent[o][i]*e.size,e.angleArr[o][i]=i*e.disAngle})),g=e.getDataPointsPos(e.dataRadius[o],e.angleArr[o]);var c=e.createPaths(g,{x:0,y:0});u=e.graphics.group({class:"apexcharts-series-markers-wrap apexcharts-element-hidden"}),p=e.graphics.group({class:"apexcharts-datalabels","data:realIndex":o}),i.globals.delayedElements.push({el:u.node,index:o});var d={i:o,realIndex:o,animationDelay:o,initialSpeed:i.config.chart.animations.speed,dataChangeSpeed:i.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-radar",shouldClipToGrid:!1,bindEventsOnPaths:!1,stroke:i.globals.stroke.colors[o],strokeLineCap:i.config.stroke.lineCap},b=null;i.globals.previousPaths.length>0&&(b=e.getPreviousPath(o));for(var m=0;m<c.linePathsTo.length;m++){var v=e.graphics.renderPaths(n(n({},d),{},{pathFrom:null===b?c.linePathsFrom[m]:b,pathTo:c.linePathsTo[m],strokeWidth:Array.isArray(e.strokeWidth)?e.strokeWidth[o]:e.strokeWidth,fill:"none",drawShadow:!1}));h.add(v);var y=a.fillPath({seriesNumber:o}),w=e.graphics.renderPaths(n(n({},d),{},{pathFrom:null===b?c.areaPathsFrom[m]:b,pathTo:c.areaPathsTo[m],strokeWidth:0,fill:y,drawShadow:!1}));if(i.config.chart.dropShadow.enabled){var k=new x(e.ctx),A=i.config.chart.dropShadow;k.dropShadow(w,Object.assign({},A,{noUserSpaceOnUse:!0}),o)}h.add(w)}t.forEach((function(t,a){var s=new P(e.ctx).getMarkerConfig("apexcharts-marker",o,a),l=e.graphics.drawMarker(g[a].x,g[a].y,s);l.attr("rel",a),l.attr("j",a),l.attr("index",o),l.node.setAttribute("default-marker-size",s.pSize);var c=e.graphics.group({class:"apexcharts-series-markers"});c&&c.add(l),u.add(c),h.add(u);var d=i.config.dataLabels;if(d.enabled){var f=d.formatter(i.globals.series[o][a],{seriesIndex:o,dataPointIndex:a,w:i});r.plotDataLabelsText({x:g[a].x,y:g[a].y,text:f,textAnchor:"middle",i:o,j:o,parent:p,offsetCorrection:!1,dataLabelsConfig:n({},d)})}h.add(p)})),s.push(h)})),this.drawPolygons({parent:d}),i.config.xaxis.labels.show){var b=this.drawXAxisTexts();d.add(b)}return s.forEach((function(t){d.add(t)})),d.add(this.yaxisLabels),d}},{key:"drawPolygons",value:function(t){for(var e=this,i=this.w,a=t.parent,s=new kt(this.ctx),r=i.globals.yAxisScale[0].result.reverse(),n=r.length,o=[],l=this.size/(n-1),h=0;h<n;h++)o[h]=l*h;o.reverse();var c=[],d=[];o.forEach((function(t,i){var a=f.getPolygonPos(t,e.dataPointsLen),s="";a.forEach((function(t,a){if(0===i){var r=e.graphics.drawLine(t.x,t.y,0,0,Array.isArray(e.polygons.connectorColors)?e.polygons.connectorColors[a]:e.polygons.connectorColors);d.push(r)}0===a&&e.yaxisLabelsTextsPos.push({x:t.x,y:t.y}),s+=t.x+","+t.y+" "})),c.push(s)})),c.forEach((function(t,s){var r=e.polygons.strokeColors,n=e.polygons.strokeWidth,o=e.graphics.drawPolygon(t,Array.isArray(r)?r[s]:r,Array.isArray(n)?n[s]:n,i.globals.radarPolygons.fill.colors[s]);a.add(o)})),d.forEach((function(t){a.add(t)})),i.config.yaxis[0].show&&this.yaxisLabelsTextsPos.forEach((function(t,i){var a=s.drawYAxisTexts(t.x,t.y,i,r[i]);e.yaxisLabels.add(a)}))}},{key:"drawXAxisTexts",value:function(){var t=this,e=this.w,i=e.config.xaxis.labels,a=this.graphics.group({class:"apexcharts-xaxis"}),s=f.getPolygonPos(this.size,this.dataPointsLen);return e.globals.labels.forEach((function(r,o){var l=e.config.xaxis.labels.formatter,h=new z(t.ctx);if(s[o]){var c=t.getTextPos(s[o],t.size),d=l(r,{seriesIndex:-1,dataPointIndex:o,w:e});h.plotDataLabelsText({x:c.newX,y:c.newY,text:d,textAnchor:c.textAnchor,i:o,j:o,parent:a,color:Array.isArray(i.style.colors)&&i.style.colors[o]?i.style.colors[o]:"#a8a8a8",dataLabelsConfig:n({textAnchor:c.textAnchor,dropShadow:{enabled:!1}},i),offsetCorrection:!1})}})),a}},{key:"createPaths",value:function(t,e){var i=this,a=[],s=[],r=[],n=[];if(t.length){s=[this.graphics.move(e.x,e.y)],n=[this.graphics.move(e.x,e.y)];var o=this.graphics.move(t[0].x,t[0].y),l=this.graphics.move(t[0].x,t[0].y);t.forEach((function(e,a){o+=i.graphics.line(e.x,e.y),l+=i.graphics.line(e.x,e.y),a===t.length-1&&(o+="Z",l+="Z")})),a.push(o),r.push(l)}return{linePathsFrom:s,linePathsTo:a,areaPathsFrom:n,areaPathsTo:r}}},{key:"getTextPos",value:function(t,e){var i="middle",a=t.x,s=t.y;return Math.abs(t.x)>=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a<e.globals.previousPaths.length;a++){var s=e.globals.previousPaths[a];s.paths.length>0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s<i;s++){var r={};r.x=t[s]*Math.sin(e[s]),r.y=-t[s]*Math.cos(e[s]),a.push(r)}return a}}]),t}(),Ct=function(t){o(s,t);var i=d(s);function s(t){var a;e(this,s),(a=i.call(this,t)).ctx=t,a.w=t.w,a.animBeginArr=[0],a.animDur=0;var r=a.w;return a.startAngle=r.config.plotOptions.radialBar.startAngle,a.endAngle=r.config.plotOptions.radialBar.endAngle,a.totalAngle=Math.abs(r.config.plotOptions.radialBar.endAngle-r.config.plotOptions.radialBar.startAngle),a.trackStartAngle=r.config.plotOptions.radialBar.track.startAngle,a.trackEndAngle=r.config.plotOptions.radialBar.track.endAngle,a.radialDataLabels=r.config.plotOptions.radialBar.dataLabels,a.trackStartAngle||(a.trackStartAngle=a.startAngle),a.trackEndAngle||(a.trackEndAngle=a.endAngle),360===a.endAngle&&(a.endAngle=359.99),a.margin=parseInt(r.config.plotOptions.radialBar.track.margin,10),a}return a(s,[{key:"draw",value:function(t){var e=this.w,i=new b(this.ctx),a=i.group({class:"apexcharts-radialbar"});if(e.globals.noData)return a;var s=i.group(),r=this.defaultSize/2,n=e.globals.gridWidth/2,o=this.defaultSize/2.05;e.config.chart.sparkline.enabled||(o=o-e.config.stroke.width-e.config.chart.dropShadow.blur);var l=e.globals.fill.colors;if(e.config.plotOptions.radialBar.track.show){var h=this.drawTracks({size:o,centerX:n,centerY:r,colorArr:l,series:t});s.add(h)}var c=this.drawArcs({size:o,centerX:n,centerY:r,colorArr:l,series:t}),d=360;e.config.plotOptions.radialBar.startAngle<0&&(d=this.totalAngle);var g=(360-d)/360;if(e.globals.radialSize=o-o*g,this.radialDataLabels.value.show){var u=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);e.globals.radialSize+=u*g}return s.add(c.g),"front"===e.config.plotOptions.radialBar.hollow.position&&(c.g.add(c.elHollow),c.dataLabels&&c.g.add(c.dataLabels)),a.add(s),a}},{key:"drawTracks",value:function(t){var e=this.w,i=new b(this.ctx),a=i.group({class:"apexcharts-tracks"}),s=new x(this.ctx),r=new L(this.ctx),n=this.getStrokeWidth(t);t.size=t.size-n/2;for(var o=0;o<t.series.length;o++){var l=i.group({class:"apexcharts-radialbar-track apexcharts-track"});a.add(l),l.attr({rel:o+1}),t.size=t.size-n-this.margin;var h=e.config.plotOptions.radialBar.track,c=r.fillPath({seriesNumber:0,size:t.size,fillColors:Array.isArray(h.background)?h.background[o]:h.background,solid:!0}),d=this.trackStartAngle,g=this.trackEndAngle;Math.abs(g)+Math.abs(d)>=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:n*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+o),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:o,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new b(this.ctx),a=new L(this.ctx),s=new x(this.ctx),r=i.group(),n=this.getStrokeWidth(t);t.size=t.size-n/2;var o=e.config.plotOptions.radialBar.hollow.background,l=t.size-n*t.series.length-this.margin*t.series.length-n*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(o=this.drawHollowImage(t,r,l,o));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:o||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var m=p?t.series.length-1:0;p?m>=0:m<t.series.length;p?m--:m++){var v=i.group({class:"apexcharts-series apexcharts-radial-series",seriesName:f.escapeString(e.globals.seriesNames[m])});r.add(v),v.attr({rel:m+1,"data:realIndex":m}),this.ctx.series.addCollapsedClassToSeries(v,m),t.size=t.size-n-this.margin;var y=a.fillPath({seriesNumber:m,size:t.size,value:t.series[m]}),w=this.startAngle,k=void 0,A=f.negToZero(t.series[m]>100?100:t.series[m])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*f.negToZero(e.globals.previousPaths[m])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var P=S-w,T=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[m]:e.config.stroke.dashArray,z=i.drawPath({d:"",stroke:y,strokeWidth:n,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+m,strokeDashArray:T});if(b.setAttrs(z.node,{"data:angle":P,"data:value":t.series[m]}),e.config.chart.dropShadow.enabled){var I=e.config.chart.dropShadow;s.dropShadow(z,I,m)}s.setSelectionFilter(z,0,m),this.addListeners(z,this.radialDataLabels),v.add(z),z.attr({index:0,j:m});var M=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(M=(S-w)/360*e.config.chart.animations.speed,this.animDur=M/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur)),e.globals.dataChanged&&(M=(S-w)/360*e.config.chart.animations.dynamicAnimation.speed,this.animDur=M/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur)),this.animatePaths(z,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:m,totalItems:2,animBeginArr:this.animBeginArr,dur:M,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new b(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new L(this.ctx),n=f.randomId(),o=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:o,patternID:"pattern".concat(s.globals.cuid).concat(n)}),a="url(#pattern".concat(s.globals.cuid).concat(n,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(o).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(o).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),s}(At),Lt=function(){function t(i){e(this,t),this.w=i.w,this.lineCtx=i}return a(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if("line"===i.config.chart.type&&("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,n=t.j,o=t.prevY,l=this.w,h=[],c=[];if(0===n){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(f.isNumber(e[r][0])?o+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(f.isNumber(e[r][n+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(f.isNumber(e[r][n+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r<s.globals.previousPaths.length;r++){var n=s.globals.previousPaths[r];("line"===n.type||"area"===n.type)&&n.paths.length>0&&parseInt(n.realIndex,10)===parseInt(a,10)&&("line"===n.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===n.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.prevY,s=t.lineYPosition,r=this.w;if(void 0!==i[e][0])a=(s=r.config.chart.stacked&&e>0?this.lineCtx.prevSeriesY[e-1][0]:this.lineCtx.zeroY)-i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?i[e][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(r.config.chart.stacked&&e>0&&void 0===i[e][0])for(var n=e-1;n>=0;n--)if(null!==i[n][0]&&void 0!==i[n][0]){a=s=this.lineCtx.prevSeriesY[n][0];break}return{prevY:a,lineYPosition:s}}}]),t}(),Pt=function(){function t(i,a,s){e(this,t),this.ctx=i,this.w=i.w,this.xyRatios=a,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new T(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Lt(this),this.markers=new P(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return a(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new b(this.ctx),r=a.globals.comboCharts?e:a.config.chart.type,n=s.group({class:"apexcharts-".concat(r,"-series apexcharts-plot-series")}),o=new y(this.ctx,a);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=o.getLogSeries(t),this.yRatio=o.getLogYRatios(this.yRatio);for(var l=[],h=0;h<t.length;h++){t=this.lineHelpers.sameValueSeriesFix(h,t);var c=a.globals.comboCharts?i[h]:h;this._initSerieVariables(t,h,c);var d=[],g=[],u=a.globals.padHorizontal+this.categoryAxisCorrection;this.ctx.series.addCollapsedClassToSeries(this.elSeries,c),a.globals.isXNumeric&&a.globals.seriesX.length>0&&(u=(a.globals.seriesX[c][0]-a.globals.minX)/this.xRatio),g.push(u);var f,p=u,x=p,m=this.zeroY;m=this.lineHelpers.determineFirstPrevY({i:h,series:t,prevY:m,lineYPosition:0}).prevY,d.push(m),f=m;var v=this._calculatePathsFrom({series:t,i:h,realIndex:c,prevX:x,prevY:m}),w=this._iterateOverDataPoints({series:t,realIndex:c,i:h,x:u,y:1,pX:p,pY:f,pathsFrom:v,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:g,yArrj:d});this._handlePaths({type:r,realIndex:c,i:h,paths:w}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),l.push(this.elSeries)}if(a.config.chart.stacked)for(var k=l.length;k>0;k--)n.add(l[k-1]);else for(var A=0;A<l.length;A++)n.add(l[A]);return n}},{key:"_initSerieVariables",value:function(t,e,i){var a=this.w,s=new b(this.ctx);this.xDivision=a.globals.gridWidth/(a.globals.dataPoints-("on"===a.config.xaxis.tickPlacement?1:0)),this.strokeWidth=Array.isArray(a.config.stroke.width)?a.config.stroke.width[i]:a.config.stroke.width,this.yRatio.length>1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:f.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.series,n=t.i,o=t.realIndex,l=t.prevX,h=t.prevY,c=this.w,d=new b(this.ctx);if(null===r[n][0]){for(var g=0;g<r[n].length;g++)if(null!==r[n][g]){l=this.xDivision*g,h=this.zeroY-r[n][g]/this.yRatio[this.yaxisIndex],e=d.move(l,h),i=d.move(l,this.areaBottomY);break}}else e=d.move(l,h),i=d.move(l,this.areaBottomY)+d.line(l,h);if(a=d.move(-1,this.zeroY)+d.line(-1,this.zeroY),s=d.move(-1,this.zeroY)+d.line(-1,this.zeroY),c.globals.previousPaths.length>0){var u=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:o});a=u.pathFromLine,s=u.pathFromArea}return{prevX:l,prevY:h,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var e=t.type,i=t.realIndex,a=t.i,s=t.paths,r=this.w,o=new b(this.ctx),l=new L(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj,this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var h={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(e)};if("area"===e)for(var c=l.fillPath({seriesNumber:i}),d=0;d<s.areaPaths.length;d++){var g=o.renderPaths(n(n({},h),{},{pathFrom:s.pathFromArea,pathTo:s.areaPaths[d],stroke:"none",strokeWidth:0,strokeLineCap:null,fill:c}));this.elSeries.add(g)}if(r.config.stroke.show&&!this.pointsChart){var u=null;u="line"===e?l.fillPath({seriesNumber:i,i:a}):r.globals.stroke.colors[i];for(var f=0;f<s.linePaths.length;f++){var p=o.renderPaths(n(n({},h),{},{pathFrom:s.pathFromLine,pathTo:s.linePaths[f],stroke:u,strokeWidth:this.strokeWidth,strokeLineCap:r.config.stroke.lineCap,fill:"none"}));this.elSeries.add(p)}}}},{key:"_iterateOverDataPoints",value:function(t){for(var e=t.series,i=t.realIndex,a=t.i,s=t.x,r=t.y,n=t.pX,o=t.pY,l=t.pathsFrom,h=t.linePaths,c=t.areaPaths,d=t.seriesIndex,g=t.lineYPosition,u=t.xArrj,p=t.yArrj,x=this.w,m=new b(this.ctx),v=this.yRatio,y=l.prevY,w=l.linePath,k=l.areaPath,A=l.pathFromLine,S=l.pathFromArea,C=f.isNumber(x.globals.minYArr[i])?x.globals.minYArr[i]:x.globals.minY,L=x.globals.dataPoints>1?x.globals.dataPoints-1:x.globals.dataPoints,P=0;P<L;P++){var T=void 0===e[a][P+1]||null===e[a][P+1];if(x.globals.isXNumeric){var z=x.globals.seriesX[i][P+1];void 0===x.globals.seriesX[i][P+1]&&(z=x.globals.seriesX[i][L-1]),s=(z-x.globals.minX)/this.xRatio}else s+=this.xDivision;if(x.config.chart.stacked)if(a>0&&x.globals.collapsedSeries.length<x.config.series.length-1){g=this.prevSeriesY[function(t){for(var e=t,i=0;i<x.globals.series.length;i++)if(x.globals.collapsedSeriesIndices.indexOf(t)>-1){e--;break}return e>=0?e:0}(a-1)][P+1]}else g=this.zeroY;else g=this.zeroY;r=T?g-C/v[this.yaxisIndex]+2*(this.isReversed?C/v[this.yaxisIndex]:0):g-e[a][P+1]/v[this.yaxisIndex]+2*(this.isReversed?e[a][P+1]/v[this.yaxisIndex]:0),u.push(s),p.push(r);var I=this.lineHelpers.calculatePoints({series:e,x:s,y:r,realIndex:i,i:a,j:P,prevY:y}),M=this._createPaths({series:e,i:a,realIndex:i,j:P,x:s,y:r,pX:n,pY:o,linePath:w,areaPath:k,linePaths:h,areaPaths:c,seriesIndex:d});c=M.areaPaths,h=M.linePaths,n=M.pX,o=M.pY,k=M.areaPath,w=M.linePath,this.appendPathFrom&&(A+=m.line(s,this.zeroY),S+=m.line(s,this.zeroY)),this.handleNullDataPoints(e,I,a,P,i),this._handleMarkersAndLabels({pointsPos:I,series:e,x:s,y:r,prevY:y,i:a,j:P,realIndex:i})}return{yArrj:p,xArrj:u,pathFromArea:S,areaPaths:c,pathFromLine:A,linePaths:h}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.pointsPos,i=(t.series,t.x,t.y,t.prevY,t.i),a=t.j,s=t.realIndex,r=this.w,n=new z(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,a,{realIndex:s,pointsPos:e,zRatio:this.zRatio,elParent:this.elPointsMain});else{r.globals.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var o=this.markers.plotChartMarkers(e,s,a+1);null!==o&&this.elPointsMain.add(o)}var l=n.drawDataLabel(e,s,a+1,null);null!==l&&this.elDataLabelsWrap.add(l)}},{key:"_createPaths",value:function(t){var e=t.series,i=t.i,a=t.realIndex,s=t.j,r=t.x,n=t.y,o=t.pX,l=t.pY,h=t.linePath,c=t.areaPath,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,f=this.w,p=new b(this.ctx),x=f.config.stroke.curve,m=this.areaBottomY;if(Array.isArray(f.config.stroke.curve)&&(x=Array.isArray(u)?f.config.stroke.curve[u[i]]:f.config.stroke.curve[i]),"smooth"===x){var v=.35*(r-o);f.globals.hasNullValues?(null!==e[i][s]&&(null!==e[i][s+1]?(h=p.move(o,l)+p.curve(o+v,l,r-v,n,r+1,n),c=p.move(o+1,l)+p.curve(o+v,l,r-v,n,r+1,n)+p.line(r,m)+p.line(o,m)+"z"):(h=p.move(o,l),c=p.move(o,l)+"z")),d.push(h),g.push(c)):(h+=p.curve(o+v,l,r-v,n,r,n),c+=p.curve(o+v,l,r-v,n,r,n)),o=r,l=n,s===e[i].length-2&&(c=c+p.curve(o,l,r,n,r,m)+p.move(r,n)+"z",f.globals.hasNullValues||(d.push(h),g.push(c)))}else{if(null===e[i][s+1]){h+=p.move(r,n);var y=f.globals.isXNumeric?(f.globals.seriesX[a][s]-f.globals.minX)/this.xRatio:r-this.xDivision;c=c+p.line(y,m)+p.move(r,n)+"z"}null===e[i][s]&&(h+=p.move(r,n),c+=p.move(r,m)),"stepline"===x?(h=h+p.line(r,null,"H")+p.line(null,n,"V"),c=c+p.line(r,null,"H")+p.line(null,n,"V")):"straight"===x&&(h+=p.line(r,n),c+=p.line(r,n)),s===e[i].length-2&&(c=c+p.line(r,m)+p.move(r,n)+"z",d.push(h),g.push(c))}return{linePaths:d,areaPaths:g,pX:o,pY:l,linePath:h,areaPath:c}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var n=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==n&&this.elPointsMain.add(n)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,n=r(t)/this.height,o=r(t)/this.width;if(this.width>=this.height)for(e=0;e<t.length;e++)i.push([a,s,a+n,s+t[e]/n]),s+=t[e]/n;else for(e=0;e<t.length;e++)i.push([a,s,a+t[e]/o,s+o]),a+=t[e]/o;return i},this.cutArea=function(e){var i;if(this.width>=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,n=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,n)}return i}}function e(e,a,s,n,o){return n=void 0===n?0:n,o=void 0===o?0:o,function(t){var e,i,a=[];for(e=0;e<t.length;e++)for(i=0;i<t[e].length;i++)a.push(t[e][i]);return a}(i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i<t.length;i++)a[i]=t[i]*s;return a}(e,a*s),[],new t(n,o,a,s),[]))}function i(t,e,s,n){var o,l,h;if(0!==t.length)return o=s.shortestEdge(),function(t,e,i){var s;if(0===t.length)return!0;(s=t.slice()).push(e);var r=a(t,i),n=a(s,i);return r>=n}(e,l=t[0],o)?(e.push(l),i(t.slice(1),e,s,n)):(h=s.cutArea(r(e),n),n.push(s.getCoordinates(e)),i(t,[],h,n)),n;n.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;e<t.length;e++)i+=t[e];return i}function n(t){var e,i=0;if(s(t[0]))for(e=0;e<t.length;e++)i+=n(t[e]);else i=r(t);return i}return function t(i,a,r,o,l){o=void 0===o?0:o,l=void 0===l?0:l;var h,c,d=[],g=[];if(s(i[0])){for(c=0;c<i.length;c++)d[c]=n(i[c]);for(h=e(d,a,r,o,l),c=0;c<i.length;c++)g.push(t(i[c],h[c][2]-h[c][0],h[c][3]-h[c][1],h[c][0],h[c][1]))}else g=e(i,a,r,o,l);return g}}();var Tt,zt,It=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.strokeWidth=this.w.config.stroke.width,this.helpers=new yt(i),this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.labels=[]}return a(t,[{key:"draw",value:function(t){var e=this,i=this.w,a=new b(this.ctx),s=new L(this.ctx),r=a.group({class:"apexcharts-treemap"});if(i.globals.noData)return r;var n=[];return t.forEach((function(t){var e=t.map((function(t){return Math.abs(t)}));n.push(e)})),this.negRange=this.helpers.checkColorRange(),i.config.series.forEach((function(t,i){t.data.forEach((function(t){Array.isArray(e.labels[i])||(e.labels[i]=[]),e.labels[i].push(t.x)}))})),window.TreemapSquared.generate(n,i.globals.gridWidth,i.globals.gridHeight).forEach((function(n,o){var l=a.group({class:"apexcharts-series apexcharts-treemap-series",seriesName:f.escapeString(i.globals.seriesNames[o]),rel:o+1,"data:realIndex":o});if(i.config.chart.dropShadow.enabled){var h=i.config.chart.dropShadow;new x(e.ctx).dropShadow(r,h,o)}var c=a.group({class:"apexcharts-data-labels"});n.forEach((function(r,n){var h=r[0],c=r[1],d=r[2],g=r[3],u=a.drawRect(h,c,d-h,g-c,0,"#fff",1,e.strokeWidth,i.config.plotOptions.treemap.useFillColorAsStroke?p:i.globals.stroke.colors[o]);u.attr({cx:h,cy:c,index:o,i:o,j:n,width:d-h,height:g-c});var f=e.helpers.getShadeColor(i.config.chart.type,o,n,e.negRange),p=f.color;void 0!==i.config.series[o].data[n]&&i.config.series[o].data[n].fillColor&&(p=i.config.series[o].data[n].fillColor);var x=s.fillPath({color:p,seriesNumber:o,dataPointIndex:n});u.node.classList.add("apexcharts-treemap-rect"),u.attr({fill:x}),e.helpers.addListeners(u);var b={x:h+(d-h)/2,y:c+(g-c)/2,width:0,height:0},m={x:h,y:c,width:d-h,height:g-c};if(i.config.chart.animations.enabled&&!i.globals.dataChanged){var v=1;i.globals.resized||(v=i.config.chart.animations.speed),e.animateTreemap(u,b,m,v)}if(i.globals.dataChanged){var y=1;e.dynamicAnim.enabled&&i.globals.shouldAnimate&&(y=e.dynamicAnim.speed,i.globals.previousPaths[o][n]&&i.globals.previousPaths[o][n].rect&&(b=i.globals.previousPaths[o][n].rect),e.animateTreemap(u,b,m,y))}var w=e.getFontSize(r),k=i.config.dataLabels.formatter(e.labels[o][n],{value:i.globals.series[o][n],seriesIndex:o,dataPointIndex:n,w:i}),A=e.helpers.calculateDataLabels({text:k,x:(h+d)/2,y:(c+g)/2+e.strokeWidth/2+w/3,i:o,j:n,colorProps:f,fontSize:w,series:t});i.config.dataLabels.enabled&&A&&e.rotateToFitLabel(A,k,h,c,d,g),l.add(u),null!==A&&l.add(A)})),l.add(c),r.add(l)})),r}},{key:"getFontSize",value:function(t){var e=this.w;var i,a,s,r,n=function t(e){var i,a=0;if(Array.isArray(e[0]))for(i=0;i<e.length;i++)a+=t(e[i]);else for(i=0;i<e.length;i++)a+=e[i].length;return a}(this.labels)/function t(e){var i,a=0;if(Array.isArray(e[0]))for(i=0;i<e.length;i++)a+=t(e[i]);else for(i=0;i<e.length;i++)a+=1;return a}(this.labels);return i=t[2]-t[0],a=t[3]-t[1],s=i*a,r=Math.pow(s,.5),Math.min(r/n,parseInt(e.config.dataLabels.style.fontSize,10))}},{key:"rotateToFitLabel",value:function(t,e,i,a,s,r){var n=new b(this.ctx),o=n.getTextRects(e);if(o.width+5>s-i&&o.width<=r-a){var l=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(l.x," ").concat(l.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new p(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Mt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return a(t,[{key:"calculateTimeScaleTicks",value:function(t,e){var i=this,a=this.w;if(a.globals.allSeriesCollapsed)return a.globals.labels=[],a.globals.timescaleLabels=[],[];var s=new Y(this.ctx),r=(e-t)/864e5;this.determineInterval(r),a.globals.disableZoomIn=!1,a.globals.disableZoomOut=!1,r<.005?a.globals.disableZoomIn=!0:r>5e4&&(a.globals.disableZoomOut=!0);var o=s.getTimeUnitsfromTimestamp(t,e,this.utc),l=a.globals.gridWidth/r,h=l/24,c=h/60,d=c/60,g=Math.floor(24*r),u=Math.floor(24*r*60),f=Math.floor(24*r*60*60),p=Math.floor(r),x=Math.floor(r/30),b=Math.floor(r/365),m={minSecond:o.minSecond,minMinute:o.minMinute,minHour:o.minHour,minDate:o.minDate,minMonth:o.minMonth,minYear:o.minYear},v={firstVal:m,currentSecond:m.minSecond,currentMinute:m.minMinute,currentHour:m.minHour,currentMonthDate:m.minDate,currentDate:m.minDate,currentMonth:m.minMonth,currentYear:m.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(v);break;case"months":case"half_year":this.generateMonthScale(v);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(v);break;case"hours":this.generateHourScale(v);break;case"minutes":this.generateMinuteScale(v)}var y=this.timeScaleArray.map((function(t){var e={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?n(n({},e),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?n(n({},e),{},{value:t.value}):"minute"===t.unit?n(n({},e),{},{value:t.value,minute:t.value}):t}));return y.filter((function(t){var e=1,s=Math.ceil(a.globals.gridWidth/120),r=t.value;void 0!==a.config.xaxis.tickAmount&&(s=a.config.xaxis.tickAmount),y.length>s&&(e=Math.floor(y.length/s));var n=!1,o=!1;switch(i.tickInterval){case"years":"year"===t.unit&&(n=!0);break;case"half_year":e=7,"year"===t.unit&&(n=!0);break;case"months":e=1,"year"===t.unit&&(n=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(n=!0),30===r&&(o=!0);break;case"months_days":e=10,"month"===t.unit&&(n=!0),30===r&&(o=!0);break;case"week_days":e=8,"month"===t.unit&&(n=!0);break;case"days":e=1,"month"===t.unit&&(n=!0);break;case"hours":"day"===t.unit&&(n=!0);break;case"minutes":r%5!=0&&(o=!0)}if("minutes"===i.tickInterval||"hours"===i.tickInterval){if(!o)return!0}else if((r%e==0||n)&&!o)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new nt(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){switch(!0){case t>1825:this.tickInterval="years";break;case t>800&&t<=1825:this.tickInterval="half_year";break;case t>180&&t<=800:this.tickInterval="months";break;case t>90&&t<=180:this.tickInterval="months_fortnight";break;case t>60&&t<=90:this.tickInterval="months_days";break;case t>30&&t<=60:this.tickInterval="week_days";break;case t>2&&t<=30:this.tickInterval="days";break;case t>.1&&t<=2:this.tickInterval="hours";break;case t<.1:this.tickInterval="minutes";break;default:this.tickInterval="days"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,n=e.minYear,o=0,l=new Y(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);o=(l.determineDaysOfYear(e.minYear)-c+1)*s,n=e.minYear+1,this.timeScaleArray.push({position:o,value:n,unit:h,year:n,month:f.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:o,value:n,unit:h,year:a,month:f.monthMod(i+1)});for(var d=n,g=o,u=0;u<r;u++)d++,g=l.determineDaysOfYear(d-1)*s+g,this.timeScaleArray.push({position:g,value:d,unit:h,year:d,month:1})}},{key:"generateMonthScale",value:function(t){var e=t.firstVal,i=t.currentMonthDate,a=t.currentMonth,s=t.currentYear,r=t.daysWidthOnXAxis,n=t.numberOfMonths,o=a,l=0,h=new Y(this.ctx),c="month",d=0;if(e.minDate>1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,o=f.monthMod(a+1);var g=s+d,u=f.monthMod(o),p=o;0===o&&(c="year",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:o,unit:c,year:s,month:f.monthMod(a)});for(var x=o+1,b=l,m=0,v=1;m<n;m++,v++){0===(x=f.monthMod(x))?(c="year",d+=1):c="month";var y=this._getYear(s,x,d);b=h.determineDaysOfMonths(x,y)*r+b;var w=0===x?y:x;this.timeScaleArray.push({position:b,value:w,unit:c,year:y,month:0===x?1:x}),x++}}},{key:"generateDayScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.hoursWidthOnXAxis,r=t.numberOfDays,n=new Y(this.ctx),o="day",l=e.minDate+1,h=l,c=function(t,e,i){return t>n.determineDaysOfMonths(e+1,i)?(h=1,o="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate&&(d=0,g=f.monthMod(e.minMonth),o="month",h=e.minDate,r++),this.timeScaleArray.push({position:d,value:g,unit:o,year:this._getYear(a,u,0),month:f.monthMod(u),day:h});for(var p=d,x=0;x<r;x++){o="day",u=c(h+=1,u,this._getYear(a,u,0));var b=this._getYear(a,u,0);p=24*s+p;var m=1===h?f.monthMod(u):h;this.timeScaleArray.push({position:p,value:m,unit:o,year:b,month:f.monthMod(u),day:m})}}},{key:"generateHourScale",value:function(t){var e=t.firstVal,i=t.currentDate,a=t.currentMonth,s=t.currentYear,r=t.minutesWidthOnXAxis,n=t.numberOfHours,o=new Y(this.ctx),l="hour",h=function(t,e){return t>o.determineDaysOfMonths(e+1,s)&&(x=1,e+=1),{month:e,date:x}},c=function(t,e){return t>o.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var x=i,b=c(x,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:x,hour:p,year:s,month:f.monthMod(b)});for(var m=g,v=0;v<n;v++){if(l="hour",p>=24)p=0,l="day",b=h(x+=1,b).month,b=c(x,b);var y=this._getYear(s,b,0);m=0===p&&0===v?d*r:60*r+m;var w=0===p?x:p;this.timeScaleArray.push({position:m,value:w,unit:l,hour:p,day:x,year:y,month:f.monthMod(b)}),p++}}},{key:"generateMinuteScale",value:function(t){var e=t.firstVal,i=(t.currentSecond,t.currentMinute,t.currentHour),a=t.currentDate,s=t.currentMonth,r=t.currentYear,n=t.minutesWidthOnXAxis,o=t.secondsWidthOnXAxis,l=t.numberOfMinutes,h="minute",c=(60-e.minSecond)*o,d=e.minMinute+1,g=d+1,u=a,p=s,x=r,b=i;this.timeScaleArray.push({position:c,value:d,unit:h,day:u,hour:b,minute:g,year:x,month:f.monthMod(p)});for(var m=c,v=0;v<l;v++)g>=60&&(g=0,24===(b+=1)&&(b=0)),m=n+m,this.timeScaleArray.push({position:m,value:g,unit:h,hour:b,minute:g,day:u,year:this._getYear(r,p,0),month:f.monthMod(p)}),g++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),i+="minute"===t.unit?":"+("0"+e).slice(-2)+":00":":00:00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new Y(e.ctx),r=e.createRawDateString(t,a),n=s.getDate(s.parseDate(r));if(e.utc||(n=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var o="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(o=l.year),"month"===t.unit&&(o=l.month),"day"===t.unit&&(o=l.day),"hour"===t.unit&&(o=l.hour),"minute"===t.unit&&(o=l.minute),a=s.formatDate(n,o)}else a=s.formatDate(n,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new b(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,n=t.map((function(n,o){if(o>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return n.position>h+l+10?(r=o,n):null}return n}));return n=n.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Et=function(){function t(i,a){e(this,t),this.ctx=a,this.w=a.w,this.el=i}return a(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),b.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},n={series:[],i:[]},o={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]};s.series.map((function(e,g){var u=0;void 0!==t[g].type?("column"===t[g].type||"bar"===t[g].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(g),u++,i.globals.columnSeries=h.series):"area"===t[g].type?(n.series.push(e),n.i.push(g),u++):"line"===t[g].type?(r.series.push(e),r.i.push(g),u++):"scatter"===t[g].type?(o.series.push(e),o.i.push(g)):"bubble"===t[g].type?(l.series.push(e),l.i.push(g),u++):"candlestick"===t[g].type?(c.series.push(e),c.i.push(g),u++):"boxPlot"===t[g].type?(d.series.push(e),d.i.push(g),u++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),u>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(g))}));var g=new Pt(this.ctx,e),u=new vt(this.ctx,e);this.ctx.pie=new At(this.ctx);var f=new Ct(this.ctx);this.ctx.rangeBar=new F(this.ctx,e);var p=new St(this.ctx),x=[];if(s.comboCharts){if(n.series.length>0&&x.push(g.draw(n.series,"area",n.i)),h.series.length>0)if(i.config.chart.stacked){var b=new mt(this.ctx,e);x.push(b.draw(h.series,h.i))}else this.ctx.bar=new X(this.ctx,e),x.push(this.ctx.bar.draw(h.series,h.i));if(r.series.length>0&&x.push(g.draw(r.series,"line",r.i)),c.series.length>0&&x.push(u.draw(c.series,c.i)),d.series.length>0&&x.push(u.draw(d.series,d.i)),o.series.length>0){var m=new Pt(this.ctx,e,!0);x.push(m.draw(o.series,"scatter",o.i))}if(l.series.length>0){var v=new Pt(this.ctx,e,!0);x.push(v.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":x=g.draw(s.series,"line");break;case"area":x=g.draw(s.series,"area");break;case"bar":if(a.chart.stacked)x=new mt(this.ctx,e).draw(s.series);else this.ctx.bar=new X(this.ctx,e),x=this.ctx.bar.draw(s.series);break;case"candlestick":x=new vt(this.ctx,e).draw(s.series);break;case"boxPlot":x=new vt(this.ctx,e).draw(s.series);break;case"rangeBar":x=this.ctx.rangeBar.draw(s.series);break;case"heatmap":x=new wt(this.ctx,e).draw(s.series);break;case"treemap":x=new It(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":x=this.ctx.pie.draw(s.series);break;case"radialBar":x=f.draw(s.series);break;case"radar":x=p.draw(s.series);break;default:x=g.draw(s.series)}return x}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=f.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?f.isNumber(i[0])&&(0===i[0].width&&(i=f.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=f.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),b.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var n=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+n+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};b.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled){var n=f.getBoundingClientRect(s);r=n.bottom;var o=n.bottom-n.top;r=Math.max(2.05*t.globals.radialSize,o)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),e.dom.elWrap.style.height=l+"px",b.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px"}},{key:"coreCalculations",value:function(){new U(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new H,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Mt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,e=this.w;if(e.config.chart.brush.enabled&&"function"!=typeof e.config.chart.events.selection){var i=e.config.chart.brush.targets||[e.config.chart.brush.target];i.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),e.config.chart.events.selection=function(t,a){i.forEach((function(t){var i=ApexCharts.getChartByID(t),s=f.clone(e.config.yaxis);if(e.config.chart.brush.autoScaleYaxis&&1===i.w.globals.series.length){var r=new j(i);s=r.autoScaleY(i,s,a)}var o=i.w.config.yaxis.reduce((function(t,e,a){return[].concat(g(t),[n(n({},i.w.config.yaxis[a]),{},{min:s[0].min,max:s[0].max})])}),[]);i.ctx.updateHelpers._updateOptions({xaxis:{min:a.xaxis.min,max:a.xaxis.max},yaxis:o},!1,!1,!1,!1)}))}}}}]),t}(),Xt=function(){function i(t){e(this,i),this.ctx=t,this.w=t.w}return a(i,[{key:"_updateOptions",value:function(e){var i=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=[this.ctx];r&&(o=this.ctx.getSyncedCharts()),this.ctx.w.globals.isExecCalled&&(o=[this.ctx],this.ctx.w.globals.isExecCalled=!1),o.forEach((function(r){var o=r.w;return o.globals.shouldAnimate=s,a||(o.globals.resized=!0,o.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),e&&"object"===t(e)&&(r.config=new D(e),e=y.extendArrayProps(r.config,e,o),r.w.globals.chartID!==i.ctx.w.globals.chartID&&delete e.series,o.config=f.extend(o.config,e),n&&(o.globals.lastXAxis=e.xaxis?f.clone(e.xaxis):[],o.globals.lastYAxis=e.yaxis?f.clone(e.yaxis):[],o.globals.initialConfig=f.extend({},o.config),o.globals.initialSeries=f.clone(o.config.series))),r.update(e)}))}},{key:"_updateSeries",value:function(t,e){var i,a=this,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.w;return r.globals.shouldAnimate=e,r.globals.dataChanged=!0,e&&this.ctx.series.getPreviousPaths(),r.globals.axisCharts?(0===(i=t.map((function(t,e){return a._extendSeries(t,e)}))).length&&(i=[{data:[]}]),r.config.series=i):r.config.series=t.slice(),s&&(r.globals.initialSeries=f.clone(r.config.series)),this.ctx.update()}},{key:"_extendSeries",value:function(t,e){var i=this.w,a=i.config.series[e];return n(n({},i.config.series[e]),{},{name:t.name?t.name:a&&a.name,color:t.color?t.color:a&&a.color,type:t.type?t.type:a&&a.type,data:t.data?t.data:a&&a.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new b(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new R(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){var e=this.w;return e.config.chart.stacked&&"100%"===e.config.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),i}();Tt="undefined"!=typeof window?window:void 0,zt=function(e,i){var a=(void 0!==this?this:e).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.com/svgjs",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var e=i.createElementNS(this.ns,t);return e.setAttribute("id",this.eid(t)),e},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(t){return t?t.instance?t.instance:((i="svg"==t.nodeName?t.parentNode instanceof e.SVGElement?new a.Nested:new a.Doc:"linearGradient"==t.nodeName?new a.Gradient("linear"):"radialGradient"==t.nodeName?new a.Gradient("radial"):a[d(t.nodeName)]?new(a[d(t.nodeName)]):new a.Element(t)).type=t.nodeName,i.node=t,t.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(t.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=i.getElementsByTagName("body")[0],e=(t?new a.Doc(t):a.adopt(i.documentElement).nested()).size(2,0);a.parser={body:t||i.documentElement,draw:e.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:e.polyline().node,path:e.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},i.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s<i;s++)a.push(e(t[s]));return a},filter:function(t,e){for(var i=t.length,a=[],s=0;s<i;s++)e(t[s])&&a.push(t[s]);return a},filterSVGElements:function(t){return this.filter(t,(function(t){return t instanceof e.SVGElement}))}},a.defaults={attrs:{"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","font-size":16,"font-family":"Helvetica, Arial, sans-serif","text-anchor":"start"}},a.Color=function(e){var i,s;this.r=0,this.g=0,this.b=0,e&&("string"==typeof e?a.regex.isRgb.test(e)?(i=a.regex.rgb.exec(e.replace(a.regex.whitespace,"")),this.r=parseInt(i[1]),this.g=parseInt(i[2]),this.b=parseInt(i[3])):a.regex.isHex.test(e)&&(i=a.regex.hex.exec(4==(s=e).length?["#",s.substring(1,2),s.substring(1,2),s.substring(2,3),s.substring(2,3),s.substring(3,4),s.substring(3,4)].join(""):s),this.r=parseInt(i[1],16),this.g=parseInt(i[2],16),this.b=parseInt(i[3],16)):"object"===t(e)&&(this.r=e.r,this.g=e.g,this.b=e.b))},a.extend(a.Color,{toString:function(){return this.toHex()},toHex:function(){return"#"+g(this.r)+g(this.g)+g(this.b)},toRgb:function(){return"rgb("+[this.r,this.g,this.b].join()+")"},brightness:function(){return this.r/255*.3+this.g/255*.59+this.b/255*.11},morph:function(t){return this.destination=new a.Color(t),this},at:function(t){return this.destination?(t=t<0?0:t>1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),n=0,o=r.length;n<o;++n)s[r[n]]=function(t){return function(e,i,a){if("H"==t)e[0]=e[0]+i.x;else if("V"==t)e[0]=e[0]+i.y;else if("A"==t)e[5]=e[5]+i.x,e[6]=e[6]+i.y;else for(var r=0,n=e.length;r<n;++r)e[r]=e[r]+(r%2?i.y:i.x);return s[t](e,i,a)}}(r[n].toUpperCase());a.PathArray=function(t,e){a.Array.call(this,t,e||[["M",0,0]])},a.PathArray.prototype=new a.Array,a.PathArray.prototype.constructor=a.PathArray,a.extend(a.PathArray,{toString:function(){return function(t){for(var e=0,i=t.length,a="";e<i;e++)a+=t[e][0],null!=t[e][1]&&(a+=t[e][1],null!=t[e][2]&&(a+=" ",a+=t[e][2],null!=t[e][3]&&(a+=" ",a+=t[e][3],a+=" ",a+=t[e][4],null!=t[e][5]&&(a+=" ",a+=t[e][5],a+=" ",a+=t[e][6],null!=t[e][7]&&(a+=" ",a+=t[e][7])))));return a+" "}(this.value)},move:function(t,e){var i=this.bbox();return i.x,i.y,this},at:function(t){if(!this.destination)return this;for(var e=this.value,i=this.destination.value,s=[],r=new a.PathArray,n=0,o=e.length;n<o;n++){s[n]=[e[n][0]];for(var l=1,h=e[n].length;l<h;l++)s[n][l]=e[n][l]+(i[n][l]-e[n][l])*t;"A"===s[n][0]&&(s[n][4]=+(0!=s[n][4]),s[n][5]=+(0!=s[n][5]))}return r.value=s,r},parse:function(t){if(t instanceof a.PathArray)return t.valueOf();var e,i={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0};t="string"==typeof t?t.replace(a.regex.numbersWithDots,h).replace(a.regex.pathLetters," $& ").replace(a.regex.hyphen,"$1 -").trim().split(a.regex.delimiter):t.reduce((function(t,e){return[].concat.call(t,e)}),[]);var r=[],n=new a.Point,o=new a.Point,l=0,c=t.length;do{a.regex.isPathLetter.test(t[l])?(e=t[l],++l):"M"==e?e="L":"m"==e&&(e="l"),r.push(s[e].call(null,t.slice(l,l+=i[e.toUpperCase()]).map(parseFloat),n,o))}while(c>l);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(t){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!t)return i;for(;i&&i.node instanceof e.SVGElement;){if("string"==typeof t?i.matches(t):i instanceof t)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var e=i.createElement("svg");if(!(t&&this instanceof a.Parent))return e.appendChild(t=i.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),e.innerHTML.replace(/^<svg>/,"").replace(/<\/svg>$/,"");e.innerHTML="<svg>"+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2></$1>")+"</svg>";for(var s=0,r=e.firstChild.childNodes.length;s<r;s++)this.node.appendChild(e.firstChild.firstChild);return this},writeDataToDom:function(){return(this.each||this.lines)&&(this.each?this:this.lines()).each((function(){this.writeDataToDom()})),this.node.removeAttribute("svgjs:data"),Object.keys(this.dom).length&&this.node.setAttribute("svgjs:data",JSON.stringify(this.dom)),this},setData:function(t){return this.dom=t,this},is:function(t){return function(t,e){return t instanceof e}(this,t)}}}),a.easing={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(e,i,s){"object"===t(e)&&(i=e.ease,s=e.delay,e=e.duration);var r=new a.Situation({duration:e||1e3,delay:s||0,ease:a.easing[i||"-"]||i});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=e.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){e.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||i<this.situation.loops?(this.pos=e-i,a=this.situation.loop,this.situation.loop=i):(this.absPos=this.situation.loops,this.pos=1,a=this.situation.loop-1,this.situation.loop=this.situation.loops),this.situation.reversing&&(this.situation.reversed=this.situation.reversed!=Boolean((this.situation.loop-a)%2))):(this.absPos=Math.min(this.absPos,1),this.pos=this.absPos),this.pos<0&&(this.pos=0),this.situation.reversed&&(this.pos=1-this.pos);var s=this.situation.ease(this.pos);for(var r in this.situation.once)r>this.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var n=s.transforms.length;r<n;r++){var o=s.transforms[r];o instanceof a.Matrix?t=o.relative?t.multiply((new a.Matrix).morph(o).at(s.ease(this.pos))):t.morph(o).at(s.ease(this.pos)):(o.relative||o.undo(t.extract()),t=t.multiply(o.at(s.ease(this.pos))))}i.matrix(t)}return this},once:function(t,e,i){var a=this.last();return i||(t=a.ease(t)),a.once[t]=e,this},_callStart:function(){return setTimeout(function(){this.start()}.bind(this),0),this}},parent:a.Element,construct:{animate:function(t,e,i){return(this.fx||(this.fx=new a.FX(this))).animate(t,e,i)},delay:function(t){return(this.fx||(this.fx=new a.FX(this))).delay(t)},stop:function(t,e){return this.fx&&this.fx.stop(t,e),this},finish:function(){return this.fx&&this.fx.finish(),this}}}),a.MorphObj=a.invent({create:function(t,e){return a.Color.isColor(e)?new a.Color(t).morph(e):a.regex.delimiter.test(t)?a.regex.pathLetters.test(t)?new a.PathArray(t).morph(e):new a.Array(t).morph(e):a.regex.numberAndUnit.test(e)?new a.Number(t).morph(e):(this.value=t,void(this.destination=e))},extend:{at:function(t,e){return e<1?this.value:this.destination},valueOf:function(){return this.value}}}),a.extend(a.FX,{attr:function(e,i,a){if("object"===t(e))for(var s in e)this.attr(s,e[s]);else this.add(e,i,"attrs");return this},plot:function(t,e,i,a){return 4==arguments.length?this.plot([t,e,i,a]):this.add("plot",new(this.target().morphArray)(t))}}),a.Box=a.invent({create:function(e,i,s,r){if(!("object"!==t(e)||e instanceof a.Element))return a.Box.call(this,null!=e.left?e.left:e.x,null!=e.top?e.top:e.y,e.width,e.height);4==arguments.length&&(this.x=e,this.y=i,this.width=s,this.height=r),b(this)}}),a.BBox=a.invent({create:function(t){if(a.Box.apply(this,[].slice.call(arguments)),t instanceof a.Element){var e;try{if(!i.documentElement.contains){for(var s=t.node;s.parentNode;)s=s.parentNode;if(s!=i)throw new Error("Element not in the dom")}e=t.node.getBBox()}catch(i){if(t instanceof a.Shape){a.parser.draw||a.prepare();var r=t.clone(a.parser.draw.instance).show();e=r.node.getBBox(),r.remove()}else e={x:t.node.clientLeft,y:t.node.clientTop,width:t.node.clientWidth,height:t.node.clientHeight}}a.Box.call(this,e)}},inherit:a.Box,parent:a.Element,construct:{bbox:function(){return new a.BBox(this)}}}),a.BBox.prototype.constructor=a.BBox,a.Matrix=a.invent({create:function(e){var i=p([1,0,0,1,0,0]);e=e instanceof a.Element?e.matrixify():"string"==typeof e?p(e.split(a.regex.delimiter).map(parseFloat)):6==arguments.length?p([].slice.call(arguments)):Array.isArray(e)?p(e):"object"===t(e)?e:i;for(var s=v.length-1;s>=0;--s)this[v[s]]=null!=e[v[s]]?e[v[s]]:i[v[s]]},extend:{extract:function(){var t=f(this,0,1),e=(f(this,1,0),180/Math.PI*Math.atan2(t.y,t.x)-90);return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return"matrix("+m(this.a)+","+m(this.b)+","+m(this.c)+","+m(this.d)+","+m(this.e)+","+m(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(e,i){var a;a=Array.isArray(e)?{x:e[0],y:e[1]}:"object"===t(e)?{x:e.x,y:e.y}:null!=e?{x:e,y:null!=i?i:e}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(e,i,s){if(null==e){for(e={},s=(i=this.node.attributes).length-1;s>=0;s--)e[i[s].nodeName]=a.regex.isNumber.test(i[s].nodeValue)?parseFloat(i[s].nodeValue):i[s].nodeValue;return e}if("object"===t(e))for(var r in e)this.attr(r,e[r]);else if(null===i)this.node.removeAttribute(e);else{if(null==i)return null==(i=this.node.getAttribute(e))?a.defaults.attrs[e]:a.regex.isNumber.test(i)?parseFloat(i):i;"stroke-width"==e?this.attr("stroke",parseFloat(i)>0?this._stroke:null):"stroke"==e&&(this._stroke=i),"fill"!=e&&"stroke"!=e||(a.regex.isImage.test(i)&&(i=this.doc().defs().image(i,0,0)),i instanceof a.Image&&(i=this.doc().defs().pattern(0,0,(function(){this.add(i)})))),"number"==typeof i?i=new a.Number(i):a.Color.isColor(i)?i=new a.Color(i):Array.isArray(i)&&(i=new a.Array(i)),"leading"==e?this.leading&&this.leading(i):"string"==typeof s?this.node.setAttributeNS(s,e,i.toString()):this.node.setAttribute(e,i.toString()),!this.rebuild||"font-size"!=e&&"x"!=e||this.rebuild(e,i)}return this}}),a.extend(a.Element,{transform:function(e,i){var s;return"object"!==t(e)?(s=new a.Matrix(this).extract(),"string"==typeof e?s[e]:s):(s=new a.Matrix(this),i=!!i||!!e.relative,null!=e.a&&(s=i?s.multiply(new a.Matrix(e)):new a.Matrix(e)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(e,i){if(arguments.length>1&&"boolean"!=typeof i)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(e))for(var a=0,s=this.arguments.length;a<s;++a)this[this.arguments[a]]=e[a];else if("object"===t(e))for(a=0,s=this.arguments.length;a<s;++a)this[this.arguments[a]]=e[this.arguments[a]];this.inversed=!1,!0===i&&(this.inversed=!0)}}),a.Translate=a.invent({parent:a.Matrix,inherit:a.Transformation,create:function(t,e){this.constructor.apply(this,[].slice.call(arguments))},extend:{arguments:["transformedX","transformedY"],method:"translate"}}),a.extend(a.Element,{style:function(e,i){if(0==arguments.length)return this.node.style.cssText||"";if(arguments.length<2)if("object"===t(e))for(var s in e)this.style(s,e[s]);else{if(!a.regex.isCss.test(e))return this.node.style[c(e)];for(e=e.split(/\s*;\s*/).filter((function(t){return!!t})).map((function(t){return t.split(/\s*:\s*/)}));i=e.pop();)this.style(i[0],i[1])}else this.node.style[c(e)]=null===i||a.regex.isBlank.test(i)?"":i;return this}}),a.Parent=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element,extend:{children:function(){return a.utils.map(a.utils.filterSVGElements(this.node.childNodes),(function(t){return a.adopt(t)}))},add:function(t,e){return null==e?this.node.appendChild(t.node):t.node!=this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this},put:function(t,e){return this.add(t,e),t},has:function(t){return this.index(t)>=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s<r;s++)i[s]instanceof a.Element&&t.apply(i[s],[s,i]),e&&i[s]instanceof a.Container&&i[s].each(t,e);return this},removeElement:function(t){return this.node.removeChild(t.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,this},defs:function(){return this.doc().defs()}}}),a.extend(a.Parent,{ungroup:function(t,e){return 0===e||this instanceof a.Defs||this.node==a.parser.draw||(t=t||(this instanceof a.Doc?this:this.parent(a.Parent)),e=e||1/0,this.each((function(){return this instanceof a.Defs?this:this instanceof a.Parent?this.ungroup(t,e-1):this.toParent(t)})),this.node.firstChild||this.remove()),this},flatten:function(t,e){return this.ungroup(t,e)}}),a.Container=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Parent}),a.ViewBox=a.invent({parent:a.Container,construct:{}}),["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","touchstart","touchmove","touchleave","touchend","touchcancel"].forEach((function(t){a.Element.prototype[t]=function(e){return a.on(this.node,t,e),this}})),a.listeners=[],a.handlerMap=[],a.listenerId=0,a.on=function(t,e,i,s,r){var n=i.bind(s||t.instance||t),o=(a.handlerMap.indexOf(t)+1||a.handlerMap.push(t))-1,l=e.split(".")[0],h=e.split(".")[1]||"*";a.listeners[o]=a.listeners[o]||{},a.listeners[o][l]=a.listeners[o][l]||{},a.listeners[o][l][h]=a.listeners[o][l][h]||{},i._svgjsListenerId||(i._svgjsListenerId=++a.listenerId),a.listeners[o][l][h][i._svgjsListenerId]=n,t.addEventListener(l,n,r||{passive:!0})},a.off=function(t,e,i){var s=a.handlerMap.indexOf(t),r=e&&e.split(".")[0],n=e&&e.split(".")[1],o="";if(-1!=s)if(i){if("function"==typeof i&&(i=i._svgjsListenerId),!i)return;a.listeners[s][r]&&a.listeners[s][r][n||"*"]&&(t.removeEventListener(r,a.listeners[s][r][n||"*"][i],!1),delete a.listeners[s][r][n||"*"][i])}else if(n&&r){if(a.listeners[s][r]&&a.listeners[s][r][n]){for(var l in a.listeners[s][r][n])a.off(t,[r,n].join("."),l);delete a.listeners[s][r][n]}}else if(n)for(var h in a.listeners[s])for(var o in a.listeners[s][h])n===o&&a.off(t,[h,n].join("."));else if(r){if(a.listeners[s][r]){for(var o in a.listeners[s][r])a.off(t,[r,o].join("."));delete a.listeners[s][r]}}else{for(var h in a.listeners[s])a.off(t,h);delete a.listeners[s],delete a.handlerMap[s]}},a.extend(a.Element,{on:function(t,e,i,s){return a.on(this.node,t,e,i,s),this},off:function(t,e){return a.off(this.node,t,e),this},fire:function(t,i){return t instanceof e.Event?this.node.dispatchEvent(t):this.node.dispatchEvent(t=new a.CustomEvent(t,{detail:i,cancelable:!0})),this._event=t,this},event:function(){return this._event}}),a.Defs=a.invent({create:"defs",inherit:a.Container}),a.G=a.invent({create:"g",inherit:a.Container,extend:{x:function(t){return null==t?this.transform("x"):this.transform({x:t-this.x()},!0)}},construct:{group:function(){return this.put(new a.G)}}}),a.Doc=a.invent({create:function(t){t&&("svg"==(t="string"==typeof t?i.getElementById(t):t).nodeName?this.constructor.call(this,t):(this.constructor.call(this,a.create("svg")),t.appendChild(this.node),this.size("100%","100%")),this.namespace().defs())},inherit:a.Container,extend:{namespace:function(){return this.attr({xmlns:a.ns,version:"1.1"}).attr("xmlns:xlink",a.xlink,a.xmlns).attr("xmlns:svgjs",a.svgjs,a.xmlns)},defs:function(){var t;return this._defs||((t=this.node.getElementsByTagName("defs")[0])?this._defs=a.adopt(t):this._defs=new a.Defs,this.node.appendChild(this._defs.node)),this._defs},parent:function(){return this.node.parentNode&&"#document"!=this.node.parentNode.nodeName?this.node.parentNode:null},remove:function(){return this.parent()&&this.parent().removeChild(this.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,a.parser.draw&&!a.parser.draw.parentNode&&this.node.appendChild(a.parser.draw),this},clone:function(t){this.writeDataToDom();var e=this.node,i=x(e.cloneNode(!0));return t?(t.node||t).appendChild(i.node):e.parentNode.insertBefore(i.node,e.nextSibling),i}}}),a.extend(a.Element,{}),a.Gradient=a.invent({create:function(t){this.constructor.call(this,a.create(t+"Gradient")),this.type=t},inherit:a.Container,extend:{at:function(t,e,i){return this.put(new a.Stop).update(t,e,i)},update:function(t){return this.clear(),"function"==typeof t&&t.call(this,this),this},fill:function(){return"url(#"+this.id()+")"},toString:function(){return this.fill()},attr:function(t,e,i){return"transform"==t&&(t="gradientTransform"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{gradient:function(t,e){return this.defs().gradient(t,e)}}}),a.extend(a.Gradient,a.FX,{from:function(t,e){return"radial"==(this._target||this).type?this.attr({fx:new a.Number(t),fy:new a.Number(e)}):this.attr({x1:new a.Number(t),y1:new a.Number(e)})},to:function(t,e){return"radial"==(this._target||this).type?this.attr({cx:new a.Number(t),cy:new a.Number(e)}):this.attr({x2:new a.Number(t),y2:new a.Number(e)})}}),a.extend(a.Defs,{gradient:function(t,e){return this.put(new a.Gradient(t)).update(e)}}),a.Stop=a.invent({create:"stop",inherit:a.Element,extend:{update:function(t){return("number"==typeof t||t instanceof a.Number)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new a.Number(t.offset)),this}}}),a.Pattern=a.invent({create:"pattern",inherit:a.Container,extend:{fill:function(){return"url(#"+this.id()+")"},update:function(t){return this.clear(),"function"==typeof t&&t.call(this,this),this},toString:function(){return this.fill()},attr:function(t,e,i){return"transform"==t&&(t="patternTransform"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{pattern:function(t,e,i){return this.defs().pattern(t,e,i)}}}),a.extend(a.Defs,{pattern:function(t,e,i){return this.put(new a.Pattern).update(i).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}}),a.Shape=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element}),a.Symbol=a.invent({create:"symbol",inherit:a.Container,construct:{symbol:function(){return this.put(new a.Symbol)}}}),a.Use=a.invent({create:"use",inherit:a.Shape,extend:{element:function(t,e){return this.attr("href",(e||"")+"#"+t,a.xlink)}},construct:{use:function(t,e){return this.put(new a.Use).element(t,e)}}}),a.Rect=a.invent({create:"rect",inherit:a.Shape,construct:{rect:function(t,e){return this.put(new a.Rect).size(t,e)}}}),a.Circle=a.invent({create:"circle",inherit:a.Shape,construct:{circle:function(t){return this.put(new a.Circle).rx(new a.Number(t).divide(2)).move(0,0)}}}),a.extend(a.Circle,a.FX,{rx:function(t){return this.attr("r",t)},ry:function(t){return this.rx(t)}}),a.Ellipse=a.invent({create:"ellipse",inherit:a.Shape,construct:{ellipse:function(t,e){return this.put(new a.Ellipse).size(t,e).move(0,0)}}}),a.extend(a.Ellipse,a.Rect,a.FX,{rx:function(t){return this.attr("rx",t)},ry:function(t){return this.attr("ry",t)}}),a.extend(a.Circle,a.Ellipse,{x:function(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())},y:function(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())},cx:function(t){return null==t?this.attr("cx"):this.attr("cx",t)},cy:function(t){return null==t?this.attr("cy"):this.attr("cy",t)},width:function(t){return null==t?2*this.rx():this.rx(new a.Number(t).divide(2))},height:function(t){return null==t?2*this.ry():this.ry(new a.Number(t).divide(2))},size:function(t,e){var i=u(this,t,e);return this.rx(new a.Number(i.width).divide(2)).ry(new a.Number(i.height).divide(2))}}),a.Line=a.invent({create:"line",inherit:a.Shape,extend:{array:function(){return new a.PointArray([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])},plot:function(t,e,i,s){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:i,y2:s}:new a.PointArray(t).toLine(),this.attr(t))},move:function(t,e){return this.attr(this.array().move(t,e).toLine())},size:function(t,e){var i=u(this,t,e);return this.attr(this.array().size(i.width,i.height).toLine())}},construct:{line:function(t,e,i,s){return a.Line.prototype.plot.apply(this.put(new a.Line),null!=t?[t,e,i,s]:[0,0,0,0])}}}),a.Polyline=a.invent({create:"polyline",inherit:a.Shape,construct:{polyline:function(t){return this.put(new a.Polyline).plot(t||new a.PointArray)}}}),a.Polygon=a.invent({create:"polygon",inherit:a.Shape,construct:{polygon:function(t){return this.put(new a.Polygon).plot(t||new a.PointArray)}}}),a.extend(a.Polyline,a.Polygon,{array:function(){return this._array||(this._array=new a.PointArray(this.attr("points")))},plot:function(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new a.PointArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr("points",this.array().move(t,e))},size:function(t,e){var i=u(this,t,e);return this.attr("points",this.array().size(i.width,i.height))}}),a.extend(a.Line,a.Polyline,a.Polygon,{morphArray:a.PointArray,x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},width:function(t){var e=this.bbox();return null==t?e.width:this.size(t,e.height)},height:function(t){var e=this.bbox();return null==t?e.height:this.size(e.width,t)}}),a.Path=a.invent({create:"path",inherit:a.Shape,extend:{morphArray:a.PathArray,array:function(){return this._array||(this._array=new a.PathArray(this.attr("d")))},plot:function(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new a.PathArray(t))},clear:function(){return delete this._array,this}},construct:{path:function(t){return this.put(new a.Path).plot(t||new a.PathArray)}}}),a.Image=a.invent({create:"image",inherit:a.Shape,extend:{load:function(t){if(!t)return this;var i=this,s=new e.Image;return a.on(s,"load",(function(){a.off(s);var e=i.parent(a.Pattern);null!==e&&(0==i.width()&&0==i.height()&&i.size(s.width,s.height),e&&0==e.width()&&0==e.height()&&e.size(i.width(),i.height()),"function"==typeof i._loaded&&i._loaded.call(i,{width:s.width,height:s.height,ratio:s.width/s.height,url:t}))})),a.on(s,"error",(function(t){a.off(s),"function"==typeof i._error&&i._error.call(i,t)})),this.attr("href",s.src=this.src=t,a.xlink)},loaded:function(t){return this._loaded=t,this},error:function(t){return this._error=t,this}},construct:{image:function(t,e,i){return this.put(new a.Image).load(t).size(e||0,i||e||0)}}}),a.Text=a.invent({create:function(){this.constructor.call(this,a.create("text")),this.dom.leading=new a.Number(1.3),this._rebuild=!0,this._build=!1,this.attr("font-family",a.defaults.attrs["font-family"])},inherit:a.Shape,extend:{x:function(t){return null==t?this.attr("x"):this.attr("x",t)},text:function(t){if(void 0===t){t="";for(var e=this.node.childNodes,i=0,s=e.length;i<s;++i)0!=i&&3!=e[i].nodeType&&1==a.adopt(e[i]).dom.newLined&&(t+="\n"),t+=e[i].textContent;return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else{i=0;for(var r=(t=t.split("\n")).length;i<r;i++)this.tspan(t[i]).newLine()}return this.build(!1).rebuild()},size:function(t){return this.attr("font-size",t).rebuild()},leading:function(t){return null==t?this.dom.leading:(this.dom.leading=new a.Number(t),this.rebuild())},lines:function(){var t=(this.textPath&&this.textPath()||this).node,e=a.utils.map(a.utils.filterSVGElements(t.childNodes),(function(t){return a.adopt(t)}));return new a.Set(e)},rebuild:function(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){var e=this,i=0,s=this.dom.leading*new a.Number(this.attr("font-size"));this.lines().each((function(){this.dom.newLined&&(e.textPath()||this.attr("x",e.attr("x")),"\n"==this.text()?i+=s:(this.attr("dy",s+i),i=0))})),this.fire("rebuild")}return this},build:function(t){return this._build=!!t,this},setData:function(t){return this.dom=t,this.dom.leading=new a.Number(t.leading||1.3),this}},construct:{text:function(t){return this.put(new a.Text).text(t)},plain:function(t){return this.put(new a.Text).plain(t)}}}),a.Tspan=a.invent({create:"tspan",inherit:a.Shape,extend:{text:function(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?t.call(this,this):this.plain(t),this)},dx:function(t){return this.attr("dx",t)},dy:function(t){return this.attr("dy",t)},newLine:function(){var t=this.parent(a.Text);return this.dom.newLined=!0,this.dy(t.dom.leading*t.attr("font-size")).attr("x",t.x())}}}),a.extend(a.Text,a.Tspan,{plain:function(t){return!1===this._build&&this.clear(),this.node.appendChild(i.createTextNode(t)),this},tspan:function(t){var e=(this.textPath&&this.textPath()||this).node,i=new a.Tspan;return!1===this._build&&this.clear(),e.appendChild(i.node),i.text(t)},clear:function(){for(var t=(this.textPath&&this.textPath()||this).node;t.hasChildNodes();)t.removeChild(t.lastChild);return this},length:function(){return this.node.getComputedTextLength()}}),a.TextPath=a.invent({create:"textPath",inherit:a.Parent,parent:a.Text,construct:{morphArray:a.PathArray,array:function(){var t=this.track();return t?t.array():null},plot:function(t){var e=this.track(),i=null;return e&&(i=e.plot(t)),null==t?i:this},track:function(){var t=this.textPath();if(t)return t.reference("href")},textPath:function(){if(this.node.firstChild&&"textPath"==this.node.firstChild.nodeName)return a.adopt(this.node.firstChild)}}}),a.Nested=a.invent({create:function(){this.constructor.call(this,a.create("svg")),this.style("overflow","visible")},inherit:a.Container,construct:{nested:function(){return this.put(new a.Nested)}}});var l={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"==e?t:t+"-"+e}};function h(t,e,i,s){return i+s.replace(a.regex.dots," .")}function c(t){return t.toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()}))}function d(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t){var e=t.toString(16);return 1==e.length?"0"+e:e}function u(t,e,i){if(null==e||null==i){var a=t.bbox();null==e?e=a.width/a.height*i:null==i&&(i=a.height/a.width*e)}return{width:e,height:i}}function f(t,e,i){return{x:e*t.a+i*t.c+0,y:e*t.b+i*t.d+0}}function p(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}function x(t){for(var i=t.childNodes.length-1;i>=0;i--)t.childNodes[i]instanceof e.SVGElement&&x(t.childNodes[i]);return a.adopt(t).id(a.eid(t.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function m(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e<i;e++)this.members.push(t[e]);return this},remove:function(t){var e=this.index(t);return e>-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e<i;e++)t.apply(this.members[e],[e,this.members]);return this},clear:function(){return this.members=[],this},length:function(){return this.members.length},has:function(t){return this.index(t)>=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e<i;e++)this.members[e]&&"function"==typeof this.members[e][t]&&this.members[e][t].apply(this.members[e],arguments);return"animate"==t?this.fx||(this.fx=new a.FX.Set(this)):this}})),t=[],a.FX.prototype)"function"==typeof a.FX.prototype[e]&&"function"!=typeof a.FX.Set.prototype[e]&&t.push(e);t.forEach((function(t){a.FX.Set.prototype[t]=function(){for(var e=0,i=this.set.members.length;e<i;e++)this.set.members[e].fx[t].apply(this.set.members[e].fx,arguments);return this}}))},a.extend(a.Element,{}),a.extend(a.Element,{remember:function(e,i){if("object"===t(arguments[0]))for(var a in e)this.remember(a,e[a]);else{if(1==arguments.length)return this.memory()[e];this.memory()[e]=i}return this},forget:function(){if(0==arguments.length)this._memory={};else for(var t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var e=i.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(e)},a.select=function(t,e){return new a.Set(a.utils.map((e||i).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var v="abcdef".split("");if("function"!=typeof e.CustomEvent){var y=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var a=i.createEvent("CustomEvent");return a.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),a};y.prototype=e.Event.prototype,a.CustomEvent=y}else a.CustomEvent=e.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return zt(Tt,Tt.document)})):"object"===("undefined"==typeof exports?"undefined":t(exports))&&"undefined"!=typeof module?module.exports=Tt.document?zt(Tt,Tt.document):function(t){return zt(t,t.document)}:Tt.SVG=zt(Tt,Tt.document), +/*! svg.filter.js - v2.0.2 - 2016-02-24 + * https://github.com/wout/svg.filter.js + * Copyright (c) 2016 Wout Fierens; Licensed MIT */ +function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",r(Array.prototype.slice.call(arguments))):this.attr("stdDeviation","0 0")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i<t.length;i++)t[i]instanceof SVG.MergeNode?this.put(t[i]):this.put(new SVG.MergeNode(t[i]))}},componentTransfer:function(t){if(this.rgb=new SVG.Set,["r","g","b","a"].forEach(function(t){this[t]=new(SVG["Func"+t.toUpperCase()])("identity"),this.rgb.add(this[t]),this.node.appendChild(this[t].node)}.bind(this)),t)for(var e in t.rgb&&(["r","g","b"].forEach(function(e){this[e].attr(t.rgb)}.bind(this)),delete t.rgb),t)this[e].attr(t[e])},diffuseLighting:function(t,e,i){this.attr({surfaceScale:t,diffuseConstant:e,kernelUnitLength:i})},specularLighting:function(t,e,i,a){this.attr({surfaceScale:t,diffuseConstant:e,specularExponent:i,kernelUnitLength:a})}},a={distantLight:function(t,e){this.attr({azimuth:t,elevation:e})},pointLight:function(t,e,i){this.attr({x:t,y:e,z:i})},spotLight:function(t,e,i,a,s,r){this.attr({x:t,y:e,z:i,pointsAtX:a,pointsAtY:s,pointsAtZ:r})},mergeNode:function(t){this.attr("in",t)}};function s(t){return Array.isArray(t)&&(t=new SVG.Array(t)),t.toString().replace(/^\s+/,"").replace(/\s+$/,"").replace(/\s+/g," ")}function r(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e<i;e++)a.push(t[e]);return a.join(" ")}function n(){var t=function(){};for(var e in"function"==typeof arguments[arguments.length-1]&&(t=arguments[arguments.length-1],Array.prototype.splice.call(arguments,arguments.length-1,1)),arguments)for(var i in arguments[e])t(arguments[e][i],i,arguments[e])}["r","g","b","a"].forEach((function(t){a["Func"+t.toUpperCase()]=function(t){switch(this.attr("type",t),t){case"table":this.attr("tableValues",arguments[1]);break;case"linear":this.attr("slope",arguments[1]),this.attr("intercept",arguments[2]);break;case"gamma":this.attr("amplitude",arguments[1]),this.attr("exponent",arguments[2]),this.attr("offset",arguments[2])}}})),n(e,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i+"Effect"]=SVG.invent({create:function(){this.constructor.call(this,SVG.create("fe"+i)),t.apply(this,arguments),this.result(this.attr("id")+"Out")},inherit:SVG.Effect,extend:{}})})),n(i,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i+"Effect"]=SVG.invent({create:function(){this.constructor.call(this,SVG.create("fe"+i)),t.apply(this,arguments),this.result(this.attr("id")+"Out")},inherit:SVG.ParentEffect,extend:{}})})),n(a,(function(t,e){var i=e.charAt(0).toUpperCase()+e.slice(1);SVG[i]=SVG.invent({create:function(){this.constructor.call(this,SVG.create("fe"+i)),t.apply(this,arguments)},inherit:SVG.ChildEffect,extend:{}})})),SVG.extend(SVG.MergeEffect,{in:function(t){return t instanceof SVG.MergeNode?this.add(t,0):this.add(new SVG.MergeNode(t),0),this}}),SVG.extend(SVG.CompositeEffect,SVG.BlendEffect,SVG.DisplacementMapEffect,{in2:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in2")+'"]').get(0)||this.attr("in2"):this.attr("in2",t)}}),SVG.filter={sepiatone:[.343,.669,.119,0,0,.249,.626,.13,0,0,.172,.334,.111,0,0,0,0,0,1,0]}}.call(void 0),function(){function t(t,s,r,n,o,l,h){for(var c=t.slice(s,r||h),d=n.slice(o,l||h),g=0,u={pos:[0,0],start:[0,0]},f={pos:[0,0],start:[0,0]};;){if(c[g]=e.call(u,c[g]),d[g]=e.call(f,d[g]),c[g][0]!=d[g][0]||"M"==c[g][0]||"A"==c[g][0]&&(c[g][4]!=d[g][4]||c[g][5]!=d[g][5])?(Array.prototype.splice.apply(c,[g,1].concat(a.call(u,c[g]))),Array.prototype.splice.apply(d,[g,1].concat(a.call(f,d[g])))):(c[g]=i.call(u,c[g]),d[g]=i.call(f,d[g])),++g==c.length&&g==d.length)break;g==c.length&&c.push(["C",u.pos[0],u.pos[1],u.pos[0],u.pos[1],u.pos[0],u.pos[1]]),g==d.length&&d.push(["C",f.pos[0],f.pos[1],f.pos[0],f.pos[1],f.pos[0],f.pos[1]])}return{start:c,dest:d}}function e(t){switch(t[0]){case"z":case"Z":t[0]="L",t[1]=this.start[0],t[2]=this.start[1];break;case"H":t[0]="L",t[2]=this.pos[1];break;case"V":t[0]="L",t[2]=t[1],t[1]=this.pos[0];break;case"T":t[0]="Q",t[3]=t[1],t[4]=t[2],t[1]=this.reflection[1],t[2]=this.reflection[0];break;case"S":t[0]="C",t[6]=t[4],t[5]=t[3],t[4]=t[2],t[3]=t[1],t[2]=this.reflection[1],t[1]=this.reflection[0]}return t}function i(t){var e=t.length;return this.pos=[t[e-2],t[e-1]],-1!="SCQT".indexOf(t[0])&&(this.reflection=[2*this.pos[0]-t[e-4],2*this.pos[1]-t[e-3]]),t}function a(t){var e=[t];switch(t[0]){case"M":return this.pos=this.start=[t[1],t[2]],e;case"L":t[5]=t[3]=t[1],t[6]=t[4]=t[2],t[1]=this.pos[0],t[2]=this.pos[1];break;case"Q":t[6]=t[4],t[5]=t[3],t[4]=1*t[4]/3+2*t[2]/3,t[3]=1*t[3]/3+2*t[1]/3,t[2]=1*this.pos[1]/3+2*t[2]/3,t[1]=1*this.pos[0]/3+2*t[1]/3;break;case"A":t=(e=function(t,e){var i,a,s,r,n,o,l,h,c,d,g,u,f,p,x,b,m,v,y,w,k,A,S,C,L,P,T=Math.abs(e[1]),z=Math.abs(e[2]),I=e[3]%360,M=e[4],E=e[5],X=e[6],Y=e[7],F=new SVG.Point(t),R=new SVG.Point(X,Y),D=[];if(0===T||0===z||F.x===R.x&&F.y===R.y)return[["C",F.x,F.y,R.x,R.y,R.x,R.y]];i=new SVG.Point((F.x-R.x)/2,(F.y-R.y)/2).transform((new SVG.Matrix).rotate(I)),(a=i.x*i.x/(T*T)+i.y*i.y/(z*z))>1&&(T*=a=Math.sqrt(a),z*=a);s=(new SVG.Matrix).rotate(I).scale(1/T,1/z).rotate(-I),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],o=r[0]*r[0]+r[1]*r[1],n=Math.sqrt(o),r[0]/=n,r[1]/=n,l=o<4?Math.sqrt(1-o/4):0,M===E&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);E&&g>u&&(u+=2*Math.PI);!E&&g<u&&(u-=2*Math.PI);for(p=Math.ceil(2*Math.abs(g-u)/Math.PI),b=[],m=g,f=(u-g)/p,x=4*Math.tan(f/4)/3,k=0;k<=p;k++)y=Math.cos(m),v=Math.sin(m),w=new SVG.Point(h.x+y,h.y+v),b[k]=[new SVG.Point(w.x+x*v,w.y-x*y),w,new SVG.Point(w.x-x*v,w.y+x*y)],m+=f;for(b[0][0]=b[0][1].clone(),b[b.length-1][2]=b[b.length-1][1].clone(),s=(new SVG.Matrix).rotate(I).scale(T,z).rotate(-I),k=0,A=b.length;k<A;k++)b[k][0]=b[k][0].transform(s),b[k][1]=b[k][1].transform(s),b[k][2]=b[k][2].transform(s);for(k=1,A=b.length;k<A;k++)S=(w=b[k-1][2]).x,C=w.y,L=(w=b[k][0]).x,P=w.y,X=(w=b[k][1]).x,Y=w.y,D.push(["C",S,C,L,P,X,Y]);return D}(this.pos,t))[0]}return t[0]="C",this.pos=[t[5],t[6]],this.reflection=[2*t[5]-t[3],2*t[6]-t[4]],e}function s(t,e){if(!1===e)return!1;for(var i=e,a=t.length;i<a;++i)if("M"==t[i][0])return i;return!1}SVG.extend(SVG.PathArray,{morph:function(e){for(var i=this.value,a=this.parse(e),r=0,n=0,o=!1,l=!1;!1!==r||!1!==n;){var h;o=s(i,!1!==r&&r+1),l=s(a,!1!==n&&n+1),!1===r&&(r=0==(h=new SVG.PathArray(c.start).bbox()).height||0==h.width?i.push(i[0])-1:i.push(["M",h.x+h.width/2,h.y+h.height/2])-1),!1===n&&(n=0==(h=new SVG.PathArray(c.dest).bbox()).height||0==h.width?a.push(a[0])-1:a.push(["M",h.x+h.width/2,h.y+h.height/2])-1);var c=t(i,r,o,a,n,l);i=i.slice(0,r).concat(c.start,!1===o?[]:i.slice(o)),a=a.slice(0,n).concat(c.dest,!1===l?[]:a.slice(l)),r=!1!==o&&r+c.start.length,n=!1!==l&&n+c.dest.length}return this.value=i,this.destination=new SVG.PathArray,this.destination.value=a,this}})}(), +/*! svg.draggable.js - v2.2.2 - 2019-01-08 + * https://github.com/svgdotjs/svg.draggable.js + * Copyright (c) 2019 Wout Fierens; Licensed MIT */ +function(){function t(t){t.remember("_draggable",this),this.el=t}t.prototype.init=function(t,e){var i=this;this.constraint=t,this.value=e,this.el.on("mousedown.drag",(function(t){i.start(t)})),this.el.on("touchstart.drag",(function(t){i.start(t)}))},t.prototype.transformPoint=function(t,e){var i=(t=t||window.event).changedTouches&&t.changedTouches[0]||t;return this.p.x=i.clientX-(e||0),this.p.y=i.clientY,this.p.matrixTransform(this.m)},t.prototype.getBBox=function(){var t=this.el.bbox();return this.el instanceof SVG.Nested&&(t=this.el.rbox()),(this.el instanceof SVG.G||this.el instanceof SVG.Use||this.el instanceof SVG.Nested)&&(t.x=this.el.x(),t.y=this.el.y()),t},t.prototype.start=function(t){if("click"!=t.type&&"mousedown"!=t.type&&"mousemove"!=t.type||1==(t.which||t.buttons)){var e=this;if(this.el.fire("beforedrag",{event:t,handler:this}),!this.el.event().defaultPrevented){t.preventDefault(),t.stopPropagation(),this.parent=this.parent||this.el.parent(SVG.Nested)||this.el.parent(SVG.Doc),this.p=this.parent.node.createSVGPoint(),this.m=this.el.node.getScreenCTM().inverse();var i,a=this.getBBox();if(this.el instanceof SVG.Text)switch(i=this.el.node.getComputedTextLength(),this.el.attr("text-anchor")){case"middle":i/=2;break;case"start":i=0}this.startPoints={point:this.transformPoint(t,i),box:a,transform:this.el.transform()},SVG.on(window,"mousemove.drag",(function(t){e.drag(t)})),SVG.on(window,"touchmove.drag",(function(t){e.drag(t)})),SVG.on(window,"mouseup.drag",(function(t){e.end(t)})),SVG.on(window,"touchend.drag",(function(t){e.end(t)})),this.el.fire("dragstart",{event:t,p:this.startPoints.point,m:this.m,handler:this})}}},t.prototype.drag=function(t){var e=this.getBBox(),i=this.transformPoint(t),a=this.startPoints.box.x+i.x-this.startPoints.point.x,s=this.startPoints.box.y+i.y-this.startPoints.point.y,r=this.constraint,n=i.x-this.startPoints.point.x,o=i.y-this.startPoints.point.y;if(this.el.fire("dragmove",{event:t,p:i,m:this.m,handler:this}),this.el.event().defaultPrevented)return i;if("function"==typeof r){var l=r.call(this.el,a,s,this.m);"boolean"==typeof l&&(l={x:l,y:l}),!0===l.x?this.el.x(a):!1!==l.x&&this.el.x(l.x),!0===l.y?this.el.y(s):!1!==l.y&&this.el.y(l.y)}else"object"==typeof r&&(null!=r.minX&&a<r.minX?n=(a=r.minX)-this.startPoints.box.x:null!=r.maxX&&a>r.maxX-e.width&&(n=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&s<r.minY?o=(s=r.minY)-this.startPoints.box.y:null!=r.maxY&&s>r.maxY-e.height&&(o=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,n-=n%r.snapToGrid,o-=o%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:n,y:o},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var n=this.options[r[s]];"string"==typeof n?n=n.length>0?n.split(/\s*,\s*/i):[]:"boolean"==typeof n&&"points"===r[s]&&(n=n?a:[]),this.options[r[s]]=n}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i<a;++i){var s=function(e){return function(i){(i=i||window.event).preventDefault?i.preventDefault():i.returnValue=!1,i.stopPropagation();var a=i.pageX||i.touches[0].pageX,s=i.pageY||i.touches[0].pageY;t.el.fire("point",{x:a,y:s,i:e,event:i})}}(i),r=this.drawPoint(e[i][0],e[i][1]).addClass(this.options.classPoints).addClass(this.options.classPoints+"_point").on("touchstart",s).on("mousedown",s);this.pointSelection.set.add(r)}},t.prototype.drawPoint=function(t,e){var i=this.options.pointType;switch(i){case"circle":return this.drawCircle(t,e);case"rect":return this.drawRect(t,e);default:if("function"==typeof i)return i.call(this,t,e);throw new Error("Unknown "+i+" point type!")}},t.prototype.drawCircle=function(t,e){return this.nested.circle(this.options.pointSize).center(t,e)},t.prototype.drawRect=function(t,e){return this.nested.rect(this.options.pointSize,this.options.pointSize).center(t,e)},t.prototype.updatePointSelection=function(){var t=this.getPointArray();this.pointSelection.set.each((function(e){this.cx()===t[e][0]&&this.cy()===t[e][1]||this.center(t[e][0],t[e][1])}))},t.prototype.updateRectSelection=function(){var t=this,e=this.el.bbox();if(this.rectSelection.set.get(0).attr({width:e.width,height:e.height}),this.options.points.length&&this.options.points.map((function(i,a){var s=t.pointCoords(i,e);t.rectSelection.set.get(a+1).center(s.x,s.y)})),this.options.rotationPoint){var i=this.rectSelection.set.length();this.rectSelection.set.get(i-1).center(e.width/2,20)}},t.prototype.selectRect=function(t){var e=this,i=this.el.bbox();function a(t){return function(i){(i=i||window.event).preventDefault?i.preventDefault():i.returnValue=!1,i.stopPropagation();var a=i.pageX||i.touches[0].pageX,s=i.pageY||i.touches[0].pageY;e.el.fire(t,{x:a,y:s,event:i})}}if(this.rectSelection.isSelected=t,this.rectSelection.set=this.rectSelection.set||this.parent.set(),this.rectSelection.set.get(0)||this.rectSelection.set.add(this.nested.rect(i.width,i.height).addClass(this.options.classRect)),this.options.points.length&&this.rectSelection.set.length()<2){this.options.points.map((function(t,s){var r=e.pointCoords(t,i),n=e.drawPoint(r.x,r.y).attr("class",e.options.classPoints+"_"+t).on("mousedown",a(t)).on("touchstart",a(t));e.rectSelection.set.add(n)})),this.rectSelection.set.each((function(){this.addClass(e.options.classPoints)}))}if(this.options.rotationPoint&&(this.options.points&&!this.rectSelection.set.get(9)||!this.options.points&&!this.rectSelection.set.get(1))){var s=function(t){(t=t||window.event).preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation();var i=t.pageX||t.touches[0].pageX,a=t.pageY||t.touches[0].pageY;e.el.fire("rot",{x:i,y:a,event:t})},r=this.drawPoint(i.width/2,20).attr("class",this.options.classPoints+"_rot").on("touchstart",s).on("mousedown",s);this.rectSelection.set.add(r)}},t.prototype.handler=function(){var t=this.el.bbox();this.nested.matrix(new SVG.Matrix(this.el).translate(t.x,t.y)),this.rectSelection.isSelected&&this.updateRectSelection(),this.pointSelection.isSelected&&this.updatePointSelection()},t.prototype.observe=function(){var t=this;if(MutationObserver)if(this.rectSelection.isSelected||this.pointSelection.isSelected)this.observerInst=this.observerInst||new MutationObserver((function(){t.handler()})),this.observerInst.observe(this.el.node,{attributes:!0});else try{this.observerInst.disconnect(),delete this.observerInst}catch(t){}else this.el.off("DOMAttrModified.select"),(this.rectSelection.isSelected||this.pointSelection.isSelected)&&this.el.on("DOMAttrModified.select",(function(){t.handler()}))},t.prototype.cleanup=function(){!this.rectSelection.isSelected&&this.rectSelection.set&&(this.rectSelection.set.each((function(){this.remove()})),this.rectSelection.set.clear(),delete this.rectSelection.set),!this.pointSelection.isSelected&&this.pointSelection.set&&(this.pointSelection.set.each((function(){this.remove()})),this.pointSelection.set.clear(),delete this.pointSelection.set),this.pointSelection.isSelected||this.rectSelection.isSelected||(this.nested.remove(),delete this.nested)},SVG.extend(SVG.Element,{selectize:function(e,i){return"object"==typeof e&&(i=e,e=!0),(this.remember("_selectHandler")||new t(this)).init(void 0===e||e,i||{}),this}}),SVG.Element.prototype.selectize.defaults={points:["lt","rt","rb","lb","t","r","b","l"],pointsExclude:[],classRect:"svg_select_boundingRect",classPoints:"svg_select_points",pointSize:7,rotationPoint:!0,deepSelect:!1,pointType:"circle"}}(),function(){(function(){function t(t){t.remember("_resizeHandler",this),this.el=t,this.parameters={},this.lastUpdateCall=null,this.p=t.doc().node.createSVGPoint()}t.prototype.transformPoint=function(t,e,i){return this.p.x=t-(this.offset.x-window.pageXOffset),this.p.y=e-(this.offset.y-window.pageYOffset),this.p.matrixTransform(i||this.m)},t.prototype._extractPosition=function(t){return{x:null!=t.clientX?t.clientX:t.touches[0].clientX,y:null!=t.clientY?t.clientY:t.touches[0].clientY}},t.prototype.init=function(t){var e=this;if(this.stop(),"stop"!==t){for(var i in this.options={},this.el.resize.defaults)this.options[i]=this.el.resize.defaults[i],void 0!==t[i]&&(this.options[i]=t[i]);this.el.on("lt.resize",(function(t){e.resize(t||window.event)})),this.el.on("rt.resize",(function(t){e.resize(t||window.event)})),this.el.on("rb.resize",(function(t){e.resize(t||window.event)})),this.el.on("lb.resize",(function(t){e.resize(t||window.event)})),this.el.on("t.resize",(function(t){e.resize(t||window.event)})),this.el.on("r.resize",(function(t){e.resize(t||window.event)})),this.el.on("b.resize",(function(t){e.resize(t||window.event)})),this.el.on("l.resize",(function(t){e.resize(t||window.event)})),this.el.on("rot.resize",(function(t){e.resize(t||window.event)})),this.el.on("point.resize",(function(t){e.resize(t||window.event)})),this.update()}},t.prototype.stop=function(){return this.el.off("lt.resize"),this.el.off("rt.resize"),this.el.off("rb.resize"),this.el.off("lb.resize"),this.el.off("t.resize"),this.el.off("r.resize"),this.el.off("b.resize"),this.el.off("l.resize"),this.el.off("rot.resize"),this.el.off("point.resize"),this},t.prototype.resize=function(t){var e=this;this.m=this.el.node.getScreenCTM().inverse(),this.offset={x:window.pageXOffset,y:window.pageYOffset};var i=this._extractPosition(t.detail.event);if(this.parameters={type:this.el.type,p:this.transformPoint(i.x,i.y),x:t.detail.x,y:t.detail.y,box:this.el.bbox(),rotation:this.el.transform().rotation},"text"===this.el.type&&(this.parameters.fontSize=this.el.attr()["font-size"]),void 0!==t.detail.i){var a=this.el.array().valueOf();this.parameters.i=t.detail.i,this.parameters.pointCoords=[a[t.detail.i][0],a[t.detail.i][1]]}switch(t.type){case"lt":this.calc=function(t,e){var i=this.snapToGrid(t,e);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),n=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(n-n%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])<this.options.snapToGrid/2?s[0]:s[0]-(t<0?-this.options.snapToGrid:this.options.snapToGrid),e-=Math.abs(s[1])<this.options.snapToGrid/2?s[1]:s[1]-(e<0?-this.options.snapToGrid:this.options.snapToGrid),this.constraintToBox(t,e,i,a)},t.prototype.constraintToBox=function(t,e,i,a){var s,r,n=this.options.constraint||{};return void 0!==a?(s=i,r=a):(s=this.parameters.box.x+(1&i?0:this.parameters.box.width),r=this.parameters.box.y+(2&i?0:this.parameters.box.height)),void 0!==n.minX&&s+t<n.minX&&(t=n.minX-s),void 0!==n.maxX&&s+t>n.maxX&&(t=n.maxX-s),void 0!==n.minY&&r+e<n.minY&&(e=n.minY-r),void 0!==n.maxY&&r+e>n.maxY&&(e=n.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],n=s/r;return n<a?(i[1]=s/a-this.parameters.box.height,e&&(i[1]=-i[1])):n>a&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}();!function(t,e){void 0===e&&(e={});var i=e.insertAt;if(t&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&a.firstChild?a.insertBefore(s,a.firstChild):a.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}('.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n position: relative;\n}\n\n.apexcharts-text tspan {\n font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-text-z-label:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-box, .apexcharts-custom-tooltip {\n padding: 4px 8px;\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse;\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0;\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n position: relative;\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers>div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}'),function(){function t(t){var e=t.__resizeTriggers__,i=e.firstElementChild,a=e.lastElementChild,s=i?i.firstElementChild:null;a&&(a.scrollLeft=a.scrollWidth,a.scrollTop=a.scrollHeight),s&&(s.style.width=i.offsetWidth+1+"px",s.style.height=i.offsetHeight+1+"px"),i&&(i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight)}function e(e){var i=this;t(this),this.__resizeRAF__&&r(this.__resizeRAF__),this.__resizeRAF__=s((function(){(function(t){return t.offsetWidth!=t.__resizeLast__.width||t.offsetHeight!=t.__resizeLast__.height})(i)&&(i.__resizeLast__.width=i.offsetWidth,i.__resizeLast__.height=i.offsetHeight,i.__resizeListeners__.forEach((function(t){t.call(e)})))}))}var i,a,s=(i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return window.setTimeout(t,20)},function(t){return i(t)}),r=(a=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout,function(t){return a(t)}),n=!1,o="animationstart",l="Webkit Moz O ms".split(" "),h="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),c=document.createElement("fakeelement");if(void 0!==c.style.animationName&&(n=!0),!1===n)for(var d=0;d<l.length;d++)if(void 0!==c.style[l[d]+"AnimationName"]){o=h[d];break}window.addResizeListener=function(i,a){i.__resizeTriggers__||("static"==getComputedStyle(i).position&&(i.style.position="relative"),i.__resizeLast__={},i.__resizeListeners__=[],(i.__resizeTriggers__=document.createElement("div")).className="resize-triggers",i.__resizeTriggers__.innerHTML='<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>',i.appendChild(i.__resizeTriggers__),t(i),i.addEventListener("scroll",e,!0),o&&i.__resizeTriggers__.addEventListener(o,(function(e){"resizeanim"==e.animationName&&t(i)}))),i.__resizeListeners__.push(a)},window.removeResizeListener=function(t,i){t&&(t.__resizeListeners__.splice(t.__resizeListeners__.indexOf(i),1),t.__resizeListeners__.length||(t.removeEventListener("scroll",e),t.__resizeTriggers__.parentNode&&(t.__resizeTriggers__=!t.removeChild(t.__resizeTriggers__))))}}(),void 0===window.Apex&&(window.Apex={});var Yt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","touchstart","touchmove","mouseup","touchend"],this.ctx.animations=new p(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Et(this.ctx.el,this.ctx),this.ctx.config=new D({}),this.ctx.data=new N(this.ctx),this.ctx.grid=new _(this.ctx),this.ctx.graphics=new b(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new V(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new S,this.ctx.responsive=new K(this.ctx),this.ctx.series=new M(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new W(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.dimensions=new nt(this.ctx),this.ctx.updateHelpers=new Xt(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Ft=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elDefs=null}}]),t}();return function(){function t(i,a){e(this,t),this.opts=a,this.ctx=this,this.w=new O(a).init(),this.el=i,this.w.globals.cuid=f.randomId(),this.w.globals.chartID=this.w.config.chart.id?f.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Yt(this).initModules(),this.create=f.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return a(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;"function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),window.addResizeListener(t.el.parentNode,t.parentResizeHandler);var s=t.create(t.w.config.series,{});if(!s)return e(t);t.mount(s).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(s)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Yt(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new R(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new P(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),this.dimensions.plotCoords();var n=this.core.xySettings();this.grid.createGridMask();var o=this.core.plotChartType(t,n),l=new z(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:o,xyRatios:n,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),"treemap"!==a.config.chart.type&&i.axes.drawAxis(a.config.chart.type,e.xyRatios),i.grid=new _(i);var n=i.grid.drawGrid();i.annotations=new C(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&n&&a.globals.dom.elGraphical.add(n.el);var o=new G(t.ctx),l=new q(t.ctx);if(null!==n&&(o.xAxisLabelCorrections(n.xAxisTickWidth),l.setYAxisTextAlignments(),a.config.yaxis.map((function(t,e){-1===a.globals.ignoreYAxisIndexes.indexOf(e)&&l.yAxisTitleRotate(e,t.opposite)}))),"back"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),Array.isArray(e.elGraph))for(var h=0;h<e.elGraph.length;h++)a.globals.dom.elGraphical.add(e.elGraph[h]);else a.globals.dom.elGraphical.add(e.elGraph);if("front"===a.config.grid.position&&n&&a.globals.dom.elGraphical.add(n.el),"front"===a.config.xaxis.crosshairs.position&&i.crosshairs.drawXCrosshairs(),"front"===a.config.yaxis[0].crosshairs.position&&i.crosshairs.drawYCrosshairs(),"front"===a.config.annotations.position&&(a.globals.dom.Paper.add(a.globals.dom.elAnnotations),i.annotations.drawAxesAnnotations()),!a.globals.noData){if(a.config.tooltip.enabled&&!a.globals.noData&&i.w.globals.tooltip.drawTooltip(e.xyRatios),a.globals.axisCharts&&(a.globals.isXNumeric||a.config.xaxis.convertedCatToNumeric||a.globals.isTimelineBar))(a.config.chart.zoom.enabled||a.config.chart.selection&&a.config.chart.selection.enabled||a.config.chart.pan&&a.config.chart.pan.enabled)&&i.zoomPanSelection.init({xyRatios:e.xyRatios});else{var c=a.config.chart.toolbar.tools;["zoom","zoomin","zoomout","selection","pan","reset"].forEach((function(t){c[t]=!1}))}a.config.chart.toolbar.show&&!a.globals.allSeriesCollapsed&&i.toolbar.createToolbar()}a.globals.memory.methodsToExec.length>0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){window.removeEventListener("resize",this.windowResizeHandler),window.removeResizeListener(this.el.parentNode,this.parentResizeHandler);var t=this.w.config.chart.id;t&&Apex._chartInstances.forEach((function(e,i){e.id===f.escapeString(t)&&Apex._chartInstances.splice(i,1)})),new Ft(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=this.w;return n.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),n.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s<a.length;s++)if(null!==t[s]&&void 0!==t[s])for(var r=0;r<t[s].data.length;r++)a[s].data.push(t[s].data[r]);return i.w.config.series=a,e&&(i.w.globals.initialSeries=f.clone(i.w.config.series)),this.update()}},{key:"update",value:function(t){var e=this;return new Promise((function(i,a){new Ft(e.ctx).clear({isUpdating:!0});var s=e.create(e.w.config.series,t);if(!s)return i(e);e.mount(s).then((function(){"function"==typeof e.w.config.chart.events.updated&&e.w.config.chart.events.updated(e,e.w),e.events.fireEvent("updated",[e,e.w]),e.w.globals.isDirty=!0,i(e)})).catch((function(t){a(t)}))}))}},{key:"getSyncedCharts",value:function(){var t=this.getGroupedCharts(),e=[this];return t.length&&(e=[],t.forEach((function(t){e.push(t)}))),e}},{key:"getGroupedCharts",value:function(){var t=this;return Apex._chartInstances.filter((function(t){if(t.group)return!0})).map((function(e){return t.w.config.chart.group===e.group?e.chart:t}))}},{key:"toggleSeries",value:function(t){return this.series.toggleSeries(t)}},{key:"showSeries",value:function(t){this.series.showSeries(t)}},{key:"hideSeries",value:function(t){this.series.hideSeries(t)}},{key:"resetSeries",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new U(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new U(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(){return new V(this.ctx).dataURI()}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=f.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i<e.length;i++){new t(e[i],JSON.parse(e[i].getAttribute("data-options"))).render()}}},{key:"exec",value:function(t,e){var i=this.getChartByID(t);if(i){i.w.globals.isExecCalled=!0;var a=null;if(-1!==i.publicMethods.indexOf(e)){for(var s=arguments.length,r=new Array(s>2?s-2:0),n=2;n<s;n++)r[n-2]=arguments[n];a=i[e].apply(i,r)}return a}}},{key:"merge",value:function(t,e){return f.extend(t,e)}}]),t}()})); diff --git a/content/legacy/themes/Peafowl/lib/js/css_browser_detector.js b/content/legacy/themes/Peafowl/lib/js/css_browser_detector.js new file mode 100644 index 0000000..204e9d5 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/css_browser_detector.js @@ -0,0 +1,142 @@ +/** +CSS BROWSER DETECTOR 1.0.3 +By Rodolfo Berrios <inbox@rodolfoberrios.com> + +Highly inspired on the work of Rafael Lima http://rafael.adm.br/css_browser_selector/ +Powered by this Quirks's guide http://www.quirksmode.org/js/detect.html + +-- + +Usage: Simply include it on your HTML and once loaded, it will add something like "chrome chrome20 windows" +to the HTML html tag (document). So you can switch CSS styles using anidation like this: + +.ie7 { *display: inline; } + +It also blinds helpers like is_firefox() to detect firefox, or is_chrome(20) to detect if the browser is chrome 20. +You can also use something like if(is_ie() && get_browser_version() >= 9) to detect IE9 and above. + +get_browser() returns the browser name +get_broser_version() returns the browser version +get_browser_os() return the operating system + +**/ +var BrowserDetect = { + init: function(){ + this.browser = this.searchString(this.dataBrowser); + this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion); + this.shortversion = this.browser+this.version; + this.OS = this.searchString(this.dataOS); + }, + + searchString: function(data){ + for (var i=0; i < data.length; i++) + { + var dataString = data[i].string; + this.versionSearchString = data[i].subString; + + if(dataString.indexOf(data[i].subString) != -1){ + return data[i].identity; + } + } + }, + + searchVersion: function(dataString){ + var index = dataString.indexOf(this.versionSearchString); + if (index == -1) return; + return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); + }, + + dataBrowser: [ + { + string: navigator.userAgent, + subString: "Chrome", + identity: "chrome" + }, + { + string: navigator.userAgent, + subString: "MSIE", + identity: "ie" + }, + { + string: navigator.userAgent, + subString: "Firefox", + identity: "firefox" + }, + { + string: navigator.userAgent, + subString: "Safari", + identity: "safari" + }, + { + string: navigator.userAgent, + subString: "Opera", + identity: "opera" + } + ], + + dataOS: [ + { + string: navigator.platform, + subString: "Win", + identity: "windows" + }, + { + string: navigator.platform, + subString: "Mac", + identity: "osx" + }, + { + string: navigator.userAgent, + subString: "iPhone", + identity: "ios" + }, + { + string: navigator.userAgent, + subString: "iPad", + identity: "ios" + }, + { + string: navigator.userAgent, + subString: "iPod", + identity: "ios" + }, + { + string: navigator.platform, + subString: "Linux", + identity: "linux" + } + ] + +}; +BrowserDetect.init(); + +document.documentElement.className += " " + BrowserDetect.browser + " " + BrowserDetect.shortversion + " " + BrowserDetect.OS; + +function is_browser(agent, version){ + if(agent == BrowserDetect.browser){ + return typeof version !== "undefined" ? version == BrowserDetect.version : true; + } else { + return false; + } +} + +function get_browser(){ + return BrowserDetect.browser; +} + +function get_browser_version(){ + return BrowserDetect.version; +} + +function get_browser_os(){ + return BrowserDetect.OS; +} + +// Generate is_browser() functions +for(var i=0; i<BrowserDetect.dataBrowser.length; i++){ + eval('function is_'+BrowserDetect.dataBrowser[i].identity+'(version) { return is_browser("'+BrowserDetect.dataBrowser[i].identity+'", version); }'); +} +// Generate is_os() functions +for(var i=0; i<BrowserDetect.dataOS.length; i++){ + eval('function is_'+BrowserDetect.dataOS[i].identity+'() { return "'+BrowserDetect.dataOS[i].identity+'" == "'+BrowserDetect.OS+'"; }'); +} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/jquery-1.10.2.min.map b/content/legacy/themes/Peafowl/lib/js/jquery-1.10.2.min.map new file mode 100644 index 0000000..4dc4920 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/jquery-1.10.2.min.map @@ -0,0 +1 @@ +{"version":3,"file":"jquery-1.10.2.min.js","sources":["jquery-1.10.2.js"],"names":["window","undefined","readyList","rootjQuery","core_strundefined","location","document","docElem","documentElement","_jQuery","jQuery","_$","$","class2type","core_deletedIds","core_version","core_concat","concat","core_push","push","core_slice","slice","core_indexOf","indexOf","core_toString","toString","core_hasOwn","hasOwnProperty","core_trim","trim","selector","context","fn","init","core_pnum","source","core_rnotwhite","rtrim","rquickExpr","rsingleTag","rvalidchars","rvalidbraces","rvalidescape","rvalidtokens","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","completed","event","addEventListener","type","readyState","detach","ready","removeEventListener","detachEvent","prototype","jquery","constructor","match","elem","this","charAt","length","exec","find","merge","parseHTML","nodeType","ownerDocument","test","isPlainObject","isFunction","attr","getElementById","parentNode","id","makeArray","toArray","call","get","num","pushStack","elems","ret","prevObject","each","callback","args","promise","done","apply","arguments","first","eq","last","i","len","j","map","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isArray","expando","Math","random","replace","noConflict","isReady","readyWait","holdReady","hold","wait","body","setTimeout","resolveWith","trigger","off","obj","Array","isWindow","isNumeric","isNaN","parseFloat","isFinite","String","key","e","support","ownLast","isEmptyObject","error","msg","Error","data","keepScripts","parsed","scripts","createElement","buildFragment","remove","childNodes","parseJSON","JSON","parse","Function","parseXML","xml","tmp","DOMParser","parseFromString","ActiveXObject","async","loadXML","getElementsByTagName","noop","globalEval","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","arr","results","Object","inArray","max","second","l","grep","inv","retVal","arg","guid","proxy","access","chainable","emptyGet","raw","bulk","now","Date","getTime","swap","old","style","Deferred","attachEvent","top","frameElement","doScroll","doScrollCheck","split","cachedruns","Expr","getText","isXML","compile","outermostContext","sortInput","setDocument","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","hasDuplicate","sortOrder","a","b","strundefined","MAX_NEGATIVE","hasOwn","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rsibling","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rnative","rinputs","rheader","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","els","Sizzle","seed","m","groups","nid","newContext","newSelector","getElementsByClassName","qsa","tokenize","getAttribute","setAttribute","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","div","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","node","doc","parent","defaultView","className","appendChild","createComment","innerHTML","firstChild","getById","getElementsByName","filter","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","dirkey","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","dirrunsUnique","group","contexts","token","div1","defaultValue","unique","isXMLDoc","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","list","stack","once","fire","stopOnFalse","self","disable","add","index","lock","locked","fireWith","func","tuples","state","always","deferred","fail","then","fns","newDefer","tuple","action","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","progressContexts","resolveContexts","fragment","opt","eventName","isSupported","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","opacity","cssFloat","checkOn","optSelected","enctype","html5Clone","cloneNode","outerHTML","inlineBlockNeedsLayout","shrinkWrapBlocks","pixelPosition","deleteExpando","noCloneEvent","reliableMarginRight","boxSizingReliable","noCloneChecked","optDisabled","radioValue","createDocumentFragment","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","container","marginDiv","tds","divReset","offsetHeight","display","reliableHiddenOffsets","zoom","boxSizing","offsetWidth","getComputedStyle","width","marginRight","rbrace","rmultiDash","internalData","pvt","acceptData","thisCache","internalKey","isNode","toJSON","internalRemoveData","isEmptyDataObject","cleanData","noData","applet","embed","hasData","removeData","_data","_removeData","dataAttr","queue","dequeue","startLength","hooks","_queueHooks","next","stop","setter","delay","time","fx","speeds","timeout","clearTimeout","clearQueue","count","defer","nodeHook","boolHook","rclass","rreturn","rfocusable","rclickable","ruseDefault","getSetInput","removeAttr","prop","removeProp","propFix","addClass","classes","clazz","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","valHooks","set","option","one","optionSet","nType","attrHooks","propName","attrNames","for","class","notxml","propHooks","tabindex","parseInt","getter","setAttributeNode","createAttribute","coords","contenteditable","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","global","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","origFn","triggerHandler","isSimple","rparentsprev","rneedsContext","guaranteedUnique","children","contents","prev","targets","winnow","is","closest","pos","prevAll","addBack","sibling","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","n","r","qualifier","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","manipulation_rcheckableType","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","manipulationTarget","prepend","insertBefore","before","after","keepData","getAll","setGlobalEval","dataAndEvents","deepDataAndEvents","html","replaceWith","allowIntersection","hasScripts","iNoClone","disableScript","restoreScript","_evalUrl","content","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultChecked","defaultSelected","appendTo","prependTo","insertAfter","replaceAll","insert","found","fixDefaultChecked","destElements","srcElements","inPage","selection","wrap","safe","nodes","url","ajax","dataType","throws","wrapAll","wrapInner","unwrap","iframe","getStyles","curCSS","ralpha","ropacity","rposition","rdisplayswap","rmargin","rnumsplit","rnumnonpx","rrelNum","elemdisplay","BODY","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssExpand","cssPrefixes","vendorPropName","capName","origName","isHidden","el","css","showHide","show","hidden","css_defaultDisplay","styles","hide","toggle","cssHooks","computed","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","extra","_computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","setPositiveNumber","subtract","augmentWidthOrHeight","isBorderBox","getWidthOrHeight","valueIsBorderBox","actualDisplay","write","close","$1","visible","margin","padding","border","prefix","suffix","expand","expanded","parts","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","serialize","serializeArray","traditional","s","encodeURIComponent","ajaxSettings","buildParams","v","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","ajaxLocParts","ajaxLocation","ajax_nonce","ajax_rquery","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","_load","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","params","response","responseText","complete","status","active","lastModified","etag","isLocal","processData","contentType","accepts","*","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","abort","statusText","finalText","success","method","crossDomain","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","modified","ajaxHandleResponses","ajaxConvert","rejectWith","getJSON","getScript","firstDataType","ct","finalDataType","conv2","current","conv","dataFilter","script","text script","head","scriptCharset","charset","onload","onreadystatechange","isAbort","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","xhrCallbacks","xhrSupported","xhrId","xhrOnUnloadAbort","createStandardXHR","XMLHttpRequest","createActiveXHR","xhr","cors","username","open","xhrFields","firefoxAccessException","unload","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","tween","createTween","unit","scale","maxIterations","createFxNow","animation","collection","Animation","properties","stopped","tick","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","originalProperties","Tween","easing","gotoEnd","propFilter","timer","anim","tweener","prefilter","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","eased","step","cssFn","speed","animate","genFx","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","includeWidth","height","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","linear","p","swing","cos","PI","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","win","box","getBoundingClientRect","getWindow","pageYOffset","pageXOffset","curElem","curOffset","curCSSTop","curCSSLeft","calculatePosition","curPosition","curTop","curLeft","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/jquery-ui.min.js b/content/legacy/themes/Peafowl/lib/js/jquery-ui.min.js new file mode 100644 index 0000000..2418ccd --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/jquery-ui.min.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.10.3 - 2013-08-28 +* http://jqueryui.com +* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.autocomplete.js, jquery.ui.menu.js, jquery.ui.effect.js +* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ + +(function(e,t){function i(t,i){var a,n,r,o=t.nodeName.toLowerCase();return"area"===o?(a=t.parentNode,n=a.name,t.href&&n&&"map"===a.nodeName.toLowerCase()?(r=e("img[usemap=#"+n+"]")[0],!!r&&s(r)):!1):(/input|select|textarea|button|object/.test(o)?!t.disabled:"a"===o?t.href||i:i)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var a=0,n=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.3",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var s,a,n=e(this[0]);n.length&&n[0]!==document;){if(s=n.css("position"),("absolute"===s||"relative"===s||"fixed"===s)&&(a=parseInt(n.css("zIndex"),10),!isNaN(a)&&0!==a))return a;n=n.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})},removeUniqueId:function(){return this.each(function(){n.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var s=e.attr(t,"tabindex"),a=isNaN(s);return(a||s>=0)&&i(t,!a)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(i,s){function a(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===s?["Left","Right"]:["Top","Bottom"],r=s.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+s]=function(i){return i===t?o["inner"+s].call(this):this.each(function(){e(this).css(r,a(this,i)+"px")})},e.fn["outer"+s]=function(t,i){return"number"!=typeof t?o["outer"+s].call(this,t):this.each(function(){e(this).css(r,a(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,s){var a,n=e.ui[t].prototype;for(a in s)n.plugins[a]=n.plugins[a]||[],n.plugins[a].push([i,s[a]])},call:function(e,t,i){var s,a=e.plugins[t];if(a&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(s=0;a.length>s;s++)e.options[a[s][0]]&&a[s][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",a=!1;return t[s]>0?!0:(t[s]=1,a=t[s]>0,t[s]=0,a)}})})(jQuery);(function(e,t){var i=0,s=Array.prototype.slice,n=e.cleanData;e.cleanData=function(t){for(var i,s=0;null!=(i=t[s]);s++)try{e(i).triggerHandler("remove")}catch(a){}n(t)},e.widget=function(i,s,n){var a,r,o,h,l={},u=i.split(".")[0];i=i.split(".")[1],a=u+"-"+i,n||(n=s,s=e.Widget),e.expr[":"][a.toLowerCase()]=function(t){return!!e.data(t,a)},e[u]=e[u]||{},r=e[u][i],o=e[u][i]=function(e,i){return this._createWidget?(arguments.length&&this._createWidget(e,i),t):new o(e,i)},e.extend(o,r,{version:n.version,_proto:e.extend({},n),_childConstructors:[]}),h=new s,h.options=e.widget.extend({},h.options),e.each(n,function(i,n){return e.isFunction(n)?(l[i]=function(){var e=function(){return s.prototype[i].apply(this,arguments)},t=function(e){return s.prototype[i].apply(this,e)};return function(){var i,s=this._super,a=this._superApply;return this._super=e,this._superApply=t,i=n.apply(this,arguments),this._super=s,this._superApply=a,i}}(),t):(l[i]=n,t)}),o.prototype=e.widget.extend(h,{widgetEventPrefix:r?h.widgetEventPrefix:i},l,{constructor:o,namespace:u,widgetName:i,widgetFullName:a}),r?(e.each(r._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete r._childConstructors):s._childConstructors.push(o),e.widget.bridge(i,o)},e.widget.extend=function(i){for(var n,a,r=s.call(arguments,1),o=0,h=r.length;h>o;o++)for(n in r[o])a=r[o][n],r[o].hasOwnProperty(n)&&a!==t&&(i[n]=e.isPlainObject(a)?e.isPlainObject(i[n])?e.widget.extend({},i[n],a):e.widget.extend({},a):a);return i},e.widget.bridge=function(i,n){var a=n.prototype.widgetFullName||i;e.fn[i]=function(r){var o="string"==typeof r,h=s.call(arguments,1),l=this;return r=!o&&h.length?e.widget.extend.apply(null,[r].concat(h)):r,o?this.each(function(){var s,n=e.data(this,a);return n?e.isFunction(n[r])&&"_"!==r.charAt(0)?(s=n[r].apply(n,h),s!==n&&s!==t?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):t):e.error("no such method '"+r+"' for "+i+" widget instance"):e.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+r+"'")}):this.each(function(){var t=e.data(this,a);t?t.option(r||{})._init():e.data(this,a,new n(r,this))}),l}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,s){s=e(s||this.defaultElement||this)[0],this.element=e(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),s!==this&&(e.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===s&&this.destroy()}}),this.document=e(s.style?s.ownerDocument:s.document||s),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(i,s){var n,a,r,o=i;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof i)if(o={},n=i.split("."),i=n.shift(),n.length){for(a=o[i]=e.widget.extend({},this.options[i]),r=0;n.length-1>r;r++)a[n[r]]=a[n[r]]||{},a=a[n[r]];if(i=n.pop(),s===t)return a[i]===t?null:a[i];a[i]=s}else{if(s===t)return this.options[i]===t?null:this.options[i];o[i]=s}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var a,r=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=a=e(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,a=this.widget()),e.each(n,function(n,o){function h(){return i||r.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?r[o]:o).apply(r,arguments):t}"string"!=typeof o&&(h.guid=o.guid=o.guid||h.guid||e.guid++);var l=n.match(/^(\w+)\s*(.*)$/),u=l[1]+r.eventNamespace,c=l[2];c?a.delegate(c,u,h):s.bind(u,h)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,r=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(r)&&r.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var r,o=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),r=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),r&&e.effects&&e.effects.effect[o]?s[t](n):o!==t&&s[o]?s[o](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}})})(jQuery);(function(e){var t=!1;e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.10.3",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):undefined}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!t){this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,n=1===i.which,a="string"==typeof this.options.cancel&&i.target.nodeName?e(i.target).closest(this.options.cancel).length:!1;return n&&!a&&this._mouseCapture(i)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){s.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=this._mouseStart(i)!==!1,!this._mouseStarted)?(i.preventDefault(),!0):(!0===e.data(i.target,this.widgetName+".preventClickEvent")&&e.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return s._mouseMove(e)},this._mouseUpDelegate=function(e){return s._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),t=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button?this._mouseUp(t):this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})(jQuery);(function(t,e){function i(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function s(e,i){return parseInt(t.css(e,i),10)||0}function n(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(a!==e)return a;var i,s,n=t("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=n.children()[0];return t("body").append(n),i=o.offsetWidth,n.css("overflow","scroll"),s=o.offsetWidth,i===s&&(s=n[0].clientWidth),n.remove(),a=i-s},getScrollInfo:function(e){var i=e.isWindow?"":e.element.css("overflow-x"),s=e.isWindow?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,a="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:a?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]);return{element:i,isWindow:s,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s?i.width():i.outerWidth(),height:s?i.height():i.outerHeight()}}},t.fn.position=function(e){if(!e||!e.of)return f.apply(this,arguments);e=t.extend({},e);var a,p,m,g,v,b,_=t(e.of),y=t.position.getWithinInfo(e.within),w=t.position.getScrollInfo(y),x=(e.collision||"flip").split(" "),k={};return b=n(_),_[0].preventDefault&&(e.at="left top"),p=b.width,m=b.height,g=b.offset,v=t.extend({},g),t.each(["my","at"],function(){var t,i,s=(e[this]||"").split(" ");1===s.length&&(s=l.test(s[0])?s.concat(["center"]):c.test(s[0])?["center"].concat(s):["center","center"]),s[0]=l.test(s[0])?s[0]:"center",s[1]=c.test(s[1])?s[1]:"center",t=u.exec(s[0]),i=u.exec(s[1]),k[this]=[t?t[0]:0,i?i[0]:0],e[this]=[d.exec(s[0])[0],d.exec(s[1])[0]]}),1===x.length&&(x[1]=x[0]),"right"===e.at[0]?v.left+=p:"center"===e.at[0]&&(v.left+=p/2),"bottom"===e.at[1]?v.top+=m:"center"===e.at[1]&&(v.top+=m/2),a=i(k.at,p,m),v.left+=a[0],v.top+=a[1],this.each(function(){var n,l,c=t(this),u=c.outerWidth(),d=c.outerHeight(),f=s(this,"marginLeft"),b=s(this,"marginTop"),D=u+f+s(this,"marginRight")+w.width,T=d+b+s(this,"marginBottom")+w.height,C=t.extend({},v),M=i(k.my,c.outerWidth(),c.outerHeight());"right"===e.my[0]?C.left-=u:"center"===e.my[0]&&(C.left-=u/2),"bottom"===e.my[1]?C.top-=d:"center"===e.my[1]&&(C.top-=d/2),C.left+=M[0],C.top+=M[1],t.support.offsetFractions||(C.left=h(C.left),C.top=h(C.top)),n={marginLeft:f,marginTop:b},t.each(["left","top"],function(i,s){t.ui.position[x[i]]&&t.ui.position[x[i]][s](C,{targetWidth:p,targetHeight:m,elemWidth:u,elemHeight:d,collisionPosition:n,collisionWidth:D,collisionHeight:T,offset:[a[0]+M[0],a[1]+M[1]],my:e.my,at:e.at,within:y,elem:c})}),e.using&&(l=function(t){var i=g.left-C.left,s=i+p-u,n=g.top-C.top,a=n+m-d,h={target:{element:_,left:g.left,top:g.top,width:p,height:m},element:{element:c,left:C.left,top:C.top,width:u,height:d},horizontal:0>s?"left":i>0?"right":"center",vertical:0>a?"top":n>0?"bottom":"middle"};u>p&&p>r(i+s)&&(h.horizontal="center"),d>m&&m>r(n+a)&&(h.vertical="middle"),h.important=o(r(i),r(s))>o(r(n),r(a))?"horizontal":"vertical",e.using.call(this,t,h)}),c.offset(t.extend(C,{using:l}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-o-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-o-a,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-o-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-o-a,t.top+p+f+m>c&&(0>s||r(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,t.top+p+f+m>u&&(i>0||u>r(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,i,s,n,a,o=document.getElementsByTagName("body")[0],r=document.createElement("div");e=document.createElement(o?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&t.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(a in s)e.style[a]=s[a];e.appendChild(r),i=o||document.documentElement,i.insertBefore(e,i.firstChild),r.style.cssText="position: absolute; left: 10.7432222px;",n=t(r).offset().left,t.support.offsetFractions=n>10&&11>n,e.innerHTML="",i.removeChild(e)}()})(jQuery);(function(e){e.widget("ui.draggable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var i=this.options;return this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(i.iframeFix===!0?"iframe":i.iframeFix).each(function(){e("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,i){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"original"!==this.options.helper||e.contains(this.element[0].ownerDocument,this.element[0])?("invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1):!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;return n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):"document"===n.containment?(this.containment=[0,0,e(document).width()-this.helperProportions.width-this.margins.left,(e(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):n.containment.constructor===Array?(this.containment=n.containment,undefined):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i),undefined):(this.containment=null,undefined)},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent;return this.offset.scroll||(this.offset.scroll={top:n.scrollTop(),left:n.scrollLeft()}),{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top)*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)*s}},_generatePosition:function(t){var i,s,n,a,o=this.options,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=t.pageX,l=t.pageY;return this.offset.scroll||(this.offset.scroll={top:r.scrollTop(),left:r.scrollLeft()}),this.originalPosition&&(this.containment&&(this.relative_container?(s=this.relative_container.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s]),"drag"===t&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i){var s=e(this).data("ui-draggable"),n=s.options,a=e.extend({},i,{item:s.element});s.sortables=[],e(n.connectToSortable).each(function(){var i=e.data(this,"ui-sortable");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",t,a))})},stop:function(t,i){var s=e(this).data("ui-draggable"),n=e.extend({},i,{item:s.element});e.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,"original"===s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,n))})},drag:function(t,i){var s=e(this).data("ui-draggable"),n=this;e.each(s.sortables,function(){var a=!1,o=this;this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(a=!0,e.each(s.sortables,function(){return this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&e.contains(o.instance.element[0],this.instance.element[0])&&(a=!1),a})),a?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",t),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",t),s.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(){var t=e("body"),i=e(this).data("ui-draggable").options;t.css("cursor")&&(i._cursor=t.css("cursor")),t.css("cursor",i.cursor)},stop:function(){var t=e(this).data("ui-draggable").options;t._cursor&&e("body").css("cursor",t._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i){var s=e(i.helper),n=e(this).data("ui-draggable").options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(t,i){var s=e(this).data("ui-draggable").options;s._opacity&&e(i.helper).css("opacity",s._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(){var t=e(this).data("ui-draggable");t.scrollParent[0]!==document&&"HTML"!==t.scrollParent[0].tagName&&(t.overflowOffset=t.scrollParent.offset())},drag:function(t){var i=e(this).data("ui-draggable"),s=i.options,n=!1;i.scrollParent[0]!==document&&"HTML"!==i.scrollParent[0].tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+i.scrollParent[0].offsetHeight-t.pageY<s.scrollSensitivity?i.scrollParent[0].scrollTop=n=i.scrollParent[0].scrollTop+s.scrollSpeed:t.pageY-i.overflowOffset.top<s.scrollSensitivity&&(i.scrollParent[0].scrollTop=n=i.scrollParent[0].scrollTop-s.scrollSpeed)),s.axis&&"y"===s.axis||(i.overflowOffset.left+i.scrollParent[0].offsetWidth-t.pageX<s.scrollSensitivity?i.scrollParent[0].scrollLeft=n=i.scrollParent[0].scrollLeft+s.scrollSpeed:t.pageX-i.overflowOffset.left<s.scrollSensitivity&&(i.scrollParent[0].scrollLeft=n=i.scrollParent[0].scrollLeft-s.scrollSpeed))):(s.axis&&"x"===s.axis||(t.pageY-e(document).scrollTop()<s.scrollSensitivity?n=e(document).scrollTop(e(document).scrollTop()-s.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<s.scrollSensitivity&&(n=e(document).scrollTop(e(document).scrollTop()+s.scrollSpeed))),s.axis&&"y"===s.axis||(t.pageX-e(document).scrollLeft()<s.scrollSensitivity?n=e(document).scrollLeft(e(document).scrollLeft()-s.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<s.scrollSensitivity&&(n=e(document).scrollLeft(e(document).scrollLeft()+s.scrollSpeed)))),n!==!1&&e.ui.ddmanager&&!s.dropBehaviour&&e.ui.ddmanager.prepareOffsets(i,t)}}),e.ui.plugin.add("draggable","snap",{start:function(){var t=e(this).data("ui-draggable"),i=t.options;t.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var i=e(this),s=i.offset();this!==t.element[0]&&t.snapElements.push({item:this,width:i.outerWidth(),height:i.outerHeight(),top:s.top,left:s.left})})},drag:function(t,i){var s,n,a,o,r,h,l,u,c,d,p=e(this).data("ui-draggable"),f=p.options,m=f.snapTolerance,g=i.offset.left,v=g+p.helperProportions.width,b=i.offset.top,y=b+p.helperProportions.height;for(c=p.snapElements.length-1;c>=0;c--)r=p.snapElements[c].left,h=r+p.snapElements[c].width,l=p.snapElements[c].top,u=l+p.snapElements[c].height,r-m>v||g>h+m||l-m>y||b>u+m||!e.contains(p.snapElements[c].item.ownerDocument,p.snapElements[c].item)?(p.snapElements[c].snapping&&p.options.snap.release&&p.options.snap.release.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[c].item})),p.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(s=m>=Math.abs(l-y),n=m>=Math.abs(u-b),a=m>=Math.abs(r-v),o=m>=Math.abs(h-g),s&&(i.position.top=p._convertPositionTo("relative",{top:l-p.helperProportions.height,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:u,left:0}).top-p.margins.top),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r-p.helperProportions.width}).left-p.margins.left),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:h}).left-p.margins.left)),d=s||n||a||o,"outer"!==f.snapMode&&(s=m>=Math.abs(l-b),n=m>=Math.abs(u-y),a=m>=Math.abs(r-g),o=m>=Math.abs(h-v),s&&(i.position.top=p._convertPositionTo("relative",{top:l,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:u-p.helperProportions.height,left:0}).top-p.margins.top),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r}).left-p.margins.left),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:h-p.helperProportions.width}).left-p.margins.left)),!p.snapElements[c].snapping&&(s||n||a||o||d)&&p.options.snap.snap&&p.options.snap.snap.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[c].item})),p.snapElements[c].snapping=s||n||a||o||d)}}),e.ui.plugin.add("draggable","stack",{start:function(){var t,i=this.data("ui-draggable").options,s=e.makeArray(e(i.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});s.length&&(t=parseInt(e(s[0]).css("zIndex"),10)||0,e(s).each(function(i){e(this).css("zIndex",t+i)}),this.css("zIndex",t+s.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i){var s=e(i.helper),n=e(this).data("ui-draggable").options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(t,i){var s=e(this).data("ui-draggable").options;s._zIndex&&e(i.helper).css("zIndex",s._zIndex)}})})(jQuery);(function(e){function t(e,t,i){return e>t&&t+i>e}e.widget("ui.droppable",{version:"1.10.3",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t=this.options,i=t.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(i)?i:function(e){return e.is(i)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},e.ui.ddmanager.droppables[t.scope]=e.ui.ddmanager.droppables[t.scope]||[],e.ui.ddmanager.droppables[t.scope].push(this),t.addClasses&&this.element.addClass("ui-droppable")},_destroy:function(){for(var t=0,i=e.ui.ddmanager.droppables[this.options.scope];i.length>t;t++)i[t]===this&&i.splice(t,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){"accept"===t&&(this.accept=e.isFunction(i)?i:function(e){return e.is(i)}),e.Widget.prototype._setOption.apply(this,arguments)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=e.data(this,"ui-droppable");return t.options.greedy&&!t.options.disabled&&t.options.scope===s.options.scope&&t.accept.call(t.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(t,{offset:t.element.offset()}),t.options.tolerance)?(n=!0,!1):undefined}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(e,i,s){if(!i.offset)return!1;var n,a,o=(e.positionAbs||e.position.absolute).left,r=o+e.helperProportions.width,h=(e.positionAbs||e.position.absolute).top,l=h+e.helperProportions.height,u=i.offset.left,c=u+i.proportions.width,d=i.offset.top,p=d+i.proportions.height;switch(s){case"fit":return o>=u&&c>=r&&h>=d&&p>=l;case"intersect":return o+e.helperProportions.width/2>u&&c>r-e.helperProportions.width/2&&h+e.helperProportions.height/2>d&&p>l-e.helperProportions.height/2;case"pointer":return n=(e.positionAbs||e.position.absolute).left+(e.clickOffset||e.offset.click).left,a=(e.positionAbs||e.position.absolute).top+(e.clickOffset||e.offset.click).top,t(a,d,i.proportions.height)&&t(n,u,i.proportions.width);case"touch":return(h>=d&&p>=h||l>=d&&p>=l||d>h&&l>p)&&(o>=u&&c>=o||r>=u&&c>=r||u>o&&r>c);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions.height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions={width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight})}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e.data(this,"ui-droppable").options.scope===n}),a.length&&(s=e.data(a[0],"ui-droppable"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}}})(jQuery);(function(e){function t(e){return parseInt(e,10)||0}function i(e){return!isNaN(parseInt(e,10))}e.widget("ui.resizable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=e(this.handles[i],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(i){var s,n,a,o=this.options,r=this.element.position(),h=this.element;return this.resizing=!0,/absolute/.test(h.css("position"))?h.css({position:"absolute",top:h.css("top"),left:h.css("left")}):h.is(".ui-draggable")&&h.css({position:"absolute",top:r.top,left:r.left}),this._renderProxy(),s=t(this.helper.css("left")),n=t(this.helper.css("top")),o.containment&&(s+=e(o.containment).scrollLeft()||0,n+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:s,top:n},this.size=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalSize=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalPosition={left:s,top:n},this.sizeDiff={width:h.outerWidth()-h.width(),height:h.outerHeight()-h.height()},this.originalMousePosition={left:i.pageX,top:i.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,a=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===a?this.axis+"-resize":a),h.addClass("ui-resizable-resizing"),this._propagate("start",i),!0},_mouseDrag:function(t){var i,s=this.helper,n={},a=this.originalMousePosition,o=this.axis,r=this.position.top,h=this.position.left,l=this.size.width,u=this.size.height,c=t.pageX-a.left||0,d=t.pageY-a.top||0,p=this._change[o];return p?(i=p.apply(this,[t,c,d]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),this.position.top!==r&&(n.top=this.position.top+"px"),this.position.left!==h&&(n.left=this.position.left+"px"),this.size.width!==l&&(n.width=this.size.width+"px"),this.size.height!==u&&(n.height=this.size.height+"px"),s.css(n),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(n)||this._trigger("resize",t,this.ui()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&e.ui.hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,s,n,a,o,r=this.options;o={minWidth:i(r.minWidth)?r.minWidth:0,maxWidth:i(r.maxWidth)?r.maxWidth:1/0,minHeight:i(r.minHeight)?r.minHeight:0,maxHeight:i(r.maxHeight)?r.maxHeight:1/0},(this._aspectRatio||e)&&(t=o.minHeight*this.aspectRatio,n=o.minWidth/this.aspectRatio,s=o.maxHeight*this.aspectRatio,a=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),n>o.minHeight&&(o.minHeight=n),o.maxWidth>s&&(o.maxWidth=s),o.maxHeight>a&&(o.maxHeight=a)),this._vBoundaries=o},_updateCache:function(e){this.offset=this.helper.offset(),i(e.left)&&(this.position.left=e.left),i(e.top)&&(this.position.top=e.top),i(e.height)&&(this.size.height=e.height),i(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,s=this.size,n=this.axis;return i(e.height)?e.width=e.height*this.aspectRatio:i(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===n&&(e.left=t.left+(s.width-e.width),e.top=null),"nw"===n&&(e.top=t.top+(s.height-e.height),e.left=t.left+(s.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,s=this.axis,n=i(e.width)&&t.maxWidth&&t.maxWidth<e.width,a=i(e.height)&&t.maxHeight&&t.maxHeight<e.height,o=i(e.width)&&t.minWidth&&t.minWidth>e.width,r=i(e.height)&&t.minHeight&&t.minHeight>e.height,h=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,u=/sw|nw|w/.test(s),c=/nw|ne|n/.test(s);return o&&(e.width=t.minWidth),r&&(e.height=t.minHeight),n&&(e.width=t.maxWidth),a&&(e.height=t.maxHeight),o&&u&&(e.left=h-t.minWidth),n&&u&&(e.left=h-t.maxWidth),r&&c&&(e.top=l-t.minHeight),a&&c&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var e,t,i,s,n,a=this.helper||this.element;for(e=0;this._proportionallyResizeElements.length>e;e++){if(n=this._proportionallyResizeElements[e],!this.borderDif)for(this.borderDif=[],i=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],s=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],t=0;i.length>t;t++)this.borderDif[t]=(parseInt(i[t],10)||0)+(parseInt(s[t],10)||0);n.css({height:a.height()-this.borderDif[0]-this.borderDif[2]||0,width:a.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).data("ui-resizable"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&e.ui.hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var i,s,n,a,o,r,h,l=e(this).data("ui-resizable"),u=l.options,c=l.element,d=u.containment,p=d instanceof e?d.get(0):/parent/.test(d)?c.parent().get(0):d;p&&(l.containerElement=e(p),/document/.test(d)||d===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(i=e(p),s=[],e(["Top","Right","Left","Bottom"]).each(function(e,n){s[e]=t(i.css("padding"+n))}),l.containerOffset=i.offset(),l.containerPosition=i.position(),l.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},n=l.containerOffset,a=l.containerSize.height,o=l.containerSize.width,r=e.ui.hasScroll(p,"left")?p.scrollWidth:o,h=e.ui.hasScroll(p)?p.scrollHeight:a,l.parentData={element:p,left:n.left,top:n.top,width:r,height:h}))},resize:function(t){var i,s,n,a,o=e(this).data("ui-resizable"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,c={top:0,left:0},d=o.containerElement;d[0]!==document&&/static/.test(d.css("position"))&&(c=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-c.left),u&&(o.size.height=o.size.width/o.aspectRatio),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio),o.position.top=o._helper?h.top:0),o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top,i=Math.abs((o._helper?o.offset.left-c.left:o.offset.left-c.left)+o.sizeDiff.width),s=Math.abs((o._helper?o.offset.top-c.top:o.offset.top-h.top)+o.sizeDiff.height),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a&&(i-=o.parentData.left),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio))},stop:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).data("ui-resizable"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).data("ui-resizable"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(t,s){e(t).each(function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&i>=0&&(a[t]=i||null)}),t.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):e.each(n.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).data("ui-resizable");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).data("ui-resizable");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.size,n=t.originalSize,a=t.originalPosition,o=t.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,u=Math.round((s.width-n.width)/h)*h,c=Math.round((s.height-n.height)/l)*l,d=n.width+u,p=n.height+c,f=i.maxWidth&&d>i.maxWidth,m=i.maxHeight&&p>i.maxHeight,g=i.minWidth&&i.minWidth>d,v=i.minHeight&&i.minHeight>p;i.grid=r,g&&(d+=h),v&&(p+=l),f&&(d-=h),m&&(p-=l),/^(se|s|e)$/.test(o)?(t.size.width=d,t.size.height=p):/^(ne)$/.test(o)?(t.size.width=d,t.size.height=p,t.position.top=a.top-c):/^(sw)$/.test(o)?(t.size.width=d,t.size.height=p,t.position.left=a.left-u):(t.size.width=d,t.size.height=p,t.position.top=a.top-c,t.position.left=a.left-u)}})})(jQuery);(function(e){e.widget("ui.selectable",e.ui.mouse,{version:"1.10.3",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):undefined}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}})})(jQuery);(function(t){function e(t,e,i){return t>e&&e+i>t}function i(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}t.widget("ui.sortable",t.ui.mouse,{version:"1.10.3",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var t=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===t.axis||i(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_setOption:function(e,i){"disabled"===e?(this.options[e]=i,this.widget().toggleClass("ui-sortable-disabled",!!i)):t.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,a.widgetName+"-item")===a?(s=t(this),!1):undefined}),t.data(e.target,a.widgetName+"-item")===a&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=t("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:e.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:e.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(e.pageY-t(document).scrollTop()<o.scrollSensitivity?r=t(document).scrollTop(t(document).scrollTop()-o.scrollSpeed):t(window).height()-(e.pageY-t(document).scrollTop())<o.scrollSensitivity&&(r=t(document).scrollTop(t(document).scrollTop()+o.scrollSpeed)),e.pageX-t(document).scrollLeft()<o.scrollSensitivity?r=t(document).scrollLeft(t(document).scrollLeft()-o.scrollSpeed):t(window).width()-(e.pageX-t(document).scrollLeft())<o.scrollSensitivity&&(r=t(document).scrollLeft(t(document).scrollLeft()+o.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=t.left,o=a+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>a&&o>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var i="x"===this.options.axis||e(this.positionAbs.top+this.offset.click.top,t.top,t.height),s="y"===this.options.axis||e(this.positionAbs.left+this.offset.click.left,t.left,t.width),n=i&&s,a=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return n?this.floating?o&&"right"===o||"down"===a?2:1:a&&("down"===a?2:1):!1},_intersectsWithSides:function(t){var i=e(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),s=e(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return this.floating&&a?"right"===a&&s||"left"===a&&!s:n&&("down"===n&&i||"up"===n&&!i)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){var i,s,n,a,o=[],r=[],h=this._connectWith();if(h&&e)for(i=h.length-1;i>=0;i--)for(n=t(h[i]),s=n.length-1;s>=0;s--)a=t.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&r.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(r.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=r.length-1;i>=0;i--)r[i][0].each(function(){o.push(this)});return t(o)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i]),s=n.length-1;s>=0;s--)a=t.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(u.push([t.isFunction(a.options.items)?a.options.items.call(a.element[0],e,{item:this.currentItem}):t(a.options.items,a.element),a]),this.containers.push(a));for(i=u.length-1;i>=0;i--)for(o=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",o),c.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]).addClass(i||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?e.currentItem.children().each(function(){t("<td>&#160;</td>",e.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_contactContainers:function(s){var n,a,o,r,h,l,c,u,d,p,f=null,m=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(f&&t.contains(this.containers[n].element[0],f.element[0]))continue;f=this.containers[n],m=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",s,this._uiHash(this)),this.containers[n].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[m].containerCache.over||(this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1);else{for(o=1e4,r=null,p=f.floating||i(this.currentItem),h=p?"left":"top",l=p?"width":"height",c=this.positionAbs[h]+this.offset.click[h],a=this.items.length-1;a>=0;a--)t.contains(this.containers[m].element[0],this.items[a].item[0])&&this.items[a].item[0]!==this.currentItem[0]&&(!p||e(this.positionAbs.top+this.offset.click.top,this.items[a].top,this.items[a].height))&&(u=this.items[a].item.offset()[h],d=!1,Math.abs(u-c)>Math.abs(u+this.items[a][l]-c)&&(d=!0,u+=this.items[a][l]),o>Math.abs(u-c)&&(o=Math.abs(u-c),r=this.items[a],this.direction=d?"up":"down"));if(!r&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[m])return;r?this._rearrange(s,r,null,!0):this._rearrange(s,null,this.containers[m].element,!0),this._trigger("change",s,this._uiHash()),this.containers[m]._trigger("change",s,this._uiHash(this)),this.currentContainer=this.containers[m],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,t("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(t("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,a=e.pageX,o=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)e||s.push(function(t){return function(e){t._trigger("deactivate",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(function(t){return function(e){t._trigger("out",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!e){for(this._trigger("beforeStop",t,this._uiHash()),i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}if(e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!e){for(i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})})(jQuery);(function(t){var e=0;t.widget("ui.autocomplete",{version:"1.10.3",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,undefined;e=!1,s=!1,i=!1;var a=t.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:e=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case a.UP:e=!0,this._keyEvent("previous",n);break;case a.DOWN:e=!0,this._keyEvent("next",n);break;case a.ENTER:case a.NUMPAD_ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),undefined;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),undefined):(this._searchTimeout(t),undefined)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,undefined):(clearTimeout(this.searching),this.close(t),this._change(t),undefined)}}),this._initSource(),this.menu=t("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().data("ui-menu"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];t(e.target).closest(".ui-menu-item").length||this._delay(function(){var e=this;this.document.one("mousedown",function(s){s.target===e.element[0]||s.target===i||t.contains(i,s.target)||e.close()})})},menufocus:function(e,i){if(this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type)))return this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),undefined;var s=i.item.data("ui-autocomplete-item");!1!==this._trigger("focus",e,{item:s})?e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(s.value):this.liveRegion.text(s.value)},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=t("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertBefore(this.element),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):undefined},_search:function(t){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var t=this,i=++e;return function(s){i===e&&t.__response(s),t.pending--,t.pending||t.element.removeClass("ui-autocomplete-loading")}},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({label:e.label||e.value,value:e.value||e.label},e)})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<a>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this._value(this.term),this.menu.blur(),undefined):(this.menu[t](e),undefined):(this.search(null,e),undefined)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.text(e))}})})(jQuery);(function(t){t.widget("ui.menu",{version:"1.10.3",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,t.proxy(function(t){this.options.disabled&&t.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(t){t.preventDefault()},"click .ui-state-disabled > a":function(t){t.preventDefault()},"click .ui-menu-item:has(a)":function(e){var i=t(e.target).closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.mouseHandled=!0,this.select(e),i.has(".ui-menu").length?this.expand(e):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){var i=t(e.currentTarget);i.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(e,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.children(".ui-menu-item").eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){t(e.target).closest(".ui-menu").length||this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){function i(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,h=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:h=!1,n=this.previousFilter||"",a=String.fromCharCode(e.keyCode),o=!1,clearTimeout(this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(a=String.fromCharCode(e.keyCode),r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())})),s.length?(this.focus(e,s),s.length>1?(this.previousFilter=a,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}h&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i=this.options.icons.submenu,s=this.element.find(this.options.menus);s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),s=e.prev("a"),n=t("<span>").addClass("ui-menu-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true").prepend(n),e.attr("aria-labelledby",s.attr("id"))}),e=s.add(this.element),e.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),e.children(":not(.ui-menu-item)").each(function(){var e=t(this);/[^\-\u2014\u2013\s]/.test(e.text())||e.addClass("ui-widget-content ui-menu-divider")}),e.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),this._super(t,e)},focus:function(t,e){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=e.height(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.children(".ui-menu-item")[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())),undefined):(this.next(e),undefined)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.next(e),undefined)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)}})})(jQuery);(function(t,e){var i="ui-effects-";t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[c[l].cache]=o[c[l].cache],n=s._rgba=o._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,a.transparent),s):a[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,o,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(o),o=e);var u=this,d=t.type(n),p=this._rgba=[];return o!==e&&(n=[n,o,r,h],d="array"),"string"===d?this.parse(s(n)||a._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var a=s.cache;f(s.props,function(t,e){if(!u[a]&&s.to){if("alpha"===t||null==n[t])return;u[a]=s.to(u._rgba)}u[a][e.idx]=i(n[t],e,!0)}),u[a]&&0>t.inArray(null,u[a].slice(0,3))&&(u[a][3]=1,s.from&&(u._rgba=s.from(u[a])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),a=c[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(t,n){var a=n.idx,o=r[a],l=s[a],c=u[n.type]||{};null!==l&&(null===o?h[a]=l:(c.mod&&(l-o>c.mod/2?o+=c.mod:o-l>c.mod/2&&(o-=c.mod)),h[a]=i((l-o)*e+o,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,a=t[2]/255,o=t[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==o?1:o]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],a=t[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,e+1/3)),Math.round(255*n(r,o,e)),Math.round(255*n(r,o,e-1/3)),a]},f(c,function(s,n){var a=n.props,o=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===e)return this[o].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[o].slice();return f(a,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[o]=d,n):l(d)},f(a,function(e,i){l.fn[e]||(l.fn[e]=function(n){var a,o=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===o?c:("function"===o&&(n=n.call(this,c),o=t.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=c+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var a,o,r="";if("transparent"!==n&&("string"!==t.type(n)||(a=s(n)))){if(n=l(a||n),!d.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&o&&o.style;)try{r=t.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(o),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},a=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function s(e,i){var s,n,o={};for(s in i)n=i[s],e[s]!==n&&(a[s]||(t.fx.step[s]||!isNaN(parseFloat(n)))&&(o[s]=n));return o}var n=["add","remove","toggle"],a={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(jQuery.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(e,a,o,r){var h=t.speed(a,o,r);return this.queue(function(){var a,o=t(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var e=t(this);return{el:e,start:i(this)}}),a=function(){t.each(n,function(t,i){e[i]&&o[i+"Class"](e[i])})},a(),l=l.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){a(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(o[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,a){return s?t.effects.animateClass.call(this,{add:i},s,n,a):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,a){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,a):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(i){return function(s,n,a,o,r){return"boolean"==typeof n||n===e?a?t.effects.animateClass.call(this,n?{add:s}:{remove:s},a,o,r):i.apply(this,arguments):t.effects.animateClass.call(this,{toggle:s},n,a,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,a){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,a)}})}(),function(){function s(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.10.3",save:function(t,e){for(var s=0;e.length>s;s++)null!==e[s]&&t.data(i+e[s],t[0].style[e[s]])},restore:function(t,s){var n,a;for(a=0;s.length>a;a++)null!==s[a]&&(n=t.data(i+s[a]),n===e&&(n=""),t.css(s[a],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return e.wrap(s),(e[0]===a||t.contains(e[0],a))&&t(a).focus(),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).focus()),e},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var a=e.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),t.fn.extend({effect:function(){function e(e){function s(){t.isFunction(a)&&a.call(n[0]),t.isFunction(e)&&e()}var n=t(this),a=i.complete,r=i.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),s()):o.call(n[0],i,s)}var i=s.apply(this,arguments),n=i.mode,a=i.queue,o=t.effects.effect[i.effect];return t.fx.off||!o?n?this[n](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):a===!1?this.each(e):this.queue(a||"fx",e)},show:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(t.fn.show),hide:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(t.fn.hide),toggle:function(t){return function(e){if(n(e)||"boolean"==typeof e)return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}()})(jQuery); \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/jquery.formatCurrency.min.js b/content/legacy/themes/Peafowl/lib/js/jquery.formatCurrency.min.js new file mode 100644 index 0000000..d26c4a9 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/jquery.formatCurrency.min.js @@ -0,0 +1,25 @@ +(function($){$.formatCurrency={};$.formatCurrency.regions=[];$.formatCurrency.regions[""]={symbol:"$",positiveFormat:"%s%n",negativeFormat:"(%s%n)",decimalSymbol:".",digitGroupSymbol:",",groupDigits:true}; +$.fn.formatCurrency=function(destination,settings){if(arguments.length==1&&typeof destination!=="string"){settings=destination;destination=false +}var defaults={name:"formatCurrency",colorize:false,region:"",global:true,roundToDecimalPlace:2,eventOnDecimalsEntered:false};defaults=$.extend(defaults,$.formatCurrency.regions[""]); +settings=$.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); +return this.each(function(){$this=$(this);var num="0";num=$this[$this.is("input, select, textarea")?"val":"html"]();if(num.search("\\(")>=0){num="-"+num +}if(num===""||(num==="-"&&settings.roundToDecimalPlace===-1)){return}if(isNaN(num)){num=num.replace(settings.regex,"");if(num===""||(num==="-"&&settings.roundToDecimalPlace===-1)){return +}if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".")}if(isNaN(num)){num="0"}}var numParts=String(num).split(".");var isPositive=(num==Math.abs(num)); +var hasDecimals=(numParts.length>1);var decimals=(hasDecimals?numParts[1].toString():"0");var originalDecimals=decimals;num=Math.abs(numParts[0]); +num=isNaN(num)?0:num;if(settings.roundToDecimalPlace>=0){decimals=parseFloat("1."+decimals);decimals=decimals.toFixed(settings.roundToDecimalPlace); +if(decimals.substring(0,1)=="2"){num=Number(num)+1}decimals=decimals.substring(2)}num=String(num);if(settings.groupDigits){for(var i=0;i<Math.floor((num.length-(1+i))/3); +i++){num=num.substring(0,num.length-(4*i+3))+settings.digitGroupSymbol+num.substring(num.length-(4*i+3))}}if((hasDecimals&&settings.roundToDecimalPlace==-1)||settings.roundToDecimalPlace>0){num+=settings.decimalSymbol+decimals +}var format=isPositive?settings.positiveFormat:settings.negativeFormat;var money=format.replace(/%s/g,settings.symbol);money=money.replace(/%n/g,num); +var $destination=$([]);if(!destination){$destination=$this}else{$destination=$(destination)}$destination[$destination.is("input, select, textarea")?"val":"html"](money); +if(hasDecimals&&settings.eventOnDecimalsEntered&&originalDecimals.length>settings.roundToDecimalPlace){$destination.trigger("decimalsEntered",originalDecimals) +}if(settings.colorize){$destination.css("color",isPositive?"black":"red")}})};$.fn.toNumber=function(settings){var defaults=$.extend({name:"toNumber",region:"",global:true},$.formatCurrency.regions[""]); +settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); +return this.each(function(){var method=$(this).is("input, select, textarea")?"val":"html";$(this)[method]($(this)[method]().replace("(","(-").replace(settings.regex,"")) +})};$.fn.asNumber=function(settings){var defaults=$.extend({name:"asNumber",region:"",parse:true,parseType:"Float",global:true},$.formatCurrency.regions[""]); +settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); +settings.parseType=validateParseType(settings.parseType);var method=$(this).is("input, select, textarea")?"val":"html";var num=$(this)[method](); +num=num?num:"";num=num.replace("(","(-");num=num.replace(settings.regex,"");if(!settings.parse){return num}if(num.length==0){num="0"}if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".") +}return window["parse"+settings.parseType](num)};function getRegionOrCulture(region){var regionInfo=$.formatCurrency.regions[region];if(regionInfo){return regionInfo +}else{if(/(\w+)-(\w+)/g.test(region)){var culture=region.replace(/(\w+)-(\w+)/g,"$1");return $.formatCurrency.regions[culture]}}return null}function validateParseType(parseType){switch(parseType.toLowerCase()){case"int":return"Int"; +case"float":return"Float";default:throw"invalid parseType"}}function generateRegex(settings){if(settings.symbol===""){return new RegExp("[^\\d"+settings.decimalSymbol+"-]","g") +}else{var symbol=settings.symbol.replace("$","\\$").replace(".","\\.");return new RegExp(symbol+"|[^\\d"+settings.decimalSymbol+"-]","g")}}})(jQuery); \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/jquery.min.js b/content/legacy/themes/Peafowl/lib/js/jquery.min.js new file mode 100644 index 0000000..7616f40 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window); \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/modernizr.min.js b/content/legacy/themes/Peafowl/lib/js/modernizr.min.js new file mode 100644 index 0000000..b18208c --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/modernizr.min.js @@ -0,0 +1,4 @@ +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function C(a){j.cssText=a}function D(a,b){return C(n.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a){var e=a[d];if(!F(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),H(e,b,c))}function J(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return I("flexWrap")},s.flexboxlegacy=function(){return I("boxDirection")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!I("indexedDB",a)},s.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(j.backgroundColor,"rgba")},s.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(j.backgroundColor,"rgba")||F(j.backgroundColor,"hsla")},s.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return I("backgroundSize")},s.borderimage=function(){return I("borderImage")},s.borderradius=function(){return I("borderRadius")},s.boxshadow=function(){return I("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return D("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return I("animationName")},s.csscolumns=function(){return I("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),F(j.backgroundImage,"gradient")},s.cssreflections=function(){return I("boxReflect")},s.csstransforms=function(){return!!I("transform")},s.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return I("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var K in s)B(s,K)&&(x=K.toLowerCase(),e[x]=s[K](),v.push((e[x]?"":"no-")+x));return e.input||J(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)B(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},C(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=y,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))}; \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/pannellum.css b/content/legacy/themes/Peafowl/lib/js/pannellum.css new file mode 100644 index 0000000..592b034 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/pannellum.css @@ -0,0 +1,2 @@ +/* Pannellum 2.5.6, https://github.com/mpetroff/pannellum */ +.pnlm-container{margin:0;padding:0;overflow:hidden;position:relative;cursor:default;width:100%;height:100%;font-family:Helvetica,"Nimbus Sans L","Liberation Sans",Arial,sans-serif;background:#f4f4f4 url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2267%22%20height%3D%22100%22%20viewBox%3D%220%200%2067%20100%22%3E%0A%3Cpath%20stroke%3D%22%23ccc%22%20fill%3D%22none%22%20d%3D%22M33.5%2C50%2C0%2C63%2C33.5%2C75%2C67%2C63%2C33.5%2C50m-33.5-50%2C67%2C25m-0.5%2C0%2C0%2C75m-66.5-75%2C67-25m-33.5%2C75%2C0%2C25m0-100%2C0%2C50%22%2F%3E%0A%3C%2Fsvg%3E%0A') repeat;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;outline:0;line-height:1.4;contain:content}.pnlm-container *{box-sizing:content-box}.pnlm-ui{position:absolute;width:100%;height:100%;z-index:1}.pnlm-grab{cursor:grab;cursor:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2226%22%20width%3D%2226%22%3E%0A%3Cpath%20stroke%3D%22%23000%22%20stroke-width%3D%221px%22%20fill%3D%22%23fff%22%20d%3D%22m15.3%2020.5s6.38-6.73%204.64-8.24-3.47%201.01-3.47%201.01%203.61-5.72%201.41-6.49c-2.2-0.769-3.33%204.36-3.33%204.36s0.873-5.76-1.06-5.76-1.58%205.39-1.58%205.39-0.574-4.59-2.18-4.12c-1.61%200.468-0.572%205.51-0.572%205.51s-1.58-4.89-2.93-3.79c-1.35%201.11%200.258%205.25%200.572%206.62%200.836%202.43%202.03%202.94%202.17%205.55%22%2F%3E%0A%3C%2Fsvg%3E%0A') 12 8,default}.pnlm-grabbing{cursor:grabbing;cursor:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2226%22%20width%3D%2226%22%3E%0A%3Cpath%20stroke%3D%22%23000%22%20stroke-width%3D%221px%22%20fill%3D%22%23fff%22%20d%3D%22m15.3%2020.5s5.07-5.29%203.77-6.74c-1.31-1.45-2.53%200.14-2.53%200.14s2.74-3.29%200.535-4.06c-2.2-0.769-2.52%201.3-2.52%201.3s0.81-2.13-1.12-2.13-1.52%201.77-1.52%201.77-0.261-1.59-1.87-1.12c-1.61%200.468-0.874%202.17-0.874%202.17s-0.651-1.55-2-0.445c-1.35%201.11-0.68%202.25-0.365%203.62%200.836%202.43%202.03%202.94%202.17%205.55%22%2F%3E%0A%3C%2Fsvg%3E%0A') 12 8,default}.pnlm-sprite{background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2226%22%20height%3D%22208%22%3E%0A%3Ccircle%20fill-opacity%3D%22.78%22%20cy%3D%22117%22%20cx%3D%2213%22%20r%3D%2211%22%20fill%3D%22%23fff%22%2F%3E%0A%3Ccircle%20fill-opacity%3D%22.78%22%20cy%3D%22143%22%20cx%3D%2213%22%20r%3D%2211%22%20fill%3D%22%23fff%22%2F%3E%0A%3Ccircle%20cy%3D%22169%22%20cx%3D%2213%22%20r%3D%227%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%0A%3Ccircle%20cy%3D%22195%22%20cx%3D%2213%22%20r%3D%227%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%0A%3Ccircle%20cx%3D%2213%22%20cy%3D%22195%22%20r%3D%222.5%22%2F%3E%0A%3Cpath%20d%3D%22m5%2083v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-5%205v6h6v-6zm-5%205v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z%22%2F%3E%0A%3Cpath%20d%3D%22m13%20110a7%207%200%200%200%20-7%207%207%207%200%200%200%207%207%207%207%200%200%200%207%20-7%207%207%200%200%200%20-7%20-7zm-1%203h2v2h-2zm0%203h2v5h-2z%22%2F%3E%0A%3Cpath%20d%3D%22m5%2057v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-10%2010v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z%22%2F%3E%0A%3Cpath%20d%3D%22m17%2038v2h-8v-2z%22%2F%3E%0A%3Cpath%20d%3D%22m12%209v3h-3v2h3v3h2v-3h3v-2h-3v-3z%22%2F%3E%0A%3Cpath%20d%3D%22m13%20136-6.125%206.125h4.375v7.875h3.5v-7.875h4.375z%22%2F%3E%0A%3Cpath%20d%3D%22m10.428%20173.33v-5.77l5-2.89v5.77zm1-1.73%203-1.73-3.001-1.74z%22%2F%3E%0A%3C%2Fsvg%3E%0A')}.pnlm-container:-moz-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-webkit-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-ms-fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-render-container{cursor:inherit;position:absolute;height:100%;width:100%}.pnlm-controls{margin-top:4px;background-color:#fff;border:1px solid #999;border-color:rgba(0,0,0,0.4);border-radius:3px;cursor:pointer;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-control:hover{background-color:#f8f8f8}.pnlm-controls-container{position:absolute;top:0;left:4px;z-index:1}.pnlm-zoom-controls{width:26px;height:52px}.pnlm-zoom-in{width:100%;height:50%;position:absolute;top:0;border-radius:3px 3px 0 0}.pnlm-zoom-out{width:100%;height:50%;position:absolute;bottom:0;background-position:0 -26px;border-top:1px solid #ddd;border-top-color:rgba(0,0,0,0.10);border-radius:0 0 3px 3px}.pnlm-fullscreen-toggle-button,.pnlm-orientation-button,.pnlm-hot-spot-debug-indicator{width:26px;height:26px}.pnlm-hot-spot-debug-indicator{position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;background-color:rgba(255,255,255,0.5);border-radius:13px;display:none}.pnlm-orientation-button-inactive{background-position:0 -156px}.pnlm-orientation-button-active{background-position:0 -182px}.pnlm-fullscreen-toggle-button-inactive{background-position:0 -52px}.pnlm-fullscreen-toggle-button-active{background-position:0 -78px}.pnlm-panorama-info{position:absolute;bottom:4px;background-color:rgba(0,0,0,0.7);border-radius:0 3px 3px 0;padding-right:10px;color:#fff;text-align:left;display:none;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-title-box{position:relative;font-size:20px;display:table;padding-left:5px;margin-bottom:3px}.pnlm-author-box{position:relative;font-size:12px;display:table;padding-left:5px}.pnlm-load-box{position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:rgba(0,0,0,0.7);border-radius:3px;text-align:center;font-size:20px;display:none;color:#fff}.pnlm-load-box p{margin:20px 0}.pnlm-lbox{position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;display:none}.pnlm-loading{animation-duration:1.5s;-webkit-animation-duration:1.5s;animation-name:pnlm-mv;-webkit-animation-name:pnlm-mv;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;animation-timing-function:linear;-webkit-animation-timing-function:linear;height:10px;width:10px;background-color:#fff;position:relative}@keyframes pnlm-mv{from{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}@-webkit-keyframes pnlm-mv{from{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}.pnlm-load-button{position:absolute;top:50%;left:50%;width:200px;height:100px;margin:-50px 0 0 -100px;background-color:rgba(0,0,0,.7);border-radius:3px;text-align:center;font-size:20px;display:table;color:#fff;cursor:pointer}.pnlm-load-button:hover{background-color:rgba(0,0,0,.8)}.pnlm-load-button p{display:table-cell;vertical-align:middle}.pnlm-info-box{font-size:15px;position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:#000;border-radius:3px;display:table;text-align:center;color:#fff;table-layout:fixed}.pnlm-info-box a,.pnlm-author-box a{color:#fff;word-wrap:break-word;overflow-wrap:break-word}.pnlm-info-box p{display:table-cell;vertical-align:middle;padding:0 5px 0 5px}.pnlm-error-msg{display:none}.pnlm-about-msg{font-size:11px;line-height:11px;color:#fff;padding:5px 8px 5px 8px;background:rgba(0,0,0,0.7);border-radius:3px;position:absolute;top:50px;left:50px;display:none;opacity:0;-moz-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;z-index:1}.pnlm-about-msg a:link,.pnlm-about-msg a:visited{color:#fff}.pnlm-about-msg a:hover,.pnlm-about-msg a:active{color:#eee}.pnlm-hotspot-base{position:absolute;visibility:hidden;cursor:default;vertical-align:middle;top:0;z-index:1}.pnlm-hotspot{height:26px;width:26px;border-radius:13px}.pnlm-hotspot:hover{background-color:rgba(255,255,255,0.2)}.pnlm-hotspot.pnlm-info{background-position:0 -104px}.pnlm-hotspot.pnlm-scene{background-position:0 -130px}div.pnlm-tooltip span{visibility:hidden;position:absolute;border-radius:3px;background-color:rgba(0,0,0,0.7);color:#fff;text-align:center;max-width:200px;padding:5px 10px;margin-left:-220px;cursor:default}div.pnlm-tooltip:hover span{visibility:visible}div.pnlm-tooltip:hover span:after{content:'';position:absolute;width:0;height:0;border-width:10px;border-style:solid;border-color:rgba(0,0,0,0.7) transparent transparent transparent;bottom:-20px;left:-10px;margin:0 50%}.pnlm-compass{position:absolute;width:50px;height:50px;right:4px;bottom:4px;border-radius:25px;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2250%22%20width%3D%2250%22%3E%0A%3Cpath%20d%3D%22m24.5078%206-3.2578%2018h7.5l-3.25781-18h-0.984376zm-3.2578%2020%203.2578%2018h0.9844l3.2578-18h-7.5zm1.19531%200.9941h5.10938l-2.5547%2014.1075-2.5547-14.1075z%22%2F%3E%0A%3C%2Fsvg%3E%0A');cursor:default;display:none}.pnlm-world{position:absolute;left:50%;top:50%}.pnlm-face{position:absolute;-webkit-transform-origin:0 0;transform-origin:0 0}.pnlm-dragfix,.pnlm-preview-img{position:absolute;height:100%;width:100%}.pnlm-preview-img{background-size:cover;background-position:center}.pnlm-lbar{width:150px;margin:0 auto;border:#fff 1px solid;height:6px}.pnlm-lbar-fill{background:#fff;height:100%;width:0}.pnlm-lmsg{font-size:12px}.pnlm-fade-img{position:absolute;top:0;left:0}.pnlm-pointer{cursor:pointer} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/js/pannellum.js b/content/legacy/themes/Peafowl/lib/js/pannellum.js new file mode 100644 index 0000000..22bbb7d --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/pannellum.js @@ -0,0 +1,110 @@ +// Pannellum 2.5.6, https://github.com/mpetroff/pannellum +window.libpannellum=function(E,g,p){function Ba(K){function ja(a,e){return 1==a.level&&1!=e.level?-1:1==e.level&&1!=a.level?1:e.timestamp-a.timestamp}function Q(a,e){return a.level!=e.level?a.level-e.level:a.diff-e.diff}function ka(a,e,c,g,l,h){this.vertices=a;this.side=e;this.level=c;this.x=g;this.y=l;this.path=h.replace("%s",e).replace("%l",c).replace("%x",g).replace("%y",l)}function Ja(a,e,g,p,l){var h;var d=e.vertices;h=la(a,d.slice(0,3));var u=la(a,d.slice(3,6)),x=la(a,d.slice(6,9)),d=la(a,d.slice(9, +12)),t=h[0]+u[0]+x[0]+d[0];-4==t||4==t?h=!1:(t=h[1]+u[1]+x[1]+d[1],h=-4==t||4==t?!1:4!=h[2]+u[2]+x[2]+d[2]);if(h){h=e.vertices;u=h[0]+h[3]+h[6]+h[9];x=h[1]+h[4]+h[7]+h[10];d=h[2]+h[5]+h[8]+h[11];t=Math.sqrt(u*u+x*x+d*d);d=Math.asin(d/t);u=Math.atan2(x,u)-p;u+=u>Math.PI?-2*Math.PI:u<-Math.PI?2*Math.PI:0;u=Math.abs(u);e.diff=Math.acos(Math.sin(g)*Math.sin(d)+Math.cos(g)*Math.cos(d)*Math.cos(u));u=!1;for(x=0;x<c.nodeCache.length;x++)if(c.nodeCache[x].path==e.path){u=!0;c.nodeCache[x].timestamp=c.nodeCacheTimestamp++; +c.nodeCache[x].diff=e.diff;c.currentNodes.push(c.nodeCache[x]);break}u||(e.timestamp=c.nodeCacheTimestamp++,c.currentNodes.push(e),c.nodeCache.push(e));if(e.level<c.level){var d=m.cubeResolution*Math.pow(2,e.level-m.maxLevel),u=Math.ceil(d*m.invTileResolution)-1,x=d%m.tileResolution*2,k=2*d%m.tileResolution;0===k&&(k=m.tileResolution);0===x&&(x=2*m.tileResolution);t=0.5;if(e.x==u||e.y==u)t=1-m.tileResolution/(m.tileResolution+k);var y=1-t,d=[],s=t,z=t,D=t,I=y,A=y,B=y;if(k<m.tileResolution)if(e.x== +u&&e.y!=u){if(A=z=0.5,"d"==e.side||"u"==e.side)B=D=0.5}else e.x!=u&&e.y==u&&(I=s=0.5,"l"==e.side||"r"==e.side)&&(B=D=0.5);x<=m.tileResolution&&(e.x==u&&(s=0,I=1,"l"==e.side||"r"==e.side)&&(D=0,B=1),e.y==u&&(z=0,A=1,"d"==e.side||"u"==e.side)&&(D=0,B=1));k=[h[0],h[1],h[2],h[0]*s+h[3]*I,h[1]*t+h[4]*y,h[2]*D+h[5]*B,h[0]*s+h[6]*I,h[1]*z+h[7]*A,h[2]*D+h[8]*B,h[0]*t+h[9]*y,h[1]*z+h[10]*A,h[2]*D+h[11]*B];k=new ka(k,e.side,e.level+1,2*e.x,2*e.y,m.fullpath);d.push(k);e.x==u&&x<=m.tileResolution||(k=[h[0]*s+ +h[3]*I,h[1]*t+h[4]*y,h[2]*D+h[5]*B,h[3],h[4],h[5],h[3]*t+h[6]*y,h[4]*z+h[7]*A,h[5]*D+h[8]*B,h[0]*s+h[6]*I,h[1]*z+h[7]*A,h[2]*D+h[8]*B],k=new ka(k,e.side,e.level+1,2*e.x+1,2*e.y,m.fullpath),d.push(k));e.x==u&&x<=m.tileResolution||e.y==u&&x<=m.tileResolution||(k=[h[0]*s+h[6]*I,h[1]*z+h[7]*A,h[2]*D+h[8]*B,h[3]*t+h[6]*y,h[4]*z+h[7]*A,h[5]*D+h[8]*B,h[6],h[7],h[8],h[9]*s+h[6]*I,h[10]*t+h[7]*y,h[11]*D+h[8]*B],k=new ka(k,e.side,e.level+1,2*e.x+1,2*e.y+1,m.fullpath),d.push(k));e.y==u&&x<=m.tileResolution|| +(k=[h[0]*t+h[9]*y,h[1]*z+h[10]*A,h[2]*D+h[11]*B,h[0]*s+h[6]*I,h[1]*z+h[7]*A,h[2]*D+h[8]*B,h[9]*s+h[6]*I,h[10]*t+h[7]*y,h[11]*D+h[8]*B,h[9],h[10],h[11]],k=new ka(k,e.side,e.level+1,2*e.x,2*e.y+1,m.fullpath),d.push(k));for(e=0;e<d.length;e++)Ja(a,d[e],g,p,l)}}}function ta(){return[-1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,-1,1,1,-1,-1]}function ua(a,e,c){var g=Math.sin(e);e=Math.cos(e); +if("x"==c)return[a[0],e*a[1]+g*a[2],e*a[2]-g*a[1],a[3],e*a[4]+g*a[5],e*a[5]-g*a[4],a[6],e*a[7]+g*a[8],e*a[8]-g*a[7]];if("y"==c)return[e*a[0]-g*a[2],a[1],e*a[2]+g*a[0],e*a[3]-g*a[5],a[4],e*a[5]+g*a[3],e*a[6]-g*a[8],a[7],e*a[8]+g*a[6]];if("z"==c)return[e*a[0]+g*a[1],e*a[1]-g*a[0],a[2],e*a[3]+g*a[4],e*a[4]-g*a[3],a[5],e*a[6]+g*a[7],e*a[7]-g*a[6],a[8]]}function ma(a){return[a[0],a[4],a[8],a[12],a[1],a[5],a[9],a[13],a[2],a[6],a[10],a[14],a[3],a[7],a[11],a[15]]}function Ka(a){La(a,a.path+"."+m.extension, +function(e,c){a.texture=e;a.textureLoaded=c?2:1},va.crossOrigin)}function la(a,e){var c=[a[0]*e[0]+a[1]*e[1]+a[2]*e[2],a[4]*e[0]+a[5]*e[1]+a[6]*e[2],a[11]+a[8]*e[0]+a[9]*e[1]+a[10]*e[2],1/(a[12]*e[0]+a[13]*e[1]+a[14]*e[2])],g=c[0]*c[3],l=c[1]*c[3],c=c[2]*c[3],h=[0,0,0];-1>g&&(h[0]=-1);1<g&&(h[0]=1);-1>l&&(h[1]=-1);1<l&&(h[1]=1);if(-1>c||1<c)h[2]=1;return h}function Ea(){console.log("Reducing canvas size due to error 1286!");A.width=Math.round(A.width/2);A.height=Math.round(A.height/2)}var A=g.createElement("canvas"); +A.style.width=A.style.height="100%";K.appendChild(A);var c,a,U,V,$,R,wa,ga,m,z,F,ca,Fa,Y,na,va;this.init=function(L,e,Ca,H,l,h,d,u){function x(a){if(E){var e=a*a*4,h=new Uint8ClampedArray(e),c=u.backgroundColor?u.backgroundColor:[0,0,0];c[0]*=255;c[1]*=255;c[2]*=255;for(var b=0;b<e;b++)h[b++]=c[0],h[b++]=c[1],h[b++]=c[2];a=new ImageData(h,a,a);for(t=0;6>t;t++)0==m[t].width&&(m[t]=a)}}e===p&&(e="equirectangular");if("equirectangular"!=e&&"cubemap"!=e&&"multires"!=e)throw console.log("Error: invalid image type specified!"), +{type:"config error"};z=e;m=L;F=Ca;va=u||{};if(c){U&&(a.detachShader(c,U),a.deleteShader(U));V&&(a.detachShader(c,V),a.deleteShader(V));a.bindBuffer(a.ARRAY_BUFFER,null);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,null);c.texture&&a.deleteTexture(c.texture);if(c.nodeCache)for(L=0;L<c.nodeCache.length;L++)a.deleteTexture(c.nodeCache[L].texture);a.deleteProgram(c);c=p}ga=p;var t,E=!1,y;if("cubemap"==z)for(t=0;6>t;t++)0<m[t].width?(y===p&&(y=m[t].width),y!=m[t].width&&console.log("Cube faces have inconsistent widths: "+ +y+" vs. "+m[t].width)):E=!0;"cubemap"==z&&0!==(y&y-1)&&(navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 8_/)||navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 9_/)||navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 10_/)||navigator.userAgent.match(/Trident.*rv[ :]*11\./))||(a||(a=A.getContext("experimental-webgl",{alpha:!1,depth:!1})),a&&1286==a.getError()&&Ea());if(!a&&("multires"==z&&m.hasOwnProperty("fallbackPath")||"cubemap"==z)&&("WebkitAppearance"in +g.documentElement.style||navigator.userAgent.match(/Trident.*rv[ :]*11\./)||-1!==navigator.appVersion.indexOf("MSIE 10"))){R&&K.removeChild(R);R=g.createElement("div");R.className="pnlm-world";H=m.basePath?m.basePath+m.fallbackPath:m.fallbackPath;var Q="frblud".split(""),S=0;l=function(){var a=g.createElement("canvas");a.className="pnlm-face pnlm-"+Q[this.side]+"face";R.appendChild(a);var e=a.getContext("2d");a.style.width=this.width+4+"px";a.style.height=this.height+4+"px";a.width=this.width+4;a.height= +this.height+4;e.drawImage(this,2,2);var h=e.getImageData(0,0,a.width,a.height),c=h.data,b,d;for(b=2;b<a.width-2;b++)for(d=0;4>d;d++)c[4*(b+a.width)+d]=c[4*(b+2*a.width)+d],c[4*(b+a.width*(a.height-2))+d]=c[4*(b+a.width*(a.height-3))+d];for(b=2;b<a.height-2;b++)for(d=0;4>d;d++)c[4*(b*a.width+1)+d]=c[4*(b*a.width+2)+d],c[4*((b+1)*a.width-2)+d]=c[4*((b+1)*a.width-3)+d];for(d=0;4>d;d++)c[4*(a.width+1)+d]=c[4*(2*a.width+2)+d],c[4*(2*a.width-2)+d]=c[4*(3*a.width-3)+d],c[4*(a.width*(a.height-2)+1)+d]=c[4* +(a.width*(a.height-3)+2)+d],c[4*(a.width*(a.height-1)-2)+d]=c[4*(a.width*(a.height-2)-3)+d];for(b=1;b<a.width-1;b++)for(d=0;4>d;d++)c[4*b+d]=c[4*(b+a.width)+d],c[4*(b+a.width*(a.height-1))+d]=c[4*(b+a.width*(a.height-2))+d];for(b=1;b<a.height-1;b++)for(d=0;4>d;d++)c[b*a.width*4+d]=c[4*(b*a.width+1)+d],c[4*((b+1)*a.width-1)+d]=c[4*((b+1)*a.width-2)+d];for(d=0;4>d;d++)c[d]=c[4*(a.width+1)+d],c[4*(a.width-1)+d]=c[4*(2*a.width-2)+d],c[a.width*(a.height-1)*4+d]=c[4*(a.width*(a.height-2)+1)+d],c[4*(a.width* +a.height-1)+d]=c[4*(a.width*(a.height-1)-2)+d];e.putImageData(h,0,0);D.call(this)};var D=function(){0<this.width?($===p&&($=this.width),$!=this.width&&console.log("Fallback faces have inconsistent widths: "+$+" vs. "+this.width)):E=!0;S++;6==S&&($=this.width,K.appendChild(R),d())},E=!1;for(t=0;6>t;t++)h=new Image,h.crossOrigin=va.crossOrigin?va.crossOrigin:"anonymous",h.side=t,h.onload=l,h.onerror=D,h.src="multires"==z?H.replace("%s",Q[t])+"."+m.extension:m[t].src;x($)}else{if(!a)throw console.log("Error: no WebGL support detected!"), +{type:"no webgl"};"cubemap"==z&&x(y);m.fullpath=m.basePath?m.basePath+m.path:m.path;m.invTileResolution=1/m.tileResolution;L=ta();wa=[];for(t=0;6>t;t++)wa[t]=L.slice(12*t,12*t+12),L=ta();L=0;if("equirectangular"==z){if(L=a.getParameter(a.MAX_TEXTURE_SIZE),Math.max(m.width/2,m.height)>L)throw console.log("Error: The image is too big; it's "+m.width+"px wide, but this device's maximum supported size is "+2*L+"px."),{type:"webgl size error",width:m.width,maxWidth:2*L};}else if("cubemap"==z&&y>a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZE))throw console.log("Error: The image is too big; it's "+ +y+"px wide, but this device's maximum supported size is "+L+"px."),{type:"webgl size error",width:y,maxWidth:L};u===p||u.horizonPitch===p&&u.horizonRoll===p||(ga=[u.horizonPitch==p?0:u.horizonPitch,u.horizonRoll==p?0:u.horizonRoll]);y=a.TEXTURE_2D;a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight);a.getShaderPrecisionFormat&&(e=a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.HIGH_FLOAT))&&1>e.precision&&(oa=oa.replace("highp","mediump"));U=a.createShader(a.VERTEX_SHADER);e=s;"multires"==z&& +(e=k);a.shaderSource(U,e);a.compileShader(U);V=a.createShader(a.FRAGMENT_SHADER);e=pa;"cubemap"==z?(y=a.TEXTURE_CUBE_MAP,e=qa):"multires"==z&&(e=bb);a.shaderSource(V,e);a.compileShader(V);c=a.createProgram();a.attachShader(c,U);a.attachShader(c,V);a.linkProgram(c);a.getShaderParameter(U,a.COMPILE_STATUS)||console.log(a.getShaderInfoLog(U));a.getShaderParameter(V,a.COMPILE_STATUS)||console.log(a.getShaderInfoLog(V));a.getProgramParameter(c,a.LINK_STATUS)||console.log(a.getProgramInfoLog(c));a.useProgram(c); +c.drawInProgress=!1;e=u.backgroundColor?u.backgroundColor:[0,0,0];a.clearColor(e[0],e[1],e[2],1);a.clear(a.COLOR_BUFFER_BIT);c.texCoordLocation=a.getAttribLocation(c,"a_texCoord");a.enableVertexAttribArray(c.texCoordLocation);"multires"!=z?(ca||(ca=a.createBuffer()),a.bindBuffer(a.ARRAY_BUFFER,ca),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,1,1,1,1,-1,-1,1,1,-1,-1,-1]),a.STATIC_DRAW),a.vertexAttribPointer(c.texCoordLocation,2,a.FLOAT,!1,0,0),c.aspectRatio=a.getUniformLocation(c,"u_aspectRatio"), +a.uniform1f(c.aspectRatio,a.drawingBufferWidth/a.drawingBufferHeight),c.psi=a.getUniformLocation(c,"u_psi"),c.theta=a.getUniformLocation(c,"u_theta"),c.f=a.getUniformLocation(c,"u_f"),c.h=a.getUniformLocation(c,"u_h"),c.v=a.getUniformLocation(c,"u_v"),c.vo=a.getUniformLocation(c,"u_vo"),c.rot=a.getUniformLocation(c,"u_rot"),a.uniform1f(c.h,H/(2*Math.PI)),a.uniform1f(c.v,l/Math.PI),a.uniform1f(c.vo,h/Math.PI*2),"equirectangular"==z&&(c.backgroundColor=a.getUniformLocation(c,"u_backgroundColor"),a.uniform4fv(c.backgroundColor, +e.concat([1]))),c.texture=a.createTexture(),a.bindTexture(y,c.texture),"cubemap"==z?(a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m[1]),a.texImage2D(a.TEXTURE_CUBE_MAP_NEGATIVE_X,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m[3]),a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_Y,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m[4]),a.texImage2D(a.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m[5]),a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_Z,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m[0]),a.texImage2D(a.TEXTURE_CUBE_MAP_NEGATIVE_Z, +0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m[2])):m.width<=L?(a.uniform1i(a.getUniformLocation(c,"u_splitImage"),0),a.texImage2D(y,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m)):(a.uniform1i(a.getUniformLocation(c,"u_splitImage"),1),H=g.createElement("canvas"),H.width=m.width/2,H.height=m.height,H=H.getContext("2d"),H.drawImage(m,0,0),l=H.getImageData(0,0,m.width/2,m.height),a.texImage2D(y,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,l),c.texture2=a.createTexture(),a.activeTexture(a.TEXTURE1),a.bindTexture(y,c.texture2),a.uniform1i(a.getUniformLocation(c, +"u_image1"),1),H.drawImage(m,-m.width/2,0),l=H.getImageData(0,0,m.width/2,m.height),a.texImage2D(y,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,l),a.texParameteri(y,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(y,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(y,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(y,a.TEXTURE_MAG_FILTER,a.LINEAR),a.activeTexture(a.TEXTURE0)),a.texParameteri(y,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(y,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(y,a.TEXTURE_MIN_FILTER, +a.LINEAR),a.texParameteri(y,a.TEXTURE_MAG_FILTER,a.LINEAR)):(c.vertPosLocation=a.getAttribLocation(c,"a_vertCoord"),a.enableVertexAttribArray(c.vertPosLocation),Fa||(Fa=a.createBuffer()),Y||(Y=a.createBuffer()),na||(na=a.createBuffer()),a.bindBuffer(a.ARRAY_BUFFER,Y),a.bufferData(a.ARRAY_BUFFER,new Float32Array([0,0,1,0,1,1,0,1]),a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,na),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),a.STATIC_DRAW),c.perspUniform=a.getUniformLocation(c, +"u_perspMatrix"),c.cubeUniform=a.getUniformLocation(c,"u_cubeMatrix"),c.level=-1,c.currentNodes=[],c.nodeCache=[],c.nodeCacheTimestamp=0);H=a.getError();if(0!==H)throw console.log("Error: Something went wrong with WebGL!",H),{type:"webgl error"};d()}};this.destroy=function(){K!==p&&(A!==p&&K.contains(A)&&K.removeChild(A),R!==p&&K.contains(R)&&K.removeChild(R));if(a){var c=a.getExtension("WEBGL_lose_context");c&&c.loseContext()}};this.resize=function(){var g=E.devicePixelRatio||1;A.width=A.clientWidth* +g;A.height=A.clientHeight*g;a&&(1286==a.getError()&&Ea(),a.viewport(0,0,a.drawingBufferWidth,a.drawingBufferHeight),"multires"!=z&&a.uniform1f(c.aspectRatio,A.clientWidth/A.clientHeight))};this.resize();this.setPose=function(a,c){ga=[a,c]};this.render=function(g,e,k,s){var l,h=0;s===p&&(s={});s.roll&&(h=s.roll);if(ga!==p){l=ga[0];var d=ga[1],u=g,x=e,t=Math.cos(d)*Math.sin(g)*Math.sin(l)+Math.cos(g)*(Math.cos(l)*Math.cos(e)+Math.sin(d)*Math.sin(l)*Math.sin(e)),E=-Math.sin(g)*Math.sin(d)+Math.cos(g)* +Math.cos(d)*Math.sin(e);g=Math.cos(d)*Math.cos(l)*Math.sin(g)+Math.cos(g)*(-Math.cos(e)*Math.sin(l)+Math.cos(l)*Math.sin(d)*Math.sin(e));g=Math.asin(Math.max(Math.min(g,1),-1));e=Math.atan2(E,t);l=[Math.cos(u)*(Math.sin(d)*Math.sin(l)*Math.cos(x)-Math.cos(l)*Math.sin(x)),Math.cos(u)*Math.cos(d)*Math.cos(x),Math.cos(u)*(Math.cos(l)*Math.sin(d)*Math.cos(x)+Math.sin(x)*Math.sin(l))];d=[-Math.cos(g)*Math.sin(e),Math.cos(g)*Math.cos(e)];d=Math.acos(Math.max(Math.min((l[0]*d[0]+l[1]*d[1])/(Math.sqrt(l[0]* +l[0]+l[1]*l[1]+l[2]*l[2])*Math.sqrt(d[0]*d[0]+d[1]*d[1])),1),-1));0>l[2]&&(d=2*Math.PI-d);h+=d}if(a||"multires"!=z&&"cubemap"!=z){if("multires"!=z)k=2*Math.atan(Math.tan(0.5*k)/(a.drawingBufferWidth/a.drawingBufferHeight)),k=1/Math.tan(0.5*k),a.uniform1f(c.psi,e),a.uniform1f(c.theta,g),a.uniform1f(c.rot,h),a.uniform1f(c.f,k),!0===F&&"equirectangular"==z&&(a.bindTexture(a.TEXTURE_2D,c.texture),a.texImage2D(a.TEXTURE_2D,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,m)),a.drawArrays(a.TRIANGLES,0,6);else{l=a.drawingBufferWidth/ +a.drawingBufferHeight;d=2*Math.atan(Math.tan(k/2)*a.drawingBufferHeight/a.drawingBufferWidth);d=1/Math.tan(d/2);l=[d/l,0,0,0,0,d,0,0,0,0,100.1/-99.9,20/-99.9,0,0,-1,0];for(d=1;d<m.maxLevel&&a.drawingBufferWidth>m.tileResolution*Math.pow(2,d-1)*Math.tan(k/2)*0.707;)d++;c.level=d;d=[1,0,0,0,1,0,0,0,1];d=ua(d,-h,"z");d=ua(d,-g,"x");d=ua(d,e,"y");d=[d[0],d[1],d[2],0,d[3],d[4],d[5],0,d[6],d[7],d[8],0,0,0,0,1];a.uniformMatrix4fv(c.perspUniform,!1,new Float32Array(ma(l)));a.uniformMatrix4fv(c.cubeUniform, +!1,new Float32Array(ma(d)));h=[l[0]*d[0],l[0]*d[1],l[0]*d[2],0,l[5]*d[4],l[5]*d[5],l[5]*d[6],0,l[10]*d[8],l[10]*d[9],l[10]*d[10],l[11],-d[8],-d[9],-d[10],0];c.nodeCache.sort(ja);if(200<c.nodeCache.length&&c.nodeCache.length>c.currentNodes.length+50)for(l=c.nodeCache.splice(200,c.nodeCache.length-200),d=0;d<l.length;d++)a.deleteTexture(l[d].texture);c.currentNodes=[];d="fbudlr".split("");for(l=0;6>l;l++)u=new ka(wa[l],d[l],1,0,0,m.fullpath),Ja(h,u,g,e,k);c.currentNodes.sort(Q);for(g=S.length-1;0<= +g;g--)-1===c.currentNodes.indexOf(S[g].node)&&(S[g].node.textureLoad=!1,S.splice(g,1));if(0===S.length)for(g=0;g<c.currentNodes.length;g++)if(e=c.currentNodes[g],!e.texture&&!e.textureLoad){e.textureLoad=!0;setTimeout(Ka,0,e);break}if(!c.drawInProgress){c.drawInProgress=!0;a.clear(a.COLOR_BUFFER_BIT);for(g=0;g<c.currentNodes.length;g++)1<c.currentNodes[g].textureLoaded&&(a.bindBuffer(a.ARRAY_BUFFER,Fa),a.bufferData(a.ARRAY_BUFFER,new Float32Array(c.currentNodes[g].vertices),a.STATIC_DRAW),a.vertexAttribPointer(c.vertPosLocation, +3,a.FLOAT,!1,0,0),a.bindBuffer(a.ARRAY_BUFFER,Y),a.vertexAttribPointer(c.texCoordLocation,2,a.FLOAT,!1,0,0),a.bindTexture(a.TEXTURE_2D,c.currentNodes[g].texture),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0));c.drawInProgress=!1}}if(s.returnImage!==p)return A.toDataURL("image/png")}else for(l=$/2,s={f:"translate3d(-"+(l+2)+"px, -"+(l+2)+"px, -"+l+"px)",b:"translate3d("+(l+2)+"px, -"+(l+2)+"px, "+l+"px) rotateX(180deg) rotateZ(180deg)",u:"translate3d(-"+(l+2)+"px, -"+l+"px, "+(l+2)+"px) rotateX(270deg)", +d:"translate3d(-"+(l+2)+"px, "+l+"px, -"+(l+2)+"px) rotateX(90deg)",l:"translate3d(-"+l+"px, -"+(l+2)+"px, "+(l+2)+"px) rotateX(180deg) rotateY(90deg) rotateZ(180deg)",r:"translate3d("+l+"px, -"+(l+2)+"px, -"+(l+2)+"px) rotateY(270deg)"},k=1/Math.tan(k/2),k=k*A.clientWidth/2+"px",e="perspective("+k+") translateZ("+k+") rotateX("+g+"rad) rotateY("+e+"rad) ",k=Object.keys(s),g=0;6>g;g++)if(h=R.querySelector(".pnlm-"+k[g]+"face"))h.style.webkitTransform=e+s[k[g]],h.style.transform=e+s[k[g]]};this.isLoading= +function(){if(a&&"multires"==z)for(var g=0;g<c.currentNodes.length;g++)if(!c.currentNodes[g].textureLoaded)return!0;return!1};this.getCanvas=function(){return A};var S=[],La=function(){function c(){var d=this;this.texture=this.callback=null;this.image=new Image;this.image.crossOrigin=l?l:"anonymous";var e=function(){if(0<d.image.width&&0<d.image.height){var c=d.image;a.bindTexture(a.TEXTURE_2D,d.texture);a.texImage2D(a.TEXTURE_2D,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,c);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER, +a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.bindTexture(a.TEXTURE_2D,null);d.callback(d.texture,!0)}else d.callback(d.texture,!1);S.length?(c=S.shift(),d.loadTexture(c.src,c.texture,c.callback)):k[g++]=d};this.image.addEventListener("load",e);this.image.addEventListener("error",e)}function e(a,c,e,g){this.node=a;this.src=c;this.texture=e;this.callback= +g}var g=4,k={},l;c.prototype.loadTexture=function(a,c,e){this.texture=c;this.callback=e;this.image.src=a};for(var h=0;h<g;h++)k[h]=new c;return function(c,h,m,p){l=p;p=a.createTexture();g?k[--g].loadTexture(h,p,m):S.push(new e(c,h,p,m));return p}}()}var s="attribute vec2 a_texCoord;varying vec2 v_texCoord;void main() {gl_Position = vec4(a_texCoord, 0.0, 1.0);v_texCoord = a_texCoord;}",k="attribute vec3 a_vertCoord;attribute vec2 a_texCoord;uniform mat4 u_cubeMatrix;uniform mat4 u_perspMatrix;varying mediump vec2 v_texCoord;void main(void) {gl_Position = u_perspMatrix * u_cubeMatrix * vec4(a_vertCoord, 1.0);v_texCoord = a_texCoord;}", +oa="precision highp float;\nuniform float u_aspectRatio;\nuniform float u_psi;\nuniform float u_theta;\nuniform float u_f;\nuniform float u_h;\nuniform float u_v;\nuniform float u_vo;\nuniform float u_rot;\nconst float PI = 3.14159265358979323846264;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nuniform bool u_splitImage;\nuniform samplerCube u_imageCube;\nvarying vec2 v_texCoord;\nuniform vec4 u_backgroundColor;\nvoid main() {\nfloat x = v_texCoord.x * u_aspectRatio;\nfloat y = v_texCoord.y;\nfloat sinrot = sin(u_rot);\nfloat cosrot = cos(u_rot);\nfloat rot_x = x * cosrot - y * sinrot;\nfloat rot_y = x * sinrot + y * cosrot;\nfloat sintheta = sin(u_theta);\nfloat costheta = cos(u_theta);\nfloat a = u_f * costheta - rot_y * sintheta;\nfloat root = sqrt(rot_x * rot_x + a * a);\nfloat lambda = atan(rot_x / root, a / root) + u_psi;\nfloat phi = atan((rot_y * costheta + u_f * sintheta) / root);", +qa=oa+"float cosphi = cos(phi);\ngl_FragColor = textureCube(u_imageCube, vec3(cosphi*sin(lambda), sin(phi), cosphi*cos(lambda)));\n}",pa=oa+"lambda = mod(lambda + PI, PI * 2.0) - PI;\nvec2 coord = vec2(lambda / PI, phi / (PI / 2.0));\nif(coord.x < -u_h || coord.x > u_h || coord.y < -u_v + u_vo || coord.y > u_v + u_vo)\ngl_FragColor = u_backgroundColor;\nelse {\nif(u_splitImage) {\nif(coord.x < 0.0)\ngl_FragColor = texture2D(u_image0, vec2((coord.x + u_h) / u_h, (-coord.y + u_v + u_vo) / (u_v * 2.0)));\nelse\ngl_FragColor = texture2D(u_image1, vec2((coord.x + u_h) / u_h - 1.0, (-coord.y + u_v + u_vo) / (u_v * 2.0)));\n} else {\ngl_FragColor = texture2D(u_image0, vec2((coord.x + u_h) / (u_h * 2.0), (-coord.y + u_v + u_vo) / (u_v * 2.0)));\n}\n}\n}", +bb="varying mediump vec2 v_texCoord;uniform sampler2D u_sampler;void main(void) {gl_FragColor = texture2D(u_sampler, v_texCoord);}";return{renderer:function(g,k,p,s){return new Ba(g,k,p,s)}}}(window,document); +window.pannellum=function(E,g,p){function Ba(s,k){function oa(){var a=g.createElement("div");a.innerHTML="\x3c!--[if lte IE 9]><i></i><![endif]--\x3e";if(1==a.getElementsByTagName("i").length)K();else{ra=b.hfov;Ga=b.pitch;var f;if("cubemap"==b.type){P=[];for(a=0;6>a;a++)P.push(new Image),P[a].crossOrigin=b.crossOrigin;q.load.lbox.style.display="block";q.load.lbar.style.display="none"}else if("multires"==b.type)a=JSON.parse(JSON.stringify(b.multiRes)),b.basePath&&b.multiRes.basePath&&!/^(?:[a-z]+:)?\/\//i.test(b.multiRes.basePath)? +a.basePath=b.basePath+b.multiRes.basePath:b.multiRes.basePath?a.basePath=b.multiRes.basePath:b.basePath&&(a.basePath=b.basePath),P=a;else if(!0===b.dynamic)P=b.panorama;else{if(b.panorama===p){K(b.strings.noPanoramaError);return}P=new Image}if("cubemap"==b.type)for(var n=6,c=function(){n--;0===n&&pa()},d=function(a){var ea=g.createElement("a");ea.href=a.target.src;ea.textContent=ea.href;K(b.strings.fileAccessError.replace("%s",ea.outerHTML))},a=0;a<P.length;a++)f=b.cubeMap[a],"null"==f?(console.log("Will use background instead of missing cubemap face "+ +a),c()):(b.basePath&&!qa(f)&&(f=b.basePath+f),P[a].onload=c,P[a].onerror=d,P[a].src=I(f));else if("multires"==b.type)pa();else if(f="",b.basePath&&(f=b.basePath),!0!==b.dynamic){f=qa(b.panorama)?b.panorama:f+b.panorama;P.onload=function(){E.URL.revokeObjectURL(this.src);pa()};var e=new XMLHttpRequest;e.onloadend=function(){if(200!=e.status){var a=g.createElement("a");a.href=f;a.textContent=a.href;K(b.strings.fileAccessError.replace("%s",a.outerHTML))}Ba(this.response);q.load.msg.innerHTML=""};e.onprogress= +function(a){if(a.lengthComputable){q.load.lbarFill.style.width=a.loaded/a.total*100+"%";var b,ea;1E6<a.total?(b="MB",ea=(a.loaded/1E6).toFixed(2),a=(a.total/1E6).toFixed(2)):1E3<a.total?(b="kB",ea=(a.loaded/1E3).toFixed(1),a=(a.total/1E3).toFixed(1)):(b="B",ea=a.loaded,a=a.total);q.load.msg.innerHTML=ea+" / "+a+" "+b}else q.load.lbox.style.display="block",q.load.lbar.style.display="none"};try{e.open("GET",f,!0)}catch(h){K(b.strings.malformedURLError)}e.responseType="blob";e.setRequestHeader("Accept", +"image/*,*/*;q=0.9");e.withCredentials="use-credentials"===b.crossOrigin;e.send()}b.draggable&&J.classList.add("pnlm-grab");J.classList.remove("pnlm-grabbing");Ma=!0===b.dynamicUpdate;b.dynamic&&Ma&&(P=b.panorama,pa())}}function qa(a){return/^(?:[a-z]+:)?\/\//i.test(a)||"/"==a[0]||"blob:"==a.slice(0,5)}function pa(){C||(C=new libpannellum.renderer(M));Sa||(Sa=!0,W.addEventListener("mousedown",ka,!1),g.addEventListener("mousemove",ua,!1),g.addEventListener("mouseup",ma,!1),b.mouseZoom&&(J.addEventListener("mousewheel", +U,!1),J.addEventListener("DOMMouseScroll",U,!1)),b.doubleClickZoom&&W.addEventListener("dblclick",Ja,!1),s.addEventListener("mozfullscreenchange",d,!1),s.addEventListener("webkitfullscreenchange",d,!1),s.addEventListener("msfullscreenchange",d,!1),s.addEventListener("fullscreenchange",d,!1),E.addEventListener("resize",z,!1),E.addEventListener("orientationchange",z,!1),b.disableKeyboardCtrl||(s.addEventListener("keydown",V,!1),s.addEventListener("keyup",R,!1),s.addEventListener("blur",$,!1)),g.addEventListener("mouseleave", +ma,!1),""===g.documentElement.style.pointerAction&&""===g.documentElement.style.touchAction?(W.addEventListener("pointerdown",A,!1),W.addEventListener("pointermove",c,!1),W.addEventListener("pointerup",a,!1),W.addEventListener("pointerleave",a,!1)):(W.addEventListener("touchstart",Ka,!1),W.addEventListener("touchmove",la,!1),W.addEventListener("touchend",Ea,!1)),E.navigator.pointerEnabled&&(s.style.touchAction="none"));va();x(b.hfov);setTimeout(function(){},500)}function Ba(a){var f=new FileReader; +f.addEventListener("loadend",function(){var n=f.result;if(navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad).* os 8_/)){var c=n.indexOf("\u00ff\u00c2");(0>c||65536<c)&&K(b.strings.iOS8WebGLError)}c=n.indexOf("<x:xmpmeta");if(-1<c&&!0!==b.ignoreGPanoXMP){var d=n.substring(c,n.indexOf("</x:xmpmeta>")+12),e=function(a){var b;0<=d.indexOf(a+'="')?(b=d.substring(d.indexOf(a+'="')+a.length+2),b=b.substring(0,b.indexOf('"'))):0<=d.indexOf(a+">")&&(b=d.substring(d.indexOf(a+">")+a.length+1),b=b.substring(0, +b.indexOf("<")));return b!==p?Number(b):null},n=e("GPano:FullPanoWidthPixels"),c=e("GPano:CroppedAreaImageWidthPixels"),g=e("GPano:FullPanoHeightPixels"),h=e("GPano:CroppedAreaImageHeightPixels"),l=e("GPano:CroppedAreaTopPixels"),k=e("GPano:PoseHeadingDegrees"),m=e("GPano:PosePitchDegrees"),e=e("GPano:PoseRollDegrees");null!==n&&null!==c&&null!==g&&null!==h&&null!==l&&(0>aa.indexOf("haov")&&(b.haov=c/n*360),0>aa.indexOf("vaov")&&(b.vaov=h/g*180),0>aa.indexOf("vOffset")&&(b.vOffset=-180*((l+h/2)/g- +0.5)),null!==k&&0>aa.indexOf("northOffset")&&(b.northOffset=k,!1!==b.compass&&(b.compass=!0)),null!==m&&null!==e&&(0>aa.indexOf("horizonPitch")&&(b.horizonPitch=m),0>aa.indexOf("horizonRoll")&&(b.horizonRoll=e)))}P.src=E.URL.createObjectURL(a)});f.readAsBinaryString!==p?f.readAsBinaryString(a):f.readAsText(a)}function K(a){a===p&&(a=b.strings.genericWebGLError);q.errorMsg.innerHTML="<p>"+a+"</p>";v.load.style.display="none";q.load.box.style.display="none";q.errorMsg.style.display="table";Na=!0;G= +p;M.style.display="none";B("error",a)}function ja(a){var b=Q(a);fa.style.left=b.x+"px";fa.style.top=b.y+"px";clearTimeout(ja.t1);clearTimeout(ja.t2);fa.style.display="block";fa.style.opacity=1;ja.t1=setTimeout(function(){fa.style.opacity=0},2E3);ja.t2=setTimeout(function(){fa.style.display="none"},2500);a.preventDefault()}function Q(a){var b=s.getBoundingClientRect(),n={};n.x=(a.clientX||a.pageX)-b.left;n.y=(a.clientY||a.pageY)-b.top;return n}function ka(a){a.preventDefault();s.focus();if(G&&b.draggable){var f= +Q(a);if(b.hotSpotDebug){var n=ta(a);console.log("Pitch: "+n[0]+", Yaw: "+n[1]+", Center Pitch: "+b.pitch+", Center Yaw: "+b.yaw+", HFOV: "+b.hfov)}t();Da();b.roll=0;w.hfov=0;ha=!0;N=Date.now();xa=f.x;ya=f.y;Oa=b.yaw;Pa=b.pitch;J.classList.add("pnlm-grabbing");J.classList.remove("pnlm-grab");B("mousedown",a);F()}}function Ja(a){b.minHfov===b.hfov?da.setHfov(ra,1E3):(a=ta(a),da.lookAt(a[0],a[1],b.minHfov,1E3))}function ta(a){var f=Q(a);a=C.getCanvas();var n=a.clientWidth,c=a.clientHeight;a=f.x/n*2- +1;var c=(1-f.y/c*2)*c/n,e=1/Math.tan(b.hfov*Math.PI/360),d=Math.sin(b.pitch*Math.PI/180),g=Math.cos(b.pitch*Math.PI/180),f=e*g-c*d,n=Math.sqrt(a*a+f*f),c=180*Math.atan((c*g+e*d)/n)/Math.PI;a=180*Math.atan2(a/n,f/n)/Math.PI+b.yaw;-180>a&&(a+=360);180<a&&(a-=360);return[c,a]}function ua(a){if(ha&&G){N=Date.now();var f=C.getCanvas(),n=f.clientWidth,f=f.clientHeight;a=Q(a);var c=180*(Math.atan(xa/n*2-1)-Math.atan(a.x/n*2-1))/Math.PI*b.hfov/90+Oa;w.yaw=(c-b.yaw)%360*0.2;b.yaw=c;n=360*Math.atan(Math.tan(b.hfov/ +360*Math.PI)*f/n)/Math.PI;n=180*(Math.atan(a.y/f*2-1)-Math.atan(ya/f*2-1))/Math.PI*n/90+Pa;w.pitch=0.2*(n-b.pitch);b.pitch=n}}function ma(a){ha&&(ha=!1,15<Date.now()-N&&(w.pitch=w.yaw=0),J.classList.add("pnlm-grab"),J.classList.remove("pnlm-grabbing"),N=Date.now(),B("mouseup",a))}function Ka(a){if(G&&b.draggable){t();Da();b.roll=0;w.hfov=0;var f=Q(a.targetTouches[0]);xa=f.x;ya=f.y;if(2==a.targetTouches.length){var n=Q(a.targetTouches[1]);xa+=0.5*(n.x-f.x);ya+=0.5*(n.y-f.y);Ha=Math.sqrt((f.x-n.x)* +(f.x-n.x)+(f.y-n.y)*(f.y-n.y))}ha=!0;N=Date.now();Oa=b.yaw;Pa=b.pitch;B("touchstart",a);F()}}function la(a){if(b.draggable&&(a.preventDefault(),G&&(N=Date.now()),ha&&G)){var f=Q(a.targetTouches[0]),n=f.x,c=f.y;2==a.targetTouches.length&&-1!=Ha&&(a=Q(a.targetTouches[1]),n+=0.5*(a.x-f.x),c+=0.5*(a.y-f.y),f=Math.sqrt((f.x-a.x)*(f.x-a.x)+(f.y-a.y)*(f.y-a.y)),x(b.hfov+0.1*(Ha-f)),Ha=f);f=b.hfov/360*b.touchPanSpeedCoeffFactor;n=(xa-n)*f+Oa;w.yaw=(n-b.yaw)%360*0.2;b.yaw=n;c=(c-ya)*f+Pa;w.pitch=0.2*(c-b.pitch); +b.pitch=c}}function Ea(){ha=!1;150<Date.now()-N&&(w.pitch=w.yaw=0);Ha=-1;N=Date.now();B("touchend",event)}function A(a){"touch"==a.pointerType&&G&&b.draggable&&(ia.push(a.pointerId),za.push({clientX:a.clientX,clientY:a.clientY}),a.targetTouches=za,Ka(a),a.preventDefault())}function c(a){if("touch"==a.pointerType&&b.draggable)for(var f=0;f<ia.length;f++)if(a.pointerId==ia[f]){za[f].clientX=a.clientX;za[f].clientY=a.clientY;a.targetTouches=za;la(a);a.preventDefault();break}}function a(a){if("touch"== +a.pointerType){for(var b=!1,n=0;n<ia.length;n++)a.pointerId==ia[n]&&(ia[n]=p),ia[n]&&(b=!0);b||(ia=[],za=[],Ea());a.preventDefault()}}function U(a){G&&("fullscreenonly"!=b.mouseZoom||Aa)&&(a.preventDefault(),t(),N=Date.now(),a.wheelDeltaY?(x(b.hfov-0.05*a.wheelDeltaY),w.hfov=0>a.wheelDelta?1:-1):a.wheelDelta?(x(b.hfov-0.05*a.wheelDelta),w.hfov=0>a.wheelDelta?1:-1):a.detail&&(x(b.hfov+1.5*a.detail),w.hfov=0<a.detail?1:-1),F())}function V(a){t();N=Date.now();Da();b.roll=0;var f=a.which||a.keycode;0> +b.capturedKeyNumbers.indexOf(f)||(a.preventDefault(),27==f?Aa&&h():wa(f,!0))}function $(){for(var a=0;10>a;a++)r[a]=!1}function R(a){var f=a.which||a.keycode;0>b.capturedKeyNumbers.indexOf(f)||(a.preventDefault(),wa(f,!1))}function wa(a,b){var n=!1;switch(a){case 109:case 189:case 17:case 173:r[0]!=b&&(n=!0);r[0]=b;break;case 107:case 187:case 16:case 61:r[1]!=b&&(n=!0);r[1]=b;break;case 38:r[2]!=b&&(n=!0);r[2]=b;break;case 87:r[6]!=b&&(n=!0);r[6]=b;break;case 40:r[3]!=b&&(n=!0);r[3]=b;break;case 83:r[7]!= +b&&(n=!0);r[7]=b;break;case 37:r[4]!=b&&(n=!0);r[4]=b;break;case 65:r[8]!=b&&(n=!0);r[8]=b;break;case 39:r[5]!=b&&(n=!0);r[5]=b;break;case 68:r[9]!=b&&(n=!0),r[9]=b}n&&b&&(ba="undefined"!==typeof performance&&performance.now()?performance.now():Date.now(),F())}function ga(){if(G){var a=!1,f=b.pitch,n=b.yaw,c=b.hfov,e;e="undefined"!==typeof performance&&performance.now()?performance.now():Date.now();ba===p&&(ba=e);var d=(e-ba)*b.hfov/1700,d=Math.min(d,1);r[0]&&!0===b.keyboardZoom&&(x(b.hfov+(0.8*w.hfov+ +0.5)*d),a=!0);r[1]&&!0===b.keyboardZoom&&(x(b.hfov+(0.8*w.hfov-0.2)*d),a=!0);if(r[2]||r[6])b.pitch+=(0.8*w.pitch+0.2)*d,a=!0;if(r[3]||r[7])b.pitch+=(0.8*w.pitch-0.2)*d,a=!0;if(r[4]||r[8])b.yaw+=(0.8*w.yaw-0.2)*d,a=!0;if(r[5]||r[9])b.yaw+=(0.8*w.yaw+0.2)*d,a=!0;a&&(N=Date.now());if(b.autoRotate){if(0.001<e-ba){var a=(e-ba)/1E3,g=(w.yaw/a*d-0.2*b.autoRotate)*a,g=(0<-b.autoRotate?1:-1)*Math.min(Math.abs(b.autoRotate*a),Math.abs(g));b.yaw+=g}b.autoRotateStopDelay&&(b.autoRotateStopDelay-=e-ba,0>=b.autoRotateStopDelay&& +(b.autoRotateStopDelay=!1,Z=b.autoRotate,b.autoRotate=0))}O.pitch&&(m("pitch"),f=b.pitch);O.yaw&&(m("yaw"),n=b.yaw);O.hfov&&(m("hfov"),c=b.hfov);0<d&&!b.autoRotate&&(a=1-b.friction,r[4]||r[5]||r[8]||r[9]||O.yaw||(b.yaw+=w.yaw*d*a),r[2]||r[3]||r[6]||r[7]||O.pitch||(b.pitch+=w.pitch*d*a),r[0]||r[1]||O.hfov||x(b.hfov+w.hfov*d*a));ba=e;0<d&&(w.yaw=0.8*w.yaw+(b.yaw-n)/d*0.2,w.pitch=0.8*w.pitch+(b.pitch-f)/d*0.2,w.hfov=0.8*w.hfov+(b.hfov-c)/d*0.2,f=b.autoRotate?Math.abs(b.autoRotate):5,w.yaw=Math.min(f, +Math.max(w.yaw,-f)),w.pitch=Math.min(f,Math.max(w.pitch,-f)),w.hfov=Math.min(f,Math.max(w.hfov,-f)));r[0]&&r[1]&&(w.hfov=0);(r[2]||r[6])&&(r[3]||r[7])&&(w.pitch=0);(r[4]||r[8])&&(r[5]||r[9])&&(w.yaw=0)}}function m(a){var f=O[a],n=Math.min(1,Math.max((Date.now()-f.startTime)/1E3/(f.duration/1E3),0)),n=f.startPosition+b.animationTimingFunction(n)*(f.endPosition-f.startPosition);if(f.endPosition>f.startPosition&&n>=f.endPosition||f.endPosition<f.startPosition&&n<=f.endPosition||f.endPosition===f.startPosition)n= +f.endPosition,w[a]=0,delete O[a];b[a]=n}function z(){d("resize")}function F(){Ta||(Ta=!0,ca())}function ca(){if(!Za)if(Fa(),Qa&&clearTimeout(Qa),ha||!0===X)requestAnimationFrame(ca);else if(r[0]||r[1]||r[2]||r[3]||r[4]||r[5]||r[6]||r[7]||r[8]||r[9]||b.autoRotate||O.pitch||O.yaw||O.hfov||0.01<Math.abs(w.yaw)||0.01<Math.abs(w.pitch)||0.01<Math.abs(w.hfov))ga(),0<=b.autoRotateInactivityDelay&&Z&&Date.now()-N>b.autoRotateInactivityDelay&&!b.autoRotate&&(b.autoRotate=Z,da.lookAt(Ga,p,ra,3E3)),requestAnimationFrame(ca); +else if(C&&(C.isLoading()||!0===b.dynamic&&Ma))requestAnimationFrame(ca);else{B("animatefinished",{pitch:da.getPitch(),yaw:da.getYaw(),hfov:da.getHfov()});Ta=!1;ba=p;var a=b.autoRotateInactivityDelay-(Date.now()-N);0<a?Qa=setTimeout(function(){b.autoRotate=Z;da.lookAt(Ga,p,ra,3E3);F()},a):0<=b.autoRotateInactivityDelay&&Z&&(b.autoRotate=Z,da.lookAt(Ga,p,ra,3E3),F())}}function Fa(){var a;if(G){var f=C.getCanvas();!1!==b.autoRotate&&(360<b.yaw?b.yaw-=360:-360>b.yaw&&(b.yaw+=360));a=b.yaw;var n=0;if(b.avoidShowingBackground){var c= +b.hfov/2,d=180*Math.atan2(Math.tan(c/180*Math.PI),f.width/f.height)/Math.PI;b.vaov>b.haov?Math.min(Math.cos((b.pitch-c)/180*Math.PI),Math.cos((b.pitch+c)/180*Math.PI)):n=c*(1-Math.min(Math.cos((b.pitch-d)/180*Math.PI),Math.cos((b.pitch+d)/180*Math.PI)))}var c=b.maxYaw-b.minYaw,d=-180,e=180;360>c&&(d=b.minYaw+b.hfov/2+n,e=b.maxYaw-b.hfov/2-n,c<b.hfov&&(d=e=(d+e)/2),b.yaw=Math.max(d,Math.min(e,b.yaw)));!1===b.autoRotate&&(360<b.yaw?b.yaw-=360:-360>b.yaw&&(b.yaw+=360));!1!==b.autoRotate&&a!=b.yaw&&ba!== +p&&(b.autoRotate*=-1);a=2*Math.atan(Math.tan(b.hfov/180*Math.PI*0.5)/(f.width/f.height))/Math.PI*180;f=b.minPitch+a/2;n=b.maxPitch-a/2;b.maxPitch-b.minPitch<a&&(f=n=(f+n)/2);isNaN(f)&&(f=-90);isNaN(n)&&(n=90);b.pitch=Math.max(f,Math.min(n,b.pitch));C.render(b.pitch*Math.PI/180,b.yaw*Math.PI/180,b.hfov*Math.PI/180,{roll:b.roll*Math.PI/180});b.hotSpots.forEach(Ca);b.compass&&(Ia.style.transform="rotate("+(-b.yaw-b.northOffset)+"deg)",Ia.style.webkitTransform="rotate("+(-b.yaw-b.northOffset)+"deg)")}} +function Y(a,b,c,d){this.w=a;this.x=b;this.y=c;this.z=d}function na(a){var f;f=a.alpha;var c=a.beta;a=a.gamma;c=[c?c*Math.PI/180/2:0,a?a*Math.PI/180/2:0,f?f*Math.PI/180/2:0];f=[Math.cos(c[0]),Math.cos(c[1]),Math.cos(c[2])];c=[Math.sin(c[0]),Math.sin(c[1]),Math.sin(c[2])];f=new Y(f[0]*f[1]*f[2]-c[0]*c[1]*c[2],c[0]*f[1]*f[2]-f[0]*c[1]*c[2],f[0]*c[1]*f[2]+c[0]*f[1]*c[2],f[0]*f[1]*c[2]+c[0]*c[1]*f[2]);f=f.multiply(new Y(Math.sqrt(0.5),-Math.sqrt(0.5),0,0));c=E.orientation?-E.orientation*Math.PI/180/2: +0;f=f.multiply(new Y(Math.cos(c),0,-Math.sin(c),0)).toEulerAngles();"number"==typeof X&&10>X?X+=1:10===X?($a=f[2]/Math.PI*180+b.yaw,X=!0,requestAnimationFrame(ca)):(b.pitch=f[0]/Math.PI*180,b.roll=-f[1]/Math.PI*180,b.yaw=-f[2]/Math.PI*180+$a)}function va(){try{var a={};b.horizonPitch!==p&&(a.horizonPitch=b.horizonPitch*Math.PI/180);b.horizonRoll!==p&&(a.horizonRoll=b.horizonRoll*Math.PI/180);b.backgroundColor!==p&&(a.backgroundColor=b.backgroundColor);C.init(P,b.type,b.dynamic,b.haov*Math.PI/180, +b.vaov*Math.PI/180,b.vOffset*Math.PI/180,S,a);!0!==b.dynamic&&(P=p)}catch(f){if("webgl error"==f.type||"no webgl"==f.type)K();else if("webgl size error"==f.type)K(b.strings.textureSizeError.replace("%s",f.width).replace("%s",f.maxWidth));else throw K(b.strings.unknownError),f;}}function S(){if(b.sceneFadeDuration&&C.fadeImg!==p){C.fadeImg.style.opacity=0;var a=C.fadeImg;delete C.fadeImg;setTimeout(function(){M.removeChild(a);B("scenechangefadedone")},b.sceneFadeDuration)}Ia.style.display=b.compass? +"inline":"none";L();q.load.box.style.display="none";sa!==p&&(M.removeChild(sa),sa=p);G=!0;B("load");F()}function La(a){a.pitch=Number(a.pitch)||0;a.yaw=Number(a.yaw)||0;var f=g.createElement("div");f.className="pnlm-hotspot-base";f.className=a.cssClass?f.className+(" "+a.cssClass):f.className+(" pnlm-hotspot pnlm-sprite pnlm-"+D(a.type));var c=g.createElement("span");a.text&&(c.innerHTML=D(a.text));var d;if(a.video){d=g.createElement("video");var e=a.video;b.basePath&&!qa(e)&&(e=b.basePath+e);d.src= +I(e);d.controls=!0;d.style.width=a.width+"px";M.appendChild(f);c.appendChild(d)}else if(a.image){e=a.image;b.basePath&&!qa(e)&&(e=b.basePath+e);d=g.createElement("a");d.href=I(a.URL?a.URL:e,!0);d.target="_blank";c.appendChild(d);var h=g.createElement("img");h.src=I(e);h.style.width=a.width+"px";h.style.paddingTop="5px";M.appendChild(f);d.appendChild(h);c.style.maxWidth="initial"}else if(a.URL){d=g.createElement("a");d.href=I(a.URL,!0);if(a.attributes)for(e in a.attributes)d.setAttribute(e,a.attributes[e]); +else d.target="_blank";M.appendChild(d);f.className+=" pnlm-pointer";c.className+=" pnlm-pointer";d.appendChild(f)}else a.sceneId&&(f.onclick=f.ontouchend=function(){f.clicked||(f.clicked=!0,y(a.sceneId,a.targetPitch,a.targetYaw,a.targetHfov));return!1},f.className+=" pnlm-pointer",c.className+=" pnlm-pointer"),M.appendChild(f);if(a.createTooltipFunc)a.createTooltipFunc(f,a.createTooltipArgs);else if(a.text||a.video||a.image)f.classList.add("pnlm-tooltip"),f.appendChild(c),c.style.width=c.scrollWidth- +20+"px",c.style.marginLeft=-(c.scrollWidth-f.offsetWidth)/2+"px",c.style.marginTop=-c.scrollHeight-12+"px";a.clickHandlerFunc&&(f.addEventListener("click",function(b){a.clickHandlerFunc(b,a.clickHandlerArgs)},"false"),f.className+=" pnlm-pointer",c.className+=" pnlm-pointer");a.div=f}function L(){Ua||(b.hotSpots?(b.hotSpots=b.hotSpots.sort(function(a,b){return a.pitch<b.pitch}),b.hotSpots.forEach(La)):b.hotSpots=[],Ua=!0,b.hotSpots.forEach(Ca))}function e(){var a=b.hotSpots;Ua=!1;delete b.hotSpots; +if(a)for(var f=0;f<a.length;f++){var c=a[f].div;if(c){for(;c.parentNode&&c.parentNode!=M;)c=c.parentNode;M.removeChild(c)}delete a[f].div}}function Ca(a){var f=Math.sin(a.pitch*Math.PI/180),c=Math.cos(a.pitch*Math.PI/180),d=Math.sin(b.pitch*Math.PI/180),e=Math.cos(b.pitch*Math.PI/180),g=Math.cos((-a.yaw+b.yaw)*Math.PI/180),h=f*d+c*g*e;if(90>=a.yaw&&-90<a.yaw&&0>=h||(90<a.yaw||-90>=a.yaw)&&0>=h)a.div.style.visibility="hidden";else{var l=Math.sin((-a.yaw+b.yaw)*Math.PI/180),k=Math.tan(b.hfov*Math.PI/ +360);a.div.style.visibility="visible";var m=C.getCanvas(),p=m.clientWidth,m=m.clientHeight,f=[-p/k*l*c/h/2,-p/k*(f*e-c*g*d)/h/2],c=Math.sin(b.roll*Math.PI/180),d=Math.cos(b.roll*Math.PI/180),f=[f[0]*d-f[1]*c,f[0]*c+f[1]*d];f[0]+=(p-a.div.offsetWidth)/2;f[1]+=(m-a.div.offsetHeight)/2;p="translate("+f[0]+"px, "+f[1]+"px) translateZ(9999px) rotate("+b.roll+"deg)";a.scale&&(p+=" scale("+ra/b.hfov/h+")");a.div.style.webkitTransform=p;a.div.style.MozTransform=p;a.div.style.transform=p}}function H(a){b= +{};var f,c,d="haov vaov vOffset northOffset horizonPitch horizonRoll".split(" ");aa=[];for(f in Va)Va.hasOwnProperty(f)&&(b[f]=Va[f]);for(f in k.default)if(k.default.hasOwnProperty(f))if("strings"==f)for(c in k.default.strings)k.default.strings.hasOwnProperty(c)&&(b.strings[c]=D(k.default.strings[c]));else b[f]=k.default[f],0<=d.indexOf(f)&&aa.push(f);if(null!==a&&""!==a&&k.scenes&&k.scenes[a]){var e=k.scenes[a];for(f in e)if(e.hasOwnProperty(f))if("strings"==f)for(c in e.strings)e.strings.hasOwnProperty(c)&& +(b.strings[c]=D(e.strings[c]));else b[f]=e[f],0<=d.indexOf(f)&&aa.push(f);b.scene=a}for(f in k)if(k.hasOwnProperty(f))if("strings"==f)for(c in k.strings)k.strings.hasOwnProperty(c)&&(b.strings[c]=D(k.strings[c]));else b[f]=k[f],0<=d.indexOf(f)&&aa.push(f)}function l(a){if((a=a?a:!1)&&"preview"in b){var c=b.preview;b.basePath&&!qa(c)&&(c=b.basePath+c);sa=g.createElement("div");sa.className="pnlm-preview-img";sa.style.backgroundImage="url('"+I(c).replace(/"/g,"%22").replace(/'/g,"%27")+"')";M.appendChild(sa)}var c= +b.title,d=b.author;a&&("previewTitle"in b&&(b.title=b.previewTitle),"previewAuthor"in b&&(b.author=b.previewAuthor));b.hasOwnProperty("title")||(q.title.innerHTML="");b.hasOwnProperty("author")||(q.author.innerHTML="");b.hasOwnProperty("title")||b.hasOwnProperty("author")||(q.container.style.display="none");v.load.innerHTML="<p>"+b.strings.loadButtonLabel+"</p>";q.load.boxp.innerHTML=b.strings.loadingLabel;for(var e in b)if(b.hasOwnProperty(e))switch(e){case "title":q.title.innerHTML=D(b[e]);q.container.style.display= +"inline";break;case "author":var h=D(b[e]);b.authorURL&&(h=g.createElement("a"),h.href=I(b.authorURL,!0),h.target="_blank",h.innerHTML=D(b[e]),h=h.outerHTML);q.author.innerHTML=b.strings.bylineLabel.replace("%s",h);q.container.style.display="inline";break;case "fallback":h=g.createElement("a");h.href=I(b[e],!0);h.target="_blank";h.textContent="Click here to view this panorama in an alternative viewer.";var k=g.createElement("p");k.textContent="Your browser does not support WebGL.";k.appendChild(g.createElement("br")); +k.appendChild(h);q.errorMsg.innerHTML="";q.errorMsg.appendChild(k);break;case "hfov":x(Number(b[e]));break;case "autoLoad":!0===b[e]&&C===p&&(q.load.box.style.display="inline",v.load.style.display="none",oa());break;case "showZoomCtrl":v.zoom.style.display=b[e]&&!1!=b.showControls?"block":"none";break;case "showFullscreenCtrl":v.fullscreen.style.display=b[e]&&!1!=b.showControls&&("fullscreen"in g||"mozFullScreen"in g||"webkitIsFullScreen"in g||"msFullscreenElement"in g)?"block":"none";break;case "hotSpotDebug":Wa.style.display= +b[e]?"block":"none";break;case "showControls":b[e]||(v.orientation.style.display="none",v.zoom.style.display="none",v.fullscreen.style.display="none");break;case "orientationOnByDefault":b[e]&&Ra()}a&&(c?b.title=c:delete b.title,d?b.author=d:delete b.author)}function h(){if(G&&!Na)if(Aa)g.exitFullscreen?g.exitFullscreen():g.mozCancelFullScreen?g.mozCancelFullScreen():g.webkitCancelFullScreen?g.webkitCancelFullScreen():g.msExitFullscreen&&g.msExitFullscreen();else try{s.requestFullscreen?s.requestFullscreen(): +s.mozRequestFullScreen?s.mozRequestFullScreen():s.msRequestFullscreen?s.msRequestFullscreen():s.webkitRequestFullScreen()}catch(a){}}function d(a){g.fullscreenElement||g.fullscreen||g.mozFullScreen||g.webkitIsFullScreen||g.msFullscreenElement?(v.fullscreen.classList.add("pnlm-fullscreen-toggle-button-active"),Aa=!0):(v.fullscreen.classList.remove("pnlm-fullscreen-toggle-button-active"),Aa=!1);"resize"!==a&&B("fullscreenchange",Aa);C.resize();x(b.hfov);F()}function u(a){var c=b.minHfov;"multires"== +b.type&&C&&!b.multiResMinHfov&&(c=Math.min(c,C.getCanvas().width/(b.multiRes.cubeResolution/90*0.9)));if(c>b.maxHfov)return console.log("HFOV bounds do not make sense (minHfov > maxHfov)."),b.hfov;var d=b.hfov,d=a<c?c:a>b.maxHfov?b.maxHfov:a;b.avoidShowingBackground&&C&&(a=C.getCanvas(),d=Math.min(d,360*Math.atan(Math.tan((b.maxPitch-b.minPitch)/360*Math.PI)/a.height*a.width)/Math.PI));return d}function x(a){b.hfov=u(a);B("zoomchange",b.hfov)}function t(){O={};Z=b.autoRotate?b.autoRotate:Z;b.autoRotate= +!1}function Ya(){Na&&(q.load.box.style.display="none",q.errorMsg.style.display="none",Na=!1,M.style.display="block",B("errorcleared"));G=!1;v.load.style.display="none";q.load.box.style.display="inline";oa()}function y(a,c,d,h,g){G||(g=!0);G=!1;O={};var m,q;if(b.sceneFadeDuration&&!g&&(m=C.render(b.pitch*Math.PI/180,b.yaw*Math.PI/180,b.hfov*Math.PI/180,{returnImage:!0}),m!==p)){g=new Image;g.className="pnlm-fade-img";g.style.transition="opacity "+b.sceneFadeDuration/1E3+"s";g.style.width="100%";g.style.height= +"100%";g.onload=function(){y(a,c,d,h,!0)};g.src=m;M.appendChild(g);C.fadeImg=g;return}g="same"===c?b.pitch:c;m="same"===d?b.yaw:"sameAzimuth"===d?b.yaw+(b.northOffset||0)-(k.scenes[a].northOffset||0):d;q="same"===h?b.hfov:h;e();H(a);w.yaw=w.pitch=w.hfov=0;l();g!==p&&(b.pitch=g);m!==p&&(b.yaw=m);q!==p&&(b.hfov=q);B("scenechange",a);Ya()}function Da(){E.removeEventListener("deviceorientation",na);v.orientation.classList.remove("pnlm-orientation-button-active");X=!1}function Ra(){"function"===typeof DeviceMotionEvent.requestPermission? +DeviceOrientationEvent.requestPermission().then(function(a){"granted"==a&&(X=1,E.addEventListener("deviceorientation",na),v.orientation.classList.add("pnlm-orientation-button-active"))}):(X=1,E.addEventListener("deviceorientation",na),v.orientation.classList.add("pnlm-orientation-button-active"))}function D(a){return k.escapeHTML?String(a).split(/&/g).join("&amp;").split('"').join("&quot;").split("'").join("&#39;").split("<").join("&lt;").split(">").join("&gt;").split("/").join("&#x2f;").split("\n").join("<br>"): +String(a).split("\n").join("<br>")}function I(a,b){try{var c=decodeURIComponent(ab(a)).replace(/[^\w:]/g,"").toLowerCase()}catch(d){return"about:blank"}return 0===c.indexOf("javascript:")||0===c.indexOf("vbscript:")?(console.log("Script URL removed."),"about:blank"):b&&0===c.indexOf("data:")?(console.log("Data URI removed from link."),"about:blank"):a}function ab(a){return a.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(a,b){b=b.toLowerCase();return"colon"===b?":":"#"===b.charAt(0)? +"x"===b.charAt(1)?String.fromCharCode(parseInt(b.substring(2),16)):String.fromCharCode(+b.substring(1)):""})}function B(a){if(a in T)for(var b=T[a].length;0<b;b--)T[a][T[a].length-b].apply(null,[].slice.call(arguments,1))}var da=this,b,C,sa,ha=!1,N=Date.now(),xa=0,ya=0,Ha=-1,Oa=0,Pa=0,r=Array(10),Aa=!1,G,Na=!1,Sa=!1,P,ba,w={yaw:0,pitch:0,hfov:0},Ta=!1,X=!1,$a=0,Qa,Z=0,ra,Ga,O={},T={},aa=[],Ma=!1,Ua=!1,Za=!1,Va={hfov:100,minHfov:50,multiResMinHfov:!1,maxHfov:120,pitch:0,minPitch:p,maxPitch:p,yaw:0, +minYaw:-180,maxYaw:180,roll:0,haov:360,vaov:180,vOffset:0,autoRotate:!1,autoRotateInactivityDelay:-1,autoRotateStopDelay:p,type:"equirectangular",northOffset:0,showFullscreenCtrl:!0,dynamic:!1,dynamicUpdate:!1,doubleClickZoom:!0,keyboardZoom:!0,mouseZoom:!0,showZoomCtrl:!0,autoLoad:!1,showControls:!0,orientationOnByDefault:!1,hotSpotDebug:!1,backgroundColor:[0,0,0],avoidShowingBackground:!1,animationTimingFunction:function(a){return 0.5>a?2*a*a:-1+(4-2*a)*a},draggable:!0,disableKeyboardCtrl:!1,crossOrigin:"anonymous", +touchPanSpeedCoeffFactor:1,capturedKeyNumbers:[16,17,27,37,38,39,40,61,65,68,83,87,107,109,173,187,189],friction:0.15,strings:{loadButtonLabel:"Click to<br>Load<br>Panorama",loadingLabel:"Loading...",bylineLabel:"by %s",noPanoramaError:"No panorama image was specified.",fileAccessError:"The file %s could not be accessed.",malformedURLError:"There is something wrong with the panorama URL.",iOS8WebGLError:"Due to iOS 8's broken WebGL implementation, only progressive encoded JPEGs work for your device (this panorama uses standard encoding).", +genericWebGLError:"Your browser does not have the necessary WebGL support to display this panorama.",textureSizeError:"This panorama is too big for your device! It's %spx wide, but your device only supports images up to %spx wide. Try another device. (If you're the author, try scaling down the image.)",unknownError:"Unknown error. Check developer console."}};s="string"===typeof s?g.getElementById(s):s;s.classList.add("pnlm-container");s.tabIndex=0;var J=g.createElement("div");J.className="pnlm-ui"; +s.appendChild(J);var M=g.createElement("div");M.className="pnlm-render-container";s.appendChild(M);var W=g.createElement("div");W.className="pnlm-dragfix";J.appendChild(W);var fa=g.createElement("span");fa.className="pnlm-about-msg";fa.innerHTML='<a href="https://pannellum.org/" target="_blank">Pannellum</a> 2.5.6';J.appendChild(fa);W.addEventListener("contextmenu",ja);var q={},Wa=g.createElement("div");Wa.className="pnlm-sprite pnlm-hot-spot-debug-indicator";J.appendChild(Wa);q.container=g.createElement("div"); +q.container.className="pnlm-panorama-info";q.title=g.createElement("div");q.title.className="pnlm-title-box";q.container.appendChild(q.title);q.author=g.createElement("div");q.author.className="pnlm-author-box";q.container.appendChild(q.author);J.appendChild(q.container);q.load={};q.load.box=g.createElement("div");q.load.box.className="pnlm-load-box";q.load.boxp=g.createElement("p");q.load.box.appendChild(q.load.boxp);q.load.lbox=g.createElement("div");q.load.lbox.className="pnlm-lbox";q.load.lbox.innerHTML= +'<div class="pnlm-loading"></div>';q.load.box.appendChild(q.load.lbox);q.load.lbar=g.createElement("div");q.load.lbar.className="pnlm-lbar";q.load.lbarFill=g.createElement("div");q.load.lbarFill.className="pnlm-lbar-fill";q.load.lbar.appendChild(q.load.lbarFill);q.load.box.appendChild(q.load.lbar);q.load.msg=g.createElement("p");q.load.msg.className="pnlm-lmsg";q.load.box.appendChild(q.load.msg);J.appendChild(q.load.box);q.errorMsg=g.createElement("div");q.errorMsg.className="pnlm-error-msg pnlm-info-box"; +J.appendChild(q.errorMsg);var v={};v.container=g.createElement("div");v.container.className="pnlm-controls-container";J.appendChild(v.container);v.load=g.createElement("div");v.load.className="pnlm-load-button";v.load.addEventListener("click",function(){l();Ya()});J.appendChild(v.load);v.zoom=g.createElement("div");v.zoom.className="pnlm-zoom-controls pnlm-controls";v.zoomIn=g.createElement("div");v.zoomIn.className="pnlm-zoom-in pnlm-sprite pnlm-control";v.zoomIn.addEventListener("click",function(){G&& +(x(b.hfov-5),F())});v.zoom.appendChild(v.zoomIn);v.zoomOut=g.createElement("div");v.zoomOut.className="pnlm-zoom-out pnlm-sprite pnlm-control";v.zoomOut.addEventListener("click",function(){G&&(x(b.hfov+5),F())});v.zoom.appendChild(v.zoomOut);v.container.appendChild(v.zoom);v.fullscreen=g.createElement("div");v.fullscreen.addEventListener("click",h);v.fullscreen.className="pnlm-fullscreen-toggle-button pnlm-sprite pnlm-fullscreen-toggle-button-inactive pnlm-controls pnlm-control";(g.fullscreenEnabled|| +g.mozFullScreenEnabled||g.webkitFullscreenEnabled||g.msFullscreenEnabled)&&v.container.appendChild(v.fullscreen);v.orientation=g.createElement("div");v.orientation.addEventListener("click",function(a){X?Da():Ra()});v.orientation.addEventListener("mousedown",function(a){a.stopPropagation()});v.orientation.addEventListener("touchstart",function(a){a.stopPropagation()});v.orientation.addEventListener("pointerdown",function(a){a.stopPropagation()});v.orientation.className="pnlm-orientation-button pnlm-orientation-button-inactive pnlm-sprite pnlm-controls pnlm-control"; +var Xa=!1;E.DeviceOrientationEvent&&"https:"==location.protocol&&0<=navigator.userAgent.toLowerCase().indexOf("mobi")&&(v.container.appendChild(v.orientation),Xa=!0);var Ia=g.createElement("div");Ia.className="pnlm-compass pnlm-controls pnlm-control";J.appendChild(Ia);k.firstScene?H(k.firstScene):k.default&&k.default.firstScene?H(k.default.firstScene):H(null);l(!0);var ia=[],za=[];Y.prototype.multiply=function(a){return new Y(this.w*a.w-this.x*a.x-this.y*a.y-this.z*a.z,this.x*a.w+this.w*a.x+this.y* +a.z-this.z*a.y,this.y*a.w+this.w*a.y+this.z*a.x-this.x*a.z,this.z*a.w+this.w*a.z+this.x*a.y-this.y*a.x)};Y.prototype.toEulerAngles=function(){var a=Math.atan2(2*(this.w*this.x+this.y*this.z),1-2*(this.x*this.x+this.y*this.y)),b=Math.asin(2*(this.w*this.y-this.z*this.x)),c=Math.atan2(2*(this.w*this.z+this.x*this.y),1-2*(this.y*this.y+this.z*this.z));return[a,b,c]};this.isLoaded=function(){return Boolean(G)};this.getPitch=function(){return b.pitch};this.setPitch=function(a,c,d,e){N=Date.now();if(1E-6>= +Math.abs(a-b.pitch))return"function"==typeof d&&d(e),this;(c=c==p?1E3:Number(c))?(O.pitch={startTime:Date.now(),startPosition:b.pitch,endPosition:a,duration:c},"function"==typeof d&&setTimeout(function(){d(e)},c)):b.pitch=a;F();return this};this.getPitchBounds=function(){return[b.minPitch,b.maxPitch]};this.setPitchBounds=function(a){b.minPitch=Math.max(-90,Math.min(a[0],90));b.maxPitch=Math.max(-90,Math.min(a[1],90));return this};this.getYaw=function(){return(b.yaw+540)%360-180};this.setYaw=function(a, +c,d,e){N=Date.now();if(1E-6>=Math.abs(a-b.yaw))return"function"==typeof d&&d(e),this;c=c==p?1E3:Number(c);a=(a+180)%360-180;c?(180<b.yaw-a?a+=360:180<a-b.yaw&&(a-=360),O.yaw={startTime:Date.now(),startPosition:b.yaw,endPosition:a,duration:c},"function"==typeof d&&setTimeout(function(){d(e)},c)):b.yaw=a;F();return this};this.getYawBounds=function(){return[b.minYaw,b.maxYaw]};this.setYawBounds=function(a){b.minYaw=Math.max(-360,Math.min(a[0],360));b.maxYaw=Math.max(-360,Math.min(a[1],360));return this}; +this.getHfov=function(){return b.hfov};this.setHfov=function(a,c,d,e){N=Date.now();if(1E-6>=Math.abs(a-b.hfov))return"function"==typeof d&&d(e),this;(c=c==p?1E3:Number(c))?(O.hfov={startTime:Date.now(),startPosition:b.hfov,endPosition:u(a),duration:c},"function"==typeof d&&setTimeout(function(){d(e)},c)):x(a);F();return this};this.getHfovBounds=function(){return[b.minHfov,b.maxHfov]};this.setHfovBounds=function(a){b.minHfov=Math.max(0,a[0]);b.maxHfov=Math.max(0,a[1]);return this};this.lookAt=function(a, +c,d,e,g,h){e=e==p?1E3:Number(e);a!==p&&1E-6<Math.abs(a-b.pitch)&&(this.setPitch(a,e,g,h),g=p);c!==p&&1E-6<Math.abs(c-b.yaw)&&(this.setYaw(c,e,g,h),g=p);d!==p&&1E-6<Math.abs(d-b.hfov)&&(this.setHfov(d,e,g,h),g=p);"function"==typeof g&&g(h);return this};this.getNorthOffset=function(){return b.northOffset};this.setNorthOffset=function(a){b.northOffset=Math.min(360,Math.max(0,a));F();return this};this.getHorizonRoll=function(){return b.horizonRoll};this.setHorizonRoll=function(a){b.horizonRoll=Math.min(90, +Math.max(-90,a));C.setPose(b.horizonPitch*Math.PI/180,b.horizonRoll*Math.PI/180);F();return this};this.getHorizonPitch=function(){return b.horizonPitch};this.setHorizonPitch=function(a){b.horizonPitch=Math.min(90,Math.max(-90,a));C.setPose(b.horizonPitch*Math.PI/180,b.horizonRoll*Math.PI/180);F();return this};this.startAutoRotate=function(a,c){a=a||Z||1;c=c===p?Ga:c;b.autoRotate=a;da.lookAt(c,p,ra,3E3);F();return this};this.stopAutoRotate=function(){Z=b.autoRotate?b.autoRotate:Z;b.autoRotate=!1;b.autoRotateInactivityDelay= +-1;return this};this.stopMovement=function(){t();w={yaw:0,pitch:0,hfov:0}};this.getRenderer=function(){return C};this.setUpdate=function(a){Ma=!0===a;C===p?pa():F();return this};this.mouseEventToCoords=function(a){return ta(a)};this.loadScene=function(a,b,c,d){!1!==G&&y(a,b,c,d);return this};this.getScene=function(){return b.scene};this.addScene=function(a,b){k.scenes[a]=b;return this};this.removeScene=function(a){if(b.scene===a||!k.scenes.hasOwnProperty(a))return!1;delete k.scenes[a];return!0};this.toggleFullscreen= +function(){h();return this};this.getConfig=function(){return b};this.getContainer=function(){return s};this.addHotSpot=function(a,c){if(c===p&&b.scene===p)b.hotSpots.push(a);else{var d=c!==p?c:b.scene;if(k.scenes.hasOwnProperty(d))k.scenes[d].hasOwnProperty("hotSpots")||(k.scenes[d].hotSpots=[],d==b.scene&&(b.hotSpots=k.scenes[d].hotSpots)),k.scenes[d].hotSpots.push(a);else throw"Invalid scene ID!";}if(c===p||b.scene==c)La(a),G&&Ca(a);return this};this.removeHotSpot=function(a,c){if(c===p||b.scene== +c){if(!b.hotSpots)return!1;for(var d=0;d<b.hotSpots.length;d++)if(b.hotSpots[d].hasOwnProperty("id")&&b.hotSpots[d].id===a){for(var e=b.hotSpots[d].div;e.parentNode!=M;)e=e.parentNode;M.removeChild(e);delete b.hotSpots[d].div;b.hotSpots.splice(d,1);return!0}}else if(k.scenes.hasOwnProperty(c)){if(!k.scenes[c].hasOwnProperty("hotSpots"))return!1;for(d=0;d<k.scenes[c].hotSpots.length;d++)if(k.scenes[c].hotSpots[d].hasOwnProperty("id")&&k.scenes[c].hotSpots[d].id===a)return k.scenes[c].hotSpots.splice(d, +1),!0}else return!1};this.resize=function(){C&&z()};this.isLoaded=function(){return G};this.isOrientationSupported=function(){return Xa||!1};this.stopOrientation=function(){Da()};this.startOrientation=function(){Xa&&Ra()};this.isOrientationActive=function(){return Boolean(X)};this.on=function(a,b){T[a]=T[a]||[];T[a].push(b);return this};this.off=function(a,b){if(!a)return T={},this;if(b){var c=T[a].indexOf(b);0<=c&&T[a].splice(c,1);0==T[a].length&&delete T[a]}else delete T[a];return this};this.destroy= +function(){Za=!0;clearTimeout(Qa);C&&C.destroy();Sa&&(g.removeEventListener("mousemove",ua,!1),g.removeEventListener("mouseup",ma,!1),s.removeEventListener("mozfullscreenchange",d,!1),s.removeEventListener("webkitfullscreenchange",d,!1),s.removeEventListener("msfullscreenchange",d,!1),s.removeEventListener("fullscreenchange",d,!1),E.removeEventListener("resize",z,!1),E.removeEventListener("orientationchange",z,!1),s.removeEventListener("keydown",V,!1),s.removeEventListener("keyup",R,!1),s.removeEventListener("blur", +$,!1),g.removeEventListener("mouseleave",ma,!1));s.innerHTML="";s.classList.remove("pnlm-container")}}return{viewer:function(g,k){return new Ba(g,k)}}}(window,document); diff --git a/content/legacy/themes/Peafowl/lib/js/scripts.js b/content/legacy/themes/Peafowl/lib/js/scripts.js new file mode 100644 index 0000000..a2eaf2b --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/scripts.js @@ -0,0 +1,84 @@ +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function C(a){j.cssText=a}function D(a,b){return C(n.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a){var e=a[d];if(!F(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),H(e,b,c))}function J(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return I("flexWrap")},s.flexboxlegacy=function(){return I("boxDirection")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!I("indexedDB",a)},s.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(j.backgroundColor,"rgba")},s.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(j.backgroundColor,"rgba")||F(j.backgroundColor,"hsla")},s.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return I("backgroundSize")},s.borderimage=function(){return I("borderImage")},s.borderradius=function(){return I("borderRadius")},s.boxshadow=function(){return I("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return D("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return I("animationName")},s.csscolumns=function(){return I("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),F(j.backgroundImage,"gradient")},s.cssreflections=function(){return I("boxReflect")},s.csstransforms=function(){return!!I("transform")},s.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return I("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var K in s)B(s,K)&&(x=K.toLowerCase(),e[x]=s[K](),v.push((e[x]?"":"no-")+x));return e.input||J(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)B(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},C(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=y,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))}; + +/* +CSS BROWSER DETECTOR 1.0.3 +By Rodolfo Berrios <inbox@rodolfoberrios.com> + +Highly inspired on the work of Rafael Lima http://rafael.adm.br/css_browser_selector/ +Powered by this Quirks's guide http://www.quirksmode.org/js/detect.html +*/ +function is_browser(e,t){return e==BrowserDetect.browser?"undefined"!=typeof t?t==BrowserDetect.version:!0:!1}function get_browser(){return BrowserDetect.browser}function get_browser_version(){return BrowserDetect.version}function get_browser_os(){return BrowserDetect.OS}var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser),this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion),this.shortversion=this.browser+this.version,this.OS=this.searchString(this.dataOS)},searchString:function(e){for(var t=0;t<e.length;t++){var n=e[t].string;if(this.versionSearchString=e[t].subString,-1!=n.indexOf(e[t].subString))return e[t].identity}},searchVersion:function(e){var t=e.indexOf(this.versionSearchString);if(-1!=t)return parseFloat(e.substring(t+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"chrome"},{string:navigator.userAgent,subString:"MSIE",identity:"ie"},{string:navigator.userAgent,subString:"Firefox",identity:"firefox"},{string:navigator.userAgent,subString:"Safari",identity:"safari"},{string:navigator.userAgent,subString:"Opera",identity:"opera"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"windows"},{string:navigator.platform,subString:"Mac",identity:"osx"},{string:navigator.userAgent,subString:"iPhone",identity:"ios"},{string:navigator.userAgent,subString:"iPad",identity:"ios"},{string:navigator.userAgent,subString:"iPod",identity:"ios"},{string:navigator.platform,subString:"Linux",identity:"linux"}]};BrowserDetect.init(),document.documentElement.className+=" "+BrowserDetect.browser+" "+BrowserDetect.shortversion+" "+BrowserDetect.OS;for(var i=0;i<BrowserDetect.dataBrowser.length;i++)eval("function is_"+BrowserDetect.dataBrowser[i].identity+'(version) { return is_browser("'+BrowserDetect.dataBrowser[i].identity+'", version); }');for(var i=0;i<BrowserDetect.dataOS.length;i++)eval("function is_"+BrowserDetect.dataOS[i].identity+'() { return "'+BrowserDetect.dataOS[i].identity+'" == "'+BrowserDetect.OS+'"; }'); + +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window); + +/*! jQuery UI - v1.11.4 - 2015-04-22 +* http://jqueryui.com +* Includes: core.js, widget.js, mouse.js, position.js, draggable.js, droppable.js, resizable.js, selectable.js, sortable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var s=0,n=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,a=n.call(arguments,1),o=0,r=a.length;r>o;o++)for(i in a[o])s=a[o][i],a[o].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(a){var o="string"==typeof a,r=n.call(arguments,1),h=this;return o?this.each(function(){var i,n=e.data(this,s);return"instance"===a?(h=n,!1):n?e.isFunction(n[a])&&"_"!==a.charAt(0)?(i=n[a].apply(n,r),i!==n&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+a+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+a+"'")}):(r.length&&(a=e.widget.extend.apply(null,[a].concat(r))),this.each(function(){var t=e.data(this,s);t?(t.option(a||{}),t._init&&t._init()):e.data(this,s,new i(a,this))})),h}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=s++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var a=!1;e(document).mouseup(function(){a=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!a){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),a=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),a=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,N=e.extend({},y),M=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?N.left-=d:"center"===n.my[0]&&(N.left-=d/2),"bottom"===n.my[1]?N.top-=c:"center"===n.my[1]&&(N.top-=c/2),N.left+=M[0],N.top+=M[1],a||(N.left=h(N.left),N.top=h(N.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](N,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+M[0],p[1]+M[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-N.left,i=t+m-d,s=v.top-N.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:N.left,top:N.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(N,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.draggable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(t){var i=this.options;return this._blurActiveElement(t),this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var i=this.document[0];if(this.handleElement.is(t.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&e(i.activeElement).blur()}catch(s){}},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",t,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,s=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper),n=s?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options,a=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,e(a).width()-this.helperProportions.width-this.margins.left,(e(a).height()||a.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=e(n.containment),s=i[0],s&&(t=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this._isRootNode(this.scrollParent[0]),h=e.pageX,l=e.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,h=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a),"y"===o.axis&&(h=this.originalPageX),"x"===o.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,i,s){return s=s||this._uiHash(),e.ui.plugin.call(this,t,[i,s,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i,s){var n=e.extend({},i,{item:s.element});s.sortables=[],e(s.options.connectToSortable).each(function(){var i=e(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i,s){var n=e.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,e.each(s.sortables,function(){var e=this;e.isOver?(e.isOver=0,s.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,n))})},drag:function(t,i,s){e.each(s.sortables,function(){var n=!1,a=this;a.positionAbs=s.positionAbs,a.helperProportions=s.helperProportions,a.offset.click=s.offset.click,a._intersectsWith(a.containerCache)&&(n=!0,e.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==a&&this._intersectsWith(this.containerCache)&&e.contains(a.element[0],this.element[0])&&(n=!1),n +})),n?(a.isOver||(a.isOver=1,s._parent=i.helper.parent(),a.currentItem=i.helper.appendTo(a.element).data("ui-sortable-item",!0),a.options._helper=a.options.helper,a.options.helper=function(){return i.helper[0]},t.target=a.currentItem[0],a._mouseCapture(t,!0),a._mouseStart(t,!0,!0),a.offset.click.top=s.offset.click.top,a.offset.click.left=s.offset.click.left,a.offset.parent.left-=s.offset.parent.left-a.offset.parent.left,a.offset.parent.top-=s.offset.parent.top-a.offset.parent.top,s._trigger("toSortable",t),s.dropped=a.element,e.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,a.fromOutside=s),a.currentItem&&(a._mouseDrag(t),i.position=a.position)):a.isOver&&(a.isOver=0,a.cancelHelperRemoval=!0,a.options._revert=a.options.revert,a.options.revert=!1,a._trigger("out",t,a._uiHash(a)),a._mouseStop(t,!0),a.options.revert=a.options._revert,a.options.helper=a.options._helper,a.placeholder&&a.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(t),i.position=s._generatePosition(t,!0),s._trigger("fromSortable",t),s.dropped=!1,e.each(s.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,i,s){var n=e("body"),a=s.options;n.css("cursor")&&(a._cursor=n.css("cursor")),n.css("cursor",a.cursor)},stop:function(t,i,s){var n=s.options;n._cursor&&e("body").css("cursor",n._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("opacity")&&(a._opacity=n.css("opacity")),n.css("opacity",a.opacity)},stop:function(t,i,s){var n=s.options;n._opacity&&e(i.helper).css("opacity",n._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,i,s){var n=s.options,a=!1,o=s.scrollParentNotHidden[0],r=s.document[0];o!==r&&"HTML"!==o.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+o.offsetHeight-t.pageY<n.scrollSensitivity?o.scrollTop=a=o.scrollTop+n.scrollSpeed:t.pageY-s.overflowOffset.top<n.scrollSensitivity&&(o.scrollTop=a=o.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+o.offsetWidth-t.pageX<n.scrollSensitivity?o.scrollLeft=a=o.scrollLeft+n.scrollSpeed:t.pageX-s.overflowOffset.left<n.scrollSensitivity&&(o.scrollLeft=a=o.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(t.pageY-e(r).scrollTop()<n.scrollSensitivity?a=e(r).scrollTop(e(r).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(r).scrollTop())<n.scrollSensitivity&&(a=e(r).scrollTop(e(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(t.pageX-e(r).scrollLeft()<n.scrollSensitivity?a=e(r).scrollLeft(e(r).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(r).scrollLeft())<n.scrollSensitivity&&(a=e(r).scrollLeft(e(r).scrollLeft()+n.scrollSpeed)))),a!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(s,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,i,s){var n=s.options;s.snapElements=[],e(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var t=e(this),i=t.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:i.top,left:i.left})})},drag:function(t,i,s){var n,a,o,r,h,l,u,d,c,p,f=s.options,m=f.snapTolerance,g=i.offset.left,v=g+s.helperProportions.width,y=i.offset.top,b=y+s.helperProportions.height;for(c=s.snapElements.length-1;c>=0;c--)h=s.snapElements[c].left-s.margins.left,l=h+s.snapElements[c].width,u=s.snapElements[c].top-s.margins.top,d=u+s.snapElements[c].height,h-m>v||g>l+m||u-m>b||y>d+m||!e.contains(s.snapElements[c].item.ownerDocument,s.snapElements[c].item)?(s.snapElements[c].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=!1):("inner"!==f.snapMode&&(n=m>=Math.abs(u-b),a=m>=Math.abs(d-y),o=m>=Math.abs(h-v),r=m>=Math.abs(l-g),n&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||a||o||r,"outer"!==f.snapMode&&(n=m>=Math.abs(u-y),a=m>=Math.abs(d-b),o=m>=Math.abs(h-g),r=m>=Math.abs(l-v),n&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.top=s._convertPositionTo("relative",{top:d-s.helperProportions.height,left:0}).top),o&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[c].snapping&&(n||a||o||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,t,e.extend(s._uiHash(),{snapItem:s.snapElements[c].item})),s.snapElements[c].snapping=n||a||o||r||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,i,s){var n,a=s.options,o=e.makeArray(e(a.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});o.length&&(n=parseInt(e(o[0]).css("zIndex"),10)||0,e(o).each(function(t){e(this).css("zIndex",n+t)}),this.css("zIndex",n+o.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i,s){var n=e(i.helper),a=s.options;n.css("zIndex")&&(a._zIndex=n.css("zIndex")),n.css("zIndex",a.zIndex)},stop:function(t,i,s){var n=s.options;n._zIndex&&e(i.helper).css("zIndex",n._zIndex)}}),e.ui.draggable,e.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(s)?s:function(e){return e.is(s)},this.proportions=function(){return arguments.length?(t=arguments[0],void 0):t?t:t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;e.length>t;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){if("accept"===t)this.accept=e.isFunction(i)?i:function(e){return e.is(i)};else if("scope"===t){var s=e.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(t,i)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var s=i||e.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=e(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&e.ui.intersect(s,e.extend(i,{offset:i.element.offset()}),i.options.tolerance,t)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(s)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(){function e(e,t,i){return e>=t&&t+i>e}return function(t,i,s,n){if(!i.offset)return!1;var a=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,r=a+t.helperProportions.width,h=o+t.helperProportions.height,l=i.offset.left,u=i.offset.top,d=l+i.proportions().width,c=u+i.proportions().height;switch(s){case"fit":return a>=l&&d>=r&&o>=u&&c>=h;case"intersect":return a+t.helperProportions.width/2>l&&d>r-t.helperProportions.width/2&&o+t.helperProportions.height/2>u&&c>h-t.helperProportions.height/2;case"pointer":return e(n.pageY,u,i.proportions().height)&&e(n.pageX,l,i.proportions().width);case"touch":return(o>=u&&c>=o||h>=u&&c>=h||u>o&&h>c)&&(a>=l&&d>=a||r>=l&&d>=r||l>a&&r>d);default:return!1}}}(),e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var s,n,a=e.ui.ddmanager.droppables[t.options.scope]||[],o=i?i.type:null,r=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||t&&!a[s].accept.call(a[s].element[0],t.currentItem||t.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue e}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(t,i){var s=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=e.ui.intersect(t,this,this.options.tolerance,i),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===n}),a.length&&(s=e(a[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}},e.ui.droppable,e.widget("ui.resizable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseInt(e,10)||0},_isNumber:function(e){return!isNaN(parseInt(e,10))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return t[s]>0?!0:(t[s]=1,n=t[s]>0,t[s]=0,n)},_create:function(){var t,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),a="ui-resizable-"+s,n=e("<div class='ui-resizable-handle "+a+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(t){var i,s,n,a;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=e(this.handles[i]),this._on(this.handles[i],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=e(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(n,a),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(e(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,n=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var i,s,n,a=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),a.containment&&(i+=e(a.containment).scrollLeft()||0,s+=e(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,s,n=this.originalMousePosition,a=this.axis,o=t.pageX-n.left||0,r=t.pageY-n.top||0,h=this._change[a];return this._updatePrevProperties(),h?(i=h.apply(this,[t,o,r]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:u.sizeDiff.height,a=s?0:u.sizeDiff.width,o={width:u.helper.width()-a,height:u.helper.height()-n},r=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(o,{top:h,left:r})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,s,n,a,o=this.options;a={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=a.minHeight*this.aspectRatio,s=a.minWidth/this.aspectRatio,i=a.maxHeight*this.aspectRatio,n=a.maxWidth/this.aspectRatio,t>a.minWidth&&(a.minWidth=t),s>a.minHeight&&(a.minHeight=s),a.maxWidth>i&&(a.maxWidth=i),a.maxHeight>n&&(a.maxHeight=n)),this._vBoundaries=a},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,i=this.size,s=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===s&&(e.left=t.left+(i.width-e.width),e.top=null),"nw"===s&&(e.top=t.top+(i.height-e.height),e.left=t.left+(i.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,i=this.axis,s=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,a=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,o=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),u=/nw|ne|n/.test(i);return a&&(e.width=t.minWidth),o&&(e.height=t.minHeight),s&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),a&&l&&(e.left=r-t.minWidth),s&&l&&(e.left=r-t.maxWidth),o&&u&&(e.top=h-t.minHeight),n&&u&&(e.top=h-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],s=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],n=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];4>t;t++)i[t]=parseInt(s[t],10)||0,i[t]+=parseInt(n[t],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;this._proportionallyResizeElements.length>t;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&e(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,s,n,a,o,r,h=e(this).resizable("instance"),l=h.options,u=h.element,d=l.containment,c=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;c&&(h.containerElement=e(c),/document/.test(d)||d===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(c),i=[],e(["Top","Right","Left","Bottom"]).each(function(e,s){i[e]=h._num(t.css("padding"+s))}),h.containerOffset=t.offset(),h.containerPosition=t.position(),h.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,a=h.containerSize.width,o=h._hasScroll(c,"left")?c.scrollWidth:a,r=h._hasScroll(c)?c.scrollHeight:n,h.parentData={element:c,left:s.left,top:s.top,width:o,height:r}))},resize:function(t){var i,s,n,a,o=e(this).resizable("instance"),r=o.options,h=o.containerOffset,l=o.position,u=o._aspectRatio||t.shiftKey,d={top:0,left:0},c=o.containerElement,p=!0;c[0]!==document&&/static/.test(c.css("position"))&&(d=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-d.left),u&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),u&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?h.top:0),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),i=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-d.left:o.offset.left-h.left)),s=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-d.top:o.offset.top-h.top)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,u&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,u&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,s=t.containerOffset,n=t.containerPosition,a=t.containerElement,o=e(t.helper),r=o.offset(),h=o.outerWidth()-t.sizeDiff.width,l=o.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance"),i=t.options;e(i.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,i){var s=e(this).resizable("instance"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0};e(n.alsoResize).each(function(){var t=e(this),s=e(this).data("ui-resizable-alsoresize"),n={},a=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(a,function(e,t){var i=(s[t]||0)+(r[t]||0);i&&i>=0&&(n[t]=i||null)}),t.css(n)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),s=i.options,n=i.size,a=i.originalSize,o=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,u=h[1]||1,d=Math.round((n.width-a.width)/l)*l,c=Math.round((n.height-a.height)/u)*u,p=a.width+d,f=a.height+c,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,v=s.minWidth&&s.minWidth>p,y=s.minHeight&&s.minHeight>f;s.grid=h,v&&(p+=l),y&&(f+=u),m&&(p-=l),g&&(f-=u),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=o.top-c):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=o.left-d):((0>=f-u||0>=p-l)&&(t=i._getPaddingPlusBorderDimensions(this)),f-u>0?(i.size.height=f,i.position.top=o.top-c):(f=u-t.height,i.size.height=f,i.position.top=o.top+a.height-f),p-l>0?(i.size.width=p,i.position.left=o.left-d):(p=l-t.width,i.size.width=p,i.position.left=o.left+a.width-p))}}),e.ui.resizable,e.widget("ui.selectable",e.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,n=e.data(this,"selectable-item");return n?(s=!t.metaKey&&!t.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",t,{selecting:n.element}):i._trigger("unselecting",t,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=t.pageX,h=t.pageY;return a>r&&(i=r,r=a,a=i),o>h&&(i=h,h=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:h-o}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1; +i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||a>i.right||i.top>h||o>i.bottom):"fit"===n.tolerance&&(l=i.left>a&&r>i.right&&i.top>o&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-this.document.scrollTop()<o.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<o.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),t.pageX-this.document.scrollLeft()<o.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s],this.document[0]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i],this.document[0]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===s?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("<tr>",t.document[0]).appendTo(n)):"tr"===s?t._createTrPlaceholder(t.currentItem,n):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,i){var s=this;t.children().each(function(){e("<td>&#160;</td>",s.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(a=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}});var o="ui-effects-",r=e;e.effects={effect:{}},function(e,t){function i(e,t,i){var s=d[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,a){var o,r=a.re.exec(i),h=r&&a.parse(r),l=a.space||"rgba";return h?(o=s[l](h),s[u[l].cache]=o[u[l].cache],n=s._rgba=o._rgba,!1):t}),n.length?("0,0,0,0"===n.join()&&e.extend(n,a.transparent),s):a[i]}function n(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,n){return new e.Color.fn.parse(t,i,s,n)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},d={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},c=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",c.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(n,o,r,h){if(n===t)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=e(n).css(o),o=t);var d=this,c=e.type(n),p=this._rgba=[];return o!==t&&(n=[n,o,r,h],c="array"),"string"===c?this.parse(s(n)||a._default):"array"===c?(f(u.rgba.props,function(e,t){p[t.idx]=i(n[t.idx],t)}),this):"object"===c?(n instanceof l?f(u,function(e,t){n[t.cache]&&(d[t.cache]=n[t.cache].slice())}):f(u,function(t,s){var a=s.cache;f(s.props,function(e,t){if(!d[a]&&s.to){if("alpha"===e||null==n[e])return;d[a]=s.to(d._rgba)}d[a][t.idx]=i(n[e],t,!0)}),d[a]&&0>e.inArray(null,d[a].slice(0,3))&&(d[a][3]=1,s.from&&(d._rgba=s.from(d[a])))}),this):t},is:function(e){var i=l(e),s=!0,n=this;return f(u,function(e,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(e,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),n=s._space(),a=u[n],o=0===this.alpha()?l("transparent"):this,r=o[a.cache]||a.to(o._rgba),h=r.slice();return s=s[a.cache],f(a.props,function(e,n){var a=n.idx,o=r[a],l=s[a],u=d[n.type]||{};null!==l&&(null===o?h[a]=l:(u.mod&&(l-o>u.mod/2?o+=u.mod:o-l>u.mod/2&&(o-=u.mod)),h[a]=i((l-o)*t+o,n)))}),this[n](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*n[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,n=e[1]/255,a=e[2]/255,o=e[3],r=Math.max(s,n,a),h=Math.min(s,n,a),l=r-h,u=r+h,d=.5*u;return t=h===r?0:s===r?60*(n-a)/l+360:n===r?60*(a-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=d?l/u:l/(2-u),[Math.round(t)%360,i,d,null==o?1:o]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],a=e[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,t+1/3)),Math.round(255*n(r,o,t)),Math.round(255*n(r,o,t-1/3)),a]},f(u,function(s,n){var a=n.props,o=n.cache,h=n.to,u=n.from;l.fn[s]=function(s){if(h&&!this[o]&&(this[o]=h(this._rgba)),s===t)return this[o].slice();var n,r=e.type(s),d="array"===r||"object"===r?s:arguments,c=this[o].slice();return f(a,function(e,t){var s=d["object"===r?e:t.idx];null==s&&(s=c[t.idx]),c[t.idx]=i(s,t)}),u?(n=l(u(c)),n[o]=c,n):l(c)},f(a,function(t,i){l.fn[t]||(l.fn[t]=function(n){var a,o=e.type(n),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===o?u:("function"===o&&(n=n.call(this,u),o=e.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=u+parseFloat(a[2])*("+"===a[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,n){var a,o,r="";if("transparent"!==n&&("string"!==e.type(n)||(a=s(n)))){if(n=l(a||n),!c.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?t.parentNode:t;(""===r||"transparent"===r)&&o&&o.style;)try{r=e.css(o,"backgroundColor"),o=o.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{t.style[i]=n}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos)) +}})},l.hook(o),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},a=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(r),function(){function t(t){var i,s,n=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[e.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function i(t,i){var s,a,o={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(o[s]=a));return o}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(r.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(n,a,o,r){var h=e.speed(a,o,r);return this.queue(function(){var a,o=e(this),r=o.attr("class")||"",l=h.children?o.find("*").addBack():o;l=l.map(function(){var i=e(this);return{el:i,start:t(this)}}),a=function(){e.each(s,function(e,t){n[t]&&o[t+"Class"](n[t])})},a(),l=l.map(function(){return this.end=t(this.el[0]),this.diff=i(this.start,this.end),this}),o.attr("class",r),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){a(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(o[0])})})},e.fn.extend({addClass:function(t){return function(i,s,n,a){return s?e.effects.animateClass.call(this,{add:i},s,n,a):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,n,a){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,n,a):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(i,s,n,a,o){return"boolean"==typeof s||void 0===s?n?e.effects.animateClass.call(this,s?{add:i}:{remove:i},n,a,o):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:i},s,n,a)}}(e.fn.toggleClass),switchClass:function(t,i,s,n,a){return e.effects.animateClass.call(this,{add:i,remove:t},s,n,a)}})}(),function(){function t(t,i,s,n){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(n=s,s=i,i={}),e.isFunction(s)&&(n=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=n||i.complete,t}function i(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.11.4",save:function(e,t){for(var i=0;t.length>i;i++)null!==t[i]&&e.data(o+t[i],e[0].style[t[i]])},restore:function(e,t){var i,s;for(s=0;t.length>s;s++)null!==t[s]&&(i=e.data(o+t[s]),void 0===i&&(i=""),e.css(t[s],i))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:t.width(),height:t.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return t.wrap(s),(t[0]===a||e.contains(t[0],a))&&e(a).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(n),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,n){return n=n||{},e.each(i,function(e,i){var a=t.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),e.fn.extend({effect:function(){function i(t){function i(){e.isFunction(a)&&a.call(n[0]),e.isFunction(t)&&t()}var n=e(this),a=s.complete,r=s.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),i()):o.call(n[0],s,i)}var s=t.apply(this,arguments),n=s.mode,a=s.queue,o=e.effects.effect[s.effect];return e.fx.off||!o?n?this[n](s.duration,s.complete):this.each(function(){s.complete&&s.complete.call(this)}):a===!1?this.each(i):this.queue(a||"fx",i)},show:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(e.fn.show),hide:function(e){return function(s){if(i(s))return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(e.fn.hide),toggle:function(e){return function(s){if(i(s)||"boolean"==typeof s)return e.apply(this,arguments);var n=t.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}(),e.effects,e.effects.effect.blind=function(t,i){var s,n,a,o=e(this),r=/up|down|vertical/,h=/up|left|vertical|horizontal/,l=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(o,t.mode||"hide"),d=t.direction||"up",c=r.test(d),p=c?"height":"width",f=c?"top":"left",m=h.test(d),g={},v="show"===u;o.parent().is(".ui-effects-wrapper")?e.effects.save(o.parent(),l):e.effects.save(o,l),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n=s[p](),a=parseFloat(s.css(f))||0,g[p]=v?n:0,m||(o.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?a:n+a),v&&(s.css(p,0),m||s.css(f,a+n)),s.animate(g,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===u&&o.hide(),e.effects.restore(o,l),e.effects.removeWrapper(o),i()}})},e.effects.effect.bounce=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"effect"),l="hide"===h,u="show"===h,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||l?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=o.queue(),_=b.length;for((u||l)&&r.push("opacity"),e.effects.save(o,r),o.show(),e.effects.createWrapper(o),c||(c=o["top"===v?"outerHeight":"outerWidth"]()/3),u&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,y?2*-c:2*c).animate(a,m,g)),l&&(c/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g).animate(a,m,g),c=l?2*c:c/2;l&&(n={opacity:0},n[v]=(y?"-=":"+=")+c,o.animate(n,m,g)),o.queue(function(){l&&o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),o.dequeue()},e.effects.effect.clip=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","height","width"],h=e.effects.setMode(o,t.mode||"hide"),l="show"===h,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(o,r),o.show(),s=e.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[c](),l&&(n.css(c,0),n.css(p,a/2)),f[c]=l?a:0,f[p]=l?0:a/2,n.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){l||o.hide(),e.effects.restore(o,r),e.effects.removeWrapper(o),i()}})},e.effects.effect.drop=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","opacity","height","width"],o=e.effects.setMode(n,t.mode||"hide"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h?"pos":"neg",d={opacity:r?1:0};e.effects.save(n,a),n.show(),e.effects.createWrapper(n),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===u?-s:s),d[l]=(r?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&n()}function n(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var a,o,r,h,l,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(a=0;d>a;a++)for(h=g.top+a*y,u=a-(d-1)/2,o=0;c>o;o++)r=g.left+o*v,l=o-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:r+(m?l*v:0),top:h+(m?u*y:0),opacity:m?0:1}).animate({left:r+(m?0:l*v),top:h+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)},e.effects.effect.fade=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:t.duration,easing:t.easing,complete:i})},e.effects.effect.fold=function(t,i){var s,n,a=e(this),o=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"hide"),h="show"===r,l="hide"===r,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=h!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(a,o),a.show(),s=e.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*n[l?0:1]),h&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=h?n[0]:u,v[f[1]]=h?n[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){l&&a.hide(),e.effects.restore(a,o),e.effects.removeWrapper(a),i()})},e.effects.effect.highlight=function(t,i){var s=e(this),n=["backgroundImage","backgroundColor","opacity"],a=e.effects.setMode(s,t.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),e.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===a&&s.hide(),e.effects.restore(s,n),i()}})},e.effects.effect.size=function(t,i){var s,n,a,o=e(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=o.css("position"),y=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===t.mode&&"show"===p?(o.from=t.to||b,o.to=t.from||s):(o.from=t.from||("show"===p?b:s),o.to=t.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===m||"both"===m)&&(a.from.y!==a.to.y&&(y=y.concat(d),o.from=e.effects.setTransition(o,d,a.from.y,o.from),o.to=e.effects.setTransition(o,d,a.to.y,o.to)),a.from.x!==a.to.x&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,a.from.x,o.from),o.to=e.effects.setTransition(o,c,a.to.x,o.to))),("content"===m||"both"===m)&&a.from.y!==a.to.y&&(y=y.concat(u).concat(l),o.from=e.effects.setTransition(o,u,a.from.y,o.from),o.to=e.effects.setTransition(o,u,a.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(n=e.effects.getBaseline(g,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=r.concat(d).concat(c),o.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),e.effects.restore(o,y),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,i){var s=parseInt(i,10),n=e?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),e.effects.removeWrapper(o),i()}})},e.effects.effect.scale=function(t,i){var s=e(this),n=e.extend(!0,{},t),a=e.effects.setMode(s,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===a?0:100),r=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=h||["middle","center"],n.restore=!0),n.from=t.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},e.effects.effect.puff=function(t,i){var s=e(this),n=e.effects.setMode(s,t.mode||"hide"),a="hide"===n,o=parseInt(t.percent,10)||150,r=o/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(t)},e.effects.effect.pulsate=function(t,i){var s,n=e(this),a=e.effects.setMode(n,t.mode||"show"),o="show"===a,r="hide"===a,h=o||"hide"===a,l=2*(t.times||5)+(h?1:0),u=t.duration/l,d=0,c=n.queue(),p=c.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),d=1),s=1;l>s;s++)n.animate({opacity:d},u,t.easing),d=1-d;n.animate({opacity:d},u,t.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,l+1))),n.dequeue()},e.effects.effect.shake=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"effect"),r=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},m={},g={},v=n.queue(),y=v.length;for(e.effects.save(n,a),n.show(),e.effects.createWrapper(n),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,n.animate(f,d,t.easing),s=1;l>s;s++)n.animate(m,d,t.easing).animate(g,d,t.easing);n.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),n.dequeue()},e.effects.effect.slide=function(t,i){var s,n=e(this),a=["position","top","bottom","left","right","width","height"],o=e.effects.setMode(n,t.mode||"show"),r="show"===o,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(n,a),n.show(),s=t.distance||n["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(r?u?"+=":"-=":u?"-=":"+=")+s,n.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&n.hide(),e.effects.restore(n,a),e.effects.removeWrapper(n),i()}})},e.effects.effect.transfer=function(t,i){var s=e(this),n=e(t.to),a="fixed"===n.css("position"),o=e("body"),r=a?o.scrollTop():0,h=a?o.scrollLeft():0,l=n.offset(),u={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-r,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})}}); +/* Jquery ui end */ + +// Format currency +(function($){$.formatCurrency={};$.formatCurrency.regions=[];$.formatCurrency.regions[""]={symbol:"$",positiveFormat:"%s%n",negativeFormat:"(%s%n)",decimalSymbol:".",digitGroupSymbol:",",groupDigits:true}; +$.fn.formatCurrency=function(destination,settings){if(arguments.length==1&&typeof destination!=="string"){settings=destination;destination=false +}var defaults={name:"formatCurrency",colorize:false,region:"",global:true,roundToDecimalPlace:2,eventOnDecimalsEntered:false};defaults=$.extend(defaults,$.formatCurrency.regions[""]); +settings=$.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); +return this.each(function(){$this=$(this);var num="0";num=$this[$this.is("input, select, textarea")?"val":"html"]();if(num.search("\\(")>=0){num="-"+num +}if(num===""||(num==="-"&&settings.roundToDecimalPlace===-1)){return}if(isNaN(num)){num=num.replace(settings.regex,"");if(num===""||(num==="-"&&settings.roundToDecimalPlace===-1)){return +}if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".")}if(isNaN(num)){num="0"}}var numParts=String(num).split(".");var isPositive=(num==Math.abs(num)); +var hasDecimals=(numParts.length>1);var decimals=(hasDecimals?numParts[1].toString():"0");var originalDecimals=decimals;num=Math.abs(numParts[0]); +num=isNaN(num)?0:num;if(settings.roundToDecimalPlace>=0){decimals=parseFloat("1."+decimals);decimals=decimals.toFixed(settings.roundToDecimalPlace); +if(decimals.substring(0,1)=="2"){num=Number(num)+1}decimals=decimals.substring(2)}num=String(num);if(settings.groupDigits){for(var i=0;i<Math.floor((num.length-(1+i))/3); +i++){num=num.substring(0,num.length-(4*i+3))+settings.digitGroupSymbol+num.substring(num.length-(4*i+3))}}if((hasDecimals&&settings.roundToDecimalPlace==-1)||settings.roundToDecimalPlace>0){num+=settings.decimalSymbol+decimals +}var format=isPositive?settings.positiveFormat:settings.negativeFormat;var money=format.replace(/%s/g,settings.symbol);money=money.replace(/%n/g,num); +var $destination=$([]);if(!destination){$destination=$this}else{$destination=$(destination)}$destination[$destination.is("input, select, textarea")?"val":"html"](money); +if(hasDecimals&&settings.eventOnDecimalsEntered&&originalDecimals.length>settings.roundToDecimalPlace){$destination.trigger("decimalsEntered",originalDecimals) +}if(settings.colorize){$destination.css("color",isPositive?"black":"red")}})};$.fn.toNumber=function(settings){var defaults=$.extend({name:"toNumber",region:"",global:true},$.formatCurrency.regions[""]); +settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); +return this.each(function(){var method=$(this).is("input, select, textarea")?"val":"html";$(this)[method]($(this)[method]().replace("(","(-").replace(settings.regex,"")) +})};$.fn.asNumber=function(settings){var defaults=$.extend({name:"asNumber",region:"",parse:true,parseType:"Float",global:true},$.formatCurrency.regions[""]); +settings=jQuery.extend(defaults,settings);if(settings.region.length>0){settings=$.extend(settings,getRegionOrCulture(settings.region))}settings.regex=generateRegex(settings); +settings.parseType=validateParseType(settings.parseType);var method=$(this).is("input, select, textarea")?"val":"html";var num=$(this)[method](); +num=num?num:"";num=num.replace("(","(-");num=num.replace(settings.regex,"");if(!settings.parse){return num}if(num.length==0){num="0"}if(settings.decimalSymbol!="."){num=num.replace(settings.decimalSymbol,".") +}return window["parse"+settings.parseType](num)};function getRegionOrCulture(region){var regionInfo=$.formatCurrency.regions[region];if(regionInfo){return regionInfo +}else{if(/(\w+)-(\w+)/g.test(region)){var culture=region.replace(/(\w+)-(\w+)/g,"$1");return $.formatCurrency.regions[culture]}}return null}function validateParseType(parseType){switch(parseType.toLowerCase()){case"int":return"Int"; +case"float":return"Float";default:throw"invalid parseType"}}function generateRegex(settings){if(settings.symbol===""){return new RegExp("[^\\d"+settings.decimalSymbol+"-]","g") +}else{var symbol=settings.symbol.replace("$","\\$").replace(".","\\.");return new RegExp(symbol+"|[^\\d"+settings.decimalSymbol+"-]","g")}}})(jQuery); + +/*! + * JavaScript Cookie v2.0.0-pre + * https://github.com/js-cookie/js-cookie + * + * Copyright 2006, 2015 Klaus Hartl + * Released under the MIT license + */ +!function(e){if("function"==typeof define&&define.amd)define(e);else if("object"==typeof exports)module.exports=e();else{var n=window.Cookies,o=window.Cookies=e(window.jQuery);o.noConflict=function(){return window.Cookies=n,o}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var o=arguments[e];for(var t in o)n[t]=o[t]}return n}function n(o){function t(n,r,i){var c;if(arguments.length>1){if(i=e({path:"/"},t.defaults,i),"number"==typeof i.expires){var s=new Date;s.setMilliseconds(s.getMilliseconds()+864e5*i.expires),i.expires=s}try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(a){}return r=encodeURIComponent(String(r)),r=r.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)),n=n.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),n=n.replace(/[\(\)]/g,escape),document.cookie=[n,"=",r,i.expires&&"; expires="+i.expires.toUTCString(),i.path&&"; path="+i.path,i.domain&&"; domain="+i.domain,i.secure&&"; secure"].join("")}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],u=/(%[0-9A-Z]{2})+/g,d=0;d<p.length;d++){var f=p[d].split("="),l=f[0].replace(u,decodeURIComponent),m=f.slice(1).join("=");if('"'===m.charAt(0)&&(m=m.slice(1,-1)),m=o&&o(m,l)||m.replace(u,decodeURIComponent),this.json)try{m=JSON.parse(m)}catch(a){}if(n===l){c=m;break}n||(c[l]=m)}return c}return t.get=t.set=t,t.getJSON=function(){return t.apply({json:!0},[].slice.call(arguments))},t.defaults={},t.remove=function(n,o){t(n,"",e(o,{expires:-1}))},t.withConverter=n,t}return n()}); + +/** + * JQuery Idle. + * A dead simple jQuery plugin that executes a callback function if the user is idle. + * About: Author + * Henrique Boaventura (hboaventura@gmail.com). + * About: Version + * 1.2.7 + **/ +!function(n){"use strict";n.fn.idle=function(e){var t,i,o={idle:6e4,events:"mousemove keydown mousedown touchstart",onIdle:function(){},onActive:function(){},onHide:function(){},onShow:function(){},keepTracking:!0,startAtIdle:!1,recurIdleCall:!1},c=e.startAtIdle||!1,d=!e.startAtIdle||!0,l=n.extend({},o,e),u=null;return n(this).on("idle:stop",{},function(){n(this).off(l.events),l.keepTracking=!1,t(u,l)}),t=function(n,e){return c&&(c=!1,e.onActive.call()),clearTimeout(n),e.keepTracking?i(e):void 0},i=function(n){var e,t=n.recurIdleCall?setInterval:setTimeout;return e=t(function(){c=!0,n.onIdle.call()},n.idle)},this.each(function(){u=i(l),n(this).on(l.events,function(){u=t(u,l)}),(l.onShow||l.onHide)&&n(document).on("visibilitychange webkitvisibilitychange mozvisibilitychange msvisibilitychange",function(){document.hidden||document.webkitHidden||document.mozHidden||document.msHidden?d&&(d=!1,l.onHide.call()):d||(d=!0,l.onShow.call())})})}}(jQuery); + +/*! Hammer.JS - v2.0.8 - 2016-04-23 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ +!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e="DEPRECATED METHOD: "+c+"\n"+d+" AT \n";return function(){var c=new Error("get-stack-trace"),d=c&&c.stack?c.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ga|Ha)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),"identifier",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&Ea?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ga|Ha)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(db>=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(d){b[d]=c?a.CSS.supports("touch-action",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?"cancel":a&qb?"end":a&pb?"move":a&ob?"start":""}function $(a){return a==Ma?"down":a==La?"up":a==Ja?"left":a==Ka?"right":""}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||""}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=["","webkit","Moz","MS","ms","o"],na=b.createElement("div"),oa="function",pa=Math.round,qa=Math.abs,ra=Date.now;la="function"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var sa=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},"extend","Use `assign`."),ta=h(function(a,b){return sa(a,b,!0)},"merge","Use `assign`."),ua=1,va=/mobile|tablet|ip(ad|hone|od)|android/i,wa="ontouchstart"in a,xa=u(a,"PointerEvent")!==d,ya=wa&&va.test(navigator.userAgent),za="touch",Aa="pen",Ba="mouse",Ca="kinect",Da=25,Ea=1,Fa=2,Ga=4,Ha=8,Ia=1,Ja=2,Ka=4,La=8,Ma=16,Na=Ja|Ka,Oa=La|Ma,Pa=Na|Oa,Qa=["x","y"],Ra=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Sa={mousedown:Ea,mousemove:Fa,mouseup:Ga},Ta="mousedown",Ua="mousemove mouseup";i(L,x,{handler:function(a){var b=Sa[a.type];b&Ea&&0===a.button&&(this.pressed=!0),b&Fa&&1!==a.which&&(b=Ga),this.pressed&&(b&Ga&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:Ba,srcEvent:a}))}});var Va={pointerdown:Ea,pointermove:Fa,pointerup:Ga,pointercancel:Ha,pointerout:Ha},Wa={2:za,3:Aa,4:Ba,5:Ca},Xa="pointerdown",Ya="pointermove pointerup pointercancel";a.MSPointerEvent&&!a.PointerEvent&&(Xa="MSPointerDown",Ya="MSPointerMove MSPointerUp MSPointerCancel"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Va[d],f=Wa[a.pointerType]||a.pointerType,g=f==za,h=r(b,a.pointerId,"pointerId");e&Ea&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a="touchstart",_a="touchstart touchmove touchend touchcancel";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb="touchstart touchmove touchend touchcancel";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,"touchAction"),fb=eb!==d,gb="compute",hb="auto",ib="manipulation",jb="none",kb="pan-x",lb="pan-y",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(" "))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(tb|nb)))return!1;a++}return!0},recognize:function(a){var b=la({},a);return k(this.options.enable,[this,b])?(this.state&(rb|sb|tb)&&(this.state=nb),this.state=this.process(b),void(this.state&(ob|pb|qb|sb)&&this.tryEmit(b))):(this.reset(),void(this.state=tb))},process:function(a){},getTouchAction:function(){},reset:function(){}},i(aa,Y,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ob|pb),e=this.attrTest(a);return d&&(c&Ha||!e)?b|sb:d||e?c&Ga?b|qb:b&ob?b|pb:ob:tb}}),i(ba,aa,{defaults:{event:"pan",threshold:10,pointers:1,direction:Pa},getTouchAction:function(){var a=this.options.direction,b=[];return a&Na&&b.push(lb),a&Oa&&b.push(kb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Na?(e=0===f?Ia:0>f?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?"in":"out";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&Ea&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ga)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=rb,this.tryEmit()},b.interval,this),ob):rb}return tb},failTimeout:function(){return this._timer=e(function(){this.state=tb},this.options.interval,this),tb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==rb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ha.VERSION="2.0.8",ha.defaults={domEvents:!1,touchAction:gb,enable:!0,inputTarget:null,inputClass:null,preset:[[ea,{enable:!1}],[ca,{enable:!1},["rotate"]],[fa,{direction:Na}],[ba,{direction:Na},["swipe"]],[ga],[ga,{event:"doubletap",taps:2},["tap"]],[da]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ub=1,vb=2;ia.prototype={set:function(a){return la(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?vb:ub},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&rb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===vb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ob|pb|qb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Y)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ka(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ja(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},la(ha,{INPUT_START:Ea,INPUT_MOVE:Fa,INPUT_END:Ga,INPUT_CANCEL:Ha,STATE_POSSIBLE:nb,STATE_BEGAN:ob,STATE_CHANGED:pb,STATE_ENDED:qb,STATE_RECOGNIZED:rb,STATE_CANCELLED:sb,STATE_FAILED:tb,DIRECTION_NONE:Ia,DIRECTION_LEFT:Ja,DIRECTION_RIGHT:Ka,DIRECTION_UP:La,DIRECTION_DOWN:Ma,DIRECTION_HORIZONTAL:Na,DIRECTION_VERTICAL:Oa,DIRECTION_ALL:Pa,Manager:ia,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:Y,AttrRecognizer:aa,Tap:ga,Pan:ba,Swipe:fa,Pinch:ca,Rotate:ea,Press:da,on:m,off:n,each:g,merge:ta,extend:sa,assign:la,inherit:i,bindFn:j,prefixed:u});var wb="undefined"!=typeof a?a:"undefined"!=typeof self?self:{};wb.Hammer=ha,"function"==typeof define&&define.amd?define(function(){return ha}):"undefined"!=typeof module&&module.exports?module.exports=ha:a[c]=ha}(window,document,"Hammer"); diff --git a/content/legacy/themes/Peafowl/lib/js/scripts.min.js b/content/legacy/themes/Peafowl/lib/js/scripts.min.js new file mode 100644 index 0000000..e54f21a --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/js/scripts.min.js @@ -0,0 +1,8 @@ +function is_browser(t,e){return t==BrowserDetect.browser&&(void 0===e||e==BrowserDetect.version)}function get_browser(){return BrowserDetect.browser}function get_browser_version(){return BrowserDetect.version}function get_browser_os(){return BrowserDetect.OS}window.Modernizr=function(t,e,i){function n(t){b.cssText=t}function s(t,e){return n(C.join(t+";")+(e||""))}function o(t,e){return typeof t===e}function r(t,e){return!!~(""+t).indexOf(e)}function a(t,e){for(var n in t){var s=t[n];if(!r(s,"-")&&b[s]!==i)return"pfx"!=e||s}return!1}function l(t,e,n){for(var s in t){var r=e[t[s]];if(r!==i)return!1===n?t[s]:o(r,"function")?r.bind(n||e):r}return!1}function c(t,e,i){var n=t.charAt(0).toUpperCase()+t.slice(1),s=(t+" "+S.join(n+" ")+n).split(" ");return o(e,"string")||o(e,"undefined")?a(s,e):(s=(t+" "+E.join(n+" ")+n).split(" "),l(s,e,i))}function h(){d.input=function(i){for(var n=0,s=i.length;n<s;n++)H[i[n]]=i[n]in w;return H.list&&(H.list=!!e.createElement("datalist")&&!!t.HTMLDataListElement),H}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),d.inputtypes=function(t){for(var n,s,o,r=0,a=t.length;r<a;r++)w.setAttribute("type",s=t[r]),n="text"!==w.type,n&&(w.value=x,w.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(s)&&w.style.WebkitAppearance!==i?(m.appendChild(w),o=e.defaultView,n=o.getComputedStyle&&"textfield"!==o.getComputedStyle(w,null).WebkitAppearance&&0!==w.offsetHeight,m.removeChild(w)):/^(search|tel)$/.test(s)||(n=/^(url|email)$/.test(s)?w.checkValidity&&!1===w.checkValidity():w.value!=x)),k[t[r]]=!!n;return k}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var u,p,f="2.6.2",d={},g=!0,m=e.documentElement,v="modernizr",y=e.createElement(v),b=y.style,w=e.createElement("input"),x=":)",_={}.toString,C=" -webkit- -moz- -o- -ms- ".split(" "),T="Webkit Moz O ms",S=T.split(" "),E=T.toLowerCase().split(" "),P={svg:"http://www.w3.org/2000/svg"},N={},k={},H={},D=[],I=D.slice,z=function(t,i,n,s){var o,r,a,l,c=e.createElement("div"),h=e.body,u=h||e.createElement("body");if(parseInt(n,10))for(;n--;)a=e.createElement("div"),a.id=s?s[n]:v+(n+1),c.appendChild(a);return o=["&#173;",'<style id="s',v,'">',t,"</style>"].join(""),c.id=v,(h?c:u).innerHTML+=o,u.appendChild(c),h||(u.style.background="",u.style.overflow="hidden",l=m.style.overflow,m.style.overflow="hidden",m.appendChild(u)),r=i(c,t),h?c.parentNode.removeChild(c):(u.parentNode.removeChild(u),m.style.overflow=l),!!r},A=function(){function t(t,s){s=s||e.createElement(n[t]||"div"),t="on"+t;var r=t in s;return r||(s.setAttribute||(s=e.createElement("div")),s.setAttribute&&s.removeAttribute&&(s.setAttribute(t,""),r=o(s[t],"function"),o(s[t],"undefined")||(s[t]=i),s.removeAttribute(t))),s=null,r}var n={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return t}(),W={}.hasOwnProperty;for(var M in p=o(W,"undefined")||o(W.call,"undefined")?function(t,e){return e in t&&o(t.constructor.prototype[e],"undefined")}:function(t,e){return W.call(t,e)},Function.prototype.bind||(Function.prototype.bind=function(t){var e=this;if("function"!=typeof e)throw new TypeError;var i=I.call(arguments,1),n=function(){if(this instanceof n){var s=function(){};s.prototype=e.prototype;var o=new s,r=e.apply(o,i.concat(I.call(arguments)));return Object(r)===r?r:o}return e.apply(t,i.concat(I.call(arguments)))};return n}),N.flexbox=function(){return c("flexWrap")},N.flexboxlegacy=function(){return c("boxDirection")},N.canvas=function(){var t=e.createElement("canvas");return!!t.getContext&&!!t.getContext("2d")},N.canvastext=function(){return!!d.canvas&&!!o(e.createElement("canvas").getContext("2d").fillText,"function")},N.webgl=function(){return!!t.WebGLRenderingContext},N.touch=function(){var i;return"ontouchstart"in t||t.DocumentTouch&&e instanceof DocumentTouch?i=!0:z(["@media (",C.join("touch-enabled),("),v,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(t){i=9===t.offsetTop}),i},N.geolocation=function(){return"geolocation"in navigator},N.postmessage=function(){return!!t.postMessage},N.websqldatabase=function(){return!!t.openDatabase},N.indexedDB=function(){return!!c("indexedDB",t)},N.hashchange=function(){return A("hashchange",t)&&(e.documentMode===i||e.documentMode>7)},N.history=function(){return!!t.history&&!!history.pushState},N.draganddrop=function(){var t=e.createElement("div");return"draggable"in t||"ondragstart"in t&&"ondrop"in t},N.websockets=function(){return"WebSocket"in t||"MozWebSocket"in t},N.rgba=function(){return n("background-color:rgba(150,255,150,.5)"),r(b.backgroundColor,"rgba")},N.hsla=function(){return n("background-color:hsla(120,40%,100%,.5)"),r(b.backgroundColor,"rgba")||r(b.backgroundColor,"hsla")},N.multiplebgs=function(){return n("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(b.background)},N.backgroundsize=function(){return c("backgroundSize")},N.borderimage=function(){return c("borderImage")},N.borderradius=function(){return c("borderRadius")},N.boxshadow=function(){return c("boxShadow")},N.textshadow=function(){return""===e.createElement("div").style.textShadow},N.opacity=function(){return s("opacity:.55"),/^0.55$/.test(b.opacity)},N.cssanimations=function(){return c("animationName")},N.csscolumns=function(){return c("columnCount")},N.cssgradients=function(){var t="background-image:",e="gradient(linear,left top,right bottom,from(#9f9),to(white));",i="linear-gradient(left top,#9f9, white);";return n((t+"-webkit- ".split(" ").join(e+t)+C.join(i+t)).slice(0,-t.length)),r(b.backgroundImage,"gradient")},N.cssreflections=function(){return c("boxReflect")},N.csstransforms=function(){return!!c("transform")},N.csstransforms3d=function(){var t=!!c("perspective");return t&&"webkitPerspective"in m.style&&z("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(e,i){t=9===e.offsetLeft&&3===e.offsetHeight}),t},N.csstransitions=function(){return c("transition")},N.fontface=function(){var t;return z('@font-face {font-family:"font";src:url("https://")}',function(i,n){var s=e.getElementById("smodernizr"),o=s.sheet||s.styleSheet,r=o?o.cssRules&&o.cssRules[0]?o.cssRules[0].cssText:o.cssText||"":"";t=/src/i.test(r)&&0===r.indexOf(n.split(" ")[0])}),t},N.generatedcontent=function(){var t;return z(["#",v,"{font:0/0 a}#",v,':after{content:"',x,'";visibility:hidden;font:3px/1 a}'].join(""),function(e){t=e.offsetHeight>=3}),t},N.video=function(){var t=e.createElement("video"),i=!1;try{(i=!!t.canPlayType)&&(i=new Boolean(i),i.ogg=t.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),i.h264=t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),i.webm=t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(t){}return i},N.audio=function(){var t=e.createElement("audio"),i=!1;try{(i=!!t.canPlayType)&&(i=new Boolean(i),i.ogg=t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),i.mp3=t.canPlayType("audio/mpeg;").replace(/^no$/,""),i.wav=t.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),i.m4a=(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(t){}return i},N.localstorage=function(){try{return localStorage.setItem(v,v),localStorage.removeItem(v),!0}catch(t){return!1}},N.sessionstorage=function(){try{return sessionStorage.setItem(v,v),sessionStorage.removeItem(v),!0}catch(t){return!1}},N.webworkers=function(){return!!t.Worker},N.applicationcache=function(){return!!t.applicationCache},N.svg=function(){return!!e.createElementNS&&!!e.createElementNS(P.svg,"svg").createSVGRect},N.inlinesvg=function(){var t=e.createElement("div");return t.innerHTML="<svg/>",(t.firstChild&&t.firstChild.namespaceURI)==P.svg},N.smil=function(){return!!e.createElementNS&&/SVGAnimate/.test(_.call(e.createElementNS(P.svg,"animate")))},N.svgclippaths=function(){return!!e.createElementNS&&/SVGClipPath/.test(_.call(e.createElementNS(P.svg,"clipPath")))},N)p(N,M)&&(u=M.toLowerCase(),d[u]=N[M](),D.push((d[u]?"":"no-")+u));return d.input||h(),d.addTest=function(t,e){if("object"==typeof t)for(var n in t)p(t,n)&&d.addTest(n,t[n]);else{if(t=t.toLowerCase(),d[t]!==i)return d;e="function"==typeof e?e():e,void 0!==g&&g&&(m.className+=" "+(e?"":"no-")+t),d[t]=e}return d},n(""),y=w=null,function(t,e){function i(t,e){var i=t.createElement("p"),n=t.getElementsByTagName("head")[0]||t.documentElement;return i.innerHTML="x<style>"+e+"</style>",n.insertBefore(i.lastChild,n.firstChild)}function n(){var t=v.elements;return"string"==typeof t?t.split(" "):t}function s(t){var e=m[t[d]];return e||(e={},g++,t[d]=g,m[g]=e),e}function o(t,i,n){return i||(i=e),h?i.createElement(t):(n||(n=s(i)),o=n.cache[t]?n.cache[t].cloneNode():f.test(t)?(n.cache[t]=n.createElem(t)).cloneNode():n.createElem(t),o.canHaveChildren&&!p.test(t)?n.frag.appendChild(o):o);var o}function r(t,i){if(t||(t=e),h)return t.createDocumentFragment();i=i||s(t);for(var o=i.frag.cloneNode(),r=0,a=n(),l=a.length;r<l;r++)o.createElement(a[r]);return o}function a(t,e){e.cache||(e.cache={},e.createElem=t.createElement,e.createFrag=t.createDocumentFragment,e.frag=e.createFrag()),t.createElement=function(i){return v.shivMethods?o(i,t,e):e.createElem(i)},t.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+n().join().replace(/\w+/g,function(t){return e.createElem(t),e.frag.createElement(t),'c("'+t+'")'})+");return n}")(v,e.frag)}function l(t){t||(t=e);var n=s(t);return v.shivCSS&&!c&&!n.hasCSS&&(n.hasCSS=!!i(t,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),h||a(t,n),t}var c,h,u=t.html5||{},p=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,d="_html5shiv",g=0,m={};(function(){try{var t=e.createElement("a");t.innerHTML="<xyz></xyz>",c="hidden"in t,h=1==t.childNodes.length||function(){e.createElement("a");var t=e.createDocumentFragment();return void 0===t.cloneNode||void 0===t.createDocumentFragment||void 0===t.createElement}()}catch(t){c=!0,h=!0}})();var v={elements:u.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:!1!==u.shivCSS,supportsUnknownElements:h,shivMethods:!1!==u.shivMethods,type:"default",shivDocument:l,createElement:o,createDocumentFragment:r};t.html5=v,l(e)}(this,e),d._version=f,d._prefixes=C,d._domPrefixes=E,d._cssomPrefixes=S,d.hasEvent=A,d.testProp=function(t){return a([t])},d.testAllProps=c,d.testStyles=z,m.className=m.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(g?" js "+D.join(" "):""),d}(this,this.document),function(t,e,i){function n(t){return"[object Function]"==m.call(t)}function s(t){return"string"==typeof t}function o(){}function r(t){return!t||"loaded"==t||"complete"==t||"uninitialized"==t}function a(){var t=v.shift();y=1,t?t.t?d(function(){("c"==t.t?p.injectCss:p.injectJs)(t.s,0,t.a,t.x,t.e,1)},0):(t(),a()):y=0}function l(t,i,n,s,o,l,c){function h(e){if(!f&&r(u.readyState)&&(b.r=f=1,!y&&a(),u.onload=u.onreadystatechange=null,e))for(var n in"img"!=t&&d(function(){x.removeChild(u)},50),E[i])E[i].hasOwnProperty(n)&&E[i][n].onload()}c=c||p.errorTimeout;var u=e.createElement(t),f=0,m=0,b={t:n,s:i,e:o,a:l,x:c};1===E[i]&&(m=1,E[i]=[]),"object"==t?u.data=i:(u.src=i,u.type=t),u.width=u.height="0",u.onerror=u.onload=u.onreadystatechange=function(){h.call(this,m)},v.splice(s,0,b),"img"!=t&&(m||2===E[i]?(x.insertBefore(u,w?null:g),d(h,c)):E[i].push(u))}function c(t,e,i,n,o){return y=0,e=e||"j",s(t)?l("c"==e?C:_,t,e,this.i++,i,n,o):(v.splice(this.i++,0,t),1==v.length&&a()),this}function h(){var t=p;return t.loader={load:c,i:0},t}var u,p,f=e.documentElement,d=t.setTimeout,g=e.getElementsByTagName("script")[0],m={}.toString,v=[],y=0,b="MozAppearance"in f.style,w=b&&!!e.createRange().compareNode,x=w?f:g.parentNode,_=(f=t.opera&&"[object Opera]"==m.call(t.opera),f=!!e.attachEvent&&!f,b?"object":f?"script":"img"),C=f?"script":_,T=Array.isArray||function(t){return"[object Array]"==m.call(t)},S=[],E={},P={timeout:function(t,e){return e.length&&(t.timeout=e[0]),t}};p=function(t){function e(t){t=t.split("!");var e,i,n,s=S.length,o=t.pop(),r=t.length;o={url:o,origUrl:o,prefixes:t};for(i=0;i<r;i++)n=t[i].split("="),(e=P[n.shift()])&&(o=e(o,n));for(i=0;i<s;i++)o=S[i](o);return o}function r(t,s,o,r,a){var l=e(t),c=l.autoCallback;l.url.split(".").pop().split("?").shift(),l.bypass||(s&&(s=n(s)?s:s[t]||s[r]||s[t.split("/").pop().split("?")[0]]),l.instead?l.instead(t,s,o,r,a):(E[l.url]?l.noexec=!0:E[l.url]=1,o.load(l.url,l.forceCSS||!l.forceJS&&"css"==l.url.split(".").pop().split("?").shift()?"c":i,l.noexec,l.attrs,l.timeout),(n(s)||n(c))&&o.load(function(){h(),s&&s(l.origUrl,a,r),c&&c(l.origUrl,a,r),E[l.url]=2})))}function a(t,e){function i(t,i){if(t){if(s(t))i||(u=function(){var t=[].slice.call(arguments);p.apply(this,t),f()}),r(t,u,e,0,c);else if(Object(t)===t)for(l in a=function(){var e,i=0;for(e in t)t.hasOwnProperty(e)&&i++;return i}(),t)t.hasOwnProperty(l)&&(!i&&!--a&&(n(u)?u=function(){var t=[].slice.call(arguments);p.apply(this,t),f()}:u[l]=function(t){return function(){var e=[].slice.call(arguments);t&&t.apply(this,e),f()}}(p[l])),r(t[l],u,e,l,c))}else!i&&f()}var a,l,c=!!t.test,h=t.load||t.both,u=t.callback||o,p=u,f=t.complete||o;i(c?t.yep:t.nope,!!h),h&&i(h)}var l,c,u=this.yepnope.loader;if(s(t))r(t,0,u,0);else if(T(t))for(l=0;l<t.length;l++)c=t[l],s(c)?r(c,0,u,0):T(c)?p(c):Object(c)===c&&a(c,u);else Object(t)===t&&a(t,u)},p.addPrefix=function(t,e){P[t]=e},p.addFilter=function(t){S.push(t)},p.errorTimeout=1e4,null==e.readyState&&e.addEventListener&&(e.readyState="loading",e.addEventListener("DOMContentLoaded",u=function(){e.removeEventListener("DOMContentLoaded",u,0),e.readyState="complete"},0)),t.yepnope=h(),t.yepnope.executeStack=a,t.yepnope.injectJs=function(t,i,n,s,l,c){var h,u,f=e.createElement("script");s=s||p.errorTimeout;for(u in f.src=t,n)f.setAttribute(u,n[u]);i=c?a:i||o,f.onreadystatechange=f.onload=function(){!h&&r(f.readyState)&&(h=1,i(),f.onload=f.onreadystatechange=null)},d(function(){h||(h=1,i(1))},s),l?f.onload():g.parentNode.insertBefore(f,g)},t.yepnope.injectCss=function(t,i,n,s,r,l){var c;s=e.createElement("link"),i=l?a:i||o;for(c in s.href=t,s.rel="stylesheet",s.type="text/css",n)s.setAttribute(c,n[c]);r||(g.parentNode.insertBefore(s,g),d(i,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser),this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion),this.shortversion=this.browser+this.version,this.OS=this.searchString(this.dataOS)},searchString:function(t){for(var e=0;e<t.length;e++){var i=t[e].string;if(this.versionSearchString=t[e].subString,-1!=i.indexOf(t[e].subString))return t[e].identity}},searchVersion:function(t){var e=t.indexOf(this.versionSearchString);if(-1!=e)return parseFloat(t.substring(e+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"chrome"},{string:navigator.userAgent,subString:"MSIE",identity:"ie"},{string:navigator.userAgent,subString:"Firefox",identity:"firefox"},{string:navigator.userAgent,subString:"Safari",identity:"safari"},{string:navigator.userAgent,subString:"Opera",identity:"opera"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"windows"},{string:navigator.platform,subString:"Mac",identity:"osx"},{string:navigator.userAgent,subString:"iPhone",identity:"ios"},{string:navigator.userAgent,subString:"iPad",identity:"ios"},{string:navigator.userAgent,subString:"iPod",identity:"ios"},{string:navigator.platform,subString:"Linux",identity:"linux"}]};BrowserDetect.init(),document.documentElement.className+=" "+BrowserDetect.browser+" "+BrowserDetect.shortversion+" "+BrowserDetect.OS;for(var i=0;i<BrowserDetect.dataBrowser.length;i++)eval("function is_"+BrowserDetect.dataBrowser[i].identity+'(version) { return is_browser("'+BrowserDetect.dataBrowser[i].identity+'", version); }');for(var i=0;i<BrowserDetect.dataOS.length;i++)eval("function is_"+BrowserDetect.dataOS[i].identity+'() { return "'+BrowserDetect.dataOS[i].identity+'" == "'+BrowserDetect.OS+'"; }');(function(t,e){function i(t){var e=t.length,i=ht.type(t);return!ht.isWindow(t)&&(!(1!==t.nodeType||!e)||("array"===i||"function"!==i&&(0===e||"number"==typeof e&&e>0&&e-1 in t)))}function n(t){var e=St[t]={};return ht.each(t.match(pt)||[],function(t,i){e[i]=!0}),e}function s(t,i,n,s){if(ht.acceptData(t)){var o,r,a=ht.expando,l=t.nodeType,c=l?ht.cache:t,h=l?t[a]:t[a]&&a;if(h&&c[h]&&(s||c[h].data)||n!==e||"string"!=typeof i)return h||(h=l?t[a]=et.pop()||ht.guid++:a),c[h]||(c[h]=l?{}:{toJSON:ht.noop}),("object"==typeof i||"function"==typeof i)&&(s?c[h]=ht.extend(c[h],i):c[h].data=ht.extend(c[h].data,i)),r=c[h],s||(r.data||(r.data={}),r=r.data),n!==e&&(r[ht.camelCase(i)]=n),"string"==typeof i?(o=r[i],null==o&&(o=r[ht.camelCase(i)])):o=r,o}}function o(t,e,i){if(ht.acceptData(t)){var n,s,o=t.nodeType,r=o?ht.cache:t,l=o?t[ht.expando]:ht.expando;if(r[l]){if(e&&(n=i?r[l]:r[l].data)){ht.isArray(e)?e=e.concat(ht.map(e,ht.camelCase)):e in n?e=[e]:(e=ht.camelCase(e),e=e in n?[e]:e.split(" ")),s=e.length;for(;s--;)delete n[e[s]];if(i?!a(n):!ht.isEmptyObject(n))return}(i||(delete r[l].data,a(r[l])))&&(o?ht.cleanData([t],!0):ht.support.deleteExpando||r!=r.window?delete r[l]:r[l]=null)}}}function r(t,i,n){if(n===e&&1===t.nodeType){var s="data-"+i.replace(Pt,"-$1").toLowerCase();if(n=t.getAttribute(s),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Et.test(n)?ht.parseJSON(n):n)}catch(t){}ht.data(t,i,n)}else n=e}return n}function a(t){var e;for(e in t)if(("data"!==e||!ht.isEmptyObject(t[e]))&&"toJSON"!==e)return!1;return!0}function l(){return!0}function c(){return!1}function h(){try{return Q.activeElement}catch(t){}}function u(t,e){do{t=t[e]}while(t&&1!==t.nodeType);return t}function p(t,e,i){if(ht.isFunction(e))return ht.grep(t,function(t,n){return!!e.call(t,n,t)!==i});if(e.nodeType)return ht.grep(t,function(t){return t===e!==i});if("string"==typeof e){if(Bt.test(e))return ht.filter(e,t,i);e=ht.filter(e,t)}return ht.grep(t,function(t){return ht.inArray(t,e)>=0!==i})}function f(t){var e=Yt.split("|"),i=t.createDocumentFragment();if(i.createElement)for(;e.length;)i.createElement(e.pop());return i}function d(t,e){return ht.nodeName(t,"table")&&ht.nodeName(1===e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function g(t){return t.type=(null!==ht.find.attr(t,"type"))+"/"+t.type,t}function m(t){var e=se.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function v(t,e){for(var i,n=0;null!=(i=t[n]);n++)ht._data(i,"globalEval",!e||ht._data(e[n],"globalEval"))}function y(t,e){if(1===e.nodeType&&ht.hasData(t)){var i,n,s,o=ht._data(t),r=ht._data(e,o),a=o.events;if(a)for(i in delete r.handle,r.events={},a)for(n=0,s=a[i].length;s>n;n++)ht.event.add(e,i,a[i][n]);r.data&&(r.data=ht.extend({},r.data))}}function b(t,e){var i,n,s;if(1===e.nodeType){if(i=e.nodeName.toLowerCase(),!ht.support.noCloneEvent&&e[ht.expando]){for(n in s=ht._data(e),s.events)ht.removeEvent(e,n,s.handle);e.removeAttribute(ht.expando)}"script"===i&&e.text!==t.text?(g(e).text=t.text,m(e)):"object"===i?(e.parentNode&&(e.outerHTML=t.outerHTML),ht.support.html5Clone&&t.innerHTML&&!ht.trim(e.innerHTML)&&(e.innerHTML=t.innerHTML)):"input"===i&&ee.test(t.type)?(e.defaultChecked=e.checked=t.checked,e.value!==t.value&&(e.value=t.value)):"option"===i?e.defaultSelected=e.selected=t.defaultSelected:("input"===i||"textarea"===i)&&(e.defaultValue=t.defaultValue)}}function w(t,i){var n,s,o=0,r=typeof t.getElementsByTagName!==V?t.getElementsByTagName(i||"*"):typeof t.querySelectorAll!==V?t.querySelectorAll(i||"*"):e;if(!r)for(r=[],n=t.childNodes||t;null!=(s=n[o]);o++)!i||ht.nodeName(s,i)?r.push(s):ht.merge(r,w(s,i));return i===e||i&&ht.nodeName(t,i)?ht.merge([t],r):r}function x(t){ee.test(t.type)&&(t.defaultChecked=t.checked)}function _(t,e){if(e in t)return e;for(var i=e.charAt(0).toUpperCase()+e.slice(1),n=e,s=Te.length;s--;)if(e=Te[s]+i,e in t)return e;return n}function C(t,e){return t=e||t,"none"===ht.css(t,"display")||!ht.contains(t.ownerDocument,t)}function T(t,e){for(var i,n,s,o=[],r=0,a=t.length;a>r;r++)n=t[r],n.style&&(o[r]=ht._data(n,"olddisplay"),i=n.style.display,e?(o[r]||"none"!==i||(n.style.display=""),""===n.style.display&&C(n)&&(o[r]=ht._data(n,"olddisplay",N(n.nodeName)))):o[r]||(s=C(n),(i&&"none"!==i||!s)&&ht._data(n,"olddisplay",s?i:ht.css(n,"display"))));for(r=0;a>r;r++)n=t[r],n.style&&(e&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=e?o[r]||"":"none"));return t}function S(t,e,i){var n=ve.exec(e);return n?Math.max(0,n[1]-(i||0))+(n[2]||"px"):e}function E(t,e,i,n,s){for(var o=i===(n?"border":"content")?4:"width"===e?1:0,r=0;4>o;o+=2)"margin"===i&&(r+=ht.css(t,i+Ce[o],!0,s)),n?("content"===i&&(r-=ht.css(t,"padding"+Ce[o],!0,s)),"margin"!==i&&(r-=ht.css(t,"border"+Ce[o]+"Width",!0,s))):(r+=ht.css(t,"padding"+Ce[o],!0,s),"padding"!==i&&(r+=ht.css(t,"border"+Ce[o]+"Width",!0,s)));return r}function P(t,e,i){var n=!0,s="width"===e?t.offsetWidth:t.offsetHeight,o=he(t),r=ht.support.boxSizing&&"border-box"===ht.css(t,"boxSizing",!1,o);if(0>=s||null==s){if(s=ue(t,e,o),(0>s||null==s)&&(s=t.style[e]),ye.test(s))return s;n=r&&(ht.support.boxSizingReliable||s===t.style[e]),s=parseFloat(s)||0}return s+E(t,e,i||(r?"border":"content"),n,o)+"px"}function N(t){var e=Q,i=we[t];return i||(i=k(t,e),"none"!==i&&i||(ce=(ce||ht("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(e.documentElement),e=(ce[0].contentWindow||ce[0].contentDocument).document,e.write("<!doctype html><html><body>"),e.close(),i=k(t,e),ce.detach()),we[t]=i),i}function k(t,e){var i=ht(e.createElement(t)).appendTo(e.body),n=ht.css(i[0],"display");return i.remove(),n}function H(t,e,i,n){var s;if(ht.isArray(e))ht.each(e,function(e,s){i||Ee.test(t)?n(t,s):H(t+"["+("object"==typeof s?e:"")+"]",s,i,n)});else if(i||"object"!==ht.type(e))n(t,e);else for(s in e)H(t+"["+s+"]",e[s],i,n)}function D(t){return function(e,i){"string"!=typeof e&&(i=e,e="*");var n,s=0,o=e.toLowerCase().match(pt)||[];if(ht.isFunction(i))for(;n=o[s++];)"+"===n[0]?(n=n.slice(1)||"*",(t[n]=t[n]||[]).unshift(i)):(t[n]=t[n]||[]).push(i)}}function I(t,i,n,s){function o(l){var c;return r[l]=!0,ht.each(t[l]||[],function(t,l){var h=l(i,n,s);return"string"!=typeof h||a||r[h]?a?!(c=h):e:(i.dataTypes.unshift(h),o(h),!1)}),c}var r={},a=t===qe;return o(i.dataTypes[0])||!r["*"]&&o("*")}function z(t,i){var n,s,o=ht.ajaxSettings.flatOptions||{};for(s in i)i[s]!==e&&((o[s]?t:n||(n={}))[s]=i[s]);return n&&ht.extend(!0,t,n),t}function A(t,i,n){for(var s,o,r,a,l=t.contents,c=t.dataTypes;"*"===c[0];)c.shift(),o===e&&(o=t.mimeType||i.getResponseHeader("Content-Type"));if(o)for(a in l)if(l[a]&&l[a].test(o)){c.unshift(a);break}if(c[0]in n)r=c[0];else{for(a in n){if(!c[0]||t.converters[a+" "+c[0]]){r=a;break}s||(s=a)}r=r||s}return r?(r!==c[0]&&c.unshift(r),n[r]):e}function W(t,e,i,n){var s,o,r,a,l,c={},h=t.dataTypes.slice();if(h[1])for(r in t.converters)c[r.toLowerCase()]=t.converters[r];for(o=h.shift();o;)if(t.responseFields[o]&&(i[t.responseFields[o]]=e),!l&&n&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=o,o=h.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(r=c[l+" "+o]||c["* "+o],!r)for(s in c)if(a=s.split(" "),a[1]===o&&(r=c[l+" "+a[0]]||c["* "+a[0]])){!0===r?r=c[s]:!0!==c[s]&&(o=a[0],h.unshift(a[1]));break}if(!0!==r)if(r&&t.throws)e=r(e);else try{e=r(e)}catch(t){return{state:"parsererror",error:r?t:"No conversion from "+l+" to "+o}}}return{state:"success",data:e}}function M(){try{return new t.XMLHttpRequest}catch(t){}}function L(){try{return new t.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function O(){return setTimeout(function(){Ke=e}),Ke=ht.now()}function j(t,e,i){for(var n,s=(ni[e]||[]).concat(ni["*"]),o=0,r=s.length;r>o;o++)if(n=s[o].call(i,e,t))return n}function R(t,e,i){var n,s,o=0,r=ii.length,a=ht.Deferred().always(function(){delete l.elem}),l=function(){if(s)return!1;for(var e=Ke||O(),i=Math.max(0,c.startTime+c.duration-e),n=i/c.duration||0,o=1-n,r=0,l=c.tweens.length;l>r;r++)c.tweens[r].run(o);return a.notifyWith(t,[c,o,i]),1>o&&l?i:(a.resolveWith(t,[c]),!1)},c=a.promise({elem:t,props:ht.extend({},e),opts:ht.extend(!0,{specialEasing:{}},i),originalProperties:e,originalOptions:i,startTime:Ke||O(),duration:i.duration,tweens:[],createTween:function(e,i){var n=ht.Tween(t,c.opts,e,i,c.opts.specialEasing[e]||c.opts.easing);return c.tweens.push(n),n},stop:function(e){var i=0,n=e?c.tweens.length:0;if(s)return this;for(s=!0;n>i;i++)c.tweens[i].run(1);return e?a.resolveWith(t,[c,e]):a.rejectWith(t,[c,e]),this}}),h=c.props;for(F(h,c.opts.specialEasing);r>o;o++)if(n=ii[o].call(c,t,h,c.opts))return n;return ht.map(h,j,c),ht.isFunction(c.opts.start)&&c.opts.start.call(t,c),ht.fx.timer(ht.extend(l,{elem:t,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function F(t,e){var i,n,s,o,r;for(i in t)if(n=ht.camelCase(i),s=e[n],o=t[i],ht.isArray(o)&&(s=o[1],o=t[i]=o[0]),i!==n&&(t[n]=o,delete t[i]),r=ht.cssHooks[n],r&&"expand"in r)for(i in o=r.expand(o),delete t[n],o)i in t||(t[i]=o[i],e[i]=s);else e[n]=s}function B(t,e,i){var n,s,o,r,a,l,c=this,h={},u=t.style,p=t.nodeType&&C(t),f=ht._data(t,"fxshow");for(n in i.queue||(a=ht._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,l=a.empty.fire,a.empty.fire=function(){a.unqueued||l()}),a.unqueued++,c.always(function(){c.always(function(){a.unqueued--,ht.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(i.overflow=[u.overflow,u.overflowX,u.overflowY],"inline"===ht.css(t,"display")&&"none"===ht.css(t,"float")&&(ht.support.inlineBlockNeedsLayout&&"inline"!==N(t.nodeName)?u.zoom=1:u.display="inline-block")),i.overflow&&(u.overflow="hidden",ht.support.shrinkWrapBlocks||c.always(function(){u.overflow=i.overflow[0],u.overflowX=i.overflow[1],u.overflowY=i.overflow[2]})),e)if(s=e[n],Ze.exec(s)){if(delete e[n],o=o||"toggle"===s,s===(p?"hide":"show"))continue;h[n]=f&&f[n]||ht.style(t,n)}if(!ht.isEmptyObject(h))for(n in f?"hidden"in f&&(p=f.hidden):f=ht._data(t,"fxshow",{}),o&&(f.hidden=!p),p?ht(t).show():c.done(function(){ht(t).hide()}),c.done(function(){var e;for(e in ht._removeData(t,"fxshow"),h)ht.style(t,e,h[e])}),h)r=j(p?f[n]:0,n,c),n in f||(f[n]=r.start,p&&(r.end=r.start,r.start="width"===n||"height"===n?1:0))}function q(t,e,i,n,s){return new q.prototype.init(t,e,i,n,s)}function $(t,e){var i,n={height:t},s=0;for(e=e?1:0;4>s;s+=2-e)i=Ce[s],n["margin"+i]=n["padding"+i]=t;return e&&(n.opacity=n.width=t),n}function X(t){return ht.isWindow(t)?t:9===t.nodeType&&(t.defaultView||t.parentWindow)}var Y,U,V=typeof e,G=t.location,Q=t.document,K=Q.documentElement,J=t.jQuery,Z=t.$,tt={},et=[],it="1.10.2",nt=et.concat,st=et.push,ot=et.slice,rt=et.indexOf,at=tt.toString,lt=tt.hasOwnProperty,ct=it.trim,ht=function(t,e){return new ht.fn.init(t,e,U)},ut=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,pt=/\S+/g,ft=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,dt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,gt=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,mt=/^[\],:{}\s]*$/,vt=/(?:^|:|,)(?:\s*\[)+/g,yt=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,bt=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,wt=/^-ms-/,xt=/-([\da-z])/gi,_t=function(t,e){return e.toUpperCase()},Ct=function(t){(Q.addEventListener||"load"===t.type||"complete"===Q.readyState)&&(Tt(),ht.ready())},Tt=function(){Q.addEventListener?(Q.removeEventListener("DOMContentLoaded",Ct,!1),t.removeEventListener("load",Ct,!1)):(Q.detachEvent("onreadystatechange",Ct),t.detachEvent("onload",Ct))};ht.fn=ht.prototype={jquery:it,constructor:ht,init:function(t,i,n){var s,o;if(!t)return this;if("string"==typeof t){if(s="<"===t.charAt(0)&&">"===t.charAt(t.length-1)&&t.length>=3?[null,t,null]:dt.exec(t),!s||!s[1]&&i)return!i||i.jquery?(i||n).find(t):this.constructor(i).find(t);if(s[1]){if(i=i instanceof ht?i[0]:i,ht.merge(this,ht.parseHTML(s[1],i&&i.nodeType?i.ownerDocument||i:Q,!0)),gt.test(s[1])&&ht.isPlainObject(i))for(s in i)ht.isFunction(this[s])?this[s](i[s]):this.attr(s,i[s]);return this}if(o=Q.getElementById(s[2]),o&&o.parentNode){if(o.id!==s[2])return n.find(t);this.length=1,this[0]=o}return this.context=Q,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):ht.isFunction(t)?n.ready(t):(t.selector!==e&&(this.selector=t.selector,this.context=t.context),ht.makeArray(t,this))},selector:"",length:0,toArray:function(){return ot.call(this)},get:function(t){return null==t?this.toArray():0>t?this[this.length+t]:this[t]},pushStack:function(t){var e=ht.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t,e){return ht.each(this,t,e)},ready:function(t){return ht.ready.promise().done(t),this},slice:function(){return this.pushStack(ot.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,i=+t+(0>t?e:0);return this.pushStack(i>=0&&e>i?[this[i]]:[])},map:function(t){return this.pushStack(ht.map(this,function(e,i){return t.call(e,i,e)}))},end:function(){return this.prevObject||this.constructor(null)},push:st,sort:[].sort,splice:[].splice},ht.fn.init.prototype=ht.fn,ht.extend=ht.fn.extend=function(){var t,i,n,s,o,r,a=arguments[0]||{},l=1,c=arguments.length,h=!1;for("boolean"==typeof a&&(h=a,a=arguments[1]||{},l=2),"object"==typeof a||ht.isFunction(a)||(a={}),c===l&&(a=this,--l);c>l;l++)if(null!=(o=arguments[l]))for(s in o)t=a[s],n=o[s],a!==n&&(h&&n&&(ht.isPlainObject(n)||(i=ht.isArray(n)))?(i?(i=!1,r=t&&ht.isArray(t)?t:[]):r=t&&ht.isPlainObject(t)?t:{},a[s]=ht.extend(h,r,n)):n!==e&&(a[s]=n));return a},ht.extend({expando:"jQuery"+(it+Math.random()).replace(/\D/g,""),noConflict:function(e){return t.$===ht&&(t.$=Z),e&&t.jQuery===ht&&(t.jQuery=J),ht},isReady:!1,readyWait:1,holdReady:function(t){t?ht.readyWait++:ht.ready(!0)},ready:function(t){if(!0===t?!--ht.readyWait:!ht.isReady){if(!Q.body)return setTimeout(ht.ready);ht.isReady=!0,!0!==t&&--ht.readyWait>0||(Y.resolveWith(Q,[ht]),ht.fn.trigger&&ht(Q).trigger("ready").off("ready"))}},isFunction:function(t){return"function"===ht.type(t)},isArray:Array.isArray||function(t){return"array"===ht.type(t)},isWindow:function(t){return null!=t&&t==t.window},isNumeric:function(t){return!isNaN(parseFloat(t))&&isFinite(t)},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?tt[at.call(t)]||"object":typeof t},isPlainObject:function(t){var i;if(!t||"object"!==ht.type(t)||t.nodeType||ht.isWindow(t))return!1;try{if(t.constructor&&!lt.call(t,"constructor")&&!lt.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}if(ht.support.ownLast)for(i in t)return lt.call(t,i);for(i in t);return i===e||lt.call(t,i)},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},error:function(t){throw Error(t)},parseHTML:function(t,e,i){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(i=e,e=!1),e=e||Q;var n=gt.exec(t),s=!i&&[];return n?[e.createElement(n[1])]:(n=ht.buildFragment([t],e,s),s&&ht(s).remove(),ht.merge([],n.childNodes))},parseJSON:function(i){return t.JSON&&t.JSON.parse?t.JSON.parse(i):null===i?i:"string"==typeof i&&(i=ht.trim(i),i&&mt.test(i.replace(yt,"@").replace(bt,"]").replace(vt,"")))?Function("return "+i)():(ht.error("Invalid JSON: "+i),e)},parseXML:function(i){var n,s;if(!i||"string"!=typeof i)return null;try{t.DOMParser?(s=new DOMParser, +n=s.parseFromString(i,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(i))}catch(t){n=e}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||ht.error("Invalid XML: "+i),n},noop:function(){},globalEval:function(e){e&&ht.trim(e)&&(t.execScript||function(e){t.eval.call(t,e)})(e)},camelCase:function(t){return t.replace(wt,"ms-").replace(xt,_t)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e,n){var s,o=0,r=t.length,a=i(t);if(n){if(a)for(;r>o&&(s=e.apply(t[o],n),!1!==s);o++);else for(o in t)if(s=e.apply(t[o],n),!1===s)break}else if(a)for(;r>o&&(s=e.call(t[o],o,t[o]),!1!==s);o++);else for(o in t)if(s=e.call(t[o],o,t[o]),!1===s)break;return t},trim:ct&&!ct.call("\ufeff ")?function(t){return null==t?"":ct.call(t)}:function(t){return null==t?"":(t+"").replace(ft,"")},makeArray:function(t,e){var n=e||[];return null!=t&&(i(Object(t))?ht.merge(n,"string"==typeof t?[t]:t):st.call(n,t)),n},inArray:function(t,e,i){var n;if(e){if(rt)return rt.call(e,t,i);for(n=e.length,i=i?0>i?Math.max(0,n+i):i:0;n>i;i++)if(i in e&&e[i]===t)return i}return-1},merge:function(t,i){var n=i.length,s=t.length,o=0;if("number"==typeof n)for(;n>o;o++)t[s++]=i[o];else for(;i[o]!==e;)t[s++]=i[o++];return t.length=s,t},grep:function(t,e,i){var n,s=[],o=0,r=t.length;for(i=!!i;r>o;o++)n=!!e(t[o],o),i!==n&&s.push(t[o]);return s},map:function(t,e,n){var s,o=0,r=t.length,a=i(t),l=[];if(a)for(;r>o;o++)s=e(t[o],o,n),null!=s&&(l[l.length]=s);else for(o in t)s=e(t[o],o,n),null!=s&&(l[l.length]=s);return nt.apply([],l)},guid:1,proxy:function(t,i){var n,s,o;return"string"==typeof i&&(o=t[i],i=t,t=o),ht.isFunction(t)?(n=ot.call(arguments,2),s=function(){return t.apply(i||this,n.concat(ot.call(arguments)))},s.guid=t.guid=t.guid||ht.guid++,s):e},access:function(t,i,n,s,o,r,a){var l=0,c=t.length,h=null==n;if("object"===ht.type(n))for(l in o=!0,n)ht.access(t,i,l,n[l],!0,r,a);else if(s!==e&&(o=!0,ht.isFunction(s)||(a=!0),h&&(a?(i.call(t,s),i=null):(h=i,i=function(t,e,i){return h.call(ht(t),i)})),i))for(;c>l;l++)i(t[l],n,a?s:s.call(t[l],l,i(t[l],n)));return o?t:h?i.call(t):c?i(t[0],n):r},now:function(){return(new Date).getTime()},swap:function(t,e,i,n){var s,o,r={};for(o in e)r[o]=t.style[o],t.style[o]=e[o];for(o in s=i.apply(t,n||[]),e)t.style[o]=r[o];return s}}),ht.ready.promise=function(e){if(!Y)if(Y=ht.Deferred(),"complete"===Q.readyState)setTimeout(ht.ready);else if(Q.addEventListener)Q.addEventListener("DOMContentLoaded",Ct,!1),t.addEventListener("load",Ct,!1);else{Q.attachEvent("onreadystatechange",Ct),t.attachEvent("onload",Ct);var i=!1;try{i=null==t.frameElement&&Q.documentElement}catch(t){}i&&i.doScroll&&function t(){if(!ht.isReady){try{i.doScroll("left")}catch(e){return setTimeout(t,50)}Tt(),ht.ready()}}()}return Y.promise(e)},ht.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){tt["[object "+e+"]"]=e.toLowerCase()}),U=ht(Q),function(t,e){function i(t,e,i,n){var s,o,r,a,l,c,h,u,d,g;if((e?e.ownerDocument||e:R)!==I&&D(e),e=e||I,i=i||[],!t||"string"!=typeof t)return i;if(1!==(a=e.nodeType)&&9!==a)return[];if(A&&!n){if(s=bt.exec(t))if(r=s[1]){if(9===a){if(o=e.getElementById(r),!o||!o.parentNode)return i;if(o.id===r)return i.push(o),i}else if(e.ownerDocument&&(o=e.ownerDocument.getElementById(r))&&O(e,o)&&o.id===r)return i.push(o),i}else{if(s[2])return tt.apply(i,e.getElementsByTagName(t)),i;if((r=s[3])&&C.getElementsByClassName&&e.getElementsByClassName)return tt.apply(i,e.getElementsByClassName(r)),i}if(C.qsa&&(!W||!W.test(t))){if(u=h=j,d=e,g=9===a&&t,1===a&&"object"!==e.nodeName.toLowerCase()){for(c=p(t),(h=e.getAttribute("id"))?u=h.replace(_t,"\\$&"):e.setAttribute("id",u),u="[id='"+u+"'] ",l=c.length;l--;)c[l]=u+f(c[l]);d=ft.test(t)&&e.parentNode||e,g=c.join(",")}if(g)try{return tt.apply(i,d.querySelectorAll(g)),i}catch(t){}finally{h||e.removeAttribute("id")}}}return x(t.replace(ct,"$1"),e,i,n)}function n(){function t(i,n){return e.push(i+=" ")>S.cacheLength&&delete t[e.shift()],t[i]=n}var e=[];return t}function s(t){return t[j]=!0,t}function o(t){var e=I.createElement("div");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function r(t,e){for(var i=t.split("|"),n=t.length;n--;)S.attrHandle[i[n]]=e}function a(t,e){var i=e&&t,n=i&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||G)-(~t.sourceIndex||G);if(n)return n;if(i)for(;i=i.nextSibling;)if(i===e)return-1;return t?1:-1}function l(t){return function(e){var i=e.nodeName.toLowerCase();return"input"===i&&e.type===t}}function c(t){return function(e){var i=e.nodeName.toLowerCase();return("input"===i||"button"===i)&&e.type===t}}function h(t){return s(function(e){return e=+e,s(function(i,n){for(var s,o=t([],i.length,e),r=o.length;r--;)i[s=o[r]]&&(i[s]=!(n[s]=i[s]))})})}function u(){}function p(t,e){var n,s,o,r,a,l,c,h=$[t+" "];if(h)return e?0:h.slice(0);for(a=t,l=[],c=S.preFilter;a;){for(r in(!n||(s=ut.exec(a)))&&(s&&(a=a.slice(s[0].length)||a),l.push(o=[])),n=!1,(s=pt.exec(a))&&(n=s.shift(),o.push({value:n,type:s[0].replace(ct," ")}),a=a.slice(n.length)),S.filter)!(s=vt[r].exec(a))||c[r]&&!(s=c[r](s))||(n=s.shift(),o.push({value:n,type:r,matches:s}),a=a.slice(n.length));if(!n)break}return e?a.length:a?i.error(t):$(t,l).slice(0)}function f(t){for(var e=0,i=t.length,n="";i>e;e++)n+=t[e].value;return n}function d(t,e,i){var n=e.dir,s=i&&"parentNode"===n,o=B++;return e.first?function(e,i,o){for(;e=e[n];)if(1===e.nodeType||s)return t(e,i,o)}:function(e,i,r){var a,l,c,h=F+" "+o;if(r){for(;e=e[n];)if((1===e.nodeType||s)&&t(e,i,r))return!0}else for(;e=e[n];)if(1===e.nodeType||s)if(c=e[j]||(e[j]={}),(l=c[n])&&l[0]===h){if(!0===(a=l[1])||a===T)return!0===a}else if(l=c[n]=[h],l[1]=t(e,i,r)||T,!0===l[1])return!0}}function g(t){return t.length>1?function(e,i,n){for(var s=t.length;s--;)if(!t[s](e,i,n))return!1;return!0}:t[0]}function m(t,e,i,n,s){for(var o,r=[],a=0,l=t.length,c=null!=e;l>a;a++)(o=t[a])&&(!i||i(o,n,s))&&(r.push(o),c&&e.push(a));return r}function v(t,e,i,n,o,r){return n&&!n[j]&&(n=v(n)),o&&!o[j]&&(o=v(o,r)),s(function(s,r,a,l){var c,h,u,p=[],f=[],d=r.length,g=s||w(e||"*",a.nodeType?[a]:a,[]),v=!t||!s&&e?g:m(g,p,t,a,l),y=i?o||(s?t:d||n)?[]:r:v;if(i&&i(v,y,a,l),n)for(c=m(y,f),n(c,[],a,l),h=c.length;h--;)(u=c[h])&&(y[f[h]]=!(v[f[h]]=u));if(s){if(o||t){if(o){for(c=[],h=y.length;h--;)(u=y[h])&&c.push(v[h]=u);o(null,y=[],c,l)}for(h=y.length;h--;)(u=y[h])&&(c=o?it.call(s,u):p[h])>-1&&(s[c]=!(r[c]=u))}}else y=m(y===r?y.splice(d,y.length):y),o?o(null,r,y,l):tt.apply(r,y)})}function y(t){for(var e,i,n,s=t.length,o=S.relative[t[0].type],r=o||S.relative[" "],a=o?1:0,l=d(function(t){return t===e},r,!0),c=d(function(t){return it.call(e,t)>-1},r,!0),h=[function(t,i,n){return!o&&(n||i!==k)||((e=i).nodeType?l(t,i,n):c(t,i,n))}];s>a;a++)if(i=S.relative[t[a].type])h=[d(g(h),i)];else{if(i=S.filter[t[a].type].apply(null,t[a].matches),i[j]){for(n=++a;s>n&&!S.relative[t[n].type];n++);return v(a>1&&g(h),a>1&&f(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(ct,"$1"),i,n>a&&y(t.slice(a,n)),s>n&&y(t=t.slice(n)),s>n&&f(t))}h.push(i)}return g(h)}function b(t,e){var n=0,o=e.length>0,r=t.length>0,a=function(s,a,l,c,h){var u,p,f,d=[],g=0,v="0",y=s&&[],b=null!=h,w=k,x=s||r&&S.find.TAG("*",h&&a.parentNode||a),_=F+=null==w?1:Math.random()||.1;for(b&&(k=a!==I&&a,T=n);null!=(u=x[v]);v++){if(r&&u){for(p=0;f=t[p++];)if(f(u,a,l)){c.push(u);break}b&&(F=_,T=++n)}o&&((u=!f&&u)&&g--,s&&y.push(u))}if(g+=v,o&&v!==g){for(p=0;f=e[p++];)f(y,d,a,l);if(s){if(g>0)for(;v--;)y[v]||d[v]||(d[v]=J.call(c));d=m(d)}tt.apply(c,d),b&&!s&&d.length>0&&g+e.length>1&&i.uniqueSort(c)}return b&&(F=_,k=w),y};return o?s(a):a}function w(t,e,n){for(var s=0,o=e.length;o>s;s++)i(t,e[s],n);return n}function x(t,e,i,n){var s,o,r,a,l,c=p(t);if(!n&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(r=o[0]).type&&C.getById&&9===e.nodeType&&A&&S.relative[o[1].type]){if(e=(S.find.ID(r.matches[0].replace(Ct,Tt),e)||[])[0],!e)return i;t=t.slice(o.shift().value.length)}for(s=vt.needsContext.test(t)?0:o.length;s--&&(r=o[s],!S.relative[a=r.type]);)if((l=S.find[a])&&(n=l(r.matches[0].replace(Ct,Tt),ft.test(o[0].type)&&e.parentNode||e))){if(o.splice(s,1),t=n.length&&f(o),!t)return tt.apply(i,n),i;break}}return N(t,c)(n,e,!A,i,ft.test(t)),i}var _,C,T,S,E,P,N,k,H,D,I,z,A,W,M,L,O,j="sizzle"+-new Date,R=t.document,F=0,B=0,q=n(),$=n(),X=n(),Y=!1,U=function(t,e){return t===e?(Y=!0,0):0},V=typeof e,G=1<<31,Q={}.hasOwnProperty,K=[],J=K.pop,Z=K.push,tt=K.push,et=K.slice,it=K.indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(this[e]===t)return e;return-1},nt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",st="[\\x20\\t\\r\\n\\f]",ot="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",rt=ot.replace("w","w#"),at="\\["+st+"*("+ot+")"+st+"*(?:([*^$|!~]?=)"+st+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+rt+")|)|)"+st+"*\\]",lt=":("+ot+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",ct=RegExp("^"+st+"+|((?:^|[^\\\\])(?:\\\\.)*)"+st+"+$","g"),ut=RegExp("^"+st+"*,"+st+"*"),pt=RegExp("^"+st+"*([>+~]|"+st+")"+st+"*"),ft=RegExp(st+"*[+~]"),dt=RegExp("="+st+"*([^\\]'\"]*)"+st+"*\\]","g"),gt=RegExp(lt),mt=RegExp("^"+rt+"$"),vt={ID:RegExp("^#("+ot+")"),CLASS:RegExp("^\\.("+ot+")"),TAG:RegExp("^("+ot.replace("w","w*")+")"),ATTR:RegExp("^"+at),PSEUDO:RegExp("^"+lt),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+st+"*(even|odd|(([+-]|)(\\d*)n|)"+st+"*(?:([+-]|)"+st+"*(\\d+)|))"+st+"*\\)|)","i"),bool:RegExp("^(?:"+nt+")$","i"),needsContext:RegExp("^"+st+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+st+"*((?:-\\d)?\\d*)"+st+"*\\)|)(?=[^-]|$)","i")},yt=/^[^{]+\{\s*\[native \w/,bt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,wt=/^(?:input|select|textarea|button)$/i,xt=/^h\d$/i,_t=/'|\\/g,Ct=RegExp("\\\\([\\da-f]{1,6}"+st+"?|("+st+")|.)","ig"),Tt=function(t,e,i){var n="0x"+e-65536;return n!=n||i?e:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{tt.apply(K=et.call(R.childNodes),R.childNodes),K[R.childNodes.length].nodeType}catch(t){tt={apply:K.length?function(t,e){Z.apply(t,et.call(e))}:function(t,e){for(var i=t.length,n=0;t[i++]=e[n++];);t.length=i-1}}}for(_ in P=i.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},C=i.support={},D=i.setDocument=function(t){var i=t?t.ownerDocument||t:R,n=i.defaultView;return i!==I&&9===i.nodeType&&i.documentElement?(I=i,z=i.documentElement,A=!P(i),n&&n.attachEvent&&n!==n.top&&n.attachEvent("onbeforeunload",function(){D()}),C.attributes=o(function(t){return t.className="i",!t.getAttribute("className")}),C.getElementsByTagName=o(function(t){return t.appendChild(i.createComment("")),!t.getElementsByTagName("*").length}),C.getElementsByClassName=o(function(t){return t.innerHTML="<div class='a'></div><div class='a i'></div>",t.firstChild.className="i",2===t.getElementsByClassName("i").length}),C.getById=o(function(t){return z.appendChild(t).id=j,!i.getElementsByName||!i.getElementsByName(j).length}),C.getById?(S.find.ID=function(t,e){if(typeof e.getElementById!==V&&A){var i=e.getElementById(t);return i&&i.parentNode?[i]:[]}},S.filter.ID=function(t){var e=t.replace(Ct,Tt);return function(t){return t.getAttribute("id")===e}}):(delete S.find.ID,S.filter.ID=function(t){var e=t.replace(Ct,Tt);return function(t){var i=typeof t.getAttributeNode!==V&&t.getAttributeNode("id");return i&&i.value===e}}),S.find.TAG=C.getElementsByTagName?function(t,i){return typeof i.getElementsByTagName!==V?i.getElementsByTagName(t):e}:function(t,e){var i,n=[],s=0,o=e.getElementsByTagName(t);if("*"===t){for(;i=o[s++];)1===i.nodeType&&n.push(i);return n}return o},S.find.CLASS=C.getElementsByClassName&&function(t,i){return typeof i.getElementsByClassName!==V&&A?i.getElementsByClassName(t):e},M=[],W=[],(C.qsa=yt.test(i.querySelectorAll))&&(o(function(t){t.innerHTML="<select><option selected=''></option></select>",t.querySelectorAll("[selected]").length||W.push("\\["+st+"*(?:value|"+nt+")"),t.querySelectorAll(":checked").length||W.push(":checked")}),o(function(t){var e=i.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("t",""),t.querySelectorAll("[t^='']").length&&W.push("[*^$]="+st+"*(?:''|\"\")"),t.querySelectorAll(":enabled").length||W.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),W.push(",.*:")})),(C.matchesSelector=yt.test(L=z.webkitMatchesSelector||z.mozMatchesSelector||z.oMatchesSelector||z.msMatchesSelector))&&o(function(t){C.disconnectedMatch=L.call(t,"div"),L.call(t,"[s!='']:x"),M.push("!=",lt)}),W=W.length&&RegExp(W.join("|")),M=M.length&&RegExp(M.join("|")),O=yt.test(z.contains)||z.compareDocumentPosition?function(t,e){var i=9===t.nodeType?t.documentElement:t,n=e&&e.parentNode;return t===n||!(!n||1!==n.nodeType||!(i.contains?i.contains(n):t.compareDocumentPosition&&16&t.compareDocumentPosition(n)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},U=z.compareDocumentPosition?function(t,e){if(t===e)return Y=!0,0;var n=e.compareDocumentPosition&&t.compareDocumentPosition&&t.compareDocumentPosition(e);return n?1&n||!C.sortDetached&&e.compareDocumentPosition(t)===n?t===i||O(R,t)?-1:e===i||O(R,e)?1:H?it.call(H,t)-it.call(H,e):0:4&n?-1:1:t.compareDocumentPosition?-1:1}:function(t,e){var n,s=0,o=t.parentNode,r=e.parentNode,l=[t],c=[e];if(t===e)return Y=!0,0;if(!o||!r)return t===i?-1:e===i?1:o?-1:r?1:H?it.call(H,t)-it.call(H,e):0;if(o===r)return a(t,e);for(n=t;n=n.parentNode;)l.unshift(n);for(n=e;n=n.parentNode;)c.unshift(n);for(;l[s]===c[s];)s++;return s?a(l[s],c[s]):l[s]===R?-1:c[s]===R?1:0},i):I},i.matches=function(t,e){return i(t,null,null,e)},i.matchesSelector=function(t,e){if((t.ownerDocument||t)!==I&&D(t),e=e.replace(dt,"='$1']"),!(!C.matchesSelector||!A||M&&M.test(e)||W&&W.test(e)))try{var n=L.call(t,e);if(n||C.disconnectedMatch||t.document&&11!==t.document.nodeType)return n}catch(t){}return i(e,I,null,[t]).length>0},i.contains=function(t,e){return(t.ownerDocument||t)!==I&&D(t),O(t,e)},i.attr=function(t,i){(t.ownerDocument||t)!==I&&D(t);var n=S.attrHandle[i.toLowerCase()],s=n&&Q.call(S.attrHandle,i.toLowerCase())?n(t,i,!A):e;return s===e?C.attributes||!A?t.getAttribute(i):(s=t.getAttributeNode(i))&&s.specified?s.value:null:s},i.error=function(t){throw Error("Syntax error, unrecognized expression: "+t)},i.uniqueSort=function(t){var e,i=[],n=0,s=0;if(Y=!C.detectDuplicates,H=!C.sortStable&&t.slice(0),t.sort(U),Y){for(;e=t[s++];)e===t[s]&&(n=i.push(s));for(;n--;)t.splice(i[n],1)}return t},E=i.getText=function(t){var e,i="",n=0,s=t.nodeType;if(s){if(1===s||9===s||11===s){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)i+=E(t)}else if(3===s||4===s)return t.nodeValue}else for(;e=t[n];n++)i+=E(e);return i},S=i.selectors={cacheLength:50,createPseudo:s,match:vt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(Ct,Tt),t[3]=(t[4]||t[5]||"").replace(Ct,Tt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||i.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&i.error(t[0]),t},PSEUDO:function(t){var i,n=!t[5]&&t[2];return vt.CHILD.test(t[0])?null:(t[3]&&t[4]!==e?t[2]=t[4]:n&&gt.test(n)&&(i=p(n,!0))&&(i=n.indexOf(")",n.length-i)-n.length)&&(t[0]=t[0].slice(0,i),t[2]=n.slice(0,i)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(Ct,Tt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=q[t+" "];return e||(e=RegExp("(^|"+st+")"+t+"("+st+"|$)"))&&q(t,function(t){return e.test("string"==typeof t.className&&t.className||typeof t.getAttribute!==V&&t.getAttribute("class")||"")})},ATTR:function(t,e,n){return function(s){var o=i.attr(s,t);return null==o?"!="===e:!e||(o+="","="===e?o===n:"!="===e?o!==n:"^="===e?n&&0===o.indexOf(n):"*="===e?n&&o.indexOf(n)>-1:"$="===e?n&&o.slice(-n.length)===n:"~="===e?(" "+o+" ").indexOf(n)>-1:"|="===e&&(o===n||o.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,i,n,s){var o="nth"!==t.slice(0,3),r="last"!==t.slice(-4),a="of-type"===e;return 1===n&&0===s?function(t){return!!t.parentNode}:function(e,i,l){var c,h,u,p,f,d,g=o!==r?"nextSibling":"previousSibling",m=e.parentNode,v=a&&e.nodeName.toLowerCase(),y=!l&&!a;if(m){if(o){for(;g;){for(u=e;u=u[g];)if(a?u.nodeName.toLowerCase()===v:1===u.nodeType)return!1;d=g="only"===t&&!d&&"nextSibling"}return!0}if(d=[r?m.firstChild:m.lastChild],r&&y){for(h=m[j]||(m[j]={}),c=h[t]||[],f=c[0]===F&&c[1],p=c[0]===F&&c[2],u=f&&m.childNodes[f];u=++f&&u&&u[g]||(p=f=0)||d.pop();)if(1===u.nodeType&&++p&&u===e){h[t]=[F,f,p];break}}else if(y&&(c=(e[j]||(e[j]={}))[t])&&c[0]===F)p=c[1];else for(;(u=++f&&u&&u[g]||(p=f=0)||d.pop())&&((a?u.nodeName.toLowerCase()!==v:1!==u.nodeType)||!++p||(y&&((u[j]||(u[j]={}))[t]=[F,p]),u!==e)););return p-=s,p===n||0==p%n&&p/n>=0}}},PSEUDO:function(t,e){var n,o=S.pseudos[t]||S.setFilters[t.toLowerCase()]||i.error("unsupported pseudo: "+t);return o[j]?o(e):o.length>1?(n=[t,t,"",e],S.setFilters.hasOwnProperty(t.toLowerCase())?s(function(t,i){for(var n,s=o(t,e),r=s.length;r--;)n=it.call(t,s[r]),t[n]=!(i[n]=s[r])}):function(t){return o(t,0,n)}):o}},pseudos:{not:s(function(t){var e=[],i=[],n=N(t.replace(ct,"$1"));return n[j]?s(function(t,e,i,s){for(var o,r=n(t,null,s,[]),a=t.length;a--;)(o=r[a])&&(t[a]=!(e[a]=o))}):function(t,s,o){return e[0]=t,n(e,null,o,i),!i.pop()}}),has:s(function(t){return function(e){return i(t,e).length>0}}),contains:s(function(t){return function(e){return(e.textContent||e.innerText||E(e)).indexOf(t)>-1}}),lang:s(function(t){return mt.test(t||"")||i.error("unsupported lang: "+t),t=t.replace(Ct,Tt).toLowerCase(),function(e){var i;do{if(i=A?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return i=i.toLowerCase(),i===t||0===i.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var i=t.location&&t.location.hash;return i&&i.slice(1)===e.id},root:function(t){return t===z},focus:function(t){return t===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return!1===t.disabled},disabled:function(t){return!0===t.disabled},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeName>"@"||3===t.nodeType||4===t.nodeType)return!1;return!0},parent:function(t){return!S.pseudos.empty(t)},header:function(t){return xt.test(t.nodeName)},input:function(t){return wt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||e.toLowerCase()===t.type)},first:h(function(){return[0]}),last:h(function(t,e){return[e-1]}),eq:h(function(t,e,i){return[0>i?i+e:i]}),even:h(function(t,e){for(var i=0;e>i;i+=2)t.push(i);return t}),odd:h(function(t,e){for(var i=1;e>i;i+=2)t.push(i);return t}),lt:h(function(t,e,i){for(var n=0>i?i+e:i;--n>=0;)t.push(n);return t}),gt:h(function(t,e,i){for(var n=0>i?i+e:i;e>++n;)t.push(n);return t})}},S.pseudos.nth=S.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})S.pseudos[_]=l(_);for(_ in{submit:!0,reset:!0})S.pseudos[_]=c(_);u.prototype=S.filters=S.pseudos,S.setFilters=new u,N=i.compile=function(t,e){var i,n=[],s=[],o=X[t+" "];if(!o){for(e||(e=p(t)),i=e.length;i--;)o=y(e[i]),o[j]?n.push(o):s.push(o);o=X(t,b(s,n))}return o},C.sortStable=j.split("").sort(U).join("")===j,C.detectDuplicates=Y,D(),C.sortDetached=o(function(t){return 1&t.compareDocumentPosition(I.createElement("div"))}),o(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||r("type|href|height|width",function(t,i,n){return n?e:t.getAttribute(i,"type"===i.toLowerCase()?1:2)}),C.attributes&&o(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||r("value",function(t,i,n){return n||"input"!==t.nodeName.toLowerCase()?e:t.defaultValue}),o(function(t){return null==t.getAttribute("disabled")})||r(nt,function(t,i,n){var s;return n?e:(s=t.getAttributeNode(i))&&s.specified?s.value:!0===t[i]?i.toLowerCase():null}),ht.find=i,ht.expr=i.selectors,ht.expr[":"]=ht.expr.pseudos,ht.unique=i.uniqueSort,ht.text=i.getText,ht.isXMLDoc=i.isXML,ht.contains=i.contains}(t);var St={};ht.Callbacks=function(t){t="string"==typeof t?St[t]||n(t):ht.extend({},t);var i,s,o,r,a,l,c=[],h=!t.once&&[],u=function(e){for(s=t.memory&&e,o=!0,a=l||0,l=0,r=c.length,i=!0;c&&r>a;a++)if(!1===c[a].apply(e[0],e[1])&&t.stopOnFalse){s=!1;break}i=!1,c&&(h?h.length&&u(h.shift()):s?c=[]:p.disable())},p={add:function(){if(c){var e=c.length;(function e(i){ht.each(i,function(i,n){var s=ht.type(n);"function"===s?t.unique&&p.has(n)||c.push(n):n&&n.length&&"string"!==s&&e(n)})})(arguments),i?r=c.length:s&&(l=e,u(s))}return this},remove:function(){return c&&ht.each(arguments,function(t,e){for(var n;(n=ht.inArray(e,c,n))>-1;)c.splice(n,1),i&&(r>=n&&r--,a>=n&&a--)}),this},has:function(t){return t?ht.inArray(t,c)>-1:!(!c||!c.length)},empty:function(){return c=[],r=0,this},disable:function(){return c=h=s=e,this},disabled:function(){return!c},lock:function(){return h=e,s||p.disable(),this},locked:function(){return!h},fireWith:function(t,e){return!c||o&&!h||(e=e||[],e=[t,e.slice?e.slice():e],i?h.push(e):u(e)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!o}};return p},ht.extend({Deferred:function(t){var e=[["resolve","done",ht.Callbacks("once memory"),"resolved"],["reject","fail",ht.Callbacks("once memory"),"rejected"],["notify","progress",ht.Callbacks("memory")]],i="pending",n={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},then:function(){var t=arguments;return ht.Deferred(function(i){ht.each(e,function(e,o){var r=o[0],a=ht.isFunction(t[e])&&t[e];s[o[1]](function(){var t=a&&a.apply(this,arguments);t&&ht.isFunction(t.promise)?t.promise().done(i.resolve).fail(i.reject).progress(i.notify):i[r+"With"](this===n?i.promise():this,a?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?ht.extend(t,n):n}},s={};return n.pipe=n.then,ht.each(e,function(t,o){var r=o[2],a=o[3];n[o[1]]=r.add,a&&r.add(function(){i=a},e[1^t][2].disable,e[2][2].lock),s[o[0]]=function(){return s[o[0]+"With"](this===s?n:this,arguments),this},s[o[0]+"With"]=r.fireWith}),n.promise(s),t&&t.call(s,s),s},when:function(t){var e,i,n,s=0,o=ot.call(arguments),r=o.length,a=1!==r||t&&ht.isFunction(t.promise)?r:0,l=1===a?t:ht.Deferred(),c=function(t,i,n){return function(s){i[t]=this,n[t]=arguments.length>1?ot.call(arguments):s,n===e?l.notifyWith(i,n):--a||l.resolveWith(i,n)}};if(r>1)for(e=Array(r),i=Array(r),n=Array(r);r>s;s++)o[s]&&ht.isFunction(o[s].promise)?o[s].promise().done(c(s,n,o)).fail(l.reject).progress(c(s,i,e)):--a;return a||l.resolveWith(n,o),l.promise()}}),ht.support=function(e){var i,n,s,o,r,a,l,c,h,u=Q.createElement("div");if(u.setAttribute("className","t"),u.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",i=u.getElementsByTagName("*")||[],n=u.getElementsByTagName("a")[0],!n||!n.style||!i.length)return e;o=Q.createElement("select"),a=o.appendChild(Q.createElement("option")),s=u.getElementsByTagName("input")[0],n.style.cssText="top:1px;float:left;opacity:.5",e.getSetAttribute="t"!==u.className,e.leadingWhitespace=3===u.firstChild.nodeType,e.tbody=!u.getElementsByTagName("tbody").length,e.htmlSerialize=!!u.getElementsByTagName("link").length,e.style=/top/.test(n.getAttribute("style")),e.hrefNormalized="/a"===n.getAttribute("href"),e.opacity=/^0.5/.test(n.style.opacity),e.cssFloat=!!n.style.cssFloat,e.checkOn=!!s.value,e.optSelected=a.selected,e.enctype=!!Q.createElement("form").enctype,e.html5Clone="<:nav></:nav>"!==Q.createElement("nav").cloneNode(!0).outerHTML,e.inlineBlockNeedsLayout=!1,e.shrinkWrapBlocks=!1,e.pixelPosition=!1,e.deleteExpando=!0,e.noCloneEvent=!0,e.reliableMarginRight=!0,e.boxSizingReliable=!0,s.checked=!0,e.noCloneChecked=s.cloneNode(!0).checked,o.disabled=!0,e.optDisabled=!a.disabled;try{delete u.test}catch(t){e.deleteExpando=!1}for(h in s=Q.createElement("input"),s.setAttribute("value",""),e.input=""===s.getAttribute("value"),s.value="t",s.setAttribute("type","radio"),e.radioValue="t"===s.value,s.setAttribute("checked","t"),s.setAttribute("name","t"),r=Q.createDocumentFragment(),r.appendChild(s),e.appendChecked=s.checked,e.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,u.attachEvent&&(u.attachEvent("onclick",function(){e.noCloneEvent=!1}),u.cloneNode(!0).click()),{submit:!0,change:!0,focusin:!0})u.setAttribute(l="on"+h,"t"),e[h+"Bubbles"]=l in t||!1===u.attributes[l].expando;for(h in u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",e.clearCloneStyle="content-box"===u.style.backgroundClip,ht(e))break;return e.ownLast="0"!==h,ht(function(){var i,n,s,o="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",r=Q.getElementsByTagName("body")[0];r&&(i=Q.createElement("div"),i.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",r.appendChild(i).appendChild(u),u.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=u.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===s[0].offsetHeight,s[0].style.display="",s[1].style.display="none",e.reliableHiddenOffsets=c&&0===s[0].offsetHeight,u.innerHTML="",u.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",ht.swap(r,null!=r.style.zoom?{zoom:1}:{},function(){e.boxSizing=4===u.offsetWidth}),t.getComputedStyle&&(e.pixelPosition="1%"!==(t.getComputedStyle(u,null)||{}).top,e.boxSizingReliable="4px"===(t.getComputedStyle(u,null)||{width:"4px"}).width,n=u.appendChild(Q.createElement("div")),n.style.cssText=u.style.cssText=o,n.style.marginRight=n.style.width="0",u.style.width="1px",e.reliableMarginRight=!parseFloat((t.getComputedStyle(n,null)||{}).marginRight)),typeof u.style.zoom!==V&&(u.innerHTML="",u.style.cssText=o+"width:1px;padding:1px;display:inline;zoom:1",e.inlineBlockNeedsLayout=3===u.offsetWidth,u.style.display="block",u.innerHTML="<div></div>",u.firstChild.style.width="5px",e.shrinkWrapBlocks=3!==u.offsetWidth,e.inlineBlockNeedsLayout&&(r.style.zoom=1)),r.removeChild(i),i=u=s=n=null)}),i=o=r=a=n=s=null,e}({});var Et=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Pt=/([A-Z])/g;ht.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(t){return t=t.nodeType?ht.cache[t[ht.expando]]:t[ht.expando],!!t&&!a(t)},data:function(t,e,i){return s(t,e,i)},removeData:function(t,e){return o(t,e)},_data:function(t,e,i){return s(t,e,i,!0)},_removeData:function(t,e){return o(t,e,!0)},acceptData:function(t){if(t.nodeType&&1!==t.nodeType&&9!==t.nodeType)return!1;var e=t.nodeName&&ht.noData[t.nodeName.toLowerCase()];return!e||!0!==e&&t.getAttribute("classid")===e}}),ht.fn.extend({data:function(t,i){var n,s,o=null,a=0,l=this[0];if(t===e){if(this.length&&(o=ht.data(l),1===l.nodeType&&!ht._data(l,"parsedAttrs"))){for(n=l.attributes;n.length>a;a++)s=n[a].name,0===s.indexOf("data-")&&(s=ht.camelCase(s.slice(5)),r(l,s,o[s]));ht._data(l,"parsedAttrs",!0)}return o}return"object"==typeof t?this.each(function(){ht.data(this,t)}):arguments.length>1?this.each(function(){ht.data(this,t,i)}):l?r(l,t,ht.data(l,t)):null},removeData:function(t){return this.each(function(){ht.removeData(this,t)})}}),ht.extend({queue:function(t,i,n){var s;return t?(i=(i||"fx")+"queue",s=ht._data(t,i),n&&(!s||ht.isArray(n)?s=ht._data(t,i,ht.makeArray(n)):s.push(n)),s||[]):e},dequeue:function(t,e){e=e||"fx";var i=ht.queue(t,e),n=i.length,s=i.shift(),o=ht._queueHooks(t,e),r=function(){ht.dequeue(t,e)};"inprogress"===s&&(s=i.shift(),n--),s&&("fx"===e&&i.unshift("inprogress"),delete o.stop,s.call(t,r,o)),!n&&o&&o.empty.fire()},_queueHooks:function(t,e){var i=e+"queueHooks";return ht._data(t,i)||ht._data(t,i,{empty:ht.Callbacks("once memory").add(function(){ht._removeData(t,e+"queue"),ht._removeData(t,i)})})}}),ht.fn.extend({queue:function(t,i){var n=2;return"string"!=typeof t&&(i=t,t="fx",n--),n>arguments.length?ht.queue(this[0],t):i===e?this:this.each(function(){var e=ht.queue(this,t,i);ht._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ht.dequeue(this,t)})},dequeue:function(t){return this.each(function(){ht.dequeue(this,t)})},delay:function(t,e){return t=ht.fx&&ht.fx.speeds[t]||t,e=e||"fx",this.queue(e,function(e,i){var n=setTimeout(e,t);i.stop=function(){clearTimeout(n)}})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,i){var n,s=1,o=ht.Deferred(),r=this,a=this.length,l=function(){--s||o.resolveWith(r,[r])};for("string"!=typeof t&&(i=t,t=e),t=t||"fx";a--;)n=ht._data(r[a],t+"queueHooks"),n&&n.empty&&(s++,n.empty.add(l));return l(),o.promise(i)}});var Nt,kt,Ht=/[\t\r\n\f]/g,Dt=/\r/g,It=/^(?:input|select|textarea|button|object)$/i,zt=/^(?:a|area)$/i,At=/^(?:checked|selected)$/i,Wt=ht.support.getSetAttribute,Mt=ht.support.input;ht.fn.extend({attr:function(t,e){return ht.access(this,ht.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){ht.removeAttr(this,t)})},prop:function(t,e){return ht.access(this,ht.prop,t,e,arguments.length>1)},removeProp:function(t){return t=ht.propFix[t]||t,this.each(function(){try{this[t]=e,delete this[t]}catch(t){}})},addClass:function(t){var e,i,n,s,o,r=0,a=this.length,l="string"==typeof t&&t;if(ht.isFunction(t))return this.each(function(e){ht(this).addClass(t.call(this,e,this.className))});if(l)for(e=(t||"").match(pt)||[];a>r;r++)if(i=this[r],n=1===i.nodeType&&(i.className?(" "+i.className+" ").replace(Ht," "):" ")){for(o=0;s=e[o++];)0>n.indexOf(" "+s+" ")&&(n+=s+" ");i.className=ht.trim(n)}return this},removeClass:function(t){var e,i,n,s,o,r=0,a=this.length,l=0===arguments.length||"string"==typeof t&&t;if(ht.isFunction(t))return this.each(function(e){ht(this).removeClass(t.call(this,e,this.className))});if(l)for(e=(t||"").match(pt)||[];a>r;r++)if(i=this[r],n=1===i.nodeType&&(i.className?(" "+i.className+" ").replace(Ht," "):"")){for(o=0;s=e[o++];)for(;n.indexOf(" "+s+" ")>=0;)n=n.replace(" "+s+" "," ");i.className=t?ht.trim(n):""}return this},toggleClass:function(t,e){var i=typeof t;return"boolean"==typeof e&&"string"===i?e?this.addClass(t):this.removeClass(t):ht.isFunction(t)?this.each(function(i){ht(this).toggleClass(t.call(this,i,this.className,e),e)}):this.each(function(){if("string"===i)for(var e,n=0,s=ht(this),o=t.match(pt)||[];e=o[n++];)s.hasClass(e)?s.removeClass(e):s.addClass(e);else(i===V||"boolean"===i)&&(this.className&&ht._data(this,"__className__",this.className),this.className=this.className||!1===t?"":ht._data(this,"__className__")||"")})},hasClass:function(t){for(var e=" "+t+" ",i=0,n=this.length;n>i;i++)if(1===this[i].nodeType&&(" "+this[i].className+" ").replace(Ht," ").indexOf(e)>=0)return!0;return!1},val:function(t){var i,n,s,o=this[0];return arguments.length?(s=ht.isFunction(t),this.each(function(i){var o;1===this.nodeType&&(o=s?t.call(this,i,ht(this).val()):t,null==o?o="":"number"==typeof o?o+="":ht.isArray(o)&&(o=ht.map(o,function(t){return null==t?"":t+""})),n=ht.valHooks[this.type]||ht.valHooks[this.nodeName.toLowerCase()], +n&&"set"in n&&n.set(this,o,"value")!==e||(this.value=o))})):o?(n=ht.valHooks[o.type]||ht.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(i=n.get(o,"value"))!==e?i:(i=o.value,"string"==typeof i?i.replace(Dt,""):null==i?"":i)):void 0}}),ht.extend({valHooks:{option:{get:function(t){var e=ht.find.attr(t,"value");return null!=e?e:t.text}},select:{get:function(t){for(var e,i,n=t.options,s=t.selectedIndex,o="select-one"===t.type||0>s,r=o?null:[],a=o?s+1:n.length,l=0>s?a:o?s:0;a>l;l++)if(i=n[l],!(!i.selected&&l!==s||(ht.support.optDisabled?i.disabled:null!==i.getAttribute("disabled"))||i.parentNode.disabled&&ht.nodeName(i.parentNode,"optgroup"))){if(e=ht(i).val(),o)return e;r.push(e)}return r},set:function(t,e){for(var i,n,s=t.options,o=ht.makeArray(e),r=s.length;r--;)n=s[r],(n.selected=ht.inArray(ht(n).val(),o)>=0)&&(i=!0);return i||(t.selectedIndex=-1),o}}},attr:function(t,i,n){var s,o,r=t.nodeType;if(t&&3!==r&&8!==r&&2!==r)return typeof t.getAttribute===V?ht.prop(t,i,n):(1===r&&ht.isXMLDoc(t)||(i=i.toLowerCase(),s=ht.attrHooks[i]||(ht.expr.match.bool.test(i)?kt:Nt)),n===e?s&&"get"in s&&null!==(o=s.get(t,i))?o:(o=ht.find.attr(t,i),null==o?e:o):null!==n?s&&"set"in s&&(o=s.set(t,n,i))!==e?o:(t.setAttribute(i,n+""),n):(ht.removeAttr(t,i),e))},removeAttr:function(t,e){var i,n,s=0,o=e&&e.match(pt);if(o&&1===t.nodeType)for(;i=o[s++];)n=ht.propFix[i]||i,ht.expr.match.bool.test(i)?Mt&&Wt||!At.test(i)?t[n]=!1:t[ht.camelCase("default-"+i)]=t[n]=!1:ht.attr(t,i,""),t.removeAttribute(Wt?i:n)},attrHooks:{type:{set:function(t,e){if(!ht.support.radioValue&&"radio"===e&&ht.nodeName(t,"input")){var i=t.value;return t.setAttribute("type",e),i&&(t.value=i),e}}}},propFix:{for:"htmlFor",class:"className"},prop:function(t,i,n){var s,o,r,a=t.nodeType;if(t&&3!==a&&8!==a&&2!==a)return r=1!==a||!ht.isXMLDoc(t),r&&(i=ht.propFix[i]||i,o=ht.propHooks[i]),n!==e?o&&"set"in o&&(s=o.set(t,n,i))!==e?s:t[i]=n:o&&"get"in o&&null!==(s=o.get(t,i))?s:t[i]},propHooks:{tabIndex:{get:function(t){var e=ht.find.attr(t,"tabindex");return e?parseInt(e,10):It.test(t.nodeName)||zt.test(t.nodeName)&&t.href?0:-1}}}}),kt={set:function(t,e,i){return!1===e?ht.removeAttr(t,i):Mt&&Wt||!At.test(i)?t.setAttribute(!Wt&&ht.propFix[i]||i,i):t[ht.camelCase("default-"+i)]=t[i]=!0,i}},ht.each(ht.expr.match.bool.source.match(/\w+/g),function(t,i){var n=ht.expr.attrHandle[i]||ht.find.attr;ht.expr.attrHandle[i]=Mt&&Wt||!At.test(i)?function(t,i,s){var o=ht.expr.attrHandle[i],r=s?e:(ht.expr.attrHandle[i]=e)!=n(t,i,s)?i.toLowerCase():null;return ht.expr.attrHandle[i]=o,r}:function(t,i,n){return n?e:t[ht.camelCase("default-"+i)]?i.toLowerCase():null}}),Mt&&Wt||(ht.attrHooks.value={set:function(t,i,n){return ht.nodeName(t,"input")?(t.defaultValue=i,e):Nt&&Nt.set(t,i,n)}}),Wt||(Nt={set:function(t,i,n){var s=t.getAttributeNode(n);return s||t.setAttributeNode(s=t.ownerDocument.createAttribute(n)),s.value=i+="","value"===n||i===t.getAttribute(n)?i:e}},ht.expr.attrHandle.id=ht.expr.attrHandle.name=ht.expr.attrHandle.coords=function(t,i,n){var s;return n?e:(s=t.getAttributeNode(i))&&""!==s.value?s.value:null},ht.valHooks.button={get:function(t,i){var n=t.getAttributeNode(i);return n&&n.specified?n.value:e},set:Nt.set},ht.attrHooks.contenteditable={set:function(t,e,i){Nt.set(t,""!==e&&e,i)}},ht.each(["width","height"],function(t,i){ht.attrHooks[i]={set:function(t,n){return""===n?(t.setAttribute(i,"auto"),n):e}}})),ht.support.hrefNormalized||ht.each(["href","src"],function(t,e){ht.propHooks[e]={get:function(t){return t.getAttribute(e,4)}}}),ht.support.style||(ht.attrHooks.style={get:function(t){return t.style.cssText||e},set:function(t,e){return t.style.cssText=e+""}}),ht.support.optSelected||(ht.propHooks.selected={get:function(t){var e=t.parentNode;return e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex),null}}),ht.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ht.propFix[this.toLowerCase()]=this}),ht.support.enctype||(ht.propFix.enctype="encoding"),ht.each(["radio","checkbox"],function(){ht.valHooks[this]={set:function(t,i){return ht.isArray(i)?t.checked=ht.inArray(ht(t).val(),i)>=0:e}},ht.support.checkOn||(ht.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var Lt=/^(?:input|select|textarea)$/i,Ot=/^key/,jt=/^(?:mouse|contextmenu)|click/,Rt=/^(?:focusinfocus|focusoutblur)$/,Ft=/^([^.]*)(?:\.(.+)|)$/;ht.event={global:{},add:function(t,i,n,s,o){var r,a,l,c,h,u,p,f,d,g,m,v=ht._data(t);if(v){for(n.handler&&(c=n,n=c.handler,o=c.selector),n.guid||(n.guid=ht.guid++),(a=v.events)||(a=v.events={}),(u=v.handle)||(u=v.handle=function(t){return typeof ht===V||t&&ht.event.triggered===t.type?e:ht.event.dispatch.apply(u.elem,arguments)},u.elem=t),i=(i||"").match(pt)||[""],l=i.length;l--;)r=Ft.exec(i[l])||[],d=m=r[1],g=(r[2]||"").split(".").sort(),d&&(h=ht.event.special[d]||{},d=(o?h.delegateType:h.bindType)||d,h=ht.event.special[d]||{},p=ht.extend({type:d,origType:m,data:s,handler:n,guid:n.guid,selector:o,needsContext:o&&ht.expr.match.needsContext.test(o),namespace:g.join(".")},c),(f=a[d])||(f=a[d]=[],f.delegateCount=0,h.setup&&!1!==h.setup.call(t,s,g,u)||(t.addEventListener?t.addEventListener(d,u,!1):t.attachEvent&&t.attachEvent("on"+d,u))),h.add&&(h.add.call(t,p),p.handler.guid||(p.handler.guid=n.guid)),o?f.splice(f.delegateCount++,0,p):f.push(p),ht.event.global[d]=!0);t=null}},remove:function(t,e,i,n,s){var o,r,a,l,c,h,u,p,f,d,g,m=ht.hasData(t)&&ht._data(t);if(m&&(h=m.events)){for(e=(e||"").match(pt)||[""],c=e.length;c--;)if(a=Ft.exec(e[c])||[],f=g=a[1],d=(a[2]||"").split(".").sort(),f){for(u=ht.event.special[f]||{},f=(n?u.delegateType:u.bindType)||f,p=h[f]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=p.length;o--;)r=p[o],!s&&g!==r.origType||i&&i.guid!==r.guid||a&&!a.test(r.namespace)||n&&n!==r.selector&&("**"!==n||!r.selector)||(p.splice(o,1),r.selector&&p.delegateCount--,u.remove&&u.remove.call(t,r));l&&!p.length&&(u.teardown&&!1!==u.teardown.call(t,d,m.handle)||ht.removeEvent(t,f,m.handle),delete h[f])}else for(f in h)ht.event.remove(t,f+e[c],i,n,!0);ht.isEmptyObject(h)&&(delete m.handle,ht._removeData(t,"events"))}},trigger:function(i,n,s,o){var r,a,l,c,h,u,p,f=[s||Q],d=lt.call(i,"type")?i.type:i,g=lt.call(i,"namespace")?i.namespace.split("."):[];if(l=u=s=s||Q,3!==s.nodeType&&8!==s.nodeType&&!Rt.test(d+ht.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),a=0>d.indexOf(":")&&"on"+d,i=i[ht.expando]?i:new ht.Event(d,"object"==typeof i&&i),i.isTrigger=o?2:3,i.namespace=g.join("."),i.namespace_re=i.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,i.result=e,i.target||(i.target=s),n=null==n?[i]:ht.makeArray(n,[i]),h=ht.event.special[d]||{},o||!h.trigger||!1!==h.trigger.apply(s,n))){if(!o&&!h.noBubble&&!ht.isWindow(s)){for(c=h.delegateType||d,Rt.test(c+d)||(l=l.parentNode);l;l=l.parentNode)f.push(l),u=l;u===(s.ownerDocument||Q)&&f.push(u.defaultView||u.parentWindow||t)}for(p=0;(l=f[p++])&&!i.isPropagationStopped();)i.type=p>1?c:h.bindType||d,r=(ht._data(l,"events")||{})[i.type]&&ht._data(l,"handle"),r&&r.apply(l,n),r=a&&l[a],r&&ht.acceptData(l)&&r.apply&&!1===r.apply(l,n)&&i.preventDefault();if(i.type=d,!o&&!i.isDefaultPrevented()&&(!h._default||!1===h._default.apply(f.pop(),n))&&ht.acceptData(s)&&a&&s[d]&&!ht.isWindow(s)){u=s[a],u&&(s[a]=null),ht.event.triggered=d;try{s[d]()}catch(t){}ht.event.triggered=e,u&&(s[a]=u)}return i.result}},dispatch:function(t){t=ht.event.fix(t);var i,n,s,o,r,a=[],l=ot.call(arguments),c=(ht._data(this,"events")||{})[t.type]||[],h=ht.event.special[t.type]||{};if(l[0]=t,t.delegateTarget=this,!h.preDispatch||!1!==h.preDispatch.call(this,t)){for(a=ht.event.handlers.call(this,t,c),i=0;(o=a[i++])&&!t.isPropagationStopped();)for(t.currentTarget=o.elem,r=0;(s=o.handlers[r++])&&!t.isImmediatePropagationStopped();)(!t.namespace_re||t.namespace_re.test(s.namespace))&&(t.handleObj=s,t.data=s.data,n=((ht.event.special[s.origType]||{}).handle||s.handler).apply(o.elem,l),n!==e&&!1===(t.result=n)&&(t.preventDefault(),t.stopPropagation()));return h.postDispatch&&h.postDispatch.call(this,t),t.result}},handlers:function(t,i){var n,s,o,r,a=[],l=i.delegateCount,c=t.target;if(l&&c.nodeType&&(!t.button||"click"!==t.type))for(;c!=this;c=c.parentNode||this)if(1===c.nodeType&&(!0!==c.disabled||"click"!==t.type)){for(o=[],r=0;l>r;r++)s=i[r],n=s.selector+" ",o[n]===e&&(o[n]=s.needsContext?ht(n,this).index(c)>=0:ht.find(n,this,null,[c]).length),o[n]&&o.push(s);o.length&&a.push({elem:c,handlers:o})}return i.length>l&&a.push({elem:this,handlers:i.slice(l)}),a},fix:function(t){if(t[ht.expando])return t;var e,i,n,s=t.type,o=t,r=this.fixHooks[s];for(r||(this.fixHooks[s]=r=jt.test(s)?this.mouseHooks:Ot.test(s)?this.keyHooks:{}),n=r.props?this.props.concat(r.props):this.props,t=new ht.Event(o),e=n.length;e--;)i=n[e],t[i]=o[i];return t.target||(t.target=o.srcElement||Q),3===t.target.nodeType&&(t.target=t.target.parentNode),t.metaKey=!!t.metaKey,r.filter?r.filter(t,o):t},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,i){var n,s,o,r=i.button,a=i.fromElement;return null==t.pageX&&null!=i.clientX&&(s=t.target.ownerDocument||Q,o=s.documentElement,n=s.body,t.pageX=i.clientX+(o&&o.scrollLeft||n&&n.scrollLeft||0)-(o&&o.clientLeft||n&&n.clientLeft||0),t.pageY=i.clientY+(o&&o.scrollTop||n&&n.scrollTop||0)-(o&&o.clientTop||n&&n.clientTop||0)),!t.relatedTarget&&a&&(t.relatedTarget=a===t.target?i.toElement:a),t.which||r===e||(t.which=1&r?1:2&r?3:4&r?2:0),t}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==h()&&this.focus)try{return this.focus(),!1}catch(t){}},delegateType:"focusin"},blur:{trigger:function(){return this===h()&&this.blur?(this.blur(),!1):e},delegateType:"focusout"},click:{trigger:function(){return ht.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):e},_default:function(t){return ht.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){t.result!==e&&(t.originalEvent.returnValue=t.result)}}},simulate:function(t,e,i,n){var s=ht.extend(new ht.Event,i,{type:t,isSimulated:!0,originalEvent:{}});n?ht.event.trigger(s,null,e):ht.event.dispatch.call(e,s),s.isDefaultPrevented()&&i.preventDefault()}},ht.removeEvent=Q.removeEventListener?function(t,e,i){t.removeEventListener&&t.removeEventListener(e,i,!1)}:function(t,e,i){var n="on"+e;t.detachEvent&&(typeof t[n]===V&&(t[n]=null),t.detachEvent(n,i))},ht.Event=function(t,i){return this instanceof ht.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||!1===t.returnValue||t.getPreventDefault&&t.getPreventDefault()?l:c):this.type=t,i&&ht.extend(this,i),this.timeStamp=t&&t.timeStamp||ht.now(),this[ht.expando]=!0,e):new ht.Event(t,i)},ht.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=l,t&&(t.preventDefault?t.preventDefault():t.returnValue=!1)},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=l,t&&(t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=l,this.stopPropagation()}},ht.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(t,e){ht.event.special[t]={delegateType:e,bindType:e,handle:function(t){var i,n=this,s=t.relatedTarget,o=t.handleObj;return(!s||s!==n&&!ht.contains(n,s))&&(t.type=o.origType,i=o.handler.apply(this,arguments),t.type=e),i}}}),ht.support.submitBubbles||(ht.event.special.submit={setup:function(){return!ht.nodeName(this,"form")&&(ht.event.add(this,"click._submit keypress._submit",function(t){var i=t.target,n=ht.nodeName(i,"input")||ht.nodeName(i,"button")?i.form:e;n&&!ht._data(n,"submitBubbles")&&(ht.event.add(n,"submit._submit",function(t){t._submit_bubble=!0}),ht._data(n,"submitBubbles",!0))}),e)},postDispatch:function(t){t._submit_bubble&&(delete t._submit_bubble,this.parentNode&&!t.isTrigger&&ht.event.simulate("submit",this.parentNode,t,!0))},teardown:function(){return!ht.nodeName(this,"form")&&(ht.event.remove(this,"._submit"),e)}}),ht.support.changeBubbles||(ht.event.special.change={setup:function(){return Lt.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(ht.event.add(this,"propertychange._change",function(t){"checked"===t.originalEvent.propertyName&&(this._just_changed=!0)}),ht.event.add(this,"click._change",function(t){this._just_changed&&!t.isTrigger&&(this._just_changed=!1),ht.event.simulate("change",this,t,!0)})),!1):(ht.event.add(this,"beforeactivate._change",function(t){var e=t.target;Lt.test(e.nodeName)&&!ht._data(e,"changeBubbles")&&(ht.event.add(e,"change._change",function(t){!this.parentNode||t.isSimulated||t.isTrigger||ht.event.simulate("change",this.parentNode,t,!0)}),ht._data(e,"changeBubbles",!0))}),e)},handle:function(t){var i=t.target;return this!==i||t.isSimulated||t.isTrigger||"radio"!==i.type&&"checkbox"!==i.type?t.handleObj.handler.apply(this,arguments):e},teardown:function(){return ht.event.remove(this,"._change"),!Lt.test(this.nodeName)}}),ht.support.focusinBubbles||ht.each({focus:"focusin",blur:"focusout"},function(t,e){var i=0,n=function(t){ht.event.simulate(e,t.target,ht.event.fix(t),!0)};ht.event.special[e]={setup:function(){0==i++&&Q.addEventListener(t,n,!0)},teardown:function(){0==--i&&Q.removeEventListener(t,n,!0)}}}),ht.fn.extend({on:function(t,i,n,s,o){var r,a;if("object"==typeof t){for(r in"string"!=typeof i&&(n=n||i,i=e),t)this.on(r,i,n,t[r],o);return this}if(null==n&&null==s?(s=i,n=i=e):null==s&&("string"==typeof i?(s=n,n=e):(s=n,n=i,i=e)),!1===s)s=c;else if(!s)return this;return 1===o&&(a=s,s=function(t){return ht().off(t),a.apply(this,arguments)},s.guid=a.guid||(a.guid=ht.guid++)),this.each(function(){ht.event.add(this,t,s,n,i)})},one:function(t,e,i,n){return this.on(t,e,i,n,1)},off:function(t,i,n){var s,o;if(t&&t.preventDefault&&t.handleObj)return s=t.handleObj,ht(t.delegateTarget).off(s.namespace?s.origType+"."+s.namespace:s.origType,s.selector,s.handler),this;if("object"==typeof t){for(o in t)this.off(o,i,t[o]);return this}return(!1===i||"function"==typeof i)&&(n=i,i=e),!1===n&&(n=c),this.each(function(){ht.event.remove(this,t,n,i)})},trigger:function(t,e){return this.each(function(){ht.event.trigger(t,e,this)})},triggerHandler:function(t,i){var n=this[0];return n?ht.event.trigger(t,i,n,!0):e}});var Bt=/^.[^:#\[\.,]*$/,qt=/^(?:parents|prev(?:Until|All))/,$t=ht.expr.match.needsContext,Xt={children:!0,contents:!0,next:!0,prev:!0};ht.fn.extend({find:function(t){var e,i=[],n=this,s=n.length;if("string"!=typeof t)return this.pushStack(ht(t).filter(function(){for(e=0;s>e;e++)if(ht.contains(n[e],this))return!0}));for(e=0;s>e;e++)ht.find(t,n[e],i);return i=this.pushStack(s>1?ht.unique(i):i),i.selector=this.selector?this.selector+" "+t:t,i},has:function(t){var e,i=ht(t,this),n=i.length;return this.filter(function(){for(e=0;n>e;e++)if(ht.contains(this,i[e]))return!0})},not:function(t){return this.pushStack(p(this,t||[],!0))},filter:function(t){return this.pushStack(p(this,t||[],!1))},is:function(t){return!!p(this,"string"==typeof t&&$t.test(t)?ht(t):t||[],!1).length},closest:function(t,e){for(var i,n=0,s=this.length,o=[],r=$t.test(t)||"string"!=typeof t?ht(t,e||this.context):0;s>n;n++)for(i=this[n];i&&i!==e;i=i.parentNode)if(11>i.nodeType&&(r?r.index(i)>-1:1===i.nodeType&&ht.find.matchesSelector(i,t))){i=o.push(i);break}return this.pushStack(o.length>1?ht.unique(o):o)},index:function(t){return t?"string"==typeof t?ht.inArray(this[0],ht(t)):ht.inArray(t.jquery?t[0]:t,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){var i="string"==typeof t?ht(t,e):ht.makeArray(t&&t.nodeType?[t]:t),n=ht.merge(this.get(),i);return this.pushStack(ht.unique(n))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),ht.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return ht.dir(t,"parentNode")},parentsUntil:function(t,e,i){return ht.dir(t,"parentNode",i)},next:function(t){return u(t,"nextSibling")},prev:function(t){return u(t,"previousSibling")},nextAll:function(t){return ht.dir(t,"nextSibling")},prevAll:function(t){return ht.dir(t,"previousSibling")},nextUntil:function(t,e,i){return ht.dir(t,"nextSibling",i)},prevUntil:function(t,e,i){return ht.dir(t,"previousSibling",i)},siblings:function(t){return ht.sibling((t.parentNode||{}).firstChild,t)},children:function(t){return ht.sibling(t.firstChild)},contents:function(t){return ht.nodeName(t,"iframe")?t.contentDocument||t.contentWindow.document:ht.merge([],t.childNodes)}},function(t,e){ht.fn[t]=function(i,n){var s=ht.map(this,e,i);return"Until"!==t.slice(-5)&&(n=i),n&&"string"==typeof n&&(s=ht.filter(n,s)),this.length>1&&(Xt[t]||(s=ht.unique(s)),qt.test(t)&&(s=s.reverse())),this.pushStack(s)}}),ht.extend({filter:function(t,e,i){var n=e[0];return i&&(t=":not("+t+")"),1===e.length&&1===n.nodeType?ht.find.matchesSelector(n,t)?[n]:[]:ht.find.matches(t,ht.grep(e,function(t){return 1===t.nodeType}))},dir:function(t,i,n){for(var s=[],o=t[i];o&&9!==o.nodeType&&(n===e||1!==o.nodeType||!ht(o).is(n));)1===o.nodeType&&s.push(o),o=o[i];return s},sibling:function(t,e){for(var i=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&i.push(t);return i}});var Yt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Ut=/ jQuery\d+="(?:null|\d+)"/g,Vt=RegExp("<(?:"+Yt+")[\\s/>]","i"),Gt=/^\s+/,Qt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Kt=/<([\w:]+)/,Jt=/<tbody/i,Zt=/<|&#?\w+;/,te=/<(?:script|style|link)/i,ee=/^(?:checkbox|radio)$/i,ie=/checked\s*(?:[^=]|=\s*.checked.)/i,ne=/^$|\/(?:java|ecma)script/i,se=/^true\/(.*)/,oe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,re={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:ht.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},ae=f(Q),le=ae.appendChild(Q.createElement("div"));re.optgroup=re.option,re.tbody=re.tfoot=re.colgroup=re.caption=re.thead,re.th=re.td,ht.fn.extend({text:function(t){return ht.access(this,function(t){return t===e?ht.text(this):this.empty().append((this[0]&&this[0].ownerDocument||Q).createTextNode(t))},null,t,arguments.length)},append:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.appendChild(t)}})},prepend:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},remove:function(t,e){for(var i,n=t?ht.filter(t,this):this,s=0;null!=(i=n[s]);s++)e||1!==i.nodeType||ht.cleanData(w(i)),i.parentNode&&(e&&ht.contains(i.ownerDocument,i)&&v(w(i,"script")),i.parentNode.removeChild(i));return this},empty:function(){for(var t,e=0;null!=(t=this[e]);e++){for(1===t.nodeType&&ht.cleanData(w(t,!1));t.firstChild;)t.removeChild(t.firstChild);t.options&&ht.nodeName(t,"select")&&(t.options.length=0)}return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return ht.clone(this,t,e)})},html:function(t){return ht.access(this,function(t){var i=this[0]||{},n=0,s=this.length;if(t===e)return 1===i.nodeType?i.innerHTML.replace(Ut,""):e;if(!("string"!=typeof t||te.test(t)||!ht.support.htmlSerialize&&Vt.test(t)||!ht.support.leadingWhitespace&&Gt.test(t)||re[(Kt.exec(t)||["",""])[1].toLowerCase()])){t=t.replace(Qt,"<$1></$2>");try{for(;s>n;n++)i=this[n]||{},1===i.nodeType&&(ht.cleanData(w(i,!1)),i.innerHTML=t);i=0}catch(t){}}i&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=ht.map(this,function(t){return[t.nextSibling,t.parentNode]}),e=0;return this.domManip(arguments,function(i){var n=t[e++],s=t[e++];s&&(n&&n.parentNode!==s&&(n=this.nextSibling),ht(this).remove(),s.insertBefore(i,n))},!0),e?this:this.remove()},detach:function(t){return this.remove(t,!0)},domManip:function(t,e,i){t=nt.apply([],t);var n,s,o,r,a,l,c=0,h=this.length,u=this,p=h-1,f=t[0],d=ht.isFunction(f);if(d||!(1>=h||"string"!=typeof f||ht.support.checkClone)&&ie.test(f))return this.each(function(n){var s=u.eq(n);d&&(t[0]=f.call(this,n,s.html())),s.domManip(t,e,i)});if(h&&(l=ht.buildFragment(t,this[0].ownerDocument,!1,!i&&this),n=l.firstChild,1===l.childNodes.length&&(l=n),n)){for(r=ht.map(w(l,"script"),g),o=r.length;h>c;c++)s=l,c!==p&&(s=ht.clone(s,!0,!0),o&&ht.merge(r,w(s,"script"))),e.call(this[c],s,c);if(o)for(a=r[r.length-1].ownerDocument,ht.map(r,m),c=0;o>c;c++)s=r[c],ne.test(s.type||"")&&!ht._data(s,"globalEval")&&ht.contains(a,s)&&(s.src?ht._evalUrl(s.src):ht.globalEval((s.text||s.textContent||s.innerHTML||"").replace(oe,"")));l=n=null}return this}}),ht.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){ht.fn[t]=function(t){for(var i,n=0,s=[],o=ht(t),r=o.length-1;r>=n;n++)i=n===r?this:this.clone(!0),ht(o[n])[e](i),st.apply(s,i.get());return this.pushStack(s)}}),ht.extend({clone:function(t,e,i){var n,s,o,r,a,l=ht.contains(t.ownerDocument,t);if(ht.support.html5Clone||ht.isXMLDoc(t)||!Vt.test("<"+t.nodeName+">")?o=t.cloneNode(!0):(le.innerHTML=t.outerHTML,le.removeChild(o=le.firstChild)),!(ht.support.noCloneEvent&&ht.support.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||ht.isXMLDoc(t)))for(n=w(o),a=w(t),r=0;null!=(s=a[r]);++r)n[r]&&b(s,n[r]);if(e)if(i)for(a=a||w(t),n=n||w(o),r=0;null!=(s=a[r]);r++)y(s,n[r]);else y(t,o);return n=w(o,"script"),n.length>0&&v(n,!l&&w(t,"script")),n=a=s=null,o},buildFragment:function(t,e,i,n){for(var s,o,r,a,l,c,h,u=t.length,p=f(e),d=[],g=0;u>g;g++)if(o=t[g],o||0===o)if("object"===ht.type(o))ht.merge(d,o.nodeType?[o]:o);else if(Zt.test(o)){for(a=a||p.appendChild(e.createElement("div")),l=(Kt.exec(o)||["",""])[1].toLowerCase(),h=re[l]||re._default,a.innerHTML=h[1]+o.replace(Qt,"<$1></$2>")+h[2],s=h[0];s--;)a=a.lastChild;if(!ht.support.leadingWhitespace&&Gt.test(o)&&d.push(e.createTextNode(Gt.exec(o)[0])),!ht.support.tbody)for(o="table"!==l||Jt.test(o)?"<table>"!==h[1]||Jt.test(o)?0:a:a.firstChild,s=o&&o.childNodes.length;s--;)ht.nodeName(c=o.childNodes[s],"tbody")&&!c.childNodes.length&&o.removeChild(c);for(ht.merge(d,a.childNodes),a.textContent="";a.firstChild;)a.removeChild(a.firstChild);a=p.lastChild}else d.push(e.createTextNode(o));for(a&&p.removeChild(a),ht.support.appendChecked||ht.grep(w(d,"input"),x),g=0;o=d[g++];)if((!n||-1===ht.inArray(o,n))&&(r=ht.contains(o.ownerDocument,o),a=w(p.appendChild(o),"script"),r&&v(a),i))for(s=0;o=a[s++];)ne.test(o.type||"")&&i.push(o);return a=null,p},cleanData:function(t,e){for(var i,n,s,o,r=0,a=ht.expando,l=ht.cache,c=ht.support.deleteExpando,h=ht.event.special;null!=(i=t[r]);r++)if((e||ht.acceptData(i))&&(s=i[a],o=s&&l[s])){if(o.events)for(n in o.events)h[n]?ht.event.remove(i,n):ht.removeEvent(i,n,o.handle);l[s]&&(delete l[s],c?delete i[a]:typeof i.removeAttribute!==V?i.removeAttribute(a):i[a]=null,et.push(s))}},_evalUrl:function(t){return ht.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})}}),ht.fn.extend({wrapAll:function(t){if(ht.isFunction(t))return this.each(function(e){ht(this).wrapAll(t.call(this,e))});if(this[0]){var e=ht(t,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstChild&&1===t.firstChild.nodeType;)t=t.firstChild;return t}).append(this)}return this},wrapInner:function(t){return ht.isFunction(t)?this.each(function(e){ht(this).wrapInner(t.call(this,e))}):this.each(function(){var e=ht(this),i=e.contents();i.length?i.wrapAll(t):e.append(t)})},wrap:function(t){var e=ht.isFunction(t);return this.each(function(i){ht(this).wrapAll(e?t.call(this,i):t)})},unwrap:function(){return this.parent().each(function(){ht.nodeName(this,"body")||ht(this).replaceWith(this.childNodes)}).end()}});var ce,he,ue,pe=/alpha\([^)]*\)/i,fe=/opacity\s*=\s*([^)]*)/,de=/^(top|right|bottom|left)$/,ge=/^(none|table(?!-c[ea]).+)/,me=/^margin/,ve=RegExp("^("+ut+")(.*)$","i"),ye=RegExp("^("+ut+")(?!px)[a-z%]+$","i"),be=RegExp("^([+-])=("+ut+")","i"),we={BODY:"block"},xe={position:"absolute",visibility:"hidden",display:"block"},_e={letterSpacing:0,fontWeight:400},Ce=["Top","Right","Bottom","Left"],Te=["Webkit","O","Moz","ms"];ht.fn.extend({css:function(t,i){return ht.access(this,function(t,i,n){var s,o,r={},a=0;if(ht.isArray(i)){for(o=he(t),s=i.length;s>a;a++)r[i[a]]=ht.css(t,i[a],!1,o);return r}return n!==e?ht.style(t,i,n):ht.css(t,i)},t,i,arguments.length>1)},show:function(){return T(this,!0)},hide:function(){return T(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){C(this)?ht(this).show():ht(this).hide()})}}),ht.extend({cssHooks:{opacity:{get:function(t,e){if(e){var i=ue(t,"opacity");return""===i?"1":i}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:ht.support.cssFloat?"cssFloat":"styleFloat"},style:function(t,i,n,s){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var o,r,a,l=ht.camelCase(i),c=t.style;if(i=ht.cssProps[l]||(ht.cssProps[l]=_(c,l)),a=ht.cssHooks[i]||ht.cssHooks[l],n===e)return a&&"get"in a&&(o=a.get(t,!1,s))!==e?o:c[i];if(r=typeof n,"string"===r&&(o=be.exec(n))&&(n=(o[1]+1)*o[2]+parseFloat(ht.css(t,i)),r="number"),!(null==n||"number"===r&&isNaN(n)||("number"!==r||ht.cssNumber[l]||(n+="px"),ht.support.clearCloneStyle||""!==n||0!==i.indexOf("background")||(c[i]="inherit"),a&&"set"in a&&(n=a.set(t,n,s))===e)))try{c[i]=n}catch(t){}}},css:function(t,i,n,s){var o,r,a,l=ht.camelCase(i);return i=ht.cssProps[l]||(ht.cssProps[l]=_(t.style,l)),a=ht.cssHooks[i]||ht.cssHooks[l],a&&"get"in a&&(r=a.get(t,!0,n)),r===e&&(r=ue(t,i,s)),"normal"===r&&i in _e&&(r=_e[i]),""===n||n?(o=parseFloat(r),!0===n||ht.isNumeric(o)?o||0:r):r}}),t.getComputedStyle?(he=function(e){return t.getComputedStyle(e,null)},ue=function(t,i,n){var s,o,r,a=n||he(t),l=a?a.getPropertyValue(i)||a[i]:e,c=t.style;return a&&(""!==l||ht.contains(t.ownerDocument,t)||(l=ht.style(t,i)),ye.test(l)&&me.test(i)&&(s=c.width,o=c.minWidth,r=c.maxWidth,c.minWidth=c.maxWidth=c.width=l,l=a.width,c.width=s,c.minWidth=o,c.maxWidth=r)),l}):Q.documentElement.currentStyle&&(he=function(t){return t.currentStyle},ue=function(t,i,n){var s,o,r,a=n||he(t),l=a?a[i]:e,c=t.style;return null==l&&c&&c[i]&&(l=c[i]),ye.test(l)&&!de.test(i)&&(s=c.left,o=t.runtimeStyle,r=o&&o.left,r&&(o.left=t.currentStyle.left),c.left="fontSize"===i?"1em":l,l=c.pixelLeft+"px",c.left=s,r&&(o.left=r)),""===l?"auto":l}),ht.each(["height","width"],function(t,i){ht.cssHooks[i]={get:function(t,n,s){return n?0===t.offsetWidth&&ge.test(ht.css(t,"display"))?ht.swap(t,xe,function(){return P(t,i,s)}):P(t,i,s):e},set:function(t,e,n){var s=n&&he(t);return S(t,e,n?E(t,i,n,ht.support.boxSizing&&"border-box"===ht.css(t,"boxSizing",!1,s),s):0)}}}),ht.support.opacity||(ht.cssHooks.opacity={get:function(t,e){return fe.test((e&&t.currentStyle?t.currentStyle.filter:t.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":e?"1":""},set:function(t,e){var i=t.style,n=t.currentStyle,s=ht.isNumeric(e)?"alpha(opacity="+100*e+")":"",o=n&&n.filter||i.filter||"";i.zoom=1,(e>=1||""===e)&&""===ht.trim(o.replace(pe,""))&&i.removeAttribute&&(i.removeAttribute("filter"),""===e||n&&!n.filter)||(i.filter=pe.test(o)?o.replace(pe,s):o+" "+s)}}),ht(function(){ht.support.reliableMarginRight||(ht.cssHooks.marginRight={get:function(t,i){return i?ht.swap(t,{display:"inline-block"},ue,[t,"marginRight"]):e}}),!ht.support.pixelPosition&&ht.fn.position&&ht.each(["top","left"],function(t,i){ht.cssHooks[i]={get:function(t,n){return n?(n=ue(t,i),ye.test(n)?ht(t).position()[i]+"px":n):e}}})}),ht.expr&&ht.expr.filters&&(ht.expr.filters.hidden=function(t){return 0>=t.offsetWidth&&0>=t.offsetHeight||!ht.support.reliableHiddenOffsets&&"none"===(t.style&&t.style.display||ht.css(t,"display"))},ht.expr.filters.visible=function(t){return!ht.expr.filters.hidden(t)}),ht.each({margin:"",padding:"",border:"Width"},function(t,e){ht.cssHooks[t+e]={expand:function(i){for(var n=0,s={},o="string"==typeof i?i.split(" "):[i];4>n;n++)s[t+Ce[n]+e]=o[n]||o[n-2]||o[0];return s}},me.test(t)||(ht.cssHooks[t+e].set=S)});var Se=/%20/g,Ee=/\[\]$/,Pe=/\r?\n/g,Ne=/^(?:submit|button|image|reset|file)$/i,ke=/^(?:input|select|textarea|keygen)/i;ht.fn.extend({serialize:function(){return ht.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=ht.prop(this,"elements");return t?ht.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!ht(this).is(":disabled")&&ke.test(this.nodeName)&&!Ne.test(t)&&(this.checked||!ee.test(t))}).map(function(t,e){var i=ht(this).val();return null==i?null:ht.isArray(i)?ht.map(i,function(t){return{name:e.name,value:t.replace(Pe,"\r\n")}}):{name:e.name,value:i.replace(Pe,"\r\n")}}).get()}}),ht.param=function(t,i){var n,s=[],o=function(t,e){e=ht.isFunction(e)?e():null==e?"":e,s[s.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(i===e&&(i=ht.ajaxSettings&&ht.ajaxSettings.traditional),ht.isArray(t)||t.jquery&&!ht.isPlainObject(t))ht.each(t,function(){o(this.name,this.value)});else for(n in t)H(n,t[n],i,o);return s.join("&").replace(Se,"+")},ht.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){ht.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}}),ht.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)},bind:function(t,e,i){return this.on(t,null,e,i)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,i,n){return this.on(e,t,i,n)},undelegate:function(t,e,i){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",i)}});var He,De,Ie=ht.now(),ze=/\?/,Ae=/#.*$/,We=/([?&])_=[^&]*/,Me=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Le=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Oe=/^(?:GET|HEAD)$/,je=/^\/\//,Re=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Fe=ht.fn.load,Be={},qe={},$e="*/".concat("*");try{De=G.href}catch(t){De=Q.createElement("a"),De.href="",De=De.href}He=Re.exec(De.toLowerCase())||[],ht.fn.load=function(t,i,n){if("string"!=typeof t&&Fe)return Fe.apply(this,arguments);var s,o,r,a=this,l=t.indexOf(" ");return l>=0&&(s=t.slice(l,t.length),t=t.slice(0,l)),ht.isFunction(i)?(n=i,i=e):i&&"object"==typeof i&&(r="POST"),a.length>0&&ht.ajax({url:t,type:r,dataType:"html",data:i}).done(function(t){o=arguments,a.html(s?ht("<div>").append(ht.parseHTML(t)).find(s):t)}).complete(n&&function(t,e){a.each(n,o||[t.responseText,e,t])}),this},ht.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){ht.fn[e]=function(t){return this.on(e,t)}}),ht.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:De,type:"GET", +isLocal:Le.test(He[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ht.parseJSON,"text xml":ht.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?z(z(t,ht.ajaxSettings),e):z(ht.ajaxSettings,t)},ajaxPrefilter:D(Be),ajaxTransport:D(qe),ajax:function(t,i){function n(t,i,n,s){var o,u,y,b,x,C=i;2!==w&&(w=2,l&&clearTimeout(l),h=e,a=s||"",_.readyState=t>0?4:0,o=t>=200&&300>t||304===t,n&&(b=A(p,_,n)),b=W(p,b,_,o),o?(p.ifModified&&(x=_.getResponseHeader("Last-Modified"),x&&(ht.lastModified[r]=x),x=_.getResponseHeader("etag"),x&&(ht.etag[r]=x)),204===t||"HEAD"===p.type?C="nocontent":304===t?C="notmodified":(C=b.state,u=b.data,y=b.error,o=!y)):(y=C,(t||!C)&&(C="error",0>t&&(t=0))),_.status=t,_.statusText=(i||C)+"",o?g.resolveWith(f,[u,C,_]):g.rejectWith(f,[_,C,y]),_.statusCode(v),v=e,c&&d.trigger(o?"ajaxSuccess":"ajaxError",[_,p,o?u:y]),m.fireWith(f,[_,C]),c&&(d.trigger("ajaxComplete",[_,p]),--ht.active||ht.event.trigger("ajaxStop")))}"object"==typeof t&&(i=t,t=e),i=i||{};var s,o,r,a,l,c,h,u,p=ht.ajaxSetup({},i),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?ht(f):ht.event,g=ht.Deferred(),m=ht.Callbacks("once memory"),v=p.statusCode||{},y={},b={},w=0,x="canceled",_={readyState:0,getResponseHeader:function(t){var e;if(2===w){if(!u)for(u={};e=Me.exec(a);)u[e[1].toLowerCase()]=e[2];e=u[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===w?a:null},setRequestHeader:function(t,e){var i=t.toLowerCase();return w||(t=b[i]=b[i]||t,y[t]=e),this},overrideMimeType:function(t){return w||(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>w)for(e in t)v[e]=[v[e],t[e]];else _.always(t[_.status]);return this},abort:function(t){var e=t||x;return h&&h.abort(e),n(0,e),this}};if(g.promise(_).complete=m.add,_.success=_.done,_.error=_.fail,p.url=((t||p.url||De)+"").replace(Ae,"").replace(je,He[1]+"//"),p.type=i.method||i.type||p.method||p.type,p.dataTypes=ht.trim(p.dataType||"*").toLowerCase().match(pt)||[""],null==p.crossDomain&&(s=Re.exec(p.url.toLowerCase()),p.crossDomain=!(!s||s[1]===He[1]&&s[2]===He[2]&&(s[3]||("http:"===s[1]?"80":"443"))===(He[3]||("http:"===He[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ht.param(p.data,p.traditional)),I(Be,p,i,_),2===w)return _;for(o in c=p.global,c&&0==ht.active++&&ht.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Oe.test(p.type),r=p.url,p.hasContent||(p.data&&(r=p.url+=(ze.test(r)?"&":"?")+p.data,delete p.data),!1===p.cache&&(p.url=We.test(r)?r.replace(We,"$1_="+Ie++):r+(ze.test(r)?"&":"?")+"_="+Ie++)),p.ifModified&&(ht.lastModified[r]&&_.setRequestHeader("If-Modified-Since",ht.lastModified[r]),ht.etag[r]&&_.setRequestHeader("If-None-Match",ht.etag[r])),(p.data&&p.hasContent&&!1!==p.contentType||i.contentType)&&_.setRequestHeader("Content-Type",p.contentType),_.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+$e+"; q=0.01":""):p.accepts["*"]),p.headers)_.setRequestHeader(o,p.headers[o]);if(p.beforeSend&&(!1===p.beforeSend.call(f,_,p)||2===w))return _.abort();for(o in x="abort",{success:1,error:1,complete:1})_[o](p[o]);if(h=I(qe,p,i,_)){_.readyState=1,c&&d.trigger("ajaxSend",[_,p]),p.async&&p.timeout>0&&(l=setTimeout(function(){_.abort("timeout")},p.timeout));try{w=1,h.send(y,n)}catch(t){if(!(2>w))throw t;n(-1,t)}}else n(-1,"No Transport");return _},getJSON:function(t,e,i){return ht.get(t,e,i,"json")},getScript:function(t,i){return ht.get(t,e,i,"script")}}),ht.each(["get","post"],function(t,i){ht[i]=function(t,n,s,o){return ht.isFunction(n)&&(o=o||s,s=n,n=e),ht.ajax({url:t,type:i,dataType:o,data:n,success:s})}}),ht.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(t){return ht.globalEval(t),t}}}),ht.ajaxPrefilter("script",function(t){t.cache===e&&(t.cache=!1),t.crossDomain&&(t.type="GET",t.global=!1)}),ht.ajaxTransport("script",function(t){if(t.crossDomain){var i,n=Q.head||ht("head")[0]||Q.documentElement;return{send:function(e,s){i=Q.createElement("script"),i.async=!0,t.scriptCharset&&(i.charset=t.scriptCharset),i.src=t.url,i.onload=i.onreadystatechange=function(t,e){(e||!i.readyState||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=null,i.parentNode&&i.parentNode.removeChild(i),i=null,e||s(200,"success"))},n.insertBefore(i,n.firstChild)},abort:function(){i&&i.onload(e,!0)}}}});var Xe=[],Ye=/(=)\?(?=&|$)|\?\?/;ht.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Xe.pop()||ht.expando+"_"+Ie++;return this[t]=!0,t}}),ht.ajaxPrefilter("json jsonp",function(i,n,s){var o,r,a,l=!1!==i.jsonp&&(Ye.test(i.url)?"url":"string"==typeof i.data&&!(i.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ye.test(i.data)&&"data");return l||"jsonp"===i.dataTypes[0]?(o=i.jsonpCallback=ht.isFunction(i.jsonpCallback)?i.jsonpCallback():i.jsonpCallback,l?i[l]=i[l].replace(Ye,"$1"+o):!1!==i.jsonp&&(i.url+=(ze.test(i.url)?"&":"?")+i.jsonp+"="+o),i.converters["script json"]=function(){return a||ht.error(o+" was not called"),a[0]},i.dataTypes[0]="json",r=t[o],t[o]=function(){a=arguments},s.always(function(){t[o]=r,i[o]&&(i.jsonpCallback=n.jsonpCallback,Xe.push(o)),a&&ht.isFunction(r)&&r(a[0]),a=r=e}),"script"):e});var Ue,Ve,Ge=0,Qe=t.ActiveXObject&&function(){var t;for(t in Ue)Ue[t](e,!0)};ht.ajaxSettings.xhr=t.ActiveXObject?function(){return!this.isLocal&&M()||L()}:M,Ve=ht.ajaxSettings.xhr(),ht.support.cors=!!Ve&&"withCredentials"in Ve,Ve=ht.support.ajax=!!Ve,Ve&&ht.ajaxTransport(function(i){var n;if(!i.crossDomain||ht.support.cors)return{send:function(s,o){var r,a,l=i.xhr();if(i.username?l.open(i.type,i.url,i.async,i.username,i.password):l.open(i.type,i.url,i.async),i.xhrFields)for(a in i.xhrFields)l[a]=i.xhrFields[a];i.mimeType&&l.overrideMimeType&&l.overrideMimeType(i.mimeType),i.crossDomain||s["X-Requested-With"]||(s["X-Requested-With"]="XMLHttpRequest");try{for(a in s)l.setRequestHeader(a,s[a])}catch(t){}l.send(i.hasContent&&i.data||null),n=function(t,s){var a,c,h,u;try{if(n&&(s||4===l.readyState))if(n=e,r&&(l.onreadystatechange=ht.noop,Qe&&delete Ue[r]),s)4!==l.readyState&&l.abort();else{u={},a=l.status,c=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(u.text=l.responseText);try{h=l.statusText}catch(t){h=""}a||!i.isLocal||i.crossDomain?1223===a&&(a=204):a=u.text?200:404}}catch(t){s||o(-1,t)}u&&o(a,h,u,c)},i.async?4===l.readyState?setTimeout(n):(r=++Ge,Qe&&(Ue||(Ue={},ht(t).unload(Qe)),Ue[r]=n),l.onreadystatechange=n):n()},abort:function(){n&&n(e,!0)}}});var Ke,Je,Ze=/^(?:toggle|show|hide)$/,ti=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),ei=/queueHooks$/,ii=[B],ni={"*":[function(t,e){var i=this.createTween(t,e),n=i.cur(),s=ti.exec(e),o=s&&s[3]||(ht.cssNumber[t]?"":"px"),r=(ht.cssNumber[t]||"px"!==o&&+n)&&ti.exec(ht.css(i.elem,t)),a=1,l=20;if(r&&r[3]!==o){o=o||r[3],s=s||[],r=+n||1;do{a=a||".5",r/=a,ht.style(i.elem,t,r+o)}while(a!==(a=i.cur()/n)&&1!==a&&--l)}return s&&(r=i.start=+r||+n||0,i.unit=o,i.end=s[1]?r+(s[1]+1)*s[2]:+s[2]),i}]};ht.Animation=ht.extend(R,{tweener:function(t,e){ht.isFunction(t)?(e=t,t=["*"]):t=t.split(" ");for(var i,n=0,s=t.length;s>n;n++)i=t[n],ni[i]=ni[i]||[],ni[i].unshift(e)},prefilter:function(t,e){e?ii.unshift(t):ii.push(t)}}),ht.Tween=q,q.prototype={constructor:q,init:function(t,e,i,n,s,o){this.elem=t,this.prop=i,this.easing=s||"swing",this.options=e,this.start=this.now=this.cur(),this.end=n,this.unit=o||(ht.cssNumber[i]?"":"px")},cur:function(){var t=q.propHooks[this.prop];return t&&t.get?t.get(this):q.propHooks._default.get(this)},run:function(t){var e,i=q.propHooks[this.prop];return this.pos=e=this.options.duration?ht.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):q.propHooks._default.set(this),this}},q.prototype.init.prototype=q.prototype,q.propHooks={_default:{get:function(t){var e;return null==t.elem[t.prop]||t.elem.style&&null!=t.elem.style[t.prop]?(e=ht.css(t.elem,t.prop,""),e&&"auto"!==e?e:0):t.elem[t.prop]},set:function(t){ht.fx.step[t.prop]?ht.fx.step[t.prop](t):t.elem.style&&(null!=t.elem.style[ht.cssProps[t.prop]]||ht.cssHooks[t.prop])?ht.style(t.elem,t.prop,t.now+t.unit):t.elem[t.prop]=t.now}}},q.propHooks.scrollTop=q.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},ht.each(["toggle","show","hide"],function(t,e){var i=ht.fn[e];ht.fn[e]=function(t,n,s){return null==t||"boolean"==typeof t?i.apply(this,arguments):this.animate($(e,!0),t,n,s)}}),ht.fn.extend({fadeTo:function(t,e,i,n){return this.filter(C).css("opacity",0).show().end().animate({opacity:e},t,i,n)},animate:function(t,e,i,n){var s=ht.isEmptyObject(t),o=ht.speed(e,i,n),r=function(){var e=R(this,ht.extend({},t),o);(s||ht._data(this,"finish"))&&e.stop(!0)};return r.finish=r,s||!1===o.queue?this.each(r):this.queue(o.queue,r)},stop:function(t,i,n){var s=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=i,i=t,t=e),i&&!1!==t&&this.queue(t||"fx",[]),this.each(function(){var e=!0,i=null!=t&&t+"queueHooks",o=ht.timers,r=ht._data(this);if(i)r[i]&&r[i].stop&&s(r[i]);else for(i in r)r[i]&&r[i].stop&&ei.test(i)&&s(r[i]);for(i=o.length;i--;)o[i].elem!==this||null!=t&&o[i].queue!==t||(o[i].anim.stop(n),e=!1,o.splice(i,1));(e||!n)&&ht.dequeue(this,t)})},finish:function(t){return!1!==t&&(t=t||"fx"),this.each(function(){var e,i=ht._data(this),n=i[t+"queue"],s=i[t+"queueHooks"],o=ht.timers,r=n?n.length:0;for(i.finish=!0,ht.queue(this,t,[]),s&&s.stop&&s.stop.call(this,!0),e=o.length;e--;)o[e].elem===this&&o[e].queue===t&&(o[e].anim.stop(!0),o.splice(e,1));for(e=0;r>e;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete i.finish})}}),ht.each({slideDown:$("show"),slideUp:$("hide"),slideToggle:$("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){ht.fn[t]=function(t,i,n){return this.animate(e,t,i,n)}}),ht.speed=function(t,e,i){var n=t&&"object"==typeof t?ht.extend({},t):{complete:i||!i&&e||ht.isFunction(t)&&t,duration:t,easing:i&&e||e&&!ht.isFunction(e)&&e};return n.duration=ht.fx.off?0:"number"==typeof n.duration?n.duration:n.duration in ht.fx.speeds?ht.fx.speeds[n.duration]:ht.fx.speeds._default,(null==n.queue||!0===n.queue)&&(n.queue="fx"),n.old=n.complete,n.complete=function(){ht.isFunction(n.old)&&n.old.call(this),n.queue&&ht.dequeue(this,n.queue)},n},ht.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2}},ht.timers=[],ht.fx=q.prototype.init,ht.fx.tick=function(){var t,i=ht.timers,n=0;for(Ke=ht.now();i.length>n;n++)t=i[n],t()||i[n]!==t||i.splice(n--,1);i.length||ht.fx.stop(),Ke=e},ht.fx.timer=function(t){t()&&ht.timers.push(t)&&ht.fx.start()},ht.fx.interval=13,ht.fx.start=function(){Je||(Je=setInterval(ht.fx.tick,ht.fx.interval))},ht.fx.stop=function(){clearInterval(Je),Je=null},ht.fx.speeds={slow:600,fast:200,_default:400},ht.fx.step={},ht.expr&&ht.expr.filters&&(ht.expr.filters.animated=function(t){return ht.grep(ht.timers,function(e){return t===e.elem}).length}),ht.fn.offset=function(t){if(arguments.length)return t===e?this:this.each(function(e){ht.offset.setOffset(this,t,e)});var i,n,s={top:0,left:0},o=this[0],r=o&&o.ownerDocument;return r?(i=r.documentElement,ht.contains(i,o)?(typeof o.getBoundingClientRect!==V&&(s=o.getBoundingClientRect()),n=X(r),{top:s.top+(n.pageYOffset||i.scrollTop)-(i.clientTop||0),left:s.left+(n.pageXOffset||i.scrollLeft)-(i.clientLeft||0)}):s):void 0},ht.offset={setOffset:function(t,e,i){var n=ht.css(t,"position");"static"===n&&(t.style.position="relative");var s,o,r=ht(t),a=r.offset(),l=ht.css(t,"top"),c=ht.css(t,"left"),h=("absolute"===n||"fixed"===n)&&ht.inArray("auto",[l,c])>-1,u={},p={};h?(p=r.position(),s=p.top,o=p.left):(s=parseFloat(l)||0,o=parseFloat(c)||0),ht.isFunction(e)&&(e=e.call(t,i,a)),null!=e.top&&(u.top=e.top-a.top+s),null!=e.left&&(u.left=e.left-a.left+o),"using"in e?e.using.call(t,u):r.css(u)}},ht.fn.extend({position:function(){if(this[0]){var t,e,i={top:0,left:0},n=this[0];return"fixed"===ht.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),ht.nodeName(t[0],"html")||(i=t.offset()),i.top+=ht.css(t[0],"borderTopWidth",!0),i.left+=ht.css(t[0],"borderLeftWidth",!0)),{top:e.top-i.top-ht.css(n,"marginTop",!0),left:e.left-i.left-ht.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||K;t&&!ht.nodeName(t,"html")&&"static"===ht.css(t,"position");)t=t.offsetParent;return t||K})}}),ht.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var n=/Y/.test(i);ht.fn[t]=function(s){return ht.access(this,function(t,s,o){var r=X(t);return o===e?r?i in r?r[i]:r.document.documentElement[s]:t[s]:(r?r.scrollTo(n?ht(r).scrollLeft():o,n?o:ht(r).scrollTop()):t[s]=o,e)},t,s,arguments.length,null)}}),ht.each({Height:"height",Width:"width"},function(t,i){ht.each({padding:"inner"+t,content:i,"":"outer"+t},function(n,s){ht.fn[s]=function(s,o){var r=arguments.length&&(n||"boolean"!=typeof s),a=n||(!0===s||!0===o?"margin":"border");return ht.access(this,function(i,n,s){var o;return ht.isWindow(i)?i.document.documentElement["client"+t]:9===i.nodeType?(o=i.documentElement,Math.max(i.body["scroll"+t],o["scroll"+t],i.body["offset"+t],o["offset"+t],o["client"+t])):s===e?ht.css(i,n,a):ht.style(i,n,s,a)},i,r?s:e,r,null)}})}),ht.fn.size=function(){return this.length},ht.fn.andSelf=ht.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=ht:(t.jQuery=t.$=ht,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ht}))})(window),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){function e(e,n){var s,o,r,a=e.nodeName.toLowerCase();return"area"===a?(s=e.parentNode,o=s.name,!(!e.href||!o||"map"!==s.nodeName.toLowerCase())&&(r=t("img[usemap='#"+o+"']")[0],!!r&&i(r))):(/^(input|select|textarea|button|object)$/.test(a)?!e.disabled:"a"===a&&e.href||n)&&i(e)}function i(e){return t.expr.filters.visible(e)&&!t(e).parents().addBack().filter(function(){return"hidden"===t.css(this,"visibility")}).length}t.ui=t.ui||{},t.extend(t.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),t.fn.extend({scrollParent:function(e){var i=this.css("position"),n="absolute"===i,s=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return(!n||"static"!==e.css("position"))&&s.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,n){return!!t.data(e,n[3])},focusable:function(i){return e(i,!isNaN(t.attr(i,"tabindex")))},tabbable:function(i){var n=t.attr(i,"tabindex"),s=isNaN(n);return(s||n>=0)&&e(i,!s)}}),t("<a>").outerWidth(1).jquery||t.each(["Width","Height"],function(e,i){function n(e,i,n,o){return t.each(s,function(){i-=parseFloat(t.css(e,"padding"+this))||0,n&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var s="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),r={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?r["inner"+i].call(this):this.each(function(){t(this).css(o,n(this,e)+"px")})},t.fn["outer"+i]=function(e,s){return"number"!=typeof e?r["outer"+i].call(this,e):this.each(function(){t(this).css(o,n(this,e,!0,s)+"px")})}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(t.fn.removeData=function(e){return function(i){return arguments.length?e.call(this,t.camelCase(i)):e.call(this)}}(t.fn.removeData)),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),t.fn.extend({focus:function(e){return function(i,n){return"number"==typeof i?this.each(function(){var e=this;setTimeout(function(){t(e).focus(),n&&n.call(e)},i)}):e.apply(this,arguments)}}(t.fn.focus),disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(e){if(void 0!==e)return this.css("zIndex",e);if(this.length)for(var i,n,s=t(this[0]);s.length&&s[0]!==document;){if(i=s.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(n=parseInt(s.css("zIndex"),10),!isNaN(n)&&0!==n))return n;s=s.parent()}return 0}}),t.ui.plugin={add:function(e,i,n){var s,o=t.ui[e].prototype;for(s in n)o.plugins[s]=o.plugins[s]||[],o.plugins[s].push([i,n[s]])},call:function(t,e,i,n){var s,o=t.plugins[e];if(o&&(n||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(s=0;o.length>s;s++)t.options[o[s][0]]&&o[s][1].apply(t.element,i)}};var n=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var n,s,o;for(o=0;null!=(s=i[o]);o++)try{n=t._data(s,"events"),n&&n.remove&&t(s).triggerHandler("remove")}catch(t){}e(i)}}(t.cleanData),t.widget=function(e,i,n){var s,o,r,a,l={},c=e.split(".")[0];return e=e.split(".")[1],s=c+"-"+e,n||(n=i,i=t.Widget),t.expr[":"][s.toLowerCase()]=function(e){return!!t.data(e,s)},t[c]=t[c]||{},o=t[c][e],r=t[c][e]=function(t,e){return this._createWidget?void(arguments.length&&this._createWidget(t,e)):new r(t,e)},t.extend(r,o,{version:n.version,_proto:t.extend({},n),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(n,function(e,n){return t.isFunction(n)?void(l[e]=function(){var t=function(){return i.prototype[e].apply(this,arguments)},s=function(t){return i.prototype[e].apply(this,t)};return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=s,e=n.apply(this,arguments),this._super=i,this._superApply=o,e}}()):void(l[e]=n)}),r.prototype=t.widget.extend(a,{widgetEventPrefix:o&&a.widgetEventPrefix||e},l,{constructor:r,namespace:c,widgetName:e,widgetFullName:s}),o?(t.each(o._childConstructors,function(e,i){var n=i.prototype;t.widget(n.namespace+"."+n.widgetName,r,i._proto)}),delete o._childConstructors):i._childConstructors.push(r),t.widget.bridge(e,r),r},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),r=0,a=o.length;a>r;r++)for(i in o[r])n=o[r][i],o[r].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var r="string"==typeof o,a=s.call(arguments,1),l=this;return r?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,a),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+o+"'")}):(a.length&&(o=t.widget.extend.apply(null,[o].concat(a))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var n,s,o,r=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(r={},n=e.split("."),e=n.shift(),n.length){for(s=r[e]=t.widget.extend({},this.options[e]),o=0;n.length-1>o;o++)s[n[o]]=s[n[o]]||{},s=s[n[o]];if(e=n.pop(),1===arguments.length)return void 0===s[e]?null:s[e];s[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];r[e]=i}return this._setOptions(r),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!e),e&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(e,i,n){var s,o=this;"boolean"!=typeof e&&(n=i,i=e,e=!1),n?(i=s=t(i),this.bindings=this.bindings.add(i)):(n=i,i=this.element,s=this.widget()),t.each(n,function(n,r){function a(){return e||!0!==o.options.disabled&&!t(this).hasClass("ui-state-disabled")?("string"==typeof r?o[r]:r).apply(o,arguments):void 0}"string"!=typeof r&&(a.guid=r.guid=r.guid||a.guid||t.guid++);var l=n.match(/^([\w:-]*)\s*(.*)$/),c=l[1]+o.eventNamespace,h=l[2];h?s.delegate(h,c,a):i.bind(c,a)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(i).undelegate(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?n[t]:t).apply(n,arguments)}var n=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,i,n){var s,o,r=this.options[e];if(n=n||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(s in o)s in i||(i[s]=o[s]);return this.element.trigger(i,n),!(t.isFunction(r)&&!1===r.apply(this.element[0],[i].concat(n))||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(n,s,o){"string"==typeof s&&(s={effect:s});var r,a=s?!0===s||"number"==typeof s?i:s.effect||i:e;s=s||{},"number"==typeof s&&(s={duration:s}),r=!t.isEmptyObject(s),s.complete=o,s.delay&&n.delay(s.delay),r&&t.effects&&t.effects.effect[a]?n[e](s):a!==e&&n[a]?n[a](s.duration,s.easing,o):n.queue(function(i){t(this)[e](),o&&o.call(n[0]),i()})}}),t.widget;var o=!1;t(document).mouseup(function(){o=!1}),t.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.bind("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).bind("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!o){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,s=!("string"!=typeof this.options.cancel||!e.target.nodeName)&&t(e.target).closest(this.options.cancel).length;return!(n&&!s&&this._mouseCapture(e))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=!1!==this._mouseStart(e),!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),o=!0,!0))}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,e),this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),o=!1,!1},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function e(t,e,i){return[parseFloat(t[0])*(f.test(t[0])?e/100:1),parseFloat(t[1])*(f.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function n(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var s,o,r=Math.max,a=Math.abs,l=Math.round,c=/left|center|right/,h=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,p=/^\w+/,f=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==s)return s;var e,i,n=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=n.children()[0];return t("body").append(n),e=o.offsetWidth,n.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=n[0].clientWidth),n.remove(),s=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),n=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),s="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===n||"auto"===n&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:s?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),n=t.isWindow(i[0]),s=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:n,isDocument:s,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:n||s?i.width():i.outerWidth(),height:n||s?i.height():i.outerHeight()}}},t.fn.position=function(s){if(!s||!s.of)return d.apply(this,arguments);s=t.extend({},s);var f,g,m,v,y,b,w=t(s.of),x=t.position.getWithinInfo(s.within),_=t.position.getScrollInfo(x),C=(s.collision||"flip").split(" "),T={};return b=n(w),w[0].preventDefault&&(s.at="left top"),g=b.width,m=b.height,v=b.offset,y=t.extend({},v),t.each(["my","at"],function(){var t,e,i=(s[this]||"").split(" ");1===i.length&&(i=c.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=c.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=u.exec(i[0]),e=u.exec(i[1]),T[this]=[t?t[0]:0,e?e[0]:0],s[this]=[p.exec(i[0])[0],p.exec(i[1])[0]]}),1===C.length&&(C[1]=C[0]),"right"===s.at[0]?y.left+=g:"center"===s.at[0]&&(y.left+=g/2),"bottom"===s.at[1]?y.top+=m:"center"===s.at[1]&&(y.top+=m/2),f=e(T.at,g,m),y.left+=f[0],y.top+=f[1],this.each(function(){var n,c,h=t(this),u=h.outerWidth(),p=h.outerHeight(),d=i(this,"marginLeft"),b=i(this,"marginTop"),S=u+d+i(this,"marginRight")+_.width,E=p+b+i(this,"marginBottom")+_.height,P=t.extend({},y),N=e(T.my,h.outerWidth(),h.outerHeight());"right"===s.my[0]?P.left-=u:"center"===s.my[0]&&(P.left-=u/2),"bottom"===s.my[1]?P.top-=p:"center"===s.my[1]&&(P.top-=p/2),P.left+=N[0],P.top+=N[1],o||(P.left=l(P.left),P.top=l(P.top)),n={marginLeft:d,marginTop:b},t.each(["left","top"],function(e,i){t.ui.position[C[e]]&&t.ui.position[C[e]][i](P,{targetWidth:g,targetHeight:m,elemWidth:u,elemHeight:p,collisionPosition:n,collisionWidth:S,collisionHeight:E,offset:[f[0]+N[0],f[1]+N[1]],my:s.my,at:s.at,within:x,elem:h})}),s.using&&(c=function(t){var e=v.left-P.left,i=e+g-u,n=v.top-P.top,o=n+m-p,l={target:{element:w,left:v.left,top:v.top,width:g,height:m},element:{element:h,left:P.left,top:P.top,width:u,height:p},horizontal:0>i?"left":e>0?"right":"center",vertical:0>o?"top":n>0?"bottom":"middle"};u>g&&g>a(e+i)&&(l.horizontal="center"),p>m&&m>a(n+o)&&(l.vertical="middle"),l.important=r(a(e),a(i))>r(a(n),a(o))?"horizontal":"vertical",s.using.call(this,t,l)}),h.offset(t.extend(P,{using:c}))})},t.ui.position={fit:{left:function(t,e){var i,n=e.within,s=n.isWindow?n.scrollLeft:n.offset.left,o=n.width,a=t.left-e.collisionPosition.marginLeft,l=s-a,c=a+e.collisionWidth-o-s;e.collisionWidth>o?l>0&&0>=c?(i=t.left+l+e.collisionWidth-o-s,t.left+=l-i):t.left=c>0&&0>=l?s:l>c?s+o-e.collisionWidth:s:l>0?t.left+=l:c>0?t.left-=c:t.left=r(t.left-a,t.left)},top:function(t,e){var i,n=e.within,s=n.isWindow?n.scrollTop:n.offset.top,o=e.within.height,a=t.top-e.collisionPosition.marginTop,l=s-a,c=a+e.collisionHeight-o-s;e.collisionHeight>o?l>0&&0>=c?(i=t.top+l+e.collisionHeight-o-s,t.top+=l-i):t.top=c>0&&0>=l?s:l>c?s+o-e.collisionHeight:s:l>0?t.top+=l:c>0?t.top-=c:t.top=r(t.top-a,t.top)}},flip:{left:function(t,e){ +var i,n,s=e.within,o=s.offset.left+s.scrollLeft,r=s.width,l=s.isWindow?s.scrollLeft:s.offset.left,c=t.left-e.collisionPosition.marginLeft,h=c-l,u=c+e.collisionWidth-r-l,p="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,f="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,d=-2*e.offset[0];0>h?(i=t.left+p+f+d+e.collisionWidth-r-o,(0>i||a(h)>i)&&(t.left+=p+f+d)):u>0&&(n=t.left-e.collisionPosition.marginLeft+p+f+d-l,(n>0||u>a(n))&&(t.left+=p+f+d))},top:function(t,e){var i,n,s=e.within,o=s.offset.top+s.scrollTop,r=s.height,l=s.isWindow?s.scrollTop:s.offset.top,c=t.top-e.collisionPosition.marginTop,h=c-l,u=c+e.collisionHeight-r-l,p="top"===e.my[1],f=p?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,d="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>h?(n=t.top+f+d+g+e.collisionHeight-r-o,(0>n||a(h)>n)&&(t.top+=f+d+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+f+d+g-l,(i>0||u>a(i))&&(t.top+=f+d+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,i,n,s,r,a=document.getElementsByTagName("body")[0],l=document.createElement("div");for(r in e=document.createElement(a?"div":"body"),n={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},a&&t.extend(n,{position:"absolute",left:"-1000px",top:"-1000px"}),n)e.style[r]=n[r];e.appendChild(l),i=a||document.documentElement,i.insertBefore(e,i.firstChild),l.style.cssText="position: absolute; left: 10.7432222px;",s=t(l).offset().left,o=s>10&&11>s,e.innerHTML="",i.removeChild(e)}()}(),t.ui.position,t.widget("ui.draggable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(e){var i=this.options;return this._blurActiveElement(e),!(this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(e),!!this.handle&&(this._blockFrames(!0===i.iframeFix?"iframe":i.iframeFix),!0))},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=this.document[0];if(this.handleElement.is(e.target))try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()&&t(i.activeElement).blur()}catch(t){}},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._normalizeRightBottom(),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var n=this._uiHash();if(!1===this._trigger("drag",e,n))return this._mouseUp({}),!1;this.position=n.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,n=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(n=t.ui.ddmanager.drop(this,e)),this.dropped&&(n=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!n||"valid"===this.options.revert&&n||!0===this.options.revert||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==i._trigger("stop",e)&&i._clear()}):!1!==this._trigger("stop",e)&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.focus(),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){return!this.options.handle||!!t(e.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(e){var i=this.options,n=t.isFunction(i.helper),s=n?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),n&&s[0]===this.element[0]&&this._setPositionRelative(),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,n,s=this.options,o=this.document[0];return this.relativeContainer=null,s.containment?"window"===s.containment?void(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===s.containment?void(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):s.containment.constructor===Array?void(this.containment=s.containment):("parent"===s.containment&&(s.containment=this.helper[0].parentNode),i=t(s.containment),n=i[0],void(n&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(n.scrollWidth,n.offsetWidth):n.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(n.scrollHeight,n.offsetHeight):n.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i))):void(this.containment=null)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,n=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,n,s,o,r=this.options,a=this._isRootNode(this.scrollParent[0]),l=t.pageX,c=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(n=this.relativeContainer.offset(),i=[this.containment[0]+n.left,this.containment[1]+n.top,this.containment[2]+n.left,this.containment[3]+n.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(c=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(c=i[3]+this.offset.click.top)),r.grid&&(s=r.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/r.grid[1])*r.grid[1]:this.originalPageY,c=i?s-this.offset.click.top>=i[1]||s-this.offset.click.top>i[3]?s:s-this.offset.click.top>=i[1]?s-r.grid[1]:s+r.grid[1]:s,o=r.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/r.grid[0])*r.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-r.grid[0]:o+r.grid[0]:o),"y"===r.axis&&(l=this.originalPageX),"x"===r.axis&&(c=this.originalPageY)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(e,i,n){return n=n||this._uiHash(),t.ui.plugin.call(this,e,[i,n,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),n.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,n)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,n){var s=t.extend({},i,{item:n.element});n.sortables=[],t(n.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(n.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,s))})},stop:function(e,i,n){var s=t.extend({},i,{item:n.element});n.cancelHelperRemoval=!1,t.each(n.sortables,function(){var t=this;t.isOver?(t.isOver=0,n.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(e,i,n){t.each(n.sortables,function(){var s=!1,o=this;o.positionAbs=n.positionAbs,o.helperProportions=n.helperProportions,o.offset.click=n.offset.click,o._intersectsWith(o.containerCache)&&(s=!0,t.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(s=!1),s})),s?(o.isOver||(o.isOver=1,n._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=n.offset.click.top,o.offset.click.left=n.offset.click.left,o.offset.parent.left-=n.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=n.offset.parent.top-o.offset.parent.top,n._trigger("toSortable",e),n.dropped=o.element,t.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,o.fromOutside=n),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(n._parent),n._refreshOffsets(e),i.position=n._generatePosition(e,!0),n._trigger("fromSortable",e),n.dropped=!1,t.each(n.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,n){var s=t("body"),o=n.options;s.css("cursor")&&(o._cursor=s.css("cursor")),s.css("cursor",o.cursor)},stop:function(e,i,n){var s=n.options;s._cursor&&t("body").css("cursor",s._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,n){var s=t(i.helper),o=n.options;s.css("opacity")&&(o._opacity=s.css("opacity")),s.css("opacity",o.opacity)},stop:function(e,i,n){var s=n.options;s._opacity&&t(i.helper).css("opacity",s._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,n){var s=n.options,o=!1,r=n.scrollParentNotHidden[0],a=n.document[0];r!==a&&"HTML"!==r.tagName?(s.axis&&"x"===s.axis||(n.overflowOffset.top+r.offsetHeight-e.pageY<s.scrollSensitivity?r.scrollTop=o=r.scrollTop+s.scrollSpeed:e.pageY-n.overflowOffset.top<s.scrollSensitivity&&(r.scrollTop=o=r.scrollTop-s.scrollSpeed)),s.axis&&"y"===s.axis||(n.overflowOffset.left+r.offsetWidth-e.pageX<s.scrollSensitivity?r.scrollLeft=o=r.scrollLeft+s.scrollSpeed:e.pageX-n.overflowOffset.left<s.scrollSensitivity&&(r.scrollLeft=o=r.scrollLeft-s.scrollSpeed))):(s.axis&&"x"===s.axis||(e.pageY-t(a).scrollTop()<s.scrollSensitivity?o=t(a).scrollTop(t(a).scrollTop()-s.scrollSpeed):t(window).height()-(e.pageY-t(a).scrollTop())<s.scrollSensitivity&&(o=t(a).scrollTop(t(a).scrollTop()+s.scrollSpeed))),s.axis&&"y"===s.axis||(e.pageX-t(a).scrollLeft()<s.scrollSensitivity?o=t(a).scrollLeft(t(a).scrollLeft()-s.scrollSpeed):t(window).width()-(e.pageX-t(a).scrollLeft())<s.scrollSensitivity&&(o=t(a).scrollLeft(t(a).scrollLeft()+s.scrollSpeed)))),!1!==o&&t.ui.ddmanager&&!s.dropBehaviour&&t.ui.ddmanager.prepareOffsets(n,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,n){var s=n.options;n.snapElements=[],t(s.snap.constructor!==String?s.snap.items||":data(ui-draggable)":s.snap).each(function(){var e=t(this),i=e.offset();this!==n.element[0]&&n.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,n){var s,o,r,a,l,c,h,u,p,f,d=n.options,g=d.snapTolerance,m=i.offset.left,v=m+n.helperProportions.width,y=i.offset.top,b=y+n.helperProportions.height;for(p=n.snapElements.length-1;p>=0;p--)l=n.snapElements[p].left-n.margins.left,c=l+n.snapElements[p].width,h=n.snapElements[p].top-n.margins.top,u=h+n.snapElements[p].height,l-g>v||m>c+g||h-g>b||y>u+g||!t.contains(n.snapElements[p].item.ownerDocument,n.snapElements[p].item)?(n.snapElements[p].snapping&&n.options.snap.release&&n.options.snap.release.call(n.element,e,t.extend(n._uiHash(),{snapItem:n.snapElements[p].item})),n.snapElements[p].snapping=!1):("inner"!==d.snapMode&&(s=g>=Math.abs(h-b),o=g>=Math.abs(u-y),r=g>=Math.abs(l-v),a=g>=Math.abs(c-m),s&&(i.position.top=n._convertPositionTo("relative",{top:h-n.helperProportions.height,left:0}).top),o&&(i.position.top=n._convertPositionTo("relative",{top:u,left:0}).top),r&&(i.position.left=n._convertPositionTo("relative",{top:0,left:l-n.helperProportions.width}).left),a&&(i.position.left=n._convertPositionTo("relative",{top:0,left:c}).left)),f=s||o||r||a,"outer"!==d.snapMode&&(s=g>=Math.abs(h-y),o=g>=Math.abs(u-b),r=g>=Math.abs(l-m),a=g>=Math.abs(c-v),s&&(i.position.top=n._convertPositionTo("relative",{top:h,left:0}).top),o&&(i.position.top=n._convertPositionTo("relative",{top:u-n.helperProportions.height,left:0}).top),r&&(i.position.left=n._convertPositionTo("relative",{top:0,left:l}).left),a&&(i.position.left=n._convertPositionTo("relative",{top:0,left:c-n.helperProportions.width}).left)),!n.snapElements[p].snapping&&(s||o||r||a||f)&&n.options.snap.snap&&n.options.snap.snap.call(n.element,e,t.extend(n._uiHash(),{snapItem:n.snapElements[p].item})),n.snapElements[p].snapping=s||o||r||a||f)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,n){var s,o=n.options,r=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});r.length&&(s=parseInt(t(r[0]).css("zIndex"),10)||0,t(r).each(function(e){t(this).css("zIndex",s+e)}),this.css("zIndex",s+r.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,n){var s=t(i.helper),o=n.options;s.css("zIndex")&&(o._zIndex=s.css("zIndex")),s.css("zIndex",o.zIndex)},stop:function(e,i,n){var s=n.options;s._zIndex&&t(i.helper).css("zIndex",s._zIndex)}}),t.ui.draggable,t.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,n=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(n)?n:function(t){return t.is(n)},this.proportions=function(){return arguments.length?void(e=arguments[0]):e||(e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight})},this._addToManager(i.scope),i.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var n=t.ui.ddmanager.droppables[this.options.scope];this._splice(n),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var n=i||t.ui.ddmanager.current,s=!1;return!(!n||(n.currentItem||n.element)[0]===this.element[0])&&(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===n.options.scope&&i.accept.call(i.element[0],n.currentItem||n.element)&&t.ui.intersect(n,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(s=!0,!1):void 0}),!s&&(!!this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(n)),this.element)))},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}}}),t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,n,s){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,r=(e.positionAbs||e.position.absolute).top+e.margins.top,a=o+e.helperProportions.width,l=r+e.helperProportions.height,c=i.offset.left,h=i.offset.top,u=c+i.proportions().width,p=h+i.proportions().height;switch(n){case"fit":return o>=c&&u>=a&&r>=h&&p>=l;case"intersect":return o+e.helperProportions.width/2>c&&u>a-e.helperProportions.width/2&&r+e.helperProportions.height/2>h&&p>l-e.helperProportions.height/2;case"pointer":return t(s.pageY,h,i.proportions().height)&&t(s.pageX,c,i.proportions().width);case"touch":return(r>=h&&p>=r||l>=h&&p>=l||h>r&&l>p)&&(o>=c&&u>=o||a>=c&&u>=a||c>o&&a>u);default:return!1}}}(),t.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(e,i){var n,s,o=t.ui.ddmanager.droppables[e.options.scope]||[],r=i?i.type:null,a=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(n=0;o.length>n;n++)if(!(o[n].options.disabled||e&&!o[n].accept.call(o[n].element[0],e.currentItem||e.element))){for(s=0;a.length>s;s++)if(a[s]===o[n].element[0]){o[n].proportions().height=0;continue t}o[n].visible="none"!==o[n].element.css("display"),o[n].visible&&("mousedown"===r&&o[n]._activate.call(o[n],i),o[n].offset=o[n].element.offset(),o[n].proportions({width:o[n].element[0].offsetWidth,height:o[n].element[0].offsetHeight}))}},drop:function(e,i){var n=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&t.ui.intersect(e,this,this.options.tolerance,i)&&(n=this._drop.call(this,i)||n),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),n},dragStart:function(e,i){e.element.parentsUntil("body").bind("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var n,s,o,r=t.ui.intersect(e,this,this.options.tolerance,i),a=!r&&this.isover?"isout":r&&!this.isover?"isover":null;a&&(this.options.greedy&&(s=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===s}),o.length&&(n=t(o[0]).droppable("instance"),n.greedyChild="isover"===a)),n&&"isover"===a&&(n.isover=!1,n.isout=!0,n._out.call(n,i)),this[a]=!0,this["isout"===a?"isover":"isout"]=!1,this["isover"===a?"_over":"_out"].call(this,i),n&&"isout"===a&&(n.isout=!1,n.isover=!0,n._over.call(n,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").unbind("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.ui.droppable,t.widget("ui.resizable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseInt(t,10)||0},_isNumber:function(t){return!isNaN(parseInt(t,10))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var n=i&&"left"===i?"scrollLeft":"scrollTop",s=!1;return e[n]>0||(e[n]=1,s=e[n]>0,e[n]=0,s)},_create:function(){var e,i,n,s,o,r=this,a=this.options;if(this.element.addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),this.handles={},i=0;e.length>i;i++)n=t.trim(e[i]),o="ui-resizable-"+n,s=t("<div class='ui-resizable-handle "+o+"'></div>"),s.css({zIndex:a.zIndex}),"se"===n&&s.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[n]=".ui-resizable-"+n,this.element.append(s);this._renderAxis=function(e){var i,n,s,o;for(i in e=e||this.element,this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(n=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?n.outerHeight():n.outerWidth(),s=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(s,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){r.resizing||(this.className&&(s=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=s&&s[1]?s[1]:"se")}),a.autoHide&&(this._handles.hide(),t(this.element).addClass("ui-resizable-autohide").mouseenter(function(){a.disabled||(t(this).removeClass("ui-resizable-autohide"),r._handles.show())}).mouseleave(function(){a.disabled||r.resizing||(t(this).addClass("ui-resizable-autohide"),r._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(e){var i,n,s=!1;for(i in this.handles)n=t(this.handles[i])[0],(n===e.target||t.contains(n,e.target))&&(s=!0);return!this.options.disabled&&s},_mouseStart:function(e){var i,n,s,o=this.options,r=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),n=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,n+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:n},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:r.width(),height:r.height()},this.originalSize=this._helper?{width:r.outerWidth(),height:r.outerHeight()}:{width:r.width(),height:r.height()},this.sizeDiff={width:r.outerWidth()-r.width(),height:r.outerHeight()-r.height()},this.originalPosition={left:i,top:n},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===s?this.axis+"-resize":s),r.addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){ +var i,n,s=this.originalMousePosition,o=this.axis,r=e.pageX-s.left||0,a=e.pageY-s.top||0,l=this._change[o];return this._updatePrevProperties(),!!l&&(i=l.apply(this,[e,r,a]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),n=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(n)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1)},_mouseStop:function(e){this.resizing=!1;var i,n,s,o,r,a,l,c=this.options,h=this;return this._helper&&(i=this._proportionallyResizeElements,n=i.length&&/textarea/i.test(i[0].nodeName),s=n&&this._hasScroll(i[0],"left")?0:h.sizeDiff.height,o=n?0:h.sizeDiff.width,r={width:h.helper.width()-o,height:h.helper.height()-s},a=parseInt(h.element.css("left"),10)+(h.position.left-h.originalPosition.left)||null,l=parseInt(h.element.css("top"),10)+(h.position.top-h.originalPosition.top)||null,c.animate||this.element.css(t.extend(r,{top:l,left:a})),h.helper.height(h.size.height),h.helper.width(h.size.width),this._helper&&!c.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,n,s,o,r=this.options;o={minWidth:this._isNumber(r.minWidth)?r.minWidth:0,maxWidth:this._isNumber(r.maxWidth)?r.maxWidth:1/0,minHeight:this._isNumber(r.minHeight)?r.minHeight:0,maxHeight:this._isNumber(r.maxHeight)?r.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,n=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,s=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),n>o.minHeight&&(o.minHeight=n),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>s&&(o.maxHeight=s)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,n=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===n&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===n&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,n=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,s=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,r=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,c=/sw|nw|w/.test(i),h=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),r&&(t.height=e.minHeight),n&&(t.width=e.maxWidth),s&&(t.height=e.maxHeight),o&&c&&(t.left=a-e.minWidth),n&&c&&(t.left=a-e.maxWidth),r&&h&&(t.top=l-e.minHeight),s&&h&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],n=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],s=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseInt(n[e],10)||0,i[e]+=parseInt(s[e],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,n=this.originalPosition;return{left:n.left+e,width:i.width-e}},n:function(t,e,i){var n=this.originalSize,s=this.originalPosition;return{top:s.top+i,height:n.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,n){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,n]))},sw:function(e,i,n){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,n]))},ne:function(e,i,n){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,n]))},nw:function(e,i,n){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,n]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),n=i.options,s=i._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),r=o&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,a=o?0:i.sizeDiff.width,l={width:i.size.width-a,height:i.size.height-r},c=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,h=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(l,h&&c?{top:h,left:c}:{}),{duration:n.animateDuration,easing:n.animateEasing,step:function(){var n={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};s&&s.length&&t(s[0]).css({width:n.width,height:n.height}),i._updateCache(n),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,n,s,o,r,a,l=t(this).resizable("instance"),c=l.options,h=l.element,u=c.containment,p=u instanceof t?u.get(0):/parent/.test(u)?h.parent().get(0):u;p&&(l.containerElement=t(p),/document/.test(u)||u===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(p),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,n){i[t]=l._num(e.css("padding"+n))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},n=l.containerOffset,s=l.containerSize.height,o=l.containerSize.width,r=l._hasScroll(p,"left")?p.scrollWidth:o,a=l._hasScroll(p)?p.scrollHeight:s,l.parentData={element:p,left:n.left,top:n.top,width:r,height:a}))},resize:function(e){var i,n,s,o,r=t(this).resizable("instance"),a=r.options,l=r.containerOffset,c=r.position,h=r._aspectRatio||e.shiftKey,u={top:0,left:0},p=r.containerElement,f=!0;p[0]!==document&&/static/.test(p.css("position"))&&(u=l),c.left<(r._helper?l.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-l.left:r.position.left-u.left),h&&(r.size.height=r.size.width/r.aspectRatio,f=!1),r.position.left=a.helper?l.left:0),c.top<(r._helper?l.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-l.top:r.position.top),h&&(r.size.width=r.size.height*r.aspectRatio,f=!1),r.position.top=r._helper?l.top:0),s=r.containerElement.get(0)===r.element.parent().get(0),o=/relative|absolute/.test(r.containerElement.css("position")),s&&o?(r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top):(r.offset.left=r.element.offset().left,r.offset.top=r.element.offset().top),i=Math.abs(r.sizeDiff.width+(r._helper?r.offset.left-u.left:r.offset.left-l.left)),n=Math.abs(r.sizeDiff.height+(r._helper?r.offset.top-u.top:r.offset.top-l.top)),i+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-i,h&&(r.size.height=r.size.width/r.aspectRatio,f=!1)),n+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-n,h&&(r.size.width=r.size.height*r.aspectRatio,f=!1)),f||(r.position.left=r.prevPosition.left,r.position.top=r.prevPosition.top,r.size.width=r.prevSize.width,r.size.height=r.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,n=e.containerOffset,s=e.containerPosition,o=e.containerElement,r=t(e.helper),a=r.offset(),l=r.outerWidth()-e.sizeDiff.width,c=r.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:a.left-s.left-n.left,width:l,height:c}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:a.left-s.left-n.left,width:l,height:c})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10)})})},resize:function(e,i){var n=t(this).resizable("instance"),s=n.options,o=n.originalSize,r=n.originalPosition,a={height:n.size.height-o.height||0,width:n.size.width-o.width||0,top:n.position.top-r.top||0,left:n.position.left-r.left||0};t(s.alsoResize).each(function(){var e=t(this),n=t(this).data("ui-resizable-alsoresize"),s={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(n[e]||0)+(a[e]||0);i&&i>=0&&(s[e]=i||null)}),e.css(s)})},stop:function(){t(this).removeData("resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.options,n=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:n.height,width:n.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),n=i.options,s=i.size,o=i.originalSize,r=i.originalPosition,a=i.axis,l="number"==typeof n.grid?[n.grid,n.grid]:n.grid,c=l[0]||1,h=l[1]||1,u=Math.round((s.width-o.width)/c)*c,p=Math.round((s.height-o.height)/h)*h,f=o.width+u,d=o.height+p,g=n.maxWidth&&f>n.maxWidth,m=n.maxHeight&&d>n.maxHeight,v=n.minWidth&&n.minWidth>f,y=n.minHeight&&n.minHeight>d;n.grid=l,v&&(f+=c),y&&(d+=h),g&&(f-=c),m&&(d-=h),/^(se|s|e)$/.test(a)?(i.size.width=f,i.size.height=d):/^(ne)$/.test(a)?(i.size.width=f,i.size.height=d,i.position.top=r.top-p):/^(sw)$/.test(a)?(i.size.width=f,i.size.height=d,i.position.left=r.left-u):((0>=d-h||0>=f-c)&&(e=i._getPaddingPlusBorderDimensions(this)),d-h>0?(i.size.height=d,i.position.top=r.top-p):(d=h-e.height,i.size.height=d,i.position.top=r.top+o.height-d),f-c>0?(i.size.width=f,i.position.left=r.left-u):(f=c-e.width,i.size.width=f,i.position.left=r.left+o.width-f))}}),t.ui.resizable,t.widget("ui.selectable",t.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e=t(i.options.filter,i.element[0]),e.addClass("ui-selectee"),e.each(function(){var e=t(this),i=e.offset();t.data(this,"selectable-item",{element:this,$element:e,left:i.left,top:i.top,right:i.left+e.outerWidth(),bottom:i.top+e.outerHeight(),startselected:!1,selected:e.hasClass("ui-selected"),selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=e.addClass("ui-selectee"),this._mouseInit(),this.helper=t("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(e){var i=this,n=this.options;this.opos=[e.pageX,e.pageY],this.options.disabled||(this.selectees=t(n.filter,this.element[0]),this._trigger("start",e),t(n.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),n.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var n=t.data(this,"selectable-item");n.startselected=!0,e.metaKey||e.ctrlKey||(n.$element.removeClass("ui-selected"),n.selected=!1,n.$element.addClass("ui-unselecting"),n.unselecting=!0,i._trigger("unselecting",e,{unselecting:n.element}))}),t(e.target).parents().addBack().each(function(){var n,s=t.data(this,"selectable-item");return s?(n=!e.metaKey&&!e.ctrlKey||!s.$element.hasClass("ui-selected"),s.$element.removeClass(n?"ui-unselecting":"ui-selected").addClass(n?"ui-selecting":"ui-unselecting"),s.unselecting=!n,s.selecting=n,s.selected=n,n?i._trigger("selecting",e,{selecting:s.element}):i._trigger("unselecting",e,{unselecting:s.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,n=this,s=this.options,o=this.opos[0],r=this.opos[1],a=e.pageX,l=e.pageY;return o>a&&(i=a,a=o,o=i),r>l&&(i=l,l=r,r=i),this.helper.css({left:o,top:r,width:a-o,height:l-r}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),c=!1;i&&i.element!==n.element[0]&&("touch"===s.tolerance?c=!(i.left>a||o>i.right||i.top>l||r>i.bottom):"fit"===s.tolerance&&(c=i.left>o&&a>i.right&&i.top>r&&l>i.bottom),c?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,n._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),n._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,n._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var n=t.data(this,"selectable-item");n.$element.removeClass("ui-unselecting"),n.unselecting=!1,n.startselected=!1,i._trigger("unselected",e,{unselected:n.element})}),t(".ui-selecting",this.element[0]).each(function(){var n=t.data(this,"selectable-item");n.$element.removeClass("ui-selecting").addClass("ui-selected"),n.selecting=!1,n.selected=!0,n.startselected=!0,i._trigger("selected",e,{selected:n.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),t.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var n=null,s=!1,o=this;return!this.reverting&&(!this.options.disabled&&"static"!==this.options.type&&(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(n=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(n=t(e.target)),!!n&&(!(this.options.handle&&!i&&(t(this.options.handle,n).find("*").addBack().each(function(){this===e.target&&(s=!0)}),!s))&&(this.currentItem=n,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(e,i,n){var s,o,r=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,r.cursorAt&&this._adjustOffsetFromHelper(r.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),r.containment&&this._setContainment(),r.cursor&&"auto"!==r.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",r.cursor),this.storedStylesheet=t("<style>*{ cursor: "+r.cursor+" !important; }</style>").appendTo(o)),r.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",r.opacity)),r.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",r.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!n)for(s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,n,s,o,r=this.options,a=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<r.scrollSensitivity?this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop+r.scrollSpeed:e.pageY-this.overflowOffset.top<r.scrollSensitivity&&(this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop-r.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<r.scrollSensitivity?this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft+r.scrollSpeed:e.pageX-this.overflowOffset.left<r.scrollSensitivity&&(this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft-r.scrollSpeed)):(e.pageY-this.document.scrollTop()<r.scrollSensitivity?a=this.document.scrollTop(this.document.scrollTop()-r.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<r.scrollSensitivity&&(a=this.document.scrollTop(this.document.scrollTop()+r.scrollSpeed)),e.pageX-this.document.scrollLeft()<r.scrollSensitivity?a=this.document.scrollLeft(this.document.scrollLeft()-r.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<r.scrollSensitivity&&(a=this.document.scrollLeft(this.document.scrollLeft()+r.scrollSpeed))),!1!==a&&t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(n=this.items[i],s=n.item[0],o=this._intersectsWithPointer(n),o&&n.instance===this.currentContainer&&s!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==s&&!t.contains(this.placeholder[0],s)&&("semi-dynamic"!==this.options.type||!t.contains(this.element[0],s))){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(n))break;this._rearrange(e,n),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var n=this,s=this.placeholder.offset(),o=this.options.axis,r={};o&&"x"!==o||(r.left=s.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(r.top=s.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(r,parseInt(this.options.revert,10)||500,function(){n._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),n=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&n.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!n.length&&e.key&&n.push(e.key+"="),n.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),n=[];return e=e||{},i.each(function(){n.push(t(e.item||this).attr(e.attribute||"id")||"")}),n},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,n=this.positionAbs.top,s=n+this.helperProportions.height,o=t.left,r=o+t.width,a=t.top,l=a+t.height,c=this.offset.click.top,h=this.offset.click.left,u="x"===this.options.axis||n+c>a&&l>n+c,p="y"===this.options.axis||e+h>o&&r>e+h,f=u&&p;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?f:e+this.helperProportions.width/2>o&&r>i-this.helperProportions.width/2&&n+this.helperProportions.height/2>a&&l>s-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),n=e&&i,s=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return!!n&&(this.floating?o&&"right"===o||"down"===s?2:1:s&&("down"===s?2:1))},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),n=this._getDragVerticalDirection(),s=this._getDragHorizontalDirection();return this.floating&&s?"right"===s&&i||"left"===s&&!i:n&&("down"===n&&e||"up"===n&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){a.push(this)}var n,s,o,r,a=[],l=[],c=this._connectWith();if(c&&e)for(n=c.length-1;n>=0;n--)for(o=t(c[n],this.document[0]),s=o.length-1;s>=0;s--)r=t.data(o[s],this.widgetFullName),r&&r!==this&&!r.options.disabled&&l.push([t.isFunction(r.options.items)?r.options.items.call(r.element):t(r.options.items,r.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),r]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),n=l.length-1;n>=0;n--)l[n][0].each(i);return t(a)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,n,s,o,r,a,l,c,h=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],p=this._connectWith();if(p&&this.ready)for(i=p.length-1;i>=0;i--)for(s=t(p[i],this.document[0]),n=s.length-1;n>=0;n--)o=t.data(s[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(r=u[i][1],a=u[i][0],n=0,c=a.length;c>n;n++)l=t(a[n]),l.data(this.widgetName+"-item",r),h.push({item:l,instance:r,width:0,height:0,left:0,top:0})},refreshPositions:function(e){var i,n,s,o;for(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),i=this.items.length-1;i>=0;i--)n=this.items[i],n.instance!==this.currentContainer&&this.currentContainer&&n.item[0]!==this.currentItem[0]||(s=this.options.toleranceElement?t(this.options.toleranceElement,n.item):n.item,e||(n.width=s.outerWidth(),n.height=s.outerHeight()),o=s.offset(),n.left=o.left,n.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,n=e.options;n.placeholder&&n.placeholder.constructor!==String||(i=n.placeholder,n.placeholder={element:function(){var n=e.currentItem[0].nodeName.toLowerCase(),s=t("<"+n+">",e.document[0]).addClass(i||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===n?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(s)):"tr"===n?e._createTrPlaceholder(e.currentItem,s):"img"===n&&s.attr("src",e.currentItem.attr("src")),i||s.css("visibility","hidden"),s},update:function(t,s){(!i||n.forcePlaceholderSize)&&(s.height()||s.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),s.width()||s.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(n.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),n.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var n=this;e.children().each(function(){t("<td>&#160;</td>",n.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,n,s,o,r,a,l,c,h,u,p=null,f=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(p&&t.contains(this.containers[i].element[0],p.element[0]))continue;p=this.containers[i],f=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(p)if(1===this.containers.length)this.containers[f].containerCache.over||(this.containers[f]._trigger("over",e,this._uiHash(this)),this.containers[f].containerCache.over=1);else{for(s=1e4,o=null,h=p.floating||this._isFloating(this.currentItem),r=h?"left":"top",a=h?"width":"height",u=h?"clientX":"clientY",n=this.items.length-1;n>=0;n--)t.contains(this.containers[f].element[0],this.items[n].item[0])&&this.items[n].item[0]!==this.currentItem[0]&&(l=this.items[n].item.offset()[r],c=!1,e[u]-l>this.items[n][a]/2&&(c=!0),s>Math.abs(e[u]-l)&&(s=Math.abs(e[u]-l),o=this.items[n],this.direction=c?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[f])return void(this.currentContainer.containerCache.over||(this.containers[f]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1));o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[f].element,!0),this._trigger("change",e,this._uiHash()), +this.containers[f]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[f],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[f]._trigger("over",e,this._uiHash(this)),this.containers[f].containerCache.over=1}},_createHelper:function(e){var i=this.options,n=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return n.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(n[0]),n[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!n[0].style.width||i.forceHelperSize)&&n.width(this.currentItem.width()),(!n[0].style.height||i.forceHelperSize)&&n.height(this.currentItem.height()),n},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,n,s=this.options;"parent"===s.containment&&(s.containment=this.helper[0].parentNode),("document"===s.containment||"window"===s.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===s.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===s.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(s.containment)||(e=t(s.containment)[0],i=t(s.containment).offset(),n="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(n?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(n?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var n="absolute"===e?1:-1,s="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:i.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:s.scrollTop())*n,left:i.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*n}},_generatePosition:function(e){var i,n,s=this.options,o=e.pageX,r=e.pageY,a="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(a[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(r=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(r=this.containment[3]+this.offset.click.top)),s.grid&&(i=this.originalPageY+Math.round((r-this.originalPageY)/s.grid[1])*s.grid[1],r=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-s.grid[1]:i+s.grid[1]:i,n=this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0],o=this.containment?n-this.offset.click.left>=this.containment[0]&&n-this.offset.click.left<=this.containment[2]?n:n-this.offset.click.left>=this.containment[0]?n-s.grid[0]:n+s.grid[0]:n)),{top:r-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:a.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:a.scrollLeft())}},_rearrange:function(t,e,i,n){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var s=this.counter;this._delay(function(){s===this.counter&&this.refreshPositions(!n)})},_clear:function(t,e){function i(t,e,i){return function(n){i._trigger(t,n,e._uiHash(e))}}this.reverting=!1;var n,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(n in this._storedCSS)("auto"===this._storedCSS[n]||"static"===this._storedCSS[n])&&(this._storedCSS[n]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),n=this.containers.length-1;n>=0;n--)e||s.push(i("deactivate",this,this.containers[n])),this.containers[n].containerCache.over&&(s.push(i("out",this,this.containers[n])),this.containers[n].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(n=0;s.length>n;n++)s[n].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===t.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}});var r="ui-effects-",a=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var n=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=n.floor?~~t:parseFloat(t),isNaN(t)?e.def:n.mod?(t+n.mod)%n.mod:0>t?0:t>n.max?n.max:t)}function n(i){var n=c(),s=n._rgba=[];return i=i.toLowerCase(),d(l,function(t,o){var r,a=o.re.exec(i),l=a&&o.parse(a),c=o.space||"rgba";return l?(r=n[c](l),n[h[c].cache]=r[h[c].cache],s=n._rgba=r._rgba,!1):e}),s.length?("0,0,0,0"===s.join()&&t.extend(s,o.transparent),n):o[i]}function s(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,r="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",a=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],c=t.Color=function(e,i,n,s){return new t.Color.fn.parse(e,i,n,s)},h={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},p=c.support={},f=t("<p>")[0],d=t.each;f.style.cssText="background-color:rgba(1,1,1,.5)",p.rgba=f.style.backgroundColor.indexOf("rgba")>-1,d(h,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),c.fn=t.extend(c.prototype,{parse:function(s,r,a,l){if(s===e)return this._rgba=[null,null,null,null],this;(s.jquery||s.nodeType)&&(s=t(s).css(r),r=e);var u=this,p=t.type(s),f=this._rgba=[];return r!==e&&(s=[s,r,a,l],p="array"),"string"===p?this.parse(n(s)||o._default):"array"===p?(d(h.rgba.props,function(t,e){f[e.idx]=i(s[e.idx],e)}),this):"object"===p?(d(h,s instanceof c?function(t,e){s[e.cache]&&(u[e.cache]=s[e.cache].slice())}:function(e,n){var o=n.cache;d(n.props,function(t,e){if(!u[o]&&n.to){if("alpha"===t||null==s[t])return;u[o]=n.to(u._rgba)}u[o][e.idx]=i(s[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,n.from&&(u._rgba=n.from(u[o])))}),this):e},is:function(t){var i=c(t),n=!0,s=this;return d(h,function(t,o){var r,a=i[o.cache];return a&&(r=s[o.cache]||o.to&&o.to(s._rgba)||[],d(o.props,function(t,i){return null!=a[i.idx]?n=a[i.idx]===r[i.idx]:e})),n}),n},_space:function(){var t=[],e=this;return d(h,function(i,n){e[n.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var n=c(t),s=n._space(),o=h[s],r=0===this.alpha()?c("transparent"):this,a=r[o.cache]||o.to(r._rgba),l=a.slice();return n=n[o.cache],d(o.props,function(t,s){var o=s.idx,r=a[o],c=n[o],h=u[s.type]||{};null!==c&&(null===r?l[o]=c:(h.mod&&(c-r>h.mod/2?r+=h.mod:r-c>h.mod/2&&(r-=h.mod)),l[o]=i((c-r)*e+r,s)))}),this[s](l)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),n=i.pop(),s=c(e)._rgba;return c(t.map(i,function(t,e){return(1-n)*s[e]+n*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),n=i.pop();return e&&i.push(~~(255*n)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),c.fn.parse.prototype=c.fn,h.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,n=t[0]/255,s=t[1]/255,o=t[2]/255,r=t[3],a=Math.max(n,s,o),l=Math.min(n,s,o),c=a-l,h=a+l,u=.5*h;return e=l===a?0:n===a?60*(s-o)/c+360:s===a?60*(o-n)/c+120:60*(n-s)/c+240,i=0===c?0:.5>=u?c/h:c/(2-h),[Math.round(e)%360,i,u,null==r?1:r]},h.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],n=t[2],o=t[3],r=.5>=n?n*(1+i):n+i-n*i,a=2*n-r;return[Math.round(255*s(a,r,e+1/3)),Math.round(255*s(a,r,e)),Math.round(255*s(a,r,e-1/3)),o]},d(h,function(n,s){var o=s.props,r=s.cache,l=s.to,h=s.from;c.fn[n]=function(n){if(l&&!this[r]&&(this[r]=l(this._rgba)),n===e)return this[r].slice();var s,a=t.type(n),u="array"===a||"object"===a?n:arguments,p=this[r].slice();return d(o,function(t,e){var n=u["object"===a?t:e.idx];null==n&&(n=p[e.idx]),p[e.idx]=i(n,e)}),h?(s=c(h(p)),s[r]=p,s):c(p)},d(o,function(e,i){c.fn[e]||(c.fn[e]=function(s){var o,r=t.type(s),l="alpha"===e?this._hsla?"hsla":"rgba":n,c=this[l](),h=c[i.idx];return"undefined"===r?h:("function"===r&&(s=s.call(this,h),r=t.type(s)),null==s&&i.empty?this:("string"===r&&(o=a.exec(s),o&&(s=h+parseFloat(o[2])*("+"===o[1]?1:-1))),c[i.idx]=s,this[l](c)))})})}),c.hook=function(e){var i=e.split(" ");d(i,function(e,i){t.cssHooks[i]={set:function(e,s){var o,r,a="";if("transparent"!==s&&("string"!==t.type(s)||(o=n(s)))){if(s=c(o||s),!p.rgba&&1!==s._rgba[3]){for(r="backgroundColor"===i?e.parentNode:e;(""===a||"transparent"===a)&&r&&r.style;)try{a=t.css(r,"backgroundColor"),r=r.parentNode}catch(t){}s=s.blend(a&&"transparent"!==a?a:"_default")}s=s.toRgbaString()}try{e.style[i]=s}catch(t){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=c(e.elem,i),e.end=c(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},c.hook(r),t.cssHooks.borderColor={expand:function(t){var e={};return d(["Top","Right","Bottom","Left"],function(i,n){e["border"+n+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(a),function(){function e(e){var i,n,s=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(s&&s.length&&s[0]&&s[s[0]])for(n=s.length;n--;)i=s[n],"string"==typeof s[i]&&(o[t.camelCase(i)]=s[i]);else for(i in s)"string"==typeof s[i]&&(o[i]=s[i]);return o}function i(e,i){var n,o,r={};for(n in i)o=i[n],e[n]!==o&&(s[n]||(t.fx.step[n]||!isNaN(parseFloat(o)))&&(r[n]=o));return r}var n=["add","remove","toggle"],s={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(a.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(s,o,r,a){var l=t.speed(o,r,a);return this.queue(function(){var o,r=t(this),a=r.attr("class")||"",c=l.children?r.find("*").addBack():r;c=c.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(n,function(t,e){s[e]&&r[e+"Class"](s[e])})},o(),c=c.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),r.attr("class",a),c=c.map(function(){var e=this,i=t.Deferred(),n=t.extend({},l,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,n),i.promise()}),t.when.apply(t,c.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(r[0])})})},t.fn.extend({addClass:function(e){return function(i,n,s,o){return n?t.effects.animateClass.call(this,{add:i},n,s,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,n,s,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},n,s,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,n,s,o,r){return"boolean"==typeof n||void 0===n?s?t.effects.animateClass.call(this,n?{add:i}:{remove:i},s,o,r):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},n,s,o)}}(t.fn.toggleClass),switchClass:function(e,i,n,s,o){return t.effects.animateClass.call(this,{add:i,remove:e},n,s,o)}})}(),function(){function e(e,i,n,s){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(s=i,n=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(s=n,n=i,i={}),t.isFunction(n)&&(s=n,n=null),i&&t.extend(e,i),n=n||i.duration,e.duration=t.fx.off?0:"number"==typeof n?n:n in t.fx.speeds?t.fx.speeds[n]:t.fx.speeds._default,e.complete=s||i.complete,e}function i(e){return!(e&&"number"!=typeof e&&!t.fx.speeds[e])||("string"==typeof e&&!t.effects.effect[e]||(!!t.isFunction(e)||"object"==typeof e&&!e.effect))}t.extend(t.effects,{version:"1.11.4",save:function(t,e){for(var i=0;e.length>i;i++)null!==e[i]&&t.data(r+e[i],t[0].style[e[i]])},restore:function(t,e){var i,n;for(n=0;e.length>n;n++)null!==e[n]&&(i=t.data(r+e[n]),void 0===i&&(i=""),t.css(e[n],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,n;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":n=0;break;case"center":n=.5;break;case"right":n=1;break;default:n=t[1]/e.width}return{x:n,y:i}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),float:e.css("float")},n=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),s={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(t){o=document.body}return e.wrap(n),(e[0]===o||t.contains(e[0],o))&&t(o).focus(),n=e.parent(),"static"===e.css("position")?(n.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,n){i[n]=e.css(n),isNaN(parseInt(i[n],10))&&(i[n]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(s),n.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).focus()),e},setTransition:function(e,i,n,s){return s=s||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(s[i]=o[0]*n+o[1])}),s}}),t.fn.extend({effect:function(){function i(e){function i(){t.isFunction(o)&&o.call(s[0]),t.isFunction(e)&&e()}var s=t(this),o=n.complete,a=n.mode;(s.is(":hidden")?"hide"===a:"show"===a)?(s[a](),i()):r.call(s[0],n,i)}var n=e.apply(this,arguments),s=n.mode,o=n.queue,r=t.effects.effect[n.effect];return t.fx.off||!r?s?this[s](n.duration,n.complete):this.each(function(){n.complete&&n.complete.call(this)}):!1===o?this.each(i):this.queue(o||"fx",i)},show:function(t){return function(n){if(i(n))return t.apply(this,arguments);var s=e.apply(this,arguments);return s.mode="show",this.effect.call(this,s)}}(t.fn.show),hide:function(t){return function(n){if(i(n))return t.apply(this,arguments);var s=e.apply(this,arguments);return s.mode="hide",this.effect.call(this,s)}}(t.fn.hide),toggle:function(t){return function(n){if(i(n)||"boolean"==typeof n)return t.apply(this,arguments);var s=e.apply(this,arguments);return s.mode="toggle",this.effect.call(this,s)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),n=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(n=[parseFloat(i),e])}),n}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}(),t.effects,t.effects.effect.blind=function(e,i){var n,s,o,r=t(this),a=/up|down|vertical/,l=/up|left|vertical|horizontal/,c=["position","top","bottom","left","right","height","width"],h=t.effects.setMode(r,e.mode||"hide"),u=e.direction||"up",p=a.test(u),f=p?"height":"width",d=p?"top":"left",g=l.test(u),m={},v="show"===h;r.parent().is(".ui-effects-wrapper")?t.effects.save(r.parent(),c):t.effects.save(r,c),r.show(),n=t.effects.createWrapper(r).css({overflow:"hidden"}),s=n[f](),o=parseFloat(n.css(d))||0,m[f]=v?s:0,g||(r.css(p?"bottom":"right",0).css(p?"top":"left","auto").css({position:"absolute"}),m[d]=v?o:s+o),v&&(n.css(f,0),g||n.css(d,o+s)),n.animate(m,{duration:e.duration,easing:e.easing,queue:!1,complete:function(){"hide"===h&&r.hide(),t.effects.restore(r,c),t.effects.removeWrapper(r),i()}})},t.effects.effect.bounce=function(e,i){var n,s,o,r=t(this),a=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(r,e.mode||"effect"),c="hide"===l,h="show"===l,u=e.direction||"up",p=e.distance,f=e.times||5,d=2*f+(h||c?1:0),g=e.duration/d,m=e.easing,v="up"===u||"down"===u?"top":"left",y="up"===u||"left"===u,b=r.queue(),w=b.length;for((h||c)&&a.push("opacity"),t.effects.save(r,a),r.show(),t.effects.createWrapper(r),p||(p=r["top"===v?"outerHeight":"outerWidth"]()/3),h&&(o={opacity:1},o[v]=0,r.css("opacity",0).css(v,y?2*-p:2*p).animate(o,g,m)),c&&(p/=Math.pow(2,f-1)),o={},o[v]=0,n=0;f>n;n++)s={},s[v]=(y?"-=":"+=")+p,r.animate(s,g,m).animate(o,g,m),p=c?2*p:p/2;c&&(s={opacity:0},s[v]=(y?"-=":"+=")+p,r.animate(s,g,m)),r.queue(function(){c&&r.hide(),t.effects.restore(r,a),t.effects.removeWrapper(r),i()}),w>1&&b.splice.apply(b,[1,0].concat(b.splice(w,d+1))),r.dequeue()},t.effects.effect.clip=function(e,i){var n,s,o,r=t(this),a=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(r,e.mode||"hide"),c="show"===l,h=e.direction||"vertical",u="vertical"===h,p=u?"height":"width",f=u?"top":"left",d={};t.effects.save(r,a),r.show(),n=t.effects.createWrapper(r).css({overflow:"hidden"}),s="IMG"===r[0].tagName?n:r,o=s[p](),c&&(s.css(p,0),s.css(f,o/2)),d[p]=c?o:0,d[f]=c?0:o/2,s.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){c||r.hide(),t.effects.restore(r,a),t.effects.removeWrapper(r),i()}})},t.effects.effect.drop=function(e,i){var n,s=t(this),o=["position","top","bottom","left","right","opacity","height","width"],r=t.effects.setMode(s,e.mode||"hide"),a="show"===r,l=e.direction||"left",c="up"===l||"down"===l?"top":"left",h="up"===l||"left"===l?"pos":"neg",u={opacity:a?1:0};t.effects.save(s,o),s.show(),t.effects.createWrapper(s),n=e.distance||s["top"===c?"outerHeight":"outerWidth"](!0)/2,a&&s.css("opacity",0).css(c,"pos"===h?-n:n),u[c]=(a?"pos"===h?"+=":"-=":"pos"===h?"-=":"+=")+n,s.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===r&&s.hide(),t.effects.restore(s,o),t.effects.removeWrapper(s),i()}})},t.effects.effect.explode=function(e,i){function n(){b.push(this),b.length===u*p&&s()}function s(){f.css({visibility:"visible"}),t(b).remove(),g||f.hide(),i()}var o,r,a,l,c,h,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,p=u,f=t(this),d=t.effects.setMode(f,e.mode||"hide"),g="show"===d,m=f.show().css("visibility","hidden").offset(),v=Math.ceil(f.outerWidth()/p),y=Math.ceil(f.outerHeight()/u),b=[];for(o=0;u>o;o++)for(l=m.top+o*y,h=o-(u-1)/2,r=0;p>r;r++)a=m.left+r*v,c=r-(p-1)/2,f.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-r*v,top:-o*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:a+(g?c*v:0),top:l+(g?h*y:0),opacity:g?0:1}).animate({left:a+(g?0:c*v),top:l+(g?0:h*y),opacity:g?1:0},e.duration||500,e.easing,n)},t.effects.effect.fade=function(e,i){var n=t(this),s=t.effects.setMode(n,e.mode||"toggle");n.animate({opacity:s},{queue:!1,duration:e.duration,easing:e.easing,complete:i})},t.effects.effect.fold=function(e,i){var n,s,o=t(this),r=["position","top","bottom","left","right","height","width"],a=t.effects.setMode(o,e.mode||"hide"),l="show"===a,c="hide"===a,h=e.size||15,u=/([0-9]+)%/.exec(h),p=!!e.horizFirst,f=l!==p,d=f?["width","height"]:["height","width"],g=e.duration/2,m={},v={};t.effects.save(o,r),o.show(),n=t.effects.createWrapper(o).css({overflow:"hidden"}),s=f?[n.width(),n.height()]:[n.height(),n.width()],u&&(h=parseInt(u[1],10)/100*s[c?0:1]),l&&n.css(p?{height:0,width:h}:{height:h,width:0}),m[d[0]]=l?s[0]:h,v[d[1]]=l?s[1]:0,n.animate(m,g,e.easing).animate(v,g,e.easing,function(){c&&o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()})},t.effects.effect.highlight=function(e,i){var n=t(this),s=["backgroundImage","backgroundColor","opacity"],o=t.effects.setMode(n,e.mode||"show"),r={backgroundColor:n.css("backgroundColor")};"hide"===o&&(r.opacity=0),t.effects.save(n,s),n.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,s),i()}})},t.effects.effect.size=function(e,i){var n,s,o,r=t(this),a=["position","top","bottom","left","right","width","height","overflow","opacity"],l=["position","top","bottom","left","right","overflow","opacity"],c=["width","height","overflow"],h=["fontSize"],u=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],p=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],f=t.effects.setMode(r,e.mode||"effect"),d=e.restore||"effect"!==f,g=e.scale||"both",m=e.origin||["middle","center"],v=r.css("position"),y=d?a:l,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===f&&r.show(),n={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},"toggle"===e.mode&&"show"===f?(r.from=e.to||b,r.to=e.from||n):(r.from=e.from||("show"===f?b:n),r.to=e.to||("hide"===f?b:n)),o={from:{y:r.from.height/n.height,x:r.from.width/n.width},to:{y:r.to.height/n.height,x:r.to.width/n.width}},("box"===g||"both"===g)&&(o.from.y!==o.to.y&&(y=y.concat(u),r.from=t.effects.setTransition(r,u,o.from.y,r.from),r.to=t.effects.setTransition(r,u,o.to.y,r.to)),o.from.x!==o.to.x&&(y=y.concat(p),r.from=t.effects.setTransition(r,p,o.from.x,r.from),r.to=t.effects.setTransition(r,p,o.to.x,r.to))),("content"===g||"both"===g)&&o.from.y!==o.to.y&&(y=y.concat(h).concat(c),r.from=t.effects.setTransition(r,h,o.from.y,r.from),r.to=t.effects.setTransition(r,h,o.to.y,r.to)),t.effects.save(r,y),r.show(),t.effects.createWrapper(r),r.css("overflow","hidden").css(r.from),m&&(s=t.effects.getBaseline(m,n),r.from.top=(n.outerHeight-r.outerHeight())*s.y,r.from.left=(n.outerWidth-r.outerWidth())*s.x,r.to.top=(n.outerHeight-r.to.outerHeight)*s.y,r.to.left=(n.outerWidth-r.to.outerWidth)*s.x),r.css(r.from),("content"===g||"both"===g)&&(u=u.concat(["marginTop","marginBottom"]).concat(h),p=p.concat(["marginLeft","marginRight"]),c=a.concat(u).concat(p),r.find("*[width]").each(function(){var i=t(this),n={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};d&&t.effects.save(i,c),i.from={height:n.height*o.from.y,width:n.width*o.from.x,outerHeight:n.outerHeight*o.from.y,outerWidth:n.outerWidth*o.from.x},i.to={height:n.height*o.to.y,width:n.width*o.to.x,outerHeight:n.height*o.to.y,outerWidth:n.width*o.to.x},o.from.y!==o.to.y&&(i.from=t.effects.setTransition(i,u,o.from.y,i.from),i.to=t.effects.setTransition(i,u,o.to.y,i.to)),o.from.x!==o.to.x&&(i.from=t.effects.setTransition(i,p,o.from.x,i.from),i.to=t.effects.setTransition(i,p,o.to.x,i.to)),i.css(i.from),i.animate(i.to,e.duration,e.easing,function(){d&&t.effects.restore(i,c)})})),r.animate(r.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===r.to.opacity&&r.css("opacity",r.from.opacity),"hide"===f&&r.hide(),t.effects.restore(r,y),d||("static"===v?r.css({position:"relative",top:r.to.top,left:r.to.left}):t.each(["top","left"],function(t,e){r.css(e,function(e,i){var n=parseInt(i,10),s=t?r.to.left:r.to.top;return"auto"===i?s+"px":n+s+"px"})})),t.effects.removeWrapper(r),i()}})},t.effects.effect.scale=function(e,i){var n=t(this),s=t.extend(!0,{},e),o=t.effects.setMode(n,e.mode||"effect"),r=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===o?0:100),a=e.direction||"both",l=e.origin,c={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()},h={y:"horizontal"!==a?r/100:1,x:"vertical"!==a?r/100:1};s.effect="size",s.queue=!1,s.complete=i,"effect"!==o&&(s.origin=l||["middle","center"],s.restore=!0),s.from=e.from||("show"===o?{height:0,width:0,outerHeight:0,outerWidth:0}:c),s.to={height:c.height*h.y,width:c.width*h.x,outerHeight:c.outerHeight*h.y,outerWidth:c.outerWidth*h.x},s.fade&&("show"===o&&(s.from.opacity=0,s.to.opacity=1),"hide"===o&&(s.from.opacity=1,s.to.opacity=0)),n.effect(s)},t.effects.effect.puff=function(e,i){var n=t(this),s=t.effects.setMode(n,e.mode||"hide"),o="hide"===s,r=parseInt(e.percent,10)||150,a=r/100,l={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:s,complete:i,percent:o?r:100,from:o?l:{height:l.height*a,width:l.width*a,outerHeight:l.outerHeight*a,outerWidth:l.outerWidth*a}}),n.effect(e)},t.effects.effect.pulsate=function(e,i){var n,s=t(this),o=t.effects.setMode(s,e.mode||"show"),r="show"===o,a="hide"===o,l=r||"hide"===o,c=2*(e.times||5)+(l?1:0),h=e.duration/c,u=0,p=s.queue(),f=p.length;for((r||!s.is(":visible"))&&(s.css("opacity",0).show(),u=1),n=1;c>n;n++)s.animate({opacity:u},h,e.easing),u=1-u;s.animate({opacity:u},h,e.easing),s.queue(function(){a&&s.hide(),i()}),f>1&&p.splice.apply(p,[1,0].concat(p.splice(f,c+1))),s.dequeue()},t.effects.effect.shake=function(e,i){var n,s=t(this),o=["position","top","bottom","left","right","height","width"],r=t.effects.setMode(s,e.mode||"effect"),a=e.direction||"left",l=e.distance||20,c=e.times||3,h=2*c+1,u=Math.round(e.duration/h),p="up"===a||"down"===a?"top":"left",f="up"===a||"left"===a,d={},g={},m={},v=s.queue(),y=v.length;for(t.effects.save(s,o),s.show(),t.effects.createWrapper(s),d[p]=(f?"-=":"+=")+l,g[p]=(f?"+=":"-=")+2*l,m[p]=(f?"-=":"+=")+2*l,s.animate(d,u,e.easing),n=1;c>n;n++)s.animate(g,u,e.easing).animate(m,u,e.easing);s.animate(g,u,e.easing).animate(d,u/2,e.easing).queue(function(){ +"hide"===r&&s.hide(),t.effects.restore(s,o),t.effects.removeWrapper(s),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,h+1))),s.dequeue()},t.effects.effect.slide=function(e,i){var n,s=t(this),o=["position","top","bottom","left","right","width","height"],r=t.effects.setMode(s,e.mode||"show"),a="show"===r,l=e.direction||"left",c="up"===l||"down"===l?"top":"left",h="up"===l||"left"===l,u={};t.effects.save(s,o),s.show(),n=e.distance||s["top"===c?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(s).css({overflow:"hidden"}),a&&s.css(c,h?isNaN(n)?"-"+n:-n:n),u[c]=(a?h?"+=":"-=":h?"-=":"+=")+n,s.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===r&&s.hide(),t.effects.restore(s,o),t.effects.removeWrapper(s),i()}})},t.effects.effect.transfer=function(e,i){var n=t(this),s=t(e.to),o="fixed"===s.css("position"),r=t("body"),a=o?r.scrollTop():0,l=o?r.scrollLeft():0,c=s.offset(),h={top:c.top-a,left:c.left-l,height:s.innerHeight(),width:s.innerWidth()},u=n.offset(),p=t("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(e.className).css({top:u.top-a,left:u.left-l,height:n.innerHeight(),width:n.innerWidth(),position:o?"fixed":"absolute"}).animate(h,e.duration,e.easing,function(){p.remove(),i()})}}),function(t){function e(e){var i=t.formatCurrency.regions[e];if(i)return i;if(/(\w+)-(\w+)/g.test(e)){var n=e.replace(/(\w+)-(\w+)/g,"$1");return t.formatCurrency.regions[n]}return null}function i(t){switch(t.toLowerCase()){case"int":return"Int";case"float":return"Float";default:throw"invalid parseType"}}function n(t){if(""===t.symbol)return new RegExp("[^\\d"+t.decimalSymbol+"-]","g");var e=t.symbol.replace("$","\\$").replace(".","\\.");return new RegExp(e+"|[^\\d"+t.decimalSymbol+"-]","g")}t.formatCurrency={},t.formatCurrency.regions=[],t.formatCurrency.regions[""]={symbol:"$",positiveFormat:"%s%n",negativeFormat:"(%s%n)",decimalSymbol:".",digitGroupSymbol:",",groupDigits:!0},t.fn.formatCurrency=function(i,s){1==arguments.length&&"string"!=typeof i&&(s=i,i=!1);var o={name:"formatCurrency",colorize:!1,region:"",global:!0,roundToDecimalPlace:2,eventOnDecimalsEntered:!1};return o=t.extend(o,t.formatCurrency.regions[""]),s=t.extend(o,s),s.region.length>0&&(s=t.extend(s,e(s.region))),s.regex=n(s),this.each(function(){$this=t(this);var e="0";if(e=$this[$this.is("input, select, textarea")?"val":"html"](),e.search("\\(")>=0&&(e="-"+e),""!==e&&("-"!==e||-1!==s.roundToDecimalPlace)){if(isNaN(e)){if(e=e.replace(s.regex,""),""===e||"-"===e&&-1===s.roundToDecimalPlace)return;"."!=s.decimalSymbol&&(e=e.replace(s.decimalSymbol,".")),isNaN(e)&&(e="0")}var n=String(e).split("."),o=e==Math.abs(e),r=n.length>1,a=r?n[1].toString():"0",l=a;if(e=Math.abs(n[0]),e=isNaN(e)?0:e,s.roundToDecimalPlace>=0&&(a=parseFloat("1."+a),a=a.toFixed(s.roundToDecimalPlace),"2"==a.substring(0,1)&&(e=Number(e)+1),a=a.substring(2)),e=String(e),s.groupDigits)for(var c=0;c<Math.floor((e.length-(1+c))/3);c++)e=e.substring(0,e.length-(4*c+3))+s.digitGroupSymbol+e.substring(e.length-(4*c+3));(r&&-1==s.roundToDecimalPlace||s.roundToDecimalPlace>0)&&(e+=s.decimalSymbol+a);var h=o?s.positiveFormat:s.negativeFormat,u=h.replace(/%s/g,s.symbol);u=u.replace(/%n/g,e);var p=t([]);p=i?t(i):$this,p[p.is("input, select, textarea")?"val":"html"](u),r&&s.eventOnDecimalsEntered&&l.length>s.roundToDecimalPlace&&p.trigger("decimalsEntered",l),s.colorize&&p.css("color",o?"black":"red")}})},t.fn.toNumber=function(i){var s=t.extend({name:"toNumber",region:"",global:!0},t.formatCurrency.regions[""]);return i=jQuery.extend(s,i),i.region.length>0&&(i=t.extend(i,e(i.region))),i.regex=n(i),this.each(function(){var e=t(this).is("input, select, textarea")?"val":"html";t(this)[e](t(this)[e]().replace("(","(-").replace(i.regex,""))})},t.fn.asNumber=function(s){var o=t.extend({name:"asNumber",region:"",parse:!0,parseType:"Float",global:!0},t.formatCurrency.regions[""]);s=jQuery.extend(o,s),s.region.length>0&&(s=t.extend(s,e(s.region))),s.regex=n(s),s.parseType=i(s.parseType);var r=t(this).is("input, select, textarea")?"val":"html",a=t(this)[r]();return a=a||"",a=a.replace("(","(-"),a=a.replace(s.regex,""),s.parse?(0==a.length&&(a="0"),"."!=s.decimalSymbol&&(a=a.replace(s.decimalSymbol,".")),window["parse"+s.parseType](a)):a}}(jQuery),function(t){if("function"==typeof define&&define.amd)define(t);else if("object"==typeof exports)module.exports=t();else{var e=window.Cookies,i=window.Cookies=t(window.jQuery);i.noConflict=function(){return window.Cookies=e,i}}}(function(){function t(){for(var t=0,e={};t<arguments.length;t++){var i=arguments[t];for(var n in i)e[n]=i[n]}return e}function e(i){function n(e,s,o){var r;if(arguments.length>1){if(o=t({path:"/"},n.defaults,o),"number"==typeof o.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*o.expires),o.expires=a}try{r=JSON.stringify(s),/^[\{\[]/.test(r)&&(s=r)}catch(t){}return s=encodeURIComponent(String(s)),s=s.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)),e=e.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),e=e.replace(/[\(\)]/g,escape),document.cookie=[e,"=",s,o.expires&&"; expires="+o.expires.toUTCString(),o.path&&"; path="+o.path,o.domain&&"; domain="+o.domain,o.secure&&"; secure"].join("")}e||(r={});for(var l=document.cookie?document.cookie.split("; "):[],c=/(%[0-9A-Z]{2})+/g,h=0;h<l.length;h++){var u=l[h].split("="),p=u[0].replace(c,decodeURIComponent),f=u.slice(1).join("=");if('"'===f.charAt(0)&&(f=f.slice(1,-1)),f=i&&i(f,p)||f.replace(c,decodeURIComponent),this.json)try{f=JSON.parse(f)}catch(t){}if(e===p){r=f;break}e||(r[p]=f)}return r}return n.get=n.set=n,n.getJSON=function(){return n.apply({json:!0},[].slice.call(arguments))},n.defaults={},n.remove=function(e,i){n(e,"",t(i,{expires:-1}))},n.withConverter=e,n}return e()}),function(t){"use strict";t.fn.idle=function(e){var i,n,s={idle:6e4,events:"mousemove keydown mousedown touchstart",onIdle:function(){},onActive:function(){},onHide:function(){},onShow:function(){},keepTracking:!0,startAtIdle:!1,recurIdleCall:!1},o=e.startAtIdle||!1,r=!e.startAtIdle||!0,a=t.extend({},s,e),l=null;return t(this).on("idle:stop",{},function(){t(this).off(a.events),a.keepTracking=!1,i(l,a)}),i=function(t,e){return o&&(o=!1,e.onActive.call()),clearTimeout(t),e.keepTracking?n(e):void 0},n=function(t){var e=t.recurIdleCall?setInterval:setTimeout;return e(function(){o=!0,t.onIdle.call()},t.idle)},this.each(function(){l=n(a),t(this).on(a.events,function(){l=i(l,a)}),(a.onShow||a.onHide)&&t(document).on("visibilitychange webkitvisibilitychange mozvisibilitychange msvisibilitychange",function(){document.hidden||document.webkitHidden||document.mozHidden||document.msHidden?r&&(r=!1,a.onHide.call()):r||(r=!0,a.onShow.call())})})}}(jQuery),function(t,e,i,n){"use strict";function s(t,e,i){return setTimeout(c(t,i),e)}function o(t,e,i){return!!Array.isArray(t)&&(r(t,i[e],i),!0)}function r(t,e,i){var s;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==n)for(s=0;s<t.length;)e.call(i,t[s],s,t),s++;else for(s in t)t.hasOwnProperty(s)&&e.call(i,t[s],s,t)}function a(e,i,n){var s="DEPRECATED METHOD: "+i+"\n"+n+" AT \n";return function(){var i=new Error("get-stack-trace"),n=i&&i.stack?i.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=t.console&&(t.console.warn||t.console.log);return o&&o.call(t.console,s,n),e.apply(this,arguments)}}function l(t,e,i){var n,s=e.prototype;n=t.prototype=Object.create(s),n.constructor=t,n._super=s,i&&ut(n,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function h(t,e){return typeof t==dt?t.apply(e&&e[0]||n,e):t}function u(t,e){return t===n?e:t}function p(t,e,i){r(m(e),function(e){t.addEventListener(e,i,!1)})}function f(t,e,i){r(m(e),function(e){t.removeEventListener(e,i,!1)})}function d(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function g(t,e){return t.indexOf(e)>-1}function m(t){return t.trim().split(/\s+/g)}function v(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;n<t.length;){if(i&&t[n][i]==e||!i&&t[n]===e)return n;n++}return-1}function y(t){return Array.prototype.slice.call(t,0)}function b(t,e,i){for(var n=[],s=[],o=0;o<t.length;){var r=e?t[o][e]:t[o];v(s,r)<0&&n.push(t[o]),s[o]=r,o++}return i&&(n=e?n.sort(function(t,i){return t[e]>i[e]}):n.sort()),n}function w(t,e){for(var i,s,o=e[0].toUpperCase()+e.slice(1),r=0;r<pt.length;){if(i=pt[r],s=i?i+o:e,s in t)return s;r++}return n}function x(){return wt++}function _(e){var i=e.ownerDocument||e;return i.defaultView||i.parentWindow||t}function C(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){h(t.options.enable,[t])&&i.handler(e)},this.init()}function T(t){var e=t.options.inputClass;return new(e||(Ct?O:Tt?F:_t?q:L))(t,S)}function S(t,e,i){var n=i.pointers.length,s=i.changedPointers.length,o=e&Ht&&n-s==0,r=e&(It|zt)&&n-s==0;i.isFirst=!!o,i.isFinal=!!r,o&&(t.session={}),i.eventType=e,E(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function E(t,e){var i=t.session,n=e.pointers,s=n.length;i.firstInput||(i.firstInput=k(e)),s>1&&!i.firstMultiple?i.firstMultiple=k(e):1===s&&(i.firstMultiple=!1);var o=i.firstInput,r=i.firstMultiple,a=r?r.center:o.center,l=e.center=H(n);e.timeStamp=vt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=A(a,l),e.distance=z(a,l),P(i,e),e.offsetDirection=I(e.deltaX,e.deltaY);var c=D(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=mt(c.x)>mt(c.y)?c.x:c.y,e.scale=r?M(r.pointers,n):1,e.rotation=r?W(r.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,N(i,e);var h=t.element;d(e.srcEvent.target,h)&&(h=e.srcEvent.target),e.target=h}function P(t,e){var i=e.center,n=t.offsetDelta||{},s=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Ht&&o.eventType!==It||(s=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=s.x+(i.x-n.x),e.deltaY=s.y+(i.y-n.y)}function N(t,e){var i,s,o,r,a=t.lastInterval||e,l=e.timeStamp-a.timeStamp;if(e.eventType!=zt&&(l>kt||a.velocity===n)){var c=e.deltaX-a.deltaX,h=e.deltaY-a.deltaY,u=D(l,c,h);s=u.x,o=u.y,i=mt(u.x)>mt(u.y)?u.x:u.y,r=I(c,h),t.lastInterval=e}else i=a.velocity,s=a.velocityX,o=a.velocityY,r=a.direction;e.velocity=i,e.velocityX=s,e.velocityY=o,e.direction=r}function k(t){for(var e=[],i=0;i<t.pointers.length;)e[i]={clientX:gt(t.pointers[i].clientX),clientY:gt(t.pointers[i].clientY)},i++;return{timeStamp:vt(),pointers:e,center:H(e),deltaX:t.deltaX,deltaY:t.deltaY}}function H(t){var e=t.length;if(1===e)return{x:gt(t[0].clientX),y:gt(t[0].clientY)};for(var i=0,n=0,s=0;e>s;)i+=t[s].clientX,n+=t[s].clientY,s++;return{x:gt(i/e),y:gt(n/e)}}function D(t,e,i){return{x:e/t||0,y:i/t||0}}function I(t,e){return t===e?At:mt(t)>=mt(e)?0>t?Wt:Mt:0>e?Lt:Ot}function z(t,e,i){i||(i=Bt);var n=e[i[0]]-t[i[0]],s=e[i[1]]-t[i[1]];return Math.sqrt(n*n+s*s)}function A(t,e,i){i||(i=Bt);var n=e[i[0]]-t[i[0]],s=e[i[1]]-t[i[1]];return 180*Math.atan2(s,n)/Math.PI}function W(t,e){return A(e[1],e[0],qt)+A(t[1],t[0],qt)}function M(t,e){return z(e[0],e[1],qt)/z(t[0],t[1],qt)}function L(){this.evEl=Xt,this.evWin=Yt,this.pressed=!1,C.apply(this,arguments)}function O(){this.evEl=Gt,this.evWin=Qt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function j(){this.evTarget=Jt,this.evWin=Zt,this.started=!1,C.apply(this,arguments)}function R(t,e){var i=y(t.touches),n=y(t.changedTouches);return e&(It|zt)&&(i=b(i.concat(n),"identifier",!0)),[i,n]}function F(){this.evTarget=ee,this.targetIds={},C.apply(this,arguments)}function B(t,e){var i=y(t.touches),n=this.targetIds;if(e&(Ht|Dt)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var s,o,r=y(t.changedTouches),a=[],l=this.target;if(o=i.filter(function(t){return d(t.target,l)}),e===Ht)for(s=0;s<o.length;)n[o[s].identifier]=!0,s++;for(s=0;s<r.length;)n[r[s].identifier]&&a.push(r[s]),e&(It|zt)&&delete n[r[s].identifier],s++;return a.length?[b(o.concat(a),"identifier",!0),a]:void 0}function q(){C.apply(this,arguments);var t=c(this.handler,this);this.touch=new F(this.manager,t),this.mouse=new L(this.manager,t),this.primaryTouch=null,this.lastTouches=[]}function $(t,e){t&Ht?(this.primaryTouch=e.changedPointers[0].identifier,X.call(this,e)):t&(It|zt)&&X.call(this,e)}function X(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var i={x:e.clientX,y:e.clientY};this.lastTouches.push(i);var n=this.lastTouches,s=function(){var t=n.indexOf(i);t>-1&&n.splice(t,1)};setTimeout(s,ie)}}function Y(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var s=this.lastTouches[n],o=Math.abs(e-s.x),r=Math.abs(i-s.y);if(ne>=o&&ne>=r)return!0}return!1}function U(t,e){this.manager=t,this.set(e)}function V(t){if(g(t,ce))return ce;var e=g(t,he),i=g(t,ue);return e&&i?ce:e||i?e?he:ue:g(t,le)?le:ae}function G(){if(!oe)return!1;var e={},i=t.CSS&&t.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(n){e[n]=!i||t.CSS.supports("touch-action",n)}),e}function Q(t){this.options=ut({},this.defaults,t||{}),this.id=x(),this.manager=null,this.options.enable=u(this.options.enable,!0),this.state=fe,this.simultaneous={},this.requireFail=[]}function K(t){return t&ye?"cancel":t&me?"end":t&ge?"move":t&de?"start":""}function J(t){return t==Ot?"down":t==Lt?"up":t==Wt?"left":t==Mt?"right":""}function Z(t,e){var i=e.manager;return i?i.get(t):t}function tt(){Q.apply(this,arguments)}function et(){tt.apply(this,arguments),this.pX=null,this.pY=null}function it(){tt.apply(this,arguments)}function nt(){Q.apply(this,arguments),this._timer=null,this._input=null}function st(){tt.apply(this,arguments)}function ot(){tt.apply(this,arguments)}function rt(){Q.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function at(t,e){return e=e||{},e.recognizers=u(e.recognizers,at.defaults.preset),new lt(t,e)}function lt(t,e){this.options=ut({},at.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=T(this),this.touchAction=new U(this,this.options.touchAction),ct(this,!0),r(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function ct(t,e){var i,n=t.element;n.style&&(r(t.options.cssProps,function(s,o){i=w(n.style,o),e?(t.oldCssProps[i]=n.style[i],n.style[i]=s):n.style[i]=t.oldCssProps[i]||""}),e||(t.oldCssProps={}))}function ht(t,i){var n=e.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=i,i.target.dispatchEvent(n)}var ut,pt=["","webkit","Moz","MS","ms","o"],ft=e.createElement("div"),dt="function",gt=Math.round,mt=Math.abs,vt=Date.now;ut="function"!=typeof Object.assign?function(t){if(t===n||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var s=arguments[i];if(s!==n&&null!==s)for(var o in s)s.hasOwnProperty(o)&&(e[o]=s[o])}return e}:Object.assign;var yt=a(function(t,e,i){for(var s=Object.keys(e),o=0;o<s.length;)(!i||i&&t[s[o]]===n)&&(t[s[o]]=e[s[o]]),o++;return t},"extend","Use `assign`."),bt=a(function(t,e){return yt(t,e,!0)},"merge","Use `assign`."),wt=1,xt=/mobile|tablet|ip(ad|hone|od)|android/i,_t="ontouchstart"in t,Ct=w(t,"PointerEvent")!==n,Tt=_t&&xt.test(navigator.userAgent),St="touch",Et="pen",Pt="mouse",Nt="kinect",kt=25,Ht=1,Dt=2,It=4,zt=8,At=1,Wt=2,Mt=4,Lt=8,Ot=16,jt=Wt|Mt,Rt=Lt|Ot,Ft=jt|Rt,Bt=["x","y"],qt=["clientX","clientY"];C.prototype={handler:function(){},init:function(){this.evEl&&p(this.element,this.evEl,this.domHandler),this.evTarget&&p(this.target,this.evTarget,this.domHandler),this.evWin&&p(_(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&f(this.element,this.evEl,this.domHandler),this.evTarget&&f(this.target,this.evTarget,this.domHandler),this.evWin&&f(_(this.element),this.evWin,this.domHandler)}};var $t={mousedown:Ht,mousemove:Dt,mouseup:It},Xt="mousedown",Yt="mousemove mouseup";l(L,C,{handler:function(t){var e=$t[t.type];e&Ht&&0===t.button&&(this.pressed=!0),e&Dt&&1!==t.which&&(e=It),this.pressed&&(e&It&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:Pt,srcEvent:t}))}});var Ut={pointerdown:Ht,pointermove:Dt,pointerup:It,pointercancel:zt,pointerout:zt},Vt={2:St,3:Et,4:Pt,5:Nt},Gt="pointerdown",Qt="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Gt="MSPointerDown",Qt="MSPointerMove MSPointerUp MSPointerCancel"),l(O,C,{handler:function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace("ms",""),s=Ut[n],o=Vt[t.pointerType]||t.pointerType,r=o==St,a=v(e,t.pointerId,"pointerId");s&Ht&&(0===t.button||r)?0>a&&(e.push(t),a=e.length-1):s&(It|zt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,s,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),i&&e.splice(a,1))}});var Kt={touchstart:Ht,touchmove:Dt,touchend:It,touchcancel:zt},Jt="touchstart",Zt="touchstart touchmove touchend touchcancel";l(j,C,{handler:function(t){var e=Kt[t.type];if(e===Ht&&(this.started=!0),this.started){var i=R.call(this,t,e);e&(It|zt)&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:St,srcEvent:t})}}});var te={touchstart:Ht,touchmove:Dt,touchend:It,touchcancel:zt},ee="touchstart touchmove touchend touchcancel";l(F,C,{handler:function(t){var e=te[t.type],i=B.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:St,srcEvent:t})}});var ie=2500,ne=25;l(q,C,{handler:function(t,e,i){var n=i.pointerType==St,s=i.pointerType==Pt;if(!(s&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(n)$.call(this,e,i);else if(s&&Y.call(this,i))return;this.callback(t,e,i)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var se=w(ft.style,"touchAction"),oe=se!==n,re="compute",ae="auto",le="manipulation",ce="none",he="pan-x",ue="pan-y",pe=G();U.prototype={set:function(t){t==re&&(t=this.compute()),oe&&this.manager.element.style&&pe[t]&&(this.manager.element.style[se]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return r(this.manager.recognizers,function(e){h(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),V(t.join(" "))},preventDefaults:function(t){var e=t.srcEvent,i=t.offsetDirection;if(!this.manager.session.prevented){var n=this.actions,s=g(n,ce)&&!pe[ce],o=g(n,ue)&&!pe[ue],r=g(n,he)&&!pe[he];if(s){var a=1===t.pointers.length,l=t.distance<2,c=t.deltaTime<250;if(a&&l&&c)return}return r&&o?void 0:s||o&&i&jt||r&&i&Rt?this.preventSrc(e):void 0}e.preventDefault()},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var fe=1,de=2,ge=4,me=8,ve=me,ye=16,be=32;Q.prototype={defaults:{},set:function(t){return ut(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(o(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=Z(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return o(t,"dropRecognizeWith",this)?this:(t=Z(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(o(t,"requireFailure",this))return this;var e=this.requireFail;return t=Z(t,this),-1===v(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(o(t,"dropRequireFailure",this))return this;t=Z(t,this);var e=v(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,n=this.state;me>n&&e(i.options.event+K(n)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),n>=me&&e(i.options.event+K(n))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=be)},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(be|fe)))return!1;t++}return!0},recognize:function(t){var e=ut({},t);return h(this.options.enable,[this,e])?(this.state&(ve|ye|be)&&(this.state=fe),this.state=this.process(e),void(this.state&(de|ge|me|ye)&&this.tryEmit(e))):(this.reset(),void(this.state=be))},process:function(t){},getTouchAction:function(){},reset:function(){}},l(tt,Q,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,i=t.eventType,n=e&(de|ge),s=this.attrTest(t);return n&&(i&zt||!s)?e|ye:n||s?i&It?e|me:e&de?e|ge:de:be}}),l(et,tt,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ft},getTouchAction:function(){var t=this.options.direction,e=[];return t&jt&&e.push(ue),t&Rt&&e.push(he),e},directionTest:function(t){var e=this.options,i=!0,n=t.distance,s=t.direction,o=t.deltaX,r=t.deltaY;return s&e.direction||(e.direction&jt?(s=0===o?At:0>o?Wt:Mt,i=o!=this.pX,n=Math.abs(t.deltaX)):(s=0===r?At:0>r?Lt:Ot,i=r!=this.pY,n=Math.abs(t.deltaY))),t.direction=s,i&&n>e.threshold&&s&e.direction},attrTest:function(t){return tt.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=J(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),l(it,tt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),l(nt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ae]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance<e.threshold,o=t.deltaTime>e.time;if(this._input=t,!n||!i||t.eventType&(It|zt)&&!o)this.reset();else if(t.eventType&Ht)this.reset(),this._timer=s(function(){this.state=ve,this.tryEmit()},e.time,this);else if(t.eventType&It)return ve;return be},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ve&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=vt(),this.manager.emit(this.options.event,this._input)))}}),l(st,tt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),l(ot,tt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:jt|Rt,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(jt|Rt)?e=t.overallVelocity:i&jt?e=t.overallVelocityX:i&Rt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&mt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=J(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),l(rt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[le]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance<e.threshold,o=t.deltaTime<e.time;if(this.reset(),t.eventType&Ht&&0===this.count)return this.failTimeout();if(n&&o&&i){if(t.eventType!=It)return this.failTimeout();var r=!this.pTime||t.timeStamp-this.pTime<e.interval,a=!this.pCenter||z(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,a&&r?this.count+=1:this.count=1,this._input=t;var l=this.count%e.taps;if(0===l)return this.hasRequireFailures()?(this._timer=s(function(){this.state=ve,this.tryEmit()},e.interval,this),de):ve}return be},failTimeout:function(){return this._timer=s(function(){this.state=be},this.options.interval,this),be},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ve&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),at.VERSION="2.0.8",at.defaults={domEvents:!1,touchAction:re,enable:!0,inputTarget:null,inputClass:null,preset:[[st,{enable:!1}],[it,{enable:!1},["rotate"]],[ot,{direction:jt}],[et,{direction:jt},["swipe"]],[rt],[rt,{event:"doubletap",taps:2},["tap"]],[nt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var we=1,xe=2;lt.prototype={set:function(t){return ut(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?xe:we},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var i,n=this.recognizers,s=e.curRecognizer;(!s||s&&s.state&ve)&&(s=e.curRecognizer=null);for(var o=0;o<n.length;)i=n[o],e.stopped===xe||s&&i!=s&&!i.canRecognizeWith(s)?i.reset():i.recognize(t),!s&&i.state&(de|ge|me)&&(s=e.curRecognizer=i),o++}},get:function(t){if(t instanceof Q)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event==t)return e[i];return null},add:function(t){if(o(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(o(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,i=v(e,t);-1!==i&&(e.splice(i,1),this.touchAction.update())}return this},on:function(t,e){if(t!==n&&e!==n){var i=this.handlers;return r(m(t),function(t){i[t]=i[t]||[],i[t].push(e)}),this}},off:function(t,e){if(t!==n){var i=this.handlers;return r(m(t),function(t){e?i[t]&&i[t].splice(v(i[t],e),1):delete i[t]}),this}},emit:function(t,e){this.options.domEvents&&ht(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var n=0;n<i.length;)i[n](e),n++}},destroy:function(){this.element&&ct(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},ut(at,{INPUT_START:Ht,INPUT_MOVE:Dt,INPUT_END:It,INPUT_CANCEL:zt,STATE_POSSIBLE:fe,STATE_BEGAN:de,STATE_CHANGED:ge,STATE_ENDED:me,STATE_RECOGNIZED:ve,STATE_CANCELLED:ye,STATE_FAILED:be,DIRECTION_NONE:At,DIRECTION_LEFT:Wt,DIRECTION_RIGHT:Mt,DIRECTION_UP:Lt,DIRECTION_DOWN:Ot,DIRECTION_HORIZONTAL:jt,DIRECTION_VERTICAL:Rt,DIRECTION_ALL:Ft,Manager:lt,Input:C,TouchAction:U,TouchInput:F,MouseInput:L,PointerEventInput:O,TouchMouseInput:q,SingleTouchInput:j,Recognizer:Q,AttrRecognizer:tt,Tap:rt,Pan:et,Swipe:ot,Pinch:it,Rotate:st,Press:nt,on:p,off:f,each:r,merge:bt,extend:yt,assign:ut,inherit:l,bindFn:c,prefixed:w});var _e=void 0!==t?t:"undefined"!=typeof self?self:{};_e.Hammer=at,"function"==typeof define&&define.amd?define(function(){return at}):"undefined"!=typeof module&&module.exports?module.exports=at:t[i]=at}(window,document,"Hammer"),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.MagicGrid=e()}(this,function(){"use strict";var t=function(t){if(!t)throw new Error("No config object has been provided.");"boolean"!=typeof t.useTransform&&(t.useTransform=!0),"number"!=typeof t.gutter&&(t.gutter=25),t.container||e("container"),t.items||t.static||e("items or static")},e=function(t){throw new Error("Missing property '"+t+"' in MagicGrid config")},i=function(t){var e=t[0];for(var i of t)i.height<e.height&&(e=i);return e},n=function(e){t(e),e.container instanceof HTMLElement?(this.container=e.container,this.containerClass=e.container.className):(this.containerClass=e.container,this.container=document.querySelector(e.container)),this.items=this.container.children,this.static=e.static||!1,this.size=e.items,this.gutter=e.gutter,this.maxColumns=e.maxColumns||!1,this.useMin=e.useMin||!1,this.useTransform=e.useTransform,this.animate=e.animate||!1,this.started=!1,this.init()};return n.prototype.init=function(){if(this.ready()&&!this.started){this.container.style.position="relative";for(var t=0;t<this.items.length;t++){var e=this.items[t].style;e.position="absolute",this.animate&&(e.transition=(this.useTransform?"transform":"top, left")+" 0.2s ease")}this.started=!0}},n.prototype.colWidth=function(){return this.items[0].getBoundingClientRect().width+this.gutter},n.prototype.setup=function(){var t=this.container.getBoundingClientRect().width,e=this.colWidth(),i=Math.floor(t/e)||1,n=[];this.maxColumns&&i>this.maxColumns&&(i=this.maxColumns);for(var s=0;s<i;s++)n[s]={height:0,index:s};return{cols:n,wSpace:t-i*e+this.gutter}},n.prototype.nextCol=function(t,e){return this.useMin?i(t):t[e%t.length]},n.prototype.positionItems=function(){var t=this.setup(),e=t.cols,i=t.wSpace,n=0,s=this.colWidth();i=Math.floor(i/2);for(var o=0;o<this.items.length;o++){var r=this.nextCol(e,o),a=this.items[o],l=r.height?this.gutter:0,c=r.index*s+i+"px",h=r.height+l+"px";this.useTransform?a.style.transform="translate("+c+", "+h+")":(a.style.top=h,a.style.left=c),r.height+=a.getBoundingClientRect().height+l,r.height>n&&(n=r.height)}this.container.style.height=n+"px"},n.prototype.ready=function(){return!!this.static||this.items.length>=this.size},n.prototype.getReady=function(){var t=this,e=setInterval(function(){t.container=document.querySelector(t.containerClass),t.items=t.container.children,t.ready()&&(clearInterval(e),t.init(),t.listen())},100)},n.prototype.listen=function(){var t,e=this;this.ready()?(window.addEventListener("resize",function(){t||(t=setTimeout(function(){e.positionItems(),t=null},200))}),this.positionItems()):this.getReady()},n}); \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/peafowl.css b/content/legacy/themes/Peafowl/lib/peafowl.css new file mode 100644 index 0000000..43d9963 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/peafowl.css @@ -0,0 +1,6722 @@ +:root { + --colorBlue: #3498db; + --colorBlueHover: #2980b9; + --colorGreen: #2ecc71; + --colorGreenHover: #27ae60; + --colorOrange: #e67e22; + --colorOrangeHover: #d35400; + --colorPurple: #9b59b6; + --colorPurpleHover: #8e44ad; + --colorRed: #e74c3c; + --colorRedHover: #c0392b; + --colorYellow: #f1c40f; + --colorYellowHover: #f39c12; +} + +:root { + --colorSuccess: var(--colorGreen); + --colorFail: var(--colorRed); + --alertAccent: #f1c40f; + --alertBackground: #fff5b3; + --alertText: #161c1d; + --backgroundDarkAlpha: rgb(0 0 0 / 80%); + --backgroundLightAlpha: rgb(255 255 255 / 90%); + --bodyBackground: #FFF; + --bodyEmpty: #e2e8e9; + --bodySeparator: #e2e8e9; + --bodyText: #161c1d; + --bodyTextDisabled: #c5d1d3; + --bodyTextSubtle: #6c7779; + --buttonAccentBackground: var(--colorAccent); + --buttonAccentHoverBackground: var(--colorAccentStrong); + --buttonAccentHoverText: var(--buttonAccentText); + --buttonAccentText: #FFF; + --buttonDefaultBackground: #d9e1e2; + --buttonDefaultBorder: var(--buttonDefaultBackground); + --buttonDefaultHoverBackground: #c0def2; + --buttonDefaultHoverBorder: var(--buttonDefaultHoverBackground); + --buttonDefaultHoverText: var(--colorAccentStrong); + --buttonDefaultText: #161c1d; + --colorAccent: var(--colorBlue); + --colorAccentStrong: var(--colorBlueHover); + --inputBackground: #ecf0f1; + --inputPlaceholderText: #8aa2a8; + --inputText: #161c1d; + --linkText: var(--colorAccent); + --menuBackground: rgb(236 240 241 / 80%); + --menuItemHoverBackground: var(--colorAccent); + --menuItemHoverText: #FFF; + --menuItemText: #161c1d; + --menuSeparator: rgb(11 14 15 / 10%); + --menuText: #161c1d; + --modalBackground: var(--bodyBackground); + --modalText: #161c1d; + --topBarBackground: rgb(255 255 255); + --topBarText: #161c1d; + --viewerBackground: #323232; + --listItemText: #FFF; +} + +* { + -ms-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0; + list-style: none; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + + .phone select:focus, + .phone textarea:focus, + .phone input:focus { + font-size: 16px !important; + } +} + +.no-select, .user-select-none, .btn, .top-btn-text, .pop-btn-text, .link, .btn-container, .input-search, .list-item { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.animate { + transition: all 200ms ease-in-out; +} + +.animate--slow { + transition-duration: 400ms; +} + +[type="search"] { + -moz-appearance: textfield; + -webkit-appearance: textfield; + appearance: textfield; +} + +::-webkit-input-placeholder { + color: var(--inputPlaceholderText); + line-height: 140%; +} + +:-moz-placeholder { + color: var(--inputPlaceholderText); + opacity: 1; +} + +::-moz-placeholder { + color: var(--inputPlaceholderText); + opacity: 1; +} + +:-ms-input-placeholder { + color: var(--inputPlaceholderText); +} + +:focus::-webkit-input-placeholder { + color: var(--inputPlaceholderText); +} + +:focus:-moz-placeholder { + color: var(--inputPlaceholderText); +} + +:focus::-moz-placeholder { + color: var(--inputPlaceholderText); +} + +focus:-ms-input-placeholder { + color: var(--inputPlaceholderText); +} + +::-moz-focus-inner { + border: 0; + padding: 0; + margin: 0; +} + +::-ms-clear { + display: none; +} + +body { + min-height: 100vh; + min-height: -webkit-fill-available; + -webkit-font-smoothing: subpixel-antialiased; +} + +[type="submit"]:focus, button:focus { + outline: none; +} + +html { + height: 100%; + height: -webkit-fill-available; +} + +html, body { + min-height: 100vh; + font-family: Helvetica, Arial, sans-serif; + color: var(--bodyText); + font-size: 16px; + background: var(--bodyBackground); + -webkit-text-size-adjust: 100%; +} + +kbd { + font-family: inherit; +} + +.pointer-events-none { + pointer-events: none; +} + +#menu-fullscreen, #pop-box-mask.fullscreen { + height: 100%; +} + +.pop-box, #menu-fullscreen { + transition: transform 350ms cubic-bezier(0.4, 0, 0, 1), opacity 350ms cubic-bezier(0.4, 0, 0, 1); +} + +#menu-fullscreen>ul { + position: relative; + z-index: 1000; + background: var(--topBarBackground); + color: var(--topBarText) +} + +body.no-margin-top { + margin-top: 0; + padding-top: 0; + /* min-height: calc(100% - 50px); */ +} + +.content-width { + width: 100%; + margin-right: auto; + margin-left: auto; + position: relative; + padding-left: 10px; + padding-right: 10px; +} + +.phone .top-bar .content-width { + padding-left: 0; + padding-right: 0; +} + +a { + color: var(--linkText); + text-decoration: none; + cursor: pointer; + outline: 0; +} + +a[rel=external]::after { + font-weight: 900; + font-family: "Font Awesome 5 Free"; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + margin-left: 0.25em; + content: "\f35d"; + font-size: 90%; +} + +a[role="button"]:hover { + text-decoration: none; +} + +a:hover, a:focus { + text-decoration: underline; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: normal; + line-height: 1; +} + +.ui-selectable-helper { + background: var(--colorAccent); + border: 2px dashed var(--topBarBackground); + position: absolute; + z-index: 500; + opacity: .6; +} + +.image-container { + transition: transform 180ms cubic-bezier(0.25, 1, 0.5, 1); +} + +.selected .image-container, .ui-selecting.selected .image-container { + transform: scale(0.5); +} + +.selected .list-item-play-gif, .ui-selecting.selected .list-item-play-gif { + transform: scale(0.75); +} + +.ui-selecting.selected .image-container img, .selected .image-container img, +.ui-selecting.selected .image-container svg, .selected .image-container svg { + border-radius: 0.5em; + -webkit-transform: translateZ(0); +} + +.hidden { + display: none !important; +} + +.visible { + display: block !important; +} + +.soft-hidden, .fas.soft-hidden, .far.soft-hidden, .fab.soft-hidden { + display: none; +} + +.soft-visible { + display: block; +} + +.hidden-visibility { + visibility: hidden; + position: absolute; + top: 0; +} + +.touch-scroll { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.or-separator { + border-top: 1px solid var(--bodySeparator); + text-align: center; + margin: 10px 0 10px 0; +} + +.tone-dark .or-separator { + border-color: rgba(255, 255, 255, 0.1); +} + +.or-separator span { + font-size: 0.93em; + font-weight: normal; + color: var(--bodySeparator); + text-transform: uppercase; + text-align: center; + background: var(--bodyBackground); + display: inline-block; + position: relative; + padding: 0 10px; + top: -10px; +} + +.tone-dark .or-separator span { + background: #0b0b0b; +} + +.highlight { + color: var(--alertText); + background: var(--alertBackground); +} + +.highlight:empty { + display: none; +} + +.line-through { + text-decoration: line-through; +} + +.line-separator { + width: 100%; + height: 1px; + background: var(--bodySeparator); + display: block; + margin: 20px 0; +} + +.number-figures, a.number-figures { + font-size: 1.21em; + line-height: 1.21em; + color: inherit; + text-decoration: none; + padding-left: 10px; + padding-right: 10px; + margin-left: 0; + border-left: 1px solid var(--bodySeparator); + text-align: center; +} + +.tone-dark .number-figures, .tone-dark a.number-figures { + border-color: #212121; +} + +.number-figures:first-child { + padding-left: 0; + border-left: none; +} + +.number-figures:last-child { + padding-right: 0; +} + +.number-figures b { + font-weight: inherit; +} + +.number-figures .icon-heart4 { + position: relative; + top: 1px; +} + +.number-figures span:not(.icon) { + color: var(--bodyTextSubtle); + text-transform: uppercase; + font-size: 0.6em; +} + +a.number-figures:hover, a.number-figures:hover * { + color: var(--linkText); +} + +.loading {} + +.loading-indicator, .loading-text { + display: inline-block; + line-height: inherit; + vertical-align: top; +} + +.loading-indicator {} + +.loading-text { + margin-left: 5px; +} + +.btn-alt { + color: var(--bodyTextSubtle); + font-size: 13px; + font-size: 0.93rem; + margin: 0 5px; + display: inline !important; +} + +.btn-alt a:first-letter { + text-transform: capitalize; +} + +.phone .btn-alt { + margin: 5px 0 0; +} + +.btn-alt a { + margin-left: 5px; + cursor: pointer; +} + +a.link { + font-size: 13px; + font-size: 0.93rem; + text-decoration: none; + font-weight: normal; +} + +a.link--delete, [data-action="delete"], .tone-dark .pop-box-menu a.link--delete, .pop-box-menu a.link--delete { + color: #e74c3c; +} + +.tone-dark html:not(.phone) .pop-box-menu a.link--delete:hover, html:not(.phone) .pop-box-menu a.link--delete:hover { + background-color: #e74c3c; +} + +a.link--approve { + color: #2ecc71; +} + +a.link span.icon, a.link:hover span.icon { + text-decoration: none; +} + +a.link:hover span { + text-decoration: underline; +} + +.disabled, .disabled a { + color: var(--bodyTextDisabled); +} + +.tone-dark .disabled, .tone-dark .disabled a { + color: #444; +} + +.disabled a { + text-decoration: none; + cursor: default; +} + +.optional { + font-size: 50%; + color: var(--bodyTextSubtle); + font-weight: normal; +} + +.text-shadow { + text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.75); + -webkit-filter: dropshadow(color=#000000, offx=2, offy=2); + filter: dropshadow(color=#000000, offx=2, offy=2); +} + +.box-shadow { + box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.45); +} + +.silent-links a, a.silent-links { + color: inherit; +} + +.close-box .icon-circle { + color: var(--bodyText); + position: relative; +} + +.close-box .icon-close-box { + color: #fff; + position: absolute; + left: 0; + top: 0; +} + +.transparent-canvas { + background-image: url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9/f3yH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7); + background-repeat: repeat; +} + +.transparent-canvas.dark { + background-image: url(data:image/gif;base64,R0lGODlhEAAQAIAAAOfn58rKyiH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7); +} + +input, textarea, select { + font-family: inherit; + font-size: inherit; + -ms-appearance: none; + border-radius: 3px; + display: inline-block; + border: 1px solid transparent; + background: var(--inputBackground); + color: var(--inputText); +} + +input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { + -webkit-text-fill-color: var(--inputText) !important; +} + +input:focus, textarea:focus, select:focus, input.search:focus, .input-focus { + border-color: var(--colorAccent); +} + +input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, select:-webkit-autofill, select:-webkit-autofill:hover, select:-webkit-autofill:focus { + -webkit-text-fill-color: inherit; + -webkit-box-shadow: inset 0 0 0px 9999px transparent; + -webkit-transition: background-color 5000s ease-in-out 0s; + transition: background-color 5000s ease-in-out 0s; +} + +select { + font: inherit; + outline: none; +} + +.text-input, textarea { + outline: 0; +} + +input[type="checkbox"], input[type="radio"] { + border-radius: 0; + border: none; + position: relative; + vertical-align: baseline; +} + +.text-input, input[type="text"], .input-line-height { + height: 36px; +} + +.input-line-height { + line-height: 36px; +} + +textarea, .text-input, input[type="text"]:not(.text-input) { + padding: 7px 10px; + width: 100%; +} + +.ie7 textarea, .ie7 .text-input, .ie7 input[type="text"] { + padding: 10px; + width: 328px; + height: 14px; +} + +.ie8 textarea, .ie8 .text-input, .ie8 input[type="text"], .ie9 textarea, .ie9 .text-input, .ie9 input[type="text"] { + height: auto; +} + +.tone-dark input:focus, .tone-dark textarea:focus, .tone-dark select:focus, .tone-dark input.search:focus, .tone-dark .input-focus { + border-color: var(--colorAccent); + box-shadow: 0 0 8px 0 rgba(0, 167, 218, 0.75); +} + +.input, .input-label { + position: relative; + overflow: visible; + scroll-snap-align: start; +} + +.input { + margin: 10px 0; + font-size: 1em; +} + +.input.first-child, .input:first-child { + margin-top: 0; +} + +.input-label { + margin: 20px 0; +} + +.input-label.first-child, .input:first-child { + margin-top: 0; +} + +.input-label-label, .input-label label, .input-label h3 { + font-weight: 600; + padding-bottom: 5px; + display: inline-block; + font-size: 1em; +} + +.input-label h3 { + display: block; +} + +.input-label label a, .input-label h3 a { + font-weight: normal; +} + +.input-label label .optional, .input-label label .caption { + font-weight: normal; + font-size: 0.92em; +} + +.input-label .btn-alt { + position: absolute; + left: 100%; + top: 23px; + line-height: 36px; + margin-left: 10px; + margin-right: 0; +} + +.phone .input-label .btn-alt { + position: static; + margin-left: 0; +} + +.input-label, .checkbox-label { + position: relative; + font-size: 0.93em; +} + +.input .icon-input-submit { + background: transparent; + font-size: 1.82em; + color: #d9d9d9; + position: absolute; + right: 0.21em; + top: 0.21em; + cursor: pointer; + line-height: 1; +} + +.tone-dark .input .icon-input-submit { + color: #666; +} + +.input .icon-input-submit:hover, .input .icon-input-submit:focus, .input .icon-input-submit.focus { + color: var(--colorAccent); +} + +.ie7 .input .icon-input-submit { + top: 2px; +} + +.ui-autocomplete { + max-height: 130px; + overflow-y: auto; + overflow-x: hidden; +} + +* html .ui-autocomplete { + height: 125px; +} + +.autocomplete-list { + position: absolute; + display: none; + z-index: 1; +} + +.autocomplete-list .ui-autocomplete { + position: absolute; + top: 0; + left: 0; +} + +.autocomplete-list ul { + border: 1px solid var(--bodyTextDisabled); +} + +.autocomplete-list a { + color: inherit; + background: Window; + padding: 7px 10px; + display: block; + text-decoration: none; + cursor: default; +} + +.autocomplete-list a.ui-state-focus { + background: Highlight; + color: HighlightText; +} + +.input-column { + width: 350px; +} + +.input-warning { + color: var(--bodyTextSubtle); + position: absolute; + right: 0; + top: 0; +} + +.input-below { + margin-top: 5px; + display: block; + position: static; +} + +.red-warning { + color: #d74634; +} + +.input-password .input-password-strength { + position: absolute; + right: 11px; + top: 50%; + margin-top: 5px; +} + +.fancy-fieldset .input-password { + display: flex; + align-items: center; +} + +.fancy-fieldset .input-password-strength { + right: 0; + top: auto; + margin-top: 0; +} + +.input-password-strength { + background: var(--bodyEmpty); +} + +.tone-dark .input-password-strength { + background: #1f1f1f; +} + +.input-password-strength, .input-password-strength span { + display: block; + width: 50px; + height: 8px; +} + +.input-password-strength span { + width: 0%; + background-color: transparent; +} + +.input-password-strength *[data-veredict="very-weak"] { + background-color: #e74c3c; +} + +.input-password-strength *[data-veredict="weak"] { + background-color: #e67e22; +} + +.input-password-strength *[data-veredict="average"], .input-password-strength *[data-veredict="strong"], .input-password-strength *[data-veredict="stronger"] { + background-color: #2ecc71; +} + +.checkbox-label { + font-size: 1em; + display: block; + margin: 5px 0; + position: relative; +} + +.checkbox-label:last-child { + margin-bottom: 0; +} + +.checkbox-label input { + position: absolute; + padding: 0; + margin: 0; + margin-left: -20px; +} + +.btn-alt.checkbox-label input { + position: static; + vertical-align: text-top; + margin-right: 4px; +} + +.phone .btn-alt.checkbox-label { + display: block !important; + margin: 10px 0; +} + +.checkbox-label label { + padding-left: 20px; + font-weight: normal; + margin: 0; + padding-bottom: 0; +} + +.fancy-box .checkbox-label label { + display: flex; + align-items: flex-start; +} + +.input-search { + position: relative; +} + +input.search { + font-size: 1em; + border-radius: 200px; + padding: 0 25px 0 32px; + padding-right: 3.0666rem; + padding-left: 2.3571rem; + line-height: 100%; + height: 26px; + height: 1.86rem; + width: 100%; + border: 1px solid transparent; + top: 0; + left: 0; + outline: 0; + vertical-align: text-bottom; +} + +input.search.one-icon-padding, input.search.two-icon-padding { + padding-right: 30px; + padding-right: 2rem; +} + +input.search.two-icon-padding { + padding-left: 30px; + padding-left: 2rem; +} + +.top-bar input.search { + padding-left: 39px; + padding-left: 2.46rem; + top: -2px; + position: relative; + padding-right: 34px; + background: transparent; + border: transparent; + box-shadow: none !important; +} + +.top-bar input { + color: var(--topBarText); +} + +.ie7 input.search, .ie8 input.search, .ie9 input.search { + padding-right: 10px; + line-height: 26px; + height: 26px; +} + +.ie7 input.search { + padding: 0; + width: 200px; +} + +.input-search span { + position: absolute; + cursor: pointer; +} + +.input-search .icon--search { + left: 12px; + top: 6px; + color: var(--inputText); +} + +.top-bar .input-search .icon--search { + top: 4px; + top: 0.24rem; +} + +.tone-dark .top-bar .input-search input.search, .tone-dark .top-bar .input-search .icon--search { + color: #fff; +} + +.input-search .icon--search, .top-btn-text .icon--search { + font-size: 16px; + width: 16px; + font-size: 1.143rem; + width: 1.143rem; +} + +.input-search .icon--settings, .input-search .icon--close { + padding: 4px; + top: 0; + font-size: 1em; +} + +.input-search .icon--settings { + right: 22px; +} + +.input-search .icon--close { + right: 4px; + color: var(--inputText); +} + +.ie7 .input-search .icon--close, .ie8 .input-search .icon--close, .ie9 .input-search .icon--close { + display: none; +} + +select { + padding-left: 7px !important; +} + +.ie7 select { + width: 100% !important; + padding: 0 !important; + height: auto !important; +} + +select option { + padding: 4px 10px; + margin: 0; +} + +textarea { + resize: both; + height: 80px; +} + +.input-upload { + position: relative; +} + +.user-settings-avatar { + min-height: 160px; + height: auto; +} + +.user-settings-avatar-container { + position: relative; +} + +.user-settings-avatar-container, .user-settings-avatar-container .user-image { + font-size: 160px; + width: 1em; + height: 1em; +} + +.user-settings-avatar .loading-placeholder { + position: absolute; + left: 0; + top: 0; + background: var(--bodyEmpty); +} + +.tone-dark .user-settings-avatar .loading-placeholder { + background: rgba(0, 0, 0, 0.6); +} + +.phone .user-settings-avatar-container { + margin: 0 auto 10px !important; +} + +.input-upload .btn-container { + margin: 0 0 5px 0; +} + +.input-upload .btn-alt { + margin-left: 0; +} + +.arrow-down { + border-width: 4px 4px 0 4px; + border-color: #333 transparent transparent transparent; + border-color: #333 rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0); + content: ""; +} + +.arrow-down { + border-style: solid; + display: inline-block; + height: 0; + width: 0; + vertical-align: middle; +} + +.sign-services li { + display: inline-block; + margin: 0 4px 4px 0; +} + +.sign-service { + font-size: 0.93em; + padding: 0 8px; + line-height: 30px; + height: 29px; +} + +.sign-service .btn-icon { + font-size: inherit; + width: auto; +} + +.sign-services-compact .btn-text { + display: none; +} + +.sign-service, .link-service { + color: #fff; + display: inline-block; + text-decoration: none !important; +} + +.sign-service, .link-service span { + border-radius: 3px; +} + +.link-service { + font-weight: normal; + height: 28px; + position: relative; +} + +.link-service span { + display: block; + line-height: 28px; + text-align: center !important; +} + +.link-service .btn-icon { + width: 28px; + height: 28px; + margin-right: 4px; + position: absolute; + left: 0; + top: 0; +} + +.link-service span.sign-text { + padding: 0 20px; + margin-left: 32px; +} + +.sign-service .icon, .btn-social .btn-icon { + color: #fff; + position: relative; + display: inline-block; +} + +.btn-container { + margin-top: 20px; + margin-bottom: 20px; + position: relative; +} + +.btn { + height: 36px; + line-height: 36px; + font-family: inherit; + font-size: 1em; + font-weight: normal; + padding: 0 10px; + border-radius: 3px; + cursor: pointer; + display: inline-block; + text-decoration: none; + border: 1px solid transparent; + white-space: nowrap; +} + +.btn, .btn:hover, .btn:active, .btn:focus { + text-decoration: none; +} + +.btn:active, .btn.default:active { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn-icon { + /* font-size: 14px; */ + width: 18px; + display: inline-block; + text-align: center; +} + +.btn-text { + margin-left: 4px; +} + +.btn-big { + font-size: 16px; + font-size: 1.143rem; + height: 38px; + line-height: 38px; + padding-left: 1em; + padding-right: 1em; +} + +.btn-small { + height: 30px; + line-height: 30px; + font-size: 0.92em; +} + +.btn-input { + font-weight: 600; + font-size: 0.93em; + padding-left: 20px; + padding-right: 20px; +} + +.btn-32 { + width: 32px; + height: 32px; + text-align: center; + display: inline-block; +} + +.btn-32 .btn-icon { + font-size: 18px; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} + +.btn-capsule { + border-radius: 100px; + border-color: rgba(255, 255, 255, 0.5); + background-color: rgba(0, 0, 0, 0.5); + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + background-image: none; + height: auto; + color: #fff; + text-shadow: none; + font-size: 0.93em; + height: 28px; + line-height: 28px; + font-weight: normal; + padding: 0 15px; + box-shadow: none; + -webkit-filter: none; + filter: none; +} + +.btn-capsule:hover { + background-color: rgba(0, 0, 0, 0.7); +} + +.no-rgba .btn-capsule { + border-color: #666; + background-color: none; + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#7F000000, endColorstr=#7F000000); + zoom: 1; +} + +.no-rgba .btn-capsule:hover { + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#B2000000, endColorstr=#B2000000); +} + +.btn-capsule:active { + box-shadow: none; +} + +.btn-capsule .btn-icon { + font-size: 0.93em; +} + +.btn.accent { + color: var(--buttonAccentText); + border: 1px solid transparent; + background: var(--buttonAccentBackground); +} + +.btn.accent:not(.outline):hover { + color: var(--buttonAccentHoverText); + background: var(--buttonAccentHoverBackground); +} + +.btn.accent.outline { + color: var(--buttonAccentBackground); + border-color: var(--buttonAccentBackground); + box-shadow: none; +} + +.btn.accent.outline:hover { + color: var(--buttonAccentHoverBackground); + border-color: var(--buttonAccentHoverBackground); +} + +.btn.default { + color: var(--buttonDefaultText); + border-color: var(--buttonDefaultBorder); + background: var(--buttonDefaultBackground); +} + +.btn.default:not(.outline):hover, .btn.default--hover:not(.outline) { + color: var(--buttonDefaultHoverText); + background: var(--buttonDefaultHoverBackground); + border-color: var(--buttonDefaultHoverBorder); +} + +.btn.default.outline { + color: var(--buttonDefaultBackground); + border-color: var(--buttonDefaultBackground); + box-shadow: none; +} + +.btn.default.outline:hover { + color: var(--buttonDefaultHoverBackground); + border-color: var(--buttonDefaultHoverBackground); +} + +.btn.disabled, .btn.disabled:hover { + color: var(--bodyTextSubtle); + background-color: var(--buttonDefaultBackground); + background-image: none; + box-shadow: none; + cursor: default; +} + +.tone-dark .btn.disabled, .tone-dark .btn.disabled:hover { + color: #666; + background-color: #212121; +} + +.btn.disabled.outline, .btn.disabled.outline:hover { + color: var(--bodyTextSubtle); + border-color: var(--bodyTextSubtle); +} + +.btn.plain, .btn.plain:hover { + background: none; + text-shadow: none; + border-color: transparent; + box-shadow: none; + padding: 0; + color: inherit; +} + +.tone-dark .btn.plain, .tone-dark .btn.plain:hover { + background: none; +} + +.btn.plain:active { + box-shadow: none; +} + +.btn.active { + background-image: none; + background-color: var(--colorAccent); + border-color: var(--colorAccent); + -webkit-filter: none; + filter: none; +} + +.btn.grey, .btn.grey.off:hover { + background-color: #eee; +} + +.btn.grey:hover { + background-color: #e9e9e9; +} + +.btn.grey.outline { + color: #eee; +} + +.btn.orange, .btn.orange.off:hover { + border-color: #fe771d; + background-color: #fe771d; +} + +.btn.orange:hover { + background-color: #fe6b0a; +} + +.btn.orange.outline { + color: #fe771d; +} + +.btn.purple, .btn.purple.off:hover { + border-color: #8e44ad; + background-color: #8e44ad; +} + +.btn.purple:hover { + background-color: #8e44ad; +} + +.btn.purple.outline { + color: #8e44ad; +} + +.btn.blue, .btn.blue.off:hover { + border-color: var(--colorBlue); + background-color: var(--colorBlue); +} + +.btn.blue:hover { + background-color: #2879b0; +} + +.btn.blue.outline { + color: var(--colorBlue); +} + +.btn.green, .btn.green.off:hover { + background-color: var(--colorGreen); +} + +.btn.green:not(.outline):hover { + background-color: var(--colorGreenHover); +} + +.btn.green.outline { + color: var(--colorGreen); + border-color: var(--colorGreenHover); +} + +.btn.red, .btn.red.off:hover { + border-color: var(--colorRed); + background-color: var(--colorRed); +} + +.btn.red:not(.outline):hover { + background-color: var(--colorRedHover); +} + +.btn.red.outline { + color: var(--colorRed); +} + +.btn.red.outline:hover { + color: var(--colorRedHover); + border-color: var(--colorRedHover); +} + +.btn.white, .btn.white.off:hover { + border-color: #fff; + background-color: #fff; +} + +.btn.white:hover { + background-color: #fff; +} + +.btn.white.outline { + color: #fff; +} + +.btn.black, .btn.black.off:hover { + border-color: #3a3a3a; + background-color: #3a3a3a; +} + +.btn.black:hover { + background-color: #343434; +} + +.btn.black.outline { + color: #3a3a3a; +} + +.btn.active, .btn.orange, .btn.blue, .btn.green, .btn.red, .btn.black { + color: #fff; + border: 1px solid transparent; +} + +.btn.grey, .btn.white { + color: var(--bodyText); +} + +.btn.off { + cursor: default; +} + +.btn.off:active { + box-shadow: none; +} + +.btn-social { + color: var(--buttonDefaultText); + background: var(--buttonDefaultBackground); + background-image: none; + box-shadow: none; + border: 1px solid transparent; +} + +.btn-social.btn-at .btn-icon, +.btn-social.btn-share .btn-icon { + color: var(--buttonDefaultText); +} + +.btn-social, .btn-social:hover { + text-decoration: none; + text-shadow: none; +} + +.btn-twitter, .link-twitter span { + background: #55acee; +} + +.btn-facebook, .link-facebook span { + background: #3b5998; +} + +.btn-google, .link-google span, .btn-google-plus, .link-google-plus span { + background: #d74836; +} + +.btn-mail { + background: #ccc; + color: var(--bodyText); +} + +.btn-mail span { + color: var(--bodyText); +} + +.btn-tumblr { + background: #35465c; +} + +.btn-pinterest { + background: #bd081c; +} + +.btn-stumbleupon { + background: #eb4924; +} + +.btn-blogger { + background: #f57d00; +} + +.btn-whatsapp { + background: #43d854; +} + +.btn-telegram { + background: #0088CC; +} + +.btn-weixin { + background: #7bb32e; +} + +.btn-weibo { + background: #df2029; +} + +.btn-qzone { + background: #ffce00; +} + +.btn-qq { + background: #121214; +} + +.btn-reddit { + background: #ff4500; +} + +.btn-reddit .btn-icon { + color: #fff; +} + +.btn-vk, .link-vk span { + background: #45668e; +} + +.btn.outline, .btn.outline:hover { + background: none; + border: 1px solid; + box-shadow: none; +} + +.pop-btn, .top-btn-el, a[data-modal] { + -webkit-tap-highlight-color: transparent; +} + +.pop-btn *, .top-btn-el * { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0.2); +} + +.pop-btn, .top-btn-el { + display: inline-block; + position: relative; + cursor: pointer; +} + +.pop-box-inner { + cursor: default; + display: block; + -webkit-overflow-scrolling: touch; + overflow: auto; +} + +.pop-box-inner form { + margin-top: -20px; + margin-bottom: -20px; +} + +.btn.pop-btn .pop-box { + line-height: 100%; +} + +.pop-btn-text { + color: var(--linkText); + cursor: pointer; +} + +.ie7 .pop-btn-text, .ie8 .pop-btn-text { + padding-right: 0; +} + +.pop-btn-text .arrow-down { + vertical-align: middle; + margin-left: 5px; + border-top-color: var(--linkText); +} + +.pop-btn.disabled { + cursor: default; +} + +.pop-btn.disabled .pop-btn-text { + color: var(--bodyTextDisabled); + cursor: default; +} + +.pop-btn.disabled .arrow-down { + border-top-color: var(--bodyTextDisabled); +} + +.tone-dark .pop-btn.disabled .arrow-down { + border-top-color: #444; +} + +.pop-box { + color: var(--menuText); + background: var(--menuBackground); + -webkit-backdrop-filter: blur(15px) saturate(1.8); + backdrop-filter: blur(15px) saturate(1.8); + display: none; + font-size: 0.93em; + z-index: 200; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid var(--menuSeparator); +} + +.pop-box .or-separator { + border-top-color: var(--menuSeparator); +} + +.phone .pop-box .or-separator, .phablet .pop-box .or-separator { + border-top-color: var(--topBarText); + opacity: .25; +} + +@media (min-width: 992px) { + .pop-box { + position: absolute; + top: 20px; + min-height: 20px; + min-width: 190px; + box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.25); + border-radius: 5px; + box-sizing: content-box; + --columnGutter: 5px; + --columnWidth: 230px; + --columnWidthOuter: calc(var(--columnWidth) + var(--columnGutter)); + } + + .header--height .pop-box { + min-width: 240px; + } + + .pop-box.left-anchor, .pop-box { + left: 0; + } + + .pop-box.anchor-center { + left: 50% !important; + } + + .pop-box.anchor-right { + left: auto; + right: 0; + } + + .pop-box.pbcols1 { + width: calc(1 * var(--columnWidthOuter) + var(--columnGutter)); + } + + .pop-box.pbcols2 { + width: calc(2 * var(--columnWidthOuter) + var(--columnGutter)); + } + + .pop-box.pbcols3 { + width: calc(3 * var(--columnWidthOuter) + var(--columnGutter)); + } + + .pop-box.pbcols4 { + width: calc(4 * var(--columnWidthOuter) + var(--columnGutter)); + } + + .pop-box.pbcols5 { + width: calc(5 * var(--columnWidthOuter) + var(--columnGutter)); + } + + .pop-box.pbcols1 li, + .pop-box.pbcols2 li, + .pop-box.pbcols3 li, + .pop-box.pbcols4 li, + .pop-box.pbcols5 li { + border-radius: 5px; + } + + .pop-box-menucols ul { + padding: 10px 0; + overflow: auto; + } + + .pop-box-menucols li { + width: var(--columnWidth); + float: left; + margin: 0 0 0 5px; + } + + .pop-box-menucols li:first-child a, .pop-box-menucols li:last-child a { + border-radius: 0; + } +} + +.pop-box-menu { + font-size: 0.8125rem; + -ms-scroll-snap-type: y mandatory; + scroll-snap-type: y mandatory +} + +.pop-box-label { + color: inherit; + margin: 10px; + text-transform: uppercase; + font-weight: bold; + font-size: 90%; + cursor: default; + line-height: 2; +} + +.pop-box-block { + padding: 0 10px; +} + +.pop-box-block .current::before { + font-weight: 900; + font-family: "Font Awesome 5 Free"; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + margin-right: 0.25em; + content: "\f205"; + font-size: 90%; +} + +.pop-box-menu a, .pop-box-menu .menu-item { + display: block; + padding: 6px 10px; + text-decoration: none; + font-weight: normal; + line-height: 143%; + color: var(--menuItemText); +} + +.pop-box-block a { + display: inline-block; + padding: 6px; + border-radius: 0.25em; + line-height: 1; +} + + +.phone .pop-box, .phablet .pop-box { + color: var(--topBarText); +} + +.phone .pop-box-menu a, .phablet .pop-box-menu a, +.phone .pop-box-menu .menu-item, .phablet .pop-box-menu .menu-item { + padding: 10px; + color: inherit; +} + +.phone .pop-box-menu li.with-icon a .btn-icon, .phablet .pop-box-menu li.with-icon a .btn-icon { + top: 11px; +} + +@media (min-width: 992px) { + .pop-box-menu a, .pop-box-menu .menu-item { + border-bottom: 0; + } +} + +html:not(.phone) .pop-box-menu a:hover, .pop-box-menu a.focus { + background: var(--menuItemHoverBackground); + color: var(--menuItemHoverText); +} + +.pop-box-menu li.current a { + background: rgba(0, 0, 0, .05); +} + +.pop-box-menu li.current a:not(:hover) .btn-icon { + color: var(--colorAccent); +} + +.pop-box-menu ul { + display: block; + padding: 0; +} + +@media (min-width: 992px) { + .pop-box-menu ul { + margin: 5px 0; + } + /* .pop-box-menu.pop-box-menucols ul { + margin: 10px 0; + } */ +} + +.pop-box-menu li { + display: block; + text-align: left; + overflow: hidden; + position: relative; +} + +.pop-box-menu li.with-icon a { + padding-left: 36px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +html:not(.phone):not(.phablet) .header--height .pop-box-menu li a { + padding-right: 25px; +} + +.pop-box-menu li a kbd { + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 10px; + border-radius: 2px; + display: block; + line-height: 1; + font-size: 0.9em; + opacity: .5; +} + +.pop-box-menu li a:hover kbd { + opacity: 1; +} + +.phone .pop-box-menu li a kbd, .phablet .pop-box-menu li a kbd { + display: none; +} + +.pop-box-menu li.with-icon a .btn-icon { + position: absolute; + left: 10px; + top: 8px; +} + +.pop-box-menu li.current, .pop-box-menu li.current a { + font-weight: 600; +} + +.pop-box-menu li.current a:hover { + cursor: default; +} + +.pop-box-userdetails { + padding: 10px; + width: 120%; + min-width: 230px; + cursor: default; + left: 42px; + line-height: normal; + top: 0 !important; + margin-top: 0 !important; +} + +.phone .pop-box, .phablet .pop-box { + position: fixed; + bottom: 0; + left: 0 !important; + width: 100%; + top: auto !important; + background: var(--topBarBackground); + color: var(--topBarText); +} + +.pop-box-header { + font-weight: bold; + padding: 15px 10px; + position: relative; + text-align: left; + color: var(--topBarText); +} + +.pop-box-header .icon--close { + position: absolute; + right: 10px; + top: 50%; + margin-top: -7px; + font-size: 14px; + text-align: right; +} + +@media (min-width: 992px) { + .pop-box-header { + display: none; + } +} + +.top-bar-placeholder { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.top-bar, .top-bar-placeholder, .top-bar ul li.pop-btn, .top-bar ul li.top-btn-el { + height: 50px; +} + +.top-btn-text, .top-btn-create-account { + line-height: 50px; +} + +.top-btn-text { + -webkit-tap-highlight-color: transparent; +} + +.top-bar, .follow-scroll { + transition: top 400ms ease-in-out; +} + +.top-bar.scroll-up, .top-bar--:focus-within { + top: 0; +} + +.scroll-up.follow-scroll, .follow-scroll--:focus-within { + top: 50px !important; +} + +.scroll-down { + top: -100%; +} + +.top-bar, .top-sub-bar { + left: 0; + right: 0; + width: 100%; + position: -webkit-sticky; + position: sticky; + height: 50px; +} + +.top-bar { + color: var(--topBarText); + z-index: 900; +} + +.top-bar--main { + z-index: 910; +} + +.top-sub-bar { + color: var(--bodyText); + z-index: 500; + overflow: visible; +} + +body.pop-box-show .top-sub-bar--1 { + z-index: 1; +} + +body.split .top-bar, body.landing .top-bar { + position: fixed; +} + +.phablet .pop-box-show .top-bar, .phone .pop-box-show .top-bar { + z-index: 1; +} + +.top-sub-bar::before, .top-bar::before, .follow-scroll-wrapper.position-fixed { + background: var(--topBarBackground); + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); +} + +.top-sub-bar::before { + background: var(--bodyBackground); +} + +.top-sub-bar::before, .top-bar::before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.top-sub-bar::before, .top-bar::before { + width: 100%; + height: calc(100% + 0.5px); + position: absolute; + content: " "; +} + +.top-sub-bar .content-width, .top-bar .content-width { + position: relative; + height: 100%; + padding-left: 5px; + padding-right: 5px; +} + +.top-bar-logo { + width: 100%; + height: 100%; + position: absolute; + top: 0; + text-align: center; + left: 0; +} + +.top-bar-logo img { + height: 20px; +} + +.top-bar-logo>a { + display: inline-block; + vertical-align: top; + position: relative; + top: 50%; + transform: translateY(-50%); + text-decoration: none; + font-weight: normal; + font-size: 24px; + color: var(--topBarText); +} + +.top-bar-logo img { + display: block; + margin-left: auto; + margin-right: auto; +} + +.top-bar ul { + list-style: none; +} + +.top-bar li.pop-btn, .top-bar li.top-btn-el { + float: left; + padding-right: 5px; + padding-left: 5px; + position: relative; +} + +@media (min-width: 992px) { + .top-bar li.pop-btn, .top-bar li.top-btn-el { + padding-right: 10px; + padding-left: 10px; + } + + .top-bar .top-bar-notifications.pop-btn { + padding-right: 0; + } +} + +.top-bar ul .pop-btn.current, .top-bar ul .top-btn-el.current { + border-bottom: 3px solid var(--colorAccent); +} + +.top-bar ul .pop-btn.current .top-btn-text, .top-bar ul .top-btn-el.current .top-btn-text { + text-shadow: none; + box-shadow: none; +} + +.top-bar ul li.top-btn-el a { + text-decoration: none; + color: inherit; +} + +.tone-light .top-bar .top-bar ul .pop-btn.current .top-btn-text, .tone-light .top-bar .top-bar ul .top-btn-el.current .top-btn-text { + color: var(--bodyText); +} + +.top-bar-right li.pop-btn:last-child, .top-bar-right li.pop-btn:last-child .arrow-down { + margin-right: 0; +} + +.top-btn-text, .top-btn-create-account { + display: block; + font-weight: normal; + font-size: 1em; + height: 100%; +} + +#menu-fullscreen .btn.top-btn-create-account, .top-btn-text, .btn.top-btn-create-account:not(.grey):not(.white) { + color: inherit; +} + +.top-btn-text { + text-decoration: none; + color: var(--topBarText); +} + +.top-bar #menu-fullscreen .top-btn-text { + color: var(--topBarText); +} + +body.landing .top-btn-text { + color: var(--topBarText); +} + +.top-btn-text .icon { + margin-right: 7px; + position: relative; + top: 0; + display: inline-block; + font-size: 16px; + width: 16px; + font-size: 1.143rem; + width: 1.4rem; + line-height: 50px; + text-align: center; +} + +.current .top-btn-text .icon { + color: var(--colorAccent); +} + +.top-btn-text .btn-text { + margin-left: 0; +} + +.top-btn-text .arrow-down { + position: relative; + margin: 0 0 0 5px; +} + +.top-btn-text .btn-text { + vertical-align: top; +} + +.top-btn-text .icon { + margin-right: 0; +} + +#menu-fullscreen .top-bar-notifications .btn-text { + display: inline-block; +} + +#menu-fullscreen #top-bar-user, #menu-fullscreen [data-nav="upload"] { + display: none; +} + +#top-bar [data-nav=upload] { + padding-right: 5px; + padding-left: 5px; +} + +.top-bar-notifications-container { + margin-right: 2px; + cursor: default; +} + +.top-bar-notifications-header { + font-size: 0.93em; + line-height: 1; + padding: 12px 10px; + overflow: auto; +} + +.top-bar-notifications-header, .top-bar-notifications-list li { + border-bottom: 1px solid var(--menuSeparator); +} + +.tone-dark .top-bar-notifications-header, .tone-dark .top-bar-notifications-list li { + border-color: #333; +} + +.top-bar-notifications-header h2 { + font-size: 1em; + font-weight: bold; + float: left; +} + +.top-bar-notifications-header a { + float: right; +} + +.top-bar-notifications-list li { + font-size: 0.93em; + display: block; + text-decoration: none; + padding: 10px; + position: relative; + min-height: 68px; + padding-left: 68px; +} + +.top-bar-notifications-list li:last-child { + border-bottom: 0; +} + +.top-bar-notifications-list li:hover { + background: rgba(0, 0, 0, 0.02); +} + +.tone-dark .top-bar-notifications-list li:hover { + background: rgba(0, 0, 0, 0.2); +} + +.top-bar-notifications-list li.transition { + transition: background-color 150ms linear; +} + +.top-bar-notifications-list li.persistent, .top-bar-notifications-list li.new { + background: #fffad9; +} + +.tone-dark .top-bar-notifications-list li.persistent, .tone-dark .top-bar-notifications-list li.new { + background: #333; +} + +.ie7 .top-bar-notifications-list li { + min-height: 48px; +} + +.top-bar-notifications-list li .user-image { + width: 48px; + height: 48px; + position: absolute; + left: 10px; + top: 10px; +} + +.top-bar-notifications-list li .user-image img { + width: 100%; + height: 100%; + display: block; +} + +.top-bar-notifications-list li .user-image span.icon { + font-size: 30px; + width: 30px; + height: 30px; + margin-left: -15px; + margin-top: -15px; +} + +.top-bar-notifications-list li .how-long-ago { + display: block; + font-size: 11px; + color: var(--bodyTextSubtle); +} + +.top-bar-notifications .top-btn-number { + position: absolute; + z-index: 1; + border-radius: 100px; + zoom: 0.75; + right: -8px; + top: 10px; + visibility: hidden; +} + +.top-bar-notifications .top-btn-number.on { + visibility: visible; +} + +@media (min-width: 992px) { + .top-bar .pop-box { + margin: 10px; + z-index: 200; + } +} + +.top-bar-search-input { + margin-left: -10px; + margin-right: 10px !important; +} + +.top-bar-search-input .icon--close { + right: -4px; +} + +.top-bar-search-input .icon--settings { + right: 14px; +} + +.top-bar .top-bar-search-input .icon--search { + color: var(--colorAccent); +} + +.top-bar-search-input .input-search { + position: relative; + top: 50%; + margin-top: -13px; +} + +.top-bar-search-input input { + font-size: 1em; + border-width: 0; + padding-left: 36px; +} + +.tone-light .top-bar .top-bar-search-input input { + border-width: 1px; +} + +.top-bar-left .pop-box { + left: -10px; +} + +.phone .top-bar-left li { + padding-right: 0; +} + +.phone .top-bar-right li { + padding-left: 0; +} + +.top-bar-right .pop-box { + left: auto; + right: -10px; +} + +.top-bar--main .pop-box { + top: calc(50% + 10px); +} + +#top-predictive-search.pop-box { + width: 200px; + left: 0; + font-size: 100%; +} + +.top-bar .pop-account .or-separator { + margin-top: 30px; + margin-bottom: 30px; +} + +.top-btn-create-account { + text-decoration: none; + display: inline; + padding: 4px 12px; + height: 26px; +} + +.top-bar .top-btn-text:hover span:not(.btn-text), .top-bar .opened .top-btn-text span:not(.btn-text) { + color: var(--linkText); +} + +.phone .top-bar .top-btn-text:hover span:not(.btn-text) { + color: inherit; +} + +.phone .top-bar .current .top-btn-text:hover span:not(.btn-text) { + color: var(--linkText); +} + +.ios .top-bar .top-btn-text span:not(.btn-text):not(.top-btn-number):hover { + color: var(--bodyText); +} + +.ios .top-bar .opened .top-btn-text span:not(.btn-text), .ios .top-bar .opened .top-btn-text:not(.top-btn-number) { + color: var(--linkText); +} + +.top-bar .btn:not(.white):not(.grey), .top-bar .btn:hover:not(.white):not(.grey), .top-bar .opened .btn:not(.white):not(.grey) { + color: #fff; +} + +.current .top-btn-create-account:hover { + background: inherit; +} + +.current .top-btn-create-account { + padding: 0; + background: none; +} + +.top-btn-number { + background: #555; + color: #ddd; + font-size: 12px; + font-weight: normal; + border-radius: 3px; + padding: 0 7px; + position: relative; + display: block; + line-height: 22px; + height: 22px; + top: -2px; +} + +#menu-fullscreen .top-btn-number { + display: inline-block; + position: absolute; + margin-right: 5px; + top: 10px; + vertical-align: text-bottom; + left: 30px; + right: auto; +} + +.tone-light.top-bar .top-btn-number.on, .top-btn-number.on, .top-btn-number.on:hover, .opened .top-btn-number.on, .tone-light.ios .top-bar .top-btn-number.on { + background: #d90000; + color: #fff; +} + +.pop-account .pop-box-inner { + padding: 20px 10px; + cursor: default; +} + +.pop-account .title, .pop-account h2 { + font-size: 1em; + text-align: center; + margin-top: 5px; + font-weight: normal; + display: block; +} + +.pop-account .sign-services { + margin: 15px 0 11px 0; +} + +.pop-account input[type="text"], .pop-account input[type="password"], .pop-account input.text-input { + width: 100%; +} + +.ie7 .pop-account input.text-input { + width: 266px; + height: auto; +} + +.pop-account .checkbox-label { + display: inline-block; + margin: 0; +} + +#top-bar-user .top-btn-text .user-image { + position: relative; + top: 50%; + margin-top: -13px; + width: 1em; + height: 1em; + float: left; + font-size: 26px; + background: none; + color: inherit; + margin-right: 0; +} + +#top-bar-user-menu.pop-box { + width: 150px; +} + +.header { + position: relative; +} + +.header-icon { + color: var(--colorAccent); +} + +.header-tabs { + min-height: 50px; +} + +.header.follow-scroll { + margin-right: -10px; + margin-left: -10px; + padding-left: 10px; + padding-right: 10px; + overflow: visible; + position: -webkit-sticky; + position: sticky; + min-height: 50px; +} + +.tone-dark .header { + border-bottom-color: #212121; +} + +.header.fixed.follow-scroll { + border-bottom: 0; +} + +.header .header-title, +.header h1 { + font-size: 1em; +} + +.header>* { + vertical-align: middle; +} + +.header>.header-title, +.header>h1, +.header .heading, .header .heading * { + word-break: break-word; +} + +.header-tabs>.header-title, +.header-tabs>h1, +.header-tabs .heading, .header-tabs .heading * { + line-height: 50px; +} + +.header>.header-title, +.header>h1, +.header .heading { + font-size: 22px; + font-weight: normal; + display: inline-block; + color: inherit; +} + +.header .header-title a, +.header h1 a { + color: inherit; + text-decoration: none; +} + +.header .header-title strong, +.header h1 strong, +.header .heading strong { + font-weight: inherit; +} + +.header.header-tabs .header-title, +.header.header-tabs h1 { + margin-right: 5px; + margin-left: 5px; +} + +.header ul.content-tabs { + display: inline-block; +} + +.phablet .header ul.content-tabs, .phone .header ul.content-tabs { + float: none; + display: inline-block; + left: 0; + right: 0; + position: absolute; + z-index: 1; + white-space: nowrap; +} + +.phone .header.follow-scroll ul.content-tabs, .phablet .header.follow-scroll ul.content-tabs { + position: absolute; + padding-left: 10px; + padding-right: 10px; +} + +.phablet .header:not(.follow-scroll) ul.content-tabs, .phone .header:not(.follow-scroll) ul.content-tabs { + top: auto; +} + +.header-content-left { + float: left; +} + +.header-content-right { + float: right; + height: auto; + margin-left: auto; +} + +@media (max-width: 340px) { + .header-content-right.breaks-ui { + clear: both; + position: static !important; + margin-left: 0; + } + /* .header-content-right.breaks-ui .btn { + margin-right: 5px; + margin-left: 0; + } */ +} + +.phablet .header-content-right:not(.phablet-float-none), .phone .header-content-right:not(.phone-float-none) { + position: absolute; + right: 0; + top: 0; + float: right; +} + +.header-content-right .number-figures { + margin-top: 14px; + border-left: 1px solid var(--bodySeparator); +} + +.header-content-right .number-figures:first-child { + border-left: 0; +} + +.header .header-link { + font-size: 1em; + display: inline-block; +} + +.header .pop-btn.breadcrum-item { + margin-top: 0; +} + +.header .user-image { + font-size: 30px; + width: 1em; + height: 1em; + margin-top: 10px; + float: left; +} + +.header.header-content { + position: relative; + min-height: 40px; + border: 0; +} + +.header.header-content .heading, .header.header-content .heading * { + line-height: 40px; + height: 40px; +} + +.header-content img { + max-height: 40px; +} + +.header-content .user-image { + width: 1em; + height: 1em; + font-size: 40px; + margin-top: 0; + top: 0; +} + +.header-content .user-image img, .header .user-image img { + width: 100%; + height: 100%; + display: block; +} + +.header-description { + line-height: 1.4; + max-height: 10vh; + overflow-y: scroll; + overflow: auto; +} + +.header-description:empty { + display: none; +} + +.header-description p { + margin: 10px 0; +} + +.header-content-breadcrum { + float: left; +} + +.breadcrum-item * { + line-height: normal; +} + +.header-content-breadcrum .breadcrum-item, .breadcrum-text { + line-height: 40px; +} + +.breadcrum-text, .breadcrum-text a { + color: inherit; +} + +.breadcrum-text { + font-weight: normal; +} + +.breadcrum-item { + margin-right: 10px; + position: relative; + float: left; +} + +.breadcrum-text a:hover { + color: var(--linkText); + text-decoration: none; +} + +.breadcrum-text .user-link { + margin-left: 5px; +} + +.header-content-breadcrum .arrow, .header-content-breadcrum .arrow-down, .header-content-breadcrum .arrow-right { + margin-left: 5px; + position: relative; +} + +.header-content-breadcrum a:hover .arrow-down { + border-top-color: var(--linkText); +} + +.header-content-breadcrum a:hover .arrow-right { + border-left-color: var(--linkText); +} + +.header-content-breadcrum .pop-box h2 { + font-size: 1.07em; + line-height: 1.2; +} + +.header-content-breadcrum .pop-box h2 a { + line-height: 1; +} + +.header-content .btn { + margin-left: 5px; + float: left; + display: block; +} + +.header-content .btn:last-child { + margin-right: 0; +} + +.follow-scroll { + margin-left: auto; + margin-right: auto; + z-index: 1; +} + +.follow-scroll-wrapper { + left: 0; + right: 0; + z-index: 50; +} + +.follow-scroll-wrapper.position-fixed .header { + margin-bottom: -1px !important; +} + +.follow-scroll-placeholder { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.phablet .header:not(.header-tabs) .tab-menu, .phone .header:not(.header-tabs) .tab-menu { + color: var(--buttonDefaultText); + background: var(--buttonDefaultBackground); + border-radius: 4px; + height: auto; + line-height: 1em; + min-height: 1em; + padding: 10px; +} + +.phablet .header:not(.header-tabs) .tab-menu:not(.--hide), .phone .header:not(.header-tabs) .tab-menu:not(.--hide) { + color: var(--buttonDefaultHoverText); + background: var(--buttonDefaultHoverBackground); + margin-bottom: 10px; +} + +.phablet .header .tab-menu.--hide .tab-menu--show, .phone .header .tab-menu.--hide .tab-menu--show, .phablet .header .tab-menu:not(.--hide) .tab-menu--hide, .phone .header .tab-menu:not(.--hide) .tab-menu--hide { + display: none; +} + +.tab-menu { + cursor: pointer; + line-height: 50px; + min-height: 50px; +} + +.tab-menu.--hide .btn-icon[data-content="tab-icon"] { + color: var(--colorAccent); +} + +.tab-menu.--hide { + color: var(--buttonDefaultText); +} + +.tab-menu:not(.--hide) { + color: var(--buttonDefaultHoverText); +} + +.content-tabs-container { + position: relative; + display: inline-block; +} + +.phone .content-tabs-container--mobile, +.phablet .content-tabs-container--mobile { + box-shadow: 0 6px 4px rgba(0, 0, 0, 0.25); + left: -10px; + width: calc(100% + 15px); +} + +.phone .content-tabs-wrap, .phablet .content-tabs-wrap { + height: 50px; + overflow-y: hidden; + position: relative; + -webkit-overflow-scrolling: touch; + overflow-x: scroll; + position: relative; + display: none; + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + background: var(--bodyBackground); +} + +.content-tabs-wrap::-webkit-scrollbar { + display: none; +} + +.content-tabs-wrap { + display: inline-block; + -ms-scroll-snap-type: x mandatory; + scroll-snap-type: x mandatory +} + +.content-tabs li { + scroll-snap-align: start; +} + +.content-tabs li:not(.current) { + transition-duration: 200ms; + transition-property: background-color; +} + +.content-tabs a { + font-weight: normal; + color: inherit; + text-decoration: none; + padding-left: 10px; + padding-right: 10px; +} + +.phone .content-tabs li:last-child { + margin-right: 15px; +} + +.content-tabs-shade { + content: " "; + background: -webkit-linear-gradient(0deg, rgba(255, 255, 255, 0), var(--bodyBackground)); + width: 15px; + height: 100%; + position: absolute; + right: 0; + top: 0; + pointer-events: none; + z-index: 2; +} + +.phone .content-tabs a, .phablet .content-tabs a { + color: var(--menuItemText); +} + +.content-tabs li.disabled a { + cursor: default; +} + +.tab-menu .--show { + display: none; +} + +.tab-menu.current .--show { + display: inline-block; +} + +.tab-menu.current .--hide { + display: none; +} + +.content-tabs li { + float: left; + font-size: 1em; +} + +.phablet .content-tabs li, .phone .content-tabs li { + float: none; + border-bottom: 0; + display: inline-block; +} + +.content-tabs-vertical li { + float: none; + margin: 0; + border-left: 2px solid transparent; +} + +.content-tabs-vertical li>* { + padding-right: 20px; + padding-left: 20px; +} + +.header-content-right .content-tabs li { + margin-left: 10px; + margin-right: 0; +} + +.content-tabs li, .content-tabs a { + height: 50px; + line-height: 50px; + display: block; +} + +.content-tabs-vertical li, .content-tabs-vertical a { + height: 38px; + line-height: 38px; +} + +.content-tabs li.current, .content-tabs li.visited, .content-tabs li.visited:hover { + /* color: inherit; */ + border-color: var(--colorAccent); + border-style: solid; + border-bottom-width: 3px; +} + +.content-tabs li.current .btn-icon { + color: var(--colorAccent); +} + +.content-tabs li:not(.current):hover { + background: var(--bodyEmpty); +} + +.content-tabs li:not(.current):hover a .btn-icon { + color: var(--colorAccent); +} + +.content-tabs li.disabled:hover { + border-bottom: 0; +} + +.content-tabs li.current { + border-color: var(--colorAccent); +} + +.content-tabs li.visited { + border-bottom-color: transparent; +} + +.content-tabs li.current.visited { + border-color: #d93600; +} + +.content-tabs li.visited, .content-tabs li.visited a { + color: #d93600; +} + +.content-tabs-vertical li:hover, .content-tabs-vertical li.current { + border-bottom-width: 0; + border-left-width: 2px; +} + +.content-tabs .tab-count { + font-weight: normal; + color: var(--bodyTextSubtle); +} + +.content-tabs .tab-count-block { + font-weight: normal; + background: #d90000; + border-radius: 3px; + padding: 1px 4px; + position: relative; + top: -1px; +} + +.content-tabs .tab-count-block, .content-tabs .current .tab-count-block { + color: #fff; +} + +.content-tabs li.disabled * { + color: var(--bodyTextDisabled); +} + +.header--centering { + display: flex; + align-items: center; + flex-wrap: wrap; +} + +.header--height { + overflow: visible; + height: 50px; +} + +.list-selection * { + line-height: normal; +} + +#tabbed-content-group { + margin-top: 20px; + padding-bottom: 20px; + position: relative; +} + +.content-listing .viewer-kb { + opacity: 0; + position: fixed; + bottom: -100px; + z-index: 1; + left: 0; + right: 0; + background: linear-gradient(0deg, var(--topBarBackground) 0%, rgba(0, 0, 0, 0) 100%); +} + +.--has-selection .content-listing.visible .viewer-kb { + opacity: 1; + bottom: 0; +} + +.content-listing .viewer-kb-input { + color: var(--menuText); + background: var(--menuBackground); + border-radius: 0.5em; + margin: 1em; + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); + box-shadow: 0 4px 14px rgb(0 0 0 / 25%); +} + +#content-listing-tabs #tabbed-content-group { + margin-top: 0; +} + +#content-listing-tabs { + padding-bottom: 0; + margin-left: -10px; + margin-right: -10px; +} + +.tabbed-content { + display: none; + width: 100%; + overflow: hidden; +} + +.title { + font-size: 0.93em; + font-weight: bold; + margin-bottom: 5px; +} + +.title.grid-columns { + margin-right: 10px; + text-align: right; + line-height: 2; +} + +.phone .title.grid-columns, .phablet .title.grid-columns { + margin-right: 0 !important; + text-align: left; +} + +.tabbed-content-section { + overflow: auto; +} + +.tabbed-content-list { + line-height: 1.8; +} + +.tabbed-listing {} + +.tabbed-listing .tabbed-content { + overflow: hidden; +} + +.table-li { + display: table; + width: 100%; +} + +.table-li>li { + padding-top: 8px; + padding-bottom: 8px; + border-bottom: 1px solid var(--bodySeparator); + list-style: none !important; +} + +.tabbed-content-list.table-li-hover>li:hover { + background: var(--bodyEmpty); +} + +.tabbed-content-list .table-li-header { + font-weight: bold; +} + +.tabbed-content-list.table-li-hover .table-li-header:hover, .tone-dark .tabbed-content-list.table-li-hover .table-li-header:hover { + background: none; +} + +.table-li ul li:last-child { + border-bottom: none; +} + +.phablet .table-li--mobile-display, .tablet .table-li--mobile-display, .laptop .table-li--mobile-display, .desktop .table-li--mobile-display, .largescreen .table-li--mobile-display { + display: none !important; +} + +.viewer-title { + font-size: 1.43em; + line-height: 1.43em; + padding-right: 3em; +} + +.panel-description:empty { + display: none; + margin: 0 !important; + padding: 0 !important; +} + +.panel-description .description-text { + font-size: 1em; +} + +.panel-description .description-meta { + font-size: 0.93em; +} + +.panel-description .exif-meta { + padding-left: 1.57em; + position: relative; +} + +.panel-description .exif-meta .camera-icon { + color: var(--bodyTextDisabled); + position: absolute; + left: 0; + top: 0.21em; + font-size: 1.14em; +} + +.panel-description .exif-meta .exif-data { + display: block; + font-size: 1em; +} + +.panel-thumbs { + position: -webkit-sticky; + position: sticky; + z-index: 1; + bottom: 0; + left: 0; + right: 0; + border-top: 1px solid rgba(0, 0, 0, .05); + background: transparent; + -webkit-backdrop-filter: blur(15px) saturate(1.8); + backdrop-filter: blur(15px) saturate(1.8); +} + +.panel-thumb-list { + overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; + text-align: center; + height: 50px; + margin-left: auto; + margin-right: auto; +} + +.panel-thumb-list:empty { + display: none; +} + +.panel-thumb-list li { + position: relative; + font-size: 0; + border-bottom: 3px solid transparent; + display: inline-block; + line-height: 50px; +} + +.panel-thumb-list li.current { + border-color: var(--colorAccent); +} + +.panel-thumb-list li.current img, .list-item-desc .panel-thumb-list li:hover img { + opacity: 1; +} + +.phone .panel-thumb-list li.more-link, .phablet .panel-thumb-list li.more-link { + clear: both; + line-height: 100%; + padding: 10px 0; +} + +.panel-thumb-list img { + display: block; + width: 47px; + height: 47px; + opacity: 0.4; + transition: opacity 350ms ease; +} + +.panel-thumb-list li:hover img { + opacity: 1; +} + +.panel-share-item { + margin-bottom: 30px; +} + +.panel-share-item:last-child { + margin-bottom: 0; +} + +.panel-share-item h4.pre-title { + padding-left: 200px; + line-height: 20px; + margin-bottom: 10px; + padding-bottom: 10px; + border-bottom: 1px solid var(--bodySeparator); +} + +.tone-dark .panel-share-item h4.pre-title { + border-color: #212121; +} + +.phone .panel-share-item h4.pre-title, .phablet .panel-share-item h4.pre-title { + padding-left: 0; +} + +.panel-share-item h4.title { + line-height: 32px; +} + +.panel-share-item .text-input { + *height: auto; +} + +.panel-share-item .grid-columns { + position: relative; +} + +.panel-share-input-label { + margin-bottom: 10px; + overflow: auto; +} + +.panel-share-input-label:last-child { + margin-bottom: 0; +} + +.panel-share-input { + position: relative; +} + +.panel-share-networks { + overflow: auto; + text-align: center; +} + +.panel-share-networks h4.title { + line-height: 32px; +} + +.panel-share-networks li { + display: inline-block; + margin-right: 5px; + margin-bottom: 5px; +} + +.panel-share-networks li a { + display: block; + width: 32px; + height: 32px; + position: relative; +} + +.panel-report h4.title { + line-height: 36px; +} + +.text-content { + font-size: 16px; +} + +.text-content p, .text-content li { + line-height: 160%; + margin: 10px 0; +} + +.text-content h1, .text-content h2, .text-content h3, .text-content h4 { + margin: 40px 0 20px 0; + font-weight: normal; + line-height: 120%; +} + +.text-content h1 { + font-size: 1.375em; +} + +.text-content h2 { + font-size: 1.25em; +} + +.text-content h3 { + font-size: 1.125em; +} + +.text-content h4 { + font-size: 1.07em; +} + +.text-content h5 { + font-size: 1em; +} + +.text-content h6 { + font-size: 1em; +} + +.text-content ul, .text-content ol { + margin-left: 20px; +} + +.text-content li { + list-style: disc outside; + margin-top: 0; + margin-bottom: 0; +} + +.form-content { + position: relative; +} + +.signup-services-column h2 { + font-size: 17px; +} + +.signup-services-column ul { + margin: 10px 0; +} + +.signup-services-column li:first-child { + margin-left: 0; +} + +.signup-services-column li:last-child { + margin-right: 0; +} + +.form-content .content-tabs-vertical { + margin-right: 10px; + position: absolute; + left: 0; + top: 0; +} + +.form-content .content-tabs-vertical.position-fixed { + position: fixed; + left: auto; + top: auto; +} + +.tabbed-input-column { + margin-left: 200px; +} + +.phone .tabbed-input-column, .phablet .tabbed-input-column { + margin-left: 0; +} + +.account-link { + position: relative; +} + +.account-linked {} + +a.account-linked-profile { + width: 48px; + height: 48px; + display: block; +} + +a.account-linked-profile img { + width: 100%; + height: 100%; + display: block; + border: 0; +} + +.text-overflow-ellipsis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; +} + +html.menu-fullscreen-visible { + overflow: hidden; +} + +#menu-fullscreen { + position: fixed; + left: 0; + top: 0; + bottom: 0; + right: 0; + height: 100vh; + width: 100vw; + overflow: auto; +} + +#menu-fullscreen>ul>li { + display: block; + float: none; + border-bottom: 0; + margin: 0 !important; + position: relative; +} + +#menu-fullscreen>ul>li .top-btn-text { + padding: 0 10px; + background: inherit; +} + +#menu-fullscreen>ul>li .icon { + margin-right: 7px; +} + +#menu-fullscreen>ul>li .input-search .icon { + margin-right: 0; +} + +#menu-fullscreen>ul>li a { + text-decoration: none; +} + +#menu-fullscreen .input-search { + margin: 0; + margin-right: 10px; + top: 12px; + width: auto; +} + +#menu-fullscreen .menu-fullscreen-show { + display: block; +} + +#menu-fullscreen .menu-fullscreen-hide { + display: none; +} + +body.upload-box-visible { + margin-top: 300px; +} + +body.upload-box-visible.no-margin-top { + margin-top: 280px; +} + +body.upload-box-visible .upload-box { + display: block; +} + +.upload-box { + clear: both; + background: var(--bodyBackground); +} + +.upload-box--fixed { + position: fixed; + left: 0; + right: 0; + z-index: 200; + background: var(--bodyBackground); +} + +body:not(#upload) .upload-box--fixed { + padding-top: 50px; + overflow: auto; +} + +.phone .upload-box--fixed { + top: 0; + z-index: 500; + max-height: 100%; + overflow-y: auto; + overflow-x: hidden; +} + +.upload-box--hidden { + transform: translateY(-100%); + top: -1px; +} + +.upload-box--show { + transform: translateY(0); +} + +.upload-box-inner { + padding: 40px 0; + position: relative; +} + +.phone .upload-box-inner { + padding: 20px 0; +} + +.upload-box-inner .position-absolute { + position: absolute; + text-transform: uppercase; + top: 20px; + line-height: 20px; +} + +#upload .upload-box[data-queue-size="0"] .upload-box-heading, .phone .upload-box[data-queue-size="0"] .upload-box-heading { + position: fixed; + top: 50%; + left: 0; + right: 0; + transform: translateY(-50%); + padding: 10px; +} + +.upload-box-heading { + text-align: center; +} + +.upload-box-heading .icon { + font-size: 100px; + height: 1em; + display: inline-block; + margin-left: auto; + margin-right: auto; + text-decoration: none; + -webkit-tap-highlight-color: transparent; +} + +.upload-box-heading h2, .upload-box-heading .heading { + font-size: 26px; + margin: 10px 0; + display: block; +} + +.upload-box-heading h2 a, .upload-box-heading .heading a { + color: inherit; + text-decoration: none; +} + +.upload-box-status-text { + font-size: 1em; + line-height: 1.4; +} + +.upload-box-allowed-files { + left: 0; + font-size: 11px; + font-size: 0.79rem; + color: var(--bodyTextSubtle); +} + +.upload-box-close { + text-decoration: none; + right: 0; + font-size: 11px; + line-height: 11px; + font-size: 0.79rem; + line-height: 1em; + color: var(--bodyText); +} + +.tone-dark .upload-box-close { + color: #ccc; +} + +.upload-box-close:hover { + text-decoration: none; +} + +.upload-box-close a { + color: inherit; + text-decoration: none; +} + +.upload-box-close .btn-icon { + font-size: 0.9em; + display: inline; +} + +@media (min-width: 340px) { + .upload-input-col { + width: 310px; + } +} + +.page-not-found { + border-radius: 10px; + background: var(--bodyEmpty); + text-align: center; + padding: 30px; + font-size: 16px; + margin-top: 20px; +} + +.page-not-found h1 { + font-size: 30px; + margin-bottom: 10px; +} + +.page-not-found .input-search { + margin-left: auto; + margin-right: auto; + margin-top: 20px; +} + +.page-not-found .input-search .icon--search { + font-size: 20px; + left: 14px; + top: 8px; +} + +.page-not-found .input-search .icon--close { + top: 3px; + right: 6px; +} + +.page-not-found input.search { + height: 36px; + width: 100%; + font-size: 15px; + padding-right: 30px; + padding-left: 40px; +} + +.ie7 .page-not-found input.search, .ie8 .page-not-found input.search, .ie9 .page-not-found input.search { + padding-right: 10px; + line-height: 36px; +} + +.content-listing { + overflow: hidden; + position: relative; + clear: both; +} + +.pad-content-listing { + width: calc(100% + 10px); + margin-left: auto; + margin-right: auto; + position: relative; +} + +.list-item { + display: inline-block; +} + +.js .content-listing { + height: 0; +} + +.js .jsly.content-listing { + height: auto; +} + +.list-item .disabled-mask { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background: rgba(255, 255, 255, 0.5); + filter: progid: DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80ffffff', endColorstr='#80ffffff'); + z-index: 1; +} + +.list-item:hover .hover-display, .phone .list-item .hover-display, .phablet .list-item .hover-display { + display: block; +} + +.list-item.masked:hover .hover-display { + display: none; +} + +html.--idle .list-item-image-tools>div, html.--idle .list-item .hover-display:not(.idle-display), .list-item .hover-display { + opacity: 0; + transition: all 350ms ease; +} + +html:not(.--idle) .list-item:hover .hover-display { + opacity: 1; +} + +.phone .list-item .hover-display, .phablet .list-item .hover-display { + opacity: 1; + transition: none; +} + +.list-item-image { + position: relative; + display: block; + overflow: hidden; + min-height: 260px; + text-align: center; + background: var(--bodyEmpty); + content-visibility: auto; + contain: layout style paint; +} + +.list-item-image .image-container { + display: inline-block; + text-align: center; + vertical-align: bottom; + text-decoration: none; + font-size: 64px; + width: 100%; + height: 100%; +} + +.js .list-item-image .image-container.--media { + width: 100%; + height: 100%; +} + +.list-item-image .image-container img, +.list-item-image .image-container svg { + display: block; + position: relative; + width: 100% !important; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} + +.list-item-image .image-container .icon.empty { + font-size: .9em; +} + +.list-item-image .image-container .empty { + color: var(--bodyText); + text-decoration: none; +} + +.selected .list-item-image .image-container .icon.empty { + color: #fff; +} + +.list-item-image-btn { + padding: 5px 8px 5px 28px; + font-size: 0.93em; + background: var(--bodyBackground); + position: absolute; + top: 10px; + cursor: pointer; + border-radius: 2px; +} + +.list-item-image-btn.list-image-like-btn { + left: 10px; +} + +.list-item-image-btn span { + font-size: 15px; + position: absolute; + left: 8px; + top: 50%; + margin-top: -8px; +} + +.ie7 .list-item-image-btn span { + left: 4px; + top: 2px; +} + +.list-item-image-btn:hover span { + color: var(--colorAccent); +} + +.list-item-image-btn.liked { + background: var(--colorAccent); + color: #fff; + display: block; +} + +.list-item-image-btn.liked:hover { + background: #d90000; +} + +.list-item-image-btn.liked:hover span.icon-like { + font-size: 11px; + padding: 0; + left: 10px; + color: #fff; + margin-top: -6px; +} + +.list-item-image-btn.liked:hover span.icon-like:before { + content: "\e01f"; +} + +.list-item-desc-title { + width: 100%; + height: 100%; + padding: 0 10px; + left: 0; + bottom: 10px; + text-decoration: none; +} + +.list-item-desc-title>* { + padding-bottom: 5px; +} + +.list-item-from { + bottom: 0; + line-height: 1; +} + +.phablet .content-listing:not([data-list="users"]).list-item-desc-title, .phone .content-listing:not([data-list="users"]).list-item-desc-title { + display: none; +} + +.list-item-desc-title--center-y { + top: 50%; + transform: translateY(-50%); +} + +.list-item-desc-title-link { + font-size: 1.1em; + font-weight: 600; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: calc(100%); +} + +@media (min-width: 320px) { + .list-item-desc-title-link { + width: calc(100% - 20px); + } +} + +a.list-item-desc-title-link { + text-decoration: none; +} + +.list-item-title { + padding-top: 0; + padding-bottom: 0; + font-weight: normal; + text-align: center; + height: 40px; + overflow: hidden; +} + +.list-item-title, .list-item-title * { + font-size: 1em; + line-height: 40px; +} + +.list-item-title a { + font-weight: normal; + color: var(--bodyText); +} + +.list-item-alt { + background: #f9f9f9; +} + +.list-item-desc-height { + height: 100%; +} + +.list-item-overflow { + height: 110%; + overflow: hidden; +} + +.list-item-desc { + width: 100%; + top: 1; + font-size: 0.93em; + line-height: 1; + box-shadow: 0 1px 0px rgba(0, 0, 0, 0.1), 0 0 0 transparent; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} + +.list-item-desc a, .list-item-desc strong, .list-item-desc b, .list-item.masked:hover .list-item-desc a, .list-item.masked:hover .list-item-title a { + color: inherit; +} + +.tone-dark .list-item-desc a, .tone-dark .list-item-desc strong, .tone-dark .list-item-desc b, .tone-dark .list-item.masked:hover .list-item-desc a, .tone-dark .list-item.masked:hover .list-item-title a { + color: inherit; +} + +.list-item:hover .list-item-desc a, .list-item:hover .list-item-title a { + color: var(--linkText); +} + +.list-item-desc .user, .list-item-desc a.user img { + border-radius: 100%; +} + +.list-item-desc .user { + float: left; + margin-top: -20px; + margin-right: 8px; + padding: 3px; + background: var(--bodyBackground); + width: 50px; + height: 50px; +} + +.tone-dark .list-item-desc .user { + background: #101010; +} + +.list-item-desc .user:hover { + background: var(--linkText); +} + +.tone-dark .list-item-desc .user:hover { + background: inherit; +} + +.phone .content-listing[data-list="images"] .list-item-desc, .phablet .content-listing[data-list="images"] .list-item-desc { + display: none; +} + +.list-item-desc strong { + display: block; +} + +.list-item-card { + border-radius: 3px; + min-height: 82px; +} + +.list-item-card .user-image { + display: block; +} + +.list-item-thumbs-container { + overflow: hidden; +} + +.list-item-thumbs { + overflow: auto; + background: #f9f9f9; + width: 101%; + margin-top: 2px; + margin-bottom: 0; + margin-left: -1px; +} + +.list-item-thumbs li { + background: #f6f6f6; + border-right: 1px solid; + border-left: 1px solid; + border-color: #fff; + float: left; +} + +.tone-dark .list-item-thumbs li { + border-color: #0b0b0b; +} + +.list-item-desc { + color: inherit; + background: transparent; + border: 0; + box-shadow: none; + text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.6); + opacity: 0; + transition: all 350ms ease; + bottom: 0; + position: absolute; +} + +.list-item:hover .list-item-desc, .phone .list-item .list-item-desc, .phablet .list-item .list-item-desc, .tablet .list-item .list-item-desc, .laptop .list-item .list-item-desc, .desktop .list-item .list-item-desc, .largescreen .list-item .list-item-desc { + opacity: 1; +} + +.list-item-desc *, .list-item-desc a, .list-item:hover .list-item-desc a { + color: var(--listItemText); +} + +.list-item-desc .list-item-overflow { + bottom: 0; + left: 0; + padding: 10px; + position: absolute; + height: auto; +} + +.content-listing-more, .content-listing-loading { + text-align: center; + margin: 20px 0; +} + +.content-listing-more { + display: none; +} + +.content-listing-loading { + height: 32px; +} + +.content-listing-loading .loading-indicator { + position: static; +} + +.content-listing-pagination { + text-align: center; + font-size: 1.3em; + padding: 0; + color: inherit; + font-weight: normal; + margin-top: 20px; +} + +.js .content-listing-pagination { + display: none; +} + +.content-listing-pagination.visible { + display: flex !important; +} + +.content-listing-pagination a { + text-decoration: none; + font-weight: inherit; + color: inherit; + padding: 6px 10px; + display: block; + border-radius: 4px; +} + +.content-listing-pagination li.pagination-prev { + text-align: right; +} + +.content-listing-pagination li.pagination-next { + text-align: left; +} + +.content-listing-pagination a:hover { + color: var(--linkText); + background: var(--bodyEmpty); +} + +.content-listing-pagination a.current { + color: inherit; +} + +.tone-dark .content-listing-pagination a.current { + color: #fff; +} + +.tone-dark .content-listing-pagination a:hover { + background: #1f1f1f; +} + +.phone .content-listing-pagination li.pagination-page { + display: none; +} + +.content-listing-pagination li, .phone .content-listing-pagination li.pagination-page.pagination-current { + display: inline-block; +} + +.content-listing-pagination li.pagination-prev, .content-listing-pagination li.pagination-next { + flex-grow: 4; +} + +.content-listing-pagination li.pagination-current { + flex-grow: 1; +} + +.content-listing-pagination .pagination-current a, .content-listing-pagination .pagination-current a:hover { + color: inherit; + background: initial; + cursor: default; +} + +.pagination-disabled { + visibility: hidden; +} + +.content-empty { + padding: 4em 2em; + text-align: center; + font-size: inherit; + color: var(--bodyText); +} + +.content-empty .icon { + color: var(--bodyEmpty); + font-size: 90px; + width: 90px; + height: 90px; + display: inline-block; +} + +.tone-dark .content-empty, .tone-dark .content-empty .icon { + color: #444; +} + +.content-empty h2, .content-empty .message { + font-size: 16px; + margin-top: 10px; + line-height: 160%; +} + +.tone-dark .content-empty h2, .tone-dark .content-empty .message { + color: #444; +} + +.sort-listing { + display: none; +} + +.sort-listing .selection-count:before { + content: " ("; + white-space: pre; +} + +.sort-listing .selection-count:after { + content: ")"; +} + +.disabled.sort-listing .selection-count:before, .disabled.sort-listing .selection-count:after { + display: none; +} + +.user-image { + display: inline-block; +} +.user-image path { + fill: red; +} + +.user-image img, .user-image { + display: block; + border-radius: 3px; +} + +.default-user-image { + color: var(--bodyText); + text-align: center; + position: relative; + border-radius: 100%; + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + background: var(--backgroundLightAlpha); +} + +.checkered-background { + background-image: linear-gradient(45deg, rgba(0, 0, 0, .1) 25%, transparent 25%), linear-gradient(135deg, rgba(0, 0, 0, .1) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, .1) 75%), linear-gradient(135deg, transparent 75%, rgba(0, 0, 0, .1) 75%); + background-size: 25px 25px; + background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px; +} + +.default-user-image .icon { + color: inherit; + position: absolute; + left: 50%; + top: 50%; + display: block; + line-height: 100%; + font-size: 1em; + width: 1em; + height: 1em; + margin-left: -0.5em; + margin-top: -0.5em; +} + +img.user-image.size-70, .default-user-image.size-70 { + width: 70px; + height: 70px; +} + +.default-user-image.size-70 .icon { + font-size: 38px; + margin-left: -19px; + margin-top: -19px; +} + +img.user-image.size-60, .default-user-image.size-60 { + width: 60px; + height: 60px; +} + +.default-user-image.size-60 .icon { + font-size: 32px; + margin-left: -16px; + margin-top: -16px; +} + +img.user-image.size-40, .default-user-image.size-40 { + width: 40px; + height: 40px; +} + +.default-user-image.size-40 .icon { + font-size: 22px; + margin-left: -11px; + margin-top: -11px; +} + +.user-social-networks { + font-size: 1em; +} + +.user-social-networks, .user-social-networks a { + text-decoration: none; + color: var(--bodyTextSubtle); +} + +.user-social-networks a { + padding: 2px; +} + +.user-social-networks a:hover { + color: var(--bodyText); +} + +.top-user { + position: relative; + height: 110px; + margin-top: 10px; + margin-bottom: 10px; + min-height: 160px; + height: auto; +} + +.top-user>div { + position: absolute; + top: 0; +} + +.top-user .top-user-credentials { + position: static; + padding-right: 220px; + clear: both; + overflow: visible; +} + +.top-user.user-has-no-background .top-user-credentials { + overflow: auto; +} + +.phone .top-user .top-user-credentials { + padding-right: 0; + padding-left: 0; + width: 100%; + margin-bottom: 10px; + text-align: center; + margin-top: -160px; +} + +.phone .top-user.no-background .top-user-credentials { + margin-top: initial; +} + +.phone .top-user .top-user-credentials>a { + display: inline-block; +} + +.top-user .header-content-right { + right: 0; +} + +.top-user .header-content-right>* { + margin-bottom: 10px; +} + +.top-user .header-content-right>*:last-child { + margin-bottom: 0; +} + +.phone .top-user .header-content-right { + position: relative; +} + +.phone .top-user .header-content-right>div { + margin: 10px auto; + text-align: center; +} + +.phone .top-user .input-search { + position: relative; + top: auto; +} + +.phone .top-user .input-search form { + position: relative; +} + +.phone .top-user .number-figures { + line-height: 28px; +} + +.top-user h1 { + font-size: 26px; + font-weight: bold; + margin-bottom: 5px; + margin-top: 10px; + color: var(--bodyText); +} + +.phone .top-user h1, .no-margin-top .top-user h1 { + margin-top: 0; +} + +.top-user h1 a { + color: inherit; + text-decoration: none; +} + +.top-user .user-meta { + margin-bottom: 10px; +} + +.user-meta .icon--lock { + margin-right: 5px; +} + +.top-user .user-image { + font-size: 160px; + width: 1em; + height: 1em; + border: 4px solid var(--bodyBackground); + float: left; + margin-right: 10px; + border-radius: 100%; +} + +.tone-dark .top-user .user-image { + border-color: #0b0b0b; +} + +.phone .top-user .user-image { + float: none; + margin-left: auto; + margin-right: auto; + margin-bottom: 10px; +} + +.phone body.no-margin-top .top-user .user-image { + margin-top: 10px; +} + +.top-user img.user-image { + background: var(--bodyBackground); +} + +.phone .top-user img.user-image { + border: 10px solid transparent; + box-sizing: content-box; + background: rgb(255 255 255 / 10%); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); +} + +.top-user .user-image.no-border { + border: none; +} + +.top-user .number-figures { + margin-top: 0; +} + +.user-card.avatar { + padding-left: 70px; +} + +.user-card.no-avatar { + padding-left: 0; +} + +.user-card .or-separator { + margin-top: 5px; + margin-bottom: 5px; +} + +.user-card .user-link { + font-size: 0.93em; +} + +.user-card-header h2 { + font-size: 15px; + font-weight: normal; + margin-top: 0; + margin-bottom: 2px; +} + +.user-card-header h2 a { + color: inherit; + text-decoration: none; +} + +.tone-dark .user-card-header h2 a { + color: #fff; +} + +.user-card-header div { + color: var(--bodyTextSubtle); +} + +.user-card-footer { + overflow: hidden; +} + +.user-card-footer .user-social-networks { + margin-top: 3px; +} + +.top-user .input-search .icon--close { + top: 4px; +} + +.ad-space { + text-align: center; +} + +.ad-margin-vertical { + margin-top: 20px; + margin-bottom: 20px; +} + +.ad-margin-horizontal { + margin-left: 20px; + margin-right: 20px; +} + +[role="menu"] { + position: relative; + overflow: visible; +} + +.menu-box, [role="menu"]>.menu-box { + z-index: 300; +} + +[role="menu"]>.menu-box { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + max-height: 10px; + display: block; + visibility: hidden; + transition: 350ms all ease-in-out; + opacity: 0; + transform: translateY(-5px); + transform-origin: top; + max-height: 100vh; +} + +[role="menu"].opened>.menu-box { + visibility: visible; + opacity: 1; + transform: translateY(0); +} + +@media (min-width: 768px) { + [role="menu"]>.menu-box { + transition: none; + } +} + +.menu-box { + border: 0; +} + +.menu-box, .menu-box .menu-box-sub>ul, .menu-box .menu-box-sub>.sub { + background: var(--bodyBackground); + border-radius: 3px; + box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2); + color: var(--bodyText); + font-size: 14px; + font-weight: normal; + position: absolute; + top: 100%; + list-style: none; + min-width: 190px; + padding: 0; + margin: 0; +} + +.menu-box--static { + position: static; + max-width: 190px; +} + +.menu-box *:not(a), .menu-box [role*="button"] { + color: var(--bodyText); +} + +.tone-dark .menu-box *:not(a), .tone-dark .menu-box [role*="button"] { + color: #fff; +} + +.menu-box ul { + margin: 0; + padding: 0; +} + +.float-left .menu-box, .pull-left .menu-box, menu-box.anchor-left { + left: 0; +} + +.float-right .menu-box, .pull-right .menu-box, .menu-box--anchor-right { + right: 0; +} + +.menu-box hr, .menu-box .separator, .menu-box [role="separator"] { + display: block; + margin: 0; + padding: 0; + height: 0; + border: 0; + border-top: 1px solid #ebebeb; +} + +.menu-box--border-separators>* { + border-bottom: 1px solid #ebebeb; +} + +.menu-box--border-separators>*:last-child { + border-bottom: 0; +} + +.menu-box--border-separators>hr { + display: none; +} + +.menu-box li, .menu-box .sub, .menu-box [role="box"], .menu-box [role*="button"] { + padding: 10px; + list-style: none; + position: relative; + line-height: 1.4; + clear: both; + min-height: 40px; + display: block; +} + +.menu-box [role="box"] { + cursor: default; +} + +.menu-box [role*="button"] { + padding-left: 35px; + border-left: 2px solid transparent; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + text-align: start; +} + +.menu-box--multiline [role*="button"] { + white-space: normal; +} + +.menu-box--noicons li:not([role="button"]) { + padding-left: 0; +} + +.menu-box--noicons [role="button"] { + padding-left: 10px; + color: inherit; +} + +.menu-box [role="button"]:hover { + border-left-color: #a66bbe; +} + +.menu-box .disabled[role="button"] { + cursor: not-allowed; + background: none; + border-color: transparent !important; + opacity: 0.5; +} + +.menu-box li.menu-box-sub { + padding-right: 34px; +} + +.menu-box .menu-box-sub>ul, .menu-box .menu-box-sub>.sub { + display: none; +} + +.menu-box .menu-box-sub:hover>ul, .menu-box .menu-box-sub:hover>.sub { + display: block; +} + +.menu-box [role*="button"]>.icon, .menu-box li>.icon { + font-size: 16px; + width: 16px; + height: 16px; + text-align: center; + position: absolute; + left: 8px; + top: 50%; + margin-top: -8px; +} + +.menu-box .menu-box-sub>.icon { + left: auto; + right: 10px; +} + +.menu-box .menu-box-sub ul, .menu-box .menu-box-sub .sub { + cursor: default; + position: absolute; + top: 0; + left: 100%; +} + +.menu-box .meta { + font-size: 0.93em; + display: block; +} + +.menu-box .empty { + font-size: 1em; + text-align: center; + padding: 40px 20px; +} + +.menu-box .empty>.icon { + font-size: 64px; + margin-bottom: 10px; + display: block; + color: #ebebeb; + position: static; +} + +.arrow-navigator a { + color: var(--bodyBackground); + display: block; + text-decoration: none; + text-align: center; + height: 40px; + width: 40px; + position: absolute; + top: 50%; + margin-top: -20px; + opacity: 0.7; + padding: 10px; +} + +.arrow-navigator a.disabled { + display: none; +} + +.arrow-navigator a:hover { + opacity: 1; +} + +.arrow-navigator a span { + display: inline-block; + font-size: 20px; + width: 1em; + height: 1em; + text-align: center; +} + +.growl { + color: var(--alertText); + font-size: 1.1em; + line-height: 1.2; + background: var(--alertBackground); + padding: 1em; + padding-right: 2em; + text-align: center; + overflow: visible; + position: fixed; + width: 500px; + left: 50%; + top: 45px; + z-index: 9999; + cursor: default; + border-left: 5px solid var(--alertAccent); + box-shadow: 0 0 15px 5px rgba(0, 0, 0, 0.15); + border-radius: 4px; + margin-left: -250px; +} + +.growl:empty { + display: none; +} + +.phone .growl { + left: 10px; + right: 10px; + width: auto; + margin-left: auto; +} + +.growl.static { + margin-left: auto; + position: static; + padding-left: 10px; + padding-right: 10px; + box-shadow: none; + z-index: initial; + margin: auto; + width: auto; +} + +.growl.static.inline { + margin: initial; + text-align: left; + display: inline-block; + padding-right: 1em; + padding-left: 1em; +} + +.growl .icon { + font-size: 14px; + text-align: center; + position: absolute; + right: 5px; + top: 7px; + cursor: pointer; + padding: 10px; + color: var(--alertText) +} + +.growl-debug-message { + text-align: left; +} + +.growl-debug-trace { + overflow-x: auto; + font-size: 80%; + margin-top: 10px; +} + +.growl-debug-status { + font-style: italic; + margin-top: 10px; + margin-bottom: 10px; +} + +.flex-center { + margin: auto; +} + +.width-full { + width: 100%; +} + +.height-full { + height: 100%; +} + +.width-min-full { + min-width: 100%; +} + +.height-min-full { + min-height: 100%; +} + +.fullscreen { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: auto; + z-index: 1000; + opacity: 0; + transition: opacity 350ms linear; +} + +.fullscreen.black, .fullscreen.white { + -webkit-backdrop-filter: blur(35px) saturate(1.8); + backdrop-filter: blur(35px) saturate(1.8); +} + +.fullscreen.black, .black-bkg { + background: var(--backgroundDarkAlpha); +} + +.fullscreen.white, .white-bkg { + background: var(--backgroundLightAlpha); +} + +.fullscreen.soft-white, .soft-white-bkg { + background: rgba(255, 255, 255, 0.6); + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#7FFFFFFF, endColorstr=#7FFFFFFF); +} + +.ie9 .fullscreen { + -webkit-filter: none; + filter: none; +} + +.fullscreen-loader { + width: 150px; + height: 150px; + text-align: center; + border-radius: 10px; + color: #fff; + margin-top: -75px; + margin-left: -75px; + position: absolute; + top: 50%; + left: 50%; + zoom: 1; +} + +.loading-txt { + position: absolute; + bottom: 15px; + left: 0; + text-align: center; + width: 100%; +} + +#fullscreen-modal { + display: none; +} + +#fullscreen-modal.--show { + display: grid; + align-items: center; +} + +.ie9 #fullscreen-modal { + -webkit-filter: none; + filter: none; +} + +#fullscreen-modal-box { + width: 650px; + margin: 0 auto; + padding: 20px; + position: relative; + box-shadow: 0 0 50px 6px rgba(0, 0, 0, 0.25); + border-radius: 10px; + background: var(--modalBackground); + color: var(--modalText); +} + +.--has-scrollbar #fullscreen-modal-box { + border-radius: 0; +} + +.phone #fullscreen-modal-box { + width: 100%; + margin: 0; + max-height: 100%; + -webkit-overflow-scrolling: touch; + border-radius: 0; + padding: 20px; +} + +#fullscreen-modal-box h1, #fullscreen-modal-box .modal-box-title { + display: block; + margin-top: 0; + margin-bottom: 20px; + font-size: 20px; + line-height: 1.2; + padding-right: 32px; +} + +#fullscreen-modal-box h2 { + font-size: 1.14em; +} + +#fullscreen-modal-box h2 * { + font-weight: normal; +} + +#fullscreen-modal-box .or-separator { + margin-top: 16px; +} + +#fullscreen-modal-box p { + font-size: 1em; + line-height: 160%; + margin-top: 10px; + margin-bottom: 10px; +} + +#fullscreen-modal-box p:firt-child { + margin-top: 0; +} + +#fullscreen-modal-box .btn-container { + margin-bottom: 0; +} + +#fullscreen-modal-box .close-modal.icon--close { + position: absolute; + right: 10px; + top: 15px; + cursor: pointer; + display: block; + padding: 10px; +} + +.phone #fullscreen-modal-box .close-modal.icon--close, .phone #fullscreen-modal-box .close-modal.icon--close:hover { + right: 10px; +} + +.modal-form textarea { + height: 70px; + resize: none; +} + +.fancy-box { + padding: 20px; + background: var(--bodyBackground); + box-shadow: 0 0 50px 6px rgb(0 0 0 / 25%); + border-radius: 10px; +} + +.fancy-box p { + -webkit-margin-before: 1em; + margin-block-start: 1em; + -webkit-margin-after: 1em; + margin-block-end: 1em; +} + +.fancy-box .or-separator { + height: 1px; + margin: 0; +} + +#fullscreen-changes-confirm { + background: var(--bodyBackground); + padding: 40px 0; + margin-top: 75px; + position: absolute; + text-align: center; + top: 50%; + width: 100%; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25); +} + +.tone-dark #fullscreen-changes-confirm { + background: #1e1e1e; +} + +#fullscreen-changes-confirm h2 { + font-size: 18px; + line-height: 18px; + color: inherit; +} + +.fullscreen-viewer { + background: #000; + background: rgba(0, 0, 0, 0.9); + color: #bbb; + display: none; +} + +.fullscreen-viewer-top { + height: 50px; + width: 100%; + background: #000; +} + +.fullscreen-viewer-top-user, .fullscreen-viewer-navigation { + margin-top: 8px; +} + +.fullscreen-viewer-top-user {} + +.fullscreen-viewer-top-user img { + width: 34px; + height: 34px; + margin-right: 10px; +} + +.fullscreen-viewer-navigation { + font-size: 16px; + font-size: 1.143rem; + height: 26px; + position: relative; + z-index: 100; +} + +.fullscreen-viewer-navigation a { + display: inline-block; + color: #bbb; + color: rgba(255, 255, 255, 0.7); + text-decoration: none; + padding: 8px; +} + +.fullscreen-viewer-navigation a:hover { + color: #fff; +} + +.fullscreen-viewer-navigation a.disabled { + color: #bbb; + color: rgba(255, 255, 255, 0.4); + cursor: default; +} + +.fullscreen-viewer-content { + text-align: center; + height: 100%; + position: relative; + display: none; +} + +.fullscreen-viewer-content img { + max-width: 100%; + max-height: 100%; + box-shadow: 0 0 6px 0 #000000; +} + +#cookie-law-banner { + position: fixed; + padding: 10px; + width: 100%; + bottom: 0; + background: rgba(0, 0, 0, 0.8); + color: #fff; + font-size: 1.2em; + z-index: 1000; +} + +#cookie-law-banner p { + padding-right: 20px; +} + +a.cookie-law-close { + color: inherit; + text-decoration: none; + position: absolute; + right: 0; + top: 3px; + font-size: 0.72em; + opacity: 0.5; +} + +a.cookie-law-close:hover { + opacity: 1; +} + +.badge--paid { + text-transform: uppercase; + text-align: center; + border-radius: 3px; + padding: 2px 5px; + display: inline-block; + line-height: 1; + border: 1px solid var(--buttonDefaultBorder); + color: var(--buttonDefaultHoverText); + background-color: var(--buttonDefaultHoverBackground); + border-color: var(--buttonDefaultHoverBorder); + font-weight: normal; +} + +.pop-box-menu li .badge { + position: absolute; + right: 8px; + top: 8px; +} + +.badge { + vertical-align: text-bottom; + font-size: 0.7143em; + transform-origin: right; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.badge + label, +.btn .badge { + margin-left: 5px; +} + +.pop-box-menu li.paid a { + padding-right: 52px; +} + +.pop-box-menu li:hover .badge { + color: var(--menuItemHoverBackground); + background-color: var(--menuItemHoverText); + border-color: transparent; +} + +.r1 { + height: 30px; +} + +.r2 { + height: 70px; +} + +.r3 { + height: 110px; +} + +.r4 { + height: 150px; +} + +.r5 { + height: 190px; +} + +.r6 { + height: 230px; +} + +.r7 { + height: 270px; +} + +.r8 { + height: 310px; +} + +.r9 { + height: 350px; +} + +.r10 { + height: 390px; +} + +.r11 { + height: 430px; +} + +.r12 { + height: 470px; +} + +.r13 { + height: 510px; +} + +.r14 { + height: 550px; +} + +.r15 { + height: 590px; +} + +.r16 { + height: 630px; +} + +.r17 { + height: 670px; +} + +.r18 { + height: 710px; +} + +.r19 { + height: 750px; +} + +.r20 { + height: 790px; +} + +.r11 { + height: 830px; +} + +.r22 { + height: 870px; +} + +.r23 { + height: 910px; +} + +.r24 { + height: 950px; +} + +.columns-container { + overflow: auto; +} + +.grid-columns { + display: block; + float: left; +} + +.gutter-margin-right, .gutter-margin-right-bottom { + margin-right: 1px; +} + +.gutter-margin-bottom, .gutter-margin-right-bottom, .gutter-margin-left-bottom { + margin-bottom: 1px; +} + +.gutter-margin-left, .gutter-margin-left-bottom { + margin-left: 1px; +} + +.gutter-width { + width: 5px; +} + +@media (min-width: 480px) {} + +.col-1-min { + min-width: 30px; +} + +.col-2-min { + min-width: 70px; +} + +.col-3-min { + min-width: 110px; +} + +.col-4-min { + min-width: 150px; +} + +.col-5-min { + min-width: 190px; +} + +.col-6-min { + min-width: 230px; +} + +.col-7-min { + min-width: 270px; +} + +.col-8-min { + min-width: 310px; +} + +.col-9-min { + min-width: 350px; +} + +.col-10-min { + min-width: 390px; +} + +.col-11-min { + min-width: 430px; +} + +.col-12-min { + min-width: 470px; +} + +.col-13-min { + min-width: 510px; +} + +.col-14-min { + min-width: 550px; +} + +.col-15-min { + min-width: 590px; +} + +.col-16-min { + min-width: 630px; +} + +.col-17-min { + min-width: 670px; +} + +.col-18-min { + min-width: 710px; +} + +.col-19-min { + min-width: 750px; +} + +.col-20-min { + min-width: 790px; +} + +.col-21-min { + min-width: 830px; +} + +.col-22-min { + min-width: 870px; +} + +.col-23-min { + min-width: 910px; +} + +.col-24-min { + min-width: 950px; +} + +.col-1-max { + max-width: 30px; +} + +.col-2-max { + max-width: 70px; +} + +.col-3-max { + max-width: 110px; +} + +.col-4-max { + max-width: 150px; +} + +.col-5-max { + max-width: 190px; +} + +.col-6-max { + max-width: 230px; +} + +.col-7-max { + max-width: 270px; +} + +.col-8-max { + max-width: 310px; +} + +.col-9-max { + max-width: 350px; +} + +.col-10-max { + max-width: 390px; +} + +.col-11-max { + max-width: 430px; +} + +.col-12-max { + max-width: 470px; +} + +.col-13-max { + max-width: 510px; +} + +.col-14-max { + max-width: 550px; +} + +.col-15-max { + max-width: 590px; +} + +.col-16-max { + max-width: 630px; +} + +.col-17-max { + max-width: 670px; +} + +.col-18-max { + max-width: 710px; +} + +.col-19-max { + max-width: 750px; +} + +.col-20-max { + max-width: 790px; +} + +.col-21-max { + max-width: 830px; +} + +.col-22-max { + max-width: 870px; +} + +.col-23-max { + max-width: 910px; +} + +.col-24-max { + max-width: 950px; +} + +@media (min-width: 768px) { + .c1 { + width: 30px; + } + + .c2 { + width: 70px; + } + + .c3 { + width: 110px; + } + + .c4 { + width: 150px; + } + + .c5 { + width: 190px; + } + + .c6 { + width: 230px; + } + + .c7 { + width: 270px; + } + + .c8 { + width: 310px; + } + + .c9 { + width: 350px; + } + + .c10 { + width: 390px; + } + + .c11 { + width: 430px; + } + + .c12 { + width: 470px; + } + + .c13 { + width: 510px; + } + + .c14 { + width: 550px; + } + + .c15 { + width: 590px; + } + + .c16 { + width: 630px; + } + + .c17 { + width: 670px; + } + + .c18 { + width: 710px; + } + + .fluid-column.c1 { + width: 3.157%; + } + + .fluid-column.c2 { + width: 7.368%; + } + + .fluid-column.c3 { + width: 11.578%; + } + + .fluid-column.c4 { + width: 15.789%; + } + + .fluid-column.c5 { + width: 20%; + } + + .fluid-column.c6 { + width: 24.21%; + } + + .fluid-column.c7 { + width: 28.421%; + } + + .fluid-column.c8 { + width: 32.631%; + } + + .fluid-column.c9 { + width: 36.842%; + } + + .fluid-column.c10 { + width: 41.052%; + } + + .fluid-column.c11 { + width: 45.263%; + } + + .fluid-column.c12 { + width: 49.473%; + } + + .fluid-column.c13 { + width: 53.684%; + } + + .fluid-column.c14 { + width: 57.894%; + } + + .fluid-column.c15 { + width: 62.105%; + } + + .fluid-column.c16 { + width: 66.315%; + } + + .fluid-column.c17 { + width: 70.526%; + } + + .fluid-column.c18 { + width: 74.736%; + } +} + +@media (min-width: 992px) { + .content-width { + width: 100%; + min-width: 970px; + } + + .c19 { + width: 750px; + } + + .c20 { + width: 790px; + } + + .c21 { + width: 830px; + } + + .c22 { + width: 870px; + } + + .c23 { + width: 910px; + } + + .c24 { + width: 950px; + } + + .fluid-column.c19 { + width: 78.947%; + } + + .fluid-column.c20 { + width: 83.157%; + } + + .fluid-column.c21 { + width: 87.368%; + } + + .fluid-column.c22 { + width: 91.578%; + } + + .fluid-column.c23 { + width: 95.789%; + } + + .fluid-column.c24 { + width: 100%; + } + + .top-btn-text .btn-text { + margin-left: 7px; + } + + .pop-box .arrow-down { + border-width: 6px 6px 0 6px; + } +} + +@media (min-width: 992px) and (max-width: 1920px) { + .content-width { + max-width: 1800px; + } +} + +@media (min-width: 1921px) and (max-width: 2560px) { + .content-width { + max-width: 2440px; + } +} + +@media (min-width: 3840px) { + .content-width { + max-width: 3720px; + } +} + +.color-body-text-subtle { + color: var(--bodyTextSubtle); +} + +.color-accent { + color: var(--colorAccent); +} + +.color-success { + color: var(--colorSuccess); +} + +.color-fail { + color: var(--colorFail); +} + +.color-white { + color: #fff !important; +} + +.color-black { + color: #333 !important; +} + +.color-grey { + color: #ccc !important; +} + +.color-green { + color: #27ae61 !important; +} + +.color-red { + color: #e74c3c !important; +} + +.color-blue { + color: var(--colorBlue) !important; +} + +.color-orange { + color: #d35400 !important; +} + +.color-purple { + color: #8e44ad !important; +} + +.color-inherit { + color: inherit !important; +} + +.color-initial { + color: initial !important; +} + +.height-auto { + height: auto; +} + +.width-auto { + width: auto; +} + +.height-100p { + height: 100%; +} + +.width-100p { + width: 100%; +} + +.color-facebook { + color: #3b5998; +} + +.color-twitter { + color: #1da1f2; +} + +.color-google { + color: #ea4335; +} + +.color-vk { + color: #45668e; +} + +.border-color-facebook { + border-color: #3b5998; +} + +.border-color-twitter { + border-color: #1da1f2; +} + +.border-color-google { + border-color: #ea4335; +} + +.border-color-vk { + border-color: #45668e; +} + +.opacity-10 { + opacity: 0.1; +} + +.opacity-20 { + opacity: 0.2; +} + +.opacity-30 { + opacity: 0.3; +} + +.opacity-40 { + opacity: 0.4; +} + +.opacity-50 { + opacity: 0.5; +} + +.opacity-60 { + opacity: 0.6; +} + +.opacity-70 { + opacity: 0.7; +} + +.opacity-80 { + opacity: 0.8; +} + +.opacity-90 { + opacity: 0.9; +} + +.opacity-100 { + opacity: 1; +} + +.background-black { + background: black !important; +} + +.background-white { + background: white !important; +} + +.background-transparent { + background: transparent !important; +} + +.background-gradient-white-left { + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 35%, rgba(255, 255, 255, 1) 100%); + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#ffffff', GradientType=1); +} + +.background-gradient-white-right { + background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 80%, rgba(255, 255, 255, 0) 100%); + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#00ffffff', GradientType=1); +} + +.font-weight-bold { + font-weight: bold !important; +} + +.font-weight-normal { + font-weight: normal !important; +} + +.cursor-pointer { + cursor: pointer !important; +} + +.cursor-default { + cursor: default !important; +} + +.cursor-zoom-in { + cursor: zoom-in; +} + +.cursor-zoom-out { + cursor: zoom-out; +} + +.font-size-small { + font-size: small !important; +} + +.font-size-medium { + font-size: medium !important; +} + +.font-size-large { + font-size: large !important; +} + +.font-size-inherit { + font-size: inherit !important; +} + +.font-size-10 { + font-size: 10px !important; +} + +.font-size-11 { + font-size: 11px !important; +} + +.font-size-12 { + font-size: 12px !important; +} + +.font-size-13 { + font-size: 13px !important; +} + +.font-size-14 { + font-size: 14px !important; +} + +.font-size-15 { + font-size: 15px !important; +} + +.font-size-16 { + font-size: 16px !important; +} + +.font-size-17 { + font-size: 17px !important; +} + +.font-size-18 { + font-size: 18px !important; +} + +.height-100p { + height: 100% !important; +} + +.height-120p { + height: 120% !important; +} + +.top-0 { + top: 0px; +} + +.top-10 { + top: 10px; +} + +.top-20 { + top: 20px; +} + +.top-30 { + top: 30px; +} + +.top-40 { + top: 40px; +} + +.right-0 { + right: 0px; +} + +.right-10 { + right: 10px; +} + +.right-20 { + right: 20px; +} + +.right-30 { + right: 30px; +} + +.right-40 { + right: 40px; +} + +.bottom-0 { + bottom: 0px; +} + +.bottom-10 { + bottom: 10px; +} + +.bottom-20 { + bottom: 20px; +} + +.bottom-30 { + bottom: 30px; +} + +.bottom-40 { + bottom: 40px; +} + +.left-0 { + left: 0px; +} + +.left-10 { + left: 10px; +} + +.left-20 { + left: 20px; +} + +.left-30 { + left: 30px; +} + +.left-40 { + left: 40px; +} + +.display-none { + display: none; +} + +.display-none-forced { + display: none !important; +} + +.display-block { + display: block; +} + +.display-block-forced { + display: block !important; +} + +.display-flex { + display: -moz-flex; + display: flex; +} + +.visibility-hidden { + visibility: hidden; +} + +.clear-both { + clear: both; +} + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.border-0, .no-border { + border: none; +} + +.border-top-0 { + border-top: 0; +} + +.border-right-0 { + border-right: 0; +} + +.border-bottom-0 { + border-bottom: 0; +} + +.border-left-0 { + border-left: 0; +} + +.box-shadow-none { + box-shadow: none; +} + +.word-break-break-all { + word-break: break-all; +} + +.word-break-break-word { + word-break: break-word; +} + +.margin-0 { + margin: 0 !important; +} + +.margin-5 { + margin: 5px !important; +} + +.margin-10 { + margin: 10px !important; +} + +.margin-20 { + margin: 20px !important; +} + +.margin-30 { + margin: 20px !important; +} + +.margin-40 { + margin: 20px !important; +} + +.margin-top-0, .phone .phone-margin-top-0, .phablet .phablet-margin-top-0 { + margin-top: 0 !important; +} + +.margin-top-5, .phone .phone-margin-top-5, .phablet .phablet-margin-top-5 { + margin-top: 5px !important; +} + +.margin-top-10, .phone .phone-margin-top-10, .phablet .phablet-margin-top-10 { + margin-top: 10px !important; +} + +.margin-top-20, .phone .phone-margin-top-20, .phablet .phablet-margin-top-20 { + margin-top: 20px !important; +} + +.margin-top-30 { + margin-top: 30px !important; +} + +.margin-top-40 { + margin-top: 40px !important; +} + +.margin-right-auto { + margin-right: auto !important; +} + +.margin-right-0, .phone .phone-margin-right-0, .phablet .phablet-margin-right-0 { + margin-right: 0 !important; +} + +.margin-right-035em { + margin-right: 0.35em !important; +} + +.margin-right-5 { + margin-right: 5px !important; +} + +.margin-right-10 { + margin-right: 10px !important; +} + +.margin-right-20 { + margin-right: 20px !important; +} + +.margin-right-30 { + margin-right: 30px !important; +} + +.margin-right-40 { + margin-right: 40px !important; +} + +.margin-bottom-0, .phone .phone-margin-bottom-0, .phablet .phablet-margin-bottom-0 { + margin-bottom: 0 !important; +} + +.margin-bottom-5 { + margin-bottom: 5px !important; +} + +.margin-bottom-10, .phone .phone-margin-bottom-10, .phablet .phablet-margin-bottom-10 { + margin-bottom: 10px !important; +} + +.margin-bottom-20, .phone .phone-margin-bottom-20, .phablet .phablet-margin-bottom-20 { + margin-bottom: 20px !important; +} + +.margin-bottom-30 { + margin-bottom: 30px !important; +} + +.margin-bottom-40 { + margin-bottom: 40px !important; +} + +.margin-left-auto { + margin-left: auto !important; +} + +.margin-left-0, .phone .phone-margin-left-0, .phablet .phablet-margin-left-0 { + margin-left: 0 !important; +} + +.margin-right--10 { + margin-right: -10px !important; +} + +.margin-left--10 { + margin-left: -10px !important; +} + +.margin-left-5 { + margin-left: 5px !important; +} + +.margin-left-10 { + margin-left: 10px !important; +} + +.margin-left-20 { + margin-left: 20px !important; +} + +.margin-left-30 { + margin-left: 30px !important; +} + +.margin-left-40 { + margin-left: 40px !important; +} + +.padding-5 { + padding: 5px !important; +} + +.padding-10 { + padding: 10px !important; +} + +.padding-20 { + padding: 20px !important; +} + +.padding-30 { + padding: 20px !important; +} + +.padding-40 { + padding: 20px !important; +} + +.padding-top-5 { + padding-top: 5px !important; +} + +.padding-top-0 { + padding-top: 0 !important; +} + +.padding-top-10 { + padding-top: 10px !important; +} + +.padding-top-20 { + padding-top: 20px !important; +} + +.padding-top-30 { + padding-top: 30px !important; +} + +.padding-top-40 { + padding-top: 40px !important; +} + +.padding-right-5 { + padding-right: 5px !important; +} + +.padding-right-0 { + padding-right: 0 !important; +} + +.padding-right-10 { + padding-right: 10px !important; +} + +.padding-right-20 { + padding-right: 20px !important; +} + +.padding-right-30 { + padding-right: 30px !important; +} + +.padding-right-40 { + padding-right: 40px !important; +} + +.padding-bottom-5 { + padding-bottom: 5px !important; +} + +.padding-bottom-0 { + padding-bottom: 0 !important; +} + +.padding-bottom-10 { + padding-bottom: 10px !important; +} + +.padding-bottom-20 { + padding-bottom: 20px !important; +} + +.padding-bottom-30 { + padding-bottom: 30px !important; +} + +.padding-bottom-40 { + padding-bottom: 40px !important; +} + +.padding-left-5 { + padding-left: 5px !important; +} + +.padding-left-0 { + padding-left: 0 !important; +} + +.padding-left-10 { + padding-left: 10px !important; +} + +.padding-left-20 { + padding-left: 20px !important; +} + +.padding-left-30 { + padding-left: 30px !important; +} + +.padding-left-40 { + padding-left: 40px !important; +} + +.position-sticky { + position: -webkit-sticky; + position: sticky; +} + +.position-static { + position: static; +} + +.position-relative { + position: relative; +} + +.position-absolute { + position: absolute; +} + +.position-fixed { + position: fixed; +} + +.text-align-left { + text-align: left; +} + +.text-align-center { + text-align: center; +} + +.text-align-right { + text-align: right; +} + +.text-align-justify { + text-align: justify; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.display-block { + display: block; +} + +.display-inline { + display: inline; +} + +.display-inline-table { + display: inline-table; +} + +.display-inline-block { + display: inline-block; +} + +.display-table-cell { + display: table-cell; +} + +.word-break-break-all { + word-break: break-all; +} + +.list-style-position-inside li { + list-style-position: inside !important; +} + +.list-style-position-outside li { + list-style-position: outside !important; +} + +.list-style-type-disc li { + list-style-type: disc !important; +} + +.list-style-type-decimal li { + list-style-type: decimal !important; +} + +.center-box { + margin-right: auto !important; + margin-left: auto !important; +} + +.display-inline-block, .display-table-cell { + *display: inline; + zoom: 1; +} + +.vertical-align-middle { + vertical-align: middle !important; +} + +.resize-vertical { + resize: vertical !important; +} + +.no-resize, .resize-none { + resize: none !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.overflow-x-auto { + overflow-x: auto !important; +} + +.overflow-y-auto { + overflow-y: auto !important; +} + +.overflow-x-hidden { + overflow-x: hidden !important; +} + +.overflow-y-hidden { + overflow-y: hidden !important; +} + +.overflow-x-visible { + overflow-x: visible !important; +} + +.overflow-y-visible { + overflow-y: visible !important; +} + +.overflow-x-scroll { + overflow-x: scroll !important; +} + +.overflow-y-scroll { + overflow-y: scroll !important; +} + +.text-transform-capitalize { + text-transform: capitalize; +} + +.text-transform-uppercase { + text-transform: uppercase; +} + +.default-margin-top { + margin-top: 20px; +} + +.default-margin-bottom { + margin-bottom: 20px; +} + +.float-none { + float: none !important; + clear: both !important; +} + +.phone .phone-hide, .phablet .phablet-hide, .tablet .tablet-hide, .laptop .laptop-hide, .desktop .desktop-hide, .largescreen .desktop-hide { + display: none !important; +} + +.phone .phone-show, .phone .phone-display-block, .phablet .phablet-show, .phablet .phablet-display-block, .tablet .tablet-show, .tablet .tablet-display-block, .laptop .laptop-show, .laptop .laptop-display-block, .desktop .desktop-show, .desktop .desktop-display-block, .largescreen .desktop-show, .largescreen .desktop-display-block { + display: block !important; +} + +.phone .phone-display-inline, .phablet .phablet-display-inline, .tablet .tablet-display-inline, .laptop .laptop-display-inline, .desktop .desktop-display-inline { + display: inline !important; +} + +.phone .phone-display-inline-block, .phablet .phablet-display-inline-block, .tablet .tablet-display-inline-block, .laptop .laptop-display-inline-block, .desktop .desktop-display-inline-block { + display: inline-block !important; +} + +.image-responsive { + max-width: 100% !important; + width: auto !important; +} + +.phone .phone-float-none, .phablet .phablet-float-none, .tablet .tablet-float-none, .laptop .laptop-float-none, .desktop .desktop-float-none { + float: none; + clear: both; +} + +.phone .grid-columns, .phablet .grid-columns { + float: none; + margin-left: 0; + margin-right: 0; +} + +.phone .phone-float-left, .phablet .phablet-float-left { + float: left !important; +} + +.phone .phone-c1, .phablet .phablet-c1, .phone .fluid-column.phone-c1, .phone .fluid-column.phablet-c1 { + width: 100%; +} + +.phone .phone-text-align-left, .phablet .phablet-text-align-left { + text-align: left !important; +} + +.phone .phone-text-align-center, .phablet .phablet-text-align-center { + text-align: center !important; +} + +#tiptip_holder { + display: none; + position: absolute; + top: 0; + left: 0; + z-index: 99999; +} + +#tiptip_holder.tip_top { + padding-bottom: 5px; +} + +#tiptip_holder.tip_bottom { + padding-top: 5px; +} + +#tiptip_holder.tip_right { + padding-left: 5px; +} + +#tiptip_holder.tip_left { + padding-right: 5px; +} + +#tiptip_content { + font-size: 12px; + color: #fff; + padding: 6px 8px; + background-color: #333; + background-color: rgba(0, 0, 0, 0.8); + word-break: break-word; +} + +#tiptip_arrow, #tiptip_arrow_inner { + position: absolute; + border-color: transparent; + border-style: solid; + border-width: 6px; + height: 0; + width: 0; +} + +#tiptip_holder.tip_top #tiptip_arrow_inner { + margin-top: -6px; + margin-left: -7px; + border-top-color: #333; + border-top-color: rgba(0, 0, 0, 0.8); +} + +.tone-dark #tiptip_holder.tip_top #tiptip_arrow_inner { + border-top-color: #fff; + border-top-color: rgba(255, 255, 255, 0.95); +} + +#tiptip_holder.tip_bottom #tiptip_arrow_inner { + margin-top: -6px; + margin-left: -7px; + border-bottom-color: #333; + border-bottom-color: rgba(0, 0, 0, 0.8); +} + +.tone-dark #tiptip_holder.tip_bottom #tiptip_arrow_inner { + border-bottom-color: #fff; + border-bottom-color: rgba(255, 255, 255, 0.95); +} + +#tiptip_holder.tip_right #tiptip_arrow_inner { + margin-top: -6px; + margin-left: -6px; + border-right-color: #333; + border-right-color: rgba(0, 0, 0, 0.8); +} + +.tone-dark #tiptip_holder.tip_right #tiptip_arrow_inner { + border-right-color: #fff; + border-right-color: rgba(255, 255, 255, 0.95); +} + +#tiptip_holder.tip_left #tiptip_arrow_inner { + margin-top: -6px; + margin-left: -6px; + border-left-color: #333; + border-left-color: rgba(0, 0, 0, 0.8); +} + +.tone-dark #tiptip_holder.tip_left #tiptip_arrow_inner { + border-left-color: #fff; + border-left-color: rgba(255, 255, 255, 0.95); +} + +.antiscroll-wrap { + display: block; + position: relative; + overflow: hidden; +} + +.antiscroll-scrollbar { + background: gray; + background: rgba(0, 0, 0, 0.5); + border-radius: 7px; + box-shadow: 0 0 1px #fff; + position: absolute; + opacity: 0; + filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0); + -webkit-transition: linear 350ms opacity; + -moz-transition: linear 350ms opacity; + -o-transition: linear 350ms opacity; +} + +.antiscroll-scrollbar-shown { + opacity: 1; + filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100); +} + +.antiscroll-scrollbar-horizontal { + height: 7px; + margin-left: 2px; + bottom: 2px; + left: 0; +} + +.antiscroll-scrollbar-vertical { + width: 7px; + margin-top: 2px; + right: 2px; + top: 0; +} + +.antiscroll-inner { + overflow: scroll; +} + +/** A bug in Chrome 25 on Lion requires each selector to have their own + blocks. E.g. the following: + + .antiscroll-inner::-webkit-scrollbar, .antiscroll-inner::scrollbar {...} + + causes the width and height rules to be ignored by the browser resulting + in both native and antiscroll scrollbars appearing at the same time. + */ + +.antiscroll-inner::-webkit-scrollbar { + width: 0; + height: 0; +} + +.antiscroll-inner::scrollbar { + width: 0; + height: 0; +} + +#recaptcha_table.recaptcha_theme_clean #recaptcha_image { + border: 0 !important; +} + +#recaptcha_response_field { + height: auto; +} + +.copy-hover-display button.input-action, .copy-hover-display button.copy-input { + visibility: hidden; +} + +.phone button.input-action, .phablet button.input-action, .copy-hover-display:hover button.input-action, .phone button.copy-input, .phablet button.copy-input, .copy-hover-display:hover button.copy-input { + visibility: visible; +} + +button.input-action, button.copy-input { + position: absolute; + right: 7px; + top: 0.8181em; + text-transform: uppercase; + cursor: pointer; + line-height: 1; + font-size: 11px; + padding: 4px 6px; + border-radius: 4px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +button.input-action, button.copy-input { + background: var(--buttonDefaultBackground); + color: var(--buttonDefaultText); +} + +button:hover.input-action, button:hover.copy-input { + background: var(--buttonDefaultHoverBackground); + color: var(--buttonDefaultHoverText); +} + +.shake { + -webkit-animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; + animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; +} + +@-webkit-keyframes shake { + 10%, 90% { + transform: translate3d(-1px, 0, 0); + } + + 20%, 80% { + transform: translate3d(2px, 0, 0); + } + + 30%, 50%, 70% { + transform: translate3d(-4px, 0, 0); + } + + 40%, 60% { + transform: translate3d(4px, 0, 0); + } +} + +@keyframes shake { + 10%, 90% { + transform: translate3d(-1px, 0, 0); + } + + 20%, 80% { + transform: translate3d(2px, 0, 0); + } + + 30%, 50%, 70% { + transform: translate3d(-4px, 0, 0); + } + + 40%, 60% { + transform: translate3d(4px, 0, 0); + } +} + +.key-feedback { + line-height: 1; + background: rgba(0, 0, 0, .7); + position: fixed; + z-index: 10000; + -webkit-backdrop-filter: blur(30px); + backdrop-filter: blur(30px); + bottom: 1.5em; + transition: all 500ms; + opacity: 0; + text-align: center; + color: #FFF; + font-weight: bold; + font-size: 45px; + padding: 1em; + border-radius: 0.5em; + left: 50%; + transform: translateX(-50%); + border: 4px solid rgba(255, 255, 255, .9); + box-shadow: 0 0 50px 6px rgb(0 0 0 / 25%); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +img.qr { + display: inline-block; +} + +.fa-vkontakte:before { + content: "\f189"; +} + +.fab.fa-mailru { + font-family: "Font Awesome 5 Free"; + font-weight: 900; +} + +.fa-mailru:before { + content: "\f1fa"; +} + +.fa-stackexchange:before { + content: "\f18d"; +} + +.fa-twitchtv:before { + content: "\f1e8"; +} + +.fa-wechat:before { + content: "\f1d7"; +} diff --git a/content/legacy/themes/Peafowl/lib/peafowl.js b/content/legacy/themes/Peafowl/lib/peafowl.js new file mode 100644 index 0000000..825fe2e --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/peafowl.js @@ -0,0 +1,10326 @@ +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +$(function () { + var ajaxSetup = { + url: PF.obj.config.json_api, + cache: false, + dataType: "json", + data: { auth_token: PF.obj.config.auth_token } + }; + if (typeof PF.obj.config.session_id !== typeof undefined) { + ajaxSetup.data.session_id = PF.obj.config.session_id; + } + $.ajaxSetup(ajaxSetup); + + /** + * WINDOW LISTENERS + * ------------------------------------------------------------------------------------------------- + */ + $(window).bind("beforeunload", function () { + if ( + $("form", PF.obj.modal.selectors.root).data("beforeunload") == "continue" + ) + return; + if ( + $(PF.obj.modal.selectors.root).is(":visible") && + PF.fn.form_modal_has_changed() + ) { + return '<i class="fas fa-exclamation-triangle"></i> ' + PF.fn._s( + "All the changes that you have made will be lost if you continue." + ); + } + }); + + let previousScrollPosition = 0; + const supportPageOffset = window.pageXOffset !== undefined; + const isCSS1Compat = (document.compatMode || "") === "CSS1Compat"; + const isScrollingDown = function () { + let scrolledPosition = supportPageOffset + ? window.pageYOffset + : isCSS1Compat + ? document.documentElement.scrollTop + : document.body.scrollTop; + let isScrollDown; + if (scrolledPosition > previousScrollPosition) { + isScrollDown = true; + } else { + isScrollDown = false; + } + previousScrollPosition = scrolledPosition; + return isScrollDown; + }; + var scrollTimer; + window.addEventListener("scroll", function () { + if(scrollTimer) return; + scrollTimer = true; + setTimeout(function () { + var down = isScrollingDown(); + $("#top-bar, .follow-scroll").each(function() { + if($(this).attr("data-scroll-lock") === "1") { + return; + } + $(this) + .addClass("scroll-" + (down ? "down" : "up")) + .removeClass("scroll-" + (down ? "up" : "down")); + }); + scrollTimer = false; + }, 250); + }); + + $(window).bind("hashchange", function () { + // Call edit modal on #edit + if ( + window.location.hash == "#edit" && + !$(PF.obj.modal.selectors.root).exists() + ) + $("[data-modal=edit]") + .first() + .click(); + }); + + // Blind the tipTips on load + PF.fn.bindtipTip(); + + var resizeTimeout = 0, + resizeTimer, + width = $(window).width(); + $(window).on("resize", function () { + PF.fn.modal.styleAware(); + PF.fn.close_pops(); + clearTimeout(resizeTimer); + resizeTimer = setTimeout(function () { + PF.fn.modal.fixScrollbars(); + var device = PF.fn.getDeviceName(), + handled = ["phone", "phablet"], + desktop = ["tablet", "laptop", "desktop"]; + var new_device = PF.fn.getDeviceName(); + if ( + (new_device !== device && + ($.inArray(device, handled) >= 0 && + $.inArray(new_device, handled) == -1)) || + ($.inArray(device, desktop) >= 0 && $.inArray(new_device, desktop) == -1) + ) { + PF.fn.close_pops(); + } + + $(".top-bar").css("top", ""); + $("body").css({ position: "", height: "" }); + + $(".antiscroll") + .removeClass("jsly") + .data("antiscroll", ""); // Destroy for this? + $(".antiscroll-inner").css({ height: "", width: "", maxheight: "" }); // .pop-box, .pop-box-inner ? + + PF.fn.list_fluid_width(); + + if (width !== $(window).width()) { + $(PF.obj.listing.selectors.list_item, PF.obj.listing.selectors.content_listing_visible).css("opacity", 0); + if ( + $("[data-action=top-bar-menu-full]", "#top-bar").hasClass("current") + ) { + PF.fn.topMenu.hide(0); + } + PF.fn.listing.columnizer(true, 0, true); + $(PF.obj.listing.selectors.list_item, PF.obj.listing.selectors.content_listing_visible).css("opacity", 1); + } + width = $(window).width(); + }, resizeTimeout); + }); + + // Close the opened pop-boxes on HTML click + $(document).on("click", "html", function () { + PF.fn.close_pops(); + }); + + // Keydown numeric input (prevents non numeric keys) + $(document).on("keydown", ".numeric-input", function (e) { + e.keydown_numeric(); + }); + + // The handly data-scrollto. IT will scroll the elements to the target + $(document).on("click", "[data-scrollto]", function (e) { + var target = $(this).data("scrollto"), + $target = $(!target.match(/^\#|\./) ? "#" + target : target); + + if ($target.exists()) { + PF.fn.scroll($target); + } else { + console.log("PF scrollto error: target doesn't exists", $target); + } + }); + + $(document).on( + "click focus", + "[data-login-needed], [data-user-logged=must]", + function (e) { + if (!PF.fn.is_user_logged()) { + e.preventDefault(); + e.stopPropagation(); + window.location.href = PF.obj.vars.urls.login; + return false; + } + } + ); + + // The handly data-trigger. It will trigger click for elements with data-trigger + $(document).on("click", "[data-trigger]", function (e) { + if (e.isPropagationStopped()) { + return false; + } + + var trigger = $(this).data("trigger"), + $target = $(!trigger.match(/^\#|\./) ? "#" + trigger : trigger); + + if ($target.exists()) { + e.stopPropagation(); + e.preventDefault(); + if (!$target.closest(PF.obj.modal.selectors.root).length) { + PF.fn.modal.close(); + } + $target.trigger("click"); + } else { + console.log("PF trigger error: target doesn't exists", $target); + } + }); + + // Fix the auth_token inputs + $("form[method=post]").each(function () { + if (!$("input[name=auth_token]", this).exists()) { + $(this).append( + $("<input>", { + type: "hidden", + name: "auth_token", + value: PF.obj.config.auth_token + }) + ); + } + }); + + // Clear form like magic + $(document).on("click", ".clear-form", function () { + $(this) + .closest("form")[0] + .reset(); + }); + + $(document).on("submit", "form[data-action=validate]", function (e) { + var type = $(this).data("type"), + errors = false, + $validate = $(this).find("[required], [data-validate]"); + + $validate.each(function () { + var input_type = $(this).attr("type"), + pattern = $(this).attr("pattern"), + errorFn = function (el) { + $(el).highlight(); + errors = true; + }; + + if ($(this).is("[required]") && $(this).val() == "") { + if ($(this).is(":hidden")) { + var $hidden_target = $( + $($(this).data("highlight")).exists() + ? $(this).data("highlight") + : "#" + $(this).data("highlight") + ); + $($hidden_target).highlight(); + } + errorFn(this); + } + + if ( + typeof pattern == "undefined" && + /mail|url/.test(input_type) == false + ) { + return true; + } + + if (pattern) { + pattern = new RegExp(pattern); + if (!pattern.test($(this).val())) { + errorFn(this); + } + } + + if ( + input_type == "email" && + !$(this) + .val() + .isEmail() + ) { + errorFn(this); + } + }); + + if (errors) { + PF.fn.growl.expirable( + PF.fn._s("Check the errors in the form to continue.") + ); + return false; + } + }); + + // Co-combo breaker + $(document).on("change", "select[data-combo]", function () { + var $combo = $("#" + $(this).data("combo")); + + if ($combo.exists()) { + $combo.children(".switch-combo").hide(); + } + + var $combo_container = $( + "#" + + $(this) + .closest("select") + .data("combo") + ), + $combo_target = $( + "[data-combo-value~=" + $("option:selected", this).attr("value") + "]", + $combo_container + ); + + if ($combo_target.exists()) { + $combo_target + .show() + .find("[data-required]") + .each(function () { + $(this).attr("required", "required"); // re-enable any disabled required + }); + } + + // Disable [required] in hidden combos + $(".switch-combo", $combo_container).each(function () { + if ($(this).is(":visible")) return; + $("[required]", this) + .attr("data-required", true) + .removeAttr("required"); + }); + }); + + $(document).on("keyup", function (e) { + var $this = $(e.target); + var event = e.originalEvent; + if (event.key == "Escape") { + if ($(PF.obj.modal.selectors.root).is(":visible")) { + if(!$this.is(":input")) { + $( + "[data-action=cancel],[data-action=close-modal]", + PF.obj.modal.selectors.root + ) + .first() + .trigger("click"); + } else { + $this.trigger("blur"); + } + PF.fn.keyFeedback.spawn(e); + } + } + }); + + // Input events + $(document).on("change", ":input", function (e) { + PF.fn.growl.close(); + }); + $(document).on("keyup", ":input", function (e) { + $(".input-warning", $(this).closest(".input-label")).html(""); + }); + $(document).on("blur", ":input", function () { + var this_val = $.trim($(this).prop("value")); + $(this).prop("value", this_val); + }); + + $(document).on("click", "[data-focus=select-all],[data-click=select-all]", function () { + if ($(this).is(":input")) { + this.select(); + } else { + var range = document.createRange(); + range.selectNodeContents(this); + var sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(range); + } + }); + + // Input password strength + $(document).on("keyup change blur", ":input[type=password]", function () { + var password = testPassword($(this).val()), + $parent = $(this).closest("div"); + + if ($(this).val() == "") { + password.percent = 0; + password.verdict = ""; + } + + $("[data-content=password-meter-bar]", $parent) + .attr("data-veredict", password.verdict.replace(/ /g, "-")) + .width(password.percent); + $("[data-text=password-meter-message]", $parent) + .removeClass("red-warning") + .text(password.verdict !== "" ? PF.fn._s(password.verdict) : ""); + }); + + // Popup links + $(document).on("click", "[rel=popup-link], .popup-link", function (e) { + e.preventDefault(); + var href = $(this)[ + typeof $(this).attr("href") !== "undefined" ? "attr" : "data" + ]("href"); + if (typeof href == "undefined") { + return; + } + if(PF.fn.isDevice(["phone", "phablet"])) { + if (href.substring(0, 6) == "mailto") { + window.location = href; + return; + } + if (href.substring(0, 5) == "share") { + if(navigator.canShare) { + navigator.share(PF.fn.deparam(href.substring(6))); + } + return; + } + + } + PF.fn.popup({ href: href }); + }); + + /** + * MODAL + * ------------------------------------------------------------------------------------------------- + */ + + // Call plain simple HTML modal + $(document).on("click", "[data-modal=simple],[data-modal=html]", function () { + var $target = $( + "[data-modal=" + $(this).data("target") + "], #" + $(this).data("target") + ).first(); + PF.fn.modal.call({ template: $target.html(), buttons: false }); + }); + + // Prevent modal submit form since we only use the form in the modal to trigger HTML5 validation + $(document).on("submit", PF.obj.modal.selectors.root + " form", function (e) { + if ($(this).data("prevented")) return false; // Don't send the form if is prevented + if (typeof $(this).attr("method") !== "undefined") return; // Don't bind anything extra if is normal form + return false; // Prevent default form handling + }); + + // Form/editable/confirm modal + $(document).on( + "click", + "[data-modal=edit],[data-modal=form],[data-confirm]", + function (e) { + e.preventDefault(); + + var $this = $(this); + var $target; + + if ($this.is("[data-confirm]")) { + $target = $this; + PF.obj.modal.type = "confirm"; + } else { + $target = $( + "[data-modal=" + $this.data("target") + "], #" + $this.data("target") + ).first(); + + if ($target.length == 0) { + $target = $("[data-modal=form-modal], #form-modal").first(); + } + + if ($target.length == 0) { + console.log("PF Error: Modal target doesn't exists."); + } + + PF.obj.modal.type = $this.data("modal"); + } + + var args = $this.data("args"), + submit_function = window[$target.data("submit-fn")], + cancel_function = window[$target.data("cancel-fn")], + onload_function = window[$target.data("load-fn")], + submit_done_msg = $target.data("submit-done"), + ajax = { + url: + $target.data("ajax-url") || + (typeof $target.data("is-xhr") !== typeof undefined + ? PF.obj.config.json_api + : null), + deferred: window[$target.data("ajax-deferred")] + }; + + // Window functions failed? Maybe those are named fn... + if (typeof submit_function !== "function" && $target.data("submit-fn")) { + var submit_fn_split = $target.data("submit-fn").split("."); + submit_function = window; + for (var i = 0; i < submit_fn_split.length; i++) { + submit_function = submit_function[submit_fn_split[i]]; + } + } + if (typeof cancel_function !== "function" && $target.data("cancel-fn")) { + var cancel_fn_split = $target.data("cancel-fn").split("."); + cancel_function = window; + for (var i = 0; i < cancel_fn_split.length; i++) { + cancel_function = cancel_function[cancel_fn_split[i]]; + } + } + if (typeof load_function !== "function" && $target.data("load-fn")) { + var load_fn_split = $target.data("load-fn").split("."); + load_function = window; + for (var i = 0; i < load_fn_split.length; i++) { + load_function = load_function[load_fn_split[i]]; + } + } + + if (typeof ajax.deferred !== "object" && $target.data("ajax-deferred")) { + var deferred_obj_split = $target.data("ajax-deferred").split("."); + ajax.deferred = window; + for (var i = 0; i < deferred_obj_split.length; i++) { + ajax.deferred = ajax.deferred[deferred_obj_split[i]]; + } + } + + // Before fn + var fn_before = window[$target.data("before-fn")]; + if (typeof fn_before !== "function" && $target.data("before-fn")) { + var before_obj_split = $target.data("before-fn").split("."); + fn_before = window; + for (var i = 0; i < before_obj_split.length; i++) { + fn_before = fn_before[before_obj_split[i]]; + } + } + if (typeof fn_before == "function") { + fn_before(e); + } + + var inline_options = $(this).data("options") || {}; + + // Confirm modal + if ($this.is("[data-confirm]")) { + var default_options = { + message: $this.data("confirm"), + confirm: + typeof submit_function == "function" ? submit_function(args) : "", + cancel: + typeof cancel_function == "function" ? cancel_function(args) : "", + ajax: ajax + }; + + if ($this.attr("href") && default_options.confirm == "") { + default_options.confirm = function () { + return window.location.replace($this.attr("href")); + }; + } + + PF.fn.modal.confirm($.extend(default_options, inline_options)); + } else { + // Form/editable + var default_options = { + template: $target.html(), + button_submit: $(this).is("[data-modal=edit]") + ? PF.fn._s("Save changes") + : PF.fn._s("Submit"), + confirm: function () { + var form_modal_has_changed = PF.fn.form_modal_has_changed(); + + // Conventional form handling + var $form = $("form", PF.obj.modal.selectors.root); + if (typeof $form.attr("action") !== "undefined") { + $form.data("prevented", !form_modal_has_changed); + PF.fn.modal.close(); + return; + } + + // Handle the required thing for non-visible elements + $(":input[name]", $form).each(function () { + if (!$(this).is(":visible")) { + var input_attr = $(this).attr("required"); + if ( + typeof input_attr !== typeof undefined && + input_attr !== false + ) { + $(this) + .prop("required", false) + .attr("data-required", "required"); + } + } else { + if ($(this).attr("data-required") == "required") { + $(this).prop("required", true); + } + } + }); + + // Detect HTML5 validation + if (!$form[0].checkValidity()) { + return false; + } + + // Run the full function only when the form changes + if (!form_modal_has_changed && !inline_options.forced) { + PF.fn.modal.close(); + return; + } + + if (typeof submit_function == "function") + submit_fn = submit_function(args); + if (typeof submit_fn !== "undefined" && submit_fn == false) { + return false; + } + + $(":input", PF.obj.modal.selectors.root).each(function () { + $(this).val($.trim($(this).val())); + }); + + if ($this.is("[data-modal=edit]")) { + // Set the input values before cloning the html + $target.html( + $( + PF.obj.modal.selectors.body, + $(PF.obj.modal.selectors.root).bindFormData() + ) + .html() + .replace(/rel=[\'"]tooltip[\'"]/g, 'rel="template-tooltip"') + ); + } + + if (typeof ajax.url !== "undefined") { + return true; + } else { + PF.fn.modal.close(function () { + if (typeof submit_done_msg !== "undefined") { + PF.fn.growl.expirable( + submit_done_msg !== "" + ? submit_done_msg + : PF.fn._s("Changes saved successfully.") + ); + } + }); + } + }, + cancel: function () { + if (typeof cancel_fn == "function") cancel_fn = cancel_fn(); + if (typeof cancel_fn !== "undefined" && cancel_fn == false) { + return false; + } + // nota: falta template aca + if ( + $target.data("prompt") != "skip" && + PF.fn.form_modal_has_changed() + ) { + if ($(PF.obj.modal.selectors.changes_confirm).exists()) return; + $(PF.obj.modal.selectors.box, PF.obj.modal.selectors.root) + .css({ transition: "none" }) + .hide(); + $(PF.obj.modal.selectors.root).append( + '<div id="' + + PF.obj.modal.selectors.changes_confirm.replace("#", "") + + '"><div class="content-width"><h2>' + + '<i class="fas fa-exclamation-triangle"></i> ' + + PF.fn._s( + "All the changes that you have made will be lost if you continue." + ) + + '</h2><div class="' + + PF.obj.modal.selectors.btn_container.replace(".", "") + + ' margin-bottom-0"><button class="btn btn-input default" data-action="cancel">' + + '<i class="fas fa-chevron-circle-left btn-icon"></i>'+ + '<span class="btn-text">' + + PF.fn._s("Go back to form") + + '</span>' + + '</button> <span class="btn-alt">' + + PF.fn._s("or") + + ' <a data-action="submit"><i class="fas fa-check margin-right-5"></i>' + + PF.fn._s("continue anyway") + + "</a></span></div></div>" + ); + $(PF.obj.modal.selectors.changes_confirm) + .css( + "margin-top", + -$(PF.obj.modal.selectors.changes_confirm).outerHeight(true) / + 2 + ) + .hide() + .fadeIn("fast"); + } else { + PF.fn.modal.close(); + if (window.location.hash == "#edit") window.location.hash = ""; + } + }, + load: function () { + if (typeof load_function == "function") load_function(); + }, + callback: function () { }, + ajax: ajax + }; + PF.fn.modal.call($.extend(default_options, inline_options)); + } + } + ); + + if (!PF.fn.is_user_logged()) { + $("[data-login-needed]:input, [data-user-logged=must]:input").each( + function () { + $(this).attr("readonly", true); + } + ); + } + + $(document).on("keydown", "html", function (e) { + var $this = $(e.target), + event = e.originalEvent; + if (event.key === 'Escape') { + PF.fn.growl.close(); + return; + } + var submit = event.key === 'Enter' && (event.ctrlKey || event.metaKey); + var $inputEnabledEnter = $this.is(":input.search, textarea") || $this.closest(".input-with-button").exists(); + if(!$inputEnabledEnter && $this.is(":input") && event.key === 'Enter' && !submit) { + e.stopPropagation(); + e.preventDefault(); + return; + } + if($(PF.obj.modal.selectors.root).exists()) { + if(!submit && event.key === 'Enter' && $("[data-action=submit]", PF.obj.modal.selectors.root).exists() && !$this.is(".prevent-submit")) { + submit = true; + } + if(!submit) { + return; + } + $("[data-action=submit]", PF.obj.modal.selectors.root).trigger("click"); + } else { + if(submit) { + var $form = $this.is(":input") + ? $this.closest("form") + : $("form", ".form-content:visible").first(); + $form.trigger("submit"); + } + } + if(submit) { + PF.fn.keyFeedback.spawn(e); + } + }); + + // Trigger modal edit on hash #edit + // It must be placed after the event listener + if (window.location.hash && window.location.hash == "#edit") { + $("[data-modal=edit]") + .first() + .click(); + } + + /** + * MOBILE TOP BAR MENU + * ------------------------------------------------------------------------------------------------- + */ + $(document).on("click", "#menu-fullscreen .fullscreen, [data-action=top-bar-menu-full]", function (e) { + if($(e.target).is("#pop-box-mask")) { + return; + } + var hasClass = $("[data-action=top-bar-menu-full]", "#top-bar").hasClass( + "current" + ); + PF.fn.topMenu[hasClass ? "hide" : "show"](); + if(Boolean(window.navigator.vibrate)) { + var pattern = !hasClass ? [15, 200, 25, 125, 15] : [15, 200, 15]; + window.navigator.vibrate(0); + window.navigator.vibrate(pattern); + } + }); + + /** + * SEARCH INPUT + * ------------------------------------------------------------------------------------------------- + */ + + // Top-search feature + $(document).on("click", "[data-action=top-bar-search]", function () { + $("[data-action=top-bar-search-input]", ".top-bar") + .removeClass("hidden") + .show(); + $("[data-action=top-bar-search-input]:visible input") + .first() + .focus(); + if ( + is_ios() && + !$(this) + .closest(PF.fn.topMenu.vars.menu) + .exists() + ) { + $(".top-bar").css("position", "absolute"); + } + $("[data-action=top-bar-search]", ".top-bar").hide(); + }); + + // Search icon click -> focus input + $(document).on("click", ".input-search .icon--search", function (e) { + $("input", e.currentTarget.offsetParent).focus(); + }); + + // Clean search input + $(document).on( + "click", + ".input-search .icon--close, .input-search [data-action=clear-search]", + function (e) { + var $input = $("input", e.currentTarget.offsetParent); + + if ($input.val() == "") { + if ( + $(this) + .closest("[data-action=top-bar-search-input]") + .exists() + ) { + $("[data-action=top-bar-search-input]", ".top-bar").hide(); + $("[data-action=top-bar-search]", ".top-bar") + .removeClass("opened") + .show(); + } + } else { + if ( + !$(this) + .closest("[data-action=top-bar-search-input]") + .exists() + ) { + $(this).hide(); + } + $input.val("").change(); + } + } + ); + + // Input search clear search toggle + $(document).on("keyup change", "input.search", function (e) { + var $input = $(this), + $div = $(this).closest(".input-search"); + if ( + !$(this) + .closest("[data-action=top-bar-search-input]") + .exists() + ) { + var todo = $input.val() == "" ? "hide" : "show"; + $(".icon--close, [data-action=clear-search]", $div)[todo](); + } + }); + + /** + * POP BOXES (MENUS) + * ------------------------------------------------------------------------------------------------- + */ + $(document) + .on("click mouseenter", ".pop-btn", function (e) { + if ( + PF.fn.isDevice(["phone", "phablet"]) && + (e.type == "mouseenter" || $(this).hasClass("pop-btn-desktop")) + ) { + return; + } + + var $this_click = $(e.target); + var $pop_btn; + var $pop_box; + var devices = $.makeArray(["phone", "phablet"]); + var $this = $(this); + + if (e.type == "mouseenter" && !$(this).hasClass("pop-btn-auto")) return; + if ( + $(this).hasClass("disabled") || + ($this_click.closest(".current").exists() && + !PF.fn.isDevice("phone") && + !$this_click.closest(".pop-btn-show").exists()) + ) { + return; + } + + PF.fn.growl.close(); + + e.stopPropagation(); + + $pop_btn = $(this); + $pop_box = $(".pop-box", $pop_btn); + $pop_btn.addClass("opened"); + + $(".pop-box-inner", $pop_box).css("max-height", ""); + + if (PF.fn.isDevice(devices)) { + var textButton = $(".pop-btn-text,.btn-text,.text", $pop_btn) + .first().text(); + var iconButton = $(".pop-btn-icon,.btn-icon,.icon", $pop_btn)[0].outerHTML; + if (!$(".pop-box-header", $pop_box).exists()) { + $pop_box.prepend( + $("<div/>", { + class: "pop-box-header", + html: iconButton + ' ' + textButton + '<span class="btn-icon icon--close fas fa-times"></span></span>' + }), + $("<div/>", { + class: "hidden phone-show phablet-show or-separator margin-top-0 margin-bottom-0", + }) + ); + } + } else { + $(".pop-box-header", $pop_box).remove(); + $pop_box.css({ bottom: "" }); + } + if ( + $pop_box.hasClass("anchor-center") && + typeof $pop_box.data("guidstr") == typeof undefined + ) { + if (!PF.fn.isDevice(devices)) { + $pop_box.css("margin-left", -($pop_box.width() / 2)); + } else { + $pop_box.css("margin-left", ""); + } + } + + // Pop button changer + if ($this_click.is("[data-change]")) { + $("li", $pop_box).removeClass("current"); + $this_click.closest("li").addClass("current"); + $("[data-text-change]", $pop_btn).text( + $("li.current a", $pop_box).text() + ); + e.preventDefault(); + } + + if (!$pop_box.exists()) return; + + var $this = e.istriggered ? $(e.target) : $(this); + if ( + $pop_box.is(":visible") && + $(e.target) + .closest(".pop-box-inner") + .exists() && + ($this.hasClass("pop-keep-click")) + ) { + return; + } + + $(".pop-box:visible") + .not($pop_box) + .hide() + .closest(".pop-btn") + .removeClass("opened"); + + var callback = function ($pop_box) { + if (!$pop_box.is(":visible")) { + var guidstr = $pop_box.attr("data-guidstr"); + $pop_box + .css("marginLeft", "") + .removeClass(guidstr) + .removeAttr("data-guidstr") + .closest(".pop-btn") + .removeClass("opened"); + if (typeof guidstr !== typeof undefined) { + $("style#" + guidstr).remove(); + } + } else { + if (!PF.fn.isDevice(devices)) { + var posMargin = $pop_box.css("marginLeft"); + if (typeof posMargin !== typeof undefined) { + posMargin = parseFloat(posMargin); + $pop_box.css("marginLeft", ""); + } + var cutoff = $pop_box.getWindowCutoff(); + if ( + cutoff && + (cutoff.left || cutoff.right) && + cutoff.right < posMargin + ) { + var guidstr = "guid-" + PF.fn.guid(); + $pop_box + .css("marginLeft", cutoff.right + "px") + .addClass(guidstr) + .attr("data-guidstr", guidstr); + var posArrow = + $this.outerWidth() / 2 + + $this.offset().left - + $pop_box.offset().left; + var selectors = []; + $.each(["top", "bottom"], function (i, v) { + $.each(["after", "before"], function (ii, vv) { + selectors.push("." + guidstr + ".arrow-box-" + v + ":" + vv); + }); + }); + $( + '<style id="' + + guidstr + + '">' + + selectors.join() + + " { left: " + + posArrow + + "px; }</style>" + ).appendTo("head"); + } else { + $pop_box.css("marginLeft", posMargin + "px"); + } + $(".antiscroll-wrap:not(.jsly):visible", $pop_box) + .addClass("jsly") + .antiscroll(); + } else { + $(".antiscroll-inner", $pop_box).height("100%"); + } + } + }; + + if (PF.fn.isDevice(devices)) { + if ($(this).is("[data-action=top-bar-notifications]")) { + $pop_box.css({ height: $(window).height() }); + } + var pop_box_h = $pop_box.height() + "px"; + var menu_top = + parseInt($(".top-bar").outerHeight()) + + parseInt($(".top-bar").css("top")) + + parseInt($(".top-bar").css("margin-top")) + + parseInt($(".top-bar").css("margin-bottom")) + + "px"; + if ($pop_box.is(":visible")) { + $("#pop-box-mask").css({ opacity: 0 }); + $pop_box.css({ transform: "none" }); + if ($this.closest(PF.fn.topMenu.vars.menu).exists()) { + $(".top-bar").css({ transform: "none" }); + } + setTimeout(function () { + $pop_box.hide().attr("style", ""); + $("#pop-box-mask").remove(); + callback($pop_box); + if ($this.closest(PF.fn.topMenu.vars.menu).exists()) { + $(PF.fn.topMenu.vars.menu).css({ + height: "" + }); + $(PF.fn.topMenu.vars.menu).animate( + { scrollTop: PF.fn.topMenu.vars.scrollTop }, + PF.obj.config.animation.normal / 2 + ); + } + if (!$("body").data("hasOverflowHidden")) { + var removeClasses = "pop-box-show pop-box-show--top"; + if(!$(PF.obj.modal.selectors.root).exists()) { + removeClasses += " overflow-hidden"; + } + $("body").removeClass(removeClasses); + } + $pop_box.find(".pop-box-inner").css("height", ""); + }, PF.obj.config.animation.normal); + } else { + $("#pop-box-mask").remove(); + $pop_box.parent().prepend( + $("<div/>", { + id: "pop-box-mask", + class: "fullscreen black" + }).css({ + zIndex: 400, + display: "block" + }) + ); + PF.fn.topMenu.vars.scrollTop = $(PF.fn.topMenu.vars.menu).scrollTop(); + setTimeout(function () { + $("#pop-box-mask").css({ opacity: 1 }); + setTimeout(function () { + $pop_box.show().css({ + bottom: "-" + pop_box_h, + maxHeight: "100%", + zIndex: 1000, + transform: "translate(0,0)" + }); + setTimeout(function() { + $pop_box.find(".pop-box-inner").scrollTop(0) + }, 1) + + setTimeout(function () { + $pop_box.css({ transform: "translate(0,-" + pop_box_h + ")" }); + }, 1); + + setTimeout(function () { + callback($pop_box); + }, PF.obj.config.animation.normal); + + if ($("body").hasClass("overflow-hidden")) { + $("body").data("hasOverflowHidden", 1); + } else { + $("body").addClass( + "overflow-hidden " + + ($this.closest('.top-bar').exists() + ? 'pop-box-show--top' + : 'pop-box-show') + ); + } + + $(".pop-box-inner", $pop_box).css( + "height", + $pop_box.height() - + $(".pop-box-header", $pop_box).outerHeight(true) + ); + }, 1); + }, 1); + } + } else { + $pop_box[$pop_box.is(":visible") ? "hide" : "show"](0, function () { + callback($pop_box); + }); + } + }) + .on("mouseleave", ".pop-btn", function () { + if (!PF.fn.isDevice(["laptop", "desktop"])) { + return; + } + var $pop_btn = $(this), + $pop_box = $(".pop-box", $pop_btn); + + if ( + !$pop_btn.hasClass("pop-btn-auto") || + (PF.fn.isDevice(["phone", "phablet"]) && + $pop_btn.hasClass("pop-btn-auto")) + ) { + return; + } + + $pop_box + .hide() + .closest(".pop-btn") + .removeClass("opened"); + }); + + /** + * TABS + * ------------------------------------------------------------------------------------------------- + */ + + // Hash on load (static tabs) changer + if (window.location.hash) { + /* + var $hash_node = $("[href="+ window.location.hash +"]"); + + if($hash_node.exists()) { + $.each($("[href="+ window.location.hash +"]")[0].attributes, function(){ + PF.obj.tabs.hashdata[this.name] = this.value; + }); + PF.obj.tabs.hashdata.pushed = "tabs"; + History.replaceState({ + href: window.location.hash, + "data-tab": $("[href="+ window.location.hash +"]").data("tab"), + pushed: "tabs", + statenum: 0 + }, null, null); + } + */ + } + + // Stock tab onload data + if ($(".content-tabs").exists() /* && !window.location.hash*/) { + var $tab = $("a", ".content-tabs .current"); + History.replaceState( + { + href: $tab.attr("href"), + "data-tab": $tab.data("tab"), + pushed: "tabs", + statenum: 0 + }, + null, + null + ); + } + + // Keep scroll position (history.js) + var State = History.getState(); + if (typeof State.data == "undefined") { + History.replaceState( + { scrollTop: 0 }, + document.title, + window.location.href + ); // Stock initial scroll + } + History.Adapter.bind(window, "popstate", function () { + var State = History.getState(); + if (State.data && typeof State.data.scrollTop !== "undefined") { + if ($(window).scrollTop() !== State.data.scrollTop) { + $(window).scrollTop(State.data.scrollTop); + } + } + return; + }); + + // Toggle tab display + $("a", ".content-tabs").on("click", function (e) { + if ($(this).data("link") == true) { + $(this).data("tab", false); + } + + if ( + $(this) + .closest(".current,.disabled") + .exists() + ) { + e.preventDefault(); + return; + } + if (typeof $(this).data("tab") == "undefined") return; + + var dataTab = {}; + $.each(this.attributes, function () { + dataTab[this.name] = this.value; + }); + dataTab.pushed = "tabs"; + + if ($("#" + dataTab["data-tab"]).data("load") != "classic") { + if (window.location.hash) { + var url = window.location.href; + url = url.replace(window.location.hash, ""); + } + History.pushState( + dataTab, + document.title, + typeof url !== "undefined" ? url : $(this).attr("href") + ); + e.preventDefault(); + } + + var $tab_menu = $("[data-action=tab-menu]", $(this).closest(".header")); + + $tab_menu.find("[data-content=current-tab-label]").text($(this).text()); + $tab_menu.find('[data-content="tab-icon"]').attr("class", "").addClass( + $(this).find(".btn-icon").attr("class") + ); + + if ($tab_menu.is(":visible")) { + $tab_menu.click(); + } + }); + + $(document).on("click", "[data-action=tab-menu]", function () { + var $tabs = $(this) + .closest(".header") + .find(".content-tabs"), + visible = $tabs.is(":visible"), + wrap = $tabs.closest('.content-tabs-wrap'); + $this = $(this); + wrap.css("display", visible ? "" : "block"); + $this.toggleClass('--hide', visible); + if (!visible) { + $tabs.data("classes", $tabs.attr("class")); + $tabs.removeClass(function (index, css) { + return (css.match(/\b\w+-hide/g) || []).join(" "); + }); + // $tabs.hide(); + } + if (!visible) { + $this.removeClass("current"); + } + // $tabs[visible ? "hide" : "show"](); + if (visible) { + $tabs.css("display", "").addClass($tabs.data("classes")); + $this.addClass("current"); + } + }); + + // On state change bind tab changes + $(window).bind("statechange", function (e) { + PF.fn.growl.close(); + var dataTab; + dataTab = History.getState().data; + if (dataTab && dataTab.pushed == "tabs") { + PF.fn.show_tab(dataTab["data-tab"]); + } + }); + + /** + * LISTING + * ------------------------------------------------------------------------------------------------- + */ + + // Stock the scroll position on list element click + $(document).on("click", PF.obj.listing.selectors.list_item + " a", function (e) { + if ($(this).attr("src") == "") return; + History.replaceState( + { scrollTop: $(window).scrollTop() }, + document.title, + window.location.href + ); + }); + + // Load more (listing +1 page) + $(document).on("click", "[data-action=load-more]", function (e) { + if (PF.obj.listing.lockClickMore) { + return; + } + PF.obj.listing.lockClickMore = true; + $(this) + .closest(".content-listing-more") + .hide(); + + if ( + !PF.fn.is_listing() || + $(this) + .closest(PF.obj.listing.selectors.content_listing) + .is(":hidden") || + $(this) + .closest("#content-listing-template") + .exists() || + PF.obj.listing.calling + ) + return; + + PF.fn.listing.queryString.stock_new(); + PF.obj.listing.query_string.seek = $(this).attr("data-seek"); + PF.obj.listing.query_string.page = $( + PF.obj.listing.selectors.content_listing_visible + ).data("page"); + PF.obj.listing.query_string.page++; + + PF.fn.listing.ajax(); + e.preventDefault(); + }); + + // List found on load html -> Do the columns! + if ($(PF.obj.listing.selectors.list_item).length > 0) { + PF.fn.listing.show(); + + // Bind the infinte scroll + $(window).scroll(function () { + var $loadMore = $( + PF.obj.listing.selectors.content_listing_load_more, + PF.obj.listing.selectors.content_listing_visible + ).find("button[data-action=load-more]"); + var toScroll = $(document).height() - $(window).height() - 1.5 * document.documentElement.clientHeight; + if ( + $loadMore.length > 0 && + $(window).scrollTop() > toScroll && + PF.obj.listing.calling == false + ) { + $loadMore.click(); + } + }); + } else { + $(PF.obj.listing.selectors.content_listing + ".visible").addClass("jsly"); + } + + // Multi-selection tools + $(document).on( + "click", + PF.obj.modal.selectors.root + " [data-switch]", + function () { + var $this_modal = $(this).closest(PF.obj.modal.selectors.root); + $("[data-view=switchable]", $this_modal).hide(); + $("#" + $(this).attr("data-switch"), $this_modal).show(); + } + ); + + $(document).on("click", "[data-toggle]", function () { + var $target = $("[data-content=" + $(this).data("toggle") + "]"); + var show = !$target.is(":visible"); + $(this).html($(this).data("html-" + (show ? "on" : "off"))); + $target.toggle(); + }); + + // Cookie law thing + $(document).on("click", "[data-action=cookie-law-close]", function () { + var $cookie = $(this).closest("#cookie-law-banner"); + var cookieName = + typeof $cookie.data("cookie") !== typeof undefined + ? $cookie.data("cookie") + : "PF_COOKIE_LAW_DISPLAY"; + Cookies.set(cookieName, 0, { expires: 365 }); + $cookie.remove(); + }); + + Clipboard = new Clipboard("[data-action=copy]", { + text: function (trigger) { + var $target = $(trigger.getAttribute("data-action-target")); + var text = $target.is(":input") ? $target.val() : $target.text(); + return text.trim(); + } + }); + Clipboard.on("success", function (e) { + var $target = $(e.trigger.getAttribute("data-action-target")); + $target.highlight(); + e.clearSelection(); + }); +}); + +/** + * PEAFOWL OBJECT + * ------------------------------------------------------------------------------------------------- + */ +var PF = { fn: {}, str: {}, obj: {} }; + +/** + * PEAFOWL CONFIG + * ------------------------------------------------------------------------------------------------- + */ +PF.obj.config = { + base_url: "", + json_api: "/json/", + listing: { + items_per_page: 24 + }, + animation: { + easingFn: "ease", + normal: 400, + fast: 250 + } +}; + +/** + * WINDOW VARS + * ------------------------------------------------------------------------------------------------- + */ + +/** + * LANGUAGE FUNCTIONS + * ------------------------------------------------------------------------------------------------- + */ +PF.obj.l10n = {}; + +/** + * Get lang string by key + * @argument string (lang key string) + */ +// pf: get_pf_lang +PF.fn._s = function (string, s) { + var string; + if (typeof string == "undefined") { + return string; + } + if ( + typeof PF.obj.l10n !== "undefined" && + typeof PF.obj.l10n[string] !== "undefined" + ) { + string = PF.obj.l10n[string][0]; + if (typeof string == "undefined") { + string = string; + } + } else { + string = string; + } + string = string.toString(); + if (typeof s !== "undefined") { + string = sprintf(string, s); + } + return string; +}; + +PF.fn._n = function (singular, plural, n) { + var string; + if ( + typeof PF.obj.l10n !== "undefined" && + typeof PF.obj.l10n[singular] !== "undefined" + ) { + string = PF.obj.l10n[singular][n == 1 ? 0 : 1]; + } else { + string = n == 1 ? singular : plural; + } + string = typeof string == "undefined" ? singular : string.toString(); + if (typeof n !== "undefined") { + string = sprintf(string, n); + } + return string; +}; + +/** + * Extend Peafowl lang + * Useful to add or replace strings + * @argument strings obj + */ +// pf: extend_pf_lang +PF.fn.extend_lang = function (strings) { + $.each(PF.obj.lang_strings, function (i, v) { + if (typeof strings[i] !== "undefined") { + $.extend(PF.obj.lang_strings[i], strings[i]); + } + }); +}; + +/** + * HELPER FUNCTIONS + * ------------------------------------------------------------------------------------------------- + */ + +PF.fn.get_url_vars = function () { + var match, + pl = /\+/g, // Regex for replacing addition symbol with a space + search = /([^&=]+)=?([^&]*)/g, + decode = function (s) { + return decodeURIComponent(escape(s.replace(pl, " "))); + }, + query = window.location.search.substring(1), + urlParams = {}; + + while ((match = search.exec(query))) { + urlParams[decode(match[1])] = decode(match[2]); + } + + return urlParams; +}; + +PF.fn.get_url_var = function (name) { + return PF.fn.get_url_vars()[name]; +}; + +PF.fn.is_user_logged = function () { + return $("#top-bar-user").exists(); // nota: default version + // It should use backend conditional +}; + +PF.fn.generate_random_string = function (len) { + if (typeof len == "undefined") len = 5; + var text = ""; + var possible = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (var i = 0; i < len; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; +}; + +PF.fn.getDateTime = function () { + var now = new Date(); + var year = now.getFullYear(); + var month = now.getMonth() + 1; + var day = now.getDate(); + var hour = now.getHours(); + var minute = now.getMinutes(); + var second = now.getSeconds(); + if (month.toString().length == 1) { + var month = "0" + month; + } + if (day.toString().length == 1) { + var day = "0" + day; + } + if (hour.toString().length == 1) { + var hour = "0" + hour; + } + if (minute.toString().length == 1) { + var minute = "0" + minute; + } + if (second.toString().length == 1) { + var second = "0" + second; + } + var dateTime = + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second; + return dateTime; +}; + +PF.fn.htmlEncode = function (value) { + return $("<div/>") + .text($.trim(value)) + .html(); +}; + +PF.fn.htmlDecode = function (value) { + return $("<div/>") + .html($.trim(value)) + .text(); +}; + +PF.fn.nl2br = function (str) { + var breakTag = "<br>"; + return (str + "").replace( + /([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, + "$1" + breakTag + "$2" + ); +}; + +// https://raw.githubusercontent.com/johndwells/phpjs/master/functions/info/version_compare.js +PF.fn.versionCompare = function (v1, v2, operator) { + this.php_js = this.php_js || {}; + this.php_js.ENV = this.php_js.ENV || {}; + // END REDUNDANT + // Important: compare must be initialized at 0. + var i = 0, + x = 0, + compare = 0, + // vm maps textual PHP versions to negatives so they're less than 0. + // PHP currently defines these as CASE-SENSITIVE. It is important to + // leave these as negatives so that they can come before numerical versions + // and as if no letters were there to begin with. + // (1alpha is < 1 and < 1.1 but > 1dev1) + // If a non-numerical value can't be mapped to this table, it receives + // -7 as its value. + vm = { + dev: -6, + alpha: -5, + a: -5, + beta: -4, + b: -4, + RC: -3, + rc: -3, + "#": -2, + p: 1, + pl: 1 + }, + // This function will be called to prepare each version argument. + // It replaces every _, -, and + with a dot. + // It surrounds any nonsequence of numbers/dots with dots. + // It replaces sequences of dots with a single dot. + // version_compare('4..0', '4.0') == 0 + // Important: A string of 0 length needs to be converted into a value + // even less than an unexisting value in vm (-7), hence [-8]. + // It's also important to not strip spaces because of this. + // version_compare('', ' ') == 1 + prepVersion = function (v) { + v = ("" + v).replace(/[_\-+]/g, "."); + v = v.replace(/([^.\d]+)/g, ".$1.").replace(/\.{2,}/g, "."); + return !v.length ? [-8] : v.split("."); + }; + // This converts a version component to a number. + // Empty component becomes 0. + // Non-numerical component becomes a negative number. + // Numerical component becomes itself as an integer. + numVersion = function (v) { + return !v ? 0 : isNaN(v) ? vm[v] || -7 : parseInt(v, 10); + }; + v1 = prepVersion(v1); + v2 = prepVersion(v2); + x = Math.max(v1.length, v2.length); + for (i = 0; i < x; i++) { + if (v1[i] == v2[i]) { + continue; + } + v1[i] = numVersion(v1[i]); + v2[i] = numVersion(v2[i]); + if (v1[i] < v2[i]) { + compare = -1; + break; + } else if (v1[i] > v2[i]) { + compare = 1; + break; + } + } + if (!operator) { + return compare; + } + + // Important: operator is CASE-SENSITIVE. + // "No operator" seems to be treated as "<." + // Any other values seem to make the function return null. + switch (operator) { + case ">": + case "gt": + return compare > 0; + case ">=": + case "ge": + return compare >= 0; + case "<=": + case "le": + return compare <= 0; + case "==": + case "=": + case "eq": + return compare === 0; + case "<>": + case "!=": + case "ne": + return compare !== 0; + case "": + case "<": + case "lt": + return compare < 0; + default: + return null; + } +}; + +/** + * Basename + * http://stackoverflow.com/questions/3820381/need-a-basename-function-in-javascript + */ +PF.fn.baseName = function (str) { + var base = new String(str).substring(str.lastIndexOf("/") + 1); + if (base.lastIndexOf(".") != -1) { + base = base.substring(0, base.lastIndexOf(".")); + } + return base; +}; + +// https://stackoverflow.com/a/8809472 +PF.fn.guid = function () { + var d = new Date().getTime(); + if ( + typeof performance !== "undefined" && + typeof performance.now === "function" + ) { + d += performance.now(); //use high-precision timer if available + } + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { + var r = (d + Math.random() * 16) % 16 | 0; + d = Math.floor(d / 16); + return (c === "x" ? r : (r & 0x3) | 0x8).toString(16); + }); +}; + +PF.fn.md5 = function (string) { + return SparkMD5.hash(string); +}; + +/** + * dataURI to BLOB + * http://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata + */ +PF.fn.dataURItoBlob = function (dataURI) { + // convert base64/URLEncoded data component to raw binary data held in a string + var byteString; + if (dataURI.split(",")[0].indexOf("base64") >= 0) { + byteString = atob(dataURI.split(",")[1]); + } else { + byteString = unescape(dataURI.split(",")[1]); + } + // separate out the mime component + var mimeString = dataURI + .split(",")[0] + .split(":")[1] + .split(";")[0]; + // write the bytes of the string to a typed array + var ia = new Uint8Array(byteString.length); + for (var i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i); + } + return new Blob([ia], { type: mimeString }); +}; + +PF.fn.clean_facebook_hash = function () { + if (window.location.hash == "#_=_") { + window.location.hash = ""; + } +}; +PF.fn.clean_facebook_hash(); + +/** + * Get the min and max value from 1D array + */ +Array.min = function (array) { + return Math.min.apply(Math, array); +}; +Array.max = function (array) { + return Math.max.apply(Math, array); +}; + +/** + * Return the sum of all the values in a 1D array + */ +Array.sum = function (array) { + return array.reduce(function (pv, cv) { + return cv + pv; + }); +}; + +/** + * Return the size of an object + */ +Object.size = function (obj) { + var size = 0, + key; + for (key in obj) { + if (obj.hasOwnProperty(key)) size++; + } + return size; +}; + +/** + * Flatten an object + */ +Object.flatten = function (obj, prefix) { + if (typeof prefix == "undefined") var prefix = ""; + + var result = {}; + + $.each(obj, function (key, value) { + if (!value) return; + if (typeof value == "object") { + result = $.extend({}, result, Object.flatten(value, prefix + key + "_")); + } else { + result[prefix + key] = value; + } + }); + + return result; +}; + +/** + * Tells if the string is a number or not + */ +String.prototype.isNumeric = function () { + return !isNaN(parseFloat(this)) && isFinite(this); +}; + +/** + * Repeats an string + */ +String.prototype.repeat = function (num) { + return new Array(num + 1).join(this); +}; + +/** + * Ucfirst + */ +String.prototype.capitalizeFirstLetter = function () { + return this.charAt(0).toUpperCase() + this.slice(1); +}; + +/** + * Replace all + */ +String.prototype.replaceAll = function (search, replacement) { + var target = this; + return target.replace(new RegExp(search, "g"), replacement); +}; + +/** + * Tells if the string is a email or not + */ +String.prototype.isEmail = function () { + var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; + return regex.test(this); +}; + +// http://phpjs.org/functions/round/ +String.prototype.getRounded = function (precision, mode) { + var m, f, isHalf, sgn; // helper variables + precision |= 0; // making sure precision is integer + m = Math.pow(10, precision); + value = this; + value *= m; + sgn = (value > 0) | -(value < 0); // sign of the number + isHalf = value % 1 === 0.5 * sgn; + f = Math.floor(value); + + if (isHalf) { + switch (mode) { + case "PHP_ROUND_HALF_DOWN": + value = f + (sgn < 0); // rounds .5 toward zero + break; + case "PHP_ROUND_HALF_EVEN": + value = f + (f % 2) * sgn; // rouds .5 towards the next even integer + break; + case "PHP_ROUND_HALF_ODD": + value = f + !(f % 2); // rounds .5 towards the next odd integer + break; + default: + value = f + (sgn > 0); // rounds .5 away from zero + } + } + + return (isHalf ? value : Math.round(value)) / m; +}; + +/** + * Return bytes from Size + Suffix like "10 MB" + */ +String.prototype.getBytes = function () { + var units = ["KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], + suffix = this.toUpperCase().substr(-2); + if (units.indexOf(suffix) == -1) { + return this; + } + var pow_factor = units.indexOf(suffix) + 1; + return parseFloat(this) * Math.pow(1000, pow_factor); +}; + +/** + * Return size formatted from size bytes + */ +String.prototype.formatBytes = function (round) { + var bytes = parseInt(this), + units = ["KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; + if (!$.isNumeric(this)) { + return false; + } + if (bytes < 1000) return bytes + " B"; + if (typeof round == "undefined") var round = 2; + for (var i = 0; i < units.length; i++) { + var multiplier = Math.pow(1000, i + 1), + threshold = multiplier * 1000; + if (bytes < threshold) { + var size = bytes / multiplier; + return this.getRounded.call(size, round) + " " + units[i]; + } + } +}; + +/** + * Returns the image url.matches (multiple) + */ +String.prototype.match_image_urls = function () { + return this.match( + /\b(?:(http[s]?|ftp[s]):\/\/)?([^:\/\s]+)(:[0-9]+)?((?:\/\w+)*\/)([\w\-\.]+[^#?\s]+)([^#\s]*)?(#[\w\-]+)?\.(?:jpe?g|gif|png|bmp|webp)\b/gim + ); +}; + +String.prototype.match_urls = function () { + return this.match( + /\b(?:(http[s]?|ftp[s]):\/\/)?([^:\/\s]+)(:[0-9]+)?((?:\/\w+)*\/)([\w\-\.]+[^#?\s]+)([^#\s]*)?(#[\w\-]+)?\b/gim + ); +}; + +// Add ECMA262-5 Array methods if not supported natively +if (!("indexOf" in Array.prototype)) { + Array.prototype.indexOf = function (find, i /*opt*/) { + if (i === undefined) i = 0; + if (i < 0) i += this.length; + if (i < 0) i = 0; + for (var n = this.length; i < n; i++) { + if (i in this && this[i] === find) { + return i; + } + } + return -1; + }; +} + +/** + * Removes all the array duplicates without loosing the array order. + */ +Array.prototype.array_unique = function () { + var result = []; + $.each(this, function (i, e) { + if ($.inArray(e, result) == -1) result.push(e); + }); + return result; +}; + +PF.fn.deparam = function (querystring) { + if (typeof querystring == "undefined" || !querystring) return; + // Get rid of the URL part + var querystring = querystring.substring(querystring.indexOf("?") + 1); + var obj = {}, + pairs = querystring + .replace(/^[\?|&]*/, "") + .replace(/[&|\?]*$/, "") + .split("&"); + for (var i = 0; i < pairs.length; i++) { + var split = pairs[i].split("="); + var key = decodeURIComponent(split[0]); + var value = split[1] ? decodeURIComponent(split[1]) : null; + // Aready in the object? + if (obj.hasOwnProperty(key) && !value) { + continue; + } + obj[key] = value; + } + return obj; +}; + +// http://stackoverflow.com/a/1634841/1145912 +String.prototype.removeURLParameter = function (key) { + var url = "", + deparam = PF.fn.deparam(this); + if (typeof deparam[key] !== "undefined") { + delete deparam[key]; + } + return decodeURIComponent($.param(deparam)); +}; + +String.prototype.changeURLParameterValue = function (key, value) { + var base = this.substring(0, this.indexOf("?")); + var res = ""; + var deparam = PF.fn.deparam(this); + if (typeof deparam[key] !== "undefined") { + deparam[key] = value; + } + return base + "?" + decodeURIComponent($.param(deparam)); +}; + +/** + * Truncate the middle of the URL just like Firebug + * From http://stackoverflow.com/questions/10903002/shorten-url-for-display-with-beginning-and-end-preserved-firebug-net-panel-st + */ +String.prototype.truncate_middle = function (l) { + var l = typeof l != "undefined" ? l : 40, + chunk_l = l / 2, + url = this.replace(/https?:\/\//g, ""); + + if (url.length <= l) { + return url; + } + + function shortString(s, l, reverse) { + var stop_chars = [" ", "/", "&"], + acceptable_shortness = l * 0.8, // When to start looking for stop characters + reverse = typeof reverse != "undefined" ? reverse : false, + s = reverse + ? s + .split("") + .reverse() + .join("") + : s, + short_s = ""; + + for (var i = 0; i < l - 1; i++) { + short_s += s[i]; + if (i >= acceptable_shortness && stop_chars.indexOf(s[i]) >= 0) { + break; + } + } + if (reverse) { + return short_s + .split("") + .reverse() + .join(""); + } + return short_s; + } + + return ( + shortString(url, chunk_l, false) + "..." + shortString(url, chunk_l, true) + ); +}; + +/** + * Compare 2 arrays/objects + * http://stackoverflow.com/questions/1773069/using-jquery-to-compare-two-arrays + */ +jQuery.extend({ + compare: function (a, b) { + var obj_str = "[object Object]", + arr_str = "[object Array]", + a_type = Object.prototype.toString.apply(a), + b_type = Object.prototype.toString.apply(b); + if (a_type !== b_type) { + return false; + } else if (a_type === obj_str) { + return $.compareObject(a, b); + } else if (a_type === arr_str) { + return $.compareArray(a, b); + } + return a === b; + }, + compareArray: function (arrayA, arrayB) { + var a, b, i, a_type, b_type; + if (arrayA === arrayB) { + return true; + } + if (arrayA.length != arrayB.length) { + return false; + } + a = jQuery.extend(true, [], arrayA); + b = jQuery.extend(true, [], arrayB); + a.sort(); + b.sort(); + for (i = 0, l = a.length; i < l; i += 1) { + a_type = Object.prototype.toString.apply(a[i]); + b_type = Object.prototype.toString.apply(b[i]); + if (a_type !== b_type) { + return false; + } + if ($.compare(a[i], b[i]) === false) { + return false; + } + } + return true; + }, + compareObject: function (objA, objB) { + var i, a_type, b_type; + // Compare if they are references to each other + if (objA === objB) { + return true; + } + if (Object.keys(objA).length !== Object.keys(objB).length) { + return false; + } + for (i in objA) { + if (objA.hasOwnProperty(i)) { + if (typeof objB[i] === "undefined") { + return false; + } else { + a_type = Object.prototype.toString.apply(objA[i]); + b_type = Object.prototype.toString.apply(objB[i]); + if (a_type !== b_type) { + return false; + } + } + } + if ($.compare(objA[i], objB[i]) === false) { + return false; + } + } + return true; + } +}); + +/** + * Tells if a selector exits in the dom + */ +jQuery.fn.exists = function () { + return this.length > 0; +}; + +/** + * Replace .svg for .png + */ +jQuery.fn.replace_svg = function () { + if (!this.attr("src")) return; + $(this).each(function () { + $(this).attr( + "src", + $(this) + .attr("src") + .replace(".svg", ".png") + ); + }); +}; + +/** + * Detect fluid layout + * nota: deberia ir en PF + */ +jQuery.fn.is_fluid = function () { + return true; +}; + +/** + * jQueryfy the form data + * Bind the attributes and values of form data to be manipulated by DOM fn + */ +jQuery.fn.bindFormData = function () { + $(":input", this).each(function () { + var safeVal = PF.fn.htmlEncode($(this).val()); + + if ($(this).is("input")) { + this.setAttribute("value", this.value); + if (this.checked) { + this.setAttribute("checked", "checked"); + } else { + this.removeAttribute("checked"); + } + } + if ($(this).is("textarea")) { + $(this).html(safeVal); + } + if ($(this).is("select")) { + var index = this.selectedIndex, + i = 0; + $(this) + .children("option") + .each(function () { + if (i++ != index) { + this.removeAttribute("selected"); + } else { + this.setAttribute("selected", "selected"); + } + }); + } + }); + return this; +}; + +/** jQuery.formValues: get or set all of the name/value pairs from child input controls + * @argument data {array} If included, will populate all child controls. + * @returns element if data was provided, or array of values if not + * http://stackoverflow.com/questions/1489486/jquery-plugin-to-serialize-a-form-and-also-restore-populate-the-form + */ +jQuery.fn.formValues = function (data) { + var els = $(":input", this); + if (typeof data != "object") { + data = {}; + $.each(els, function () { + if ( + this.name && + !this.disabled && + (this.checked || + /select|textarea/i.test(this.nodeName) || + /color|date|datetime|datetime-local|email|month|range|search|tel|time|url|week|text|number|hidden|password/i.test( + this.type + )) + ) { + if (this.name.match(/^.*\[\]$/) && this.checked) { + if (typeof data[this.name] == "undefined") { + data[this.name] = []; + } + data[this.name].push($(this).val()); + } else { + data[this.name] = $(this).val(); + } + } + }); + return data; + } else { + $.each(els, function () { + if (this.name.match(/^.*\[\]$/) && typeof data[this.name] == "object") { + $(this).prop("checked", data[this.name].indexOf($(this).val()) !== -1); + } else { + if (this.name && data[this.name]) { + if (/checkbox|radio/i.test(this.type)) { + $(this).prop("checked", data[this.name] == $(this).val()); + } else { + $(this).val(data[this.name]); + } + } else if (/checkbox|radio/i.test(this.type)) { + $(this).removeProp("checked"); + } + } + }); + return $(this); + } +}; + +jQuery.fn.storeformData = function (dataname) { + if ( + typeof dataname == "undefined" && + typeof $(this).attr("id") !== "undefined" + ) { + dataname = $(this).attr("id"); + } + if (typeof dataname !== "undefined") + $(this).data(dataname, $(this).formValues()); + return this; +}; + +/** + * Compare the $.data values against the current DOM values + * It relies in using $.data to store the previous value + * Data must be stored using $.formValues() + * + * @argument dataname string name for the data key + */ +jQuery.fn.is_sameformData = function (dataname) { + var $this = $(this); + if (typeof dataname == "undefined") dataname = $this.attr("id"); + return jQuery.compare($this.formValues(), $this.data(dataname)); +}; + +/** + * Prevent non-numeric keydown + * Allows only numeric keys to be entered on the target event + */ +jQuery.Event.prototype.keydown_numeric = function () { + var e = this; + + if (e.shiftKey) { + e.preventDefault(); + return false; + } + + var key = e.charCode || e.keyCode, + target = e.target, + value = $(target).val() == "" ? 0 : parseInt($(target).val()); + + if (key == 13) { + // Allow enter key + return true; + } + + if ( + key == 46 || + key == 8 || + key == 9 || + key == 27 || + // Allow: Ctrl+A + (key == 65 && e.ctrlKey === true) || + // Allow: home, end, left, right + (key >= 35 && key <= 40) + ) { + // let it happen, don't do anything + return true; + } else { + // Ensure that it is a number and stop the keypress + if ((key < 48 || key > 57) && (key < 96 || key > 105)) { + e.preventDefault(); + } + } +}; + +/** + * Detect canvas support + */ +PF.fn.is_canvas_supported = function () { + var elem = document.createElement("canvas"); + return !!(elem.getContext && elem.getContext("2d")); +}; + +/** + * Detect validity support + */ +PF.fn.is_validity_supported = function () { + var i = document.createElement("input"); + return typeof i.validity === "object"; +}; + +PF.fn.getScrollBarWidth = function () { + var inner = document.createElement("p"); + inner.style.width = "100%"; + inner.style.height = "200px"; + + var outer = document.createElement("div"); + outer.style.position = "absolute"; + outer.style.top = "0px"; + outer.style.left = "0px"; + outer.style.visibility = "hidden"; + outer.style.width = "200px"; + outer.style.height = "150px"; + outer.style.overflow = "hidden"; + outer.appendChild(inner); + + document.body.appendChild(outer); + var w1 = inner.offsetWidth; + outer.style.overflow = "scroll"; + var w2 = inner.offsetWidth; + if (w1 == w2) w2 = outer.clientWidth; + + document.body.removeChild(outer); + + return w1 - w2; +}; + +PF.str.ScrollBarWidth = PF.fn.getScrollBarWidth(); + +/** + * Updates the notifications button + */ +PF.fn.top_notifications_viewed = function () { + var $top_bar_notifications = $("[data-action=top-bar-notifications]"), + $notifications_lists = $( + ".top-bar-notifications-list", + $top_bar_notifications + ), + $notifications_count = $(".top-btn-number", $top_bar_notifications); + + if ($(".persistent", $top_bar_notifications).exists()) { + $notifications_count + .text($(".persistent", $top_bar_notifications).length) + .addClass("on"); + } else { + $notifications_count.removeClass("on"); + } +}; + +/** + * bind tipTip for the $target with options + * @argument $target selector or jQuery obj + * @argument options obj + */ +PF.fn.bindtipTip = function ($target, options) { + if (typeof $target == "undefined") $target = $("body"); + if ($target instanceof jQuery == false) $target = $($target); + var bindtipTipoptions = { + delay: 0, + content: false, + fadeIn: 0 + }; + if (typeof options !== "undefined") { + if (typeof options.delay !== "undefined") + bindtipTipoptions.delay = options.delay; + if (typeof options.content !== "undefined") + bindtipTipoptions.content = options.content; + if (typeof options.content !== "undefined") + bindtipTipoptions.fadeIn = options.fadeIn; + } + if ($target.attr("rel") !== "tooltip") $target = $("[rel=tooltip]", $target); + + $target.each(function () { + if ( + (typeof $(this).attr("href") !== "undefined" || + typeof $(this).data("href") !== "undefined") && + PF.fn.isDevice(["phone", "phablet", "tablet"]) + ) { + return true; + } + var position = + typeof $(this).data("tiptip") == "undefined" + ? "bottom" + : $(this).data("tiptip"); + if (PF.fn.isDevice(["phone", "phablet"])) { + position = "top"; + } + $(this).tipTip({ + delay: bindtipTipoptions.delay, + defaultPosition: position, + content: bindtipTipoptions.content, + fadeIn: bindtipTipoptions.fadeIn, + fadeOut: 0 + }); + }); +}; + +/** + * form modal changed + * Detects if the form modal (fullscreen) has changed or not + * Note: It relies in that you save a serialized data to the + */ +PF.fn.form_modal_has_changed = function () { + if ($(PF.obj.modal.selectors.root).is(":hidden")) return; + if (typeof $("html").data("modal-form-values") == typeof undefined) return; + + var data_stored = $("html").data("modal-form-values"); + var data_modal = PF.fn.deparam( + $(":input:visible", PF.obj.modal.selectors.root).serialize() + ); + var has_changed = false; + var keys = $.extend({}, data_stored, data_modal); + + for (var k in keys) { + if (data_stored[k] !== data_modal[k]) { + has_changed = true; + break; + } + } + + return has_changed; +}; + +/** + * PEAFOWL CONDITIONALS + * ------------------------------------------------------------------------------------------------- + */ + +PF.fn.is_listing = function () { + return $(PF.obj.listing.selectors.content_listing).exists(); +}; + +PF.fn.is_tabs = function () { + return $(".content-tabs").exists(); +}; + +/** + * PEAFOWL EFFECTS + * ------------------------------------------------------------------------------------------------- + */ + +/** + * Shake effect + * Shakes the element using CSS animations. + * @argument callback fn + */ +jQuery.fn.shake = function (callback) { + this.each(function (init) { + var $this = $(this); + $this.addClass("animate shake") + .promise() + .done(function () { + setTimeout(function () { + $this.removeClass("shake") + }, 820); + }); + + }); + if (typeof callback == "function") callback(); + return this; +}; + +/** + * Highlight effect + * Changes the background of the element to a highlight color and revert to original + * @argument string (yellow|red|hex-color) + */ +jQuery.fn.highlight = function (color) { + if (this.is(":animated") || !this.exists()) return this; + if (typeof color == "undefined") color = "yellow"; + + var fadecolor = color; + + switch (color) { + case "yellow": + fadecolor = "#FFFBA2"; + break; + case "red": + fadecolor = "#FF7F7F"; + break; + default: + fadecolor = color; + break; + } + var base_background_color = $(this).css("background-color"), + base_background = $(this).css("background"); + + $(this) + .css({ + background: "", + backgroundColor: fadecolor, + borderColor: window.getComputedStyle(document.body).getPropertyValue('--colorAccent') + }) + .animate({ backgroundColor: base_background_color, borderColor: "" }, 1000, function () { + $(this).css("background", ""); + }); + return this; +}; + +/** + * Peafowl slidedown effect + * Bring the element using slideDown-type effect + * @argument speed (fast|normal|slow|int) + * @argument callback fn + */ +jQuery.fn.pf_slideDown = function (speed, callback) { + var default_speed = "normal", + this_length = $(this).length, + css_prechanges, + css_animation, + animation_speed; + + if (typeof speed == "function") { + callback = speed; + speed = default_speed; + } + if (typeof speed == "undefined") { + speed = default_speed; + } + + $(this).each(function (index) { + var this_css_top = parseInt($(this).css("top")), + to_top = this_css_top > 0 ? this_css_top : 0; + + if (speed == 0) { + (css_prechanges = { display: "block", opacity: 0 }), + (css_animation = { opacity: 1 }), + (animation_speed = jQuery.speed("fast").duration); + } else { + css_prechanges = { + top: -$(this).outerHeight(true), + opacity: 1, + display: "block" + }; + css_animation = { top: to_top }; + animation_speed = jQuery.speed(speed).duration; + } + + $(this).data("originalTop", $(this).css("top")); + $(this) + .css(css_prechanges) + .animate(css_animation, animation_speed, function () { + if (index == this_length - 1) { + if (typeof callback == "function") { + callback(); + } + } + }); + }); + + return this; +}; + +/** + * Peafowl slideUp effect + * Move the element using slideUp-type effect + * @argument speed (fast|normal|slow|int) + * @argument callback fn + */ +jQuery.fn.pf_slideUp = function (speed, callback) { + var default_speed = "normal", + this_length = $(this).length; + + if (typeof speed == "function") { + callback = speed; + speed = default_speed; + } + if (typeof speed == "undefined") { + speed = default_speed; + } + + $(this).each(function (index) { + $(this).animate( + { top: -$(this).outerHeight(true) }, + jQuery.speed(speed).duration, + function () { + $(this).css({ display: "none", top: $(this).data("originalTop") }); + if (index == this_length - 1) { + if (typeof callback == "function") { + callback(); + } + } + } + ); + }); + + return this; +}; + +jQuery.fn.is_in_viewport = function () { + var rect = $(this)[0].getBoundingClientRect(); + return ( + rect.top >= 0 && + rect.left >= 0 && + rect.bottom <= + (window.innerHeight || + document.documentElement.clientHeight) && + rect.right <= + (window.innerWidth || + document.documentElement.clientWidth) + ); +}; + +jQuery.fn.is_within_viewport = function (height) { + var rect = $(this)[0].getBoundingClientRect(); + if (typeof height == "undefined") { + height = 0; + } + return ( + rect.top >= 0 && + rect.left >= 0 && + (rect.top + height) <= + (window.innerHeight || + document.documentElement.clientHeight) && + rect.right <= + (window.innerWidth || + document.documentElement.clientWidth) + ); +}; + + +/** + * Visible on current window stuff + */ +jQuery.fn.getWindowCutoff = function () { + var rect = { + top: $(this).offset().top, + left: $(this).offset().left, + width: $(this).outerWidth(), + height: $(this).outerHeight() + }; + rect.right = rect.left + rect.width; + rect.bottom = rect.top + rect.height; + var detected = false; + var cutoff = { + top: rect.top > 0 ? 0 : rect.top, + right: document.body.clientWidth - rect.right, + bottom: document.body.clientHeight - rect.bottom, + left: rect.left > 0 ? 0 : rect.left + }; + for (var key in cutoff) { + if (cutoff[key] < 0) { + detected = true; + } else { + cutoff[key] = 0; + } + } + if (!detected) return null; + return cutoff; +}; + +/** + * Scroll the window to the target. + * @argument target selector + * @argument callback fn + */ +PF.fn.scroll = function (target, callback) { + if (typeof target == "function") { + var callback = target, + target = ""; + } + + var pxtop = parseInt($("body").css("margin-top")); + if (pxtop == 0 && $(".top-bar-placeholder").exists()) { + pxtop = $(".top-bar-placeholder").height(); + } + + if (!$(target).exists()) target = "html"; + $("body,html").animate( + { scrollTop: $(target).offset().top - pxtop }, + "normal", + function () { + if (typeof callback == "function") callback(); + } + ); +}; + +PF.fn.close_pops = function (e) { + $(".pop-box:visible").each(function () { + $(this).closest(".pop-btn").trigger("click"); + }); +}; + +/** + * Bring up a nice growl-like alert + */ +PF.fn.growl = { + selectors: { + root: "#growl" + }, + + str: { + timeout: null, + timeoutcall: false + }, + + /** + * Fires the growl + * @argument options object + */ + call: function (options) { + if (typeof options == "undefined") return; + if (typeof options == "string") { + options = { message: options }; + } + if (typeof options.message == "undefined") return; + + var growl_options, $growl, growl_class, growl_color; + + growl_options = { + message: options.message, + insertTo: "body", + where: "before", + color: "default", + css: {}, + classes: "", + expires: 0, + callback: function () { } + }; + + for (key in growl_options) { + if (typeof options[key] !== "undefined") { + if (key.match("/^(callback)$/")) { + if (typeof options[key] == "function") { + growl_options[key] = options[key]; + } + } else { + growl_options[key] = options[key]; + } + } + } + + if (!$(growl_options.insertTo).exists()) { + growl_options.insertTo = "body"; + } + + if ($(PF.fn.growl.selectors.root).exists()) { + if ($(PF.fn.growl.selectors.root).text() == growl_options.message) { + $(PF.fn.growl.selectors.root).shake(); + return; + } + $(PF.fn.growl.selectors.root).remove(); + } + + $growl = $( + '<div id="' + + PF.fn.growl.selectors.root.replace("#", "") + + '" class="growl animated">' + + growl_options.message + + '<span class="icon fas fa-times" data-action="close"></span></div>' + ) + .css(growl_options.css) + .addClass(growl_options.classes); + + growl_class = growl_options.insertTo !== "body" ? "static" : ""; + + switch (growl_options.color) { + case "dark": + growl_color = "dark"; + break; + default: + growl_color = ""; + break; + } + + $growl.addClass(growl_class + " " + growl_color); + + if (growl_options.where == "before") { + $(growl_options.insertTo).prepend($growl.hide()); + } else { + $(growl_options.insertTo).append($growl.hide()); + } + + $growl.pf_slideDown(growl_class == "static" ? 0 : 200, function () { + if (typeof growl_options.callback == "function") { + growl_options.callback(); + } + }); + + $(document).on("click", ".growl", function (e) { + if ( + PF.fn.isDevice(["phone", "phablet"]) || + $(e.target).is("[data-action=close]") + ) { + PF.fn.growl.close(true); + } + }); + + if (growl_options.expires > 0) { + if (typeof this.str.timeout == "number") { + clearTimeout(this.str.timeout); + } + this.str.timeout = setTimeout(function () { + PF.fn.growl.str.timeoutcall = true; + PF.fn.growl.close(); + }, growl_options.expires); + } + }, + + /** + * Fires an expirable growl (will close after time) + * @argument msg string + * @argument time int (ms) + */ + expirable: function (msg, time) { + if (typeof msg == "undefined") return; + if (typeof time == "undefined") time = 5000; + PF.fn.growl.call({ message: msg, expires: time }); + }, + + /** + * Closes the growl + * @argument callback fn + */ + close: function (forced, callback) { + var $growl = $(PF.fn.growl.selectors.root); + + if (forced) { + this.str.timeout = null; + this.str.timeoutcall = false; + clearTimeout(this.str.timeout); + } + + if ( + !$growl.exists() || + (typeof this.str.timeout == "number" && !this.str.timeoutcall) + ) { + return; + } + + $growl.fadeOut("fast", function () { + $(this).remove(); + if (typeof callback == "function") { + callback(); + } + }); + }, +}; + +/** + * Bring up a nice fullscreen modal + */ +PF.obj.modal = { + type: "", + selectors: { + root: "#fullscreen-modal", + box: "#fullscreen-modal-box", + body: "#fullscreen-modal-body", + login: "[data-modal=login]", + changes_confirm: "#fullscreen-changes-confirm", + btn_container: ".btn-container", + close_buttons: + ".close-modal,.cancel-modal,[data-action=cancel],[data-action-close]", + submit_button: "[data-action=submit]", + growl_placeholder: "#fullscreen-growl-placeholder" + }, + ajax: { + url: "", + deferred: {} + }, + locked: false, + form_data: {}, + XHR: {}, + prevented: false +}; +PF.obj.modal.$close_buttons = $( + PF.obj.modal.selectors.close_buttons, + PF.obj.modal.selectors.root +); + +PF.fn.modal = { + str: { + transition: "all " + PF.obj.config.animation.fast + "ms " + PF.obj.config.animation.easingFn + }, + + /** + * Fires the modal + * @argument options object + */ + call: function (options) { + var modal_options, modal_base_template, modal_message; + + if (typeof options == "undefined") return; + if ( + typeof options.template !== "undefined" && + typeof options.type == "undefined" + ) + options.type = "html"; + if ( + (typeof options.title == "undefined" || + typeof options.message == "undefined") && + (options.type !== "login" && options.type !== "html") + ) + return; + + PF.fn.growl.close(); + + modal_options = { + forced: false, + type: "confirm", + title: options.title, + message: options.message, + html: false, + template: options.template, + buttons: true, + button_submit: PF.fn._s("Submit"), + txt_or: PF.fn._s("or"), + button_cancel: PF.fn._s("cancel"), + ajax: { url: null, data: null, deferred: {} }, + confirm: function () { }, + cancel: function () { + PF.fn.modal.close(); + }, + load: function () { }, + callback: function () { } + }; + + for (key in modal_options) { + if (typeof options[key] !== "undefined") { + if (/^cancel|confirm|callback$/.test(key)) { + if (typeof options[key] == "function") { + modal_options[key] = options[key]; + } + } else { + modal_options[key] = options[key]; + } + } + } + + if ( + typeof options.ajax !== "undefined" && + !options.ajax.url && + options.ajax.deferred + ) { + modal_options.ajax.url = PF.obj.config.json_api; + } + + if (modal_options.type == "login") { + modal_options.buttons = false; + } + + if (modal_options.type == "confirm") { + modal_options.button_submit = PF.fn._s("Confirm"); + } + + var overlay_background = "black"; + var modal_base_template = [ + '<div id="', + PF.obj.modal.selectors.root.replace("#", ""), + '"class="fullscreen ' + overlay_background + '"><div id="', + PF.obj.modal.selectors.box.replace("#", ""), + '"class="clickable"><div id="', + PF.obj.modal.selectors.body.replace("#", ""), + '">%MODAL_BODY%</div>%MODAL_BUTTONS%<span class="close-modal icon--close fas fa-times" data-action="close-modal" title="Esc"></span></div></div>' + ].join(""); + + var modal_buttons = modal_options.buttons + ? [ + '<div class="', + PF.obj.modal.selectors.btn_container.replace(".", ""), + '"><button class="btn btn-input accent" data-action="submit" type="submit" title="Ctrl/Cmd + Enter">', + '<span class="btn-icon fas fa-check-circle user-select-none"></span>', + '<span class="btn-text user-select-none">', + modal_options.button_submit, + '</span>', + '</button></div>' + ].join("") + : ""; + + if (modal_options.type == "login") { + modal_options.template = + typeof modal_options.template == "undefined" + ? $(PF.obj.modal.selectors.login).html() + : modal_options.template; + } + + var modalBodyHTML; + + switch (modal_options.type) { + case "html": + case "login": + modalBodyHTML = modal_options.template; + break; + case "confirm": + default: + modal_message = modal_options.message; + if (!modal_options.html) { + modal_message = "<p>" + modal_message + "</p>"; + } + modalBodyHTML = "<h1>" + modal_options.title + "</h1>" + modal_message; + break; + } + + if (typeof modalBodyHTML == "undefined") { + console.log("PF Error: Modal content is empty"); + return; + } + + modal_base_template = modal_base_template + .replace("%MODAL_BODY%", modalBodyHTML) + .replace("%MODAL_BUTTONS%", modal_buttons) + .replace(/template-tooltip/g, "tooltip"); + + $(PF.obj.modal.selectors.root).remove(); + + $("body").data("hasOverflowHidden", $("body").hasClass("overflow-hidden") && !$("body").hasClass("pop-box-show")); + $("body") + .prepend(modal_base_template) + .addClass("overflow-hidden"); + + this.fixScrollbars(); + + $("[rel=tooltip]", PF.obj.modal.selectors.root).each(function () { + PF.fn.bindtipTip(this, { content: $(this).data("title") }); + }); + + if ( + $( + ":button, input[type=submit], input[type=reset]", + PF.obj.modal.selectors.root + ).length > 0 + ) { + var $form = $("form", PF.obj.modal.selectors.root); + if ($form.exists()) { + $form.append( + $( + $( + PF.obj.modal.selectors.btn_container, + PF.obj.modal.selectors.root + ).html() + ).wrapInner(PF.obj.modal.selectors.btn_container.replace(".", "")) + ); + $( + PF.obj.modal.selectors.btn_container, + PF.obj.modal.selectors.root + ).each(function () { + if ( + !$(this) + .closest("form") + .exists() + ) { + $(this).remove(); + } + }); + } else { + $(PF.obj.modal.selectors.box, PF.obj.modal.selectors.root).wrapInner( + "<form />" + ); + } + } + + modal_options.callback(); + + $(PF.obj.modal.selectors.box).css({ + transform: "scale(0.7)", + opacity: 0, + transition: PF.fn.modal.str.transition + }); + $(PF.obj.modal.selectors.root).addClass("--show"); + setTimeout(function () { + $(PF.obj.modal.selectors.root).css({ opacity: 1 }); + $(PF.obj.modal.selectors.box).css({ transform: "scale(1)", opacity: 1 }); + if (typeof PFrecaptchaCallback !== typeof undefined) { + PFrecaptchaCallback(); + } + setTimeout(function () { + $("html").data( + "modal-form-values", + PF.fn.deparam( + $(":input:visible", PF.obj.modal.selectors.root).serialize() + ) + ); + if (typeof modal_options.load == "function") { + modal_options.load(); + } + }, PF.obj.config.animation.fast); + PF.fn.modal.styleAware(); + }, 10); + + $(PF.obj.modal.selectors.root).on("click", function (e) { + var $this = $(e.target), + _this = this; + if (PF.obj.modal.locked || $this.is(PF.obj.modal.selectors.root)) { + return; + } + var isCloseButton = $this.is(PF.obj.modal.selectors.close_buttons) + || $this.closest(PF.obj.modal.selectors.close_buttons).exists(); + var isSubmitButton = $this.is(PF.obj.modal.selectors.submit_button) + || $this.closest(PF.obj.modal.selectors.submit_button).exists(); + var isButton = isCloseButton || isSubmitButton; + if ( + $this.closest(PF.obj.modal.selectors.changes_confirm).exists() && + isButton + ) { + $(PF.obj.modal.selectors.changes_confirm).remove(); + + if (isCloseButton) { + $(PF.obj.modal.selectors.box, _this).fadeIn("fast", function () { + $(this).css("transition", PF.fn.modal.str.transition); + }); + } else { + PF.fn.modal.close(); + } + } else { + if ( + !$this.closest(".clickable").exists() || + isCloseButton + ) { + PF.fn.growl.close(); + modal_options.cancel(); + } + + if (isSubmitButton) { + if (modal_options.confirm() === false) { + return; + } + + var modal_submit_continue = true; + if ( + $("input, textarea, select", PF.obj.modal.selectors.root).not( + ":input[type=button], :input[type=submit], :input[type=reset]" + ).length > 0 && + !PF.fn.form_modal_has_changed() && + !modal_options.forced + ) { + modal_submit_continue = false; + } + + if (modal_submit_continue) { + if (modal_options.ajax.url) { + var $btn_container = $( + PF.obj.modal.selectors.btn_container, + PF.obj.modal.selectors.root + ); + PF.obj.modal.locked = true; + + $btn_container + .first() + .clone() + .height($btn_container.height()) + .html("") + .addClass("loading") + .appendTo(PF.obj.modal.selectors.root + " form"); + $btn_container.hide(); + + PF.obj.modal.$close_buttons.hide(); + + var modal_loading_msg; + + switch (PF.obj.modal.type) { + case "edit": + modal_loading_msg = PF.fn._s("Saving"); + break; + case "confirm": + case "form": + default: + modal_loading_msg = PF.fn._s("Sending"); + break; + } + + PF.fn.loading.inline( + $( + PF.obj.modal.selectors.btn_container + ".loading", + PF.obj.modal.selectors.root + ), + { size: "small", message: modal_loading_msg, valign: "center" } + ); + + $(PF.obj.modal.selectors.root).disableForm(); + + if ( + !$.isEmptyObject(PF.obj.modal.form_data) || + (typeof options.ajax !== "undefined" && + typeof options.ajax.data == "undefined") + ) { + modal_options.ajax.data = PF.obj.modal.form_data; + } + PF.obj.modal.XHR = $.ajax({ + url: modal_options.ajax.url, + type: "POST", + data: modal_options.ajax.data //PF.obj.modal.form_data // $.param ? + }).complete(function (XHR) { + PF.obj.modal.locked = false; + + if (XHR.status == 200) { + var success_fn = + typeof modal_options.ajax.deferred !== "undefined" && + typeof modal_options.ajax.deferred.success !== "undefined" + ? modal_options.ajax.deferred.success + : null; + + if (typeof success_fn == "function") { + PF.fn.modal.close(function () { + if (typeof success_fn == "function") { + success_fn(XHR); + } + }); + } else if (typeof success_fn == "object") { + if (typeof success_fn.before == "function") { + success_fn.before(XHR); + } + if (typeof success_fn.done == "function") { + success_fn.done(XHR); + } + } + } else { + $(PF.obj.modal.selectors.root).enableForm(); + $( + PF.obj.modal.selectors.btn_container + ".loading", + PF.obj.modal.selectors.root + ).remove(); + $btn_container.css("display", ""); + + if ( + typeof modal_options.ajax.deferred !== "undefined" && + typeof modal_options.ajax.deferred.error == "function" + ) { + modal_options.ajax.deferred.error(XHR); + } else { + var message = PF.fn._s( + "An error occurred. Please try again later." + ); + if(XHR.responseJSON.error.message) { + message = XHR.responseJSON.error.message; + } + PF.fn.growl.call(message); + } + } + }); + } else { + // No ajax behaviour + PF.fn.modal.close(modal_options.callback()); + } + } + } + } + }); + }, + + styleAware: function () { + if(!$(PF.obj.modal.selectors.root).exists()) { + return; + } + $(PF.obj.modal.selectors.root) + .toggleClass( + "--has-scrollbar", + $(PF.obj.modal.selectors.root).hasScrollbar().vertical + ); + }, + + /** + * Fires a confirm modal + * @argument options object + */ + confirm: function (options) { + options.type = "confirm"; + if (typeof options.title == "undefined") { + options.title = PF.fn._s("Confirm action"); + } + PF.fn.modal.call(options); + }, + + /** + * Fires a simple info modal + */ + simple: function (options) { + if (typeof options == "string") options = { message: options }; + if (typeof options.buttons == "undefined") options.buttons = false; + if (typeof options.title == "undefined") + options.title = PF.fn._s("information"); + PF.fn.modal.call(options); + }, + + fixScrollbars: function () { + if (!$(PF.obj.modal.selectors.root).exists()) { + return; + } + var $targets = { + padding: $(".fixed, .position-fixed"), + margin: $("html") + }; + var properties = {}; + if ( + PF.str.ScrollBarWidth > 0 && + $("html").hasScrollbar().vertical && + !$("body").data("hasOverflowHidden") + ) { + properties.padding = PF.str.ScrollBarWidth + "px"; + properties.margin = PF.str.ScrollBarWidth + "px"; + } else { + properties.padding = ""; + properties.margin = ""; + } + $targets.padding.css({ paddingRight: properties.padding }); + $targets.margin.css({ marginRight: properties.margin }); + }, + + /** + * Closes the modal + * @argument callback fn + */ + close: function (callback) { + if (!$(PF.obj.modal.selectors.root).exists()) { + return; + } + PF.fn.growl.close(true); + $("[rel=tooltip]", PF.obj.modal.selectors.root).tipTip("hide"); + $(PF.obj.modal.selectors.box).css({ transform: "scale(0.5)", opacity: 0 }); + $(PF.obj.modal.selectors.root).css({ opacity: 0 }); + setTimeout(function () { + if (PF.str.ScrollBarWidth > 0 && $("html").hasScrollbar().vertical) { + $(".fixed, .position-fixed").css({ paddingRight: "" }); + } + $("html").css({ marginRight: "" }); + if (!$("body").data("hasOverflowHidden")) { + $("body").removeClass("overflow-hidden"); + } + $("body").removeData("hasOverflowHidden"); + $(PF.obj.modal.selectors.root).remove(); + if (typeof callback == "function") callback(); + }, PF.obj.config.animation.normal); + } +}; + +PF.fn.keyFeedback = { + enabled: true, + timeout: { + spawn: null, + remove: null, + }, + selectors: { + root: "#key-feedback", + }, + translate: { + "ArrowLeft": "◄", + "ArrowRight": "►", + "Delete": "Del", + "Escape": "Esc", + }, + spawn: function(e) { + if(this.enabled == false || PF.fn.isDevice(["phone", "phablet"])) { + return; + } + var $el = $(PF.fn.keyFeedback.selectors.root); + if(!$el.exists()) { + $('body').append($('<div></div>').attr({id: "key-feedback", class: "key-feedback"})); + $el = $(PF.fn.keyFeedback.selectors.root) + } + var message = []; + if((e.ctrlKey || e.metaKey) && e.originalEvent.code === 'KeyV') { + e = { + type: "keydown", + key: PF.fn._s("Paste") + }; + } + if(e.type === "contextmenu" && e.ctrlKey) { + e.type = "click"; + } + if(e.type === "contextmenu") { + message.push(PF.fn._s("Right click")); + } else { + if(e.ctrlKey) { + message.push('Ctrl'); + } + if(e.metaKey) { + message.push('⌘'); + } + if(e.hasOwnProperty("key")) { + var key = e.key.length === 1 + ? e.key.toUpperCase() + : e.key; + if(key in this.translate) { + key = this.translate[key]; + } + message.push(key); + } + } + if(e.type === "click") { + message.push("click"); + } + $el.html(message.join(" + ", message)).css("opacity", 1); + clearTimeout(PF.fn.keyFeedback.timeout.spawn); + clearTimeout(PF.fn.keyFeedback.timeout.remove); + PF.fn.keyFeedback.timeout.spawn = setTimeout(function() { + $el.css("opacity", 0); + PF.fn.keyFeedback.timeout.remove = setTimeout(function() { + $el.remove(); + }, 500) + }, 1500); + }, +}; + +PF.fn.popup = function (options) { + var settings = { + height: options.height || 500, + width: options.width || 650, + scrollTo: 0, + resizable: 0, + scrollbars: 0, + location: 0 + }; + + settings.top = screen.height / 2 - settings.height / 2; + settings.left = screen.width / 2 - settings.width / 2; + + var settings_ = ""; + for (var key in settings) { + settings_ += key + "=" + settings[key] + ","; + } + settings_ = settings_.slice(0, -1); // remove the last comma + + window.open(options.href, "Popup", settings_); + return; +}; + +/** + * PEAFOWL FLUID WIDTH FIXER + * ------------------------------------------------------------------------------------------------- + */ +PF.fn.list_fluid_width = function () { + if (!$("body").is_fluid()) return; + + var $content_listing = $(PF.obj.listing.selectors.content_listing_visible), + $pad_content_listing = $( + PF.obj.listing.selectors.pad_content, + $content_listing + ), + $list_item = $(PF.obj.listing.selectors.list_item, $content_listing), + list_item_width = $list_item.outerWidth(true), + list_item_gutter = $list_item.outerWidth(true) - $list_item.width(); + + PF.obj.listing.content_listing_ratio = parseInt( + ($content_listing.width() + list_item_gutter) / list_item_width + ); + + if ($list_item.length < PF.obj.listing.content_listing_ratio) { + $pad_content_listing.css("width", "100%"); + return; + } +}; + +/** + * PEAFOWL TABS + * ------------------------------------------------------------------------------------------------- + */ + +PF.obj.tabs = { + hashdata: {} +}; + +PF.fn.show_tab = function (tab) { + if (typeof tab == "undefined") return; + var $this = $("a[data-tab=" + tab + "]", ".content-tabs"); + + $("li", $this.closest("ul")).removeClass("current"); + $this.closest("li").addClass("current"); + + var $tab_content_group = $("#tabbed-content-group"); + $target = $("#" + $this.data("tab")); + + $(".tabbed-content", $tab_content_group) + .removeClass("visible") + .addClass("hidden"); + $($target, $tab_content_group) + .addClass("visible") + .removeClass("hidden"); + + $("[data-content=list-selection]") + .addClass("hidden"); + $("[data-content=list-selection][data-tab=" + $this.data("tab") + "]") + .removeClass("hidden"); + + if ($tab_content_group.exists()) { + var $list_item_target = $( + PF.obj.listing.selectors.list_item + ":not(.jsly)", + $target + ); + + if ( + $target.data("load") == "ajax" && + $target.data("empty") !== "true" && + !$(PF.obj.listing.selectors.list_item, $target).exists() + ) { + PF.fn.listing.queryString.stock_load(); + $target.html(PF.obj.listing.template.fill); + // PF.fn.loading.inline( + // $(PF.obj.listing.selectors.content_listing_loading, $target) + // ); + PF.fn.listing.queryString.stock_new(); + PF.fn.listing.ajax(); + $target.addClass("jsly"); + } else { + PF.fn.listing.queryString.stock_current(); + PF.fn.listing.columnizer(false, 0, false); + $list_item_target.show(); + } + } + + PF.fn.listing.columnizerQueue(); + + if ( + $(PF.obj.listing.selectors.content_listing_visible).data("queued") == true + ) { + PF.fn.listing.columnizer(true, 0); + } +}; + +/** + * PEAFOWL LISTINGS + * ------------------------------------------------------------------------------------------------- + */ +PF.obj.listing = { + columns: "", + columns_number: 1, + current_column: "", + current_column: "", + XHR: {}, + query_string: PF.fn.get_url_vars(), + calling: false, + content_listing_ratio: 1, + selectors: { + sort: ".sort-listing .current [data-sort]", + content_listing: ".content-listing", + content_listing_visible: ".content-listing:visible", + content_listing_loading: ".content-listing-loading", + content_listing_load_more: ".content-listing-more", + content_listing_pagination: ".content-listing-pagination", + empty_icon: ".icon.fas.fa-inbox", + pad_content: ".pad-content-listing", + list_item: ".list-item" + }, + template: { + fill: $("[data-template=content-listing]").html(), + empty: $("[data-template=content-listing-empty]").html(), + loading: $("[data-template=content-listing-loading]").html() + } +}; + +PF.fn.listing = {}; + +PF.fn.listing.show = function (response, callback) { + $content_listing = $("#content-listing-tabs").exists() + ? $( + PF.obj.listing.selectors.content_listing_visible, + "#content-listing-tabs" + ) + : $(PF.obj.listing.selectors.content_listing); + + PF.fn.loading.inline(PF.obj.listing.selectors.content_listing_loading); + var $targets = $( + PF.obj.listing.selectors.list_item, + $content_listing + ); + if ( + (typeof response !== "undefined" && + $(response.html).length < PF.obj.config.listing.items_per_page) || + $(PF.obj.listing.selectors.list_item, $content_listing).length < + PF.obj.config.listing.items_per_page + ) { + PF.fn.listing.removeLoader($content_listing); + } + if ( + $( + PF.obj.listing.selectors.content_listing_pagination, + $content_listing + ).is("[data-type=classic]") || + !$("[data-action=load-more]", $content_listing).exists() + ) { + $( + PF.obj.listing.selectors.content_listing_loading, + $content_listing + ).remove(); + } + + PF.fn.listing.columnizer(false, 0); + $targets.show(); + PF.fn.listing.columnizer(true, 0); + $targets.addClass("--show"); + + PF.obj.listing.calling = false; + + var visible_loading = + $( + PF.obj.listing.selectors.content_listing_loading, + $content_listing + ).exists() && + $( + PF.obj.listing.selectors.content_listing_loading, + $content_listing + ).is_in_viewport(); + if (typeof PF.obj.listing.show_load_more == typeof undefined) { + } + PF.obj.listing.show_load_more = visible_loading; + + $(PF.obj.listing.selectors.content_listing_loading, $content_listing)[ + (visible_loading ? "add" : "remove") + "Class" + ]("hidden"); + $(PF.obj.listing.selectors.content_listing_load_more, $content_listing)[ + PF.obj.listing.show_load_more ? "show" : "hide" + ](); + + if (PF.obj.listing.lockClickMore) { + PF.obj.listing.lockClickMore = false; + } + + if (typeof callback == "function") { + callback(); + } +}; + +PF.fn.listing.removeLoader = function (obj) { + var remove = [ + PF.obj.listing.selectors.content_listing_load_more, + PF.obj.listing.selectors.content_listing_loading + ]; + + if ( + $(PF.obj.listing.selectors.content_listing_pagination, $content_listing).is( + "[data-type=endless]" + ) + ) { + remove.push(PF.obj.listing.selectors.content_listing_pagination); + } + + $.each(remove, function (i, v) { + $(v, obj).remove(); + }); +}; + +PF.fn.listing.queryString = { + // Stock the querystring values from initial load + stock_load: function () { + var $content_listing = $(PF.obj.listing.selectors.content_listing_visible), + params = PF.fn.deparam($content_listing.data("params")); + + PF.obj.listing.params_hidden = + typeof $content_listing.data("params-hidden") !== "undefined" + ? PF.fn.deparam($content_listing.data("params-hidden")) + : null; + + if (typeof PF.obj.listing.query_string.action == "undefined") { + PF.obj.listing.query_string.action = + $content_listing.data("action") || "list"; + } + if (typeof PF.obj.listing.query_string.list == "undefined") { + PF.obj.listing.query_string.list = $content_listing.data("list"); + } + if (typeof PF.obj.listing.query_string.sort == "undefined") { + if (typeof params !== "undefined" && typeof params.sort !== "undefined") { + PF.obj.listing.query_string.sort = params.sort; + } else { + PF.obj.listing.query_string.sort = $( + ":visible" + PF.obj.listing.selectors.sort + ).data("sort"); + } + } + if (typeof PF.obj.listing.query_string.page == "undefined") { + PF.obj.listing.query_string.page = 1; + } + $content_listing.data("page", PF.obj.listing.query_string.page); + + // Stock the real ajaxed hrefs for ajax loads + $(PF.obj.listing.selectors.content_listing + "[data-load=ajax]").each( + function () { + var $sortable_switch = $( + "[data-tab=" + + $(this).attr("id") + + "]" + + PF.obj.listing.selectors.sort + ); + var dataParams = PF.fn.deparam($(this).data("params")), + dataParamsHidden = PF.fn.deparam($(this).data("params-hidden")), + params = { + q: dataParams && dataParams.q ? dataParams.q : null, + list: $(this).data("list"), + sort: $sortable_switch.exists() + ? $sortable_switch.data("sort") + : dataParams && dataParams.sort + ? dataParams.sort + : null, + page: dataParams && dataParams.page ? dataParams.page : 1 + }; + + if (dataParamsHidden && dataParamsHidden.list) { + delete params.list; + } + + for (var k in params) { + if (!params[k]) delete params[k]; + } + } + ); + + // The additional params setted in data-params="" + for (var k in params) { + if (/action|list|sort|page/.test(k) == false) { + PF.obj.listing.query_string[k] = params[k]; + } + } + + if (typeof PF.obj.listing.params_hidden !== typeof undefined) { + // The additional params setted in data-hidden-params="" + for (var k in PF.obj.listing.params_hidden) { + if (/action|list|sort|page/.test(k) == false) { + PF.obj.listing.query_string[k] = PF.obj.listing.params_hidden[k]; + } + } + PF.obj.listing.query_string["params_hidden"] = + PF.obj.listing.params_hidden; + PF.obj.listing.params_hidden["params_hidden"] = null; // Add this key for legacy, params_hidden v3.9.0 intro* + } + }, + stock_new: function () { + var $content_listing = $(PF.obj.listing.selectors.content_listing_visible), + params = PF.fn.deparam($content_listing.data("params")); + + if ($content_listing.data("offset")) { + PF.obj.listing.query_string.offset = $content_listing.data("offset"); + } else { + delete PF.obj.listing.query_string.offset; + } + PF.obj.listing.query_string.seek = ''; + PF.obj.listing.query_string.action = + $content_listing.data("action") || "list"; + PF.obj.listing.query_string.list = $content_listing.data("list"); + + if (typeof params !== "undefined" && typeof params.sort !== "undefined") { + PF.obj.listing.query_string.sort = params.sort; + } else { + PF.obj.listing.query_string.sort = $( + ":visible" + PF.obj.listing.selectors.sort + ).data("sort"); + } + + PF.obj.listing.query_string.page = 1; + }, + + // Stock querystring values for static tab change + stock_current: function () { + this.stock_new(); + PF.obj.listing.query_string.page = $( + PF.obj.listing.selectors.content_listing_visible + ).data("page"); + } +}; + +// Initial load -> Stock the current querystring +PF.fn.listing.queryString.stock_load(); + +PF.fn.listing.ajax = function () { + if (PF.obj.listing.calling == true) { + return; + } + + PF.obj.listing.calling = true; + + var $content_listing = $(PF.obj.listing.selectors.content_listing_visible); + var $pad_content_listing = $( + PF.obj.listing.selectors.pad_content, + $content_listing + ); + var $content_listing_load_more = $( + PF.obj.listing.selectors.content_listing_load_more, + $content_listing + ); + + $content_listing_load_more.hide(); + $(PF.obj.listing.selectors.content_listing_loading, $content_listing) + .removeClass("visibility-hidden") + .show(); + + PF.obj.listing.XHR = $.ajax({ + type: "POST", + data: $.param( + $.extend({}, PF.obj.listing.query_string, $.ajaxSettings.data) + ) + }).complete(function (XHR) { + var response = XHR.responseJSON; + var removePagination = function () { + $( + PF.obj.listing.selectors.content_listing_loading + + "," + + PF.obj.listing.selectors.content_listing_pagination + + ":not([data-visibility=visible])", + $content_listing + ).remove(); + }, + setEmptyTemplate = function () { + $content_listing + .data("empty", "true") + .html(PF.obj.listing.template.empty); + $( + "[data-content=list-selection][data-tab=" + + $content_listing.attr("id") + + "]" + ).addClass("disabled"); + }; + + if (XHR.readyState == 4 && typeof response !== "undefined") { + $( + "[data-content=list-selection][data-tab=" + + $content_listing.attr("id") + + "]" + ).removeClass("disabled"); + + // Bad Request Bad Request what you gonna do when they come for ya? + if (XHR.status !== 200) { + // This is here to inherit the emptys + var response_output = + typeof response.error !== "undefined" && + typeof response.error.message !== "undefined" + ? response.error.message + : "Bad request"; + PF.fn.growl.call("Error: " + response_output); + $content_listing.data("load", ""); + } + // Empty HTML + if ( + (typeof response.html == "undefined" || response.html == "") && + $(PF.obj.listing.selectors.list_item, $content_listing).length == 0 + ) { + setEmptyTemplate(); + } + // End of the line + if (typeof response.html == "undefined" || response.html == "") { + removePagination(); + PF.obj.listing.calling = false; + if (typeof PF.fn.listing_end == "function") { + PF.fn.listing_end(); + } + return; + } + + // Listing stuff + $content_listing.data({ + load: "", + page: PF.obj.listing.query_string.page + }); + + var url_object = $.extend({}, PF.obj.listing.query_string); + for (var k in PF.obj.listing.params_hidden) { + if (typeof url_object[k] !== "undefined") { + delete url_object[k]; + } + } + + delete url_object["action"]; + + for (var k in url_object) { + if (!url_object[k]) delete url_object[k]; + } + + // get the fancy URL with scrollTop attached + if (document.URL.indexOf("?" + $.param(url_object)) == -1) { + var url = window.location.href; + url = url.split("?")[0].replace(/\/$/, "") + "/?" + $.param(url_object); + if (window.location.hash) { + url = url.replace(window.location.hash, ""); + } + History.pushState( + { pushed: "pagination", scrollTop: $(window).scrollTop() }, + document.title, + url + ); + } + + $("a[data-tab=" + $content_listing.attr("id") + "]").attr( + "href", + document.URL + ); + + $pad_content_listing.append(response.html); + var $loadMore = $(PF.obj.listing.selectors.content_listing_visible).find( + "[data-action=load-more]" + ); + if(response.seekEnd !== '') { + $loadMore.attr("data-seek", response.seekEnd); + } else { + $loadMore.remove(); + } + + PF.fn.listing.show(response, function () { + $( + PF.obj.listing.selectors.content_listing_loading, + $content_listing + ).addClass("visibility-hidden"); + }); + } else { + // Network error, abort or something similar + PF.obj.listing.calling = false; + $content_listing.data("load", ""); + removePagination(); + if ($(PF.obj.listing.selectors.list_item, $content_listing).length == 0) { + setEmptyTemplate(); + } + if (XHR.readyState !== 0) { + PF.fn.growl.call( + PF.fn._s("An error occurred. Please try again later.") + ); + } + } + + if (typeof PF.fn.listing.ajax.callback == "function") { + PF.fn.listing.ajax.callback(XHR); + } + }); +}; + +PF.fn.listing.columnizerQueue = function () { + $(PF.obj.listing.selectors.content_listing + ":hidden").data("queued", true); +}; + +PF.fn.listing.refresh = function (animation_time) { + PF.fn.listing.columnizer(true, animation_time, false); +}; + +var width = $(window).width(); +PF.fn.listing.columnizer = function (forced, animation_time, hard_forced) { + var device_to_columns = { + // default + phone: 1, + phablet: 3, + tablet: 4, + laptop: 5, + desktop: 6, + largescreen: 7 + }; + + if (typeof forced !== "boolean") var forced = false; + if (typeof PF.obj.listing.mode == "undefined") forced = true; + if (typeof hard_forced !== "boolean") { + var hard_forced = false, + default_hard_forced = true; + } else { + var default_hard_forced = false; + } + if (!hard_forced && default_hard_forced) { + if (width !== $(window).width() || forced) { + hard_forced = true; + } + } + + if (typeof animation_time == typeof undefined) + var animation_time = PF.obj.config.animation.normal; + + var $container = $("#content-listing-tabs").exists() + ? $( + PF.obj.listing.selectors.content_listing_visible, + "#content-listing-tabs" + ) + : $(PF.obj.listing.selectors.content_listing), + $pad_content_listing = $(PF.obj.listing.selectors.pad_content, $container), + list_mode = "responsive", + $list_item = $( + forced || hard_forced + ? PF.obj.listing.selectors.list_item + : PF.obj.listing.selectors.list_item + ":not(.jsly)", + $container + ); + + if (typeof PF.obj.config.listing.device_to_columns !== "undefined") { + device_to_columns = $.extend( + {}, + device_to_columns, + PF.obj.config.listing.device_to_columns + ); + } + + if ($container.data("device-columns")) { + device_to_columns = $.extend( + {}, + device_to_columns, + $container.data("device-columns") + ); + } + + PF.obj.listing.mode = list_mode; + PF.obj.listing.device = PF.fn.getDeviceName(); + + if (!$list_item.exists()) return; + + if ( + typeof $container.data("columns") !== "undefined" && + !forced && + !hard_forced + ) { + PF.obj.listing.columns = $container.data("columns"); + PF.obj.listing.columns_number = $container.data("columns").length - 1; + PF.obj.listing.current_column = $container.data("current_column"); + } else { + var $list_item_1st = $list_item.first(); + $list_item_1st.css("width", ""); + PF.obj.listing.columns = new Array(); + PF.obj.listing.columns_number = device_to_columns[PF.fn.getDeviceName()]; + for (i = 0; i < PF.obj.listing.columns_number; i++) { + PF.obj.listing.columns[i + 1] = 0; + } + PF.obj.listing.current_column = 1; + } + + $container + .removeClass("small-cols") + .addClass(PF.obj.listing.columns_number > 6 ? "small-cols" : ""); + + $pad_content_listing.css("width", "100%"); + + var delay = 0; + + $list_item.each(function (index) { + $(this).addClass("jsly"); + + var $list_item_img = $(".list-item-image", this), + $list_item_src = $(".list-item-image img", this), + $list_item_thumbs = $(".list-item-thumbs", this), + isJslyLoaded = $list_item_src.hasClass("jsly-loaded"); + + $list_item_src.show(); + + if (hard_forced) { + $(this).css({ top: "", left: "", height: "", position: "" }); + $list_item_img.css({ maxHeight: "", height: "" }); + $list_item_src + .removeClass("jsly") + .css({ width: "", height: "" }) + .parent() + .css({ + marginLeft: "", + marginTop: "" + }); + $("li", $list_item_thumbs).css({ width: "", height: "" }); + } + + var width_responsive = + PF.obj.listing.columns_number == 1 + ? "100%" + : parseFloat( + (1 / PF.obj.listing.columns_number) * + $container.width() + + "px" + ); + $(this).css("width", width_responsive); + + if (PF.obj.listing.current_column > PF.obj.listing.columns_number) { + PF.obj.listing.current_column = 1; + } + + $(this).attr("data-col", PF.obj.listing.current_column); + + if (!$list_item_src.exists()) { + var empty = true; + $list_item_src = $(".image-container .empty", this); + } + + var already_shown = $(this).is(":visible"); + $list_item.show(); + + var isFixed = $list_item_img.hasClass("fixed-size"); + + var image = { + w: parseFloat($list_item_src.attr("width")), + h: parseFloat($list_item_src.attr("height")) + }; + image.ratio = image.w / image.h; + + if ( + empty || + ($list_item_img.css("min-height") && !$list_item_src.hasClass("jsly")) + ) { + var col = { + w: $(this).width(), + h: isFixed ? $(this).width() : null + }, + magicWidth = Math.min(image.w, image.w < col.w ? image.w : col.w); + + if (isFixed) { + $list_item_img.css({ height: col.w }); // Sets the item container height + if (image.ratio <= 3 && (image.ratio > 1 || image.ratio == 1)) { + // Landscape or square + image.h = Math.min(image.h, image.w < col.w ? image.w : col.w); + image.w = image.h * image.ratio; + } else { + // Portrait + image.w = magicWidth; + image.h = image.w / image.ratio; + } + $list_item_img.css("min-height", 0); + } else { + // Fluid height + image.w = magicWidth; + if (image.ratio >= 3 || image.ratio < 1 || image.ratio == 1) { + // Portrait or square + image.h = image.w / image.ratio; + } else { + // Landscape + image.h = Math.min(image.h, image.w); + image.w = image.h * image.ratio; + } + if (empty) { + image.h = col.w; + } + $list_item_img.css({ height: image.h }); // Fill some gaps + } + + if ($list_item_src.width() == 0) { + $list_item_src.css({ + width: magicWidth, + height: magicWidth / image.ratio + }); + } + + if ($(".image-container", this).is(".list-item-avatar-cover")) { + $list_item_src.css( + isFixed + ? { width: "auto", height: "100%" } + : { width: "100%", height: "auto" } + ); + } + + var list_item_src_pitfall_x = Math.max( + $list_item_src.position().left * 2, + 0 + ), + list_item_src_pitfall_y = Math.max( + $list_item_src.position().top * 2, + 0 + ); + + var pitfall_ratio_x = list_item_src_pitfall_x / $list_item_img.width(), + pitfall_ratio_y = list_item_src_pitfall_y / $list_item_img.height(); + if ( + (list_item_src_pitfall_x > 0 || list_item_src_pitfall_y > 0) + && (pitfall_ratio_x <= 0.25 || pitfall_ratio_y <= 0.25) + ) { + $list_item_img.addClass("--fit"); + } + if ($list_item_thumbs.exists()) { + $("li", $list_item_thumbs) + .css({ width: 100 / $("li", $list_item_thumbs).length + "%" }) + .css({ height: $("li", $list_item_thumbs).width() }); + } + + if (!already_shown) { + $list_item.hide(); + } + } + + if (!$list_item_src.hasClass("jsly") && $(this).is(":hidden")) { + $(this).css("top", "100%"); + } + + PF.obj.listing.columns[PF.obj.listing.current_column] += $( + this + ).outerHeight(true); + + if ($(this).is(":animated")) { + animation_time = 0; + } + $(this).addClass("position-absolute"); + + var new_left = + $(this).outerWidth(true) * (PF.obj.listing.current_column - 1); + var must_change_left = parseFloat($(this).css("left")) != new_left; + if (must_change_left) { + animate_grid = true; + $(this).animate( + { + left: new_left + }, + animation_time + ); + } + + var new_top = + PF.obj.listing.columns[PF.obj.listing.current_column] - + $(this).outerHeight(true); + if (parseFloat($(this).css("top")) != new_top) { + animate_grid = true; + $(this).animate( + { + top: new_top + }, + animation_time + ); + if (must_change_left) { + delay = 1; + } + } + + if (already_shown) { + $list_item.show(); + } + + PF.obj.listing.current_column++; + }); + + $container.data({ + columns: PF.obj.listing.columns, + current_column: PF.obj.listing.current_column + }).attr('data-columns', PF.obj.listing.columns_number); + + var content_listing_height = 0; + $.each(PF.obj.listing.columns, function (i, v) { + if (v > content_listing_height) { + content_listing_height = v; + } + }); + + PF.obj.listing.width = $container.width(); + + if (typeof PF.obj.listing.height !== typeof undefined) { + var old_listing_height = PF.obj.listing.height; + } + PF.obj.listing.height = content_listing_height; + + var do_listing_h_resize = + typeof old_listing_height !== typeof undefined && + old_listing_height !== PF.obj.listing.height; + + if (!do_listing_h_resize) { + $pad_content_listing.height(content_listing_height); + PF.fn.list_fluid_width(); + } + + if (do_listing_h_resize) { + $pad_content_listing.height(old_listing_height); + setTimeout(function () { + $pad_content_listing.animate( + { height: content_listing_height }, + animation_time, + function () { + PF.fn.list_fluid_width(); + } + ); + }, animation_time * delay); + } + + $container.data("list-mode", PF.obj.listing.mode); + $(PF.obj.listing.selectors.content_listing_visible).data("queued", false); + + $container.addClass("jsly"); +}; + +/** + * PEAFOWL LOADERS + * ------------------------------------------------------------------------------------------------- + */ +PF.fn.loading = { + spin: { + small: { + lines: 11, + length: 0, + width: 3, + radius: 7, + speed: 1, + trail: 45, + blocksize: 20 + }, // 20x20 + normal: { + lines: 11, + length: 0, + width: 5, + radius: 10, + speed: 1, + trail: 45, + blocksize: 30 + }, // 30x30 + big: { + lines: 11, + length: 0, + width: 7, + radius: 13, + speed: 1, + trail: 45, + blocksize: 40 + }, // 40x40 + huge: { + lines: 11, + length: 0, + width: 9, + radius: 16, + speed: 1, + trail: 45, + blocksize: 50 + } // 50x50 + }, + inline: function ($target, options) { + if (typeof $target == "undefined") return; + + if ($target instanceof jQuery == false) { + var $target = $($target); + } + + var defaultoptions = { + size: "normal", + color: $("body").css("color"), + center: false, + position: "absolute", + shadow: false, + valign: "top" + }; + + if (typeof options == "undefined") { + options = defaultoptions; + } else { + for (var k in defaultoptions) { + if (typeof options[k] == "undefined") { + options[k] = defaultoptions[k]; + } + } + } + + var size = PF.fn.loading.spin[options.size]; + + PF.fn.loading.spin[options.size].color = options.color; + PF.fn.loading.spin[options.size].shadow = options.shadow; + + $target + .html( + '<span class="loading-indicator"></span>' + + (typeof options.message !== "undefined" + ? '<span class="loading-text">' + options.message + "</span>" + : "") + ) + .css({ + "line-height": PF.fn.loading.spin[options.size].blocksize + "px" + }); + + $(".loading-indicator", $target) + .css({ + width: PF.fn.loading.spin[options.size].blocksize, + height: PF.fn.loading.spin[options.size].blocksize + }) + .spin(PF.fn.loading.spin[options.size]); + + if (options.center) { + $(".loading-indicator", $target.css("textAlign", "center")).css({ + position: options.position, + top: "50%", + left: "50%", + marginTop: -(PF.fn.loading.spin[options.size].blocksize / 2), + marginLeft: -(PF.fn.loading.spin[options.size].blocksize / 2) + }); + } + if (options.valign == "center") { + $(".loading-indicator,.loading-text", $target).css( + "marginTop", + ($target.height() - PF.fn.loading.spin[options.size].blocksize) / 2 + + "px" + ); + } + + $(".spinner", $target).css({ + top: PF.fn.loading.spin[options.size].blocksize / 2 + "px", + left: PF.fn.loading.spin[options.size].blocksize / 2 + "px" + }); + }, + fullscreen: function () { + $("body").append( + '<div class="fullscreen" id="pf-fullscreen-loader"><div class="fullscreen-loader black-bkg"><span class="loading-txt">' + + PF.fn._s("loading") + + "</span></div></div>" + ); + $(".fullscreen-loader", "#pf-fullscreen-loader").spin( + PF.fn.loading.spin.huge + ); + $("#pf-fullscreen-loader").css("opacity", 1); + }, + destroy: function ($target) { + var $loader_fs = $("#pf-fullscreen-loader"), + $loader_os = $("#pf-onscreen-loader"); + + if ($target == "fullscreen") $target = $loader_fs; + if ($target == "onscreen") $target = $loader_os; + + if (typeof $target !== "undefined") { + $target.remove(); + } else { + $loader_fs.remove(); + $loader_os.remove(); + } + } +}; + +/** + * PEAFOWL FORM HELPERS + * ------------------------------------------------------------------------------------------------- + */ +jQuery.fn.disableForm = function () { + $(this).data("disabled", true); + $(":input", this).each(function () { + $(this).attr("disabled", true); + }); + return this; +}; +jQuery.fn.enableForm = function () { + $(this).data("disabled", false); + $(":input", this).removeAttr("disabled"); + return this; +}; + +PF.fn.isDevice = function (device) { + if (typeof device == "object") { + var device = "." + device.join(",."); + } else { + var device = "." + device; + } + return $("html").is(device); +}; + +PF.fn.getDeviceName = function () { + var current_device; + $.each(PF.obj.devices, function (i, v) { + if (PF.fn.isDevice(v)) { + current_device = v; + return true; + } + }); + return current_device; +}; + +PF.fn.topMenu = { + vars: { + $button: $("[data-action=top-bar-menu-full]", "#top-bar"), + menu: "#menu-fullscreen", + speed: PF.obj.config.animation.fast, + menu_top: + parseInt($("#top-bar").outerHeight()) + + parseInt($("#top-bar").css("top")) + + parseInt($("#top-bar").css("margin-top")) + + parseInt($("#top-bar").css("margin-bottom")) - + parseInt($("#top-bar").css("border-bottom-width")) + + "px" + }, + show: function (speed) { + if ($("body").is(":animated")) return; + + if (typeof speed == "undefined") { + var speed = this.vars.speed; + } + + this.vars.$button.addClass("current"); + $("html").addClass("menu-fullscreen-visible"); + $("#top-bar") + .append( + $("<div/>", { + id: "menu-fullscreen", + class: "touch-scroll", + html: $("<div/>", { + class: "fullscreen black", + }) + }) + .css({ + left: "-100%" + }) + .append( + $("<ul/>", { + html: $(".top-bar-left").html() + $(".top-bar-right").html() + }) + ) + ); + + var $menu = $(this.vars.menu); + + $( + "li.phone-hide, li > .top-btn-text, li > .top-btn-text > span, li > a > .top-btn-text > span", + $menu + ).each(function () { + $(this).removeClass("phone-hide"); + }); + $("[data-action=top-bar-menu-full]", $menu).remove(); + $( + ".btn.black, .btn.default, .btn.blue, .btn.green, .btn.orange, .btn.red, .btn.transparent", + $menu + ).removeClass("btn black default blue green orange red transparent"); + + setTimeout(function () { + $menu.css({ transform: "translateX(100%)" }); + $(".fullscreen").css("opacity", 1); + }, 1); + setTimeout(function () { + $menu.css({ transition: "none", transform: "", left: "" }); + $("html").css({ backgroundColor: "" }); + }, speed); + }, + hide: function (speed) { + if ($("body").is(":animated")) return; + + if (!$(this.vars.menu).is(":visible")) return; + var $menu = $(this.vars.menu); + if (typeof speed == "undefined") { + var speed = this.vars.speed; + } + $menu.css({transition: ""}); + setTimeout(function () { + $menu.css({ + transform: "translateX(-100%)" + }); + }, 1); + $("#top-bar").css("position", ""); + this.vars.$button.removeClass("current"); + $("html").removeClass("menu-fullscreen-visible"); + setTimeout(function () { + $menu.remove(); + }, speed); + } +}; + +/** + * JQUERY PLUGINS (strictly needed plugins) + * ------------------------------------------------------------------------------------------------- + */ + +// http://phpjs.org/functions/sprintf/ +function sprintf() { + var e = /%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g; + var t = arguments; + var n = 0; + var r = t[n++]; + var i = function (e, t, n, r) { + if (!n) { + n = " "; + } + var i = e.length >= t ? "" : new Array((1 + t - e.length) >>> 0).join(n); + return r ? e + i : i + e; + }; + var s = function (e, t, n, r, s, o) { + var u = r - e.length; + if (u > 0) { + if (n || !s) { + e = i(e, r, o, n); + } else { + e = e.slice(0, t.length) + i("", u, "0", true) + e.slice(t.length); + } + } + return e; + }; + var o = function (e, t, n, r, o, u, a) { + var f = e >>> 0; + n = (n && f && { 2: "0b", 8: "0", 16: "0x" }[t]) || ""; + e = n + i(f.toString(t), u || 0, "0", false); + return s(e, n, r, o, a); + }; + var u = function (e, t, n, r, i, o) { + if (r != null) { + e = e.slice(0, r); + } + return s(e, "", t, n, i, o); + }; + var a = function (e, r, a, f, l, c, h) { + var p, d, v, m, g; + if (e === "%%") { + return "%"; + } + var y = false; + var b = ""; + var w = false; + var E = false; + var S = " "; + var x = a.length; + for (var T = 0; a && T < x; T++) { + switch (a.charAt(T)) { + case " ": + b = " "; + break; + case "+": + b = "+"; + break; + case "-": + y = true; + break; + case "'": + S = a.charAt(T + 1); + break; + case "0": + w = true; + S = "0"; + break; + case "#": + E = true; + break; + } + } + if (!f) { + f = 0; + } else if (f === "*") { + f = +t[n++]; + } else if (f.charAt(0) == "*") { + f = +t[f.slice(1, -1)]; + } else { + f = +f; + } + if (f < 0) { + f = -f; + y = true; + } + if (!isFinite(f)) { + throw new Error("sprintf: (minimum-)width must be finite"); + } + if (!c) { + c = "fFeE".indexOf(h) > -1 ? 6 : h === "d" ? 0 : undefined; + } else if (c === "*") { + c = +t[n++]; + } else if (c.charAt(0) == "*") { + c = +t[c.slice(1, -1)]; + } else { + c = +c; + } + g = r ? t[r.slice(0, -1)] : t[n++]; + switch (h) { + case "s": + return u(String(g), y, f, c, w, S); + case "c": + return u(String.fromCharCode(+g), y, f, c, w); + case "b": + return o(g, 2, E, y, f, c, w); + case "o": + return o(g, 8, E, y, f, c, w); + case "x": + return o(g, 16, E, y, f, c, w); + case "X": + return o(g, 16, E, y, f, c, w).toUpperCase(); + case "u": + return o(g, 10, E, y, f, c, w); + case "i": + case "d": + p = +g || 0; + p = Math.round(p - (p % 1)); + d = p < 0 ? "-" : b; + g = d + i(String(Math.abs(p)), c, "0", false); + return s(g, d, y, f, w); + case "e": + case "E": + case "f": + case "F": + case "g": + case "G": + p = +g; + d = p < 0 ? "-" : b; + v = ["toExponential", "toFixed", "toPrecision"][ + "efg".indexOf(h.toLowerCase()) + ]; + m = ["toString", "toUpperCase"]["eEfFgG".indexOf(h) % 2]; + g = d + Math.abs(p)[v](c); + return s(g, d, y, f, w)[m](); + default: + return e; + } + }; + return r.replace(e, a); +} + +/*! + * imagesLoaded PACKAGED v4.1.4 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + +/** + * EvEmitter v1.1.0 + * Lil' event emitter + * MIT License + */ + +/* jshint unused: true, undef: true, strict: true */ + +( function( global, factory ) { + // universal module definition + /* jshint strict: false */ /* globals define, module, window */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'ev-emitter/ev-emitter',factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory(); + } else { + // Browser globals + global.EvEmitter = factory(); + } + + }( typeof window != 'undefined' ? window : this, function() { + + + + function EvEmitter() {} + + var proto = EvEmitter.prototype; + + proto.on = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // set events hash + var events = this._events = this._events || {}; + // set listeners array + var listeners = events[ eventName ] = events[ eventName ] || []; + // only add once + if ( listeners.indexOf( listener ) == -1 ) { + listeners.push( listener ); + } + + return this; + }; + + proto.once = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // add event + this.on( eventName, listener ); + // set once flag + // set onceEvents hash + var onceEvents = this._onceEvents = this._onceEvents || {}; + // set onceListeners object + var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; + // set flag + onceListeners[ listener ] = true; + + return this; + }; + + proto.off = function( eventName, listener ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + var index = listeners.indexOf( listener ); + if ( index != -1 ) { + listeners.splice( index, 1 ); + } + + return this; + }; + + proto.emitEvent = function( eventName, args ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + // copy over to avoid interference if .off() in listener + listeners = listeners.slice(0); + args = args || []; + // once stuff + var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; + + for ( var i=0; i < listeners.length; i++ ) { + var listener = listeners[i] + var isOnce = onceListeners && onceListeners[ listener ]; + if ( isOnce ) { + // remove listener + // remove before trigger to prevent recursion + this.off( eventName, listener ); + // unset once flag + delete onceListeners[ listener ]; + } + // trigger listener + listener.apply( this, args ); + } + + return this; + }; + + proto.allOff = function() { + delete this._events; + delete this._onceEvents; + }; + + return EvEmitter; + + })); + + /*! + * imagesLoaded v4.1.4 + * JavaScript is all like "You images are done yet or what?" + * MIT License + */ + + ( function( window, factory ) { 'use strict'; + // universal module definition + + /*global define: false, module: false, require: false */ + + if ( typeof define == 'function' && define.amd ) { + // AMD + define( [ + 'ev-emitter/ev-emitter' + ], function( EvEmitter ) { + return factory( window, EvEmitter ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('ev-emitter') + ); + } else { + // browser global + window.imagesLoaded = factory( + window, + window.EvEmitter + ); + } + + })( typeof window !== 'undefined' ? window : this, + + // -------------------------- factory -------------------------- // + + function factory( window, EvEmitter ) { + + + + var $ = window.jQuery; + var console = window.console; + + // -------------------------- helpers -------------------------- // + + // extend objects + function extend( a, b ) { + for ( var prop in b ) { + a[ prop ] = b[ prop ]; + } + return a; + } + + var arraySlice = Array.prototype.slice; + + // turn element or nodeList into an array + function makeArray( obj ) { + if ( Array.isArray( obj ) ) { + // use object if already an array + return obj; + } + + var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; + if ( isArrayLike ) { + // convert nodeList to array + return arraySlice.call( obj ); + } + + // array of single index + return [ obj ]; + } + + // -------------------------- imagesLoaded -------------------------- // + + /** + * @param {Array, Element, NodeList, String} elem + * @param {Object or Function} options - if function, use as callback + * @param {Function} onAlways - callback function + */ + function ImagesLoaded( elem, options, onAlways ) { + // coerce ImagesLoaded() without new, to be new ImagesLoaded() + if ( !( this instanceof ImagesLoaded ) ) { + return new ImagesLoaded( elem, options, onAlways ); + } + // use elem as selector string + var queryElem = elem; + if ( typeof elem == 'string' ) { + queryElem = document.querySelectorAll( elem ); + } + // bail if bad element + if ( !queryElem ) { + console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); + return; + } + + this.elements = makeArray( queryElem ); + this.options = extend( {}, this.options ); + // shift arguments if no options set + if ( typeof options == 'function' ) { + onAlways = options; + } else { + extend( this.options, options ); + } + + if ( onAlways ) { + this.on( 'always', onAlways ); + } + + this.getImages(); + + if ( $ ) { + // add jQuery Deferred object + this.jqDeferred = new $.Deferred(); + } + + // HACK check async to allow time to bind listeners + setTimeout( this.check.bind( this ) ); + } + + ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); + + ImagesLoaded.prototype.options = {}; + + ImagesLoaded.prototype.getImages = function() { + this.images = []; + + // filter & find items if we have an item selector + this.elements.forEach( this.addElementImages, this ); + }; + + /** + * @param {Node} element + */ + ImagesLoaded.prototype.addElementImages = function( elem ) { + // filter siblings + if ( elem.nodeName == 'IMG' ) { + this.addImage( elem ); + } + // get background image on element + if ( this.options.background === true ) { + this.addElementBackgroundImages( elem ); + } + + // find children + // no non-element nodes, #143 + var nodeType = elem.nodeType; + if ( !nodeType || !elementNodeTypes[ nodeType ] ) { + return; + } + var childImgs = elem.querySelectorAll('img'); + // concat childElems to filterFound array + for ( var i=0; i < childImgs.length; i++ ) { + var img = childImgs[i]; + this.addImage( img ); + } + + // get child background images + if ( typeof this.options.background == 'string' ) { + var children = elem.querySelectorAll( this.options.background ); + for ( i=0; i < children.length; i++ ) { + var child = children[i]; + this.addElementBackgroundImages( child ); + } + } + }; + + var elementNodeTypes = { + 1: true, + 9: true, + 11: true + }; + + ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { + var style = getComputedStyle( elem ); + if ( !style ) { + // Firefox returns null if in a hidden iframe https://bugzil.la/548397 + return; + } + // get url inside url("...") + var reURL = /url\((['"])?(.*?)\1\)/gi; + var matches = reURL.exec( style.backgroundImage ); + while ( matches !== null ) { + var url = matches && matches[2]; + if ( url ) { + this.addBackground( url, elem ); + } + matches = reURL.exec( style.backgroundImage ); + } + }; + + /** + * @param {Image} img + */ + ImagesLoaded.prototype.addImage = function( img ) { + var loadingImage = new LoadingImage( img ); + this.images.push( loadingImage ); + }; + + ImagesLoaded.prototype.addBackground = function( url, elem ) { + var background = new Background( url, elem ); + this.images.push( background ); + }; + + ImagesLoaded.prototype.check = function() { + var _this = this; + this.progressedCount = 0; + this.hasAnyBroken = false; + // complete if no images + if ( !this.images.length ) { + this.complete(); + return; + } + + function onProgress( image, elem, message ) { + // HACK - Chrome triggers event before object properties have changed. #83 + setTimeout( function() { + _this.progress( image, elem, message ); + }); + } + + this.images.forEach( function( loadingImage ) { + loadingImage.once( 'progress', onProgress ); + loadingImage.check(); + }); + }; + + ImagesLoaded.prototype.progress = function( image, elem, message ) { + this.progressedCount++; + this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; + // progress event + this.emitEvent( 'progress', [ this, image, elem ] ); + if ( this.jqDeferred && this.jqDeferred.notify ) { + this.jqDeferred.notify( this, image ); + } + // check if completed + if ( this.progressedCount == this.images.length ) { + this.complete(); + } + + if ( this.options.debug && console ) { + console.log( 'progress: ' + message, image, elem ); + } + }; + + ImagesLoaded.prototype.complete = function() { + var eventName = this.hasAnyBroken ? 'fail' : 'done'; + this.isComplete = true; + this.emitEvent( eventName, [ this ] ); + this.emitEvent( 'always', [ this ] ); + if ( this.jqDeferred ) { + var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; + this.jqDeferred[ jqMethod ]( this ); + } + }; + + // -------------------------- -------------------------- // + + function LoadingImage( img ) { + this.img = img; + } + + LoadingImage.prototype = Object.create( EvEmitter.prototype ); + + LoadingImage.prototype.check = function() { + // If complete is true and browser supports natural sizes, + // try to check for image status manually. + var isComplete = this.getIsImageComplete(); + if ( isComplete ) { + // report based on naturalWidth + this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); + return; + } + + // If none of the checks above matched, simulate loading on detached element. + this.proxyImage = new Image(); + this.proxyImage.addEventListener( 'load', this ); + this.proxyImage.addEventListener( 'error', this ); + // bind to image as well for Firefox. #191 + this.img.addEventListener( 'load', this ); + this.img.addEventListener( 'error', this ); + this.proxyImage.src = this.img.src; + }; + + LoadingImage.prototype.getIsImageComplete = function() { + // check for non-zero, non-undefined naturalWidth + // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 + return this.img.complete && this.img.naturalWidth; + }; + + LoadingImage.prototype.confirm = function( isLoaded, message ) { + this.isLoaded = isLoaded; + this.emitEvent( 'progress', [ this, this.img, message ] ); + }; + + // ----- events ----- // + + // trigger specified handler for event type + LoadingImage.prototype.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } + }; + + LoadingImage.prototype.onload = function() { + this.confirm( true, 'onload' ); + this.unbindEvents(); + }; + + LoadingImage.prototype.onerror = function() { + this.confirm( false, 'onerror' ); + this.unbindEvents(); + }; + + LoadingImage.prototype.unbindEvents = function() { + this.proxyImage.removeEventListener( 'load', this ); + this.proxyImage.removeEventListener( 'error', this ); + this.img.removeEventListener( 'load', this ); + this.img.removeEventListener( 'error', this ); + }; + + // -------------------------- Background -------------------------- // + + function Background( url, element ) { + this.url = url; + this.element = element; + this.img = new Image(); + } + + // inherit LoadingImage prototype + Background.prototype = Object.create( LoadingImage.prototype ); + + Background.prototype.check = function() { + this.img.addEventListener( 'load', this ); + this.img.addEventListener( 'error', this ); + this.img.src = this.url; + // check if image is already complete + var isComplete = this.getIsImageComplete(); + if ( isComplete ) { + this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); + this.unbindEvents(); + } + }; + + Background.prototype.unbindEvents = function() { + this.img.removeEventListener( 'load', this ); + this.img.removeEventListener( 'error', this ); + }; + + Background.prototype.confirm = function( isLoaded, message ) { + this.isLoaded = isLoaded; + this.emitEvent( 'progress', [ this, this.element, message ] ); + }; + + // -------------------------- jQuery -------------------------- // + + ImagesLoaded.makeJQueryPlugin = function( jQuery ) { + jQuery = jQuery || window.jQuery; + if ( !jQuery ) { + return; + } + // set local variable + $ = jQuery; + // $().imagesLoaded() + $.fn.imagesLoaded = function( options, callback ) { + var instance = new ImagesLoaded( this, options, callback ); + return instance.jqDeferred.promise( $(this) ); + }; + }; + // try making plugin + ImagesLoaded.makeJQueryPlugin(); + + // -------------------------- -------------------------- // + + return ImagesLoaded; + + }); + + +/** + * TipTip + * Copyright 2010 Drew Wilson + * code.drewwilson.com/entry/tiptip-jquery-plugin + * + * Version 1.3(modified) - Updated: Jun. 23, 2011 + * http://drew.tenderapp.com/discussions/tiptip/70-updated-tiptip-with-new-features + * + * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +(function ($) { + $.fn.tipTip = function (options) { + var defaults = { + activation: "hover", + keepAlive: false, + maxWidth: "200px", + edgeOffset: 6, + defaultPosition: "bottom", + delay: 400, + fadeIn: 200, + fadeOut: 200, + attribute: "title", + content: false, + enter: function () { }, + afterEnter: function () { }, + exit: function () { }, + afterExit: function () { }, + cssClass: "" + }; + if ($("#tiptip_holder").length <= 0) { + var tiptip_holder = $('<div id="tiptip_holder"></div>'); + var tiptip_content = $('<div id="tiptip_content"></div>'); + var tiptip_arrow = $('<div id="tiptip_arrow"></div>'); + $("body").append( + tiptip_holder + .html(tiptip_content) + .prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')) + ); + } else { + var tiptip_holder = $("#tiptip_holder"); + var tiptip_content = $("#tiptip_content"); + var tiptip_arrow = $("#tiptip_arrow"); + } + return this.each(function () { + var org_elem = $(this), + data = org_elem.data("tipTip"), + opts = (data && data.options) || $.extend(defaults, options), + callback_data = { + holder: tiptip_holder, + content: tiptip_content, + arrow: tiptip_arrow, + options: opts + }; + if (data) { + switch (options) { + case "show": + active_tiptip(); + break; + case "hide": + deactive_tiptip(); + break; + case "destroy": + org_elem.unbind(".tipTip").removeData("tipTip"); + break; + } + } else { + var timeout = false; + org_elem.data("tipTip", { options: opts }); + if (opts.activation == "hover") { + org_elem + .bind("mouseenter.tipTip", function () { + active_tiptip(); + }) + .bind("mouseleave.tipTip", function () { + if (!opts.keepAlive) { + deactive_tiptip(); + } else { + tiptip_holder.one("mouseleave.tipTip", function () { + deactive_tiptip(); + }); + } + }); + } else { + if (opts.activation == "focus") { + org_elem + .bind("focus.tipTip", function () { + active_tiptip(); + }) + .bind("blur.tipTip", function () { + deactive_tiptip(); + }); + } else { + if (opts.activation == "click") { + org_elem + .bind("click.tipTip", function (e) { + e.preventDefault(); + active_tiptip(); + return false; + }) + .bind("mouseleave.tipTip", function () { + if (!opts.keepAlive) { + deactive_tiptip(); + } else { + tiptip_holder.one("mouseleave.tipTip", function () { + deactive_tiptip(); + }); + } + }); + } else { + if (opts.activation == "manual") { + } + } + } + } + } + function active_tiptip() { + if (opts.enter.call(org_elem, callback_data) === false) { + return; + } + var org_title; + if (opts.content) { + org_title = $.isFunction(opts.content) + ? opts.content.call(org_elem, callback_data) + : opts.content; + } else { + org_title = opts.content = org_elem.attr(opts.attribute); + org_elem.removeAttr(opts.attribute); + } + if (!org_title) { + return; + } + tiptip_content.html(org_title); + tiptip_holder + .hide() + .removeAttr("class") + .css({ margin: "0px", "max-width": opts.maxWidth }); + if (opts.cssClass) { + tiptip_holder.addClass(opts.cssClass); + } + tiptip_arrow.removeAttr("style"); + var top = parseInt(org_elem.offset()["top"]), + left = parseInt(org_elem.offset()["left"]), + org_width = parseInt(org_elem.outerWidth()), + org_height = parseInt(org_elem.outerHeight()), + tip_w = tiptip_holder.outerWidth(), + tip_h = tiptip_holder.outerHeight(), + w_compare = Math.round((org_width - tip_w) / 2), + h_compare = Math.round((org_height - tip_h) / 2), + marg_left = Math.round(left + w_compare), + marg_top = Math.round(top + org_height + opts.edgeOffset), + t_class = "", + arrow_top = "", + arrow_left = Math.round(tip_w - 12) / 2; + if (opts.defaultPosition == "bottom") { + t_class = "_bottom"; + } else { + if (opts.defaultPosition == "top") { + t_class = "_top"; + } else { + if (opts.defaultPosition == "left") { + t_class = "_left"; + } else { + if (opts.defaultPosition == "right") { + t_class = "_right"; + } + } + } + } + var right_compare = w_compare + left < parseInt($(window).scrollLeft()), + left_compare = tip_w + left > parseInt($(window).width()); + if ( + (right_compare && w_compare < 0) || + (t_class == "_right" && !left_compare) || + (t_class == "_left" && left < tip_w + opts.edgeOffset + 5) + ) { + t_class = "_right"; + arrow_top = Math.round(tip_h - 13) / 2; + arrow_left = -12; + marg_left = Math.round(left + org_width + opts.edgeOffset); + marg_top = Math.round(top + h_compare); + } else { + if ( + (left_compare && w_compare < 0) || + (t_class == "_left" && !right_compare) + ) { + t_class = "_left"; + arrow_top = Math.round(tip_h - 13) / 2; + arrow_left = Math.round(tip_w); + marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5)); + marg_top = Math.round(top + h_compare); + } + } + var top_compare = + top + org_height + opts.edgeOffset + tip_h + 8 > + parseInt($(window).height() + $(window).scrollTop()), + bottom_compare = top + org_height - (opts.edgeOffset + tip_h + 8) < 0; + if ( + top_compare || + (t_class == "_bottom" && top_compare) || + (t_class == "_top" && !bottom_compare) + ) { + if (t_class == "_top" || t_class == "_bottom") { + t_class = "_top"; + } else { + t_class = t_class + "_top"; + } + arrow_top = tip_h; + marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset)); + } else { + if ( + bottom_compare | (t_class == "_top" && bottom_compare) || + (t_class == "_bottom" && !top_compare) + ) { + if (t_class == "_top" || t_class == "_bottom") { + t_class = "_bottom"; + } else { + t_class = t_class + "_bottom"; + } + arrow_top = -12; + marg_top = Math.round(top + org_height + opts.edgeOffset); + } + } + if (t_class == "_right_top" || t_class == "_left_top") { + marg_top = marg_top + 5; + } else { + if (t_class == "_right_bottom" || t_class == "_left_bottom") { + marg_top = marg_top - 5; + } + } + if (t_class == "_left_top" || t_class == "_left_bottom") { + marg_left = marg_left + 5; + } + tiptip_arrow.css({ + "margin-left": arrow_left + "px", + "margin-top": arrow_top + "px" + }); + tiptip_holder + .css({ + "margin-left": marg_left + "px", + "margin-top": marg_top + "px" + }) + .addClass("tip" + t_class); + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + tiptip_holder.stop(true, true).fadeIn(opts.fadeIn); + }, opts.delay); + opts.afterEnter.call(org_elem, callback_data); + } + function deactive_tiptip() { + if (opts.exit.call(org_elem, callback_data) === false) { + return; + } + if (timeout) { + clearTimeout(timeout); + } + tiptip_holder.fadeOut(opts.fadeOut); + opts.afterExit.call(org_elem, callback_data); + } + }); + }; +})(jQuery); + +/** + * jQuery UI Touch Punch 0.2.2 + * Copyright 2011, Dave Furfero + * Dual licensed under the MIT or GPL Version 2 licenses. + * Depends: jquery.ui.widget jquery.ui.mouse + */ +(function (b) { + b.support.touch = "ontouchend" in document; + if (!b.support.touch) { + return; + } + var c = b.ui.mouse.prototype, + e = c._mouseInit, + a; + function d(g, h) { + if (g.originalEvent.touches.length > 1) { + return; + } + g.preventDefault(); + var i = g.originalEvent.changedTouches[0], + f = document.createEvent("MouseEvents"); + f.initMouseEvent( + h, + true, + true, + window, + 1, + i.screenX, + i.screenY, + i.clientX, + i.clientY, + false, + false, + false, + false, + 0, + null + ); + g.target.dispatchEvent(f); + } + c._touchStart = function (g) { + var f = this; + if (a || !f._mouseCapture(g.originalEvent.changedTouches[0])) { + return; + } + a = true; + f._touchMoved = false; + d(g, "mouseover"); + d(g, "mousemove"); + d(g, "mousedown"); + }; + c._touchMove = function (f) { + if (!a) { + return; + } + this._touchMoved = true; + d(f, "mousemove"); + }; + c._touchEnd = function (f) { + if (!a) { + return; + } + d(f, "mouseup"); + d(f, "mouseout"); + if (!this._touchMoved) { + d(f, "click"); + } + a = false; + }; + c._mouseInit = function () { + var f = this; + f.element + .bind("touchstart", b.proxy(f, "_touchStart")) + .bind("touchmove", b.proxy(f, "_touchMove")) + .bind("touchend", b.proxy(f, "_touchEnd")); + e.call(f); + }; +})(jQuery); + +/** + * fileOverview TouchSwipe - jQuery Plugin + * version 1.6.5 + */ +(function (a) { + if (typeof define === "function" && define.amd && define.amd.jQuery) { + define(["jquery"], a); + } else { + a(jQuery); + } +})(function (e) { + var o = "left", + n = "right", + d = "up", + v = "down", + c = "in", + w = "out", + l = "none", + r = "auto", + k = "swipe", + s = "pinch", + x = "tap", + i = "doubletap", + b = "longtap", + A = "horizontal", + t = "vertical", + h = "all", + q = 10, + f = "start", + j = "move", + g = "end", + p = "cancel", + a = "ontouchstart" in window, + y = "TouchSwipe"; + var m = { + fingers: 1, + threshold: 75, + cancelThreshold: null, + pinchThreshold: 20, + maxTimeThreshold: null, + fingerReleaseThreshold: 250, + longTapThreshold: 500, + doubleTapThreshold: 200, + swipe: null, + swipeLeft: null, + swipeRight: null, + swipeUp: null, + swipeDown: null, + swipeStatus: null, + pinchIn: null, + pinchOut: null, + pinchStatus: null, + click: null, + tap: null, + doubleTap: null, + longTap: null, + triggerOnTouchEnd: true, + triggerOnTouchLeave: false, + allowPageScroll: "auto", + fallbackToMouseEvents: true, + excludedElements: "label, button, input, select, textarea, a, .noSwipe" + }; + e.fn.swipe = function (D) { + var C = e(this), + B = C.data(y); + if (B && typeof D === "string") { + if (B[D]) { + return B[D].apply(this, Array.prototype.slice.call(arguments, 1)); + } else { + e.error("Method " + D + " does not exist on jQuery.swipe"); + } + } else { + if (!B && (typeof D === "object" || !D)) { + return u.apply(this, arguments); + } + } + return C; + }; + e.fn.swipe.defaults = m; + e.fn.swipe.phases = { + PHASE_START: f, + PHASE_MOVE: j, + PHASE_END: g, + PHASE_CANCEL: p + }; + e.fn.swipe.directions = { LEFT: o, RIGHT: n, UP: d, DOWN: v, IN: c, OUT: w }; + e.fn.swipe.pageScroll = { NONE: l, HORIZONTAL: A, VERTICAL: t, AUTO: r }; + e.fn.swipe.fingers = { ONE: 1, TWO: 2, THREE: 3, ALL: h }; + function u(B) { + if ( + B && + (B.allowPageScroll === undefined && + (B.swipe !== undefined || B.swipeStatus !== undefined)) + ) { + B.allowPageScroll = l; + } + if (B.click !== undefined && B.tap === undefined) { + B.tap = B.click; + } + if (!B) { + B = {}; + } + B = e.extend({}, e.fn.swipe.defaults, B); + return this.each(function () { + var D = e(this); + var C = D.data(y); + if (!C) { + C = new z(this, B); + D.data(y, C); + } + }); + } + function z(a0, aq) { + var av = a || !aq.fallbackToMouseEvents, + G = av ? "touchstart" : "mousedown", + au = av ? "touchmove" : "mousemove", + R = av ? "touchend" : "mouseup", + P = av ? null : "mouseleave", + az = "touchcancel"; + var ac = 0, + aL = null, + Y = 0, + aX = 0, + aV = 0, + D = 1, + am = 0, + aF = 0, + J = null; + var aN = e(a0); + var W = "start"; + var T = 0; + var aM = null; + var Q = 0, + aY = 0, + a1 = 0, + aa = 0, + K = 0; + var aS = null; + try { + aN.bind(G, aJ); + aN.bind(az, a5); + } catch (ag) { + e.error("events not supported " + G + "," + az + " on jQuery.swipe"); + } + this.enable = function () { + aN.bind(G, aJ); + aN.bind(az, a5); + return aN; + }; + this.disable = function () { + aG(); + return aN; + }; + this.destroy = function () { + aG(); + aN.data(y, null); + return aN; + }; + this.option = function (a8, a7) { + if (aq[a8] !== undefined) { + if (a7 === undefined) { + return aq[a8]; + } else { + aq[a8] = a7; + } + } else { + e.error("Option " + a8 + " does not exist on jQuery.swipe.options"); + } + return null; + }; + function aJ(a9) { + if (ax()) { + return; + } + if (e(a9.target).closest(aq.excludedElements, aN).length > 0) { + return; + } + var ba = a9.originalEvent ? a9.originalEvent : a9; + var a8, + a7 = a ? ba.touches[0] : ba; + W = f; + if (a) { + T = ba.touches.length; + } else { + a9.preventDefault(); + } + ac = 0; + aL = null; + aF = null; + Y = 0; + aX = 0; + aV = 0; + D = 1; + am = 0; + aM = af(); + J = X(); + O(); + if (!a || (T === aq.fingers || aq.fingers === h) || aT()) { + ae(0, a7); + Q = ao(); + if (T == 2) { + ae(1, ba.touches[1]); + aX = aV = ap(aM[0].start, aM[1].start); + } + if (aq.swipeStatus || aq.pinchStatus) { + a8 = L(ba, W); + } + } else { + a8 = false; + } + if (a8 === false) { + W = p; + L(ba, W); + return a8; + } else { + ak(true); + } + return null; + } + function aZ(ba) { + var bd = ba.originalEvent ? ba.originalEvent : ba; + if (W === g || W === p || ai()) { + return; + } + var a9, + a8 = a ? bd.touches[0] : bd; + var bb = aD(a8); + aY = ao(); + if (a) { + T = bd.touches.length; + } + W = j; + if (T == 2) { + if (aX == 0) { + ae(1, bd.touches[1]); + aX = aV = ap(aM[0].start, aM[1].start); + } else { + aD(bd.touches[1]); + aV = ap(aM[0].end, aM[1].end); + aF = an(aM[0].end, aM[1].end); + } + D = a3(aX, aV); + am = Math.abs(aX - aV); + } + if (T === aq.fingers || aq.fingers === h || !a || aT()) { + aL = aH(bb.start, bb.end); + ah(ba, aL); + ac = aO(bb.start, bb.end); + Y = aI(); + aE(aL, ac); + if (aq.swipeStatus || aq.pinchStatus) { + a9 = L(bd, W); + } + if (!aq.triggerOnTouchEnd || aq.triggerOnTouchLeave) { + var a7 = true; + if (aq.triggerOnTouchLeave) { + var bc = aU(this); + a7 = B(bb.end, bc); + } + if (!aq.triggerOnTouchEnd && a7) { + W = ay(j); + } else { + if (aq.triggerOnTouchLeave && !a7) { + W = ay(g); + } + } + if (W == p || W == g) { + L(bd, W); + } + } + } else { + W = p; + L(bd, W); + } + if (a9 === false) { + W = p; + L(bd, W); + } + } + function I(a7) { + var a8 = a7.originalEvent; + if (a) { + if (a8.touches.length > 0) { + C(); + return true; + } + } + if (ai()) { + T = aa; + } + a7.preventDefault(); + aY = ao(); + Y = aI(); + if (a6()) { + W = p; + L(a8, W); + } else { + if ( + aq.triggerOnTouchEnd || + (aq.triggerOnTouchEnd == false && W === j) + ) { + W = g; + L(a8, W); + } else { + if (!aq.triggerOnTouchEnd && a2()) { + W = g; + aB(a8, W, x); + } else { + if (W === j) { + W = p; + L(a8, W); + } + } + } + } + ak(false); + return null; + } + function a5() { + T = 0; + aY = 0; + Q = 0; + aX = 0; + aV = 0; + D = 1; + O(); + ak(false); + } + function H(a7) { + var a8 = a7.originalEvent; + if (aq.triggerOnTouchLeave) { + W = ay(g); + L(a8, W); + } + } + function aG() { + aN.unbind(G, aJ); + aN.unbind(az, a5); + aN.unbind(au, aZ); + aN.unbind(R, I); + if (P) { + aN.unbind(P, H); + } + ak(false); + } + function ay(bb) { + var ba = bb; + var a9 = aw(); + var a8 = aj(); + var a7 = a6(); + if (!a9 || a7) { + ba = p; + } else { + if ( + a8 && + bb == j && + (!aq.triggerOnTouchEnd || aq.triggerOnTouchLeave) + ) { + ba = g; + } else { + if (!a8 && bb == g && aq.triggerOnTouchLeave) { + ba = p; + } + } + } + return ba; + } + function L(a9, a7) { + var a8 = undefined; + if (F() || S()) { + a8 = aB(a9, a7, k); + } else { + if ((M() || aT()) && a8 !== false) { + a8 = aB(a9, a7, s); + } + } + if (aC() && a8 !== false) { + a8 = aB(a9, a7, i); + } else { + if (al() && a8 !== false) { + a8 = aB(a9, a7, b); + } else { + if (ad() && a8 !== false) { + a8 = aB(a9, a7, x); + } + } + } + if (a7 === p) { + a5(a9); + } + if (a7 === g) { + if (a) { + if (a9.touches.length == 0) { + a5(a9); + } + } else { + a5(a9); + } + } + return a8; + } + function aB(ba, a7, a9) { + var a8 = undefined; + if (a9 == k) { + aN.trigger("swipeStatus", [a7, aL || null, ac || 0, Y || 0, T]); + if (aq.swipeStatus) { + a8 = aq.swipeStatus.call(aN, ba, a7, aL || null, ac || 0, Y || 0, T); + if (a8 === false) { + return false; + } + } + if (a7 == g && aR()) { + aN.trigger("swipe", [aL, ac, Y, T]); + if (aq.swipe) { + a8 = aq.swipe.call(aN, ba, aL, ac, Y, T); + if (a8 === false) { + return false; + } + } + switch (aL) { + case o: + aN.trigger("swipeLeft", [aL, ac, Y, T]); + if (aq.swipeLeft) { + a8 = aq.swipeLeft.call(aN, ba, aL, ac, Y, T); + } + break; + case n: + aN.trigger("swipeRight", [aL, ac, Y, T]); + if (aq.swipeRight) { + a8 = aq.swipeRight.call(aN, ba, aL, ac, Y, T); + } + break; + case d: + aN.trigger("swipeUp", [aL, ac, Y, T]); + if (aq.swipeUp) { + a8 = aq.swipeUp.call(aN, ba, aL, ac, Y, T); + } + break; + case v: + aN.trigger("swipeDown", [aL, ac, Y, T]); + if (aq.swipeDown) { + a8 = aq.swipeDown.call(aN, ba, aL, ac, Y, T); + } + break; + } + } + } + if (a9 == s) { + aN.trigger("pinchStatus", [a7, aF || null, am || 0, Y || 0, T, D]); + if (aq.pinchStatus) { + a8 = aq.pinchStatus.call( + aN, + ba, + a7, + aF || null, + am || 0, + Y || 0, + T, + D + ); + if (a8 === false) { + return false; + } + } + if (a7 == g && a4()) { + switch (aF) { + case c: + aN.trigger("pinchIn", [aF || null, am || 0, Y || 0, T, D]); + if (aq.pinchIn) { + a8 = aq.pinchIn.call(aN, ba, aF || null, am || 0, Y || 0, T, D); + } + break; + case w: + aN.trigger("pinchOut", [aF || null, am || 0, Y || 0, T, D]); + if (aq.pinchOut) { + a8 = aq.pinchOut.call( + aN, + ba, + aF || null, + am || 0, + Y || 0, + T, + D + ); + } + break; + } + } + } + if (a9 == x) { + if (a7 === p || a7 === g) { + clearTimeout(aS); + if (V() && !E()) { + K = ao(); + aS = setTimeout( + e.proxy(function () { + K = null; + aN.trigger("tap", [ba.target]); + if (aq.tap) { + a8 = aq.tap.call(aN, ba, ba.target); + } + }, this), + aq.doubleTapThreshold + ); + } else { + K = null; + aN.trigger("tap", [ba.target]); + if (aq.tap) { + a8 = aq.tap.call(aN, ba, ba.target); + } + } + } + } else { + if (a9 == i) { + if (a7 === p || a7 === g) { + clearTimeout(aS); + K = null; + aN.trigger("doubletap", [ba.target]); + if (aq.doubleTap) { + a8 = aq.doubleTap.call(aN, ba, ba.target); + } + } + } else { + if (a9 == b) { + if (a7 === p || a7 === g) { + clearTimeout(aS); + K = null; + aN.trigger("longtap", [ba.target]); + if (aq.longTap) { + a8 = aq.longTap.call(aN, ba, ba.target); + } + } + } + } + } + return a8; + } + function aj() { + var a7 = true; + if (aq.threshold !== null) { + a7 = ac >= aq.threshold; + } + return a7; + } + function a6() { + var a7 = false; + if (aq.cancelThreshold !== null && aL !== null) { + a7 = aP(aL) - ac >= aq.cancelThreshold; + } + return a7; + } + function ab() { + if (aq.pinchThreshold !== null) { + return am >= aq.pinchThreshold; + } + return true; + } + function aw() { + var a7; + if (aq.maxTimeThreshold) { + if (Y >= aq.maxTimeThreshold) { + a7 = false; + } else { + a7 = true; + } + } else { + a7 = true; + } + return a7; + } + function ah(a7, a8) { + if (aq.allowPageScroll === l || aT()) { + a7.preventDefault(); + } else { + var a9 = aq.allowPageScroll === r; + switch (a8) { + case o: + if ((aq.swipeLeft && a9) || (!a9 && aq.allowPageScroll != A)) { + a7.preventDefault(); + } + break; + case n: + if ((aq.swipeRight && a9) || (!a9 && aq.allowPageScroll != A)) { + a7.preventDefault(); + } + break; + case d: + if ((aq.swipeUp && a9) || (!a9 && aq.allowPageScroll != t)) { + a7.preventDefault(); + } + break; + case v: + if ((aq.swipeDown && a9) || (!a9 && aq.allowPageScroll != t)) { + a7.preventDefault(); + } + break; + } + } + } + function a4() { + var a8 = aK(); + var a7 = U(); + var a9 = ab(); + return a8 && a7 && a9; + } + function aT() { + return !!(aq.pinchStatus || aq.pinchIn || aq.pinchOut); + } + function M() { + return !!(a4() && aT()); + } + function aR() { + var ba = aw(); + var bc = aj(); + var a9 = aK(); + var a7 = U(); + var a8 = a6(); + var bb = !a8 && a7 && a9 && bc && ba; + return bb; + } + function S() { + return !!( + aq.swipe || + aq.swipeStatus || + aq.swipeLeft || + aq.swipeRight || + aq.swipeUp || + aq.swipeDown + ); + } + function F() { + return !!(aR() && S()); + } + function aK() { + return T === aq.fingers || aq.fingers === h || !a; + } + function U() { + return aM[0].end.x !== 0; + } + function a2() { + return !!aq.tap; + } + function V() { + return !!aq.doubleTap; + } + function aQ() { + return !!aq.longTap; + } + function N() { + if (K == null) { + return false; + } + var a7 = ao(); + return V() && a7 - K <= aq.doubleTapThreshold; + } + function E() { + return N(); + } + function at() { + return (T === 1 || !a) && (isNaN(ac) || ac === 0); + } + function aW() { + return Y > aq.longTapThreshold && ac < q; + } + function ad() { + return !!(at() && a2()); + } + function aC() { + return !!(N() && V()); + } + function al() { + return !!(aW() && aQ()); + } + function C() { + a1 = ao(); + aa = event.touches.length + 1; + } + function O() { + a1 = 0; + aa = 0; + } + function ai() { + var a7 = false; + if (a1) { + var a8 = ao() - a1; + if (a8 <= aq.fingerReleaseThreshold) { + a7 = true; + } + } + return a7; + } + function ax() { + return !!(aN.data(y + "_intouch") === true); + } + function ak(a7) { + if (a7 === true) { + aN.bind(au, aZ); + aN.bind(R, I); + if (P) { + aN.bind(P, H); + } + } else { + aN.unbind(au, aZ, false); + aN.unbind(R, I, false); + if (P) { + aN.unbind(P, H, false); + } + } + aN.data(y + "_intouch", a7 === true); + } + function ae(a8, a7) { + var a9 = a7.identifier !== undefined ? a7.identifier : 0; + aM[a8].identifier = a9; + aM[a8].start.x = aM[a8].end.x = a7.pageX || a7.clientX; + aM[a8].start.y = aM[a8].end.y = a7.pageY || a7.clientY; + return aM[a8]; + } + function aD(a7) { + var a9 = a7.identifier !== undefined ? a7.identifier : 0; + var a8 = Z(a9); + a8.end.x = a7.pageX || a7.clientX; + a8.end.y = a7.pageY || a7.clientY; + return a8; + } + function Z(a8) { + for (var a7 = 0; a7 < aM.length; a7++) { + if (aM[a7].identifier == a8) { + return aM[a7]; + } + } + } + function af() { + var a7 = []; + for (var a8 = 0; a8 <= 5; a8++) { + a7.push({ start: { x: 0, y: 0 }, end: { x: 0, y: 0 }, identifier: 0 }); + } + return a7; + } + function aE(a7, a8) { + a8 = Math.max(a8, aP(a7)); + J[a7].distance = a8; + } + function aP(a7) { + if (J[a7]) { + return J[a7].distance; + } + return undefined; + } + function X() { + var a7 = {}; + a7[o] = ar(o); + a7[n] = ar(n); + a7[d] = ar(d); + a7[v] = ar(v); + return a7; + } + function ar(a7) { + return { direction: a7, distance: 0 }; + } + function aI() { + return aY - Q; + } + function ap(ba, a9) { + var a8 = Math.abs(ba.x - a9.x); + var a7 = Math.abs(ba.y - a9.y); + return Math.round(Math.sqrt(a8 * a8 + a7 * a7)); + } + function a3(a7, a8) { + var a9 = (a8 / a7) * 1; + return a9.toFixed(2); + } + function an() { + if (D < 1) { + return w; + } else { + return c; + } + } + function aO(a8, a7) { + return Math.round( + Math.sqrt(Math.pow(a7.x - a8.x, 2) + Math.pow(a7.y - a8.y, 2)) + ); + } + function aA(ba, a8) { + var a7 = ba.x - a8.x; + var bc = a8.y - ba.y; + var a9 = Math.atan2(bc, a7); + var bb = Math.round((a9 * 180) / Math.PI); + if (bb < 0) { + bb = 360 - Math.abs(bb); + } + return bb; + } + function aH(a8, a7) { + var a9 = aA(a8, a7); + if (a9 <= 45 && a9 >= 0) { + return o; + } else { + if (a9 <= 360 && a9 >= 315) { + return o; + } else { + if (a9 >= 135 && a9 <= 225) { + return n; + } else { + if (a9 > 45 && a9 < 135) { + return v; + } else { + return d; + } + } + } + } + } + function ao() { + var a7 = new Date(); + return a7.getTime(); + } + function aU(a7) { + a7 = e(a7); + var a9 = a7.offset(); + var a8 = { + left: a9.left, + right: a9.left + a7.outerWidth(), + top: a9.top, + bottom: a9.top + a7.outerHeight() + }; + return a8; + } + function B(a7, a8) { + return ( + a7.x > a8.left && a7.x < a8.right && a7.y > a8.top && a7.y < a8.bottom + ); + } + } +}); + +/* + * JavaScript Load Image v2.7.0* (added S.originalWidth and S.originalHeight) + * https://github.com/blueimp/JavaScript-Load-Image + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ +!(function (e) { + "use strict"; + function t(e, i, a) { + var o, + r = document.createElement("img"); + if ( + ((r.onerror = function (o) { + return t.onerror(r, o, e, i, a); + }), + (r.onload = function (o) { + return t.onload(r, o, e, i, a); + }), + t.isInstanceOf("Blob", e) || t.isInstanceOf("File", e)) + ) + o = r._objectURL = t.createObjectURL(e); + else { + if ("string" != typeof e) return !1; + (o = e), a && a.crossOrigin && (r.crossOrigin = a.crossOrigin); + } + return o + ? ((r.src = o), r) + : t.readFile(e, function (e) { + var t = e.target; + t && t.result ? (r.src = t.result) : i && i(e); + }); + } + function i(e, i) { + !e._objectURL || + (i && i.noRevoke) || + (t.revokeObjectURL(e._objectURL), delete e._objectURL); + } + var a = + (window.createObjectURL && window) || + (window.URL && URL.revokeObjectURL && URL) || + (window.webkitURL && webkitURL); + (t.isInstanceOf = function (e, t) { + return Object.prototype.toString.call(t) === "[object " + e + "]"; + }), + (t.transform = function (e, i, a, o, r) { + a(t.scale(e, i, r), r); + }), + (t.onerror = function (e, t, a, o, r) { + i(e, r), o && o.call(e, t); + }), + (t.onload = function (e, a, o, r, n) { + i(e, n), r && t.transform(e, n, r, o, {}); + }), + (t.transformCoordinates = function () { }), + (t.getTransformedOptions = function (e, t) { + var i, + a, + o, + r, + n = t.aspectRatio; + if (!n) return t; + i = {}; + for (a in t) t.hasOwnProperty(a) && (i[a] = t[a]); + return ( + (i.crop = !0), + (o = e.naturalWidth || e.width), + (r = e.naturalHeight || e.height), + o / r > n + ? ((i.maxWidth = r * n), (i.maxHeight = r)) + : ((i.maxWidth = o), (i.maxHeight = o / n)), + i + ); + }), + (t.renderImageToCanvas = function (e, t, i, a, o, r, n, s, l, d) { + return e.getContext("2d").drawImage(t, i, a, o, r, n, s, l, d), e; + }), + (t.hasCanvasOption = function (e) { + return e.canvas || e.crop || !!e.aspectRatio; + }), + (t.scale = function (e, i, a) { + function o() { + var e = Math.max((l || v) / v, (d || P) / P); + e > 1 && ((v *= e), (P *= e)); + } + function r() { + var e = Math.min((n || v) / v, (s || P) / P); + e < 1 && ((v *= e), (P *= e)); + } + i = i || {}; + var n, + s, + l, + d, + u, + c, + f, + g, + h, + m, + p, + S = document.createElement("canvas"), + b = e.getContext || (t.hasCanvasOption(i) && S.getContext), + x = e.naturalWidth || e.width, + y = e.naturalHeight || e.height, + v = x, + P = y; + S.originalWidth = x; + S.originalHeight = y; + if ( + (b && + ((i = t.getTransformedOptions(e, i, a)), + (f = i.left || 0), + (g = i.top || 0), + i.sourceWidth + ? ((u = i.sourceWidth), + void 0 !== i.right && void 0 === i.left && (f = x - u - i.right)) + : (u = x - f - (i.right || 0)), + i.sourceHeight + ? ((c = i.sourceHeight), + void 0 !== i.bottom && void 0 === i.top && (g = y - c - i.bottom)) + : (c = y - g - (i.bottom || 0)), + (v = u), + (P = c)), + (n = i.maxWidth), + (s = i.maxHeight), + (l = i.minWidth), + (d = i.minHeight), + b && n && s && i.crop + ? ((v = n), + (P = s), + (p = u / c - n / s), + p < 0 + ? ((c = (s * u) / n), + void 0 === i.top && void 0 === i.bottom && (g = (y - c) / 2)) + : p > 0 && + ((u = (n * c) / s), + void 0 === i.left && void 0 === i.right && (f = (x - u) / 2))) + : ((i.contain || i.cover) && ((l = n = n || l), (d = s = s || d)), + i.cover ? (r(), o()) : (o(), r())), + b) + ) { + if ( + ((h = i.pixelRatio), + h > 1 && + ((S.style.width = v + "px"), + (S.style.height = P + "px"), + (v *= h), + (P *= h), + S.getContext("2d").scale(h, h)), + (m = i.downsamplingRatio), + m > 0 && m < 1 && v < u && P < c) + ) + for (; u * m > v;) + (S.width = u * m), + (S.height = c * m), + t.renderImageToCanvas(S, e, f, g, u, c, 0, 0, S.width, S.height), + (u = S.width), + (c = S.height), + (e = document.createElement("canvas")), + (e.width = u), + (e.height = c), + t.renderImageToCanvas(e, S, 0, 0, u, c, 0, 0, u, c); + return ( + (S.width = v), + (S.height = P), + t.transformCoordinates(S, i), + t.renderImageToCanvas(S, e, f, g, u, c, 0, 0, v, P) + ); + } + return (e.width = v), (e.height = P), e; + }), + (t.createObjectURL = function (e) { + return !!a && a.createObjectURL(e); + }), + (t.revokeObjectURL = function (e) { + return !!a && a.revokeObjectURL(e); + }), + (t.readFile = function (e, t, i) { + if (window.FileReader) { + var a = new FileReader(); + if (((a.onload = a.onerror = t), (i = i || "readAsDataURL"), a[i])) + return a[i](e), a; + } + return !1; + }), + "function" == typeof define && define.amd + ? define(function () { + return t; + }) + : "object" == typeof module && module.exports + ? (module.exports = t) + : (e.loadImage = t); +})(window), + (function (e) { + "use strict"; + "function" == typeof define && define.amd + ? define(["./load-image"], e) + : e( + "object" == typeof module && module.exports + ? require("./load-image") + : window.loadImage + ); + })(function (e) { + "use strict"; + var t = + window.Blob && + (Blob.prototype.slice || + Blob.prototype.webkitSlice || + Blob.prototype.mozSlice); + (e.blobSlice = + t && + function () { + var e = this.slice || this.webkitSlice || this.mozSlice; + return e.apply(this, arguments); + }), + (e.metaDataParsers = { jpeg: { 65505: [] } }), + (e.parseMetaData = function (t, i, a, o) { + (a = a || {}), (o = o || {}); + var r = this, + n = a.maxMetaDataSize || 262144, + s = !( + window.DataView && + t && + t.size >= 12 && + "image/jpeg" === t.type && + e.blobSlice + ); + (!s && + e.readFile( + e.blobSlice.call(t, 0, n), + function (t) { + if (t.target.error) return console.log(t.target.error), void i(o); + var n, + s, + l, + d, + u = t.target.result, + c = new DataView(u), + f = 2, + g = c.byteLength - 4, + h = f; + if (65496 === c.getUint16(0)) { + for ( + ; + f < g && + ((n = c.getUint16(f)), + (n >= 65504 && n <= 65519) || 65534 === n); + + ) { + if (((s = c.getUint16(f + 2) + 2), f + s > c.byteLength)) { + console.log("Invalid meta data: Invalid segment size."); + break; + } + if ((l = e.metaDataParsers.jpeg[n])) + for (d = 0; d < l.length; d += 1) + l[d].call(r, c, f, s, o, a); + (f += s), (h = f); + } + !a.disableImageHead && + h > 6 && + (u.slice + ? (o.imageHead = u.slice(0, h)) + : (o.imageHead = new Uint8Array(u).subarray(0, h))); + } else console.log("Invalid JPEG file: Missing JPEG marker."); + i(o); + }, + "readAsArrayBuffer" + )) || + i(o); + }), + (e.hasMetaOption = function (e) { + return e.meta; + }); + var i = e.transform; + e.transform = function (t, a, o, r, n) { + e.hasMetaOption(a || {}) + ? e.parseMetaData( + r, + function (n) { + i.call(e, t, a, o, r, n); + }, + a, + n + ) + : i.apply(e, arguments); + }; + }), + (function (e) { + "use strict"; + "function" == typeof define && define.amd + ? define(["./load-image", "./load-image-meta"], e) + : "object" == typeof module && module.exports + ? e(require("./load-image"), require("./load-image-meta")) + : e(window.loadImage); + })(function (e) { + "use strict"; + (e.ExifMap = function () { + return this; + }), + (e.ExifMap.prototype.map = { Orientation: 274 }), + (e.ExifMap.prototype.get = function (e) { + return this[e] || this[this.map[e]]; + }), + (e.getExifThumbnail = function (e, t, i) { + var a, o, r; + if (!i || t + i > e.byteLength) + return void console.log("Invalid Exif data: Invalid thumbnail data."); + for (a = [], o = 0; o < i; o += 1) + (r = e.getUint8(t + o)), a.push((r < 16 ? "0" : "") + r.toString(16)); + return "data:image/jpeg,%" + a.join("%"); + }), + (e.exifTagTypes = { + 1: { + getValue: function (e, t) { + return e.getUint8(t); + }, + size: 1 + }, + 2: { + getValue: function (e, t) { + return String.fromCharCode(e.getUint8(t)); + }, + size: 1, + ascii: !0 + }, + 3: { + getValue: function (e, t, i) { + return e.getUint16(t, i); + }, + size: 2 + }, + 4: { + getValue: function (e, t, i) { + return e.getUint32(t, i); + }, + size: 4 + }, + 5: { + getValue: function (e, t, i) { + return e.getUint32(t, i) / e.getUint32(t + 4, i); + }, + size: 8 + }, + 9: { + getValue: function (e, t, i) { + return e.getInt32(t, i); + }, + size: 4 + }, + 10: { + getValue: function (e, t, i) { + return e.getInt32(t, i) / e.getInt32(t + 4, i); + }, + size: 8 + } + }), + (e.exifTagTypes[7] = e.exifTagTypes[1]), + (e.getExifValue = function (t, i, a, o, r, n) { + var s, + l, + d, + u, + c, + f, + g = e.exifTagTypes[o]; + if (!g) return void console.log("Invalid Exif data: Invalid tag type."); + if ( + ((s = g.size * r), + (l = s > 4 ? i + t.getUint32(a + 8, n) : a + 8), + l + s > t.byteLength) + ) + return void console.log("Invalid Exif data: Invalid data offset."); + if (1 === r) return g.getValue(t, l, n); + for (d = [], u = 0; u < r; u += 1) + d[u] = g.getValue(t, l + u * g.size, n); + if (g.ascii) { + for (c = "", u = 0; u < d.length && ((f = d[u]), "\0" !== f); u += 1) + c += f; + return c; + } + return d; + }), + (e.parseExifTag = function (t, i, a, o, r) { + var n = t.getUint16(a, o); + r.exif[n] = e.getExifValue( + t, + i, + a, + t.getUint16(a + 2, o), + t.getUint32(a + 4, o), + o + ); + }), + (e.parseExifTags = function (e, t, i, a, o) { + var r, n, s; + if (i + 6 > e.byteLength) + return void console.log( + "Invalid Exif data: Invalid directory offset." + ); + if ( + ((r = e.getUint16(i, a)), (n = i + 2 + 12 * r), n + 4 > e.byteLength) + ) + return void console.log("Invalid Exif data: Invalid directory size."); + for (s = 0; s < r; s += 1) + this.parseExifTag(e, t, i + 2 + 12 * s, a, o); + return e.getUint32(n, a); + }), + (e.parseExifData = function (t, i, a, o, r) { + if (!r.disableExif) { + var n, + s, + l, + d = i + 10; + if (1165519206 === t.getUint32(i + 4)) { + if (d + 8 > t.byteLength) + return void console.log( + "Invalid Exif data: Invalid segment size." + ); + if (0 !== t.getUint16(i + 8)) + return void console.log( + "Invalid Exif data: Missing byte alignment offset." + ); + switch (t.getUint16(d)) { + case 18761: + n = !0; + break; + case 19789: + n = !1; + break; + default: + return void console.log( + "Invalid Exif data: Invalid byte alignment marker." + ); + } + if (42 !== t.getUint16(d + 2, n)) + return void console.log( + "Invalid Exif data: Missing TIFF marker." + ); + (s = t.getUint32(d + 4, n)), + (o.exif = new e.ExifMap()), + (s = e.parseExifTags(t, d, d + s, n, o)), + s && + !r.disableExifThumbnail && + ((l = { exif: {} }), + (s = e.parseExifTags(t, d, d + s, n, l)), + l.exif[513] && + (o.exif.Thumbnail = e.getExifThumbnail( + t, + d + l.exif[513], + l.exif[514] + ))), + o.exif[34665] && + !r.disableExifSub && + e.parseExifTags(t, d, d + o.exif[34665], n, o), + o.exif[34853] && + !r.disableExifGps && + e.parseExifTags(t, d, d + o.exif[34853], n, o); + } + } + }), + e.metaDataParsers.jpeg[65505].push(e.parseExifData); + }), + (function (e) { + "use strict"; + "function" == typeof define && define.amd + ? define(["./load-image", "./load-image-exif"], e) + : "object" == typeof module && module.exports + ? e(require("./load-image"), require("./load-image-exif")) + : e(window.loadImage); + })(function (e) { + "use strict"; + (e.ExifMap.prototype.tags = { + 256: "ImageWidth", + 257: "ImageHeight", + 34665: "ExifIFDPointer", + 34853: "GPSInfoIFDPointer", + 40965: "InteroperabilityIFDPointer", + 258: "BitsPerSample", + 259: "Compression", + 262: "PhotometricInterpretation", + 274: "Orientation", + 277: "SamplesPerPixel", + 284: "PlanarConfiguration", + 530: "YCbCrSubSampling", + 531: "YCbCrPositioning", + 282: "XResolution", + 283: "YResolution", + 296: "ResolutionUnit", + 273: "StripOffsets", + 278: "RowsPerStrip", + 279: "StripByteCounts", + 513: "JPEGInterchangeFormat", + 514: "JPEGInterchangeFormatLength", + 301: "TransferFunction", + 318: "WhitePoint", + 319: "PrimaryChromaticities", + 529: "YCbCrCoefficients", + 532: "ReferenceBlackWhite", + 306: "DateTime", + 270: "ImageDescription", + 271: "Make", + 272: "Model", + 305: "Software", + 315: "Artist", + 33432: "Copyright", + 36864: "ExifVersion", + 40960: "FlashpixVersion", + 40961: "ColorSpace", + 40962: "PixelXDimension", + 40963: "PixelYDimension", + 42240: "Gamma", + 37121: "ComponentsConfiguration", + 37122: "CompressedBitsPerPixel", + 37500: "MakerNote", + 37510: "UserComment", + 40964: "RelatedSoundFile", + 36867: "DateTimeOriginal", + 36868: "DateTimeDigitized", + 37520: "SubSecTime", + 37521: "SubSecTimeOriginal", + 37522: "SubSecTimeDigitized", + 33434: "ExposureTime", + 33437: "FNumber", + 34850: "ExposureProgram", + 34852: "SpectralSensitivity", + 34855: "PhotographicSensitivity", + 34856: "OECF", + 34864: "SensitivityType", + 34865: "StandardOutputSensitivity", + 34866: "RecommendedExposureIndex", + 34867: "ISOSpeed", + 34868: "ISOSpeedLatitudeyyy", + 34869: "ISOSpeedLatitudezzz", + 37377: "ShutterSpeedValue", + 37378: "ApertureValue", + 37379: "BrightnessValue", + 37380: "ExposureBias", + 37381: "MaxApertureValue", + 37382: "SubjectDistance", + 37383: "MeteringMode", + 37384: "LightSource", + 37385: "Flash", + 37396: "SubjectArea", + 37386: "FocalLength", + 41483: "FlashEnergy", + 41484: "SpatialFrequencyResponse", + 41486: "FocalPlaneXResolution", + 41487: "FocalPlaneYResolution", + 41488: "FocalPlaneResolutionUnit", + 41492: "SubjectLocation", + 41493: "ExposureIndex", + 41495: "SensingMethod", + 41728: "FileSource", + 41729: "SceneType", + 41730: "CFAPattern", + 41985: "CustomRendered", + 41986: "ExposureMode", + 41987: "WhiteBalance", + 41988: "DigitalZoomRatio", + 41989: "FocalLengthIn35mmFilm", + 41990: "SceneCaptureType", + 41991: "GainControl", + 41992: "Contrast", + 41993: "Saturation", + 41994: "Sharpness", + 41995: "DeviceSettingDescription", + 41996: "SubjectDistanceRange", + 42016: "ImageUniqueID", + 42032: "CameraOwnerName", + 42033: "BodySerialNumber", + 42034: "LensSpecification", + 42035: "LensMake", + 42036: "LensModel", + 42037: "LensSerialNumber", + 0: "GPSVersionID", + 1: "GPSLatitudeRef", + 2: "GPSLatitude", + 3: "GPSLongitudeRef", + 4: "GPSLongitude", + 5: "GPSAltitudeRef", + 6: "GPSAltitude", + 7: "GPSTimeStamp", + 8: "GPSSatellites", + 9: "GPSStatus", + 10: "GPSMeasureMode", + 11: "GPSDOP", + 12: "GPSSpeedRef", + 13: "GPSSpeed", + 14: "GPSTrackRef", + 15: "GPSTrack", + 16: "GPSImgDirectionRef", + 17: "GPSImgDirection", + 18: "GPSMapDatum", + 19: "GPSDestLatitudeRef", + 20: "GPSDestLatitude", + 21: "GPSDestLongitudeRef", + 22: "GPSDestLongitude", + 23: "GPSDestBearingRef", + 24: "GPSDestBearing", + 25: "GPSDestDistanceRef", + 26: "GPSDestDistance", + 27: "GPSProcessingMethod", + 28: "GPSAreaInformation", + 29: "GPSDateStamp", + 30: "GPSDifferential", + 31: "GPSHPositioningError" + }), + (e.ExifMap.prototype.stringValues = { + ExposureProgram: { + 0: "Undefined", + 1: "Manual", + 2: "Normal program", + 3: "Aperture priority", + 4: "Shutter priority", + 5: "Creative program", + 6: "Action program", + 7: "Portrait mode", + 8: "Landscape mode" + }, + MeteringMode: { + 0: "Unknown", + 1: "Average", + 2: "CenterWeightedAverage", + 3: "Spot", + 4: "MultiSpot", + 5: "Pattern", + 6: "Partial", + 255: "Other" + }, + LightSource: { + 0: "Unknown", + 1: "Daylight", + 2: "Fluorescent", + 3: "Tungsten (incandescent light)", + 4: "Flash", + 9: "Fine weather", + 10: "Cloudy weather", + 11: "Shade", + 12: "Daylight fluorescent (D 5700 - 7100K)", + 13: "Day white fluorescent (N 4600 - 5400K)", + 14: "Cool white fluorescent (W 3900 - 4500K)", + 15: "White fluorescent (WW 3200 - 3700K)", + 17: "Standard light A", + 18: "Standard light B", + 19: "Standard light C", + 20: "D55", + 21: "D65", + 22: "D75", + 23: "D50", + 24: "ISO studio tungsten", + 255: "Other" + }, + Flash: { + 0: "Flash did not fire", + 1: "Flash fired", + 5: "Strobe return light not detected", + 7: "Strobe return light detected", + 9: "Flash fired, compulsory flash mode", + 13: "Flash fired, compulsory flash mode, return light not detected", + 15: "Flash fired, compulsory flash mode, return light detected", + 16: "Flash did not fire, compulsory flash mode", + 24: "Flash did not fire, auto mode", + 25: "Flash fired, auto mode", + 29: "Flash fired, auto mode, return light not detected", + 31: "Flash fired, auto mode, return light detected", + 32: "No flash function", + 65: "Flash fired, red-eye reduction mode", + 69: "Flash fired, red-eye reduction mode, return light not detected", + 71: "Flash fired, red-eye reduction mode, return light detected", + 73: "Flash fired, compulsory flash mode, red-eye reduction mode", + 77: "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected", + 79: "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected", + 89: "Flash fired, auto mode, red-eye reduction mode", + 93: "Flash fired, auto mode, return light not detected, red-eye reduction mode", + 95: "Flash fired, auto mode, return light detected, red-eye reduction mode" + }, + SensingMethod: { + 1: "Undefined", + 2: "One-chip color area sensor", + 3: "Two-chip color area sensor", + 4: "Three-chip color area sensor", + 5: "Color sequential area sensor", + 7: "Trilinear sensor", + 8: "Color sequential linear sensor" + }, + SceneCaptureType: { + 0: "Standard", + 1: "Landscape", + 2: "Portrait", + 3: "Night scene" + }, + SceneType: { 1: "Directly photographed" }, + CustomRendered: { 0: "Normal process", 1: "Custom process" }, + WhiteBalance: { 0: "Auto white balance", 1: "Manual white balance" }, + GainControl: { + 0: "None", + 1: "Low gain up", + 2: "High gain up", + 3: "Low gain down", + 4: "High gain down" + }, + Contrast: { 0: "Normal", 1: "Soft", 2: "Hard" }, + Saturation: { 0: "Normal", 1: "Low saturation", 2: "High saturation" }, + Sharpness: { 0: "Normal", 1: "Soft", 2: "Hard" }, + SubjectDistanceRange: { + 0: "Unknown", + 1: "Macro", + 2: "Close view", + 3: "Distant view" + }, + FileSource: { 3: "DSC" }, + ComponentsConfiguration: { + 0: "", + 1: "Y", + 2: "Cb", + 3: "Cr", + 4: "R", + 5: "G", + 6: "B" + }, + Orientation: { + 1: "top-left", + 2: "top-right", + 3: "bottom-right", + 4: "bottom-left", + 5: "left-top", + 6: "right-top", + 7: "right-bottom", + 8: "left-bottom" + } + }), + (e.ExifMap.prototype.getText = function (e) { + var t = this.get(e); + switch (e) { + case "LightSource": + case "Flash": + case "MeteringMode": + case "ExposureProgram": + case "SensingMethod": + case "SceneCaptureType": + case "SceneType": + case "CustomRendered": + case "WhiteBalance": + case "GainControl": + case "Contrast": + case "Saturation": + case "Sharpness": + case "SubjectDistanceRange": + case "FileSource": + case "Orientation": + return this.stringValues[e][t]; + case "ExifVersion": + case "FlashpixVersion": + if (!t) return; + return String.fromCharCode(t[0], t[1], t[2], t[3]); + case "ComponentsConfiguration": + if (!t) return; + return ( + this.stringValues[e][t[0]] + + this.stringValues[e][t[1]] + + this.stringValues[e][t[2]] + + this.stringValues[e][t[3]] + ); + case "GPSVersionID": + if (!t) return; + return t[0] + "." + t[1] + "." + t[2] + "." + t[3]; + } + return String(t); + }), + (function (e) { + var t, + i = e.tags, + a = e.map; + for (t in i) i.hasOwnProperty(t) && (a[i[t]] = t); + })(e.ExifMap.prototype), + (e.ExifMap.prototype.getAll = function () { + var e, + t, + i = {}; + for (e in this) + this.hasOwnProperty(e) && + ((t = this.tags[e]), t && (i[t] = this.getText(t))); + return i; + }); + }), + (function (e) { + "use strict"; + "function" == typeof define && define.amd + ? define(["./load-image"], e) + : e( + "object" == typeof module && module.exports + ? require("./load-image") + : window.loadImage + ); + })(function (e) { + "use strict"; + var t = e.hasCanvasOption, + i = e.hasMetaOption, + a = e.transformCoordinates, + o = e.getTransformedOptions; + (e.hasCanvasOption = function (i) { + return !!i.orientation || t.call(e, i); + }), + (e.hasMetaOption = function (t) { + return t.orientation === !0 || i.call(e, t); + }), + (e.transformCoordinates = function (t, i) { + a.call(e, t, i); + var o = t.getContext("2d"), + r = t.width, + n = t.height, + s = t.style.width, + l = t.style.height, + d = i.orientation; + if (d && !(d > 8)) + switch ( + (d > 4 && + ((t.width = n), + (t.height = r), + (t.style.width = l), + (t.style.height = s)), + d) + ) { + case 2: + o.translate(r, 0), o.scale(-1, 1); + break; + case 3: + o.translate(r, n), o.rotate(Math.PI); + break; + case 4: + o.translate(0, n), o.scale(1, -1); + break; + case 5: + o.rotate(0.5 * Math.PI), o.scale(1, -1); + break; + case 6: + o.rotate(0.5 * Math.PI), o.translate(0, -n); + break; + case 7: + o.rotate(0.5 * Math.PI), o.translate(r, -n), o.scale(-1, 1); + break; + case 8: + o.rotate(-0.5 * Math.PI), o.translate(-r, 0); + } + }), + (e.getTransformedOptions = function (t, i, a) { + var r, + n, + s = o.call(e, t, i), + l = s.orientation; + if ( + (l === !0 && a && a.exif && (l = a.exif.get("Orientation")), + !l || l > 8 || 1 === l) + ) + return s; + r = {}; + for (n in s) s.hasOwnProperty(n) && (r[n] = s[n]); + switch (((r.orientation = l), l)) { + case 2: + (r.left = s.right), (r.right = s.left); + break; + case 3: + (r.left = s.right), + (r.top = s.bottom), + (r.right = s.left), + (r.bottom = s.top); + break; + case 4: + (r.top = s.bottom), (r.bottom = s.top); + break; + case 5: + (r.left = s.top), + (r.top = s.left), + (r.right = s.bottom), + (r.bottom = s.right); + break; + case 6: + (r.left = s.top), + (r.top = s.right), + (r.right = s.bottom), + (r.bottom = s.left); + break; + case 7: + (r.left = s.bottom), + (r.top = s.right), + (r.right = s.top), + (r.bottom = s.left); + break; + case 8: + (r.left = s.bottom), + (r.top = s.left), + (r.right = s.top), + (r.bottom = s.right); + } + return ( + s.orientation > 4 && + ((r.maxWidth = s.maxHeight), + (r.maxHeight = s.maxWidth), + (r.minWidth = s.minHeight), + (r.minHeight = s.minWidth), + (r.sourceWidth = s.sourceHeight), + (r.sourceHeight = s.sourceWidth)), + r + ); + }); + }); + +/** + * History.js Core + * @author Benjamin Arthur Lupton <contact@balupton.com> + * @copyright 2010-2011 Benjamin Arthur Lupton <contact@balupton.com> + * @license New BSD License <http://creativecommons.org/licenses/BSD/> + */ +typeof JSON != "object" && (JSON = {}), + (function () { + "use strict"; + function f(e) { + return e < 10 ? "0" + e : e; + } + function quote(e) { + return ( + (escapable.lastIndex = 0), + escapable.test(e) + ? '"' + + e.replace(escapable, function (e) { + var t = meta[e]; + return typeof t == "string" + ? t + : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4); + }) + + '"' + : '"' + e + '"' + ); + } + function str(e, t) { + var n, + r, + i, + s, + o = gap, + u, + a = t[e]; + a && + typeof a == "object" && + typeof a.toJSON == "function" && + (a = a.toJSON(e)), + typeof rep == "function" && (a = rep.call(t, e, a)); + switch (typeof a) { + case "string": + return quote(a); + case "number": + return isFinite(a) ? String(a) : "null"; + case "boolean": + case "null": + return String(a); + case "object": + if (!a) return "null"; + (gap += indent), (u = []); + if (Object.prototype.toString.apply(a) === "[object Array]") { + s = a.length; + for (n = 0; n < s; n += 1) u[n] = str(n, a) || "null"; + return ( + (i = + u.length === 0 + ? "[]" + : gap + ? "[\n" + gap + u.join(",\n" + gap) + "\n" + o + "]" + : "[" + u.join(",") + "]"), + (gap = o), + i + ); + } + if (rep && typeof rep == "object") { + s = rep.length; + for (n = 0; n < s; n += 1) + typeof rep[n] == "string" && + ((r = rep[n]), + (i = str(r, a)), + i && u.push(quote(r) + (gap ? ": " : ":") + i)); + } else + for (r in a) + Object.prototype.hasOwnProperty.call(a, r) && + ((i = str(r, a)), + i && u.push(quote(r) + (gap ? ": " : ":") + i)); + return ( + (i = + u.length === 0 + ? "{}" + : gap + ? "{\n" + gap + u.join(",\n" + gap) + "\n" + o + "}" + : "{" + u.join(",") + "}"), + (gap = o), + i + ); + } + } + typeof Date.prototype.toJSON != "function" && + ((Date.prototype.toJSON = function (e) { + return isFinite(this.valueOf()) + ? this.getUTCFullYear() + + "-" + + f(this.getUTCMonth() + 1) + + "-" + + f(this.getUTCDate()) + + "T" + + f(this.getUTCHours()) + + ":" + + f(this.getUTCMinutes()) + + ":" + + f(this.getUTCSeconds()) + + "Z" + : null; + }), + (String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function ( + e + ) { + return this.valueOf(); + })); + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { + "\b": "\\b", + " ": "\\t", + "\n": "\\n", + "\f": "\\f", + "\r": "\\r", + '"': '\\"', + "\\": "\\\\" + }, + rep; + typeof JSON.stringify != "function" && + (JSON.stringify = function (e, t, n) { + var r; + (gap = ""), (indent = ""); + if (typeof n == "number") for (r = 0; r < n; r += 1) indent += " "; + else typeof n == "string" && (indent = n); + rep = t; + if ( + !t || + typeof t == "function" || + (typeof t == "object" && typeof t.length == "number") + ) + return str("", { "": e }); + throw new Error("JSON.stringify"); + }), + typeof JSON.parse != "function" && + (JSON.parse = function (text, reviver) { + function walk(e, t) { + var n, + r, + i = e[t]; + if (i && typeof i == "object") + for (n in i) + Object.prototype.hasOwnProperty.call(i, n) && + ((r = walk(i, n)), + r !== undefined ? (i[n] = r) : delete i[n]); + return reviver.call(e, t, i); + } + var j; + (text = String(text)), + (cx.lastIndex = 0), + cx.test(text) && + (text = text.replace(cx, function (e) { + return ( + "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) + ); + })); + if ( + /^[\],:{}\s]*$/.test( + text + .replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") + .replace( + /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + "]" + ) + .replace(/(?:^|:|,)(?:\s*\[)+/g, "") + ) + ) + return ( + (j = eval("(" + text + ")")), + typeof reviver == "function" ? walk({ "": j }, "") : j + ); + throw new SyntaxError("JSON.parse"); + }); + })(), + (function (e, t) { + "use strict"; + var n = (e.History = e.History || {}), + r = e.jQuery; + if (typeof n.Adapter != "undefined") + throw new Error("History.js Adapter has already been loaded..."); + (n.Adapter = { + bind: function (e, t, n) { + r(e).bind(t, n); + }, + trigger: function (e, t, n) { + r(e).trigger(t, n); + }, + extractEventData: function (e, n, r) { + var i = + (n && n.originalEvent && n.originalEvent[e]) || (r && r[e]) || t; + return i; + }, + onDomLoad: function (e) { + r(e); + } + }), + typeof n.init != "undefined" && n.init(); + })(window), + (function (e, t) { + "use strict"; + var n = e.document, + r = e.setTimeout || r, + i = e.clearTimeout || i, + s = e.setInterval || s, + o = (e.History = e.History || {}); + if (typeof o.initHtml4 != "undefined") + throw new Error("History.js HTML4 Support has already been loaded..."); + (o.initHtml4 = function () { + if (typeof o.initHtml4.initialized != "undefined") return !1; + (o.initHtml4.initialized = !0), + (o.enabled = !0), + (o.savedHashes = []), + (o.isLastHash = function (e) { + var t = o.getHashByIndex(), + n; + return (n = e === t), n; + }), + (o.isHashEqual = function (e, t) { + return ( + (e = encodeURIComponent(e).replace(/%25/g, "%")), + (t = encodeURIComponent(t).replace(/%25/g, "%")), + e === t + ); + }), + (o.saveHash = function (e) { + return o.isLastHash(e) ? !1 : (o.savedHashes.push(e), !0); + }), + (o.getHashByIndex = function (e) { + var t = null; + return ( + typeof e == "undefined" + ? (t = o.savedHashes[o.savedHashes.length - 1]) + : e < 0 + ? (t = o.savedHashes[o.savedHashes.length + e]) + : (t = o.savedHashes[e]), + t + ); + }), + (o.discardedHashes = {}), + (o.discardedStates = {}), + (o.discardState = function (e, t, n) { + var r = o.getHashByState(e), + i; + return ( + (i = { discardedState: e, backState: n, forwardState: t }), + (o.discardedStates[r] = i), + !0 + ); + }), + (o.discardHash = function (e, t, n) { + var r = { discardedHash: e, backState: n, forwardState: t }; + return (o.discardedHashes[e] = r), !0; + }), + (o.discardedState = function (e) { + var t = o.getHashByState(e), + n; + return (n = o.discardedStates[t] || !1), n; + }), + (o.discardedHash = function (e) { + var t = o.discardedHashes[e] || !1; + return t; + }), + (o.recycleState = function (e) { + var t = o.getHashByState(e); + return o.discardedState(e) && delete o.discardedStates[t], !0; + }), + o.emulated.hashChange && + ((o.hashChangeInit = function () { + o.checkerFunction = null; + var t = "", + r, + i, + u, + a, + f = Boolean(o.getHash()); + return ( + o.isInternetExplorer() + ? ((r = "historyjs-iframe"), + (i = n.createElement("iframe")), + i.setAttribute("id", r), + i.setAttribute("src", "#"), + (i.style.display = "none"), + n.body.appendChild(i), + i.contentWindow.document.open(), + i.contentWindow.document.close(), + (u = ""), + (a = !1), + (o.checkerFunction = function () { + if (a) return !1; + a = !0; + var n = o.getHash(), + r = o.getHash(i.contentWindow.document); + return ( + n !== t + ? ((t = n), + r !== n && + ((u = r = n), + i.contentWindow.document.open(), + i.contentWindow.document.close(), + (i.contentWindow.document.location.hash = o.escapeHash( + n + ))), + o.Adapter.trigger(e, "hashchange")) + : r !== u && + ((u = r), + f && r === "" ? o.back() : o.setHash(r, !1)), + (a = !1), + !0 + ); + })) + : (o.checkerFunction = function () { + var n = o.getHash() || ""; + return ( + n !== t && ((t = n), o.Adapter.trigger(e, "hashchange")), + !0 + ); + }), + o.intervalList.push( + s(o.checkerFunction, o.options.hashChangeInterval) + ), + !0 + ); + }), + o.Adapter.onDomLoad(o.hashChangeInit)), + o.emulated.pushState && + ((o.onHashChange = function (t) { + var n = (t && t.newURL) || o.getLocationHref(), + r = o.getHashByUrl(n), + i = null, + s = null, + u = null, + a; + return o.isLastHash(r) + ? (o.busy(!1), !1) + : (o.doubleCheckComplete(), + o.saveHash(r), + r && o.isTraditionalAnchor(r) + ? (o.Adapter.trigger(e, "anchorchange"), o.busy(!1), !1) + : ((i = o.extractState( + o.getFullUrl(r || o.getLocationHref()), + !0 + )), + o.isLastSavedState(i) + ? (o.busy(!1), !1) + : ((s = o.getHashByState(i)), + (a = o.discardedState(i)), + a + ? (o.getHashByIndex(-2) === + o.getHashByState(a.forwardState) + ? o.back(!1) + : o.forward(!1), + !1) + : (o.pushState(i.data, i.title, encodeURI(i.url), !1), + !0)))); + }), + o.Adapter.bind(e, "hashchange", o.onHashChange), + (o.pushState = function (t, n, r, i) { + r = encodeURI(r).replace(/%25/g, "%"); + if (o.getHashByUrl(r)) + throw new Error( + "History.js does not support states with fragment-identifiers (hashes/anchors)." + ); + if (i !== !1 && o.busy()) + return ( + o.pushQueue({ + scope: o, + callback: o.pushState, + args: arguments, + queue: i + }), + !1 + ); + o.busy(!0); + var s = o.createStateObject(t, n, r), + u = o.getHashByState(s), + a = o.getState(!1), + f = o.getHashByState(a), + l = o.getHash(), + c = o.expectedStateId == s.id; + return ( + o.storeState(s), + (o.expectedStateId = s.id), + o.recycleState(s), + o.setTitle(s), + u === f + ? (o.busy(!1), !1) + : (o.saveState(s), + c || o.Adapter.trigger(e, "statechange"), + !o.isHashEqual(u, l) && + !o.isHashEqual(u, o.getShortUrl(o.getLocationHref())) && + o.setHash(u, !1), + o.busy(!1), + !0) + ); + }), + (o.replaceState = function (t, n, r, i) { + r = encodeURI(r).replace(/%25/g, "%"); + if (o.getHashByUrl(r)) + throw new Error( + "History.js does not support states with fragment-identifiers (hashes/anchors)." + ); + if (i !== !1 && o.busy()) + return ( + o.pushQueue({ + scope: o, + callback: o.replaceState, + args: arguments, + queue: i + }), + !1 + ); + o.busy(!0); + var s = o.createStateObject(t, n, r), + u = o.getHashByState(s), + a = o.getState(!1), + f = o.getHashByState(a), + l = o.getStateByIndex(-2); + return ( + o.discardState(a, s, l), + u === f + ? (o.storeState(s), + (o.expectedStateId = s.id), + o.recycleState(s), + o.setTitle(s), + o.saveState(s), + o.Adapter.trigger(e, "statechange"), + o.busy(!1)) + : o.pushState(s.data, s.title, s.url, !1), + !0 + ); + })), + o.emulated.pushState && + o.getHash() && + !o.emulated.hashChange && + o.Adapter.onDomLoad(function () { + o.Adapter.trigger(e, "hashchange"); + }); + }), + typeof o.init != "undefined" && o.init(); + })(window), + (function (e, t) { + "use strict"; + var n = e.console || t, + r = e.document, + i = e.navigator, + s = !1, + o = e.setTimeout, + u = e.clearTimeout, + a = e.setInterval, + f = e.clearInterval, + l = e.JSON, + c = e.alert, + h = (e.History = e.History || {}), + p = e.history; + try { + (s = e.sessionStorage), s.setItem("TEST", "1"), s.removeItem("TEST"); + } catch (d) { + s = !1; + } + (l.stringify = l.stringify || l.encode), (l.parse = l.parse || l.decode); + if (typeof h.init != "undefined") + throw new Error("History.js Core has already been loaded..."); + (h.init = function (e) { + return typeof h.Adapter == "undefined" + ? !1 + : (typeof h.initCore != "undefined" && h.initCore(), + typeof h.initHtml4 != "undefined" && h.initHtml4(), + !0); + }), + (h.initCore = function (d) { + if (typeof h.initCore.initialized != "undefined") return !1; + (h.initCore.initialized = !0), + (h.options = h.options || {}), + (h.options.hashChangeInterval = h.options.hashChangeInterval || 100), + (h.options.safariPollInterval = h.options.safariPollInterval || 500), + (h.options.doubleCheckInterval = + h.options.doubleCheckInterval || 500), + (h.options.disableSuid = h.options.disableSuid || !1), + (h.options.storeInterval = h.options.storeInterval || 1e3), + (h.options.busyDelay = h.options.busyDelay || 250), + (h.options.debug = h.options.debug || !1), + (h.options.initialTitle = h.options.initialTitle || r.title), + (h.options.html4Mode = h.options.html4Mode || !1), + (h.options.delayInit = h.options.delayInit || !1), + (h.intervalList = []), + (h.clearAllIntervals = function () { + var e, + t = h.intervalList; + if (typeof t != "undefined" && t !== null) { + for (e = 0; e < t.length; e++) f(t[e]); + h.intervalList = null; + } + }), + (h.debug = function () { + (h.options.debug || !1) && h.log.apply(h, arguments); + }), + (h.log = function () { + var e = + typeof n != "undefined" && + typeof n.log != "undefined" && + typeof n.log.apply != "undefined", + t = r.getElementById("log"), + i, + s, + o, + u, + a; + e + ? ((u = Array.prototype.slice.call(arguments)), + (i = u.shift()), + typeof n.debug != "undefined" + ? n.debug.apply(n, [i, u]) + : n.log.apply(n, [i, u])) + : (i = "\n" + arguments[0] + "\n"); + for (s = 1, o = arguments.length; s < o; ++s) { + a = arguments[s]; + if (typeof a == "object" && typeof l != "undefined") + try { + a = l.stringify(a); + } catch (f) { } + i += "\n" + a + "\n"; + } + return ( + t + ? ((t.value += i + "\n-----\n"), + (t.scrollTop = t.scrollHeight - t.clientHeight)) + : e || c(i), + !0 + ); + }), + (h.getInternetExplorerMajorVersion = function () { + var e = (h.getInternetExplorerMajorVersion.cached = + typeof h.getInternetExplorerMajorVersion.cached != "undefined" + ? h.getInternetExplorerMajorVersion.cached + : (function () { + var e = 3, + t = r.createElement("div"), + n = t.getElementsByTagName("i"); + while ( + (t.innerHTML = + "<!--[if gt IE " + ++e + "]><i></i><![endif]-->") && + n[0] + ); + return e > 4 ? e : !1; + })()); + return e; + }), + (h.isInternetExplorer = function () { + var e = (h.isInternetExplorer.cached = + typeof h.isInternetExplorer.cached != "undefined" + ? h.isInternetExplorer.cached + : Boolean(h.getInternetExplorerMajorVersion())); + return e; + }), + h.options.html4Mode + ? (h.emulated = { pushState: !0, hashChange: !0 }) + : (h.emulated = { + pushState: !Boolean( + e.history && + e.history.pushState && + e.history.replaceState && + !/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test( + i.userAgent + ) && + !/AppleWebKit\/5([0-2]|3[0-2])/i.test(i.userAgent) + ), + hashChange: Boolean( + !("onhashchange" in e || "onhashchange" in r) || + (h.isInternetExplorer() && + h.getInternetExplorerMajorVersion() < 8) + ) + }), + (h.enabled = !h.emulated.pushState), + (h.bugs = { + setHash: Boolean( + !h.emulated.pushState && + i.vendor === "Apple Computer, Inc." && + /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent) + ), + safariPoll: Boolean( + !h.emulated.pushState && + i.vendor === "Apple Computer, Inc." && + /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent) + ), + ieDoubleCheck: Boolean( + h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8 + ), + hashEscape: Boolean( + h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7 + ) + }), + (h.isEmptyObject = function (e) { + for (var t in e) if (e.hasOwnProperty(t)) return !1; + return !0; + }), + (h.cloneObject = function (e) { + var t, n; + return e ? ((t = l.stringify(e)), (n = l.parse(t))) : (n = {}), n; + }), + (h.getRootUrl = function () { + var e = + r.location.protocol + + "//" + + (r.location.hostname || r.location.host); + if (r.location.port || !1) e += ":" + r.location.port; + return (e += "/"), e; + }), + (h.getBaseHref = function () { + var e = r.getElementsByTagName("base"), + t = null, + n = ""; + return ( + e.length === 1 && + ((t = e[0]), (n = t.href.replace(/[^\/]+$/, ""))), + (n = n.replace(/\/+$/, "")), + n && (n += "/"), + n + ); + }), + (h.getBaseUrl = function () { + var e = h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl(); + return e; + }), + (h.getPageUrl = function () { + var e = h.getState(!1, !1), + t = (e || {}).url || h.getLocationHref(), + n; + return ( + (n = t.replace(/\/+$/, "").replace(/[^\/]+$/, function (e, t, n) { + return /\./.test(e) ? e : e + "/"; + })), + n + ); + }), + (h.getBasePageUrl = function () { + var e = + h + .getLocationHref() + .replace(/[#\?].*/, "") + .replace(/[^\/]+$/, function (e, t, n) { + return /[^\/]$/.test(e) ? "" : e; + }) + .replace(/\/+$/, "") + "/"; + return e; + }), + (h.getFullUrl = function (e, t) { + var n = e, + r = e.substring(0, 1); + return ( + (t = typeof t == "undefined" ? !0 : t), + /[a-z]+\:\/\//.test(e) || + (r === "/" + ? (n = h.getRootUrl() + e.replace(/^\/+/, "")) + : r === "#" + ? (n = h.getPageUrl().replace(/#.*/, "") + e) + : r === "?" + ? (n = h.getPageUrl().replace(/[\?#].*/, "") + e) + : t + ? (n = h.getBaseUrl() + e.replace(/^(\.\/)+/, "")) + : (n = h.getBasePageUrl() + e.replace(/^(\.\/)+/, ""))), + n.replace(/\#$/, "") + ); + }), + (h.getShortUrl = function (e) { + var t = e, + n = h.getBaseUrl(), + r = h.getRootUrl(); + return ( + h.emulated.pushState && (t = t.replace(n, "")), + (t = t.replace(r, "/")), + h.isTraditionalAnchor(t) && (t = "./" + t), + (t = t.replace(/^(\.\/)+/g, "./").replace(/\#$/, "")), + t + ); + }), + (h.getLocationHref = function (e) { + return ( + (e = e || r), + e.URL === e.location.href + ? e.location.href + : e.location.href === decodeURIComponent(e.URL) + ? e.URL + : e.location.hash && + decodeURIComponent(e.location.href.replace(/^[^#]+/, "")) === + e.location.hash + ? e.location.href + : e.URL.indexOf("#") == -1 && e.location.href.indexOf("#") != -1 + ? e.location.href + : e.URL || e.location.href + ); + }), + (h.store = {}), + (h.idToState = h.idToState || {}), + (h.stateToId = h.stateToId || {}), + (h.urlToId = h.urlToId || {}), + (h.storedStates = h.storedStates || []), + (h.savedStates = h.savedStates || []), + (h.normalizeStore = function () { + (h.store.idToState = h.store.idToState || {}), + (h.store.urlToId = h.store.urlToId || {}), + (h.store.stateToId = h.store.stateToId || {}); + }), + (h.getState = function (e, t) { + typeof e == "undefined" && (e = !0), + typeof t == "undefined" && (t = !0); + var n = h.getLastSavedState(); + return ( + !n && t && (n = h.createStateObject()), + e && ((n = h.cloneObject(n)), (n.url = n.cleanUrl || n.url)), + n + ); + }), + (h.getIdByState = function (e) { + var t = h.extractId(e.url), + n; + if (!t) { + n = h.getStateString(e); + if (typeof h.stateToId[n] != "undefined") t = h.stateToId[n]; + else if (typeof h.store.stateToId[n] != "undefined") + t = h.store.stateToId[n]; + else { + for (; ;) { + t = + new Date().getTime() + + String(Math.random()).replace(/\D/g, ""); + if ( + typeof h.idToState[t] == "undefined" && + typeof h.store.idToState[t] == "undefined" + ) + break; + } + (h.stateToId[n] = t), (h.idToState[t] = e); + } + } + return t; + }), + (h.normalizeState = function (e) { + var t, n; + if (!e || typeof e != "object") e = {}; + if (typeof e.normalized != "undefined") return e; + if (!e.data || typeof e.data != "object") e.data = {}; + return ( + (t = {}), + (t.normalized = !0), + (t.title = e.title || ""), + (t.url = h.getFullUrl(e.url ? e.url : h.getLocationHref())), + (t.hash = h.getShortUrl(t.url)), + (t.data = h.cloneObject(e.data)), + (t.id = h.getIdByState(t)), + (t.cleanUrl = t.url.replace(/\??\&_suid.*/, "")), + (t.url = t.cleanUrl), + (n = !h.isEmptyObject(t.data)), + (t.title || n) && + h.options.disableSuid !== !0 && + ((t.hash = h.getShortUrl(t.url).replace(/\??\&_suid.*/, "")), + /\?/.test(t.hash) || (t.hash += "?"), + (t.hash += "&_suid=" + t.id)), + (t.hashedUrl = h.getFullUrl(t.hash)), + (h.emulated.pushState || h.bugs.safariPoll) && + h.hasUrlDuplicate(t) && + (t.url = t.hashedUrl), + t + ); + }), + (h.createStateObject = function (e, t, n) { + var r = { data: e, title: t, url: n }; + return (r = h.normalizeState(r)), r; + }), + (h.getStateById = function (e) { + e = String(e); + var n = h.idToState[e] || h.store.idToState[e] || t; + return n; + }), + (h.getStateString = function (e) { + var t, n, r; + return ( + (t = h.normalizeState(e)), + (n = { data: t.data, title: e.title, url: e.url }), + (r = l.stringify(n)), + r + ); + }), + (h.getStateId = function (e) { + var t, n; + return (t = h.normalizeState(e)), (n = t.id), n; + }), + (h.getHashByState = function (e) { + var t, n; + return (t = h.normalizeState(e)), (n = t.hash), n; + }), + (h.extractId = function (e) { + var t, n, r, i; + return ( + e.indexOf("#") != -1 ? (i = e.split("#")[0]) : (i = e), + (n = /(.*)\&_suid=([0-9]+)$/.exec(i)), + (r = n ? n[1] || e : e), + (t = n ? String(n[2] || "") : ""), + t || !1 + ); + }), + (h.isTraditionalAnchor = function (e) { + var t = !/[\/\?\.]/.test(e); + return t; + }), + (h.extractState = function (e, t) { + var n = null, + r, + i; + return ( + (t = t || !1), + (r = h.extractId(e)), + r && (n = h.getStateById(r)), + n || + ((i = h.getFullUrl(e)), + (r = h.getIdByUrl(i) || !1), + r && (n = h.getStateById(r)), + !n && + t && + !h.isTraditionalAnchor(e) && + (n = h.createStateObject(null, null, i))), + n + ); + }), + (h.getIdByUrl = function (e) { + var n = h.urlToId[e] || h.store.urlToId[e] || t; + return n; + }), + (h.getLastSavedState = function () { + return h.savedStates[h.savedStates.length - 1] || t; + }), + (h.getLastStoredState = function () { + return h.storedStates[h.storedStates.length - 1] || t; + }), + (h.hasUrlDuplicate = function (e) { + var t = !1, + n; + return (n = h.extractState(e.url)), (t = n && n.id !== e.id), t; + }), + (h.storeState = function (e) { + return ( + (h.urlToId[e.url] = e.id), + h.storedStates.push(h.cloneObject(e)), + e + ); + }), + (h.isLastSavedState = function (e) { + var t = !1, + n, + r, + i; + return ( + h.savedStates.length && + ((n = e.id), + (r = h.getLastSavedState()), + (i = r.id), + (t = n === i)), + t + ); + }), + (h.saveState = function (e) { + return h.isLastSavedState(e) + ? !1 + : (h.savedStates.push(h.cloneObject(e)), !0); + }), + (h.getStateByIndex = function (e) { + var t = null; + return ( + typeof e == "undefined" + ? (t = h.savedStates[h.savedStates.length - 1]) + : e < 0 + ? (t = h.savedStates[h.savedStates.length + e]) + : (t = h.savedStates[e]), + t + ); + }), + (h.getCurrentIndex = function () { + var e = null; + return ( + h.savedStates.length < 1 + ? (e = 0) + : (e = h.savedStates.length - 1), + e + ); + }), + (h.getHash = function (e) { + var t = h.getLocationHref(e), + n; + return (n = h.getHashByUrl(t)), n; + }), + (h.unescapeHash = function (e) { + var t = h.normalizeHash(e); + return (t = decodeURIComponent(t)), t; + }), + (h.normalizeHash = function (e) { + var t = e.replace(/[^#]*#/, "").replace(/#.*/, ""); + return t; + }), + (h.setHash = function (e, t) { + var n, i; + return t !== !1 && h.busy() + ? (h.pushQueue({ + scope: h, + callback: h.setHash, + args: arguments, + queue: t + }), + !1) + : (h.busy(!0), + (n = h.extractState(e, !0)), + n && !h.emulated.pushState + ? h.pushState(n.data, n.title, n.url, !1) + : h.getHash() !== e && + (h.bugs.setHash + ? ((i = h.getPageUrl()), + h.pushState(null, null, i + "#" + e, !1)) + : (r.location.hash = e)), + h); + }), + (h.escapeHash = function (t) { + var n = h.normalizeHash(t); + return ( + (n = e.encodeURIComponent(n)), + h.bugs.hashEscape || + (n = n + .replace(/\%21/g, "!") + .replace(/\%26/g, "&") + .replace(/\%3D/g, "=") + .replace(/\%3F/g, "?")), + n + ); + }), + (h.getHashByUrl = function (e) { + var t = String(e).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2"); + return (t = h.unescapeHash(t)), t; + }), + (h.setTitle = function (e) { + var t = e.title, + n; + t || + ((n = h.getStateByIndex(0)), + n && n.url === e.url && (t = n.title || h.options.initialTitle)); + try { + r.getElementsByTagName("title")[0].innerHTML = t + .replace("<", "&lt;") + .replace(">", "&gt;") + .replace(" & ", " &amp; "); + } catch (i) { } + return (r.title = t), h; + }), + (h.queues = []), + (h.busy = function (e) { + typeof e != "undefined" + ? (h.busy.flag = e) + : typeof h.busy.flag == "undefined" && (h.busy.flag = !1); + if (!h.busy.flag) { + u(h.busy.timeout); + var t = function () { + var e, n, r; + if (h.busy.flag) return; + for (e = h.queues.length - 1; e >= 0; --e) { + n = h.queues[e]; + if (n.length === 0) continue; + (r = n.shift()), + h.fireQueueItem(r), + (h.busy.timeout = o(t, h.options.busyDelay)); + } + }; + h.busy.timeout = o(t, h.options.busyDelay); + } + return h.busy.flag; + }), + (h.busy.flag = !1), + (h.fireQueueItem = function (e) { + return e.callback.apply(e.scope || h, e.args || []); + }), + (h.pushQueue = function (e) { + return ( + (h.queues[e.queue || 0] = h.queues[e.queue || 0] || []), + h.queues[e.queue || 0].push(e), + h + ); + }), + (h.queue = function (e, t) { + return ( + typeof e == "function" && (e = { callback: e }), + typeof t != "undefined" && (e.queue = t), + h.busy() ? h.pushQueue(e) : h.fireQueueItem(e), + h + ); + }), + (h.clearQueue = function () { + return (h.busy.flag = !1), (h.queues = []), h; + }), + (h.stateChanged = !1), + (h.doubleChecker = !1), + (h.doubleCheckComplete = function () { + return (h.stateChanged = !0), h.doubleCheckClear(), h; + }), + (h.doubleCheckClear = function () { + return ( + h.doubleChecker && (u(h.doubleChecker), (h.doubleChecker = !1)), h + ); + }), + (h.doubleCheck = function (e) { + return ( + (h.stateChanged = !1), + h.doubleCheckClear(), + h.bugs.ieDoubleCheck && + (h.doubleChecker = o(function () { + return h.doubleCheckClear(), h.stateChanged || e(), !0; + }, h.options.doubleCheckInterval)), + h + ); + }), + (h.safariStatePoll = function () { + var t = h.extractState(h.getLocationHref()), + n; + if (!h.isLastSavedState(t)) + return ( + (n = t), + n || (n = h.createStateObject()), + h.Adapter.trigger(e, "popstate"), + h + ); + return; + }), + (h.back = function (e) { + return e !== !1 && h.busy() + ? (h.pushQueue({ + scope: h, + callback: h.back, + args: arguments, + queue: e + }), + !1) + : (h.busy(!0), + h.doubleCheck(function () { + h.back(!1); + }), + p.go(-1), + !0); + }), + (h.forward = function (e) { + return e !== !1 && h.busy() + ? (h.pushQueue({ + scope: h, + callback: h.forward, + args: arguments, + queue: e + }), + !1) + : (h.busy(!0), + h.doubleCheck(function () { + h.forward(!1); + }), + p.go(1), + !0); + }), + (h.go = function (e, t) { + var n; + if (e > 0) for (n = 1; n <= e; ++n) h.forward(t); + else { + if (!(e < 0)) + throw new Error( + "History.go: History.go requires a positive or negative integer passed." + ); + for (n = -1; n >= e; --n) h.back(t); + } + return h; + }); + if (h.emulated.pushState) { + var v = function () { }; + (h.pushState = h.pushState || v), + (h.replaceState = h.replaceState || v); + } else + (h.onPopState = function (t, n) { + var r = !1, + i = !1, + s, + o; + return ( + h.doubleCheckComplete(), + (s = h.getHash()), + s + ? ((o = h.extractState(s || h.getLocationHref(), !0)), + o + ? h.replaceState(o.data, o.title, o.url, !1) + : (h.Adapter.trigger(e, "anchorchange"), h.busy(!1)), + (h.expectedStateId = !1), + !1) + : ((r = h.Adapter.extractEventData("state", t, n) || !1), + r + ? (i = h.getStateById(r)) + : h.expectedStateId + ? (i = h.getStateById(h.expectedStateId)) + : (i = h.extractState(h.getLocationHref())), + i || + (i = h.createStateObject(null, null, h.getLocationHref())), + (h.expectedStateId = !1), + h.isLastSavedState(i) + ? (h.busy(!1), !1) + : (h.storeState(i), + h.saveState(i), + h.setTitle(i), + h.Adapter.trigger(e, "statechange"), + h.busy(!1), + !0)) + ); + }), + h.Adapter.bind(e, "popstate", h.onPopState), + (h.pushState = function (t, n, r, i) { + if (h.getHashByUrl(r) && h.emulated.pushState) + throw new Error( + "History.js does not support states with fragement-identifiers (hashes/anchors)." + ); + if (i !== !1 && h.busy()) + return ( + h.pushQueue({ + scope: h, + callback: h.pushState, + args: arguments, + queue: i + }), + !1 + ); + h.busy(!0); + var s = h.createStateObject(t, n, r); + return ( + h.isLastSavedState(s) + ? h.busy(!1) + : (h.storeState(s), + (h.expectedStateId = s.id), + p.pushState(s.id, s.title, s.url), + h.Adapter.trigger(e, "popstate")), + !0 + ); + }), + (h.replaceState = function (t, n, r, i) { + if (h.getHashByUrl(r) && h.emulated.pushState) + throw new Error( + "History.js does not support states with fragement-identifiers (hashes/anchors)." + ); + if (i !== !1 && h.busy()) + return ( + h.pushQueue({ + scope: h, + callback: h.replaceState, + args: arguments, + queue: i + }), + !1 + ); + h.busy(!0); + var s = h.createStateObject(t, n, r); + return ( + h.isLastSavedState(s) + ? h.busy(!1) + : (h.storeState(s), + (h.expectedStateId = s.id), + p.replaceState(s.id, s.title, s.url), + h.Adapter.trigger(e, "popstate")), + !0 + ); + }); + if (s) { + try { + h.store = l.parse(s.getItem("History.store")) || {}; + } catch (m) { + h.store = {}; + } + h.normalizeStore(); + } else (h.store = {}), h.normalizeStore(); + h.Adapter.bind(e, "unload", h.clearAllIntervals), + h.saveState(h.storeState(h.extractState(h.getLocationHref(), !0))), + s && + ((h.onUnload = function () { + var e, t, n; + try { + e = l.parse(s.getItem("History.store")) || {}; + } catch (r) { + e = {}; + } + (e.idToState = e.idToState || {}), + (e.urlToId = e.urlToId || {}), + (e.stateToId = e.stateToId || {}); + for (t in h.idToState) { + if (!h.idToState.hasOwnProperty(t)) continue; + e.idToState[t] = h.idToState[t]; + } + for (t in h.urlToId) { + if (!h.urlToId.hasOwnProperty(t)) continue; + e.urlToId[t] = h.urlToId[t]; + } + for (t in h.stateToId) { + if (!h.stateToId.hasOwnProperty(t)) continue; + e.stateToId[t] = h.stateToId[t]; + } + (h.store = e), h.normalizeStore(), (n = l.stringify(e)); + try { + s.setItem("History.store", n); + } catch (i) { + if (i.code !== DOMException.QUOTA_EXCEEDED_ERR) throw i; + s.length && + (s.removeItem("History.store"), + s.setItem("History.store", n)); + } + }), + h.intervalList.push(a(h.onUnload, h.options.storeInterval)), + h.Adapter.bind(e, "beforeunload", h.onUnload), + h.Adapter.bind(e, "unload", h.onUnload)); + if (!h.emulated.pushState) { + h.bugs.safariPoll && + h.intervalList.push( + a(h.safariStatePoll, h.options.safariPollInterval) + ); + if ( + i.vendor === "Apple Computer, Inc." || + (i.appCodeName || "") === "Mozilla" + ) + h.Adapter.bind(e, "hashchange", function () { + h.Adapter.trigger(e, "popstate"); + }), + h.getHash() && + h.Adapter.onDomLoad(function () { + h.Adapter.trigger(e, "hashchange"); + }); + } + }), + (!h.options || !h.options.delayInit) && h.init(); + })(window); + +/* + * jQuery Iframe Transport Plugin 1.7 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*jslint unparam: true, nomen: true */ +/*global define, window, document */ + +(function (factory) { + if (typeof define === "function" && define.amd) { + define(["jquery"], factory); + } else { + factory(window.jQuery); + } +})(function ($) { + var counter = 0; + $.ajaxTransport("iframe", function (options) { + if (options.async) { + var form, iframe, addParamChar; + return { + send: function (_, completeCallback) { + form = $('<form style="display:none;"></form>'); + form.attr("accept-charset", options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? "&" : "?"; + if (options.type === "DELETE") { + options.url = options.url + addParamChar + "_method=DELETE"; + options.type = "POST"; + } else { + if (options.type === "PUT") { + options.url = options.url + addParamChar + "_method=PUT"; + options.type = "POST"; + } else { + if (options.type === "PATCH") { + options.url = options.url + addParamChar + "_method=PATCH"; + options.type = "POST"; + } + } + } + counter += 1; + iframe = $( + '<iframe src="javascript:false;" name="iframe-transport-' + + counter + + '"></iframe>' + ).bind("load", function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) + ? options.paramName + : [options.paramName]; + iframe.unbind("load").bind("load", function () { + var response; + try { + response = iframe.contents(); + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + completeCallback(200, "success", { iframe: response }); + $('<iframe src="javascript:false;"></iframe>').appendTo(form); + window.setTimeout(function () { + form.remove(); + }, 0); + }); + form + .prop("target", iframe.prop("name")) + .prop("action", options.url) + .prop("method", options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('<input type="hidden"/>') + .prop("name", field.name) + .val(field.value) + .appendTo(form); + }); + } + if ( + options.fileInput && + options.fileInput.length && + options.type === "POST" + ) { + fileInputClones = options.fileInput.clone(); + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop("name", paramNames[index] || options.paramName); + }); + } + form + .append(options.fileInput) + .prop("enctype", "multipart/form-data") + .prop("encoding", "multipart/form-data"); + } + form.submit(); + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + $(input).prop("name", clone.prop("name")); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + iframe.unbind("load").prop("src", "javascript".concat(":false;")); + } + if (form) { + form.remove(); + } + } + }; + } + }); + $.ajaxSetup({ + converters: { + "iframe text": function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + "iframe json": function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + "iframe html": function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + "iframe xml": function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) + ? xmlDoc + : $.parseXML( + (xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html() + ); + }, + "iframe script": function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); +}); + +/** + * Copyright (c) 2011-2013 Felix Gnass + * Licensed under the MIT license + */ +//fgnass.github.com/spin.js#v1.3.2 +(function (root, factory) { + if (typeof exports == "object") { + module.exports = factory(); + } else { + if (typeof define == "function" && define.amd) { + define(factory); + } else { + root.Spinner = factory(); + } + } +})(this, function () { + var prefixes = ["webkit", "Moz", "ms", "O"], + animations = {}, + useCssAnimations; + function createEl(tag, prop) { + var el = document.createElement(tag || "div"), + n; + for (n in prop) { + el[n] = prop[n]; + } + return el; + } + function ins(parent) { + for (var i = 1, n = arguments.length; i < n; i++) { + parent.appendChild(arguments[i]); + } + return parent; + } + var sheet = (function () { + var el = createEl("style", { type: "text/css" }); + ins(document.getElementsByTagName("head")[0], el); + return el.sheet || el.styleSheet; + })(); + function addAnimation(alpha, trail, i, lines) { + var name = ["opacity", trail, ~~(alpha * 100), i, lines].join("-"), + start = 0.01 + (i / lines) * 100, + z = Math.max(1 - ((1 - alpha) / trail) * (100 - start), alpha), + prefix = useCssAnimations + .substring(0, useCssAnimations.indexOf("Animation")) + .toLowerCase(), + pre = (prefix && "-" + prefix + "-") || ""; + if (!animations[name]) { + sheet.insertRule( + "@" + + pre + + "keyframes " + + name + + "{0%{opacity:" + + z + + "}" + + start + + "%{opacity:" + + alpha + + "}" + + (start + 0.01) + + "%{opacity:1}" + + ((start + trail) % 100) + + "%{opacity:" + + alpha + + "}100%{opacity:" + + z + + "}}", + sheet.cssRules.length + ); + animations[name] = 1; + } + return name; + } + function vendor(el, prop) { + var s = el.style, + pp, + i; + prop = prop.charAt(0).toUpperCase() + prop.slice(1); + for (i = 0; i < prefixes.length; i++) { + pp = prefixes[i] + prop; + if (s[pp] !== undefined) { + return pp; + } + } + if (s[prop] !== undefined) { + return prop; + } + } + function css(el, prop) { + for (var n in prop) { + el.style[vendor(el, n) || n] = prop[n]; + } + return el; + } + function merge(obj) { + for (var i = 1; i < arguments.length; i++) { + var def = arguments[i]; + for (var n in def) { + if (obj[n] === undefined) { + obj[n] = def[n]; + } + } + } + return obj; + } + function pos(el) { + var o = { x: el.offsetLeft, y: el.offsetTop }; + while ((el = el.offsetParent)) { + (o.x += el.offsetLeft), (o.y += el.offsetTop); + } + return o; + } + function getColor(color, idx) { + return typeof color == "string" ? color : color[idx % color.length]; + } + var defaults = { + lines: 12, + length: 7, + width: 5, + radius: 10, + rotate: 0, + corners: 1, + color: "#000", + direction: 1, + speed: 1, + trail: 100, + opacity: 1 / 4, + fps: 20, + zIndex: "auto", + className: "spinner", + top: "auto", + left: "auto", + position: "relative" + }; + function Spinner(o) { + if (typeof this == "undefined") { + return new Spinner(o); + } + this.opts = merge(o || {}, Spinner.defaults, defaults); + } + Spinner.defaults = {}; + merge(Spinner.prototype, { + spin: function (target) { + this.stop(); + var self = this, + o = self.opts, + el = (self.el = css(createEl(0, { className: o.className }), { + position: o.position, + width: 0, + zIndex: o.zIndex + })), + mid = o.radius + o.length + o.width, + ep, + tp; + if (target) { + target.insertBefore(el, target.firstChild || null); + tp = pos(target); + ep = pos(el); + css(el, { + left: + (o.left == "auto" + ? tp.x - ep.x + (target.offsetWidth >> 1) + : parseInt(o.left, 10) + mid) + "px", + top: + (o.top == "auto" + ? tp.y - ep.y + (target.offsetHeight >> 1) + : parseInt(o.top, 10) + mid) + "px" + }); + } + el.setAttribute("role", "progressbar"); + self.lines(el, self.opts); + if (!useCssAnimations) { + var i = 0, + start = ((o.lines - 1) * (1 - o.direction)) / 2, + alpha, + fps = o.fps, + f = fps / o.speed, + ostep = (1 - o.opacity) / ((f * o.trail) / 100), + astep = f / o.lines; + (function anim() { + i++; + for (var j = 0; j < o.lines; j++) { + alpha = Math.max( + 1 - ((i + (o.lines - j) * astep) % f) * ostep, + o.opacity + ); + self.opacity(el, j * o.direction + start, alpha, o); + } + self.timeout = self.el && setTimeout(anim, ~~(1000 / fps)); + })(); + } + return self; + }, + stop: function () { + var el = this.el; + if (el) { + clearTimeout(this.timeout); + if (el.parentNode) { + el.parentNode.removeChild(el); + } + this.el = undefined; + } + return this; + }, + lines: function (el, o) { + var i = 0, + start = ((o.lines - 1) * (1 - o.direction)) / 2, + seg; + function fill(color, shadow) { + return css(createEl(), { + position: "absolute", + width: o.length + o.width + "px", + height: o.width + "px", + background: color, + boxShadow: shadow, + transformOrigin: "left", + transform: + "rotate(" + + ~~((360 / o.lines) * i + o.rotate) + + "deg) translate(" + + o.radius + + "px,0)", + borderRadius: ((o.corners * o.width) >> 1) + "px" + }); + } + for (; i < o.lines; i++) { + seg = css(createEl(), { + position: "absolute", + top: 1 + ~(o.width / 2) + "px", + transform: o.hwaccel ? "translate3d(0,0,0)" : "", + opacity: o.opacity, + animation: + useCssAnimations && + addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + + " " + + 1 / o.speed + + "s linear infinite" + }); + if (o.shadow) { + ins( + seg, + css(fill("rgba(0,0,0,.25)", "0 0 4px rgba(0,0,0,.5)"), { + top: 2 + "px" + }) + ); + } + ins(el, ins(seg, fill(getColor(o.color, i), "0 0 1px rgba(0,0,0,.1)"))); + } + return el; + }, + opacity: function (el, i, val) { + if (i < el.childNodes.length) { + el.childNodes[i].style.opacity = val; + } + } + }); + function initVML() { + function vml(tag, attr) { + return createEl( + "<" + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', + attr + ); + } + sheet.addRule(".spin-vml", "behavior:url(#default#VML)"); + Spinner.prototype.lines = function (el, o) { + var r = o.length + o.width, + s = 2 * r; + function grp() { + return css( + vml("group", { coordsize: s + " " + s, coordorigin: -r + " " + -r }), + { width: s, height: s } + ); + } + var margin = -(o.width + o.length) * 2 + "px", + g = css(grp(), { position: "absolute", top: margin, left: margin }), + i; + function seg(i, dx, filter) { + ins( + g, + ins( + css(grp(), { rotation: (360 / o.lines) * i + "deg", left: ~~dx }), + ins( + css(vml("roundrect", { arcsize: o.corners }), { + width: r, + height: o.width, + left: o.radius, + top: -o.width >> 1, + filter: filter + }), + vml("fill", { color: getColor(o.color, i), opacity: o.opacity }), + vml("stroke", { opacity: 0 }) + ) + ) + ); + } + if (o.shadow) { + for (i = 1; i <= o.lines; i++) { + seg( + i, + -2, + "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)" + ); + } + } + for (i = 1; i <= o.lines; i++) { + seg(i); + } + return ins(el, g); + }; + Spinner.prototype.opacity = function (el, i, val, o) { + var c = el.firstChild; + o = (o.shadow && o.lines) || 0; + if (c && i + o < c.childNodes.length) { + c = c.childNodes[i + o]; + c = c && c.firstChild; + c = c && c.firstChild; + if (c) { + c.opacity = val; + } + } + }; + } + var probe = css(createEl("group"), { behavior: "url(#default#VML)" }); + if (!vendor(probe, "transform") && probe.adj) { + initVML(); + } else { + useCssAnimations = vendor(probe, "animation"); + } + return Spinner; +}); +(function (e) { + if (typeof exports == "object") { + e(require("jquery"), require("spin")); + } else if (typeof define == "function" && define.amd) { + define(["jquery", "spin"], e); + } else { + if (!window.Spinner) throw new Error("Spin.js not present"); + e(window.jQuery, window.Spinner); + } +})(function (e, t) { + e.fn.spin = function (n, r) { + return this.each(function () { + var i = e(this), + s = i.data(); + if (s.spinner) { + s.spinner.stop(); + delete s.spinner; + } + if (n !== false) { + n = e.extend({ color: r || i.css("color") }, e.fn.spin.presets[n] || n); + s.spinner = new t(n).spin(this); + } + }); + }; + e.fn.spin.presets = { + tiny: { lines: 8, length: 2, width: 2, radius: 3 }, + small: { lines: 8, length: 4, width: 3, radius: 5 }, + large: { lines: 10, length: 8, width: 4, radius: 8 } + }; +}); + +// http://stackoverflow.com/a/21422049 +(function (e) { + e.fn.hasScrollbar = function () { + var e = {}, + t = this.get(0); + e.vertical = t.scrollHeight > t.clientHeight ? true : false; + e.horizontal = t.scrollWidth > t.clientWidth ? true : false; + return e; + }; +})(jQuery); + +/** + * Antiscroll + * https://github.com/LearnBoost/antiscroll + */ +(function ($) { + $.fn.antiscroll = function (options) { + return this.each(function () { + if ($(this).data("antiscroll")) + $(this) + .data("antiscroll") + .destroy(); + $(this).data("antiscroll", new $.Antiscroll(this, options)); + }); + }; + $.Antiscroll = Antiscroll; + function Antiscroll(el, opts) { + this.el = $(el); + this.options = opts || {}; + this.x = false !== this.options.x || this.options.forceHorizontal; + this.y = false !== this.options.y || this.options.forceVertical; + this.autoHide = false !== this.options.autoHide; + this.padding = undefined == this.options.padding ? 2 : this.options.padding; + this.inner = this.el.find(".antiscroll-inner"); + this.inner.css({ + width: "+=" + (this.y ? scrollbarSize() : 0), + height: "+=" + (this.x ? scrollbarSize() : 0) + }); + this.refresh(); + } + Antiscroll.prototype.refresh = function () { + var needHScroll = + this.inner.get(0).scrollWidth > + this.el.width() + (this.y ? scrollbarSize() : 0), + needVScroll = + this.inner.get(0).scrollHeight > + this.el.height() + (this.x ? scrollbarSize() : 0); + if (this.x) + if (!this.horizontal && needHScroll) + this.horizontal = new Scrollbar.Horizontal(this); + else if (this.horizontal && !needHScroll) { + this.horizontal.destroy(); + this.horizontal = null; + } else if (this.horizontal) this.horizontal.update(); + if (this.y) + if (!this.vertical && needVScroll) + this.vertical = new Scrollbar.Vertical(this); + else if (this.vertical && !needVScroll) { + this.vertical.destroy(); + this.vertical = null; + } else if (this.vertical) this.vertical.update(); + }; + Antiscroll.prototype.destroy = function () { + if (this.horizontal) { + this.horizontal.destroy(); + this.horizontal = null; + } + if (this.vertical) { + this.vertical.destroy(); + this.vertical = null; + } + return this; + }; + Antiscroll.prototype.rebuild = function () { + this.destroy(); + this.inner.attr("style", ""); + Antiscroll.call(this, this.el, this.options); + return this; + }; + function Scrollbar(pane) { + this.pane = pane; + this.pane.el.append(this.el); + this.innerEl = this.pane.inner.get(0); + this.dragging = false; + this.enter = false; + this.shown = false; + this.pane.el.mouseenter($.proxy(this, "mouseenter")); + this.pane.el.mouseleave($.proxy(this, "mouseleave")); + this.el.mousedown($.proxy(this, "mousedown")); + this.innerPaneScrollListener = $.proxy(this, "scroll"); + this.pane.inner.scroll(this.innerPaneScrollListener); + this.innerPaneMouseWheelListener = $.proxy(this, "mousewheel"); + this.pane.inner.bind("mousewheel", this.innerPaneMouseWheelListener); + var initialDisplay = this.pane.options.initialDisplay; + if (initialDisplay !== false) { + this.show(); + if (this.pane.autoHide) + this.hiding = setTimeout( + $.proxy(this, "hide"), + parseInt(initialDisplay, 10) || 3e3 + ); + } + } + Scrollbar.prototype.destroy = function () { + this.el.remove(); + this.pane.inner.unbind("scroll", this.innerPaneScrollListener); + this.pane.inner.unbind("mousewheel", this.innerPaneMouseWheelListener); + return this; + }; + Scrollbar.prototype.mouseenter = function () { + this.enter = true; + this.show(); + }; + Scrollbar.prototype.mouseleave = function () { + this.enter = false; + if (!this.dragging) if (this.pane.autoHide) this.hide(); + }; + Scrollbar.prototype.scroll = function () { + if (!this.shown) { + this.show(); + if (!this.enter && !this.dragging) + if (this.pane.autoHide) + this.hiding = setTimeout($.proxy(this, "hide"), 1500); + } + this.update(); + }; + Scrollbar.prototype.mousedown = function (ev) { + ev.preventDefault(); + this.dragging = true; + this.startPageY = ev.pageY - parseInt(this.el.css("top"), 10); + this.startPageX = ev.pageX - parseInt(this.el.css("left"), 10); + this.el[0].ownerDocument.onselectstart = function () { + return false; + }; + var pane = this.pane, + move = $.proxy(this, "mousemove"), + self = this; + $(this.el[0].ownerDocument) + .mousemove(move) + .mouseup(function () { + self.dragging = false; + this.onselectstart = null; + $(this).unbind("mousemove", move); + if (!self.enter) self.hide(); + }); + }; + Scrollbar.prototype.show = function (duration) { + if (!this.shown && this.update()) { + this.el.addClass("antiscroll-scrollbar-shown"); + if (this.hiding) { + clearTimeout(this.hiding); + this.hiding = null; + } + this.shown = true; + } + }; + Scrollbar.prototype.hide = function () { + if (this.pane.autoHide !== false && this.shown) { + this.el.removeClass("antiscroll-scrollbar-shown"); + this.shown = false; + } + }; + Scrollbar.Horizontal = function (pane) { + this.el = $( + '<div class="antiscroll-scrollbar antiscroll-scrollbar-horizontal">', + pane.el + ); + Scrollbar.call(this, pane); + }; + inherits(Scrollbar.Horizontal, Scrollbar); + Scrollbar.Horizontal.prototype.update = function () { + var paneWidth = this.pane.el.width(), + trackWidth = paneWidth - this.pane.padding * 2, + innerEl = this.pane.inner.get(0); + this.el + .css("width", (trackWidth * paneWidth) / innerEl.scrollWidth) + .css("left", (trackWidth * innerEl.scrollLeft) / innerEl.scrollWidth); + return paneWidth < innerEl.scrollWidth; + }; + Scrollbar.Horizontal.prototype.mousemove = function (ev) { + var trackWidth = this.pane.el.width() - this.pane.padding * 2, + pos = ev.pageX - this.startPageX, + barWidth = this.el.width(), + innerEl = this.pane.inner.get(0); + var y = Math.min(Math.max(pos, 0), trackWidth - barWidth); + innerEl.scrollLeft = + ((innerEl.scrollWidth - this.pane.el.width()) * y) / + (trackWidth - barWidth); + }; + Scrollbar.Horizontal.prototype.mousewheel = function (ev, delta, x, y) { + if ( + (x < 0 && 0 == this.pane.inner.get(0).scrollLeft) || + (x > 0 && + this.innerEl.scrollLeft + Math.ceil(this.pane.el.width()) == + this.innerEl.scrollWidth) + ) { + ev.preventDefault(); + return false; + } + }; + Scrollbar.Vertical = function (pane) { + this.el = $( + '<div class="antiscroll-scrollbar antiscroll-scrollbar-vertical">', + pane.el + ); + Scrollbar.call(this, pane); + }; + inherits(Scrollbar.Vertical, Scrollbar); + Scrollbar.Vertical.prototype.update = function () { + var paneHeight = this.pane.el.height(), + trackHeight = paneHeight - this.pane.padding * 2, + innerEl = this.innerEl; + var scrollbarHeight = (trackHeight * paneHeight) / innerEl.scrollHeight; + scrollbarHeight = scrollbarHeight < 20 ? 20 : scrollbarHeight; + var topPos = (trackHeight * innerEl.scrollTop) / innerEl.scrollHeight; + if (topPos + scrollbarHeight > trackHeight) { + var diff = topPos + scrollbarHeight - trackHeight; + topPos = topPos - diff - 3; + } + this.el.css("height", scrollbarHeight).css("top", topPos); + return paneHeight < innerEl.scrollHeight; + }; + Scrollbar.Vertical.prototype.mousemove = function (ev) { + var paneHeight = this.pane.el.height(), + trackHeight = paneHeight - this.pane.padding * 2, + pos = ev.pageY - this.startPageY, + barHeight = this.el.height(), + innerEl = this.innerEl; + var y = Math.min(Math.max(pos, 0), trackHeight - barHeight); + innerEl.scrollTop = + ((innerEl.scrollHeight - paneHeight) * y) / (trackHeight - barHeight); + }; + Scrollbar.Vertical.prototype.mousewheel = function (ev, delta, x, y) { + if ( + (y > 0 && 0 == this.innerEl.scrollTop) || + (y < 0 && + this.innerEl.scrollTop + Math.ceil(this.pane.el.height()) == + this.innerEl.scrollHeight) + ) { + ev.preventDefault(); + return false; + } + }; + function inherits(ctorA, ctorB) { + function f() { } + f.prototype = ctorB.prototype; + ctorA.prototype = new f(); + } + var size; + function scrollbarSize() { + if (size === undefined) { + var div = $( + '<div class="antiscroll-inner" style="width:50px;height:50px;overflow-y:scroll;' + + 'position:absolute;top:-200px;left:-200px;"><div style="height:100px;width:100%">' + + "</div>" + ); + $("body").append(div); + var w1 = $(div).innerWidth(); + var w2 = $("div", div).innerWidth(); + $(div).remove(); + size = w1 - w2; + } + return size; + } +})(jQuery); + +/** + * jQuery Mousewheel + * ! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.1.3 + * + * Requires: 1.2.2+ + */ +(function (factory) { + if (typeof define === "function" && define.amd) define(["jquery"], factory); + else if (typeof exports === "object") module.exports = factory; + else factory(jQuery); +})(function ($) { + var toFix = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"]; + var toBind = + "onwheel" in document || document.documentMode >= 9 + ? ["wheel"] + : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"]; + var lowestDelta, lowestDeltaXY; + if ($.event.fixHooks) + for (var i = toFix.length; i;) + $.event.fixHooks[toFix[--i]] = $.event.mouseHooks; + $.event.special.mousewheel = { + setup: function () { + if (this.addEventListener) + for (var i = toBind.length; i;) + this.addEventListener(toBind[--i], handler, false); + else this.onmousewheel = handler; + }, + teardown: function () { + if (this.removeEventListener) + for (var i = toBind.length; i;) + this.removeEventListener(toBind[--i], handler, false); + else this.onmousewheel = null; + } + }; + $.fn.extend({ + mousewheel: function (fn) { + return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); + }, + unmousewheel: function (fn) { + return this.unbind("mousewheel", fn); + } + }); + function handler(event) { + var orgEvent = event || window.event, + args = [].slice.call(arguments, 1), + delta = 0, + deltaX = 0, + deltaY = 0, + absDelta = 0, + absDeltaXY = 0, + fn; + event = $.event.fix(orgEvent); + event.type = "mousewheel"; + if (orgEvent.wheelDelta) delta = orgEvent.wheelDelta; + if (orgEvent.detail) delta = orgEvent.detail * -1; + if (orgEvent.deltaY) { + deltaY = orgEvent.deltaY * -1; + delta = deltaY; + } + if (orgEvent.deltaX) { + deltaX = orgEvent.deltaX; + delta = deltaX * -1; + } + if (orgEvent.wheelDeltaY !== undefined) deltaY = orgEvent.wheelDeltaY; + if (orgEvent.wheelDeltaX !== undefined) deltaX = orgEvent.wheelDeltaX * -1; + absDelta = Math.abs(delta); + if (!lowestDelta || absDelta < lowestDelta) lowestDelta = absDelta; + absDeltaXY = Math.max(Math.abs(deltaY), Math.abs(deltaX)); + if (!lowestDeltaXY || absDeltaXY < lowestDeltaXY) + lowestDeltaXY = absDeltaXY; + fn = delta > 0 ? "floor" : "ceil"; + delta = Math[fn](delta / lowestDelta); + deltaX = Math[fn](deltaX / lowestDeltaXY); + deltaY = Math[fn](deltaY / lowestDeltaXY); + args.unshift(event, delta, deltaX, deltaY); + return ($.event.dispatch || $.event.handle).apply(this, args); + } +}); + +/** +Delayed action +http://stackoverflow.com/a/7150496 +**/ +(function ($) { + $.fn.delayedAction = function (options) { + var settings = $.extend( + {}, + { + delayedAction: function () { }, + cancelledAction: function () { }, + hoverTime: 1000 + }, + options + ); + + return this.each(function () { + var $this = $(this); + $this.hover( + function () { + $this.data( + "timerId", + setTimeout(function () { + $this.data("hover", false); + settings.delayedAction($this); + }, settings.hoverTime) + ); + $this.data("hover", true); + }, + function () { + if ($this.data("hover")) { + clearTimeout($this.data("timerId")); + settings.cancelledAction($this); + } + $this.data("hover", false); + } + ); + }); + }; +})(jQuery); + +/** +Created: 20060120 +Author: Steve Moitozo <god at zilla dot us> -- geekwisdom.com +License: MIT License (see below) +Copyright (c) 2006 Steve Moitozo <god at zilla dot us> + +Slightly modified for Peafowl + +*/ +function testPassword(e) { + var t = 0, + n = "weak", + r = "", + i = 0; + if (e.length < 5) { + t = t + 3; + r = r + "3 points for length (" + e.length + ")\n"; + } else if (e.length > 4 && e.length < 8) { + t = t + 6; + r = r + "6 points for length (" + e.length + ")\n"; + } else if (e.length > 7 && e.length < 16) { + t = t + 12; + r = r + "12 points for length (" + e.length + ")\n"; + } else if (e.length > 15) { + t = t + 18; + r = r + "18 point for length (" + e.length + ")\n"; + } + if (e.match(/[a-z]/)) { + t = t + 1; + r = r + "1 point for at least one lower case char\n"; + } + if (e.match(/[A-Z]/)) { + t = t + 5; + r = r + "5 points for at least one upper case char\n"; + } + if (e.match(/\d+/)) { + t = t + 5; + r = r + "5 points for at least one number\n"; + } + if (e.match(/(.*[0-9].*[0-9].*[0-9])/)) { + t = t + 5; + r = r + "5 points for at least three numbers\n"; + } + if (e.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)) { + t = t + 5; + r = r + "5 points for at least one special char\n"; + } + if (e.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) { + t = t + 5; + r = r + "5 points for at least two special chars\n"; + } + if (e.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) { + t = t + 2; + r = r + "2 combo points for upper and lower letters\n"; + } + if (e.match(/([a-zA-Z])/) && e.match(/([0-9])/)) { + t = t + 2; + r = r + "2 combo points for letters and numbers\n"; + } + if ( + e.match( + /([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/ + ) + ) { + t = t + 2; + r = r + "2 combo points for letters, numbers and special chars\n"; + } + if (e.length == 0) { + t = 0; + } + if (t < 16) { + n = "very weak"; + } else if (t > 15 && t < 25) { + n = "weak"; + } else if (t > 24 && t < 35) { + n = "average"; + } else if (t > 34 && t < 45) { + n = "strong"; + } else { + n = "stronger"; + } + i = Math.round(Math.min(100, (100 * t) / 45)) / 100; + return { score: t, ratio: i, percent: i * 100 + "%", verdict: n, log: r }; +} + +// SparkMD5 +(function (factory) { + if (typeof exports === "object") { + module.exports = factory(); + } else if (typeof define === "function" && define.amd) { + define(factory); + } else { + var glob; + try { + glob = window; + } catch (e) { + glob = self; + } + glob.SparkMD5 = factory(); + } +})(function (undefined) { + "use strict"; + var add32 = function (a, b) { + return (a + b) & 4294967295; + }, + hex_chr = [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "a", + "b", + "c", + "d", + "e", + "f" + ]; + function cmn(q, a, b, x, s, t) { + a = add32(add32(a, q), add32(x, t)); + return add32((a << s) | (a >>> (32 - s)), b); + } + function ff(a, b, c, d, x, s, t) { + return cmn((b & c) | (~b & d), a, b, x, s, t); + } + function gg(a, b, c, d, x, s, t) { + return cmn((b & d) | (c & ~d), a, b, x, s, t); + } + function hh(a, b, c, d, x, s, t) { + return cmn(b ^ c ^ d, a, b, x, s, t); + } + function ii(a, b, c, d, x, s, t) { + return cmn(c ^ (b | ~d), a, b, x, s, t); + } + function md5cycle(x, k) { + var a = x[0], + b = x[1], + c = x[2], + d = x[3]; + a = ff(a, b, c, d, k[0], 7, -680876936); + d = ff(d, a, b, c, k[1], 12, -389564586); + c = ff(c, d, a, b, k[2], 17, 606105819); + b = ff(b, c, d, a, k[3], 22, -1044525330); + a = ff(a, b, c, d, k[4], 7, -176418897); + d = ff(d, a, b, c, k[5], 12, 1200080426); + c = ff(c, d, a, b, k[6], 17, -1473231341); + b = ff(b, c, d, a, k[7], 22, -45705983); + a = ff(a, b, c, d, k[8], 7, 1770035416); + d = ff(d, a, b, c, k[9], 12, -1958414417); + c = ff(c, d, a, b, k[10], 17, -42063); + b = ff(b, c, d, a, k[11], 22, -1990404162); + a = ff(a, b, c, d, k[12], 7, 1804603682); + d = ff(d, a, b, c, k[13], 12, -40341101); + c = ff(c, d, a, b, k[14], 17, -1502002290); + b = ff(b, c, d, a, k[15], 22, 1236535329); + a = gg(a, b, c, d, k[1], 5, -165796510); + d = gg(d, a, b, c, k[6], 9, -1069501632); + c = gg(c, d, a, b, k[11], 14, 643717713); + b = gg(b, c, d, a, k[0], 20, -373897302); + a = gg(a, b, c, d, k[5], 5, -701558691); + d = gg(d, a, b, c, k[10], 9, 38016083); + c = gg(c, d, a, b, k[15], 14, -660478335); + b = gg(b, c, d, a, k[4], 20, -405537848); + a = gg(a, b, c, d, k[9], 5, 568446438); + d = gg(d, a, b, c, k[14], 9, -1019803690); + c = gg(c, d, a, b, k[3], 14, -187363961); + b = gg(b, c, d, a, k[8], 20, 1163531501); + a = gg(a, b, c, d, k[13], 5, -1444681467); + d = gg(d, a, b, c, k[2], 9, -51403784); + c = gg(c, d, a, b, k[7], 14, 1735328473); + b = gg(b, c, d, a, k[12], 20, -1926607734); + a = hh(a, b, c, d, k[5], 4, -378558); + d = hh(d, a, b, c, k[8], 11, -2022574463); + c = hh(c, d, a, b, k[11], 16, 1839030562); + b = hh(b, c, d, a, k[14], 23, -35309556); + a = hh(a, b, c, d, k[1], 4, -1530992060); + d = hh(d, a, b, c, k[4], 11, 1272893353); + c = hh(c, d, a, b, k[7], 16, -155497632); + b = hh(b, c, d, a, k[10], 23, -1094730640); + a = hh(a, b, c, d, k[13], 4, 681279174); + d = hh(d, a, b, c, k[0], 11, -358537222); + c = hh(c, d, a, b, k[3], 16, -722521979); + b = hh(b, c, d, a, k[6], 23, 76029189); + a = hh(a, b, c, d, k[9], 4, -640364487); + d = hh(d, a, b, c, k[12], 11, -421815835); + c = hh(c, d, a, b, k[15], 16, 530742520); + b = hh(b, c, d, a, k[2], 23, -995338651); + a = ii(a, b, c, d, k[0], 6, -198630844); + d = ii(d, a, b, c, k[7], 10, 1126891415); + c = ii(c, d, a, b, k[14], 15, -1416354905); + b = ii(b, c, d, a, k[5], 21, -57434055); + a = ii(a, b, c, d, k[12], 6, 1700485571); + d = ii(d, a, b, c, k[3], 10, -1894986606); + c = ii(c, d, a, b, k[10], 15, -1051523); + b = ii(b, c, d, a, k[1], 21, -2054922799); + a = ii(a, b, c, d, k[8], 6, 1873313359); + d = ii(d, a, b, c, k[15], 10, -30611744); + c = ii(c, d, a, b, k[6], 15, -1560198380); + b = ii(b, c, d, a, k[13], 21, 1309151649); + a = ii(a, b, c, d, k[4], 6, -145523070); + d = ii(d, a, b, c, k[11], 10, -1120210379); + c = ii(c, d, a, b, k[2], 15, 718787259); + b = ii(b, c, d, a, k[9], 21, -343485551); + x[0] = add32(a, x[0]); + x[1] = add32(b, x[1]); + x[2] = add32(c, x[2]); + x[3] = add32(d, x[3]); + } + function md5blk(s) { + var md5blks = [], + i; + for (i = 0; i < 64; i += 4) { + md5blks[i >> 2] = + s.charCodeAt(i) + + (s.charCodeAt(i + 1) << 8) + + (s.charCodeAt(i + 2) << 16) + + (s.charCodeAt(i + 3) << 24); + } + return md5blks; + } + function md5blk_array(a) { + var md5blks = [], + i; + for (i = 0; i < 64; i += 4) { + md5blks[i >> 2] = + a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24); + } + return md5blks; + } + function md51(s) { + var n = s.length, + state = [1732584193, -271733879, -1732584194, 271733878], + i, + length, + tail, + tmp, + lo, + hi; + for (i = 64; i <= n; i += 64) { + md5cycle(state, md5blk(s.substring(i - 64, i))); + } + s = s.substring(i - 64); + length = s.length; + tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + for (i = 0; i < length; i += 1) { + tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3); + } + tail[i >> 2] |= 128 << (i % 4 << 3); + if (i > 55) { + md5cycle(state, tail); + for (i = 0; i < 16; i += 1) { + tail[i] = 0; + } + } + tmp = n * 8; + tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/); + lo = parseInt(tmp[2], 16); + hi = parseInt(tmp[1], 16) || 0; + tail[14] = lo; + tail[15] = hi; + md5cycle(state, tail); + return state; + } + function md51_array(a) { + var n = a.length, + state = [1732584193, -271733879, -1732584194, 271733878], + i, + length, + tail, + tmp, + lo, + hi; + for (i = 64; i <= n; i += 64) { + md5cycle(state, md5blk_array(a.subarray(i - 64, i))); + } + a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0); + length = a.length; + tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + for (i = 0; i < length; i += 1) { + tail[i >> 2] |= a[i] << (i % 4 << 3); + } + tail[i >> 2] |= 128 << (i % 4 << 3); + if (i > 55) { + md5cycle(state, tail); + for (i = 0; i < 16; i += 1) { + tail[i] = 0; + } + } + tmp = n * 8; + tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/); + lo = parseInt(tmp[2], 16); + hi = parseInt(tmp[1], 16) || 0; + tail[14] = lo; + tail[15] = hi; + md5cycle(state, tail); + return state; + } + function rhex(n) { + var s = "", + j; + for (j = 0; j < 4; j += 1) { + s += hex_chr[(n >> (j * 8 + 4)) & 15] + hex_chr[(n >> (j * 8)) & 15]; + } + return s; + } + function hex(x) { + var i; + for (i = 0; i < x.length; i += 1) { + x[i] = rhex(x[i]); + } + return x.join(""); + } + if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592") { + add32 = function (x, y) { + var lsw = (x & 65535) + (y & 65535), + msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 65535); + }; + } + function toUtf8(str) { + if (/[\u0080-\uFFFF]/.test(str)) { + str = unescape(encodeURIComponent(str)); + } + return str; + } + function utf8Str2ArrayBuffer(str, returnUInt8Array) { + var length = str.length, + buff = new ArrayBuffer(length), + arr = new Uint8Array(buff), + i; + for (i = 0; i < length; i++) { + arr[i] = str.charCodeAt(i); + } + return returnUInt8Array ? arr : buff; + } + function arrayBuffer2Utf8Str(buff) { + return String.fromCharCode.apply(null, new Uint8Array(buff)); + } + function concatenateArrayBuffers(first, second, returnUInt8Array) { + var result = new Uint8Array(first.byteLength + second.byteLength); + result.set(new Uint8Array(first)); + result.set(new Uint8Array(second), first.byteLength); + return returnUInt8Array ? result : result.buffer; + } + function SparkMD5() { + this.reset(); + } + SparkMD5.prototype.append = function (str) { + this.appendBinary(toUtf8(str)); + return this; + }; + SparkMD5.prototype.appendBinary = function (contents) { + this._buff += contents; + this._length += contents.length; + var length = this._buff.length, + i; + for (i = 64; i <= length; i += 64) { + md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i))); + } + this._buff = this._buff.substring(i - 64); + return this; + }; + SparkMD5.prototype.end = function (raw) { + var buff = this._buff, + length = buff.length, + i, + tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + ret; + for (i = 0; i < length; i += 1) { + tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3); + } + this._finish(tail, length); + ret = !!raw ? this._hash : hex(this._hash); + this.reset(); + return ret; + }; + SparkMD5.prototype.reset = function () { + this._buff = ""; + this._length = 0; + this._hash = [1732584193, -271733879, -1732584194, 271733878]; + return this; + }; + SparkMD5.prototype.getState = function () { + return { buff: this._buff, length: this._length, hash: this._hash }; + }; + SparkMD5.prototype.setState = function (state) { + this._buff = state.buff; + this._length = state.length; + this._hash = state.hash; + return this; + }; + SparkMD5.prototype.destroy = function () { + delete this._hash; + delete this._buff; + delete this._length; + }; + SparkMD5.prototype._finish = function (tail, length) { + var i = length, + tmp, + lo, + hi; + tail[i >> 2] |= 128 << (i % 4 << 3); + if (i > 55) { + md5cycle(this._hash, tail); + for (i = 0; i < 16; i += 1) { + tail[i] = 0; + } + } + tmp = this._length * 8; + tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/); + lo = parseInt(tmp[2], 16); + hi = parseInt(tmp[1], 16) || 0; + tail[14] = lo; + tail[15] = hi; + md5cycle(this._hash, tail); + }; + SparkMD5.hash = function (str, raw) { + return SparkMD5.hashBinary(toUtf8(str), raw); + }; + SparkMD5.hashBinary = function (content, raw) { + var hash = md51(content); + return !!raw ? hash : hex(hash); + }; + SparkMD5.ArrayBuffer = function () { + this.reset(); + }; + SparkMD5.ArrayBuffer.prototype.append = function (arr) { + var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), + length = buff.length, + i; + this._length += arr.byteLength; + for (i = 64; i <= length; i += 64) { + md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i))); + } + this._buff = i - 64 < length ? buff.subarray(i - 64) : new Uint8Array(0); + return this; + }; + SparkMD5.ArrayBuffer.prototype.end = function (raw) { + var buff = this._buff, + length = buff.length, + tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + i, + ret; + for (i = 0; i < length; i += 1) { + tail[i >> 2] |= buff[i] << (i % 4 << 3); + } + this._finish(tail, length); + ret = !!raw ? this._hash : hex(this._hash); + this.reset(); + return ret; + }; + SparkMD5.ArrayBuffer.prototype.reset = function () { + this._buff = new Uint8Array(0); + this._length = 0; + this._hash = [1732584193, -271733879, -1732584194, 271733878]; + return this; + }; + SparkMD5.ArrayBuffer.prototype.getState = function () { + var state = SparkMD5.prototype.getState.call(this); + state.buff = arrayBuffer2Utf8Str(state.buff); + return state; + }; + SparkMD5.ArrayBuffer.prototype.setState = function (state) { + state.buff = utf8Str2ArrayBuffer(state.buff, true); + return SparkMD5.prototype.setState.call(this, state); + }; + SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy; + SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish; + SparkMD5.ArrayBuffer.hash = function (arr, raw) { + var hash = md51_array(new Uint8Array(arr)); + return !!raw ? hash : hex(hash); + }; + return SparkMD5; +}); + +/*! + * clipboard.js v1.5.8 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!(function (t) { + if ("object" == typeof exports && "undefined" != typeof module) + module.exports = t(); + else if ("function" == typeof define && define.amd) define([], t); + else { + var e; + (e = + "undefined" != typeof window + ? window + : "undefined" != typeof global + ? global + : "undefined" != typeof self + ? self + : this), + (e.Clipboard = t()); + } +})(function () { + var t, e, n; + return (function t(e, n, r) { + function o(a, s) { + if (!n[a]) { + if (!e[a]) { + var c = "function" == typeof require && require; + if (!s && c) return c(a, !0); + if (i) return i(a, !0); + var u = new Error("Cannot find module '" + a + "'"); + throw ((u.code = "MODULE_NOT_FOUND"), u); + } + var l = (n[a] = { exports: {} }); + e[a][0].call( + l.exports, + function (t) { + var n = e[a][1][t]; + return o(n ? n : t); + }, + l, + l.exports, + t, + e, + n, + r + ); + } + return n[a].exports; + } + for ( + var i = "function" == typeof require && require, a = 0; + a < r.length; + a++ + ) + o(r[a]); + return o; + })( + { + 1: [ + function (t, e, n) { + var r = t("matches-selector"); + e.exports = function (t, e, n) { + for (var o = n ? t : t.parentNode; o && o !== document;) { + if (r(o, e)) return o; + o = o.parentNode; + } + }; + }, + { "matches-selector": 5 } + ], + 2: [ + function (t, e, n) { + function r(t, e, n, r, i) { + var a = o.apply(this, arguments); + return ( + t.addEventListener(n, a, i), + { + destroy: function () { + t.removeEventListener(n, a, i); + } + } + ); + } + function o(t, e, n, r) { + return function (n) { + (n.delegateTarget = i(n.target, e, !0)), + n.delegateTarget && r.call(t, n); + }; + } + var i = t("closest"); + e.exports = r; + }, + { closest: 1 } + ], + 3: [ + function (t, e, n) { + (n.node = function (t) { + return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType; + }), + (n.nodeList = function (t) { + var e = Object.prototype.toString.call(t); + return ( + void 0 !== t && + ("[object NodeList]" === e || + "[object HTMLCollection]" === e) && + "length" in t && + (0 === t.length || n.node(t[0])) + ); + }), + (n.string = function (t) { + return "string" == typeof t || t instanceof String; + }), + (n.fn = function (t) { + var e = Object.prototype.toString.call(t); + return "[object Function]" === e; + }); + }, + {} + ], + 4: [ + function (t, e, n) { + function r(t, e, n) { + if (!t && !e && !n) throw new Error("Missing required arguments"); + if (!s.string(e)) + throw new TypeError("Second argument must be a String"); + if (!s.fn(n)) + throw new TypeError("Third argument must be a Function"); + if (s.node(t)) return o(t, e, n); + if (s.nodeList(t)) return i(t, e, n); + if (s.string(t)) return a(t, e, n); + throw new TypeError( + "First argument must be a String, HTMLElement, HTMLCollection, or NodeList" + ); + } + function o(t, e, n) { + return ( + t.addEventListener(e, n), + { + destroy: function () { + t.removeEventListener(e, n); + } + } + ); + } + function i(t, e, n) { + return ( + Array.prototype.forEach.call(t, function (t) { + t.addEventListener(e, n); + }), + { + destroy: function () { + Array.prototype.forEach.call(t, function (t) { + t.removeEventListener(e, n); + }); + } + } + ); + } + function a(t, e, n) { + return c(document.body, t, e, n); + } + var s = t("./is"), + c = t("delegate"); + e.exports = r; + }, + { "./is": 3, delegate: 2 } + ], + 5: [ + function (t, e, n) { + function r(t, e) { + if (i) return i.call(t, e); + for ( + var n = t.parentNode.querySelectorAll(e), r = 0; + r < n.length; + ++r + ) + if (n[r] == t) return !0; + return !1; + } + var o = Element.prototype, + i = + o.matchesSelector || + o.webkitMatchesSelector || + o.mozMatchesSelector || + o.msMatchesSelector || + o.oMatchesSelector; + e.exports = r; + }, + {} + ], + 6: [ + function (t, e, n) { + function r(t) { + var e; + if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) + t.focus(), t.setSelectionRange(0, t.value.length), (e = t.value); + else { + t.hasAttribute("contenteditable") && t.focus(); + var n = window.getSelection(), + r = document.createRange(); + r.selectNodeContents(t), + n.removeAllRanges(), + n.addRange(r), + (e = n.toString()); + } + return e; + } + e.exports = r; + }, + {} + ], + 7: [ + function (t, e, n) { + function r() { } + (r.prototype = { + on: function (t, e, n) { + var r = this.e || (this.e = {}); + return (r[t] || (r[t] = [])).push({ fn: e, ctx: n }), this; + }, + once: function (t, e, n) { + function r() { + o.off(t, r), e.apply(n, arguments); + } + var o = this; + return (r._ = e), this.on(t, r, n); + }, + emit: function (t) { + var e = [].slice.call(arguments, 1), + n = ((this.e || (this.e = {}))[t] || []).slice(), + r = 0, + o = n.length; + for (r; o > r; r++) n[r].fn.apply(n[r].ctx, e); + return this; + }, + off: function (t, e) { + var n = this.e || (this.e = {}), + r = n[t], + o = []; + if (r && e) + for (var i = 0, a = r.length; a > i; i++) + r[i].fn !== e && r[i].fn._ !== e && o.push(r[i]); + return o.length ? (n[t] = o) : delete n[t], this; + } + }), + (e.exports = r); + }, + {} + ], + 8: [ + function (t, e, n) { + "use strict"; + function r(t) { + return t && t.__esModule ? t : { default: t }; + } + function o(t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + } + n.__esModule = !0; + var i = (function () { + function t(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + "value" in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + return function (e, n, r) { + return n && t(e.prototype, n), r && t(e, r), e; + }; + })(), + a = t("select"), + s = r(a), + c = (function () { + function t(e) { + o(this, t), this.resolveOptions(e), this.initSelection(); + } + return ( + (t.prototype.resolveOptions = function t() { + var e = + arguments.length <= 0 || void 0 === arguments[0] + ? {} + : arguments[0]; + (this.action = e.action), + (this.emitter = e.emitter), + (this.target = e.target), + (this.text = e.text), + (this.trigger = e.trigger), + (this.selectedText = ""); + }), + (t.prototype.initSelection = function t() { + if (this.text && this.target) + throw new Error( + 'Multiple attributes declared, use either "target" or "text"' + ); + if (this.text) this.selectFake(); + else { + if (!this.target) + throw new Error( + 'Missing required attributes, use either "target" or "text"' + ); + this.selectTarget(); + } + }), + (t.prototype.selectFake = function t() { + var e = this, + n = "rtl" == document.documentElement.getAttribute("dir"); + this.removeFake(), + (this.fakeHandler = document.body.addEventListener( + "click", + function () { + return e.removeFake(); + } + )), + (this.fakeElem = document.createElement("textarea")), + (this.fakeElem.style.fontSize = "12pt"), + (this.fakeElem.style.border = "0"), + (this.fakeElem.style.padding = "0"), + (this.fakeElem.style.margin = "0"), + (this.fakeElem.style.position = "absolute"), + (this.fakeElem.style[n ? "right" : "left"] = "-9999px"), + (this.fakeElem.style.top = + (window.pageYOffset || + document.documentElement.scrollTop) + "px"), + this.fakeElem.setAttribute("readonly", ""), + (this.fakeElem.value = this.text), + document.body.appendChild(this.fakeElem), + (this.selectedText = s.default(this.fakeElem)), + this.copyText(); + }), + (t.prototype.removeFake = function t() { + this.fakeHandler && + (document.body.removeEventListener("click"), + (this.fakeHandler = null)), + this.fakeElem && + (document.body.removeChild(this.fakeElem), + (this.fakeElem = null)); + }), + (t.prototype.selectTarget = function t() { + (this.selectedText = s.default(this.target)), this.copyText(); + }), + (t.prototype.copyText = function t() { + var e = void 0; + try { + e = document.execCommand(this.action); + } catch (n) { + e = !1; + } + this.handleResult(e); + }), + (t.prototype.handleResult = function t(e) { + e + ? this.emitter.emit("success", { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }) + : this.emitter.emit("error", { + action: this.action, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }); + }), + (t.prototype.clearSelection = function t() { + this.target && this.target.blur(), + window.getSelection().removeAllRanges(); + }), + (t.prototype.destroy = function t() { + this.removeFake(); + }), + i(t, [ + { + key: "action", + set: function t() { + var e = + arguments.length <= 0 || void 0 === arguments[0] + ? "copy" + : arguments[0]; + if ( + ((this._action = e), + "copy" !== this._action && "cut" !== this._action) + ) + throw new Error( + 'Invalid "action" value, use either "copy" or "cut"' + ); + }, + get: function t() { + return this._action; + } + }, + { + key: "target", + set: function t(e) { + if (void 0 !== e) { + if (!e || "object" != typeof e || 1 !== e.nodeType) + throw new Error( + 'Invalid "target" value, use a valid Element' + ); + this._target = e; + } + }, + get: function t() { + return this._target; + } + } + ]), + t + ); + })(); + (n.default = c), (e.exports = n.default); + }, + { select: 6 } + ], + 9: [ + function (t, e, n) { + "use strict"; + function r(t) { + return t && t.__esModule ? t : { default: t }; + } + function o(t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + } + function i(t, e) { + if ("function" != typeof e && null !== e) + throw new TypeError( + "Super expression must either be null or a function, not " + + typeof e + ); + (t.prototype = Object.create(e && e.prototype, { + constructor: { + value: t, + enumerable: !1, + writable: !0, + configurable: !0 + } + })), + e && + (Object.setPrototypeOf + ? Object.setPrototypeOf(t, e) + : (t.__proto__ = e)); + } + function a(t, e) { + var n = "data-clipboard-" + t; + if (e.hasAttribute(n)) return e.getAttribute(n); + } + n.__esModule = !0; + var s = t("./clipboard-action"), + c = r(s), + u = t("tiny-emitter"), + l = r(u), + f = t("good-listener"), + d = r(f), + h = (function (t) { + function e(n, r) { + o(this, e), + t.call(this), + this.resolveOptions(r), + this.listenClick(n); + } + return ( + i(e, t), + (e.prototype.resolveOptions = function t() { + var e = + arguments.length <= 0 || void 0 === arguments[0] + ? {} + : arguments[0]; + (this.action = + "function" == typeof e.action + ? e.action + : this.defaultAction), + (this.target = + "function" == typeof e.target + ? e.target + : this.defaultTarget), + (this.text = + "function" == typeof e.text ? e.text : this.defaultText); + }), + (e.prototype.listenClick = function t(e) { + var n = this; + this.listener = d.default(e, "click", function (t) { + return n.onClick(t); + }); + }), + (e.prototype.onClick = function t(e) { + var n = e.delegateTarget || e.currentTarget; + this.clipboardAction && (this.clipboardAction = null), + (this.clipboardAction = new c.default({ + action: this.action(n), + target: this.target(n), + text: this.text(n), + trigger: n, + emitter: this + })); + }), + (e.prototype.defaultAction = function t(e) { + return a("action", e); + }), + (e.prototype.defaultTarget = function t(e) { + var n = a("target", e); + return n ? document.querySelector(n) : void 0; + }), + (e.prototype.defaultText = function t(e) { + return a("text", e); + }), + (e.prototype.destroy = function t() { + this.listener.destroy(), + this.clipboardAction && + (this.clipboardAction.destroy(), + (this.clipboardAction = null)); + }), + e + ); + })(l.default); + (n.default = h), (e.exports = n.default); + }, + { "./clipboard-action": 8, "good-listener": 4, "tiny-emitter": 7 } + ] + }, + {}, + [9] + )(9); +}); diff --git a/content/legacy/themes/Peafowl/lib/peafowl.min.css b/content/legacy/themes/Peafowl/lib/peafowl.min.css new file mode 100644 index 0000000..70c6097 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/peafowl.min.css @@ -0,0 +1 @@ +:root{--colorBlue:#3498db;--colorBlueHover:#2980b9;--colorGreen:#2ecc71;--colorGreenHover:#27ae60;--colorOrange:#e67e22;--colorOrangeHover:#d35400;--colorPurple:#9b59b6;--colorPurpleHover:#8e44ad;--colorRed:#e74c3c;--colorRedHover:#c0392b;--colorYellow:#f1c40f;--colorYellowHover:#f39c12}:root{--colorSuccess:var(--colorGreen);--colorFail:var(--colorRed);--alertAccent:#f1c40f;--alertBackground:#fff5b3;--alertText:#161c1d;--backgroundDarkAlpha:rgb(0 0 0 / 80%);--backgroundLightAlpha:rgb(255 255 255 / 90%);--bodyBackground:#FFF;--bodyEmpty:#e2e8e9;--bodySeparator:#e2e8e9;--bodyText:#161c1d;--bodyTextDisabled:#c5d1d3;--bodyTextSubtle:#6c7779;--buttonAccentBackground:var(--colorAccent);--buttonAccentHoverBackground:var(--colorAccentStrong);--buttonAccentHoverText:var(--buttonAccentText);--buttonAccentText:#FFF;--buttonDefaultBackground:#d9e1e2;--buttonDefaultBorder:var(--buttonDefaultBackground);--buttonDefaultHoverBackground:#c0def2;--buttonDefaultHoverBorder:var(--buttonDefaultHoverBackground);--buttonDefaultHoverText:var(--colorAccentStrong);--buttonDefaultText:#161c1d;--colorAccent:var(--colorBlue);--colorAccentStrong:var(--colorBlueHover);--inputBackground:#ecf0f1;--inputPlaceholderText:#8aa2a8;--inputText:#161c1d;--linkText:var(--colorAccent);--menuBackground:rgb(236 240 241 / 80%);--menuItemHoverBackground:var(--colorAccent);--menuItemHoverText:#FFF;--menuItemText:#161c1d;--menuSeparator:rgb(11 14 15 / 10%);--menuText:#161c1d;--modalBackground:var(--bodyBackground);--modalText:#161c1d;--topBarBackground:rgb(255 255 255);--topBarText:#161c1d;--viewerBackground:#323232;--listItemText:#FFF}*{-ms-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;border:0;list-style:none}@media screen and (-webkit-min-device-pixel-ratio:0){.phone input:focus,.phone select:focus,.phone textarea:focus{font-size:16px!important}}.btn,.btn-container,.input-search,.link,.list-item,.no-select,.pop-btn-text,.top-btn-text,.user-select-none{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.animate{transition:all .2s ease-in-out}.animate--slow{transition-duration:.4s}[type=search]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}::-webkit-input-placeholder{color:var(--inputPlaceholderText);line-height:140%}:-moz-placeholder{color:var(--inputPlaceholderText);opacity:1}::-moz-placeholder{color:var(--inputPlaceholderText);opacity:1}:-ms-input-placeholder{color:var(--inputPlaceholderText)}:focus::-webkit-input-placeholder{color:var(--inputPlaceholderText)}:focus:-moz-placeholder{color:var(--inputPlaceholderText)}:focus::-moz-placeholder{color:var(--inputPlaceholderText)}focus:-ms-input-placeholder{color:var(--inputPlaceholderText)}::-moz-focus-inner{border:0;padding:0;margin:0}::-ms-clear{display:none}body{min-height:100vh;min-height:-webkit-fill-available;-webkit-font-smoothing:subpixel-antialiased}[type=submit]:focus,button:focus{outline:0}html{height:100%;height:-webkit-fill-available}body,html{min-height:100vh;font-family:Helvetica,Arial,sans-serif;color:var(--bodyText);font-size:16px;background:var(--bodyBackground);-webkit-text-size-adjust:100%}kbd{font-family:inherit}.pointer-events-none{pointer-events:none}#menu-fullscreen,#pop-box-mask.fullscreen{height:100%}#menu-fullscreen,.pop-box{transition:transform 350ms cubic-bezier(.4,0,0,1),opacity 350ms cubic-bezier(.4,0,0,1)}#menu-fullscreen>ul{position:relative;z-index:1000;background:var(--topBarBackground);color:var(--topBarText)}body.no-margin-top{margin-top:0;padding-top:0}.content-width{width:100%;margin-right:auto;margin-left:auto;position:relative;padding-left:10px;padding-right:10px}.phone .top-bar .content-width{padding-left:0;padding-right:0}a{color:var(--linkText);text-decoration:none;cursor:pointer;outline:0}a[rel=external]::after{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;margin-left:.25em;content:"\f35d";font-size:90%}a[role=button]:hover{text-decoration:none}a:focus,a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1}.ui-selectable-helper{background:var(--colorAccent);border:2px dashed var(--topBarBackground);position:absolute;z-index:500;opacity:.6}.image-container{transition:transform 180ms cubic-bezier(.25,1,.5,1)}.selected .image-container,.ui-selecting.selected .image-container{transform:scale(.5)}.selected .list-item-play-gif,.ui-selecting.selected .list-item-play-gif{transform:scale(.75)}.selected .image-container img,.selected .image-container svg,.ui-selecting.selected .image-container img,.ui-selecting.selected .image-container svg{border-radius:.5em;-webkit-transform:translateZ(0)}.hidden{display:none!important}.visible{display:block!important}.fab.soft-hidden,.far.soft-hidden,.fas.soft-hidden,.soft-hidden{display:none}.soft-visible{display:block}.hidden-visibility{visibility:hidden;position:absolute;top:0}.touch-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.or-separator{border-top:1px solid var(--bodySeparator);text-align:center;margin:10px 0 10px 0}.tone-dark .or-separator{border-color:rgba(255,255,255,.1)}.or-separator span{font-size:.93em;font-weight:400;color:var(--bodySeparator);text-transform:uppercase;text-align:center;background:var(--bodyBackground);display:inline-block;position:relative;padding:0 10px;top:-10px}.tone-dark .or-separator span{background:#0b0b0b}.highlight{color:var(--alertText);background:var(--alertBackground)}.highlight:empty{display:none}.line-through{text-decoration:line-through}.line-separator{width:100%;height:1px;background:var(--bodySeparator);display:block;margin:20px 0}.number-figures,a.number-figures{font-size:1.21em;line-height:1.21em;color:inherit;text-decoration:none;padding-left:10px;padding-right:10px;margin-left:0;border-left:1px solid var(--bodySeparator);text-align:center}.tone-dark .number-figures,.tone-dark a.number-figures{border-color:#212121}.number-figures:first-child{padding-left:0;border-left:none}.number-figures:last-child{padding-right:0}.number-figures b{font-weight:inherit}.number-figures .icon-heart4{position:relative;top:1px}.number-figures span:not(.icon){color:var(--bodyTextSubtle);text-transform:uppercase;font-size:.6em}a.number-figures:hover,a.number-figures:hover *{color:var(--linkText)}.loading-indicator,.loading-text{display:inline-block;line-height:inherit;vertical-align:top}.loading-text{margin-left:5px}.btn-alt{color:var(--bodyTextSubtle);font-size:13px;font-size:.93rem;margin:0 5px;display:inline!important}.btn-alt a:first-letter{text-transform:capitalize}.phone .btn-alt{margin:5px 0 0}.btn-alt a{margin-left:5px;cursor:pointer}a.link{font-size:13px;font-size:.93rem;text-decoration:none;font-weight:400}.pop-box-menu a.link--delete,.tone-dark .pop-box-menu a.link--delete,[data-action=delete],a.link--delete{color:#e74c3c}.tone-dark html:not(.phone) .pop-box-menu a.link--delete:hover,html:not(.phone) .pop-box-menu a.link--delete:hover{background-color:#e74c3c}a.link--approve{color:#2ecc71}a.link span.icon,a.link:hover span.icon{text-decoration:none}a.link:hover span{text-decoration:underline}.disabled,.disabled a{color:var(--bodyTextDisabled)}.tone-dark .disabled,.tone-dark .disabled a{color:#444}.disabled a{text-decoration:none;cursor:default}.optional{font-size:50%;color:var(--bodyTextSubtle);font-weight:400}.text-shadow{text-shadow:2px 2px 3px rgba(0,0,0,.75);-webkit-filter:dropshadow(color=#000000, offx=2, offy=2);filter:dropshadow(color=#000000, offx=2, offy=2)}.box-shadow{box-shadow:2px 2px 3px 0 rgba(0,0,0,.45)}.silent-links a,a.silent-links{color:inherit}.close-box .icon-circle{color:var(--bodyText);position:relative}.close-box .icon-close-box{color:#fff;position:absolute;left:0;top:0}.transparent-canvas{background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9/f3yH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);background-repeat:repeat}.transparent-canvas.dark{background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAOfn58rKyiH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7)}input,select,textarea{font-family:inherit;font-size:inherit;-ms-appearance:none;border-radius:3px;display:inline-block;border:1px solid transparent;background:var(--inputBackground);color:var(--inputText)}input:-webkit-autofill,select:-webkit-autofill,textarea:-webkit-autofill{-webkit-text-fill-color:var(--inputText)!important}.input-focus,input.search:focus,input:focus,select:focus,textarea:focus{border-color:var(--colorAccent)}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover{-webkit-text-fill-color:inherit;-webkit-box-shadow:inset 0 0 0 9999px transparent;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}select{font:inherit;outline:0}.text-input,textarea{outline:0}input[type=checkbox],input[type=radio]{border-radius:0;border:none;position:relative;vertical-align:baseline}.input-line-height,.text-input,input[type=text]{height:36px}.input-line-height{line-height:36px}.text-input,input[type=text]:not(.text-input),textarea{padding:7px 10px;width:100%}.ie7 .text-input,.ie7 input[type=text],.ie7 textarea{padding:10px;width:328px;height:14px}.ie8 .text-input,.ie8 input[type=text],.ie8 textarea,.ie9 .text-input,.ie9 input[type=text],.ie9 textarea{height:auto}.tone-dark .input-focus,.tone-dark input.search:focus,.tone-dark input:focus,.tone-dark select:focus,.tone-dark textarea:focus{border-color:var(--colorAccent);box-shadow:0 0 8px 0 rgba(0,167,218,.75)}.input,.input-label{position:relative;overflow:visible;scroll-snap-align:start}.input{margin:10px 0;font-size:1em}.input.first-child,.input:first-child{margin-top:0}.input-label{margin:20px 0}.input-label.first-child,.input:first-child{margin-top:0}.input-label h3,.input-label label,.input-label-label{font-weight:600;padding-bottom:5px;display:inline-block;font-size:1em}.input-label h3{display:block}.input-label h3 a,.input-label label a{font-weight:400}.input-label label .caption,.input-label label .optional{font-weight:400;font-size:.92em}.input-label .btn-alt{position:absolute;left:100%;top:23px;line-height:36px;margin-left:10px;margin-right:0}.phone .input-label .btn-alt{position:static;margin-left:0}.checkbox-label,.input-label{position:relative;font-size:.93em}.input .icon-input-submit{background:0 0;font-size:1.82em;color:#d9d9d9;position:absolute;right:.21em;top:.21em;cursor:pointer;line-height:1}.tone-dark .input .icon-input-submit{color:#666}.input .icon-input-submit.focus,.input .icon-input-submit:focus,.input .icon-input-submit:hover{color:var(--colorAccent)}.ie7 .input .icon-input-submit{top:2px}.ui-autocomplete{max-height:130px;overflow-y:auto;overflow-x:hidden}* html .ui-autocomplete{height:125px}.autocomplete-list{position:absolute;display:none;z-index:1}.autocomplete-list .ui-autocomplete{position:absolute;top:0;left:0}.autocomplete-list ul{border:1px solid var(--bodyTextDisabled)}.autocomplete-list a{color:inherit;background:Window;padding:7px 10px;display:block;text-decoration:none;cursor:default}.autocomplete-list a.ui-state-focus{background:Highlight;color:HighlightText}.input-column{width:350px}.input-warning{color:var(--bodyTextSubtle);position:absolute;right:0;top:0}.input-below{margin-top:5px;display:block;position:static}.red-warning{color:#d74634}.input-password .input-password-strength{position:absolute;right:11px;top:50%;margin-top:5px}.fancy-fieldset .input-password{display:flex;align-items:center}.fancy-fieldset .input-password-strength{right:0;top:auto;margin-top:0}.input-password-strength{background:var(--bodyEmpty)}.tone-dark .input-password-strength{background:#1f1f1f}.input-password-strength,.input-password-strength span{display:block;width:50px;height:8px}.input-password-strength span{width:0%;background-color:transparent}.input-password-strength [data-veredict=very-weak]{background-color:#e74c3c}.input-password-strength [data-veredict=weak]{background-color:#e67e22}.input-password-strength [data-veredict=average],.input-password-strength [data-veredict=strong],.input-password-strength [data-veredict=stronger]{background-color:#2ecc71}.checkbox-label{font-size:1em;display:block;margin:5px 0;position:relative}.checkbox-label:last-child{margin-bottom:0}.checkbox-label input{position:absolute;padding:0;margin:0;margin-left:-20px}.btn-alt.checkbox-label input{position:static;vertical-align:text-top;margin-right:4px}.phone .btn-alt.checkbox-label{display:block!important;margin:10px 0}.checkbox-label label{padding-left:20px;font-weight:400;margin:0;padding-bottom:0}.fancy-box .checkbox-label label{display:flex;align-items:flex-start}.input-search{position:relative}input.search{font-size:1em;border-radius:200px;padding:0 25px 0 32px;padding-right:3.0666rem;padding-left:2.3571rem;line-height:100%;height:26px;height:1.86rem;width:100%;border:1px solid transparent;top:0;left:0;outline:0;vertical-align:text-bottom}input.search.one-icon-padding,input.search.two-icon-padding{padding-right:30px;padding-right:2rem}input.search.two-icon-padding{padding-left:30px;padding-left:2rem}.top-bar input.search{padding-left:39px;padding-left:2.46rem;top:-2px;position:relative;padding-right:34px;background:0 0;border:transparent;box-shadow:none!important}.top-bar input{color:var(--topBarText)}.ie7 input.search,.ie8 input.search,.ie9 input.search{padding-right:10px;line-height:26px;height:26px}.ie7 input.search{padding:0;width:200px}.input-search span{position:absolute;cursor:pointer}.input-search .icon--search{left:12px;top:6px;color:var(--inputText)}.top-bar .input-search .icon--search{top:4px;top:.24rem}.tone-dark .top-bar .input-search .icon--search,.tone-dark .top-bar .input-search input.search{color:#fff}.input-search .icon--search,.top-btn-text .icon--search{font-size:16px;width:16px;font-size:1.143rem;width:1.143rem}.input-search .icon--close,.input-search .icon--settings{padding:4px;top:0;font-size:1em}.input-search .icon--settings{right:22px}.input-search .icon--close{right:4px;color:var(--inputText)}.ie7 .input-search .icon--close,.ie8 .input-search .icon--close,.ie9 .input-search .icon--close{display:none}select{padding-left:7px!important}.ie7 select{width:100%!important;padding:0!important;height:auto!important}select option{padding:4px 10px;margin:0}textarea{resize:both;height:80px}.input-upload{position:relative}.user-settings-avatar{min-height:160px;height:auto}.user-settings-avatar-container{position:relative}.user-settings-avatar-container,.user-settings-avatar-container .user-image{font-size:160px;width:1em;height:1em}.user-settings-avatar .loading-placeholder{position:absolute;left:0;top:0;background:var(--bodyEmpty)}.tone-dark .user-settings-avatar .loading-placeholder{background:rgba(0,0,0,.6)}.phone .user-settings-avatar-container{margin:0 auto 10px!important}.input-upload .btn-container{margin:0 0 5px 0}.input-upload .btn-alt{margin-left:0}.arrow-down{border-width:4px 4px 0 4px;border-color:#333 transparent transparent transparent;border-color:#333 transparent transparent transparent;content:""}.arrow-down{border-style:solid;display:inline-block;height:0;width:0;vertical-align:middle}.sign-services li{display:inline-block;margin:0 4px 4px 0}.sign-service{font-size:.93em;padding:0 8px;line-height:30px;height:29px}.sign-service .btn-icon{font-size:inherit;width:auto}.sign-services-compact .btn-text{display:none}.link-service,.sign-service{color:#fff;display:inline-block;text-decoration:none!important}.link-service span,.sign-service{border-radius:3px}.link-service{font-weight:400;height:28px;position:relative}.link-service span{display:block;line-height:28px;text-align:center!important}.link-service .btn-icon{width:28px;height:28px;margin-right:4px;position:absolute;left:0;top:0}.link-service span.sign-text{padding:0 20px;margin-left:32px}.btn-social .btn-icon,.sign-service .icon{color:#fff;position:relative;display:inline-block}.btn-container{margin-top:20px;margin-bottom:20px;position:relative}.btn{height:36px;line-height:36px;font-family:inherit;font-size:1em;font-weight:400;padding:0 10px;border-radius:3px;cursor:pointer;display:inline-block;text-decoration:none;border:1px solid transparent;white-space:nowrap}.btn,.btn:active,.btn:focus,.btn:hover{text-decoration:none}.btn.default:active,.btn:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-icon{width:18px;display:inline-block;text-align:center}.btn-text{margin-left:4px}.btn-big{font-size:16px;font-size:1.143rem;height:38px;line-height:38px;padding-left:1em;padding-right:1em}.btn-small{height:30px;line-height:30px;font-size:.92em}.btn-input{font-weight:600;font-size:.93em;padding-left:20px;padding-right:20px}.btn-32{width:32px;height:32px;text-align:center;display:inline-block}.btn-32 .btn-icon{font-size:18px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.btn-capsule{border-radius:100px;border-color:rgba(255,255,255,.5);background-color:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background-image:none;height:auto;color:#fff;text-shadow:none;font-size:.93em;height:28px;line-height:28px;font-weight:400;padding:0 15px;box-shadow:none;-webkit-filter:none;filter:none}.btn-capsule:hover{background-color:rgba(0,0,0,.7)}.no-rgba .btn-capsule{border-color:#666;background-color:none;zoom:1}.btn-capsule:active{box-shadow:none}.btn-capsule .btn-icon{font-size:.93em}.btn.accent{color:var(--buttonAccentText);border:1px solid transparent;background:var(--buttonAccentBackground)}.btn.accent:not(.outline):hover{color:var(--buttonAccentHoverText);background:var(--buttonAccentHoverBackground)}.btn.accent.outline{color:var(--buttonAccentBackground);border-color:var(--buttonAccentBackground);box-shadow:none}.btn.accent.outline:hover{color:var(--buttonAccentHoverBackground);border-color:var(--buttonAccentHoverBackground)}.btn.default{color:var(--buttonDefaultText);border-color:var(--buttonDefaultBorder);background:var(--buttonDefaultBackground)}.btn.default--hover:not(.outline),.btn.default:not(.outline):hover{color:var(--buttonDefaultHoverText);background:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBorder)}.btn.default.outline{color:var(--buttonDefaultBackground);border-color:var(--buttonDefaultBackground);box-shadow:none}.btn.default.outline:hover{color:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBackground)}.btn.disabled,.btn.disabled:hover{color:var(--bodyTextSubtle);background-color:var(--buttonDefaultBackground);background-image:none;box-shadow:none;cursor:default}.tone-dark .btn.disabled,.tone-dark .btn.disabled:hover{color:#666;background-color:#212121}.btn.disabled.outline,.btn.disabled.outline:hover{color:var(--bodyTextSubtle);border-color:var(--bodyTextSubtle)}.btn.plain,.btn.plain:hover{background:0 0;text-shadow:none;border-color:transparent;box-shadow:none;padding:0;color:inherit}.tone-dark .btn.plain,.tone-dark .btn.plain:hover{background:0 0}.btn.plain:active{box-shadow:none}.btn.active{background-image:none;background-color:var(--colorAccent);border-color:var(--colorAccent);-webkit-filter:none;filter:none}.btn.grey,.btn.grey.off:hover{background-color:#eee}.btn.grey:hover{background-color:#e9e9e9}.btn.grey.outline{color:#eee}.btn.orange,.btn.orange.off:hover{border-color:#fe771d;background-color:#fe771d}.btn.orange:hover{background-color:#fe6b0a}.btn.orange.outline{color:#fe771d}.btn.purple,.btn.purple.off:hover{border-color:#8e44ad;background-color:#8e44ad}.btn.purple:hover{background-color:#8e44ad}.btn.purple.outline{color:#8e44ad}.btn.blue,.btn.blue.off:hover{border-color:var(--colorBlue);background-color:var(--colorBlue)}.btn.blue:hover{background-color:#2879b0}.btn.blue.outline{color:var(--colorBlue)}.btn.green,.btn.green.off:hover{background-color:var(--colorGreen)}.btn.green:not(.outline):hover{background-color:var(--colorGreenHover)}.btn.green.outline{color:var(--colorGreen);border-color:var(--colorGreenHover)}.btn.red,.btn.red.off:hover{border-color:var(--colorRed);background-color:var(--colorRed)}.btn.red:not(.outline):hover{background-color:var(--colorRedHover)}.btn.red.outline{color:var(--colorRed)}.btn.red.outline:hover{color:var(--colorRedHover);border-color:var(--colorRedHover)}.btn.white,.btn.white.off:hover{border-color:#fff;background-color:#fff}.btn.white:hover{background-color:#fff}.btn.white.outline{color:#fff}.btn.black,.btn.black.off:hover{border-color:#3a3a3a;background-color:#3a3a3a}.btn.black:hover{background-color:#343434}.btn.black.outline{color:#3a3a3a}.btn.active,.btn.black,.btn.blue,.btn.green,.btn.orange,.btn.red{color:#fff;border:1px solid transparent}.btn.grey,.btn.white{color:var(--bodyText)}.btn.off{cursor:default}.btn.off:active{box-shadow:none}.btn-social{color:var(--buttonDefaultText);background:var(--buttonDefaultBackground);background-image:none;box-shadow:none;border:1px solid transparent}.btn-social.btn-at .btn-icon,.btn-social.btn-share .btn-icon{color:var(--buttonDefaultText)}.btn-social,.btn-social:hover{text-decoration:none;text-shadow:none}.btn-twitter,.link-twitter span{background:#55acee}.btn-facebook,.link-facebook span{background:#3b5998}.btn-google,.btn-google-plus,.link-google span,.link-google-plus span{background:#d74836}.btn-mail{background:#ccc;color:var(--bodyText)}.btn-mail span{color:var(--bodyText)}.btn-tumblr{background:#35465c}.btn-pinterest{background:#bd081c}.btn-stumbleupon{background:#eb4924}.btn-blogger{background:#f57d00}.btn-whatsapp{background:#43d854}.btn-telegram{background:#08c}.btn-weixin{background:#7bb32e}.btn-weibo{background:#df2029}.btn-qzone{background:#ffce00}.btn-qq{background:#121214}.btn-reddit{background:#ff4500}.btn-reddit .btn-icon{color:#fff}.btn-vk,.link-vk span{background:#45668e}.btn.outline,.btn.outline:hover{background:0 0;border:1px solid;box-shadow:none}.pop-btn,.top-btn-el,a[data-modal]{-webkit-tap-highlight-color:transparent}.pop-btn *,.top-btn-el *{-webkit-tap-highlight-color:rgba(0,0,0,.2)}.pop-btn,.top-btn-el{display:inline-block;position:relative;cursor:pointer}.pop-box-inner{cursor:default;display:block;-webkit-overflow-scrolling:touch;overflow:auto}.pop-box-inner form{margin-top:-20px;margin-bottom:-20px}.btn.pop-btn .pop-box{line-height:100%}.pop-btn-text{color:var(--linkText);cursor:pointer}.ie7 .pop-btn-text,.ie8 .pop-btn-text{padding-right:0}.pop-btn-text .arrow-down{vertical-align:middle;margin-left:5px;border-top-color:var(--linkText)}.pop-btn.disabled{cursor:default}.pop-btn.disabled .pop-btn-text{color:var(--bodyTextDisabled);cursor:default}.pop-btn.disabled .arrow-down{border-top-color:var(--bodyTextDisabled)}.tone-dark .pop-btn.disabled .arrow-down{border-top-color:#444}.pop-box{color:var(--menuText);background:var(--menuBackground);-webkit-backdrop-filter:blur(15px) saturate(1.8);backdrop-filter:blur(15px) saturate(1.8);display:none;font-size:.93em;z-index:200;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--menuSeparator)}.pop-box .or-separator{border-top-color:var(--menuSeparator)}.phablet .pop-box .or-separator,.phone .pop-box .or-separator{border-top-color:var(--topBarText);opacity:.25}@media (min-width:992px){.pop-box{position:absolute;top:20px;min-height:20px;min-width:190px;box-shadow:0 4px 14px rgba(0,0,0,.25);border-radius:5px;box-sizing:content-box;--columnGutter:5px;--columnWidth:230px;--columnWidthOuter:calc(var(--columnWidth) + var(--columnGutter))}.header--height .pop-box{min-width:240px}.pop-box,.pop-box.left-anchor{left:0}.pop-box.anchor-center{left:50%!important}.pop-box.anchor-right{left:auto;right:0}.pop-box.pbcols1{width:calc(1 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols2{width:calc(2 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols3{width:calc(3 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols4{width:calc(4 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols5{width:calc(5 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols1 li,.pop-box.pbcols2 li,.pop-box.pbcols3 li,.pop-box.pbcols4 li,.pop-box.pbcols5 li{border-radius:5px}.pop-box-menucols ul{padding:10px 0;overflow:auto}.pop-box-menucols li{width:var(--columnWidth);float:left;margin:0 0 0 5px}.pop-box-menucols li:first-child a,.pop-box-menucols li:last-child a{border-radius:0}}.pop-box-menu{font-size:.8125rem;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}.pop-box-label{color:inherit;margin:10px;text-transform:uppercase;font-weight:700;font-size:90%;cursor:default;line-height:2}.pop-box-block{padding:0 10px}.pop-box-block .current::before{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;margin-right:.25em;content:"\f205";font-size:90%}.pop-box-menu .menu-item,.pop-box-menu a{display:block;padding:6px 10px;text-decoration:none;font-weight:400;line-height:143%;color:var(--menuItemText)}.pop-box-block a{display:inline-block;padding:6px;border-radius:.25em;line-height:1}.phablet .pop-box,.phone .pop-box{color:var(--topBarText)}.phablet .pop-box-menu .menu-item,.phablet .pop-box-menu a,.phone .pop-box-menu .menu-item,.phone .pop-box-menu a{padding:10px;color:inherit}.phablet .pop-box-menu li.with-icon a .btn-icon,.phone .pop-box-menu li.with-icon a .btn-icon{top:11px}@media (min-width:992px){.pop-box-menu .menu-item,.pop-box-menu a{border-bottom:0}}.pop-box-menu a.focus,html:not(.phone) .pop-box-menu a:hover{background:var(--menuItemHoverBackground);color:var(--menuItemHoverText)}.pop-box-menu li.current a{background:rgba(0,0,0,.05)}.pop-box-menu li.current a:not(:hover) .btn-icon{color:var(--colorAccent)}.pop-box-menu ul{display:block;padding:0}@media (min-width:992px){.pop-box-menu ul{margin:5px 0}}.pop-box-menu li{display:block;text-align:left;overflow:hidden;position:relative}.pop-box-menu li.with-icon a{padding-left:36px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}html:not(.phone):not(.phablet) .header--height .pop-box-menu li a{padding-right:25px}.pop-box-menu li a kbd{position:absolute;top:50%;transform:translateY(-50%);right:10px;border-radius:2px;display:block;line-height:1;font-size:.9em;opacity:.5}.pop-box-menu li a:hover kbd{opacity:1}.phablet .pop-box-menu li a kbd,.phone .pop-box-menu li a kbd{display:none}.pop-box-menu li.with-icon a .btn-icon{position:absolute;left:10px;top:8px}.pop-box-menu li.current,.pop-box-menu li.current a{font-weight:600}.pop-box-menu li.current a:hover{cursor:default}.pop-box-userdetails{padding:10px;width:120%;min-width:230px;cursor:default;left:42px;line-height:normal;top:0!important;margin-top:0!important}.phablet .pop-box,.phone .pop-box{position:fixed;bottom:0;left:0!important;width:100%;top:auto!important;background:var(--topBarBackground);color:var(--topBarText)}.pop-box-header{font-weight:700;padding:15px 10px;position:relative;text-align:left;color:var(--topBarText)}.pop-box-header .icon--close{position:absolute;right:10px;top:50%;margin-top:-7px;font-size:14px;text-align:right}@media (min-width:992px){.pop-box-header{display:none}}.top-bar-placeholder{-webkit-backface-visibility:hidden;backface-visibility:hidden}.top-bar,.top-bar ul li.pop-btn,.top-bar ul li.top-btn-el,.top-bar-placeholder{height:50px}.top-btn-create-account,.top-btn-text{line-height:50px}.top-btn-text{-webkit-tap-highlight-color:transparent}.follow-scroll,.top-bar{transition:top .4s ease-in-out}.top-bar--:focus-within,.top-bar.scroll-up{top:0}.follow-scroll--:focus-within,.scroll-up.follow-scroll{top:50px!important}.scroll-down{top:-100%}.top-bar,.top-sub-bar{left:0;right:0;width:100%;position:-webkit-sticky;position:sticky;height:50px}.top-bar{color:var(--topBarText);z-index:900}.top-bar--main{z-index:910}.top-sub-bar{color:var(--bodyText);z-index:500;overflow:visible}body.pop-box-show .top-sub-bar--1{z-index:1}body.landing .top-bar,body.split .top-bar{position:fixed}.phablet .pop-box-show .top-bar,.phone .pop-box-show .top-bar{z-index:1}.follow-scroll-wrapper.position-fixed,.top-bar::before,.top-sub-bar::before{background:var(--topBarBackground);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.top-sub-bar::before{background:var(--bodyBackground)}.top-bar::before,.top-sub-bar::before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.top-bar::before,.top-sub-bar::before{width:100%;height:calc(100% + .5px);position:absolute;content:" "}.top-bar .content-width,.top-sub-bar .content-width{position:relative;height:100%;padding-left:5px;padding-right:5px}.top-bar-logo{width:100%;height:100%;position:absolute;top:0;text-align:center;left:0}.top-bar-logo img{height:20px}.top-bar-logo>a{display:inline-block;vertical-align:top;position:relative;top:50%;transform:translateY(-50%);text-decoration:none;font-weight:400;font-size:24px;color:var(--topBarText)}.top-bar-logo img{display:block;margin-left:auto;margin-right:auto}.top-bar ul{list-style:none}.top-bar li.pop-btn,.top-bar li.top-btn-el{float:left;padding-right:5px;padding-left:5px;position:relative}@media (min-width:992px){.top-bar li.pop-btn,.top-bar li.top-btn-el{padding-right:10px;padding-left:10px}.top-bar .top-bar-notifications.pop-btn{padding-right:0}}.top-bar ul .pop-btn.current,.top-bar ul .top-btn-el.current{border-bottom:3px solid var(--colorAccent)}.top-bar ul .pop-btn.current .top-btn-text,.top-bar ul .top-btn-el.current .top-btn-text{text-shadow:none;box-shadow:none}.top-bar ul li.top-btn-el a{text-decoration:none;color:inherit}.tone-light .top-bar .top-bar ul .pop-btn.current .top-btn-text,.tone-light .top-bar .top-bar ul .top-btn-el.current .top-btn-text{color:var(--bodyText)}.top-bar-right li.pop-btn:last-child,.top-bar-right li.pop-btn:last-child .arrow-down{margin-right:0}.top-btn-create-account,.top-btn-text{display:block;font-weight:400;font-size:1em;height:100%}#menu-fullscreen .btn.top-btn-create-account,.btn.top-btn-create-account:not(.grey):not(.white),.top-btn-text{color:inherit}.top-btn-text{text-decoration:none;color:var(--topBarText)}.top-bar #menu-fullscreen .top-btn-text{color:var(--topBarText)}body.landing .top-btn-text{color:var(--topBarText)}.top-btn-text .icon{margin-right:7px;position:relative;top:0;display:inline-block;font-size:16px;width:16px;font-size:1.143rem;width:1.4rem;line-height:50px;text-align:center}.current .top-btn-text .icon{color:var(--colorAccent)}.top-btn-text .btn-text{margin-left:0}.top-btn-text .arrow-down{position:relative;margin:0 0 0 5px}.top-btn-text .btn-text{vertical-align:top}.top-btn-text .icon{margin-right:0}#menu-fullscreen .top-bar-notifications .btn-text{display:inline-block}#menu-fullscreen #top-bar-user,#menu-fullscreen [data-nav=upload]{display:none}#top-bar [data-nav=upload]{padding-right:5px;padding-left:5px}.top-bar-notifications-container{margin-right:2px;cursor:default}.top-bar-notifications-header{font-size:.93em;line-height:1;padding:12px 10px;overflow:auto}.top-bar-notifications-header,.top-bar-notifications-list li{border-bottom:1px solid var(--menuSeparator)}.tone-dark .top-bar-notifications-header,.tone-dark .top-bar-notifications-list li{border-color:#333}.top-bar-notifications-header h2{font-size:1em;font-weight:700;float:left}.top-bar-notifications-header a{float:right}.top-bar-notifications-list li{font-size:.93em;display:block;text-decoration:none;padding:10px;position:relative;min-height:68px;padding-left:68px}.top-bar-notifications-list li:last-child{border-bottom:0}.top-bar-notifications-list li:hover{background:rgba(0,0,0,.02)}.tone-dark .top-bar-notifications-list li:hover{background:rgba(0,0,0,.2)}.top-bar-notifications-list li.transition{transition:background-color 150ms linear}.top-bar-notifications-list li.new,.top-bar-notifications-list li.persistent{background:#fffad9}.tone-dark .top-bar-notifications-list li.new,.tone-dark .top-bar-notifications-list li.persistent{background:#333}.ie7 .top-bar-notifications-list li{min-height:48px}.top-bar-notifications-list li .user-image{width:48px;height:48px;position:absolute;left:10px;top:10px}.top-bar-notifications-list li .user-image img{width:100%;height:100%;display:block}.top-bar-notifications-list li .user-image span.icon{font-size:30px;width:30px;height:30px;margin-left:-15px;margin-top:-15px}.top-bar-notifications-list li .how-long-ago{display:block;font-size:11px;color:var(--bodyTextSubtle)}.top-bar-notifications .top-btn-number{position:absolute;z-index:1;border-radius:100px;zoom:.75;right:-8px;top:10px;visibility:hidden}.top-bar-notifications .top-btn-number.on{visibility:visible}@media (min-width:992px){.top-bar .pop-box{margin:10px;z-index:200}}.top-bar-search-input{margin-left:-10px;margin-right:10px!important}.top-bar-search-input .icon--close{right:-4px}.top-bar-search-input .icon--settings{right:14px}.top-bar .top-bar-search-input .icon--search{color:var(--colorAccent)}.top-bar-search-input .input-search{position:relative;top:50%;margin-top:-13px}.top-bar-search-input input{font-size:1em;border-width:0;padding-left:36px}.tone-light .top-bar .top-bar-search-input input{border-width:1px}.top-bar-left .pop-box{left:-10px}.phone .top-bar-left li{padding-right:0}.phone .top-bar-right li{padding-left:0}.top-bar-right .pop-box{left:auto;right:-10px}.top-bar--main .pop-box{top:calc(50% + 10px)}#top-predictive-search.pop-box{width:200px;left:0;font-size:100%}.top-bar .pop-account .or-separator{margin-top:30px;margin-bottom:30px}.top-btn-create-account{text-decoration:none;display:inline;padding:4px 12px;height:26px}.top-bar .opened .top-btn-text span:not(.btn-text),.top-bar .top-btn-text:hover span:not(.btn-text){color:var(--linkText)}.phone .top-bar .top-btn-text:hover span:not(.btn-text){color:inherit}.phone .top-bar .current .top-btn-text:hover span:not(.btn-text){color:var(--linkText)}.ios .top-bar .top-btn-text span:not(.btn-text):not(.top-btn-number):hover{color:var(--bodyText)}.ios .top-bar .opened .top-btn-text span:not(.btn-text),.ios .top-bar .opened .top-btn-text:not(.top-btn-number){color:var(--linkText)}.top-bar .btn:hover:not(.white):not(.grey),.top-bar .btn:not(.white):not(.grey),.top-bar .opened .btn:not(.white):not(.grey){color:#fff}.current .top-btn-create-account:hover{background:inherit}.current .top-btn-create-account{padding:0;background:0 0}.top-btn-number{background:#555;color:#ddd;font-size:12px;font-weight:400;border-radius:3px;padding:0 7px;position:relative;display:block;line-height:22px;height:22px;top:-2px}#menu-fullscreen .top-btn-number{display:inline-block;position:absolute;margin-right:5px;top:10px;vertical-align:text-bottom;left:30px;right:auto}.opened .top-btn-number.on,.tone-light.ios .top-bar .top-btn-number.on,.tone-light.top-bar .top-btn-number.on,.top-btn-number.on,.top-btn-number.on:hover{background:#d90000;color:#fff}.pop-account .pop-box-inner{padding:20px 10px;cursor:default}.pop-account .title,.pop-account h2{font-size:1em;text-align:center;margin-top:5px;font-weight:400;display:block}.pop-account .sign-services{margin:15px 0 11px 0}.pop-account input.text-input,.pop-account input[type=password],.pop-account input[type=text]{width:100%}.ie7 .pop-account input.text-input{width:266px;height:auto}.pop-account .checkbox-label{display:inline-block;margin:0}#top-bar-user .top-btn-text .user-image{position:relative;top:50%;margin-top:-13px;width:1em;height:1em;float:left;font-size:26px;background:0 0;color:inherit;margin-right:0}#top-bar-user-menu.pop-box{width:150px}.header{position:relative}.header-icon{color:var(--colorAccent)}.header-tabs{min-height:50px}.header.follow-scroll{margin-right:-10px;margin-left:-10px;padding-left:10px;padding-right:10px;overflow:visible;position:-webkit-sticky;position:sticky;min-height:50px}.tone-dark .header{border-bottom-color:#212121}.header.fixed.follow-scroll{border-bottom:0}.header .header-title,.header h1{font-size:1em}.header>*{vertical-align:middle}.header .heading,.header .heading *,.header>.header-title,.header>h1{word-break:break-word}.header-tabs .heading,.header-tabs .heading *,.header-tabs>.header-title,.header-tabs>h1{line-height:50px}.header .heading,.header>.header-title,.header>h1{font-size:22px;font-weight:400;display:inline-block;color:inherit}.header .header-title a,.header h1 a{color:inherit;text-decoration:none}.header .header-title strong,.header .heading strong,.header h1 strong{font-weight:inherit}.header.header-tabs .header-title,.header.header-tabs h1{margin-right:5px;margin-left:5px}.header ul.content-tabs{display:inline-block}.phablet .header ul.content-tabs,.phone .header ul.content-tabs{float:none;display:inline-block;left:0;right:0;position:absolute;z-index:1;white-space:nowrap}.phablet .header.follow-scroll ul.content-tabs,.phone .header.follow-scroll ul.content-tabs{position:absolute;padding-left:10px;padding-right:10px}.phablet .header:not(.follow-scroll) ul.content-tabs,.phone .header:not(.follow-scroll) ul.content-tabs{top:auto}.header-content-left{float:left}.header-content-right{float:right;height:auto;margin-left:auto}@media (max-width:340px){.header-content-right.breaks-ui{clear:both;position:static!important;margin-left:0}}.phablet .header-content-right:not(.phablet-float-none),.phone .header-content-right:not(.phone-float-none){position:absolute;right:0;top:0;float:right}.header-content-right .number-figures{margin-top:14px;border-left:1px solid var(--bodySeparator)}.header-content-right .number-figures:first-child{border-left:0}.header .header-link{font-size:1em;display:inline-block}.header .pop-btn.breadcrum-item{margin-top:0}.header .user-image{font-size:30px;width:1em;height:1em;margin-top:10px;float:left}.header.header-content{position:relative;min-height:40px;border:0}.header.header-content .heading,.header.header-content .heading *{line-height:40px;height:40px}.header-content img{max-height:40px}.header-content .user-image{width:1em;height:1em;font-size:40px;margin-top:0;top:0}.header .user-image img,.header-content .user-image img{width:100%;height:100%;display:block}.header-description{line-height:1.4;max-height:10vh;overflow-y:scroll;overflow:auto}.header-description:empty{display:none}.header-description p{margin:10px 0}.header-content-breadcrum{float:left}.breadcrum-item *{line-height:normal}.breadcrum-text,.header-content-breadcrum .breadcrum-item{line-height:40px}.breadcrum-text,.breadcrum-text a{color:inherit}.breadcrum-text{font-weight:400}.breadcrum-item{margin-right:10px;position:relative;float:left}.breadcrum-text a:hover{color:var(--linkText);text-decoration:none}.breadcrum-text .user-link{margin-left:5px}.header-content-breadcrum .arrow,.header-content-breadcrum .arrow-down,.header-content-breadcrum .arrow-right{margin-left:5px;position:relative}.header-content-breadcrum a:hover .arrow-down{border-top-color:var(--linkText)}.header-content-breadcrum a:hover .arrow-right{border-left-color:var(--linkText)}.header-content-breadcrum .pop-box h2{font-size:1.07em;line-height:1.2}.header-content-breadcrum .pop-box h2 a{line-height:1}.header-content .btn{margin-left:5px;float:left;display:block}.header-content .btn:last-child{margin-right:0}.follow-scroll{margin-left:auto;margin-right:auto;z-index:1}.follow-scroll-wrapper{left:0;right:0;z-index:50}.follow-scroll-wrapper.position-fixed .header{margin-bottom:-1px!important}.follow-scroll-placeholder{-webkit-backface-visibility:hidden;backface-visibility:hidden}.phablet .header:not(.header-tabs) .tab-menu,.phone .header:not(.header-tabs) .tab-menu{color:var(--buttonDefaultText);background:var(--buttonDefaultBackground);border-radius:4px;height:auto;line-height:1em;min-height:1em;padding:10px}.phablet .header:not(.header-tabs) .tab-menu:not(.--hide),.phone .header:not(.header-tabs) .tab-menu:not(.--hide){color:var(--buttonDefaultHoverText);background:var(--buttonDefaultHoverBackground);margin-bottom:10px}.phablet .header .tab-menu.--hide .tab-menu--show,.phablet .header .tab-menu:not(.--hide) .tab-menu--hide,.phone .header .tab-menu.--hide .tab-menu--show,.phone .header .tab-menu:not(.--hide) .tab-menu--hide{display:none}.tab-menu{cursor:pointer;line-height:50px;min-height:50px}.tab-menu.--hide .btn-icon[data-content=tab-icon]{color:var(--colorAccent)}.tab-menu.--hide{color:var(--buttonDefaultText)}.tab-menu:not(.--hide){color:var(--buttonDefaultHoverText)}.content-tabs-container{position:relative;display:inline-block}.phablet .content-tabs-container--mobile,.phone .content-tabs-container--mobile{box-shadow:0 6px 4px rgba(0,0,0,.25);left:-10px;width:calc(100% + 15px)}.phablet .content-tabs-wrap,.phone .content-tabs-wrap{height:50px;overflow-y:hidden;position:relative;-webkit-overflow-scrolling:touch;overflow-x:scroll;position:relative;display:none;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:var(--bodyBackground)}.content-tabs-wrap::-webkit-scrollbar{display:none}.content-tabs-wrap{display:inline-block;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.content-tabs li{scroll-snap-align:start}.content-tabs li:not(.current){transition-duration:.2s;transition-property:background-color}.content-tabs a{font-weight:400;color:inherit;text-decoration:none;padding-left:10px;padding-right:10px}.phone .content-tabs li:last-child{margin-right:15px}.content-tabs-shade{content:" ";background:-webkit-linear-gradient(0deg,rgba(255,255,255,0),var(--bodyBackground));width:15px;height:100%;position:absolute;right:0;top:0;pointer-events:none;z-index:2}.phablet .content-tabs a,.phone .content-tabs a{color:var(--menuItemText)}.content-tabs li.disabled a{cursor:default}.tab-menu .--show{display:none}.tab-menu.current .--show{display:inline-block}.tab-menu.current .--hide{display:none}.content-tabs li{float:left;font-size:1em}.phablet .content-tabs li,.phone .content-tabs li{float:none;border-bottom:0;display:inline-block}.content-tabs-vertical li{float:none;margin:0;border-left:2px solid transparent}.content-tabs-vertical li>*{padding-right:20px;padding-left:20px}.header-content-right .content-tabs li{margin-left:10px;margin-right:0}.content-tabs a,.content-tabs li{height:50px;line-height:50px;display:block}.content-tabs-vertical a,.content-tabs-vertical li{height:38px;line-height:38px}.content-tabs li.current,.content-tabs li.visited,.content-tabs li.visited:hover{border-color:var(--colorAccent);border-style:solid;border-bottom-width:3px}.content-tabs li.current .btn-icon{color:var(--colorAccent)}.content-tabs li:not(.current):hover{background:var(--bodyEmpty)}.content-tabs li:not(.current):hover a .btn-icon{color:var(--colorAccent)}.content-tabs li.disabled:hover{border-bottom:0}.content-tabs li.current{border-color:var(--colorAccent)}.content-tabs li.visited{border-bottom-color:transparent}.content-tabs li.current.visited{border-color:#d93600}.content-tabs li.visited,.content-tabs li.visited a{color:#d93600}.content-tabs-vertical li.current,.content-tabs-vertical li:hover{border-bottom-width:0;border-left-width:2px}.content-tabs .tab-count{font-weight:400;color:var(--bodyTextSubtle)}.content-tabs .tab-count-block{font-weight:400;background:#d90000;border-radius:3px;padding:1px 4px;position:relative;top:-1px}.content-tabs .current .tab-count-block,.content-tabs .tab-count-block{color:#fff}.content-tabs li.disabled *{color:var(--bodyTextDisabled)}.header--centering{display:flex;align-items:center;flex-wrap:wrap}.header--height{overflow:visible;height:50px}.list-selection *{line-height:normal}#tabbed-content-group{margin-top:20px;padding-bottom:20px;position:relative}.content-listing .viewer-kb{opacity:0;position:fixed;bottom:-100px;z-index:1;left:0;right:0;background:linear-gradient(0deg,var(--topBarBackground) 0,rgba(0,0,0,0) 100%)}.--has-selection .content-listing.visible .viewer-kb{opacity:1;bottom:0}.content-listing .viewer-kb-input{color:var(--menuText);background:var(--menuBackground);border-radius:.5em;margin:1em;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 4px 14px rgb(0 0 0 / 25%)}#content-listing-tabs #tabbed-content-group{margin-top:0}#content-listing-tabs{padding-bottom:0;margin-left:-10px;margin-right:-10px}.tabbed-content{display:none;width:100%;overflow:hidden}.title{font-size:.93em;font-weight:700;margin-bottom:5px}.title.grid-columns{margin-right:10px;text-align:right;line-height:2}.phablet .title.grid-columns,.phone .title.grid-columns{margin-right:0!important;text-align:left}.tabbed-content-section{overflow:auto}.tabbed-content-list{line-height:1.8}.tabbed-listing .tabbed-content{overflow:hidden}.table-li{display:table;width:100%}.table-li>li{padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--bodySeparator);list-style:none!important}.tabbed-content-list.table-li-hover>li:hover{background:var(--bodyEmpty)}.tabbed-content-list .table-li-header{font-weight:700}.tabbed-content-list.table-li-hover .table-li-header:hover,.tone-dark .tabbed-content-list.table-li-hover .table-li-header:hover{background:0 0}.table-li ul li:last-child{border-bottom:none}.desktop .table-li--mobile-display,.laptop .table-li--mobile-display,.largescreen .table-li--mobile-display,.phablet .table-li--mobile-display,.tablet .table-li--mobile-display{display:none!important}.viewer-title{font-size:1.43em;line-height:1.43em;padding-right:3em}.panel-description:empty{display:none;margin:0!important;padding:0!important}.panel-description .description-text{font-size:1em}.panel-description .description-meta{font-size:.93em}.panel-description .exif-meta{padding-left:1.57em;position:relative}.panel-description .exif-meta .camera-icon{color:var(--bodyTextDisabled);position:absolute;left:0;top:.21em;font-size:1.14em}.panel-description .exif-meta .exif-data{display:block;font-size:1em}.panel-thumbs{position:-webkit-sticky;position:sticky;z-index:1;bottom:0;left:0;right:0;border-top:1px solid rgba(0,0,0,.05);background:0 0;-webkit-backdrop-filter:blur(15px) saturate(1.8);backdrop-filter:blur(15px) saturate(1.8)}.panel-thumb-list{overflow-x:auto;overflow-y:hidden;white-space:nowrap;text-align:center;height:50px;margin-left:auto;margin-right:auto}.panel-thumb-list:empty{display:none}.panel-thumb-list li{position:relative;font-size:0;border-bottom:3px solid transparent;display:inline-block;line-height:50px}.panel-thumb-list li.current{border-color:var(--colorAccent)}.list-item-desc .panel-thumb-list li:hover img,.panel-thumb-list li.current img{opacity:1}.phablet .panel-thumb-list li.more-link,.phone .panel-thumb-list li.more-link{clear:both;line-height:100%;padding:10px 0}.panel-thumb-list img{display:block;width:47px;height:47px;opacity:.4;transition:opacity 350ms ease}.panel-thumb-list li:hover img{opacity:1}.panel-share-item{margin-bottom:30px}.panel-share-item:last-child{margin-bottom:0}.panel-share-item h4.pre-title{padding-left:200px;line-height:20px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--bodySeparator)}.tone-dark .panel-share-item h4.pre-title{border-color:#212121}.phablet .panel-share-item h4.pre-title,.phone .panel-share-item h4.pre-title{padding-left:0}.panel-share-item h4.title{line-height:32px}.panel-share-item .grid-columns{position:relative}.panel-share-input-label{margin-bottom:10px;overflow:auto}.panel-share-input-label:last-child{margin-bottom:0}.panel-share-input{position:relative}.panel-share-networks{overflow:auto;text-align:center}.panel-share-networks h4.title{line-height:32px}.panel-share-networks li{display:inline-block;margin-right:5px;margin-bottom:5px}.panel-share-networks li a{display:block;width:32px;height:32px;position:relative}.panel-report h4.title{line-height:36px}.text-content{font-size:16px}.text-content li,.text-content p{line-height:160%;margin:10px 0}.text-content h1,.text-content h2,.text-content h3,.text-content h4{margin:40px 0 20px 0;font-weight:400;line-height:120%}.text-content h1{font-size:1.375em}.text-content h2{font-size:1.25em}.text-content h3{font-size:1.125em}.text-content h4{font-size:1.07em}.text-content h5{font-size:1em}.text-content h6{font-size:1em}.text-content ol,.text-content ul{margin-left:20px}.text-content li{list-style:disc outside;margin-top:0;margin-bottom:0}.form-content{position:relative}.signup-services-column h2{font-size:17px}.signup-services-column ul{margin:10px 0}.signup-services-column li:first-child{margin-left:0}.signup-services-column li:last-child{margin-right:0}.form-content .content-tabs-vertical{margin-right:10px;position:absolute;left:0;top:0}.form-content .content-tabs-vertical.position-fixed{position:fixed;left:auto;top:auto}.tabbed-input-column{margin-left:200px}.phablet .tabbed-input-column,.phone .tabbed-input-column{margin-left:0}.account-link{position:relative}a.account-linked-profile{width:48px;height:48px;display:block}a.account-linked-profile img{width:100%;height:100%;display:block;border:0}.text-overflow-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}html.menu-fullscreen-visible{overflow:hidden}#menu-fullscreen{position:fixed;left:0;top:0;bottom:0;right:0;height:100vh;width:100vw;overflow:auto}#menu-fullscreen>ul>li{display:block;float:none;border-bottom:0;margin:0!important;position:relative}#menu-fullscreen>ul>li .top-btn-text{padding:0 10px;background:inherit}#menu-fullscreen>ul>li .icon{margin-right:7px}#menu-fullscreen>ul>li .input-search .icon{margin-right:0}#menu-fullscreen>ul>li a{text-decoration:none}#menu-fullscreen .input-search{margin:0;margin-right:10px;top:12px;width:auto}#menu-fullscreen .menu-fullscreen-show{display:block}#menu-fullscreen .menu-fullscreen-hide{display:none}body.upload-box-visible{margin-top:300px}body.upload-box-visible.no-margin-top{margin-top:280px}body.upload-box-visible .upload-box{display:block}.upload-box{clear:both;background:var(--bodyBackground)}.upload-box--fixed{position:fixed;left:0;right:0;z-index:200;background:var(--bodyBackground)}body:not(#upload) .upload-box--fixed{padding-top:50px;overflow:auto}.phone .upload-box--fixed{top:0;z-index:500;max-height:100%;overflow-y:auto;overflow-x:hidden}.upload-box--hidden{transform:translateY(-100%);top:-1px}.upload-box--show{transform:translateY(0)}.upload-box-inner{padding:40px 0;position:relative}.phone .upload-box-inner{padding:20px 0}.upload-box-inner .position-absolute{position:absolute;text-transform:uppercase;top:20px;line-height:20px}#upload .upload-box[data-queue-size="0"] .upload-box-heading,.phone .upload-box[data-queue-size="0"] .upload-box-heading{position:fixed;top:50%;left:0;right:0;transform:translateY(-50%);padding:10px}.upload-box-heading{text-align:center}.upload-box-heading .icon{font-size:100px;height:1em;display:inline-block;margin-left:auto;margin-right:auto;text-decoration:none;-webkit-tap-highlight-color:transparent}.upload-box-heading .heading,.upload-box-heading h2{font-size:26px;margin:10px 0;display:block}.upload-box-heading .heading a,.upload-box-heading h2 a{color:inherit;text-decoration:none}.upload-box-status-text{font-size:1em;line-height:1.4}.upload-box-allowed-files{left:0;font-size:11px;font-size:.79rem;color:var(--bodyTextSubtle)}.upload-box-close{text-decoration:none;right:0;font-size:11px;line-height:11px;font-size:.79rem;line-height:1em;color:var(--bodyText)}.tone-dark .upload-box-close{color:#ccc}.upload-box-close:hover{text-decoration:none}.upload-box-close a{color:inherit;text-decoration:none}.upload-box-close .btn-icon{font-size:.9em;display:inline}@media (min-width:340px){.upload-input-col{width:310px}}.page-not-found{border-radius:10px;background:var(--bodyEmpty);text-align:center;padding:30px;font-size:16px;margin-top:20px}.page-not-found h1{font-size:30px;margin-bottom:10px}.page-not-found .input-search{margin-left:auto;margin-right:auto;margin-top:20px}.page-not-found .input-search .icon--search{font-size:20px;left:14px;top:8px}.page-not-found .input-search .icon--close{top:3px;right:6px}.page-not-found input.search{height:36px;width:100%;font-size:15px;padding-right:30px;padding-left:40px}.ie7 .page-not-found input.search,.ie8 .page-not-found input.search,.ie9 .page-not-found input.search{padding-right:10px;line-height:36px}.content-listing{overflow:hidden;position:relative;clear:both}.pad-content-listing{width:calc(100% + 10px);margin-left:auto;margin-right:auto;position:relative}.list-item{display:inline-block}.js .content-listing{height:0}.js .jsly.content-listing{height:auto}.list-item .disabled-mask{width:100%;height:100%;position:absolute;top:0;left:0;background:rgba(255,255,255,.5);z-index:1}.list-item:hover .hover-display,.phablet .list-item .hover-display,.phone .list-item .hover-display{display:block}.list-item.masked:hover .hover-display{display:none}.list-item .hover-display,html.--idle .list-item .hover-display:not(.idle-display),html.--idle .list-item-image-tools>div{opacity:0;transition:all 350ms ease}html:not(.--idle) .list-item:hover .hover-display{opacity:1}.phablet .list-item .hover-display,.phone .list-item .hover-display{opacity:1;transition:none}.list-item-image{position:relative;display:block;overflow:hidden;min-height:260px;text-align:center;background:var(--bodyEmpty);content-visibility:auto;contain:layout style paint}.list-item-image .image-container{display:inline-block;text-align:center;vertical-align:bottom;text-decoration:none;font-size:64px;width:100%;height:100%}.js .list-item-image .image-container.--media{width:100%;height:100%}.list-item-image .image-container img,.list-item-image .image-container svg{display:block;position:relative;width:100%!important;height:100%;-o-object-fit:cover;object-fit:cover}.list-item-image .image-container .icon.empty{font-size:.9em}.list-item-image .image-container .empty{color:var(--bodyText);text-decoration:none}.selected .list-item-image .image-container .icon.empty{color:#fff}.list-item-image-btn{padding:5px 8px 5px 28px;font-size:.93em;background:var(--bodyBackground);position:absolute;top:10px;cursor:pointer;border-radius:2px}.list-item-image-btn.list-image-like-btn{left:10px}.list-item-image-btn span{font-size:15px;position:absolute;left:8px;top:50%;margin-top:-8px}.ie7 .list-item-image-btn span{left:4px;top:2px}.list-item-image-btn:hover span{color:var(--colorAccent)}.list-item-image-btn.liked{background:var(--colorAccent);color:#fff;display:block}.list-item-image-btn.liked:hover{background:#d90000}.list-item-image-btn.liked:hover span.icon-like{font-size:11px;padding:0;left:10px;color:#fff;margin-top:-6px}.list-item-image-btn.liked:hover span.icon-like:before{content:"\e01f"}.list-item-desc-title{width:100%;height:100%;padding:0 10px;left:0;bottom:10px;text-decoration:none}.list-item-desc-title>*{padding-bottom:5px}.list-item-from{bottom:0;line-height:1}.phablet .content-listing:not([data-list=users]).list-item-desc-title,.phone .content-listing:not([data-list=users]).list-item-desc-title{display:none}.list-item-desc-title--center-y{top:50%;transform:translateY(-50%)}.list-item-desc-title-link{font-size:1.1em;font-weight:600;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:calc(100%)}@media (min-width:320px){.list-item-desc-title-link{width:calc(100% - 20px)}}a.list-item-desc-title-link{text-decoration:none}.list-item-title{padding-top:0;padding-bottom:0;font-weight:400;text-align:center;height:40px;overflow:hidden}.list-item-title,.list-item-title *{font-size:1em;line-height:40px}.list-item-title a{font-weight:400;color:var(--bodyText)}.list-item-alt{background:#f9f9f9}.list-item-desc-height{height:100%}.list-item-overflow{height:110%;overflow:hidden}.list-item-desc{width:100%;top:1;font-size:.93em;line-height:1;box-shadow:0 1px 0 rgba(0,0,0,.1),0 0 0 transparent;border-bottom:1px solid rgba(0,0,0,.2)}.list-item-desc a,.list-item-desc b,.list-item-desc strong,.list-item.masked:hover .list-item-desc a,.list-item.masked:hover .list-item-title a{color:inherit}.tone-dark .list-item-desc a,.tone-dark .list-item-desc b,.tone-dark .list-item-desc strong,.tone-dark .list-item.masked:hover .list-item-desc a,.tone-dark .list-item.masked:hover .list-item-title a{color:inherit}.list-item:hover .list-item-desc a,.list-item:hover .list-item-title a{color:var(--linkText)}.list-item-desc .user,.list-item-desc a.user img{border-radius:100%}.list-item-desc .user{float:left;margin-top:-20px;margin-right:8px;padding:3px;background:var(--bodyBackground);width:50px;height:50px}.tone-dark .list-item-desc .user{background:#101010}.list-item-desc .user:hover{background:var(--linkText)}.tone-dark .list-item-desc .user:hover{background:inherit}.phablet .content-listing[data-list=images] .list-item-desc,.phone .content-listing[data-list=images] .list-item-desc{display:none}.list-item-desc strong{display:block}.list-item-card{border-radius:3px;min-height:82px}.list-item-card .user-image{display:block}.list-item-thumbs-container{overflow:hidden}.list-item-thumbs{overflow:auto;background:#f9f9f9;width:101%;margin-top:2px;margin-bottom:0;margin-left:-1px}.list-item-thumbs li{background:#f6f6f6;border-right:1px solid;border-left:1px solid;border-color:#fff;float:left}.tone-dark .list-item-thumbs li{border-color:#0b0b0b}.list-item-desc{color:inherit;background:0 0;border:0;box-shadow:none;text-shadow:1px 1px 5px rgba(0,0,0,.6);opacity:0;transition:all 350ms ease;bottom:0;position:absolute}.desktop .list-item .list-item-desc,.laptop .list-item .list-item-desc,.largescreen .list-item .list-item-desc,.list-item:hover .list-item-desc,.phablet .list-item .list-item-desc,.phone .list-item .list-item-desc,.tablet .list-item .list-item-desc{opacity:1}.list-item-desc *,.list-item-desc a,.list-item:hover .list-item-desc a{color:var(--listItemText)}.list-item-desc .list-item-overflow{bottom:0;left:0;padding:10px;position:absolute;height:auto}.content-listing-loading,.content-listing-more{text-align:center;margin:20px 0}.content-listing-more{display:none}.content-listing-loading{height:32px}.content-listing-loading .loading-indicator{position:static}.content-listing-pagination{text-align:center;font-size:1.3em;padding:0;color:inherit;font-weight:400;margin-top:20px}.js .content-listing-pagination{display:none}.content-listing-pagination.visible{display:flex!important}.content-listing-pagination a{text-decoration:none;font-weight:inherit;color:inherit;padding:6px 10px;display:block;border-radius:4px}.content-listing-pagination li.pagination-prev{text-align:right}.content-listing-pagination li.pagination-next{text-align:left}.content-listing-pagination a:hover{color:var(--linkText);background:var(--bodyEmpty)}.content-listing-pagination a.current{color:inherit}.tone-dark .content-listing-pagination a.current{color:#fff}.tone-dark .content-listing-pagination a:hover{background:#1f1f1f}.phone .content-listing-pagination li.pagination-page{display:none}.content-listing-pagination li,.phone .content-listing-pagination li.pagination-page.pagination-current{display:inline-block}.content-listing-pagination li.pagination-next,.content-listing-pagination li.pagination-prev{flex-grow:4}.content-listing-pagination li.pagination-current{flex-grow:1}.content-listing-pagination .pagination-current a,.content-listing-pagination .pagination-current a:hover{color:inherit;background:initial;cursor:default}.pagination-disabled{visibility:hidden}.content-empty{padding:4em 2em;text-align:center;font-size:inherit;color:var(--bodyText)}.content-empty .icon{color:var(--bodyEmpty);font-size:90px;width:90px;height:90px;display:inline-block}.tone-dark .content-empty,.tone-dark .content-empty .icon{color:#444}.content-empty .message,.content-empty h2{font-size:16px;margin-top:10px;line-height:160%}.tone-dark .content-empty .message,.tone-dark .content-empty h2{color:#444}.sort-listing{display:none}.sort-listing .selection-count:before{content:" (";white-space:pre}.sort-listing .selection-count:after{content:")"}.disabled.sort-listing .selection-count:after,.disabled.sort-listing .selection-count:before{display:none}.user-image{display:inline-block}.user-image path{fill:red}.user-image,.user-image img{display:block;border-radius:3px}.default-user-image{color:var(--bodyText);text-align:center;position:relative;border-radius:100%;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:var(--backgroundLightAlpha)}.checkered-background{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%),linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.1) 75%),linear-gradient(135deg,transparent 75%,rgba(0,0,0,.1) 75%);background-size:25px 25px;background-position:0 0,12.5px 0,12.5px -12.5px,0 12.5px}.default-user-image .icon{color:inherit;position:absolute;left:50%;top:50%;display:block;line-height:100%;font-size:1em;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em}.default-user-image.size-70,img.user-image.size-70{width:70px;height:70px}.default-user-image.size-70 .icon{font-size:38px;margin-left:-19px;margin-top:-19px}.default-user-image.size-60,img.user-image.size-60{width:60px;height:60px}.default-user-image.size-60 .icon{font-size:32px;margin-left:-16px;margin-top:-16px}.default-user-image.size-40,img.user-image.size-40{width:40px;height:40px}.default-user-image.size-40 .icon{font-size:22px;margin-left:-11px;margin-top:-11px}.user-social-networks{font-size:1em}.user-social-networks,.user-social-networks a{text-decoration:none;color:var(--bodyTextSubtle)}.user-social-networks a{padding:2px}.user-social-networks a:hover{color:var(--bodyText)}.top-user{position:relative;height:110px;margin-top:10px;margin-bottom:10px;min-height:160px;height:auto}.top-user>div{position:absolute;top:0}.top-user .top-user-credentials{position:static;padding-right:220px;clear:both;overflow:visible}.top-user.user-has-no-background .top-user-credentials{overflow:auto}.phone .top-user .top-user-credentials{padding-right:0;padding-left:0;width:100%;margin-bottom:10px;text-align:center;margin-top:-160px}.phone .top-user.no-background .top-user-credentials{margin-top:initial}.phone .top-user .top-user-credentials>a{display:inline-block}.top-user .header-content-right{right:0}.top-user .header-content-right>*{margin-bottom:10px}.top-user .header-content-right>:last-child{margin-bottom:0}.phone .top-user .header-content-right{position:relative}.phone .top-user .header-content-right>div{margin:10px auto;text-align:center}.phone .top-user .input-search{position:relative;top:auto}.phone .top-user .input-search form{position:relative}.phone .top-user .number-figures{line-height:28px}.top-user h1{font-size:26px;font-weight:700;margin-bottom:5px;margin-top:10px;color:var(--bodyText)}.no-margin-top .top-user h1,.phone .top-user h1{margin-top:0}.top-user h1 a{color:inherit;text-decoration:none}.top-user .user-meta{margin-bottom:10px}.user-meta .icon--lock{margin-right:5px}.top-user .user-image{font-size:160px;width:1em;height:1em;border:4px solid var(--bodyBackground);float:left;margin-right:10px;border-radius:100%}.tone-dark .top-user .user-image{border-color:#0b0b0b}.phone .top-user .user-image{float:none;margin-left:auto;margin-right:auto;margin-bottom:10px}.phone body.no-margin-top .top-user .user-image{margin-top:10px}.top-user img.user-image{background:var(--bodyBackground)}.phone .top-user img.user-image{border:10px solid transparent;box-sizing:content-box;background:rgb(255 255 255 / 10%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.top-user .user-image.no-border{border:none}.top-user .number-figures{margin-top:0}.user-card.avatar{padding-left:70px}.user-card.no-avatar{padding-left:0}.user-card .or-separator{margin-top:5px;margin-bottom:5px}.user-card .user-link{font-size:.93em}.user-card-header h2{font-size:15px;font-weight:400;margin-top:0;margin-bottom:2px}.user-card-header h2 a{color:inherit;text-decoration:none}.tone-dark .user-card-header h2 a{color:#fff}.user-card-header div{color:var(--bodyTextSubtle)}.user-card-footer{overflow:hidden}.user-card-footer .user-social-networks{margin-top:3px}.top-user .input-search .icon--close{top:4px}.ad-space{text-align:center}.ad-margin-vertical{margin-top:20px;margin-bottom:20px}.ad-margin-horizontal{margin-left:20px;margin-right:20px}[role=menu]{position:relative;overflow:visible}.menu-box,[role=menu]>.menu-box{z-index:300}[role=menu]>.menu-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-height:10px;display:block;visibility:hidden;transition:350ms all ease-in-out;opacity:0;transform:translateY(-5px);transform-origin:top;max-height:100vh}[role=menu].opened>.menu-box{visibility:visible;opacity:1;transform:translateY(0)}@media (min-width:768px){[role=menu]>.menu-box{transition:none}}.menu-box{border:0}.menu-box,.menu-box .menu-box-sub>.sub,.menu-box .menu-box-sub>ul{background:var(--bodyBackground);border-radius:3px;box-shadow:0 0 15px 0 rgba(0,0,0,.2);color:var(--bodyText);font-size:14px;font-weight:400;position:absolute;top:100%;list-style:none;min-width:190px;padding:0;margin:0}.menu-box--static{position:static;max-width:190px}.menu-box :not(a),.menu-box [role*=button]{color:var(--bodyText)}.tone-dark .menu-box :not(a),.tone-dark .menu-box [role*=button]{color:#fff}.menu-box ul{margin:0;padding:0}.float-left .menu-box,.pull-left .menu-box,menu-box.anchor-left{left:0}.float-right .menu-box,.menu-box--anchor-right,.pull-right .menu-box{right:0}.menu-box .separator,.menu-box [role=separator],.menu-box hr{display:block;margin:0;padding:0;height:0;border:0;border-top:1px solid #ebebeb}.menu-box--border-separators>*{border-bottom:1px solid #ebebeb}.menu-box--border-separators>:last-child{border-bottom:0}.menu-box--border-separators>hr{display:none}.menu-box .sub,.menu-box [role*=button],.menu-box [role=box],.menu-box li{padding:10px;list-style:none;position:relative;line-height:1.4;clear:both;min-height:40px;display:block}.menu-box [role=box]{cursor:default}.menu-box [role*=button]{padding-left:35px;border-left:2px solid transparent;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:start}.menu-box--multiline [role*=button]{white-space:normal}.menu-box--noicons li:not([role=button]){padding-left:0}.menu-box--noicons [role=button]{padding-left:10px;color:inherit}.menu-box [role=button]:hover{border-left-color:#a66bbe}.menu-box .disabled[role=button]{cursor:not-allowed;background:0 0;border-color:transparent!important;opacity:.5}.menu-box li.menu-box-sub{padding-right:34px}.menu-box .menu-box-sub>.sub,.menu-box .menu-box-sub>ul{display:none}.menu-box .menu-box-sub:hover>.sub,.menu-box .menu-box-sub:hover>ul{display:block}.menu-box [role*=button]>.icon,.menu-box li>.icon{font-size:16px;width:16px;height:16px;text-align:center;position:absolute;left:8px;top:50%;margin-top:-8px}.menu-box .menu-box-sub>.icon{left:auto;right:10px}.menu-box .menu-box-sub .sub,.menu-box .menu-box-sub ul{cursor:default;position:absolute;top:0;left:100%}.menu-box .meta{font-size:.93em;display:block}.menu-box .empty{font-size:1em;text-align:center;padding:40px 20px}.menu-box .empty>.icon{font-size:64px;margin-bottom:10px;display:block;color:#ebebeb;position:static}.arrow-navigator a{color:var(--bodyBackground);display:block;text-decoration:none;text-align:center;height:40px;width:40px;position:absolute;top:50%;margin-top:-20px;opacity:.7;padding:10px}.arrow-navigator a.disabled{display:none}.arrow-navigator a:hover{opacity:1}.arrow-navigator a span{display:inline-block;font-size:20px;width:1em;height:1em;text-align:center}.growl{color:var(--alertText);font-size:1.1em;line-height:1.2;background:var(--alertBackground);padding:1em;padding-right:2em;text-align:center;overflow:visible;position:fixed;width:500px;left:50%;top:45px;z-index:9999;cursor:default;border-left:5px solid var(--alertAccent);box-shadow:0 0 15px 5px rgba(0,0,0,.15);border-radius:4px;margin-left:-250px}.growl:empty{display:none}.phone .growl{left:10px;right:10px;width:auto;margin-left:auto}.growl.static{margin-left:auto;position:static;padding-left:10px;padding-right:10px;box-shadow:none;z-index:initial;margin:auto;width:auto}.growl.static.inline{margin:initial;text-align:left;display:inline-block;padding-right:1em;padding-left:1em}.growl .icon{font-size:14px;text-align:center;position:absolute;right:5px;top:7px;cursor:pointer;padding:10px;color:var(--alertText)}.growl-debug-message{text-align:left}.growl-debug-trace{overflow-x:auto;font-size:80%;margin-top:10px}.growl-debug-status{font-style:italic;margin-top:10px;margin-bottom:10px}.flex-center{margin:auto}.width-full{width:100%}.height-full{height:100%}.width-min-full{min-width:100%}.height-min-full{min-height:100%}.fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:1000;opacity:0;transition:opacity 350ms linear}.fullscreen.black,.fullscreen.white{-webkit-backdrop-filter:blur(35px) saturate(1.8);backdrop-filter:blur(35px) saturate(1.8)}.black-bkg,.fullscreen.black{background:var(--backgroundDarkAlpha)}.fullscreen.white,.white-bkg{background:var(--backgroundLightAlpha)}.fullscreen.soft-white,.soft-white-bkg{background:rgba(255,255,255,.6)}.ie9 .fullscreen{-webkit-filter:none;filter:none}.fullscreen-loader{width:150px;height:150px;text-align:center;border-radius:10px;color:#fff;margin-top:-75px;margin-left:-75px;position:absolute;top:50%;left:50%;zoom:1}.loading-txt{position:absolute;bottom:15px;left:0;text-align:center;width:100%}#fullscreen-modal{display:none}#fullscreen-modal.--show{display:grid;align-items:center}.ie9 #fullscreen-modal{-webkit-filter:none;filter:none}#fullscreen-modal-box{width:650px;margin:0 auto;padding:20px;position:relative;box-shadow:0 0 50px 6px rgba(0,0,0,.25);border-radius:10px;background:var(--modalBackground);color:var(--modalText)}.--has-scrollbar #fullscreen-modal-box{border-radius:0}.phone #fullscreen-modal-box{width:100%;margin:0;max-height:100%;-webkit-overflow-scrolling:touch;border-radius:0;padding:20px}#fullscreen-modal-box .modal-box-title,#fullscreen-modal-box h1{display:block;margin-top:0;margin-bottom:20px;font-size:20px;line-height:1.2;padding-right:32px}#fullscreen-modal-box h2{font-size:1.14em}#fullscreen-modal-box h2 *{font-weight:400}#fullscreen-modal-box .or-separator{margin-top:16px}#fullscreen-modal-box p{font-size:1em;line-height:160%;margin-top:10px;margin-bottom:10px}#fullscreen-modal-box p:firt-child{margin-top:0}#fullscreen-modal-box .btn-container{margin-bottom:0}#fullscreen-modal-box .close-modal.icon--close{position:absolute;right:10px;top:15px;cursor:pointer;display:block;padding:10px}.phone #fullscreen-modal-box .close-modal.icon--close,.phone #fullscreen-modal-box .close-modal.icon--close:hover{right:10px}.modal-form textarea{height:70px;resize:none}.fancy-box{padding:20px;background:var(--bodyBackground);box-shadow:0 0 50px 6px rgb(0 0 0 / 25%);border-radius:10px}.fancy-box p{-webkit-margin-before:1em;margin-block-start:1em;-webkit-margin-after:1em;margin-block-end:1em}.fancy-box .or-separator{height:1px;margin:0}#fullscreen-changes-confirm{background:var(--bodyBackground);padding:40px 0;margin-top:75px;position:absolute;text-align:center;top:50%;width:100%;box-shadow:0 4px 16px rgba(0,0,0,.25)}.tone-dark #fullscreen-changes-confirm{background:#1e1e1e}#fullscreen-changes-confirm h2{font-size:18px;line-height:18px;color:inherit}.fullscreen-viewer{background:#000;background:rgba(0,0,0,.9);color:#bbb;display:none}.fullscreen-viewer-top{height:50px;width:100%;background:#000}.fullscreen-viewer-navigation,.fullscreen-viewer-top-user{margin-top:8px}.fullscreen-viewer-top-user img{width:34px;height:34px;margin-right:10px}.fullscreen-viewer-navigation{font-size:16px;font-size:1.143rem;height:26px;position:relative;z-index:100}.fullscreen-viewer-navigation a{display:inline-block;color:#bbb;color:rgba(255,255,255,.7);text-decoration:none;padding:8px}.fullscreen-viewer-navigation a:hover{color:#fff}.fullscreen-viewer-navigation a.disabled{color:#bbb;color:rgba(255,255,255,.4);cursor:default}.fullscreen-viewer-content{text-align:center;height:100%;position:relative;display:none}.fullscreen-viewer-content img{max-width:100%;max-height:100%;box-shadow:0 0 6px 0 #000}#cookie-law-banner{position:fixed;padding:10px;width:100%;bottom:0;background:rgba(0,0,0,.8);color:#fff;font-size:1.2em;z-index:1000}#cookie-law-banner p{padding-right:20px}a.cookie-law-close{color:inherit;text-decoration:none;position:absolute;right:0;top:3px;font-size:.72em;opacity:.5}a.cookie-law-close:hover{opacity:1}.badge--paid{text-transform:uppercase;text-align:center;border-radius:3px;padding:2px 5px;display:inline-block;line-height:1;border:1px solid var(--buttonDefaultBorder);color:var(--buttonDefaultHoverText);background-color:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBorder);font-weight:400}.pop-box-menu li .badge{position:absolute;right:8px;top:8px}.badge{vertical-align:text-bottom;font-size:.7143em;transform-origin:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.badge+label,.btn .badge{margin-left:5px}.pop-box-menu li.paid a{padding-right:52px}.pop-box-menu li:hover .badge{color:var(--menuItemHoverBackground);background-color:var(--menuItemHoverText);border-color:transparent}.r1{height:30px}.r2{height:70px}.r3{height:110px}.r4{height:150px}.r5{height:190px}.r6{height:230px}.r7{height:270px}.r8{height:310px}.r9{height:350px}.r10{height:390px}.r11{height:430px}.r12{height:470px}.r13{height:510px}.r14{height:550px}.r15{height:590px}.r16{height:630px}.r17{height:670px}.r18{height:710px}.r19{height:750px}.r20{height:790px}.r11{height:830px}.r22{height:870px}.r23{height:910px}.r24{height:950px}.columns-container{overflow:auto}.grid-columns{display:block;float:left}.gutter-margin-right,.gutter-margin-right-bottom{margin-right:1px}.gutter-margin-bottom,.gutter-margin-left-bottom,.gutter-margin-right-bottom{margin-bottom:1px}.gutter-margin-left,.gutter-margin-left-bottom{margin-left:1px}.gutter-width{width:5px}.col-1-min{min-width:30px}.col-2-min{min-width:70px}.col-3-min{min-width:110px}.col-4-min{min-width:150px}.col-5-min{min-width:190px}.col-6-min{min-width:230px}.col-7-min{min-width:270px}.col-8-min{min-width:310px}.col-9-min{min-width:350px}.col-10-min{min-width:390px}.col-11-min{min-width:430px}.col-12-min{min-width:470px}.col-13-min{min-width:510px}.col-14-min{min-width:550px}.col-15-min{min-width:590px}.col-16-min{min-width:630px}.col-17-min{min-width:670px}.col-18-min{min-width:710px}.col-19-min{min-width:750px}.col-20-min{min-width:790px}.col-21-min{min-width:830px}.col-22-min{min-width:870px}.col-23-min{min-width:910px}.col-24-min{min-width:950px}.col-1-max{max-width:30px}.col-2-max{max-width:70px}.col-3-max{max-width:110px}.col-4-max{max-width:150px}.col-5-max{max-width:190px}.col-6-max{max-width:230px}.col-7-max{max-width:270px}.col-8-max{max-width:310px}.col-9-max{max-width:350px}.col-10-max{max-width:390px}.col-11-max{max-width:430px}.col-12-max{max-width:470px}.col-13-max{max-width:510px}.col-14-max{max-width:550px}.col-15-max{max-width:590px}.col-16-max{max-width:630px}.col-17-max{max-width:670px}.col-18-max{max-width:710px}.col-19-max{max-width:750px}.col-20-max{max-width:790px}.col-21-max{max-width:830px}.col-22-max{max-width:870px}.col-23-max{max-width:910px}.col-24-max{max-width:950px}@media (min-width:768px){.c1{width:30px}.c2{width:70px}.c3{width:110px}.c4{width:150px}.c5{width:190px}.c6{width:230px}.c7{width:270px}.c8{width:310px}.c9{width:350px}.c10{width:390px}.c11{width:430px}.c12{width:470px}.c13{width:510px}.c14{width:550px}.c15{width:590px}.c16{width:630px}.c17{width:670px}.c18{width:710px}.fluid-column.c1{width:3.157%}.fluid-column.c2{width:7.368%}.fluid-column.c3{width:11.578%}.fluid-column.c4{width:15.789%}.fluid-column.c5{width:20%}.fluid-column.c6{width:24.21%}.fluid-column.c7{width:28.421%}.fluid-column.c8{width:32.631%}.fluid-column.c9{width:36.842%}.fluid-column.c10{width:41.052%}.fluid-column.c11{width:45.263%}.fluid-column.c12{width:49.473%}.fluid-column.c13{width:53.684%}.fluid-column.c14{width:57.894%}.fluid-column.c15{width:62.105%}.fluid-column.c16{width:66.315%}.fluid-column.c17{width:70.526%}.fluid-column.c18{width:74.736%}}@media (min-width:992px){.content-width{width:100%;min-width:970px}.c19{width:750px}.c20{width:790px}.c21{width:830px}.c22{width:870px}.c23{width:910px}.c24{width:950px}.fluid-column.c19{width:78.947%}.fluid-column.c20{width:83.157%}.fluid-column.c21{width:87.368%}.fluid-column.c22{width:91.578%}.fluid-column.c23{width:95.789%}.fluid-column.c24{width:100%}.top-btn-text .btn-text{margin-left:7px}.pop-box .arrow-down{border-width:6px 6px 0 6px}}@media (min-width:992px) and (max-width:1920px){.content-width{max-width:1800px}}@media (min-width:1921px) and (max-width:2560px){.content-width{max-width:2440px}}@media (min-width:3840px){.content-width{max-width:3720px}}.color-body-text-subtle{color:var(--bodyTextSubtle)}.color-accent{color:var(--colorAccent)}.color-success{color:var(--colorSuccess)}.color-fail{color:var(--colorFail)}.color-white{color:#fff!important}.color-black{color:#333!important}.color-grey{color:#ccc!important}.color-green{color:#27ae61!important}.color-red{color:#e74c3c!important}.color-blue{color:var(--colorBlue)!important}.color-orange{color:#d35400!important}.color-purple{color:#8e44ad!important}.color-inherit{color:inherit!important}.color-initial{color:initial!important}.height-auto{height:auto}.width-auto{width:auto}.height-100p{height:100%}.width-100p{width:100%}.color-facebook{color:#3b5998}.color-twitter{color:#1da1f2}.color-google{color:#ea4335}.color-vk{color:#45668e}.border-color-facebook{border-color:#3b5998}.border-color-twitter{border-color:#1da1f2}.border-color-google{border-color:#ea4335}.border-color-vk{border-color:#45668e}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.background-black{background:#000!important}.background-white{background:#fff!important}.background-transparent{background:0 0!important}.background-gradient-white-left{background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 35%,rgba(255,255,255,1) 100%)}.background-gradient-white-right{background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,1) 80%,rgba(255,255,255,0) 100%)}.font-weight-bold{font-weight:700!important}.font-weight-normal{font-weight:400!important}.cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default!important}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.font-size-small{font-size:small!important}.font-size-medium{font-size:medium!important}.font-size-large{font-size:large!important}.font-size-inherit{font-size:inherit!important}.font-size-10{font-size:10px!important}.font-size-11{font-size:11px!important}.font-size-12{font-size:12px!important}.font-size-13{font-size:13px!important}.font-size-14{font-size:14px!important}.font-size-15{font-size:15px!important}.font-size-16{font-size:16px!important}.font-size-17{font-size:17px!important}.font-size-18{font-size:18px!important}.height-100p{height:100%!important}.height-120p{height:120%!important}.top-0{top:0}.top-10{top:10px}.top-20{top:20px}.top-30{top:30px}.top-40{top:40px}.right-0{right:0}.right-10{right:10px}.right-20{right:20px}.right-30{right:30px}.right-40{right:40px}.bottom-0{bottom:0}.bottom-10{bottom:10px}.bottom-20{bottom:20px}.bottom-30{bottom:30px}.bottom-40{bottom:40px}.left-0{left:0}.left-10{left:10px}.left-20{left:20px}.left-30{left:30px}.left-40{left:40px}.display-none{display:none}.display-none-forced{display:none!important}.display-block{display:block}.display-block-forced{display:block!important}.display-flex{display:-moz-flex;display:flex}.visibility-hidden{visibility:hidden}.clear-both{clear:both}.float-left{float:left}.float-right{float:right}.border-0,.no-border{border:none}.border-top-0{border-top:0}.border-right-0{border-right:0}.border-bottom-0{border-bottom:0}.border-left-0{border-left:0}.box-shadow-none{box-shadow:none}.word-break-break-all{word-break:break-all}.word-break-break-word{word-break:break-word}.margin-0{margin:0!important}.margin-5{margin:5px!important}.margin-10{margin:10px!important}.margin-20{margin:20px!important}.margin-30{margin:20px!important}.margin-40{margin:20px!important}.margin-top-0,.phablet .phablet-margin-top-0,.phone .phone-margin-top-0{margin-top:0!important}.margin-top-5,.phablet .phablet-margin-top-5,.phone .phone-margin-top-5{margin-top:5px!important}.margin-top-10,.phablet .phablet-margin-top-10,.phone .phone-margin-top-10{margin-top:10px!important}.margin-top-20,.phablet .phablet-margin-top-20,.phone .phone-margin-top-20{margin-top:20px!important}.margin-top-30{margin-top:30px!important}.margin-top-40{margin-top:40px!important}.margin-right-auto{margin-right:auto!important}.margin-right-0,.phablet .phablet-margin-right-0,.phone .phone-margin-right-0{margin-right:0!important}.margin-right-035em{margin-right:.35em!important}.margin-right-5{margin-right:5px!important}.margin-right-10{margin-right:10px!important}.margin-right-20{margin-right:20px!important}.margin-right-30{margin-right:30px!important}.margin-right-40{margin-right:40px!important}.margin-bottom-0,.phablet .phablet-margin-bottom-0,.phone .phone-margin-bottom-0{margin-bottom:0!important}.margin-bottom-5{margin-bottom:5px!important}.margin-bottom-10,.phablet .phablet-margin-bottom-10,.phone .phone-margin-bottom-10{margin-bottom:10px!important}.margin-bottom-20,.phablet .phablet-margin-bottom-20,.phone .phone-margin-bottom-20{margin-bottom:20px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-bottom-40{margin-bottom:40px!important}.margin-left-auto{margin-left:auto!important}.margin-left-0,.phablet .phablet-margin-left-0,.phone .phone-margin-left-0{margin-left:0!important}.margin-right--10{margin-right:-10px!important}.margin-left--10{margin-left:-10px!important}.margin-left-5{margin-left:5px!important}.margin-left-10{margin-left:10px!important}.margin-left-20{margin-left:20px!important}.margin-left-30{margin-left:30px!important}.margin-left-40{margin-left:40px!important}.padding-5{padding:5px!important}.padding-10{padding:10px!important}.padding-20{padding:20px!important}.padding-30{padding:20px!important}.padding-40{padding:20px!important}.padding-top-5{padding-top:5px!important}.padding-top-0{padding-top:0!important}.padding-top-10{padding-top:10px!important}.padding-top-20{padding-top:20px!important}.padding-top-30{padding-top:30px!important}.padding-top-40{padding-top:40px!important}.padding-right-5{padding-right:5px!important}.padding-right-0{padding-right:0!important}.padding-right-10{padding-right:10px!important}.padding-right-20{padding-right:20px!important}.padding-right-30{padding-right:30px!important}.padding-right-40{padding-right:40px!important}.padding-bottom-5{padding-bottom:5px!important}.padding-bottom-0{padding-bottom:0!important}.padding-bottom-10{padding-bottom:10px!important}.padding-bottom-20{padding-bottom:20px!important}.padding-bottom-30{padding-bottom:30px!important}.padding-bottom-40{padding-bottom:40px!important}.padding-left-5{padding-left:5px!important}.padding-left-0{padding-left:0!important}.padding-left-10{padding-left:10px!important}.padding-left-20{padding-left:20px!important}.padding-left-30{padding-left:30px!important}.padding-left-40{padding-left:40px!important}.position-sticky{position:-webkit-sticky;position:sticky}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.text-align-left{text-align:left}.text-align-center{text-align:center}.text-align-right{text-align:right}.text-align-justify{text-align:justify}.text-decoration-none{text-decoration:none!important}.display-block{display:block}.display-inline{display:inline}.display-inline-table{display:inline-table}.display-inline-block{display:inline-block}.display-table-cell{display:table-cell}.word-break-break-all{word-break:break-all}.list-style-position-inside li{list-style-position:inside!important}.list-style-position-outside li{list-style-position:outside!important}.list-style-type-disc li{list-style-type:disc!important}.list-style-type-decimal li{list-style-type:decimal!important}.center-box{margin-right:auto!important;margin-left:auto!important}.display-inline-block,.display-table-cell{zoom:1}.vertical-align-middle{vertical-align:middle!important}.resize-vertical{resize:vertical!important}.no-resize,.resize-none{resize:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.text-transform-capitalize{text-transform:capitalize}.text-transform-uppercase{text-transform:uppercase}.default-margin-top{margin-top:20px}.default-margin-bottom{margin-bottom:20px}.float-none{float:none!important;clear:both!important}.desktop .desktop-hide,.laptop .laptop-hide,.largescreen .desktop-hide,.phablet .phablet-hide,.phone .phone-hide,.tablet .tablet-hide{display:none!important}.desktop .desktop-display-block,.desktop .desktop-show,.laptop .laptop-display-block,.laptop .laptop-show,.largescreen .desktop-display-block,.largescreen .desktop-show,.phablet .phablet-display-block,.phablet .phablet-show,.phone .phone-display-block,.phone .phone-show,.tablet .tablet-display-block,.tablet .tablet-show{display:block!important}.desktop .desktop-display-inline,.laptop .laptop-display-inline,.phablet .phablet-display-inline,.phone .phone-display-inline,.tablet .tablet-display-inline{display:inline!important}.desktop .desktop-display-inline-block,.laptop .laptop-display-inline-block,.phablet .phablet-display-inline-block,.phone .phone-display-inline-block,.tablet .tablet-display-inline-block{display:inline-block!important}.image-responsive{max-width:100%!important;width:auto!important}.desktop .desktop-float-none,.laptop .laptop-float-none,.phablet .phablet-float-none,.phone .phone-float-none,.tablet .tablet-float-none{float:none;clear:both}.phablet .grid-columns,.phone .grid-columns{float:none;margin-left:0;margin-right:0}.phablet .phablet-float-left,.phone .phone-float-left{float:left!important}.phablet .phablet-c1,.phone .fluid-column.phablet-c1,.phone .fluid-column.phone-c1,.phone .phone-c1{width:100%}.phablet .phablet-text-align-left,.phone .phone-text-align-left{text-align:left!important}.phablet .phablet-text-align-center,.phone .phone-text-align-center{text-align:center!important}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:12px;color:#fff;padding:6px 8px;background-color:#333;background-color:rgba(0,0,0,.8);word-break:break-word}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-top-color:#333;border-top-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#fff;border-top-color:rgba(255,255,255,.95)}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-bottom-color:#333;border-bottom-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#fff;border-bottom-color:rgba(255,255,255,.95)}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-6px;border-right-color:#333;border-right-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#fff;border-right-color:rgba(255,255,255,.95)}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-6px;border-left-color:#333;border-left-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#fff;border-left-color:rgba(255,255,255,.95)}.antiscroll-wrap{display:block;position:relative;overflow:hidden}.antiscroll-scrollbar{background:gray;background:rgba(0,0,0,.5);border-radius:7px;box-shadow:0 0 1px #fff;position:absolute;opacity:0;-webkit-transition:linear 350ms opacity;-moz-transition:linear 350ms opacity;-o-transition:linear 350ms opacity}.antiscroll-scrollbar-shown{opacity:1}.antiscroll-scrollbar-horizontal{height:7px;margin-left:2px;bottom:2px;left:0}.antiscroll-scrollbar-vertical{width:7px;margin-top:2px;right:2px;top:0}.antiscroll-inner{overflow:scroll}.antiscroll-inner::-webkit-scrollbar{width:0;height:0}.antiscroll-inner::scrollbar{width:0;height:0}#recaptcha_table.recaptcha_theme_clean #recaptcha_image{border:0!important}#recaptcha_response_field{height:auto}.copy-hover-display button.copy-input,.copy-hover-display button.input-action{visibility:hidden}.copy-hover-display:hover button.copy-input,.copy-hover-display:hover button.input-action,.phablet button.copy-input,.phablet button.input-action,.phone button.copy-input,.phone button.input-action{visibility:visible}button.copy-input,button.input-action{position:absolute;right:7px;top:.8181em;text-transform:uppercase;cursor:pointer;line-height:1;font-size:11px;padding:4px 6px;border-radius:4px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button.copy-input,button.input-action{background:var(--buttonDefaultBackground);color:var(--buttonDefaultText)}button:hover.copy-input,button:hover.input-action{background:var(--buttonDefaultHoverBackground);color:var(--buttonDefaultHoverText)}.shake{-webkit-animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.key-feedback{line-height:1;background:rgba(0,0,0,.7);position:fixed;z-index:10000;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);bottom:1.5em;transition:all .5s;opacity:0;text-align:center;color:#fff;font-weight:700;font-size:45px;padding:1em;border-radius:.5em;left:50%;transform:translateX(-50%);border:4px solid rgba(255,255,255,.9);box-shadow:0 0 50px 6px rgb(0 0 0 / 25%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}img.qr{display:inline-block}.fa-vkontakte:before{content:"\f189"}.fab.fa-mailru{font-family:"Font Awesome 5 Free";font-weight:900}.fa-mailru:before{content:"\f1fa"}.fa-stackexchange:before{content:"\f18d"}.fa-twitchtv:before{content:"\f1e8"}.fa-wechat:before{content:"\f1d7"} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/peafowl.min.js b/content/legacy/themes/Peafowl/lib/peafowl.min.js new file mode 100644 index 0000000..3227962 --- /dev/null +++ b/content/legacy/themes/Peafowl/lib/peafowl.min.js @@ -0,0 +1,5 @@ +function sprintf(){var t=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,e=arguments,n=0,i=e[n++],o=function(t,e,n,i){n||(n=" ");var o=t.length>=e?"":new Array(1+e-t.length>>>0).join(n);return i?t+o:o+t},r=function(t,e,n,i,r,a){var s=i-t.length;return s>0&&(t=n||!r?o(t,i,a,n):t.slice(0,e.length)+o("",s,"0",!0)+t.slice(e.length)),t},a=function(t,e,n,i,a,s,l){var c=t>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[e]||"",t=n+o(c.toString(e),s||0,"0",!1),r(t,n,i,a,l)},s=function(t,e,n,i,o,a){return null!=i&&(t=t.slice(0,i)),r(t,"",e,n,o,a)},l=function(t,i,l,c,u,d,h){var f,p,g,m,b;if("%%"===t)return"%";for(var v=!1,y="",w=!1,P=!1,$=" ",x=l.length,F=0;l&&F<x;F++)switch(l.charAt(F)){case" ":y=" ";break;case"+":y="+";break;case"-":v=!0;break;case"'":$=l.charAt(F+1);break;case"0":w=!0,$="0";break;case"#":P=!0}if(c=c?"*"===c?+e[n++]:"*"==c.charAt(0)?+e[c.slice(1,-1)]:+c:0,c<0&&(c=-c,v=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(d=d?"*"===d?+e[n++]:"*"==d.charAt(0)?+e[d.slice(1,-1)]:+d:"fFeE".indexOf(h)>-1?6:"d"===h?0:void 0,b=i?e[i.slice(0,-1)]:e[n++],h){case"s":return s(String(b),v,c,d,w,$);case"c":return s(String.fromCharCode(+b),v,c,d,w);case"b":return a(b,2,P,v,c,d,w);case"o":return a(b,8,P,v,c,d,w);case"x":return a(b,16,P,v,c,d,w);case"X":return a(b,16,P,v,c,d,w).toUpperCase();case"u":return a(b,10,P,v,c,d,w);case"i":case"d":return f=+b||0,f=Math.round(f-f%1),p=f<0?"-":y,b=p+o(String(Math.abs(f)),d,"0",!1),r(b,p,v,c,w);case"e":case"E":case"f":case"F":case"g":case"G":return f=+b,p=f<0?"-":y,g=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],b=p+Math.abs(f)[g](d),r(b,p,v,c,w)[m]();default:return t}};return i.replace(t,l)}function testPassword(t){var e=0,n="weak",i="",o=0;return t.length<5?(e+=3,i=i+"3 points for length ("+t.length+")\n"):t.length>4&&t.length<8?(e+=6,i=i+"6 points for length ("+t.length+")\n"):t.length>7&&t.length<16?(e+=12,i=i+"12 points for length ("+t.length+")\n"):t.length>15&&(e+=18,i=i+"18 point for length ("+t.length+")\n"),t.match(/[a-z]/)&&(e+=1,i+="1 point for at least one lower case char\n"),t.match(/[A-Z]/)&&(e+=5,i+="5 points for at least one upper case char\n"),t.match(/\d+/)&&(e+=5,i+="5 points for at least one number\n"),t.match(/(.*[0-9].*[0-9].*[0-9])/)&&(e+=5,i+="5 points for at least three numbers\n"),t.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)&&(e+=5,i+="5 points for at least one special char\n"),t.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)&&(e+=5,i+="5 points for at least two special chars\n"),t.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)&&(e+=2,i+="2 combo points for upper and lower letters\n"),t.match(/([a-zA-Z])/)&&t.match(/([0-9])/)&&(e+=2,i+="2 combo points for letters and numbers\n"),t.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)&&(e+=2,i+="2 combo points for letters, numbers and special chars\n"),0==t.length&&(e=0),n=e<16?"very weak":e>15&&e<25?"weak":e>24&&e<35?"average":e>34&&e<45?"strong":"stronger",o=Math.round(Math.min(100,100*e/45))/100,{score:e,ratio:o,percent:100*o+"%",verdict:n,log:i}}$(function(){var t={url:PF.obj.config.json_api,cache:!1,dataType:"json",data:{auth_token:PF.obj.config.auth_token}};void 0!==PF.obj.config.session_id&&(t.data.session_id=PF.obj.config.session_id),$.ajaxSetup(t),$(window).bind("beforeunload",function(){if("continue"!=$("form",PF.obj.modal.selectors.root).data("beforeunload"))return $(PF.obj.modal.selectors.root).is(":visible")&&PF.fn.form_modal_has_changed()?'<i class="fas fa-exclamation-triangle"></i> '+PF.fn._s("All the changes that you have made will be lost if you continue."):void 0});let e=0;const n=void 0!==window.pageXOffset,i="CSS1Compat"===(document.compatMode||""),o=function(){let t,o=n?window.pageYOffset:i?document.documentElement.scrollTop:document.body.scrollTop;return t=o>e,e=o,t};var r;window.addEventListener("scroll",function(){r||(r=!0,setTimeout(function(){var t=o();$("#top-bar, .follow-scroll").each(function(){"1"!==$(this).attr("data-scroll-lock")&&$(this).addClass("scroll-"+(t?"down":"up")).removeClass("scroll-"+(t?"up":"down"))}),r=!1},250))}),$(window).bind("hashchange",function(){"#edit"!=window.location.hash||$(PF.obj.modal.selectors.root).exists()||$("[data-modal=edit]").first().click()}),PF.fn.bindtipTip();var a,s=0,l=$(window).width();if($(window).on("resize",function(){PF.fn.modal.styleAware(),PF.fn.close_pops(),clearTimeout(a),a=setTimeout(function(){PF.fn.modal.fixScrollbars();var t=PF.fn.getDeviceName(),e=["phone","phablet"],n=["tablet","laptop","desktop"],i=PF.fn.getDeviceName();(i!==t&&$.inArray(t,e)>=0&&-1==$.inArray(i,e)||$.inArray(t,n)>=0&&-1==$.inArray(i,n))&&PF.fn.close_pops(),$(".top-bar").css("top",""),$("body").css({position:"",height:""}),$(".antiscroll").removeClass("jsly").data("antiscroll",""),$(".antiscroll-inner").css({height:"",width:"",maxheight:""}),PF.fn.list_fluid_width(),l!==$(window).width()&&($(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible).css("opacity",0),$("[data-action=top-bar-menu-full]","#top-bar").hasClass("current")&&PF.fn.topMenu.hide(0),PF.fn.listing.columnizer(!0,0,!0),$(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible).css("opacity",1)),l=$(window).width()},s)}),$(document).on("click","html",function(){PF.fn.close_pops()}),$(document).on("keydown",".numeric-input",function(t){t.keydown_numeric()}),$(document).on("click","[data-scrollto]",function(t){var e=$(this).data("scrollto"),n=$(e.match(/^\#|\./)?e:"#"+e);n.exists()?PF.fn.scroll(n):console.log("PF scrollto error: target doesn't exists",n)}),$(document).on("click focus","[data-login-needed], [data-user-logged=must]",function(t){if(!PF.fn.is_user_logged())return t.preventDefault(),t.stopPropagation(),window.location.href=PF.obj.vars.urls.login,!1}),$(document).on("click","[data-trigger]",function(t){if(t.isPropagationStopped())return!1;var e=$(this).data("trigger"),n=$(e.match(/^\#|\./)?e:"#"+e);n.exists()?(t.stopPropagation(),t.preventDefault(),n.closest(PF.obj.modal.selectors.root).length||PF.fn.modal.close(),n.trigger("click")):console.log("PF trigger error: target doesn't exists",n)}),$("form[method=post]").each(function(){$("input[name=auth_token]",this).exists()||$(this).append($("<input>",{type:"hidden",name:"auth_token",value:PF.obj.config.auth_token}))}),$(document).on("click",".clear-form",function(){$(this).closest("form")[0].reset()}),$(document).on("submit","form[data-action=validate]",function(t){$(this).data("type");var e=!1,n=$(this).find("[required], [data-validate]");if(n.each(function(){var t=$(this).attr("type"),n=$(this).attr("pattern"),i=function(t){$(t).highlight(),e=!0};if($(this).is("[required]")&&""==$(this).val()){if($(this).is(":hidden")){var o=$($($(this).data("highlight")).exists()?$(this).data("highlight"):"#"+$(this).data("highlight"));$(o).highlight()}i(this)}if(void 0===n&&0==/mail|url/.test(t))return!0;n&&(n=new RegExp(n),n.test($(this).val())||i(this)),"email"!=t||$(this).val().isEmail()||i(this)}),e)return PF.fn.growl.expirable(PF.fn._s("Check the errors in the form to continue.")),!1}),$(document).on("change","select[data-combo]",function(){var t=$("#"+$(this).data("combo"));t.exists()&&t.children(".switch-combo").hide();var e=$("#"+$(this).closest("select").data("combo")),n=$("[data-combo-value~="+$("option:selected",this).attr("value")+"]",e);n.exists()&&n.show().find("[data-required]").each(function(){$(this).attr("required","required")}),$(".switch-combo",e).each(function(){$(this).is(":visible")||$("[required]",this).attr("data-required",!0).removeAttr("required")})}),$(document).on("keyup",function(t){var e=$(t.target),n=t.originalEvent;"Escape"==n.key&&$(PF.obj.modal.selectors.root).is(":visible")&&(e.is(":input")?e.trigger("blur"):$("[data-action=cancel],[data-action=close-modal]",PF.obj.modal.selectors.root).first().trigger("click"),PF.fn.keyFeedback.spawn(t))}),$(document).on("change",":input",function(t){PF.fn.growl.close()}),$(document).on("keyup",":input",function(t){$(".input-warning",$(this).closest(".input-label")).html("")}),$(document).on("blur",":input",function(){var t=$.trim($(this).prop("value"));$(this).prop("value",t)}),$(document).on("click","[data-focus=select-all],[data-click=select-all]",function(){if($(this).is(":input"))this.select();else{var t=document.createRange();t.selectNodeContents(this);var e=window.getSelection();e.removeAllRanges(),e.addRange(t)}}),$(document).on("keyup change blur",":input[type=password]",function(){var t=testPassword($(this).val()),e=$(this).closest("div");""==$(this).val()&&(t.percent=0,t.verdict=""),$("[data-content=password-meter-bar]",e).attr("data-veredict",t.verdict.replace(/ /g,"-")).width(t.percent),$("[data-text=password-meter-message]",e).removeClass("red-warning").text(""!==t.verdict?PF.fn._s(t.verdict):"")}),$(document).on("click","[rel=popup-link], .popup-link",function(t){t.preventDefault();var e=$(this)[void 0!==$(this).attr("href")?"attr":"data"]("href");if(void 0!==e){if(PF.fn.isDevice(["phone","phablet"])){if("mailto"==e.substring(0,6))return void(window.location=e);if("share"==e.substring(0,5))return void(navigator.canShare&&navigator.share(PF.fn.deparam(e.substring(6))))}PF.fn.popup({href:e})}}),$(document).on("click","[data-modal=simple],[data-modal=html]",function(){var t=$("[data-modal="+$(this).data("target")+"], #"+$(this).data("target")).first();PF.fn.modal.call({template:t.html(),buttons:!1})}),$(document).on("submit",PF.obj.modal.selectors.root+" form",function(t){return!$(this).data("prevented")&&(void 0!==$(this).attr("method")&&void 0)}),$(document).on("click","[data-modal=edit],[data-modal=form],[data-confirm]",function(t){t.preventDefault();var e,n=$(this);n.is("[data-confirm]")?(e=n,PF.obj.modal.type="confirm"):(e=$("[data-modal="+n.data("target")+"], #"+n.data("target")).first(),0==e.length&&(e=$("[data-modal=form-modal], #form-modal").first()),0==e.length&&console.log("PF Error: Modal target doesn't exists."),PF.obj.modal.type=n.data("modal"));var i=n.data("args"),o=window[e.data("submit-fn")],r=window[e.data("cancel-fn")],a=(window[e.data("load-fn")],e.data("submit-done")),s={url:e.data("ajax-url")||(void 0!==e.data("is-xhr")?PF.obj.config.json_api:null),deferred:window[e.data("ajax-deferred")]};if("function"!=typeof o&&e.data("submit-fn")){var l=e.data("submit-fn").split(".");o=window;for(var c=0;c<l.length;c++)o=o[l[c]]}if("function"!=typeof r&&e.data("cancel-fn")){var u=e.data("cancel-fn").split(".");r=window;for(c=0;c<u.length;c++)r=r[u[c]]}if("function"!=typeof load_function&&e.data("load-fn")){var d=e.data("load-fn").split(".");load_function=window;for(c=0;c<d.length;c++)load_function=load_function[d[c]]}if("object"!=typeof s.deferred&&e.data("ajax-deferred")){var h=e.data("ajax-deferred").split(".");s.deferred=window;for(c=0;c<h.length;c++)s.deferred=s.deferred[h[c]]}var f=window[e.data("before-fn")];if("function"!=typeof f&&e.data("before-fn")){var p=e.data("before-fn").split(".");f=window;for(c=0;c<p.length;c++)f=f[p[c]]}"function"==typeof f&&f(t);var g=$(this).data("options")||{};if(n.is("[data-confirm]")){var m={message:n.data("confirm"),confirm:"function"==typeof o?o(i):"",cancel:"function"==typeof r?r(i):"",ajax:s};n.attr("href")&&""==m.confirm&&(m.confirm=function(){return window.location.replace(n.attr("href"))}),PF.fn.modal.confirm($.extend(m,g))}else{m={template:e.html(),button_submit:$(this).is("[data-modal=edit]")?PF.fn._s("Save changes"):PF.fn._s("Submit"),confirm:function(){var t=PF.fn.form_modal_has_changed(),r=$("form",PF.obj.modal.selectors.root);if(void 0!==r.attr("action"))return r.data("prevented",!t),void PF.fn.modal.close();if($(":input[name]",r).each(function(){if($(this).is(":visible"))"required"==$(this).attr("data-required")&&$(this).prop("required",!0);else{var t=$(this).attr("required");void 0!==t&&!1!==t&&$(this).prop("required",!1).attr("data-required","required")}}),!r[0].checkValidity())return!1;if(t||g.forced){if("function"==typeof o&&(submit_fn=o(i)),"undefined"!=typeof submit_fn&&0==submit_fn)return!1;if($(":input",PF.obj.modal.selectors.root).each(function(){$(this).val($.trim($(this).val()))}),n.is("[data-modal=edit]")&&e.html($(PF.obj.modal.selectors.body,$(PF.obj.modal.selectors.root).bindFormData()).html().replace(/rel=[\'"]tooltip[\'"]/g,'rel="template-tooltip"')),void 0!==s.url)return!0;PF.fn.modal.close(function(){void 0!==a&&PF.fn.growl.expirable(""!==a?a:PF.fn._s("Changes saved successfully."))})}else PF.fn.modal.close()},cancel:function(){if("function"==typeof cancel_fn&&(cancel_fn=cancel_fn()),"undefined"!=typeof cancel_fn&&0==cancel_fn)return!1;if("skip"!=e.data("prompt")&&PF.fn.form_modal_has_changed()){if($(PF.obj.modal.selectors.changes_confirm).exists())return;$(PF.obj.modal.selectors.box,PF.obj.modal.selectors.root).css({transition:"none"}).hide(),$(PF.obj.modal.selectors.root).append('<div id="'+PF.obj.modal.selectors.changes_confirm.replace("#","")+'"><div class="content-width"><h2><i class="fas fa-exclamation-triangle"></i> '+PF.fn._s("All the changes that you have made will be lost if you continue.")+'</h2><div class="'+PF.obj.modal.selectors.btn_container.replace(".","")+' margin-bottom-0"><button class="btn btn-input default" data-action="cancel"><i class="fas fa-chevron-circle-left btn-icon"></i><span class="btn-text">'+PF.fn._s("Go back to form")+'</span></button> <span class="btn-alt">'+PF.fn._s("or")+' <a data-action="submit"><i class="fas fa-check margin-right-5"></i>'+PF.fn._s("continue anyway")+"</a></span></div></div>"),$(PF.obj.modal.selectors.changes_confirm).css("margin-top",-$(PF.obj.modal.selectors.changes_confirm).outerHeight(!0)/2).hide().fadeIn("fast")}else PF.fn.modal.close(),"#edit"==window.location.hash&&(window.location.hash="")},load:function(){"function"==typeof load_function&&load_function()},callback:function(){},ajax:s};PF.fn.modal.call($.extend(m,g))}}),PF.fn.is_user_logged()||$("[data-login-needed]:input, [data-user-logged=must]:input").each(function(){$(this).attr("readonly",!0)}),$(document).on("keydown","html",function(t){var e=$(t.target),n=t.originalEvent;if("Escape"!==n.key){var i="Enter"===n.key&&(n.ctrlKey||n.metaKey),o=e.is(":input.search, textarea")||e.closest(".input-with-button").exists();if(!o&&e.is(":input")&&"Enter"===n.key&&!i)return t.stopPropagation(),void t.preventDefault();if($(PF.obj.modal.selectors.root).exists()){if(i||"Enter"!==n.key||!$("[data-action=submit]",PF.obj.modal.selectors.root).exists()||e.is(".prevent-submit")||(i=!0),!i)return;$("[data-action=submit]",PF.obj.modal.selectors.root).trigger("click")}else if(i){var r=e.is(":input")?e.closest("form"):$("form",".form-content:visible").first();r.trigger("submit")}i&&PF.fn.keyFeedback.spawn(t)}else PF.fn.growl.close()}),window.location.hash&&"#edit"==window.location.hash&&$("[data-modal=edit]").first().click(),$(document).on("click","#menu-fullscreen .fullscreen, [data-action=top-bar-menu-full]",function(t){if(!$(t.target).is("#pop-box-mask")){var e=$("[data-action=top-bar-menu-full]","#top-bar").hasClass("current");if(PF.fn.topMenu[e?"hide":"show"](),Boolean(window.navigator.vibrate)){var n=e?[15,200,15]:[15,200,25,125,15];window.navigator.vibrate(0),window.navigator.vibrate(n)}}}),$(document).on("click","[data-action=top-bar-search]",function(){$("[data-action=top-bar-search-input]",".top-bar").removeClass("hidden").show(),$("[data-action=top-bar-search-input]:visible input").first().focus(),is_ios()&&!$(this).closest(PF.fn.topMenu.vars.menu).exists()&&$(".top-bar").css("position","absolute"),$("[data-action=top-bar-search]",".top-bar").hide()}),$(document).on("click",".input-search .icon--search",function(t){$("input",t.currentTarget.offsetParent).focus()}),$(document).on("click",".input-search .icon--close, .input-search [data-action=clear-search]",function(t){var e=$("input",t.currentTarget.offsetParent);""==e.val()?$(this).closest("[data-action=top-bar-search-input]").exists()&&($("[data-action=top-bar-search-input]",".top-bar").hide(),$("[data-action=top-bar-search]",".top-bar").removeClass("opened").show()):($(this).closest("[data-action=top-bar-search-input]").exists()||$(this).hide(),e.val("").change())}),$(document).on("keyup change","input.search",function(t){var e=$(this),n=$(this).closest(".input-search");if(!$(this).closest("[data-action=top-bar-search-input]").exists()){var i=""==e.val()?"hide":"show";$(".icon--close, [data-action=clear-search]",n)[i]()}}),$(document).on("click mouseenter",".pop-btn",function(t){if(!PF.fn.isDevice(["phone","phablet"])||"mouseenter"!=t.type&&!$(this).hasClass("pop-btn-desktop")){var e,n,i=$(t.target),o=$.makeArray(["phone","phablet"]),r=$(this);if(("mouseenter"!=t.type||$(this).hasClass("pop-btn-auto"))&&!$(this).hasClass("disabled")&&(!i.closest(".current").exists()||PF.fn.isDevice("phone")||i.closest(".pop-btn-show").exists())){if(PF.fn.growl.close(),t.stopPropagation(),e=$(this),n=$(".pop-box",e),e.addClass("opened"),$(".pop-box-inner",n).css("max-height",""),PF.fn.isDevice(o)){var a=$(".pop-btn-text,.btn-text,.text",e).first().text(),s=$(".pop-btn-icon,.btn-icon,.icon",e)[0].outerHTML;$(".pop-box-header",n).exists()||n.prepend($("<div/>",{class:"pop-box-header",html:s+" "+a+'<span class="btn-icon icon--close fas fa-times"></span></span>'}),$("<div/>",{class:"hidden phone-show phablet-show or-separator margin-top-0 margin-bottom-0"}))}else $(".pop-box-header",n).remove(),n.css({bottom:""});if(n.hasClass("anchor-center")&&void 0===n.data("guidstr")&&(PF.fn.isDevice(o)?n.css("margin-left",""):n.css("margin-left",-n.width()/2)),i.is("[data-change]")&&($("li",n).removeClass("current"),i.closest("li").addClass("current"),$("[data-text-change]",e).text($("li.current a",n).text()),t.preventDefault()),n.exists()){r=t.istriggered?$(t.target):$(this);if(!(n.is(":visible")&&$(t.target).closest(".pop-box-inner").exists()&&r.hasClass("pop-keep-click"))){$(".pop-box:visible").not(n).hide().closest(".pop-btn").removeClass("opened");var l=function(t){if(t.is(":visible"))if(PF.fn.isDevice(o))$(".antiscroll-inner",t).height("100%");else{var e=t.css("marginLeft");void 0!==e&&(e=parseFloat(e),t.css("marginLeft",""));var n=t.getWindowCutoff();if(n&&(n.left||n.right)&&n.right<e){s="guid-"+PF.fn.guid();t.css("marginLeft",n.right+"px").addClass(s).attr("data-guidstr",s);var i=r.outerWidth()/2+r.offset().left-t.offset().left,a=[];$.each(["top","bottom"],function(t,e){$.each(["after","before"],function(t,n){a.push("."+s+".arrow-box-"+e+":"+n)})}),$('<style id="'+s+'">'+a.join()+" { left: "+i+"px; }</style>").appendTo("head")}else t.css("marginLeft",e+"px");$(".antiscroll-wrap:not(.jsly):visible",t).addClass("jsly").antiscroll()}else{var s=t.attr("data-guidstr");t.css("marginLeft","").removeClass(s).removeAttr("data-guidstr").closest(".pop-btn").removeClass("opened"),void 0!==s&&$("style#"+s).remove()}};if(PF.fn.isDevice(o)){$(this).is("[data-action=top-bar-notifications]")&&n.css({height:$(window).height()});var c=n.height()+"px";parseInt($(".top-bar").outerHeight()),parseInt($(".top-bar").css("top")),parseInt($(".top-bar").css("margin-top")),parseInt($(".top-bar").css("margin-bottom"));n.is(":visible")?($("#pop-box-mask").css({opacity:0}),n.css({transform:"none"}),r.closest(PF.fn.topMenu.vars.menu).exists()&&$(".top-bar").css({transform:"none"}),setTimeout(function(){if(n.hide().attr("style",""),$("#pop-box-mask").remove(),l(n),r.closest(PF.fn.topMenu.vars.menu).exists()&&($(PF.fn.topMenu.vars.menu).css({height:""}),$(PF.fn.topMenu.vars.menu).animate({scrollTop:PF.fn.topMenu.vars.scrollTop},PF.obj.config.animation.normal/2)),!$("body").data("hasOverflowHidden")){var t="pop-box-show pop-box-show--top";$(PF.obj.modal.selectors.root).exists()||(t+=" overflow-hidden"),$("body").removeClass(t)}n.find(".pop-box-inner").css("height","")},PF.obj.config.animation.normal)):($("#pop-box-mask").remove(),n.parent().prepend($("<div/>",{id:"pop-box-mask",class:"fullscreen black"}).css({zIndex:400,display:"block"})),PF.fn.topMenu.vars.scrollTop=$(PF.fn.topMenu.vars.menu).scrollTop(),setTimeout(function(){$("#pop-box-mask").css({opacity:1}),setTimeout(function(){n.show().css({bottom:"-"+c,maxHeight:"100%",zIndex:1e3,transform:"translate(0,0)"}),setTimeout(function(){n.find(".pop-box-inner").scrollTop(0)},1),setTimeout(function(){n.css({transform:"translate(0,-"+c+")"})},1),setTimeout(function(){l(n)},PF.obj.config.animation.normal),$("body").hasClass("overflow-hidden")?$("body").data("hasOverflowHidden",1):$("body").addClass("overflow-hidden "+(r.closest(".top-bar").exists()?"pop-box-show--top":"pop-box-show")),$(".pop-box-inner",n).css("height",n.height()-$(".pop-box-header",n).outerHeight(!0))},1)},1))}else n[n.is(":visible")?"hide":"show"](0,function(){l(n)})}}}}}).on("mouseleave",".pop-btn",function(){if(PF.fn.isDevice(["laptop","desktop"])){var t=$(this),e=$(".pop-box",t);!t.hasClass("pop-btn-auto")||PF.fn.isDevice(["phone","phablet"])&&t.hasClass("pop-btn-auto")||e.hide().closest(".pop-btn").removeClass("opened")}}),window.location.hash,$(".content-tabs").exists()){var c=$("a",".content-tabs .current");History.replaceState({href:c.attr("href"),"data-tab":c.data("tab"),pushed:"tabs",statenum:0},null,null)}var u=History.getState();void 0===u.data&&History.replaceState({scrollTop:0},document.title,window.location.href),History.Adapter.bind(window,"popstate",function(){var t=History.getState();t.data&&void 0!==t.data.scrollTop&&$(window).scrollTop()!==t.data.scrollTop&&$(window).scrollTop(t.data.scrollTop)}),$("a",".content-tabs").on("click",function(t){if(1==$(this).data("link")&&$(this).data("tab",!1),$(this).closest(".current,.disabled").exists())t.preventDefault();else if(void 0!==$(this).data("tab")){var e={};if($.each(this.attributes,function(){e[this.name]=this.value}),e.pushed="tabs","classic"!=$("#"+e["data-tab"]).data("load")){if(window.location.hash){var n=window.location.href;n=n.replace(window.location.hash,"")}History.pushState(e,document.title,void 0!==n?n:$(this).attr("href")),t.preventDefault()}var i=$("[data-action=tab-menu]",$(this).closest(".header"));i.find("[data-content=current-tab-label]").text($(this).text()),i.find('[data-content="tab-icon"]').attr("class","").addClass($(this).find(".btn-icon").attr("class")),i.is(":visible")&&i.click()}}),$(document).on("click","[data-action=tab-menu]",function(){var t=$(this).closest(".header").find(".content-tabs"),e=t.is(":visible"),n=t.closest(".content-tabs-wrap");$this=$(this),n.css("display",e?"":"block"),$this.toggleClass("--hide",e),e||(t.data("classes",t.attr("class")),t.removeClass(function(t,e){return(e.match(/\b\w+-hide/g)||[]).join(" ")})),e||$this.removeClass("current"),e&&(t.css("display","").addClass(t.data("classes")),$this.addClass("current"))}),$(window).bind("statechange",function(t){var e;PF.fn.growl.close(),e=History.getState().data,e&&"tabs"==e.pushed&&PF.fn.show_tab(e["data-tab"])}),$(document).on("click",PF.obj.listing.selectors.list_item+" a",function(t){""!=$(this).attr("src")&&History.replaceState({scrollTop:$(window).scrollTop()},document.title,window.location.href)}),$(document).on("click","[data-action=load-more]",function(t){PF.obj.listing.lockClickMore||(PF.obj.listing.lockClickMore=!0,$(this).closest(".content-listing-more").hide(),!PF.fn.is_listing()||$(this).closest(PF.obj.listing.selectors.content_listing).is(":hidden")||$(this).closest("#content-listing-template").exists()||PF.obj.listing.calling||(PF.fn.listing.queryString.stock_new(),PF.obj.listing.query_string.seek=$(this).attr("data-seek"),PF.obj.listing.query_string.page=$(PF.obj.listing.selectors.content_listing_visible).data("page"),PF.obj.listing.query_string.page++,PF.fn.listing.ajax(),t.preventDefault()))}),$(PF.obj.listing.selectors.list_item).length>0?(PF.fn.listing.show(),$(window).scroll(function(){var t=$(PF.obj.listing.selectors.content_listing_load_more,PF.obj.listing.selectors.content_listing_visible).find("button[data-action=load-more]"),e=$(document).height()-$(window).height()-1.5*document.documentElement.clientHeight;t.length>0&&$(window).scrollTop()>e&&0==PF.obj.listing.calling&&t.click()})):$(PF.obj.listing.selectors.content_listing+".visible").addClass("jsly"),$(document).on("click",PF.obj.modal.selectors.root+" [data-switch]",function(){var t=$(this).closest(PF.obj.modal.selectors.root);$("[data-view=switchable]",t).hide(),$("#"+$(this).attr("data-switch"),t).show()}),$(document).on("click","[data-toggle]",function(){var t=$("[data-content="+$(this).data("toggle")+"]"),e=!t.is(":visible");$(this).html($(this).data("html-"+(e?"on":"off"))),t.toggle()}),$(document).on("click","[data-action=cookie-law-close]",function(){var t=$(this).closest("#cookie-law-banner"),e=void 0!==t.data("cookie")?t.data("cookie"):"PF_COOKIE_LAW_DISPLAY";Cookies.set(e,0,{expires:365}),t.remove()}),Clipboard=new Clipboard("[data-action=copy]",{text:function(t){var e=$(t.getAttribute("data-action-target")),n=e.is(":input")?e.val():e.text();return n.trim()}}),Clipboard.on("success",function(t){var e=$(t.trigger.getAttribute("data-action-target"));e.highlight(),t.clearSelection()})});var PF={fn:{},str:{},obj:{}};PF.obj.config={base_url:"",json_api:"/json/",listing:{items_per_page:24},animation:{easingFn:"ease",normal:400,fast:250}},PF.obj.l10n={},PF.fn._s=function(t,e){return void 0===t?t:(void 0!==PF.obj.l10n&&void 0!==PF.obj.l10n[t]?(t=PF.obj.l10n[t][0],void 0===t&&(t=t)):t=t,t=t.toString(),void 0!==e&&(t=sprintf(t,e)),t)},PF.fn._n=function(t,e,n){var i;return i=void 0!==PF.obj.l10n&&void 0!==PF.obj.l10n[t]?PF.obj.l10n[t][1==n?0:1]:1==n?t:e,i=void 0===i?t:i.toString(),void 0!==n&&(i=sprintf(i,n)),i},PF.fn.extend_lang=function(t){$.each(PF.obj.lang_strings,function(e,n){void 0!==t[e]&&$.extend(PF.obj.lang_strings[e],t[e])})},PF.fn.get_url_vars=function(){for(var t,e=/\+/g,n=/([^&=]+)=?([^&]*)/g,i=function(t){return decodeURIComponent(escape(t.replace(e," ")))},o=window.location.search.substring(1),r={};t=n.exec(o);)r[i(t[1])]=i(t[2]);return r},PF.fn.get_url_var=function(t){return PF.fn.get_url_vars()[t]},PF.fn.is_user_logged=function(){return $("#top-bar-user").exists()},PF.fn.generate_random_string=function(t){void 0===t&&(t=5);for(var e="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i<t;i++)e+=n.charAt(Math.floor(Math.random()*n.length));return e},PF.fn.getDateTime=function(){var t=new Date,e=t.getFullYear(),n=t.getMonth()+1,i=t.getDate(),o=t.getHours(),r=t.getMinutes(),a=t.getSeconds();if(1==n.toString().length)n="0"+n;if(1==i.toString().length)i="0"+i;if(1==o.toString().length)o="0"+o;if(1==r.toString().length)r="0"+r;if(1==a.toString().length)a="0"+a;var s=e+"-"+n+"-"+i+" "+o+":"+r+":"+a;return s},PF.fn.htmlEncode=function(t){return $("<div/>").text($.trim(t)).html()},PF.fn.htmlDecode=function(t){return $("<div/>").html($.trim(t)).text()},PF.fn.nl2br=function(t){var e="<br>";return(t+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+e+"$2")},PF.fn.versionCompare=function(t,e,n){this.php_js=this.php_js||{},this.php_js.ENV=this.php_js.ENV||{};var i=0,o=0,r=0,a={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1},s=function(t){return t=(""+t).replace(/[_\-+]/g,"."),t=t.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,"."),t.length?t.split("."):[-8]};for(numVersion=function(t){return t?isNaN(t)?a[t]||-7:parseInt(t,10):0},t=s(t),e=s(e),o=Math.max(t.length,e.length),i=0;i<o;i++)if(t[i]!=e[i]){if(t[i]=numVersion(t[i]),e[i]=numVersion(e[i]),t[i]<e[i]){r=-1;break}if(t[i]>e[i]){r=1;break}}if(!n)return r;switch(n){case">":case"gt":return r>0;case">=":case"ge":return r>=0;case"<=":case"le":return r<=0;case"==":case"=":case"eq":return 0===r;case"<>":case"!=":case"ne":return 0!==r;case"":case"<":case"lt":return r<0;default:return null}},PF.fn.baseName=function(t){var e=new String(t).substring(t.lastIndexOf("/")+1);return-1!=e.lastIndexOf(".")&&(e=e.substring(0,e.lastIndexOf("."))),e},PF.fn.guid=function(){var t=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(t+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?n:3&n|8).toString(16)})},PF.fn.md5=function(t){return SparkMD5.hash(t)},PF.fn.dataURItoBlob=function(t){var e;e=t.split(",")[0].indexOf("base64")>=0?atob(t.split(",")[1]):unescape(t.split(",")[1]);for(var n=t.split(",")[0].split(":")[1].split(";")[0],i=new Uint8Array(e.length),o=0;o<e.length;o++)i[o]=e.charCodeAt(o);return new Blob([i],{type:n})},PF.fn.clean_facebook_hash=function(){"#_=_"==window.location.hash&&(window.location.hash="")},PF.fn.clean_facebook_hash(),Array.min=function(t){return Math.min.apply(Math,t)},Array.max=function(t){return Math.max.apply(Math,t)},Array.sum=function(t){return t.reduce(function(t,e){return e+t})},Object.size=function(t){var e,n=0;for(e in t)t.hasOwnProperty(e)&&n++;return n},Object.flatten=function(t,e){if(void 0===e)e="";var n={};return $.each(t,function(t,i){i&&("object"==typeof i?n=$.extend({},n,Object.flatten(i,e+t+"_")):n[e+t]=i)}),n},String.prototype.isNumeric=function(){return!isNaN(parseFloat(this))&&isFinite(this)},String.prototype.repeat=function(t){return new Array(t+1).join(this)},String.prototype.capitalizeFirstLetter=function(){return this.charAt(0).toUpperCase()+this.slice(1)},String.prototype.replaceAll=function(t,e){var n=this;return n.replace(new RegExp(t,"g"),e)},String.prototype.isEmail=function(){var t=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;return t.test(this)},String.prototype.getRounded=function(t,e){var n,i,o,r;if(t|=0,n=Math.pow(10,t),value=this,value*=n,r=value>0|-(value<0),o=value%1==.5*r,i=Math.floor(value),o)switch(e){case"PHP_ROUND_HALF_DOWN":value=i+(r<0);break;case"PHP_ROUND_HALF_EVEN":value=i+i%2*r;break;case"PHP_ROUND_HALF_ODD":value=i+!(i%2);break;default:value=i+(r>0)}return(o?value:Math.round(value))/n},String.prototype.getBytes=function(){var t=["KB","MB","GB","TB","PB","EB","ZB","YB"],e=this.toUpperCase().substr(-2);if(-1==t.indexOf(e))return this;var n=t.indexOf(e)+1;return parseFloat(this)*Math.pow(1e3,n)},String.prototype.formatBytes=function(t){var e=parseInt(this),n=["KB","MB","GB","TB","PB","EB","ZB","YB"];if(!$.isNumeric(this))return!1;if(e<1e3)return e+" B";if(void 0===t)t=2;for(var i=0;i<n.length;i++){var o=Math.pow(1e3,i+1),r=1e3*o;if(e<r){var a=e/o;return this.getRounded.call(a,t)+" "+n[i]}}},String.prototype.match_image_urls=function(){return this.match(/\b(?:(http[s]?|ftp[s]):\/\/)?([^:\/\s]+)(:[0-9]+)?((?:\/\w+)*\/)([\w\-\.]+[^#?\s]+)([^#\s]*)?(#[\w\-]+)?\.(?:jpe?g|gif|png|bmp|webp)\b/gim)},String.prototype.match_urls=function(){return this.match(/\b(?:(http[s]?|ftp[s]):\/\/)?([^:\/\s]+)(:[0-9]+)?((?:\/\w+)*\/)([\w\-\.]+[^#?\s]+)([^#\s]*)?(#[\w\-]+)?\b/gim)},"indexOf"in Array.prototype||(Array.prototype.indexOf=function(t,e){void 0===e&&(e=0),e<0&&(e+=this.length),e<0&&(e=0);for(var n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1}),Array.prototype.array_unique=function(){var t=[];return $.each(this,function(e,n){-1==$.inArray(n,t)&&t.push(n)}),t},PF.fn.deparam=function(t){if(void 0!==t&&t){t=t.substring(t.indexOf("?")+1);for(var e={},n=t.replace(/^[\?|&]*/,"").replace(/[&|\?]*$/,"").split("&"),i=0;i<n.length;i++){var o=n[i].split("="),r=decodeURIComponent(o[0]),a=o[1]?decodeURIComponent(o[1]):null;e.hasOwnProperty(r)&&!a||(e[r]=a)}return e}},String.prototype.removeURLParameter=function(t){var e=PF.fn.deparam(this);return void 0!==e[t]&&delete e[t],decodeURIComponent($.param(e))},String.prototype.changeURLParameterValue=function(t,e){var n=this.substring(0,this.indexOf("?")),i=PF.fn.deparam(this);return void 0!==i[t]&&(i[t]=e),n+"?"+decodeURIComponent($.param(i))},String.prototype.truncate_middle=function(t){function e(t,e,n){for(var i=[" ","/","&"],o=.8*e,r=(n=void 0!==n&&n,t=n?t.split("").reverse().join(""):t,""),a=0;a<e-1&&(r+=t[a], +!(a>=o&&i.indexOf(t[a])>=0));a++);return n?r.split("").reverse().join(""):r}t=void 0!==t?t:40;var n=t/2,i=this.replace(/https?:\/\//g,"");return i.length<=t?i:e(i,n,!1)+"..."+e(i,n,!0)},jQuery.extend({compare:function(t,e){var n="[object Object]",i="[object Array]",o=Object.prototype.toString.apply(t),r=Object.prototype.toString.apply(e);return o===r&&(o===n?$.compareObject(t,e):o===i?$.compareArray(t,e):t===e)},compareArray:function(t,e){var n,i,o,r,a;if(t===e)return!0;if(t.length!=e.length)return!1;for(n=jQuery.extend(!0,[],t),i=jQuery.extend(!0,[],e),n.sort(),i.sort(),o=0,l=n.length;o<l;o+=1){if(r=Object.prototype.toString.apply(n[o]),a=Object.prototype.toString.apply(i[o]),r!==a)return!1;if(!1===$.compare(n[o],i[o]))return!1}return!0},compareObject:function(t,e){var n,i,o;if(t===e)return!0;if(Object.keys(t).length!==Object.keys(e).length)return!1;for(n in t){if(t.hasOwnProperty(n)){if(void 0===e[n])return!1;if(i=Object.prototype.toString.apply(t[n]),o=Object.prototype.toString.apply(e[n]),i!==o)return!1}if(!1===$.compare(t[n],e[n]))return!1}return!0}}),jQuery.fn.exists=function(){return this.length>0},jQuery.fn.replace_svg=function(){this.attr("src")&&$(this).each(function(){$(this).attr("src",$(this).attr("src").replace(".svg",".png"))})},jQuery.fn.is_fluid=function(){return!0},jQuery.fn.bindFormData=function(){return $(":input",this).each(function(){var t=PF.fn.htmlEncode($(this).val());if($(this).is("input")&&(this.setAttribute("value",this.value),this.checked?this.setAttribute("checked","checked"):this.removeAttribute("checked")),$(this).is("textarea")&&$(this).html(t),$(this).is("select")){var e=this.selectedIndex,n=0;$(this).children("option").each(function(){n++!=e?this.removeAttribute("selected"):this.setAttribute("selected","selected")})}}),this},jQuery.fn.formValues=function(t){var e=$(":input",this);return"object"!=typeof t?(t={},$.each(e,function(){this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/color|date|datetime|datetime-local|email|month|range|search|tel|time|url|week|text|number|hidden|password/i.test(this.type))&&(this.name.match(/^.*\[\]$/)&&this.checked?(void 0===t[this.name]&&(t[this.name]=[]),t[this.name].push($(this).val())):t[this.name]=$(this).val())}),t):($.each(e,function(){this.name.match(/^.*\[\]$/)&&"object"==typeof t[this.name]?$(this).prop("checked",-1!==t[this.name].indexOf($(this).val())):this.name&&t[this.name]?/checkbox|radio/i.test(this.type)?$(this).prop("checked",t[this.name]==$(this).val()):$(this).val(t[this.name]):/checkbox|radio/i.test(this.type)&&$(this).removeProp("checked")}),$(this))},jQuery.fn.storeformData=function(t){return void 0===t&&void 0!==$(this).attr("id")&&(t=$(this).attr("id")),void 0!==t&&$(this).data(t,$(this).formValues()),this},jQuery.fn.is_sameformData=function(t){var e=$(this);return void 0===t&&(t=e.attr("id")),jQuery.compare(e.formValues(),e.data(t))},jQuery.Event.prototype.keydown_numeric=function(){var t=this;if(t.shiftKey)return t.preventDefault(),!1;var e=t.charCode||t.keyCode,n=t.target;""==$(n).val()||parseInt($(n).val());return 13==e||(46==e||8==e||9==e||27==e||65==e&&!0===t.ctrlKey||e>=35&&e<=40||void((e<48||e>57)&&(e<96||e>105)&&t.preventDefault()))},PF.fn.is_canvas_supported=function(){var t=document.createElement("canvas");return!(!t.getContext||!t.getContext("2d"))},PF.fn.is_validity_supported=function(){var t=document.createElement("input");return"object"==typeof t.validity},PF.fn.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},PF.str.ScrollBarWidth=PF.fn.getScrollBarWidth(),PF.fn.top_notifications_viewed=function(){var t=$("[data-action=top-bar-notifications]"),e=($(".top-bar-notifications-list",t),$(".top-btn-number",t));$(".persistent",t).exists()?e.text($(".persistent",t).length).addClass("on"):e.removeClass("on")},PF.fn.bindtipTip=function(t,e){void 0===t&&(t=$("body")),t instanceof jQuery==0&&(t=$(t));var n={delay:0,content:!1,fadeIn:0};void 0!==e&&(void 0!==e.delay&&(n.delay=e.delay),void 0!==e.content&&(n.content=e.content),void 0!==e.content&&(n.fadeIn=e.fadeIn)),"tooltip"!==t.attr("rel")&&(t=$("[rel=tooltip]",t)),t.each(function(){if((void 0!==$(this).attr("href")||void 0!==$(this).data("href"))&&PF.fn.isDevice(["phone","phablet","tablet"]))return!0;var t=void 0===$(this).data("tiptip")?"bottom":$(this).data("tiptip");PF.fn.isDevice(["phone","phablet"])&&(t="top"),$(this).tipTip({delay:n.delay,defaultPosition:t,content:n.content,fadeIn:n.fadeIn,fadeOut:0})})},PF.fn.form_modal_has_changed=function(){if(!$(PF.obj.modal.selectors.root).is(":hidden")&&void 0!==$("html").data("modal-form-values")){var t=$("html").data("modal-form-values"),e=PF.fn.deparam($(":input:visible",PF.obj.modal.selectors.root).serialize()),n=!1,i=$.extend({},t,e);for(var o in i)if(t[o]!==e[o]){n=!0;break}return n}},PF.fn.is_listing=function(){return $(PF.obj.listing.selectors.content_listing).exists()},PF.fn.is_tabs=function(){return $(".content-tabs").exists()},jQuery.fn.shake=function(t){return this.each(function(t){var e=$(this);e.addClass("animate shake").promise().done(function(){setTimeout(function(){e.removeClass("shake")},820)})}),"function"==typeof t&&t(),this},jQuery.fn.highlight=function(t){if(this.is(":animated")||!this.exists())return this;void 0===t&&(t="yellow");var e=t;switch(t){case"yellow":e="#FFFBA2";break;case"red":e="#FF7F7F";break;default:e=t}var n=$(this).css("background-color");$(this).css("background");return $(this).css({background:"",backgroundColor:e,borderColor:window.getComputedStyle(document.body).getPropertyValue("--colorAccent")}).animate({backgroundColor:n,borderColor:""},1e3,function(){$(this).css("background","")}),this},jQuery.fn.pf_slideDown=function(t,e){var n,i,o,r="normal",a=$(this).length;return"function"==typeof t&&(e=t,t=r),void 0===t&&(t=r),$(this).each(function(r){var s=parseInt($(this).css("top")),l=s>0?s:0;0==t?(n={display:"block",opacity:0},i={opacity:1},o=jQuery.speed("fast").duration):(n={top:-$(this).outerHeight(!0),opacity:1,display:"block"},i={top:l},o=jQuery.speed(t).duration),$(this).data("originalTop",$(this).css("top")),$(this).css(n).animate(i,o,function(){r==a-1&&"function"==typeof e&&e()})}),this},jQuery.fn.pf_slideUp=function(t,e){var n="normal",i=$(this).length;return"function"==typeof t&&(e=t,t=n),void 0===t&&(t=n),$(this).each(function(n){$(this).animate({top:-$(this).outerHeight(!0)},jQuery.speed(t).duration,function(){$(this).css({display:"none",top:$(this).data("originalTop")}),n==i-1&&"function"==typeof e&&e()})}),this},jQuery.fn.is_in_viewport=function(){var t=$(this)[0].getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)},jQuery.fn.is_within_viewport=function(t){var e=$(this)[0].getBoundingClientRect();return void 0===t&&(t=0),e.top>=0&&e.left>=0&&e.top+t<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},jQuery.fn.getWindowCutoff=function(){var t={top:$(this).offset().top,left:$(this).offset().left,width:$(this).outerWidth(),height:$(this).outerHeight()};t.right=t.left+t.width,t.bottom=t.top+t.height;var e=!1,n={top:t.top>0?0:t.top,right:document.body.clientWidth-t.right,bottom:document.body.clientHeight-t.bottom,left:t.left>0?0:t.left};for(var i in n)n[i]<0?e=!0:n[i]=0;return e?n:null},PF.fn.scroll=function(t,e){if("function"==typeof t)e=t,t="";var n=parseInt($("body").css("margin-top"));0==n&&$(".top-bar-placeholder").exists()&&(n=$(".top-bar-placeholder").height()),$(t).exists()||(t="html"),$("body,html").animate({scrollTop:$(t).offset().top-n},"normal",function(){"function"==typeof e&&e()})},PF.fn.close_pops=function(t){$(".pop-box:visible").each(function(){$(this).closest(".pop-btn").trigger("click")})},PF.fn.growl={selectors:{root:"#growl"},str:{timeout:null,timeoutcall:!1},call:function(t){if(void 0!==t&&("string"==typeof t&&(t={message:t}),void 0!==t.message)){var e,n,i,o;for(key in e={message:t.message,insertTo:"body",where:"before",color:"default",css:{},classes:"",expires:0,callback:function(){}},e)void 0!==t[key]&&(key.match("/^(callback)$/")?"function"==typeof t[key]&&(e[key]=t[key]):e[key]=t[key]);if($(e.insertTo).exists()||(e.insertTo="body"),$(PF.fn.growl.selectors.root).exists()){if($(PF.fn.growl.selectors.root).text()==e.message)return void $(PF.fn.growl.selectors.root).shake();$(PF.fn.growl.selectors.root).remove()}switch(n=$('<div id="'+PF.fn.growl.selectors.root.replace("#","")+'" class="growl animated">'+e.message+'<span class="icon fas fa-times" data-action="close"></span></div>').css(e.css).addClass(e.classes),i="body"!==e.insertTo?"static":"",e.color){case"dark":o="dark";break;default:o=""}n.addClass(i+" "+o),"before"==e.where?$(e.insertTo).prepend(n.hide()):$(e.insertTo).append(n.hide()),n.pf_slideDown("static"==i?0:200,function(){"function"==typeof e.callback&&e.callback()}),$(document).on("click",".growl",function(t){(PF.fn.isDevice(["phone","phablet"])||$(t.target).is("[data-action=close]"))&&PF.fn.growl.close(!0)}),e.expires>0&&("number"==typeof this.str.timeout&&clearTimeout(this.str.timeout),this.str.timeout=setTimeout(function(){PF.fn.growl.str.timeoutcall=!0,PF.fn.growl.close()},e.expires))}},expirable:function(t,e){void 0!==t&&(void 0===e&&(e=5e3),PF.fn.growl.call({message:t,expires:e}))},close:function(t,e){var n=$(PF.fn.growl.selectors.root);t&&(this.str.timeout=null,this.str.timeoutcall=!1,clearTimeout(this.str.timeout)),n.exists()&&("number"!=typeof this.str.timeout||this.str.timeoutcall)&&n.fadeOut("fast",function(){$(this).remove(),"function"==typeof e&&e()})}},PF.obj.modal={type:"",selectors:{root:"#fullscreen-modal",box:"#fullscreen-modal-box",body:"#fullscreen-modal-body",login:"[data-modal=login]",changes_confirm:"#fullscreen-changes-confirm",btn_container:".btn-container",close_buttons:".close-modal,.cancel-modal,[data-action=cancel],[data-action-close]",submit_button:"[data-action=submit]",growl_placeholder:"#fullscreen-growl-placeholder"},ajax:{url:"",deferred:{}},locked:!1,form_data:{},XHR:{},prevented:!1},PF.obj.modal.$close_buttons=$(PF.obj.modal.selectors.close_buttons,PF.obj.modal.selectors.root),PF.fn.modal={str:{transition:"all "+PF.obj.config.animation.fast+"ms "+PF.obj.config.animation.easingFn},call:function(t){var e,n;if(void 0!==t&&(void 0!==t.template&&void 0===t.type&&(t.type="html"),void 0!==t.title&&void 0!==t.message||"login"===t.type||"html"===t.type)){for(key in PF.fn.growl.close(),e={forced:!1,type:"confirm",title:t.title,message:t.message,html:!1,template:t.template,buttons:!0,button_submit:PF.fn._s("Submit"),txt_or:PF.fn._s("or"),button_cancel:PF.fn._s("cancel"),ajax:{url:null,data:null,deferred:{}},confirm:function(){},cancel:function(){PF.fn.modal.close()},load:function(){},callback:function(){}},e)void 0!==t[key]&&(/^cancel|confirm|callback$/.test(key)?"function"==typeof t[key]&&(e[key]=t[key]):e[key]=t[key]);void 0!==t.ajax&&!t.ajax.url&&t.ajax.deferred&&(e.ajax.url=PF.obj.config.json_api),"login"==e.type&&(e.buttons=!1),"confirm"==e.type&&(e.button_submit=PF.fn._s("Confirm"));var i,o="black",r=['<div id="',PF.obj.modal.selectors.root.replace("#",""),'"class="fullscreen '+o+'"><div id="',PF.obj.modal.selectors.box.replace("#",""),'"class="clickable"><div id="',PF.obj.modal.selectors.body.replace("#",""),'">%MODAL_BODY%</div>%MODAL_BUTTONS%<span class="close-modal icon--close fas fa-times" data-action="close-modal" title="Esc"></span></div></div>'].join(""),a=e.buttons?['<div class="',PF.obj.modal.selectors.btn_container.replace(".",""),'"><button class="btn btn-input accent" data-action="submit" type="submit" title="Ctrl/Cmd + Enter">','<span class="btn-icon fas fa-check-circle user-select-none"></span>','<span class="btn-text user-select-none">',e.button_submit,"</span>","</button></div>"].join(""):"";switch("login"==e.type&&(e.template=void 0===e.template?$(PF.obj.modal.selectors.login).html():e.template),e.type){case"html":case"login":i=e.template;break;case"confirm":default:n=e.message,e.html||(n="<p>"+n+"</p>"),i="<h1>"+e.title+"</h1>"+n}if(void 0!==i){if(r=r.replace("%MODAL_BODY%",i).replace("%MODAL_BUTTONS%",a).replace(/template-tooltip/g,"tooltip"),$(PF.obj.modal.selectors.root).remove(),$("body").data("hasOverflowHidden",$("body").hasClass("overflow-hidden")&&!$("body").hasClass("pop-box-show")),$("body").prepend(r).addClass("overflow-hidden"),this.fixScrollbars(),$("[rel=tooltip]",PF.obj.modal.selectors.root).each(function(){PF.fn.bindtipTip(this,{content:$(this).data("title")})}),$(":button, input[type=submit], input[type=reset]",PF.obj.modal.selectors.root).length>0){var s=$("form",PF.obj.modal.selectors.root);s.exists()?(s.append($($(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root).html()).wrapInner(PF.obj.modal.selectors.btn_container.replace(".",""))),$(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root).each(function(){$(this).closest("form").exists()||$(this).remove()})):$(PF.obj.modal.selectors.box,PF.obj.modal.selectors.root).wrapInner("<form />")}e.callback(),$(PF.obj.modal.selectors.box).css({transform:"scale(0.7)",opacity:0,transition:PF.fn.modal.str.transition}),$(PF.obj.modal.selectors.root).addClass("--show"),setTimeout(function(){$(PF.obj.modal.selectors.root).css({opacity:1}),$(PF.obj.modal.selectors.box).css({transform:"scale(1)",opacity:1}),"undefined"!=typeof PFrecaptchaCallback&&PFrecaptchaCallback(),setTimeout(function(){$("html").data("modal-form-values",PF.fn.deparam($(":input:visible",PF.obj.modal.selectors.root).serialize())),"function"==typeof e.load&&e.load()},PF.obj.config.animation.fast),PF.fn.modal.styleAware()},10),$(PF.obj.modal.selectors.root).on("click",function(n){var i=$(n.target),o=this;if(!PF.obj.modal.locked&&!i.is(PF.obj.modal.selectors.root)){var r=i.is(PF.obj.modal.selectors.close_buttons)||i.closest(PF.obj.modal.selectors.close_buttons).exists(),a=i.is(PF.obj.modal.selectors.submit_button)||i.closest(PF.obj.modal.selectors.submit_button).exists(),s=r||a;if(i.closest(PF.obj.modal.selectors.changes_confirm).exists()&&s)$(PF.obj.modal.selectors.changes_confirm).remove(),r?$(PF.obj.modal.selectors.box,o).fadeIn("fast",function(){$(this).css("transition",PF.fn.modal.str.transition)}):PF.fn.modal.close();else if(i.closest(".clickable").exists()&&!r||(PF.fn.growl.close(),e.cancel()),a){if(!1===e.confirm())return;var l=!0;if($("input, textarea, select",PF.obj.modal.selectors.root).not(":input[type=button], :input[type=submit], :input[type=reset]").length>0&&!PF.fn.form_modal_has_changed()&&!e.forced&&(l=!1),l)if(e.ajax.url){var c,u=$(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root);switch(PF.obj.modal.locked=!0,u.first().clone().height(u.height()).html("").addClass("loading").appendTo(PF.obj.modal.selectors.root+" form"),u.hide(),PF.obj.modal.$close_buttons.hide(),PF.obj.modal.type){case"edit":c=PF.fn._s("Saving");break;case"confirm":case"form":default:c=PF.fn._s("Sending")}PF.fn.loading.inline($(PF.obj.modal.selectors.btn_container+".loading",PF.obj.modal.selectors.root),{size:"small",message:c,valign:"center"}),$(PF.obj.modal.selectors.root).disableForm(),(!$.isEmptyObject(PF.obj.modal.form_data)||void 0!==t.ajax&&void 0===t.ajax.data)&&(e.ajax.data=PF.obj.modal.form_data),PF.obj.modal.XHR=$.ajax({url:e.ajax.url,type:"POST",data:e.ajax.data}).complete(function(t){if(PF.obj.modal.locked=!1,200==t.status){var n=void 0!==e.ajax.deferred&&void 0!==e.ajax.deferred.success?e.ajax.deferred.success:null;"function"==typeof n?PF.fn.modal.close(function(){"function"==typeof n&&n(t)}):"object"==typeof n&&("function"==typeof n.before&&n.before(t),"function"==typeof n.done&&n.done(t))}else if($(PF.obj.modal.selectors.root).enableForm(),$(PF.obj.modal.selectors.btn_container+".loading",PF.obj.modal.selectors.root).remove(),u.css("display",""),void 0!==e.ajax.deferred&&"function"==typeof e.ajax.deferred.error)e.ajax.deferred.error(t);else{var i=PF.fn._s("An error occurred. Please try again later.");t.responseJSON.error.message&&(i=t.responseJSON.error.message),PF.fn.growl.call(i)}})}else PF.fn.modal.close(e.callback())}}})}else console.log("PF Error: Modal content is empty")}},styleAware:function(){$(PF.obj.modal.selectors.root).exists()&&$(PF.obj.modal.selectors.root).toggleClass("--has-scrollbar",$(PF.obj.modal.selectors.root).hasScrollbar().vertical)},confirm:function(t){t.type="confirm",void 0===t.title&&(t.title=PF.fn._s("Confirm action")),PF.fn.modal.call(t)},simple:function(t){"string"==typeof t&&(t={message:t}),void 0===t.buttons&&(t.buttons=!1),void 0===t.title&&(t.title=PF.fn._s("information")),PF.fn.modal.call(t)},fixScrollbars:function(){if($(PF.obj.modal.selectors.root).exists()){var t={padding:$(".fixed, .position-fixed"),margin:$("html")},e={};PF.str.ScrollBarWidth>0&&$("html").hasScrollbar().vertical&&!$("body").data("hasOverflowHidden")?(e.padding=PF.str.ScrollBarWidth+"px",e.margin=PF.str.ScrollBarWidth+"px"):(e.padding="",e.margin=""),t.padding.css({paddingRight:e.padding}),t.margin.css({marginRight:e.margin})}},close:function(t){$(PF.obj.modal.selectors.root).exists()&&(PF.fn.growl.close(!0),$("[rel=tooltip]",PF.obj.modal.selectors.root).tipTip("hide"),$(PF.obj.modal.selectors.box).css({transform:"scale(0.5)",opacity:0}),$(PF.obj.modal.selectors.root).css({opacity:0}),setTimeout(function(){PF.str.ScrollBarWidth>0&&$("html").hasScrollbar().vertical&&$(".fixed, .position-fixed").css({paddingRight:""}),$("html").css({marginRight:""}),$("body").data("hasOverflowHidden")||$("body").removeClass("overflow-hidden"),$("body").removeData("hasOverflowHidden"),$(PF.obj.modal.selectors.root).remove(),"function"==typeof t&&t()},PF.obj.config.animation.normal))}},PF.fn.keyFeedback={enabled:!0,timeout:{spawn:null,remove:null},selectors:{root:"#key-feedback"},translate:{ArrowLeft:"◄",ArrowRight:"►",Delete:"Del",Escape:"Esc"},spawn:function(t){if(0!=this.enabled&&!PF.fn.isDevice(["phone","phablet"])){var e=$(PF.fn.keyFeedback.selectors.root);e.exists()||($("body").append($("<div></div>").attr({id:"key-feedback",class:"key-feedback"})),e=$(PF.fn.keyFeedback.selectors.root));var n=[];if((t.ctrlKey||t.metaKey)&&"KeyV"===t.originalEvent.code&&(t={type:"keydown",key:PF.fn._s("Paste")}),"contextmenu"===t.type&&t.ctrlKey&&(t.type="click"),"contextmenu"===t.type)n.push(PF.fn._s("Right click"));else if(t.ctrlKey&&n.push("Ctrl"),t.metaKey&&n.push("⌘"),t.hasOwnProperty("key")){var i=1===t.key.length?t.key.toUpperCase():t.key;i in this.translate&&(i=this.translate[i]),n.push(i)}"click"===t.type&&n.push("click"),e.html(n.join(" + ",n)).css("opacity",1),clearTimeout(PF.fn.keyFeedback.timeout.spawn),clearTimeout(PF.fn.keyFeedback.timeout.remove),PF.fn.keyFeedback.timeout.spawn=setTimeout(function(){e.css("opacity",0),PF.fn.keyFeedback.timeout.remove=setTimeout(function(){e.remove()},500)},1500)}}},PF.fn.popup=function(t){var e={height:t.height||500,width:t.width||650,scrollTo:0,resizable:0,scrollbars:0,location:0};e.top=screen.height/2-e.height/2,e.left=screen.width/2-e.width/2;var n="";for(var i in e)n+=i+"="+e[i]+",";n=n.slice(0,-1),window.open(t.href,"Popup",n)},PF.fn.list_fluid_width=function(){if($("body").is_fluid()){var t=$(PF.obj.listing.selectors.content_listing_visible),e=$(PF.obj.listing.selectors.pad_content,t),n=$(PF.obj.listing.selectors.list_item,t),i=n.outerWidth(!0),o=n.outerWidth(!0)-n.width();PF.obj.listing.content_listing_ratio=parseInt((t.width()+o)/i),n.length<PF.obj.listing.content_listing_ratio&&e.css("width","100%")}},PF.obj.tabs={hashdata:{}},PF.fn.show_tab=function(t){if(void 0!==t){var e=$("a[data-tab="+t+"]",".content-tabs");$("li",e.closest("ul")).removeClass("current"),e.closest("li").addClass("current");var n=$("#tabbed-content-group");if($target=$("#"+e.data("tab")),$(".tabbed-content",n).removeClass("visible").addClass("hidden"),$($target,n).addClass("visible").removeClass("hidden"),$("[data-content=list-selection]").addClass("hidden"),$("[data-content=list-selection][data-tab="+e.data("tab")+"]").removeClass("hidden"),n.exists()){var i=$(PF.obj.listing.selectors.list_item+":not(.jsly)",$target);"ajax"!=$target.data("load")||"true"===$target.data("empty")||$(PF.obj.listing.selectors.list_item,$target).exists()?(PF.fn.listing.queryString.stock_current(),PF.fn.listing.columnizer(!1,0,!1),i.show()):(PF.fn.listing.queryString.stock_load(),$target.html(PF.obj.listing.template.fill),PF.fn.listing.queryString.stock_new(),PF.fn.listing.ajax(),$target.addClass("jsly"))}PF.fn.listing.columnizerQueue(),1==$(PF.obj.listing.selectors.content_listing_visible).data("queued")&&PF.fn.listing.columnizer(!0,0)}},PF.obj.listing={columns:"",columns_number:1,current_column:"",current_column:"",XHR:{},query_string:PF.fn.get_url_vars(),calling:!1,content_listing_ratio:1,selectors:{sort:".sort-listing .current [data-sort]",content_listing:".content-listing",content_listing_visible:".content-listing:visible",content_listing_loading:".content-listing-loading",content_listing_load_more:".content-listing-more",content_listing_pagination:".content-listing-pagination",empty_icon:".icon.fas.fa-inbox",pad_content:".pad-content-listing",list_item:".list-item"},template:{fill:$("[data-template=content-listing]").html(),empty:$("[data-template=content-listing-empty]").html(),loading:$("[data-template=content-listing-loading]").html()}},PF.fn.listing={},PF.fn.listing.show=function(t,e){$content_listing=$("#content-listing-tabs").exists()?$(PF.obj.listing.selectors.content_listing_visible,"#content-listing-tabs"):$(PF.obj.listing.selectors.content_listing),PF.fn.loading.inline(PF.obj.listing.selectors.content_listing_loading);var n=$(PF.obj.listing.selectors.list_item,$content_listing);(void 0!==t&&$(t.html).length<PF.obj.config.listing.items_per_page||$(PF.obj.listing.selectors.list_item,$content_listing).length<PF.obj.config.listing.items_per_page)&&PF.fn.listing.removeLoader($content_listing),!$(PF.obj.listing.selectors.content_listing_pagination,$content_listing).is("[data-type=classic]")&&$("[data-action=load-more]",$content_listing).exists()||$(PF.obj.listing.selectors.content_listing_loading,$content_listing).remove(),PF.fn.listing.columnizer(!1,0),n.show(),PF.fn.listing.columnizer(!0,0),n.addClass("--show"),PF.obj.listing.calling=!1;var i=$(PF.obj.listing.selectors.content_listing_loading,$content_listing).exists()&&$(PF.obj.listing.selectors.content_listing_loading,$content_listing).is_in_viewport();PF.obj.listing.show_load_more,PF.obj.listing.show_load_more=i,$(PF.obj.listing.selectors.content_listing_loading,$content_listing)[(i?"add":"remove")+"Class"]("hidden"),$(PF.obj.listing.selectors.content_listing_load_more,$content_listing)[PF.obj.listing.show_load_more?"show":"hide"](),PF.obj.listing.lockClickMore&&(PF.obj.listing.lockClickMore=!1),"function"==typeof e&&e()},PF.fn.listing.removeLoader=function(t){var e=[PF.obj.listing.selectors.content_listing_load_more,PF.obj.listing.selectors.content_listing_loading];$(PF.obj.listing.selectors.content_listing_pagination,$content_listing).is("[data-type=endless]")&&e.push(PF.obj.listing.selectors.content_listing_pagination),$.each(e,function(e,n){$(n,t).remove()})},PF.fn.listing.queryString={stock_load:function(){var t=$(PF.obj.listing.selectors.content_listing_visible),e=PF.fn.deparam(t.data("params"));for(var n in PF.obj.listing.params_hidden=void 0!==t.data("params-hidden")?PF.fn.deparam(t.data("params-hidden")):null,void 0===PF.obj.listing.query_string.action&&(PF.obj.listing.query_string.action=t.data("action")||"list"),void 0===PF.obj.listing.query_string.list&&(PF.obj.listing.query_string.list=t.data("list")),void 0===PF.obj.listing.query_string.sort&&(void 0!==e&&void 0!==e.sort?PF.obj.listing.query_string.sort=e.sort:PF.obj.listing.query_string.sort=$(":visible"+PF.obj.listing.selectors.sort).data("sort")),void 0===PF.obj.listing.query_string.page&&(PF.obj.listing.query_string.page=1),t.data("page",PF.obj.listing.query_string.page),$(PF.obj.listing.selectors.content_listing+"[data-load=ajax]").each(function(){var t=$("[data-tab="+$(this).attr("id")+"]"+PF.obj.listing.selectors.sort),e=PF.fn.deparam($(this).data("params")),n=PF.fn.deparam($(this).data("params-hidden")),i={q:e&&e.q?e.q:null,list:$(this).data("list"),sort:t.exists()?t.data("sort"):e&&e.sort?e.sort:null,page:e&&e.page?e.page:1};for(var o in n&&n.list&&delete i.list,i)i[o]||delete i[o]}),e)0==/action|list|sort|page/.test(n)&&(PF.obj.listing.query_string[n]=e[n]);if(void 0!==PF.obj.listing.params_hidden){for(var n in PF.obj.listing.params_hidden)0==/action|list|sort|page/.test(n)&&(PF.obj.listing.query_string[n]=PF.obj.listing.params_hidden[n]);PF.obj.listing.query_string.params_hidden=PF.obj.listing.params_hidden,PF.obj.listing.params_hidden.params_hidden=null}},stock_new:function(){var t=$(PF.obj.listing.selectors.content_listing_visible),e=PF.fn.deparam(t.data("params"));t.data("offset")?PF.obj.listing.query_string.offset=t.data("offset"):delete PF.obj.listing.query_string.offset,PF.obj.listing.query_string.seek="",PF.obj.listing.query_string.action=t.data("action")||"list",PF.obj.listing.query_string.list=t.data("list"),void 0!==e&&void 0!==e.sort?PF.obj.listing.query_string.sort=e.sort:PF.obj.listing.query_string.sort=$(":visible"+PF.obj.listing.selectors.sort).data("sort"),PF.obj.listing.query_string.page=1},stock_current:function(){this.stock_new(),PF.obj.listing.query_string.page=$(PF.obj.listing.selectors.content_listing_visible).data("page")}},PF.fn.listing.queryString.stock_load(),PF.fn.listing.ajax=function(){if(1!=PF.obj.listing.calling){PF.obj.listing.calling=!0;var t=$(PF.obj.listing.selectors.content_listing_visible),e=$(PF.obj.listing.selectors.pad_content,t),n=$(PF.obj.listing.selectors.content_listing_load_more,t);n.hide(),$(PF.obj.listing.selectors.content_listing_loading,t).removeClass("visibility-hidden").show(),PF.obj.listing.XHR=$.ajax({type:"POST",data:$.param($.extend({},PF.obj.listing.query_string,$.ajaxSettings.data))}).complete(function(n){var i=n.responseJSON,o=function(){$(PF.obj.listing.selectors.content_listing_loading+","+PF.obj.listing.selectors.content_listing_pagination+":not([data-visibility=visible])",t).remove()},r=function(){t.data("empty","true").html(PF.obj.listing.template.empty),$("[data-content=list-selection][data-tab="+t.attr("id")+"]").addClass("disabled")};if(4==n.readyState&&void 0!==i){if($("[data-content=list-selection][data-tab="+t.attr("id")+"]").removeClass("disabled"),200!==n.status){var a=void 0!==i.error&&void 0!==i.error.message?i.error.message:"Bad request";PF.fn.growl.call("Error: "+a),t.data("load","")}if(void 0!==i.html&&""!=i.html||0!=$(PF.obj.listing.selectors.list_item,t).length||r(),void 0===i.html||""==i.html)return o(),PF.obj.listing.calling=!1,void("function"==typeof PF.fn.listing_end&&PF.fn.listing_end());t.data({load:"",page:PF.obj.listing.query_string.page});var s=$.extend({},PF.obj.listing.query_string);for(var l in PF.obj.listing.params_hidden)void 0!==s[l]&&delete s[l];for(var l in delete s.action,s)s[l]||delete s[l];if(-1==document.URL.indexOf("?"+$.param(s))){var c=window.location.href;c=c.split("?")[0].replace(/\/$/,"")+"/?"+$.param(s),window.location.hash&&(c=c.replace(window.location.hash,"")),History.pushState({pushed:"pagination",scrollTop:$(window).scrollTop()},document.title,c)}$("a[data-tab="+t.attr("id")+"]").attr("href",document.URL),e.append(i.html);var u=$(PF.obj.listing.selectors.content_listing_visible).find("[data-action=load-more]");""!==i.seekEnd?u.attr("data-seek",i.seekEnd):u.remove(),PF.fn.listing.show(i,function(){$(PF.obj.listing.selectors.content_listing_loading,t).addClass("visibility-hidden")})}else PF.obj.listing.calling=!1,t.data("load",""),o(),0==$(PF.obj.listing.selectors.list_item,t).length&&r(),0!==n.readyState&&PF.fn.growl.call(PF.fn._s("An error occurred. Please try again later."));"function"==typeof PF.fn.listing.ajax.callback&&PF.fn.listing.ajax.callback(n)})}},PF.fn.listing.columnizerQueue=function(){$(PF.obj.listing.selectors.content_listing+":hidden").data("queued",!0)},PF.fn.listing.refresh=function(t){PF.fn.listing.columnizer(!0,t,!1)};var width=$(window).width();PF.fn.listing.columnizer=function(t,e,n){var o={phone:1,phablet:3,tablet:4,laptop:5,desktop:6,largescreen:7};if("boolean"!=typeof t)t=!1;if(void 0===PF.obj.listing.mode&&(t=!0),"boolean"!=typeof n){n=!1;var r=!0}else r=!1;if(!n&&r&&(width!==$(window).width()||t)&&(n=!0),void 0===e)e=PF.obj.config.animation.normal;var a=$("#content-listing-tabs").exists()?$(PF.obj.listing.selectors.content_listing_visible,"#content-listing-tabs"):$(PF.obj.listing.selectors.content_listing),s=$(PF.obj.listing.selectors.pad_content,a),l="responsive",c=$(t||n?PF.obj.listing.selectors.list_item:PF.obj.listing.selectors.list_item+":not(.jsly)",a);if(void 0!==PF.obj.config.listing.device_to_columns&&(o=$.extend({},o,PF.obj.config.listing.device_to_columns)),a.data("device-columns")&&(o=$.extend({},o,a.data("device-columns"))),PF.obj.listing.mode=l,PF.obj.listing.device=PF.fn.getDeviceName(),c.exists()){if(void 0===a.data("columns")||t||n){var u=c.first();for(u.css("width",""),PF.obj.listing.columns=new Array,PF.obj.listing.columns_number=o[PF.fn.getDeviceName()],i=0;i<PF.obj.listing.columns_number;i++)PF.obj.listing.columns[i+1]=0;PF.obj.listing.current_column=1}else PF.obj.listing.columns=a.data("columns"),PF.obj.listing.columns_number=a.data("columns").length-1,PF.obj.listing.current_column=a.data("current_column");a.removeClass("small-cols").addClass(PF.obj.listing.columns_number>6?"small-cols":""),s.css("width","100%");var d=0;c.each(function(t){$(this).addClass("jsly");var i=$(".list-item-image",this),o=$(".list-item-image img",this),r=$(".list-item-thumbs",this);o.hasClass("jsly-loaded");o.show(),n&&($(this).css({top:"",left:"",height:"",position:""}),i.css({maxHeight:"",height:""}),o.removeClass("jsly").css({width:"",height:""}).parent().css({marginLeft:"",marginTop:""}),$("li",r).css({width:"",height:""}));var s=1==PF.obj.listing.columns_number?"100%":parseFloat(1/PF.obj.listing.columns_number*a.width()+"px");if($(this).css("width",s),PF.obj.listing.current_column>PF.obj.listing.columns_number&&(PF.obj.listing.current_column=1),$(this).attr("data-col",PF.obj.listing.current_column),!o.exists()){var l=!0;o=$(".image-container .empty",this)}var u=$(this).is(":visible");c.show();var h=i.hasClass("fixed-size"),f={w:parseFloat(o.attr("width")),h:parseFloat(o.attr("height"))};if(f.ratio=f.w/f.h,l||i.css("min-height")&&!o.hasClass("jsly")){var p={w:$(this).width(),h:h?$(this).width():null},g=Math.min(f.w,f.w<p.w?f.w:p.w);h?(i.css({height:p.w}),f.ratio<=3&&(f.ratio>1||1==f.ratio)?(f.h=Math.min(f.h,f.w<p.w?f.w:p.w),f.w=f.h*f.ratio):(f.w=g,f.h=f.w/f.ratio),i.css("min-height",0)):(f.w=g,f.ratio>=3||f.ratio<1||1==f.ratio?f.h=f.w/f.ratio:(f.h=Math.min(f.h,f.w),f.w=f.h*f.ratio),l&&(f.h=p.w),i.css({height:f.h})),0==o.width()&&o.css({width:g,height:g/f.ratio}),$(".image-container",this).is(".list-item-avatar-cover")&&o.css(h?{width:"auto",height:"100%"}:{width:"100%",height:"auto"});var m=Math.max(2*o.position().left,0),b=Math.max(2*o.position().top,0),v=m/i.width(),y=b/i.height();(m>0||b>0)&&(v<=.25||y<=.25)&&i.addClass("--fit"),r.exists()&&$("li",r).css({width:100/$("li",r).length+"%"}).css({height:$("li",r).width()}),u||c.hide()}!o.hasClass("jsly")&&$(this).is(":hidden")&&$(this).css("top","100%"),PF.obj.listing.columns[PF.obj.listing.current_column]+=$(this).outerHeight(!0),$(this).is(":animated")&&(e=0),$(this).addClass("position-absolute") +;var w=$(this).outerWidth(!0)*(PF.obj.listing.current_column-1),P=parseFloat($(this).css("left"))!=w;P&&(animate_grid=!0,$(this).animate({left:w},e));var x=PF.obj.listing.columns[PF.obj.listing.current_column]-$(this).outerHeight(!0);parseFloat($(this).css("top"))!=x&&(animate_grid=!0,$(this).animate({top:x},e),P&&(d=1)),u&&c.show(),PF.obj.listing.current_column++}),a.data({columns:PF.obj.listing.columns,current_column:PF.obj.listing.current_column}).attr("data-columns",PF.obj.listing.columns_number);var h=0;if($.each(PF.obj.listing.columns,function(t,e){e>h&&(h=e)}),PF.obj.listing.width=a.width(),void 0!==PF.obj.listing.height)var f=PF.obj.listing.height;PF.obj.listing.height=h;var p=void 0!==f&&f!==PF.obj.listing.height;p||(s.height(h),PF.fn.list_fluid_width()),p&&(s.height(f),setTimeout(function(){s.animate({height:h},e,function(){PF.fn.list_fluid_width()})},e*d)),a.data("list-mode",PF.obj.listing.mode),$(PF.obj.listing.selectors.content_listing_visible).data("queued",!1),a.addClass("jsly")}},PF.fn.loading={spin:{small:{lines:11,length:0,width:3,radius:7,speed:1,trail:45,blocksize:20},normal:{lines:11,length:0,width:5,radius:10,speed:1,trail:45,blocksize:30},big:{lines:11,length:0,width:7,radius:13,speed:1,trail:45,blocksize:40},huge:{lines:11,length:0,width:9,radius:16,speed:1,trail:45,blocksize:50}},inline:function(t,e){if(void 0!==t){if(t instanceof jQuery==0)t=$(t);var n={size:"normal",color:$("body").css("color"),center:!1,position:"absolute",shadow:!1,valign:"top"};if(void 0===e)e=n;else for(var i in n)void 0===e[i]&&(e[i]=n[i]);PF.fn.loading.spin[e.size];PF.fn.loading.spin[e.size].color=e.color,PF.fn.loading.spin[e.size].shadow=e.shadow,t.html('<span class="loading-indicator"></span>'+(void 0!==e.message?'<span class="loading-text">'+e.message+"</span>":"")).css({"line-height":PF.fn.loading.spin[e.size].blocksize+"px"}),$(".loading-indicator",t).css({width:PF.fn.loading.spin[e.size].blocksize,height:PF.fn.loading.spin[e.size].blocksize}).spin(PF.fn.loading.spin[e.size]),e.center&&$(".loading-indicator",t.css("textAlign","center")).css({position:e.position,top:"50%",left:"50%",marginTop:-PF.fn.loading.spin[e.size].blocksize/2,marginLeft:-PF.fn.loading.spin[e.size].blocksize/2}),"center"==e.valign&&$(".loading-indicator,.loading-text",t).css("marginTop",(t.height()-PF.fn.loading.spin[e.size].blocksize)/2+"px"),$(".spinner",t).css({top:PF.fn.loading.spin[e.size].blocksize/2+"px",left:PF.fn.loading.spin[e.size].blocksize/2+"px"})}},fullscreen:function(){$("body").append('<div class="fullscreen" id="pf-fullscreen-loader"><div class="fullscreen-loader black-bkg"><span class="loading-txt">'+PF.fn._s("loading")+"</span></div></div>"),$(".fullscreen-loader","#pf-fullscreen-loader").spin(PF.fn.loading.spin.huge),$("#pf-fullscreen-loader").css("opacity",1)},destroy:function(t){var e=$("#pf-fullscreen-loader"),n=$("#pf-onscreen-loader");"fullscreen"==t&&(t=e),"onscreen"==t&&(t=n),void 0!==t?t.remove():(e.remove(),n.remove())}},jQuery.fn.disableForm=function(){return $(this).data("disabled",!0),$(":input",this).each(function(){$(this).attr("disabled",!0)}),this},jQuery.fn.enableForm=function(){return $(this).data("disabled",!1),$(":input",this).removeAttr("disabled"),this},PF.fn.isDevice=function(t){if("object"==typeof t)t="."+t.join(",.");else t="."+t;return $("html").is(t)},PF.fn.getDeviceName=function(){var t;return $.each(PF.obj.devices,function(e,n){if(PF.fn.isDevice(n))return t=n,!0}),t},PF.fn.topMenu={vars:{$button:$("[data-action=top-bar-menu-full]","#top-bar"),menu:"#menu-fullscreen",speed:PF.obj.config.animation.fast,menu_top:parseInt($("#top-bar").outerHeight())+parseInt($("#top-bar").css("top"))+parseInt($("#top-bar").css("margin-top"))+parseInt($("#top-bar").css("margin-bottom"))-parseInt($("#top-bar").css("border-bottom-width"))+"px"},show:function(t){if(!$("body").is(":animated")){if(void 0===t)t=this.vars.speed;this.vars.$button.addClass("current"),$("html").addClass("menu-fullscreen-visible"),$("#top-bar").append($("<div/>",{id:"menu-fullscreen",class:"touch-scroll",html:$("<div/>",{class:"fullscreen black"})}).css({left:"-100%"}).append($("<ul/>",{html:$(".top-bar-left").html()+$(".top-bar-right").html()})));var e=$(this.vars.menu);$("li.phone-hide, li > .top-btn-text, li > .top-btn-text > span, li > a > .top-btn-text > span",e).each(function(){$(this).removeClass("phone-hide")}),$("[data-action=top-bar-menu-full]",e).remove(),$(".btn.black, .btn.default, .btn.blue, .btn.green, .btn.orange, .btn.red, .btn.transparent",e).removeClass("btn black default blue green orange red transparent"),setTimeout(function(){e.css({transform:"translateX(100%)"}),$(".fullscreen").css("opacity",1)},1),setTimeout(function(){e.css({transition:"none",transform:"",left:""}),$("html").css({backgroundColor:""})},t)}},hide:function(t){if(!$("body").is(":animated")&&$(this.vars.menu).is(":visible")){var e=$(this.vars.menu);if(void 0===t)t=this.vars.speed;e.css({transition:""}),setTimeout(function(){e.css({transform:"translateX(-100%)"})},1),$("#top-bar").css("position",""),this.vars.$button.removeClass("current"),$("html").removeClass("menu-fullscreen-visible"),setTimeout(function(){e.remove()},t)}}},function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{},i=n[t]=n[t]||{};return i[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){n=n.slice(0),e=e||[];for(var i=this._onceEvents&&this._onceEvents[t],o=0;o<n.length;o++){var r=n[o],a=i&&i[r];a&&(this.off(t,r),delete i[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(n){return e(t,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,function(t,e){function n(t,e){for(var n in e)t[n]=e[n];return t}function i(t){if(Array.isArray(t))return t;var e="object"==typeof t&&"number"==typeof t.length;return e?c.call(t):[t]}function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);var a=t;"string"==typeof t&&(a=document.querySelectorAll(t)),a?(this.elements=i(a),this.options=n({},this.options),"function"==typeof e?r=e:n(this.options,e),r&&this.on("always",r),this.getImages(),s&&(this.jqDeferred=new s.Deferred),setTimeout(this.check.bind(this))):l.error("Bad element for imagesLoaded "+(a||t))}function r(t){this.img=t}function a(t,e){this.url=t,this.element=e,this.img=new Image}var s=t.jQuery,l=t.console,c=Array.prototype.slice;o.prototype=Object.create(e.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&u[e]){for(var n=t.querySelectorAll("img"),i=0;i<n.length;i++){var o=n[i];this.addImage(o)}if("string"==typeof this.options.background){var r=t.querySelectorAll(this.options.background);for(i=0;i<r.length;i++){var a=r[i];this.addElementBackgroundImages(a)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var n=/url\((['"])?(.*?)\1\)/gi,i=n.exec(e.backgroundImage);null!==i;){var o=i&&i[2];o&&this.addBackground(o,t),i=n.exec(e.backgroundImage)}},o.prototype.addImage=function(t){var e=new r(t);this.images.push(e)},o.prototype.addBackground=function(t,e){var n=new a(t,e);this.images.push(n)},o.prototype.check=function(){function t(t,n,i){setTimeout(function(){e.progress(t,n,i)})}var e=this;this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach(function(e){e.once("progress",t),e.check()}):this.complete()},o.prototype.progress=function(t,e,n){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&l&&l.log("progress: "+n,t,e)},o.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},r.prototype=Object.create(e.prototype),r.prototype.check=function(){var t=this.getIsImageComplete();t?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},r.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},a.prototype=Object.create(r.prototype),a.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var t=this.getIsImageComplete();t&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},a.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},a.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},o.makeJQueryPlugin=function(e){e=e||t.jQuery,e&&(s=e,s.fn.imagesLoaded=function(t,e){var n=new o(this,t,e);return n.jqDeferred.promise(s(this))})},o.makeJQueryPlugin(),o}),function(t){t.fn.tipTip=function(e){var n={activation:"hover",keepAlive:!1,maxWidth:"200px",edgeOffset:6,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:!1,enter:function(){},afterEnter:function(){},exit:function(){},afterExit:function(){},cssClass:""};if(t("#tiptip_holder").length<=0){var i=t('<div id="tiptip_holder"></div>'),o=t('<div id="tiptip_content"></div>'),r=t('<div id="tiptip_arrow"></div>');t("body").append(i.html(o).prepend(r.html('<div id="tiptip_arrow_inner"></div>')))}else i=t("#tiptip_holder"),o=t("#tiptip_content"),r=t("#tiptip_arrow");return this.each(function(){function a(){var e;if(!1!==u.enter.call(l,d)&&(u.content?e=t.isFunction(u.content)?u.content.call(l,d):u.content:(e=u.content=l.attr(u.attribute),l.removeAttr(u.attribute)),e)){o.html(e),i.hide().removeAttr("class").css({margin:"0px","max-width":u.maxWidth}),u.cssClass&&i.addClass(u.cssClass),r.removeAttr("style");var n=parseInt(l.offset().top),a=parseInt(l.offset().left),s=parseInt(l.outerWidth()),c=parseInt(l.outerHeight()),f=i.outerWidth(),p=i.outerHeight(),g=Math.round((s-f)/2),m=Math.round((c-p)/2),b=Math.round(a+g),v=Math.round(n+c+u.edgeOffset),y="",w="",P=Math.round(f-12)/2;"bottom"==u.defaultPosition?y="_bottom":"top"==u.defaultPosition?y="_top":"left"==u.defaultPosition?y="_left":"right"==u.defaultPosition&&(y="_right");var $=g+a<parseInt(t(window).scrollLeft()),x=f+a>parseInt(t(window).width());$&&g<0||"_right"==y&&!x||"_left"==y&&a<f+u.edgeOffset+5?(y="_right",w=Math.round(p-13)/2,P=-12,b=Math.round(a+s+u.edgeOffset),v=Math.round(n+m)):(x&&g<0||"_left"==y&&!$)&&(y="_left",w=Math.round(p-13)/2,P=Math.round(f),b=Math.round(a-(f+u.edgeOffset+5)),v=Math.round(n+m));var F=n+c+u.edgeOffset+p+8>parseInt(t(window).height()+t(window).scrollTop()),_=n+c-(u.edgeOffset+p+8)<0;F||"_bottom"==y&&F||"_top"==y&&!_?("_top"==y||"_bottom"==y?y="_top":y+="_top",w=p,v=Math.round(n-(p+5+u.edgeOffset))):(_|("_top"==y&&_)||"_bottom"==y&&!F)&&("_top"==y||"_bottom"==y?y="_bottom":y+="_bottom",w=-12,v=Math.round(n+c+u.edgeOffset)),"_right_top"==y||"_left_top"==y?v+=5:"_right_bottom"!=y&&"_left_bottom"!=y||(v-=5),"_left_top"!=y&&"_left_bottom"!=y||(b+=5),r.css({"margin-left":P+"px","margin-top":w+"px"}),i.css({"margin-left":b+"px","margin-top":v+"px"}).addClass("tip"+y),h&&clearTimeout(h),h=setTimeout(function(){i.stop(!0,!0).fadeIn(u.fadeIn)},u.delay),u.afterEnter.call(l,d)}}function s(){!1!==u.exit.call(l,d)&&(h&&clearTimeout(h),i.fadeOut(u.fadeOut),u.afterExit.call(l,d))}var l=t(this),c=l.data("tipTip"),u=c&&c.options||t.extend(n,e),d={holder:i,content:o,arrow:r,options:u};if(c)switch(e){case"show":a();break;case"hide":s();break;case"destroy":l.unbind(".tipTip").removeData("tipTip")}else{var h=!1;l.data("tipTip",{options:u}),"hover"==u.activation?l.bind("mouseenter.tipTip",function(){a()}).bind("mouseleave.tipTip",function(){u.keepAlive?i.one("mouseleave.tipTip",function(){s()}):s()}):"focus"==u.activation?l.bind("focus.tipTip",function(){a()}).bind("blur.tipTip",function(){s()}):"click"==u.activation?l.bind("click.tipTip",function(t){return t.preventDefault(),a(),!1}).bind("mouseleave.tipTip",function(){u.keepAlive?i.one("mouseleave.tipTip",function(){s()}):s()}):u.activation}})}}(jQuery),function(t){function e(t,e){if(!(t.originalEvent.touches.length>1)){t.preventDefault();var n=t.originalEvent.changedTouches[0],i=document.createEvent("MouseEvents");i.initMouseEvent(e,!0,!0,window,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(i)}}if(t.support.touch="ontouchend"in document,t.support.touch){var n,i=t.ui.mouse.prototype,o=i._mouseInit;i._touchStart=function(t){var i=this;!n&&i._mouseCapture(t.originalEvent.changedTouches[0])&&(n=!0,i._touchMoved=!1,e(t,"mouseover"),e(t,"mousemove"),e(t,"mousedown"))},i._touchMove=function(t){n&&(this._touchMoved=!0,e(t,"mousemove"))},i._touchEnd=function(t){n&&(e(t,"mouseup"),e(t,"mouseout"),this._touchMoved||e(t,"click"),n=!1)},i._mouseInit=function(){var e=this;e.element.bind("touchstart",t.proxy(e,"_touchStart")).bind("touchmove",t.proxy(e,"_touchMove")).bind("touchend",t.proxy(e,"_touchEnd")),o.call(e)}}}(jQuery),function(t){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],t):t(jQuery)}(function(t){function e(e){return!e||void 0!==e.allowPageScroll||void 0===e.swipe&&void 0===e.swipeStatus||(e.allowPageScroll=c),void 0!==e.click&&void 0===e.tap&&(e.tap=e.click),e||(e={}),e=t.extend({},t.fn.swipe.defaults,e),this.each(function(){var i=t(this),o=i.data(_);o||(o=new n(this,e),i.data(_,o))})}function n(e,n){function S(e){if(!(st()||t(e.target).closest(n.excludedElements,zt).length>0)){var i,o=e.originalEvent?e.originalEvent:e,r=F?o.touches[0]:o;return qt=w,F?Nt=o.touches.length:e.preventDefault(),Ot=0,At=null,Bt=null,Ht=0,Mt=0,Lt=0,Dt=1,Ut=0,Wt=ht(),Rt=gt(),rt(),!F||Nt===n.fingers||n.fingers===v||R()?(ct(0,r),Vt=Ft(),2==Nt&&(ct(1,o.touches[1]),Mt=Lt=vt(Wt[0].start,Wt[1].start)),(n.swipeStatus||n.pinchStatus)&&(i=O(o,qt))):i=!1,!1===i?(qt=x,O(o,qt),i):(lt(!0),null)}}function j(t){var e=t.originalEvent?t.originalEvent:t;if(qt!==$&&qt!==x&&!at()){var i,o=F?e.touches[0]:e,r=ut(o);if(Qt=Ft(),F&&(Nt=e.touches.length),qt=P,2==Nt&&(0==Mt?(ct(1,e.touches[1]),Mt=Lt=vt(Wt[0].start,Wt[1].start)):(ut(e.touches[1]),Lt=vt(Wt[0].end,Wt[1].end),Bt=wt(Wt[0].end,Wt[1].end)),Dt=yt(Mt,Lt),Ut=Math.abs(Mt-Lt)),Nt===n.fingers||n.fingers===v||!F||R()){if(At=xt(r.start,r.end),U(t,At),Ot=Pt(r.start,r.end),Ht=bt(),ft(At,Ot),(n.swipeStatus||n.pinchStatus)&&(i=O(e,qt)),!n.triggerOnTouchEnd||n.triggerOnTouchLeave){var a=!0;if(n.triggerOnTouchLeave){var s=_t(this);a=St(r.end,s)}!n.triggerOnTouchEnd&&a?qt=I(P):n.triggerOnTouchLeave&&!a&&(qt=I($)),qt!=x&&qt!=$||O(e,qt)}}else qt=x,O(e,qt);!1===i&&(qt=x,O(e,qt))}}function k(t){var e=t.originalEvent;return F&&e.touches.length>0?(ot(),!0):(at()&&(Nt=Xt),t.preventDefault(),Qt=Ft(),Ht=bt(),M()?(qt=x,O(e,qt)):n.triggerOnTouchEnd||0==n.triggerOnTouchEnd&&qt===P?(qt=$,O(e,qt)):!n.triggerOnTouchEnd&&G()?(qt=$,A(e,qt,f)):qt===P&&(qt=x,O(e,qt)),lt(!1),null)}function T(){Nt=0,Qt=0,Vt=0,Mt=0,Lt=0,Dt=1,rt(),lt(!1)}function C(t){var e=t.originalEvent;n.triggerOnTouchLeave&&(qt=I($),O(e,qt))}function E(){zt.unbind(kt,S),zt.unbind(It,T),zt.unbind(Tt,j),zt.unbind(Ct,k),Et&&zt.unbind(Et,C),lt(!1)}function I(t){var e=t,i=D(),o=H(),r=M();return!i||r?e=x:!o||t!=P||n.triggerOnTouchEnd&&!n.triggerOnTouchLeave?!o&&t==$&&n.triggerOnTouchLeave&&(e=x):e=$,e}function O(t,e){var n=void 0;return W()||N()?n=A(t,e,d):(z()||R())&&!1!==n&&(n=A(t,e,h)),nt()&&!1!==n?n=A(t,e,p):it()&&!1!==n?n=A(t,e,g):et()&&!1!==n&&(n=A(t,e,f)),e===x&&T(t),e===$&&(F?0==t.touches.length&&T(t):T(t)),n}function A(e,c,u){var m=void 0;if(u==d){if(zt.trigger("swipeStatus",[c,At||null,Ot||0,Ht||0,Nt]),n.swipeStatus&&(m=n.swipeStatus.call(zt,e,c,At||null,Ot||0,Ht||0,Nt),!1===m))return!1;if(c==$&&q()){if(zt.trigger("swipe",[At,Ot,Ht,Nt]),n.swipe&&(m=n.swipe.call(zt,e,At,Ot,Ht,Nt),!1===m))return!1;switch(At){case i:zt.trigger("swipeLeft",[At,Ot,Ht,Nt]),n.swipeLeft&&(m=n.swipeLeft.call(zt,e,At,Ot,Ht,Nt));break;case o:zt.trigger("swipeRight",[At,Ot,Ht,Nt]),n.swipeRight&&(m=n.swipeRight.call(zt,e,At,Ot,Ht,Nt));break;case r:zt.trigger("swipeUp",[At,Ot,Ht,Nt]),n.swipeUp&&(m=n.swipeUp.call(zt,e,At,Ot,Ht,Nt));break;case a:zt.trigger("swipeDown",[At,Ot,Ht,Nt]),n.swipeDown&&(m=n.swipeDown.call(zt,e,At,Ot,Ht,Nt))}}}if(u==h){if(zt.trigger("pinchStatus",[c,Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchStatus&&(m=n.pinchStatus.call(zt,e,c,Bt||null,Ut||0,Ht||0,Nt,Dt),!1===m))return!1;if(c==$&&B())switch(Bt){case s:zt.trigger("pinchIn",[Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchIn&&(m=n.pinchIn.call(zt,e,Bt||null,Ut||0,Ht||0,Nt,Dt));break;case l:zt.trigger("pinchOut",[Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchOut&&(m=n.pinchOut.call(zt,e,Bt||null,Ut||0,Ht||0,Nt,Dt))}}return u==f?c!==x&&c!==$||(clearTimeout(Jt),X()&&!K()?(Yt=Ft(),Jt=setTimeout(t.proxy(function(){Yt=null,zt.trigger("tap",[e.target]),n.tap&&(m=n.tap.call(zt,e,e.target))},this),n.doubleTapThreshold)):(Yt=null,zt.trigger("tap",[e.target]),n.tap&&(m=n.tap.call(zt,e,e.target)))):u==p?c!==x&&c!==$||(clearTimeout(Jt),Yt=null,zt.trigger("doubletap",[e.target]),n.doubleTap&&(m=n.doubleTap.call(zt,e,e.target))):u==g&&(c!==x&&c!==$||(clearTimeout(Jt),Yt=null,zt.trigger("longtap",[e.target]),n.longTap&&(m=n.longTap.call(zt,e,e.target)))),m}function H(){var t=!0;return null!==n.threshold&&(t=Ot>=n.threshold),t}function M(){var t=!1;return null!==n.cancelThreshold&&null!==At&&(t=pt(At)-Ot>=n.cancelThreshold),t}function L(){return null===n.pinchThreshold||Ut>=n.pinchThreshold}function D(){var t;return t=!n.maxTimeThreshold||!(Ht>=n.maxTimeThreshold),t}function U(t,e){if(n.allowPageScroll===c||R())t.preventDefault();else{var s=n.allowPageScroll===u;switch(e){case i:(n.swipeLeft&&s||!s&&n.allowPageScroll!=m)&&t.preventDefault();break;case o:(n.swipeRight&&s||!s&&n.allowPageScroll!=m)&&t.preventDefault();break;case r:(n.swipeUp&&s||!s&&n.allowPageScroll!=b)&&t.preventDefault();break;case a:(n.swipeDown&&s||!s&&n.allowPageScroll!=b)&&t.preventDefault()}}}function B(){var t=V(),e=Q(),n=L();return t&&e&&n}function R(){return!!(n.pinchStatus||n.pinchIn||n.pinchOut)}function z(){return!(!B()||!R())}function q(){var t=D(),e=H(),n=V(),i=Q(),o=M(),r=!o&&i&&n&&e&&t;return r}function N(){return!!(n.swipe||n.swipeStatus||n.swipeLeft||n.swipeRight||n.swipeUp||n.swipeDown)}function W(){return!(!q()||!N())}function V(){return Nt===n.fingers||n.fingers===v||!F}function Q(){return 0!==Wt[0].end.x}function G(){return!!n.tap}function X(){return!!n.doubleTap}function Y(){return!!n.longTap}function J(){if(null==Yt)return!1;var t=Ft();return X()&&t-Yt<=n.doubleTapThreshold}function K(){return J()}function Z(){return(1===Nt||!F)&&(isNaN(Ot)||0===Ot)}function tt(){return Ht>n.longTapThreshold&&Ot<y}function et(){return!(!Z()||!G())}function nt(){return!(!J()||!X())}function it(){return!(!tt()||!Y())}function ot(){Gt=Ft(),Xt=event.touches.length+1}function rt(){Gt=0,Xt=0}function at(){var t=!1;if(Gt){var e=Ft()-Gt;e<=n.fingerReleaseThreshold&&(t=!0)}return t}function st(){return!(!0!==zt.data(_+"_intouch"))}function lt(t){!0===t?(zt.bind(Tt,j),zt.bind(Ct,k),Et&&zt.bind(Et,C)):(zt.unbind(Tt,j,!1),zt.unbind(Ct,k,!1),Et&&zt.unbind(Et,C,!1)),zt.data(_+"_intouch",!0===t)}function ct(t,e){var n=void 0!==e.identifier?e.identifier:0;return Wt[t].identifier=n,Wt[t].start.x=Wt[t].end.x=e.pageX||e.clientX,Wt[t].start.y=Wt[t].end.y=e.pageY||e.clientY,Wt[t]}function ut(t){var e=void 0!==t.identifier?t.identifier:0,n=dt(e);return n.end.x=t.pageX||t.clientX,n.end.y=t.pageY||t.clientY,n}function dt(t){for(var e=0;e<Wt.length;e++)if(Wt[e].identifier==t)return Wt[e]}function ht(){for(var t=[],e=0;e<=5;e++)t.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0});return t}function ft(t,e){e=Math.max(e,pt(t)),Rt[t].distance=e}function pt(t){if(Rt[t])return Rt[t].distance}function gt(){var t={};return t[i]=mt(i),t[o]=mt(o),t[r]=mt(r),t[a]=mt(a),t}function mt(t){return{direction:t,distance:0}}function bt(){return Qt-Vt}function vt(t,e){var n=Math.abs(t.x-e.x),i=Math.abs(t.y-e.y);return Math.round(Math.sqrt(n*n+i*i))}function yt(t,e){var n=e/t*1;return n.toFixed(2)}function wt(){return Dt<1?l:s}function Pt(t,e){return Math.round(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)))}function $t(t,e){var n=t.x-e.x,i=e.y-t.y,o=Math.atan2(i,n),r=Math.round(180*o/Math.PI);return r<0&&(r=360-Math.abs(r)),r}function xt(t,e){var n=$t(t,e);return n<=45&&n>=0?i:n<=360&&n>=315?i:n>=135&&n<=225?o:n>45&&n<135?a:r}function Ft(){var t=new Date;return t.getTime()}function _t(e){e=t(e);var n=e.offset(),i={left:n.left,right:n.left+e.outerWidth(),top:n.top,bottom:n.top+e.outerHeight()};return i}function St(t,e){return t.x>e.left&&t.x<e.right&&t.y>e.top&&t.y<e.bottom}var jt=F||!n.fallbackToMouseEvents,kt=jt?"touchstart":"mousedown",Tt=jt?"touchmove":"mousemove",Ct=jt?"touchend":"mouseup",Et=jt?null:"mouseleave",It="touchcancel",Ot=0,At=null,Ht=0,Mt=0,Lt=0,Dt=1,Ut=0,Bt=0,Rt=null,zt=t(e),qt="start",Nt=0,Wt=null,Vt=0,Qt=0,Gt=0,Xt=0,Yt=0,Jt=null;try{zt.bind(kt,S),zt.bind(It,T)}catch(e){t.error("events not supported "+kt+","+It+" on jQuery.swipe")}this.enable=function(){return zt.bind(kt,S),zt.bind(It,T),zt},this.disable=function(){return E(),zt},this.destroy=function(){return E(),zt.data(_,null),zt},this.option=function(e,i){if(void 0!==n[e]){if(void 0===i)return n[e];n[e]=i}else t.error("Option "+e+" does not exist on jQuery.swipe.options");return null}}var i="left",o="right",r="up",a="down",s="in",l="out",c="none",u="auto",d="swipe",h="pinch",f="tap",p="doubletap",g="longtap",m="horizontal",b="vertical",v="all",y=10,w="start",P="move",$="end",x="cancel",F="ontouchstart"in window,_="TouchSwipe",S={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,triggerOnTouchEnd:!0,triggerOnTouchLeave:!1,allowPageScroll:"auto",fallbackToMouseEvents:!0,excludedElements:"label, button, input, select, textarea, a, .noSwipe"};t.fn.swipe=function(n){var i=t(this),o=i.data(_);if(o&&"string"==typeof n){if(o[n])return o[n].apply(this,Array.prototype.slice.call(arguments,1));t.error("Method "+n+" does not exist on jQuery.swipe")}else if(!(o||"object"!=typeof n&&n))return e.apply(this,arguments);return i},t.fn.swipe.defaults=S,t.fn.swipe.phases={PHASE_START:w,PHASE_MOVE:P,PHASE_END:$,PHASE_CANCEL:x},t.fn.swipe.directions={LEFT:i,RIGHT:o,UP:r,DOWN:a,IN:s,OUT:l},t.fn.swipe.pageScroll={NONE:c,HORIZONTAL:m,VERTICAL:b,AUTO:u},t.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:v}}),function(t){"use strict";function e(t,n,i){var o,r=document.createElement("img");if(r.onerror=function(o){return e.onerror(r,o,t,n,i)},r.onload=function(o){return e.onload(r,o,t,n,i)},e.isInstanceOf("Blob",t)||e.isInstanceOf("File",t))o=r._objectURL=e.createObjectURL(t);else{if("string"!=typeof t)return!1;o=t,i&&i.crossOrigin&&(r.crossOrigin=i.crossOrigin)}return o?(r.src=o,r):e.readFile(t,function(t){var e=t.target;e&&e.result?r.src=e.result:n&&n(t)})}function n(t,n){!t._objectURL||n&&n.noRevoke||(e.revokeObjectURL(t._objectURL),delete t._objectURL)}var i=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;e.isInstanceOf=function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"},e.transform=function(t,n,i,o,r){i(e.scale(t,n,r),r)},e.onerror=function(t,e,i,o,r){n(t,r),o&&o.call(t,e)},e.onload=function(t,i,o,r,a){n(t,a),r&&e.transform(t,a,r,o,{})},e.transformCoordinates=function(){},e.getTransformedOptions=function(t,e){var n,i,o,r,a=e.aspectRatio;if(!a)return e;for(i in n={},e)e.hasOwnProperty(i)&&(n[i]=e[i]);return n.crop=!0,o=t.naturalWidth||t.width,r=t.naturalHeight||t.height,o/r>a?(n.maxWidth=r*a,n.maxHeight=r):(n.maxWidth=o,n.maxHeight=o/a),n},e.renderImageToCanvas=function(t,e,n,i,o,r,a,s,l,c){return t.getContext("2d").drawImage(e,n,i,o,r,a,s,l,c),t},e.hasCanvasOption=function(t){return t.canvas||t.crop||!!t.aspectRatio},e.scale=function(t,n,i){function o(){var t=Math.max((l||P)/P,(c||$)/$);t>1&&(P*=t,$*=t)}function r(){var t=Math.min((a||P)/P,(s||$)/$);t<1&&(P*=t,$*=t)}n=n||{};var a,s,l,c,u,d,h,f,p,g,m,b=document.createElement("canvas"),v=t.getContext||e.hasCanvasOption(n)&&b.getContext,y=t.naturalWidth||t.width,w=t.naturalHeight||t.height,P=y,$=w;if(b.originalWidth=y,b.originalHeight=w,v&&(n=e.getTransformedOptions(t,n,i),h=n.left||0,f=n.top||0,n.sourceWidth?(u=n.sourceWidth,void 0!==n.right&&void 0===n.left&&(h=y-u-n.right)):u=y-h-(n.right||0),n.sourceHeight?(d=n.sourceHeight,void 0!==n.bottom&&void 0===n.top&&(f=w-d-n.bottom)):d=w-f-(n.bottom||0),P=u,$=d),a=n.maxWidth,s=n.maxHeight,l=n.minWidth,c=n.minHeight,v&&a&&s&&n.crop?(P=a,$=s,m=u/d-a/s,m<0?(d=s*u/a,void 0===n.top&&void 0===n.bottom&&(f=(w-d)/2)):m>0&&(u=a*d/s,void 0===n.left&&void 0===n.right&&(h=(y-u)/2))):((n.contain||n.cover)&&(l=a=a||l,c=s=s||c),n.cover?(r(),o()):(o(),r())),v){if(p=n.pixelRatio,p>1&&(b.style.width=P+"px",b.style.height=$+"px",P*=p,$*=p,b.getContext("2d").scale(p,p)),g=n.downsamplingRatio,g>0&&g<1&&P<u&&$<d)for(;u*g>P;)b.width=u*g,b.height=d*g,e.renderImageToCanvas(b,t,h,f,u,d,0,0,b.width,b.height),u=b.width,d=b.height,t=document.createElement("canvas"),t.width=u,t.height=d,e.renderImageToCanvas(t,b,0,0,u,d,0,0,u,d);return b.width=P,b.height=$,e.transformCoordinates(b,n),e.renderImageToCanvas(b,t,h,f,u,d,0,0,P,$)}return t.width=P,t.height=$,t},e.createObjectURL=function(t){return!!i&&i.createObjectURL(t)},e.revokeObjectURL=function(t){return!!i&&i.revokeObjectURL(t)},e.readFile=function(t,e,n){if(window.FileReader){var i=new FileReader;if(i.onload=i.onerror=e,n=n||"readAsDataURL",i[n])return i[n](t),i}return!1},"function"==typeof define&&define.amd?define(function(){return e}):"object"==typeof module&&module.exports?module.exports=e:t.loadImage=e}(window),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],t):t("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(t){"use strict";var e=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);t.blobSlice=e&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},t.metaDataParsers={jpeg:{65505:[]}},t.parseMetaData=function(e,n,i,o){i=i||{},o=o||{};var r=this,a=i.maxMetaDataSize||262144,s=!(window.DataView&&e&&e.size>=12&&"image/jpeg"===e.type&&t.blobSlice);!s&&t.readFile(t.blobSlice.call(e,0,a),function(e){if(e.target.error)return console.log(e.target.error),void n(o);var a,s,l,c,u=e.target.result,d=new DataView(u),h=2,f=d.byteLength-4,p=h;if(65496===d.getUint16(0)){for(;h<f&&(a=d.getUint16(h),a>=65504&&a<=65519||65534===a);){if(s=d.getUint16(h+2)+2,h+s>d.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(l=t.metaDataParsers.jpeg[a])for(c=0;c<l.length;c+=1)l[c].call(r,d,h,s,o,i);h+=s,p=h}!i.disableImageHead&&p>6&&(u.slice?o.imageHead=u.slice(0,p):o.imageHead=new Uint8Array(u).subarray(0,p))}else console.log("Invalid JPEG file: Missing JPEG marker.");n(o)},"readAsArrayBuffer")||n(o)},t.hasMetaOption=function(t){return t.meta};var n=t.transform;t.transform=function(e,i,o,r,a){t.hasMetaOption(i||{})?t.parseMetaData(r,function(a){n.call(t,e,i,o,r,a)},i,a):n.apply(t,arguments)}}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],t):"object"==typeof module&&module.exports?t(require("./load-image"),require("./load-image-meta")):t(window.loadImage)}(function(t){"use strict";t.ExifMap=function(){return this},t.ExifMap.prototype.map={Orientation:274},t.ExifMap.prototype.get=function(t){return this[t]||this[this.map[t]]},t.getExifThumbnail=function(t,e,n){var i,o,r;if(n&&!(e+n>t.byteLength)){for(i=[],o=0;o<n;o+=1)r=t.getUint8(e+o),i.push((r<16?"0":"")+r.toString(16));return"data:image/jpeg,%"+i.join("%")}console.log("Invalid Exif data: Invalid thumbnail data.")},t.exifTagTypes={1:{getValue:function(t,e){return t.getUint8(e)},size:1},2:{getValue:function(t,e){return String.fromCharCode(t.getUint8(e))},size:1,ascii:!0},3:{getValue:function(t,e,n){return t.getUint16(e,n)},size:2},4:{getValue:function(t,e,n){return t.getUint32(e,n)},size:4},5:{getValue:function(t,e,n){return t.getUint32(e,n)/t.getUint32(e+4,n)},size:8},9:{getValue:function(t,e,n){return t.getInt32(e,n)},size:4},10:{getValue:function(t,e,n){return t.getInt32(e,n)/t.getInt32(e+4,n)},size:8}},t.exifTagTypes[7]=t.exifTagTypes[1],t.getExifValue=function(e,n,i,o,r,a){var s,l,c,u,d,h,f=t.exifTagTypes[o];if(f){if(s=f.size*r,l=s>4?n+e.getUint32(i+8,a):i+8,!(l+s>e.byteLength)){if(1===r)return f.getValue(e,l,a);for(c=[],u=0;u<r;u+=1)c[u]=f.getValue(e,l+u*f.size,a);if(f.ascii){for(d="",u=0;u<c.length&&(h=c[u],"\0"!==h);u+=1)d+=h;return d}return c}console.log("Invalid Exif data: Invalid data offset.")}else console.log("Invalid Exif data: Invalid tag type.")},t.parseExifTag=function(e,n,i,o,r){var a=e.getUint16(i,o);r.exif[a]=t.getExifValue(e,n,i,e.getUint16(i+2,o),e.getUint32(i+4,o),o)},t.parseExifTags=function(t,e,n,i,o){var r,a,s;if(n+6>t.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(r=t.getUint16(n,i),a=n+2+12*r,!(a+4>t.byteLength)){for(s=0;s<r;s+=1)this.parseExifTag(t,e,n+2+12*s,i,o);return t.getUint32(a,i)}console.log("Invalid Exif data: Invalid directory size.")}},t.parseExifData=function(e,n,i,o,r){if(!r.disableExif){var a,s,l,c=n+10;if(1165519206===e.getUint32(n+4)){if(c+8>e.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==e.getUint16(n+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(e.getUint16(c)){case 18761:a=!0;break;case 19789:a=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==e.getUint16(c+2,a))return void console.log("Invalid Exif data: Missing TIFF marker.");s=e.getUint32(c+4,a),o.exif=new t.ExifMap,s=t.parseExifTags(e,c,c+s,a,o),s&&!r.disableExifThumbnail&&(l={exif:{}},s=t.parseExifTags(e,c,c+s,a,l),l.exif[513]&&(o.exif.Thumbnail=t.getExifThumbnail(e,c+l.exif[513],l.exif[514]))), +o.exif[34665]&&!r.disableExifSub&&t.parseExifTags(e,c,c+o.exif[34665],a,o),o.exif[34853]&&!r.disableExifGps&&t.parseExifTags(e,c,c+o.exif[34853],a,o)}}},t.metaDataParsers.jpeg[65505].push(t.parseExifData)}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],t):"object"==typeof module&&module.exports?t(require("./load-image"),require("./load-image-exif")):t(window.loadImage)}(function(t){"use strict";t.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},t.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},t.ExifMap.prototype.getText=function(t){var e=this.get(t);switch(t){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[t][e];case"ExifVersion":case"FlashpixVersion":if(!e)return;return String.fromCharCode(e[0],e[1],e[2],e[3]);case"ComponentsConfiguration":if(!e)return;return this.stringValues[t][e[0]]+this.stringValues[t][e[1]]+this.stringValues[t][e[2]]+this.stringValues[t][e[3]];case"GPSVersionID":if(!e)return;return e[0]+"."+e[1]+"."+e[2]+"."+e[3]}return String(e)},function(t){var e,n=t.tags,i=t.map;for(e in n)n.hasOwnProperty(e)&&(i[n[e]]=e)}(t.ExifMap.prototype),t.ExifMap.prototype.getAll=function(){var t,e,n={};for(t in this)this.hasOwnProperty(t)&&(e=this.tags[t],e&&(n[e]=this.getText(e)));return n}}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],t):t("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(t){"use strict";var e=t.hasCanvasOption,n=t.hasMetaOption,i=t.transformCoordinates,o=t.getTransformedOptions;t.hasCanvasOption=function(n){return!!n.orientation||e.call(t,n)},t.hasMetaOption=function(e){return!0===e.orientation||n.call(t,e)},t.transformCoordinates=function(e,n){i.call(t,e,n);var o=e.getContext("2d"),r=e.width,a=e.height,s=e.style.width,l=e.style.height,c=n.orientation;if(c&&!(c>8))switch(c>4&&(e.width=a,e.height=r,e.style.width=l,e.style.height=s),c){case 2:o.translate(r,0),o.scale(-1,1);break;case 3:o.translate(r,a),o.rotate(Math.PI);break;case 4:o.translate(0,a),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-a);break;case 7:o.rotate(.5*Math.PI),o.translate(r,-a),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-r,0)}},t.getTransformedOptions=function(e,n,i){var r,a,s=o.call(t,e,n),l=s.orientation;if(!0===l&&i&&i.exif&&(l=i.exif.get("Orientation")),!l||l>8||1===l)return s;for(a in r={},s)s.hasOwnProperty(a)&&(r[a]=s[a]);switch(r.orientation=l,l){case 2:r.left=s.right,r.right=s.left;break;case 3:r.left=s.right,r.top=s.bottom,r.right=s.left,r.bottom=s.top;break;case 4:r.top=s.bottom,r.bottom=s.top;break;case 5:r.left=s.top,r.top=s.left,r.right=s.bottom,r.bottom=s.right;break;case 6:r.left=s.top,r.top=s.right,r.right=s.bottom,r.bottom=s.left;break;case 7:r.left=s.bottom,r.top=s.right,r.right=s.top,r.bottom=s.left;break;case 8:r.left=s.bottom,r.top=s.left,r.right=s.top,r.bottom=s.right}return s.orientation>4&&(r.maxWidth=s.maxHeight,r.maxHeight=s.maxWidth,r.minWidth=s.minHeight,r.minHeight=s.minWidth,r.sourceWidth=s.sourceHeight,r.sourceHeight=s.sourceWidth),r}}),"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return t<10?"0"+t:t}function quote(t){return escapable.lastIndex=0,escapable.test(t)?'"'+t.replace(escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var n,i,o,r,a,s=gap,l=e[t];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(t)),"function"==typeof rep&&(l=rep.call(e,t,l)),typeof l){case"string":return quote(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(gap+=indent,a=[],"[object Array]"===Object.prototype.toString.apply(l)){for(r=l.length,n=0;n<r;n+=1)a[n]=str(n,l)||"null";return o=0===a.length?"[]":gap?"[\n"+gap+a.join(",\n"+gap)+"\n"+s+"]":"["+a.join(",")+"]",gap=s,o}if(rep&&"object"==typeof rep)for(r=rep.length,n=0;n<r;n+=1)"string"==typeof rep[n]&&(i=rep[n],o=str(i,l),o&&a.push(quote(i)+(gap?": ":":")+o));else for(i in l)Object.prototype.hasOwnProperty.call(l,i)&&(o=str(i,l),o&&a.push(quote(i)+(gap?": ":":")+o));return o=0===a.length?"{}":gap?"{\n"+gap+a.join(",\n"+gap)+"\n"+s+"}":"{"+a.join(",")+"}",gap=s,o}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(t){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(t){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(t,e,n){var i;if(gap="",indent="","number"==typeof n)for(i=0;i<n;i+=1)indent+=" ";else"string"==typeof n&&(indent=n);if(rep=e,!e||"function"==typeof e||"object"==typeof e&&"number"==typeof e.length)return str("",{"":t});throw new Error("JSON.stringify")}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(t,e){var n,i,o=t[e];if(o&&"object"==typeof o)for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(i=walk(o,n),void 0!==i?o[n]=i:delete o[n]);return reviver.call(t,e,o)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),function(t,e){"use strict";var n=t.History=t.History||{},i=t.jQuery;if(void 0!==n.Adapter)throw new Error("History.js Adapter has already been loaded...");n.Adapter={bind:function(t,e,n){i(t).bind(e,n)},trigger:function(t,e,n){i(t).trigger(e,n)},extractEventData:function(t,n,i){var o=n&&n.originalEvent&&n.originalEvent[t]||i&&i[t]||e;return o},onDomLoad:function(t){i(t)}},void 0!==n.init&&n.init()}(window),function(t,e){"use strict";var n=t.document,i=t.setTimeout||i,o=t.clearTimeout||o,r=t.setInterval||r,a=t.History=t.History||{};if(void 0!==a.initHtml4)throw new Error("History.js HTML4 Support has already been loaded...");a.initHtml4=function(){if(void 0!==a.initHtml4.initialized)return!1;a.initHtml4.initialized=!0,a.enabled=!0,a.savedHashes=[],a.isLastHash=function(t){var e,n=a.getHashByIndex();return e=t===n,e},a.isHashEqual=function(t,e){return t=encodeURIComponent(t).replace(/%25/g,"%"),e=encodeURIComponent(e).replace(/%25/g,"%"),t===e},a.saveHash=function(t){return!a.isLastHash(t)&&(a.savedHashes.push(t),!0)},a.getHashByIndex=function(t){var e=null;return e=void 0===t?a.savedHashes[a.savedHashes.length-1]:t<0?a.savedHashes[a.savedHashes.length+t]:a.savedHashes[t],e},a.discardedHashes={},a.discardedStates={},a.discardState=function(t,e,n){var i,o=a.getHashByState(t);return i={discardedState:t,backState:n,forwardState:e},a.discardedStates[o]=i,!0},a.discardHash=function(t,e,n){var i={discardedHash:t,backState:n,forwardState:e};return a.discardedHashes[t]=i,!0},a.discardedState=function(t){var e,n=a.getHashByState(t);return e=a.discardedStates[n]||!1,e},a.discardedHash=function(t){var e=a.discardedHashes[t]||!1;return e},a.recycleState=function(t){var e=a.getHashByState(t);return a.discardedState(t)&&delete a.discardedStates[e],!0},a.emulated.hashChange&&(a.hashChangeInit=function(){a.checkerFunction=null;var e,i,o,s,l="",c=Boolean(a.getHash());return a.isInternetExplorer()?(e="historyjs-iframe",i=n.createElement("iframe"),i.setAttribute("id",e),i.setAttribute("src","#"),i.style.display="none",n.body.appendChild(i),i.contentWindow.document.open(),i.contentWindow.document.close(),o="",s=!1,a.checkerFunction=function(){if(s)return!1;s=!0;var e=a.getHash(),n=a.getHash(i.contentWindow.document);return e!==l?(l=e,n!==e&&(o=n=e,i.contentWindow.document.open(),i.contentWindow.document.close(),i.contentWindow.document.location.hash=a.escapeHash(e)),a.Adapter.trigger(t,"hashchange")):n!==o&&(o=n,c&&""===n?a.back():a.setHash(n,!1)),s=!1,!0}):a.checkerFunction=function(){var e=a.getHash()||"";return e!==l&&(l=e,a.Adapter.trigger(t,"hashchange")),!0},a.intervalList.push(r(a.checkerFunction,a.options.hashChangeInterval)),!0},a.Adapter.onDomLoad(a.hashChangeInit)),a.emulated.pushState&&(a.onHashChange=function(e){var n,i=e&&e.newURL||a.getLocationHref(),o=a.getHashByUrl(i),r=null;return a.isLastHash(o)?(a.busy(!1),!1):(a.doubleCheckComplete(),a.saveHash(o),o&&a.isTraditionalAnchor(o)?(a.Adapter.trigger(t,"anchorchange"),a.busy(!1),!1):(r=a.extractState(a.getFullUrl(o||a.getLocationHref()),!0),a.isLastSavedState(r)?(a.busy(!1),!1):(a.getHashByState(r),n=a.discardedState(r),n?(a.getHashByIndex(-2)===a.getHashByState(n.forwardState)?a.back(!1):a.forward(!1),!1):(a.pushState(r.data,r.title,encodeURI(r.url),!1),!0))))},a.Adapter.bind(t,"hashchange",a.onHashChange),a.pushState=function(e,n,i,o){if(i=encodeURI(i).replace(/%25/g,"%"),a.getHashByUrl(i))throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors).");if(!1!==o&&a.busy())return a.pushQueue({scope:a,callback:a.pushState,args:arguments,queue:o}),!1;a.busy(!0);var r=a.createStateObject(e,n,i),s=a.getHashByState(r),l=a.getState(!1),c=a.getHashByState(l),u=a.getHash(),d=a.expectedStateId==r.id;return a.storeState(r),a.expectedStateId=r.id,a.recycleState(r),a.setTitle(r),s===c?(a.busy(!1),!1):(a.saveState(r),d||a.Adapter.trigger(t,"statechange"),!a.isHashEqual(s,u)&&!a.isHashEqual(s,a.getShortUrl(a.getLocationHref()))&&a.setHash(s,!1),a.busy(!1),!0)},a.replaceState=function(e,n,i,o){if(i=encodeURI(i).replace(/%25/g,"%"),a.getHashByUrl(i))throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors).");if(!1!==o&&a.busy())return a.pushQueue({scope:a,callback:a.replaceState,args:arguments,queue:o}),!1;a.busy(!0);var r=a.createStateObject(e,n,i),s=a.getHashByState(r),l=a.getState(!1),c=a.getHashByState(l),u=a.getStateByIndex(-2);return a.discardState(l,r,u),s===c?(a.storeState(r),a.expectedStateId=r.id,a.recycleState(r),a.setTitle(r),a.saveState(r),a.Adapter.trigger(t,"statechange"),a.busy(!1)):a.pushState(r.data,r.title,r.url,!1),!0}),a.emulated.pushState&&a.getHash()&&!a.emulated.hashChange&&a.Adapter.onDomLoad(function(){a.Adapter.trigger(t,"hashchange")})},void 0!==a.init&&a.init()}(window),function(t,e){"use strict";var n=t.console||e,i=t.document,o=t.navigator,r=!1,a=t.setTimeout,s=t.clearTimeout,l=t.setInterval,c=t.clearInterval,u=t.JSON,d=t.alert,h=t.History=t.History||{},f=t.history;try{r=t.sessionStorage,r.setItem("TEST","1"),r.removeItem("TEST")}catch(t){r=!1}if(u.stringify=u.stringify||u.encode,u.parse=u.parse||u.decode,void 0!==h.init)throw new Error("History.js Core has already been loaded...");h.init=function(t){return void 0!==h.Adapter&&(void 0!==h.initCore&&h.initCore(),void 0!==h.initHtml4&&h.initHtml4(),!0)},h.initCore=function(p){if(void 0!==h.initCore.initialized)return!1;if(h.initCore.initialized=!0,h.options=h.options||{},h.options.hashChangeInterval=h.options.hashChangeInterval||100,h.options.safariPollInterval=h.options.safariPollInterval||500,h.options.doubleCheckInterval=h.options.doubleCheckInterval||500,h.options.disableSuid=h.options.disableSuid||!1,h.options.storeInterval=h.options.storeInterval||1e3,h.options.busyDelay=h.options.busyDelay||250,h.options.debug=h.options.debug||!1,h.options.initialTitle=h.options.initialTitle||i.title,h.options.html4Mode=h.options.html4Mode||!1,h.options.delayInit=h.options.delayInit||!1,h.intervalList=[],h.clearAllIntervals=function(){var t,e=h.intervalList;if(null!=e){for(t=0;t<e.length;t++)c(e[t]);h.intervalList=null}},h.debug=function(){h.options.debug&&h.log.apply(h,arguments)},h.log=function(){var t,e,o,r,a,s=void 0!==n&&void 0!==n.log&&void 0!==n.log.apply,l=i.getElementById("log");for(s?(r=Array.prototype.slice.call(arguments),t=r.shift(),void 0!==n.debug?n.debug.apply(n,[t,r]):n.log.apply(n,[t,r])):t="\n"+arguments[0]+"\n",e=1,o=arguments.length;e<o;++e){if(a=arguments[e],"object"==typeof a&&void 0!==u)try{a=u.stringify(a)}catch(t){}t+="\n"+a+"\n"}return l?(l.value+=t+"\n-----\n",l.scrollTop=l.scrollHeight-l.clientHeight):s||d(t),!0},h.getInternetExplorerMajorVersion=function(){var t=h.getInternetExplorerMajorVersion.cached=void 0!==h.getInternetExplorerMajorVersion.cached?h.getInternetExplorerMajorVersion.cached:function(){for(var t=3,e=i.createElement("div"),n=e.getElementsByTagName("i");(e.innerHTML="<!--[if gt IE "+ ++t+"]><i></i><![endif]-->")&&n[0];);return t>4&&t}();return t},h.isInternetExplorer=function(){var t=h.isInternetExplorer.cached=void 0!==h.isInternetExplorer.cached?h.isInternetExplorer.cached:Boolean(h.getInternetExplorerMajorVersion());return t},h.options.html4Mode?h.emulated={pushState:!0,hashChange:!0}:h.emulated={pushState:!Boolean(t.history&&t.history.pushState&&t.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(o.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(o.userAgent)),hashChange:Boolean(!("onhashchange"in t||"onhashchange"in i)||h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8)},h.enabled=!h.emulated.pushState,h.bugs={setHash:Boolean(!h.emulated.pushState&&"Apple Computer, Inc."===o.vendor&&/AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)),safariPoll:Boolean(!h.emulated.pushState&&"Apple Computer, Inc."===o.vendor&&/AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)),ieDoubleCheck:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<7)},h.isEmptyObject=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0},h.cloneObject=function(t){var e,n;return t?(e=u.stringify(t),n=u.parse(e)):n={},n},h.getRootUrl=function(){var t=i.location.protocol+"//"+(i.location.hostname||i.location.host);return i.location.port&&(t+=":"+i.location.port),t+="/",t},h.getBaseHref=function(){var t=i.getElementsByTagName("base"),e=null,n="";return 1===t.length&&(e=t[0],n=e.href.replace(/[^\/]+$/,"")),n=n.replace(/\/+$/,""),n&&(n+="/"),n},h.getBaseUrl=function(){var t=h.getBaseHref()||h.getBasePageUrl()||h.getRootUrl();return t},h.getPageUrl=function(){var t,e=h.getState(!1,!1),n=(e||{}).url||h.getLocationHref();return t=n.replace(/\/+$/,"").replace(/[^\/]+$/,function(t,e,n){return/\./.test(t)?t:t+"/"}),t},h.getBasePageUrl=function(){var t=h.getLocationHref().replace(/[#\?].*/,"").replace(/[^\/]+$/,function(t,e,n){return/[^\/]$/.test(t)?"":t}).replace(/\/+$/,"")+"/";return t},h.getFullUrl=function(t,e){var n=t,i=t.substring(0,1);return e=void 0===e||e,/[a-z]+\:\/\//.test(t)||(n="/"===i?h.getRootUrl()+t.replace(/^\/+/,""):"#"===i?h.getPageUrl().replace(/#.*/,"")+t:"?"===i?h.getPageUrl().replace(/[\?#].*/,"")+t:e?h.getBaseUrl()+t.replace(/^(\.\/)+/,""):h.getBasePageUrl()+t.replace(/^(\.\/)+/,"")),n.replace(/\#$/,"")},h.getShortUrl=function(t){var e=t,n=h.getBaseUrl(),i=h.getRootUrl();return h.emulated.pushState&&(e=e.replace(n,"")),e=e.replace(i,"/"),h.isTraditionalAnchor(e)&&(e="./"+e),e=e.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),e},h.getLocationHref=function(t){return t=t||i,t.URL===t.location.href?t.location.href:t.location.href===decodeURIComponent(t.URL)?t.URL:t.location.hash&&decodeURIComponent(t.location.href.replace(/^[^#]+/,""))===t.location.hash?t.location.href:-1==t.URL.indexOf("#")&&-1!=t.location.href.indexOf("#")?t.location.href:t.URL||t.location.href},h.store={},h.idToState=h.idToState||{},h.stateToId=h.stateToId||{},h.urlToId=h.urlToId||{},h.storedStates=h.storedStates||[],h.savedStates=h.savedStates||[],h.normalizeStore=function(){h.store.idToState=h.store.idToState||{},h.store.urlToId=h.store.urlToId||{},h.store.stateToId=h.store.stateToId||{}},h.getState=function(t,e){void 0===t&&(t=!0),void 0===e&&(e=!0);var n=h.getLastSavedState();return!n&&e&&(n=h.createStateObject()),t&&(n=h.cloneObject(n),n.url=n.cleanUrl||n.url),n},h.getIdByState=function(t){var e,n=h.extractId(t.url);if(!n)if(e=h.getStateString(t),void 0!==h.stateToId[e])n=h.stateToId[e];else if(void 0!==h.store.stateToId[e])n=h.store.stateToId[e];else{for(;n=(new Date).getTime()+String(Math.random()).replace(/\D/g,""),void 0!==h.idToState[n]||void 0!==h.store.idToState[n];);h.stateToId[e]=n,h.idToState[n]=t}return n},h.normalizeState=function(t){var e,n;return t&&"object"==typeof t||(t={}),void 0!==t.normalized?t:(t.data&&"object"==typeof t.data||(t.data={}),e={},e.normalized=!0,e.title=t.title||"",e.url=h.getFullUrl(t.url?t.url:h.getLocationHref()),e.hash=h.getShortUrl(e.url),e.data=h.cloneObject(t.data),e.id=h.getIdByState(e),e.cleanUrl=e.url.replace(/\??\&_suid.*/,""),e.url=e.cleanUrl,n=!h.isEmptyObject(e.data),(e.title||n)&&!0!==h.options.disableSuid&&(e.hash=h.getShortUrl(e.url).replace(/\??\&_suid.*/,""),/\?/.test(e.hash)||(e.hash+="?"),e.hash+="&_suid="+e.id),e.hashedUrl=h.getFullUrl(e.hash),(h.emulated.pushState||h.bugs.safariPoll)&&h.hasUrlDuplicate(e)&&(e.url=e.hashedUrl),e)},h.createStateObject=function(t,e,n){var i={data:t,title:e,url:n};return i=h.normalizeState(i),i},h.getStateById=function(t){t=String(t);var n=h.idToState[t]||h.store.idToState[t]||e;return n},h.getStateString=function(t){var e,n,i;return e=h.normalizeState(t),n={data:e.data,title:t.title,url:t.url},i=u.stringify(n),i},h.getStateId=function(t){var e,n;return e=h.normalizeState(t),n=e.id,n},h.getHashByState=function(t){var e,n;return e=h.normalizeState(t),n=e.hash,n},h.extractId=function(t){var e,n,i;return i=-1!=t.indexOf("#")?t.split("#")[0]:t,n=/(.*)\&_suid=([0-9]+)$/.exec(i),n&&n[1]||t,e=n?String(n[2]||""):"",e||!1},h.isTraditionalAnchor=function(t){var e=!/[\/\?\.]/.test(t);return e},h.extractState=function(t,e){var n,i,o=null;return e=e||!1,n=h.extractId(t),n&&(o=h.getStateById(n)),o||(i=h.getFullUrl(t),n=h.getIdByUrl(i)||!1,n&&(o=h.getStateById(n)),!o&&e&&!h.isTraditionalAnchor(t)&&(o=h.createStateObject(null,null,i))),o},h.getIdByUrl=function(t){var n=h.urlToId[t]||h.store.urlToId[t]||e;return n},h.getLastSavedState=function(){return h.savedStates[h.savedStates.length-1]||e},h.getLastStoredState=function(){return h.storedStates[h.storedStates.length-1]||e},h.hasUrlDuplicate=function(t){var e,n=!1;return e=h.extractState(t.url),n=e&&e.id!==t.id,n},h.storeState=function(t){return h.urlToId[t.url]=t.id,h.storedStates.push(h.cloneObject(t)),t},h.isLastSavedState=function(t){var e,n,i,o=!1;return h.savedStates.length&&(e=t.id,n=h.getLastSavedState(),i=n.id,o=e===i),o},h.saveState=function(t){return!h.isLastSavedState(t)&&(h.savedStates.push(h.cloneObject(t)),!0)},h.getStateByIndex=function(t){var e=null;return e=void 0===t?h.savedStates[h.savedStates.length-1]:t<0?h.savedStates[h.savedStates.length+t]:h.savedStates[t],e},h.getCurrentIndex=function(){var t=null;return t=h.savedStates.length<1?0:h.savedStates.length-1,t},h.getHash=function(t){var e,n=h.getLocationHref(t);return e=h.getHashByUrl(n),e},h.unescapeHash=function(t){var e=h.normalizeHash(t);return e=decodeURIComponent(e),e},h.normalizeHash=function(t){var e=t.replace(/[^#]*#/,"").replace(/#.*/,"");return e},h.setHash=function(t,e){var n,o;return!1!==e&&h.busy()?(h.pushQueue({scope:h,callback:h.setHash,args:arguments,queue:e}),!1):(h.busy(!0),n=h.extractState(t,!0),n&&!h.emulated.pushState?h.pushState(n.data,n.title,n.url,!1):h.getHash()!==t&&(h.bugs.setHash?(o=h.getPageUrl(),h.pushState(null,null,o+"#"+t,!1)):i.location.hash=t),h)},h.escapeHash=function(e){var n=h.normalizeHash(e);return n=t.encodeURIComponent(n),h.bugs.hashEscape||(n=n.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),n},h.getHashByUrl=function(t){var e=String(t).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return e=h.unescapeHash(e),e},h.setTitle=function(t){var e,n=t.title;n||(e=h.getStateByIndex(0),e&&e.url===t.url&&(n=e.title||h.options.initialTitle));try{i.getElementsByTagName("title")[0].innerHTML=n.replace("<","&lt;").replace(">","&gt;").replace(" & "," &amp; ")}catch(t){}return i.title=n,h},h.queues=[],h.busy=function(t){if(void 0!==t?h.busy.flag=t:void 0===h.busy.flag&&(h.busy.flag=!1),!h.busy.flag){s(h.busy.timeout);var e=function(){var t,n,i;if(!h.busy.flag)for(t=h.queues.length-1;t>=0;--t)n=h.queues[t],0!==n.length&&(i=n.shift(),h.fireQueueItem(i),h.busy.timeout=a(e,h.options.busyDelay))};h.busy.timeout=a(e,h.options.busyDelay)}return h.busy.flag},h.busy.flag=!1,h.fireQueueItem=function(t){return t.callback.apply(t.scope||h,t.args||[])},h.pushQueue=function(t){return h.queues[t.queue||0]=h.queues[t.queue||0]||[],h.queues[t.queue||0].push(t),h},h.queue=function(t,e){return"function"==typeof t&&(t={callback:t}),void 0!==e&&(t.queue=e),h.busy()?h.pushQueue(t):h.fireQueueItem(t),h},h.clearQueue=function(){return h.busy.flag=!1,h.queues=[],h},h.stateChanged=!1,h.doubleChecker=!1,h.doubleCheckComplete=function(){return h.stateChanged=!0,h.doubleCheckClear(),h},h.doubleCheckClear=function(){return h.doubleChecker&&(s(h.doubleChecker),h.doubleChecker=!1),h},h.doubleCheck=function(t){return h.stateChanged=!1,h.doubleCheckClear(),h.bugs.ieDoubleCheck&&(h.doubleChecker=a(function(){return h.doubleCheckClear(),h.stateChanged||t(),!0},h.options.doubleCheckInterval)),h},h.safariStatePoll=function(){var e,n=h.extractState(h.getLocationHref());if(!h.isLastSavedState(n))return e=n,e||(e=h.createStateObject()),h.Adapter.trigger(t,"popstate"),h},h.back=function(t){return!1!==t&&h.busy()?(h.pushQueue({scope:h,callback:h.back,args:arguments,queue:t}),!1):(h.busy(!0),h.doubleCheck(function(){h.back(!1)}),f.go(-1),!0)},h.forward=function(t){return!1!==t&&h.busy()?(h.pushQueue({scope:h,callback:h.forward,args:arguments,queue:t}),!1):(h.busy(!0),h.doubleCheck(function(){h.forward(!1)}),f.go(1),!0)},h.go=function(t,e){var n;if(t>0)for(n=1;n<=t;++n)h.forward(e);else{if(!(t<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(n=-1;n>=t;--n)h.back(e)}return h},h.emulated.pushState){var g=function(){};h.pushState=h.pushState||g,h.replaceState=h.replaceState||g}else h.onPopState=function(e,n){var i,o,r=!1,a=!1;return h.doubleCheckComplete(),i=h.getHash(),i?(o=h.extractState(i||h.getLocationHref(),!0),o?h.replaceState(o.data,o.title,o.url,!1):(h.Adapter.trigger(t,"anchorchange"),h.busy(!1)),h.expectedStateId=!1,!1):(r=h.Adapter.extractEventData("state",e,n)||!1,a=r?h.getStateById(r):h.expectedStateId?h.getStateById(h.expectedStateId):h.extractState(h.getLocationHref()),a||(a=h.createStateObject(null,null,h.getLocationHref())),h.expectedStateId=!1,h.isLastSavedState(a)?(h.busy(!1),!1):(h.storeState(a),h.saveState(a),h.setTitle(a),h.Adapter.trigger(t,"statechange"),h.busy(!1),!0))},h.Adapter.bind(t,"popstate",h.onPopState),h.pushState=function(e,n,i,o){if(h.getHashByUrl(i)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(!1!==o&&h.busy())return h.pushQueue({scope:h,callback:h.pushState,args:arguments,queue:o}),!1;h.busy(!0);var r=h.createStateObject(e,n,i);return h.isLastSavedState(r)?h.busy(!1):(h.storeState(r),h.expectedStateId=r.id,f.pushState(r.id,r.title,r.url),h.Adapter.trigger(t,"popstate")),!0},h.replaceState=function(e,n,i,o){if(h.getHashByUrl(i)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(!1!==o&&h.busy())return h.pushQueue({scope:h,callback:h.replaceState,args:arguments,queue:o}),!1;h.busy(!0);var r=h.createStateObject(e,n,i);return h.isLastSavedState(r)?h.busy(!1):(h.storeState(r),h.expectedStateId=r.id,f.replaceState(r.id,r.title,r.url),h.Adapter.trigger(t,"popstate")),!0};if(r){try{h.store=u.parse(r.getItem("History.store"))||{}}catch(t){h.store={}}h.normalizeStore()}else h.store={},h.normalizeStore();h.Adapter.bind(t,"unload",h.clearAllIntervals),h.saveState(h.storeState(h.extractState(h.getLocationHref(),!0))),r&&(h.onUnload=function(){var t,e,n;try{t=u.parse(r.getItem("History.store"))||{}}catch(e){t={}}for(e in t.idToState=t.idToState||{},t.urlToId=t.urlToId||{},t.stateToId=t.stateToId||{},h.idToState)h.idToState.hasOwnProperty(e)&&(t.idToState[e]=h.idToState[e]);for(e in h.urlToId)h.urlToId.hasOwnProperty(e)&&(t.urlToId[e]=h.urlToId[e]);for(e in h.stateToId)h.stateToId.hasOwnProperty(e)&&(t.stateToId[e]=h.stateToId[e]);h.store=t,h.normalizeStore(),n=u.stringify(t);try{r.setItem("History.store",n)}catch(t){if(t.code!==DOMException.QUOTA_EXCEEDED_ERR)throw t;r.length&&(r.removeItem("History.store"),r.setItem("History.store",n))}},h.intervalList.push(l(h.onUnload,h.options.storeInterval)),h.Adapter.bind(t,"beforeunload",h.onUnload),h.Adapter.bind(t,"unload",h.onUnload)),h.emulated.pushState||(h.bugs.safariPoll&&h.intervalList.push(l(h.safariStatePoll,h.options.safariPollInterval)),"Apple Computer, Inc."!==o.vendor&&"Mozilla"!==(o.appCodeName||"")||(h.Adapter.bind(t,"hashchange",function(){h.Adapter.trigger(t,"popstate")}),h.getHash()&&h.Adapter.onDomLoad(function(){h.Adapter.trigger(t,"hashchange")})))},(!h.options||!h.options.delayInit)&&h.init()}(window),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(window.jQuery)}(function(t){var e=0;t.ajaxTransport("iframe",function(n){var i,o,r;if(n.async)return{send:function(a,s){i=t('<form style="display:none;"></form>'),i.attr("accept-charset",n.formAcceptCharset),r=/\?/.test(n.url)?"&":"?","DELETE"===n.type?(n.url=n.url+r+"_method=DELETE", +n.type="POST"):"PUT"===n.type?(n.url=n.url+r+"_method=PUT",n.type="POST"):"PATCH"===n.type&&(n.url=n.url+r+"_method=PATCH",n.type="POST"),e+=1,o=t('<iframe src="javascript:false;" name="iframe-transport-'+e+'"></iframe>').bind("load",function(){var e,r=t.isArray(n.paramName)?n.paramName:[n.paramName];o.unbind("load").bind("load",function(){var e;try{if(e=o.contents(),!e.length||!e[0].firstChild)throw new Error}catch(t){e=void 0}s(200,"success",{iframe:e}),t('<iframe src="javascript:false;"></iframe>').appendTo(i),window.setTimeout(function(){i.remove()},0)}),i.prop("target",o.prop("name")).prop("action",n.url).prop("method",n.type),n.formData&&t.each(n.formData,function(e,n){t('<input type="hidden"/>').prop("name",n.name).val(n.value).appendTo(i)}),n.fileInput&&n.fileInput.length&&"POST"===n.type&&(e=n.fileInput.clone(),n.fileInput.after(function(t){return e[t]}),n.paramName&&n.fileInput.each(function(e){t(this).prop("name",r[e]||n.paramName)}),i.append(n.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data")),i.submit(),e&&e.length&&n.fileInput.each(function(n,i){var o=t(e[n]);t(i).prop("name",o.prop("name")),o.replaceWith(i)})}),i.append(o).appendTo(document.body)},abort:function(){o&&o.unbind("load").prop("src","javascript".concat(":false;")),i&&i.remove()}}}),t.ajaxSetup({converters:{"iframe text":function(e){return e&&t(e[0].body).text()},"iframe json":function(e){return e&&t.parseJSON(t(e[0].body).text())},"iframe html":function(e){return e&&t(e[0].body).html()},"iframe xml":function(e){var n=e&&e[0];return n&&t.isXMLDoc(n)?n:t.parseXML(n.XMLDocument&&n.XMLDocument.xml||t(n.body).html())},"iframe script":function(e){return e&&t.globalEval(t(e[0].body).text())}}})}),function(t,e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Spinner=e()}(this,function(){function t(t,e){var n,i=document.createElement(t||"div");for(n in e)i[n]=e[n];return i}function e(t){for(var e=1,n=arguments.length;e<n;e++)t.appendChild(arguments[e]);return t}function n(t,e,n,i){var o=["opacity",e,~~(100*t),n,i].join("-"),r=.01+n/i*100,a=Math.max(1-(1-t)/e*(100-r),t),s=u.substring(0,u.indexOf("Animation")).toLowerCase(),l=s&&"-"+s+"-"||"";return f[o]||(p.insertRule("@"+l+"keyframes "+o+"{0%{opacity:"+a+"}"+r+"%{opacity:"+t+"}"+(r+.01)+"%{opacity:1}"+(r+e)%100+"%{opacity:"+t+"}100%{opacity:"+a+"}}",p.cssRules.length),f[o]=1),o}function i(t,e){var n,i,o=t.style;for(e=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<h.length;i++)if(n=h[i]+e,void 0!==o[n])return n;if(void 0!==o[e])return e}function o(t,e){for(var n in e)t.style[i(t,n)||n]=e[n];return t}function r(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)void 0===t[i]&&(t[i]=n[i])}return t}function a(t){for(var e={x:t.offsetLeft,y:t.offsetTop};t=t.offsetParent;)e.x+=t.offsetLeft,e.y+=t.offsetTop;return e}function s(t,e){return"string"==typeof t?t:t[e%t.length]}function l(t){if(void 0===this)return new l(t);this.opts=r(t||{},l.defaults,g)}function c(){function n(e,n){return t("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',n)}p.addRule(".spin-vml","behavior:url(#default#VML)"),l.prototype.lines=function(t,i){function r(){return o(n("group",{coordsize:u+" "+u,coordorigin:-c+" "+-c}),{width:u,height:u})}function a(t,a,l){e(h,e(o(r(),{rotation:360/i.lines*t+"deg",left:~~a}),e(o(n("roundrect",{arcsize:i.corners}),{width:c,height:i.width,left:i.radius,top:-i.width>>1,filter:l}),n("fill",{color:s(i.color,t),opacity:i.opacity}),n("stroke",{opacity:0}))))}var l,c=i.length+i.width,u=2*c,d=2*-(i.width+i.length)+"px",h=o(r(),{position:"absolute",top:d,left:d});if(i.shadow)for(l=1;l<=i.lines;l++)a(l,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(l=1;l<=i.lines;l++)a(l);return e(t,h)},l.prototype.opacity=function(t,e,n,i){var o=t.firstChild;i=i.shadow&&i.lines||0,o&&e+i<o.childNodes.length&&(o=o.childNodes[e+i],o=o&&o.firstChild,o=o&&o.firstChild,o&&(o.opacity=n))}}var u,d,h=["webkit","Moz","ms","O"],f={},p=(d=t("style",{type:"text/css"}),e(document.getElementsByTagName("head")[0],d),d.sheet||d.styleSheet),g={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:"auto",className:"spinner",top:"auto",left:"auto",position:"relative"};l.defaults={},r(l.prototype,{spin:function(e){this.stop();var n,i,r=this,s=r.opts,l=r.el=o(t(0,{className:s.className}),{position:s.position,width:0,zIndex:s.zIndex}),c=s.radius+s.length+s.width;if(e&&(e.insertBefore(l,e.firstChild||null),i=a(e),n=a(l),o(l,{left:("auto"==s.left?i.x-n.x+(e.offsetWidth>>1):parseInt(s.left,10)+c)+"px",top:("auto"==s.top?i.y-n.y+(e.offsetHeight>>1):parseInt(s.top,10)+c)+"px"})),l.setAttribute("role","progressbar"),r.lines(l,r.opts),!u){var d,h=0,f=(s.lines-1)*(1-s.direction)/2,p=s.fps,g=p/s.speed,m=(1-s.opacity)/(g*s.trail/100),b=g/s.lines;(function t(){h++;for(var e=0;e<s.lines;e++)d=Math.max(1-(h+(s.lines-e)*b)%g*m,s.opacity),r.opacity(l,e*s.direction+f,d,s);r.timeout=r.el&&setTimeout(t,~~(1e3/p))})()}return r},stop:function(){var t=this.el;return t&&(clearTimeout(this.timeout),t.parentNode&&t.parentNode.removeChild(t),this.el=void 0),this},lines:function(i,r){function a(e,n){return o(t(),{position:"absolute",width:r.length+r.width+"px",height:r.width+"px",background:e,boxShadow:n,transformOrigin:"left",transform:"rotate("+~~(360/r.lines*c+r.rotate)+"deg) translate("+r.radius+"px,0)",borderRadius:(r.corners*r.width>>1)+"px"})}for(var l,c=0,d=(r.lines-1)*(1-r.direction)/2;c<r.lines;c++)l=o(t(),{position:"absolute",top:1+~(r.width/2)+"px",transform:r.hwaccel?"translate3d(0,0,0)":"",opacity:r.opacity,animation:u&&n(r.opacity,r.trail,d+c*r.direction,r.lines)+" "+1/r.speed+"s linear infinite"}),r.shadow&&e(l,o(a("rgba(0,0,0,.25)","0 0 4px rgba(0,0,0,.5)"),{top:"2px"})),e(i,e(l,a(s(r.color,c),"0 0 1px rgba(0,0,0,.1)")));return i},opacity:function(t,e,n){e<t.childNodes.length&&(t.childNodes[e].style.opacity=n)}});var m=o(t("group"),{behavior:"url(#default#VML)"});return!i(m,"transform")&&m.adj?c():u=i(m,"animation"),l}),function(t){if("object"==typeof exports)t(require("jquery"),require("spin"));else if("function"==typeof define&&define.amd)define(["jquery","spin"],t);else{if(!window.Spinner)throw new Error("Spin.js not present");t(window.jQuery,window.Spinner)}}(function(t,e){t.fn.spin=function(n,i){return this.each(function(){var o=t(this),r=o.data();r.spinner&&(r.spinner.stop(),delete r.spinner),!1!==n&&(n=t.extend({color:i||o.css("color")},t.fn.spin.presets[n]||n),r.spinner=new e(n).spin(this))})},t.fn.spin.presets={tiny:{lines:8,length:2,width:2,radius:3},small:{lines:8,length:4,width:3,radius:5},large:{lines:10,length:8,width:4,radius:8}}}),function(t){t.fn.hasScrollbar=function(){var t={},e=this.get(0);return t.vertical=e.scrollHeight>e.clientHeight,t.horizontal=e.scrollWidth>e.clientWidth,t}}(jQuery),function(t){function e(e,n){this.el=t(e),this.options=n||{},this.x=!1!==this.options.x||this.options.forceHorizontal,this.y=!1!==this.options.y||this.options.forceVertical,this.autoHide=!1!==this.options.autoHide,this.padding=null==this.options.padding?2:this.options.padding,this.inner=this.el.find(".antiscroll-inner"),this.inner.css({width:"+="+(this.y?o():0),height:"+="+(this.x?o():0)}),this.refresh()}function n(e){this.pane=e,this.pane.el.append(this.el),this.innerEl=this.pane.inner.get(0),this.dragging=!1,this.enter=!1,this.shown=!1,this.pane.el.mouseenter(t.proxy(this,"mouseenter")),this.pane.el.mouseleave(t.proxy(this,"mouseleave")),this.el.mousedown(t.proxy(this,"mousedown")),this.innerPaneScrollListener=t.proxy(this,"scroll"),this.pane.inner.scroll(this.innerPaneScrollListener),this.innerPaneMouseWheelListener=t.proxy(this,"mousewheel"),this.pane.inner.bind("mousewheel",this.innerPaneMouseWheelListener);var n=this.pane.options.initialDisplay;!1!==n&&(this.show(),this.pane.autoHide&&(this.hiding=setTimeout(t.proxy(this,"hide"),parseInt(n,10)||3e3)))}function i(t,e){function n(){}n.prototype=e.prototype,t.prototype=new n}function o(){if(void 0===r){var e=t('<div class="antiscroll-inner" style="width:50px;height:50px;overflow-y:scroll;position:absolute;top:-200px;left:-200px;"><div style="height:100px;width:100%"></div>');t("body").append(e);var n=t(e).innerWidth(),i=t("div",e).innerWidth();t(e).remove(),r=n-i}return r}var r;t.fn.antiscroll=function(e){return this.each(function(){t(this).data("antiscroll")&&t(this).data("antiscroll").destroy(),t(this).data("antiscroll",new t.Antiscroll(this,e))})},t.Antiscroll=e,e.prototype.refresh=function(){var t=this.inner.get(0).scrollWidth>this.el.width()+(this.y?o():0),e=this.inner.get(0).scrollHeight>this.el.height()+(this.x?o():0);this.x&&(!this.horizontal&&t?this.horizontal=new n.Horizontal(this):this.horizontal&&!t?(this.horizontal.destroy(),this.horizontal=null):this.horizontal&&this.horizontal.update()),this.y&&(!this.vertical&&e?this.vertical=new n.Vertical(this):this.vertical&&!e?(this.vertical.destroy(),this.vertical=null):this.vertical&&this.vertical.update())},e.prototype.destroy=function(){return this.horizontal&&(this.horizontal.destroy(),this.horizontal=null),this.vertical&&(this.vertical.destroy(),this.vertical=null),this},e.prototype.rebuild=function(){return this.destroy(),this.inner.attr("style",""),e.call(this,this.el,this.options),this},n.prototype.destroy=function(){return this.el.remove(),this.pane.inner.unbind("scroll",this.innerPaneScrollListener),this.pane.inner.unbind("mousewheel",this.innerPaneMouseWheelListener),this},n.prototype.mouseenter=function(){this.enter=!0,this.show()},n.prototype.mouseleave=function(){this.enter=!1,this.dragging||this.pane.autoHide&&this.hide()},n.prototype.scroll=function(){this.shown||(this.show(),this.enter||this.dragging||this.pane.autoHide&&(this.hiding=setTimeout(t.proxy(this,"hide"),1500))),this.update()},n.prototype.mousedown=function(e){e.preventDefault(),this.dragging=!0,this.startPageY=e.pageY-parseInt(this.el.css("top"),10),this.startPageX=e.pageX-parseInt(this.el.css("left"),10),this.el[0].ownerDocument.onselectstart=function(){return!1};this.pane;var n=t.proxy(this,"mousemove"),i=this;t(this.el[0].ownerDocument).mousemove(n).mouseup(function(){i.dragging=!1,this.onselectstart=null,t(this).unbind("mousemove",n),i.enter||i.hide()})},n.prototype.show=function(t){!this.shown&&this.update()&&(this.el.addClass("antiscroll-scrollbar-shown"),this.hiding&&(clearTimeout(this.hiding),this.hiding=null),this.shown=!0)},n.prototype.hide=function(){!1!==this.pane.autoHide&&this.shown&&(this.el.removeClass("antiscroll-scrollbar-shown"),this.shown=!1)},n.Horizontal=function(e){this.el=t('<div class="antiscroll-scrollbar antiscroll-scrollbar-horizontal">',e.el),n.call(this,e)},i(n.Horizontal,n),n.Horizontal.prototype.update=function(){var t=this.pane.el.width(),e=t-2*this.pane.padding,n=this.pane.inner.get(0);return this.el.css("width",e*t/n.scrollWidth).css("left",e*n.scrollLeft/n.scrollWidth),t<n.scrollWidth},n.Horizontal.prototype.mousemove=function(t){var e=this.pane.el.width()-2*this.pane.padding,n=t.pageX-this.startPageX,i=this.el.width(),o=this.pane.inner.get(0),r=Math.min(Math.max(n,0),e-i);o.scrollLeft=(o.scrollWidth-this.pane.el.width())*r/(e-i)},n.Horizontal.prototype.mousewheel=function(t,e,n,i){if(n<0&&0==this.pane.inner.get(0).scrollLeft||n>0&&this.innerEl.scrollLeft+Math.ceil(this.pane.el.width())==this.innerEl.scrollWidth)return t.preventDefault(),!1},n.Vertical=function(e){this.el=t('<div class="antiscroll-scrollbar antiscroll-scrollbar-vertical">',e.el),n.call(this,e)},i(n.Vertical,n),n.Vertical.prototype.update=function(){var t=this.pane.el.height(),e=t-2*this.pane.padding,n=this.innerEl,i=e*t/n.scrollHeight;i=i<20?20:i;var o=e*n.scrollTop/n.scrollHeight;if(o+i>e){var r=o+i-e;o=o-r-3}return this.el.css("height",i).css("top",o),t<n.scrollHeight},n.Vertical.prototype.mousemove=function(t){var e=this.pane.el.height(),n=e-2*this.pane.padding,i=t.pageY-this.startPageY,o=this.el.height(),r=this.innerEl,a=Math.min(Math.max(i,0),n-o);r.scrollTop=(r.scrollHeight-e)*a/(n-o)},n.Vertical.prototype.mousewheel=function(t,e,n,i){if(i>0&&0==this.innerEl.scrollTop||i<0&&this.innerEl.scrollTop+Math.ceil(this.pane.el.height())==this.innerEl.scrollHeight)return t.preventDefault(),!1}}(jQuery),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?module.exports=t:t(jQuery)}(function(t){function e(e){var o,r=e||window.event,a=[].slice.call(arguments,1),s=0,l=0,c=0,u=0,d=0;return e=t.event.fix(r),e.type="mousewheel",r.wheelDelta&&(s=r.wheelDelta),r.detail&&(s=-1*r.detail),r.deltaY&&(c=-1*r.deltaY,s=c),r.deltaX&&(l=r.deltaX,s=-1*l),void 0!==r.wheelDeltaY&&(c=r.wheelDeltaY),void 0!==r.wheelDeltaX&&(l=-1*r.wheelDeltaX),u=Math.abs(s),(!n||u<n)&&(n=u),d=Math.max(Math.abs(c),Math.abs(l)),(!i||d<i)&&(i=d),o=s>0?"floor":"ceil",s=Math[o](s/n),l=Math[o](l/i),c=Math[o](c/i),a.unshift(e,s,l,c),(t.event.dispatch||t.event.handle).apply(this,a)}var n,i,o=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],r="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];if(t.event.fixHooks)for(var a=o.length;a;)t.event.fixHooks[o[--a]]=t.event.mouseHooks;t.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var t=r.length;t;)this.addEventListener(r[--t],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var t=r.length;t;)this.removeEventListener(r[--t],e,!1);else this.onmousewheel=null}},t.fn.extend({mousewheel:function(t){return t?this.bind("mousewheel",t):this.trigger("mousewheel")},unmousewheel:function(t){return this.unbind("mousewheel",t)}})}),function(t){t.fn.delayedAction=function(e){var n=t.extend({},{delayedAction:function(){},cancelledAction:function(){},hoverTime:1e3},e);return this.each(function(){var e=t(this);e.hover(function(){e.data("timerId",setTimeout(function(){e.data("hover",!1),n.delayedAction(e)},n.hoverTime)),e.data("hover",!0)},function(){e.data("hover")&&(clearTimeout(e.data("timerId")),n.cancelledAction(e)),e.data("hover",!1)})})}}(jQuery),function(t){if("object"==typeof exports)module.exports=t();else if("function"==typeof define&&define.amd)define(t);else{var e;try{e=window}catch(t){e=self}e.SparkMD5=t()}}(function(t){"use strict";function e(t,e,n,i,o,r){return e=v(v(e,t),v(i,r)),v(e<<o|e>>>32-o,n)}function n(t,n,i,o,r,a,s){return e(n&i|~n&o,t,n,r,a,s)}function i(t,n,i,o,r,a,s){return e(n&o|i&~o,t,n,r,a,s)}function o(t,n,i,o,r,a,s){return e(n^i^o,t,n,r,a,s)}function r(t,n,i,o,r,a,s){return e(i^(n|~o),t,n,r,a,s)}function a(t,e){var a=t[0],s=t[1],l=t[2],c=t[3];a=n(a,s,l,c,e[0],7,-680876936),c=n(c,a,s,l,e[1],12,-389564586),l=n(l,c,a,s,e[2],17,606105819),s=n(s,l,c,a,e[3],22,-1044525330),a=n(a,s,l,c,e[4],7,-176418897),c=n(c,a,s,l,e[5],12,1200080426),l=n(l,c,a,s,e[6],17,-1473231341),s=n(s,l,c,a,e[7],22,-45705983),a=n(a,s,l,c,e[8],7,1770035416),c=n(c,a,s,l,e[9],12,-1958414417),l=n(l,c,a,s,e[10],17,-42063),s=n(s,l,c,a,e[11],22,-1990404162),a=n(a,s,l,c,e[12],7,1804603682),c=n(c,a,s,l,e[13],12,-40341101),l=n(l,c,a,s,e[14],17,-1502002290),s=n(s,l,c,a,e[15],22,1236535329),a=i(a,s,l,c,e[1],5,-165796510),c=i(c,a,s,l,e[6],9,-1069501632),l=i(l,c,a,s,e[11],14,643717713),s=i(s,l,c,a,e[0],20,-373897302),a=i(a,s,l,c,e[5],5,-701558691),c=i(c,a,s,l,e[10],9,38016083),l=i(l,c,a,s,e[15],14,-660478335),s=i(s,l,c,a,e[4],20,-405537848),a=i(a,s,l,c,e[9],5,568446438),c=i(c,a,s,l,e[14],9,-1019803690),l=i(l,c,a,s,e[3],14,-187363961),s=i(s,l,c,a,e[8],20,1163531501),a=i(a,s,l,c,e[13],5,-1444681467),c=i(c,a,s,l,e[2],9,-51403784),l=i(l,c,a,s,e[7],14,1735328473),s=i(s,l,c,a,e[12],20,-1926607734),a=o(a,s,l,c,e[5],4,-378558),c=o(c,a,s,l,e[8],11,-2022574463),l=o(l,c,a,s,e[11],16,1839030562),s=o(s,l,c,a,e[14],23,-35309556),a=o(a,s,l,c,e[1],4,-1530992060),c=o(c,a,s,l,e[4],11,1272893353),l=o(l,c,a,s,e[7],16,-155497632),s=o(s,l,c,a,e[10],23,-1094730640),a=o(a,s,l,c,e[13],4,681279174),c=o(c,a,s,l,e[0],11,-358537222),l=o(l,c,a,s,e[3],16,-722521979),s=o(s,l,c,a,e[6],23,76029189),a=o(a,s,l,c,e[9],4,-640364487),c=o(c,a,s,l,e[12],11,-421815835),l=o(l,c,a,s,e[15],16,530742520),s=o(s,l,c,a,e[2],23,-995338651),a=r(a,s,l,c,e[0],6,-198630844),c=r(c,a,s,l,e[7],10,1126891415),l=r(l,c,a,s,e[14],15,-1416354905),s=r(s,l,c,a,e[5],21,-57434055),a=r(a,s,l,c,e[12],6,1700485571),c=r(c,a,s,l,e[3],10,-1894986606),l=r(l,c,a,s,e[10],15,-1051523),s=r(s,l,c,a,e[1],21,-2054922799),a=r(a,s,l,c,e[8],6,1873313359),c=r(c,a,s,l,e[15],10,-30611744),l=r(l,c,a,s,e[6],15,-1560198380),s=r(s,l,c,a,e[13],21,1309151649),a=r(a,s,l,c,e[4],6,-145523070),c=r(c,a,s,l,e[11],10,-1120210379),l=r(l,c,a,s,e[2],15,718787259),s=r(s,l,c,a,e[9],21,-343485551),t[0]=v(a,t[0]),t[1]=v(s,t[1]),t[2]=v(l,t[2]),t[3]=v(c,t[3])}function s(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return n}function l(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t[e]+(t[e+1]<<8)+(t[e+2]<<16)+(t[e+3]<<24);return n}function c(t){var e,n,i,o,r,l,c=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)a(u,s(t.substring(e-64,e)));for(t=t.substring(e-64),n=t.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e<n;e+=1)i[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(a(u,i),e=0;e<16;e+=1)i[e]=0;return o=8*c,o=o.toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(o[2],16),l=parseInt(o[1],16)||0,i[14]=r,i[15]=l,a(u,i),u}function u(t){var e,n,i,o,r,s,c=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)a(u,l(t.subarray(e-64,e)));for(t=e-64<c?t.subarray(e-64):new Uint8Array(0),n=t.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e<n;e+=1)i[e>>2]|=t[e]<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(a(u,i),e=0;e<16;e+=1)i[e]=0;return o=8*c,o=o.toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(o[2],16),s=parseInt(o[1],16)||0,i[14]=r,i[15]=s,a(u,i),u}function d(t){var e,n="";for(e=0;e<4;e+=1)n+=y[t>>8*e+4&15]+y[t>>8*e&15];return n}function h(t){var e;for(e=0;e<t.length;e+=1)t[e]=d(t[e]);return t.join("")}function f(t){return/[\u0080-\uFFFF]/.test(t)&&(t=unescape(encodeURIComponent(t))),t}function p(t,e){var n,i=t.length,o=new ArrayBuffer(i),r=new Uint8Array(o);for(n=0;n<i;n++)r[n]=t.charCodeAt(n);return e?r:o}function g(t){return String.fromCharCode.apply(null,new Uint8Array(t))}function m(t,e,n){var i=new Uint8Array(t.byteLength+e.byteLength);return i.set(new Uint8Array(t)),i.set(new Uint8Array(e),t.byteLength),n?i:i.buffer}function b(){this.reset()}var v=function(t,e){return t+e&4294967295},y=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return"5d41402abc4b2a76b9719d911017c592"!==h(c("hello"))&&(v=function(t,e){var n=(65535&t)+(65535&e),i=(t>>16)+(e>>16)+(n>>16);return i<<16|65535&n}),b.prototype.append=function(t){return this.appendBinary(f(t)),this},b.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var e,n=this._buff.length;for(e=64;e<=n;e+=64)a(this._hash,s(this._buff.substring(e-64,e)));return this._buff=this._buff.substring(e-64),this},b.prototype.end=function(t){var e,n,i=this._buff,o=i.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<o;e+=1)r[e>>2]|=i.charCodeAt(e)<<(e%4<<3);return this._finish(r,o),n=t?this._hash:h(this._hash),this.reset(),n},b.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash}},b.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},b.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},b.prototype._finish=function(t,e){var n,i,o,r=e;if(t[r>>2]|=128<<(r%4<<3),r>55)for(a(this._hash,t),r=0;r<16;r+=1)t[r]=0;n=8*this._length,n=n.toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(n[2],16),o=parseInt(n[1],16)||0,t[14]=i,t[15]=o,a(this._hash,t)},b.hash=function(t,e){return b.hashBinary(f(t),e)},b.hashBinary=function(t,e){var n=c(t);return e?n:h(n)},b.ArrayBuffer=function(){this.reset()},b.ArrayBuffer.prototype.append=function(t){var e,n=m(this._buff.buffer,t,!0),i=n.length;for(this._length+=t.byteLength,e=64;e<=i;e+=64)a(this._hash,l(n.subarray(e-64,e)));return this._buff=e-64<i?n.subarray(e-64):new Uint8Array(0),this},b.ArrayBuffer.prototype.end=function(t){var e,n,i=this._buff,o=i.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<o;e+=1)r[e>>2]|=i[e]<<(e%4<<3);return this._finish(r,o),n=t?this._hash:h(this._hash),this.reset(),n},b.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.ArrayBuffer.prototype.getState=function(){var t=b.prototype.getState.call(this);return t.buff=g(t.buff),t},b.ArrayBuffer.prototype.setState=function(t){return t.buff=p(t.buff,!0),b.prototype.setState.call(this,t)},b.ArrayBuffer.prototype.destroy=b.prototype.destroy,b.ArrayBuffer.prototype._finish=b.prototype._finish,b.ArrayBuffer.hash=function(t,e){var n=u(new Uint8Array(t));return e?n:h(n)},b}),function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){return function t(e,n,i){function o(a,s){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(r)return r(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return o(n||t)},u,u.exports,t,e,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<i.length;a++)o(i[a]);return o}({1:[function(t,e,n){var i=t("matches-selector");e.exports=function(t,e,n){for(var o=n?t:t.parentNode;o&&o!==document;){if(i(o,e))return o;o=o.parentNode}}},{"matches-selector":5}],2:[function(t,e,n){function i(t,e,n,i,r){var a=o.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function o(t,e,n,i){return function(n){n.delegateTarget=r(n.target,e,!0),n.delegateTarget&&i.call(t,n)}}var r=t("closest");e.exports=i},{closest:1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e}},{}],4:[function(t,e,n){function i(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!s.string(e))throw new TypeError("Second argument must be a String");if(!s.fn(n))throw new TypeError("Third argument must be a Function");if(s.node(t))return o(t,e,n);if(s.nodeList(t))return r(t,e,n);if(s.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function o(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function r(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return l(document.body,t,e,n)}var s=t("./is"),l=t("delegate");e.exports=i},{"./is":3,delegate:2}],5:[function(t,e,n){function i(t,e){if(r)return r.call(t,e);for(var n=t.parentNode.querySelectorAll(e),i=0;i<n.length;++i)if(n[i]==t)return!0;return!1}var o=Element.prototype,r=o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;e.exports=i},{}],6:[function(t,e,n){function i(t){var e;if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName)t.focus(),t.setSelectionRange(0,t.value.length),e=t.value;else{t.hasAttribute("contenteditable")&&t.focus();var n=window.getSelection(),i=document.createRange();i.selectNodeContents(t),n.removeAllRanges(),n.addRange(i),e=n.toString()}return e}e.exports=i},{}],7:[function(t,e,n){function i(){}i.prototype={on:function(t,e,n){var i=this.e||(this.e={});return(i[t]||(i[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function i(){o.off(t,i),e.apply(n,arguments)}var o=this;return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),i=0,o=n.length;o>i;i++)n[i].fn.apply(n[i].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),i=n[t],o=[];if(i&&e)for(var r=0,a=i.length;a>r;r++)i[r].fn!==e&&i[r].fn._!==e&&o.push(i[r]);return o.length?n[t]=o:delete n[t],this}},e.exports=i},{}],8:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),a=t("select"),s=i(a),l=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return t.prototype.resolveOptions=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""},t.prototype.initSelection=function(){if(this.text&&this.target)throw new Error('Multiple attributes declared, use either "target" or "text"');if(this.text)this.selectFake();else{if(!this.target)throw new Error('Missing required attributes, use either "target" or "text"');this.selectTarget()}},t.prototype.selectFake=function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandler=document.body.addEventListener("click",function(){return t.removeFake()}),this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=s.default(this.fakeElem),this.copyText()},t.prototype.removeFake=function(){this.fakeHandler&&(document.body.removeEventListener("click"),this.fakeHandler=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},t.prototype.selectTarget=function(){this.selectedText=s.default(this.target),this.copyText()},t.prototype.copyText=function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)},t.prototype.handleResult=function(t){t?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},t.prototype.clearSelection=function(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},t.prototype.destroy=function(){this.removeFake()},r(t,[{key:"action",set:function(){var t=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!=typeof t||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');this._target=t}},get:function(){return this._target}}]),t}();n.default=l,e.exports=n.default},{select:6}],9:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}n.__esModule=!0;var s=t("./clipboard-action"),l=i(s),c=t("tiny-emitter"),u=i(c),d=t("good-listener"),h=i(d),f=function(t){function e(n,i){o(this,e),t.call(this),this.resolveOptions(i),this.listenClick(n)}return r(e,t),e.prototype.resolveOptions=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText},e.prototype.listenClick=function(t){var e=this;this.listener=h.default(t,"click",function(t){return e.onClick(t)})},e.prototype.onClick=function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),trigger:e,emitter:this})},e.prototype.defaultAction=function(t){return a("action",t)},e.prototype.defaultTarget=function(t){var e=a("target",t);return e?document.querySelector(e):void 0},e.prototype.defaultText=function(t){return a("text",t)},e.prototype.destroy=function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},e}(u.default);n.default=f,e.exports=n.default},{"./clipboard-action":8,"good-listener":4,"tiny-emitter":7}]},{},[9])(9)}); \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/mails/account-change-email.php b/content/legacy/themes/Peafowl/mails/account-change-email.php new file mode 100644 index 0000000..4bbd077 --- /dev/null +++ b/content/legacy/themes/Peafowl/mails/account-change-email.php @@ -0,0 +1,23 @@ +<?php +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_global; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php echo include_theme_file('mails/header'); ?> + +<?php _se('We received a request to change the email of your <a href="%u">%n</a> account at %w.', ['%u' => get_global('theme_mail')['user']['url'], '%n' => get_global('theme_mail')['user']['name'], '%w' => getSetting('website_name')]); ?> +<br><br> +<?php _se('To complete the process you must <a href="%s">activate your email</a>.', get_global('theme_mail')['link']); ?> +<br><br> +<?php _se('Alternatively you can copy and paste the URL into your browser: <a href="%s">%s</a>', ['%s' => get_global('theme_mail')['link']]); ?> +<br><br> +<?php _se("If you didn't intend this just ignore this message."); ?> +<br> +<?php _se('This request was made from IP: %s', get_client_ip()); ?> + +<?php echo include_theme_file('mails/footer'); ?> diff --git a/content/legacy/themes/Peafowl/mails/account-confirm.php b/content/legacy/themes/Peafowl/mails/account-confirm.php new file mode 100644 index 0000000..b197185 --- /dev/null +++ b/content/legacy/themes/Peafowl/mails/account-confirm.php @@ -0,0 +1,23 @@ +<?php +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_global; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php echo include_theme_file('mails/header'); ?> + +<?php _se('We received a request to register the %n account at %w.', ['%n' => get_global('theme_mail')['user']['username'], '%w' => getSetting('website_name')]); ?> +<br><br> +<?php _se('To complete the process you must <a href="%s">activate your account</a>.', get_global('theme_mail')['link']); ?> +<br><br> +<?php _se('Alternatively you can copy and paste the URL into your browser: <a href="%s">%s</a>', ['%s' => get_global('theme_mail')['link']]); ?> +<br><br> +<?php _se("If you didn't intend this just ignore this message."); ?> +<br> +<?php _se('This request was made from IP: %s', get_client_ip()); ?> + +<?php echo include_theme_file('mails/footer'); ?> diff --git a/content/legacy/themes/Peafowl/mails/account-password-reset.php b/content/legacy/themes/Peafowl/mails/account-password-reset.php new file mode 100644 index 0000000..98205ea --- /dev/null +++ b/content/legacy/themes/Peafowl/mails/account-password-reset.php @@ -0,0 +1,22 @@ +<?php +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_global; +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo include_theme_file('mails/header'); + +_se('We received a request to reset the password for your <a href="%u">%n</a> account.', ['%u' => get_global('theme_mail')['user']['url'], '%n' => get_global('theme_mail')['user']['name']]); ?> +<br><br> +<?php _se('To reset your password <a href="%s">follow this link</a>.', get_global('theme_mail')['link']); ?> +<br><br> +<?php _se('Alternatively you can copy and paste the URL into your browser: <a href="%s">%s</a>', ['%s' => get_global('theme_mail')['link']]); ?> +<br><br> +<?php _se("If you didn't intend this just ignore this message."); ?> +<br> +<?php _se('This request was made from IP: %s', get_client_ip()); ?> + +<?php echo include_theme_file('mails/footer'); ?> diff --git a/content/legacy/themes/Peafowl/mails/account-welcome.php b/content/legacy/themes/Peafowl/mails/account-welcome.php new file mode 100644 index 0000000..7da34a7 --- /dev/null +++ b/content/legacy/themes/Peafowl/mails/account-welcome.php @@ -0,0 +1,20 @@ +<?php +use function Chevereto\Legacy\G\get_global; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo include_theme_file('mails/header'); +_se('Hi %n, welcome to %w', ['%n' => get_global('theme_mail')['user']['name'], '%w' => getSetting('website_name')]); ?> +<br><br> +<?php _se('Now that your account is ready you can enjoy uploading your images, creating albums and setting the privacy of your content as well as many more cool things that you will discover.'); ?> +<br><br> +<?php _se('By the way, here is you very own awesome profile page: <a href="%u">%n</a>. Go ahead and customize it, its yours!.', ['%u' => get_global('theme_mail')['user']['url'], '%n' => get_global('theme_mail')['user']['username']]); ?> +<br><br> +<?php _se('Thank you for joining'); ?>, +<br> +<?php echo getSetting('website_name'); ?> +<?php echo include_theme_file('mails/footer'); ?> diff --git a/content/legacy/themes/Peafowl/mails/footer.php b/content/legacy/themes/Peafowl/mails/footer.php new file mode 100644 index 0000000..cc6ad23 --- /dev/null +++ b/content/legacy/themes/Peafowl/mails/footer.php @@ -0,0 +1,12 @@ +<?php +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<br><br>--<br> +<?php _se('This email was sent from %w %u', ['%w' => getSetting('website_name'), '%u' => get_public_url()]); ?> +</body> +</html> diff --git a/content/legacy/themes/Peafowl/mails/header.php b/content/legacy/themes/Peafowl/mails/header.php new file mode 100644 index 0000000..0852866 --- /dev/null +++ b/content/legacy/themes/Peafowl/mails/header.php @@ -0,0 +1,6 @@ +<?php // @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<html> +<body> diff --git a/content/legacy/themes/Peafowl/overrides/README.txt b/content/legacy/themes/Peafowl/overrides/README.txt new file mode 100644 index 0000000..66aa387 --- /dev/null +++ b/content/legacy/themes/Peafowl/overrides/README.txt @@ -0,0 +1 @@ +Check the theme overrides documentation here: https://chv.to/v4themeoverrides diff --git a/content/legacy/themes/Peafowl/snippets/anywhere_upload.php b/content/legacy/themes/Peafowl/snippets/anywhere_upload.php new file mode 100644 index 0000000..d2df831 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/anywhere_upload.php @@ -0,0 +1,444 @@ +<?php + +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\User; +use function Chevereto\Legacy\G\format_bytes; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_bytes; +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +if (Login::isLoggedUser()) { + $user_albums = []; + if (Login::getUser()['album_count'] > 0) { + $user_albums = Handler::cond('owner') + && Handler::var('user_items_editor') !== null + && isset(Handler::var('user_items_editor')['user_albums']) + ? Handler::var('user_items_editor')['user_albums'] + : User::getAlbums(Login::getUser()); + } +} +?> +<div id="anywhere-upload" class="no-select upload-box upload-box--fixed upload-box--hidden queueEmpty" data-queue-size="0"> + <div class="content-width"> + <div class="upload-box-inner"> + <div class="upload-box-heading c18 center-box"> + <div class="upload-box-status"> + <div data-group="upload"> + <span class="icon fas fa-photo-video color-accent cursor-pointer" data-trigger="anywhere-upload-input"></span> + <div class="heading device-mobile--hide"><a data-trigger="anywhere-upload-input"><?php _se('Drag and drop or paste images here to upload'); ?></a></div> + <div class="heading device-nonmobile--hide"><a data-trigger="anywhere-upload-input"><?php _se('Select the images to upload'); ?></a></div> + <?php + $iconBrowse = '<i class="fas fa-folder-plus margin-right-5"></i>'; + $iconUrl = '<i class="fas fa-link margin-right-5"></i>'; + $iconCamera = '<i class="fas fa-camera margin-right-5"></i>'; + $you_can_add_two = getSetting('enable_uploads_url') + ? _s('You can also %i or %u.') + : _s('You can also %s.'); + $you_can_add_two_tr = [ + '%i' => '<a data-trigger="anywhere-upload-input">' . $iconBrowse . _s('browse from your computer') . '</a>', + '%u' => '<a data-modal="form" data-target="anywhere-upload-paste-url">' . $iconUrl . _s('add image URLs') . '</a>', + ]; + $you_can_add_two_tr['%s'] = $you_can_add_two_tr['%i']; + $you_can_add_three = getSetting('enable_uploads_url') + ? _s('You can also %i, %c or %u.') + : _s('You can also %i or %c.'); + ?> + <div class="device-mobile--hide upload-box-status-text"><?php echo strtr($you_can_add_two, $you_can_add_two_tr); ?></div> + <div class="device-nonmobile--hide upload-box-status-text"><?php echo strtr($you_can_add_three, [ + '%i' => '<a data-trigger="anywhere-upload-input">' . $iconBrowse . _s('browse from your device') . '</a>', + '%c' => '<a data-trigger="anywhere-upload-input-camera">' . $iconCamera . _s('take a picture') . '</a>', + '%u' => '<a data-modal="form" data-target="anywhere-upload-paste-url">' . $iconUrl . _s('add image URLs') . '</a>', + ]); ?></div> + <div class="upload-box-allowed-files margin-top-10"> + <span><?php echo str_replace(',', ' ', strtoupper(getSetting('upload_enabled_image_formats'))); ?></span> + <span class="margin-left-5"><?php echo getSetting('upload_max_filesize_mb') . ' MB'; ?> + <?php + if (getSetting('upload_max_filesize_mb_bak') != null && getSetting('upload_max_filesize_mb') != getSetting('upload_max_filesize_mb_bak')) { + ?> + <span class="fas fa-exclamation-triangle" rel="tooltip" data-tiptip="top" title="<?php _se('Register to get %s', format_bytes(get_bytes(getSetting('upload_max_filesize_mb_bak') . 'MB'))); ?>"></span> + <?php + } + ?></span> + </div> + </div> + <div data-group="upload-queue-ready" class="soft-hidden"> + <span class="icon fas fa-photo-video color-accent cursor-pointer" data-trigger="anywhere-upload-input"></span> + <div class="heading device-mobile--hide"><?php _se('Customize upload by %action% on any preview', ['%action%' => _s('clicking')]); ?></div> + <div class="heading device-nonmobile--hide"><?php _se('Customize upload by %action% on any preview', ['%action%' => _s('touching')]); ?></div> + <div class="device-mobile--hide upload-box-status-text"><?php echo strtr($you_can_add_two, $you_can_add_two_tr); ?></div> + <div class="device-nonmobile--hide upload-box-status-text"><?php echo strtr($you_can_add_three, [ + '%i' => '<a data-trigger="anywhere-upload-input">' . $iconBrowse . _s('browse from your device') . '</a>', + '%c' => '<a data-trigger="anywhere-upload-input-camera">' . $iconCamera . _s('take a picture') . '</a>', + '%u' => '<a data-modal="form" data-target="anywhere-upload-paste-url">' . $iconUrl . _s('add image URLs') . '</a>', + ]); ?></div> + </div> + <div data-group="uploading" class="soft-hidden"> + <span class="icon fas fa-cloud-upload-alt color-accent"></span> + <div class="heading"><?php _se('Uploading %q %o', [ + '%q' => '<span data-text="queue-size">0</span>', + '%o' => '<span data-text="queue-objects">' . _n('file', 'files', 10) . '</span>', + ]); ?> (<span data-text="queue-progress">0</span>% <?php _se('complete'); ?>)</div> + <div class="upload-box-status-text"><?php _se('The queue is being uploaded, it should take just a few seconds to complete.'); ?></div> + </div> + <div data-group="upload-result" data-result="success" class="soft-hidden"> + <span class="icon fas fa-check-circle color-success"></span> + <div class="heading"><?php _se('Upload complete'); ?></div> + <div class="upload-box-status-text"> + <div data-group="user" class="soft-hidden"> + <div data-group="user-stream" class="soft-hidden"> + <?php + $iconUser = '<i class="fas fa-user margin-right-5"></i>'; + $iconAlbum = '<i class="fas fa-images margin-right-5"></i>'; + $iconMove = '<i class="fas fa-exchange-alt margin-right-5"></i>'; + $iconSignup = '<i class="fas fa-user-plus margin-right-5"></i>'; + $iconSignin = '<i class="fas fa-sign-in-alt margin-right-5"></i>'; + $uploaded_message = _s('Uploaded content added to %s.') . ' '; + if (isset(Login::getUser()['album_count']) && Login::getUser()['album_count'] > 0) { + $uploaded_message .= _s('You can %c with the content just uploaded or %m.'); + } else { + $uploaded_message .= _s('You can %c with the content just uploaded.'); + } + echo strtr($uploaded_message, [ + '%s' => '<a data-link="upload-target">' . $iconUser . '<span data-text="upload-target"></span></a>', + '%c' => '<a data-modal="form" data-target="form-uploaded-create-album">' . $iconAlbum . _s('create a new album') . '</a>', + '%m' => '<a data-modal="form" data-target="form-uploaded-move-album">' . $iconMove . _s('move it to an existing album') . '</a>', + ]); + ?> + </div> + <div data-group="user-album" class="soft-hidden"><?php _se('Uploaded content added to %s.', '<a data-link="upload-target">' . $iconUser . '<span data-text="upload-target"></span></a>'); ?></div> + </div> + <div data-group="guest" class="soft-hidden"> + <?php + $uploaded_message = _s('You can %c with the content just uploaded.') . ' ' . _s('You must %s or %l to save this content into your account.'); + echo strtr($uploaded_message, [ + '%c' => '<a data-modal="form" data-target="form-uploaded-create-album">' . $iconAlbum . _s('create a new album') . '</a>', + '%s' => '<a href="' . get_base_url("signup") . '">' . $iconSignup . _s('create an account') . '</a>', + '%l' => '<a href="' . get_base_url("login") . '">' . $iconSignin . _s('sign in') . '</a>' + ]); + ?> + </div> + </div> + </div> + <div data-group="upload-result" data-result="error" class="soft-hidden"> + <span class="icon fas fa-times color-fail"></span> + <div class="heading"><?php _se('No %s have been uploaded', '<span data-text="queue-objects">' . _s('file') . '</span>');?></div> + <div class="upload-box-status-text"><?php _se("Some errors have occurred and the system couldn't process your request."); ?></div> + </div> + </div> + </div> + <input id="anywhere-upload-input" data-action="anywhere-upload-input"<?php if (!getSetting('guest_uploads')) { + ?> data-login-needed="true"<?php + } ?> class="hidden-visibility" type="file" accept="image/*, <?php echo '.' . implode(',.', Image::getEnabledImageFormats()); ?>" multiple> + <input id="anywhere-upload-input-camera" data-action="anywhere-upload-input"<?php if (!getSetting('guest_uploads')) { + ?> data-login-needed="true"<?php + } ?> class="hidden-visibility" type="file" capture="camera" accept="image/*"> + <ul id="anywhere-upload-queue" class="upload-box-queue content-width soft-hidden" data-group="upload-queue"></ul> + <div id="anywhere-upload-submit" class="btn-container text-align-center margin-bottom-0 soft-hidden" data-group="upload-queue-ready"> + <div data-group="upload-queue-ready"> + <?php + if (Login::isLoggedUser() && Login::getUser()['album_count'] > 0) { + ?> + <div class="input-label upload-input-col center-box text-align-left"> + <label for="upload-album-id"><?php _ne('Album', 'Albums', 1); ?></label> + <select name="upload-album-id" id="upload-album-id" class="text-input"> + <?php + $user_album_options_html = []; + foreach ($user_albums ?? [] as $album) { + $user_album_options_html[] = strtr('<option value="%id"%selected>%name</option>', [ + '%selected' => (Handler::var('album') !== [] && isset(Handler::var('album')['id_encoded']) && Handler::var('album')['id_encoded'] == $album['id_encoded']) ? ' selected' : '', + '%id' => $album['id_encoded'], + '%name' => $album['indent_string'] . $album['name_with_privacy_readable_html'] + ]); + } + $user_album_options_html = implode("\n", $user_album_options_html); + echo $user_album_options_html; ?> + </select> + </div> + <?php + } + ?> + <?php + if (Handler::var('categories')) { + ?> + <div class="input-label upload-input-col center-box text-align-left"> + <label for="upload-category-id"><?php _se('Category'); ?></label> + <select name="upload-category-id" id="upload-category-id" class="text-input"> + <option value><?php _se('Select category'); ?></option> + <?php + foreach (Handler::var('categories') as $category) { + ?> + <option value="<?php echo $category['id']; ?>"><?php echo $category['name']; ?></option> + <?php + } //for + ?> + </select> + </div> + <?php + } // categories? + ?> + <?php if (getSetting('enable_expirable_uploads')) { + ?> + <div class="input-label upload-input-col center-box text-align-left"> + <label for="upload-expiration"><?php _se('Auto delete'); ?></label> + <select type="text" name="upload-expiration" id="upload-expiration" class="text-input"> + <?php + $expirations = Image::getAvailableExpirations(); + if (!Login::isLoggedUser() && getSetting('auto_delete_guest_uploads') != null) { + $expirations = [$expirations[getSetting('auto_delete_guest_uploads')]]; + } + echo get_select_options_html($expirations, Login::isLoggedUser() ? Login::getUser()['image_expiration'] : null); ?> + </select> + <?php + if (!Login::isLoggedUser() && getSetting('auto_delete_guest_uploads') != null) { + ?> + <div class="input-below"><?php _se('%s to be able to customize or disable image auto delete.', '<a href="' . get_base_url('signup') . '">' . _s('Sign up') . '</a>'); ?></div> + <?php + } ?> + </div> + <?php + } ?> + <?php + if (getSetting('theme_nsfw_upload_checkbox') && !getSetting('enable_consent_screen')) { + ?> + <div class="margin-20"><span rel="tooltip" data-tiptip="top" title="<?php _se('Mark this if the upload is not family safe'); ?>"><input type="checkbox" name="upload-nsfw" id="upload-nsfw" class="margin-right-5" value="1"><label for="upload-nsfw"><?php _se('Not family safe upload'); ?></label></span></div> + <?php + } + if (!Login::isLoggedUser()) { + ?> + <div class="margin-20"><input type="checkbox" name="upload-tos" id="upload-tos" class="margin-right-5" value="1"><label for="upload-tos"><?php echo Handler::var('tos_privacy_agreement'); ?></label></div> + <?php + } ?> + <button class="btn btn-big accent" data-action="upload" data-public="<?php _se('Upload'); ?>" data-private="<?php _se('Private upload'); ?>"><i class="fas fa-cloud-upload-alt"></i> <?php echo Handler::cond('forced_private_mode') ? _s('Private upload') : _s('Upload'); ?></button> + </div> + <div data-group="uploading" class="soft-hidden"> + <button class="btn plain disabled btn-big plain margin-right-5" disabled data-action="upload-privacy-copy"><span class="icon fas fa-lock-open" data-lock="fa-lock" data-unlock="fa-lock-open"></span></button><button class="btn btn-big disabled off" disabled><?php _se('Uploading'); ?></button> <span class="btn-alt"><?php _se('or'); ?> <a data-action="cancel-upload" data-button="close-cancel"><?php _se('cancel'); ?></a><a data-action="cancel-upload-remaining" data-button="close-cancel" class="soft-hidden"><?php _se('cancel remaining'); ?></a></span> + </div> + </div> + <div id="anywhere-upload-report"> + <div data-group="upload-result" data-result="mixted" class="soft-hidden margin-top-10 text-align-center upload-box-status-text"><?php _se("Note: Some files couldn't be uploaded."); ?> <a data-modal="simple" data-target="failed-upload-result"><?php _se('learn more'); ?></a></div> + <div data-group="upload-result" data-result="error" class="soft-hidden margin-top-10 text-align-center upload-box-status-text"><?php _se('Check the <a data-modal="simple" data-target="failed-upload-result">error report</a> for more information.'); ?></div> + </div> + <div class="upload-box-close position-absolute"> + <a class="btn btn-small default" data-action="reset-upload" data-button="close-cancel"><span class="btn-icon fas fa-undo"></span><span class="btn-text"><?php _se('reset'); ?></span></a> + <a class="btn btn-small default" data-action="cancel-upload" data-button="close-cancel"><span class="btn-icon fas fa-times"></span><span class="btn-text"><?php _se('cancel'); ?></span></a> + <a class="btn btn-small default" data-action="cancel-upload-remaining" data-button="close-cancel"><span class="btn-icon fas fa-times"></span><span class="btn-text"><?php _se('cancel remaining'); ?></span></a> + </div> + <?php if (getSetting('theme_show_embed_uploader')) { + ?> + <div data-group="upload-result" data-result="success" class="c18 center-box soft-hidden"> + <div class="input-label margin-bottom-0"> + <?php + if (Handler::cond('moderate_uploads')) { + ?> + <div class="growl font-size-small static text-align-center margin-bottom-30 clear-both"><b><?php _se('Note'); ?>:</b> <?php _se('We must approve the uploaded content before being able to share.'); ?></div> + <?php + } ?> + <label for="uploaded-embed-toggle"><?php _se('Embed codes'); ?></label> + <div class="c7 margin-bottom-10"> + <select name="uploaded-embed-toggle" id="uploaded-embed-toggle" class="text-input" data-combo="uploaded-embed-toggle-combo"> + <?php + $tpl = Handler::cond('moderate_uploads') ? 'embed_unapproved_tpl' : 'embed_upload_tpl'; + foreach (get_global($tpl) as $key => $value) { + echo '<optgroup label="' . $value['label'] . '">' . "\n"; + foreach ($value['options'] as $k => $v) { + echo ' <option value="' . $k . '" data-size="' . $v["size"] . '">' . $v["label"] . '</option>' . "\n"; + } + echo '</optgroup>'; + } ?> + </select> + </div> + <div id="uploaded-embed-toggle-combo"> + <?php + $i = 0; + foreach (get_global('embed_upload_tpl') as $key => $value) { + foreach ($value['options'] as $k => $v) { + echo '<div data-combo-value="' . $k . '" class="switch-combo' . ($i > 0 ? " soft-hidden" : "") . '"> + <textarea id="uploaded-embed-code-' . $i . '" class="r2 resize-vertical" name="' . $k . '" data-size="' . $v["size"] . '" data-focus="select-all"></textarea> + <button type="button" class="input-action" data-action="copy" data-action-target="#uploaded-embed-code-' . $i . '"><i class="far fa-copy"></i> ' . _s('copy') . '</button> + <button class="input-action" data-action="openerPostMessage" data-action-target="#uploaded-embed-code-' . $i . '">' . _s('insert') . '</button> + </div>' . "\n"; + $i++; + } + } ?> + </div> + </div> + </div> + <?php + } ?> + </div> + </div> + <div class="hidden"> + <div id="anywhere-upload-item-template"> + <li class="queue-item"> + <a class="block image-link" data-group="image-link" href="#file" target="_blank"></a> + <div class="result done block"><span class="icon fas fa-check-circle color-white"></span></div> + <div class="result failed block"><span class="icon fas fa-exclamation-triangle color-fail"></span></div> + <div class="load-url block"><span class="big-icon fas fa-network-wired"></span></div> + <div class="preview block checkered-background"></div> + <div class="progress block"> + <div class="progress-bar" data-content="progress-bar"></div> + </div> + <div class="block edit" data-action="edit" title="<?php _se('Edit'); ?>"> + </div> + <div class="queue-item-button cancel hover-display" data-action="cancel" title="<?php _se('Remove'); ?>"> + <span class="icon fas fa-times"></span> + </div> + </li> + </div> + <div id="anywhere-upload-edit-item"> + <span class="modal-box-title"><i class="fas fa-edit"></i> <?php _se('Edit'); ?></span> + <div class="modal-form"> + <div class="image-preview"></div> + <div class="input-label"> + <label for="form-title"><?php _se('Title'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <input type="text" id="form-title" name="form-title" class="text-input" value="" maxlength="<?php echo getSetting('image_title_max_length'); ?>"> + </div> + <?php + if (Login::isLoggedUser() && Login::getUser()['album_count'] > 0) { + ?> + <div class="input-label c8"> + <label for="form-album-id"><?php _se('Album'); ?></label> + <select name="form-album-id" id="form-album-id" class="text-input"> + <?php echo $user_album_options_html ?? ''; ?> + </select> + </div> + <?php + } + ?> + <?php + if (Handler::var('categories')) { + ?> + <div class="input-label c8"> + <?php include_theme_file('snippets/form_category'); ?> + </div> + <?php + } + ?> + <div class="input-label" data-action="resize-combo-input"> + <label for="form-width" class="display-block-forced"><?php _se('Resize image'); ?></label> + <div class="c6 overflow-auto clear-both"> + <div class="c3 float-left"> + <input type="number" min="16" pattern="\d+" name="form-width" id="form-width" class="text-input" title="<?php _se('Width'); ?>" rel="template-tooltip" data-tiptip="top"> + </div> + <div class="c3 float-left margin-left-10"> + <input type="number" min="16" pattern="\d+" name="form-height" id="form-height" class="text-input" title="<?php _se('Height'); ?>" rel="template-tooltip" data-tiptip="top"> + </div> + </div> + <div class="input-below font-size-small" data-content="animated-gif-warning"><?php _se("Note: Animated GIF images won't be resized."); ?></div> + </div> + <?php if (getSetting('enable_expirable_uploads')) { + ?> + <div class="input-label"> + <label for="form-expiration"><?php _se('Auto delete'); ?></label> + <div class="c6 phablet-1"> + <select type="text" name="form-expiration" id="form-expiration" class="text-input"> + <?php + $expirations = Image::getAvailableExpirations(); + if (!Login::isLoggedUser() && getSetting('auto_delete_guest_uploads') != null) { + $expirations = [$expirations[getSetting('auto_delete_guest_uploads')]]; + } + echo get_select_options_html($expirations, Login::isLoggedUser() ? Login::getUser()['image_expiration'] : null); ?> + </select> + </div> + <?php + if (!Login::isLoggedUser() && getSetting('auto_delete_guest_uploads') != null) { + ?> + <div class="input-below"><?php _se('%s to be able to customize or disable image auto delete.', '<a href="' . get_base_url('signup') . '">' . _s('Sign up') . '</a>'); ?></div> + <?php + } ?> + </div> + <?php + } ?> + <?php if (getSetting('theme_nsfw_upload_checkbox')) { + ?> + <div class="checkbox-label"> + <div class="display-inline" rel="template-tooltip" data-tiptip="right" data-title="<?php _se('Mark this if the image is not family safe'); ?>"> + <label for="form-nsfw"> + <input class="float-left" type="checkbox" name="form-nsfw" id="form-nsfw" value="1"><?php _se('Flag as unsafe'); ?> + </label> + </div> + </div> + <?php + } ?> + <div class="input-label"> + <label for="form-description"><?php _se('Description'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <textarea id="form-description" name="form-description" class="text-input no-resize" placeholder="<?php _se('Brief description of this image'); ?>"></textarea> + </div> + </div> + </div> + <?php if (getSetting('enable_uploads_url')) { ?> + <div id="anywhere-upload-paste-url" data-submit-fn="CHV.fn.uploader.pasteURL"> + <span class="modal-box-title"><?php echo $iconUrl; _se('Add image URLs'); ?></span> + <div class="modal-form"> + <textarea class="resize-vertical" placeholder="<?php _se('Add the image URLs here'); ?>" name="urls"></textarea> + </div> + </div> + <?php } ?> + </div> + <?php + global $new_album, $user_items_editor; + $new_album = true; + $user_items_editor = [ + "user_albums" => $user_albums ?? null, + "type" => "albums" + ]; + ?> + <div data-modal="form-uploaded-create-album" class="hidden" data-is-xhr data-submit-fn="CHV.fn.submit_upload_edit" data-ajax-deferred="CHV.fn.complete_upload_edit"> + <span class="modal-box-title"><i class="fas fa-images"></i> <?php _se('Create album'); ?></span> + <p><?php + _se('The uploaded content will be moved to this newly created album.'); + echo ' '; + if (!Login::isLoggedUser()) { + _se("You must %s or %l if you want to edit this album later on.", [ + '%s' => '<a href="' . get_base_url("signup") . '">' . $iconSignup . _s('create an account') . '</a>', + '%l' => '<a href="' . get_base_url("login") . '">' . $iconSignin . _s('sign in') . '</a>' + ]); + } + ?></p> + <div class="modal-form"> + <?php + if (Login::isLoggedUser()) { + ?> + <div name="move-existing-album" id="move-existing-album" data-view="switchable" class="c7 input-label soft-hidden"> + <?php include_theme_file("snippets/form_move_existing_album"); ?> + </div> + <?php + } + ?> + <div name="move-new-album" id="move-new-album" data-content="form-new-album" data-view="switchable"> + <?php include_theme_file("snippets/form_album"); ?> + </div> + </div> + </div> + <?php + if (Login::isLoggedUser()) { + ?> + <div data-modal="form-uploaded-move-album" class="hidden" data-is-xhr data-submit-fn="CHV.fn.submit_upload_edit" data-ajax-deferred="CHV.fn.complete_upload_edit"> + <span class="modal-box-title"><i class="fas fa-exchange-alt"></i> <?php _se('Move to album'); ?></span> + <p><?php _se('Select an existing album to move the uploaded content.'); ?></p> + <div class="modal-form"> + <div name="move-existing-album" id="move-existing-album" data-view="switchable" class="c7 input-label"> + <?php include_theme_file("snippets/form_move_existing_album"); ?> + </div> + <div name="move-new-album" id="move-new-album" data-content="form-new-album" data-view="switchable" class="soft-hidden"> + <?php include_theme_file("snippets/form_album"); ?> + </div> + </div> + </div> + <?php + } + ?> + <div data-modal="failed-upload-result" class="hidden"> + <span class="modal-box-title"><i class="fas fa-exclamation-circle"></i> <?php _se('Error report'); ?></span> + <ul data-content="failed-upload-result" style="max-height: 115px;" class="overflow-auto"></ul> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/breadcrum_owner_card.php b/content/legacy/themes/Peafowl/snippets/breadcrum_owner_card.php new file mode 100644 index 0000000..5f4af8a --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/breadcrum_owner_card.php @@ -0,0 +1,26 @@ +<?php + +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<?php +$owner = Handler::var('owner') ?? get_global("owner"); +?> +<div class="breadcrum-item pop-btn pop-btn-auto pop-keep-click pop-btn-desktop margin-right-0"> + <a href="<?php echo $owner['url']; ?>" class="user-image"> + <?php if (isset($owner['avatar']['url'])) { + ?> + <img class="user-image" src="<?php echo $owner['avatar']['url']; ?>" alt="<?php echo $owner['username']; ?>"> + <?php +} else { + ?> + <span class="user-image default-user-image"><span class="icon fas fa-user-circle"></span></span> + <?php + } ?> + </a> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/embed.php b/content/legacy/themes/Peafowl/snippets/embed.php new file mode 100644 index 0000000..8adab20 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/embed.php @@ -0,0 +1,127 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +global $embed_upload_tpl, $embed_unapproved_tpl, $embed_share_tpl; +$embed_upload_tpl = [ + 'links' => [ + 'label' => _s('Links'), + 'options' => [ + 'viewer-links' => [ + 'label' => _s('%s links', _s('Viewer')), + 'template' => '%URL_VIEWER%', + 'size' => 'viewer', + ], + 'direct-links' => [ + 'label' => _s('%s links', _s('Direct')), + 'template' => '%URL%', + 'size' => 'full', + ], + 'delete-links' => [ + 'label' => _s('%s links', _s('Delete')), + 'template' => '%DELETE_URL%', + 'size' => 'full', + ], + ], + ], + 'html-codes' => [ + 'label' => _s('HTML Codes'), + 'options' => [ + 'html-embed' => [ + 'label' => _s('HTML image'), + 'template' => '<img src="%URL%" alt="%FILENAME%" border="0">', + 'size' => 'full', + ], + 'html-embed-full' => [ + 'label' => _s('HTML full linked'), + 'template' => '<a href="%URL_VIEWER%"><img src="%URL%" alt="%FILENAME%" border="0"></a>', + 'size' => 'full', + ], + 'html-embed-medium' => [ + 'label' => _s('HTML medium linked'), + 'template' => '<a href="%URL_VIEWER%"><img src="%MEDIUM_URL%" alt="%MEDIUM_FILENAME%" border="0"></a>', + 'size' => 'medium', + ], + 'html-embed-thumbnail' => [ + 'label' => _s('HTML thumbnail linked'), + 'template' => '<a href="%URL_VIEWER%"><img src="%THUMB_URL%" alt="%THUMB_FILENAME%" border="0"></a>', + 'size' => 'thumb', + ], + ], + ], + 'bbcodes' => [ + 'label' => _s('BBCodes'), + 'options' => [ + 'bbcode-embed' => [ + 'label' => _s('BBCode full'), + 'template' => '[img]%URL%[/img]', + 'size' => 'full', + ], + 'bbcode-embed-full' => [ + 'label' => _s('BBCode full linked'), + 'template' => '[url=%URL_VIEWER%][img]%URL%[/img][/url]', + 'size' => 'full', + ], + 'bbcode-embed-medium' => [ + 'label' => _s('BBCode medium linked'), + 'template' => '[url=%URL_VIEWER%][img]%MEDIUM_URL%[/img][/url]', + 'size' => 'medium', + ], + 'bbcode-embed-thumbnail' => [ + 'label' => _s('BBCode thumbnail linked'), + 'template' => '[url=%URL_VIEWER%][img]%THUMB_URL%[/img][/url]', + 'size' => 'thumb', + ], + ], + ], + 'markdown' => [ + 'label' => 'Markdown', + 'options' => [ + 'markdown-embed' => [ + 'label' => _s('Markdown full'), + 'template' => '![%FILENAME%](%URL%)', + 'size' => 'full', + ], + 'markdown-embed-full' => [ + 'label' => _s('Markdown full linked'), + 'template' => '[![%FILENAME%](%URL%)](%URL_VIEWER%)', + 'size' => 'full', + ], + 'markdown-embed-medium' => [ + 'label' => _s('Markdown medium linked'), + 'template' => '[![%MEDIUM_FILENAME%](%MEDIUM_URL%)](%URL_VIEWER%)', + 'size' => 'medium', + ], + 'markdown-embed-thumbnail' => [ + 'label' => _s('Markdown thumbnail linked'), + 'template' => '[![%THUMB_FILENAME%](%THUMB_URL%)](%URL_VIEWER%)', + 'size' => 'thumb', + ], + ], + ], +]; +$embed_unapproved_tpl = [ + 'links' => [ + 'label' => _s('Links'), + 'options' => [ + 'viewer-links' => [ + 'label' => _s('Viewer links'), + 'template' => '%URL_VIEWER%', + 'size' => 'viewer', + ], + ], + ], +]; +$embed_share_tpl = $embed_upload_tpl; +unset($embed_share_tpl['links']['options']['delete-links']); diff --git a/content/legacy/themes/Peafowl/snippets/embed_tpl.php b/content/legacy/themes/Peafowl/snippets/embed_tpl.php new file mode 100644 index 0000000..b08bea9 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/embed_tpl.php @@ -0,0 +1,59 @@ +<?php +use function Chevereto\Legacy\G\get_global; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<script> + $(document).ready(function() { + if(typeof CHV == "undefined") { + CHV = {obj: {}, fn: {}, str:{}}; + } else { + if(typeof CHV.obj.embed_share_tpl == "undefined") { + CHV.obj.embed_share_tpl = {}; + } + if(typeof CHV.obj.embed_upload_tpl == "undefined") { + CHV.obj.embed_upload_tpl = {}; + } + } + CHV.obj.embed_share_tpl = <?php $embed_share_tpl = get_global('embed_share_tpl'); echo json_encode($embed_share_tpl); ?>; + CHV.obj.embed_upload_tpl = <?php $embed_upload_tpl = get_global('embed_upload_tpl'); echo json_encode($embed_upload_tpl); ?>; + }); +</script> +<div data-modal="form-embed-codes" class="hidden"> + <span class="modal-box-title"><i class="fas fa-code"></i> <?php _se('Embed codes'); ?></span> + <div class="image-preview"></div> + <div class="input-label margin-bottom-0"> + <div class="c7 margin-bottom-10"> + <select name="form-embed-toggle" id="form-embed-toggle" class="text-input" data-combo="form-embed-toggle-combo"> + <?php + foreach (get_global('embed_share_tpl') as $key => $value) { + echo '<optgroup label="' . $value['label'] . '">' . "\n"; + foreach ($value['options'] as $k => $v) { + if ($k === 'delete-links') { + continue; + } + echo ' <option value="' . $k . '" data-size="' . $v["size"] . '">' . $v["label"] . '</option>' . "\n"; + } + echo '</optgroup>'; + } + ?> + </select> + </div> + <div id="form-embed-toggle-combo"> + <?php + $i = 0; + foreach (get_global('embed_share_tpl') as $key => $value) { + foreach ($value['options'] as $k => $v) { + echo '<div data-combo-value="' . $k . '" class="switch-combo' . ($i > 0 ? " soft-hidden" : "") . '"> + <textarea id="modal-embed-code-' . $i . '" class="r3 resize-vertical" name="' . $k . '" data-size="' . $v["size"] . '" data-focus="select-all"></textarea> + <button type="button" class="input-action" data-action="copy" data-action-target="#modal-embed-code-' . $i . '"><i class="far fa-copy"></i> ' . _s('copy') . '</button> + </div>' . "\n"; + $i++; + } + } + ?> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/footer.js.php b/content/legacy/themes/Peafowl/snippets/footer.js.php new file mode 100644 index 0000000..564bd57 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/footer.js.php @@ -0,0 +1,165 @@ +<?php + +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_app_version; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_public_url; +use function Chevereto\Legacy\G\get_route_name; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\is_prevented_route; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\G\str_replace_first; +use function Chevereto\Legacy\get_captcha_invisible_html; +use function Chevereto\Legacy\get_translation_table; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\getSettings; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php if (getSetting('website_search')) { + ?> + <script type="application/ld+json"> + { + "@context": "http://schema.org", + "@type": "WebSite", + "url": "<?php echo get_public_url(); ?>", + "potentialAction": { + "@type": "SearchAction", + "target": "<?php echo get_public_url('search/images/?q={q}'); ?>", + "query-input": "required name=q" + } + } + </script> +<?php +} +if (Handler::cond('captcha_needed') && getSetting('captcha_api') == '3') { + echo get_captcha_invisible_html(); +} +?> +<script data-cfasync="false"> + document.getElementById("chevereto-js").addEventListener("load", function() { + PF.obj.devices = window.devices; + PF.fn.window_to_device = window.window_to_device; + PF.obj.config.base_url = "<?php echo get_base_url(); ?>"; + PF.obj.config.json_api = "<?php echo get_base_url('json'); ?>"; + PF.obj.config.listing.items_per_page = "<?php echo getSetting('listing_items_per_page'); ?>"; + PF.obj.config.listing.device_to_columns = <?php echo json_encode(getSetting('listing_device_to_columns')); ?>; + PF.obj.config.auth_token = "<?php echo Handler::var('auth_token'); ?>"; + PF.obj.l10n = <?php echo json_encode(get_translation_table()); ?>; + if (typeof CHV == "undefined") { + CHV = { + obj: {}, + fn: {}, + str: {} + }; + } + CHV.obj.vars = { + urls: { + home: PF.obj.config.base_url, + search: "<?php echo get_base_url("search"); ?>", + login: "<?php echo get_base_url("login"); ?>", + } + }; + PF.obj.vars = $.extend({}, CHV.obj.vars); + CHV.obj.config = { + image: { + max_filesize: "<?php echo getSetting('upload_max_filesize_mb') . ' MB'; ?>", + right_click: <?php echo json_encode(getSetting('theme_image_right_click')); ?>, + load_max_filesize: "<?php echo getSetting('image_load_max_filesize_mb') . ' MB'; ?>", + max_width: <?php echo json_encode(getSetting('upload_max_image_width')); ?>, + max_height: <?php echo json_encode(getSetting('upload_max_image_height')); ?>, + }, + upload: { + url: <?php echo json_encode(getSetting('enable_uploads_url')); ?>, + redirect_single_upload: <?php echo json_encode(getSetting('enable_redirect_single_upload')); ?>, + threads: <?php echo json_encode(getSetting('upload_threads')); ?>, + image_types: <?php echo json_encode(Image::getEnabledImageFormats()); ?>, + moderation: <?php echo json_encode(Handler::cond('moderate_uploads')); ?>, + maxQueue: <?php echo json_encode(Handler::var('upload_max_queue')); ?>, + }, + user: { + avatar_max_filesize: "<?php echo getSetting('user_image_avatar_max_filesize_mb') . ' MB'; ?>", + background_max_filesize: "<?php echo getSetting('user_image_background_max_filesize_mb') . ' MB'; ?>", + }, + captcha: { + isNeeded: <?php echo json_encode(Handler::cond('captcha_needed')); ?>, + version: '<?php echo getSetting('captcha_api'); ?>', + enabled: <?php echo getSettings()['captcha'] ? 'true' : 'false'; ?>, + sitekey: "<?php echo getSetting('captcha_sitekey'); ?>", + }, + listing: { + viewer: <?php echo Settings::get('listing_viewer') ? 'true' : 'false'; ?>, + }, + palettesId: <?php echo json_encode(Handler::var('palettes')->handlesToId()); ?> + }; + <?php + $page_info = [ + 'doctitle' => Handler::var('safe_html_doctitle') ?? '', + 'pre_doctitle' => Handler::var('safe_html_pre_doctitle') ?? '' + ]; + if ($page_info['pre_doctitle']) { + $page_info['pos_doctitle'] = str_replace_first($page_info['pre_doctitle'], '', $page_info['doctitle']); + } + ?> + CHV.obj.page_info = <?php echo json_encode($page_info); ?>; + <?php + if (Login::isLoggedUser()) { + $logged_user = Login::getUser(); + $logged_user_array = []; + foreach (['name', 'username', 'id', 'url', 'url_albums'] as $arr) { + $logged_user_array[$arr] = $logged_user[$arr == 'id' ? 'id_encoded' : $arr]; + } ?> + CHV.obj.logged_user = <?php echo json_encode($logged_user_array); ?>; + <?php + if (Login::isAdmin()) { ?> + CHV.obj.system_info = <?php echo json_encode(['version' => get_app_version()]); ?>; + <?php + } + } + if (!is_prevented_route() && !Handler::cond('404') && in_array(get_route_name(), ["image", "album", "user", "settings"]) or (Handler::hasCond('dashboard_user') && Handler::cond('dashboard_user'))) { + if (in_array(get_route_name(), ["settings", "dashboard"])) { + $route = ['id' => null, 'url' => null]; + $route_user = Handler::var('user'); + } else { + $route_var = Handler::var(get_route_name()); + if ($route_var !== null) { + $route = $route_var; + $route_user = get_route_name() == "user" ? $route : ($route["user"] ?? null); + } + } ?> + CHV.obj.resource = { + privacy: "<?php echo Handler::var('privacy') ?? ''; ?>", + id: "<?php echo $route["id_encoded"] ?? ''; ?>", + type: "<?php echo get_route_name(); ?>", + url: "<?php echo get_route_name() === "image" + ? $route["path_viewer"] ?? '' + : $route["url"] ?? ''; ?>", + parent_url: "<?php echo Handler::var('image') !== null + ? ( + (Handler::var('image')['user']['is_private'] ?? false) + ? get_base_url() + : Handler::var('image')['album']['url'] ?? '' + ) + : (get_route_name() == 'dashboard' + ? null + : $route_user['url'] ?? '') ?>" + }; + <?php + if (isset($route_user)) { ?> + CHV.obj.resource.user = { + name: "<?php echo safe_html($route_user["name"] ?? ''); ?>", + username: "<?php echo safe_html($route_user["username"] ?? ''); ?>", + id: "<?php echo $route_user["id_encoded"] ?? 0; ?>", + url: "<?php echo $route_user["url"] ?? ''; ?>", + url_albums: "<?php echo $route_user["url_albums"] ?? ''; ?>" + }; + <?php + } + } + ?> + }); +</script> diff --git a/content/legacy/themes/Peafowl/snippets/form_album.php b/content/legacy/themes/Peafowl/snippets/form_album.php new file mode 100644 index 0000000..1fb754c --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/form_album.php @@ -0,0 +1,58 @@ +<?php +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php $album = Handler::var('album_safe_html'); ?> +<div class="input-label"> + <?php + $label = 'form-album-name'; + ?> + <label for="<?php echo $label; ?>"><?php _se('Album name'); ?></label> + <input type="text" name="<?php echo $label; ?>" class="text-input" value="<?php echo $album["name"] ?? null; ?>" placeholder="<?php _se('Album name'); ?>" maxlength="<?php echo getSetting('album_name_max_length'); ?>" required autocomplete="off"> + <?php if (Login::isLoggedUser() && !isset($GLOBALS['theme_include_args'], $GLOBALS['theme_include_args']['album-switch'])) { + ?> + <span data-action="album-switch" class="btn-alt c7"><?php _se('or'); ?> <a data-switch="move-existing-album"><i class="fas fa-exchange-alt margin-right-5"></i><?php _se('move to existing album'); ?></a></span> + <?php + } ?> +</div> +<div class="input-label"> + <label for="form-album-description"><?php _se('Album description'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <textarea id="form-album-description" name="form-album-description" class="text-input no-resize" placeholder="<?php _se('Brief description of this album'); ?>"><?php echo $album['description'] ?? null; ?></textarea> +</div> +<?php if (getSetting('website_privacy_mode') == 'public' or (getSetting('website_privacy_mode') == 'private' and getSetting('website_content_privacy_mode') == 'default')) { + ?> +<div class="input-label overflow-auto"> + <div class="c7 grid-columns"> + <label for="form-privacy"><?php _se('Album privacy'); ?></label> + <select name="form-privacy" id="form-privacy" class="text-input" data-combo="form-privacy-combo" rel="template-tooltip" data-tiptip="right" data-title="<?php _se('Who can view this content'); ?>"> + <?php + $permissions = [ + 'public' => ['label' => _s('Public')], + 'private' => ['label' => _s('Private (just me)')], + 'private_but_link' => ['label' => _s('Private (anyone with the link)')], + 'password' => ['label' => _s('Private (password protected)')], + ]; + foreach ($permissions as $k => $v) { + echo '<option ' . ((Login::isLoggedUser() == false && $k == 'private') ? ' disabled' : '') . ' value="' . $k . '"' . (($album['privacy'] ?? null) == $k ? ' selected' : '') . '>' . $v['label'] . '</option>'; + } ?> + </select> + </div> +</div> +<div id="form-privacy-combo"> + <div data-combo-value="password" class="switch-combo<?php echo($album['privacy'] ?? null) !== 'password' ? ' soft-hidden' : null; ?>"> + <div class="input-label overflow-auto"> + <div class="c7 grid-columns"> + <label for="form-album-password"><?php _se('Album password'); ?></label> + <p></p> + <input type="text" name="form-album-password" class="text-input" placeholder="<?php isset($album['password']) ? _se('Change password') : _se('Set password'); ?>" data-required<?php echo($album['privacy'] ?? null) == 'password' ? ' required' : null; ?>> + </div> + </div> + </div> +</div> +<?php + } ?> diff --git a/content/legacy/themes/Peafowl/snippets/form_category.php b/content/legacy/themes/Peafowl/snippets/form_category.php new file mode 100644 index 0000000..65dd710 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/form_category.php @@ -0,0 +1,29 @@ +<?php + +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php $user_items_editor = Handler::var('user_items_editor') ?? get_global('user_items_editor'); ?> +<label for="form-category-id"><?php _se('Category'); ?></label> +<select name="form-category-id" id="form-category-id" class="text-input"> + <?php + $categories = Handler::var('categories'); + array_unshift($categories, [ + 'id' => null, + 'name' => _s('Select category'), + 'url_key' => null, + 'url' => null + ]); + foreach ($categories as $category) { + ?> + <option value="<?php echo $category['id']; ?>"<?php if ($category['id'] == ($user_items_editor['category_id'] ?? null)) { + echo " selected"; + } ?>><?php echo $category['name']; ?></option> + <?php + } + ?> +</select> diff --git a/content/legacy/themes/Peafowl/snippets/form_category_edit.php b/content/legacy/themes/Peafowl/snippets/form_category_edit.php new file mode 100644 index 0000000..1006e35 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/form_category_edit.php @@ -0,0 +1,17 @@ +<?php // @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div class="input-label c8"> + <label for="form-category-name"><?php _se('Name'); ?></label> + <input type="text" id="form-category-name" name="form-category-name" class="text-input" value="" placeholder="<?php _se("Category name") ?>" required maxlength="32"> +</div> +<div class="input-label c8"> + <label for="form-category-url_key"><?php _se('URL key'); ?></label> + <input type="text" id="form-category-url_key" name="form-category-url_key" class="text-input" value="" placeholder="<?php _se("Category URL key") ?>" required maxlength="32" rel="template-tooltip" data-tiptip="right" data-title="<?php _se('Only letters, numbers, and hyphens'); ?>"> +</div> +<div class="input-label"> + <label for="form-category-description"><?php _se('Description'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <textarea id="form-category-description" name="form-category-description" class="text-input no-resize" placeholder="<?php _se('Brief description of this category'); ?>"></textarea> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/form_image.php b/content/legacy/themes/Peafowl/snippets/form_image.php new file mode 100644 index 0000000..eb3bc22 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/form_image.php @@ -0,0 +1,47 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div class="input-label"> + <label for="form-image-title"><?php _se('Title'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <input type="text" id="form-image-title" name="form-image-title" class="text-input" value="<?php echo Handler::hasVar('image_safe_html') ? Handler::var('image_safe_html')["title"] : ''; ?>" placeholder="<?php _se('Untitled image'); ?>" maxlength="<?php echo getSetting('image_title_max_length'); ?>"> +</div> +<?php + if (!Handler::hasVar('image') || isset(Handler::var('image')['user'])) { + ?> +<div id="move-existing-album" data-view="switchable" class="c7 input-label"> + <?php include_theme_file("snippets/form_move_existing_album"); ?> +</div> +<div id="move-new-album" data-content="form-new-album" data-view="switchable" class="soft-hidden"> + <?php include_theme_file("snippets/form_album"); ?> +</div> +<?php + } +?> +<?php + if (Handler::var('categories') !== []) { + ?> +<div class="input-label c8"> + <?php include_theme_file('snippets/form_category'); ?> +</div> +<?php + } +?> +<div class="checkbox-label"><span rel="template-tooltip" data-tiptip="right" data-title="<?php _se('Mark this if the image is not safe for work'); ?>"><label for="form-nsfw"><input class="float-left" type="checkbox" name="form-nsfw" id="form-nsfw"<?php if (Handler::hasVar('image') and Handler::var('image')['nsfw']) { + echo ' checked'; +} +if (!Handler::cond('allowed_nsfw_flagging')) { + echo ' disabled'; +} +?>><span class="no-select"><i class="fas fa-flag"></i> <?php _se('Flag not safe'); ?></span></label></span></div> +<div class="input-label"> + <label for="form-image-description"><?php _se('Description'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <textarea id="form-image-description" name="form-image-description" class="text-input no-resize" placeholder="<?php _se('Brief description of this image'); ?>"><?php echo Handler::var('image_safe_html')["description"] ?? ''; ?></textarea> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/form_move_existing_album.php b/content/legacy/themes/Peafowl/snippets/form_move_existing_album.php new file mode 100644 index 0000000..54b82ed --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/form_move_existing_album.php @@ -0,0 +1,23 @@ +<?php + +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php $user_items_editor = get_global('user_items_editor') ?: Handler::var('user_items_editor'); ?> +<label for="form-album-id"><?php echo !isset($user_items_editor['album']) ? _s('Existing album') : _n('Album', 'Albums', 1); ?></label> +<select name="form-album-id" id="form-album-id" class="text-input"> + <?php + foreach ($user_items_editor['user_albums'] ?? [] as $album) { + ?> + <option value="<?php echo $album['id_encoded'] ?? ''; ?>"<?php if (isset($user_items_editor['album']) && $album['id'] == $user_items_editor['album']['id']) { + echo " selected"; + } ?>><?php echo($album['indent_string'] ?? '') . $album['name_with_privacy_readable_html']; ?></option> + <?php + } + ?> +</select> +<span class="btn-alt c7"><?php _se('or'); ?> <a data-switch="move-new-album"><i class="fas fa-images margin-right-5"></i><?php _se('create new album'); ?></a></span> diff --git a/content/legacy/themes/Peafowl/snippets/form_sub_album.php b/content/legacy/themes/Peafowl/snippets/form_sub_album.php new file mode 100644 index 0000000..6a6cf23 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/form_sub_album.php @@ -0,0 +1,55 @@ +<?php +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<input type="hidden" name="form-album-parent-id" value="<?php echo Handler::var('album')['id_encoded']; ?>"> +<div class="input-label"> + <?php + $label = 'form-album-name'; + ?> + <label for="<?php echo $label; ?>"><?php _se('Album name'); ?></label> + <input type="text" name="<?php echo $label; ?>" class="text-input" value="" placeholder="<?php _se('Album name'); ?>" maxlength="<?php echo getSetting('album_name_max_length'); ?>" required autocomplete="off"> +</div> +<div class="input-label"> + <label for="form-album-description"><?php _se('Album description'); ?> <span class="optional"><?php _se('optional'); ?></span></label> + <textarea id="form-album-description" name="form-album-description" class="text-input no-resize" placeholder="<?php _se('Brief description of this album'); ?>"></textarea> +</div> +<?php if (getSetting('website_privacy_mode') == 'public' or (getSetting('website_privacy_mode') == 'private' and getSetting('website_content_privacy_mode') == 'default')) { + ?> +<div class="input-label overflow-auto"> + <div class="c7 grid-columns"> + <label for="form-privacy"><?php _se('Album privacy'); ?></label> + <select name="form-privacy" id="form-privacy" class="text-input" data-combo="form-privacy-combo" rel="template-tooltip" data-tiptip="right" data-title="<?php _se('Who can view this content'); ?>"> + <?php + $permissions = [ + 'public' => ['label' => _s('Public')], + 'private' => ['label' => _s('Private (just me)')], + 'private_but_link' => ['label' => _s('Private (anyone with the link)')], + 'password' => ['label' => _s('Private (password protected)')], + ]; + if (!Login::isLoggedUser()) { + unset($permissions['private']); + } + foreach ($permissions as $k => $v) { + echo '<option value="' . $k . '">' . $v['label'] . '</option>'; + } ?> + </select> + </div> +</div> +<div id="form-privacy-combo"> + <div data-combo-value="password" class="switch-combo soft-hidden"> + <div class="input-label overflow-auto"> + <div class="c7 grid-columns"> + <label for="form-album-password"><?php _se('Album password'); ?></label> + <input type="text" name="form-album-password" class="text-input" value="" placeholder="<?php _se('Set password'); ?>"> + </div> + </div> + </div> +</div> +<?php + } ?> diff --git a/content/legacy/themes/Peafowl/snippets/homepage_cover_slideshow.php b/content/legacy/themes/Peafowl/snippets/homepage_cover_slideshow.php new file mode 100644 index 0000000..a6f6a02 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/homepage_cover_slideshow.php @@ -0,0 +1,22 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<div id="home-cover-slideshow"> + <?php + $i = 0; + foreach (getSetting('homepage_cover_images_shuffled') ?? [] as $k => $v) { + if ($i > 1 && Handler::cond('mobile_device')) { + break; + } ?> + <div class="home-cover-img" data-src="<?php echo $v['url']; ?>"></div> + <?php + $i++; + } + ?> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/image.js.php b/content/legacy/themes/Peafowl/snippets/image.js.php new file mode 100644 index 0000000..6ac5798 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/image.js.php @@ -0,0 +1,128 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<script data-cfasync="false"> + var divLoading = document.createElement("div"); + var panelThumbs = document.querySelector('.panel-thumbs'); + var panelThumbList = document.querySelectorAll('.panel-thumb-list > li'); + divLoading.id = "image-viewer-loading"; + divLoading.className = "soft-hidden"; + document.getElementById("image-viewer").appendChild(divLoading); + image_viewer_full_fix = function() { + var viewer = document.getElementById("image-viewer"), + container = document.getElementById("image-viewer-container"), + zoomAble = viewer.getElementsByTagName('img')[0], + top = document.getElementById("top-bar"), + imgSource = { + width: <?php echo Handler::var('image')["width"]; ?>, + height: <?php echo Handler::var('image')["height"]; ?> + }, + img = {width: imgSource.width, height: imgSource.height}, + ratio = imgSource.width/imgSource.height; + var canvas = { + height: window.innerHeight - (typeof top !== "undefined" ? top.clientHeight : 0), + width: viewer.clientWidth + }; + var viewer_banner_top = <?php echo getSetting('banner_image_image-viewer_top') ? 1 : 0; ?>, + viewer_banner_foot = <?php echo getSetting('banner_image_image-viewer_foot') ? 1 : 0; ?>; + var viewer_banner_height = 90; + if(viewer_banner_top) { + canvas.height -= viewer_banner_height + 20; + } + if(viewer_banner_foot) { + canvas.height -= viewer_banner_height + 20; + } + if (panelThumbList.length > 0) { + canvas.height -= panelThumbs.offsetHeight; + } + if(1/ratio < 2) { + container.style.height = canvas.height + "px"; + } + var hasClass = function(element, cls) { + return (" " + element.className + " ").indexOf(" " + cls + " ") > -1; + } + if(img.width > canvas.width) { + img.width = canvas.width; + } + img.height = (img.width/ratio); + if(zoomAble.dataset.is360 == '0') { + if(img.height > canvas.height && (img.height/img.width) < 3) { + img.height = canvas.height; + } + if(img.height == canvas.height) { + img.width = (img.height * ratio); + } + if(imgSource.width !== img.width) { + if(img.width > canvas.width) { + img.width = canvas.width; + img.height = (img.width/ratio); + } else if((img.height/img.width) > 3) { + img = imgSource; + if(img.width > canvas.width) { + img.width = canvas.width * 0.8; + } + img.height = (img.width/ratio); + } + } + if(imgSource.width > img.width || img.width <= canvas.width) { + if(img.width == canvas.width || imgSource.width == img.width) { + zoomAble.className = zoomAble.className.replace(/\s+cursor-zoom-(in|out)\s+/, " "); + } else { + if(!hasClass(zoomAble, "cursor-zoom-in")) { + zoomAble.className += " cursor-zoom-in"; + } else { + zoomAble.className = zoomAble.className.replace(/\s+cursor-zoom-in\s+/, " "); + if(!hasClass(zoomAble, "cursor-zoom-in")) { + zoomAble.className += " cursor-zoom-in"; + styleContainer = false; + } + } + } + zoomAble.className = zoomAble.className.trim().replace(/ +/g, ' '); + } + } + img = { + width: img.width + "px", + height: img.height + "px", + display: "block" + } + if(zoomAble.style.width !== img.width) { + for(var k in img) { + zoomAble.style[k] = img[k]; + } + } + if (panelThumbList.length > 0) { + document.querySelector('#panel-thumb-list li.current').scrollIntoView({ + behavior: 'auto', + block: 'nearest', + inline: 'nearest' + }); + } + } + image_viewer_full_fix(); + document.addEventListener('DOMContentLoaded', function(event) { + CHV.obj.image_viewer.image = { + width: <?php echo Handler::var('image')["width"]; ?>, + height: <?php echo Handler::var('image')["height"]; ?>, + ratio: <?php echo number_format((float) (Handler::var('image')['ratio'] ?? 1), 6, '.', ''); ?>, + url: "<?php echo Handler::var('image')["url"]; ?>", + medium: { + url: "<?php echo Handler::var('image')["medium"]["url"] ?? ''; ?>" + }, + url_viewer: "<?php echo Handler::var('image')["url_viewer"]; ?>", + path_viewer: "<?php echo Handler::var('image')["path_viewer"]; ?>", + is_360: <?php echo Handler::var('image')["is_360"] ? 'true' : 'false'; ?>, + }; + CHV.obj.image_viewer.album = { + id_encoded: "<?php echo Handler::var('image')["album"]["id_encoded"] ?? ''; ?>" + }; + CHV.fn.image_viewer_full_fix = window["image_viewer_full_fix"]; + image_viewer_full_fix(); + }); +</script> diff --git a/content/legacy/themes/Peafowl/snippets/image_album_slice.php b/content/legacy/themes/Peafowl/snippets/image_album_slice.php new file mode 100644 index 0000000..ebdf9b0 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/image_album_slice.php @@ -0,0 +1,20 @@ +<?php + +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +$image_album_slice = get_global('image_album_slice') ?: Handler::var('image_album_slice'); +$image_id = Handler::hasVar('image') ? Handler::var('image')['id'] : get_global("image_id"); +if (is_array($image_album_slice) && is_array($image_album_slice["images"]) && count($image_album_slice["images"]) > 0) { + foreach ($image_album_slice["images"] as $album_image) { + ?><li<?php if ($album_image["id"] == $image_id) { + echo ' class="current"'; + } ?><?php if ($album_image['nsfw']) { + echo ' data-flag="unsafe"'; + } ?>><a href="<?php echo $album_image["path_viewer"]; ?>"><img class="image-container" src="<?php echo $album_image["thumb"]["url"] ?? ''; ?>" alt="<?php echo $album_image["name"]; ?>"></a></li><?php + } ?><li class="more-link"><a href="<?php echo $image_album_slice["url"]; ?>" title="<?php _se('view more'); ?>"><span class="fas fa-images"></span></a></li><?php +} ?> diff --git a/content/legacy/themes/Peafowl/snippets/index.js.php b/content/legacy/themes/Peafowl/snippets/index.js.php new file mode 100644 index 0000000..177cdca --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/index.js.php @@ -0,0 +1,13 @@ +<?php // @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<script> +var hasClass = function(element, cls) { + return (" " + element.className + " ").indexOf(" " + cls + " ") > -1; +}; +var top_bar = { + node: document.getElementById("top-bar") + }, + html = document.getElementsByTagName("html")[0]; +</script> diff --git a/content/legacy/themes/Peafowl/snippets/listing.php b/content/legacy/themes/Peafowl/snippets/listing.php new file mode 100644 index 0000000..3c7c956 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/listing.php @@ -0,0 +1,136 @@ +<?php + +use Chevereto\Legacy\Classes\Listing; +use function Chevereto\Legacy\G\add_ending_slash; +use function Chevereto\Legacy\G\filter_string_polyfill; +use function Chevereto\Legacy\G\get_current_url; +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\show_banner; +use function Chevereto\Vars\get; +use function Chevereto\Vars\server; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +/** @var Listing $listing */ +$listing = Handler::hasVar('listing') ? Handler::var('listing') : get_global('listing'); +$tabs = (array) (get_global('tabs') ? get_global('tabs') : Handler::var('tabs')); +$isClassic = isset(get()['pagination']) || getSetting('listing_pagination_mode') == 'classic'; +$do_pagination = !isset($listing->pagination) or $listing->pagination == true ? true : false; +?> +<?php +foreach ($tabs as $tab) { + if (isset($tab['list']) && $tab['list'] === false) { + continue; + } + if ($tab['current']) { + ?> + <div id="<?php echo $tab["id"]; ?>" class="tabbed-content content-listing visible list-<?php echo $tab["type"]; ?>" data-action="list" data-list="<?php echo $tab["type"]; ?>" data-params="<?php echo $tab["params"]; ?>" data-params-hidden="<?php echo $tab["params_hidden"] ?? ''; ?>"> + <?php + if ($listing->output !== []) { + ?> + <div class="pad-content-listing"><?php echo $listing->htmlOutput($listing->outputTpl() ?? null); ?></div> + <?php + if (count($listing->output) >= $listing->limit()) { + ?> + <div class="content-listing-loading"></div> + <?php + } + if ($do_pagination and ($isClassic or count($listing->output) >= $listing->limit())) { // pagination + if ($isClassic) { + show_banner('listing_before_pagination', $listing->sfw()); + } + if ($listing->has_page_prev() || $listing->has_page_next()) { + ?> + <ul class="content-listing-pagination<?php if ($isClassic) { + ?> visible<?php + } ?>" data-visibility="<?php echo $isClassic ? 'visible' : 'hidden'; ?>" data-content="listing-pagination" data-type="<?php echo $isClassic ? 'classic' : 'endless'; ?>"> + <?php + $currentUrlPath = add_ending_slash(preg_replace('/\?.*/', '', get_current_url())); + $QS = filter_string_polyfill(server()['QUERY_STRING'] ?? ''); + parse_str($QS, $current_page_qs); + unset($current_page_qs['lang'], $current_page_qs['viewer']); + $current_url = $currentUrlPath . '?' . http_build_query($current_page_qs); + $page = intval((get()['page'] ?? $current_page_qs['page'] ?? null) ?: 1); + $pages = []; + foreach (['prev', 'next'] as $v) { + $params = $current_page_qs; + $seek = $listing->{'seek' . ($v == 'prev' ? 'Start' : 'End')}; + if ($listing->{'has_page_' . $v}()) { + $params['page'] = $v == 'prev' ? ($page - 1) : ($page + 1); + if ($seek) { + unset($params['peek'], $params['seek']); + $params[$v == 'prev' ? 'peek' : 'seek'] = $seek; + } + ${$v . 'Url'} = $currentUrlPath . '?' . http_build_query($params); + } else { + ${$v . 'Url'} = null; + } + } + $pages['prev'] = [ + 'label' => '<span class="icon fas fa-angle-left"></span>', + 'url' => $prevUrl ?? null, + 'disabled' => !$listing->has_page_prev() + ]; + $pages[] = [ + 'label' => $page, + 'url' => null, + 'current' => true + ]; + $pages['next'] = [ + 'label' => '<span class="icon fas fa-angle-right"></span>', + 'url' => $nextUrl ?? null, + 'load-more' => !$isClassic, + 'disabled' => !$listing->has_page_next(), + ]; + foreach ($pages as $k => $page) { + if (is_numeric($k)) { + $li_class = 'pagination-page'; + } else { + $li_class = 'pagination-' . $k; + } + if (($page['current'] ?? false) == true) { + $li_class .= ' pagination-current'; + } + if (($page['disabled'] ?? false) == true) { + $li_class .= ' pagination-disabled'; + } ?><li class="<?php echo $li_class; ?>"><a data-pagination="<?php echo $k; ?>" <?php + if (!is_null($page['url'])) { + ?>href="<?php echo $page['url']; ?>" <?php + } ?>><?php echo $page['label']; ?></a></li><?php + } ?> + </ul> + <?php + } + if ($isClassic) { + show_banner('listing_after_pagination', $listing->sfw()); + } + } // pagination? + if ($do_pagination && $isClassic == false) { + ?> + <div class="content-listing-more"> + <button class="btn default" data-action="load-more" data-seek="<?php echo $listing->seekEnd; ?>"><i class="fas fa-plus-circle"></i> <?php _se('Load more'); ?></button> + </div> + <?php + } + } else { // Results? + include_theme_file("snippets/template_content_empty"); + } ?> + </div> + <?php + } else { // !current + ?> + <div id="<?php echo $tab["id"]; ?>" class="tabbed-content content-listing hidden list-<?php echo $tab["type"]; ?>" data-action="list" data-list="<?php echo $tab["type"]; ?>" data-params="<?php echo $tab["params"]; ?>" data-params-hidden="<?php echo $tab["params_hidden"] ?? ''; ?>" data-load="<?php echo $isClassic ? 'classic' : 'ajax'; ?>"> + </div> +<?php + } +} // for +?> +<?php +include_theme_file("snippets/viewer_template"); +include_theme_file("snippets/templates_content_listing"); +?> diff --git a/content/legacy/themes/Peafowl/snippets/listing_tools_editor.php b/content/legacy/themes/Peafowl/snippets/listing_tools_editor.php new file mode 100644 index 0000000..c16ea74 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/listing_tools_editor.php @@ -0,0 +1,84 @@ +<?php + +use function Chevereto\Legacy\G\get_global; +use function Chevereto\Legacy\G\get_route_name; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<?php +$listing = Handler::hasVar('listing') ? Handler::var('listing') : get_global('listing'); +$tabs = (array) (get_global('tabs') ? get_global('tabs') : Handler::var('tabs')); +foreach ($tabs as $tab) { + if ((isset($tab['list']) && $tab['list'] === false) || isset($tab['tools']) && $tab['tools'] === false) { + continue; + } ?> +<div data-content="list-selection" data-tab="<?php echo $tab['id']; ?>" class="header--height header--centering list-selection <?php $class = []; + if (isset($listing) && (is_array($listing->output) == false || count($listing->output) == 0)) { + $class[] = 'disabled'; + } + if (!$tab['current']) { + $class[] = 'hidden'; + } + echo implode(' ', $class); ?>"> + <div class="display-inline-block user-select-none"><a data-action="list-select-all" class="header-link" data-text-select-all="<?php _se('All'); ?>" data-text-clear-all="<?php _se('Clear'); ?>"><?php _se('All'); ?></a></div> + + <div data-content="pop-selection" class="disabled sort-listing pop-btn header-link user-select-none display-inline-block"> + <span class="selection-count user-select-none" data-text="selection-count"></span><span class="pop-btn-text no-select margin-left-5" data-content="label"><span class="icon far fa-check-square margin-right-5"></span><?php _se('Actions'); ?></span> + <div class="pop-box anchor-right arrow-box arrow-box-top"> + <div class="pop-box-inner pop-box-menu"> + <ul> + <?php + if ($tab['type'] == 'images') { + ?> + <li class="with-icon"><a data-action="get-embed-codes"><span class="btn-icon fas fa-code"></span><?php _se('Get embed codes'); ?><kbd>K</kbd></a></li> + <?php + } ?> + <?php + if (in_array(get_route_name(), ['user', 'album']) and (array_key_exists('tools_available', $tab) ? in_array('album', $tab['tools_available']) : true)) { + ?> + <li class="with-icon"><a data-action="create-album"><span class="btn-icon fas fa-images"></span><?php _se('Create album'); ?><kbd>A</kbd></a></li> + <li class="with-icon"><a data-action="move"><span class="btn-icon fas fa-exchange-alt"></span><?php _se('Move to album'); ?><kbd>M</kbd></a></li> + <?php + } ?> + <?php + if ($tab['type'] == 'images') { + ?> + <?php + if ((array_key_exists('tools_available', $tab) ? in_array('category', $tab['tools_available']) : true) and Handler::var('categories')) { + ?> + <li class="with-icon"><a data-action="assign-category"><span class="btn-icon fas fa-columns"></span><?php _se('Assign category'); ?><kbd>C</kbd></a></li> + <?php + } ?> + <?php + if (Handler::cond('allowed_nsfw_flagging') && (array_key_exists('tools_available', $tab) ? (in_array('flag', $tab['tools_available'])) : true)) { + ?> + <li class="with-icon"><a data-action="flag-safe" class="hidden"><span class="btn-icon far fa-flag"></span><?php _se('Flag as safe'); ?><kbd>V</kbd></a></li> + <li class="with-icon"><a data-action="flag-unsafe" class="hidden"><span class="btn-icon fas fa-flag"></span><?php _se('Flag as unsafe'); ?><kbd>F</kbd></a></li> + <?php + } + if (Handler::getRouteName() == 'moderate') { ?> + <li class="with-icon"><a data-action="approve"><span class="btn-icon fas fa-check-double"></span><?php _se('Approve'); ?><kbd>O</kbd></a></li> + <?php + } + } // images?> + <?php + if (Handler::cond('allowed_to_delete_content') && (array_key_exists('tools_available', $tab) ? in_array('delete', $tab['tools_available']) : true)) { + ?> + <li class="with-icon"><a data-action="delete"><span class="btn-icon fas fa-trash-alt"></span><?php _se('Delete'); ?><kbd>Del</kbd></a></li> + <?php + } ?> + <div class="or-separator margin-top-5 margin-bottom-5"></div> + <li class="with-icon"><a data-action="list-select-all"><span class="btn-icon fas fa-check-square"></span><?php _se('Select all'); ?><kbd>.</kbd></a></li> + <li class="with-icon"><a data-action="clear"><span class="btn-icon fas fa-times-circle"></span><?php _se('Clear selection'); ?><kbd>Z</kbd></a></li> + </ul> + </div> + </div> + </div> +</div> +<?php +} +?> diff --git a/content/legacy/themes/Peafowl/snippets/modal_create_album.php b/content/legacy/themes/Peafowl/snippets/modal_create_album.php new file mode 100644 index 0000000..b8ec65f --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/modal_create_album.php @@ -0,0 +1,14 @@ +<?php +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div data-modal="new-album" class="hidden" data-is-xhr data-submit-fn="CHV.fn.submit_create_album" data-ajax-deferred="CHV.fn.complete_create_album"> + <span class="modal-box-title"><i class="fas fa-images"></i> <?php _se('Create new album'); ?></span> + <div class="modal-form"> + <?php include_theme_file("snippets/form_album.php", ['album-switch' => false]); ?> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/modal_create_sub_album.php b/content/legacy/themes/Peafowl/snippets/modal_create_sub_album.php new file mode 100644 index 0000000..e060afe --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/modal_create_sub_album.php @@ -0,0 +1,14 @@ +<?php +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div data-modal="new-sub-album" class="hidden" data-is-xhr data-submit-fn="CHV.fn.submit_create_album" data-ajax-deferred="CHV.fn.complete_create_album"> + <h1><i class="fas fa-level-down-alt"></i> <?php _se('Create sub album'); ?></h1> + <div class="modal-form"> + <?php include_theme_file("snippets/form_sub_album.php", ['album-switch' => false]); ?> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/modal_edit_album.php b/content/legacy/themes/Peafowl/snippets/modal_edit_album.php new file mode 100644 index 0000000..d7db0b4 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/modal_edit_album.php @@ -0,0 +1,15 @@ +<?php +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div id="form-modal" class="hidden" data-before-fn="CHV.fn.before_album_edit" data-submit-fn="CHV.fn.submit_album_edit" data-ajax-deferred="CHV.fn.complete_album_edit" data-ajax-url="<?php echo get_base_url("json"); ?>"> + <h1><?php _se('Edit'); ?></h1> + <div class="modal-form"> + <?php include_theme_file('snippets/form_album'); ?> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/modal_share.php b/content/legacy/themes/Peafowl/snippets/modal_share.php new file mode 100644 index 0000000..93a8556 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/modal_share.php @@ -0,0 +1,25 @@ +<?php + +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php $share_links_array = Handler::hasVar('share_links_array') ? Handler::var('share_links_array') : get_global("share_links_array"); ?> +<div id="modal-share" class="hidden"> + <span class="modal-box-title"><i class="fas fa-share-alt"></i> <?php _se('Share'); ?></span> + <div class="image-preview"></div> + <p class="highlight margin-bottom-20 font-size-small text-align-center padding-5" data-content="privacy-private">__privacy_notes__</p> + <ul class="panel-share-networks"> + <?php echo join("", $share_links_array ?? []); ?> + </ul> + <div class="input-label margin-bottom-0"> + <label for="modal-share-url"><?php _se('Link'); ?></label> + <div class="position-relative"> + <input type="text" name="modal-share-url" id="modal-share-url" class="text-input" value="__url__" data-focus="select-all" readonly> + <button type="button" class="input-action" data-action="copy" data-action-target="#modal-share-url" value=""><i class="far fa-copy"></i> <?php _se('copy'); ?></button> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/quickty/background_cover.php b/content/legacy/themes/Peafowl/snippets/quickty/background_cover.php new file mode 100644 index 0000000..a59a75b --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/quickty/background_cover.php @@ -0,0 +1,13 @@ +<?php +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<style> + .background-cover { + background-image: url(<?php echo getSetting('homepage_cover_images')[0]['url'] ?? ''; ?>); + } +</style> +<div class="background-cover"></div> diff --git a/content/legacy/themes/Peafowl/snippets/quickty/recaptcha_form.php b/content/legacy/themes/Peafowl/snippets/quickty/recaptcha_form.php new file mode 100644 index 0000000..3fecdef --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/quickty/recaptcha_form.php @@ -0,0 +1,16 @@ +<?php + +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php +if (Handler::cond('captcha_needed') && Handler::hasVar('captcha_html')) { + ?> +<div class="content-section content-section--captcha-fix"> + <?php echo Handler::var('captcha_html'); ?> +</div> +<?php +} ?> diff --git a/content/legacy/themes/Peafowl/snippets/quickty/top_left.php b/content/legacy/themes/Peafowl/snippets/quickty/top_left.php new file mode 100644 index 0000000..c5b1756 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/quickty/top_left.php @@ -0,0 +1,45 @@ +<?php +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<div id="top-left"> + <div class="top-button pop-btn"> + <div class="top-button-icon fas fa-bars"><span class="btn-text display-none"><?php echo Handler::var('safe_html_website_name'); ?></span></div> + <div class="pop-box menu-box"> + <?php + $buttons = Handler::var('pages_link_visible'); + array_unshift($buttons, [ + 'icon' => 'fas fa-home', + 'title' => _s('Home'), + 'url' => get_base_url(), + ]); + if (Login::isLoggedUser() == false) { + array_push($buttons, [ + 'icon' => 'fas fa-sign-in-alt', + 'title' => _s('Sign in'), + 'url' => get_base_url('login'), + ]); + if (getSetting('enable_signups')) { + array_push($buttons, [ + 'icon' => 'fas fa-user-plus', + 'title' => _s('Sign up'), + 'url' => get_base_url('signup'), + ]); + } + } + foreach ($buttons as $k => $button) { + ?> + <a role="button" href="<?php echo $button['url']; ?>"> + <span class="icon <?php echo $button['icon']; ?>"></span> + <span class="text"><?php echo $button['title']; ?></span> + </a> + <?php + } ?> + </div> + </div> diff --git a/content/legacy/themes/Peafowl/snippets/sign_services_buttons.php b/content/legacy/themes/Peafowl/snippets/sign_services_buttons.php new file mode 100644 index 0000000..d7d7285 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/sign_services_buttons.php @@ -0,0 +1,20 @@ +<?php +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_base_url; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +$i = 0; +$providersEnabled = Login::getProviders('enabled'); +foreach ($providersEnabled as $name => $provider) { + $attr = ''; + if ($i == 0) { + $attr = ' class="margin-left-0"'; + } + if ($i == count($providersEnabled) - 1) { + $attr = ' class="margin-left-0 margin-right-0"'; + } + $i++; ?><li<?php echo $attr; ?>><a class="sign-service btn-<?php echo $name; ?>" href="<?php echo get_base_url('connect/' . $name); ?>"><span class="btn-icon fab fa-<?php echo $name; ?>"></span><span class="btn-text phone-hide phablet-hide"><?php echo $provider['label']; ?></span></a></li><?php +} ?> diff --git a/content/legacy/themes/Peafowl/snippets/tabs.php b/content/legacy/themes/Peafowl/snippets/tabs.php new file mode 100644 index 0000000..3c8af08 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/tabs.php @@ -0,0 +1,46 @@ +<?php + +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +$tabs = Handler::var('tabs') ?? []; + +foreach ($tabs as $tab) { + if ($tab["current"]) { + $current = $tab; + + break; + } +} +?><div class="phone-display-inline-block phablet-display-inline-block hidden tab-menu --hide" data-action="tab-menu"> + <span class="btn-icon <?php echo $current['icon'] ?? ''; ?>" data-content="tab-icon"></span><span class="btn-text" data-content="current-tab-label"><?php echo $current["label"] ?? ''; ?></span><span class="tab-menu--hide btn-icon fas fa-angle-down"></span><span class="tab-menu--show btn-icon fas fa-angle-up"></span> +</div> +<div class="content-tabs-container content-tabs-container--mobile phone-display-block phablet-display-block"> + <div class="content-tabs-shade phone-show phablet-show hidden"></div> + <div class="content-tabs-wrap"> + <ul class="content-tabs"> + <?php + foreach ($tabs as $tab) { + $tabClass = $tab['class'] ?? ''; + if (($tab["current"] ?? false)) { + $tabClass .= ' current'; + } + $tabClass = trim($tabClass); + $echo = [ + '<li class="' . $tabClass . '">', + '<a ', + isset($tab['id']) ? ('id="' . $tab['id'] . '-link" data-tab="' . $tab["id"] . '" ') : '', + 'href="' . ($tab['url'] ?? '') . '">', + '<span class="btn-icon ' . ($tab['icon'] ?? '') . '"></span>', + '<span class="btn-text">' . $tab["label"] . '</span>', + '</a></li>' . "\n" + ]; + echo implode('', $echo); + } + ?> + </ul> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/template_content_empty.php b/content/legacy/themes/Peafowl/snippets/template_content_empty.php new file mode 100644 index 0000000..934b689 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/template_content_empty.php @@ -0,0 +1,9 @@ +<?php // @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div class="content-empty"> + <span class="icon fas fa-inbox"></span> + <h2><?php _se("There's nothing to show here."); ?></h2> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/templates_content_listing.php b/content/legacy/themes/Peafowl/snippets/templates_content_listing.php new file mode 100644 index 0000000..2273481 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/templates_content_listing.php @@ -0,0 +1,22 @@ +<?php +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> + +<div data-template="content-listing" class="hidden"> + <div class="pad-content-listing"></div> + <div class="content-listing-more"> + <button class="btn default" data-action="load-more"><i class="fas fa-plus-circle"></i> <?php _se('Load more'); ?></button> + </div> + <div class="content-listing-loading"></div> + <div class="content-listing-pagination"><a data-action="load-more"><?php _se('Load more'); ?></a></div> +</div> +<div data-template="content-listing-empty" class="hidden"> + <?php include_theme_file("snippets/template_content_empty"); ?> +</div> +<div data-template="content-listing-loading" class="hidden"> + <div class="content-listing-loading"></div> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/theme_colors.css.php b/content/legacy/themes/Peafowl/snippets/theme_colors.css.php new file mode 100644 index 0000000..1e5e6ff --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/theme_colors.css.php @@ -0,0 +1,311 @@ +<?php +use function Chevereto\Legacy\G\is_valid_hex_color; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php + $default_color = '#00A7DA'; + $color = getSetting('theme_main_color'); + if (!is_string($color) || !is_valid_hex_color($color)) { + $color = $default_color; + } +?> +<style> +.palette-dark:root{ + --alertAccent: hsl(48, 89%, 50%); + --alertBackground: hsl(52, 100%, 90%); + --alertText: hsl(278, 22%, 10%); + --bodyBackground: hsl(245, 9%, 18%); + --bodyEmpty: hsl(245, 10%, 22%); + --bodySeparator: var(--bodyEmpty); + --bodyText: hsl(0, 0%, 80%); + --bodyTextSubtle: hsl(245, 5%, 45%); + --buttonAccentBackground: hsl(245, 10%, 10%); + --buttonAccentHoverBackground: hsl(245, 10%, 5%); + --buttonAccentHoverText: var(--bodyText); + --buttonAccentText: var(--bodyText); + --buttonDefaultBackground: var(--bodyEmpty); + --buttonDefaultHoverBackground: hsl(245, 5%, 10%); + --buttonDefaultHoverText: var(--colorAccent); + --buttonDefaultText: var(--bodyText); + --inputBackground: hsl(245, 10%, 10%); + --inputPlaceholderText: hsl(245, 5%, 50%); + --inputText: var(--bodyText); + --menuBackground: hsla(245, 10%, 8%, 80%); + --menuItemHoverBackground: var(--colorAccent); + --menuItemHoverText: #FFF; + --menuItemText: var(--bodyText); + --menuSeparator: var(--bodyBackground); + --menuText: var(--bodyText); + --modalBackground: var(--bodyBackground); + --modalText: var(--bodyText); + --topBarBackground: hsl(245, 9%, 18%); + --topBarText: var(--bodyText); + --viewerBackground: hsl(245, 5%, 12%); +} +/* --topBarBackground: hsl(150, 25%, 70%); + */ +.palette-lush:root{ + --alertAccent: hsl(48, 89%, 50%); + --alertBackground: hsl(52, 100%, 90%); + --alertText: hsl(278, 22%, 10%); + --bodyBackground: hsl(150, 25%, 94%); + --bodyEmpty: hsl(150, 25%, 85%); + --bodySeparator: var(--bodyEmpty); + --bodyText: hsl(150, 25%, 16%); + --bodyTextDisabled: hsl(150, 25%, 50%); + --bodyTextSubtle: hsl(189, 6%, 45%); + --buttonAccentBackground: hsl(150, 25%, 70%); + --buttonAccentHoverBackground: hsl(150, 25%, 60%); + --buttonAccentHoverText: var(--buttonAccentText); + --buttonAccentText: hsl(150, 25%, 20%); + --buttonDefaultBackground: var(--bodyBackground); + --buttonDefaultBorder: hsl(150, 25%, 80%); + --buttonDefaultHoverBackground: hsl(150, 25%, 85%); + --buttonDefaultHoverBorder: hsl(150, 25%, 80%); + --buttonDefaultHoverText: hsl(150, 25%, 20%); + --buttonDefaultText: hsl(150, 25%, 20%); + --colorAccent: hsl(150, 40%, 50%); + --colorAccentStrong: hsl(150, 25%, 40%); + --inputBackground: hsl(0, 0%, 100%); + --inputPlaceholderText: hsl(150, 25%, 40%, 0.2); + --inputText: var(--bodyText); + --linkText: var(--colorAccent); + --menuBackground: hsla(150, 25%, 90%, 80%); + --menuItemHoverBackground: var(--colorAccent); + --menuItemHoverText: #FFF; + --menuItemText: var(--bodyText); + --menuSeparator: hsl(150, 25%, 72%); + --menuText: var(--bodyText); + --modalBackground: var(--bodyBackground); + --modalText: var(--bodyText); + --topBarBackground: var(--bodyBackground); + --topBarText: var(--bodyText); + --listItemText: var(--bodyBackground); + /* --viewerBackground: hsl(150, 25%, 85%); */ +} +.palette-graffiti:root { + --alertAccent: hsl(48, 89%, 50%); + --alertBackground: hsl(52, 100%, 90%); + --alertText: var(--bodyText); + --bodyBackground: hsl(279, 77%, 95%); + --bodyEmpty: hsl(278, 80%, 91%); + --bodySeparator: hsl(278, 80%, 94%); + --bodyText: hsl(278, 22%, 10%); + --bodyTextDisabled: hsl(278, 80%, 90%); + --buttonAccentBackground: var(--colorAccent); + --buttonAccentHoverBackground: var(--colorAccentStrong); + --buttonAccentHoverText: var(--buttonAccentText); + --buttonDefaultBackground: var(--bodyBackground); + --buttonDefaultBorder: hsl(278, 80%, 90%); + --buttonDefaultHoverBackground: var(--bodyEmpty); + --buttonDefaultHoverBorder: hsl(278, 80%, 90%); + --buttonDefaultHoverText: var(--colorAccentStrong); + --buttonDefaultText: var(--colorAccent); + --colorAccent: hsl(278, 33%, 44%); + --colorAccentStrong: hsl(278, 33%, 40%); + --inputBackground: hsl(0, 0%, 100%); + --inputText: hsl(278, 22%, 10%); + --linkText: var(--colorAccent); + --menuBackground: hsla(278, 80%, 90%, 80%); + --menuItemHoverBackground: var(--colorAccent); + --menuItemHoverText: #FFF; + --menuItemText: var(--inputText); + --menuSeparator: hsl(278, 80%, 79%); + --menuText: var(--inputText); + --modalBackground: var(--bodyBackground); + --modalText: var(--inputText); + --topBarBackground: var(--bodyBackground); + --topBarText: var(--bodyText); + --listItemText: var(--bodyBackground); +} +.palette-abstract:root{ + --alertAccent: hsl(48, 89%, 50%); + --alertBackground: hsl(52, 100%, 90%); + --alertText: hsl(278, 22%, 10%); + --bodyBackground: hsl(15, 73%, 97%); + --bodyEmpty: hsl(15, 100%, 92%); + --bodySeparator: var(--bodyEmpty); + --bodyText: hsl(15, 25%, 16%); + --bodyTextDisabled: hsl(15, 100%, 90%); + --bodyTextSubtle: hsl(189, 6%, 45%); + --buttonAccentBackground: var(--colorAccent); + --buttonAccentHoverBackground: var(--colorAccentStrong); + --buttonAccentHoverText: var(--buttonAccentText); + --buttonAccentText: hsl(0, 0%, 100%); + --buttonDefaultBackground: var(--bodyBackground); + --buttonDefaultBorder: hsl(15, 70%, 90%); + --buttonDefaultHoverBackground: hsl(15, 100%, 95%); + --buttonDefaultHoverBorder: hsl(15, 80%, 90%); + --buttonDefaultHoverText: var(--colorAccentStrong); + --buttonDefaultText: var(--colorAccentStrong); + --colorAccent: hsl(15, 70%, 30%); + --colorAccentStrong: hsl(15, 70%, 40%); + --inputBackground: var(--buttonAccentText); + --inputPlaceholderText: hsl(15, 100%, 20%, 0.3); + --inputText: var(--bodyText); + --linkText: var(--colorAccent); + --menuBackground: hsla(15, 100%, 90%, 80%); + --menuItemHoverBackground: var(--colorAccent); + --menuItemHoverText: #FFF; + --menuItemText: var(--bodyText); + --menuSeparator: hsl(15, 71%, 74%); + --menuText: var(--bodyText); + --modalBackground: var(--bodyBackground); + --modalText: var(--bodyText); + --topBarBackground: var(--bodyBackground); + --topBarText: var(--bodyText); + --listItemText: var(--bodyBackground); + /* --viewerBackground: hsl(15, 100%, 96%); */ +} +.palette-cheers:root{ + --alertAccent: hsl(48, 89%, 50%); + --alertBackground: hsl(52, 100%, 90%); + --alertText: hsl(278, 22%, 10%); + --bodyBackground: hsl(42, 60%, 91%); + --bodyEmpty: hsl(42, 80%, 82%); + --bodySeparator: var(--bodyEmpty); + --bodyText: hsl(42, 25%, 16%); + --bodyTextDisabled: hsl(42, 100%, 50%); + --bodyTextSubtle: hsl(189, 6%, 45%); + --buttonAccentBackground: hsl(42, 100%, 70%); + --buttonAccentHoverBackground: hsl(42, 100%, 60%); + --buttonAccentHoverText: var(--buttonAccentText); + --buttonAccentText: hsl(42, 80%, 20%); + --buttonDefaultBackground: var(--bodyBackground); + --buttonDefaultBorder: hsl(42, 70%, 80%); + --buttonDefaultHoverBackground: hsl(42, 80%, 85%); + --buttonDefaultHoverBorder: hsl(42, 80%, 80%); + --buttonDefaultHoverText: hsl(42, 80%, 20%); + --buttonDefaultText: hsl(42, 80%, 20%); + --colorAccent: hsl(42, 100%, 50%); + --colorAccentStrong: hsl(42, 100%, 40%); + --inputBackground: hsl(0, 0%, 100%); + --inputPlaceholderText: hsl(42, 100%, 40%, 0.2); + --inputText: var(--bodyText); + --linkText: var(--colorAccent); + --menuBackground: hsla(42, 90%, 90%, 80%); + --menuItemHoverBackground: var(--colorAccent); + --menuItemHoverText: #FFF; + --menuItemText: var(--bodyText); + --menuSeparator: hsl(42, 70%, 67%); + --menuText: var(--bodyText); + --modalBackground: var(--bodyBackground); + --modalText: var(--bodyText); + --topBarBackground: var(--bodyBackground); /* hsl(42, 100%, 70%) */ + --topBarText: var(--bodyText); + --listItemText: var(--bodyBackground); + /* --viewerBackground: hsl(42, 80%, 85%); */ +} +.palette-imgur:root { + --alertAccent: var(--colorAccent); + --alertBackground: #463979; + --alertText: var(--bodyText); + --backgroundDarkAlpha: rgb(0 0 0 / 80%); + --backgroundLightAlpha: rgba(26, 25, 62, .9); + --bodyBackground: rgb(39,41,45); + --bodyEmpty: var(--buttonDefaultBackground); + --bodySeparator: #585D6A; + --bodyText: #DADCDF; + --bodyTextDisabled: #b4b9c2; + --bodyTextSubtle: #999; + --buttonAccentHoverText: var(--buttonAccentText); + --buttonAccentText: #FFF; + --buttonDefaultBackground: #464b57; + --buttonDefaultHoverBackground: var(--colorAccent); + --buttonDefaultHoverText: var(--buttonAccentText); + --buttonDefaultText: #b4b9c2; + --colorAccent: #1bb76e; + --colorAccentStrong: #31be7c; + --inputBackground: #191919; + --inputPlaceholderText: #9298a0; + --inputText: #f2f2f2; + --linkText: var(--colorAccent); + --menuBackground: hsl(222deg 6% 35% / 80%); + --menuItemHoverBackground: hsla(0,0%,80%,.29); + --menuItemHoverText: var(--buttonAccentText); + --menuItemText: var(--buttonAccentText); + --menuSeparator: rgb(11 14 15 / 10%); + --menuText: var(--buttonAccentText); + --modalBackground: rgb(60 66 75 / 50%); + --modalText: var(--buttonAccentText); + --topBarBackground: linear-gradient(180deg, #171544 0%, rgba(39,41,45,1)); + --topBarText: var(--bodyText); + --viewerBackground: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1)); +} +.palette-flickr:root { + --bodyBackground: #f2f5f6; + --colorAccent: #128fdc; + --colorAccentStrong: #1c9be9; + --linkText: #006dac; + --topBarBackground: rgb(0 0 0 / 90%); + --topBarText: #FFF; + --viewerBackground: #212124; +} +.palette-deviantart:root { + --alertAccent: var(--colorAccent); + --alertBackground: #9affde; + --bodyBackground: #06070d; + --bodyEmpty: var(--bodyBackground); + --bodyText: #f2f2f2; + --bodyTextSubtle: #5d5c6c; + --buttonAccentHoverBackground: var(--colorAccentStrong); + --buttonAccentHoverText: var(--buttonAccentText); + --buttonAccentText: #FFF; + --buttonDefaultBackground: var(--bodyBackground); + --buttonDefaultHoverBackground:var(--bodyBackground); + --buttonDefaultHoverText: var(--buttonDefaultText); + --buttonDefaultText: #f2f2f2; + --colorAccent: #00e59b; + --colorAccentStrong: #31be7c; + --inputBackground: #292f34; + --inputPlaceholderText: #838592; + --inputText: #838592; + --linkText: var(--colorAccent); + --menuBackground: var(--bodyBackground); + --menuItemHoverBackground: #282f34; + --menuItemHoverText: var(--colorAccent); + --menuItemText: #b1b1b9; + --menuText: var(--buttonAccentText); + --modalText: var(--buttonDefaultText); + --topBarBackground: #06070d; + --topBarText: #fff; + --viewerBackground: linear-gradient(180deg, rgba(26,28,35,1) 0%, rgba(11,13,18,1) 100%); +} +.palette-cmyk:root { + --alertAccent: var(--buttonAccentBackground); + --alertBackground: #fff5b3; + --alertText: var(--bodyText); + --bodyBackground: #000; + --bodyEmpty: #000e10; + --bodySeparator: #370f1d; + --bodyText: #00bcd4; + --bodyTextSubtle: var(--buttonAccentBackground); + --buttonAccentBackground: #ec407a; + --buttonAccentHoverBackground: var(--bodyText); + --buttonAccentHoverText: #fff; + --buttonAccentText: var(--buttonAccentHoverText); + --buttonDefaultBackground: var(--bodyBackground); + --buttonDefaultHoverBackground: var(--bodyBackground); + --buttonDefaultHoverText: #ffd54f; + --buttonDefaultText: var(--buttonAccentBackground); + --colorAccent: var( --buttonDefaultHoverText); + --inputBackground: #edcf6e; + --inputPlaceholderText: var(--bodyBackground); + --linkText: var(--buttonDefaultHoverText); + --menuBackground: rgb(0 0 0 / 70%); + --menuItemHoverBackground: var(--buttonAccentBackground); + --menuItemHoverText: var(--buttonAccentText); + --menuItemText: var(--buttonDefaultHoverText); + --menuSeparator: rgb(11 14 15 / 10%); + --menuText: var(--buttonAccentHoverText); + --modalBackground: var(--bodyBackground); + --modalText: var(--bodyText); + --topBarBackground: rgb(0 0 0 / 70%); + --topBarText: var(--bodyText); + --viewerBackground: linear-gradient(180deg, rgba(26,28,35,1) 0%, rgba(11,13,18,1) 100%); +} +</style> diff --git a/content/legacy/themes/Peafowl/snippets/user.js.php b/content/legacy/themes/Peafowl/snippets/user.js.php new file mode 100644 index 0000000..ce6d101 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/user.js.php @@ -0,0 +1,15 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} diff --git a/content/legacy/themes/Peafowl/snippets/user_items_editor.php b/content/legacy/themes/Peafowl/snippets/user_items_editor.php new file mode 100644 index 0000000..576184c --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/user_items_editor.php @@ -0,0 +1,124 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php +global $modal_dealing_with, $disable_album_toggle; +$user_items_editor = Handler::var('user_items_editor') ?? false; +$modal_dealing_with = $user_items_editor["type"] ?? 'none'; + +if (!in_array($modal_dealing_with, ["images", "albums"])) { + $modal_dealing_with = "images"; +} +if ($user_items_editor !== false) { + ?> +<div data-modal="form-edit-single" class="hidden"> + <span class="modal-box-title"> + <?php + echo '<i class="fas fa-edit"></i> '; + _se('Edit'); + if ($modal_dealing_with != 'images') { + $disable_album_toggle = true; + } ?> + </span> + <div class="image-preview"></div> + <div class="modal-form"> + <?php + include_theme_file('snippets/form_' . ($modal_dealing_with == 'images' ? 'image' : 'album')); ?> + </div> +</div> + +<div data-modal="form-create-album" class="hidden"> + <span class="modal-box-title"><i class="far fa-images"></i> <?php _se('Create album'); ?></span> + <div class="image-preview"></div> + <div class="modal-form"> + <div id="move-existing-album" data-view="switchable" class="c7 input-label soft-hidden"> + <?php include_theme_file("snippets/form_move_existing_album"); ?> + </div> + <div id="move-new-album" data-content="form-new-album" data-view="switchable"> + <?php + include_theme_file("snippets/form_album"); ?> + </div> + </div> +</div> + +<div data-modal="form-move-single" class="hidden"> + <span class="modal-box-title"><i class="fas fa-exchange-alt"></i> <?php _se('Move to album'); ?></span> + <div class="image-preview"></div> + <div class="modal-form"> + <div id="move-existing-album" data-view="switchable" class="c7 input-label"> + <?php include_theme_file("snippets/form_move_existing_album"); ?> + </div> + <div id="move-new-album" data-content="form-new-album" data-view="switchable" class="soft-hidden"> + <?php + $disable_album_toggle = false; + include_theme_file("snippets/form_album"); ?> + </div> + </div> +</div> + +<div data-modal="form-move-multiple" class="hidden"> + <span class="modal-box-title"><i class="fas fa-exchange-alt"></i> <?php _se('Move to album'); ?></span> + <div class="image-preview"></div> + <div class="modal-form"> + <div id="move-existing-album" data-view="switchable" class="c7 input-label"> + <?php include_theme_file("snippets/form_move_existing_album"); ?> + </div> + <div id="move-new-album" data-content="form-new-album" data-view="switchable" class="soft-hidden"> + <?php include_theme_file("snippets/form_album"); ?> + </div> + </div> +</div> + +<?php +} // full editor?> + +<div data-modal="form-assign-category" class="hidden"> + <span class="modal-box-title"><i class="fas fa-columns"></i> <?php _se('Assign category'); ?></span> + <?php if (Handler::var('categories')) { ?> + <div class="image-preview"></div> + <p><?php _se('All the selected images will be assigned to this category.'); ?></p> + <div class="input-label c8"> + <?php include_theme_file('snippets/form_category'); ?> + </div> + <?php } else { ?> + <p><?php _se('There is no categories.'); ?></p> + <?php } ?> +</div> + +<div data-modal="form-flag-safe" class="hidden"> + <span class="modal-box-title"><i class="far fa-flag"></i> <?php _se('Confirm flag content as safe'); ?></span> + <div class="image-preview"></div> + <p><?php _se("Do you really want to flag this content as safe?"); ?></p> +</div> +<div data-modal="form-flag-unsafe" class="hidden"> + <span class="modal-box-title"><i class="fas fa-flag"></i> <?php _se('Confirm flag content as unsafe'); ?></span> + <div class="image-preview"></div> + <p><?php _se("Do you really want to flag this content as unsafe?"); ?></p> +</div> + +<div data-modal="form-approve-single" class="hidden"> + <span class="modal-box-title"><i class="fas fa-check-double"></i> <?php _se('Confirm approval'); ?></span> + <div class="image-preview"></div> + <p><?php _se("Do you really want to approve this content? This can't be undone."); ?></p> +</div> +<div data-modal="form-delete-single" class="hidden"> + <span class="modal-box-title"><i class="fas fa-trash-alt"></i> <?php _se('Confirm deletion'); ?></span> + <div class="image-preview"></div> + <p><?php _se("Do you really want to remove this content? This can't be undone."); ?></p> +</div> +<div data-modal="form-approve-multiple" class="hidden"> + <span class="modal-box-title"><i class="fas fa-check-double"></i> <?php _se('Confirm approval'); ?></span> + <div class="image-preview"></div> + <p><?php _se("Do you really want to approve all the selected content? This can't be undone."); ?></p> +</div> +<div data-modal="form-delete-multiple" class="hidden"> + <span class="modal-box-title"><i class="fas fa-trash-alt"></i> <?php _se('Confirm deletion'); ?></span> + <div class="image-preview"></div> + <p><?php _se("Do you really want to remove all the selected content? This can't be undone."); ?></p> +</div> diff --git a/content/legacy/themes/Peafowl/snippets/viewer_template.php b/content/legacy/themes/Peafowl/snippets/viewer_template.php new file mode 100644 index 0000000..99d5977 --- /dev/null +++ b/content/legacy/themes/Peafowl/snippets/viewer_template.php @@ -0,0 +1,74 @@ +<?php +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<script id="viewer-template" type="text/x-chv-template"> + <div class="viewer viewer--hide list-item"> + <div class="viewer-content no-select"> + <a href="%path_viewer%" target="_blank"><img class="viewer-src no-select animate" src="%display_url%" alt="%filename%" width="%width%" height="%height%"></a> + <div id="image-viewer-360" class="soft-hidden"></div> + </div> + <div class="viewer-wheel phone-hide phablet-hide tablet-hide hover-display"> + <div class="viewer-wheel-prev animate" data-action="viewer-prev"><span class="icon fas fa-angle-left"></span></div> + <div class="viewer-wheel-next animate" data-action="viewer-next"><span class="icon fas fa-angle-right"></span></div> + </div> + <ul class="viewer-tools list-item-image-tools hover-display idle-display no-select" data-action="list-tools"> + <div data-action="viewer-close" title="<?php _se('Close'); ?>"> + <span class="btn-icon fas fa-times"></span> + </div> + </ul> + <div class="viewer-foot hover-display hover-display--flex"> + <div class="viewer-owner viewer-owner--user"> + <a href="%user.url%" class="user-image"> + <span class="user-image default-user-image"><span class="icon fas fa-user-circle"></span></span> + <img class="user-image" src="%user.avatar.url%" alt="%user.username%"> + </a> + <a href="%user.url%" class="user-name">%user.name_short_html%</a> + </div> + <div class="viewer-owner viewer-owner--guest"> + <div class="user-image default-user-image"><span class="icon fas fa-user-circle"></span></div> + <span class="user-name"><?php _se('Guest'); ?></span> + </div> + <div class="viewer-kb phone-hide phablet-hide tablet-hide no-select"> + <div class="viewer-kb-input" title="<?php _se('Keyboard shortcuts'); ?>"> + <div class="viewer-kb-key" data-key="◄"><kbd>◄</kbd><span><?php _se('Previous'); ?></span></div> + <div class="viewer-kb-key" data-key="►"><kbd>►</kbd><span><?php _se('Next'); ?></span></div> + <div class="viewer-kb-key" data-key="W"><kbd>W</kbd><kbd>R-click</kbd><span><?php _se('Zoom'); ?></span></div> + <?php + if (getSetting('enable_likes')) { + ?> + <div class="viewer-kb-key" data-key="L"><kbd>L</kbd><span><?php _se('Like'); ?></span></div> + <?php + } + ?> + <div class="viewer-kb-key" data-key="Esc"><kbd>Esc</kbd><span><?php _se('Close'); ?></span></div> + </div> + </div> + </div> + <div class="list-item-privacy list-item-image-tools --top --left"> + <div class="btn-icon btn-lock fas fa-eye-slash"></div> + </div> + <div class="list-item-image-tools --bottom --right"> + <?php + if (getSetting('theme_show_social_share')) { + ?> + <div class="list-item-share" data-action="share"> + <span class="btn-icon btn-share fas fa-share-alt"></span> + </div> + <?php + } + if (getSetting('enable_likes')) { + ?> + <div class="list-item-like" data-action="like"> + <span class="btn-icon btn-like btn-liked fas fa-heart"></span> + <span class="btn-icon btn-like btn-unliked far fa-heart"></span> + </div> + <?php + } + ?> + </div> + </div> +</script> diff --git a/content/legacy/themes/Peafowl/style.css b/content/legacy/themes/Peafowl/style.css new file mode 100644 index 0000000..9a6e2e1 --- /dev/null +++ b/content/legacy/themes/Peafowl/style.css @@ -0,0 +1,2496 @@ +body { + min-height: 100%; + background: var(--bodyBackground); + position: relative; + font-family: Helvetica, Arial, sans-serif; + font-size: 14px; + /* line-height: 1.2; */ +} +html.powered-by-footer body{ + padding-bottom: 22px; +} +html.powered-by-footer .upload-box-inner { + padding-bottom: 35px; +} + +body.landing { + min-height: 500px; + height: calc(100%); + padding: 0; + margin: 0; +} + +.phone body.landing { + min-height: auto; +} + +.js body.landing { + overflow: hidden; + opacity: 0; +} + +.js body.landing.load { + transition: transform 600ms ease, opacity 350ms linear; + opacity: 1; +} + +#home-cover-content, #index .flex-center { + opacity: 0; +} + +.js body.load #home-cover-content, .js body#index.load .flex-center { + transition: all 600ms ease; + transition-delay: 150ms; + opacity: 1; +} + +.js body.loaded { + overflow: auto; +} + +body.split { + margin-top: 0; + padding-top: 0; +} + +.fluid .content-width, .content-width.fluid { + width: 100%; + /*max-width: 1620px;*/ +} + +@media (min-width: 992px) { + .content-width.wide { + max-width: none; + } +} + +html.device-mobile .device-mobile--hide { + display: none !important; +} + +html.device-nonmobile .device-nonmobile--hide { + display: none !important; +} + +body#upload { + background-color: transparent; +} + +.software-version-name { + font-family: 'Brush Script MT', cursive, serif; + font-size: 1.1em; + text-transform: capitalize; +} + +/* + * IMAGE VIEWER + * --------------------------------------------- + */ + +.image-viewer { + text-align: center; + position: relative; + min-height: 72px; + overflow: hidden; + background: var(--viewerBackground); +} + +.image-viewer-main { + display: inline-block; + vertical-align: middle; +} + +.image-viewer-container { + display: grid; + margin: 0 auto; + position: relative; + min-height: calc(100% - 50px); +} + +.image-viewer-container.--thumbs { + min-height: calc(100% - 100px); +} + +.image-viewer-container img { + display: block; + margin: auto; + max-width: 100vw !important; + width: auto; +} + +#image-viewer-360 { + width: 100vw; + height: calc(100vh - 50px); + background: transparent !important; +} + +.image-viewer-container img[data-is360="1"] { + max-height: calc(100vh - 50px); +} + +/* .image-viewer-container--full img { + max-height: none !important; + height: auto !important; + width: auto !important; +} */ + +.image-viewer .btn-download { + position: absolute; + top: 20px; + right: 20px; +} + +.viewer-loader, #image-viewer-loading { + width: 30px; + height: 30px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -15px; + margin-top: -15px; + border-radius: 100%; + background: rgba(17, 17, 17, 0.9); +} + +#image-viewer-loader { + line-height: 1; + position: absolute; + background: rgba(0, 0, 0, 0.6); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); + color: #fff; + font-size: 1em; + left: 50%; + top: 50%; + padding: 8px 14px; + border-radius: 100px; + transform: translate(-50%, -50%); + cursor: pointer; + display: none; +} + +#image-viewer-loader:hover { + background: rgba(0, 0, 0, 0.6); + color: #fff; +} + +#image-viewer-loader .btn-icon { + position: relative; + top: 0; + font-size: 12px; +} + +/* + * LIKE BUTTON + * -- + */ + +.btn-like .btn.btn-liked, .btn-like .btn.btn-unliked { + display: none; +} + +.btn-like[data-liked="0"] .btn-unliked { + display: inline-block; +} + +.btn-like[data-liked="1"] .btn-liked { + display: inline-block; +} + +.btn-album-cover .btn.btn-album-is-cover, .btn-album-cover .btn.btn-album-not-cover { + display: none; +} + +.btn-album-cover[data-cover="0"] .btn-album-not-cover { + display: inline-block; +} + +.btn-album-cover[data-cover="1"] .btn-album-is-cover { + display: inline-block; +} + +.btn-follow .btn.btn-followed, .btn-follow .btn.btn-unfollowed { + display: none; +} + +.btn-follow[data-followed="0"] .btn-unfollowed { + display: inline-block; +} + +.btn-follow[data-followed="1"] .btn-followed { + display: inline-block; +} + +/* + * UPLOAD BOX + * --------------------------------------------- + */ + +#fullscreen-uploader-mask { + z-index: 99; +} + +.phone #fullscreen-uploader-mask { + z-index: 400; +} + +#anywhere-upload { + z-index: 900; + scroll: auto; + -webkit-overflow-scrolling: touch; + transition: transform 300ms ease; +} + +#anywhere-upload.hidden-visibility iframe { + visibility: hidden; +} + +.phone #anywhere-upload { + z-index: 500; + height: 100vh !important; +} + +#upload #anywhere-upload { + display: grid; + align-items: center; + position: fixed; + padding-top: 50px; + bottom: 0; + overflow: auto; +} + +#upload .upload-box .upload-box-allowed-files, .phone .upload-box .upload-box-allowed-files { + display: none; +} + +#upload .upload-box[data-queue-size="0"] .upload-box-allowed-files, .phone .upload-box[data-queue-size="0"] .upload-box-allowed-files { + display: block; +} + +#anywhere-upload-paste { + height: 0; + opacity: 0; + font-size: 0; +} + +#anywhere-upload-paste * { + display: none; +} + +.upload-box-queue { + text-align: center; + font-size: 0; + margin-top: 35px; + margin-bottom: 35px; +} + +.upload-box-queue li { + position: relative; + text-align: center; + display: inline-block; + margin: 5px; +} + +.upload-box-queue li, .upload-box-queue .block { + border-radius: 0.5em; + -webkit-transform: translateZ(0); +} + +.upload-box-queue li, .upload-box-queue li.normal { + width: 110px; + /* 110 -> 77 -> 55 */ + height: 110px; + font-size: 14px; + font-size: 1rem; +} + +.upload-box-queue li.small { + width: 77px; + height: 77px; + font-size: 9px; + font-size: 0.643rem; +} + +.upload-box-queue li.tiny { + width: 54px; + height: 54px; + font-size: 7px; + font-size: 0.5rem; +} + +.upload-box-queue .block { + width: 100%; + height: 100%; + top: 0; + left: 0; + overflow: hidden; + position: absolute; +} + +.upload-box-queue a.image-link { + display: none; +} + +.upload-box-queue .completed a.image-link { + display: block; + position: absolute; + overflow: hidden; + z-index: 1; + -webkit-transform: rotate(0.000001deg); +} + +.upload-box-queue .queue-item .queue-item-button, .upload-box-queue .queue-item .block.edit { + display: block; + position: absolute; + cursor: pointer; + z-index: 1; +} + +.upload-box-queue .queue-item .queue-item-button .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.upload-box-queue .queue-item.completed:hover .queue-item-button { + display: none; +} + +.upload-box-queue .queue-item .queue-item-button { + font-size: 10px; + width: 21px; + height: 21px; + line-height: 23px; + background: var(--buttonDefaultBackground); + color: var(--buttonDefaultText); + border-radius: 200px; + left: -5px; + box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.5); +} + +.upload-box-queue .queue-item .queue-item-button:hover { + background: var(--buttonDefaultHoverBackground); + color: var(--buttonDefaultHoverText); +} + +.upload-box-queue .queue-item .queue-item-button.cancel { + top: -7px; +} + +.upload-box-queue .queue-item .queue-item-button.edit { + top: 16px; + font-size: 9px; + opacity: 0; +} + +.upload-box-queue .big-icon { + position: absolute; + color: #dadada; + font-size: 5.36em; + width: 1em; + height: 1em; + left: 50%; + top: 50%; + margin-left: -0.5em; + margin-top: -0.5em; +} + +.tone-dark .upload-box-queue .big-icon { + color: #444; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.9); +} + +.upload-box-queue .preview, .upload-box-queue .done { + position: relative; + overflow: hidden; +} + +.upload-box-queue .preview .canvas { + position: absolute; + top: 50%; + left: 50%; +} + +.upload-box-queue .progress { + position: absolute; +} + +.queue-item.uploading .queue-item-button.edit, .queue-item.uploading .block.edit { + display: none; +} + +.upload-box-queue .progress-bar { + height: 100%; + float: right; + width: 100%; + display: none; +} + +.upload-box-queue .progress-bar, .upload-box-queue .failed .result { + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + transform: all 300ms; +} + +.upload-box-queue .uploading .progress-bar { + display: block; +} + +.upload-box-queue .completed .result.done, .upload-box-queue .failed .result.failed { + display: block; +} + +.upload-box-queue .result { + position: absolute; + z-index: 1; + display: none; +} + +.tone-dark .upload-box-queue .progress-bar, .tone-dark .upload-box-queue .failed .result { + background: rgba(0, 0, 0, 0.65); +} + +.upload-box-queue .result .icon { + position: absolute; + width: 100%; + font-size: 3.429em; + top: 50%; + left: 0; + margin-top: -0.5em; + text-shadow: none; +} + +.upload-box-queue .done .result .icon { + text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2); +} + +.upload-box-queue .failed .result .icon { + font-size: 3.429em; + /* 48 */ +} + +.upload-box-queue.queue-complete .cancel, .upload-box-queue.queue-complete .edit { + display: none; +} + +#uploaded-embed-toggle-combo, #form-embed-toggle-combo { + position: relative; +} + +#upload .top-bar { + box-shadow: none; + border-bottom-color: transparent; +} + +#upload .upload-box { + transform: none; + position: static; +} + +body#upload [data-action="close-upload"] { + display: none !important; +} + +/* reset shows on ready and complete! */ + +.upload-box:not(.queueReady):not(.queueCompleted) [data-action="reset-upload"], .upload-box.queueUploading [data-action="close-upload"], .upload-box:not(.queueUploading) [data-action^="cancel-upload"], .upload-box.queueHasResults [data-action="cancel-upload"], .upload-box:not(.queueHasResults) [data-action="cancel-upload-remaining"], .upload-box.queueReady [data-action="close-upload"], .upload-box:not([data-queue-size="0"]) [data-action="close-upload"] { + display: none; +} + +/* + * USER BACKGROUND COVER + * --------------------------------------------- + */ + +#background-cover { + height: 260px; + background-color: #000; + position: relative; +} + +.phone #background-cover:not(.no-background) { + height: 20vh; + max-height: 260px; + min-height: 90px; +} + +#background-cover.no-background { + background-color: var(--bodyEmpty); + background-image: none !important; + height: auto; +} + +.tone-dark #background-cover.no-background { + background: #2f2f2f; +} + +#background-cover-wrap { + height: 100%; + overflow: hidden; + position: relative; + padding: 10px; +} + +#background-cover .content-width { + text-align: center; +} + +#change-background-cover { + position: absolute; + right: 0; + top: 0; + z-index: 500; +} + +#user-background-upload { + top: 0; + left: 0; + width: 1px; + height: 1px; +} + +#background-cover-src { + overflow: hidden; + background-position: center center; + background-size: cover; +} + +#background-cover-src, #background-cover .loading-placeholder { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +#background-cover.no-background #background-cover-src { + height: 0; +} + +#background-cover .loading-placeholder { + background: rgba(0, 0, 0, 0.8); +} + +/* + * LIST STYLES + * --------------------------------------------- + */ + +[data-privacy="public"] .list-item-privacy { + display: none; +} + +.list-item-thumbs li, .list-item-thumbs li a { + display: block; + height: auto; + overflow: hidden; +} + +.list-item-thumbs li a { + height: 100%; + background-size: cover; + background-position: center center; +} + +.list-item-thumbs li img { + width: 100%; + display: block; +} + +.input-copy { + position: relative; +} + +.list-item-image-tools { + overflow: hidden; + position: absolute; + right: 0; + top: 0; + transition: all 200ms ease-in-out; + text-shadow: 1px 1px 5px rgba(0, 0, 0, .5); +} + +.list-item-image-tools.--top { + bottom: auto; + top: 0; +} + +.list-item-image-tools.--right { + left: auto; + right: 0; +} + +.list-item-image-tools.--bottom { + top: auto; + bottom: 0; +} + +.list-item-image-tools.--left { + right: auto; + left: 0; +} + +.list-item-image-tools>div { + margin: 0; + cursor: pointer; + position: relative; + font-size: 1em; + right: 0; + margin-left: auto; +} + +html.--idle .list-item-image-tools>div[data-action="viewer-close"], .list-item-image-tools>div, .list-item-buttons>div { + opacity: 0.5; +} + +.list-item-image-tools>div:hover, .list-item .hover-display.list-item-image-tools, .list-item.selected div.tool-select { + opacity: 1; +} + +.list-item.--over .list-item-image-tools>div { + opacity: 0.5; +} + +.list-item-image-tools>div { + float: right; +} + +.list-item-image-tools>div, .list-item-image-tools>div * { + display: block; + color: var(--listItemText); +} + + +.list-item-image-tools>div span { + float: right; +} + +.list-item-image-tools>div .label { + font-size: 0.86em; +} + +.list-item-image-tools>div .btn-icon { + font-size: 1em; +} + +.phone .list-item:not(.selected):not(.viewer) .tool-select { + display: none; +} + +.list-item-image-tools>div .label { + text-transform: uppercase; + padding-left: 1em; + padding-right: 0; + display: none; + height: 100%; +} + +.list-item-image-tools>div:hover .label { + display: block; +} + +.small-cols .list-item-image-tools>div:hover .label { + display: none; +} + +[data-flag="unsafe"] .label-flag-unsafe.btn-icon, [data-flag="safe"] .label-flag-safe.btn-icon, [data-flag="unsafe"] .list-item-image-tools>div:hover .label.label-flag-unsafe, [data-flag="safe"] .list-item-image-tools>div:hover .label.label-flag-safe { + display: none; +} + +.unsafe-blur-on [data-flag="unsafe"] .image-container, .unsafe-blur-on .list-item .list-item-thumbs div[data-flag="unsafe"] a { + filter: blur(8px); + -webkit-filter: blur(8px); +} + +.unsafe-blur-on [data-flag="unsafe"]:not(.selected):not(.ui-selecting) .image-container, .unsafe-blur-on .list-item .list-item-thumbs div[data-flag="unsafe"]:not(.selected):not(.ui-selecting) a { + transform: scale(1.2); +} + +.unsafe-blur-on [data-flag="unsafe"]:hover .image-container, .unsafe-blur-on .list-item:hover .list-item-thumbs div[data-flag="unsafe"] a { + filter: none; + -webkit-filter: none; +} + +.list-item-buttons>div, .list-item-image-tools>div, .list-item-image-tools>div .btn-icon { + width: 2.2em; + height: 2.2em; + line-height: 2.2em; +} + +.list-item-image-tools>div .btn-icon { + color: inherit; + text-align: center; +} + +.list-item-album .tool-flag { + display: none; +} + +.list-item .list-item-avatar-cover, .list-item .list-item-avatar-cover>* { + border-radius: 100%; +} + +.list-item .image-container.--bodyEmpty .empty, .list-item .list-item-avatar-cover { + position: absolute; + border: 0; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} + +.list-item .list-item-avatar-cover { + height: 60%; + width: 60%; + max-height: 160px; + max-width: 160px; + background: var(--backgroundLightAlpha); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); +} + +.list-item .list-item-avatar-cover>* { + width: 100px; + height: 100px; +} + +.list-item .list-item-avatar-cover img { + height: auto; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); +} + +/* .list-item .list-item-avatar-cover .icon.empty { + display: block; + top: 50%; + position: relative; + margin-top: -0.5em; +} */ + +.ui-selecting .list-item-image, .selected .list-item-image, .unselect .list-item-image { + background: var(--viewerBackground); +} + +body#moderate .list-item-like, body#moderate .viewer-kb-key[data-key="L"] { + display: none; +} + +.list-item-buttons { + color: #fff; + position: absolute; + right: 0; + bottom: 0; +} + +.list-item-buttons>div { + padding: 10px; + cursor: pointer; + float: left; + font-size: 1em; + margin-left: -5px; +} + +.list-item .list-item-buttons>div:hover { + opacity: 1; +} + +.list-item-like .btn-like { + display: none; +} + +.list-item-like .btn-like:hover, .list-item-like .btn-like.btn-liked { + opacity: 1; +} + +[data-liked="0"] .list-item-like .btn-like.btn-unliked { + display: block; +} + +[data-liked="1"] .list-item-like .btn-like.btn-liked { + display: block; +} + +/* play stuff */ + +.list-item-play-gif, .list-item-play-gif * { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAACdCAMAAAAgwM7pAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAcVQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///9///+///+///+///+///+///9///8///1///5///9///9///u///f///+///+///+///9///q///z///9///+///9///8///9///+///+///+///+///8///w///9///+///3///8///9///2///9///7///t///+///8///b///9///9///M///+///y//+A///9///r///7///+///7///3///+///8//+////8//+q///8///+///z///+///+///9///6///m///7///j///7///9///+///+///9///9///6///+///+///+///7///V///+///9///5///9///+///+///8///9///6///8///+///9///4///+///+///+///+///4///9///5///+///v///7///9///8///o///9///9///8///6///y///9///0///+///x///+///6////////////vBUIqgAAAJd0Uk5TABQmNkZSWF5iCipmAiRKZAQuXCwYVDoMUBpgIiil+enVw7GJUBoujZkOCPf/45sMFnDPbEqhtcfZ714Qi9EgWI8adDgO21oGbmoEyxICcgw87Toe+1QEVgJg/RTru344CkIIRnrx55VmMNf1wT4GyaMoh+HlTJcyYt+pJrfTzd0ipyqtEECTXAp8aGQ2FIMWxRKzLrhG/4D2XIEAAAQlSURBVHiczZjnWxNBEMYPCCThgNC7IIKCyaCIdJCmgIooYkFCEwsqTRRQQREb9l7u7/UuuZhccm1vX5+H99Ne2d/d7uzOzowgmCgpOcWVmub2eNxpqa6U5CSzdw3lTXe5xTi5XeleNkpGZpYvnhKWLyszwzYmOydXnxJWbk62PU5ewpAShphnA5NfYIVRVJBvgckoNJibhLkqNJ2qomJ7GEXFRcacklL7HFEsLTHilHlYOKLoKdPnlNucnqh85br/w8yRSTr/VMI4rrA8CfNUxDTPUZXG2S6Dwe5aFWvXU6FTjigWxnLyHUx0RL7Y3WJrfxmpIMrJ4+GI4j9fkG3pN8zljvinHD6OKOaopjf1h3aUG14CmbwcUcwMgbL4QVkKx8uxhiLyefltH5ayAlwIkEsGcS6isNzy+Y7giGKSkIwBJQspGFAKZq6V2U7FgFKFNAwoDWN9xf6OTqFEeXAg2NBgkw0zP2xBwrYIbNPC3AjMseFcLcT5pyOPI9gBiTuyYUEELKzBBVqw0A8XjOLCY1jAjkshYEkNLs3CJX64VBSXHOPSdVwBAVfSEGBFFkWgso+AK0QJsNJYSN48RLFOFaR8CNe+isr9VQeqaw46636otu5wqOEPkKr6I0dZKQ3HGuWOx8MXTc0trW3tIVQHG6azK/QTJ7pjb3b39La29rFg/P3K19vrTrJ9PUGnBmTMwOCQySunB/ptgE4SVZ45a/rKMFHLOUvQSP/5CxavjF6ULThm46csdamV6PIVBOlql0waN3x8jQE1ETQkTZ6Y6tZ/YkQK6q6QkWmiJgaQ0BGMLH2tZoiqWMYmCLPnr+vcnQvSFNMGMNCNegreBHCEW0TVCM7kbZpn9jV6ukN011nPe1pLX6YFNotFdHSRJmKvlwLLzn5oZZHua26YuR9TrRI9cNpXozmihxCQsEbrGFA1amwbzIeUgSaJHqnNx0tPeEib1Ki2tmiNB7RKU2priTZ5QE+fRQa0Tc95QFGt0zQGFKCtPQaCDW2bhjGgJdrh6f5ia1BtvaQ2HlAzVaqtV683eEDRLcKnmE3LJ5gbkR3bUwgI5WrntGe9/41TkPY4WlkI7DrjDGkPSL/jI/twgDR++q3jIGLsneZSCWveOyPFCRVoCdfriSChn7ArB6MOc804fZDD4xGmHrMf/Xq3lYB9lIUjB+yfdB80VC10MnCUFOIzy4eNOSbpkW1ZpFm2ZSvx889YpqLLchpeb2mYGqIpi+R421Zy/GUnlK7rLhFVX+ftpOvCkFpAmLXzsrk6ayuUksbwt9ib3eO935/9YEVNhoosql16mn9GiixOLP6r9m14nvroX9mnjstnjUxXzPMUovaIfv8BgSQJhJIkEEqSQChJAqEkCYSSJBBKkkCo/wICDQ002SDzgxYkaIuANi0X5i8hpIpr8W0lCwAAAABJRU5ErkJggg=="); + position: absolute; + top: 50%; + left: 50%; +} + +.list-item-play-gif { + scale: 0.6; + width: 72px; + height: 72px; + margin-left: -36px; + margin-top: -36px; + background-position: 0 0; + cursor: pointer; + transition: all 350ms; +} + +@media (min-width: 320px) { + .list-item-play-gif { + scale: 0.8; + } +} + +@media (min-width: 480px) { + .list-item-play-gif { + scale: 1; + } +} + +.list-item-play-gif>span { + width: 66px; + height: 66px; + margin-left: -33px; + margin-top: -33px; + background-position: 0 -73px; +} + +.list-item-play-gif:hover>span, .list-item-play-gif--loading>span { + -webkit-animation: spin 2s linear infinite; + animation: spin 2s linear infinite; +} + +.list-item-play-gif>i { + width: 32px; + height: 17px; + margin-left: -16px; + margin-top: -9px; + background-position: 0 -140px; +} + +@-webkit-keyframes spin { + from { + -webkit-transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(360deg); + } +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} + +/* settings */ + +.settings-group { + display: none; +} + +.settings-group-isolated { + display: block; +} + +/* stats */ + +.stats-block, a.stats-block { + text-decoration: none; + color: inherit; + padding: 10px; + border-radius: 4px; +} + +a.stats-block:hover { + color: var(--linkText); + background: var(--bodyEmpty); +} + +.tone-dark a.stats-block:hover { + background: #222; +} + +.text-align-center .stats-big-number { + text-align: center; +} + +.stats-big-number .number { + font-size: 44px; + font-weight: 400; +} + +.stats-big-number .number span { + font-size: 24px; +} + +.stats-big-number .label { + display: block; +} + +.tone-dark .text-content code { + border-color: #222; + background: #111; +} + +#home-top-bar-placeholder { + margin-top: -65px; +} + +#home-cover { + width: 100%; + background-position: center center; + background-color: #333; + background-size: cover; + color: #fff; + position: relative; +} + +body.split #home-cover, body.landing #home-cover { + margin: 0; + padding: 0; + height: 100vh; +} + +body.split #home-cover { + margin: 0; + height: 500px; +} + +#home-cover-content { + position: relative; + text-align: center; + height: 100%; + top: 50px; +} + +body.split #home-cover-content, body.landing #home-cover-content { + height: calc(100% - 50px); + position: relative; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; +} + +#home-cover-content>* { + margin: 10px 0; +} + +#home-cover-content p, #home-cover-content h1 { + text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.25); +} + +/*#home-cover-content a { + color: #FFF; + }*/ + +#home-cover-content h1 { + font-size: 2.4em; + line-height: 120%; + font-weight: 600; +} + +@media (min-width: 768px) { + #home-cover-content h1 { + font-size: 2.7em; + } +} + +@media (min-width: 992px) { + #home-cover-content h1 { + font-size: 3em; + } +} + +#home-cover-content p { + font-size: 22px; +} + +.home-buttons { + text-align: center; +} + +.home-buttons a { + font-size: 16px; + text-transform: uppercase; + min-height: 50px; + line-height: 1.5; + height: auto; + text-align: center; + letter-spacing: 2px; + padding: 12px 30px; +} + +#home-pics-feature { + height: 700px; + overflow: hidden; + position: relative; + margin: 10px 0; +} + +#home-pics-feature.empty { + height: auto; +} + +#home-pics-feature-overlay { + /* FF3.6+ */ + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* Opera 11.10+ */ + /* IE10+ */ + background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%); + /* W3C */ + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#ffffff', GradientType=0); + /* IE6-9 */ + width: 100%; + height: 200px; + position: absolute; + bottom: 0; + z-index: 1; +} + +.tone-dark #home-pics-feature-overlay { + /* FF3.6+ */ + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* Opera 11.10+ */ + /* IE10+ */ + background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%); + /* W3C */ + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#000000', GradientType=0); + /* IE6-9 */ +} + +#home-pics-feature.empty #home-pics-overlay { + display: none; +} + +#home-join { + margin: 40px 0; + padding-bottom: 40px; +} + +#home-join h2 { + font-size: 38px; +} + +#home-join p { + margin: 20px 0; + font-size: 18px; +} + +/** + * BANNERS + */ + +.ad-banner { + margin: 10px; + text-align: center; +} + +.ad-banner:empty { + margin: 0; + height: 0; +} + +.ad-banner img { + display: block; + margin: 0 auto; +} + +/* sizes */ + +.ad-banner-size-300x250 { + width: 300px; + height: 250px; +} + +.ad-banner-size-336x280 { + width: 336px; + height: 280px; +} + +.ad-banner-size-728x90 { + width: 728px; + height: 90px; +} + +.ad-banner-size-300x600 { + width: 300px; + height: 600px; +} + +.ad-banner-size-320x100 { + width: 320px; + height: 100px; +} + +.ad-banner-size-320x50 { + width: 320px; + height: 50px; +} + +.ad-banner-size-468x60 { + width: 468px; + height: 60px; +} + +.ad-banner-size-234x60 { + width: 234px; + height: 60px; +} + +.ad-banner-size-120x600 { + width: 120px; + height: 600px; +} + +.ad-banner-size-120x240 { + width: 120px; + height: 240px; +} + +.ad-banner-size-160x600 { + width: 160px; + height: 600px; +} + +.ad-banner-size-300x1050 { + width: 300px; + height: 1050px; +} + +.ad-banner-size-970x90 { + width: 970px; + height: 90px; +} + +.ad-banner-size-970x250 { + width: 970px; + height: 250px; +} + +.ad-banner-size-250x250 { + width: 250px; + height: 250px; +} + +.ad-banner-size-200x200 { + width: 200px; + height: 200px; +} + +.ad-banner-size-180x150 { + width: 180px; + height: 150px; +} + +.ad-banner-size-125x125 { + width: 125px; + height: 125px; +} + +#banner_before_home_cover { + margin: 0; + padding: 10px; + background: #000; +} + +#banner_image_image-viewer_top, #banner_image_image-viewer_foot { + height: 90px; + margin-left: auto; + margin-right: auto; +} + +body#maintenance, body#consent-screen { + padding: 0; + margin: 0; + width: 100%; + height: 100%; +} + +#maintenance-cover, #consent-screen-cover { + height: 100%; + background-position: center center; + background-color: #333; + background-size: cover; +} + +#maintenance-cover-inner, #consent-screen-cover-inner { + background: rgba(0, 0, 0, 0.25); + width: 100%; + height: 100vh; +} + +#maintenance-cover-content, #consent-screen-cover-content { + color: #fff; + padding: 40px; + text-align: center; + position: relative; + top: 50%; + transform: translateY(-50%); +} + +#maintenance-cover-content .logo { + display: inline-block; + margin-bottom: 20px; + color: #FFF; + text-decoration: none; + font-size: 2.5em; +} + +#maintenance-cover-content .logo img { + height: 30px; +} + +#maintenance-cover-content h1 { + font-size: 2.5em; + margin-bottom: 20px; +} + +#maintenance-cover-content p { + font-size: 1.2em; +} + +#consent-screen-cover-inner { + background: none; +} + +#consent-screen-cover-src { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-position: center; + background-size: cover; +} + +#consent-screen-content { + background: var(--menuBackground); + color: var(--menuItemText); + margin: 0 auto; + padding: 30px; + box-shadow: 0 0 50px 6px rgba(0, 0, 0, 0.25); + top: 50%; + position: relative; + transform: translateY(-50%); + border-radius: 10px; + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); +} + +#consent-screen-content h1 { + line-height: 2em; +} + +#consent-screen-content .logo-consent { + width: 2em; + height: auto; + display: inline-block; + margin-right: 10px; + vertical-align: top; +} + +#fullscreen-modal-box .image-preview { + margin-bottom: 20px; + overflow: auto; + text-align: center; +} + +.image-preview-container { + position: relative; + display: block; + float: left; + width: 20%; +} + +.image-preview-container .empty { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 3em; +} + +#fullscreen-modal-box .image-preview:empty { + display: none; +} + +#fullscreen-modal-box .image-preview .canvas { + border: 0; + display: inline-block; + margin: 0 auto; + max-width: 100%; + max-height: 500px; +} + +#fullscreen-modal-box .image-preview .thumb { + font-size: 0; + border: 0; + display: block; + background-size: cover; + background-position: center; + width: 100%; +} + +.content-password-gate { + background: #f9f9f9; + border-radius: 10px; + padding: 30px; + font-size: 16px; + text-align: center; +} + +.tone-dark .content-password-gate { + background: transparent; +} + +.content-password-gate h1 { + font-size: 30px; + margin-bottom: 10px; +} + +.content-password-gate h1 .icon { + display: block; + font-size: 60px; + margin-bottom: 10px; +} + +.content-password-gate .g-captcha>div { + margin-right: auto; + margin-left: auto; +} + +/* Home cover stuff */ + +#home-cover-slideshow { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: hidden; +} + +.home-cover-img { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + display: block; + opacity: 0; + transform: translateZ(0); + -webkit-transform: translateZ(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.home-cover-img.animate-in, .home-cover-img.animate-in--alt { + -webkit-animation-name: slideshow; + animation-name: slideshow; + -webkit-animation-duration: 10s; + animation-duration: 10s; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; +} + +.home-cover-img.animate-in--alt { + opacity: 1; + -webkit-animation-name: slideshow--alt; + animation-name: slideshow--alt; +} + +.home-cover-img.animate-end { + opacity: 1; + transform: scale(1.1); + -webkit-animation: none; + animation: none; +} + +@-webkit-keyframes slideshow { + 0% { + opacity: 0; + } + + 20% { + opacity: 1; + } + + 100% { + opacity: 1; + transform: scale(1.1); + } +} + +@keyframes slideshow { + 0% { + opacity: 0; + } + + 20% { + opacity: 1; + } + + 100% { + opacity: 1; + transform: scale(1.1); + } +} + +@-webkit-keyframes slideshow--alt { + 100% { + transform: scale(1.1); + } +} + +@keyframes slideshow--alt { + 100% { + transform: scale(1.1); + } +} + +@supports (-ms-accelerator: true) { + .home-cover-img.animate-end { + transform: scale(1); + } + + @-webkit-keyframes slideshow { + 0% { + opacity: 0; + } + + 20% { + opacity: 1; + } + } + + @keyframes slideshow { + 0% { + opacity: 0; + } + + 20% { + opacity: 1; + } + } + + @-webkit-keyframes slideshow--alt { + 100% { + transform: scale(1); + } + } + + @keyframes slideshow--alt { + 100% { + transform: scale(1); + } + } +} + +#home-cover-slideshow::after { + content: ""; + z-index: 1; + height: 50px; + position: absolute; + top: 0; + left: 0; + right: 0; + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 100%); +} + +#dashboard-settings { + min-height: 400px; +} + +#settings .form-content, #dashboard .form-content { + padding-bottom: 60px; +} + +.footer { + color: var(--bodyTextDisabled); + font-size: 10px; + line-height: 20px; + text-align: center; + width: 100%; + position: absolute; + bottom: 0; + z-index: 900; + padding: 5px; + line-height: 1; +} +body#upload .footer{ + background: var(--bodyBackground); +} +.footer a { + color: inherit; +} + +body.--viewer-shown { + overflow: hidden; +} + +.viewer { + background: #000; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 999; +} + +.viewer .list-tool { + display: initial !important; +} + +.js .viewer { + display: block; + touch-action: pinch-zoom !important; +} + +.viewer--hide { + opacity: 0; +} + +.viewer--show { + opacity: 1; +} + +.viewer.viewer--no-cursor, .viewer.viewer--no-cursor * { + cursor: none; +} + +.viewer-content { + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.viewer-content img { + position: absolute; + max-height: 100vh; + max-width: 100vw; + transform: translate(-50%, -50%); + top: 50%; + left: 50%; +} + +.viewer[data-cover="1"] .viewer-content img { + width: 100vw; + height: 100vh; + -o-object-fit: cover; + object-fit: contain; +} + +.viewer-close, .viewer-wheel>div { + color: #fff; + top: 0; + font-size: 1em; + text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5); + text-align: center; +} + +.viewer-close { + position: absolute; + width: 2.4em; + height: 2.4em; + line-height: 2.4em; + cursor: pointer; + right: -2.4em; + z-index: 500; +} + +.viewer:hover .hover-display.viewer-close { + right: 2px; +} + +.viewer-wheel>div { + position: fixed; + bottom: 0; + width: calc(1em + 20px); + cursor: pointer; + padding: 10px; + opacity: 0.7; + display: none; +} + +.viewer-wheel>div:hover { + opacity: 1; +} + +.viewer--nav-prev .viewer-wheel-prev { + left: 0; + display: block; +} + +.viewer--nav-next .viewer-wheel-next { + right: 0; + display: block; +} + +.viewer-wheel>div>.icon { + position: absolute; + top: 50%; + transform: translateY(-50%); + display: block; + font-size: 1.5em; +} + +.viewer-foot { + padding: 10px; + position: absolute; + left: 0; + right: 0; + bottom: 0; + height: 60px; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.6) 100%); + display: flex; + flex-wrap: wrap; + flex-flow: row; +} + +.viewer-owner { + width: 190px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #fff; +} + +.viewer-owner .user-image { + font-size: 40px; + width: 1em; + height: 1em; + vertical-align: bottom; + margin-right: 5px; + color: #fff; +} + +.viewer-owner .user-name { + font-size: initial; + text-decoration: none; + vertical-align: middle; + line-height: 40px; + color: inherit; +} + +.viewer-owner a.user-name:hover { + color: var(--backgroundLightAlpha); +} + +.viewer-owner { + order: 1; +} + +.viewer-kb { + font-size: 0.86em; + flex-grow: 1; + order: 2; + text-align: center; +} + +.viewer .viewer-kb { + padding-right: 190px; +} + +.device-mobile .viewer-kb { + display: none; +} + +.viewer-kb-input { + display: inline-block; +} + +.viewer .viewer-kb-input { + color: #FFF; +} + +.viewer-kb-key { + display: inline-block; + margin: 10px; + margin-left: 0; +} + +.viewer-kb-key:first-child { + margin-left: 10px; +} + +.viewer-kb-key kbd { + border: 1px solid rgba(0, 0, 0, 0.5); + background: rgba(120, 120, 120, 0.5); + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + padding: 4px 6px; + border-radius: 2px; + display: inline-block; + margin-right: 5px; + line-height: 1; +} + +.viewer-like { + transform: none; + top: auto; + bottom: 20px; + right: 20px; + position: absolute; +} + +.viewer:hover .hover-display--flex { + display: flex; +} + +.--width-auto { + width: auto; +} + +.--height-auto { + height: auto; +} + +html.--idle .viewer, html.--idle .viewer * { + cursor: none !important; +} + +html .fullscreen-show { + display: none; +} + +:-webkit-full-screen .fullscreen-hide { + display: none; +} + +:-ms-fullscreen .fullscreen-hide { + display: none; +} + +:fullscreen .fullscreen-hide { + display: none; +} + +:-webkit-full-screen .fullscreen-show { + display: block; +} + +:-ms-fullscreen .fullscreen-show { + display: block; +} + +:fullscreen .fullscreen-show { + display: block; +} + +a.image-container { + -webkit-tap-highlight-color: transparent; +} + +a { + color: var(--linkText); + outline: 0; + text-decoration: none; +} + +.input-label, .content-section { + margin-top: 20px; + margin-bottom: 20px; + position: relative; +} + +.content-section:first-child, +.input-label:first-child { + margin-top: 0; +} + +.input-label .input { + width: 100%; + margin-bottom: 0; +} + +.input-label .input+.input { + margin-top: 5px; +} + +.input-label .input-label { + margin-bottom: 10px; +} + +.input-label .input-label .label { + font-weight: normal; +} + +.input-label label .caption, .input-label label .optional { + font-weight: normal; + font-size: 0.92em; +} + +.input-label label .caption:before, .input-label label .optional:before { + content: "("; +} + +.input-label label .caption:after, .input-label label .optional:after { + content: ")"; +} + +.input-label-below { + margin-top: 5px; + clear: both; +} + +.background-cover { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-position: center center; + background-size: cover; +} + +.input-with-button { + position: relative; +} + +.input-with-button input::-webkit-outer-spin-button, +.input-with-button input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.input-with-button input[type=number] { + -moz-appearance: textfield; +} + +.input-with-button button { + background: none; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + border: none; + font-size: 22px; + width: 1em; + height: 1em; + outline: 0; + color: var(--colorAccent); +} + +.input-with-button button:hover, .input-with-button button:focus { + color: var(--colorAccentStrong); +} + +#top-left { + position: fixed; + padding: 5px; + left: 0; + top: 0; +} + +.top-button { + padding: 5px; +} + +.top-button .menu-box { + margin-top: 5px; +} + +.top-button-icon { + font-size: 16px; + color: #fff; + cursor: pointer; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); +} + +.background-default { + background: #2ecc71; + background: linear-gradient(to bottom, #2ecc71 0%, #3498db 100%); + filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#2ecc71', endColorstr='#3498db', GradientType=0); +} + +.content-box { + position: relative; + margin: 20px; +} + +.content-box-text *:first-child { + margin-top: 0; +} + +.content-box-text *:last-child { + margin-bottom: 0; +} + +.logo { + max-height: 50px; + max-width: 220px; + margin-bottom: 20px; +} + +.card-box { + min-width: 270px; + width: calc(100vw - 40px); +} + +.access-box-content { + background: var(--bodyBackground); +} + +.fancy-box-heading { + font-size: 22px; + margin: 20px 0 30px 0; +} + +.fancy-fieldset { + border: 0; + padding: 0; + margin: 0; +} + +.fancy-fieldset input:not([type="checkbox"]), .fancy-fieldset input[type="text"], .fancy-fieldset select, .fancy-fieldset textarea { + outline: 0; + padding: 10px 0; + width: 100%; + border-radius: 0; + border-color: transparent; + background: transparent; + box-shadow: none; +} + +.fancy-fieldset .checkbox-label input[type="checkbox"] { + width: auto; + vertical-align: middle; + margin: 0 0 0 -20px; +} + +.fancy-fieldset select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.fancy-fieldset input, .fancy-fieldset select { + padding: 10px 0; + border-top: transparent; + border-left: transparent; + border-right: transparent; +} + +.fancy-fieldset input:focus, .fancy-fieldset input:focus[type="text"], .fancy-fieldset select:focus, .fancy-fieldset textarea:focus { + border-color: var(--colorAccent); +} + +.fancy-fieldset .input-with-button input[type="password"] { + padding-right: 30px; +} + +.fancy-fieldset>div:last-child { + margin-bottom: inherit; +} + +.fancy-fieldset .label { + line-height: 1.5; +} + +.fancy-fieldset .input-label:last-child { + margin-bottom: 0; +} + +.fancy-fieldset .checkbox-label { + margin: 0; +} + +a.login-provider-button { + position: relative; + text-decoration: none; + display: inline-block; + font-size: 1em; + margin: 10px 0; + background: #d9d9d9; + padding: 8px; + text-decoration: none; + display: block; + color: #fff; + border-radius: 3px; + text-align: center; +} + +a.login-provider-button .text { + margin-left: 5px; +} + +a.login-provider-button--facebook { + background-color: #4267b2; +} + +a.login-provider-button--twitter { + background-color: #1da1f2; +} + +a.login-provider-button--google { + background-color: #ea4335; +} + +a.login-provider-button--vkontakte { + background-color: #45668e; +} + +a.login-provider-button--apple { + background-color: #000000; +} + +a.login-provider-button--amazon { + background-color: #FF9900; +} + +a.login-provider-button--bitbucket { + background-color: #2684FF; +} + +a.login-provider-button--discord { + background-color: #738ADB; +} + +a.login-provider-button--dribbble { + background-color: #E94C88; +} + +a.login-provider-button--dropbox { + background-color: #007ee5; +} + +a.login-provider-button--github { + background-color: #333; +} + +a.login-provider-button--gitlab { + background-color: #fc6d26; +} + +a.login-provider-button--instagram { + background-color: #e1306c; +} + +a.login-provider-button--linkedin { + background-color: #006192; +} + +a.login-provider-button--mailru { + background-color: #168de2; +} + +a.login-provider-button--medium { + background-color: #00ab6c; +} + +a.login-provider-button--odnoklassniki { + background-color: #ed812b; +} + +a.login-provider-button--orcid { + background-color: #a5ce37; +} + +a.login-provider-button--reddit { + background-color: #ff4500; +} + +a.login-provider-button--spotify { + background-color: #1db954; +} + +a.login-provider-button--stackexchange { + background-color: #1e5397; +} + +a.login-provider-button--steam { + background-color: #00adee; +} + +a.login-provider-button--strava { + background-color: #fc4c02; +} + +a.login-provider-button--telegram { + background-color: #0088cc; +} + +a.login-provider-button--tumblr { + background-color: #35465c; +} + +a.login-provider-button--twitchtv { + background-color: #9146ff; +} + +a.login-provider-button--wechat { + background-color: #7bb32e; +} + +a.login-provider-button--windowslive { + background-color: #107c10; +} + +a.login-provider-button--wordpress { + background-color: #21759b; +} + +a.login-provider-button--yandex { + background-color: #ffcc00; +} + +a.login-provider-button--yahoo { + background-color: #410093; +} + +a.login-provider-button--qq { + background-color: #121214; +} + +.login-provider-button-outline { + position: relative; + text-decoration: none; + width: 32px; + height: 32px; + display: inline-block; + border-radius: 50%; + border-width: 1px; + border-style: solid; + font-size: 16px; + margin: 5px; +} + +.login-provider-button-outline .icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.login-provider-button-outline.border-color-facebook:hover, .login-provider-button-outline.border-color-facebook:focus { + background-color: #3b5998; +} + +.login-provider-button-outline.border-color-twitter:hover, .login-provider-button-outline.border-color-twitter:focus { + background-color: #1da1f2; +} + +.login-provider-button-outline.border-color-google:hover, .login-provider-button-outline.border-color-google:focus { + background-color: #ea4335; +} + +.login-provider-button-outline.border-color-vk:hover, .login-provider-button-outline.border-color-vk:focus { + background-color: #45668e; +} + +.login-provider-button-outline:hover .icon, .login-provider-button-outline:focus .icon { + color: #fff; +} + +#login { + padding: 0; + margin: 0; +} + +.content-section--captcha-fix #g-recaptcha, +.content-section--captcha-fix .h-captcha { + min-height: 78px; + transform: scale(0.89); + transform-origin: left; +} + +#login .input { + margin: 0; +} + +.btn-container--fixed { + position: fixed; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, .05); + padding: 10px 0; + margin: 0; + border: 0; + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + text-align: left; +} + +.phone .btn-container--fixed, .phablet .btn-container--fixed { + text-align: center; +} + +body.full--wh { + height: 100vh; + width: 100vw; +} + +.display-flex #home-cover-slideshow { + position: fixed; +} + +[data-content="dashboard-imports"] [data-result], [data-content="dashboard-imports"] [data-action="resume"], [data-content="dashboard-imports"] [data-started="0"] [data-content^="log"], [data-content="dashboard-imports"] [data-errors="0"] [data-content="log-errors"] { + display: none; +} + +[data-content="dashboard-imports"] [data-errors="1"] [data-content="log-process"], [data-content="dashboard-imports"] [data-status="completed"][data-errors="0"] [data-result="success"], [data-content="dashboard-imports"] [data-status][data-errors="1"] [data-result="error"], [data-content="dashboard-imports"] [data-status="completed"] [data-action="pause"], [data-content="dashboard-imports"] [data-status="paused"] [data-action="resume"] { + display: initial; +} + +[data-content="dashboard-imports"] [data-status="paused"] [data-action="pause"], [data-content="dashboard-imports"] [data-status="canceled"] [data-action="pause"], [data-content="dashboard-imports"] [data-status="completed"] [data-action="pause"], [data-content="dashboard-imports"] [data-status="queued"] [data-action="pause"], [data-content="dashboard-imports"] [data-status="canceled"] [data-action="cancel"], [data-content="dashboard-imports"] [data-status="canceled"] [data-target="modal-process-import"], [data-content="dashboard-imports"] [data-status="completed"] [data-action="cancel"], [data-content="dashboard-imports"] [data-status="completed"] [data-target="modal-process-import"], [data-content="dashboard-imports"] [data-status="working"] [data-target="modal-process-import"] { + display: none !important; +} + +.connecting-ip { + font-family: monospace; + font-size: 27px; +} + +.code { + padding: 0.05em; +} + +.code--command { + border-radius: 0.2em; + padding: 0.5em; + padding-right: 0.7em; + border-left: 0.2em solid var(--colorAccent); + background-color: var(--bodyEmpty); +} + +.code--command::before { + content: "$ "; + color: var(--colorAccent); +} + +.importing { + background: var(--bodyEmpty); + padding: 10px; + position: relative; +} + +.importing:nth-child(even) { + margin: 0 10px; +} + +.phone .importing:nth-child(even), .phablet .importing:nth-child(even) { + margin: 10px 0; +} + +.importing-stats { + margin: 10px 0; +} + +.importing-stats .figure { + display: inline-block; + padding: 5px; + background: var(--buttonAccentBackground); + color: var(--buttonAccentText); +} + +.apexcharts-theme-light .apexcharts-legend-text, .apexcharts-zoom-icon, .apexcharts-zoomin-icon, .apexcharts-zoomout-icon, .apexcharts-reset-icon, .apexcharts-pan-icon, .apexcharts-selection-icon, .apexcharts-menu-icon, .apexcharts-toolbar-custom-icon { + color: var(--bodyText) !important; +} + +.apexcharts-zoom-icon svg, .apexcharts-zoomin-icon svg, .apexcharts-zoomout-icon svg, .apexcharts-reset-icon svg, .apexcharts-menu-icon svg { + fill: var(--bodyText) !important; +} + +.apexcharts-theme-dark .apexcharts-legend-text { + color: var(--bodyTextSubtle) !important; +} + +.apexcharts-theme-light svg text { + fill: var(--bodyText); +} + +.apexcharts-theme-dark svg text { + fill: var(--bodyTextSubtle); +} + +.apexcharts-toolbar { + z-index: 0 !important; +} + +.apexcharts-canvas>svg { + background: transparent !important; +} + +#dashboard-chart { + margin: 35px auto; + overflow: hidden; +} + +#dashboard-chart .toolbar { + margin-left: 45px; +} + +#dashboard-chart button { + background: var(--bodyBackground); + color: var(--bodyText); + border: 1px solid var(--bodySeparator); + border-bottom: 2px solid var(--bodySeparator); + border-radius: 2px; + padding: 4px 17px; +} + +#dashboard-chart button.active { + color: var(--buttonAccentText); + background: var(--buttonAccentBackground); + border: 1px solid var(--buttonAccentBackground); + border-bottom: 2px solid var(--buttonAccentBackground); +} + +#dashboard-chart button:focus { + outline: 0; +} + +.corazoncito { + width: 1em; + height: 1em; + font-size: 290px; + color: rgb(255, 0, 0, 0.6); + z-index: 1; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%) scale(0.4); + transition: all 500ms ease; +} + +.corazoncito.--show { + opacity: 1; + transform: translate(-50%, -50%) scale(1); +} + +.corazoncito span { + font-size: 0.25em; + top: 50%; + left: 50%; + display: block; + position: absolute; + color: #fff; + transform: translate(-50%, -50%); + line-height: 1; + font-family: sans-serif; + margin-top: -0.1em; + font-weight: 400; +} + +.card-wrapper { + height: 175px; + overflow-y: hidden; + overflow-x: auto; + -ms-scroll-snap-type: x mandatory; + scroll-snap-type: x mandatory; +} + +.card-wrapper::-webkit-scrollbar { + width: 10px; + height: 3px; +} + +.card-wrapper::-webkit-scrollbar-track { + background: var(--bodyEmpty); +} + +.card-wrapper::-webkit-scrollbar-thumb { + background: var(--colorAccent); +} + +.card-wrapper::-webkit-scrollbar-thumb:hover { + background: var(--colorAccentStrong); +} + +.card-slider { + width: calc(310px * 8 - 10px); +} + +.card-container { + width: 300px; + height: 200px; + display: block; + float: left; + margin-right: 10px; + scroll-snap-align: start; +} + +.card-container:first-child { + margin-left: 0; +} + +.card-container:last-child { + margin-right: 0; +} + +.card { + width: 100%; + position: relative; +} + +.card a { + text-decoration: none; +} + +.card-header-image { + width: 100%; + height: 150px; + overflow: hidden; + border-radius: 1em; + display: block; + background-size: cover; + background-position: center; +} + +.card-header-image-mask { + width: 100%; + height: 100%; + display: block; + background-color: rgba(0, 0, 0, 0); +} + +.card-header-image:hover .card-header-image-mask { + background-color: var(--buttonAccentBackground); +} + +.card-text { + color: #FFF; + text-align: center; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; + text-shadow: 2px 2px 8px rgba(0, 0, 0, .35); +} + +.card-header-image:hover .card-text { + color: var(--buttonAccentText); +} + +.card-text h3 { + font-weight: bold; + font-size: 1.6em; + margin-bottom: 5px; +} + +.powered-by--provider a.logo { + font-size: 5em; + text-decoration: none; +} + +[data-banned="1"] [data-action="user_ban"], +[data-banned="0"] [data-action="user_unban"] { + display: none; +} + +.captcha.captcha--3 [data-content="captcha"] { + display: none; +} diff --git a/content/legacy/themes/Peafowl/style.min.css b/content/legacy/themes/Peafowl/style.min.css new file mode 100644 index 0000000..c77ca48 --- /dev/null +++ b/content/legacy/themes/Peafowl/style.min.css @@ -0,0 +1 @@ +body{min-height:100%;background:var(--bodyBackground);position:relative;font-family:Helvetica,Arial,sans-serif;font-size:14px}html.powered-by-footer body{padding-bottom:22px}html.powered-by-footer .upload-box-inner{padding-bottom:35px}body.landing{min-height:500px;height:calc(100%);padding:0;margin:0}.phone body.landing{min-height:auto}.js body.landing{overflow:hidden;opacity:0}.js body.landing.load{transition:transform .6s ease,opacity 350ms linear;opacity:1}#home-cover-content,#index .flex-center{opacity:0}.js body#index.load .flex-center,.js body.load #home-cover-content{transition:all .6s ease;transition-delay:150ms;opacity:1}.js body.loaded{overflow:auto}body.split{margin-top:0;padding-top:0}.content-width.fluid,.fluid .content-width{width:100%}@media (min-width:992px){.content-width.wide{max-width:none}}html.device-mobile .device-mobile--hide{display:none!important}html.device-nonmobile .device-nonmobile--hide{display:none!important}body#upload{background-color:transparent}.software-version-name{font-family:'Brush Script MT',cursive,serif;font-size:1.1em;text-transform:capitalize}.image-viewer{text-align:center;position:relative;min-height:72px;overflow:hidden;background:var(--viewerBackground)}.image-viewer-main{display:inline-block;vertical-align:middle}.image-viewer-container{display:grid;margin:0 auto;position:relative;min-height:calc(100% - 50px)}.image-viewer-container.--thumbs{min-height:calc(100% - 100px)}.image-viewer-container img{display:block;margin:auto;max-width:100vw!important;width:auto}#image-viewer-360{width:100vw;height:calc(100vh - 50px);background:0 0!important}.image-viewer-container img[data-is360="1"]{max-height:calc(100vh - 50px)}.image-viewer .btn-download{position:absolute;top:20px;right:20px}#image-viewer-loading,.viewer-loader{width:30px;height:30px;position:absolute;left:50%;top:50%;margin-left:-15px;margin-top:-15px;border-radius:100%;background:rgba(17,17,17,.9)}#image-viewer-loader{line-height:1;position:absolute;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:#fff;font-size:1em;left:50%;top:50%;padding:8px 14px;border-radius:100px;transform:translate(-50%,-50%);cursor:pointer;display:none}#image-viewer-loader:hover{background:rgba(0,0,0,.6);color:#fff}#image-viewer-loader .btn-icon{position:relative;top:0;font-size:12px}.btn-like .btn.btn-liked,.btn-like .btn.btn-unliked{display:none}.btn-like[data-liked="0"] .btn-unliked{display:inline-block}.btn-like[data-liked="1"] .btn-liked{display:inline-block}.btn-album-cover .btn.btn-album-is-cover,.btn-album-cover .btn.btn-album-not-cover{display:none}.btn-album-cover[data-cover="0"] .btn-album-not-cover{display:inline-block}.btn-album-cover[data-cover="1"] .btn-album-is-cover{display:inline-block}.btn-follow .btn.btn-followed,.btn-follow .btn.btn-unfollowed{display:none}.btn-follow[data-followed="0"] .btn-unfollowed{display:inline-block}.btn-follow[data-followed="1"] .btn-followed{display:inline-block}#fullscreen-uploader-mask{z-index:99}.phone #fullscreen-uploader-mask{z-index:400}#anywhere-upload{z-index:900;scroll:auto;-webkit-overflow-scrolling:touch;transition:transform .3s ease}#anywhere-upload.hidden-visibility iframe{visibility:hidden}.phone #anywhere-upload{z-index:500;height:100vh!important}#upload #anywhere-upload{display:grid;align-items:center;position:fixed;padding-top:50px;bottom:0;overflow:auto}#upload .upload-box .upload-box-allowed-files,.phone .upload-box .upload-box-allowed-files{display:none}#upload .upload-box[data-queue-size="0"] .upload-box-allowed-files,.phone .upload-box[data-queue-size="0"] .upload-box-allowed-files{display:block}#anywhere-upload-paste{height:0;opacity:0;font-size:0}#anywhere-upload-paste *{display:none}.upload-box-queue{text-align:center;font-size:0;margin-top:35px;margin-bottom:35px}.upload-box-queue li{position:relative;text-align:center;display:inline-block;margin:5px}.upload-box-queue .block,.upload-box-queue li{border-radius:.5em;-webkit-transform:translateZ(0)}.upload-box-queue li,.upload-box-queue li.normal{width:110px;height:110px;font-size:14px;font-size:1rem}.upload-box-queue li.small{width:77px;height:77px;font-size:9px;font-size:.643rem}.upload-box-queue li.tiny{width:54px;height:54px;font-size:7px;font-size:.5rem}.upload-box-queue .block{width:100%;height:100%;top:0;left:0;overflow:hidden;position:absolute}.upload-box-queue a.image-link{display:none}.upload-box-queue .completed a.image-link{display:block;position:absolute;overflow:hidden;z-index:1;-webkit-transform:rotate(.000001deg)}.upload-box-queue .queue-item .block.edit,.upload-box-queue .queue-item .queue-item-button{display:block;position:absolute;cursor:pointer;z-index:1}.upload-box-queue .queue-item .queue-item-button .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.upload-box-queue .queue-item.completed:hover .queue-item-button{display:none}.upload-box-queue .queue-item .queue-item-button{font-size:10px;width:21px;height:21px;line-height:23px;background:var(--buttonDefaultBackground);color:var(--buttonDefaultText);border-radius:200px;left:-5px;box-shadow:1px 1px 4px 0 rgba(0,0,0,.5)}.upload-box-queue .queue-item .queue-item-button:hover{background:var(--buttonDefaultHoverBackground);color:var(--buttonDefaultHoverText)}.upload-box-queue .queue-item .queue-item-button.cancel{top:-7px}.upload-box-queue .queue-item .queue-item-button.edit{top:16px;font-size:9px;opacity:0}.upload-box-queue .big-icon{position:absolute;color:#dadada;font-size:5.36em;width:1em;height:1em;left:50%;top:50%;margin-left:-.5em;margin-top:-.5em}.tone-dark .upload-box-queue .big-icon{color:#444;text-shadow:1px 1px 0 rgba(0,0,0,.9)}.upload-box-queue .done,.upload-box-queue .preview{position:relative;overflow:hidden}.upload-box-queue .preview .canvas{position:absolute;top:50%;left:50%}.upload-box-queue .progress{position:absolute}.queue-item.uploading .block.edit,.queue-item.uploading .queue-item-button.edit{display:none}.upload-box-queue .progress-bar{height:100%;float:right;width:100%;display:none}.upload-box-queue .failed .result,.upload-box-queue .progress-bar{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);transform:all .3s}.upload-box-queue .uploading .progress-bar{display:block}.upload-box-queue .completed .result.done,.upload-box-queue .failed .result.failed{display:block}.upload-box-queue .result{position:absolute;z-index:1;display:none}.tone-dark .upload-box-queue .failed .result,.tone-dark .upload-box-queue .progress-bar{background:rgba(0,0,0,.65)}.upload-box-queue .result .icon{position:absolute;width:100%;font-size:3.429em;top:50%;left:0;margin-top:-.5em;text-shadow:none}.upload-box-queue .done .result .icon{text-shadow:2px 2px 6px rgba(0,0,0,.2)}.upload-box-queue .failed .result .icon{font-size:3.429em}.upload-box-queue.queue-complete .cancel,.upload-box-queue.queue-complete .edit{display:none}#form-embed-toggle-combo,#uploaded-embed-toggle-combo{position:relative}#upload .top-bar{box-shadow:none;border-bottom-color:transparent}#upload .upload-box{transform:none;position:static}body#upload [data-action=close-upload]{display:none!important}.upload-box.queueHasResults [data-action=cancel-upload],.upload-box.queueReady [data-action=close-upload],.upload-box.queueUploading [data-action=close-upload],.upload-box:not(.queueHasResults) [data-action=cancel-upload-remaining],.upload-box:not(.queueReady):not(.queueCompleted) [data-action=reset-upload],.upload-box:not(.queueUploading) [data-action^=cancel-upload],.upload-box:not([data-queue-size="0"]) [data-action=close-upload]{display:none}#background-cover{height:260px;background-color:#000;position:relative}.phone #background-cover:not(.no-background){height:20vh;max-height:260px;min-height:90px}#background-cover.no-background{background-color:var(--bodyEmpty);background-image:none!important;height:auto}.tone-dark #background-cover.no-background{background:#2f2f2f}#background-cover-wrap{height:100%;overflow:hidden;position:relative;padding:10px}#background-cover .content-width{text-align:center}#change-background-cover{position:absolute;right:0;top:0;z-index:500}#user-background-upload{top:0;left:0;width:1px;height:1px}#background-cover-src{overflow:hidden;background-position:center center;background-size:cover}#background-cover .loading-placeholder,#background-cover-src{position:absolute;top:0;left:0;width:100%;height:100%}#background-cover.no-background #background-cover-src{height:0}#background-cover .loading-placeholder{background:rgba(0,0,0,.8)}[data-privacy=public] .list-item-privacy{display:none}.list-item-thumbs li,.list-item-thumbs li a{display:block;height:auto;overflow:hidden}.list-item-thumbs li a{height:100%;background-size:cover;background-position:center center}.list-item-thumbs li img{width:100%;display:block}.input-copy{position:relative}.list-item-image-tools{overflow:hidden;position:absolute;right:0;top:0;transition:all .2s ease-in-out;text-shadow:1px 1px 5px rgba(0,0,0,.5)}.list-item-image-tools.--top{bottom:auto;top:0}.list-item-image-tools.--right{left:auto;right:0}.list-item-image-tools.--bottom{top:auto;bottom:0}.list-item-image-tools.--left{right:auto;left:0}.list-item-image-tools>div{margin:0;cursor:pointer;position:relative;font-size:1em;right:0;margin-left:auto}.list-item-buttons>div,.list-item-image-tools>div,html.--idle .list-item-image-tools>div[data-action=viewer-close]{opacity:.5}.list-item .hover-display.list-item-image-tools,.list-item-image-tools>div:hover,.list-item.selected div.tool-select{opacity:1}.list-item.--over .list-item-image-tools>div{opacity:.5}.list-item-image-tools>div{float:right}.list-item-image-tools>div,.list-item-image-tools>div *{display:block;color:var(--listItemText)}.list-item-image-tools>div span{float:right}.list-item-image-tools>div .label{font-size:.86em}.list-item-image-tools>div .btn-icon{font-size:1em}.phone .list-item:not(.selected):not(.viewer) .tool-select{display:none}.list-item-image-tools>div .label{text-transform:uppercase;padding-left:1em;padding-right:0;display:none;height:100%}.list-item-image-tools>div:hover .label{display:block}.small-cols .list-item-image-tools>div:hover .label{display:none}[data-flag=safe] .label-flag-safe.btn-icon,[data-flag=safe] .list-item-image-tools>div:hover .label.label-flag-safe,[data-flag=unsafe] .label-flag-unsafe.btn-icon,[data-flag=unsafe] .list-item-image-tools>div:hover .label.label-flag-unsafe{display:none}.unsafe-blur-on .list-item .list-item-thumbs div[data-flag=unsafe] a,.unsafe-blur-on [data-flag=unsafe] .image-container{filter:blur(8px);-webkit-filter:blur(8px)}.unsafe-blur-on .list-item .list-item-thumbs div[data-flag=unsafe]:not(.selected):not(.ui-selecting) a,.unsafe-blur-on [data-flag=unsafe]:not(.selected):not(.ui-selecting) .image-container{transform:scale(1.2)}.unsafe-blur-on .list-item:hover .list-item-thumbs div[data-flag=unsafe] a,.unsafe-blur-on [data-flag=unsafe]:hover .image-container{filter:none;-webkit-filter:none}.list-item-buttons>div,.list-item-image-tools>div,.list-item-image-tools>div .btn-icon{width:2.2em;height:2.2em;line-height:2.2em}.list-item-image-tools>div .btn-icon{color:inherit;text-align:center}.list-item-album .tool-flag{display:none}.list-item .list-item-avatar-cover,.list-item .list-item-avatar-cover>*{border-radius:100%}.list-item .image-container.--bodyEmpty .empty,.list-item .list-item-avatar-cover{position:absolute;border:0;left:50%;top:50%;transform:translate(-50%,-50%)}.list-item .list-item-avatar-cover{height:60%;width:60%;max-height:160px;max-width:160px;background:var(--backgroundLightAlpha);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.list-item .list-item-avatar-cover>*{width:100px;height:100px}.list-item .list-item-avatar-cover img{height:auto;box-shadow:2px 2px 2px rgba(0,0,0,.3)}.selected .list-item-image,.ui-selecting .list-item-image,.unselect .list-item-image{background:var(--viewerBackground)}body#moderate .list-item-like,body#moderate .viewer-kb-key[data-key="L"]{display:none}.list-item-buttons{color:#fff;position:absolute;right:0;bottom:0}.list-item-buttons>div{padding:10px;cursor:pointer;float:left;font-size:1em;margin-left:-5px}.list-item .list-item-buttons>div:hover{opacity:1}.list-item-like .btn-like{display:none}.list-item-like .btn-like.btn-liked,.list-item-like .btn-like:hover{opacity:1}[data-liked="0"] .list-item-like .btn-like.btn-unliked{display:block}[data-liked="1"] .list-item-like .btn-like.btn-liked{display:block}.list-item-play-gif,.list-item-play-gif *{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAACdCAMAAAAgwM7pAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAcVQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///9///+///+///+///+///+///9///8///1///5///9///9///u///f///+///+///+///9///q///z///9///+///9///8///9///+///+///+///+///8///w///9///+///3///8///9///2///9///7///t///+///8///b///9///9///M///+///y//+A///9///r///7///+///7///3///+///8//+////8//+q///8///+///z///+///+///9///6///m///7///j///7///9///+///+///9///9///6///+///+///+///7///V///+///9///5///9///+///+///8///9///6///8///+///9///4///+///+///+///+///4///9///5///+///v///7///9///8///o///9///9///8///6///y///9///0///+///x///+///6////////////vBUIqgAAAJd0Uk5TABQmNkZSWF5iCipmAiRKZAQuXCwYVDoMUBpgIiil+enVw7GJUBoujZkOCPf/45sMFnDPbEqhtcfZ714Qi9EgWI8adDgO21oGbmoEyxICcgw87Toe+1QEVgJg/RTru344CkIIRnrx55VmMNf1wT4GyaMoh+HlTJcyYt+pJrfTzd0ipyqtEECTXAp8aGQ2FIMWxRKzLrhG/4D2XIEAAAQlSURBVHiczZjnWxNBEMYPCCThgNC7IIKCyaCIdJCmgIooYkFCEwsqTRRQQREb9l7u7/UuuZhccm1vX5+H99Ne2d/d7uzOzowgmCgpOcWVmub2eNxpqa6U5CSzdw3lTXe5xTi5XeleNkpGZpYvnhKWLyszwzYmOydXnxJWbk62PU5ewpAShphnA5NfYIVRVJBvgckoNJibhLkqNJ2qomJ7GEXFRcacklL7HFEsLTHilHlYOKLoKdPnlNucnqh85br/w8yRSTr/VMI4rrA8CfNUxDTPUZXG2S6Dwe5aFWvXU6FTjigWxnLyHUx0RL7Y3WJrfxmpIMrJ4+GI4j9fkG3pN8zljvinHD6OKOaopjf1h3aUG14CmbwcUcwMgbL4QVkKx8uxhiLyefltH5ayAlwIkEsGcS6isNzy+Y7giGKSkIwBJQspGFAKZq6V2U7FgFKFNAwoDWN9xf6OTqFEeXAg2NBgkw0zP2xBwrYIbNPC3AjMseFcLcT5pyOPI9gBiTuyYUEELKzBBVqw0A8XjOLCY1jAjkshYEkNLs3CJX64VBSXHOPSdVwBAVfSEGBFFkWgso+AK0QJsNJYSN48RLFOFaR8CNe+isr9VQeqaw46636otu5wqOEPkKr6I0dZKQ3HGuWOx8MXTc0trW3tIVQHG6azK/QTJ7pjb3b39La29rFg/P3K19vrTrJ9PUGnBmTMwOCQySunB/ptgE4SVZ45a/rKMFHLOUvQSP/5CxavjF6ULThm46csdamV6PIVBOlql0waN3x8jQE1ETQkTZ6Y6tZ/YkQK6q6QkWmiJgaQ0BGMLH2tZoiqWMYmCLPnr+vcnQvSFNMGMNCNegreBHCEW0TVCM7kbZpn9jV6ukN011nPe1pLX6YFNotFdHSRJmKvlwLLzn5oZZHua26YuR9TrRI9cNpXozmihxCQsEbrGFA1amwbzIeUgSaJHqnNx0tPeEib1Ki2tmiNB7RKU2priTZ5QE+fRQa0Tc95QFGt0zQGFKCtPQaCDW2bhjGgJdrh6f5ia1BtvaQ2HlAzVaqtV683eEDRLcKnmE3LJ5gbkR3bUwgI5WrntGe9/41TkPY4WlkI7DrjDGkPSL/jI/twgDR++q3jIGLsneZSCWveOyPFCRVoCdfriSChn7ArB6MOc804fZDD4xGmHrMf/Xq3lYB9lIUjB+yfdB80VC10MnCUFOIzy4eNOSbpkW1ZpFm2ZSvx889YpqLLchpeb2mYGqIpi+R421Zy/GUnlK7rLhFVX+ftpOvCkFpAmLXzsrk6ayuUksbwt9ib3eO935/9YEVNhoosql16mn9GiixOLP6r9m14nvroX9mnjstnjUxXzPMUovaIfv8BgSQJhJIkEEqSQChJAqEkCYSSJBBKkkCo/wICDQ002SDzgxYkaIuANi0X5i8hpIpr8W0lCwAAAABJRU5ErkJggg==);position:absolute;top:50%;left:50%}.list-item-play-gif{scale:.6;width:72px;height:72px;margin-left:-36px;margin-top:-36px;background-position:0 0;cursor:pointer;transition:all 350ms}@media (min-width:320px){.list-item-play-gif{scale:.8}}@media (min-width:480px){.list-item-play-gif{scale:1}}.list-item-play-gif>span{width:66px;height:66px;margin-left:-33px;margin-top:-33px;background-position:0 -73px}.list-item-play-gif--loading>span,.list-item-play-gif:hover>span{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.list-item-play-gif>i{width:32px;height:17px;margin-left:-16px;margin-top:-9px;background-position:0 -140px}@-webkit-keyframes spin{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.settings-group{display:none}.settings-group-isolated{display:block}.stats-block,a.stats-block{text-decoration:none;color:inherit;padding:10px;border-radius:4px}a.stats-block:hover{color:var(--linkText);background:var(--bodyEmpty)}.tone-dark a.stats-block:hover{background:#222}.text-align-center .stats-big-number{text-align:center}.stats-big-number .number{font-size:44px;font-weight:400}.stats-big-number .number span{font-size:24px}.stats-big-number .label{display:block}.tone-dark .text-content code{border-color:#222;background:#111}#home-top-bar-placeholder{margin-top:-65px}#home-cover{width:100%;background-position:center center;background-color:#333;background-size:cover;color:#fff;position:relative}body.landing #home-cover,body.split #home-cover{margin:0;padding:0;height:100vh}body.split #home-cover{margin:0;height:500px}#home-cover-content{position:relative;text-align:center;height:100%;top:50px}body.landing #home-cover-content,body.split #home-cover-content{height:calc(100% - 50px);position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column}#home-cover-content>*{margin:10px 0}#home-cover-content h1,#home-cover-content p{text-shadow:2px 2px 8px rgba(0,0,0,.25)}#home-cover-content h1{font-size:2.4em;line-height:120%;font-weight:600}@media (min-width:768px){#home-cover-content h1{font-size:2.7em}}@media (min-width:992px){#home-cover-content h1{font-size:3em}}#home-cover-content p{font-size:22px}.home-buttons{text-align:center}.home-buttons a{font-size:16px;text-transform:uppercase;min-height:50px;line-height:1.5;height:auto;text-align:center;letter-spacing:2px;padding:12px 30px}#home-pics-feature{height:700px;overflow:hidden;position:relative;margin:10px 0}#home-pics-feature.empty{height:auto}#home-pics-feature-overlay{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);width:100%;height:200px;position:absolute;bottom:0;z-index:1}.tone-dark #home-pics-feature-overlay{background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%)}#home-pics-feature.empty #home-pics-overlay{display:none}#home-join{margin:40px 0;padding-bottom:40px}#home-join h2{font-size:38px}#home-join p{margin:20px 0;font-size:18px}.ad-banner{margin:10px;text-align:center}.ad-banner:empty{margin:0;height:0}.ad-banner img{display:block;margin:0 auto}.ad-banner-size-300x250{width:300px;height:250px}.ad-banner-size-336x280{width:336px;height:280px}.ad-banner-size-728x90{width:728px;height:90px}.ad-banner-size-300x600{width:300px;height:600px}.ad-banner-size-320x100{width:320px;height:100px}.ad-banner-size-320x50{width:320px;height:50px}.ad-banner-size-468x60{width:468px;height:60px}.ad-banner-size-234x60{width:234px;height:60px}.ad-banner-size-120x600{width:120px;height:600px}.ad-banner-size-120x240{width:120px;height:240px}.ad-banner-size-160x600{width:160px;height:600px}.ad-banner-size-300x1050{width:300px;height:1050px}.ad-banner-size-970x90{width:970px;height:90px}.ad-banner-size-970x250{width:970px;height:250px}.ad-banner-size-250x250{width:250px;height:250px}.ad-banner-size-200x200{width:200px;height:200px}.ad-banner-size-180x150{width:180px;height:150px}.ad-banner-size-125x125{width:125px;height:125px}#banner_before_home_cover{margin:0;padding:10px;background:#000}#banner_image_image-viewer_foot,#banner_image_image-viewer_top{height:90px;margin-left:auto;margin-right:auto}body#consent-screen,body#maintenance{padding:0;margin:0;width:100%;height:100%}#consent-screen-cover,#maintenance-cover{height:100%;background-position:center center;background-color:#333;background-size:cover}#consent-screen-cover-inner,#maintenance-cover-inner{background:rgba(0,0,0,.25);width:100%;height:100vh}#consent-screen-cover-content,#maintenance-cover-content{color:#fff;padding:40px;text-align:center;position:relative;top:50%;transform:translateY(-50%)}#maintenance-cover-content .logo{display:inline-block;margin-bottom:20px;color:#fff;text-decoration:none;font-size:2.5em}#maintenance-cover-content .logo img{height:30px}#maintenance-cover-content h1{font-size:2.5em;margin-bottom:20px}#maintenance-cover-content p{font-size:1.2em}#consent-screen-cover-inner{background:0 0}#consent-screen-cover-src{width:100%;height:100%;position:absolute;top:0;left:0;background-position:center;background-size:cover}#consent-screen-content{background:var(--menuBackground);color:var(--menuItemText);margin:0 auto;padding:30px;box-shadow:0 0 50px 6px rgba(0,0,0,.25);top:50%;position:relative;transform:translateY(-50%);border-radius:10px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}#consent-screen-content h1{line-height:2em}#consent-screen-content .logo-consent{width:2em;height:auto;display:inline-block;margin-right:10px;vertical-align:top}#fullscreen-modal-box .image-preview{margin-bottom:20px;overflow:auto;text-align:center}.image-preview-container{position:relative;display:block;float:left;width:20%}.image-preview-container .empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:3em}#fullscreen-modal-box .image-preview:empty{display:none}#fullscreen-modal-box .image-preview .canvas{border:0;display:inline-block;margin:0 auto;max-width:100%;max-height:500px}#fullscreen-modal-box .image-preview .thumb{font-size:0;border:0;display:block;background-size:cover;background-position:center;width:100%}.content-password-gate{background:#f9f9f9;border-radius:10px;padding:30px;font-size:16px;text-align:center}.tone-dark .content-password-gate{background:0 0}.content-password-gate h1{font-size:30px;margin-bottom:10px}.content-password-gate h1 .icon{display:block;font-size:60px;margin-bottom:10px}.content-password-gate .g-captcha>div{margin-right:auto;margin-left:auto}#home-cover-slideshow{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-cover-img{position:absolute;left:0;top:0;width:100%;height:100%;background-size:cover;background-repeat:no-repeat;background-position:center center;display:block;opacity:0;transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.home-cover-img.animate-in,.home-cover-img.animate-in--alt{-webkit-animation-name:slideshow;animation-name:slideshow;-webkit-animation-duration:10s;animation-duration:10s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.home-cover-img.animate-in--alt{opacity:1;-webkit-animation-name:slideshow--alt;animation-name:slideshow--alt}.home-cover-img.animate-end{opacity:1;transform:scale(1.1);-webkit-animation:none;animation:none}@-webkit-keyframes slideshow{0%{opacity:0}20%{opacity:1}100%{opacity:1;transform:scale(1.1)}}@keyframes slideshow{0%{opacity:0}20%{opacity:1}100%{opacity:1;transform:scale(1.1)}}@-webkit-keyframes slideshow--alt{100%{transform:scale(1.1)}}@keyframes slideshow--alt{100%{transform:scale(1.1)}}@supports (-ms-accelerator:true){.home-cover-img.animate-end{transform:scale(1)}@-webkit-keyframes slideshow{0%{opacity:0}20%{opacity:1}}@keyframes slideshow{0%{opacity:0}20%{opacity:1}}@-webkit-keyframes slideshow--alt{100%{transform:scale(1)}}@keyframes slideshow--alt{100%{transform:scale(1)}}}#home-cover-slideshow::after{content:"";z-index:1;height:50px;position:absolute;top:0;left:0;right:0;background:linear-gradient(to bottom,rgba(0,0,0,.1) 0,rgba(0,0,0,0) 100%)}#dashboard-settings{min-height:400px}#dashboard .form-content,#settings .form-content{padding-bottom:60px}.footer{color:var(--bodyTextDisabled);font-size:10px;line-height:20px;text-align:center;width:100%;position:absolute;bottom:0;z-index:900;padding:5px;line-height:1}body#upload .footer{background:var(--bodyBackground)}.footer a{color:inherit}body.--viewer-shown{overflow:hidden}.viewer{background:#000;position:fixed;top:0;right:0;bottom:0;left:0;z-index:999}.viewer .list-tool{display:initial!important}.js .viewer{display:block;touch-action:pinch-zoom!important}.viewer--hide{opacity:0}.viewer--show{opacity:1}.viewer.viewer--no-cursor,.viewer.viewer--no-cursor *{cursor:none}.viewer-content{position:relative;top:0;left:0;width:100%;height:100%}.viewer-content img{position:absolute;max-height:100vh;max-width:100vw;transform:translate(-50%,-50%);top:50%;left:50%}.viewer[data-cover="1"] .viewer-content img{width:100vw;height:100vh;-o-object-fit:cover;object-fit:contain}.viewer-close,.viewer-wheel>div{color:#fff;top:0;font-size:1em;text-shadow:1px 1px 0 rgba(0,0,0,.5);text-align:center}.viewer-close{position:absolute;width:2.4em;height:2.4em;line-height:2.4em;cursor:pointer;right:-2.4em;z-index:500}.viewer:hover .hover-display.viewer-close{right:2px}.viewer-wheel>div{position:fixed;bottom:0;width:calc(1em + 20px);cursor:pointer;padding:10px;opacity:.7;display:none}.viewer-wheel>div:hover{opacity:1}.viewer--nav-prev .viewer-wheel-prev{left:0;display:block}.viewer--nav-next .viewer-wheel-next{right:0;display:block}.viewer-wheel>div>.icon{position:absolute;top:50%;transform:translateY(-50%);display:block;font-size:1.5em}.viewer-foot{padding:10px;position:absolute;left:0;right:0;bottom:0;height:60px;background:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.6) 100%);display:flex;flex-wrap:wrap;flex-flow:row}.viewer-owner{width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.viewer-owner .user-image{font-size:40px;width:1em;height:1em;vertical-align:bottom;margin-right:5px;color:#fff}.viewer-owner .user-name{font-size:initial;text-decoration:none;vertical-align:middle;line-height:40px;color:inherit}.viewer-owner a.user-name:hover{color:var(--backgroundLightAlpha)}.viewer-owner{order:1}.viewer-kb{font-size:.86em;flex-grow:1;order:2;text-align:center}.viewer .viewer-kb{padding-right:190px}.device-mobile .viewer-kb{display:none}.viewer-kb-input{display:inline-block}.viewer .viewer-kb-input{color:#fff}.viewer-kb-key{display:inline-block;margin:10px;margin-left:0}.viewer-kb-key:first-child{margin-left:10px}.viewer-kb-key kbd{border:1px solid rgba(0,0,0,.5);background:rgba(120,120,120,.5);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:4px 6px;border-radius:2px;display:inline-block;margin-right:5px;line-height:1}.viewer-like{transform:none;top:auto;bottom:20px;right:20px;position:absolute}.viewer:hover .hover-display--flex{display:flex}.--width-auto{width:auto}.--height-auto{height:auto}html.--idle .viewer,html.--idle .viewer *{cursor:none!important}html .fullscreen-show{display:none}:-webkit-full-screen .fullscreen-hide{display:none}:-ms-fullscreen .fullscreen-hide{display:none}:fullscreen .fullscreen-hide{display:none}:-webkit-full-screen .fullscreen-show{display:block}:-ms-fullscreen .fullscreen-show{display:block}:fullscreen .fullscreen-show{display:block}a.image-container{-webkit-tap-highlight-color:transparent}a{color:var(--linkText);outline:0;text-decoration:none}.content-section,.input-label{margin-top:20px;margin-bottom:20px;position:relative}.content-section:first-child,.input-label:first-child{margin-top:0}.input-label .input{width:100%;margin-bottom:0}.input-label .input+.input{margin-top:5px}.input-label .input-label{margin-bottom:10px}.input-label .input-label .label{font-weight:400}.input-label label .caption,.input-label label .optional{font-weight:400;font-size:.92em}.input-label label .caption:before,.input-label label .optional:before{content:"("}.input-label label .caption:after,.input-label label .optional:after{content:")"}.input-label-below{margin-top:5px;clear:both}.background-cover{position:fixed;top:0;right:0;bottom:0;left:0;background-position:center center;background-size:cover}.input-with-button{position:relative}.input-with-button input::-webkit-inner-spin-button,.input-with-button input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-with-button input[type=number]{-moz-appearance:textfield}.input-with-button button{background:0 0;position:absolute;right:0;top:50%;transform:translateY(-50%);border:none;font-size:22px;width:1em;height:1em;outline:0;color:var(--colorAccent)}.input-with-button button:focus,.input-with-button button:hover{color:var(--colorAccentStrong)}#top-left{position:fixed;padding:5px;left:0;top:0}.top-button{padding:5px}.top-button .menu-box{margin-top:5px}.top-button-icon{font-size:16px;color:#fff;cursor:pointer;text-shadow:1px 1px 0 rgba(0,0,0,.15)}.background-default{background:#2ecc71;background:linear-gradient(to bottom,#2ecc71 0,#3498db 100%)}.content-box{position:relative;margin:20px}.content-box-text :first-child{margin-top:0}.content-box-text :last-child{margin-bottom:0}.logo{max-height:50px;max-width:220px;margin-bottom:20px}.card-box{min-width:270px;width:calc(100vw - 40px)}.access-box-content{background:var(--bodyBackground)}.fancy-box-heading{font-size:22px;margin:20px 0 30px 0}.fancy-fieldset{border:0;padding:0;margin:0}.fancy-fieldset input:not([type=checkbox]),.fancy-fieldset input[type=text],.fancy-fieldset select,.fancy-fieldset textarea{outline:0;padding:10px 0;width:100%;border-radius:0;border-color:transparent;background:0 0;box-shadow:none}.fancy-fieldset .checkbox-label input[type=checkbox]{width:auto;vertical-align:middle;margin:0 0 0 -20px}.fancy-fieldset select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.fancy-fieldset input,.fancy-fieldset select{padding:10px 0;border-top:transparent;border-left:transparent;border-right:transparent}.fancy-fieldset input:focus,.fancy-fieldset input:focus[type=text],.fancy-fieldset select:focus,.fancy-fieldset textarea:focus{border-color:var(--colorAccent)}.fancy-fieldset .input-with-button input[type=password]{padding-right:30px}.fancy-fieldset>div:last-child{margin-bottom:inherit}.fancy-fieldset .label{line-height:1.5}.fancy-fieldset .input-label:last-child{margin-bottom:0}.fancy-fieldset .checkbox-label{margin:0}a.login-provider-button{position:relative;text-decoration:none;display:inline-block;font-size:1em;margin:10px 0;background:#d9d9d9;padding:8px;text-decoration:none;display:block;color:#fff;border-radius:3px;text-align:center}a.login-provider-button .text{margin-left:5px}a.login-provider-button--facebook{background-color:#4267b2}a.login-provider-button--twitter{background-color:#1da1f2}a.login-provider-button--google{background-color:#ea4335}a.login-provider-button--vkontakte{background-color:#45668e}a.login-provider-button--apple{background-color:#000}a.login-provider-button--amazon{background-color:#f90}a.login-provider-button--bitbucket{background-color:#2684ff}a.login-provider-button--discord{background-color:#738adb}a.login-provider-button--dribbble{background-color:#e94c88}a.login-provider-button--dropbox{background-color:#007ee5}a.login-provider-button--github{background-color:#333}a.login-provider-button--gitlab{background-color:#fc6d26}a.login-provider-button--instagram{background-color:#e1306c}a.login-provider-button--linkedin{background-color:#006192}a.login-provider-button--mailru{background-color:#168de2}a.login-provider-button--medium{background-color:#00ab6c}a.login-provider-button--odnoklassniki{background-color:#ed812b}a.login-provider-button--orcid{background-color:#a5ce37}a.login-provider-button--reddit{background-color:#ff4500}a.login-provider-button--spotify{background-color:#1db954}a.login-provider-button--stackexchange{background-color:#1e5397}a.login-provider-button--steam{background-color:#00adee}a.login-provider-button--strava{background-color:#fc4c02}a.login-provider-button--telegram{background-color:#08c}a.login-provider-button--tumblr{background-color:#35465c}a.login-provider-button--twitchtv{background-color:#9146ff}a.login-provider-button--wechat{background-color:#7bb32e}a.login-provider-button--windowslive{background-color:#107c10}a.login-provider-button--wordpress{background-color:#21759b}a.login-provider-button--yandex{background-color:#fc0}a.login-provider-button--yahoo{background-color:#410093}a.login-provider-button--qq{background-color:#121214}.login-provider-button-outline{position:relative;text-decoration:none;width:32px;height:32px;display:inline-block;border-radius:50%;border-width:1px;border-style:solid;font-size:16px;margin:5px}.login-provider-button-outline .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.login-provider-button-outline.border-color-facebook:focus,.login-provider-button-outline.border-color-facebook:hover{background-color:#3b5998}.login-provider-button-outline.border-color-twitter:focus,.login-provider-button-outline.border-color-twitter:hover{background-color:#1da1f2}.login-provider-button-outline.border-color-google:focus,.login-provider-button-outline.border-color-google:hover{background-color:#ea4335}.login-provider-button-outline.border-color-vk:focus,.login-provider-button-outline.border-color-vk:hover{background-color:#45668e}.login-provider-button-outline:focus .icon,.login-provider-button-outline:hover .icon{color:#fff}#login{padding:0;margin:0}.content-section--captcha-fix #g-recaptcha,.content-section--captcha-fix .h-captcha{min-height:78px;transform:scale(.89);transform-origin:left}#login .input{margin:0}.btn-container--fixed{position:fixed;left:0;right:0;bottom:0;background:rgba(0,0,0,.05);padding:10px 0;margin:0;border:0;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);text-align:left}.phablet .btn-container--fixed,.phone .btn-container--fixed{text-align:center}body.full--wh{height:100vh;width:100vw}.display-flex #home-cover-slideshow{position:fixed}[data-content=dashboard-imports] [data-action=resume],[data-content=dashboard-imports] [data-errors="0"] [data-content=log-errors],[data-content=dashboard-imports] [data-result],[data-content=dashboard-imports] [data-started="0"] [data-content^=log]{display:none}[data-content=dashboard-imports] [data-errors="1"] [data-content=log-process],[data-content=dashboard-imports] [data-status=completed] [data-action=pause],[data-content=dashboard-imports] [data-status=completed][data-errors="0"] [data-result=success],[data-content=dashboard-imports] [data-status=paused] [data-action=resume],[data-content=dashboard-imports] [data-status][data-errors="1"] [data-result=error]{display:initial}[data-content=dashboard-imports] [data-status=canceled] [data-action=cancel],[data-content=dashboard-imports] [data-status=canceled] [data-action=pause],[data-content=dashboard-imports] [data-status=canceled] [data-target=modal-process-import],[data-content=dashboard-imports] [data-status=completed] [data-action=cancel],[data-content=dashboard-imports] [data-status=completed] [data-action=pause],[data-content=dashboard-imports] [data-status=completed] [data-target=modal-process-import],[data-content=dashboard-imports] [data-status=paused] [data-action=pause],[data-content=dashboard-imports] [data-status=queued] [data-action=pause],[data-content=dashboard-imports] [data-status=working] [data-target=modal-process-import]{display:none!important}.connecting-ip{font-family:monospace;font-size:27px}.code{padding:.05em}.code--command{border-radius:.2em;padding:.5em;padding-right:.7em;border-left:.2em solid var(--colorAccent);background-color:var(--bodyEmpty)}.code--command::before{content:"$ ";color:var(--colorAccent)}.importing{background:var(--bodyEmpty);padding:10px;position:relative}.importing:nth-child(even){margin:0 10px}.phablet .importing:nth-child(even),.phone .importing:nth-child(even){margin:10px 0}.importing-stats{margin:10px 0}.importing-stats .figure{display:inline-block;padding:5px;background:var(--buttonAccentBackground);color:var(--buttonAccentText)}.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-theme-light .apexcharts-legend-text,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon{color:var(--bodyText)!important}.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg{fill:var(--bodyText)!important}.apexcharts-theme-dark .apexcharts-legend-text{color:var(--bodyTextSubtle)!important}.apexcharts-theme-light svg text{fill:var(--bodyText)}.apexcharts-theme-dark svg text{fill:var(--bodyTextSubtle)}.apexcharts-toolbar{z-index:0!important}.apexcharts-canvas>svg{background:0 0!important}#dashboard-chart{margin:35px auto;overflow:hidden}#dashboard-chart .toolbar{margin-left:45px}#dashboard-chart button{background:var(--bodyBackground);color:var(--bodyText);border:1px solid var(--bodySeparator);border-bottom:2px solid var(--bodySeparator);border-radius:2px;padding:4px 17px}#dashboard-chart button.active{color:var(--buttonAccentText);background:var(--buttonAccentBackground);border:1px solid var(--buttonAccentBackground);border-bottom:2px solid var(--buttonAccentBackground)}#dashboard-chart button:focus{outline:0}.corazoncito{width:1em;height:1em;font-size:290px;color:rgb(255,0,0,.6);z-index:1;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.4);transition:all .5s ease}.corazoncito.--show{opacity:1;transform:translate(-50%,-50%) scale(1)}.corazoncito span{font-size:.25em;top:50%;left:50%;display:block;position:absolute;color:#fff;transform:translate(-50%,-50%);line-height:1;font-family:sans-serif;margin-top:-.1em;font-weight:400}.card-wrapper{height:175px;overflow-y:hidden;overflow-x:auto;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.card-wrapper::-webkit-scrollbar{width:10px;height:3px}.card-wrapper::-webkit-scrollbar-track{background:var(--bodyEmpty)}.card-wrapper::-webkit-scrollbar-thumb{background:var(--colorAccent)}.card-wrapper::-webkit-scrollbar-thumb:hover{background:var(--colorAccentStrong)}.card-slider{width:calc(310px * 8 - 10px)}.card-container{width:300px;height:200px;display:block;float:left;margin-right:10px;scroll-snap-align:start}.card-container:first-child{margin-left:0}.card-container:last-child{margin-right:0}.card{width:100%;position:relative}.card a{text-decoration:none}.card-header-image{width:100%;height:150px;overflow:hidden;border-radius:1em;display:block;background-size:cover;background-position:center}.card-header-image-mask{width:100%;height:100%;display:block;background-color:rgba(0,0,0,0)}.card-header-image:hover .card-header-image-mask{background-color:var(--buttonAccentBackground)}.card-text{color:#fff;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;text-shadow:2px 2px 8px rgba(0,0,0,.35)}.card-header-image:hover .card-text{color:var(--buttonAccentText)}.card-text h3{font-weight:700;font-size:1.6em;margin-bottom:5px}.powered-by--provider a.logo{font-size:5em;text-decoration:none}[data-banned="0"] [data-action=user_unban],[data-banned="1"] [data-action=user_ban]{display:none}.captcha.captcha--3 [data-content=captcha]{display:none} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/theme-img/favicon.png b/content/legacy/themes/Peafowl/theme-img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..92dc1e04bbd81297bb0293c628686168d70e616d GIT binary patch literal 6812 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 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/theme-img/logo.png b/content/legacy/themes/Peafowl/theme-img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca773a2ad847539c9674f4380bd9700454b9c94 GIT binary patch literal 1708 zcmV;d22=ToP)<h;3K|Lk000e1NJLTq005f+000;W1^@s6?M09J00004b3#c}2nYxW zd<bNS00009a7bBm000W>000W>0fLJSS^xk59CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHt4*vi~s-t7IZ~ebVG7wVRUJ4ZXi@?ZDjy3G%qqTFEKN^NjPHw00sm} zL_t(&f$drCaoa`^ea_^+*n!nS&_U2alnzh=Q$dglLRS!!KvxjB0<#3T1Gs|CkHdw> zhqsG^OlhKtcLpPpx3`~f_x7N7W`;Xc51<3^e);|Z!13NnzSG;IcXtHa0l*00C$aV` zfb+c+eW$xnyF4?1Vfp)_^urxxjnF^?faZ>R-a55Ng*PvsUz-{L7XW_)_#MEX04Ahn z@uGB3uw8<+@s4`lGIdBv{sq7TULR~7fX`Srg@<MBMd_Yko1VG$f1xJ;fBgq+@aRo- zHjlpGJJ=3La}m>P&#}?z^WrnxkHOjjsm<qkYeG5>r=2>+;&ZdeeME9@LL305$3;f7 z!=4`LHv9nKBhqoffz7_o*mvZ&xcW2(d%Hz{Nndd5d%OIdurJ27HUM#~qqQdhCtTk! zd_sz8-gCsYpe9#}nelTlv%!2iiajv1(c$lwJ(IIOIP%J;4dkDKeWwb2k7hO(>laHg z@MIp$tfxJhW;1KV9%XwM$m#<9TQ*F>hNs1^h{lDdwe1*|cJjJwJO9u)4lq3lVICMf zkX0EdoKd6z*Eqaq;!}m?+0)o|(q>BlF83*(CyQg_#iQBSr)=<Yqo`~qPdoON#Qv|q z<^k<wsftRv2w^oK^@srw0pV;Z2xt1eX0O?8<sKX!?tYn9`Pkb!DGdJS5O)|aN3$h> zbo6@(n%+{pwm^5bYga#54C*OZm#0nnMOAFsj@eKa_AN9Dc^o{mTM%#oaB>tdxJcR^ z_Ne%@&N}bs!l)rW3J<~tKDM`f@W7@z(J`<s1DSJ>X%h1Oy^Z!*zkB(EhQ^<R0kRF& zzAUmn0Ql<gO!WPLG?22KBk_3ji1k1Y=o_ITzCawI<1-fDy%*X*if{J)E7E}dDd7K# z^}w!d=nKA@R~PE#`bX%YzH?;!hIMY3-pgN29}lzL4#|8>Fmk=Koi7vK{KYe%;_K|T z%DIKtbS&<E9$!zow&KHGn8$+0We;~&uY2^wr;dBh0n1_;p06G8dHR%2Po@cZz31>i z%$!&ThdL%^;e=|ticcMZWpW2v<0HdMBJ1&jRr;rFF5{!-C{Ezn`JF+UiH|kqPdOJU z8@RB>N?lQ0xOsS&FtfG)lV^nLG~=>~o$$IE13-bqYz=IcfXPzQd(%T{X;U=V)>iNq z7|xagf3kIwxqIdKsG_Qghbs2W*E=$5i%(tja=sO**E(CV&c)inVT|50F|xf|XfOD; zhHUS~7ZG<075q%f2QIdYC4hLHAR->vOMg^6l&{=rdchOX#cuPrH%DH9nc$7=D`PmC zrQ2w&P}LQpcTTO~XPPSIO{O~t>xcqnri-ZE*rQ0@3I~#3`cwKD*;;#B_G~x_8@$eA zwm*J*z*gFMumEgZo$b-KUvBaqb=>AbdJDL@0vk&KQudXB@&e3VFiPmf{Np6+Z%rR9 z><=dursv$PIjp3tr`85fMt(|PJ-td#q~oRlJ+P^yl*uWLQHH5XR*4&}?q4b1Y@uZ5 zN>X;Q9IpJ%Zo%x$bWwa7@~3zBlzrz#=h0a&iRWszf&KDibi^CQuPg?bo(1Pc?y4bp zVB^^%ce8=`deaq}J68FOjxOHkb(2BJZ0$C&vt4H%PfiASXSV_6Kt`ZY@j2M~|CP$- z9LpM-&F{RC4JBo;*HAg{ajr8Bi%lx;rM}gJV3RFt9-wk{D-bD#Ta+Db0-ni|vnN}3 zLmrH46PovWUBU~x*)=|ctwHGlEf+}*<?a;~YMCRp;b{Bg|D5=hGCZHL$MH;)-OeBi zh^oa$M<qL2(*;Y)#}Dg_3Mo_B4Zo!emGW{SK38V$XnVm~?&lmt@gGgckGo_<oI?pV z*!C?X6W?}V`rKB7q-XdbWY!F~W(oMw?6M{2VlmM6#%HLM7Zud#$f!-cif6RH->`G2 z(CLjJ5^TA8R4X1W0m?(|!LG;17#N@VrsX-CzNMA?y{*AAEpj4|DLFIA*a|W~jT4{C z66{)#m3Eye9$P-;95Lk_ZQ0Nl`i31gE4}kh8TbdT5a{RKiia2g0000<MNUMnLSTX; C@IKW5 literal 0 HcmV?d00001 diff --git a/content/legacy/themes/Peafowl/theme-img/logo.svg b/content/legacy/themes/Peafowl/theme-img/logo.svg new file mode 100644 index 0000000..f7615b9 --- /dev/null +++ b/content/legacy/themes/Peafowl/theme-img/logo.svg @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="501.76px" height="76.521px" viewBox="0 0 501.76 76.521" enable-background="new 0 0 501.76 76.521" xml:space="preserve"> +<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M500.264,40.068c-0.738,0-1.422,0.359-1.814,0.963 + c-1.184,1.791-2.361,3.53-3.713,5.117c-1.295,1.514-5.34,4.031-8.699,4.662l-1.33,0.25l0.16-1.351l0.15-1.28 + c0.109-0.909,0.219-1.779,0.289-2.649c0.551-6.7-0.029-11.69-1.889-16.2c-1.682-4.08-3.941-6.57-7.111-7.85 + c-1.18-0.48-2.279-0.721-3.26-0.721c-2.17,0-3.93,1.17-5.389,3.58c-0.15,0.25-0.291,0.5-0.461,0.78l-0.67,1.18l-0.91-0.75 + c-0.42-0.34-0.82-0.67-1.23-1.01c-0.949-0.79-1.859-1.54-2.799-2.26c-0.76-0.57-1.641-1.07-2.561-1.59c-2-1.13-4.09-1.71-6.23-1.71 + c-3.869,0-7.811,1.899-10.811,5.22c-4.908,5.42-7.859,12.11-8.77,19.86c-0.109,0.989-0.389,2.279-1.48,3.479 + c-3.629,3.98-7.969,8.45-13.689,11.29c-1.23,0.61-2.73,1.01-4.34,1.18c-0.18,0.021-0.359,0.03-0.52,0.03 + c-0.85,0-1.5-0.26-1.951-0.76c-0.479-0.54-0.658-1.3-0.549-2.32c0.26-2.26,0.59-4.67,1.26-6.99c1.08-3.75,2.27-7.529,3.43-11.189 + c0.6-1.91,1.201-3.83,1.791-5.74c0.33-1.09,1.01-1.6,2.199-1.649c1.471-0.061,2.891-0.131,4.23-0.45 + c1.959-0.45,3.369-1.37,4.08-2.65c0.719-1.31,0.75-3.03,0.09-4.99c-0.061-0.17-0.121-0.33-0.189-0.489l-7.182,0.689l0.281-1.33 + c0.129-0.649,0.27-1.27,0.4-1.88c0.299-1.36,0.58-2.66,0.799-3.939c0.381-2.221,0.59-4.811-0.65-7.19 + c-1.379-2.64-4.219-4.28-7.42-4.28c-0.709,0-1.43,0.08-2.139,0.25c-5.301,1.24-9.301,4.58-12.23,7.471l1.76,9.699l-1,0.16 + c-0.5,0.09-0.961,0.16-1.391,0.22c-0.859,0.131-1.6,0.24-2.309,0.421c-1.852,0.46-3.041,1.229-3.551,2.29 + c-0.51,1.05-0.359,2.47,0.43,4.22c0.141,0.33,0.311,0.64,0.471,0.939l6.389-1.149l-0.26,1.42c-0.148,0.82-0.279,1.63-0.41,2.42 + c-0.5,3.15-0.979,6.13-2.719,8.97c-5.551,9.07-11.52,15.36-18.76,19.79c-2.17,1.33-5.111,2.91-8.521,3.33 + c-0.729,0.09-1.449,0.14-2.139,0.14c-3.551,0-6.561-1.14-8.701-3.29c-2.119-2.13-3.219-5.13-3.199-8.689l0.01-1.33l1.279,0.38 + c0.4,0.13,0.801,0.25,1.201,0.38c0.75,0.23,1.48,0.46,2.23,0.67c1.58,0.431,3.219,0.65,4.85,0.65 + c10.219-0.01,18.459-8.11,18.76-18.46c0.18-6.32-2.4-10.771-7.66-13.25c-2.141-1-4.41-1.49-6.971-1.49 + c-1.299,0-2.689,0.14-4.129,0.4c-7.34,1.35-13.381,5.54-18.48,12.83c-1.971,2.81-3.57,6.02-5.18,10.42 + c-0.58,1.58-1.48,3.22-2.75,5.01c-2.09,2.96-4.721,6.32-8.291,8.82c-1.359,0.96-2.859,1.649-4.33,2.01 + c-0.34,0.08-0.689,0.12-1.02,0.12c-1.039,0-1.959-0.4-2.609-1.12c-0.65-0.73-0.939-1.73-0.811-2.811 + c0.311-2.67,0.859-4.899,1.67-6.84c0.9-2.149,1.939-4.27,2.951-6.319c0.818-1.66,1.67-3.37,2.42-5.08 + c1.42-3.2,1.959-6.221,1.648-9.21c-0.51-4.88-3.729-7.79-8.6-7.79c-0.23,0-0.459,0.01-0.689,0.02 + c-4.131,0.23-7.65,2.101-10.891,3.99c-1.229,0.72-2.439,1.51-3.729,2.36c-0.621,0.409-1.262,0.829-1.941,1.27l-3.049,1.96 + l1.609-3.25l0.301-0.62c0.158-0.33,0.289-0.59,0.43-0.84c1.979-3.67,3.93-7.67,4.76-11.97c0.279-1.431,0.35-2.91,0.209-4.26 + c-0.209-2.16-1.398-3.341-3.34-3.341c-0.43,0-0.9,0.061-1.389,0.181c-2.141,0.52-4.191,1.67-6.262,3.51 + c-5.898,5.27-8.869,11.09-9.068,17.81c-0.102,3.61,0.949,6.16,3.629,8.811l0.551,0.55l-0.391,0.67c-0.41,0.7-0.82,1.41-1.221,2.12 + c-0.908,1.59-1.84,3.229-2.869,4.8c-4.811,7.33-10.32,12.82-16.84,16.771c-2.35,1.43-5.211,2.93-8.529,3.319 + c-0.711,0.08-1.42,0.12-2.102,0.12c-7.029,0-11.609-4.38-11.959-11.439c-0.01-0.221,0.02-0.391,0.05-0.53l0.03-0.16l0.189-1.12 + l1.09,0.33c0.41,0.13,0.82,0.26,1.221,0.39c0.85,0.271,1.65,0.53,2.459,0.73c1.51,0.38,3.041,0.57,4.57,0.57 + c5.5,0,10.75-2.471,14.391-6.78c3.57-4.23,5.1-9.76,4.18-15.17c-1-5.92-5.9-10.45-11.92-11.01c-0.891-0.08-1.77-0.13-2.641-0.13 + c-7.959,0-14.789,3.6-20.889,11c-2.381,2.88-4.051,6.21-5.831,9.949c-1.62,3.4-4.72,5.48-6.9,6.75c-2.02,1.16-3.8,1.7-5.61,1.7 + c-0.19,0-0.38,0-0.57-0.01l-1.25-0.08l0.35-1.2c0.25-0.82,0.5-1.64,0.74-2.439c0.55-1.79,1.07-3.471,1.5-5.2 + c1.29-5.29,1.44-9.601,0.47-13.57c-1.08-4.36-3.94-6.77-8.07-6.77c-0.44,0-0.9,0.029-1.37,0.09c-2.13,0.24-3.89,1.46-5.36,3.71 + c-2.4,3.689-3.45,8.14-3.28,14.02c0.16,5.511,1.48,10.011,4.03,13.73c0.36,0.53,0.52,1.479,0.16,2.12c-1.64,2.79-3.59,5.6-6.77,7.2 + c-1.34,0.67-2.68,1.01-3.99,1.01c-2.72,0-5.11-1.44-6.74-4.061c-1.76-2.83-2.68-6.14-2.82-10.13c-0.27-7.689,1.44-14.859,5.08-21.33 + l0.06-0.109c0.09-0.19,0.23-0.48,0.5-0.71c0.89-0.771,0.87-1.33-0.1-3c-1.64-2.851-4.5-4.551-7.66-4.551 + c-2.64,0-5.19,1.17-7.16,3.28c-2.98,3.19-4.91,7.32-6.08,12.99c-0.34,1.649-0.54,3.37-0.74,5.04c-0.1,0.899-0.21,1.8-0.33,2.689 + c-0.08,0.521-0.2,1.12-0.53,1.631c-5.58,8.479-11.85,14.449-19.18,18.279c-2.98,1.55-5.75,2.311-8.48,2.311 + c-1.44,0-2.88-0.221-4.3-0.641c-4.8-1.46-7.88-6.029-7.65-11.38l0.06-1.29l1.24,0.37c0.39,0.12,0.77,0.24,1.16,0.37 + c0.75,0.23,1.5,0.47,2.26,0.68c1.58,0.431,3.21,0.65,4.84,0.65c10.23-0.01,18.47-8.11,18.77-18.45c0.18-6.33-2.4-10.78-7.66-13.25 + c-2.14-1.01-4.41-1.5-6.97-1.5c-1.3,0-2.69,0.14-4.12,0.4c-7.35,1.35-13.39,5.54-18.49,12.819c-2.24,3.2-3.94,6.66-5.05,10.28 + c-0.91,2.93-2.81,5.13-4.66,7.26l-0.08,0.101c-2.25,2.6-4.84,4.939-6.83,6.68c-0.8,0.69-2.03,1.15-3.67,1.35 + c-0.18,0.03-0.34,0.04-0.5,0.04c-0.99,0-1.56-0.409-1.86-0.76c-0.47-0.54-0.64-1.28-0.51-2.2c0.31-2.229,0.71-3.989,1.25-5.54 + c0.71-2.029,1.49-4.069,2.24-6.04c0.92-2.399,1.87-4.89,2.69-7.359c1.65-4.92,1.24-9.021-1.24-12.561 + c-2.04-2.92-5.1-4.279-9.62-4.279h-0.25c-5.89,0.069-12.67,0.819-18.42,6.229c-0.22,0.21-0.43,0.55-0.67,0.87 + c-0.31,0.44-0.14,0.21-0.51,0.76l-0.62,0.87l-0.01,0.05l-0.01-0.02l0.02-0.03l0.15-0.56c0.34-1.21,0.68-2.42,1.02-3.63 + c0.78-2.771,1.58-5.63,2.28-8.46l0.31-1.24c0.67-2.65,1.36-5.391,1.53-8.07c0.28-4.2-2.6-7.6-6.83-8.08 + c-0.21-0.02-0.38-0.09-0.52-0.17h-2.23c-4.61,1.09-8.87,3.61-13.03,7.7c-0.06,0.06-0.14,0.19-0.18,0.29 + c1.58,4.22,1.42,8.61,1.05,12.35c-0.6,6.12-1.43,12.641-2.6,20.49c-0.25,1.64-1.26,3.12-2.17,4.46 + c-5.48,8.01-11.74,13.82-19.14,17.75c-3.46,1.84-6.46,2.71-9.5,2.72c-5.04,0-9.46-3.609-10.51-8.6c-1.06-4.98-0.4-10.14,2.08-16.21 + c1.23-3.04,3.11-6.9,6.67-9.73c0.94-0.75,2.14-1.34,3.38-1.659c0.5-0.12,0.99-0.19,1.45-0.19c1.22,0,2.28,0.46,2.97,1.29 + c0.77,0.92,1.04,2.23,0.78,3.7c-0.37,2.04-1.07,4.02-1.82,6.04c-0.45,1.21-1.12,2.49-1.98,3.8c-0.24,0.36-0.29,0.479,0.16,0.96 + c1.09,1.16,2.45,1.73,4.17,1.73c0.38,0,0.8-0.03,1.22-0.091c3.31-0.47,6.13-2.159,7.95-4.76c1.84-2.64,2.47-5.93,1.76-9.26 + c-1.59-7.46-7.19-11.73-15.35-11.73c-0.24,0-0.49,0-0.74,0.011c-7.16,0.22-13.41,3.26-18.56,9.05 + c-7.46,8.37-10.91,17.96-10.26,28.49c0.5,8.02,4.09,13.479,10.67,16.21c2.57,1.069,5.31,1.59,8.38,1.59c1.5,0,3.11-0.13,4.78-0.38 + c8.69-1.33,16.43-5.431,24.38-12.88c0.89-0.83,1.8-1.631,2.61-2.341l0.93-0.819l1.8-1.601l-0.14,2.41 + c-0.03,0.51-0.07,1.07-0.12,1.65c-0.11,1.399-0.23,2.979-0.19,4.52c0.05,1.59,0.33,3.17,0.81,4.58c0.96,2.771,3.34,4.29,6.78,4.29 + c2.56-0.01,4.76-0.71,6.51-2.06c0.26-0.2,0.44-0.49,0.46-0.61c0.47-2.51,0.91-5.03,1.36-7.54c0.69-3.92,1.41-7.979,2.2-11.95 + c0.63-3.16,1.42-6.33,2.19-9.39c0.28-1.09,0.55-2.19,0.82-3.29c0.11-0.43,0.38-1.22,0.99-1.66c3.13-2.229,6.01-3.27,9.09-3.27h0.12 + c1.6,0.02,2.93,0.54,3.86,1.5c0.88,0.909,1.33,2.159,1.29,3.59c-0.07,2.39-0.39,4.85-0.95,7.319c-0.51,2.23-1.1,4.46-1.67,6.62 + c-0.65,2.45-1.32,4.98-1.86,7.49c-0.63,2.9-0.41,5.83,0.65,8.47c1.18,2.95,3.54,4.551,7,4.761c0.3,0.02,0.59,0.029,0.89,0.029 + c3.36,0,6.64-1.12,10.33-3.529c3.9-2.54,7.44-5.94,11.48-11.021l0.15-0.189c0.14-0.19,0.29-0.37,0.45-0.561 + c0.25-0.28,0.56-0.35,0.62-0.36l0.95-0.34l0.33,0.96c0.2,0.61,0.39,1.21,0.58,1.82c0.41,1.32,0.79,2.56,1.33,3.73 + c2.65,5.75,7.27,8.939,14.11,9.779c1.26,0.16,2.53,0.23,3.78,0.23c5.41,0,10.79-1.391,16.45-4.26 + c6.83-3.471,12.86-8.601,17.92-15.25c0.19-0.261,0.4-0.5,0.58-0.71l1.07-1.311l0.63,1.58c0.41,1.03,0.8,2.08,1.2,3.14 + c0.88,2.351,1.8,4.79,2.9,7.08c1.67,3.45,4.11,6.07,7.24,7.811c2.49,1.37,5.1,2.069,7.77,2.069c2.29,0,4.7-0.51,7.17-1.529 + c5.5-2.261,9.33-6.57,12.06-10.08c0.94-1.2,1.81-2.521,2.65-3.79c0.54-0.82,1.08-1.641,1.64-2.44c0.09-0.12,0.86-1.17,1.94-1.17 + h0.01c0.61,0.04,1.22,0.07,1.83,0.07c3.92,0,7.35-0.87,10.49-2.66l1.3-0.74l0.19,1.48c0.09,0.729,0.17,1.45,0.24,2.16 + c0.16,1.5,0.3,2.92,0.63,4.279c2.12,8.971,8.069,13.761,17.69,14.23c0.539,0.03,1.069,0.04,1.59,0.04 + c5.51,0,11.049-1.44,16.469-4.271c11.811-6.18,20.342-15.859,26.061-29.59c0.23-0.54,0.41-1.1,0.611-1.689 + c0.18-0.551,0.359-1.091,0.568-1.631c0.23-0.569,0.801-1.25,1.49-1.38c0.541-0.1,1.08-0.21,1.611-0.319 + c1.75-0.351,3.549-0.71,5.379-0.761l0.17-0.01c1.561,0,2.92,0.601,3.83,1.681c0.939,1.119,1.291,2.649,1,4.3 + c-0.359,2.01-0.959,4.02-1.779,5.96c-1.85,4.39-3.65,9.16-4.211,14.26c-0.48,4.28,0.141,7.26,2,9.67c1.701,2.21,4.051,3.24,7.4,3.24 + c0.52,0,1.07-0.021,1.641-0.07c3.51-0.31,6.9-1.66,11-4.399c3.74-2.49,7.25-5.69,10.729-9.79c0.221-0.261,0.451-0.511,0.701-0.811 + l1.65-1.87l0.5,1.78c0.129,0.46,0.24,0.92,0.359,1.35c0.23,0.881,0.449,1.721,0.73,2.5c2.449,6.92,7.359,10.73,15,11.641 + c1.209,0.14,2.439,0.21,3.65,0.21c5.379,0,10.77-1.391,16.459-4.271c6.109-3.09,11.471-7.449,16.4-13.319 + c0.141-0.17,0.279-0.33,0.49-0.561l2.189-2.49v2.65c0,0.7-0.02,1.38-0.039,2.03c-0.041,1.34-0.08,2.609,0.08,3.8 + c0.299,2.17,0.67,4.46,1.529,6.45c1.43,3.3,4.289,5.2,7.83,5.2c1.459,0,2.969-0.32,4.49-0.96c6.549-2.75,11.859-7.341,15.76-11.03 + c1.709-1.61,3.299-3.28,4.99-5.05c0.76-0.801,1.52-1.591,2.289-2.391l1.131-1.16l0.529,1.54c0.189,0.54,0.371,1.08,0.541,1.63 + c0.389,1.181,0.789,2.391,1.25,3.54c2.75,6.78,6.979,11.11,12.939,13.24c2.439,0.87,4.93,1.311,7.4,1.311 + c2.648,0,5.33-0.5,7.979-1.511c7.842-2.97,13.781-8.08,17.682-15.21c0.879-1.6,2.01-2.06,3.449-2.239 + c6.881-0.891,11.662-7.093,14.271-11.316c0.682-1.117,1.252-2.35,1.803-3.551c0.244-0.525,0.482-1.053,0.738-1.566v-0.334 + C501.428,40.331,500.891,40.068,500.264,40.068z M356.498,45.45c1.539-5.56,3.689-11.22,8.969-15.04 + c0.801-0.58,1.811-1.05,3.02-1.39c0.471-0.13,0.891-0.19,1.281-0.19c1.5,0,2.5,0.9,2.98,2.68c0.779,2.92-0.09,5.631-0.811,7.41 + c-2.1,5.221-6.211,8.09-11.561,8.09c-1,0-2.049-0.109-3.109-0.31l-1.061-0.21L356.498,45.45z M249.947,45.54 + c1.55-5.62,3.711-11.36,9.07-15.189c0.76-0.551,1.76-0.99,3.039-1.351c0.42-0.12,0.82-0.18,1.201-0.18c1.539,0,2.629,0.99,2.9,2.63 + c0.289,1.76,0.289,3.49-0.012,5.01c-1.25,6.33-6.229,10.601-12.41,10.62c-0.659,0-1.299-0.08-1.979-0.17 + c-0.301-0.04-0.621-0.07-0.94-0.11l-1.181-0.12L249.947,45.54z M134.737,45.54c1.55-5.62,3.72-11.36,9.06-15.189 + c0.77-0.551,1.77-0.99,3.04-1.351c0.42-0.12,0.83-0.18,1.21-0.18c1.54,0,2.63,0.979,2.9,2.62c0.29,1.77,0.29,3.5-0.01,5.01 + c-1.24,6.34-6.22,10.61-12.4,10.63c-0.66,0-1.29-0.08-1.96-0.16c-0.31-0.04-0.64-0.08-0.97-0.12l-1.19-0.109L134.737,45.54z + M468.758,50.97c-0.67,4.82-2.801,8.46-6.32,10.801c-1.52,1.01-3.17,1.55-4.77,1.55c-3.221,0-5.971-2.19-7.17-5.73 + c-1.48-4.38-1.371-9.13,0.33-14.54c1.52-4.819,3.93-8.319,7.379-10.71c1.73-1.199,3.92-1.92,5.85-1.92c0.102,0,0.201,0,0.301,0.01 + l0.959,0.03v0.97c0,0.771-0.01,1.54-0.02,2.311c-0.029,1.67-0.061,3.39,0.051,5.06c0.23,3.591,1.209,7.03,2.92,10.221 + C468.527,49.51,468.867,50.23,468.758,50.97z"/> +</svg> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album.php b/content/legacy/themes/Peafowl/tpl_list_item/album.php new file mode 100644 index 0000000..a907bb3 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album.php @@ -0,0 +1,21 @@ +<div class="list-item c%COLUMN_SIZE_ALBUM% gutter-margin-right-bottom" data-type="album" data-size="%ALBUM_IMAGES_SLICE_0_SIZE%" data-id="%ALBUM_ID_ENCODED%" data-liked="%ALBUM_LIKED%" data-flag="%ALBUM_COVER_FLAG%" data-privacy="%ALBUM_PRIVACY%" data-url-short="%ALBUM_URL_SHORT%" data-thumb="%ALBUM_IMAGES_SLICE_0_THUMB_URL%"> + <div class="list-item-image fixed-size"> + <a href="%ALBUM_URL%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/album_cover_empty% + %tpl_list_item/album_cover_image% + </a> + %tpl_list_item/item_privacy% + %tpl_list_item/item_album_admin_tools% + %tpl_list_item/item_image_play_gif% + </div> + <div class="list-item-desc"> + <div class="list-item-desc-title"> + <a class="list-item-desc-title-link" href="%ALBUM_URL%">%ALBUM_NAME%</a> + <div class="list-item-from font-size-small phone-hide"><span class="fas fa-image margin-right-5"></span>%ALBUM_IMAGE_COUNT%</div> + </div> + </div> + <div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album/image.php b/content/legacy/themes/Peafowl/tpl_list_item/album/image.php new file mode 100644 index 0000000..60a7e03 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album/image.php @@ -0,0 +1,20 @@ +<div class="list-item c%COLUMN_SIZE_IMAGE% gutter-margin-right-bottom" data-category-id="%IMAGE_CATEGORY_ID%" data-flag="%IMAGE_FLAG%" data-id="%IMAGE_ID_ENCODED%" data-album-id="%IMAGE_ALBUM_ID_ENCODED%" data-type="image" data-size="%IMAGE_SIZE%" data-liked="%IMAGE_LIKED%" data-description="%IMAGE_DESCRIPTION%" data-title="%IMAGE_TITLE%" data-privacy="%IMAGE_ALBUM_PRIVACY%" data-url-short="%IMAGE_URL_SHORT%" data-thumb="%IMAGE_THUMB_URL%" %DATA_OBJECT%> + <div class="list-item-image %SIZE_TYPE%"> + <a href="%IMAGE_PATH_VIEWER%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/image_cover_empty% + %tpl_list_item/image_cover_image% + </a> + %tpl_list_item/item_privacy% + %tpl_list_item/item_image_edit_tools% + %tpl_list_item/item_image_play_gif% + </div> + <div class="list-item-desc"> + <div class="list-item-desc-title"> + <a href="%IMAGE_PATH_VIEWER%" class="list-item-desc-title-link" data-text="image-title" data-content="image-link">%IMAGE_TITLE%</a> + </div> + </div> + <div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album_cover_empty.php b/content/legacy/themes/Peafowl/tpl_list_item/album_cover_empty.php new file mode 100644 index 0000000..8163762 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album_cover_empty.php @@ -0,0 +1 @@ +<span class="empty icon fas fa-inbox"></span> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album_cover_image.php b/content/legacy/themes/Peafowl/tpl_list_item/album_cover_image.php new file mode 100644 index 0000000..fa71f3f --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album_cover_image.php @@ -0,0 +1 @@ +<img src="%ALBUM_IMAGES_SLICE_0_DISPLAY_URL%" alt="%ALBUM_IMAGES_SLICE_0_NAME%.%ALBUM_IMAGES_SLICE_0_EXTENSION%" width="%ALBUM_IMAGES_SLICE_0_DISPLAY_WIDTH%" height="%ALBUM_IMAGES_SLICE_0_DISPLAY_HEIGHT%"> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album_cover_password.php b/content/legacy/themes/Peafowl/tpl_list_item/album_cover_password.php new file mode 100644 index 0000000..6ad2a5a --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album_cover_password.php @@ -0,0 +1 @@ +<span class="empty icon fas fa-lock"></span> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album_password.php b/content/legacy/themes/Peafowl/tpl_list_item/album_password.php new file mode 100644 index 0000000..cc62b44 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album_password.php @@ -0,0 +1,15 @@ +<div class="list-item c%COLUMN_SIZE_ALBUM% gutter-margin-right-bottom" data-type="album" data-id="%ALBUM_ID_ENCODED%" data-liked="%ALBUM_LIKED%" data-flag="%ALBUM_COVER_FLAG%" data-privacy="%ALBUM_PRIVACY%" data-url-short="%ALBUM_URL_SHORT%"> + <div class="list-item-image fixed-size"> + <a href="%ALBUM_URL%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/album_cover_password% + </a> + %tpl_list_item/item_privacy% + %tpl_list_item/item_album_admin_tools% + </div> + <div class="list-item-desc"> + <div class="list-item-desc-title"> + <a class="list-item-desc-title-link" href="%ALBUM_URL%"><?php _se('Private album'); ?></a> + <div class="list-item-from font-size-small phone-hide"><span class="fas fa-image margin-right-5"></span><?php _se('Password protected'); ?></div> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/album_thumbs.php b/content/legacy/themes/Peafowl/tpl_list_item/album_thumbs.php new file mode 100644 index 0000000..b65dbd8 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/album_thumbs.php @@ -0,0 +1,8 @@ +<div class="list-item-thumbs-container"> + <ul class="list-item-thumbs"> + <li data-flag="%ALBUM_IMAGES_SLICE_1_FLAG%">%1<a href="%ALBUM_URL%" style="background-image: url(%ALBUM_IMAGES_SLICE_1_THUMB_URL%)"></a>%1</li> + <li data-flag="%ALBUM_IMAGES_SLICE_2_FLAG%">%2<a href="%ALBUM_URL%" style="background-image: url(%ALBUM_IMAGES_SLICE_2_THUMB_URL%)"></a>%2</li> + <li data-flag="%ALBUM_IMAGES_SLICE_3_FLAG%">%3<a href="%ALBUM_URL%" style="background-image: url(%ALBUM_IMAGES_SLICE_3_THUMB_URL%)"></a>%3</li> + <li data-flag="%ALBUM_IMAGES_SLICE_4_FLAG%">%4<a href="%ALBUM_URL%" style="background-image: url(%ALBUM_IMAGES_SLICE_4_THUMB_URL%)"></a>%4</li> + </ul> +</div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image.php b/content/legacy/themes/Peafowl/tpl_list_item/image.php new file mode 100644 index 0000000..41802b8 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image.php @@ -0,0 +1,14 @@ +<div class="list-item fixed-size c%COLUMN_SIZE_IMAGE% gutter-margin-right-bottom" data-category-id="%IMAGE_CATEGORY_ID%" data-flag="%IMAGE_FLAG%" data-id="%IMAGE_ID_ENCODED%" data-type="image" data-size="%IMAGE_SIZE%" data-liked="%IMAGE_LIKED%" data-description="%IMAGE_DESCRIPTION%" data-privacy="%IMAGE_ALBUM_PRIVACY%" data-url-short="%IMAGE_URL_SHORT%" data-thumb="%IMAGE_THUMB_URL%" %DATA_OBJECT%> + <div class="list-item-image %SIZE_TYPE%"> + <a href="%IMAGE_PATH_VIEWER%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/image_cover_empty% + %tpl_list_item/image_cover_image% + </a> + %tpl_list_item/item_privacy% + %tpl_list_item/item_image_admin_tools% + %tpl_list_item/item_image_play_gif% + </div> + %tpl_list_item/image_description_guest% + %tpl_list_item/image_description_user% + %tpl_list_item/image_description_private% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_cover_empty.php b/content/legacy/themes/Peafowl/tpl_list_item/image_cover_empty.php new file mode 100644 index 0000000..8163762 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_cover_empty.php @@ -0,0 +1 @@ +<span class="empty icon fas fa-inbox"></span> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_cover_image.php b/content/legacy/themes/Peafowl/tpl_list_item/image_cover_image.php new file mode 100644 index 0000000..3dd4491 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_cover_image.php @@ -0,0 +1 @@ +<img loading="lazy" src="%IMAGE_DISPLAY_URL%" alt="%IMAGE_NAME%.%IMAGE_EXTENSION%" width="%IMAGE_DISPLAY_WIDTH%" height="%IMAGE_DISPLAY_HEIGHT%"> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_description_guest.php b/content/legacy/themes/Peafowl/tpl_list_item/image_description_guest.php new file mode 100644 index 0000000..b529f84 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_description_guest.php @@ -0,0 +1,10 @@ +<div class="list-item-desc"> + <div class="list-item-desc-title"> + <a href="%IMAGE_PATH_VIEWER%" class="list-item-desc-title-link" data-text="image-title-truncated" data-content="image-link" title="%IMAGE_TITLE%">%IMAGE_TITLE%</a> + <div class="list-item-from font-size-small"><?php _se('Uploaded by guest'); ?></div> + </div> +</div> +<div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_description_owner.php b/content/legacy/themes/Peafowl/tpl_list_item/image_description_owner.php new file mode 100644 index 0000000..a757a51 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_description_owner.php @@ -0,0 +1,10 @@ +<div class="list-item-desc"> + <div class="list-item-desc-title"> + <a href="%IMAGE_PATH_VIEWER%" class="list-item-desc-title-link" data-text="image-title-truncated" data-content="image-link" title="%IMAGE_TITLE%">%IMAGE_TITLE%</a> + <div class="list-item-from font-size-small"><a href="%IMAGE_ALBUM_URL%" data-text="album-name" data-content="album-link">%IMAGE_ALBUM_NAME_TRUNCATED%</a></div> + </div> +</div> +<div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_description_private.php b/content/legacy/themes/Peafowl/tpl_list_item/image_description_private.php new file mode 100644 index 0000000..f8aab5c --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_description_private.php @@ -0,0 +1,10 @@ +<div class="list-item-desc"> + <div class="list-item-desc-title"> + <a href="%IMAGE_PATH_VIEWER%" class="list-item-desc-title-link" data-text="image-title-truncated" data-content="image-link" title="%IMAGE_TITLE%">%IMAGE_TITLE%</a> + <div class="list-item-from font-size-small"><?php _se('Uploaded by private'); ?></div> + </div> +</div> +<div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_description_user.php b/content/legacy/themes/Peafowl/tpl_list_item/image_description_user.php new file mode 100644 index 0000000..94ce727 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_description_user.php @@ -0,0 +1,10 @@ +<div class="list-item-desc"> + <div class="list-item-desc-title"> + <a href="%IMAGE_PATH_VIEWER%" class="list-item-desc-title-link" data-text="image-title" data-content="image-link">%IMAGE_TITLE%</a> + <div class="list-item-from font-size-small"><?php _se('by %u', ['%u' => '<a href="%IMAGE_USER_URL%">%IMAGE_USER_NAME%</a>']); ?></div> + </div> +</div> +<div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_description_user_avatar.php b/content/legacy/themes/Peafowl/tpl_list_item/image_description_user_avatar.php new file mode 100644 index 0000000..33a25f4 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_description_user_avatar.php @@ -0,0 +1 @@ +<!--<a href="%IMAGE_USER_URL%" class="user"><img src="%IMAGE_USER_AVATAR_URL%" alt=""></a>--> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_description_user_no_avatar.php b/content/legacy/themes/Peafowl/tpl_list_item/image_description_user_no_avatar.php new file mode 100644 index 0000000..b10d308 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_description_user_no_avatar.php @@ -0,0 +1 @@ +<!--<a class="user user-image default-user-image" href="%IMAGE_USER_URL%"><span class="icon fas fa-user-circle"></span></a>--> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/image_plain.php b/content/legacy/themes/Peafowl/tpl_list_item/image_plain.php new file mode 100644 index 0000000..c32e4d3 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/image_plain.php @@ -0,0 +1,10 @@ +<div class="list-item c%COLUMN_SIZE_IMAGE% gutter-margin-right-bottom" data-flag="%IMAGE_FLAG%" data-id="%IMAGE_ID_ENCODED%" data-album-id="%IMAGE_ALBUM_ID_ENCODED%" data-type="image" data-size="%IMAGE_SIZE%" data-description="%IMAGE_DESCRIPTION%" data-privacy="%IMAGE_ALBUM_PRIVACY%" data-url-short="%IMAGE_URL_SHORT%" data-thumb="%IMAGE_THUMB_URL%" %DATA_OBJECT%> + <div class="list-item-image %SIZE_TYPE%"> + <a href="%IMAGE_PATH_VIEWER%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/image_cover_empty% + %tpl_list_item/image_cover_image% + </a> + %tpl_list_item/item_privacy% + %tpl_list_item/item_image_admin_tools% + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php new file mode 100644 index 0000000..41abe32 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php @@ -0,0 +1,8 @@ +<div class="list-item-image-tools" data-action="list-tools"> + <div class="tool-select" data-action="select"> + <span data-icon-selected="fa-check-square" data-icon-unselected="fa-square" class="btn-icon far fa-square" title="<?php _se('Select'); ?>"></span> + </div> + <div class="list-tool tool-delete phone-hide" data-action="delete"> + <span class="btn-icon fas fa-trash-alt" title="<?php _se('Delete'); ?>"></span> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php new file mode 100644 index 0000000..72c1f77 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php @@ -0,0 +1,22 @@ +<?php +use Chevereto\Legacy\G\Handler; + +?> +<div class="list-item-image-tools" data-action="list-tools"> + <div class="tool-select" data-action="select"> + <span data-icon-selected="fa-check-square" data-icon-unselected="fa-square" class="btn-icon far fa-square" title="<?php _se('Select'); ?>"></span> + </div> + <div class="list-tool tool-edit phone-hide" data-action="edit"><span class="btn-icon fas fa-edit"></span><span class="label label-edit"><?php _se('Edit'); ?></span></div> + <div class="list-tool tool-move" data-action="move"> + <span class="btn-icon fas fa-exchange-alt" title="<?php _se('Move to album'); ?>"></span> + </div> + <?php + if (Handler::cond('allowed_to_delete_content')) { + ?> + <div class="list-tool tool-delete" data-action="delete"> + <span class="btn-icon fas fa-trash-alt" title="<?php _se('Delete'); ?>"></span> + </div> + <?php + } + ?> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_image_admin_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_image_admin_tools.php new file mode 100644 index 0000000..c0ee574 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_image_admin_tools.php @@ -0,0 +1,29 @@ +<?php +use Chevereto\Legacy\G\Handler; + +?> +<div class="list-item-image-tools" data-action="list-tools"> + <div class="tool-select" data-action="select"> + <span data-icon-selected="fa-check-square" data-icon-unselected="fa-square" class="btn-icon far fa-square" title="<?php _se('Select'); ?>"></span> + </div> + <?php + if (Handler::cond('allowed_nsfw_flagging')) { + ?> + <div class="list-tool tool-flag"> + <span data-action="flag" class="btn-icon far fa-flag label-flag-unsafe" title="<?php _se('Toggle unsafe flag'); ?>"></span> + <span data-action="flag" class="btn-icon fas fa-flag label-flag-safe" title="<?php _se('Toggle unsafe flag'); ?>"></span> + </div> + <?php + } + if (Handler::getRouteName() == 'moderate') { + ?> + <div class="list-tool tool-approve" data-action="approve"> + <span class="btn-icon fas fa-check" title="<?php _se('Approve'); ?>"></span> + </div> + <?php + } + ?> + <div class="list-tool list-tool phone-hide" data-action="delete"> + <span class="btn-icon fas fa-trash-alt" title="<?php _se('Delete'); ?>"></span> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php new file mode 100644 index 0000000..59e577f --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php @@ -0,0 +1,37 @@ +<?php +use Chevereto\Legacy\G\Handler; + +?> +<div class="list-item-image-tools" data-action="list-tools"> + <div class="list-tool tool-select" data-action="select"> + <span data-icon-selected="fa-check-square" data-icon-unselected="fa-square" class="btn-icon far fa-square" title="<?php _se('Select'); ?>"></span> + </div> + <?php + if (Handler::cond('allowed_nsfw_flagging')) { + ?> + <div class="list-tool tool-flag phone-hide"> + <span data-action="flag" class="btn-icon far fa-flag label-flag-unsafe" title="<?php _se('Toggle unsafe flag'); ?>"></span> + <span data-action="flag" class="btn-icon fas fa-flag label-flag-safe" title="<?php _se('Toggle unsafe flag'); ?>"></span> + </div> + <?php + } + ?> + <div class="list-tool tool-edit phone-hide" data-action="edit"> + <span class="btn-icon fas fa-edit" title="<?php _se('Edit'); ?>"></span> + </div> + <div class="list-tool tool-move phone-hide" data-action="move"> + <span class="btn-icon fas fa-exchange-alt" title="<?php _se('Move to album'); ?>"></span> + </div> + <div class="list-tool tool-create phone-hide" data-action="create-album"> + <span class="btn-icon fas fa-images" title="<?php _se('Create album'); ?>"></span> + </div> + <?php + if (Handler::cond('allowed_to_delete_content')) { + ?> + <div class="list-tool tool-delete phone-hide" data-action="delete"> + <span class="btn-icon fas fa-trash-alt" title="<?php _se('Delete'); ?>"></span> + </div> + <?php + } + ?> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_image_play_gif.php b/content/legacy/themes/Peafowl/tpl_list_item/item_image_play_gif.php new file mode 100644 index 0000000..6b6d5c8 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_image_play_gif.php @@ -0,0 +1 @@ +<div class="list-item-play-gif" data-action="load-image"><div></div><span></span><i></i></div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_image_public_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_image_public_tools.php new file mode 100644 index 0000000..3d1687c --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_image_public_tools.php @@ -0,0 +1,5 @@ +<div class="list-item-image-tools" data-action="list-tools"> + <div class="tool-select" data-action="select"> + <span data-icon-selected="fa-check-square" data-icon-unselected="fa-square" class="btn-icon far fa-square" title="<?php _se('Select'); ?>"></span> + </div> +</div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_like.php b/content/legacy/themes/Peafowl/tpl_list_item/item_like.php new file mode 100644 index 0000000..1f5812f --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_like.php @@ -0,0 +1,4 @@ +<div class="list-item-like" data-action="like"> + <span class="btn-icon btn-like btn-liked fas fa-heart"></span> + <span class="btn-icon btn-like btn-unliked far fa-heart"></span> +</div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_privacy.php b/content/legacy/themes/Peafowl/tpl_list_item/item_privacy.php new file mode 100644 index 0000000..4b3d63f --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_privacy.php @@ -0,0 +1,3 @@ +<div class="list-item-privacy list-item-image-tools --top --left"> + <div class="btn-lock fas fa-eye-slash"></div> +</div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_share.php b/content/legacy/themes/Peafowl/tpl_list_item/item_share.php new file mode 100644 index 0000000..14f4550 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_share.php @@ -0,0 +1,3 @@ +<div class="list-item-share" data-action="share"> + <span class="btn-icon btn-share fas fa-share-alt"></span> +</div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user.php b/content/legacy/themes/Peafowl/tpl_list_item/user.php new file mode 100644 index 0000000..633f455 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user.php @@ -0,0 +1,14 @@ +<div class="list-item fixed-size c%COLUMN_SIZE_USER% gutter-margin-right-bottom" data-type="user"> + <a href="%USER_URL%" class="list-item-image fixed-size" %tpl_list_item/user_background_image%> + <div class="list-item-avatar-cover image-container"> + %tpl_list_item/user_cover_empty% + %tpl_list_item/user_cover_image% + </div> + </a> + <div class="list-item-desc"> + <div class="list-item-desc-title"> + <a class="list-item-desc-title-link" href="%USER_URL%">%USER_USERNAME%</a> + </div> + <div class="position-absolute right-10 bottom-10 text-align-right phone-hide">%USER_IMAGE_COUNT%<span class="fas fa-image margin-left-5"></span></div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user/album.php b/content/legacy/themes/Peafowl/tpl_list_item/user/album.php new file mode 100644 index 0000000..4ac5517 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user/album.php @@ -0,0 +1,21 @@ +<div class="list-item c%COLUMN_SIZE_ALBUM% gutter-margin-right-bottom" data-type="album" data-size="%ALBUM_IMAGES_SLICE_0_SIZE%" data-id="%ALBUM_ID_ENCODED%" data-name="%ALBUM_NAME%" data-description="%ALBUM_DESCRIPTION%" data-password="%ALBUM_PASSWORD%" data-liked="%ALBUM_LIKED%" data-flag="%ALBUM_COVER_FLAG%" data-privacy="%ALBUM_PRIVACY%" data-url-short="%ALBUM_URL_SHORT%" data-thumb="%ALBUM_IMAGES_SLICE_0_THUMB_URL%"> + <div class="list-item-image fixed-size"> + <a href="%ALBUM_URL%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/album_cover_empty% + %tpl_list_item/album_cover_image% + </a> + %tpl_list_item/item_album_edit_tools% + %tpl_list_item/item_privacy% + %tpl_list_item/item_image_play_gif% + </div> + <div class="list-item-desc"> + <div class="list-item-desc-title"> + <a class="list-item-desc-title-link" href="%ALBUM_URL%">%ALBUM_NAME%</a> + <div class="list-item-from font-size-small phone-hide"><span class="fas fa-image margin-right-5"></span>%ALBUM_IMAGE_COUNT%</div> + </div> + </div> + <div class="list-item-image-tools --bottom --right"> + %tpl_list_item/item_share% + %tpl_list_item/item_like% + </div> +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user/image.php b/content/legacy/themes/Peafowl/tpl_list_item/user/image.php new file mode 100644 index 0000000..9df76de --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user/image.php @@ -0,0 +1,13 @@ +<div class="list-item c%COLUMN_SIZE_IMAGE% gutter-margin-right-bottom" data-flag="%IMAGE_FLAG%" data-id="%IMAGE_ID_ENCODED%" data-album-id="%IMAGE_ALBUM_ID_ENCODED%" data-type="image" data-size="%IMAGE_SIZE%" data-liked="%IMAGE_LIKED%" data-description="%IMAGE_DESCRIPTION%" data-title="%IMAGE_TITLE%" data-category-id="%IMAGE_CATEGORY_ID%" data-privacy="%IMAGE_ALBUM_PRIVACY%" data-url-short="%IMAGE_URL_SHORT%" data-thumb="%IMAGE_THUMB_URL%" %DATA_OBJECT%> + <div class="list-item-image %SIZE_TYPE%"> + <a href="%IMAGE_PATH_VIEWER%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/image_cover_empty% + %tpl_list_item/image_cover_image% + </a> + %tpl_list_item/item_image_edit_tools% + %tpl_list_item/item_image_public_tools% + %tpl_list_item/item_privacy% + %tpl_list_item/item_image_play_gif% + </div> + %tpl_list_item/image_description_owner% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user/liked.php b/content/legacy/themes/Peafowl/tpl_list_item/user/liked.php new file mode 100644 index 0000000..8bafa93 --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user/liked.php @@ -0,0 +1,15 @@ +<div class="list-item c%COLUMN_SIZE_IMAGE% gutter-margin-right-bottom" data-flag="%IMAGE_FLAG%" data-id="%IMAGE_ID_ENCODED%" data-album-id="%IMAGE_ALBUM_ID_ENCODED%" data-type="image" data-size="%IMAGE_SIZE%" data-liked="%IMAGE_LIKED%" data-description="%IMAGE_DESCRIPTION%" data-title="%IMAGE_TITLE%" data-category-id="%IMAGE_CATEGORY_ID%" data-privacy="%IMAGE_ALBUM_PRIVACY%" data-url-short="%IMAGE_URL_SHORT%" data-thumb="%IMAGE_THUMB_URL%" %DATA_OBJECT%> + <div class="list-item-image %SIZE_TYPE%"> + <a href="%IMAGE_PATH_VIEWER%" class="image-container %tpl_list_item/item_cover_type%"> + %tpl_list_item/image_cover_empty% + %tpl_list_item/image_cover_image% + </a> + %tpl_list_item/item_privacy% + %tpl_list_item/item_image_edit_tools% + %tpl_list_item/item_image_public_tools% + %tpl_list_item/item_image_play_gif% + </div> + %tpl_list_item/image_description_guest% + %tpl_list_item/image_description_user% + %tpl_list_item/image_description_private% +</div> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user/user.php b/content/legacy/themes/Peafowl/tpl_list_item/user/user.php new file mode 100644 index 0000000..de5412c --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user/user.php @@ -0,0 +1,15 @@ +<div class="list-item fixed-size c%COLUMN_SIZE_USER% gutter-margin-right-bottom" data-type="user"> + <a href="%USER_URL%" class="list-item-image fixed-size" %tpl_list_item/user_background_image%> + <div class="list-item-avatar-cover image-container"> + %tpl_list_item/user_cover_empty% + %tpl_list_item/user_cover_image% + </div> + </a> + <div class="list-item-desc"> + <div class="list-item-desc-title"> + <a class="list-item-desc-title-link" href="%USER_URL%">%USER_NAME%</a> + <div class="list-item-from font-size-small">%USER_USERNAME%</div> + </div> + <div class="position-absolute right-10 bottom-10 text-align-right">%USER_IMAGE_COUNT%<span class="fas fa-image margin-left-5"></span></div> + </div> +</div> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user_background_image.php b/content/legacy/themes/Peafowl/tpl_list_item/user_background_image.php new file mode 100644 index 0000000..8075e2e --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user_background_image.php @@ -0,0 +1 @@ +style="background: url(%USER_BACKGROUND_MEDIUM_URL%) center; background-size: cover;" \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user_cover_empty.php b/content/legacy/themes/Peafowl/tpl_list_item/user_cover_empty.php new file mode 100644 index 0000000..a659d0c --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user_cover_empty.php @@ -0,0 +1,7 @@ +<?php +use function Chevereto\Legacy\get_system_image_url; + +?> +<svg class="icon empty" viewBox="0 0 496 512"> + <use href="<?php echo get_system_image_url('default/user.svg');?>#shape"></use> +</svg> diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user_cover_image.php b/content/legacy/themes/Peafowl/tpl_list_item/user_cover_image.php new file mode 100644 index 0000000..193adac --- /dev/null +++ b/content/legacy/themes/Peafowl/tpl_list_item/user_cover_image.php @@ -0,0 +1 @@ +<img src="%USER_AVATAR_URL%" alt=""> \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/views/403.php b/content/legacy/themes/Peafowl/views/403.php new file mode 100644 index 0000000..9a0d23f --- /dev/null +++ b/content/legacy/themes/Peafowl/views/403.php @@ -0,0 +1,22 @@ +<?php +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="center-box c24 margin-top-20"> + <div class="content-width"> + <div class="header default-margin-bottom"> + <h1 class="header-title"><?php _se('Request denied'); ?></h1> + </div> + <div class="form-content"> + <p><?php _se("You either don't have permission to access this page or the link has expired."); ?></p> + <div class="btn-container"><a href="<?php echo get_base_url(); ?>" class="btn btn-input default"><?php _se('Go to homepage'); ?></a></div> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/404.php b/content/legacy/themes/Peafowl/views/404.php new file mode 100644 index 0000000..8bb5148 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/404.php @@ -0,0 +1,27 @@ +<?php +use function Chevereto\Legacy\G\get_route_name; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Vars\request; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="content-width"> + <div class="page-not-found"> + <h1><?php _se("That page doesn't exist"); ?></h1> + <p><?php _se('The requested page was not found.'); ?></p> + </div> +</div> +<?php if (isset(request()["deleted"])) { + ?> +<script> + $(function() { + PF.fn.growl.call("<?php echo get_route_name() == 'user' ? _s('The user has been deleted') : _s('The content has been deleted.'); ?>"); + }); +</script> +<?php +} ?> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/awaiting-confirmation.php b/content/legacy/themes/Peafowl/views/account/awaiting-confirmation.php new file mode 100644 index 0000000..9063d4a --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/awaiting-confirmation.php @@ -0,0 +1,28 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="far fa-check-circle"></i> <?php _se('Your account is almost ready'); ?></h1> + <div class="content-section"><?php _se("An email to %s has been sent with instructions to activate your account. The activation link is only valid for 48 hours. If you don't receive the instructions try checking your junk or spam filters.", '<b>' . Handler::var('signup_email') . '</b>'); ?></div> + <div class="content-section"><a href="<?php echo get_base_url('account/resend-activation'); ?>" class="btn btn-input accent"><i class="btn-icon fas fa-check-circle"></i><span class="btn-text"><?php _se('Resend activation'); ?></span></a></div> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/email-changed.php b/content/legacy/themes/Peafowl/views/account/email-changed.php new file mode 100644 index 0000000..892de11 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/email-changed.php @@ -0,0 +1,26 @@ +<?php +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-at"></i> <?php _se('Email changed'); ?></h1> + <div class="content-section"><?php _se('You have successfully changed your account email to %s', '<b>' . Login::getUser()['email'] . '</b>'); ?></div> + <div class="content-section"><a href="<?php echo Login::getUser()['url']; ?>" class="btn btn-input accent"><i class="btn-icon fas fa-check-circle"></i><span class="btn-text"><?php _se('Go to my profile'); ?></span></a></div> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/email-needed.php b/content/legacy/themes/Peafowl/views/account/email-needed.php new file mode 100644 index 0000000..abf8313 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/email-needed.php @@ -0,0 +1,48 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-at"></i> <?php _se('Add your email address'); ?></h1> + <div class="content-section"><?php _se(getSetting('require_user_email_confirmation') ? 'A confirmation link will be sent to this email with details to activate your account.' : 'You must add an email to continue with the account sign up.'); ?></div> + <form class="content-section" method="post" autocomplete="off" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div> + <input type="email" name="email" class="input" autocomplete="off" value="<?php echo Handler::var('safe_post')['email'] ?? ''; ?>" placeholder="<?php _se('Your email address'); ?>" required> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['email'] ?? ''; ?></div> + </div> + </fieldset> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + <div class="content-section"> + <button class="btn btn-input accent" type="submit"><i class="btn-icon fas fa-check-circle"></i><span class="btn-text"><?php _se('Submit'); ?></span></button> + </div> + </form> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php if (Handler::var('post') && Handler::cond('error')) { + ?> +<script> +$(document).ready(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php +} +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/password-forgot.php b/content/legacy/themes/Peafowl/views/account/password-forgot.php new file mode 100644 index 0000000..ea25d3b --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/password-forgot.php @@ -0,0 +1,73 @@ +<?php + +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\obfuscate; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-key"></i> <?php _se('Forgot password?'); ?></h1> + <?php + if (Handler::cond('process_done')) { + ?> + <div class="content-section"><?php _se("An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters."); ?></div> + <?php + } elseif (Login::isLoggedUser()) { + ?> + <?php if (Handler::cond('error')) { + ?> + <div class="content-section"><?php echo Handler::var('error'); ?></div> + <?php + } else { + ?> + <div class="content-section"><?php _se('A previous email has been sent with instructions to reset your password. If you did not receive the instructions try checking your junk or spam filters.'); ?></div> + <div class="content-section"><a href="<?php echo get_base_url('account/password-forgot'); ?>" class="btn btn-input accent"><?php _se('Resend instructions'); ?></a></div> + <?php + } + } else { + ?> + <div class="content-section"><?php _se('Enter your username or email address to continue. You may need to check your spam folder or whitelist %s', obfuscate(Settings::get('email_from_email'))); ?></div> + <form method="post" autocomplete="off" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div> + <input autofocus autocomplete="username" type="text" name="user-subject" id="form-user-subject" class="input" value="<?php echo Handler::var('safe_post')['user-subject'] ?? ''; ?>" placeholder="<?php _se('Username or Email address'); ?>" required> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['user-subject'] ?? ''; ?></div> + </div> + </fieldset> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + <div class="content-section"> + <button class="btn btn-input accent" type="submit"><i class="btn-icon fas fa-check-circle"></i><span class="btn-text"><?php _se('Submit'); ?></span></button> + </div> + </form> + <?php + } + ?> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php if (Handler::var('post') && Handler::cond('error')) { + ?> +<script> +$(document).ready(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/password-reset.php b/content/legacy/themes/Peafowl/views/account/password-reset.php new file mode 100644 index 0000000..e77432e --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/password-reset.php @@ -0,0 +1,63 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-key"></i> <?php _se('Reset password'); ?></h1> + <?php + if (Handler::cond('process_done')) { + ?> + <div class="content-section"><?php _se('Your password has been changed. You can now try logging in using your new password.'); ?></div> + <div class="content-section"><a href="<?php echo get_base_url('login'); ?>" class="btn btn-input accent"><?php _se('Login now'); ?></a></div> + <?php + } else { + ?> + <div data-message="new-password-confirm" class="red-warning<?php echo (Handler::var('input_errors')['new-password-confirm'] ?? '') ? '' : ' hidden-visibility'; ?>" data-text="<?php _se("Passwords don't match"); ?>"><?php _se("Passwords don't match"); ?></div> + <form class="content-section" method="post" autocomplete="off" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div class="input-password position-relative"> + <input name="new-password" tabindex="1" type="password" placeholder="<?php _se('Enter your new password'); ?>" class="input" pattern="<?php echo getSetting('user_password_pattern'); ?>" rel="tooltip" title="<?php _se('%d characters min', getSetting('user_password_min_length')); ?>" data-tipTip="right" required> + <div class="input-password-strength" rel="tooltip" title="<?php _se('Password strength'); ?>"><span style="width: 0%" data-content="password-meter-bar"></span></div> + </div> + <div class="input-password"> + <input name="new-password-confirm" tabindex="2" type="password" placeholder="<?php _se('Re-enter your new password'); ?>" class="input" required> + </div> + </fieldset> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + <div class="content-section"> + <button class="btn btn-input accent" type="submit"><i class="btn-icon fas fa-check-circle"></i><span class="btn-text"><?php _se('Submit'); ?></span></button> + </div> + </form> + <?php + } + ?> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php if (Handler::var('post') && Handler::cond('error')) { + ?> +<script> +$(document).ready(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/resend-activation.php b/content/legacy/themes/Peafowl/views/account/resend-activation.php new file mode 100644 index 0000000..7bbcd13 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/resend-activation.php @@ -0,0 +1,61 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\obfuscate; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-sync-alt"></i> <?php _se('Resend account activation'); ?></h1> + <?php + if (Handler::cond('process_done')) { + ?> + <div class="content-section"><?php _se("An email to %s has been sent with instructions to activate your account. If you don't receive the instructions try checking your junk or spam filters.", '<b>' . Handler::var('resend_activation_email') . '</b>'); ?></div> + <div class="content-section"><a href="<?php echo get_base_url('account/resend-activation'); ?>" class="btn btn-input accent"><?php _se('Resend activation'); ?></a></div> + <?php + } else { + ?> + <div class="content-section"><?php _se('Enter your username or email address to continue. You may need to check your spam folder or whitelist %s', obfuscate(Settings::get('email_from_email'))); ?></div> + <form class="content-section" method="post" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div> + <input autofocus autocomplete="username" type="text" name="user-subject" id="form-user-subject" class="input" value="<?php echo Handler::var('safe_post')['user-subject'] ?? ''; ?>" placeholder="<?php _se('Username or Email address'); ?>" required> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['user-subject'] ?? ''; ?></div> + </div> + </fieldset> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + <div class="content-section"> + <button class="btn btn-input accent" type="submit"><i class="btn-icon fas fa-check-circle"></i><span class="btn-text"><?php _se('Submit'); ?></span></button> + </div> + </form> + <?php + } + ?> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php if (Handler::var('post') && Handler::cond('error')) { + ?> +<script> +$(document).ready(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/account/two-factor.php b/content/legacy/themes/Peafowl/views/account/two-factor.php new file mode 100644 index 0000000..4da0815 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/account/two-factor.php @@ -0,0 +1,43 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <div data-modal="unable" class="hidden"> + <span class="modal-box-title"><i class="fas fa-question-circle"></i> <?php _se('Unable to authenticate?'); ?></span> + <p><?php _se('If you lost your authentication device you must contact the system administrator.'); ?></p> + </div> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-key"></i> <?php _se('Two-factor authentication'); ?></h1> + <div class="content-section"><?php _se('Enter the security code from your authenticator app.'); ?></div> + <form method="post" autocomplete="off" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div class="input-with-button"> + <input autofocus inputmode="numeric" pattern="\d*" autocomplete="one-time-code" type="number" name="user-two-factor" id="form-user-two-factor" class="input" value="" placeholder="<?php _se('Security code'); ?>" required> + <button type="submit" tabindex="3" class="cursor-pointer icon--input-submit fas fa-arrow-alt-circle-right"></button> + </div> + <div class="text-align-left red-warning margin-top-5"><?php echo Handler::var('input_errors')['user-two-factor'] ?? ''; ?></div> + <div class="input-label-below text-align-right margin-top-5"> + <a class="user-select-none" data-modal="simple" data-target="unable"><i class="fas fa-question-circle margin-right-5"></i><?php _se('Unable to authenticate?'); ?></a> + </div> + </fieldset> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + </form> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/album.php b/content/legacy/themes/Peafowl/views/album.php new file mode 100644 index 0000000..b495ca6 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/album.php @@ -0,0 +1,201 @@ +<?php + +use function Chevereto\Legacy\arr_printer; +use function Chevereto\Legacy\G\get_base_url; +use function Chevereto\Legacy\G\get_global; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\isShowEmbedContent; +use function Chevereto\Legacy\show_banner; +use function Chevereto\Legacy\time_elapsed_string; +use function Chevereto\Vars\request; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> + +<div class="content-width"> + <?php show_banner('album_before_header', Handler::var('listing')->sfw()); ?> + <div class="header header-content margin-bottom-10 margin-top-10"> + <div class="header-content-left"> + <div class="header-content-breadcrum"> + <?php + if (Handler::var('album')['user']['id']) { + include_theme_file("snippets/breadcrum_owner_card"); + } else { + ?> + <div class="breadcrum-item"> + <div class="user-image default-user-image"><span class="icon fas fa-user-circle"></span></div> + </div> + <?php + } + ?> + </div> + </div> + <div class="header-content-right breaks-ui"> + <?php + if (Handler::cond('owner') || Handler::cond('content_manager')) { + ?> + <a data-action="edit" title="E" class="btn btn-small default" data-modal="edit"><span class="icon fas fa-edit"></span><span class="phone-hide margin-left-5"><?php _se('Edit'); ?></span></a> + <a data-action="sub-album" title="J" class="btn btn-small default" data-modal="edit" data-target="new-sub-album"><span class="icon fas fa-level-down-alt"></span><span class="phone-hide margin-left-5"><?php _se('Sub album'); ?></span></a> + <?php + if (Handler::cond('allowed_to_delete_content')) { + ?> + <a data-action="delete" title="Del" class="btn btn-small default" data-confirm="<?php _se("Do you really want to delete this album and all of its images? This can't be undone."); ?>" data-submit-fn="CHV.fn.submit_resource_delete" data-ajax-deferred="CHV.fn.complete_resource_delete" data-ajax-url="<?php echo get_base_url("json"); ?>"><span class="icon fas fa-trash-alt"></span><span class="phone-hide margin-left-5"><?php _se('Delete'); ?></span></a> + <?php + } ?> + <?php + } + ?> + <?php + if (Handler::cond('owner')) { + if (getSetting('upload_gui') == 'js' && getSetting('homepage_style') !== 'route_upload') { + $createAlbumTag = 'button'; + $createAlbumAttr = 'data-trigger="anywhere-upload-input" data-action="upload-to-album" title="P"'; + } else { + $createAlbumTag = 'a'; + $createAlbumAttr = 'href="' . get_base_url(sprintf('upload/?toAlbum=%s', Handler::var('album')['id_encoded'])) . '"'; + } ?> + <<?php echo $createAlbumTag; ?> class="btn btn-small default" <?php echo $createAlbumAttr; ?>><span class="btn-icon fas fa-cloud-upload-alt"></span><span class="btn-text phone-hide"><?php _se('Upload to album'); ?></span></<?php echo $createAlbumTag; ?>> + <?php + } + ?> + <?php + if (getSetting('enable_likes')) { + ?> + <a title="L" class="btn-like" data-type="album" data-id="<?php echo Handler::var('album')['id_encoded']; ?>" data-liked="<?php echo (int) (Handler::var('album')['liked'] ?? '0'); ?>"> + <span data-action="like" class="btn btn-small default btn-liked" rel="tooltip" title="<?php _se("You like this"); ?>"><span class="btn-icon fas fa-heart"></span><span class="btn-text" data-text="likes-count"><?php echo Handler::var('album')['likes']; ?></span></span> + <span class="btn btn-small default btn-unliked"><span data-action="like" class="btn-icon far fa-heart"></span><span class="btn-text" data-text="likes-count"><?php echo Handler::var('album')['likes']; ?></span></span> + </a> + <?php + } + ?> + <?php + if (getSetting('theme_show_social_share')) { + ?> + <a class="btn btn-small default" data-action="share" title="S"><span class="btn-icon fas fa-share-alt"></span><span class="btn-text phone-hide"><?php _se('Share'); ?></span></a> + <?php + } + ?> + </div> + </div> + <div class="header margin-bottom-10"> + <h1 class="text-overflow-ellipsis"> + <a data-text="album-name" href="<?php echo Handler::var('album')["url"]; ?>"><?php echo Handler::var('album')["name_truncated_html"]; ?></a> + </h1> + <div class="header-content-right phone-margin-bottom-20"> + <div class="number-figures float-left"><?php echo Handler::var('album')['views']; ?> <span><?php echo Handler::var('album')['views_label']; ?></span></div> + </div> + </div> + <div class="description-meta margin-bottom-10"> + <span class="icon far fa-eye-slash <?php if (Handler::var('album')["privacy"] == "public") { + echo "soft-hidden"; + } ?>" data-content="privacy-private" title="<?php _se('This content is private'); ?>" rel="tooltip"></span> + <span class="far fa-images"></span> <span data-text="image-count"><?php echo Handler::var('album')["image_count"]; ?></span> <span data-text="image-label" data-label-single="<?php _ne('image', 'images', 1); ?>" data-label-plural="<?php _ne('image', 'images', 2); ?>"><?php _ne('image', 'images', Handler::var('album')['image_count']); ?></span> — <span class="far fa-clock"></span> <?php echo '<span title="' . Handler::var('album')['date_fixed_peer'] . '">' . time_elapsed_string(Handler::var('album')['date_gmt']) . '</span>'; ?> + </div> + <?php show_banner('album_after_header', Handler::var('listing')->sfw()); ?> + <div class="description-meta margin-bottom-10" data-text="album-description"><?php echo nl2br(trim(Handler::var('album_safe_html')['description'] ?? '')); ?></div> + +</div> + +<div class="top-sub-bar follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs no-select"> + <?php include_theme_file("snippets/tabs"); ?> + <?php + if (Handler::cond('owner') || Handler::cond('content_manager')) { + include_theme_file("snippets/user_items_editor"); ?> + <div class="header-content-right"> + <?php include_theme_file("snippets/listing_tools_editor"); ?> + </div> + <?php + } + ?> + </div> + </div> +</div> + +<div class="content-width"> + <div id="content-listing-tabs" class="tabbed-listing"> + <div id="tabbed-content-group"> + <?php + include_theme_file("snippets/listing"); + ?> + <?php if (isShowEmbedContent()) { + ?> + <div id="tab-embeds" class="tabbed-content padding-10"> + <div class="content-listing-loading"></div> + <div id="embed-codes" class="input-label margin-bottom-0 margin-top-0 soft-hidden"> + <label for="album-embed-toggle"><?php _se('Embed codes'); ?></label> + <div class="c7 margin-bottom-10"> + <select name="album-embed-toggle" id="album-embed-toggle" class="text-input" data-combo="album-embed-toggle-combo"> + <?php + foreach (get_global('embed_share_tpl') as $key => $value) { + echo '<optgroup label="' . $value['label'] . '">' . "\n"; + foreach ($value['options'] as $k => $v) { + echo ' <option value="' . $k . '" data-size="' . $v["size"] . '">' . $v["label"] . '</option>' . "\n"; + } + echo '</optgroup>'; + } ?> + </select> + </div> + <div id="album-embed-toggle-combo" class="position-relative"> + <?php + $i = 0; + foreach (get_global('embed_share_tpl') as $key => $value) { + foreach ($value['options'] as $k => $v) { + echo '<div data-combo-value="' . $k . '" class="switch-combo' . ($i > 0 ? " soft-hidden" : "") . '"> + <textarea id="album-embed-code-' . $i . '" class="r8 resize-vertical" name="' . $k . '" data-size="' . $v["size"] . '" data-focus="select-all"></textarea> + <button type="button" class="input-action" data-action="copy" data-action-target="#album-embed-code-' . $i . '"><i class="far fa-copy"></i> ' . _s('copy') . '</button> + </div>' . "\n"; + $i++; + } + } ?> + </div> + </div> + </div> + <?php + } ?> + <?php + if (Handler::cond('admin')) { + ?> + <div id="tab-info" class="tabbed-content padding-10<?php if (Handler::var('current_tab') === 'tab-info') { + echo ' visible'; + } ?>"> + <?php echo arr_printer(Handler::var('album_safe_html'), '<li><div class="c4 display-table-cell padding-right-10 font-weight-bold">%K</div> <div class="display-table-cell">%V</div></li>', ['<ul class="tabbed-content-list table-li">', '</ul>']); ?> + </div> + <?php + } + ?> + </div> + </div> +</div> + +<?php +if (Handler::cond('content_manager') || Handler::cond('owner')) { + ?> + <?php include_theme_file('snippets/modal_edit_album'); ?> + <?php include_theme_file('snippets/modal_create_sub_album'); ?> +<?php + } +?> +<?php if (Handler::cond('content_manager') and isset(request()["deleted"])) { ?> + <script> + $(function() { + PF.fn.growl.expirable("<?php _se('The content has been deleted.'); ?>"); + }); + </script> +<?php } ?> +<?php if (Handler::var('current_tab') === 'tab-embeds') { ?> + <script> + $(function () { + CHV.fn.album.showEmbedCodes(); + }) + </script> +<?php } ?> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/dashboard.php b/content/legacy/themes/Peafowl/views/dashboard.php new file mode 100644 index 0000000..b9eb828 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard.php @@ -0,0 +1,100 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +function read_the_docs_settings($key, $subject) +{ + return '<div class="growl static inline font-size-small">' . _s('Learn about %s at our %d.', [ + '%s' => '<i class="' . Handler::var('settings')['icon'] . '"></i> <b>' . $subject . '</b>', + '%d' => get_admin_docs_link('settings/' . $key . '.html', _s('documentation')), + ]) . '</div>'; +} +function get_admin_docs_link($key, $subject) +{ + return '<a rel="external" href="' . Handler::var('adminDocsBaseUrl') . $key . '" target="_blank">' . $subject . '</a>'; +} +function follow_sub_header(): bool +{ + return in_array(Handler::var('dashboard'), ['settings', 'images', 'albums', 'users']); +} ?> +<?php include_theme_header(); ?> +<div class="top-sub-bar top-sub-bar--1<?php if (!follow_sub_header()) { ?> follow-scroll<?php } ?> margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs no-select"> + <h1 class="header-title"> + <span class="phone-hide header-icon fas fa-tachometer-alt"></span> + <?php _se('Dashboard'); ?> + </h1> + <?php include_theme_file('snippets/tabs'); ?> + </div> + </div> +</div> +<?php if (follow_sub_header()) { ?> +<div class="top-sub-bar top-sub-bar--2 follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <?php + switch (Handler::var('dashboard')) { + case 'settings': + require 'dashboard/top-sub-bar/settings.php'; + + break; + case 'images': + case 'albums': + case 'users': + require 'dashboard/top-sub-bar/images-albums-users.php'; + + break; + } ?> + </div> +</div> +<?php } ?> +<div class="content-width"> + <div class="<?php echo Handler::cond('show_submit') ? 'form-content' : ''; ?>"> + <?php + switch (Handler::var('dashboard')) { + case 'stats': + require 'dashboard/stats.php'; + + break; + case 'bulk-importer': + require 'dashboard/bulk-importer.php'; + + break; + case 'images': + case 'albums': + case 'users': + require 'dashboard/images-albums-users.php'; + + break; + case 'settings': + require 'dashboard/settings.php'; + + break; + } +?> +</div> +</div> +<?php if (Handler::cond('changed')) { + ?> + <script> + $(function() { + PF.fn.growl.expirable("<?php echo Handler::var('changed_message') ?? _s('Changes have been saved.'); ?>"); + }); + </script> +<?php +} +if (Handler::cond('error')) { ?> + <script> + $(function() { + PF.fn.growl.call("<?php echo Handler::var('error_message') ?? _s('Check the errors to proceed.'); ?>"); + }); + </script> +<?php } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/dashboard/images-albums-users.php b/content/legacy/themes/Peafowl/views/dashboard/images-albums-users.php new file mode 100644 index 0000000..d659c16 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/images-albums-users.php @@ -0,0 +1,18 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +Handler::setVar('tabs', Handler::var('sub_tabs')); +?> +<div id="content-listing-tabs" class="tabbed-listing"> + <div id="tabbed-content-group"> + <?php + include_theme_file('snippets/listing'); + ?> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings.php b/content/legacy/themes/Peafowl/views/dashboard/settings.php new file mode 100644 index 0000000..0e3cb40 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings.php @@ -0,0 +1,31 @@ +<?php + +use function Chevereto\Legacy\G\get_input_auth_token; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +function personal_mode_warning() +{ + if (getSetting('website_mode') === 'personal') { + echo '<div class="input-below"><span class="icon fas fa-info-circle color-fail"></span> ' . _s('This setting is always disabled when using %s website mode.', _s('Single profile')) . '</div>'; + } +} +?> + <form id="dashboard-settings" method="post" data-type="<?php echo Handler::var('dashboard'); ?>" data-action="validate" enctype="multipart/form-data"> + <?php echo get_input_auth_token(); ?> + <?php + require sprintf('settings/%s.php', Handler::var('settings')['key']); + if (Handler::cond('show_submit')) { + ?> + <div class="btn-container btn-container--fixed"> + <div class="content-width text-align-center"> + <button class="btn btn-input accent" type="submit" title="Ctrl/Cmd + Enter"><span class="fa fa-check-circle btn-icon"></span><span class="btn-text"><?php _se('Save changes'); ?></span></button> + </div> + </div> +<?php + } ?> +</form> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/categories.php b/content/legacy/themes/Peafowl/views/dashboard/settings/categories.php new file mode 100644 index 0000000..2bbe257 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/categories.php @@ -0,0 +1,56 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\getSetting; +use function Safe\json_encode; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('categories', _s('Categories')); ?> +<?php if (!getSetting('website_explore_page')) { ?> + <div class="growl static"><?php _se("Categories won't work when the explorer feature is turned off. To revert this setting go to %s.", ['%s' => '<a href="' . get_base_url('dashboard/settings/website') . '">' . _s('Dashboard > Settings > Website') . '</a>']); ?></div> +<?php +} ?> +<script> + $(document).ready(function() { + CHV.obj.categories = <?php echo json_encode(Handler::var('categories')); ?>; + }); +</script> +<ul data-content="dashboard-categories-list" class="tabbed-content-list table-li-hover table-li margin-top-20 margin-bottom-20"> + <li class="table-li-header phone-hide"> + <span class="c5 display-table-cell padding-right-10"><?php _se('Name'); ?></span> + <span class="c4 display-table-cell padding-right-10 phone-hide phablet-hide"><?php _se('URL key'); ?></span> + <span class="c13 display-table-cell phone-hide"><?php _se('Description'); ?></span> + </li> + <?php + $li_template = '<li data-content="category" data-category-id="%ID%"> +<span class="c5 display-table-cell padding-right-10"><a data-modal="edit" data-target="form-modal" data-category-id="%ID%" data-content="category-name">%NAME%</a></span> +<span class="c4 display-table-cell padding-right-10 phone-hide phablet-hide" data-content="category-url_key">%URL_KEY%</span> +<span class="c13 display-table-cell padding-right-10 phone-display-block" data-content="category-description">%DESCRIPTION%</span> +<span class="display-table-cell"><a class="btn btn-small default" data-category-id="%ID%" data-args="%ID%" data-confirm="' . _s("Do you really want to delete the %s category? This can't be undone.") . '" data-submit-fn="CHV.fn.category.delete.submit" data-before-fn="CHV.fn.category.delete.before" data-ajax-deferred="CHV.fn.category.delete.complete"><i class="fas fa-trash-alt margin-right-5"></i>' . _s('Delete') . '</a></span> +</li>'; +if (Handler::var('categories')) { + foreach (Handler::var('categories') as $category) { + $replaces = []; + foreach ($category as $k => $v) { + $replaces['%' . strtoupper($k) . '%'] = $v; + } + echo strtr($li_template, $replaces); + } +} ?> +</ul> +<div class="hidden" data-content="category-dashboard-template"> + <?php echo $li_template; ?> +</div> +<p><i class="fas fa-info-circle"></i> <?php _se("Note: Deleting a category doesn't delete the images that belongs to that category."); ?></p> +<div data-modal="form-modal" class="hidden" data-submit-fn="CHV.fn.category.edit.submit" data-before-fn="CHV.fn.category.edit.before" data-ajax-deferred="CHV.fn.category.edit.complete" data-ajax-url="<?php echo get_base_url('json'); ?>"> + <span class="modal-box-title"><i class="fas fa-edit"></i> <?php _se('Edit category'); ?></span> + <div class="modal-form"> + <input type="hidden" name="form-category-id"> + <?php include_theme_file('snippets/form_category_edit'); ?> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/content.php b/content/legacy/themes/Peafowl/views/dashboard/settings/content.php new file mode 100644 index 0000000..d5cebd8 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/content.php @@ -0,0 +1,65 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\echoBadgePaid; +use function Chevereto\Legacy\echoInputDisabledPaid; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('content', _s('Content')); ?> +<div class="input-label"> + <label for="show_nsfw_in_listings"><?php _se('Show not safe content in listings'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="show_nsfw_in_listings" id="show_nsfw_in_listings" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('show_nsfw_in_listings')); ?> + </select></div> + <div class="input-below"><?php _se("Enable this if you want to show not safe content in listings. This setting doesn't affect administrators and can be overridden by user own settings."); ?></div> +</div> +<div class="input-label"> + <label for="theme_nsfw_blur"><?php _se('Blur NSFW content in listings'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_nsfw_blur" id="theme_nsfw_blur" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_nsfw_blur')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to apply a blur effect on the NSFW images in listings.'); ?></div> +</div> +<div class="input-label"> + <label for="show_nsfw_in_random_mode"><?php _se('Show not safe content in random mode'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="show_nsfw_in_random_mode" id="show_nsfw_in_random_mode" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Handler::var('safe_post') ? Handler::var('safe_post')['show_nsfw_in_random_mode'] : Settings::get('show_nsfw_in_random_mode')); ?> + </select></div> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_BANNERS']); ?><label for="show_banners_in_nsfw"><?php _se('Show banners in not safe content'); ?></label> + <div class="c5 phablet-c1"><select <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_BANNERS']); ?> type="text" name="show_banners_in_nsfw" id="show_banners_in_nsfw" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('show_banners_in_nsfw')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show banners in not safe content pages.'); ?></div> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?><label for="image_lock_nsfw_editing"><?php _se('Lock %s editing', _s('NSFW')); ?></label> + <div class="c5 phablet-c1"><select type="text" name="image_lock_nsfw_editing" id="image_lock_nsfw_editing" class="text-input" <?php if (getSetting('website_mode') == 'personal') { + echo ' disabled'; + } ?>> + <?php + echo get_select_options_html([ + 0 => _s('Disabled'), + 1 => _s('Enabled'), + ], Settings::get('image_lock_nsfw_editing')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this to prevent users from changing the NSFW flag. When enabled, only admin and managers will have this permission.'); ?></div> + <?php personal_mode_warning(); ?> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_STOPWORDS']); ?><label for="stop_words"><?php _se('Stop words'); ?></label> + <div class="c14 phablet-c1"><textarea <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_STOPWORDS']); ?> name="stop_words" id="stop_words" class="r4 resize-none" placeholder="<?php _se('One rule per line'); ?>"><?php echo Settings::get('stop_words'); ?></textarea></div> + <div class="input-below"><?php _se("Define words that won't be allowed for content."); ?></div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/email.php b/content/legacy/themes/Peafowl/views/dashboard/settings/email.php new file mode 100644 index 0000000..31f403f --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/email.php @@ -0,0 +1,88 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_select_options_html; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('email', _s('Email')); ?> +<div class="margin-top-20">💡 <?php _se( + "Don't forget to test %t at %s", + [ + '%t' => _s('email delivery'), + '%s' => '<a href="' . get_base_url('dashboard/settings/tools') . '" class="btn btn-small default"><i class="fas fa-tools"></i> ' . _s('Tools') . '</a>'] +); ?></div> +<div class="input-label"> + <label for="email_from_name"><?php _se('From name'); ?></label> + <div class="c9 phablet-c1"><input type="text" name="email_from_name" id="email_from_name" class="text-input" value="<?php echo Settings::get('email_from_name'); ?>" required></div> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['email_from_name'] ?? ''; ?></div> + <div class="input-below"><?php _se('Sender name for emails sent to users.'); ?></div> +</div> +<div class="input-label"> + <label for="email_from_email"><?php _se('From email address'); ?></label> + <div class="c9 phablet-c1"><input type="email" name="email_from_email" id="email_from_email" class="text-input" value="<?php echo Settings::get('email_from_email'); ?>" required></div> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['email_from_email'] ?? ''; ?></div> + <div class="input-below"><?php _se('Sender email for emails sent to users.'); ?></div> +</div> +<div class="input-label"> + <label for="email_incoming_email"><?php _se('Incoming email address'); ?></label> + <div class="c9 phablet-c1"><input type="email" name="email_incoming_email" id="email_incoming_email" class="text-input" value="<?php echo Settings::get('email_incoming_email'); ?>" required></div> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['email_incoming_email'] ?? ''; ?></div> + <div class="input-below"><?php _se('Recipient for contact form and system alerts.'); ?></div> +</div> +<div class="input-label"> + <label for="email_mode"><?php _se('Email mode'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="email_mode" id="email_mode" class="text-input" data-combo="mail-combo"> + <?php + echo get_select_options_html(['smtp' => 'SMTP', 'mail' => 'PHP mail() func.'], Handler::var('safe_post') ? Handler::var('safe_post')['email_mode'] : Settings::get('email_mode')); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['email_mode'] ?? ''; ?></div> + <div class="input-below"><?php _se('How to send emails? SMTP recommended.'); ?></div> +</div> +<div id="mail-combo"> + <?php + if (isset($GLOBALS['SMTPDebug'])) { + echo '<p class="highlight">' . nl2br($GLOBALS['SMTPDebug'] ?? '') . '</p>'; + } ?> + <div data-combo-value="smtp" class="switch-combo c9 phablet-c1<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['email_mode'] : Settings::get('email_mode')) !== 'smtp') { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="email_smtp_server"><?php _se('SMTP server and port'); ?></label> + <div class="overflow-auto"> + <div class="c7 float-left"> + <input type="text" name="email_smtp_server" id="email_smtp_server" class="text-input" value="<?php echo Handler::var('safe_post')['email_smtp_server'] ?? Settings::get('email_smtp_server'); ?>" placeholder="<?php _se('SMTP server'); ?>"> + </div> + <div class="c2 float-left margin-left-10"> + <select type="text" name="email_smtp_server_port" id="email_smtp_server_port" class="text-input"> + <?php + echo get_select_options_html([25 => 25, 80 => 80, 465 => 465, 587 => 587], Handler::var('safe_post') ? Handler::var('safe_post')['email_smtp_server_port'] : Settings::get('email_smtp_server_port')); ?> + </select> + </div> + </div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['email_smtp_server'] ?? ''; ?></div> + </div> + <div class="input-label"> + <label for="email_smtp_server_username"><?php _se('SMTP username'); ?></label> + <input type="text" name="email_smtp_server_username" id="email_smtp_server_username" class="text-input" value="<?php echo Handler::var('safe_post')['email_smtp_server_username'] ?? Settings::get('email_smtp_server_username'); ?>"> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['email_smtp_server_username'] ?? ''; ?></div> + </div> + <div class="input-label"> + <label for="email_smtp_server_password"><?php _se('SMTP password'); ?></label> + <input type="password" name="email_smtp_server_password" id="email_smtp_server_password" class="text-input" value="<?php echo Handler::var('safe_post')['email_smtp_server_password'] ?? Settings::get('email_smtp_server_password'); ?>"> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['email_smtp_server_password'] ?? ''; ?></div> + </div> + <div class="input-label c5"> + <label for="email_smtp_server_security"><?php _se('SMTP security'); ?></label> + <select type="text" name="email_smtp_server_security" id="email_smtp_server_security" class="text-input"> + <?php + echo get_select_options_html(['tls' => 'TLS', 'ssl' => 'SSL', 'unsecured' => _s('Unsecured')], Handler::var('safe_post') ? Handler::var('safe_post')['email_smtp_server_security'] : Settings::get('email_smtp_server_security')); ?> + </select> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['email_smtp_server_security'] ?? ''; ?></div> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php b/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php new file mode 100644 index 0000000..7d8d965 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php @@ -0,0 +1,142 @@ +<?php + +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\get_select_options_html; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('homepage', _s('Homepage')); ?> +<div class="input-label"> + <label for="homepage_style"><?php _se('Style'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="homepage_style" id="homepage_style" class="text-input" data-combo="home-style-combo"> + <?php + echo get_select_options_html([ + 'landing' => _s('Landing page'), + 'split' => _s('Split landing + images'), + 'route_explore' => _s('Route %s', _s('explore')), + 'route_upload' => _s('Route %s', _s('upload')), + ], Settings::get('homepage_style')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['homepage_style'] ?? ''; ?></div> + <div class="input-below"><?php _se('Select the homepage style. To customize it further edit app/themes/%s/views/index.php', Settings::get('theme')); ?></div> +</div> +<div id="home-style-combo"> + <div data-combo-value="landing split" class="switch-combo<?php if (!in_array((Handler::var('safe_post') ? Handler::var('safe_post')['homepage_style'] : Settings::get('homepage_style')), ['split', 'landing'])) { + echo ' soft-hidden'; + } ?>"> + <?php + foreach (Settings::get('homepage_cover_images') ?? [] as $k => $v) { + $cover_index = $k + 1; + $cover_label = 'homepage_cover_image_' . $k; + $coverName = _s('Cover image') . ' (' . $cover_index . ')'; ?> + <div class="input-label"> + <label for="<?php echo $cover_label; ?>"><?php echo $coverName; ?></label> + <div class="transparent-canvas dark margin-bottom-10" style="max-width: 200px;"><img class="display-block" width="100%" src="<?php echo $v['url']; ?>"></div> + <?php if (count(Settings::get('homepage_cover_images')) > 1) { + ?> + <div class="margin-top-10 margin-bottom-10"> + <a class="btn btn-small default" data-confirm="<?php _se("Do you really want to delete this image? This can't be undone."); ?>" href="<?php echo get_base_url('dashboard/settings/homepage?action=delete-cover&cover=' . $cover_index); ?>"><i class="fas fa-trash-alt margin-right-5"></i><?php _se('Delete %s', $coverName); ?></a> + </div> + <?php + } ?> + <div class="c5 phablet-c1"> + <input id="<?php echo $cover_label; ?>" name="<?php echo $cover_label; ?>" type="file" accept="image/*"> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['homepage_cover_image_' . $k] ?? ''; ?></div> + </div> + <?php + } ?> + <div class="input-label"> + <label for="homepage_cover_image_add"><?php _se('Add new cover image'); ?></label> + <div class="c5 phablet-c1"> + <input id="homepage_cover_image_add" name="homepage_cover_image_add" type="file" accept="image/*"> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['homepage_cover_image_add'] ?? ''; ?></div> + </div> + <hr class="line-separator"> + <div class="input-label"> + <label for="homepage_title_html"><?php _se('Title'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="homepage_title_html" id="homepage_title_html" class="text-input r2 resize-vertical" placeholder="<?php echo safe_html(_s('This will be added inside the homepage %s tag. Leave it blank to use the default contents.', '<h1>')); ?>"><?php echo Settings::get('homepage_title_html'); ?></textarea></div> + </div> + <div class="input-label"> + <label for="homepage_paragraph_html"><?php _se('Paragraph'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="homepage_paragraph_html" id="homepage_paragraph_html" class="text-input r2 resize-vertical" placeholder="<?php echo safe_html(_s('This will be added inside the homepage %s tag. Leave it blank to use the default contents.', '<p>')); ?>"><?php echo Settings::get('homepage_paragraph_html'); ?></textarea></div> + </div> + <hr class="line-separator"> + <div class="input-label"> + <label for="homepage_cta_color"><?php _se('Call to action button color'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="homepage_cta_color" id="homepage_cta_color" class="text-input"> + <?php + echo get_select_options_html( + [ + 'blue' => _s('Blue'), + 'green' => _s('Green'), + 'orange' => _s('Orange'), + 'red' => _s('Red'), + 'grey' => _s('Grey'), + 'black' => _s('Black'), + 'white' => _s('White'), + 'default' => _s('Default'), + ], + Handler::var('safe_post') + ? Handler::var('safe_post')['homepage_cta_color'] + : Settings::get('homepage_cta_color') + ); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['homepage_cta_color'] ?? ''; ?></div> + <div class="input-below"><?php _se('Color of the homepage call to action button.'); ?></div> + </div> + <div class="input-label"> + <label for="homepage_cta_outline"><?php _se('Call to action outline style button'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="homepage_cta_outline" id="homepage_cta_outline" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('homepage_cta_outline')); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['homepage_cta_outline'] ?? ''; ?></div> + <div class="input-below"><?php _se('Enable this to use outline style for the homepage call to action button.'); ?></div> + </div> + <div class="input-label"> + <label for="homepage_cta_fn"><?php _se('Call to action functionality'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="homepage_cta_fn" id="homepage_cta_fn" class="text-input" data-combo="cta-fn-combo"> + <?php + echo get_select_options_html([ + 'cta-upload' => _s('Trigger uploader'), + 'cta-link' => _s('Open URL'), + ], Settings::get('homepage_cta_fn')); ?> + </select></div> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['homepage_cta_fn'] ?? ''; ?></div> + </div> + <div id="cta-fn-combo"> + <div data-combo-value="cta-link" class="switch-combo<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['homepage_cta_fn'] : Settings::get('homepage_cta_fn')) !== 'cta-link') { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="homepage_cta_fn_extra"><?php _se('Call to action URL'); ?></label> + <div class="c9 phablet-c1"><input type="text" name="homepage_cta_fn_extra" id="homepage_cta_fn_extra" class="text-input" value="<?php echo Settings::get('homepage_cta_fn_extra'); ?>" placeholder="<?php _se('Enter an absolute or relative URL'); ?>" <?php echo ((Handler::var('safe_post') ? Handler::var('safe_post')['homepage_cta_fn'] : Settings::get('homepage_cta_fn')) !== 'cta-link') ? 'data-required' : 'required'; ?>></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['homepage_cta_fn_extra'] ?? ''; ?></div> + <div class="input-below"><?php _se('A relative URL like %r will be mapped to %l', ['%r' => 'page/welcome', '%l' => get_base_url('page/welcome')]); ?></div> + </div> + </div> + </div> + <div class="input-label"> + <label for="homepage_cta_html"><?php _se('Call to action HTML'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="homepage_cta_html" id="homepage_cta_html" class="text-input r2 resize-vertical" placeholder="<?php echo safe_html(_s('This will be added inside the call to action <a> tag. Leave it blank to use the default contents.')); ?>"><?php echo Settings::get('homepage_cta_html'); ?></textarea></div> + </div> + </div> + <div data-combo-value="split" class="switch-combo<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['homepage_style'] : Settings::get('homepage_style')) !== 'split') { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="homepage_uids"><?php _se('User IDs'); ?></label> + <div class="c4"><input type="text" name="homepage_uids" id="homepage_uids" class="text-input" value="<?php echo Settings::get('homepage_uids'); ?>" placeholder="<?php _se('Empty'); ?>" rel="tooltip" title="<?php _se('Your user id is: %s', Login::getUser()['id']); ?>" data-tipTip="right"></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['homepage_uids'] ?? ''; ?></div> + <div class="input-below"><?php _se('Comma-separated list of target user IDs (integers) to show most recent images on homepage. Leave it empty to display trending images.'); ?></div> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/image-upload.php b/content/legacy/themes/Peafowl/views/dashboard/settings/image-upload.php new file mode 100644 index 0000000..5c960db --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/image-upload.php @@ -0,0 +1,245 @@ +<?php + +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\Classes\Upload; +use function Chevereto\Legacy\echoBadgePaid; +use function Chevereto\Legacy\G\bytes_to_mb; +use function Chevereto\Legacy\G\format_bytes; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('image-upload', _s('Image upload')); ?> +<div class="input-label"> + <label><?php _se('Enabled image formats'); ?></label> + <div class="checkbox-label"> + <ul class="c20 phablet-c1"> + <?php + foreach (Upload::getAvailableImageFormats() as $k) { + $isFailing = in_array($k, IMAGE_FORMATS_FAILING); + echo strtr('<li class="c5 display-inline-block margin-right-10"><label class="display-block" for="image_format_enable[%k]" %tip> <input type="checkbox" name="image_format_enable[]" id="image_format_enable[%k]" value="%k" %checked %disabled>%K</label></li>', [ + '%k' => $k, + '%K' => strtoupper($k), + '%checked' => (in_array($k, Upload::getEnabledImageFormats()) ? 'checked' : ''), + '%disabled' => $isFailing ? 'disabled' : '', + '%tip' => $isFailing ? 'title="' . _s('Unsupported in your server') . '" rel="tooltip"' : '' ]); + } ?> + </ul> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_enabled_image_formats'] ?? ''; ?></div> + <p class="margin-top-20"><i class="fas fa-check-square"></i> <?php _se("Only checked image formats will be allowed to be uploaded."); ?></p> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="enable_uploads"><?php _se('Enable uploads'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_uploads" id="enable_uploads" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_uploads')); ?> + </select></div> + <div class="input-below"><?php _se("Enable this if you want to allow image uploads. This setting doesn't affect administrators."); ?></div> +</div> +<div class="input-label"> + <label for="enable_uploads_url"><?php _se('Enable uploads'); ?> (URL)</label> + <div class="c5 phablet-c1"> + <select type="text" name="enable_uploads_url" id="enable_uploads_url" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_uploads_url')); ?> + </select></div> + <div class="input-below"><?php _se("Enable this if you want to allow image upload from URLs."); ?></div> + <div class="input-below"><span class="highlight padding-5 display-inline-block"><i class="fas fa-exclamation-triangle"></i> <?php _se("Note that enabling this will expose your server IP."); ?> <?php _se("This feature is available only for administrators."); ?></span></div> +</div> +<div class="input-label"> + <label for="upload_gui"><?php _se('Upload user interface'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="upload_gui" id="upload_gui" class="text-input"> + <?php + echo get_select_options_html(['js' => _s('On-page container'), 'page' => '/upload ' . _s('route')], Settings::get('upload_gui')); ?> + </select></div> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?><label for="guest_uploads"><?php _se('Guest uploads'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="guest_uploads" id="guest_uploads" class="text-input" <?php if (getSetting('website_mode') == 'personal') { + echo ' disabled'; + } ?>> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('guest_uploads')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to allow non registered users to upload.'); ?></div> + <?php personal_mode_warning(); ?> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_MODERATION']); ?><label for="moderate_uploads"><?php _se('Moderate uploads'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="moderate_uploads" id="moderate_uploads" class="text-input" <?php if (getSetting('website_mode') == 'personal') { + echo ' disabled'; + } ?>> + <?php + echo get_select_options_html([ + '' => _s('Disabled'), + 'guest' => _s('Guest'), + 'all' => _s('All') + ], Settings::get('moderate_uploads')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this to moderate incoming uploads. Target content will require moderation for approval.'); ?></div> + <?php personal_mode_warning(); ?> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="theme_show_embed_uploader"><?php _se('Enable embed codes (uploader)'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_show_embed_uploader" id="theme_show_embed_uploader" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_show_embed_uploader')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show embed codes when upload gets completed.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="upload_threads"><?php _se('Upload threads'); ?></label> + <div class="c2"><input type="number" min="1" pattern="\d+" name="upload_threads" id="upload_threads" class="text-input" value="<?php echo Settings::get('upload_threads'); ?>" placeholder="2" required></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_threads'] ?? ''; ?></div> + <div class="input-below"><?php _se('Number of simultaneous upload threads (parallel uploads)'); ?></div> +</div> +<div class="input-label"> + <label for="enable_redirect_single_upload"><?php _se('Redirect on single upload'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_redirect_single_upload" id="enable_redirect_single_upload" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_redirect_single_upload')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to redirect to image page on single upload.'); ?></div> +</div> +<div class="input-label"> + <label for="enable_duplicate_uploads"><?php _se('Enable duplicate uploads'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_duplicate_uploads" id="enable_duplicate_uploads" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_duplicate_uploads')); ?> + </select></div> + <div class="input-below"><?php _se("Enable this if you want to allow duplicate uploads from the same IP within 24hrs. This setting doesn't affect administrators."); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="enable_expirable_uploads"><?php _se('Enable expirable uploads'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_expirable_uploads" id="enable_expirable_uploads" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_expirable_uploads')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to allow uploads with an automatic delete option.'); ?></div> +</div> +<div class="input-label"> + <label for="auto_delete_guest_uploads"><?php _se('Auto delete guest uploads'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="auto_delete_guest_uploads" id="auto_delete_guest_uploads" class="text-input"> + <?php + echo get_select_options_html(Image::getAvailableExpirations(), Settings::get('auto_delete_guest_uploads')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['auto_delete_guest_uploads'] ?? ''; ?></div> + <div class="input-below"><?php _se('Enable this if you want to force guest uploads to be auto deleted after certain time.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="upload_max_image_width" class="display-block-forced"><?php _se('Maximum image size'); ?></label> + <div class="c5 overflow-auto clear-both"> + <div class="c2 float-left"> + <input type="number" min="0" pattern="\d+" name="upload_max_image_width" id="upload_max_image_width" class="text-input" value="<?php echo Handler::var('safe_post')['upload_max_image_width'] ?? Settings::get('upload_max_image_width'); ?>" placeholder="<?php echo Settings::getDefault('upload_max_image_width'); ?>" rel="tooltip" data-tiptip="top" title="<?php _se('Width'); ?>" required> + </div> + <div class="c2 float-left margin-left-10"> + <input type="number" min="0" pattern="\d+" name="upload_max_image_height" id="upload_max_image_height" class="text-input" value="<?php echo Handler::var('safe_post')['upload_max_image_height'] ?? Settings::get('upload_max_image_height'); ?>" placeholder="<?php echo Settings::getDefault('upload_max_image_height'); ?>" rel="tooltip" data-tiptip="top" title="<?php _se('Height'); ?>" required> + </div> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_max_image_width'] ?? ''; ?></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_max_image_height'] ?? ''; ?></div> + <div class="input-below"><?php _se("Images greater than this size will get automatically downsized. Use zero (0) to don't set a limit."); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="upload_image_exif"><?php _se('Image Exif data'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="upload_image_exif" id="upload_image_exif" class="text-input"> + <?php + echo get_select_options_html([ + 1 => _s('Keep'), + 0 => _s('Remove'), + ], Settings::get('upload_image_exif')); ?> + </select></div> + <div class="input-below"><?php _se('Select the default setting for image <a %s>Exif data</a> on upload.', 'rel="external" href="https://en.wikipedia.org/wiki/Exchangeable_image_file_format" target="_blank"'); ?></div> +</div> +<div class="input-label"> + <label for="upload_image_exif_user_setting"><?php _se('Image Exif data (user setting)'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="upload_image_exif_user_setting" id="upload_image_exif_user_setting" class="text-input"> + <?php + echo get_select_options_html([ + 1 => _s('Enabled'), + 0 => _s('Disabled'), + ], Settings::get('upload_image_exif_user_setting')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to allow each user to configure how image Exif data will be handled.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="upload_max_filesize_mb"><?php _se('Maximum upload file size'); ?> [MB]</label> + <div class="c2"><input type="number" min="0.1" step="0.1" max="<?php echo bytes_to_mb(Settings::get('true_upload_max_filesize')); ?>" pattern="\d+" name="upload_max_filesize_mb" id="upload_max_filesize_mb" class="text-input" value="<?php echo Handler::var('safe_post')['upload_max_filesize_mb'] ?? Settings::get('upload_max_filesize_mb'); ?>" placeholder="MB" required></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_max_filesize_mb'] ?? ''; ?></div> + <div class="input-below"><?php _se('Maximum size allowed by server is %s. This limit is capped by %u and %p (%f values).', ['%s' => format_bytes(Settings::get('true_upload_max_filesize')), '%u' => '<code>upload_max_filesize = ' . ini_get('upload_max_filesize') . '</code>', '%p' => '<code>post_max_size = ' . ini_get('post_max_size') . '</code>', '%f' => 'php.ini']); ?></div> +</div> +<div class="input-label"> + <label for="upload_max_filesize_mb_guest"><?php _se('Maximum upload file size'); ?> (<?php _se('guests'); ?>)</label> + <div class="c2"><input type="number" min="0.1" step="0.1" max="<?php echo bytes_to_mb(Settings::get('true_upload_max_filesize')); ?>" pattern="\d+" name="upload_max_filesize_mb_guest" id="upload_max_filesize_mb_guest" class="text-input" value="<?php echo Handler::var('safe_post')['upload_max_filesize_mb_guest'] ?? Settings::get('upload_max_filesize_mb_guest'); ?>" placeholder="MB" required></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_max_filesize_mb_guest'] ?? ''; ?></div> + <div class="input-below"><?php _se('Same as "%s" but for guests.', _s('Maximum upload file size')); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="upload_image_path"><?php _se('Image path'); ?></label> + <div class="c9 phablet-c1"><input type="text" name="upload_image_path" id="upload_image_path" class="text-input" value="<?php echo Handler::var('safe_post')['upload_image_path'] ?? Settings::get('upload_image_path'); ?>" placeholder="<?php _se('Relative to Chevereto root'); ?>" required></div> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')['upload_image_path'] ?? ''; ?></span> + <div class="input-below"><?php _se('Where to store the images? Relative to Chevereto root.'); ?></div> +</div> +<div class="input-label"> + <label for="upload_storage_mode"><?php _se('Storage mode'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="upload_storage_mode" id="upload_storage_mode" class="text-input"> + <?php + echo get_select_options_html(['datefolder' => _s('Datefolders'), 'direct' => _s('Direct')], Settings::get('upload_storage_mode')); ?> + </select></div> + <div class="input-below"><?php _se('Datefolders creates %s structure', date('/Y/m/d/')); ?></div> +</div> +<div class="input-label"> + <label for="upload_filenaming"><?php _se('File naming method'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="upload_filenaming" id="upload_filenaming" class="text-input"> + <?php + echo get_select_options_html(['original' => _s('Original'), 'random' => _s('Random'), 'mixed' => _s('Mix original + random'), 'id' => 'ID'], Settings::get('upload_filenaming')); ?> + </select></div> + <div class="input-below"><?php _se('"Original" will try to keep the image source name while "Random" will generate a random name. "ID" will name the image just like the image ID.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="upload_thumb_width" class="display-block-forced"><?php _se('Thumb size'); ?></label> + <div class="c5 overflow-auto clear-both"> + <div class="c2 float-left"> + <input type="number" min="16" pattern="\d+" name="upload_thumb_width" id="upload_thumb_width" class="text-input" value="<?php echo Handler::var('safe_post')['upload_thumb_width'] ?? Settings::get('upload_thumb_width'); ?>" placeholder="<?php echo Settings::getDefault('upload_thumb_width'); ?>" rel="tooltip" data-tiptip="top" title="<?php _se('Width'); ?>" required> + </div> + <div class="c2 float-left margin-left-10"> + <input type="number" min="16" pattern="\d+" name="upload_thumb_height" id="upload_thumb_height" class="text-input" value="<?php echo Handler::var('safe_post')['upload_thumb_height'] ?? Settings::get('upload_thumb_height'); ?>" placeholder="<?php echo Settings::getDefault('upload_thumb_height'); ?>" rel="tooltip" data-tiptip="top" title="<?php _se('Height'); ?>" required> + </div> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_thumb_width'] ?? ''; ?></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_thumb_height'] ?? ''; ?></div> + <div class="input-below"><?php _se('Thumbnails will be fixed to this size.'); ?></div> +</div> +<div class="input-label"> + <label for="upload_medium_fixed_dimension"><?php _se('Medium image fixed dimension'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="upload_medium_fixed_dimension" id="upload_medium_fixed_dimension" class="text-input"> + <?php + echo get_select_options_html(['width' => _s('Width'), 'height' => _s('Height')], Settings::get('upload_medium_fixed_dimension')); ?> + </select></div> + <div class="input-below"><?php _se('Medium sized images will be fixed to this dimension. For example, if you select "width" that dimension will be fixed and image height will be automatically calculated.'); ?></div> +</div> +<div class="input-label"> + <label for="upload_medium_size"><?php _se('Medium image fixed size'); ?></label> + <div class="c2"> + <input type="number" min="16" pattern="\d+" name="upload_medium_size" id="upload_medium_size" class="text-input" value="<?php echo Handler::var('safe_post')['upload_medium_size'] ?? Settings::get('upload_medium_size'); ?>" placeholder="<?php echo Settings::getDefault('upload_medium_size'); ?>" required> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['upload_medium_size'] ?? ''; ?></div> + <div class="input-below"><?php _se('Width or height will be automatically calculated.'); ?></div> +</div> +<hr class="line-separator"> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/languages.php b/content/legacy/themes/Peafowl/views/dashboard/settings/languages.php new file mode 100644 index 0000000..c75ddaa --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/languages.php @@ -0,0 +1,64 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\echoBadgePaid; +use function Chevereto\Legacy\echoInputDisabledPaid; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_available_languages; +use function Chevereto\Legacy\get_enabled_languages; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('languages', _s('Languages')); ?> +<div class="input-label"> + <label for="default_language"><?php _se('Default language'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="default_language" id="default_language" class="text-input"> + <?php + foreach (get_available_languages() as $k => $v) { + $selected_lang = $k == Settings::get('default_language') ? ' selected' : ''; + echo '<option value="' . $k . '"' . $selected_lang . '>' . $v['name'] . '</option>' . "\n"; + } ?> + </select></div> + <div class="input-below"><?php _se('Default base language to use.'); ?></div> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_LANGUAGE_CHOOSER']); ?><label for="auto_language"><?php _se('Auto language'); ?></label> + <div class="c5 phablet-c1"><select <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_LANGUAGE_CHOOSER']); ?> type="text" name="auto_language" id="auto_language" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('auto_language')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to automatically detect and set the right language for each user.'); ?></div> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_LANGUAGE_CHOOSER']); ?><label for="language_chooser_enable"><?php _se('Language chooser'); ?></label> + <div class="c5 phablet-c1"><select <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_LANGUAGE_CHOOSER']); ?> type="text" name="language_chooser_enable" id="language_chooser_enable" class="text-input" data-combo="language-enable-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('language_chooser_enable')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to allow language selection.'); ?></div> +</div> +<?php if (count(get_available_languages()) > 0 && (bool) env()['CHEVERETO_ENABLE_LANGUAGE_CHOOSER']) { + ?> +<div id="language-enable-combo"> + <div data-combo-value="1" class="switch-combo<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['language_chooser_enable'] == 0 : !Settings::get('language_chooser_enable'))) { + echo ' soft-hidden'; + } ?>"> + <div class="checkbox-label"> + <h4 class="input-label-label"><?php _se('Enabled languages'); ?></h4> + <ul class="c20 phablet-c1"> + <?php + foreach (get_available_languages() as $k => $v) { + $lang_flag = array_key_exists($k, get_enabled_languages()) ? ' checked' : null; + echo '<li class="c5 phone-c1 display-inline-block"><label class="display-block" for="languages_enable[' . $k . ']"> <input type="checkbox" name="languages_enable[]" id="languages_enable[' . $k . ']" value="' . $k . '"' . $lang_flag . '>' . $v['name'] . '</label></li>'; + } ?> + </ul> + <p class="margin-top-20"><i class="fas fa-check-square"></i> <?php _se("Only checked languages will be used in your website."); ?></p> + </div> + </div> +</div> +<?php + } ?> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/listings.php b/content/legacy/themes/Peafowl/views/dashboard/settings/listings.php new file mode 100644 index 0000000..9b95b8b --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/listings.php @@ -0,0 +1,82 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_select_options_html; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('listings', _s('Listings')); ?> +<div class="input-label"> + <label for="listing_items_per_page"><?php _se('List items per page'); ?></label> + <div class="c2"><input type="number" min="1" name="listing_items_per_page" id="listing_items_per_page" class="text-input" value="<?php echo Settings::get('listing_items_per_page'); ?>" placeholder="<?php echo Settings::getDefault('listing_items_per_page'); ?>" required></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['listing_items_per_page'] ?? ''; ?></div> + <div class="input-below"><?php _se('How many items should be displayed per page listing.'); ?></div> +</div> +<div class="input-label"> + <label for="listing_pagination_mode"><?php _se('List pagination mode'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="listing_pagination_mode" id="listing_pagination_mode" class="text-input"> + <?php + echo get_select_options_html(['endless' => _s('Endless scrolling'), 'classic' => _s('Classic pagination')], Settings::get('listing_pagination_mode')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['listing_pagination_mode'] ?? ''; ?></div> + <div class="input-below"><?php _se('What pagination method should be used.'); ?></div> +</div> +<div class="input-label"> + <label for="listing_viewer"><?php _se('Listing viewer'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="listing_viewer" id="listing_viewer" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Handler::var('safe_post') ? Handler::var('safe_post')['listing_viewer'] : Settings::get('listing_viewer')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['listing_viewer'] ?? ''; ?></div> + <div class="input-below"><?php _se('Enable this to use the listing viewer when clicking on an image.'); ?></div> +</div> +<div class="input-label"> + <label for="theme_image_listing_sizing"><?php _se('Image listing size'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_image_listing_sizing" id="theme_image_listing_sizing" class="text-input"> + <?php + echo get_select_options_html( + ['fluid' => _s('Fluid'), 'fixed' => _s('Fixed')], + Handler::var('safe_post') + ? Handler::var('safe_post')['theme_image_listing_sizing'] + : Settings::get('theme_image_listing_sizing') +); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['theme_image_listing_sizing'] ?? ''; ?></div> + <div class="input-below"><?php _se('Both methods use a fixed width but fluid method uses automatic heights.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="explore_albums_min_image_count"><?php _se('Album listing images requirement'); ?> (<?php echo _se('explore'); ?>)</label> + <div class="c2"><input type="number" min="1" name="explore_albums_min_image_count" id="explore_albums_min_image_count" class="text-input" value="<?php echo Settings::get('explore_albums_min_image_count'); ?>" placeholder="<?php echo Settings::getDefault('explore_albums_min_image_count'); ?>" required></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['explore_albums_min_image_count'] ?? ''; ?></div> + <div class="input-below"><?php _se('Sets the minimum image count needed to show albums in explore.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label><?php _se('Listing columns number'); ?></label> + <div class="input-below"><?php _se('Here you can set how many columns are used based on each target device.'); ?></div> + <div class="overflow-auto margin-bottom-10 margin-top-10"> + <label for="listing_columns_phone" class="c2 float-left input-line-height"><?php _se('Phone'); ?></label> + <input type="number" name="listing_columns_phone" id="listing_columns_phone" class="text-input c2" value="<?php echo Settings::get('listing_columns_phone'); ?>" placeholder="<?php echo Settings::getDefault('listing_columns_phone'); ?>" pattern="\d*" min="1" max="7" required> + </div> + <div class="overflow-auto margin-bottom-10"> + <label for="listing_columns_phablet" class="c2 float-left input-line-height"><?php _se('Phablet'); ?></label> + <input type="number" name="listing_columns_phablet" id="listing_columns_phablet" class="text-input c2" value="<?php echo Settings::get('listing_columns_phablet'); ?>" placeholder="<?php echo Settings::getDefault('listing_columns_phablet'); ?>" pattern="\d*" min="1" max="8" required> + </div> + <div class="overflow-auto margin-bottom-10"> + <label for="listing_columns_tablet" class="c2 float-left input-line-height"><?php _se('Tablet'); ?></label> + <input type="number" name="listing_columns_tablet" id="listing_columns_tablet" class="text-input c2" value="<?php echo Settings::get('listing_columns_tablet'); ?>" placeholder="<?php echo Settings::getDefault('listing_columns_tablet'); ?>" pattern="\d*" min="1" max="8" required> + </div> + <div class="overflow-auto margin-bottom-10"> + <label for="listing_columns_laptop" class="c2 float-left input-line-height"><?php _se('Laptop'); ?></label> + <input type="number" name="listing_columns_laptop" id="listing_columns_laptop" class="text-input c2" value="<?php echo Settings::get('listing_columns_laptop'); ?>" placeholder="<?php echo Settings::getDefault('listing_columns_laptop'); ?>" pattern="\d*" min="1" max="8" required> + </div> + <div class="overflow-auto margin-bottom-10"> + <label for="listing_columns_desktop" class="c2 float-left input-line-height"><?php _se('Desktop'); ?></label> + <input type="number" name="listing_columns_desktop" id="listing_columns_desktop" class="text-input c2" value="<?php echo Settings::get('listing_columns_desktop'); ?>" placeholder="<?php echo Settings::getDefault('listing_columns_desktop'); ?>" pattern="\d*" min="1" max="8" required> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['listing_columns'] ?? ''; ?></div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/logo.php b/content/legacy/themes/Peafowl/views/dashboard/settings/logo.php new file mode 100644 index 0000000..29654cc --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/logo.php @@ -0,0 +1,71 @@ +<?php +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\random_string; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\get_system_image_url; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('logo', _s('Logo')); ?> +<div class="input-label"> + <label for="logo_type"><?php _se('Logo'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="logo_type" id="logo_type" class="text-input" data-combo="logo-combo"> + <?php + echo get_select_options_html( + ['vector' => _s('Vector'), 'image' => _s('Image'), 'text' => _s('Text')], + Handler::var('safe_post') ? Handler::var('safe_post')['logo_type'] : Settings::get('logo_type') +); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['logo_type'] ?? ''; ?></div> + <div class="input-below clear-both"><?php _se('Text option uses the website name as logo.'); ?></div> +</div> +<div id="logo-combo"> +<?php +$logoType = Handler::var('safe_post') && (bool) env()['CHEVERETO_ENABLE_LOGO'] + ? Handler::var('safe_post')['logo_type'] + : Settings::get('logo_type'); +$logoComboVisibility = function (string ...$try) use ($logoType): string { + return !in_array($logoType, $try) + ? ' soft-hidden' + : ''; +} +?> + <div data-combo-value="vector" class="input-label switch-combo<?php echo $logoComboVisibility('vector'); ?>"> + <label for="logo_vector"><?php _se('Logo vector'); ?></label> + <div class="transparent-canvas dark margin-bottom-10" style="max-width: 200px;"><img class="display-block" width="100%" src="<?php echo get_system_image_url(Settings::get('logo_vector')) . '?' . random_string(8); ?>"></div> + <div class="c5 phablet-c1"> + <input id="logo_vector" name="logo_vector" type="file" accept="image/svg"> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['logo_vector'] ?? ''; ?></div> + <div class="input-below"><?php _se('Vector version or your website logo in SVG format.'); ?></div> + </div> + <div data-combo-value="image" class="input-label switch-combo<?php echo $logoComboVisibility('image'); ?>"> + <label for="logo_image"><?php _se('Logo image'); ?></label> + <div class="transparent-canvas dark margin-bottom-10" style="max-width: 200px;"><img class="display-block" width="100%" src="<?php echo get_system_image_url(Settings::get('logo_image')) . '?' . random_string(8); ?>"></div> + <div class="c5 phablet-c1"> + <input id="logo_image" name="logo_image" type="file" accept="image/*"> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['logo_image'] ?? ''; ?></div> + <div class="input-below"><?php _se('Bitmap version or your website logo. PNG format is recommended.'); ?></div> + </div> + <div data-combo-value="vector image" class="input-label switch-combo<?php echo $logoComboVisibility('vector', 'image'); ?>"> + <label for="theme_logo_height"><?php _se('Logo height'); ?></label> + <div class="c4"><input type="number" min="0" pattern="\d+" name="theme_logo_height" id="theme_logo_height" class="text-input" value="<?php echo Settings::get('theme_logo_height'); ?>" placeholder="<?php _se('No value'); ?>"></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['theme_logo_height'] ?? ''; ?></div> + <div class="input-below"><?php _se('Use this to set the logo height if needed.'); ?></div> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="favicon_image"><?php _se('Favicon image'); ?></label> + <div class="transparent-canvas dark margin-bottom-10" style="max-width: 100px;"><img class="display-block" width="100%" src="<?php echo get_system_image_url(Settings::get('favicon_image')) . '?' . random_string(8); ?>"></div> + <div class="c5 phablet-c1"> + <input id="favicon_image" name="favicon_image" type="file" accept="image/*"> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['favicon_image'] ?? ''; ?></div> + <div class="input-below"><?php _se('Favicon image. Image must have same width and height.'); ?></div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/system.php b/content/legacy/themes/Peafowl/views/dashboard/settings/system.php new file mode 100644 index 0000000..888bc0d --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/system.php @@ -0,0 +1,129 @@ +<?php + +use Chevereto\Config\Config; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_select_options_html; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('system', _s('System')); ?> +<div class="input-label"> + <label for="enable_automatic_updates_check"><?php _se('Automatic updates check'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_automatic_updates_check" id="enable_automatic_updates_check" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_automatic_updates_check')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['enable_automatic_updates_check'] ?? ''; ?></div> + <div class="input-below"><?php _se('When enabled the system will automatically check for new updates.'); ?></div> +</div> +<div class="input-label"> + <label for="update_check_display_notification"><?php _se('Display available updates notification'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="update_check_display_notification" id="update_check_display_notification" class="text-input"> + <?php + echo get_select_options_html([0 => _s('Disabled'), 1 => _s('Enabled')], Settings::get('update_check_display_notification')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['update_check_display_notification'] ?? ''; ?></div> + <div class="input-below"><?php _se('Enable this to show a notice on top warning you about new available system updates.'); ?></div> +</div> +<div class="input-label"> + <label for="dump_update_query"><?php _se('Dump update query'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="dump_update_query" id="dump_update_query" class="text-input"> + <?php + echo get_select_options_html([0 => _s('Disabled'), 1 => _s('Enabled')], Settings::get('dump_update_query')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['dump_update_query'] ?? ''; ?></div> + <div class="input-below"><?php _se('Enable this if you want to dump the update query to run it manually.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="cdn">CDN</label> + <div class="c5 phablet-c1"><select type="text" name="cdn" id="cdn" class="text-input" data-combo="cdn-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Handler::var('safe_post') ? Handler::var('safe_post')['cdn'] : Settings::get('cdn')); ?> + </select></div> +</div> +<div id="cdn-combo" class="c9 phablet-c1"> + <div data-combo-value="1" class="switch-combo<?php if (!(Handler::var('safe_post') ? Handler::var('safe_post')['cdn'] : Settings::get('cdn'))) { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="cdn_url">CDN URL</label> + <input type="text" name="cdn_url" id="cdn_url" class="text-input" value="<?php echo Handler::var('safe_post')['cdn_url'] ?? Settings::get('cdn_url'); ?>" placeholder="http://a.cdn.url.com/"> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['cdn_url'] ?? ''; ?></div> + </div> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="website_search"><?php _se('Maintenance'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="maintenance" id="maintenance" class="text-input"> + <?php + echo get_select_options_html([0 => _s('Disabled'), 1 => _s('Enabled')], Settings::get('maintenance')); ?> + </select></div> + <div class="input-below"><?php _se("When enabled the website will show a maintenance message. This setting doesn't affect administrators."); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="crypt_salt"><?php _se('Crypt salt'); ?></label> + <div class="c5 phablet-c1"><input type="text" name="crypt_salt" id="crypt_salt" class="text-input" value="<?php echo Settings::get('crypt_salt'); ?>" disabled></div> + <div class="input-below"><?php _se('This is the salt used to convert numeric ID to alphanumeric. It was generated on install.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="debug_errors"><?php _se('Debug errors'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="debug_errors" id="debug_errors" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('debug_errors')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to debug errors. This setting only applies to administrators.'); ?></div> +</div> +<div class="input-label"> + <label for="debug_level"><?php _se('Debug level'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="debug_level" id="debug_level" class="text-input" disabled> + <?php + echo get_select_options_html([0 => _s('None'), 1 => _s('Error log'), 2 => _s('Print errors without error log'), 3 => _s('Print and log errors')], Config::system()->debugLevel()); ?> + </select></div> + <div class="input-below"><?php _se( + 'To configure the debug level check the %docs%.', + ['%docs%' => '<a rel="external" href="https://v4-docs.chevereto.com/developer/how-to/debug.html" target="_blank">' . _s('documentation') . '</a>'] + ); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <a href="https://xr-docs.chevere.org/" target="_blank"><img alt="XR Debug" width="100" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTAwIDE1MDAiPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJjaGV2ZXJlIiB5MT0iNzUwIiB4Mj0iMTUwMCIgeTI9Ijc1MCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMzNDk4ZGIiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOGU0NGFkIi8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSJYUiIgZGF0YS1uYW1lPSJYUiI+CiAgICAgICAgPHJlY3Qgd2lkdGg9IjE1MDAiIGhlaWdodD0iMTUwMCIgcng9IjM2NS4wOCIgc3R5bGU9ImZpbGw6dXJsKCNjaGV2ZXJlKSIvPgogICAgICAgIDxwYXRoIGQ9Ik03NzYuNzIgNDMzLjI0aDMwMGM5NyAwIDE2NC4wOCAyNS4zOCAyMDYuNjggNjguODkgMzcuMTcgMzYuMjYgNTYuMjEgODUuMjEgNTYuMjEgMTQ3Ljc2djEuODJjMCA5Ny01MS42NyAxNjEuMzUtMTMwLjU0IDE5NC44OWwxNTEuMzkgMjIxLjE5aC0yMDMuMDFsLTEyNy44Mi0xOTIuMThoLTc3LjA1djE5Mi4xOEg3NzYuNzJabTI5MS44OSAzMDQuNThjNTkuODMgMCA5NC4yOC0yOSA5NC4yOC03NS4yNHYtMS44MWMwLTQ5Ljg2LTM2LjI2LTc1LjI0LTk1LjE4LTc1LjI0SDk1Mi41OHYxNTIuMjlaIiBzdHlsZT0ib3BhY2l0eTouOTtmaWxsOiNlY2YwZjEiLz4KICAgICAgICA8cGF0aCBkPSJNMzU0LjgyIDc0NS4wNyA1NzEuOTMgNDMzaDE5NS41OUw1NjEuMTcgNzQzLjI2IDc3Ni40OSAxMDY4SDU3Ni40MloiIHN0eWxlPSJmaWxsOiNlY2YwZjE7IG9wYWNpdHk6Ljc1Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1NC44MiA3NDUuMDcgMTQ4LjQ3IDQzM2gyMDAuMDdsMjEyLjYzIDMxMC4yNkwzMzUuMDggMTA2OEgxMzkuNDlaIiBzdHlsZT0iZmlsbDojZWNmMGYxOyIvPgogICAgPC9nPgo8L3N2Zz4=" /></a> +</div> +<div class="input-label"> + <label for="enable_xr"><?php _se('Enable %service%', ['%service%' => 'XR Debug']); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_xr" id="enable_xr" class="text-input" data-combo="xr-enable-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_xr')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to send debug messages to %xr%.', ['%xr%' => '<a href="https://xr-docs.chevere.org/" target="_blank" rel="external">chevere/xr</a>']); ?></div> +</div> +<div id="xr-enable-combo"> + <div data-combo-value="1" class="switch-combo<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['enable_xr'] == 0 : !Settings::get('enable_xr'))) { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="xr_host"><?php _se('%s Host', 'XR Debug'); ?></label> + <div class="c5 phablet-c1"> + <input type="text" name="xr_host" id="xr_host" class="text-input" value="<?php echo Settings::get('xr_host'); ?>" placeholder="localhost"> + <datalist id="xr_host"> + <option value="localhost"> + <option value="host.docker.internal"> + </datalist> + </div> + </div> + <div class="input-label"> + <label for="xr_port"><?php _se('%s Port', 'XR Debug'); ?></label> + <div class="c3 phablet-c1"><input type="number" name="xr_port" id="xr_port" class="text-input" value="<?php echo Settings::get('xr_port'); ?>" placeholder="27420"></div> + </div> + <div class="input-label"> + <label for="xr_key"><?php _se('%s Key', 'XR Debug'); ?></label> + <div class="c14 phablet-c1"><textarea name="xr_key" id="xr_key" class="r4 resize-none" placeholder="<?php _se('Private key'); ?>"><?php echo Settings::get('xr_key'); ?></textarea></div> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/theme.php b/content/legacy/themes/Peafowl/views/dashboard/settings/theme.php new file mode 100644 index 0000000..dcfcc13 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/theme.php @@ -0,0 +1,179 @@ +<?php + +use Chevereto\Legacy\Classes\Palettes; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_select_options_html; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('theme', _s('Theme')); ?> +<div class="input-label"> + <label for="theme"><?php _se('Theme'); ?></label> + <?php + $themes = []; +foreach (scandir(PATH_PUBLIC_CONTENT_LEGACY_THEMES) as $v) { + if (is_dir(PATH_PUBLIC_CONTENT_LEGACY_THEMES . DIRECTORY_SEPARATOR . $v) and !in_array($v, ['.', '..'])) { + $themes[$v] = $v; + } +} ?> + <div class="c5 phablet-c1"> + <select type="text" name="theme" id="theme" class="text-input"> + <?php + echo get_select_options_html($themes, Settings::get('theme')); ?> + </select> + </div> +</div> +<div class="input-label"> +<?php +/** @var Palettes $palettes */ +$palettes = Handler::var('palettes'); +$palettesOptions = []; +foreach (array_keys($palettes->get()) as $id) { + $palettesOptions[strval($id)] = $palettes->getName($id); +} +?> + <label for="theme_palette"><?php _se('Default %s', _s('palette')); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_palette" id="theme_palette" class="text-input"> + <?php + echo get_select_options_html($palettesOptions, Handler::var('safe_post') ? Handler::var('safe_post')['theme_palette'] : Settings::get('theme_palette')); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['theme_palette'] ?? ''; ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="image_load_max_filesize_mb"><?php _se('Image load max. filesize'); ?> (MB)</label> + <div class="c2"><input type="number" min="0.1" step="0.1" pattern="\d+" name="image_load_max_filesize_mb" id="image_load_max_filesize_mb" class="text-input" value="<?php echo Handler::var('safe_post')['image_load_max_filesize_mb'] ?? Settings::get('image_load_max_filesize_mb'); ?>" placeholder="MB"></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['image_load_max_filesize_mb'] ?? ''; ?></div> + <div class="input-below"><?php _se('Images greater than this size will show a button to load full resolution image.'); ?></div> +</div> +<div class="input-label"> + <label for="theme_download_button"><?php _se('Enable download button'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_download_button" id="theme_download_button" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_download_button')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show the image download button.'); ?></div> +</div> +<div class="input-label"> + <label for="theme_image_right_click"><?php _se('Enable right click on image'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_image_right_click" id="theme_image_right_click" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_image_right_click')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to allow right click on image viewer page.'); ?></div> +</div> +<div class="input-label"> + <label for="theme_show_exif_data"><?php _se('Enable show Exif data'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_show_exif_data" id="theme_show_exif_data" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_show_exif_data')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show image Exif data.'); ?></div> +</div> +<div class="input-label"> + <label for="image_first_tab"><?php _se('%s first tab', _s('Image')); ?></label> + <div class="c5 phablet-c1"><select type="text" name="image_first_tab" id="image_first_tab" class="text-input"> + <?php + echo get_select_options_html( + [ + 'embeds' => _s('Embed codes'), + 'about' => _s('About'), + 'info' => _s('Info'), + ], + Settings::get('image_first_tab') +); + ?> + </select></div> + <div class="input-below"><?php _se('Determine the first tab on %s page.', _s('image')); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="theme_show_social_share"><?php _se('Enable social share'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_show_social_share" id="theme_show_social_share" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_show_social_share')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show social network buttons to share content.'); ?></div> +</div> +<div class="input-label"> + <label for="theme_show_embed_content_for"><?php _se('Enable embed codes (content)'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_show_embed_content_for" id="theme_show_embed_content_for" class="text-input"> + <?php + echo get_select_options_html([ + 'all' => _s('Everybody'), + 'users' => _s('Users only'), + 'none' => _s('Disabled') + ], Settings::get('theme_show_embed_content_for')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show embed codes for the content.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="theme_nsfw_upload_checkbox"><?php _se('Not safe content checkbox in uploader'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="theme_nsfw_upload_checkbox" id="theme_nsfw_upload_checkbox" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('theme_nsfw_upload_checkbox')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show a checkbox to indicate not safe content upload.'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="comments_api"><?php _se('Comments API'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="comments_api" id="comments_api" class="text-input" data-combo="comments_api-combo"> + <?php + echo get_select_options_html([ + 'disqus' => 'Disqus', + 'js' => 'JavaScript/HTML', + ], Handler::var('safe_post') ? Handler::var('safe_post')['comments_api'] : Settings::get('comments_api')); ?> + </select></div> + <div class="input-below"><?php _se('Disqus API works with %s.', '<a rel="external" href="https://help.disqus.com/customer/portal/articles/236206" target="_blank">Single Sign-On</a> (SSO)'); ?></div> +</div> +<div id="comments_api-combo"> + <div data-combo-value="disqus" class="switch-combo<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['comments_api'] : Settings::get('comments_api')) !== 'disqus') { + echo ' soft-hidden'; + } ?>"> + <div class="c9 phablet-c1"> + <div class="input-label"> + <label for="disqus_shortname"><?php _se('Disqus shortname'); ?></label> + <input type="text" name="disqus_shortname" id="disqus_shortname" class="text-input" value="<?php echo Handler::var('safe_post')['disqus_shortname'] ?? Settings::get('disqus_shortname'); ?>"> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['disqus_shortname'] ?? ''; ?></div> + </div> + <div class="input-label"> + <label for="disqus_secret_key"><?php _se('%s secret key', 'Disqus'); ?></label> + <input type="text" name="disqus_secret_key" id="disqus_secret_key" class="text-input" value="<?php echo Handler::var('safe_post')['disqus_secret_key'] ?? Settings::get('disqus_secret_key'); ?>"> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['disqus_secret_key'] ?? ''; ?></div> + </div> + <div class="input-label"> + <label for="disqus_public_key"><?php _se('%s public key', 'Disqus'); ?></label> + <input type="text" name="disqus_public_key" id="disqus_public_key" class="text-input" value="<?php echo Handler::var('safe_post')['disqus_public_key'] ?? Settings::get('disqus_public_key'); ?>"> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['disqus_public_key'] ?? ''; ?></div> + </div> + </div> + </div> + <div data-combo-value="js" class="switch-combo<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['comments_api'] : Settings::get('comments_api')) !== 'js') { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="comment_code"><?php _se('Comment code'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="comment_code" id="comment_code" class="text-input r4" value="" placeholder="<?php _se('Disqus, Facebook or anything you want. It will be used in image view.'); ?>"><?php echo Settings::get('comment_code'); ?></textarea></div> + </div> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="analytics_code"><?php _se('Analytics code'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="analytics_code" id="analytics_code" class="text-input r4" value="" placeholder="<?php _se('Google Analytics or anything you want. It will be added to the theme footer.'); ?>"><?php echo Settings::get('analytics_code'); ?></textarea></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="theme_custom_css_code"><?php _se('Custom CSS code'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="theme_custom_css_code" id="theme_custom_css_code" class="text-input r4" placeholder="<?php _se('Put your custom CSS code here. It will be placed as <style> just before the closing </head> tag.'); ?>"><?php echo Settings::get('theme_custom_css_code'); ?></textarea></div> +</div> +<div class="input-label"> + <label for="theme_custom_js_code"><?php _se('Custom JS code'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="theme_custom_js_code" id="theme_custom_js_code" class="text-input r4" placeholder="<?php _se('Put your custom JS code here. It will be placed as <script> just before the closing </head> tag.'); ?>"><?php echo Settings::get('theme_custom_js_code'); ?></textarea></div> + <div class="input-below"><?php _se('Do not use %s markup here. This is for plain JS code, not for HTML script tags. If you use script tags here you will break your website.', '&lt;script&gt;'); ?></div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/tools.php b/content/legacy/themes/Peafowl/views/dashboard/settings/tools.php new file mode 100644 index 0000000..a8fd9bd --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/tools.php @@ -0,0 +1,61 @@ +<?php + +use function Chevereto\Legacy\echoBadgePaid; +use function Chevereto\Legacy\echoInputDisabledPaid; +use function Chevereto\Legacy\encodeID; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('tools', _s('Tools')); ?> +<div class="input-label"> + <label for="decode-id"><?php _se('Decode ID'); ?></label> + <div class="phablet-c1"> + <input type="text" data-dashboard-tool="decodeId" name="decode-id" id="decode-id" class="c4 text-input" placeholder="<?php echo encodeID(1337); ?>"> <a class="btn btn-input default" data-action="dashboardTool" data-tool="decodeId" data-data='{"id":"#decode-id"}'><span class="loading display-inline-block"></span><span class="text"><?php _se('Decode ID'); ?></span></a> + </div> +</div> +<div class="input-label"> + <label for="encode-id"><?php _se('Encode ID'); ?></label> + <div class="phablet-c1"> + <input type="number" data-dashboard-tool="encodeId" min="0" name="encode-id" id="encode-id" class="c4 text-input" placeholder="1234"> <a class="btn btn-input default" data-action="dashboardTool" data-tool="encodeId" data-data='{"id":"#encode-id"}'><span class="loading display-inline-block"></span><span class="text"><?php _se('Encode ID'); ?></span></a> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="test-email"><?php _se('Send test email'); ?></label> + <div class="phablet-c1"> + <input type="email" data-dashboard-tool="testEmail" name="test-email" id="test-email" class="c4 text-input" placeholder="test@mail.com"> <a class="btn btn-input default" data-action="dashboardTool" data-tool="testEmail" data-data='{"email":"#test-email"}'><span class="loading display-inline-block"></span><span class="text"><?php _se('Send test email'); ?></span></a> + </div> + <div class="input-below"><?php _se('Use this to test how your emails are being delivered. We recommend you to use %s.', '<a rel="external" href="https://www.mail-tester.com/" target="_blank">mail-tester</a>'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="export-user"><?php _se('Export a user'); ?></label> + <div class="phablet-c1"> + <input type="text" data-dashboard-tool="exportUser" name="export-user" id="export-user" class="c4 text-input" placeholder="<?php _se('Username'); ?>"> <a class="btn btn-input default" data-action="dashboardTool" data-tool="exportUser" data-data='{"username":"#export-user"}'><span class="loading display-inline-block"></span><span class="text"><?php _se('Export user'); ?></span></a> + </div> + <div class="input-below"><?php _se("This will allow you to download a user's standard personal information in JSON format."); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']); ?><label for="storageId"><?php _se('Regenerate external storage stats'); ?></label> + <div class="phablet-c1"> + <input <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']); ?> type="number" data-dashboard-tool="regenStorageStats" min="0" step="1" name="storageId" id="storageId" class="c4 text-input" placeholder="<?php _se('Storage id'); ?>"> <a class="btn btn-input default" data-action="dashboardTool" data-tool="regenStorageStats" data-data='{"storageId":"#storageId"}'><span class="loading display-inline-block"></span> + <span class="text"><?php _se('Regenerate'); ?></span></a> + </div> + <div class="input-below"><?php _se('This will re-calculate the sum of all the image records associated to the target external storage.'); ?></div> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']); ?><label for="sourceStorageId"><?php _se('Migrate external storage records'); ?></label> + <div class="phablet-c1"> + <input <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']); ?> type="number" data-dashboard-tool="migrateStorage" min="0" step="1" name="sourceStorageId" id="sourceStorageId" class="c5 text-input" placeholder="<?php _se('Source storage id'); ?>"> + <input <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']); ?> type="number" data-dashboard-tool="migrateStorage" min="0" step="1" name="targetStorageId" id="targetStorageId" class="c5 text-input" placeholder="<?php _se('Target storage id'); ?>"> + <a class="btn btn-input default" data-action="dashboardTool" data-tool="migrateStorage" data-data='{"sourceStorageId":"#sourceStorageId", "targetStorageId":"#targetStorageId"}'> + <span class="loading display-inline-block"></span> + <span class="text"><?php _se('Migrate'); ?></span> + </a> + </div> + <div class="input-below"><?php _se('This only updates the database. You must transfer the actual files to target storage container on your own. URL rewriting is strongly recommended. Use zero (0) for local storage.'); ?></div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/watermarks.php b/content/legacy/themes/Peafowl/views/dashboard/settings/watermarks.php new file mode 100644 index 0000000..636cdca --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/watermarks.php @@ -0,0 +1,127 @@ +<?php +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\random_string; +use function Chevereto\Legacy\get_checkbox_html; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\get_system_image_url; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('watermarks', _s('Watermarks')); ?> +<div class="input-label"> + <label for="watermark_enable"><?php _se('Watermarks'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="watermark_enable" id="watermark_enable" class="text-input" data-combo="watermark-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Handler::var('safe_post') ? Handler::var('safe_post')['watermark_enable'] : Settings::get('watermark_enable')); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['watermark_enable'] ?? ''; ?></div> + <div class="input-below"><?php _se('Enable this to put a logo or anything you want in image uploads.'); ?></div> +</div> +<div id="watermark-combo"> + <div data-combo-value="1" class="switch-combo phablet-c1<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['watermark_enable'] : Settings::get('watermark_enable')) != 1) { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="watermark_checkboxes"><?php _se('Watermark user toggles'); ?></label> + <?php echo get_checkbox_html([ + 'name' => 'watermark_enable_guest', + 'label' => _s('Enable watermark on guest uploads'), + 'checked' => ((bool) (Handler::var('safe_post') ? Handler::var('safe_post')['watermark_enable_guest'] : Settings::get('watermark_enable_guest'))), + ]); ?> + <?php echo get_checkbox_html([ + 'name' => 'watermark_enable_user', + 'label' => _s('Enable watermark on user uploads'), + 'checked' => ((bool) (Handler::var('safe_post') ? Handler::var('safe_post')['watermark_enable_user'] : Settings::get('watermark_enable_user'))), + ]); ?> + <?php echo get_checkbox_html([ + 'name' => 'watermark_enable_admin', + 'label' => _s('Enable watermark on admin uploads'), + 'checked' => ((bool) (Handler::var('safe_post') ? Handler::var('safe_post')['watermark_enable_admin'] : Settings::get('watermark_enable_admin'))), + ]); ?> + </div> + <div class="input-label"> + <label for="watermark_checkboxes"><?php _se('Watermark file toggles'); ?></label> + <?php echo get_checkbox_html([ + 'name' => 'watermark_enable_file_gif', + 'label' => _s('Enable watermark on GIF image uploads'), + 'checked' => ((bool) (Handler::var('safe_post') ? Handler::var('safe_post')['watermark_enable_file_gif'] : Settings::get('watermark_enable_file_gif'))), + ]); ?> + <p class="highlight padding-5 display-inline-block"><i class="fas fa-exclamation-triangle"></i> <?php _se("Animated images won't be watermarked."); ?></p> + </div> + <div class="input-label"> + <label for="watermark_target_min_width" class="display-block-forced"><?php _se('Minimum image size needed to apply watermark'); ?></label> + <div class="c5 overflow-auto clear-both"> + <div class="c2 float-left"> + <input type="number" min="0" pattern="\d+" name="watermark_target_min_width" id="watermark_target_min_width" class="text-input" value="<?php echo Handler::var('safe_post')['watermark_target_min_width'] ?? Settings::get('watermark_target_min_width'); ?>" placeholder="<?php echo Settings::getDefault('watermark_target_min_width'); ?>" rel="tooltip" data-tiptip="top" title="<?php _se('Width'); ?>" required> + </div> + <div class="c2 float-left margin-left-10"> + <input type="number" min="0" pattern="\d+" name="watermark_target_min_height" id="watermark_target_min_height" class="text-input" value="<?php echo Handler::var('safe_post')['watermark_target_min_height'] ?? Settings::get('watermark_target_min_height'); ?>" placeholder="<?php echo Settings::getDefault('watermark_target_min_height'); ?>" rel="tooltip" data-tiptip="top" title="<?php _se('Height'); ?>" required> + </div> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['watermark_target_min_width'] ?? ''; ?></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['watermark_target_min_height'] ?? ''; ?></div> + <div class="input-below"><?php _se("Images smaller than this won't be watermarked. Use zero (0) to don't set a minimum image size limit."); ?></div> + </div> + <div class="input-label"> + <?php Image::watermarkFromDb(); ?> + <label for="watermark_image"><?php _se('Watermark image'); ?></label> + <div class="transparent-canvas dark margin-bottom-10" style="max-width: 200px;"><img class="display-block" width="100%" src="<?php echo get_system_image_url(Settings::get('watermark_image')) . '?' . random_string(8); ?>"></div> + <div class="c5 phablet-c1"> + <input id="watermark_image" name="watermark_image" type="file" accept="image/png"> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['watermark_image'] ?? ''; ?></div> + <div class="input-below">PNG - <?php _se('Max size %s.', '64KB'); ?></div> + </div> + <div class="input-label"> + <label for="watermark_position"><?php _se('Watermark position'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="watermark_position" id="watermark_position" class="text-input"> + <?php + echo get_select_options_html( + [ + 'left top' => _s('left top'), + 'left center' => _s('left center'), + 'left bottom' => _s('left bottom'), + 'center top' => _s('center top'), + 'center center' => _s('center center'), + 'center bottom' => _s('center bottom'), + 'right top' => _s('right top'), + 'right center' => _s('right center'), + 'right bottom' => _s('right bottom'), + ], + Handler::var('safe_post')['watermark_position'] + ?? Settings::get('watermark_position') + ); ?> + </select></div> + <div class="input-below input-warning red-warning clear-both"><?php echo Handler::var('input_errors')['watermark_position'] ?? ''; ?></div> + <div class="input-below"><?php _se('Relative position of the watermark image. First horizontal align then vertical align.'); ?></div> + </div> + <div class="input-label"> + <label for="watermark_percentage"><?php _se('Watermark percentage'); ?></label> + <div class="c2"> + <input type="number" min="1" max="100" pattern="\d+" name="watermark_percentage" id="watermark_percentage" class="text-input" value="<?php echo Handler::var('safe_post')['watermark_percentage'] ?? Settings::get('watermark_percentage'); ?>" placeholder="<?php echo Settings::getDefault('watermark_percentage'); ?>" required> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['watermark_percentage'] ?? ''; ?></div> + <div class="input-below"><?php _se('Watermark percentual size relative to the target image area. Values 1 to 100.'); ?></div> + </div> + <div class="input-label"> + <label for="watermark_margin"><?php _se('Watermark margin'); ?></label> + <div class="c2"> + <input type="number" min="0" pattern="\d+" name="watermark_margin" id="watermark_margin" class="text-input" value="<?php echo Handler::var('safe_post')['watermark_margin'] ?? Settings::get('watermark_margin'); ?>" placeholder="<?php echo Settings::getDefault('watermark_margin'); ?>" required> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['watermark_margin'] ?? ''; ?></div> + <div class="input-below"><?php _se('Margin from the border of the image to the watermark image.'); ?></div> + </div> + <div class="input-label"> + <label for="watermark_opacity"><?php _se('Watermark opacity'); ?></label> + <div class="c2"> + <input type="number" min="1" max="100" pattern="\d+" name="watermark_opacity" id="watermark_opacity" class="text-input" value="<?php echo Handler::var('safe_post')['watermark_opacity'] ?? Settings::get('watermark_opacity'); ?>" placeholder="<?php echo Settings::getDefault('watermark_opacity'); ?>" required> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['watermark_opacity'] ?? ''; ?></div> + <div class="input-below"><?php _se('Opacity of the watermark in the final watermarked image. Values 0 to 100.'); ?></div> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/website.php b/content/legacy/themes/Peafowl/views/dashboard/settings/website.php new file mode 100644 index 0000000..c27335e --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/website.php @@ -0,0 +1,235 @@ +<?php + +use Chevereto\Legacy\Classes\Login; +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\echoBadgePaid; +use function Chevereto\Legacy\echoInputDisabledPaid; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('website', _s('Website')); ?> +<div class="input-label c10"> + <label for="website_name"><?php _se('Website name'); ?></label> + <input type="text" name="website_name" id="website_name" class="text-input" value="<?php echo safe_html(Settings::get('website_name')); ?>" required> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['website_name'] ?? ''; ?></div> +</div> +<div class="input-label c10"> + <label for="website_doctitle"><?php _se('Website doctitle'); ?></label> + <input type="text" name="website_doctitle" id="website_doctitle" class="text-input" value="<?php echo safe_html(Settings::get('website_doctitle')); ?>"> +</div> +<div class="input-label c10"> + <label for="website_description"><?php _se('Website description'); ?></label> + <input type="text" name="website_description" id="website_description" class="text-input" value="<?php echo safe_html(Settings::get('website_description')); ?>"> + <div class="input-warning red-warning"><?php echo Handler::var('input_errors')['website_description'] ?? ''; ?></div> +</div> +<hr class="line-separator"> +<?php +$zones = timezone_identifiers_list(); +foreach ($zones as $tz) { + $zone = explode('/', $tz); + $subzone = $zone; + array_shift($subzone); + $regions[$zone[0]][$tz] = join('/', $subzone); +} ?> +<div class="input-label"> + <label for="timezone-region"><?php _se('Default time zone'); ?></label> + <div class="overflow-auto"> + <div class="c5 phablet-c1 phone-c1 grid-columns phone-margin-bottom-10 phablet-margin-bottom-10 margin-right-10"> + <select id="timezone-region" class="text-input" data-combo="timezone-combo"> + <option><?php _se('Select region'); ?></option> + <?php + $default_timezone = explode('/', Settings::get('default_timezone') ?? ''); +foreach ($regions ?? [] as $key => $region) { + $selected = $default_timezone[0] == $key ? ' selected' : ''; + echo '<option value="' . $key . '"' . $selected . '>' . $key . '</option>'; +} ?> + </select> + </div> + <div id="timezone-combo" class="c5 phablet-c1 grid-columns"> + <?php + foreach ($regions ?? [] as $key => $region) { + $show_hide = $default_timezone[0] == $key ? '' : ' soft-hidden'; + if (count($region) == 1) { + $show_hide .= ' hidden'; + } ?> + <select id="timezone-combo-<?php echo $key; ?>" class="text-input switch-combo<?php echo $show_hide; ?>" data-combo-value="<?php echo $key; ?>"> + <?php + foreach ($region as $k => $l) { + $selected = Settings::get('default_timezone') == $k ? ' selected' : ''; + echo '<option value="' . $k . '"' . $selected . '>' . $l . '</option>' . "\n"; + } ?> + </select> + <?php + } ?> + </div> + </div> + <input type="hidden" id="default_timezone" name="default_timezone" data-content="timezone" data-highlight="#timezone-region" value="<?php echo Settings::get('default_timezone'); ?>" required> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="website_search"><?php _se('Search'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="website_search" id="website_search" class="text-input" data-combo="website-search-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('website_search')); ?> + </select></div> + <div class="input-below"><?php _se('Allows to search images, albums and users based on a given search query.'); ?></div> +</div> +<div id="website-search-combo"> + <div data-combo-value="1" class="switch-combo phablet-c1<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['website_search'] : Settings::get('website_search')) != 1) { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="website_search_guest"><?php _se('Search'); ?> (<?php _se('guests'); ?>)</label> + <div class="c5 phablet-c1"><select type="text" name="website_search_guest" id="website_search_guest" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('website_search_guest')); ?> + </select></div> + <div class="input-below"><?php _se('Enables %s for guests.', _s('search')); ?></div> + </div> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="website_explore_page"><?php _se('Explore'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="website_explore_page" id="website_explore_page" class="text-input" data-combo="website-explore-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('website_explore_page')); ?> + </select></div> + <div class="input-below"><?php _se('Enables to browse public uploaded images. It also enables categories.'); ?></div> +</div> +<div id="website-explore-combo"> + <div data-combo-value="1" class="switch-combo phablet-c1<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['website_explore_page'] : Settings::get('website_explore_page')) != 1) { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="website_explore_page_guest"><?php _se('Explore'); ?> (<?php _se('guests'); ?>)</label> + <div class="c5 phablet-c1"><select type="text" name="website_explore_page_guest" id="website_explore_page_guest" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('website_explore_page_guest')); ?> + </select></div> + <div class="input-below"><?php _se('Enables %s for guests.', _s('explore')); ?></div> + </div> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <label for="website_random"><?php _se('Random'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="website_random" id="website_random" class="text-input" data-combo="website-random-combo"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('website_random')); ?> + </select></div> + <div class="input-below"><?php _se('Enables to browse images randomly.'); ?></div> +</div> +<div id="website-random-combo"> + <div data-combo-value="1" class="switch-combo phablet-c1<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['website_random'] : Settings::get('website_random')) != 1) { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="website_random_guest"><?php _se('Random'); ?> (<?php _se('guests'); ?>)</label> + <div class="c5 phablet-c1"><select type="text" name="website_random_guest" id="website_random_guest" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('website_random_guest')); ?> + </select></div> + <div class="input-below"><?php _se('Enables %s for guests.', _s('random')); ?></div> + </div> + </div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <?php echoBadgePaid((bool) env()['CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE']); ?><label for="enable_powered_by"><?php _se('Powered by'); ?> Chevereto</label> + <div class="c5 phablet-c1"><select <?php echoInputDisabledPaid((bool) env()['CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE']); ?> type="text" name="enable_powered_by" id="enable_powered_by" class="text-input"> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_powered_by')); ?> + </select></div> + <div class="input-below"><?php _se('Enable this if you want to show a "%s" link at the footer.', _s('Powered by') . ' Chevereto'); ?></div> +</div> +<hr class="line-separator"> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_LIKES']); ?><label for="enable_likes"><?php _se('Likes'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_likes" id="enable_likes" class="text-input" <?php if (getSetting('website_mode') == 'personal') { + echo ' disabled'; + } ?>> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_likes')); ?> + </select></div> + <div class="input-below"><?php _se('Allows users to like content and populate "Most liked" listings.'); ?></div> + <?php personal_mode_warning(); ?> +</div> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_FOLLOWERS']); ?><label for="enable_followers"><?php _se('Followers'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="enable_followers" id="enable_followers" class="text-input" <?php if (getSetting('website_mode') == 'personal') { + echo ' disabled'; + } ?>> + <?php + echo get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], Settings::get('enable_followers')); ?> + </select></div> + <div class="input-below"><?php _se('Followers allows users to follow each other.'); ?></div> + <?php personal_mode_warning(); ?> +</div> +<hr class="line-separator"> +<div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?><label for="website_mode"><?php _se('Website mode'); ?></label> + <div class="c5 phablet-c1"><select <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?> type="text" name="website_mode" id="website_mode" class="text-input" data-combo="website-mode-combo"> + <?php + echo get_select_options_html(['community' => _s('Multi-user'), 'personal' => _s('Single profile')], Settings::get('website_mode')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['website_mode'] ?? ''; ?></div> + <div class="input-below"><?php _se('You can switch the website mode anytime.'); ?></div> +</div> +<div id="website-mode-combo"> + <div data-combo-value="personal" class="switch-combo phablet-c1<?php if ( + (Handler::var('safe_post')['website_mode'] ?? Settings::get('website_mode')) != 'personal' + ) { + echo ' soft-hidden'; + } ?>"> + <hr class="line-separator"> + <div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?><label for="website_mode_personal_uid"><?php _se('%s target user', _s('Single profile')); ?></label> + <div class="c3"><input <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?> type="number" min="1" name="website_mode_personal_uid" id="website_mode_personal_uid" class="text-input" value="<?php echo Settings::get('website_mode_personal_uid'); ?>" placeholder="<?php _se('User ID'); ?>" rel="tooltip" title="<?php _se('Your user id is: %s', Login::getUser()['id']); ?>" data-tipTip="right" data-required></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['website_mode_personal_uid'] ?? ''; ?></div> + <div class="input-below"><?php _se('Numeric ID of the target user for %s mode.', _s('Single profile')); ?></div> + </div> + <div class="input-label"> + <?php echoBadgePaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?><label for="website_mode_personal_routing"><?php _se('%s routing', _s('Single profile')); ?></label> + <div class="c5"><input <?php echoInputDisabledPaid(!(bool) env()['CHEVERETO_ENABLE_USERS']); ?> type="text" name="website_mode_personal_routing" id="website_mode_personal_routing" class="text-input" value="<?php echo Settings::get('website_mode_personal_routing'); ?>" placeholder="/"></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['website_mode_personal_routing'] ?? ''; ?></div> + <div class="input-below"><?php _se('Custom route to map /username to /something. Use "/" to map to homepage.'); ?></div> + </div> + <hr class="line-separator"> + </div> +</div> +<div class="input-label"> + <label for="website_privacy_mode"><?php _se('Website privacy mode'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="website_privacy_mode" id="website_privacy_mode" class="text-input" data-combo="website-privacy-mode-combo"> + <?php + echo get_select_options_html(['public' => _s('Public'), 'private' => _s('Private')], Settings::get('website_privacy_mode')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['website_privacy_mode'] ?? ''; ?></div> + <div class="input-below"><?php _se('Private mode will make the website only available for registered users.'); ?></div> +</div> +<div id="website-privacy-mode-combo"> + <div data-combo-value="private" class="switch-combo phablet-c1<?php if ((Handler::var('safe_post') ? Handler::var('safe_post')['website_privacy_mode'] : Settings::get('website_privacy_mode')) != 'private') { + echo ' soft-hidden'; + } ?>"> + <div class="input-label"> + <label for="website_content_privacy_mode"><?php _se('Content privacy mode'); ?></label> + <div class="c5 phablet-c1"><select type="text" name="website_content_privacy_mode" id="website_content_privacy_mode" class="text-input"> + <?php + echo get_select_options_html([ + 'default' => _s('Default'), + 'private' => _s('Force private (self)'), + 'private_but_link' => _s('Force private (anyone with the link)'), + ], Settings::get('website_content_privacy_mode')); ?> + </select></div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')['website_content_privacy_mode'] ?? ''; ?></div> + <div class="input-below"><?php _se('Forced privacy modes will override user selected privacy.'); ?></div> + </div> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/stats.php b/content/legacy/themes/Peafowl/views/dashboard/stats.php new file mode 100644 index 0000000..857677b --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/stats.php @@ -0,0 +1,243 @@ +<?php + +use Chevereto\Legacy\Classes\Stat; +use function Chevereto\Legacy\G\bytes_to_mb; +use function Chevereto\Legacy\G\get_client_ip; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_static_url; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<div data-modal="modal-connecting-ip" class="hidden"> + <span class="modal-box-title"><i class="fas fa-question-circle"></i> <?php _se('Not your IP?'); ?></span> + <div class="connecting-ip"><?php echo get_client_ip(); ?></div> + <p><?php _se( + "If the detected IP doesn't match yours it means that your web server is under a proxy. The connecting IP can be set using the HTTP header defined in the environment variable %env% and when not set it fall-back to %var%.", + [ + '%var%' => '<code class="code font-weight-bold">$_SERVER[\'REMOTE_ADDR\']</code>', + '%env%' => '<code class="code font-weight-bold">CHEVERETO_HEADER_CLIENT_IP</code>', + ] +); ?></p> + <p><?php _se("Make sure that you address this issue as the system relies on accurate IP detections to provide basic functionalities and to protect against spam, flooding, and brute force attacks."); ?></p> +</div> +<div class="dashboard-group"> +<script type="text/javascript" src="<?php echo get_static_url(PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB . 'js/apexcharts.js'); ?>"></script> + <div id="dashboard-chart"> + <div class="toolbar"> + <button id="one_week">1W</button> + <button id="one_month">1M</button> + <button id="three_months">3M</button> + <button id="six_months">6M</button> + <button id="one_year" class="active">1Y</button> + </div> + <div id="dashboard-chart-timeline"></div> + </div> +<?php +$dateCumulative = Stat::getByDateCumulative(); +$imageDataSeries = []; +$diskDataSeries = []; +$userDataSeries = []; +$albumDataSeries = []; +foreach ($dateCumulative as $data) { + $datetime = new DateTime( + $data['date_gmt'], + new DateTimeZone('UTC') + ); + $timestamp = $datetime->getTimestamp() * 1000; + $imageDataSeries[] = [$timestamp, $data['images_acc']]; + $diskDataSeries[] = [$timestamp, bytes_to_mb($data['disk_used_acc'])]; + $userDataSeries[] = [$timestamp, $data['users_acc']]; + $albumDataSeries[] = [$timestamp, $data['albums_acc']]; +} +$min = $imageDataSeries[0][0]; +$max = $imageDataSeries[array_key_last($imageDataSeries)][0]; +$themeMode = in_array(Handler::var('theme_palette_handle'), ['dark', 'imgur', 'deviantart', 'cmyk']) + ? 'dark' : 'light'; +$series = [ + [ + 'name' => _s('Images'), + 'data' => $imageDataSeries, + ], + [ + 'name' => _s('Disk'), + 'data' => $diskDataSeries, + ], + [ + 'name' => _s('Users'), + 'data' => $userDataSeries, + ], + [ + 'name' => _s('Albums'), + 'data' => $albumDataSeries, + ], +]; +if (!(bool) env()['CHEVERETO_ENABLE_USERS']) { + unset($series[2]); + $series = array_values($series); +} +?> +<script> +var options = { + series: <?php echo json_encode($series); ?>, + colors: [ + '#008ffb', + '#00e396', + '#feb019', + '#ff4560', + ], + chart: { + id: 'area-datetime', + type: 'area', + stacked: false, + height: 450, + zoom: { + autoScaleYaxis: true + }, + }, + dataLabels: { + enabled: false + }, + markers: { + size: 0, + style: 'hollow', + }, + xaxis: { + type: 'datetime', + min: <?php echo $min; ?>, + tickAmount: 6, + }, + tooltip: { + x: { + format: 'dd MMM yyyy' + } + }, + theme: { + mode: '<?php echo $themeMode; ?>', + } +}; +var chart = new ApexCharts(document.querySelector("#dashboard-chart-timeline"), options); +chart.render(); +var resetCssClasses = function(activeEl) { + var els = document.querySelectorAll('button'); + Array.prototype.forEach.call(els, function(el) { + el.classList.remove('active'); + }); + activeEl.target.classList.add('active'); +} +document.querySelector('#one_week').addEventListener('click', function(e) { + resetCssClasses(e); + chart.zoomX( + <?php echo $max - (86400 * 7 * 1000); ?>, + <?php echo $max; ?> + ); +}); +document.querySelector('#one_month').addEventListener('click', function(e) { + resetCssClasses(e); + chart.zoomX( + <?php echo $max - (86400 * 30 * 1000); ?>, + <?php echo $max; ?> + ); +}); +document.querySelector('#three_months').addEventListener('click', function(e) { + resetCssClasses(e); + chart.zoomX( + <?php echo $max - (86400 * 30 * 3 * 1000); ?>, + <?php echo $max; ?> + ); +}); +document.querySelector('#six_months').addEventListener('click', function(e) { + resetCssClasses(e); + chart.zoomX( + <?php echo $max - (86400 * 30 * 6 * 1000); ?>, + <?php echo $max; ?> + ); +}); +document.querySelector('#one_year').addEventListener('click', function(e) { + resetCssClasses(e); + chart.zoomX( + <?php echo $max - (86400 * 30 * 12 * 1000); ?>, + <?php echo $max; ?> + ); +}); +</script> + <div class="overflow-auto text-align-center margin-top-20 margin-bottom-40"> + <div class="stats-block c6 fluid-column display-inline-block" <?php if (Handler::var('totals')['images'] > 999999) { + echo ' rel="tooltip" data-tipTip="top" title="' . number_format((float) Handler::var('totals')['images']) . '"'; +} ?>> + <span class="stats-big-number"> + <strong class="number"><?php echo Handler::var('totals')['images'] > 999999 ? Handler::var('totals_display')['images'] : number_format((float) Handler::var('totals')['images']); ?></strong> + <span class="label"><span class="fas fa-image"></span> <?php _ne('Image', 'Images', Handler::var('totals')['images']); ?></span> + </span> + </div> + <div class="stats-block c6 fluid-column display-inline-block" <?php if (Handler::var('totals')['albums'] > 999999) { + echo ' rel="tooltip" data-tipTip="top" title="' . number_format((float) Handler::var('totals')['albums']) . '"'; +} ?>> + <span class="stats-big-number"> + <strong class="number"><?php echo Handler::var('totals')['albums'] > 999999 ? Handler::var('totals_display')['albums'] : number_format((float) Handler::var('totals')['albums']); ?></strong> + <span class="label"><span class="fas fa-images"></span> <?php _ne('Album', 'Albums', Handler::var('totals')['albums']); ?></span> + </span> + </div> + <?php if ((bool) env()['CHEVERETO_ENABLE_USERS']) { ?> + <div class="stats-block c6 fluid-column display-inline-block" <?php if (Handler::var('totals')['users'] > 999999) { + echo ' rel="tooltip" data-tipTip="top" title="' . number_format((float) Handler::var('totals')['users']) . '"'; +} ?>> + <span class="stats-big-number"> + <strong class="number"><?php echo Handler::var('totals')['users'] > 999999 ? Handler::var('totals_display')['users'] : number_format((float) Handler::var('totals')['users']); ?></strong> + <span class="label"><span class="fas fa-users"></span> <?php _ne('User', 'Users', Handler::var('totals')['users']); ?></span> + </span> + </div> + <?php } ?> + <div class="stats-block c6 fluid-column display-inline-block"> + <div class="stats-big-number"> + <strong class="number"><?php echo Handler::var('totals_display')['disk']['used']; ?> <span><?php echo Handler::var('totals_display')['disk']['unit']; ?></span></strong> + <span class="label"><span class="fas fa-hdd"></span> <?php _se('Disk used'); ?></span> + </div> + </div> + </div> + + <div class="header header-tabs no-select"> + <h2><i class="header-icon fas fa-rss"></i> <?php _se('%s News', 'Chevereto'); ?></h2> + </div> + + <div class="card-wrapper margin-bottom-40"> + <div class="card-slider"> + <?php foreach (array_slice(Handler::var('chevereto_news'), 0, 8) as $k => $v) { + echo strtr('<article class="card-container"> + <div class="card"> + <a class="card-header-image" href="%url%" target="_blank" style="background-image: url(%image%);"> + <span class="animate card-header-image-mask"></span> + <span class="card-text"> + <h3>%title%</h3> + <span>%summary%</span> + </span> + </a> + </div> + </article>' . "\n", [ + '%url%' => $v->url, + '%image%' => $v->image, + '%title%' => $v->title, + '%summary%' => $v->summary, + ]); +} ?> + </div> + </div> + + <div class="header header-tabs no-select"> + <h2><i class="header-icon fas fa-server"></i> <?php _se('Installation details'); ?></h2> + </div> + + <ul class="tabbed-content-list table-li margin-top-20 padding-bottom-20"> + <?php + foreach (Handler::var('system_values') as $v) { + ?> + <li><span class="font-weight-bold c6 display-table-cell padding-right-10 phone-display-block"><?php echo $v['label']; ?><span style="opacity: 0;">:</span></span><span class="display-table-cell phone-display-block word-break-break-all"><?php echo $v['content']; ?></span></li> + <?php + } + ?> + </ul> + </div> +<?php diff --git a/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php b/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php new file mode 100644 index 0000000..397ddf6 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php @@ -0,0 +1,59 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +Handler::setVar('tabs', Handler::var('sub_tabs')); +?> +<div class="header header-tabs no-select"> + <?php include_theme_file('snippets/tabs'); ?> + <?php + Handler::setVar('user_items_editor', false); + include_theme_file('snippets/user_items_editor'); + ?> + <div class="header-content-right"> + <?php include_theme_file('snippets/listing_tools_editor'); ?> + </div> + <?php if (Handler::var('dashboard') == 'users') { + ?> + <div class="header-content-right"> + <div class="header--height header--centering"> + <a class="btn btn-small default" data-modal="form" data-target="modal-add-user"><i class="fas fa-user-plus margin-right-5"></i><?php _se('Add user'); ?></a> + </div> + </div> + <div data-modal="modal-add-user" class="hidden" data-submit-fn="CHV.fn.user.add.submit" data-ajax-deferred="CHV.fn.user.add.complete"> + <span class="modal-box-title"><i class="fas fa-user-plus"></i> <?php _se('Add user'); ?></span> + <div class="modal-form"> + <div class="input-label c8"> + <label for="form-role"><?php _se('Role'); ?></label> + <select name="form-role" id="form-role" class="text-input"> + <option value="user" selected><?php _se('User'); ?></option> + <option value="manager"><?php _se('Manager'); ?></option> + <option value="admin"><?php _se('Administrator'); ?></option> + </select> + </div> + <div class="input-label c11"> + <label for="username"><?php _se('Username'); ?></label> + <input type="text" name="form-username" id="form-username" class="text-input" maxlength="<?php echo Settings::get('username_max_length'); ?>" rel="tooltip" data-tipTip="right" pattern="<?php echo Settings::get('username_pattern'); ?>" rel="tooltip" data-title='<?php echo strtr('%i to %f characters<br>Letters, numbers and "_"', ['%i' => Settings::get('username_min_length'), '%f' => Settings::get('username_max_length')]); ?>' maxlength="<?php echo Settings::get('username_max_length'); ?>" placeholder="<?php _se('Username'); ?>" required> + <span class="input-warning red-warning"></span> + </div> + <div class="input-label c11"> + <label for="form-name"><?php _se('Email'); ?></label> + <input type="email" name="form-email" id="form-email" class="text-input" placeholder="<?php _se('Email address'); ?>" required> + <span class="input-warning red-warning"></span> + </div> + <div class="input-label c11"> + <label for="form-name"><?php _se('Password'); ?></label> + <input type="password" name="form-password" id="form-password" class="text-input" title="<?php _se('%d characters min', Settings::get('user_password_min_length')); ?>" pattern="<?php echo Settings::get('user_password_pattern'); ?>" rel="tooltip" data-tipTip="right" placeholder="<?php _se('Password'); ?>" required> + <span class="input-warning red-warning"></span> + </div> + </div> + </div> + <?php + } ?> +</div> diff --git a/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/settings.php b/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/settings.php new file mode 100644 index 0000000..498fc07 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/settings.php @@ -0,0 +1,111 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<div class="header header-tabs no-select header--centering default-margin-bottom"> + <h1 class="header-title"> + <span class="header-icon fas fa-cog"></span> + <span class="phone-hide"><?php echo Handler::var('dashboard_menu')[Handler::var('dashboard')]['label']; ?></span> + </h1> + <div data-content="pop-selection" class="pop-btn pop-keep-click header-link float-left" data-action="settings-switch"> + <div class="pop-btn-text"> + <span class="icon <?php echo Handler::var('settings')['icon']; ?>"></span> + <span class="btn-text"><?php echo Handler::var('settings')['label']; ?></span> + <span class="fas fa-angle-down"></span> + </div> + <div class="pop-box pbcols3 anchor-left arrow-box arrow-box-top"> + <div class="pop-box-inner pop-box-menu pop-box-menucols"> + <ul> + <?php + foreach (Handler::var('settings_menu') as $item) { + $class = $item['current'] ? ' current' : ''; + $class .= $item['isPaid'] ? ' paid' : ''; + $aHref = $item['url'] + ? (' href="' . $item['url'] . '"') + : ''; + echo <<<TPL + <li class="with-icon$class"> + <a{$aHref} title="{$item['title']}"><span class="btn-icon {$item['icon']}"></span><span class="btn-text">{$item['label']}</span></a> + </li> + TPL; + } + ?> + </ul> + </div> + </div> + </div> + <?php if (Handler::var('settings')['key'] == 'categories') { ?> + <div class="header-content-right"> + <div class="header--height header--centering"> + <a class="btn btn-small default" data-modal="form" data-target="modal-add-category"><i class="fas fa-plus"></i><span class="margin-left-5 phone-hide"><?php _se('Add'); ?></span></a> + </div> + </div> + <div data-modal="modal-add-category" class="hidden" data-submit-fn="CHV.fn.category.add.submit" data-before-fn="CHV.fn.category.add.before" data-ajax-deferred="CHV.fn.category.add.complete"> + <span class="modal-box-title"><i class="fas fa-columns"></i> <?php _se('Add category'); ?></span> + <div class="modal-form"> + <?php include_theme_file('snippets/form_category_edit'); ?> + </div> + </div> + <?php + } ?> + <?php if (Handler::var('settings')['key'] == 'ip-bans') { ?> + <div class="header-content-right"> + <div class="header--height header--centering"> + <a class="btn btn-small default" data-modal="form" data-target="modal-add-ip_ban"><i class="fas fa-plus"></i><span class="margin-left-5 phone-hide"><?php _se('Add'); ?></span></a> + </div> + </div> + <div data-modal="modal-add-ip_ban" class="hidden" data-submit-fn="CHV.fn.ip_ban.add.submit" data-before-fn="CHV.fn.ip_ban.add.before" data-ajax-deferred="CHV.fn.ip_ban.add.complete"> + <span class="modal-box-title"><i class="fas fa-ban"></i> <?php _se('Add IP ban'); ?></span> + <div class="modal-form"> + <?php include_theme_file('snippets/form_ip_ban_edit'); ?> + </div> + </div> + <?php + } ?> + <?php if (Handler::var('settings')['key'] == 'external-storage') { ?> + <div class="header-content-right"> + <div class="header--height header--centering"> + <a class="btn btn-small default" data-modal="form" data-target="modal-add-storage"><i class="fas fa-plus"></i><span class="margin-left-5 phone-hide"><?php _se('Add'); ?></span></a> + </div> + </div> + <div data-modal="modal-add-storage" class="hidden" data-submit-fn="CHV.fn.storage.add.submit" data-before-fn="CHV.fn.storage.add.before" data-ajax-deferred="CHV.fn.storage.add.complete"> + <span class="modal-box-title"><i class="fas fa-hdd"></i> <?php _se('Add storage'); ?></span> + <div class="modal-form"> + <?php include_theme_file('snippets/form_storage_edit'); ?> + </div> + </div> + <?php + } ?> + <?php if (Handler::var('settings')['key'] == 'pages') { + switch (Handler::var('settings_pages')['doing']) { + case 'add': + case 'edit': + $pages_top_link = [ + 'href' => 'dashboard/settings/pages', + 'text' => '<i class="fas fa-chevron-left margin-right-5"></i>' . _s('Return to pages'), + ]; + + break; + default: + $pages_top_link = [ + 'href' => 'dashboard/settings/pages/add', + 'text' => '<i class="fas fa-plus"></i><span class="margin-left-5 phone-hide">' . _s('Add') . '</span>', + ]; + + break; + } ?> + <div class="header-content-right"> + <div class="header--height header--centering"> + <a class="btn btn-small default" href="<?php echo get_base_url($pages_top_link['href']); ?>"><?php echo $pages_top_link['text']; ?></a> + </div> + </div> + <?php + } ?> +</div> diff --git a/content/legacy/themes/Peafowl/views/explore.php b/content/legacy/themes/Peafowl/views/explore.php new file mode 100644 index 0000000..9d513c2 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/explore.php @@ -0,0 +1,55 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\show_banner; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +include_theme_header(); +if (Handler::var('category') !== null && isset(Handler::var('category')['name'])) { + ?> +<div class="content-width"> + <div class="header margin-top-20 margin-bottom-10"> + <h1 class="header-title" rel="tooltip" data-tipTip="right" title="ID:<?php echo Handler::var('category')['id']; ?>"><i class="fas fa-columns color-accent"></i> <strong><?php _se('%s category', '<em><b>' . Handler::var('category')['name'] . '</b></em>'); ?></strong></h1> + </div> + <div><?php echo safe_html(Handler::var('category')['description']); ?></div> +</div> +<?php +} ?> +<div class="top-sub-bar follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs no-select"> +<?php if (Handler::var('list') !== null) { ?> + <h1 class="header-title"><strong><?php echo '<span class="header-icon ' . Handler::var('list')['icon'] . '"></span><span class="phone-hide margin-left-5">' . Handler::var('list')['label']; ?></span></strong> + </h1> +<?php } ?> + <?php include_theme_file("snippets/tabs"); ?> + <?php + if (Handler::cond('content_manager')) { + include_theme_file("snippets/user_items_editor"); ?> + <div class="header-content-right"> + <?php include_theme_file("snippets/listing_tools_editor"); ?> + </div> + <?php + } + ?> + </div> + </div> +</div> +<?php show_banner('explore_after_top', Handler::var('listing')->sfw()); ?> +<div class="content-width"> + <div id="content-listing-tabs" class="tabbed-listing"> + <div id="tabbed-content-group"> + <?php + include_theme_file("snippets/listing"); + ?> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/image.php b/content/legacy/themes/Peafowl/views/image.php new file mode 100644 index 0000000..8ce04bb --- /dev/null +++ b/content/legacy/themes/Peafowl/views/image.php @@ -0,0 +1,368 @@ +<?php + +use function Chevereto\Legacy\arr_printer; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\getFriendlyExif; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\isShowEmbedContent; +use function Chevereto\Legacy\show_banner; +use function Chevereto\Legacy\show_theme_inline_code; +use function Chevereto\Legacy\showComments; +use function Chevereto\Legacy\time_elapsed_string; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +?> +<?php include_theme_header(); ?> +<div id="image-viewer" class="image-viewer full-viewer"> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('image_image-viewer_top', !Handler::var('image')['nsfw']); + } + ?> + <?php + $image_url = isset(Handler::var('image')['medium']) ? Handler::var('image')['medium']['url'] : Handler::var('image')['url']; + ?> + <div id="image-viewer-container" class="image-viewer-main image-viewer-container<?php echo isset(Handler::var('image')['album'], Handler::var('image_album_slice')['images']) ? ' --thumbs' : '';?>"> + <img src="<?php echo $image_url; ?>" <?php if (!getSetting('theme_download_button')) { + ?> class="no-select" <?php + } ?> alt="<?php echo Handler::var('image')['alt']; ?>" width="<?php echo Handler::var('image')['width']; ?>" height="<?php echo Handler::var('image')['height']; ?>" data-is360="<?php echo Handler::var('image')['is_360']; ?>" <?php if (isset(Handler::var('image')['medium'])) { + ?> data-load="full"<?php + } ?>> + <?php if (Handler::var('image')['is_use_loader']) { + ?> + <div id="image-viewer-loader" data-size="<?php echo Handler::var('image')['size']; ?>"><?php if (Handler::var('image')['is_animated']) { + ?><span class="btn-icon icon fas fa-play-circle"></span><?php + } ?><span class="btn-text"><?php + switch (true) { + case Handler::var('image')['is_animated']: + _se('Play GIF'); + + break; + case Handler::var('image')['is_360']: + _se('Load 360° view'); + + break; + default: + echo '<i class="fas fa-cloud-download-alt"></i> ' . Handler::var('image')['size_formatted']; + + break; + } ?></span></div> + <?php + } if (Handler::var('image')['is_360']) { ?> + <div id="image-viewer-360" class="soft-hidden"></div> + <?php } ?> + </div> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('image_image-viewer_foot', !Handler::var('image')['nsfw']); + } + ?> +</div> +<?php show_theme_inline_code('snippets/image.js'); ?> +<?php +show_banner('image_after_image-viewer', !Handler::var('image')['nsfw']); +?> +<?php +if (isset(Handler::var('image')['album'], Handler::var('image_album_slice')['images'])) { + ?> +<div class="panel-thumbs"> + <div class="content-width"> + <ul id="panel-thumb-list" class="panel-thumb-list" data-content="album-slice"><?php include_theme_file('snippets/image_album_slice'); ?></ul> + <div class="image-viewer-navigation arrow-navigator"> + <?php + if (isset(Handler::var('image_album_slice')['prev'])) { + ?> + <a class="left-0" data-action="prev" title="◄" href="<?php echo Handler::var('image_album_slice')['prev']['path_viewer']; ?>" title="<?php _se('%s image', _s('Previous')); ?>"><span class="fas fa-angle-left"></span></a> + <?php + } + if (isset(Handler::var('image_album_slice')['next'])) { + ?> + <a class="right-0" data-action="next" title="►" href="<?php echo Handler::var('image_album_slice')['next']['path_viewer']; ?>" title="<?php _se('%s image', _s('Next')); ?>"><span class="fas fa-angle-right"></span></a> + <?php + } ?> + </div> + </div> +</div> +<?php +} +?> +<div class="content-width margin-top-10"> + <div class="header header-content margin-bottom-10 margin-top-10"> + <div class="header-content-left"> + <div class="header-content-breadcrum"> + <?php if (isset(Handler::var('image')['user']['id'])) { + include_theme_file('snippets/breadcrum_owner_card'); +} else { ?> + <div class="breadcrum-item"> + <div class="user-image default-user-image"><span class="icon fas fa-user-circle"></span></div> + </div> +<?php } ?> + + </div> + </div> + <div class="header-content-right breaks-ui"> + <?php + if (Handler::cond('owner') || Handler::cond('content_manager')) { + ?> + <a data-action="edit" title="E" class="btn btn-small default" data-modal="edit"><span class="icon fas fa-edit"></span><span class="phone-hide margin-left-5"><?php _se('Edit'); ?></span></a> + <?php + if (!Handler::var('image')['is_approved'] && Handler::cond('content_manager')) { ?> + <a class="btn btn-small default" data-confirm="<?php _se("Do you really want to approve this image? The image will go public if you approve it."); ?>" data-submit-fn="CHV.fn.submit_resource_approve" data-ajax-deferred="CHV.fn.complete_resource_approve" data-ajax-url="<?php echo get_base_url('json'); ?>"><span class="icon fas fa-check-double"></span><span class="phone-hide margin-left-5"><?php _se('Approve'); ?></span></a> + <?php + } + if (Handler::cond('allowed_to_delete_content')) { + ?> + <a data-action="delete" title="Del" class="btn btn-small default" data-confirm="<?php _se("Do you really want to delete this image? This can't be undone."); ?>" data-submit-fn="CHV.fn.submit_resource_delete" data-ajax-deferred="CHV.fn.complete_resource_delete" data-ajax-url="<?php echo get_base_url('json'); ?>"><span class="icon fas fa-trash-alt"></span><span class="phone-hide margin-left-5"><?php _se('Delete'); ?></span></a> + <?php + } + } + ?> + <?php if (getSetting('theme_download_button')) { + ?> + <a data-action="download" href="<?php echo Handler::var('image')['url']; ?>" download="<?php echo Handler::var('image')['filename']; ?>" class="btn btn-small default btn-download" rel="tooltip" title="<?php _se('Download'); ?>"><span class="btn-icon fas fa-download"></span></a> + <?php + } ?> + <?php if (isset(Handler::var('image')['album']['id']) && (Handler::cond('owner') || Handler::cond('content_manager'))) { + ?> + <a class="btn-album-cover" data-album-id="<?php echo Handler::var('image')['album']['id_encoded']; ?>" data-id="<?php echo Handler::var('image')['id_encoded']; ?>" data-cover="<?php echo (int) Handler::cond('album_cover'); ?>" title="H"> + <span data-action="album-cover" class="btn btn-small default btn-album-is-cover" rel="tooltip" title="<?php _se('This is the album cover'); ?>"><span class="btn-icon fas fa-check-square"></span><span class="btn-text phone-hide"><?php _se('Cover'); ?></span></span> + <span data-action="album-cover" class="btn btn-small default btn-album-not-cover"><span class="btn-icon far fa-square"></span><span class="btn-text phone-hide"><?php _se('Cover'); ?></span></span> + </a> + <?php + } ?> + <?php if (getSetting('enable_likes')) { + ?> + <a class="btn-like" title="L" data-type="image" data-id="<?php echo Handler::var('image')['id_encoded']; ?>" data-liked="<?php echo (int) (Handler::var('image')['liked'] ?? false); ?>"> + <span data-action="like" class="btn btn-small default btn-liked" rel="tooltip" title="<?php _se('You like this'); ?>"><span class="btn-icon fas fa-heart"></span><span class="btn-text" data-text="likes-count"><?php echo (int) (Handler::var('image')['likes'] ?? false); ?></span></span> + <span data-action="like" class="btn btn-small default btn-unliked"><span class="btn-icon far fa-heart"></span><span class="btn-text" data-text="likes-count"><?php echo (int) (Handler::var('image')['likes'] ?? false); ?></span></span> + </a> + <?php + } + ?> + <?php if (getSetting('theme_show_social_share')) { + ?> + <a class="btn btn-small default" data-action="share" title="S"><span class="btn-icon fas fa-share-alt"></span><span class="btn-text phone-hide"><?php _se('Share'); ?></span></a> + <?php + } ?> + </div> + </div> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('image_before_header', !Handler::var('image')['nsfw']); + } + ?> + <div class="header margin-bottom-10"> + <?php + if (!Handler::var('image')['title']) { + ?> + <h1 class="header-title phone-float-none viewer-title soft-hidden"> + <a data-text="image-title" href="<?php echo Handler::var('image')['path_viewer']; ?>"><?php echo Handler::var('pre_doctitle'); ?></a> + </h1> + <?php + } else { ?> + <h1 class="header-title phone-float-none viewer-title"> + <a data-text="image-title" href="<?php echo Handler::var('image')['path_viewer']; ?>"><?php echo nl2br(Handler::var('image_safe_html')['title'] ?? ''); ?></a> + </h1> + <?php } ?> + <div class="header-content-right phone-margin-bottom-20"> + <div class="number-figures display-inline-block"><?php echo Handler::var('image')['views']; ?> <span><?php echo Handler::var('image')['views_label']; ?></span></div> + </div> + </div> + <p class="description-meta margin-bottom-10"> + <span class="icon far fa-eye-slash <?php if (!isset(Handler::var('image')['album']) or Handler::var('image')['album']['privacy'] == 'public') { + echo 'soft-hidden'; + } ?>" data-content="privacy-private" title="<?php _se('This content is private'); ?>" rel="tooltip"></span> + <?php echo '<span class="far fa-image"></span>' + . ' ' . Handler::var('image')['width'] . ' × ' . Handler::var('image')['height'] + . ' — ' . strtoupper(Handler::var('image')['extension']) + . ' ' . Handler::var('image')['size_formatted']; ?> + </p> + <p class="description-meta margin-bottom-20"> + <?php + if (isset(Handler::var('image')['category_id'])) { + $category = Handler::var('categories')[Handler::var('image')['category_id']] ?? null; + } + if (isset($category)) { + $category_link = '<a href="' . $category['url'] . '" rel="tag"><i class="fas fa-columns margin-right-5"></i>' . $category['name'] . '</a>'; + } + $time_elapsed_string = '<i class="far fa-clock"></i> <span title="' . Handler::var('image')['date_fixed_peer'] . '">' . time_elapsed_string(Handler::var('image')['date_gmt']) . '</span>'; + if (isset(Handler::var('image')['album']['id']) && (Handler::var('image')['album']['privacy'] !== 'private_but_link' || Handler::cond('owner') || Handler::cond('content_manager'))) { + $album_link = '<a href="' . Handler::var('image')['album']['url'] . '"' . (Handler::var('image')['album']['name'] !== Handler::var('image')['album']['name_truncated'] ? (' title="' . Handler::var('image')['album']['name_html'] . '"') : null) . '><i class="fas fa-images margin-right-5"></i>' . Handler::var('image')['album']['name_truncated_html'] . '</a>'; + if (isset($category_link)) { + echo _s('Added to %a and categorized in %c', ['%a' => $album_link, '%c' => $category_link]); + } else { + echo _s('Added to %s', $album_link); + } + echo ' — ' . $time_elapsed_string; + } else { + if (isset($category_link)) { + echo _s('Uploaded to %s', $category_link) . ' — ' . $time_elapsed_string; + } else { + _se('Uploaded %s', $time_elapsed_string); + } + } + if (Handler::var('image')['expiration_date_gmt'] ?? false) { ?> + <span class="user-select-none" rel="tooltip" data-tipTip="top" title="<?php _se('This content will be removed on %s', Handler::var('image')['expiration_date_gmt'] . ' UTC'); ?>" data-text="image-expiration"><i class="fas fa-bomb"></i> <?php echo _s('Expires'); ?></span> + <?php + } ?> + </p> + <div class="header margin-bottom-10 no-select"> + <?php include_theme_file('snippets/tabs'); ?> + </div> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('image_after_header', !Handler::var('image')['nsfw']); + } + ?> + <div id="tabbed-content-group"> + <div id="tab-about" class="tabbed-content<?php echo Handler::var('current_tab') == 'about' ? ' visible' : ''; ?>"> + <div class="c16 phone-c1 phablet-c1 grid-columns margin-right-10"> + <div class="panel-description default-margin-bottom"> + <p class="description-text margin-bottom-5" data-text="image-description"><?php echo nl2br(Handler::var('image_safe_html')['description'] ?? _s('No description provided.')); ?></p> + <?php + if (getSetting('theme_show_exif_data')) { + $image_exif = getFriendlyExif(Handler::var('image')['original_exifdata']); + if ($image_exif) { + ?> + <p class="exif-meta margin-top-20"> + <span class="camera-icon fas fa-camera"></span><?php echo $image_exif->Simple->Camera; ?> + <span class="exif-data"><?php echo $image_exif->Simple->Capture; ?> — <a class="font-size-small" data-toggle="exif-data" data-html-on="<?php _se('Less Exif data'); ?>" data-html-off="<?php _se('More Exif data'); ?>"><?php _se('More Exif data'); ?></a></span> + </p> + <div data-content="exif-data" class="soft-hidden"> + <ul class="tabbed-content-list table-li"> + <?php + foreach ($image_exif->Full as $k => $v) { + $label = preg_replace('/(?<=\\w)(?=[A-Z])/', ' $1', $k); + if (ctype_upper(preg_replace('/\s+/', '', $label))) { + $label = $k; + } ?> + <li><span class="c5 display-table-cell padding-right-10"><?php echo $label; ?></span> <span class="display-table-cell"><?php echo $v; ?></span></li> + <?php + } ?> + </ul> + </div> + <?php + } // $image_exif + } // theme_show_exif_data + ?> + </div> + <?php + if (Handler::cond('content_manager')) { + ?> + <div class="tabbed-content-section"> + <ul class="tabbed-content-list table-li"> + <?php + $image_admin_list_values = Handler::var('image_admin_list_values'); + if (isset(Handler::var('image')['album']['id'])) { + $album_values = [ + 'label' => _s('Album ID'), + 'content' => Handler::var('image')['album']['id'] . ' (' . Handler::var('image')['album']['id_encoded'] . ')', + ]; + $image_admin_list_values = array_slice($image_admin_list_values, 0, 1, true) + + [ + 'album' => [ + 'label' => _s('Album ID'), + 'content' => Handler::var('image')['album']['id'] . ' (' . Handler::var('image')['album']['id_encoded'] . ')', + ], + ] + + array_slice($image_admin_list_values, 1, count($image_admin_list_values) - 1, true); + } + foreach ($image_admin_list_values as $v) { + ?> + <li><span class="c5 display-table-cell padding-right-10 phone-display-block font-weight-bold"><?php echo $v['label']; ?></span><span class="display-table-cell phone-display-block word-break-break-all"><?php echo $v['content']; ?></span></li> + <?php + } ?> + </ul> + <div data-modal="modal-add-ip_ban" class="hidden" data-submit-fn="CHV.fn.ip_ban.add.submit" data-before-fn="CHV.fn.ip_ban.add.before" data-ajax-deferred="CHV.fn.ip_ban.add.complete"> + <span class="modal-box-title"><i class="fas fa-ban"></i> <?php _se('Add IP ban'); ?></span> + <div class="modal-form"> + <?php include_theme_file('snippets/form_ip_ban_edit'); ?> + </div> + </div> + </div> + <?php + } + ?> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('content_before_comments', !Handler::var('image')['nsfw']); + } + ?> + <div class="comments"> + <?php showComments(); ?> + </div> + </div> + <div class="c15 phablet-c1 fluid-column grid-columns margin-left-10 phablet-margin-left-0"> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('content_tab-about_column', !Handler::var('image')['nsfw']); + } + ?> + </div> + </div> + <?php if (isShowEmbedContent()) { + ?> + <div id="tab-embeds" class="tabbed-content<?php echo Handler::var('current_tab') == 'embeds' ? ' visible' : ''; ?>"> + <div class="c24 margin-left-auto margin-right-auto"> + <div class="margin-bottom-30 growl static text-align-center clear-both" data-content="privacy-private"><?php echo Handler::var('image')['album']['privacy_notes'] ?? ''; ?></div> + </div> + <div class="panel-share c16 phone-c1 phablet-c1 grid-columns margin-right-10"> + <?php + foreach (Handler::var('embed') as $embed) { + ?> + <div class="panel-share-item"> + <h4 class="pre-title"><?php echo $embed['label']; ?></h4> + <?php foreach ($embed['entries'] as $entry) { + ?> + <div class="panel-share-input-label"> + <h4 class="title c5 grid-columns"><?php echo $entry['label']; ?></h4> + <div class="c10 phablet-c1 grid-columns"> + <input id="<?php echo $entry['id']; ?>" type="text" class="text-input" value="<?php echo $entry['value']; ?>" data-focus="select-all" readonly> + <button type="button" class="input-action" data-action="copy" data-action-target="#<?php echo $entry['id']; ?>"><i class="far fa-copy"></i> <?php _se('copy'); ?></button> + </div> + </div> + <?php + } ?> + </div> + <?php + } ?> + </div> + </div> + <?php + } ?> + <?php + if (Handler::cond('admin')) { + ?> + <div id="tab-info" class="tabbed-content<?php echo Handler::var('current_tab') == 'info' ? ' visible' : ''; ?>"> + <?php echo arr_printer(Handler::var('image_safe_html'), '<li><div class="c4 display-table-cell padding-right-10 font-weight-bold">%K</div> <div class="display-table-cell">%V</div></li>', ['<ul class="tabbed-content-list table-li">', '</ul>']); ?> + </div> + <?php + } + ?> + </div> + <?php + if (Handler::var('image')['is_approved']) { + show_banner('image_footer', !Handler::var('image')['nsfw']); + } + ?> +</div> +<?php +if (Handler::cond('owner') || Handler::cond('content_manager')) { + ?> + <div data-modal="form-modal" class="hidden" data-submit-fn="CHV.fn.submit_image_edit" data-before-fn="CHV.fn.before_image_edit" data-ajax-deferred="CHV.fn.complete_image_edit" data-ajax-url="<?php echo get_base_url('json'); ?>"> + <span class="modal-box-title"><i class="fas fa-edit"></i> <?php _se('Edit'); ?></span> + <div class="modal-form"> + <?php + include_theme_file('snippets/form_image'); ?> + </div> + </div> +<?php + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/index.php b/content/legacy/themes/Peafowl/views/index.php new file mode 100644 index 0000000..25fc3b9 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/index.php @@ -0,0 +1,89 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\show_banner; +use function Chevereto\Legacy\show_theme_inline_code; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +include_theme_header(); +$hasPrev = false; +if (Settings::get('homepage_style') == 'split') { + show_theme_inline_code('snippets/index.js'); + if (Handler::var('list') !== null) { + $listing = Handler::var('listing'); + $hasPrev = $listing->has_page_prev(); + } +} +if ($hasPrev == false) { ?> +<div id="home-cover"> + <?php include_theme_file('snippets/homepage_cover_slideshow'); ?> + <div id="home-cover-content" class="c20 phone-c1 phablet-c1 fluid-column center-box padding-left-10 padding-right-10"> + <?php show_banner('home_before_title', (Handler::var('listing') !== null ? Handler::var('listing')->sfw() : true)); ?> + <h1><?php echo getSetting('homepage_title_html') ?: _s('Upload and share your images.'); ?></h1> + <p class="c20 center-box text-align-center"><?php echo getSetting('homepage_paragraph_html') ?? _s('Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails.', getSetting('upload_max_filesize_mb') . ' MB'); ?></p> + <div class="home-buttons"> + <?php echo Handler::var('homepage_cta'); ?> + </div> + <?php show_banner('home_after_cta', (Handler::var('listing') !== null ? Handler::var('listing')->sfw() : true)); ?> + </div> +</div> +<?php } ?> +<?php show_banner('home_after_cover', (Handler::var('listing') !== null ? Handler::var('listing')->sfw() : true)); ?> +<?php if (Settings::get('homepage_style') == 'split') { + ?> + +<div class="top-sub-bar follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs"> + <h2 class="header-title"><strong><?php + echo isset($home_user) + ? _s("%s's Images", $home_user['name_short']) + : ('<span class="' . Handler::var('list')['icon'] . '"></span><span class="phone-hide margin-left-5">' . Handler::var('list')['label']); ?></span></strong></h1> + <?php include_theme_file("snippets/tabs"); ?> + <?php + if (Handler::cond('content_manager')) { + include_theme_file("snippets/user_items_editor"); ?> + <div class="header-content-right"> + <?php include_theme_file("snippets/listing_tools_editor"); ?> + </div> + <?php + } ?> + </div> + </div> +</div> + +<div class="content-width"> + <div class="<?php echo (!isset($listing) || count($listing->output) == 0) + ? 'empty' + : 'filled'; ?>"> + <div id="content-listing-tabs" class="tabbed-listing"> + <div id="tabbed-content-group"> + <?php + include_theme_file("snippets/listing"); ?> + </div> + </div> + </div> + <?php show_banner('home_after_listing', (Handler::var('listing') !== null ? Handler::var('listing')->sfw() : true)); ?> + <?php + if (!Handler::var('logged_user') and getSetting('enable_signups')) { + ?> + <div id="home-join" class="c20 fluid-column center-box text-align-center"> + <h2><?php _se('Sign up to unlock all the features'); ?></h2> + <p><?php _se('Manage your content, create private albums, customize your profile and more.'); ?></p> + <div class="home-buttons"><a href="<?php echo get_base_url('signup'); ?>" class="btn btn-big accent"><?php _se('Create account'); ?></a></div> + </div> + <?php + } ?> +</div> +<?php +} ?> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/login.php b/content/legacy/themes/Peafowl/views/login.php new file mode 100644 index 0000000..82bbbd3 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/login.php @@ -0,0 +1,59 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-sign-in-alt"></i> <?php _se('Sign in with your account'); ?></h1> + <?php if (getSetting('enable_signups')) { + ?> + <div class="content-section"><?php _se("Don't have an account? %signup% now.", ['%signup%' => '<a href=' . get_base_url('signup') . '><i class="fas fa-user-plus margin-right-5"></i>' . _s('Sign up') . '</a>']); ?></div> + <?php +} ?> + <form class="content-section" method="post" autocomplete="off" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div> + <input autofocus autocomplete="nickname" name="login-subject" tabindex="1" autocorrect="off" autocapitalize="off" type="text" placeholder="<?php _se('Username or Email address'); ?>" class="input" required> + </div> + <div class="input-with-button"> + <input autocomplete="current-password" name="password" tabindex="2" type="password" placeholder="<?php _se('Password'); ?>" class="input" required> + <button type="submit" tabindex="3" class="cursor-pointer icon--input-submit fas fa-arrow-alt-circle-right"></button> + </div> + </fieldset> + <div class="input-label-below text-align-right margin-top-5"> + <a href="<?php echo get_base_url('account/password-forgot'); ?>"><i class="fas fa-key margin-right-5"></i><?php _se('Forgot password?'); ?></a> + </div> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + </form> + <?php include_theme_file('snippets/quickty/login_providers'); ?> + </div> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> + +<?php if (Handler::var('post') && Handler::cond('error')) { + ?> +<script> +$(document).ready(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/logout.php b/content/legacy/themes/Peafowl/views/logout.php new file mode 100644 index 0000000..f0fb74a --- /dev/null +++ b/content/legacy/themes/Peafowl/views/logout.php @@ -0,0 +1,24 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="center-box c24 margin-top-20"> + <div class="content-width"> + <div class="header default-margin-bottom"> + <h1 class="header-title"><?php _se('Logged out'); ?></h1> + </div> + <div> + <p><?php _se('You have been logged off %s. Hope to see you soon.', Handler::var('safe_html_website_name')); ?></p> + <div class="btn-container"><a href="<?php echo get_base_url(); ?>" class="btn btn-input default"><?php _se('Go to homepage'); ?></a></div> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/maintenance.php b/content/legacy/themes/Peafowl/views/maintenance.php new file mode 100644 index 0000000..9924de4 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/maintenance.php @@ -0,0 +1,25 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\get_system_image_url; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +$logo_header = getSetting('logo_' . getSetting('logo_type')); +?> +<?php include_theme_header(); ?> +<div id="maintenance-cover" style="background-image: url(<?php echo get_system_image_url(getSetting('maintenance_image')); ?>);"> + <div id="maintenance-cover-inner"> + <div id="maintenance-cover-content" class="c16 center-box"> + <a class="logo" href="<?php echo Handler::var('header_logo_link'); ?>"><?php if (getSetting('logo_type') !== 'text') { ?><img src="<?php echo get_system_image_url($logo_header); ?>" alt="<?php echo Handler::var('safe_html_website_name'); ?>"><?php } else { ?><?php echo Handler::var('safe_html_website_name'); ?><?php } ?></a> + <h1><?php _se('Website under maintenance'); ?></h1> + <p><?php _se("We're performing scheduled maintenance tasks in the website. Please come back in a few minutes."); ?></p> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/password-gate.php b/content/legacy/themes/Peafowl/views/password-gate.php new file mode 100644 index 0000000..0ad8756 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/password-gate.php @@ -0,0 +1,48 @@ +<?php + +use function Chevereto\Legacy\G\get_input_auth_token; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="content-width"> + <div class="content-password-gate"> + <div class="c16 center-box"> + <h1><span class="icon fas fa-lock"></span><?php _se('This content is password protected.'); ?></h1> + <p></p> + <p><?php _se('Please enter your password to continue.'); ?></p> + <form method="post" autocomplete="off" data-action="validate"> + <?php echo get_input_auth_token(); ?> + <div class="input-label c8 center-box"> + <label for="content-password"><?php _se('Password'); ?></label> + <input type="password" id="content-password" name="content-password" class="text-input" required> + </div> + <?php if (Handler::cond('captcha_needed') && Handler::var('captcha_html') !== null) { + ?> + <div class="input-label center-box"> + <?php echo Handler::var('captcha_html'); ?> + </div> + <?php +} ?> + <div class="btn-container margin-bottom-0"> + <button class="btn btn-input accent" type="submit"><i class="fas fa-unlock"></i> <?php _se('Unlock'); ?></button> + </div> + </form> + </div> + </div> +</div> +<?php if (Handler::cond('error') && Handler::var('error') !== null) { + ?> +<script> +$(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php + } ?> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/search.php b/content/legacy/themes/Peafowl/views/search.php new file mode 100644 index 0000000..c777179 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/search.php @@ -0,0 +1,43 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="content-width"> + <div class="header margin-top-20 margin-bottom-20"> + <h1><i class="header-icon fas fa-search color-accent"></i> <strong><?php _se('Search results for %s', '<em><b>' . Handler::var('safe_html_search')["d"] . '</b></em>'); ?></strong></h1> + </div> +</div> +<div class="top-sub-bar follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs no-select"> + <?php include_theme_file("snippets/tabs"); ?> + <?php + if (Handler::cond('content_manager')) { + include_theme_file("snippets/user_items_editor"); ?> + <div class="header-content-right"> + <?php include_theme_file("snippets/listing_tools_editor"); ?> + </div> + <?php + } + ?> + </div> + </div> +</div> +<div class="content-width"> + <div id="content-listing-tabs" class="tabbed-listing"> + <div id="tabbed-content-group"> + <?php + include_theme_file("snippets/listing"); + ?> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/settings.php b/content/legacy/themes/Peafowl/views/settings.php new file mode 100644 index 0000000..e5e1661 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings.php @@ -0,0 +1,94 @@ +<?php + +use function Chevereto\Legacy\G\get_input_auth_token; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +include_theme_header(); ?> +<div class="top-sub-bar follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs no-select"> + <h1 class="header-title"><strong><span class="header-icon fas fa-user-cog"></span><span class="phone-hide margin-left-5"><?php _se('Settings'); ?></span></strong> + </h1> + <?php include_theme_file("snippets/tabs"); ?> + </div> + </div> +</div> + +<div class="content-width margin-top-20"> + <div class="form-content"> + <form data-content="main-form" class="overflow-auto" method="post" data-type="<?php echo Handler::var('setting'); ?>" data-action="validate"> + <?php echo get_input_auth_token(); ?> + <?php + if (Handler::cond('settings_account')) { + require 'settings/account.php'; + } + if (Handler::cond('settings_powered')) { + require 'settings/powered.php'; + } + if (Handler::cond('settings_api')) { + require 'settings/api.php'; + } + if (Handler::cond('settings_password')) { + require 'settings/password.php'; + } + if (Handler::cond('settings_profile')) { + require 'settings/profile.php'; + } + if (Handler::cond('settings_connections')) { + require 'settings/connections.php'; + } + if (Handler::cond('settings_security')) { + require 'settings/security.php'; + } + if (Handler::cond('settings_homepage')) { + require 'settings/homepage.php'; + } ?> + <?php if (Handler::cond('captcha_needed') && Handler::var('captcha_html') !== null) { + ?> + <div class="input-label"> + <label for="recaptcha_response_field">CAPTCHA</label> + <?php echo Handler::var('captcha_html'); ?> + </div> + <?php + } + if (!Handler::cond('settings_connections') + && !Handler::cond('settings_powered') + && !Handler::cond('settings_api') + && !Handler::cond('settings_security') + ) { + ?> + <div class="btn-container btn-container--fixed"> + <div class="c24 center-box text-align-center"> + <button class="btn btn-input accent" type="submit" title="Ctrl/Cmd + Enter"><span class="fa fa-check-circle btn-icon"></span><span class="btn-text"><?php _se('Save changes'); ?></span></button> + </div> + </div> + <?php + } ?> + </form> + </div> +</div> +<?php if (Handler::var('post')) { + if (Handler::cond('changed')) { ?> + <script> + $(function() { + PF.fn.growl.expirable("<?php echo Handler::var('changed_message') ?? _s('Changes have been saved.'); ?>"); + }); + </script> +<?php + } + if (Handler::cond('error')) { ?> + <script> + $(function() { + PF.fn.growl.call("<?php echo Handler::var('error_message') ?? _s('Check the errors to proceed.'); ?>"); + }); + </script> +<?php } + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/settings/account.php b/content/legacy/themes/Peafowl/views/settings/account.php new file mode 100644 index 0000000..ccedb33 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/account.php @@ -0,0 +1,219 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Image; +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\get_checkbox_html; +use function Chevereto\Legacy\get_enabled_languages; +use function Chevereto\Legacy\get_select_options_html; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +if (Handler::cond('dashboard_user') or Handler::cond('content_manager')) { + if (Handler::var('user')['registration_ip']) { + ?> + <div data-modal="modal-add-ip_ban" class="hidden" data-submit-fn="CHV.fn.ip_ban.add.submit" data-before-fn="CHV.fn.ip_ban.add.before" data-ajax-deferred="CHV.fn.ip_ban.add.complete"> + <span class="modal-box-title"><i class="fas fa-ban"></i> <?php _se('Add IP ban'); ?></span> + <div class="modal-form"> + <?php include_theme_file('snippets/form_ip_ban_edit'); ?> + </div> + </div> + <?php + } ?> + <ul class="tabbed-content-list table-li margin-bottom-20"> +<?php + foreach (Handler::var('user_list_values') as $v) { + ?> + <li><span class="c4 display-table-cell padding-right-10"><?php echo $v['label']; ?></span> <span class="display-table-cell"><?php echo $v['content']; ?></span></li> + <?php + } ?> + </ul> + <div class="c5 phablet-c1"> + <div class="input-label"> + <label for="status"><?php _se('Status'); ?></label> + <select name="status" id="status" class="text-input"> + <?php + foreach ([ + 'valid' => _s('Valid'), + 'banned' => _s('Banned'), + 'awaiting-email' => _s('Awaiting email'), + 'awaiting-confirmation' => _s('Awaiting confirmation') + ] as $k => $v) { + $selected = $k == Handler::var('user')["status"] ? " selected" : ""; + echo '<option value="' . $k . '"' . $selected . '>' . $v . '</option>' . "\n"; + } ?> + </select> + </div> + <?php + if (Login::isAdmin()) { + ?> + <div class="input-label"> + <label for="role"><?php _se('Role'); ?></label> + <select name="role" id="role" class="text-input"> + <?php + foreach ([ + 'user' => ['label' => _s('User'), 'selected' => !Handler::var('user')['is_admin']], + 'manager' => ['label' => _s('Manager'), 'selected' => Handler::var('user')['is_manager']], + 'admin' => ['label' => _s('Administrator'), 'selected' => Handler::var('user')['is_admin']], + ] as $k => $v) { + $selected = $v['selected'] ? " selected" : ""; + echo '<option value="' . $k . '"' . $selected . '>' . $v['label'] . '</option>' . "\n"; + } ?> + </select> + </div> + <?php + } ?> + </div> + <hr class="line-separator"> + </hr> +<?php +} ?> +<div class="c12 phablet-c1"> + <div class="input-label"> + <label for="username"><?php _se('Username'); ?></label> + <input autocomplete="nickname" type="text" name="username" id="username" maxlength="<?php echo getSetting('username_max_length'); ?>" class="text-input" value="<?php echo Handler::var('safe_post')["username"] ?? Handler::var('user')["username"]; ?>" pattern="<?php echo getSetting('username_pattern'); ?>" rel="tooltip" title='<?php _se('%i to %f characters<br>Letters, numbers and "_"', ['%i' => getSetting('username_min_length'), '%f' => getSetting('username_max_length')]); ?>' data-tipTip="right" placeholder="<?php _se('Username'); ?>" required> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["username"] ?? ''; ?></span> + <?php + if (getSetting('website_mode') == 'community') { + ?> + <div class="input-below"><?php echo get_public_url( + getSetting('root_route') === 'user' + ? '' + : getSetting('route_user') + ) . '/'; ?><span data-text="username"><?php echo Handler::var('user')["username"]; ?></span></div> + <?php + } ?> + </div> + <?php + if (Handler::cond('owner') || Login::isAdmin()) { + ?> + <div class="input-label"> + <label for="email"><?php _se('Email address'); ?></label> + <input autocomplete="email" type="email" name="email" id="email" class="text-input" value="<?php echo Handler::var('safe_post')["email"] ?? Handler::var('user')["email"]; ?>" placeholder="<?php _se('Your email address'); ?>" <?php if (Handler::cond('email_required')) { + ?> required<?php + } ?>> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["email"] ?? ''; ?></span> + <?php if (Handler::var('changed_email_message')) { + ?><div class="input-below highlight padding-5 display-inline-block"><?php echo Handler::var('changed_email_message'); ?></div><?php + } ?> + </div> + <?php + } ?> +</div> +<hr class="line-separator"> +</hr> +<?php if (getSetting('enable_expirable_uploads')) { ?> + <div class="input-label"> + <label for="image_expiration"><?php _se('Auto delete uploads'); ?></label> + <div class="c6 phablet-1"> + <select type="text" name="image_expiration" id="image_expiration" class="text-input"> + <?php + echo get_select_options_html(Image::getAvailableExpirations(), Handler::var('safe_post') ? Handler::var('safe_post')['image_expiration'] : Handler::var('user')['image_expiration']); ?> + </select> + </div> + <div class="input-below input-warning red-warning"><?php echo Handler::var('input_errors')["image_expiration"] ?? ''; ?></div> + <div class="input-below"><?php _se('This setting will apply to all your image uploads by default. You can override this setting on each upload.'); ?></div> + </div> + <hr class="line-separator"> + </hr> +<?php + } ?> +<?php if (getSetting('upload_image_exif_user_setting')) { + ?> + <div class="input-label"> + <label><?php _se('Image Exif data'); ?></label> + <?php echo get_checkbox_html([ + 'name' => 'image_keep_exif', + 'label' => _s('Keep image <a %s>Exif data</a> on upload', 'href="https://www.google.com/search?q=Exif" target="_blank"'), + 'checked' => ((bool) (Handler::var('safe_post')['image_keep_exif'] ?? Handler::var('user')['image_keep_exif'])) + ]); ?> + </div> +<?php + } ?> +<div class="input-label"> + <label><?php _se('Newsletter'); ?></label> + <?php echo get_checkbox_html([ + 'name' => 'newsletter_subscribe', + 'label' => _s('Send me emails with news about %s', Handler::var('safe_html_website_name')), + 'checked' => ((bool) (Handler::var('safe_post')['newsletter_subscribe'] ?? Handler::var('user')['newsletter_subscribe'])) + ]); ?> +</div> +<div class="input-label"> + <label><?php _se('Content settings'); ?></label> + <?php echo get_checkbox_html([ + 'name' => 'show_nsfw_listings', + 'label' => _s('Show not safe content in listings (from others)'), + 'checked' => ((bool) (Handler::var('safe_post')['show_nsfw_listings'] ?? Handler::var('user')['show_nsfw_listings'])) + ]); ?> +</div> +<hr class="line-separator"></hr> +<?php if (getSetting('language_chooser_enable')) { + ?> + <div class="c5 phablet-c1"> + <div class="input-label"> + <label for="language"><?php _se('Language'); ?></label> + <select name="language" id="language" class="text-input"> + <?php + $enabled_languages = get_enabled_languages(); + foreach ($enabled_languages as $k => $v) { + $selected_lang = $k == Handler::var('user')['language'] ? " selected" : ""; + echo '<option value="' . $k . '"' . $selected_lang . '>' . $v["name"] . '</option>' . "\n"; + } ?> + </select> + </div> + </div> +<?php + } ?> +<?php + $zones = timezone_identifiers_list(); +foreach ($zones as $zone) { + $zone = explode('/', $zone); + if (in_array($zone[0], ["Africa", "America", "Antarctica", "Arctic", "Asia", "Atlantic", "Australia", "Europe", "Indian", "Pacific"])) { + if (isset($zone[1]) != '') { + $regions[$zone[0]][$zone[0] . '/' . $zone[1]] = str_replace('_', ' ', $zone[1]); + } + } +} ?> +<div class="input-label"> + <label for="timezone"><?php _se('Timezone'); ?></label> + <div class="overflow-auto"> + <select id="timezone-region" class="c5 phablet-c1 grid-columns margin-right-10 phone-margin-bottom-10 phablet-margin-bottom-10 text-input" data-combo="timezone-combo"> + <option><?php _se('Select region'); ?></option> +<?php +$user_region = preg_replace("/(.*)\/.*/", "$1", Handler::var('user')["timezone"]); +foreach ($regions ?? [] as $key => $region) { + $selected = $user_region == $key ? " selected" : ""; + echo '<option value="' . $key . '"' . $selected . '>' . $key . '</option>'; +} ?> + </select> + <div id="timezone-combo" class="c5 phablet-c1 grid-columns"> + <?php + foreach ($regions ?? [] as $key => $region) { + $show_hide = $user_region == $key ? "" : " soft-hidden"; ?> + <select id="timezone-combo-<?php echo $key; ?>" class="text-input switch-combo<?php echo $show_hide; ?>" data-combo-value="<?php echo $key; ?>"> + <?php + foreach ($region as $k => $l) { + $selected = Handler::var('user')["timezone"] == $k ? " selected" : ""; + echo '<option value="' . $k . '"' . $selected . '>' . $l . '</option>' . "\n"; + } ?> + </select> + <?php + } ?> + </div> + </div> + <input type="hidden" id="timezone" name="timezone" data-content="timezone" data-highlight="#timezone-region" value="<?php echo Handler::var('user')["timezone"]; ?>" required> +</div> diff --git a/content/legacy/themes/Peafowl/views/settings/api.php b/content/legacy/themes/Peafowl/views/settings/api.php new file mode 100644 index 0000000..40dba44 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/api.php @@ -0,0 +1,35 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\time_elapsed_string; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +$api_date = Handler::var('api_v1_date_created'); ?> +<div class="growl static inline font-size-small"><?php + _se( + 'Learn about %s at our %d.', + [ + '%s' => '<b><i class="fas fa-project-diagram"></i> API</b>', + '%d' => '<a rel="external" href="https://v4-docs.chevereto.com/developer/api/api-v1.html" target="_blank">' . _s('documentation') . '</a>', + ] +); ?></div> +<div class="input-label"> + <label for="api_v1_key"><?php _se('API key'); ?></label> + <?php if (Handler::hasVar('api_v1_key')) { ?> + <div class="input-below"><span class="highlight padding-5 display-inline-block"><i class="fas fa-exclamation-triangle"></i> <?php _se('Store the %s in a secure location as it will be shown just once.', _s('API key')); ?></span></div> + <div class="c12 phablet-c1 position-relative margin-top-10"> + <input readonly type="text" data-focus="select-all" name="api_v1_key" id="api_v1_key" class="text-input" value="<?php echo Handler::var('api_v1_key'); ?>"> + <button type="button" class="input-action" data-action="copy" data-action-target="#api_v1_key"><i class="far fa-copy"></i> <?php _se('copy'); ?></button> + </div> + <?php } ?> + <div class="margin-top-10"> + <p><?php echo Handler::var('api_v1_public_display'); ?></p> + <?php echo '<i class="far fa-clock"></i> <span title="' . $api_date . '">' . time_elapsed_string($api_date) . '</span>'; ?> + </div> + <div class="margin-top-10"> + <button type="button" class="btn btn-small default" data-confirm="<?php _se("Are you sure that you want to revoke the existing API key?"); ?>" data-submit-fn="CHV.fn.user_api.delete.submit" data-ajax-deferred="CHV.fn.user_api.delete.deferred"><span class="icon fas fa-redo"></span><span class="margin-left-5"><?php _se('Regen key'); ?></span></button> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/settings/connections.php b/content/legacy/themes/Peafowl/views/settings/connections.php new file mode 100644 index 0000000..6191fb9 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/connections.php @@ -0,0 +1,69 @@ +<?php + +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +if (Handler::cond('dashboard_user')) { + ?> + <p data-content="empty-message" <?php if (count(Handler::var('connections')) > 0) { + ?>class="soft-hidden" <?php + } ?>><?php _se('User has no connections.'); ?></p> +<?php +} else { + ?> + <p><?php _se('Link your account to external login providers to be able to login here.'); ?></p> +<?php + } ?> +<?php + foreach (Handler::var('connections') as $name => $connection) { + $isConnectedNow = false; + if (Handler::cond('dashboard_user')) { + $confirm_message = _s('Do you really want to disconnect %s from this account?', $connection['label'] ?? ''); + $title = _s('This account is connected to %s', $connection['label'] ?? ''); + } else { + $confirm_message = _s('Do you really want to disconnect your %s account?', $connection['label'] ?? ''); + if (Login::getSession()['type'] == 'cookie_' . $name) { + $isConnectedNow = true; + $confirm_message .= ' ' . _s("You will be logged out and you won't be able to login to your account using this %s account.", $connection['label'] ?? ''); + } + $title = _s('Connected to %s', $connection['label'] ?? ''); + } + $title .= ' ' . strtr('(%display% — %id%)', [ + '%display%' => $connection['resource_name'] ?? '', + '%id%' => $connection['resource_id'] ?? '', + ]); ?> + <div id="<?php echo $name; ?>" class="account-link account-linked input-label" data-connection="<?php echo $name; ?>"> + <h3><span class="btn-icon fab fa-<?php echo $name; ?>"></span> <?php echo $connection['label']; ?><?php echo $isConnectedNow ? ' <i class="far fa-check-circle color-success" rel="toolTip" title="' . _s('Logged in') . '" data-tipTip="top"></i>' : ''; ?></h3> + <div class="margin-bottom-5"><?php echo $title; ?></div> + <a class="btn btn-small default" data-action="disconnect" data-connection="<?php echo $name; ?>" data-confirm-message="<?php echo $confirm_message; ?>"><i class="fas fa-trash-alt margin-right-5"></i><?php _se('Delete'); ?></a> + </div> +<?php + } ?> +<?php + if (!Handler::cond('dashboard_user')) { + $tpl = '<h3><span class="fab fa-%s"></span> %label%</h3> + <a class="login-provider-button login-provider-button--%s" href="%u"><span class="fab fa-%s"> </span><span class="text">' . _s('Connect %label%') . '</span></a>'; ?> + <div class="c6 phone-c1 phablet-c2 margin-top-20"> + <?php + foreach (Handler::var('providers_enabled') as $name => $provider) { + ?> + <div id="<?php echo $name; ?>" class="account-link input-label<?php if (isset(Handler::var('connections')[$name])) { + echo ' soft-hidden'; + } ?>" data-connect="<?php echo $name; ?>"> + + <?php echo strtr($tpl, [ + '%s' => $name, + '%label%' => $provider['label'], + '%u' => get_base_url('connect/' . $name), + ]); ?> + </div> +<?php + } ?> + </div> +<?php + } ?> diff --git a/content/legacy/themes/Peafowl/views/settings/homepage.php b/content/legacy/themes/Peafowl/views/settings/homepage.php new file mode 100644 index 0000000..07f38ea --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/homepage.php @@ -0,0 +1,24 @@ +<?php + +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<div class="input-label"> + <label for="homepage_title_html"><?php _se('Title'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="homepage_title_html" id="homepage_title_html" class="text-input r2 resize-vertical" placeholder="<?php echo Handler::var('user')['name']; ?>"><?php echo Settings::get('homepage_title_html'); ?></textarea></div> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["homepage_title_html"] ?? ''; ?></span> +</div> +<div class="input-label"> + <label for="homepage_paragraph_html"><?php _se('Paragraph'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="homepage_paragraph_html" id="homepage_paragraph_html" class="text-input r2 resize-vertical" placeholder="<?php _se('Feel free to browse and discover all my shared images and albums.'); ?>"><?php echo Settings::get('homepage_paragraph_html'); ?></textarea></div> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["homepage_paragraph_html"] ?? ''; ?></span> +</div> +<div class="input-label"> + <label for="homepage_cta_html"><?php _se('Button'); ?></label> + <div class="c12 phablet-c1"><textarea type="text" name="homepage_cta_html" id="homepage_cta_html" class="text-input r2 resize-vertical" placeholder="<?php _se('View all my images'); ?>"><?php echo Settings::get('homepage_cta_html'); ?></textarea></div> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["homepage_cta_html"] ?? ''; ?></span> +</div> diff --git a/content/legacy/themes/Peafowl/views/settings/password.php b/content/legacy/themes/Peafowl/views/settings/password.php new file mode 100644 index 0000000..eed215a --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/password.php @@ -0,0 +1,58 @@ +<?php + +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +if (Login::hasPassword(Handler::var('user')['id'])) { ?> + <div class="c12 phablet-c1"> + <?php + if (!Handler::cond('dashboard_user')) { + ?> + <div class="input-label input-password"> + <label for="current-password"><?php _se('Current password'); ?></label> + <input autocomplete="current-password" type="password" name="current-password" id="current-password" class="text-input" value="<?php echo Handler::var('safe_post')["current-password"] ?? ''; ?>" placeholder="<?php _se('Enter your current password'); ?>" required> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["current-password"] ?? ''; ?></span> + <div class="input-below text-align-right"><a href="<?php echo get_base_url("account/password-forgot"); ?>"><i class="fas fa-key margin-right-5"></i><?php _se('Forgot password?'); ?></a></div> + </div> + <?php + } ?> + <div class="input-label input-password"> + <label for="new-password"><?php _se('New password'); ?></label> + <input autocomplete="new-password" type="password" name="new-password" id="new-password" class="text-input" value="<?php echo Handler::var('safe_post')["new-password"] ?? ''; ?>" pattern="<?php echo getSetting('user_password_pattern'); ?>" rel="tooltip" title="<?php _se('%d characters min', getSetting('user_password_min_length')); ?>" data-tipTip="right" placeholder="<?php _se('Enter your new password'); ?>" required> + <div class="input-password-strength"><span style="width: 0%" data-content="password-meter-bar"></span></div> + <span class="input-warning red-warning" data-text="password-meter-message"><?php echo Handler::var('input_errors')["new-password"] ?? ''; ?></span> + </div> + <div class="input-label input-password"> + <label for="new-password-confirm"><?php _se('Confirm new password'); ?></label> + <input autocomplete="new-password" type="password" name="new-password-confirm" id="new-password-confirm" class="text-input" value="<?php echo Handler::var('safe_post')["new-password-confirm"] ?? ''; ?>" placeholder="<?php _se('Re-enter your new password'); ?>" required> + <span class="text-align-right input-warning input-below red-warning<?php echo isset(Handler::var('input_errors')["new-password-confirm"]) ? "" : " hidden-visibility"; ?>" data-text="<?php _se("Passwords don't match"); ?>"><?php if (isset(Handler::var('input_errors')["new-password-confirm"])) { + echo _s("Passwords don't match"); + } ?></span> + </div> + </div> +<?php } else { ?> + <p class="margin-bottom-20"><?php if (!Handler::cond('dashboard_user')) { + _se('Add a password to be able to login using your username or email.'); + } else { + _se("This user doesn't have a password. Add one using this form."); + } ?></p> + <div class="c12 phablet-c1"> + <div class="input-label input-password"> + <label for="new-password"><?php _se('Password'); ?></label> + <input type="password" name="new-password" id="new-password" class="text-input" value="<?php echo Handler::var('safe_post')["new-password"] ?? ''; ?>" pattern="<?php echo getSetting('user_password_pattern'); ?>" rel="tooltip" title="<?php _se('%d characters min', getSetting('user_password_min_length')); ?>" data-tipTip="right" placeholder="<?php _se('Enter your password'); ?>" required> + <div class="input-password-strength"><span style="width: 0%" data-content="password-meter-bar"></span></div> + <span class="input-warning red-warning" data-text="password-meter-message"><?php echo Handler::var('input_errors')["new-password"] ?? ''; ?></span> + </div> + <div class="input-label input-password"> + <label for="new-password-confirm"><?php _se('Confirm password'); ?></label> + <input type="password" name="new-password-confirm" id="new-password-confirm" class="text-input" value="<?php echo Handler::var('safe_post')["new-password-confirm"] ?? ''; ?>" maxlength="255" placeholder="<?php _se('Re-enter your password'); ?>" required> + <span class="input-warning red-warning<?php echo isset(Handler::var('input_errors')["new-password-confirm"]) ? "" : " hidden-visibility"; ?>" data-text="<?php _se("Passwords don't match"); ?>"><?php _se("Passwords don't match"); ?></span> + </div> + </div> +<?php } ?> diff --git a/content/legacy/themes/Peafowl/views/settings/powered.php b/content/legacy/themes/Peafowl/views/settings/powered.php new file mode 100644 index 0000000..bc2b12a --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/powered.php @@ -0,0 +1,58 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use function Chevereto\Legacy\G\absolute_to_url; +use function Chevereto\Vars\env; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +if (env()['CHEVERETO_CONTEXT'] === 'saas') { + $about = _s('This service is based on Chevereto hosted edition.') + . ' ' . _s('Usage of this service must be in compliance with the Chevereto Software Terms of Service.'); + $liability = _s("This instance is hosted in a service layer provided by Chevereto Software, which hereby declare not being responsible for the use of this service neither the damages that this service may cause."); +} else { + $about = _s('This service is based on Chevereto self-hosted edition.') + . ' ' . _s('Usage of Chevereto Software must be in compliance with the software license terms known as "The Chevereto License".'); + $liability = _s("This instance is hosted in a service layer not provided by Chevereto Software, which hereby declare to do not have any control nor access to the management layer of this instance and it won't be responsible for this service neither the damages that this service may cause."); +} + +?> +<style> +.powered-by p { + margin: 10px 0; + line-height: 1.4; +} +.powered-by--provider img { + max-width: 100%; +} +.powered-by--vendor { + font-size: 90%; +} +.powered-by--vendor a { + color: inherit; +} +.powered-by--fineprint { + font-size: 75% !important; + text-align: justify; + text-transform: uppercase; + opacity: 0.7; +} +</style> +<div class="powered-by powered-by--vendor"> + <div class="display-inline-block margin-left-auto margin-right-auto"><a href="https://chevereto.com" target="_blank" rel="nofollow"><img src="<?php echo absolute_to_url(PATH_PUBLIC_CONTENT_LEGACY_SYSTEM . 'chevereto-blue.svg'); ?>" alt="" width="212"></a></div> + <p><a href="https://chevereto.com/" target="_blank" class="btn btn-small default text-transform-uppercase"><span class="btn-icon fa-btn-icon fas fa-power-off"></span> chevereto.com</a></p> + <div class="powered-by--fineprint c12 phone-c1 phablet-c1"> + <p><?php echo $about; ?></p> + <p><?php echo $liability ?></p> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/settings/profile.php b/content/legacy/themes/Peafowl/views/settings/profile.php new file mode 100644 index 0000000..f5fa814 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/profile.php @@ -0,0 +1,63 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\get_checkbox_html; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<div class="c12 phablet-c1"> + <div class="input-upload user-settings-avatar"> + <div class="user-settings-avatar-container grid-columns margin-right-10 phablet-float-left"> + <?php if (isset(Handler::var('user')['avatar']['filename'])) { ?> + <img src="<?php echo Handler::var('user')['avatar']['url']; ?>" alt="" class="user-image"> + <?php } else { ?> + <img src="" alt="" class="user-image<?php echo !isset(Handler::var('user')['avatar']['filename']) ? ' hidden' : ''; ?>"> + <?php } ?> + <span class="user-image default-user-image<?php echo isset(Handler::var('user')['avatar']['filename']) ? ' hidden' : ''; ?>"><span class="icon fas fa-user-circle"></span></span> + <div class="user-image loading-placeholder hidden"><?php _se('loading'); ?></div> + </div> + <div class="actions"> + <div class="btn-container phone-text-align-center"> + <a class="btn btn-small default" data-trigger="user-avatar-upload"><span class="btn-icon fas fa-camera"></span><span class="btn-text"><?php _se('Upload avatar'); ?></span></a> + <div class="margin-top-5<?php echo !isset(Handler::var('user')['avatar']['filename']) ? ' soft-hidden' : ''; ?>"> + <a class="btn btn-small default" data-action="delete-avatar"><span class="icon fas fa-trash-alt"></span><span class="margin-left-5"><?php _se('Delete'); ?></span></a> + </div> + </div> + </div> + <input id="user-avatar-upload" data-content="user-avatar-upload-input" class="hidden-visibility" type="file" accept="image/*"> + </div> +</div> +<div class="input-label"> + <label><?php _se('Privacy'); ?></label> + <?php echo get_checkbox_html([ + 'name' => 'is_private', + 'label' => _s('Make my profile and identity totally private'), + 'tooltip' => _s('Enable this if you want to act like an anonymous user'), + 'checked' => ((bool) (Handler::var('safe_post')['is_private'] ?? Handler::var('user')['is_private'])) + ]); ?> +</div> +<div class="c12 phablet-c1"> + <div class="input-label"> + <label for="name"><?php _se('Name'); ?></label> + <input type="text" name="name" id="name" class="text-input" maxlength="60" value="<?php echo Handler::var('safe_post')["name"] ?? Handler::var('safe_html_user')["name"]; ?>" placeholder="Your real name" required> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["name"] ?? ''; ?></span> + <?php if (!Handler::cond('dashboard_user')) { + ?><div class="input-below"><?php _se('This is your real name, not your username.'); ?></div><?php + } ?> + </div> + <div class="input-label"> + <label for="website"><?php _se('Website'); ?></label> + <input type="url" name="website" id="website" class="text-input" value="<?php + echo !empty(Handler::var('safe_post')) + ? (Handler::var('safe_post')["website"] ?? '') + : (Handler::var('user')["website_safe_html"] ?? ''); ?>" data-validate rel="tooltip" title="https://domain.loc" data-tipTip="right" placeholder="https://domain.loc"> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["website"] ?? ''; ?></span> + </div> + <div class="input-label"> + <label for="bio"><?php _se('Bio'); ?></label> + <textarea name="bio" id="bio" class="resize-vertical" placeholder="<?php _se('Tell us a little bit about you'); ?>" maxlength="255"><?php echo Handler::var('safe_post')["bio"] ?? Handler::var('safe_html_user')["bio"]; ?></textarea> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["bio"] ?? ''; ?></span> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/settings/security.php b/content/legacy/themes/Peafowl/views/settings/security.php new file mode 100644 index 0000000..976974f --- /dev/null +++ b/content/legacy/themes/Peafowl/views/settings/security.php @@ -0,0 +1,49 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\G\Handler; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<div class="c24 phablet-c1"> + <div class="input-label margin-bottom-0"> + <label for="two_factor"><?php _se('Two-factor authentication'); ?></label> + <?php if (Handler::cond('two_factor_enabled')) { ?> + <p><i class="fas fa-check-circle color-accent"></i> <?php _se('Two-factor authentication is enabled.'); ?></p> + <div class="margin-top-5"> + <a class="btn btn-small default" data-confirm="<?php _se("Do you really want to disable two-factor authentication?"); ?>" data-submit-fn="CHV.fn.user_two_factor.delete.submit" data-ajax-deferred="CHV.fn.user_two_factor.delete.deferred"><span class="icon fas fa-ban"></span><span class="margin-left-5"><?php _se('Disable'); ?></span></a> + </div> + <?php } else { ?> + <p><?php _se('Scan the QR code below with an authenticator application and enter the code displayed.'); ?></p> + <div class="margin-top-20 c8 phablet-c2 phone-c1"> + <div class="phone-text-align-center"> + <img src="<?php echo Handler::var('totp_qr_image'); ?>" alt="" class="qr col-8-max"> + </div> + <div class="actions"> + <div class="btn-container margin-bottom-0"> + <form data-content="main-form" class="overflow-auto" method="post" data-type="<?php echo Handler::var('setting'); ?>" data-action="validate"> + <div class="input-label"> + <label for="two-factor-code">OTP</label> + <input placeholder="123456" type="number" min="16" pattern="\d+" name="two-factor-code" id="two-factor-code" class="text-input" max="999999" required> + <span class="input-warning red-warning"><?php echo Handler::var('input_errors')["two-factor-code"] ?? ''; ?></span> + </div> + <div class="margin-top-5"> + <button type="submit" class="btn btn-small default"><span class="icon fas fa-check-circle"></span><span class="margin-left-5"><?php _se('Submit'); ?></span></button> + </div> + </form> + </div> + </div> + </div> + <?php } ?> + </div> +</div> diff --git a/content/legacy/themes/Peafowl/views/signup.php b/content/legacy/themes/Peafowl/views/signup.php new file mode 100644 index 0000000..24d935f --- /dev/null +++ b/content/legacy/themes/Peafowl/views/signup.php @@ -0,0 +1,84 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\getSetting; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_file('head'); ?> +<body id="login" class="full--wh"> + <?php include_theme_file('custom_hooks/body_open'); ?> + <div class="display-flex height-min-full"> + <?php include_theme_file('snippets/quickty/background_cover'); ?> + <div class="flex-center"> + <div class="content-box card-box col-8-max text-align-center"> + <div class="fancy-box"> + <h1 class="fancy-box-heading"><i class="fas fa-user-plus"></i> <?php _se('Create account'); ?></h1> + <div class="content-section"><?php _se('Already have an account? %s now.', '<a href="' . get_base_url('login') . '"><i class="fas fa-sign-in-alt margin-right-5"></i>' . _s('Login') . '</a>'); ?> <?php + if (Handler::cond('show_resend_activation')) { + ?><?php _se('If you have already signed up maybe you need to request to %s to activate your account.', '<a href="' . get_base_url('account/resend-activation') . '"><i class="fas fa-sync-alt margin-right-5"></i>' . _s('resend account activation') . '</a>'); ?><?php + } else { + ?><?php _se('You can also %s.', '<a href="' . get_base_url('account/resend-activation') . '"><i class="fas fa-sync-alt margin-right-5"></i>' . _s('resend account activation') . '</a>'); ?></div> + <?php + } + ?> + <form class="content-section" method="post" autocomplete="off" data-action="validate"> + <fieldset class="fancy-fieldset"> + <div class="position-relative"> + <input autofocus autocomplete="email" name="email" tabindex="1" autocomplete="off" autocorrect="off" autocapitalize="off" type="email" placeholder="<?php _se('Email address'); ?>" class="input" required value="<?php echo Handler::var('safe_post')['email'] ?? ''; ?>"> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['email'] ?? ''; ?></span> + </div> + <div class="position-relative"> + <input autocomplete="nickname" name="username" tabindex="2" autocomplete="off" autocorrect="off" autocapitalize="off" type="text" class="input" value="<?php echo Handler::var('safe_post')['username'] ?? ''; ?>" pattern="<?php echo getSetting('username_pattern'); ?>" rel="tooltip" title='<?php _se('%i to %f characters<br>Letters, numbers and "_"', ['%i' => getSetting('username_min_length'), '%f' => getSetting('username_max_length')]); ?>' data-tipTip="right" placeholder="<?php _se('Username'); ?>" required> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['username'] ?? ''; ?></div> + </div> + <div class="input-password margin-bottom-10 position-relative"> + <input autocomplete="new-password" name="password" tabindex="4" type="password" placeholder="<?php _se('Password'); ?>" class="input" pattern="<?php echo getSetting('user_password_pattern'); ?>" rel="tooltip" title="<?php _se('%d characters min', getSetting('user_password_min_length')); ?>" data-tipTip="right" required> + <div class="input-password-strength" rel="tooltip" title="<?php _se('Password strength'); ?>"><span style="width: 0%" data-content="password-meter-bar"></span></div> + </div> + <?php + if (getSetting('user_minimum_age') > 0) { + ?> + <div class="input-label text-align-left"> + <div class="checkbox-label"><label for="form-minimum-age-signup"><input type="checkbox" name="minimum-age-signup" id="form-minimum-age-signup" value="1" required><?php _se("I'm at least %s years old", getSetting('user_minimum_age')); ?></label></div> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['minimum-age-signup'] ?? ''; ?></div> + </div> + <?php + } ?> + <div class="input-label text-align-left"> + <div class="checkbox-label"> + <label for="signup-accept-terms-policies"> + <input type="checkbox" name="signup-accept-terms-policies" id="signup-accept-terms-policies" value="1" required> + <span><?php echo Handler::var('tos_privacy_agreement'); ?></span> + </label> + </div> + <div class="text-align-left red-warning"><?php echo Handler::var('input_errors')['signup-accept-terms-policies'] ?? ''; ?></div> + </div> + </fieldset> + <?php include_theme_file('snippets/quickty/recaptcha_form'); ?> + <div class="btn-container"> + <button class="btn btn-input accent" type="submit"><i class="btn-icon fas fa-user-plus"></i><span class="btn-text"><?php _se('Create account'); ?></span></button> + </div> + </form> + <?php include_theme_file('snippets/quickty/login_providers'); ?> + </div> + </div> + </div> + </div> + <?php include_theme_file('snippets/quickty/top_left'); ?> +</div> +<?php if (Handler::var('post') && Handler::cond('error')) { + ?> +<script> +$(document).ready(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php + } +include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/upload.php b/content/legacy/themes/Peafowl/views/upload.php new file mode 100644 index 0000000..87552fc --- /dev/null +++ b/content/legacy/themes/Peafowl/views/upload.php @@ -0,0 +1,19 @@ +<?php + +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<?php if (Handler::var('post') and Handler::cond('error')) { ?> +<script> +$(function() { + PF.fn.growl.call("<?php echo Handler::var('error'); ?>"); +}); +</script> +<?php } ?> +<?php include_theme_footer(); ?> diff --git a/content/legacy/themes/Peafowl/views/user.php b/content/legacy/themes/Peafowl/views/user.php new file mode 100644 index 0000000..0e4a103 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/user.php @@ -0,0 +1,222 @@ +<?php + +use function Chevereto\Legacy\G\get_base_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_file; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\G\safe_html; +use function Chevereto\Legacy\getSetting; +use function Chevereto\Legacy\show_banner; +use function Chevereto\Legacy\show_theme_inline_code; +use function Chevereto\Vars\request; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<?php + if (isset(Handler::var('user')["background"]) || Handler::cond('owner') || Handler::cond('content_manager')) { + ?> +<div id="background-cover" data-content="user-background-cover"<?php if (!isset(Handler::var('user')["background"])) { + ?> class="no-background"<?php + } ?>> + <div id="background-cover-wrap"> + <div id="background-cover-src" data-content="user-background-cover-src"<?php if (isset(Handler::var('user')["background"], Handler::var('user')["background"]["url"])) { + ?> style="background-image: url('<?php echo Handler::var('user')["background"]["url"]; ?>');"<?php + } ?>></div> + <?php + if (Handler::cond('owner') || Handler::cond('content_manager')) { + ?> + <div class="content-width"> + <div data-content="user-upload-background" class="btn btn-input default<?php if (isset(Handler::var('user')["background"])) { + ?> hidden<?php + } ?>" data-trigger="user-background-upload"><span class="btn-icon fas fa-camera"></span><span class="btn-text"><?php _se('Upload profile background'); ?></span></div> + <div id="change-background-cover" data-content="user-change-background" class="pop-btn<?php if (!isset(Handler::var('user')["background"])) { + ?> hidden<?php + } ?>"> + <span class="btn btn-capsule"><span class="btn-icon fas fa-camera"></span><span class="btn-text"><?php _se('Change background'); ?></span></span> + <div class="pop-box anchor-right arrow-box arrow-box-top"> + <div class="pop-box-inner pop-box-menu"> + <ul> + <li class="with-icon"><a data-trigger="user-background-upload"><span class="btn-icon fas fa-camera"></span> <?php _se('Upload new image'); ?></a></li> + <li class="with-icon"><a data-confirm="<?php _se("The profile background image will be deleted. This can't be undone. Are you sure that you want to delete the profile background image?"); ?>" data-submit-fn="CHV.fn.user_background.delete.submit" data-ajax-deferred="CHV.fn.user_background.delete.deferred"><span class="btn-icon fas fa-trash-alt"></span><?php _se('Delete background'); ?></a></li> + </ul> + </div> + </div> + </div> + <input id="user-background-upload" data-content="user-background-upload-input" class="hidden-visibility" type="file" accept="image/*"> + </div> + <?php + } ?> + </div> + <div class="loading-placeholder hidden"></div> +</div> +<?php + } +?> +<div class="content-width"> + <?php show_banner('user_after_top', Handler::var('listing')->sfw()); ?> + <div id="top-user" class="top-user<?php echo !isset(Handler::var('user')["background"]) ? ' no-background' : ''; ?>"> + <div class="top-user-credentials"> + <a href="<?php echo Handler::var('user')["url"]; ?>"> + <?php + if (isset(Handler::var('user')["avatar"])) { + ?> + <img class="user-image" src="<?php echo Handler::var('user')["avatar"]["url"]; ?>" alt=""> + <?php + } else { + ?> + <span class="user-image default-user-image"><?php include_theme_file('tpl_list_item/user_cover_empty.php'); ?></span> + <?php + } + ?> + </a> + <h1><a href="<?php echo Handler::var('user')["url"]; ?>"><?php echo Handler::var('safe_html_user')[Handler::var('user')["name"] ? "name" : "username"]; ?></a></h1> + <div> + <span class="user-social-networks"><?php if (isset(Handler::var('user')["twitter"])) { + ?><a class="fab fa-twitter" title="Twitter" rel="tooltip" data-tipTip="top" href="<?php echo Handler::var('user')["twitter"]["url"]; ?>" rel="nofollow" target="_blank"></a><?php + } if (isset(Handler::var('user')["facebook"])) { + ?><a class="icon fab fa-facebook" href="<?php echo Handler::var('user')["facebook"]["url"]; ?>" rel="nofollow" target="_blank"></a><?php + } if (isset(Handler::var('user')["website"])) { + ?><a class="icon fas fa-globe-americas" title="<?php _se('Website'); ?>" rel="tooltip" data-tipTip="top" href="<?php echo Handler::var('user')['website_display']; ?>"<?php echo !Handler::var('user')['is_admin'] ? ' rel="nofollow"' : null; ?> target="_blank"></a><?php + } ?></span> + </div> + <?php if (Handler::var('user')['is_private'] == 1) { ?> + <div class="user-meta font-size-small"><span class="icon icon--lock fas fa-lock"></span><?php _se('Private profile'); ?></div> + <?php } else { ?> + <?php } ?> + <?php if (getSetting('enable_followers') && Handler::var('user')['is_private'] == 0) { + ?> + <div class="user-meta margin-bottom-5"> + <a class="number-figures display-inline-block margin-bottom-5" href="<?php echo Handler::var('user')['url_following']; ?>"><b data-text="following-count"><?php echo Handler::var('user')['following']; ?></b> <span><?php _se('Following'); ?></span></a> + <a class="number-figures display-inline-block margin-bottom-5" href="<?php echo Handler::var('user')['url_followers']; ?>"><b data-text="followers-count"><?php echo Handler::var('user')['followers']; ?></b> <span data-text="followers-label" data-label-single="<?php _ne('Follower', 'Followers', 1); ?>" data-label-plural="<?php _ne('Follower', 'Followers', 2); ?>"><?php _ne('Follower', 'Followers', Handler::var('user')['followers']); ?></span></a> + </div> + <?php + } ?> + <?php if (Handler::var('user')['bio']) { + ?> + <div class="user-meta overflow-hidden"> + <p class="col-18-max word-break-break-word"><?php echo Handler::var('user')['bio_linkify']; ?></p> + </div> + <?php + } ?> + <div class="user-meta"> + <?php + if (Handler::cond('show_follow_button')) { + ?> + <a class="btn-follow" data-followed="<?php echo (int)Handler::var('user')['followed']; ?>" data-action="follow"><span class="btn btn-small btn-followed default--hover"><span class="btn-icon fas fa-user-check"></span><span class="btn-text phone-hide"><?php _se('Following'); ?></span></span><span class="btn btn-small btn-unfollowed default"><span class="btn-icon fas fa-user-plus"></span><span class="btn-text phone-hide"><?php _se('Follow'); ?></span></span></a> + <?php + } ?> + <?php + if (Handler::cond('owner') || Handler::cond('admin') || (Handler::cond('content_manager') && !Handler::var('user')['is_content_manager'])) { + ?> + <a class="btn btn-small default" href="<?php echo get_base_url(Handler::cond('owner') ? 'settings/profile' : 'dashboard/user/' . Handler::var('user')['id']); ?>"><span class="icon fas fa-edit"></span><span class="margin-left-5 phone-hide"><?php _se('Edit'); ?></span></a> + <?php + if (!Handler::cond('owner') && Handler::cond('content_manager')) { + ?> + <div class="display-inline-block" data-banned="<?php echo (string) (int) (Handler::var('user')['status'] === 'banned'); ?>"> + <a data-action="user_ban" class="btn btn-small default" rel="tooltip" data-tipTip="bottom" title="<?php _se('Set: %s', _s('Banned')); ?>"><span class="icon fas fa-ban"></span><span class="margin-left-5"><?php _se('Ban'); ?></span></a> + <a data-action="user_unban" class="btn btn-small default" rel="tooltip" data-tipTip="bottom" title="<?php _se('Set: %s', _s('Valid')); ?>"><span class="icon fas fa-ban"></span><span class="margin-left-5"><?php _se('Banned'); ?></span></a> + </div> + <a class="btn btn-small default" data-confirm="<?php _se("Do you really want to delete this user? This can't be undone."); ?>" data-submit-fn="CHV.fn.submit_resource_delete" data-ajax-deferred="CHV.fn.complete_resource_delete" data-ajax-url="<?php echo get_base_url("json"); ?>"><span class="icon fas fa-trash-alt"></span><span class="margin-left-5 phone-hide"><?php _se('Delete'); ?></span></a> + <?php + } ?> + <?php + } + ?> + </div> + </div> + <div class="header-content-right phone-float-none"> + <div class="text-align-right"> + <a class="number-figures" href="<?php echo Handler::var('user')["url"]; ?>"><i class="icon far fa-image"></i> <b data-text="image-count"><?php echo Handler::var('user')["image_count"]; ?></b> <span data-text="image-label" data-label-single="<?php _ne('image', 'images', 1); ?>" data-label-plural="<?php _ne('image', 'images', 2); ?>"><?php _ne('image', 'images', Handler::var('user')['image_count']); ?></span></a> + <a class="number-figures" href="<?php echo Handler::var('user')["url_albums"]; ?>"><i class="icon far fa-images"></i> <b data-text="album-count"><?php echo Handler::var('user')["album_count"]; ?></b> <span data-text="album-label" data-label-single="<?php _ne('album', 'albums', 1); ?>" data-label-plural="<?php _ne('album', 'albums', 2); ?>"><?php _ne('album', 'albums', Handler::var('user')['album_count']); ?></span></a> + <?php if (getSetting('enable_likes') && Handler::var('user')['is_private'] == 0) { + ?> + <a class="number-figures" href="<?php echo Handler::var('user')["url"]; ?>/liked"><span class="icon far fa-heart"></span> <b data-text="likes-count"><?php echo Handler::var('user')["liked"]; ?></b></a> + <?php + } ?> + </div> + <?php if (Handler::cond('search_enabled')) { ?> + <div class="input-search"> + <form action="<?php echo rtrim(Handler::var('user')["url"], '/') . "/search/"; ?>"> + <input class="search two-icon-padding" type="text" placeholder="<?php echo Handler::var('safe_html_user')["name"]; ?>" autocomplete="off" spellcheck="false" name="q" value="<?php echo safe_html(Handler::var('user')['search']['q'] ?? ''); ?>"> + </form> + <span class="icon fas fa-search icon--search"></span><span class="icon icon--close fas fa-times soft-hidden" data-action="clear-search"></span> + </div> + <?php + } ?> + <?php + if (Handler::cond('owner')) { + ?> + <div class="text-align-right"> + <button data-action="create-album" title="A" class="btn btn-small default" data-modal="edit" data-target="new-album"><span class="btn-icon fas fa-images"></span><span class="btn-text"><?php _se('Create new album'); ?></span></button> + <?php include_theme_file('snippets/modal_create_album.php'); ?> + </div> + <?php + } + ?> + </div> + </div> + <?php + if (isset(Handler::var('user')["background"]) || Handler::cond('owner') || Handler::cond('content_manager')) { + show_theme_inline_code('snippets/user.js'); + } + ?> + <div class="header margin-top-20 margin-bottom-20"> + <h2 class="header-title"> + <i class="header-icon <?php echo Handler::var('icon'); ?> color-accent"></i> <strong><?php echo Handler::var('title'); ?></strong> + </h2> + </div> +</div> + +<div class="top-sub-bar follow-scroll margin-bottom-5 margin-top-5"> + <div class="content-width"> + <div class="header header-tabs"> + <a href="<?php echo Handler::var('user')["url"]; ?>" class="user-image margin-right-5 float-left"> + <?php if (isset(Handler::var('user')["avatar"])) { + ?> + <img src="<?php echo Handler::var('user')["avatar"]["url"]; ?>" alt=""> + <?php + } else { + ?> + <span class="user-image default-user-image margin-top-0"><span class="icon fas fa-user-circle"></span></span> + <?php + } ?> + </a> + <?php include_theme_file("snippets/tabs"); ?> + <?php + if (Handler::cond('show_user_items_editor') || (Handler::cond('owner') || Handler::cond('content_manager'))) { + include_theme_file("snippets/user_items_editor"); ?> + <div class="header-content-right"> + <?php include_theme_file("snippets/listing_tools_editor"); ?> + </div> + <?php + } + ?> + </div> + </div> +</div> + +<div class="content-width"> +<?php show_banner('user_before_listing', Handler::var('listing')->sfw()); ?> + <div id="content-listing-tabs" class="tabbed-listing"> + <div id="tabbed-content-group"> + <?php + include_theme_file("snippets/listing"); + ?> + </div> + </div> +</div> + +<?php if ((Handler::cond('owner') || Handler::cond('content_manager')) && isset(request()["deleted"])) { + ?> +<script> +$(function() { + PF.fn.growl.expirable("<?php _se('The content has been deleted.'); ?>"); +}); +</script> +<?php + } ?> +<?php include_theme_footer(); ?> diff --git a/content/pages/.htaccess b/content/pages/.htaccess new file mode 100644 index 0000000..f00a62c --- /dev/null +++ b/content/pages/.htaccess @@ -0,0 +1,12 @@ +<FilesMatch "\.(?:[Pp][Hh][Pp][345]?|[Pp][Hh][Tt][Mm][Ll])|(html?)$"> + Require all denied +</FilesMatch> +<IfModule mod_php.c> + php_flag engine off +</IfModule> +<FilesMatch ".+\.*$"> + SetHandler ! +</FilesMatch> +<IfModule mod_rewrite.c> + RewriteRule ^.*\.php$ - [F,L] +</IfModule> \ No newline at end of file diff --git a/content/pages/default/contact.html b/content/pages/default/contact.html new file mode 100755 index 0000000..8ec8bf9 --- /dev/null +++ b/content/pages/default/contact.html @@ -0,0 +1,42 @@ +<div class="content-width"> + <div class="c24 center-box margin-top-20"> + <div class="header default-margin-bottom"> + <h1><span class="fas fa-at margin-right-5"></span>Contact</h1> + </div> + <form method="post" class="form-content"> + <p>If you want to send a message fill the form below.</p> + <div class="input-label c8"> + <label for="name">Name</label> + <input type="text" name="name" id="name" class="text-input" placeholder="Your name" required> + </div> + <div class="input-label c8"> + <label for="email">Email address</label> + <input type="email" name="email" id="email" class="text-input" placeholder="Your email address" required> + <div class="input-warning red-warning"></div> + </div> + <div class="input-label c8"> + <label for="subject">Subject</label> + <select type="text" name="subject" id="subject" class="text-input"> + <option value="general">General questions/comments</option> + <option value="dmca">DMCA complaint</option> + </select> + </div> + <div class="input-label c12"> + <label for="message">Message</label> + <textarea name="message" id="message" class="text-input r3" required></textarea> + </div> + <div class="input-label" data-content="recaptcha"> + <label for="recaptcha_response_field">CAPTCHA</label> + <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"> + <input type="hidden" name="action" value="recaptcha_action"> + <div id="g-recaptcha"></div> + </div> + <div class="checkbox-label"> + <label for="accept-tos"><input type="checkbox" name="accept-tos" id="accept-tos" class="margin-right-5" value="1" required="">I agree to the <a href="/page/tos">terms</a> and <a href="/page/privacy">privacy policy</a></label> + </div> + <div class="btn-container"> + <button class="btn btn-input default" type="submit">Send message</button> <span class="btn-alt">or <a href="/">cancel</a></span> + </div> + </form> + </div> +</div> diff --git a/content/pages/default/contact.php b/content/pages/default/contact.php new file mode 100644 index 0000000..5cad01c --- /dev/null +++ b/content/pages/default/contact.php @@ -0,0 +1,165 @@ +<?php + +use function Chevereto\Legacy\captcha_check; +use Chevereto\Legacy\Classes\Login; +use function Chevereto\Legacy\G\get_client_ip; +use function Chevereto\Legacy\G\get_input_auth_token; +use function Chevereto\Legacy\G\get_public_url; +use Chevereto\Legacy\G\Handler; +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; +use function Chevereto\Legacy\G\redirect; +use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\send_mail; +use function Chevereto\Vars\get; +use function Chevereto\Vars\post; +use function Chevereto\Vars\request; +use function Chevereto\Vars\server; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php +$is_error = false; +$input_errors = []; +$is_sent = isset(get()['sent']); +$allowed_subjects = [ + 'general' => _s('General questions/comments'), + 'dmca' => _s('DMCA complaint'), +]; +if (post() !== [] && !$is_sent) { + if (!Handler::checkAuthToken(request()['auth_token'])) { + die(_s("Request denied")); + } + if (strlen(post()['name']) == 0) { + $input_errors['name'] = _s('Invalid name'); + } + if (strlen(post()['message']) == 0) { + $input_errors['message'] = _s('Invalid message'); + } + if (!array_key_exists(post()['subject'], $allowed_subjects)) { + $input_errors['subject'] = _s('Invalid subject'); + } + if (!filter_var(post()['email'], FILTER_VALIDATE_EMAIL)) { + $input_errors['email'] = _s('Invalid email'); + } + if (Handler::cond('captcha_needed')) { + $captcha = captcha_check(); + if (!$captcha->is_valid) { + $input_errors['captcha'] = _s('%s says you are a robot', 'CAPTCHA'); + } + } + if (count($input_errors) > 0) { + $is_error = true; + } else { + $email = trim(post()['email']); + $subject = getSettings()['website_name'] . ' contact form'; + $name = post()['name']; + $send_mail = [ + 'to' => getSettings()['email_incoming_email'], + 'from' => [getSettings()['email_from_email'], $name . ' (' . getSettings()['website_name'] . ' contact form)'], + 'reply-to' => [$email] + ]; + $body_arr = [ // Mail body array (easier to edit) + 'Name' => $name, + 'E-mail' => $email, + 'User' => (Login::isLoggedUser() ? get_public_url(Login::getUser()['url']) : 'not user'), + 'Subject' => post()['subject'] . "\n", + 'Message' => strip_tags(post()['message']) . "\n", + 'IP' => get_client_ip(), + 'Browser' => server()['HTTP_USER_AGENT'] ?? 'n/a', + 'URL' => get_public_url() . "\n" + ]; + $body = ''; + foreach ($body_arr as $k => $v) { + $body .= $k . ': ' . $v . "\n"; + } + send_mail($send_mail, $subject, $body); + redirect('page/contact/?sent=1'); + } +} +include_theme_header(); ?> +<div class="content-width"> + <div class="c24 center-box margin-top-20"> + <div class="header default-margin-bottom"> + <h1 class="header-title"><?php echo $is_sent + ? '<span class="fas fa-check-circle color-success margin-right-5"></span>' . _s('Message sent') + : '<span class="fas fa-at margin-right-5"></span>' . _s('Contact'); ?></h1> + </div> + <p><?php echo $is_sent ? _s('Message sent. We will get in contact soon.') : _s('If you want to send a message fill the form below.'); ?></p> + <?php if (!$is_sent) { ?> + <form method="post" class="form-content"> + <?php echo get_input_auth_token(); ?> + <div class="input-label c8"> + <label for="name"><?php _se('Name'); ?></label> + <input type="text" name="name" id="name" class="text-input" placeholder="<?php _se('Your name'); ?>" value="<?php if ($is_error) { + echo Handler::var('safe_post')['name']; + } ?>" required> + <div class="input-warning red-warning"><?php echo $input_errors['name'] ?? ''; ?></div> + </div> + <div class="input-label c8"> + <label for="email"><?php _se('Email address'); ?></label> + <input type="email" name="email" id="email" class="text-input" placeholder="<?php _se('Your email address'); ?>" value="<?php if ($is_error) { + echo Handler::var('safe_post')['email']; + } ?>" required> + <div class="input-warning red-warning"><?php echo $input_errors['email'] ?? ''; ?></div> + </div> + <div class="input-label c8"> + <label for="subject"><?php _se('Subject'); ?></label> + <select type="text" name="subject" id="subject" class="text-input"> + <?php + $ask_for = Handler::var('safe_post') ? Handler::var('safe_post')['subject'] : ''; + foreach ($allowed_subjects as $k => $v) { + ?> + <option value="<?php echo $k; ?>"<?php if ($ask_for == $k) { + ?> selected<?php + } ?>><?php echo $v; ?></option> + <?php + } + ?> + </select> + <div class="input-warning red-warning"><?php echo $input_errors['subject'] ?? ''; ?></div> + </div> + <div class="input-label c12"> + <label for="message"><?php _se('Message'); ?></label> + <textarea name="message" id="message" class="text-input r3" required><?php if ($is_error) { + echo Handler::var('safe_post')['message']; + } ?></textarea> + <div class="input-warning red-warning"><?php echo $input_errors['message'] ?? ''; ?></div> + </div> + <?php if (Handler::cond('captcha_needed')) { + ?> + <?php if (Handler::var('captcha_html')) { + ?> + <div class="input-label"> + <label for="recaptcha_response_field">CAPTCHA</label> + <?php echo Handler::var('captcha_html'); ?> + </div> + <?php + } ?> + <div class="input-below red-warning"><?php echo $input_errors['captcha'] ?? ''; ?></div> + <?php + } ?> + <?php if (!Login::isLoggedUser()) { ?> + <div class="checkbox-label"> + <label for="accept-tos"><input type="checkbox" name="accept-tos" id="accept-tos" class="margin-right-5" value="1" required><?php echo Handler::var('tos_privacy_agreement'); ?></label> + </div> + <?php } ?> + <div class="btn-container"> + <button class="btn btn-input default" type="submit"><span class="btn-icon fas fa-check-circle"></span><span class="btn-text"><?php _se('Send'); ?></span></button></span> + </div> + </form> + <?php } ?> + </div> +</div> +<?php if (post() !== [] && $is_error) { + ?> +<script> +$(function() { + PF.fn.growl.call("<?php _se('Check the errors in the form to continue.'); ?>"); +}); +</script> +<?php + } ?> +<?php include_theme_footer(); ?> diff --git a/content/pages/default/privacy.html b/content/pages/default/privacy.html new file mode 100755 index 0000000..a8d7b37 --- /dev/null +++ b/content/pages/default/privacy.html @@ -0,0 +1,13 @@ +<div class="content-width"> + <div class="c24 center-box margin-top-40 margin-bottom-40"> + <div class="header default-margin-bottom"> + <h1>Example page</h1> + </div> + <div class="text-content"> + <p>This is an example page for your Chevereto site.</p> + <h2>Creating and editing pages</h2> + <p>To learn how add or modify a page go to our <a rel="external" href="https://v3-docs.chevereto.com/settings/pages.html" target="_blank">Pages documentation</a>.</p> + <p><a href="https://v3-docs.chevereto.com/settings/pages.html" class="btn btn-capsule default" target="_blank"><span class="btn-icon fas fa-book"></span> Documentation</a></p> + </div> + </div> +</div> \ No newline at end of file diff --git a/content/pages/default/privacy.php b/content/pages/default/privacy.php new file mode 100644 index 0000000..2ecf94f --- /dev/null +++ b/content/pages/default/privacy.php @@ -0,0 +1,23 @@ +<?php +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="content-width"> + <div class="c24 center-box margin-top-40 margin-bottom-40"> + <div class="header default-margin-bottom"> + <h1 class="header-title">Example page</h1> + </div> + <div class="text-content"> + <p>This is an example page for your Chevereto site.</p> + <h2>Creating and editing pages</h2> + <p>To learn how add or modify a page go to our <a rel="external" href="https://v4-admin.chevereto.com/dashboard/pages.html" target="_blank">Pages documentation</a>.</p> + <p><a href="https://v4-admin.chevereto.com/dashboard/pages.html" class="btn btn-small default" target="_blank"><span class="btn-icon fas fa-book"></span> Documentation</a></p> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/content/pages/default/tos.html b/content/pages/default/tos.html new file mode 100755 index 0000000..a8d7b37 --- /dev/null +++ b/content/pages/default/tos.html @@ -0,0 +1,13 @@ +<div class="content-width"> + <div class="c24 center-box margin-top-40 margin-bottom-40"> + <div class="header default-margin-bottom"> + <h1>Example page</h1> + </div> + <div class="text-content"> + <p>This is an example page for your Chevereto site.</p> + <h2>Creating and editing pages</h2> + <p>To learn how add or modify a page go to our <a rel="external" href="https://v3-docs.chevereto.com/settings/pages.html" target="_blank">Pages documentation</a>.</p> + <p><a href="https://v3-docs.chevereto.com/settings/pages.html" class="btn btn-capsule default" target="_blank"><span class="btn-icon fas fa-book"></span> Documentation</a></p> + </div> + </div> +</div> \ No newline at end of file diff --git a/content/pages/default/tos.php b/content/pages/default/tos.php new file mode 100644 index 0000000..7648268 --- /dev/null +++ b/content/pages/default/tos.php @@ -0,0 +1,23 @@ +<?php +use function Chevereto\Legacy\G\include_theme_footer; +use function Chevereto\Legacy\G\include_theme_header; + +// @phpstan-ignore-next-line +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} ?> +<?php include_theme_header(); ?> +<div class="content-width"> + <div class="c24 center-box margin-top-40 margin-bottom-40"> + <div class="header default-margin-bottom"> + <h1 class="header-title">Example page</h1> + </div> + <div class="text-content"> + <p>This is an example page for your Chevereto site.</p> + <h2>Creating and editing pages</h2> + <p>To learn how add or modify a page go to our <a rel="external" href="https://v4-admin.chevereto.com/dashboard/pages.html" target="_blank">Pages documentation</a>.</p> + <p><a href="https://v4-admin.chevereto.com/dashboard/pages.html" class="btn btn-small default" target="_blank"><span class="btn-icon fas fa-book"></span> Documentation</a></p> + </div> + </div> +</div> +<?php include_theme_footer(); ?> diff --git a/images/.htaccess b/images/.htaccess new file mode 100644 index 0000000..f00a62c --- /dev/null +++ b/images/.htaccess @@ -0,0 +1,12 @@ +<FilesMatch "\.(?:[Pp][Hh][Pp][345]?|[Pp][Hh][Tt][Mm][Ll])|(html?)$"> + Require all denied +</FilesMatch> +<IfModule mod_php.c> + php_flag engine off +</IfModule> +<FilesMatch ".+\.*$"> + SetHandler ! +</FilesMatch> +<IfModule mod_rewrite.c> + RewriteRule ^.*\.php$ - [F,L] +</IfModule> \ No newline at end of file diff --git a/importing/.htaccess b/importing/.htaccess new file mode 100644 index 0000000..a7a56f7 --- /dev/null +++ b/importing/.htaccess @@ -0,0 +1 @@ +Require all denied \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..d890564 --- /dev/null +++ b/index.php @@ -0,0 +1,12 @@ +<?php + +/* + * This file is part of Chevereto. + * + * (c) Rodolfo Berrios <rodolfo@chevereto.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +require_once __DIR__ . '/app/legacy/entrypoints/index.php'; diff --git a/sdk/pup.js b/sdk/pup.js new file mode 100644 index 0000000..16bfdf7 --- /dev/null +++ b/sdk/pup.js @@ -0,0 +1,1156 @@ +/* -------------------------------------------------------------------- + + Chevereto Popup Upload Plugin (PUP) + + @website https://chevereto.com/ + @version 1.0.7 + @author Rodolfo Berrios A. <http://rodolfoberrios.com/> + + --------------------------------------------------------------------- */ + (function () { + var PUP = { + defaultSettings: { + url: "https://demo.chevereto.com/upload", + vendor: "auto", + mode: "auto", + lang: "auto", + autoInsert: "bbcode-embed-medium", + palette: "default", + init: "onload", + containerClass: 1, + buttonClass: 1, + sibling: 0, + siblingPos: "after", + fitEditor: 0, + observe: 0, + observeCache: 1, + html: + '<div class="%cClass"><button %x class="%bClass"><span class="%iClass">%iconSvg</span><span class="%tClass">%text</span></button></div>', + css: + ".%cClass{display:inline-block;margin-top:5px;margin-bottom:5px}.%bClass{line-height:normal;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s;outline:0;color:%2;border:none;cursor:pointer;border:1px solid rgba(0,0,0,.15);background:%1;border-radius:.2em;padding:.5em 1em;font-size:12px;font-weight:700;text-shadow:none}.%bClass:hover{background:%3;color:%4;border-color:rgba(0,0,0,.1)}.%iClass,.%tClass{display:inline-block;vertical-align:middle}.%iClass svg{display:block;width:1em;height:1em;fill:currentColor}.%tClass{margin-left:.25em}" + }, + ns: { + plugin: "chevereto-pup" + }, + palettes: { + default: ["#ececec", "#333", "#2980b9", "#fff"], + clear: ["inherit", "inherit", "inherit", "#2980b9"], + turquoise: ["#16a085", "#fff", "#1abc9c", "#fff"], + green: ["#27ae60", "#fff", "#2ecc71", "#fff"], + blue: ["#2980b9", "#fff", "#3498db", "#fff"], + purple: ["#8e44ad", "#fff", "#9b59b6", "#fff"], + darkblue: ["#2c3e50", "#fff", "#34495e", "#fff"], + yellow: ["#f39c12", "#fff", "#f1c40f", "#fff"], + orange: ["#d35400", "#fff", "#e67e22", "#fff"], + red: ["#c0392b", "#fff", "#e74c3c", "#fff"], + grey: ["#ececec", "#000", "#e0e0e0", "#000"], + black: ["#333", "#fff", "#666", "#fff"] + }, + classProps: ["button", "container"], + iconSvg: + '<svg class="%iClass" xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M76.7 87.5c12.8 0 23.3-13.3 23.3-29.4 0-13.6-5.2-25.7-15.4-27.5 0 0-3.5-0.7-5.6 1.7 0 0 0.6 9.4-2.9 12.6 0 0 8.7-32.4-23.7-32.4 -29.3 0-22.5 34.5-22.5 34.5 -5-6.4-0.6-19.6-0.6-19.6 -2.5-2.6-6.1-2.5-6.1-2.5C10.9 25 0 39.1 0 54.6c0 15.5 9.3 32.7 29.3 32.7 2 0 6.4 0 11.7 0V68.5h-13l22-22 22 22H59v18.8C68.6 87.4 76.7 87.5 76.7 87.5z" style="fill: currentcolor;"/></svg>', + l10n: { + ar: "\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0648\u0631", + cs: "Nahr\u00e1t obr\u00e1zky", + da: "Upload billeder", + de: "Bilder hochladen", + es: "Subir im\u00e1genes", + fi: "Lataa kuvia", + fr: "Importer des images", + id: "Unggah gambar", + it: "Carica immagini", + ja: "\u753b\u50cf\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9", + nb: "Last opp bilder", + nl: "Upload afbeeldingen", + pl: "Wy\u015Blij obrazy", + pt_BR: "Enviar imagens", + ru: + "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", + tr: "Resim Yukle", + uk: + "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F", + zh_CN: "\u4e0a\u4f20\u56fe\u7247", + zh_TW: "\u4e0a\u50b3\u5716\u7247" + }, + vendors: { + default: { + check: function () { + return 1; + }, + getEditor: function () { + var skip = { + textarea: { + name: [ + "recaptcha", + "search", + "recipients", + "coppa", + "^comment_list", + "username_list", + "add" + ] + }, + ce: { + dataset: ["gramm"] + } + }; + var mods = ["~", "|", "^", "$", "*"]; + var not = {}; + for (var k in skip) { + not[k] = ""; + var el = skip[k]; + for (var attr in el) { + for (var i = 0; i < el[attr].length; i++) { + var mod = ""; + var value = el[attr][i]; + var f = value.charAt(0); + if (mods.indexOf(f) > -1) { + mod = f; + value = value.substring(1); + } + not[k] += + ":not([" + + (attr == "dataset" + ? "data-" + value + : attr + mod + '="' + value + '"') + + "])"; + } + } + } + return document.querySelectorAll( + '[contenteditable=""]' + + not.ce + + ',[contenteditable="true"]' + + not.ce + + ",textarea:not([readonly])" + + not.textarea + ); + } + }, + bbpress: { + settings: { + autoInsert: "html-embed-medium", + html: + '<input %x type="button" class="ed_button button button-small" aria-label="%text" value="%text">', + sibling: "#qt_bbp_reply_content_img", + siblingPos: "before" + }, + check: "bbpEngagementJS" + }, + discourse: { + settings: { + autoInsert: "markdown-embed-medium", + html: + '<button %x title="%text" class="upload btn no-text btn-icon ember-view"><i class="fa fa-cloud-upload d-icon d-icon-upload"></i></button>', + sibling: ".upload.btn", + siblingPos: "before", + observe: ".create,#create-topic,.usercard-controls button", + observeCache: 0, + onDemand: 1 + }, + check: "Discourse" + }, + discuz: { + settings: { + buttonClass: 1, + html: '<a %x title="%text" class="%bClass">%iconSvg</a>', + sibling: ".fclr,#e_attach", + css: + "a.%bClass,.bar a.%bClass{box-sizing:border-box;cursor:pointer;background:%1;color:%2;text-indent:unset;position:relative}.b1r a.%bClass:hover,a.%bClass:hover{background:%3;color:%4}a.%bClass{font-size:14px}.b1r a.%bClass{border:1px solid rgba(0,0,0,.15)!important;font-size:20px;padding:0;height:44px}.%bClass svg{font-size:1em;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:currentColor}", + palette: "purple" + }, + palettes: { + default: ["transparent", "#333", "#2980b9", "#fff"] + }, + check: "DISCUZCODE", + getEditor: function () { + return document.querySelector('.area textarea[name="message"]'); + } + }, + ipb: { + settings: { + autoInsert: "html-embed-medium", + html: + '<a %x class="cke_button cke_button_off %bClass" title="%text" tabindex="-1" hidefocus="true" role="button"><span class="cke_button_icon">%iconSvg</span><span class="cke_button_label" aria-hidden="false">%text</span><span class="cke_button_label" aria-hidden="false"></span></a>', + sibling: ".cke_button__ipslink", + siblingPos: "before", + css: + ".cke_button.%bClass{background:%1;position:relative}.cke_button.%bClass:hover{background:%3;border-color:%5}.cke_button.%bClass svg{font-size:15px;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:%2}.cke_button.%bClass:hover svg{fill:%4}" + }, + palettes: { + default: ["inherit", "#444", "", "inherit"] + }, + check: "ips", + getEditorFn: function () { + var id = this.getEditor().dataset.ipseditorName; + return CKEDITOR.instances[id]; + }, + getEditor: function () { + return document.querySelector("[data-ipseditor-name]"); + }, + editorValue: function (str) { + var element = CKEDITOR.dom.element.createFromHtml( + "<p>" + str + "</p>" + ); + this.getEditorFn().insertElement(element); + }, + useCustomEditor: function () { + return 1; + } + }, + mybb: { + settings: { + sibling: + "#quickreply_e > tr > td > *:last-child, .sceditor-container", + fitEditor: 0, + extracss: ".trow2 .%cClass{margin-bottom:0}" + }, + check: "MyBB", + getEditor: function () { + if (MyBBEditor) { + return MyBBEditor.getContentAreaContainer().parentElement; + } + return document.querySelector("#quickreply_e textarea"); + }, + editorValue: function (str) { + if (MyBBEditor) { + var fn = MyBBEditor.inSourceMode() + ? "insert" + : "wysiwygEditorInsertHtml"; + MyBBEditor[fn](fn == "insert" ? str : MyBBEditor.fromBBCode(str)); + } else { + this.getEditor().value += str; + } + }, + useCustomEditor: function () { + return !!MyBBEditor; + } + }, + nodebb: { + settings: { + autoInsert: "markdown-embed-medium", + html: + '<li %x tabindex="-1" title="%text"><i class="fa fa-cloud-upload"></i></li>', + sibling: '[data-format="picture-o"]', + siblingPos: "before", + observe: + '[component="category/post"],[component="topic/reply"],[component="topic/reply-as-topic"],[component="post/reply"],[component="post/quote"]', + observeCache: 0, + onDemand: 1 + }, + check: "__nodebbSpamBeGoneCreateCaptcha__", + callback: function () { + var els = document.querySelectorAll(".btn-toolbar .img-upload-btn"); + for (var i = 0; i < els.length; i++) { + els[i].parentNode.removeChild(els[i]); + } + } + }, + phpbb: { + settings: { + html: + document.querySelector("#format-buttons *:first-child") && + document.querySelector("#format-buttons *:first-child").tagName == + "BUTTON" + ? ' <button %x type="button" class="button button-icon-only" title="%text"><i class="icon fa-cloud-upload fa-fw" aria-hidden="true"></i></button> ' + : ' <input %x type="button" class="button2" value="%text"> ', + sibling: document.querySelector("#format-buttons *:first-child") && document.querySelector("#format-buttons *:first-child").tagName == + "BUTTON" ? ".bbcode-img" : "#message-box textarea.inputbox", + siblingPos: "after" + }, + check: "phpbb", + getEditor: function () { + if ( + typeof form_name == typeof undefined || + typeof text_name == typeof undefined + ) { + return; + } + return document.forms[form_name].elements[text_name]; + } + }, + proboards: { + settings: { + html: ' <input %x type="submit" value="%text"> ', + css: "", + sibling: "input[type=submit]", + siblingPos: "before" + }, + check: "proboards", + editorValue: function (str) { + var wysiwyg = $(".wysiwyg-textarea").data("wysiwyg"); + var editor = wysiwyg.editors[wysiwyg.currentEditorName]; + editor.setContent(editor.getContent() + str); + }, + useCustomEditor: function () { + return $(".container.quick-reply").size() !== 1; + }, + getEditor: function () { + return document.querySelector("textarea[name=message]"); + } + }, + redactor2: { + getEditor: function () { + var editor = this.getEditorFn(); + if (!editor) { + return null; + } + return !this.useCustomEditor() ? editor[0] : editor.$box[0]; + }, + getEditorEl: function () { + return this.useCustomEditor() + ? this.getEditorFn().$editor[0] + : this.getEditorFn()[0]; + }, + editorValue: function (str) { + var nl = "<p><br></p>"; + var property = this.useCustomEditor() ? "innerHTML" : "value"; + if (typeof str == "string") { + if (this.useCustomEditor()) { + var insert = "<p>" + str + "</p>"; + this.getEditorFn().insert.html( + this.editorValue() !== "" ? nl + insert : insert + ); + } else { + this.getEditorEl()[property] = str; + } + return; + } + var value = this.getEditorEl()[property]; + if (this.useCustomEditor() && value == "<p><br></p>") { + return ""; + } + return this.getEditorEl()[property]; + }, + useCustomEditor: function () { + return !(this.getEditorFn() instanceof jQuery); + } + }, + smf: { + settings: { + html: + ' <button %x title="%text" class="%bClass"><span class="%iClass">%iconSvg</span><span class="%tClass">%text</span></button> ', + css: + "%defaultCSS #bbcBox_message .%bClass{margin-right:1px;transition:none;color:%2;padding:0;width:23px;height:21px;border-radius:5px;background-color:%1}#bbcBox_message .%bClass:hover{background-color:%3}#bbcBox_message .%tClass{display:none}", + sibling: "#BBCBox_message_button_1_1,.quickReplyContent + div", + siblingPos: "before", + fitEditor: 1 + }, + palettes: { + default: ["#E7E7E7", "#333", "#B0C4D6", "#333"] + }, + check: "smf_scripturl", + getEditor: function () { + return smf_editorArray.length > 0 + ? smf_editorArray[0].oTextHandle + : document.querySelector(".quickReplyContent textarea"); + } + }, + "quill": { + settings: { + autoInsert: "html-embed-medium", + html: + '<li class="richEditor-menuItem richEditor-menuItem_f1af88yq" role="menuitem"><button %x class="richEditor-button richEditor-embedButton richEditor-button_f1fodmu3" type="button" aria-pressed="false"><span class="richEditor-iconWrap_f13bdese"></span>%iconSvg</button></li>', + sibling: "ul.richEditor-menuItems li.richEditor-menuItem:last-child", + css: ".%iClass {display: block; height: 24px; margin: auto; width: 24px;}" + }, + check: "quill", + editorValue: function (str) { + quill.clipboard.dangerouslyPasteHTML( + quill.getText() == "\n" ? 0 : quill.getLength(), + str + ); + }, + useCustomEditor: function () { + return 1; + }, + getEditor: function () { + return quill.container; + } + }, + vanilla: { + settings: { + autoInsert: "markdown-embed-medium", + html: '<span %x class="icon fas fa-cloud-upload-alt" title="%text"></span>', + sibling: ".editor-dropdown-upload" + }, + check: "Vanilla", + getEditor: function () { + return document.getElementById("Form_Body"); + } + }, + vbulletin: { + settings: { + autoInsert: "html-embed-medium", + html: + '<li %x class="%bClass b-toolbar__item b-toolbar__item--secondary" title="%text" tabindex="0">%iconSvg</li>', + sibling: ".b-toolbar__item--secondary:first-child", + siblingPos: "before", + css: + ".%bClass{background:%1;color:%2;position:relative}.%bClass:hover{background:%3;color:%4;border-color:%5}.%bClass svg{font-size:15px;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:currentColor}" + }, + palettes: { + default: ["", "#4B6977", "", "#007EB8"] + }, + check: "vBulletin", + getEditorFn: function () { + var id = this.getEditor().getAttribute("ck-editorid"); + return CKEDITOR.instances[id]; + }, + getEditor: function () { + return document.querySelector("[data-message-type]"); + }, + editorValue: function (str) { + var element = CKEDITOR.dom.element.createFromHtml( + "<p>" + str + "</p>" + ); + this.getEditorFn().insertElement(element); + }, + useCustomEditor: function () { + return 1; + } + }, + // Redactor + // At some point, + WoltLab: { + settings: { + autoInsert: "html-embed-medium", + sibling: 'li[data-name="settings"]', + html: + '<li %x><a><span class="icon icon16 fa-cloud-upload"></span> <span>%text</span></a></li>' + }, + check: "WBB", + getEditorFn: function () { + var redactor = $("#text").data("redactor"); + if (redactor) { + return redactor; + } + return null; + } + }, + // Redactor + XF1: { + settings: { + autoInsert: "html-embed-medium", + containerClass: 1, + buttonClass: 1, + html: + '<li class="%cClass"><a %x class="%bClass" unselectable="on" title="%text">%iconSvg</a></li>', + sibling: ".redactor_btn_container_image", + siblingPos: "before", + css: + "li.%cClass .%bClass{background:%1;color:%2;text-indent:unset;border-radius:3px;position:relative}li.%cClass a.%bClass:hover{background:%3;color:%4;border-color:%5}.%cClass .%bClass svg{font-size:15px;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:currentColor}", + observe: ".edit.OverlayTrigger", + observeCache: 1 + }, + palettes: { + default: ["none", "inherit", "none", "inherit", ""] + }, + check: "XenForo", + getEditorFn: function () { + var form = + document.querySelector("#exposeMask") && + document.querySelector("#exposeMask").offsetParent + ? ".xenOverlay form" + : "form"; + if (form !== "form") { + var forms = document.querySelectorAll(form); + for (var i = 0; i < forms.length; i++) { + if (forms[i].offsetParent) { + form += '[action="' + forms[i].getAttribute("action") + '"]'; + break; + } + } + } + return XenForo.getEditorInForm(form); + }, + getEditor: function () { + var editor = this.getEditorFn(); + if (!editor) { + return null; + } + return !this.useCustomEditor() ? editor[0] : editor.$box[0]; + }, + getEditorEl: function () { + return this.useCustomEditor() + ? this.getEditorFn().$editor[0] + : this.getEditorFn()[0]; + }, + editorValue: function (str) { + var nl = "<p><br></p>"; + var property = this.useCustomEditor() ? "innerHTML" : "value"; + if (typeof str == "string") { + if (this.useCustomEditor()) { + var insert = "<p>" + str + "</p>"; + this.getEditorFn().insertHtml( + this.editorValue() !== "" ? nl + insert : insert + ); + } else { + this.getEditorEl()[property] = str; + } + return; + } + var value = this.getEditorEl()[property]; + if (this.useCustomEditor() && value == "<p><br></p>") { + return ""; + } + return this.getEditorEl()[property]; + }, + useCustomEditor: function () { + return !(this.getEditorFn() instanceof jQuery); + } + }, + // Froala + XF2: { + settings: { + autoInsert: "html-embed-medium", + containerClass: 1, + buttonClass: "button--link js-attachmentUpload button button--icon button--icon--upload fa--xf", + html: '<div class="formButtonGroup"><div class="formButtonGroup-extra"><button type="button" tabindex="-1" role="button" title="%text" class="%bClass" %x><span class="button-text">%text</span></button></div></div>', + sibling: '', + siblingPos: "after", + observe: '[data-xf-click="quick-edit"]', + observeCache: 1 + }, + palettes: { + default: ["transparent", "#505050", "rgba(20,20,20,0.06)", "#141414"] + }, + check: "XF", + // Use id to pass the target editor, if not... XF editor will always return the first editor (DOM) for .js-editor selector + getEditorFn: function (id) { + var sel = ".js-editor"; + if (typeof id == "string") { + sel = this.getEditorSel(id); + } + return XF.getEditorInContainer($(sel)); + }, + getEditorSel: function (id) { + return "[" + PUP.ns.dataPluginTarget + '="' + id + '"]'; + }, + getEditor: function (id) { + if (typeof id == "string") { + return document.querySelector(this.getEditorSel(id)); + } + return document.querySelectorAll(".js-editor"); + }, + getBbCode: function (edFnCode) { + return edFnCode.getTextArea()[0].value; + }, + editorValue: function (str, id) { + var nl = "<p><br></p>"; + var edFn = this.getEditorFn(id); + var type = edFn.ed.bbCode.isBbCodeView() + ? ["bbCode", "getBbCode", "insertBbCode"] + : ["html", "get", "insert"]; + var edFnCode = edFn.ed[type[0]]; + if (typeof str == "string") { + var jump = this.editorValue(false, id) !== ""; + if (type[0] == "html") { + var insert = "<p>" + str + "</p>"; + edFnCode[type[2]](jump ? nl + insert : insert); + } else { + var XHR = XF.ajax( + "POST", + XF.canonicalizeUrl("index.php?editor/to-bb-code"), + { + html: str + } + ); + XHR.done(function (data) { + edFnCode[type[2]](jump ? "\n" + data.bbCode : data.bbCode); + }); + } + return; + } + if (typeof edFnCode[type[1]] == typeof undefined) { + var value = this.getBbCode(edFnCode); + } else { + var value = edFnCode[type[1]](); + } + if (this.useCustomEditor() && value == nl) { + return ""; + } + return value; + }, + useCustomEditor: function () { + return ( + typeof XF.getEditorInContainer($(".js-editor")) !== typeof undefined + ); + } + } + }, + generateGuid: function () { + var d = new Date().getTime(); + if ( + typeof performance !== "undefined" && + typeof performance.now === "function" + ) { + d += performance.now(); + } + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function ( + c + ) { + var r = (d + Math.random() * 16) % 16 | 0; + d = Math.floor(d / 16); + return (c === "x" ? r : (r & 0x3) | 0x8).toString(16); + }); + }, + getNewValue: function (el, msg) { + var prop = + typeof el.getAttribute("contenteditable") !== "string" + ? "value" + : "innerHTML"; + var newline = prop == "value" ? "\n" : "<br>"; + var value = el[prop]; + var fixed = msg; + var escape = false; + if (escape) { + fixed = String(msg) + .replace(/&/g, "&amp;") + .replace(/</g, "&lt;") + .replace(/>/g, "&gt;") + .replace(/"/g, "&quot;"); + } + if (value.length == 0) { + return fixed; + } + var ret = ""; + var match = value.match(/\n+$/g); + var newlines = match ? match[0].split("\n").length : 0; + if (newlines <= 2) { + var repeats = newlines == 0 ? 2 : 1; + ret += newline.repeat(repeats); + } + return ret + fixed; + }, + insertTrigger: function () { + var vendor = this.vendors[this.settings.vendor]; + var sibling = !this.settings.sibling + ? 0 + : document.querySelectorAll( + this.settings.sibling + ":not([" + this.ns.dataPlugin + "])" + )[0]; + var areas; + if (this.settings.mode == "auto") { + areas = this.vendors[ + vendor.hasOwnProperty("getEditor") ? this.settings.vendor : "default" + ].getEditor(); + } else { + var targets = document.querySelectorAll( + "[" + + this.ns.dataPluginTrigger + + "][data-target]:not([" + + this.ns.dataPluginId + + "])" + ); + var targetsSel = []; + for (var i = 0; i < targets.length; i++) { + targetsSel.push(targets[i].dataset.target); + } + if (targetsSel.length > 0) { + areas = document.querySelectorAll(targetsSel.join(",")); + } + } + if (!areas) { + return; + } + if (!document.getElementById(this.ns.pluginStyle) && this.settings.css) { + var style = document.createElement("style"); + var rules = this.settings.css; + rules = this.appyTemplate(rules); + style.type = "text/css"; + style.innerHTML = rules.replace(/%p/g, "." + this.ns.plugin); + style.setAttribute("id", this.ns.pluginStyle); + document.body.appendChild(style); + } + if (!(areas instanceof NodeList)) { + areas = [areas]; + } + + var count = 0; + for (var i = 0; i < areas.length; i++) { + if (areas[i].getAttribute(this.ns.dataPluginTarget)) { + continue; + } + var target = sibling ? sibling : areas[i]; + target.setAttribute(this.ns.dataPlugin, "sibling"); + target.insertAdjacentHTML( + { before: "beforebegin", after: "afterend" }[ + this.settings.siblingPos + ], + this.appyTemplate(this.settings.html) + ); + var trigger = target.parentElement.querySelector( + "[" + this.ns.dataPluginTrigger + "]" + ); + this.setBoundId(trigger, areas[i]); + count++; + } + this.triggerCounter = count; + if (typeof vendor.callback == "function") { + vendor.callback.call(); + } + }, + appyTemplate: function (template) { + if (!this.cacheTable) { + var table = [ + { "%iconSvg": this.iconSvg }, + { "%text": this.settings.langString } + ]; + if (this.palette) { + var re = /%(\d+)/g; + var match = re.exec(template); + var arr = []; + while (match !== null) { + if (arr.indexOf(match[1]) == -1) { + arr.push(match[1]); + } + match = re.exec(template); + } + if (arr) { + arr.sort(function (a, b) { + return b - a; + }); + var vendor = this.vendors[this.settings.vendor]; + for (var i = 0; i < arr.length; i++) { + var index = arr[i] - 1; + var value = this.palette[index] || ""; + if ( + !value && + this.settings.vendor !== "default" && + this.settings.palette !== "default" + ) { + value = this.palette[index - 2]; + } + var o = {}; + o["%" + arr[i]] = value; + table.push(o); + } + } + } + var bClass = this.settings.buttonClass || this.ns.plugin + "-button"; + var named = [ + { + "%cClass": + this.settings.containerClass || this.ns.plugin + "-container" + }, + { "%bClass": bClass }, + { "%iClass": bClass + "-icon" }, + { "%tClass": bClass + "-text" }, + { "%x": this.ns.dataPluginTrigger }, + { "%p": this.ns.plugin } + ]; + for (var i = 0; i < named.length; i++) { + table.push(named[i]); + } + this.cacheTable = table; + } + return this.strtr(template, this.cacheTable); + }, + strtr: function (str, replaces) { + var str = str.toString(); + if (!str || typeof replaces == typeof undefined) { + return str; + } + for (var i = 0; i < replaces.length; i++) { + var obj = replaces[i]; + for (var key in obj) { + if (typeof obj[key] !== typeof undefined) { + re = new RegExp(key, "g"); + str = str.replace(re, obj[key]); + } + } + } + return str; + }, + setBoundId: function (trigger, target) { + var id = this.generateGuid(); + trigger.setAttribute(this.ns.dataPluginId, id); + // target.setAttribute(this.ns.dataPluginId, id); + target.setAttribute(this.ns.dataPluginTarget, id); + }, + openPopup: function (id) { + if (typeof id !== "string") { + return; + } + var self = this; + if (typeof this.popups == typeof undefined) { + this.popups = {}; + } + if (typeof this.popups[id] !== typeof undefined) { + this.popups[id].window.focus(); + return; + } else { + this.popups[id] = {}; + } + var client = { + l: window.screenLeft != undefined ? window.screenLeft : screen.left, + t: window.screenTop != undefined ? window.screenTop : screen.top, + w: window.innerWidth + ? window.innerWidth + : document.documentElement.clientWidth + ? document.documentElement.clientWidth + : screen.width, + h: window.innerHeight + ? window.innerHeight + : document.documentElement.clientHeight + ? document.documentElement.clientHeight + : screen.height + }; + var size = { + w: 720, + h: 690 + }; + var tolerance = { + w: 0.5, + h: 0.85 + }; + for (var key in size) { + if (size[key] / client[key] > tolerance[key]) { + size[key] = client[key] * tolerance[key]; + } + } + var pos = { + l: Math.trunc(client.w / 2 - size.w / 2 + client.l), + t: Math.trunc(client.h / 2 - size.h / 2 + client.t) + }; + this.popups[id].window = window.open( + this.settings.url, + id, + "width=" + + size.w + + ",height=" + + size.h + + ",top=" + + pos.t + + ",left=" + + pos.l + ); + this.popups[id].timer = window.setInterval(function () { + if ( + !self.popups[id].window || + self.popups[id].window.closed !== false + ) { + window.clearInterval(self.popups[id].timer); + self.popups[id] = undefined; + } + }, 200); + }, + postSettings: function (id) { + this.popups[id].window.postMessage( + { id: id, settings: this.settings }, + this.settings.url + ); + }, + liveBind: function (qs, et, c) { + document.addEventListener( + et, + function (e) { + var caller = document.querySelectorAll(qs); + if (!caller) { + return; + } + var el = e.target; + var index = -1; + while ( + el && + (index = Array.prototype.indexOf.call(caller, el)) === -1 + ) { + el = el.parentElement; + } + if (index > -1) { + e.preventDefault(); + c.call(e, el); + } + }, + true + ); + }, + prepare: function () { + var self = this; + this.ns.dataPlugin = "data-" + this.ns.plugin; + this.ns.dataPluginId = this.ns.dataPlugin + "-id"; + this.ns.dataPluginTrigger = this.ns.dataPlugin + "-trigger"; + this.ns.dataPluginTarget = this.ns.dataPlugin + "-target"; + this.ns.pluginStyle = this.ns.plugin + "-style"; + this.ns.selDataPluginTrigger = "[" + this.ns.dataPluginTrigger + "]"; + var srcEl = + document.currentScript || + document.getElementById(this.ns.plugin + "-src"); + if (!srcEl) { + srcEl = { dataset: {} }; + } else if (srcEl.dataset["buttonTemplate"]) { + srcEl.dataset["html"] = srcEl.dataset["buttonTemplate"]; + } + var nocss = 0; + this.settings = {}; + for (var key in this.defaultSettings) { + var value = + srcEl && srcEl.dataset[key] + ? srcEl.dataset[key] + : this.defaultSettings[key]; + if (value === "1" || value === "0") { + value = value == "true"; + } + if ( + typeof value == "string" && + this.classProps.indexOf(key.replace(/Class$/, "")) > -1 + ) { + nocss = 1; + } + this.settings[key] = value; + } + if (this.settings.vendor == "auto") { + this.settings.vendor = "default"; + this.settings.fitEditor = 0; + for (var key in this.vendors) { + if (key == "default") continue; + if (typeof window[this.vendors[key].check] !== typeof undefined) { + this.settings.vendor = key; + break; + } + } + } + var skip = ["lang", "url", "vendor", "target"]; + + if (this.settings.vendor == "default") { + this.vendors.default.settings = {}; + } + + var vendor = this.vendors[this.settings.vendor]; + if (vendor.settings) { + for (var key in vendor.settings) { + if (!srcEl || !srcEl.dataset.hasOwnProperty(key)) { + this.settings[key] = vendor.settings[key]; + } + } + } else { + vendor.settings = {}; + for (var key in this.defaultSettings) { + if (skip.indexOf(key) == -1) { + vendor.settings[key] = this.defaultSettings[key]; + } + } + } + + if (this.settings.vendor !== "default") { + if ( + !vendor.settings.hasOwnProperty("fitEditor") && + !srcEl.dataset.hasOwnProperty("fitEditor") + ) { + this.settings.fitEditor = 1; + } + if (this.settings.fitEditor) { + nocss = !vendor.settings.css; + } else { + var skip = ["autoInsert", "observe", "observeCache"]; + for (var key in vendor.settings) { + if (skip.indexOf(key) == -1 && !srcEl.dataset.hasOwnProperty(key)) { + this.settings[key] = this.defaultSettings[key]; + } + } + } + } + if (nocss) { + this.settings.css = ""; + } else { + this.settings.css = this.settings.css.replace( + "%defaultCSS", + this.defaultSettings.css + ); + if (vendor.settings.extracss && this.settings.css) { + this.settings.css += vendor.settings.extracss; + } + var palette = this.settings.palette.split(","); + if (palette.length > 1) { + this.palette = palette; + } else if (!this.palettes.hasOwnProperty(palette)) { + this.settings.palette = "default"; + } + if (!this.palette) { + this.palette = (this.settings.fitEditor && + vendor.palettes && + vendor.palettes[this.settings.palette] + ? vendor + : this + ).palettes[this.settings.palette]; + } + } + var props = this.classProps; + for (var i = 0; i < props.length; i++) { + var prop = props[i] + "Class"; + if (typeof this.settings[prop] !== "string") { + this.settings[prop] = this.ns.plugin + "-" + props[i]; + if (this.settings.fitEditor) { + this.settings[prop] += "--" + this.settings.vendor; + } + } + } + var clientLang = (this.settings.lang == "auto" + ? navigator.language || navigator.userLanguage + : this.settings.lang + ).replace("-", "_"); + this.settings.langString = "Upload images"; + var langKey = + clientLang in this.l10n + ? clientLang + : clientLang.substring(0, 2) in this.l10n + ? clientLang.substring(0, 2) + : null; + if (langKey) { + this.settings.langString = this.l10n[langKey]; + } + var parser = document.createElement("a"); + parser.href = this.settings.url; + this.originUrlPattern = + "^" + + (parser.protocol + "//" + parser.hostname) + .replace(/\./g, "\\.") + .replace(/\//g, "\\/") + + "$"; + var namedTargets = document.querySelectorAll( + this.ns.selDataPluginTrigger + "[data-target]" + ); + if (namedTargets.length > 0) { + for (var i = 0; i < namedTargets.length; i++) { + var target = document.querySelector(namedTargets[i].dataset.target); + this.setBoundId(namedTargets[i], target); + } + } + if (this.settings.observe) { + var observe = this.settings.observe; + if (this.settings.observeCache) { + observe += ":not([" + this.ns.dataPlugin + "])"; + } + this.liveBind( + observe, + "click", + function (el) { + el.setAttribute(self.ns.dataPlugin, 1); + self.observe(); + }.bind(this) + ); + } + if (this.settings.sibling && !this.settings.onDemand) { + this.waitForSibling(); + } else { + if (this.settings.init == "onload") { + if (document.readyState === "loading") { + document.addEventListener( + "DOMContentLoaded", + function (event) { + self.init(); + }, + false + ); + } else { + this.init(); + } + } else { + this.observe(); + } + } + }, + observe: function () { + this.waitForSibling("observe"); + }, + waitForSibling: function (m) { + var fn = this.initialized ? "insertTrigger" : "init"; + if (this.settings.sibling) { + var sibling = document.querySelector( + this.settings.sibling + ":not([" + this.ns.dataPlugin + "])" + ); + } else if (m == "observe") { + this[fn](); + if (this.triggerCounter) { + return; + } + } + if (!sibling) { + if (document.readyState === "complete" && m !== "observe") { + return; + } + setTimeout( + (m == "observe" ? this.observe : this.waitForSibling).bind(this), + 250 + ); + } else { + this[fn](); + } + }, + init: function () { + this.insertTrigger(); + var self = this; + var vendor = this.vendors[this.settings.vendor]; + this.liveBind(this.ns.selDataPluginTrigger, "click", function (el) { + var id = el.getAttribute(self.ns.dataPluginId); + self.openPopup(id); + }); + window.addEventListener( + "message", + function (e) { + var regex = new RegExp(self.originUrlPattern, "i"); + if ( + !regex.test(e.origin) && + (typeof e.data.id == typeof undefined || + typeof e.data.message == typeof undefined) + ) { + return; + } + var id = e.data.id; + if (!id || e.source !== self.popups[id].window) { + return; + } + if ( + e.data.requestAction && + self.hasOwnProperty(e.data.requestAction) + ) { + self[e.data.requestAction](id); + return; + } + var area; + if (self.settings.vendor !== "default") { + if ( + vendor.hasOwnProperty("useCustomEditor") && + vendor.useCustomEditor() + ) { + vendor.editorValue(e.data.message, id); + return; + } else if (vendor.hasOwnProperty("getEditor")) { + area = vendor.getEditor(); + } + } + if (!area) { + area = document.querySelector( + "[" + self.ns.dataPluginTarget + '="' + id + '"]' + ); + if (!area) { + alert("Target not found"); // calma calma que no panda el cúnico + return; + } + } + var valueProp = + area.getAttribute("contenteditable") === null + ? "value" + : "innerHTML"; + area[valueProp] += self.getNewValue(area, e.data.message); + var events = ["blur", "focus", "input", "change", "paste"]; + for (var i = 0; i < events.length; i++) { + var event = new Event(events[i]); + area.dispatchEvent(event); + } + }, + false + ); + this.initialized = 1; + } + }; + var redactor2 = ["WoltLab", "XF1"]; + for (var i = 0; i < redactor2.length; i++) { + PUP.vendors[redactor2[i]] = Object.assign( + Object.assign({}, PUP.vendors.redactor2), + PUP.vendors[redactor2[i]] + ); + } + PUP.prepare(); +})(); \ No newline at end of file diff --git a/sdk/pup.min.js b/sdk/pup.min.js new file mode 100644 index 0000000..3c89a4f --- /dev/null +++ b/sdk/pup.min.js @@ -0,0 +1 @@ +(function(){for(var t={defaultSettings:{url:"https://demo.chevereto.com/upload",vendor:"auto",mode:"auto",lang:"auto",autoInsert:"bbcode-embed-medium",palette:"default",init:"onload",containerClass:1,buttonClass:1,sibling:0,siblingPos:"after",fitEditor:0,observe:0,observeCache:1,html:'<div class="%cClass"><button %x class="%bClass"><span class="%iClass">%iconSvg</span><span class="%tClass">%text</span></button></div>',css:".%cClass{display:inline-block;margin-top:5px;margin-bottom:5px}.%bClass{line-height:normal;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s;outline:0;color:%2;border:none;cursor:pointer;border:1px solid rgba(0,0,0,.15);background:%1;border-radius:.2em;padding:.5em 1em;font-size:12px;font-weight:700;text-shadow:none}.%bClass:hover{background:%3;color:%4;border-color:rgba(0,0,0,.1)}.%iClass,.%tClass{display:inline-block;vertical-align:middle}.%iClass svg{display:block;width:1em;height:1em;fill:currentColor}.%tClass{margin-left:.25em}"},ns:{plugin:"chevereto-pup"},palettes:{default:["#ececec","#333","#2980b9","#fff"],clear:["inherit","inherit","inherit","#2980b9"],turquoise:["#16a085","#fff","#1abc9c","#fff"],green:["#27ae60","#fff","#2ecc71","#fff"],blue:["#2980b9","#fff","#3498db","#fff"],purple:["#8e44ad","#fff","#9b59b6","#fff"],darkblue:["#2c3e50","#fff","#34495e","#fff"],yellow:["#f39c12","#fff","#f1c40f","#fff"],orange:["#d35400","#fff","#e67e22","#fff"],red:["#c0392b","#fff","#e74c3c","#fff"],grey:["#ececec","#000","#e0e0e0","#000"],black:["#333","#fff","#666","#fff"]},classProps:["button","container"],iconSvg:'<svg class="%iClass" xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M76.7 87.5c12.8 0 23.3-13.3 23.3-29.4 0-13.6-5.2-25.7-15.4-27.5 0 0-3.5-0.7-5.6 1.7 0 0 0.6 9.4-2.9 12.6 0 0 8.7-32.4-23.7-32.4 -29.3 0-22.5 34.5-22.5 34.5 -5-6.4-0.6-19.6-0.6-19.6 -2.5-2.6-6.1-2.5-6.1-2.5C10.9 25 0 39.1 0 54.6c0 15.5 9.3 32.7 29.3 32.7 2 0 6.4 0 11.7 0V68.5h-13l22-22 22 22H59v18.8C68.6 87.4 76.7 87.5 76.7 87.5z" style="fill: currentcolor;"/></svg>',l10n:{ar:"تحميل الصور",cs:"Nahrát obrázky",da:"Upload billeder",de:"Bilder hochladen",es:"Subir imágenes",fi:"Lataa kuvia",fr:"Importer des images",id:"Unggah gambar",it:"Carica immagini",ja:"画像をアップロード",nb:"Last opp bilder",nl:"Upload afbeeldingen",pl:"Wyślij obrazy",pt_BR:"Enviar imagens",ru:"Загрузить изображения",tr:"Resim Yukle",uk:"Завантажити зображення",zh_CN:"上传图片",zh_TW:"上傳圖片"},vendors:{default:{check:function(){return 1},getEditor:function(){var t={textarea:{name:["recaptcha","search","recipients","coppa","^comment_list","username_list","add"]},ce:{dataset:["gramm"]}},e=["~","|","^","$","*"],i={};for(var s in t){i[s]="";var n=t[s];for(var r in n)for(var o=0;o<n[r].length;o++){var a="",l=n[r][o],d=l.charAt(0);e.indexOf(d)>-1&&(a=d,l=l.substring(1)),i[s]+=":not(["+("dataset"==r?"data-"+l:r+a+'="'+l+'"')+"])"}}return document.querySelectorAll('[contenteditable=""]'+i.ce+',[contenteditable="true"]'+i.ce+",textarea:not([readonly])"+i.textarea)}},bbpress:{settings:{autoInsert:"html-embed-medium",html:'<input %x type="button" class="ed_button button button-small" aria-label="%text" value="%text">',sibling:"#qt_bbp_reply_content_img",siblingPos:"before"},check:"bbpEngagementJS"},discourse:{settings:{autoInsert:"markdown-embed-medium",html:'<button %x title="%text" class="upload btn no-text btn-icon ember-view"><i class="fa fa-cloud-upload d-icon d-icon-upload"></i></button>',sibling:".upload.btn",siblingPos:"before",observe:".create,#create-topic,.usercard-controls button",observeCache:0,onDemand:1},check:"Discourse"},discuz:{settings:{buttonClass:1,html:'<a %x title="%text" class="%bClass">%iconSvg</a>',sibling:".fclr,#e_attach",css:"a.%bClass,.bar a.%bClass{box-sizing:border-box;cursor:pointer;background:%1;color:%2;text-indent:unset;position:relative}.b1r a.%bClass:hover,a.%bClass:hover{background:%3;color:%4}a.%bClass{font-size:14px}.b1r a.%bClass{border:1px solid rgba(0,0,0,.15)!important;font-size:20px;padding:0;height:44px}.%bClass svg{font-size:1em;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:currentColor}",palette:"purple"},palettes:{default:["transparent","#333","#2980b9","#fff"]},check:"DISCUZCODE",getEditor:function(){return document.querySelector('.area textarea[name="message"]')}},ipb:{settings:{autoInsert:"html-embed-medium",html:'<a %x class="cke_button cke_button_off %bClass" title="%text" tabindex="-1" hidefocus="true" role="button"><span class="cke_button_icon">%iconSvg</span><span class="cke_button_label" aria-hidden="false">%text</span><span class="cke_button_label" aria-hidden="false"></span></a>',sibling:".cke_button__ipslink",siblingPos:"before",css:".cke_button.%bClass{background:%1;position:relative}.cke_button.%bClass:hover{background:%3;border-color:%5}.cke_button.%bClass svg{font-size:15px;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:%2}.cke_button.%bClass:hover svg{fill:%4}"},palettes:{default:["inherit","#444","","inherit"]},check:"ips",getEditorFn:function(){var t=this.getEditor().dataset.ipseditorName;return CKEDITOR.instances[t]},getEditor:function(){return document.querySelector("[data-ipseditor-name]")},editorValue:function(t){var e=CKEDITOR.dom.element.createFromHtml("<p>"+t+"</p>");this.getEditorFn().insertElement(e)},useCustomEditor:function(){return 1}},mybb:{settings:{sibling:"#quickreply_e > tr > td > *:last-child, .sceditor-container",fitEditor:0,extracss:".trow2 .%cClass{margin-bottom:0}"},check:"MyBB",getEditor:function(){return MyBBEditor?MyBBEditor.getContentAreaContainer().parentElement:document.querySelector("#quickreply_e textarea")},editorValue:function(t){if(MyBBEditor){var e=MyBBEditor.inSourceMode()?"insert":"wysiwygEditorInsertHtml";MyBBEditor[e]("insert"==e?t:MyBBEditor.fromBBCode(t))}else this.getEditor().value+=t},useCustomEditor:function(){return!!MyBBEditor}},nodebb:{settings:{autoInsert:"markdown-embed-medium",html:'<li %x tabindex="-1" title="%text"><i class="fa fa-cloud-upload"></i></li>',sibling:'[data-format="picture-o"]',siblingPos:"before",observe:'[component="category/post"],[component="topic/reply"],[component="topic/reply-as-topic"],[component="post/reply"],[component="post/quote"]',observeCache:0,onDemand:1},check:"__nodebbSpamBeGoneCreateCaptcha__",callback:function(){for(var t=document.querySelectorAll(".btn-toolbar .img-upload-btn"),e=0;e<t.length;e++)t[e].parentNode.removeChild(t[e])}},phpbb:{settings:{html:document.querySelector("#format-buttons *:first-child")&&"BUTTON"==document.querySelector("#format-buttons *:first-child").tagName?' <button %x type="button" class="button button-icon-only" title="%text"><i class="icon fa-cloud-upload fa-fw" aria-hidden="true"></i></button> ':' <input %x type="button" class="button2" value="%text"> ',sibling:document.querySelector("#format-buttons *:first-child")&&"BUTTON"==document.querySelector("#format-buttons *:first-child").tagName?".bbcode-img":"#message-box textarea.inputbox",siblingPos:"after"},check:"phpbb",getEditor:function(){if("undefined"!=typeof form_name&&"undefined"!=typeof text_name)return document.forms[form_name].elements[text_name]}},proboards:{settings:{html:' <input %x type="submit" value="%text"> ',css:"",sibling:"input[type=submit]",siblingPos:"before"},check:"proboards",editorValue:function(t){var e=$(".wysiwyg-textarea").data("wysiwyg"),i=e.editors[e.currentEditorName];i.setContent(i.getContent()+t)},useCustomEditor:function(){return 1!==$(".container.quick-reply").size()},getEditor:function(){return document.querySelector("textarea[name=message]")}},redactor2:{getEditor:function(){var t=this.getEditorFn();return t?this.useCustomEditor()?t.$box[0]:t[0]:null},getEditorEl:function(){return this.useCustomEditor()?this.getEditorFn().$editor[0]:this.getEditorFn()[0]},editorValue:function(t){var e="<p><br></p>",i=this.useCustomEditor()?"innerHTML":"value";if("string"!=typeof t){var s=this.getEditorEl()[i];return this.useCustomEditor()&&"<p><br></p>"==s?"":this.getEditorEl()[i]}if(this.useCustomEditor()){var n="<p>"+t+"</p>";this.getEditorFn().insert.html(""!==this.editorValue()?e+n:n)}else this.getEditorEl()[i]=t},useCustomEditor:function(){return!(this.getEditorFn()instanceof jQuery)}},smf:{settings:{html:' <button %x title="%text" class="%bClass"><span class="%iClass">%iconSvg</span><span class="%tClass">%text</span></button> ',css:"%defaultCSS #bbcBox_message .%bClass{margin-right:1px;transition:none;color:%2;padding:0;width:23px;height:21px;border-radius:5px;background-color:%1}#bbcBox_message .%bClass:hover{background-color:%3}#bbcBox_message .%tClass{display:none}",sibling:"#BBCBox_message_button_1_1,.quickReplyContent + div",siblingPos:"before",fitEditor:1},palettes:{default:["#E7E7E7","#333","#B0C4D6","#333"]},check:"smf_scripturl",getEditor:function(){return smf_editorArray.length>0?smf_editorArray[0].oTextHandle:document.querySelector(".quickReplyContent textarea")}},quill:{settings:{autoInsert:"html-embed-medium",html:'<li class="richEditor-menuItem richEditor-menuItem_f1af88yq" role="menuitem"><button %x class="richEditor-button richEditor-embedButton richEditor-button_f1fodmu3" type="button" aria-pressed="false"><span class="richEditor-iconWrap_f13bdese"></span>%iconSvg</button></li>',sibling:"ul.richEditor-menuItems li.richEditor-menuItem:last-child",css:".%iClass {display: block; height: 24px; margin: auto; width: 24px;}"},check:"quill",editorValue:function(t){quill.clipboard.dangerouslyPasteHTML("\n"==quill.getText()?0:quill.getLength(),t)},useCustomEditor:function(){return 1},getEditor:function(){return quill.container}},vanilla:{settings:{autoInsert:"markdown-embed-medium",html:'<span %x class="icon fas fa-cloud-upload-alt" title="%text"></span>',sibling:".editor-dropdown-upload"},check:"Vanilla",getEditor:function(){return document.getElementById("Form_Body")}},vbulletin:{settings:{autoInsert:"html-embed-medium",html:'<li %x class="%bClass b-toolbar__item b-toolbar__item--secondary" title="%text" tabindex="0">%iconSvg</li>',sibling:".b-toolbar__item--secondary:first-child",siblingPos:"before",css:".%bClass{background:%1;color:%2;position:relative}.%bClass:hover{background:%3;color:%4;border-color:%5}.%bClass svg{font-size:15px;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:currentColor}"},palettes:{default:["","#4B6977","","#007EB8"]},check:"vBulletin",getEditorFn:function(){var t=this.getEditor().getAttribute("ck-editorid");return CKEDITOR.instances[t]},getEditor:function(){return document.querySelector("[data-message-type]")},editorValue:function(t){var e=CKEDITOR.dom.element.createFromHtml("<p>"+t+"</p>");this.getEditorFn().insertElement(e)},useCustomEditor:function(){return 1}},WoltLab:{settings:{autoInsert:"html-embed-medium",sibling:'li[data-name="settings"]',html:'<li %x><a><span class="icon icon16 fa-cloud-upload"></span> <span>%text</span></a></li>'},check:"WBB",getEditorFn:function(){var t=$("#text").data("redactor");return t||null}},XF1:{settings:{autoInsert:"html-embed-medium",containerClass:1,buttonClass:1,html:'<li class="%cClass"><a %x class="%bClass" unselectable="on" title="%text">%iconSvg</a></li>',sibling:".redactor_btn_container_image",siblingPos:"before",css:"li.%cClass .%bClass{background:%1;color:%2;text-indent:unset;border-radius:3px;position:relative}li.%cClass a.%bClass:hover{background:%3;color:%4;border-color:%5}.%cClass .%bClass svg{font-size:15px;width:1em;height:1em;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;left:50%;top:50%;fill:currentColor}",observe:".edit.OverlayTrigger",observeCache:1},palettes:{default:["none","inherit","none","inherit",""]},check:"XenForo",getEditorFn:function(){var t=document.querySelector("#exposeMask")&&document.querySelector("#exposeMask").offsetParent?".xenOverlay form":"form";if("form"!==t)for(var e=document.querySelectorAll(t),i=0;i<e.length;i++)if(e[i].offsetParent){t+='[action="'+e[i].getAttribute("action")+'"]';break}return XenForo.getEditorInForm(t)},getEditor:function(){var t=this.getEditorFn();return t?this.useCustomEditor()?t.$box[0]:t[0]:null},getEditorEl:function(){return this.useCustomEditor()?this.getEditorFn().$editor[0]:this.getEditorFn()[0]},editorValue:function(t){var e="<p><br></p>",i=this.useCustomEditor()?"innerHTML":"value";if("string"!=typeof t){var s=this.getEditorEl()[i];return this.useCustomEditor()&&"<p><br></p>"==s?"":this.getEditorEl()[i]}if(this.useCustomEditor()){var n="<p>"+t+"</p>";this.getEditorFn().insertHtml(""!==this.editorValue()?e+n:n)}else this.getEditorEl()[i]=t},useCustomEditor:function(){return!(this.getEditorFn()instanceof jQuery)}},XF2:{settings:{autoInsert:"html-embed-medium",containerClass:1,buttonClass:"button--link js-attachmentUpload button button--icon button--icon--upload fa--xf",html:'<div class="formButtonGroup"><div class="formButtonGroup-extra"><button type="button" tabindex="-1" role="button" title="%text" class="%bClass" %x><span class="button-text">%text</span></button></div></div>',sibling:"",siblingPos:"after",observe:'[data-xf-click="quick-edit"]',observeCache:1},palettes:{default:["transparent","#505050","rgba(20,20,20,0.06)","#141414"]},check:"XF",getEditorFn:function(t){var e=".js-editor";return"string"==typeof t&&(e=this.getEditorSel(t)),XF.getEditorInContainer($(e))},getEditorSel:function(e){return"["+t.ns.dataPluginTarget+'="'+e+'"]'},getEditor:function(t){return"string"==typeof t?document.querySelector(this.getEditorSel(t)):document.querySelectorAll(".js-editor")},getBbCode:function(t){return t.getTextArea()[0].value},editorValue:function(t,e){var i="<p><br></p>",s=this.getEditorFn(e),n=s.ed.bbCode.isBbCodeView()?["bbCode","getBbCode","insertBbCode"]:["html","get","insert"],r=s.ed[n[0]];if("string"!=typeof t){if(void 0===r[n[1]])var o=this.getBbCode(r);else o=r[n[1]]();return this.useCustomEditor()&&o==i?"":o}var a=""!==this.editorValue(!1,e);if("html"==n[0]){var l="<p>"+t+"</p>";r[n[2]](a?i+l:l)}else{var d=XF.ajax("POST",XF.canonicalizeUrl("index.php?editor/to-bb-code"),{html:t});d.done(function(t){r[n[2]](a?"\n"+t.bbCode:t.bbCode)})}},useCustomEditor:function(){return void 0!==XF.getEditorInContainer($(".js-editor"))}}},generateGuid:function(){var t=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(t+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var i=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?i:3&i|8).toString(16)})},getNewValue:function(t,e){var i="string"!=typeof t.getAttribute("contenteditable")?"value":"innerHTML",s="value"==i?"\n":"<br>",n=t[i],r=e,o=!1;if(o&&(r=String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")),0==n.length)return r;var a="",l=n.match(/\n+$/g),d=l?l[0].split("\n").length:0;if(d<=2){var u=0==d?2:1;a+=s.repeat(u)}return a+r},insertTrigger:function(){var t,e=this.vendors[this.settings.vendor],i=this.settings.sibling?document.querySelectorAll(this.settings.sibling+":not(["+this.ns.dataPlugin+"])")[0]:0;if("auto"==this.settings.mode)t=this.vendors[e.hasOwnProperty("getEditor")?this.settings.vendor:"default"].getEditor();else{for(var s=document.querySelectorAll("["+this.ns.dataPluginTrigger+"][data-target]:not(["+this.ns.dataPluginId+"])"),n=[],r=0;r<s.length;r++)n.push(s[r].dataset.target);n.length>0&&(t=document.querySelectorAll(n.join(",")))}if(t){if(!document.getElementById(this.ns.pluginStyle)&&this.settings.css){var o=document.createElement("style"),a=this.settings.css;a=this.appyTemplate(a),o.type="text/css",o.innerHTML=a.replace(/%p/g,"."+this.ns.plugin),o.setAttribute("id",this.ns.pluginStyle),document.body.appendChild(o)}t instanceof NodeList||(t=[t]);var l=0;for(r=0;r<t.length;r++)if(!t[r].getAttribute(this.ns.dataPluginTarget)){var d=i||t[r];d.setAttribute(this.ns.dataPlugin,"sibling"),d.insertAdjacentHTML({before:"beforebegin",after:"afterend"}[this.settings.siblingPos],this.appyTemplate(this.settings.html));var u=d.parentElement.querySelector("["+this.ns.dataPluginTrigger+"]");this.setBoundId(u,t[r]),l++}this.triggerCounter=l,"function"==typeof e.callback&&e.callback.call()}},appyTemplate:function(t){if(!this.cacheTable){var e=[{"%iconSvg":this.iconSvg},{"%text":this.settings.langString}];if(this.palette){for(var i=/%(\d+)/g,s=i.exec(t),n=[];null!==s;)-1==n.indexOf(s[1])&&n.push(s[1]),s=i.exec(t);if(n){n.sort(function(t,e){return e-t});this.vendors[this.settings.vendor];for(var r=0;r<n.length;r++){var o=n[r]-1,a=this.palette[o]||"";a||"default"===this.settings.vendor||"default"===this.settings.palette||(a=this.palette[o-2]);var l={};l["%"+n[r]]=a,e.push(l)}}}var d=this.settings.buttonClass||this.ns.plugin+"-button",u=[{"%cClass":this.settings.containerClass||this.ns.plugin+"-container"},{"%bClass":d},{"%iClass":d+"-icon"},{"%tClass":d+"-text"},{"%x":this.ns.dataPluginTrigger},{"%p":this.ns.plugin}];for(r=0;r<u.length;r++)e.push(u[r]);this.cacheTable=e}return this.strtr(t,this.cacheTable)},strtr:function(t,e){t=t.toString();if(!t||void 0===e)return t;for(var i=0;i<e.length;i++){var s=e[i];for(var n in s)void 0!==s[n]&&(re=new RegExp(n,"g"),t=t.replace(re,s[n]))}return t},setBoundId:function(t,e){var i=this.generateGuid();t.setAttribute(this.ns.dataPluginId,i),e.setAttribute(this.ns.dataPluginTarget,i)},openPopup:function(t){if("string"==typeof t){var e=this;if(void 0===this.popups&&(this.popups={}),void 0===this.popups[t]){this.popups[t]={};var i={l:null!=window.screenLeft?window.screenLeft:screen.left,t:null!=window.screenTop?window.screenTop:screen.top,w:window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,h:window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height},s={w:720,h:690},n={w:.5,h:.85};for(var r in s)s[r]/i[r]>n[r]&&(s[r]=i[r]*n[r]);var o={l:Math.trunc(i.w/2-s.w/2+i.l),t:Math.trunc(i.h/2-s.h/2+i.t)};this.popups[t].window=window.open(this.settings.url,t,"width="+s.w+",height="+s.h+",top="+o.t+",left="+o.l),this.popups[t].timer=window.setInterval(function(){e.popups[t].window&&!1===e.popups[t].window.closed||(window.clearInterval(e.popups[t].timer),e.popups[t]=void 0)},200)}else this.popups[t].window.focus()}},postSettings:function(t){this.popups[t].window.postMessage({id:t,settings:this.settings},this.settings.url)},liveBind:function(t,e,i){document.addEventListener(e,function(e){var s=document.querySelectorAll(t);if(s){for(var n=e.target,r=-1;n&&-1===(r=Array.prototype.indexOf.call(s,n));)n=n.parentElement;r>-1&&(e.preventDefault(),i.call(e,n))}},!0)},prepare:function(){var t=this;this.ns.dataPlugin="data-"+this.ns.plugin,this.ns.dataPluginId=this.ns.dataPlugin+"-id",this.ns.dataPluginTrigger=this.ns.dataPlugin+"-trigger",this.ns.dataPluginTarget=this.ns.dataPlugin+"-target",this.ns.pluginStyle=this.ns.plugin+"-style",this.ns.selDataPluginTrigger="["+this.ns.dataPluginTrigger+"]";var e=document.currentScript||document.getElementById(this.ns.plugin+"-src");e?e.dataset.buttonTemplate&&(e.dataset.html=e.dataset.buttonTemplate):e={dataset:{}};var i=0;for(var s in this.settings={},this.defaultSettings){var n=e&&e.dataset[s]?e.dataset[s]:this.defaultSettings[s];"1"!==n&&"0"!==n||(n="true"==n),"string"==typeof n&&this.classProps.indexOf(s.replace(/Class$/,""))>-1&&(i=1),this.settings[s]=n}if("auto"==this.settings.vendor)for(var s in this.settings.vendor="default",this.settings.fitEditor=0,this.vendors)if("default"!=s&&void 0!==window[this.vendors[s].check]){this.settings.vendor=s;break}var r=["lang","url","vendor","target"];"default"==this.settings.vendor&&(this.vendors.default.settings={});var o=this.vendors[this.settings.vendor];if(o.settings)for(var s in o.settings)e&&e.dataset.hasOwnProperty(s)||(this.settings[s]=o.settings[s]);else for(var s in o.settings={},this.defaultSettings)-1==r.indexOf(s)&&(o.settings[s]=this.defaultSettings[s]);if("default"!==this.settings.vendor)if(o.settings.hasOwnProperty("fitEditor")||e.dataset.hasOwnProperty("fitEditor")||(this.settings.fitEditor=1),this.settings.fitEditor)i=!o.settings.css;else{r=["autoInsert","observe","observeCache"];for(var s in o.settings)-1!=r.indexOf(s)||e.dataset.hasOwnProperty(s)||(this.settings[s]=this.defaultSettings[s])}if(i)this.settings.css="";else{this.settings.css=this.settings.css.replace("%defaultCSS",this.defaultSettings.css),o.settings.extracss&&this.settings.css&&(this.settings.css+=o.settings.extracss);var a=this.settings.palette.split(",");a.length>1?this.palette=a:this.palettes.hasOwnProperty(a)||(this.settings.palette="default"),this.palette||(this.palette=(this.settings.fitEditor&&o.palettes&&o.palettes[this.settings.palette]?o:this).palettes[this.settings.palette])}for(var l=this.classProps,d=0;d<l.length;d++){var u=l[d]+"Class";"string"!=typeof this.settings[u]&&(this.settings[u]=this.ns.plugin+"-"+l[d],this.settings.fitEditor&&(this.settings[u]+="--"+this.settings.vendor))}var c=("auto"==this.settings.lang?navigator.language||navigator.userLanguage:this.settings.lang).replace("-","_");this.settings.langString="Upload images";var g=c in this.l10n?c:c.substring(0,2)in this.l10n?c.substring(0,2):null;g&&(this.settings.langString=this.l10n[g]);var h=document.createElement("a");h.href=this.settings.url,this.originUrlPattern="^"+(h.protocol+"//"+h.hostname).replace(/\./g,"\\.").replace(/\//g,"\\/")+"$";var f=document.querySelectorAll(this.ns.selDataPluginTrigger+"[data-target]");if(f.length>0)for(d=0;d<f.length;d++){var p=document.querySelector(f[d].dataset.target);this.setBoundId(f[d],p)}if(this.settings.observe){var b=this.settings.observe;this.settings.observeCache&&(b+=":not(["+this.ns.dataPlugin+"])"),this.liveBind(b,"click",function(e){e.setAttribute(t.ns.dataPlugin,1),t.observe()}.bind(this))}this.settings.sibling&&!this.settings.onDemand?this.waitForSibling():"onload"==this.settings.init?"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(e){t.init()},!1):this.init():this.observe()},observe:function(){this.waitForSibling("observe")},waitForSibling:function(t){var e=this.initialized?"insertTrigger":"init";if(this.settings.sibling)var i=document.querySelector(this.settings.sibling+":not(["+this.ns.dataPlugin+"])");else if("observe"==t&&(this[e](),this.triggerCounter))return;if(i)this[e]();else{if("complete"===document.readyState&&"observe"!==t)return;setTimeout(("observe"==t?this.observe:this.waitForSibling).bind(this),250)}},init:function(){this.insertTrigger();var t=this,e=this.vendors[this.settings.vendor];this.liveBind(this.ns.selDataPluginTrigger,"click",function(e){var i=e.getAttribute(t.ns.dataPluginId);t.openPopup(i)}),window.addEventListener("message",function(i){var s=new RegExp(t.originUrlPattern,"i");if(s.test(i.origin)||void 0!==i.data.id&&void 0!==i.data.message){var n=i.data.id;if(n&&i.source===t.popups[n].window)if(i.data.requestAction&&t.hasOwnProperty(i.data.requestAction))t[i.data.requestAction](n);else{var r;if("default"!==t.settings.vendor){if(e.hasOwnProperty("useCustomEditor")&&e.useCustomEditor())return void e.editorValue(i.data.message,n);e.hasOwnProperty("getEditor")&&(r=e.getEditor())}if(r||(r=document.querySelector("["+t.ns.dataPluginTarget+'="'+n+'"]'),r)){var o=null===r.getAttribute("contenteditable")?"value":"innerHTML";r[o]+=t.getNewValue(r,i.data.message);for(var a=["blur","focus","input","change","paste"],l=0;l<a.length;l++){var d=new Event(a[l]);r.dispatchEvent(d)}}else alert("Target not found")}}},!1),this.initialized=1}},e=["WoltLab","XF1"],i=0;i<e.length;i++)t.vendors[e[i]]=Object.assign(Object.assign({},t.vendors.redactor2),t.vendors[e[i]]);t.prepare()})(); \ No newline at end of file